{"report_id":"39f0090b-fbd1-48d0-bc0f-1a0c9c6bd238","version":0,"status":"done","tags":[],"date":"2026-07-27T08:55:31Z","url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":0,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"final":{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"title":"Strategic Plan Navigator","dom":{"size":129757,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (52027)","md5":"8aa5d77f411cf1c23a7b4360ab6c2643","sha1":"f1558598f091ffcfa0387001f00cd51113a362d4","sha256":"328dbf4a7a4dcc06519c20c384af453b6cfc48b99e4197eec99837fb7678361f","sha512":"e587fdaec3e5d75471d1385713e6daafe5d4ec0160dd435fa7637ca21f9aa23543c5c44f8df599ad86db1e561ef1b55b5912b990d25bbf821bbb6e5cc27666f6","ssdeep":"1536:OhLI6RJtxJprhLI6DZYA0UT/gKD1DJAnrdPRkUp1EPRv8Acs1Scdtl4DeHgk7Dj1:OhLI6RJtxJRhLI6DDT/OU99Ce","tlshash":"e3c32bdc3383b17963639536607fb70af23a5910a82f4510e526d8d5bda989a8333bdc","dom_hash":"domhash1b0a6fc3cbd71fe5f5abe178a8dfecb1","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":0,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T08:55:31Z","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":"preview-strategynavigator.newton.tech","ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2025-06-10","domain_rank":0,"first_seen":"2026-07-27T06:16:06.219214Z","last_seen":"2026-07-27T06:16:06.219214Z","alert_count":0,"request_count":33,"received_data":1619822,"sent_data":17770,"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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"name":"Next.js","description":"Next.js is a React framework for developing single page Javascript applications.","website":"https://nextjs.org","common_platform_enumeration":"cpe:2.3:a:zeit:next.js:*:*:*:*:*:*:*:*","icon":"Next.js.svg","categories":["JavaScript frameworks","Web frameworks"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]},{"name":"React","description":"React is an open-source JavaScript library for building user interfaces or UI components.","website":"https://reactjs.org","common_platform_enumeration":"cpe:2.3:a:facebook:react:*:*:*:*:*:*:*:*","icon":"React.svg","categories":["JavaScript frameworks"]},{"name":"Webpack","description":"Webpack is an open-source JavaScript module bundler.","website":"https://webpack.js.org/","common_platform_enumeration":"","icon":"Webpack.svg","categories":["Miscellaneous"]}]},{"fqdn":"vercel.live","ip":{"addr":"64.239.123.1","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2021-05-07","domain_rank":52560,"first_seen":"2021-05-07T16:08:29Z","last_seen":"2026-07-25T23:11:13.508306Z","alert_count":0,"request_count":3,"received_data":193453,"sent_data":1813,"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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}]}],"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":"preview-strategynavigator.newton.tech/_next/static/chunks/80831ef31f509b6e.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"51a61d26d5ed590ebe4e1f7702dd8037","sha1":"1d1884d7615416226e49517ff9bee2603c54fc6d","sha256":"0b2d8a17276ce01ccb1aa5820849c1b401a092c66e34b9a7c66b44e3f1b8fcb9","sha512":"7f48f408c143cf272c486171695f43a4f5ba6006a301fb8d221f6afdf5b8171747e82ea3b4765c633c8f168f6a0c0732d9859a73234d753daff03fa3b1557cfb","ssdeep":"12288:q0XCcbHddlDHpvnlrjCt1ha8I04AuOIejyYMVWvWFNeXpgczFtS0TbmOAMrBZbzm:TejyY2FaOczFtS0TbmOAMrBZbzEsm9EG","tlshash":"25946dd677abb52607da11d620de1101e2bc0e5454ac88b4f2aed5dfb2d8c80e573f3a","size":433880,"data":"","first_seen":"2026-07-27T06:16:09.149262Z","last_seen":"2026-07-27T08:57:45.667748Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/b46409a32afbfba1.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"8c0c940f94f2187971b6ba59466054e4","sha1":"0d3d13f1623923ef463aaa9582cb765f91a06047","sha256":"be4e57cc39202e959e3fd6142bc4ebd2cb16cf6f1846911ea710d8dc9cc71653","sha512":"cb12a6034f87b29f92bd70df975fcff43e6595195aee401cc9b8067ee94ced10c7ed13d0b0860a0e84089f2dcc7ec6b767702c3d82cd1a2379fe96c5adb00a51","ssdeep":"384:2dCXduf1f9PGFO+T36VMtx/Tl7sAelBGYL5wpDuG2IZsXamMOWBwmkRaBDm2cxA2:/ufJMFN36WtDuVDabDqaBFpRYPxKDCfl","tlshash":"c6e2f885b7a6f02a03d722a5146f500bf178ed29584c186cf791e4f224ba9ca85fff74","size":34066,"data":"","first_seen":"2026-07-27T06:16:09.141263Z","last_seen":"2026-07-27T08:57:45.689683Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"fe880940d33eb97770bec755f6410406","sha1":"8216875a7a3dce8d4b031637ed3c1edf1bc9d8c6","sha256":"0ff6077ddc1bc512fea86676c3d63266d32b01b8915600edbc4905d41a4a356c","sha512":"64451b32793bb07fcf9d9e15c15f2f64ab5814dfb107baa804a368c12cc501b1ee776f433b349c513000aeda0c3d3ece951fc2c1ac7d4e99dcb0df1aca86285e","ssdeep":"","tlshash":"bfc02b7c3185061408e11cfef0e59b80333708409d091202401d440008a1dcb8311dc8","size":135,"data":"","first_seen":"2026-07-27T06:16:09.159755Z","last_seen":"2026-07-27T08:57:45.734195Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"1a6e1178e4bbf5730bd664a49dd3bc24","sha1":"17c3ae3273f9de6afbbdedf2e413dbb3a6722792","sha256":"3814cddd18b2095e01abb745a99e5ada90178e709c09879324c3b623f2d829ea","sha512":"cfb1aab0bf589e33fd12906f448ddbbf7163420a088de513b174304c9ba3a7abcd9b41c98bc4dd51edd0206c1fe4660db9857e3c6163d1bf50c670cefddee509","ssdeep":"","tlshash":"de9002b090c39c5890264186687100160b6c040c01080141132184d810115048e40d8e","size":43,"data":"","first_seen":"2023-03-13T01:07:12Z","last_seen":"2026-07-27T15:05:28.148043Z","times_seen":204479,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"abf4100f275069136942ad08311f6b49","sha1":"6840125950d2a821efdafed3081b77488cb9e0f9","sha256":"d4a0a778112216e9150b34ea29e99b718df3552300fa85b2f7134af62fce4cfa","sha512":"b98f8c709917bc35abed185e597cabf3d4159118c3cee442a50630ea6097662736775eb967c6c9927fc8e26c50fb3e6bbbc9203c8e9a3ec17ea2dbe866271144","ssdeep":"","tlshash":"3151f70aea0ffc457d76ce9e193a9f7689c0dd769431b5adf60ececd00964720789881","size":3069,"data":"","first_seen":"2026-07-27T06:16:09.163246Z","last_seen":"2026-07-27T08:57:45.736124Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e1cd1ab72461d0001350e8fe81bc42c7","sha1":"4eb78346a1c441c020115de17ad1a195ef4b12c0","sha256":"e2db9dbf15fbce3e16296ef78278b54554c8b67bd98b86cd8c106490e512a32c","sha512":"89795edf96fb3a86d09f82d38a3eeec455b56417626ac366788747b00acce98ee5a1d62519a299377d6ae74b56d35278efe33e5ad470f34ab0c41c2415f6539a","ssdeep":"","tlshash":"7951d11f6805de4bed3e2d79063e8d7a10cc8d7b4760daf8819ece181a065b527e9981","size":2800,"data":"","first_seen":"2026-07-27T06:16:09.166024Z","last_seen":"2026-07-27T08:57:45.736761Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"e51ea1207765fd085d4dfd4682ad1d46","sha1":"d4a5da56203ad8ecf1ae8382718b303b6e046d17","sha256":"4e6276e1e05928ab91a88a61bad0dcd31bc402c95893f18bde01041906744350","sha512":"43c86fc44ebff35b5569296b8791f2428524a73790ba4145fd9040d0fcd873dd4ebc883c2374ed5914088b731a16ddcec17998b5e27a1455991d9a4e4699b31c","ssdeep":"","tlshash":"d4f059a17c02ee2ecb5b6f26083f9c7500cdc2ae029698569e84dd1089529750eb1b86","size":540,"data":"","first_seen":"2026-07-27T06:16:09.167967Z","last_seen":"2026-07-27T08:57:45.73772Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"90a6a86410122a3b7577c13d4af033fa","sha1":"acd28261821872ec8565709b470bba43fa285c61","sha256":"63bd4d02acea1bd64e4a846b91d42cd18fe533536517ee734da06f833d70af5b","sha512":"ac10de3f968c2958db12ddb519ccb6c22db086e9d81dd94427e5c65833c163a2de7c0976ce89dd0e0e907817d60f6323880f42e3f921f6a621af0bb1b5a0885a","ssdeep":"","tlshash":"d041c93c2048da4aecad781a11bead3a54dd056b07d4dfb987c8ee00098247e67a2ec1","size":2381,"data":"","first_seen":"2026-07-27T06:16:09.169529Z","last_seen":"2026-07-27T08:57:45.738491Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"8bbc9b97c3a83ae948383ef3079e2117","sha1":"151c36f382625dae84d3626f7765a800bf96603a","sha256":"bf1969f909a4f779e316a4a2acdb98f0c86c47742bbb4cfedc0cc81506f5015a","sha512":"4a7ad2856758a3e07d667a79f33442fb2ff4c3c36e311893ac4315f0979a0e4e0218cb4b9990617cf4e6a3da0f2573e43f53fe588993c2b6e794241839317476","ssdeep":"","tlshash":"ff800470c0411c15c033405314341105055d400d0040174057505d4450111055505dcd","size":35,"data":"","first_seen":"2023-10-21T16:54:01Z","last_seen":"2026-07-27T12:27:21.707585Z","times_seen":513,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/872208e6db2432df.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"59a6384c028b9486522f4c312b325bd7","sha1":"5e84e2ae85951f872c7d903668997a6517dcbffe","sha256":"20a6492b78862b8d19a807109b8e582b1ad0a49432d9b3abb6facbe3bcd8e13c","sha512":"35d242fff0736bf22b35f1085dbce76c79e18ec089282392e3afcf8bf7336b66540db6cb1f58f63b1a61e35234d7c03a98e24ab6d02fd9ff40affa8e816ce51c","ssdeep":"768:xn49CPqFmzekxvWA6jfoHrknNKc9Dmt4b5tG0KX5YjgU:OArDvWljQHwL9DPKX5m","tlshash":"36131aa532d4f8dd539b41c4846f800df23e1e78941ea464f3fdacaa2960949f1b3fa5","size":43161,"data":"","first_seen":"2026-07-27T06:16:09.115412Z","last_seen":"2026-07-27T08:57:45.717371Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/cf0aad1aef31db4e.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"22d0dc0cfae450e73ac4d2404f228b25","sha1":"0c01007901f38f1e7b7eb6969ce05b296386390e","sha256":"ec35af0e6f8307894f0f2001ea70aa21bb353038d788c29e1b0d5f96dada78c8","sha512":"16a43b66d68c836e3a774fb33f58d0fb8f3d64db362293556aeac018e624da0704ab83ab3df691bf09a08ed8c284b757f3a7bafe36ea4e32477a4f502689b61f","ssdeep":"192:+GYGNU55n/HDEPMMSxN6m61nrh+7pgwhA8DPSg71G8Erj3kRYwid/iZYI4IwX5NY:+GYFPFxYVrhgpXTfmlwi++IwXI","tlshash":"3b92a7e531d5f9c6069b80a8c83b4016f32e4d7610ad70d4e7f1cce679a095ee1b2fa9","size":21191,"data":"","first_seen":"2025-12-10T05:37:01.889208Z","last_seen":"2026-07-27T08:57:45.714415Z","times_seen":104,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_vercel/insights/script.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"8e699b6e4471fd6950176e39c5f1ace0","sha1":"a3957a826a0c77a338e1bd9b408b90c6215491f8","sha256":"79bf638dd4acdeb9b80c5a4009a3e1986968d615e9557dcf23d91b5e8ad158d8","sha512":"c49b40fbcbe959fab505da0d27a9f3c273a3740f07b34433619e5bc88cd7dd54564609284f4ee30ae219a1572a0a255fe9af92f2f948931b761cbc1be3605e2f","ssdeep":"","tlshash":"2251a5ea74a1e16d4ad79275817f1204f37f2a92fc05000132d99c9d3539d1dea73f99","size":2495,"data":"","first_seen":"2026-02-17T21:27:06.661745Z","last_seen":"2026-07-27T14:22:57.582723Z","times_seen":18315,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/d96012bcfc98706a.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"a891ffca6e40b82b1913aca76e8f9d05","sha1":"1ae29e59229a65b1cdafba1ba470811f51b82b2b","sha256":"514e0e3c4b197331eff40e33df70dda45b80afc04df67b8483079357f85bffb6","sha512":"e56a338a856028fe3dea000c65e6540adac71f95d880577c913f0e0ddd39aa4df7c5e78d1d22364f1c83982f9e9e81250fdcdd94f9e758ca500d2f36d7f80f4e","ssdeep":"","tlshash":"67d02b703250f8d84086e4cc8836424bf52924b262fe3895d7ae8cb16174f0c61e1a55","size":283,"data":"","first_seen":"2025-09-04T08:38:12.597563Z","last_seen":"2026-07-27T12:08:19.776614Z","times_seen":3592,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vercel.live/_next-live/feedback/feedback.js","fqdn":"vercel.live","domain":"vercel.live","tld":"live"},"ip":{"addr":"64.239.123.1","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"12d9ad3317752f2760aebc6b7c43f5c4","sha1":"c5c1d5368a931f7088807cc141671dc98ea57688","sha256":"02e9eea2f25a4fa80423f4bd6d758017b387eef44be1bc52b4e429fc7e83e95d","sha512":"c482f9b4b9521ebea42c88489384ddcf4c82d60637e3d12f7a7fd3ea21e23c895224bfb4aa639fc88dec79014ed36702a20258c8957b220dcc7c90da579a7947","ssdeep":"1536:R8pRI8EYTsqAidhSrfiP/JCUirIOoZNfZl:2Ry2sxidhSrqH","tlshash":"16733ccd32c2f4b912e3d1a550bfa709b33a2950a41d9450a66adce57c58dcf8333bad","size":75205,"data":"","first_seen":"2026-07-22T18:51:15.217386Z","last_seen":"2026-07-27T14:52:40.427414Z","times_seen":87,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vercel.live/_next-live/feedback/feedback.html?dpl=dpl_GBSv5uteAdkYzC5LuQUrVTgkwdAR","fqdn":"vercel.live","domain":"vercel.live","tld":"live"},"ip":{"addr":"64.239.123.1","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":true,"md5":"faaefbcadcb2944d69678750ce56c810","sha1":"a0c7b91a707fc4895dd30d8c6bb800a44366ef29","sha256":"48cc72662c2fa146cf84ff09289158c8da1f42a70c963c01b1488d6c2c6d6639","sha512":"34de9de2a5c042a29fb6c073a82c7c50117ac334d6ff0d808eed6b79c0e27e1fa05d7063f82eb5a3ceeb4e5f4140f1a127041ba94866d3609fe6a9c640b8b73b","ssdeep":"1536:MxJprhLI6DZYA0UT/gKD1DJAnrdPRkUp1EPRv8Acs1Scdtl4DeHgk7DjidRNE21f:MxJRhLI6DDT/OU99Cn","tlshash":"61b32adc32c3f27923635536603fb606f27a5910a42f4510e62adcd5bd6889ac337be8","size":116307,"data":"","first_seen":"2026-07-22T18:51:15.418419Z","last_seen":"2026-07-27T10:14:54.499994Z","times_seen":82,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/4dbe745b26b8afdf.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cb33fdabf2f0e26be4bbb53aacd7d012","sha1":"fddcf6453b37da3121d0b6aa6d8b80c35070cf9d","sha256":"82fa981ec20733e3df4d2171e3f98864eb7709f1d8d00aa25744ee677af6658d","sha512":"684dcfea50a5f96474fdcd8f23ee67f9c6f884d053e13c4fd7153e33419401f65935c8ea8690808fbdd4aa9de796c4646cde5a1adf3cdecc5fd2f7a62731aaa3","ssdeep":"768:IYgvBFB6Lvx1Xl2OcEwnWxLuMG+KRozd+a1VNgObxc9+HXdQAPS+O:9iiZHZ0W8NozNVNNbxc9+3dfPS+O","tlshash":"f91309cd75a6b0910bb396b1802f401bf23e1937189d48a0d3a2dde9bcb856dd237f59","size":42663,"data":"","first_seen":"2026-07-27T06:16:09.147093Z","last_seen":"2026-07-27T08:57:45.679626Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/8e04a9f8bf49491d.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"4e9cb54895dd866ae6db83d0872e9424","sha1":"47a75715924b3134f2a83376f7750c98de2bb024","sha256":"79b31c15cbdc8955635dd51753d2cf2e0bc6f454b8176da8937b7beca6d8ae6c","sha512":"2db30523962fe380c0b801e91c05d2a251cb7490e9905da42de38d154c0cb14101c83a11e72ad8064bb9d06dfc9f238e411819ecff38349f741de997d1263225","ssdeep":"768:1tSTBpeE/d0rGV4xksc64Jysq7vgr9lNrtRkmi0QxUP1eLc8:DSTSE/debx/c64Jysq7vgr9lNrtW0fdU","tlshash":"e1f21ac0b41871345c3b61149c9e472ce1397b02aa675435b28e8c4ef6d2fed39baf65","size":36968,"data":"","first_seen":"2026-07-27T06:16:09.102946Z","last_seen":"2026-07-27T08:57:45.733371Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/d80b3790a119a285.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"cf7ff30cbbe7168e4ed596a4e942b212","sha1":"1a46bfe50b885b61791fad5ad53c858f076b7a31","sha256":"9ea863c460e0b392cf14ea559d176d6dc3a5d63b856cc1996d149fd826df2948","sha512":"4ca572e1cd4e8f6acf5dd4baa2b4ae06218dc3b04d311a0c9b78747fb85db2d2450c53e0cdefa5e9da66becd299f19a0cade174d2c1af505f30049bab2eedef9","ssdeep":"384:o78MQ4IZDHYapQpqG8llOUuLyptQUVm/8oWDmuRg4w:oQMQ4IZDHCsAUeOtnXK4w","tlshash":"65c2b5b27391fda212db85dac0370005f2651c3521ae20b0b795ccef769dcd991bafa9","size":27945,"data":"","first_seen":"2025-10-26T07:49:44.747694Z","last_seen":"2026-07-27T08:57:45.725395Z","times_seen":634,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/turbopack-bbba6579f118a9cd.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"740e18cfa65f8de41b75a9e146fce582","sha1":"184dd624009ff31a4bd5075a0e6b788accfb8a0c","sha256":"04a3ab7b77b5b6ada550bfe5d701a28f942f88b599d17a6d4d2a092b8fb75f7e","sha512":"e1dd41ae4eb16f42060439fdf8cbce08415fcd5581d2259cb07d7a6f62ac91b318bfa6162f50145fd319ac5fae3fd53e52a95bb8e0658d7a2d4cd31b31cdb16c","ssdeep":"192:yWKSiHG+J8iEsuRnAEY8iaWkUmlGVhFd2mKKW9PZPKFXVqXm5m:3KSiHhylWkUmlQ8mKDZZy1m","tlshash":"e622c6da37a6f073436fa1e7803f4144f1799869146d541c939ce8fa28784ae45e3f36","size":10270,"data":"","first_seen":"2026-07-27T06:16:09.10018Z","last_seen":"2026-07-27T08:57:45.730067Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/bb8fc1a97eb5f2a9.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"8a6788e7aae794162d94739a7cb6edc0","sha1":"dd7d2fb61e3f2284967be2f3ea0db77093856af1","sha256":"2465b497fbfeb8e0c31b4ed489f5746887813224f87ed6b99a3d671f73619cff","sha512":"953be6ee4174b01d9457cd1d23efae071ffa99fadcdeb5888ef977d6fd9675a038015a96c00f0e5b310d826a9f7d4f850046aa512b938cc517af048a8e2c4fa7","ssdeep":"","tlshash":"5441346671d4e5c6918f40c4c8379009f12a2d3d52be70f4abe5cab621d009eb1b2fd9","size":2135,"data":"","first_seen":"2025-11-02T10:46:12.425449Z","last_seen":"2026-07-27T08:57:45.713003Z","times_seen":30,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/08dcfc3b15383cd6.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"751e7da7f171d94dad078ac6292c8b77","sha1":"fa2c4719c1c60fdb1d023a0de5d2c098e16aaf39","sha256":"89323de6940c0ca5dbb9459ded415e49e11d4ec884f20807abeba37370175e88","sha512":"a369b07c9b86153512873fd41ec0d7decac518a0acad52ce4991ae37926d37c34104748709d7ed5f5c7f7007a165c6cdd10f9df5042a322483f78d959ca4fab1","ssdeep":"768:4iwnmHlaAhKCKywJr8EU6KtsdDvCw4MuW1BIrbeAvrtmaP8apf647q6FYWkbZiNn:0eL54sDkuXDr0znZiOuTV7o/zTfqR","tlshash":"7983d7f936d0f8920bab45a6c07f0005f31c4d77245e78a4a3e5ddda316459ee0e2faa","size":85647,"data":"","first_seen":"2025-11-26T00:10:05.074391Z","last_seen":"2026-07-27T08:57:45.675962Z","times_seen":214,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/99c7808505aa6924.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"4d4ab476cad3bac7b8a361c2612dc3a2","sha1":"2282860d99be615570f02a63cc18817917a5d872","sha256":"b5bdd916806ce10b04fa3ae23d5c62db491375de8569e8dfb003aff11bbc1321","sha512":"08c0d0a7937e6abe5cfcf37bfd249d9dd950d2dd94766560a33047fb997f7056f044c8354adaa49e01ce84cb61c6e93df23d05db7d8e546a6f7206409c918879","ssdeep":"192:PvOOaFdESHUh/vPhEJEekEEBM8hNz3q96wnyoVgA:PvOzFdEQUh/vSEekEMM8hNzC6oyoVL","tlshash":"b3e15310a1512eccf96b45a4b9eed00c642f2b9cce1fcd65b5bc782539258e1fe13788","size":7193,"data":"","first_seen":"2026-07-27T06:16:09.152236Z","last_seen":"2026-07-27T08:57:45.710637Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/904f5809de03888a.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"aec85f55f3653994c3ba357613941220","sha1":"6a2a517998c5fe6095a0061b782c265d0212c0c5","sha256":"2e3327e6e06fe500263ff710f1da5714066b3a087d34c0d19c0d310a320b7d24","sha512":"b2d3b90be7f18f9bf44e0ebfaabecf615c1cdd6f81701aaa831a601b371dfa48ac49c80e8ef6d1cfa9174f3f265622be4be12976f98aa6ae13dccc73629bd045","ssdeep":"384:h7Mle2tCWCmLgG4AYHfcseD1ePdbKDRs1JnTuh4votiaafmmb2Z19OPvD4qtgQZ8:alB0bZnytti92vmvD4qtgQZrIf","tlshash":"d103b6b572d4faa2029344b0d43f100bf23d0c7620adb4b0a7e4d8db799858d92b6fd9","size":38886,"data":"","first_seen":"2025-10-27T23:55:13.868052Z","last_seen":"2026-07-27T08:57:45.723985Z","times_seen":39,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/d9dc1d90621e24a3.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"de94d56bc66319cb4c358ded702591b6","sha1":"dcbe87f604fb832731ee58ec393e0af6296abef0","sha256":"bf87afef7d6df1c7e56f0675ed2d6e42f7d044a88bb1d17d5134377d3814acc8","sha512":"e37b2f77c193912c22da80cbf517d8101ad5ff352aec24675492946e78d849e7aa1e017142be5ae52731f1e57aafcff8d2f7c0be1ba9781117e1766c02b49077","ssdeep":"3072:MVs97T+4Wp+OpRfl8uIRL59JAKutFQJFfJAJEJZJQJ+Jg:MVSip+OTCuIR99ZnyCfKsy","tlshash":"58a329d6b372e46209d4d4a0d4790502f36c7a1eb81d441cbbb96edf29d8d09ab3be34","size":104725,"data":"","first_seen":"2026-07-27T06:16:09.111975Z","last_seen":"2026-07-27T08:57:45.678078Z","times_seen":3,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/25ef16b69a31e3e7.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"introduction_type":"scriptElement","is_inline":false,"md5":"65dfef374b0099a6ac477b059603b25b","sha1":"b06665c17b38bc422e3204a5d564430a7c6a1822","sha256":"3fa0d197eba47bfcd9492b8077fb3e4316275dc420525588c805c6d18bccee43","sha512":"f7cb4eece78b7accb98524e205792bcc4f73d414bd02e57576606d1188265cb96c646f229edea4b4def81f3535d89322c43daa111c7f1933b747d4968c0ca67e","ssdeep":"3072:X6fzpLeh21pCpKs1n4YHjbprm4/pFdFtP:X6LpLe+ezjVjxFdFtP","tlshash":"ed240ae83d55f6626eb302b710af1803b33c252b280d4d60a611fd9db57845eb17bf9a","size":214874,"data":"","first_seen":"2025-12-18T20:23:35.58659Z","last_seen":"2026-07-27T08:57:45.7084Z","times_seen":51,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":null},"http":[{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/25ef16b69a31e3e7.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.222Z","timestamp":1785142498222,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/25ef16b69a31e3e7.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"25ef16b69a31e3e7.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"65dfef374b0099a6ac477b059603b25b\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/25ef16b69a31e3e7.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::dglgh-1785142498227-bf0ddaf8d6bb\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":214874,"size_decoded":69282,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"65dfef374b0099a6ac477b059603b25b","sha1":"b06665c17b38bc422e3204a5d564430a7c6a1822","sha256":"3fa0d197eba47bfcd9492b8077fb3e4316275dc420525588c805c6d18bccee43","sha512":"f7cb4eece78b7accb98524e205792bcc4f73d414bd02e57576606d1188265cb96c646f229edea4b4def81f3535d89322c43daa111c7f1933b747d4968c0ca67e","ssdeep":"3072:X6fzpLeh21pCpKs1n4YHjbprm4/pFdFtP:X6LpLe+ezjVjxFdFtP","tlshash":"ed240ae83d55f6626eb302b710af1803b33c252b280d4d60a611fd9db57845eb17bf9a","first_seen":"2025-12-18T20:23:35.58659Z","last_seen":"2026-07-27T08:57:45.7084Z","times_seen":51,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDk3NDU3NSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiZ2V0QXNzZXRQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfX0pO2xldCByPWUucigzMTI3MTgpO2Z1bmN0aW9uIGwoKXtsZXQgZT1kb2N1bWVudC5jdXJyZW50U2NyaXB0O2lmKCEoZSBpbnN0YW5jZW9mIEhUTUxTY3JpcHRFbGVtZW50KSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHIuSW52YXJpYW50RXJyb3IoYEV4cGVjdGVkIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQgdG8gYmUgYSA8c2NyaXB0PiBlbGVtZW50LiBSZWNlaXZlZCAke2V9IGluc3RlYWQuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3ODMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0e3BhdGhuYW1lOnR9PW5ldyBVUkwoZS5zcmMpLG49dC5pbmRleE9mKCIvX25leHQvIik7aWYoLTE9PT1uKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgci5JbnZhcmlhbnRFcnJvcihgRXhwZWN0ZWQgZG9jdW1lbnQuY3VycmVudFNjcmlwdCBzcmMgdG8gY29udGFpbiAnL19uZXh0LycuIFJlY2VpdmVkICR7ZS5zcmN9IGluc3RlYWQuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3ODQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuIHQuc2xpY2UoMCxuKX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw5MjI3MzcsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInNldEF0dHJpYnV0ZXNGcm9tUHJvcHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCByPXthY2NlcHRDaGFyc2V0OiJhY2NlcHQtY2hhcnNldCIsY2xhc3NOYW1lOiJjbGFzcyIsaHRtbEZvcjoiZm9yIixodHRwRXF1aXY6Imh0dHAtZXF1aXYiLG5vTW9kdWxlOiJub01vZHVsZSJ9LGw9WyJvbkxvYWQiLCJvblJlYWR5IiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJjaGlsZHJlbiIsIm9uRXJyb3IiLCJzdHJhdGVneSIsInN0eWxlc2hlZXRzIl07ZnVuY3Rpb24gYShlKXtyZXR1cm5bImFzeW5jIiwiZGVmZXIiLCJub01vZHVsZSJdLmluY2x1ZGVzKGUpfWZ1bmN0aW9uIG8oZSx0KXtmb3IobGV0W24sb11vZiBPYmplY3QuZW50cmllcyh0KSl7aWYoIXQuaGFzT3duUHJvcGVydHkobil8fGwuaW5jbHVkZXMobil8fHZvaWQgMD09PW8pY29udGludWU7bGV0IGk9cltuXXx8bi50b0xvd2VyQ2FzZSgpOyJTQ1JJUFQiPT09ZS50YWdOYW1lJiZhKGkpP2VbaV09ISFvOmUuc2V0QXR0cmlidXRlKGksU3RyaW5nKG8pKSwoITE9PT1vfHwiU0NSSVBUIj09PWUudGFnTmFtZSYmYShpKSYmKCFvfHwiZmFsc2UiPT09bykpJiYoZS5zZXRBdHRyaWJ1dGUoaSwiIiksZS5yZW1vdmVBdHRyaWJ1dGUoaSkpfX0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwzOTY1MTcsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImFwcEJvb3RzdHJhcCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IHI9ZS5yKDk3NDU3NSksbD1lLnIoOTIyNzM3KTtmdW5jdGlvbiBhKGUpe3ZhciB0LG47bGV0IGE9KDAsci5nZXRBc3NldFByZWZpeCkoKTt0PXNlbGYuX19uZXh0X3Msbj0oKT0+e2UoYSl9LHQmJnQubGVuZ3RoP3QucmVkdWNlKChlLFt0LG5dKT0+ZS50aGVuKCgpPT5uZXcgUHJvbWlzZSgoZSxyKT0+e2xldCBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO24mJigwLGwuc2V0QXR0cmlidXRlc0Zyb21Qcm9wcykoYSxuKSx0PyhhLnNyYz10LGEub25sb2FkPSgpPT5lKCksYS5vbmVycm9yPXIpOm4mJihhLmlubmVySFRNTD1uLmNoaWxkcmVuLHNldFRpbWVvdXQoZSkpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYSl9KSksUHJvbWlzZS5yZXNvbHZlKCkpLmNhdGNoKGU9Pntjb25zb2xlLmVycm9yKGUpfSkudGhlbigoKT0+e24oKX0pOm4oKX13aW5kb3cubmV4dD17dmVyc2lvbjoiMTYuMC4xMCIsYXBwRGlyOiEwfSwoImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw4MTY1NjUsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e2dldE9iamVjdENsYXNzTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gYX0saXNQbGFpbk9iamVjdDpmdW5jdGlvbigpe3JldHVybiBvfX07Zm9yKHZhciBsIGluIHIpT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sbCx7ZW51bWVyYWJsZTohMCxnZXQ6cltsXX0pO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBvKGUpe2lmKCJbb2JqZWN0IE9iamVjdF0iIT09YShlKSlyZXR1cm4hMTtsZXQgdD1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7cmV0dXJuIG51bGw9PT10fHx0Lmhhc093blByb3BlcnR5KCJpc1Byb3RvdHlwZU9mIil9fSwzMDIwMjMsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sZ2V0UHJvcGVyRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gaX19O2Zvcih2YXIgbCBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLGwse2VudW1lcmFibGU6ITAsZ2V0OnJbbF19KTtsZXQgYT1lLnIoODE2NTY1KTtmdW5jdGlvbiBvKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJuYW1lImluIGUmJiJtZXNzYWdlImluIGV9ZnVuY3Rpb24gaShlKXtsZXQgdDtyZXR1cm4gbyhlKT9lOk9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigoMCxhLmlzUGxhaW5PYmplY3QpKGUpPyh0PW5ldyBXZWFrU2V0LEpTT04uc3RyaW5naWZ5KGUsKGUsbik9PntpZigib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uKXtpZih0LmhhcyhuKSlyZXR1cm4iW0NpcmN1bGFyXSI7dC5hZGQobil9cmV0dXJuIG59KSk6ZSsiIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUzOTQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9fSw1MjgyNzksKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sInJlcG9ydEdsb2JhbEVycm9yIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn19KTtsZXQgcj0iZnVuY3Rpb24iPT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZT0+e2dsb2JhbFRoaXMuY29uc29sZS5lcnJvcihlKX07KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sNTk3MjM4LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtpc1JlY292ZXJhYmxlRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gY30sb25SZWNvdmVyYWJsZUVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9fTtmb3IodmFyIGwgaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtlbnVtZXJhYmxlOiEwLGdldDpyW2xdfSk7bGV0IGE9ZS5yKDU1NTY4Miksbz1lLnIoMTMyMDYxKSxpPWEuXyhlLnIoMzAyMDIzKSksdT1lLnIoNTI4Mjc5KSxzPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIGMoZSl7cmV0dXJuIHMuaGFzKGUpfWxldCBmPWU9PntsZXQgdD0oMCxpLmRlZmF1bHQpKGUpJiYiY2F1c2UiaW4gZT9lLmNhdXNlOmU7KDAsby5pc0JhaWxvdXRUb0NTUkVycm9yKSh0KXx8KDAsdS5yZXBvcnRHbG9iYWxFcnJvcikodCl9OygiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9LDU1MjYsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9e319LDk2Njg0OSwoZSx0LG4pPT57InRyaW1TdGFydCJpbiBTdHJpbmcucHJvdG90eXBlfHwoU3RyaW5nLnByb3RvdHlwZS50cmltU3RhcnQ9U3RyaW5nLnByb3RvdHlwZS50cmltTGVmdCksInRyaW1FbmQiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbUVuZD1TdHJpbmcucHJvdG90eXBlLnRyaW1SaWdodCksImRlc2NyaXB0aW9uImluIFN5bWJvbC5wcm90b3R5cGV8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTeW1ib2wucHJvdG90eXBlLCJkZXNjcmlwdGlvbiIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXt2YXIgZT0vXCgoLiopXCkvLmV4ZWModGhpcy50b1N0cmluZygpKTtyZXR1cm4gZT9lWzFdOnZvaWQgMH19KSxBcnJheS5wcm90b3R5cGUuZmxhdHx8KEFycmF5LnByb3RvdHlwZS5mbGF0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9dGhpcy5jb25jYXQuYXBwbHkoW10sdGhpcyksZT4xJiZ0LnNvbWUoQXJyYXkuaXNBcnJheSk/dC5mbGF0KGUtMSk6dH0sQXJyYXkucHJvdG90eXBlLmZsYXRNYXA9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tYXAoZSx0KS5mbGF0KCl9KSxQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5fHwoUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm4gdGhpcy50aGVuKGUsZSk7dmFyIHQ9dGhpcy5jb25zdHJ1Y3Rvcnx8UHJvbWlzZTtyZXR1cm4gdGhpcy50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiB0LnJlc29sdmUoZSgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIG59KX0sZnVuY3Rpb24obil7cmV0dXJuIHQucmVzb2x2ZShlKCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBufSl9KX0pLE9iamVjdC5mcm9tRW50cmllc3x8KE9iamVjdC5mcm9tRW50cmllcz1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuZnJvbShlKS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZVt0WzBdXT10WzFdLGV9LHt9KX0pLEFycmF5LnByb3RvdHlwZS5hdHx8KEFycmF5LnByb3RvdHlwZS5hdD1mdW5jdGlvbihlKXt2YXIgdD1NYXRoLnRydW5jKGUpfHwwO2lmKHQ8MCYmKHQrPXRoaXMubGVuZ3RoKSwhKHQ8MHx8dD49dGhpcy5sZW5ndGgpKXJldHVybiB0aGlzW3RdfSksT2JqZWN0Lmhhc093bnx8KE9iamVjdC5oYXNPd249ZnVuY3Rpb24oZSx0KXtpZihudWxsPT1lKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChPYmplY3QoZSksdCl9KSwiY2FuUGFyc2UiaW4gVVJMfHwoVVJMLmNhblBhcnNlPWZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBuZXcgVVJMKGUsdCksITB9Y2F0Y2goZSl7cmV0dXJuITF9fSl9LDUyMzkxMSwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnIoOTY2ODQ5KSwoImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSw1NjIyNjIsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCl7dmFyIG49ZS5sZW5ndGg7Zm9yKGUucHVzaCh0KTswPG47KXt2YXIgcj1uLTE+Pj4xLGw9ZVtyXTtpZigwPG8obCx0KSllW3JdPXQsZVtuXT1sLG49cjtlbHNlIGJyZWFrfX1mdW5jdGlvbiBsKGUpe3JldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplWzBdfWZ1bmN0aW9uIGEoZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiBudWxsO3ZhciB0PWVbMF0sbj1lLnBvcCgpO2lmKG4hPT10KXtlWzBdPW47Zm9yKHZhciByPTAsbD1lLmxlbmd0aCxhPWw+Pj4xO3I8YTspe3ZhciBpPTIqKHIrMSktMSx1PWVbaV0scz1pKzEsYz1lW3NdO2lmKDA+byh1LG4pKXM8bCYmMD5vKGMsdSk/KGVbcl09YyxlW3NdPW4scj1zKTooZVtyXT11LGVbaV09bixyPWkpO2Vsc2UgaWYoczxsJiYwPm8oYyxuKSllW3JdPWMsZVtzXT1uLHI9cztlbHNlIGJyZWFrfX1yZXR1cm4gdH1mdW5jdGlvbiBvKGUsdCl7dmFyIG49ZS5zb3J0SW5kZXgtdC5zb3J0SW5kZXg7cmV0dXJuIDAhPT1uP246ZS5pZC10LmlkfWlmKG4udW5zdGFibGVfbm93PXZvaWQgMCwib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93KXt2YXIgaSx1PXBlcmZvcm1hbmNlO24udW5zdGFibGVfbm93PWZ1bmN0aW9uKCl7cmV0dXJuIHUubm93KCl9fWVsc2V7dmFyIHM9RGF0ZSxjPXMubm93KCk7bi51bnN0YWJsZV9ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gcy5ub3coKS1jfX12YXIgZj1bXSxkPVtdLHA9MSxtPW51bGwsaD0zLGc9ITEsdj0hMSx5PSExLGI9ITEsdz0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0Om51bGwsaz0iZnVuY3Rpb24iPT10eXBlb2YgY2xlYXJUaW1lb3V0P2NsZWFyVGltZW91dDpudWxsLFM9InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRJbW1lZGlhdGU/c2V0SW1tZWRpYXRlOm51bGw7ZnVuY3Rpb24gRShlKXtmb3IodmFyIHQ9bChkKTtudWxsIT09dDspe2lmKG51bGw9PT10LmNhbGxiYWNrKWEoZCk7ZWxzZSBpZih0LnN0YXJ0VGltZTw9ZSlhKGQpLHQuc29ydEluZGV4PXQuZXhwaXJhdGlvblRpbWUscihmLHQpO2Vsc2UgYnJlYWs7dD1sKGQpfX1mdW5jdGlvbiB4KGUpe2lmKHk9ITEsRShlKSwhdilpZihudWxsIT09bChmKSl2PSEwLF98fChfPSEwLGkoKSk7ZWxzZXt2YXIgdD1sKGQpO251bGwhPT10JiZNKHgsdC5zdGFydFRpbWUtZSl9fXZhciBfPSExLE49LTEsUD01LEM9LTE7ZnVuY3Rpb24gVCgpe3JldHVybiEhYnx8IShuLnVuc3RhYmxlX25vdygpLUM8UCl9ZnVuY3Rpb24geigpe2lmKGI9ITEsXyl7dmFyIGU9bi51bnN0YWJsZV9ub3coKTtDPWU7dmFyIHQ9ITA7dHJ5e2U6e3Y9ITEseSYmKHk9ITEsayhOKSxOPS0xKSxnPSEwO3ZhciByPWg7dHJ5e3Q6e2ZvcihFKGUpLG09bChmKTtudWxsIT09bSYmIShtLmV4cGlyYXRpb25UaW1lPmUmJlQoKSk7KXt2YXIgbz1tLmNhbGxiYWNrO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvKXttLmNhbGxiYWNrPW51bGwsaD1tLnByaW9yaXR5TGV2ZWw7dmFyIHU9byhtLmV4cGlyYXRpb25UaW1lPD1lKTtpZihlPW4udW5zdGFibGVfbm93KCksImZ1bmN0aW9uIj09dHlwZW9mIHUpe20uY2FsbGJhY2s9dSxFKGUpLHQ9ITA7YnJlYWsgdH1tPT09bChmKSYmYShmKSxFKGUpfWVsc2UgYShmKTttPWwoZil9aWYobnVsbCE9PW0pdD0hMDtlbHNle3ZhciBzPWwoZCk7bnVsbCE9PXMmJk0oeCxzLnN0YXJ0VGltZS1lKSx0PSExfX1icmVhayBlfWZpbmFsbHl7bT1udWxsLGg9cixnPSExfX19ZmluYWxseXt0P2koKTpfPSExfX19aWYoImZ1bmN0aW9uIj09dHlwZW9mIFMpaT1mdW5jdGlvbigpe1Moeil9O2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBNZXNzYWdlQ2hhbm5lbCl7dmFyIE89bmV3IE1lc3NhZ2VDaGFubmVsLEw9Ty5wb3J0MjtPLnBvcnQxLm9ubWVzc2FnZT16LGk9ZnVuY3Rpb24oKXtMLnBvc3RNZXNzYWdlKG51bGwpfX1lbHNlIGk9ZnVuY3Rpb24oKXt3KHosMCl9O2Z1bmN0aW9uIE0oZSx0KXtOPXcoZnVuY3Rpb24oKXtlKG4udW5zdGFibGVfbm93KCkpfSx0KX1uLnVuc3RhYmxlX0lkbGVQcmlvcml0eT01LG4udW5zdGFibGVfSW1tZWRpYXRlUHJpb3JpdHk9MSxuLnVuc3RhYmxlX0xvd1ByaW9yaXR5PTQsbi51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eT0zLG4udW5zdGFibGVfUHJvZmlsaW5nPW51bGwsbi51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eT0yLG4udW5zdGFibGVfY2FuY2VsQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7ZS5jYWxsYmFjaz1udWxsfSxuLnVuc3RhYmxlX2ZvcmNlRnJhbWVSYXRlPWZ1bmN0aW9uKGUpezA+ZXx8MTI1PGU/Y29uc29sZS5lcnJvcigiZm9yY2VGcmFtZVJhdGUgdGFrZXMgYSBwb3NpdGl2ZSBpbnQgYmV0d2VlbiAwIGFuZCAxMjUsIGZvcmNpbmcgZnJhbWUgcmF0ZXMgaGlnaGVyIHRoYW4gMTI1IGZwcyBpcyBub3Qgc3VwcG9ydGVkIik6UD0wPGU/TWF0aC5mbG9vcigxZTMvZSk6NX0sbi51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbD1mdW5jdGlvbigpe3JldHVybiBofSxuLnVuc3RhYmxlX25leHQ9ZnVuY3Rpb24oZSl7c3dpdGNoKGgpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOnZhciB0PTM7YnJlYWs7ZGVmYXVsdDp0PWh9dmFyIG49aDtoPXQ7dHJ5e3JldHVybiBlKCl9ZmluYWxseXtoPW59fSxuLnVuc3RhYmxlX3JlcXVlc3RQYWludD1mdW5jdGlvbigpe2I9ITB9LG4udW5zdGFibGVfcnVuV2l0aFByaW9yaXR5PWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUpe2Nhc2UgMTpjYXNlIDI6Y2FzZSAzOmNhc2UgNDpjYXNlIDU6YnJlYWs7ZGVmYXVsdDplPTN9dmFyIG49aDtoPWU7dHJ5e3JldHVybiB0KCl9ZmluYWxseXtoPW59fSxuLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0LGEpe3ZhciBvPW4udW5zdGFibGVfbm93KCk7c3dpdGNoKGE9Im9iamVjdCI9PXR5cGVvZiBhJiZudWxsIT09YSYmIm51bWJlciI9PXR5cGVvZihhPWEuZGVsYXkpJiYwPGE/bythOm8sZSl7Y2FzZSAxOnZhciB1PS0xO2JyZWFrO2Nhc2UgMjp1PTI1MDticmVhaztjYXNlIDU6dT0weDNmZmZmZmZmO2JyZWFrO2Nhc2UgNDp1PTFlNDticmVhaztkZWZhdWx0OnU9NWUzfXJldHVybiB1PWErdSxlPXtpZDpwKyssY2FsbGJhY2s6dCxwcmlvcml0eUxldmVsOmUsc3RhcnRUaW1lOmEsZXhwaXJhdGlvblRpbWU6dSxzb3J0SW5kZXg6LTF9LGE+bz8oZS5zb3J0SW5kZXg9YSxyKGQsZSksbnVsbD09PWwoZikmJmU9PT1sKGQpJiYoeT8oayhOKSxOPS0xKTp5PSEwLE0oeCxhLW8pKSk6KGUuc29ydEluZGV4PXUscihmLGUpLHZ8fGd8fCh2PSEwLF98fChfPSEwLGkoKSkpKSxlfSxuLnVuc3RhYmxlX3Nob3VsZFlpZWxkPVQsbi51bnN0YWJsZV93cmFwQ2FsbGJhY2s9ZnVuY3Rpb24oZSl7dmFyIHQ9aDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1oO2g9dDt0cnl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZpbmFsbHl7aD1ufX19fSw1NTMzODksKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ZS5yKDU2MjI2Mil9LDE0NjQ4MCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByLGw9ZS5pKDI0NzE2NyksYT1lLnIoNTUzMzg5KSxvPWUucigyNzE2NDUpLGk9ZS5yKDE3NDA4MCk7ZnVuY3Rpb24gdShlKXt2YXIgdD0iaHR0cHM6Ly9yZWFjdC5kZXYvZXJyb3JzLyIrZTtpZigxPGFyZ3VtZW50cy5sZW5ndGgpe3QrPSI/YXJnc1tdPSIrZW5jb2RlVVJJQ29tcG9uZW50KGFyZ3VtZW50c1sxXSk7Zm9yKHZhciBuPTI7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0Kz0iJmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbbl0pfXJldHVybiJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZpc2l0ICIrdCsiIGZvciB0aGUgZnVsbCBtZXNzYWdlIG9yIHVzZSB0aGUgbm9uLW1pbmlmaWVkIGRldiBlbnZpcm9ubWVudCBmb3IgZnVsbCBlcnJvcnMgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4ifWZ1bmN0aW9uIHMoZSl7cmV0dXJuISghZXx8MSE9PWUubm9kZVR5cGUmJjkhPT1lLm5vZGVUeXBlJiYxMSE9PWUubm9kZVR5cGUpfWZ1bmN0aW9uIGMoZSl7dmFyIHQ9ZSxuPWU7aWYoZS5hbHRlcm5hdGUpZm9yKDt0LnJldHVybjspdD10LnJldHVybjtlbHNle2U9dDtkbyAwIT0oNDA5OCYodD1lKS5mbGFncykmJihuPXQucmV0dXJuKSxlPXQucmV0dXJuO3doaWxlKGUpfXJldHVybiAzPT09dC50YWc/bjpudWxsfWZ1bmN0aW9uIGYoZSl7aWYoMTM9PT1lLnRhZyl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO2lmKG51bGw9PT10JiZudWxsIT09KGU9ZS5hbHRlcm5hdGUpJiYodD1lLm1lbW9pemVkU3RhdGUpLG51bGwhPT10KXJldHVybiB0LmRlaHlkcmF0ZWR9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZChlKXtpZigzMT09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkU3RhdGU7aWYobnVsbD09PXQmJm51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJih0PWUubWVtb2l6ZWRTdGF0ZSksbnVsbCE9PXQpcmV0dXJuIHQuZGVoeWRyYXRlZH1yZXR1cm4gbnVsbH1mdW5jdGlvbiBwKGUpe2lmKGMoZSkhPT1lKXRocm93IEVycm9yKHUoMTg4KSl9ZnVuY3Rpb24gbShlLHQsbixyLGwsYSl7Zm9yKDtudWxsIT09ZTspe2lmKDU9PT1lLnRhZyYmbihlLHIsbCxhKXx8KDIyIT09ZS50YWd8fG51bGw9PT1lLm1lbW9pemVkU3RhdGUpJiYodHx8NSE9PWUudGFnKSYmbShlLmNoaWxkLHQsbixyLGwsYSkpcmV0dXJuITA7ZT1lLnNpYmxpbmd9cmV0dXJuITF9ZnVuY3Rpb24gaChlKXtmb3IoZT1lLnJldHVybjtudWxsIT09ZTspe2lmKDM9PT1lLnRhZ3x8NT09PWUudGFnKXJldHVybiBlO2U9ZS5yZXR1cm59cmV0dXJuIG51bGx9ZnVuY3Rpb24gZyhlKXtzd2l0Y2goZS50YWcpe2Nhc2UgNTpyZXR1cm4gZS5zdGF0ZU5vZGU7Y2FzZSAzOnJldHVybiBlLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg1NTkpKX19dmFyIHY9bnVsbCx5PW51bGw7ZnVuY3Rpb24gYihlKXtyZXR1cm4gdj1lLCEwfWZ1bmN0aW9uIHcoZSx0LG4pe3JldHVybiBlPT09bnx8ZT09PXQmJih2PWUsITApfWZ1bmN0aW9uIGsoZSx0LG4pe3JldHVybiBlPT09bj8oeT1lLCExKTplPT09dCYmKG51bGwhPT15JiYodj1lKSwhMCl9ZnVuY3Rpb24gUyhlKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtkbyBlPW51bGw9PT1lP251bGw6ZS5yZXR1cm47d2hpbGUoZSYmNSE9PWUudGFnJiYyNyE9PWUudGFnJiYzIT09ZS50YWcpcmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gRShlLHQsbil7Zm9yKHZhciByPTAsbD1lO2w7bD1uKGwpKXIrKztsPTA7Zm9yKHZhciBhPXQ7YTthPW4oYSkpbCsrO2Zvcig7MDxyLWw7KWU9bihlKSxyLS07Zm9yKDswPGwtcjspdD1uKHQpLGwtLTtmb3IoO3ItLTspe2lmKGU9PT10fHxudWxsIT09dCYmZT09PXQuYWx0ZXJuYXRlKXJldHVybiBlO2U9bihlKSx0PW4odCl9cmV0dXJuIG51bGx9dmFyIHg9T2JqZWN0LmFzc2lnbixfPVN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKSxOPVN5bWJvbC5mb3IoInJlYWN0LnRyYW5zaXRpb25hbC5lbGVtZW50IiksUD1TeW1ib2wuZm9yKCJyZWFjdC5wb3J0YWwiKSxDPVN5bWJvbC5mb3IoInJlYWN0LmZyYWdtZW50IiksVD1TeW1ib2wuZm9yKCJyZWFjdC5zdHJpY3RfbW9kZSIpLHo9U3ltYm9sLmZvcigicmVhY3QucHJvZmlsZXIiKSxPPVN5bWJvbC5mb3IoInJlYWN0LmNvbnN1bWVyIiksTD1TeW1ib2wuZm9yKCJyZWFjdC5jb250ZXh0IiksTT1TeW1ib2wuZm9yKCJyZWFjdC5mb3J3YXJkX3JlZiIpLEQ9U3ltYm9sLmZvcigicmVhY3Quc3VzcGVuc2UiKSxGPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlX2xpc3QiKSxJPVN5bWJvbC5mb3IoInJlYWN0Lm1lbW8iKSxSPVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKTtTeW1ib2wuZm9yKCJyZWFjdC5zY29wZSIpO3ZhciBBPVN5bWJvbC5mb3IoInJlYWN0LmFjdGl2aXR5Iiksaj1TeW1ib2wuZm9yKCJyZWFjdC5sZWdhY3lfaGlkZGVuIik7U3ltYm9sLmZvcigicmVhY3QudHJhY2luZ19tYXJrZXIiKTt2YXIgVT1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vX2NhY2hlX3NlbnRpbmVsIiksQj1TeW1ib2wuZm9yKCJyZWFjdC52aWV3X3RyYW5zaXRpb24iKSxWPVN5bWJvbC5pdGVyYXRvcjtmdW5jdGlvbiAkKGUpe3JldHVybiBudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKGU9ViYmZVtWXXx8ZVsiQEBpdGVyYXRvciJdKT9lOm51bGx9dmFyIEg9U3ltYm9sLmZvcigicmVhY3QuY2xpZW50LnJlZmVyZW5jZSIpLFE9QXJyYXkuaXNBcnJheSxXPW8uX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLHE9aS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUsSz17cGVuZGluZzohMSxkYXRhOm51bGwsbWV0aG9kOm51bGwsYWN0aW9uOm51bGx9LFk9W10sRz0tMTtmdW5jdGlvbiBYKGUpe3JldHVybntjdXJyZW50OmV9fWZ1bmN0aW9uIFooZSl7MD5HfHwoZS5jdXJyZW50PVlbR10sWVtHXT1udWxsLEctLSl9ZnVuY3Rpb24gSihlLHQpe1lbKytHXT1lLmN1cnJlbnQsZS5jdXJyZW50PXR9dmFyIGVlPVgobnVsbCksZXQ9WChudWxsKSxlbj1YKG51bGwpLGVyPVgobnVsbCk7ZnVuY3Rpb24gZWwoZSx0KXtzd2l0Y2goSihlbix0KSxKKGV0LGUpLEooZWUsbnVsbCksdC5ub2RlVHlwZSl7Y2FzZSA5OmNhc2UgMTE6ZT0oZT10LmRvY3VtZW50RWxlbWVudCkmJihlPWUubmFtZXNwYWNlVVJJKT9jcyhlKTowO2JyZWFrO2RlZmF1bHQ6aWYoZT10LnRhZ05hbWUsdD10Lm5hbWVzcGFjZVVSSSllPWNjKHQ9Y3ModCksZSk7ZWxzZSBzd2l0Y2goZSl7Y2FzZSJzdmciOmU9MTticmVhaztjYXNlIm1hdGgiOmU9MjticmVhaztkZWZhdWx0OmU9MH19WihlZSksSihlZSxlKX1mdW5jdGlvbiBlYSgpe1ooZWUpLFooZXQpLFooZW4pfWZ1bmN0aW9uIGVvKGUpe251bGwhPT1lLm1lbW9pemVkU3RhdGUmJkooZXIsZSk7dmFyIHQ9ZWUuY3VycmVudCxuPWNjKHQsZS50eXBlKTt0IT09biYmKEooZXQsZSksSihlZSxuKSl9ZnVuY3Rpb24gZWkoZSl7ZXQuY3VycmVudD09PWUmJihaKGVlKSxaKGV0KSksZXIuY3VycmVudD09PWUmJihaKGVyKSxmdi5fY3VycmVudFZhbHVlPUspfWZ1bmN0aW9uIGV1KGUpe2lmKHZvaWQgMD09PXRZKXRyeXt0aHJvdyBFcnJvcigpfWNhdGNoKGUpe3ZhciB0PWUuc3RhY2sudHJpbSgpLm1hdGNoKC9cbiggKihhdCApPykvKTt0WT10JiZ0WzFdfHwiIix0Rz0tMTxlLnN0YWNrLmluZGV4T2YoIlxuICAgIGF0Iik/IiAoPGFub255bW91cz4pIjotMTxlLnN0YWNrLmluZGV4T2YoIkAiKT8iQHVua25vd246MDowIjoiIn1yZXR1cm4iXG4iK3RZK2UrdEd9dmFyIGVzPSExO2Z1bmN0aW9uIGVjKGUsdCl7aWYoIWV8fGVzKXJldHVybiIiO2VzPSEwO3ZhciBuPUVycm9yLnByZXBhcmVTdGFja1RyYWNlO0Vycm9yLnByZXBhcmVTdGFja1RyYWNlPXZvaWQgMDt0cnl7dmFyIHI9e0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdDpmdW5jdGlvbigpe3RyeXtpZih0KXt2YXIgbj1mdW5jdGlvbigpe3Rocm93IEVycm9yKCl9O2lmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLnByb3RvdHlwZSwicHJvcHMiLHtzZXQ6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigpfX0pLCJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5jb25zdHJ1Y3Qpe3RyeXtSZWZsZWN0LmNvbnN0cnVjdChuLFtdKX1jYXRjaChlKXt2YXIgcj1lfVJlZmxlY3QuY29uc3RydWN0KGUsW10sbil9ZWxzZXt0cnl7bi5jYWxsKCl9Y2F0Y2goZSl7cj1lfWUuY2FsbChuLnByb3RvdHlwZSl9fWVsc2V7dHJ5e3Rocm93IEVycm9yKCl9Y2F0Y2goZSl7cj1lfShuPWUoKSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBuLmNhdGNoJiZuLmNhdGNoKGZ1bmN0aW9uKCl7fSl9fWNhdGNoKGUpe2lmKGUmJnImJiJzdHJpbmciPT10eXBlb2YgZS5zdGFjaylyZXR1cm5bZS5zdGFjayxyLnN0YWNrXX1yZXR1cm5bbnVsbCxudWxsXX19O3IuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lPSJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiO3ZhciBsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioci5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsIm5hbWUiKTtsJiZsLmNvbmZpZ3VyYWJsZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCJuYW1lIix7dmFsdWU6IkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCJ9KTt2YXIgYT1yLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLG89YVswXSxpPWFbMV07aWYobyYmaSl7dmFyIHU9by5zcGxpdCgiXG4iKSxzPWkuc3BsaXQoIlxuIik7Zm9yKGw9cj0wO3I8dS5sZW5ndGgmJiF1W3JdLmluY2x1ZGVzKCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QiKTspcisrO2Zvcig7bDxzLmxlbmd0aCYmIXNbbF0uaW5jbHVkZXMoIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCIpOylsKys7aWYocj09PXUubGVuZ3RofHxsPT09cy5sZW5ndGgpZm9yKHI9dS5sZW5ndGgtMSxsPXMubGVuZ3RoLTE7MTw9ciYmMDw9bCYmdVtyXSE9PXNbbF07KWwtLTtmb3IoOzE8PXImJjA8PWw7ci0tLGwtLSlpZih1W3JdIT09c1tsXSl7aWYoMSE9PXJ8fDEhPT1sKWRvIGlmKHItLSxsLS0sMD5sfHx1W3JdIT09c1tsXSl7dmFyIGM9IlxuIit1W3JdLnJlcGxhY2UoIiBhdCBuZXcgIiwiIGF0ICIpO3JldHVybiBlLmRpc3BsYXlOYW1lJiZjLmluY2x1ZGVzKCI8YW5vbnltb3VzPiIpJiYoYz1jLnJlcGxhY2UoIjxhbm9ueW1vdXM+IixlLmRpc3BsYXlOYW1lKSksY313aGlsZSgxPD1yJiYwPD1sKWJyZWFrfX19ZmluYWxseXtlcz0hMSxFcnJvci5wcmVwYXJlU3RhY2tUcmFjZT1ufXJldHVybihuPWU/ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lOiIiKT9ldShuKToiIn1mdW5jdGlvbiBlZihlKXt0cnl7dmFyIHQ9IiIsbj1udWxsO2RvIHQrPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKGUudGFnKXtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBldShlLnR5cGUpO2Nhc2UgMTY6cmV0dXJuIGV1KCJMYXp5Iik7Y2FzZSAxMzpyZXR1cm4gZS5jaGlsZCE9PXQmJm51bGwhPT10P2V1KCJTdXNwZW5zZSBGYWxsYmFjayIpOmV1KCJTdXNwZW5zZSIpO2Nhc2UgMTk6cmV0dXJuIGV1KCJTdXNwZW5zZUxpc3QiKTtjYXNlIDA6Y2FzZSAxNTpyZXR1cm4gZWMoZS50eXBlLCExKTtjYXNlIDExOnJldHVybiBlYyhlLnR5cGUucmVuZGVyLCExKTtjYXNlIDE6cmV0dXJuIGVjKGUudHlwZSwhMCk7Y2FzZSAzMTpyZXR1cm4gZXUoIkFjdGl2aXR5Iik7Y2FzZSAzMDpyZXR1cm4gZXUoIlZpZXdUcmFuc2l0aW9uIik7ZGVmYXVsdDpyZXR1cm4iIn19KGUsbiksbj1lLGU9ZS5yZXR1cm47d2hpbGUoZSlyZXR1cm4gdH1jYXRjaChlKXtyZXR1cm4iXG5FcnJvciBnZW5lcmF0aW5nIHN0YWNrOiAiK2UubWVzc2FnZSsiXG4iK2Uuc3RhY2t9fXZhciBlZD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGVwPWEudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayxlbT1hLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLGVoPWEudW5zdGFibGVfc2hvdWxkWWllbGQsZWc9YS51bnN0YWJsZV9yZXF1ZXN0UGFpbnQsZXY9YS51bnN0YWJsZV9ub3csZXk9YS51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCxlYj1hLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5LGV3PWEudW5zdGFibGVfVXNlckJsb2NraW5nUHJpb3JpdHksZWs9YS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxlUz1hLnVuc3RhYmxlX0xvd1ByaW9yaXR5LGVFPWEudW5zdGFibGVfSWRsZVByaW9yaXR5LGV4PShhLmxvZyxhLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLG51bGwpLGVfPW51bGwsZU49TWF0aC5jbHozMj9NYXRoLmNsejMyOmZ1bmN0aW9uKGUpe3JldHVybiAwPT0oZT4+Pj0wKT8zMjozMS0oZVAoZSkvZUN8MCl8MH0sZVA9TWF0aC5sb2csZUM9TWF0aC5MTjIsZVQ9MjU2LGV6PTI2MjE0NCxlTz00MTk0MzA0O2Z1bmN0aW9uIGVMKGUpe3ZhciB0PTQyJmU7aWYoMCE9PXQpcmV0dXJuIHQ7c3dpdGNoKGUmLWUpe2Nhc2UgMTpyZXR1cm4gMTtjYXNlIDI6cmV0dXJuIDI7Y2FzZSA0OnJldHVybiA0O2Nhc2UgODpyZXR1cm4gODtjYXNlIDE2OnJldHVybiAxNjtjYXNlIDMyOnJldHVybiAzMjtjYXNlIDY0OnJldHVybiA2NDtjYXNlIDEyODpyZXR1cm4gMTI4O2Nhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpyZXR1cm4gMjYxODg4JmU7Y2FzZSAyNjIxNDQ6Y2FzZSA1MjQyODg6Y2FzZSAxMDQ4NTc2OmNhc2UgMjA5NzE1MjpyZXR1cm4gMzkzMjE2MCZlO2Nhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAweDEwMDAwMDA6Y2FzZSAweDIwMDAwMDA6cmV0dXJuIDB4M2MwMDAwMCZlO2Nhc2UgMHg0MDAwMDAwOnJldHVybiAweDQwMDAwMDA7Y2FzZSAweDgwMDAwMDA6cmV0dXJuIDB4ODAwMDAwMDtjYXNlIDB4MTAwMDAwMDA6cmV0dXJuIDB4MTAwMDAwMDA7Y2FzZSAweDIwMDAwMDAwOnJldHVybiAweDIwMDAwMDAwO2Nhc2UgMHg0MDAwMDAwMDpyZXR1cm4gMDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBlTShlLHQsbil7dmFyIHI9ZS5wZW5kaW5nTGFuZXM7aWYoMD09PXIpcmV0dXJuIDA7dmFyIGw9MCxhPWUuc3VzcGVuZGVkTGFuZXMsbz1lLnBpbmdlZExhbmVzO2U9ZS53YXJtTGFuZXM7dmFyIGk9MHg3ZmZmZmZmJnI7cmV0dXJuIDAhPT1pPzAhPShyPWkmfmEpP2w9ZUwocik6MCE9KG8mPWkpP2w9ZUwobyk6bnx8MCE9KG49aSZ+ZSkmJihsPWVMKG4pKTowIT0oaT1yJn5hKT9sPWVMKGkpOjAhPT1vP2w9ZUwobyk6bnx8MCE9KG49ciZ+ZSkmJihsPWVMKG4pKSwwPT09bD8wOjAhPT10JiZ0IT09bCYmMD09KHQmYSkmJigoYT1sJi1sKT49KG49dCYtdCl8fDMyPT09YSYmMCE9KDQxOTQwNDgmbikpP3Q6bH1mdW5jdGlvbiBlRChlLHQpe3JldHVybiAwPT0oZS5wZW5kaW5nTGFuZXMmfihlLnN1c3BlbmRlZExhbmVzJn5lLnBpbmdlZExhbmVzKSZ0KX1mdW5jdGlvbiBlRigpe3ZhciBlPWVPO3JldHVybiAwPT0oMHgzYzAwMDAwJihlTzw8PTEpKSYmKGVPPTQxOTQzMDQpLGV9ZnVuY3Rpb24gZUkoZSl7Zm9yKHZhciB0PVtdLG49MDszMT5uO24rKyl0LnB1c2goZSk7cmV0dXJuIHR9ZnVuY3Rpb24gZVIoZSx0KXtlLnBlbmRpbmdMYW5lc3w9dCwweDEwMDAwMDAwIT09dCYmKGUuc3VzcGVuZGVkTGFuZXM9MCxlLnBpbmdlZExhbmVzPTAsZS53YXJtTGFuZXM9MCl9ZnVuY3Rpb24gZUEoZSx0LG4pe2UucGVuZGluZ0xhbmVzfD10LGUuc3VzcGVuZGVkTGFuZXMmPX50O3ZhciByPTMxLWVOKHQpO2UuZW50YW5nbGVkTGFuZXN8PXQsZS5lbnRhbmdsZW1lbnRzW3JdPTB4NDAwMDAwMDB8ZS5lbnRhbmdsZW1lbnRzW3JdfDI2MTkzMCZufWZ1bmN0aW9uIGVqKGUsdCl7dmFyIG49ZS5lbnRhbmdsZWRMYW5lc3w9dDtmb3IoZT1lLmVudGFuZ2xlbWVudHM7bjspe3ZhciByPTMxLWVOKG4pLGw9MTw8cjtsJnR8ZVtyXSZ0JiYoZVtyXXw9dCksbiY9fmx9fWZ1bmN0aW9uIGVVKGUsdCl7dmFyIG49dCYtdDtyZXR1cm4gMCE9KChuPTAhPSg0MiZuKT8xOmVCKG4pKSYoZS5zdXNwZW5kZWRMYW5lc3x0KSk/MDpufWZ1bmN0aW9uIGVCKGUpe3N3aXRjaChlKXtjYXNlIDI6ZT0xO2JyZWFrO2Nhc2UgODplPTQ7YnJlYWs7Y2FzZSAzMjplPTE2O2JyZWFrO2Nhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOmNhc2UgNDE5NDMwNDpjYXNlIDgzODg2MDg6Y2FzZSAweDEwMDAwMDA6Y2FzZSAweDIwMDAwMDA6ZT0xMjg7YnJlYWs7Y2FzZSAweDEwMDAwMDAwOmU9MHg4MDAwMDAwO2JyZWFrO2RlZmF1bHQ6ZT0wfXJldHVybiBlfWZ1bmN0aW9uIGVWKGUpe3JldHVybiAyPChlJj0tZSk/ODxlPzAhPSgweDdmZmZmZmYmZSk/MzI6MHgxMDAwMDAwMDo4OjJ9ZnVuY3Rpb24gZSQoKXt2YXIgZT1xLnA7cmV0dXJuIDAhPT1lP2U6dm9pZCAwPT09KGU9d2luZG93LmV2ZW50KT8zMjpmTChlLnR5cGUpfWZ1bmN0aW9uIGVIKGUsdCl7dmFyIG49cS5wO3RyeXtyZXR1cm4gcS5wPWUsdCgpfWZpbmFsbHl7cS5wPW59fXZhciBlUT1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKSxlVz0iX19yZWFjdEZpYmVyJCIrZVEsZXE9Il9fcmVhY3RQcm9wcyQiK2VRLGVLPSJfX3JlYWN0Q29udGFpbmVyJCIrZVEsZVk9Il9fcmVhY3RFdmVudHMkIitlUSxlRz0iX19yZWFjdExpc3RlbmVycyQiK2VRLGVYPSJfX3JlYWN0SGFuZGxlcyQiK2VRLGVaPSJfX3JlYWN0UmVzb3VyY2VzJCIrZVEsZUo9Il9fcmVhY3RNYXJrZXIkIitlUTtmdW5jdGlvbiBlMChlKXtkZWxldGUgZVtlV10sZGVsZXRlIGVbZXFdLGRlbGV0ZSBlW2VZXSxkZWxldGUgZVtlR10sZGVsZXRlIGVbZVhdfWZ1bmN0aW9uIGUxKGUpe3ZhciB0O2lmKHQ9ZVtlV10pcmV0dXJuIHQ7Zm9yKHZhciBuPWUucGFyZW50Tm9kZTtuOyl7aWYodD1uW2VLXXx8bltlV10pe2lmKG49dC5hbHRlcm5hdGUsbnVsbCE9PXQuY2hpbGR8fG51bGwhPT1uJiZudWxsIT09bi5jaGlsZClmb3IoZT1jSyhlKTtudWxsIT09ZTspe2lmKG49ZVtlV10pcmV0dXJuIG47ZT1jSyhlKX1yZXR1cm4gdH1uPShlPW4pLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9ZnVuY3Rpb24gZTIoZSl7aWYoZT1lW2VXXXx8ZVtlS10pe3ZhciB0PWUudGFnO2lmKDU9PT10fHw2PT09dHx8MTM9PT10fHwzMT09PXR8fDI2PT09dHx8Mjc9PT10fHwzPT09dClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBlMyhlKXt2YXIgdD1lLnRhZztpZig1PT09dHx8MjY9PT10fHwyNz09PXR8fDY9PT10KXJldHVybiBlLnN0YXRlTm9kZTt0aHJvdyBFcnJvcih1KDMzKSl9ZnVuY3Rpb24gZTQoZSl7dmFyIHQ9ZVtlWl07cmV0dXJuIHR8fCh0PWVbZVpdPXtob2lzdGFibGVTdHlsZXM6bmV3IE1hcCxob2lzdGFibGVTY3JpcHRzOm5ldyBNYXB9KSx0fWZ1bmN0aW9uIGU1KGUpe2VbZUpdPSEwfXZhciBlOD1uZXcgU2V0LGU2PXt9O2Z1bmN0aW9uIGU5KGUsdCl7ZTcoZSx0KSxlNyhlKyJDYXB0dXJlIix0KX1mdW5jdGlvbiBlNyhlLHQpe2ZvcihlNltlXT10LGU9MDtlPHQubGVuZ3RoO2UrKyllOC5hZGQodFtlXSl9dmFyIHRlPVJlZ0V4cCgiXls6QS1aX2EtelxcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAzNzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRF1bOkEtWl9hLXpcXHUwMEMwLVxcdTAwRDZcXHUwMEQ4LVxcdTAwRjZcXHUwMEY4LVxcdTAyRkZcXHUwMzcwLVxcdTAzN0RcXHUwMzdGLVxcdTFGRkZcXHUyMDBDLVxcdTIwMERcXHUyMDcwLVxcdTIxOEZcXHUyQzAwLVxcdTJGRUZcXHUzMDAxLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRkRcXC0uMC05XFx1MDBCN1xcdTAzMDAtXFx1MDM2RlxcdTIwM0YtXFx1MjA0MF0qJCIpLHR0PXt9LHRuPXt9LHRyPSExO2Z1bmN0aW9uIHRsKCl7dmFyIGU9dHI7cmV0dXJuIHRyPSExLGV9ZnVuY3Rpb24gdGEoZSx0LG4pe2lmKGVkLmNhbGwodG4sdCl8fCFlZC5jYWxsKHR0LHQpJiYodGUudGVzdCh0KT90blt0XT0hMDoodHRbdF09ITAsITEpKSlpZihudWxsPT09billLnJlbW92ZUF0dHJpYnV0ZSh0KTtlbHNle3N3aXRjaCh0eXBlb2Ygbil7Y2FzZSJ1bmRlZmluZWQiOmNhc2UiZnVuY3Rpb24iOmNhc2Uic3ltYm9sIjplLnJlbW92ZUF0dHJpYnV0ZSh0KTtyZXR1cm47Y2FzZSJib29sZWFuIjp2YXIgcj10LnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw1KTtpZigiZGF0YS0iIT09ciYmImFyaWEtIiE9PXIpcmV0dXJuIHZvaWQgZS5yZW1vdmVBdHRyaWJ1dGUodCl9ZS5zZXRBdHRyaWJ1dGUodCwiIituKX19ZnVuY3Rpb24gdG8oZSx0LG4pe2lmKG51bGw9PT1uKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7c3dpdGNoKHR5cGVvZiBuKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6ZS5yZW1vdmVBdHRyaWJ1dGUodCk7cmV0dXJufWUuc2V0QXR0cmlidXRlKHQsIiIrbil9fWZ1bmN0aW9uIHRpKGUsdCxuLHIpe2lmKG51bGw9PT1yKWUucmVtb3ZlQXR0cmlidXRlKG4pO2Vsc2V7c3dpdGNoKHR5cGVvZiByKXtjYXNlInVuZGVmaW5lZCI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJzeW1ib2wiOmNhc2UiYm9vbGVhbiI6ZS5yZW1vdmVBdHRyaWJ1dGUobik7cmV0dXJufWUuc2V0QXR0cmlidXRlTlModCxuLCIiK3IpfX1mdW5jdGlvbiB0dShlKXtzd2l0Y2godHlwZW9mIGUpe2Nhc2UiYmlnaW50IjpjYXNlImJvb2xlYW4iOmNhc2UibnVtYmVyIjpjYXNlInN0cmluZyI6Y2FzZSJ1bmRlZmluZWQiOmNhc2Uib2JqZWN0IjpyZXR1cm4gZTtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiB0cyhlKXt2YXIgdD1lLnR5cGU7cmV0dXJuKGU9ZS5ub2RlTmFtZSkmJiJpbnB1dCI9PT1lLnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09dHx8InJhZGlvIj09PXQpfWZ1bmN0aW9uIHRjKGUpe2lmKCFlLl92YWx1ZVRyYWNrZXIpe3ZhciB0PXRzKGUpPyJjaGVja2VkIjoidmFsdWUiO2UuX3ZhbHVlVHJhY2tlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx0KTtpZighZS5oYXNPd25Qcm9wZXJ0eSh0KSYmdm9pZCAwIT09ciYmImZ1bmN0aW9uIj09dHlwZW9mIHIuZ2V0JiYiZnVuY3Rpb24iPT10eXBlb2Ygci5zZXQpe3ZhciBsPXIuZ2V0LGE9ci5zZXQ7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5jYWxsKHRoaXMpfSxzZXQ6ZnVuY3Rpb24oZSl7bj0iIitlLGEuY2FsbCh0aGlzLGUpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ci5lbnVtZXJhYmxlfSkse2dldFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG59LHNldFZhbHVlOmZ1bmN0aW9uKGUpe249IiIrZX0sc3RvcFRyYWNraW5nOmZ1bmN0aW9uKCl7ZS5fdmFsdWVUcmFja2VyPW51bGwsZGVsZXRlIGVbdF19fX19KGUsdCwiIitlW3RdKX19ZnVuY3Rpb24gdGYoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5fdmFsdWVUcmFja2VyO2lmKCF0KXJldHVybiEwO3ZhciBuPXQuZ2V0VmFsdWUoKSxyPSIiO3JldHVybiBlJiYocj10cyhlKT9lLmNoZWNrZWQ/InRydWUiOiJmYWxzZSI6ZS52YWx1ZSksKGU9cikhPT1uJiYodC5zZXRWYWx1ZShlKSwhMCl9ZnVuY3Rpb24gdGQoZSl7aWYodm9pZCAwPT09KGU9ZXx8KCJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1jYXRjaCh0KXtyZXR1cm4gZS5ib2R5fX12YXIgdHA9L1tcbiJcXF0vZztmdW5jdGlvbiB0bShlKXtyZXR1cm4gZS5yZXBsYWNlKHRwLGZ1bmN0aW9uKGUpe3JldHVybiJcXCIrZS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSsiICJ9KX1mdW5jdGlvbiB0aChlLHQsbixyLGwsYSxvLGkpe2UubmFtZT0iIixudWxsIT1vJiYiZnVuY3Rpb24iIT10eXBlb2YgbyYmInN5bWJvbCIhPXR5cGVvZiBvJiYiYm9vbGVhbiIhPXR5cGVvZiBvP2UudHlwZT1vOmUucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksbnVsbCE9dD8ibnVtYmVyIj09PW8/KDA9PT10JiYiIj09PWUudmFsdWV8fGUudmFsdWUhPXQpJiYoZS52YWx1ZT0iIit0dSh0KSk6ZS52YWx1ZSE9PSIiK3R1KHQpJiYoZS52YWx1ZT0iIit0dSh0KSk6InN1Ym1pdCIhPT1vJiYicmVzZXQiIT09b3x8ZS5yZW1vdmVBdHRyaWJ1dGUoInZhbHVlIiksbnVsbCE9dD90dihlLG8sdHUodCkpOm51bGwhPW4/dHYoZSxvLHR1KG4pKTpudWxsIT1yJiZlLnJlbW92ZUF0dHJpYnV0ZSgidmFsdWUiKSxudWxsPT1sJiZudWxsIT1hJiYoZS5kZWZhdWx0Q2hlY2tlZD0hIWEpLG51bGwhPWwmJihlLmNoZWNrZWQ9bCYmImZ1bmN0aW9uIiE9dHlwZW9mIGwmJiJzeW1ib2wiIT10eXBlb2YgbCksbnVsbCE9aSYmImZ1bmN0aW9uIiE9dHlwZW9mIGkmJiJzeW1ib2wiIT10eXBlb2YgaSYmImJvb2xlYW4iIT10eXBlb2YgaT9lLm5hbWU9IiIrdHUoaSk6ZS5yZW1vdmVBdHRyaWJ1dGUoIm5hbWUiKX1mdW5jdGlvbiB0ZyhlLHQsbixyLGwsYSxvLGkpe2lmKG51bGwhPWEmJiJmdW5jdGlvbiIhPXR5cGVvZiBhJiYic3ltYm9sIiE9dHlwZW9mIGEmJiJib29sZWFuIiE9dHlwZW9mIGEmJihlLnR5cGU9YSksbnVsbCE9dHx8bnVsbCE9bil7aWYoKCJzdWJtaXQiPT09YXx8InJlc2V0Ij09PWEpJiZudWxsPT10KXJldHVybiB2b2lkIHRjKGUpO249bnVsbCE9bj8iIit0dShuKToiIix0PW51bGwhPXQ/IiIrdHUodCk6bixpfHx0PT09ZS52YWx1ZXx8KGUudmFsdWU9dCksZS5kZWZhdWx0VmFsdWU9dH1yPSJmdW5jdGlvbiIhPXR5cGVvZihyPW51bGwhPXI/cjpsKSYmInN5bWJvbCIhPXR5cGVvZiByJiYhIXIsZS5jaGVja2VkPWk/ZS5jaGVja2VkOiEhcixlLmRlZmF1bHRDaGVja2VkPSEhcixudWxsIT1vJiYiZnVuY3Rpb24iIT10eXBlb2YgbyYmInN5bWJvbCIhPXR5cGVvZiBvJiYiYm9vbGVhbiIhPXR5cGVvZiBvJiYoZS5uYW1lPW8pLHRjKGUpfWZ1bmN0aW9uIHR2KGUsdCxuKXsibnVtYmVyIj09PXQmJnRkKGUub3duZXJEb2N1bWVudCk9PT1lfHxlLmRlZmF1bHRWYWx1ZT09PSIiK258fChlLmRlZmF1bHRWYWx1ZT0iIituKX1mdW5jdGlvbiB0eShlLHQsbixyKXtpZihlPWUub3B0aW9ucyx0KXt0PXt9O2Zvcih2YXIgbD0wO2w8bi5sZW5ndGg7bCsrKXRbIiQiK25bbF1dPSEwO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspbD10Lmhhc093blByb3BlcnR5KCIkIitlW25dLnZhbHVlKSxlW25dLnNlbGVjdGVkIT09bCYmKGVbbl0uc2VsZWN0ZWQ9bCksbCYmciYmKGVbbl0uZGVmYXVsdFNlbGVjdGVkPSEwKX1lbHNle2ZvcihsPTAsbj0iIit0dShuKSx0PW51bGw7bDxlLmxlbmd0aDtsKyspe2lmKGVbbF0udmFsdWU9PT1uKXtlW2xdLnNlbGVjdGVkPSEwLHImJihlW2xdLmRlZmF1bHRTZWxlY3RlZD0hMCk7cmV0dXJufW51bGwhPT10fHxlW2xdLmRpc2FibGVkfHwodD1lW2xdKX1udWxsIT09dCYmKHQuc2VsZWN0ZWQ9ITApfX1mdW5jdGlvbiB0YihlLHQsbil7aWYobnVsbCE9dCYmKCh0PSIiK3R1KHQpKSE9PWUudmFsdWUmJihlLnZhbHVlPXQpLG51bGw9PW4pKXtlLmRlZmF1bHRWYWx1ZSE9PXQmJihlLmRlZmF1bHRWYWx1ZT10KTtyZXR1cm59ZS5kZWZhdWx0VmFsdWU9bnVsbCE9bj8iIit0dShuKToiIn1mdW5jdGlvbiB0dyhlLHQsbixyKXtpZihudWxsPT10KXtpZihudWxsIT1yKXtpZihudWxsIT1uKXRocm93IEVycm9yKHUoOTIpKTtpZihRKHIpKXtpZigxPHIubGVuZ3RoKXRocm93IEVycm9yKHUoOTMpKTtyPXJbMF19bj1yfW51bGw9PW4mJihuPSIiKSx0PW59ZS5kZWZhdWx0VmFsdWU9bj10dSh0KSwocj1lLnRleHRDb250ZW50KT09PW4mJiIiIT09ciYmbnVsbCE9PXImJihlLnZhbHVlPXIpLHRjKGUpfWZ1bmN0aW9uIHRrKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1lLmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpe24ubm9kZVZhbHVlPXQ7cmV0dXJufX1lLnRleHRDb250ZW50PXR9dmFyIHRTPW5ldyBTZXQoImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGFzcGVjdFJhdGlvIGJvcmRlckltYWdlT3V0c2V0IGJvcmRlckltYWdlU2xpY2UgYm9yZGVySW1hZ2VXaWR0aCBib3hGbGV4IGJveEZsZXhHcm91cCBib3hPcmRpbmFsR3JvdXAgY29sdW1uQ291bnQgY29sdW1ucyBmbGV4IGZsZXhHcm93IGZsZXhQb3NpdGl2ZSBmbGV4U2hyaW5rIGZsZXhOZWdhdGl2ZSBmbGV4T3JkZXIgZ3JpZEFyZWEgZ3JpZFJvdyBncmlkUm93RW5kIGdyaWRSb3dTcGFuIGdyaWRSb3dTdGFydCBncmlkQ29sdW1uIGdyaWRDb2x1bW5FbmQgZ3JpZENvbHVtblNwYW4gZ3JpZENvbHVtblN0YXJ0IGZvbnRXZWlnaHQgbGluZUNsYW1wIGxpbmVIZWlnaHQgb3BhY2l0eSBvcmRlciBvcnBoYW5zIHNjYWxlIHRhYlNpemUgd2lkb3dzIHpJbmRleCB6b29tIGZpbGxPcGFjaXR5IGZsb29kT3BhY2l0eSBzdG9wT3BhY2l0eSBzdHJva2VEYXNoYXJyYXkgc3Ryb2tlRGFzaG9mZnNldCBzdHJva2VNaXRlcmxpbWl0IHN0cm9rZU9wYWNpdHkgc3Ryb2tlV2lkdGggTW96QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgTW96Qm94RmxleCBNb3pCb3hGbGV4R3JvdXAgTW96TGluZUNsYW1wIG1zQW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgbXNGbGV4IG1zWm9vbSBtc0ZsZXhHcm93IG1zRmxleE5lZ2F0aXZlIG1zRmxleE9yZGVyIG1zRmxleFBvc2l0aXZlIG1zRmxleFNocmluayBtc0dyaWRDb2x1bW4gbXNHcmlkQ29sdW1uU3BhbiBtc0dyaWRSb3cgbXNHcmlkUm93U3BhbiBXZWJraXRBbmltYXRpb25JdGVyYXRpb25Db3VudCBXZWJraXRCb3hGbGV4IFdlYktpdEJveEZsZXhHcm91cCBXZWJraXRCb3hPcmRpbmFsR3JvdXAgV2Via2l0Q29sdW1uQ291bnQgV2Via2l0Q29sdW1ucyBXZWJraXRGbGV4IFdlYmtpdEZsZXhHcm93IFdlYmtpdEZsZXhQb3NpdGl2ZSBXZWJraXRGbGV4U2hyaW5rIFdlYmtpdExpbmVDbGFtcCIuc3BsaXQoIiAiKSk7ZnVuY3Rpb24gdEUoZSx0LG4pe3ZhciByPTA9PT10LmluZGV4T2YoIi0tIik7bnVsbD09bnx8ImJvb2xlYW4iPT10eXBlb2Ygbnx8IiI9PT1uP3I/ZS5zZXRQcm9wZXJ0eSh0LCIiKToiZmxvYXQiPT09dD9lLmNzc0Zsb2F0PSIiOmVbdF09IiI6cj9lLnNldFByb3BlcnR5KHQsbik6Im51bWJlciIhPXR5cGVvZiBufHwwPT09bnx8dFMuaGFzKHQpPyJmbG9hdCI9PT10P2UuY3NzRmxvYXQ9bjplW3RdPSgiIituKS50cmltKCk6ZVt0XT1uKyJweCJ9ZnVuY3Rpb24gdHgoZSx0LG4pe2lmKG51bGwhPXQmJiJvYmplY3QiIT10eXBlb2YgdCl0aHJvdyBFcnJvcih1KDYyKSk7aWYoZT1lLnN0eWxlLG51bGwhPW4pe2Zvcih2YXIgciBpbiBuKSFuLmhhc093blByb3BlcnR5KHIpfHxudWxsIT10JiZ0Lmhhc093blByb3BlcnR5KHIpfHwoMD09PXIuaW5kZXhPZigiLS0iKT9lLnNldFByb3BlcnR5KHIsIiIpOiJmbG9hdCI9PT1yP2UuY3NzRmxvYXQ9IiI6ZVtyXT0iIix0cj0hMCk7Zm9yKHZhciBsIGluIHQpcj10W2xdLHQuaGFzT3duUHJvcGVydHkobCkmJm5bbF0hPT1yJiYodEUoZSxsLHIpLHRyPSEwKX1lbHNlIGZvcih2YXIgYSBpbiB0KXQuaGFzT3duUHJvcGVydHkoYSkmJnRFKGUsYSx0W2FdKX1mdW5jdGlvbiB0XyhlKXtpZigtMT09PWUuaW5kZXhPZigiLSIpKXJldHVybiExO3N3aXRjaChlKXtjYXNlImFubm90YXRpb24teG1sIjpjYXNlImNvbG9yLXByb2ZpbGUiOmNhc2UiZm9udC1mYWNlIjpjYXNlImZvbnQtZmFjZS1zcmMiOmNhc2UiZm9udC1mYWNlLXVyaSI6Y2FzZSJmb250LWZhY2UtZm9ybWF0IjpjYXNlImZvbnQtZmFjZS1uYW1lIjpjYXNlIm1pc3NpbmctZ2x5cGgiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuITB9fXZhciB0Tj1uZXcgTWFwKFtbImFjY2VwdENoYXJzZXQiLCJhY2NlcHQtY2hhcnNldCJdLFsiaHRtbEZvciIsImZvciJdLFsiaHR0cEVxdWl2IiwiaHR0cC1lcXVpdiJdLFsiY3Jvc3NPcmlnaW4iLCJjcm9zc29yaWdpbiJdLFsiYWNjZW50SGVpZ2h0IiwiYWNjZW50LWhlaWdodCJdLFsiYWxpZ25tZW50QmFzZWxpbmUiLCJhbGlnbm1lbnQtYmFzZWxpbmUiXSxbImFyYWJpY0Zvcm0iLCJhcmFiaWMtZm9ybSJdLFsiYmFzZWxpbmVTaGlmdCIsImJhc2VsaW5lLXNoaWZ0Il0sWyJjYXBIZWlnaHQiLCJjYXAtaGVpZ2h0Il0sWyJjbGlwUGF0aCIsImNsaXAtcGF0aCJdLFsiY2xpcFJ1bGUiLCJjbGlwLXJ1bGUiXSxbImNvbG9ySW50ZXJwb2xhdGlvbiIsImNvbG9yLWludGVycG9sYXRpb24iXSxbImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnMiLCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnMiXSxbImNvbG9yUHJvZmlsZSIsImNvbG9yLXByb2ZpbGUiXSxbImNvbG9yUmVuZGVyaW5nIiwiY29sb3ItcmVuZGVyaW5nIl0sWyJkb21pbmFudEJhc2VsaW5lIiwiZG9taW5hbnQtYmFzZWxpbmUiXSxbImVuYWJsZUJhY2tncm91bmQiLCJlbmFibGUtYmFja2dyb3VuZCJdLFsiZmlsbE9wYWNpdHkiLCJmaWxsLW9wYWNpdHkiXSxbImZpbGxSdWxlIiwiZmlsbC1ydWxlIl0sWyJmbG9vZENvbG9yIiwiZmxvb2QtY29sb3IiXSxbImZsb29kT3BhY2l0eSIsImZsb29kLW9wYWNpdHkiXSxbImZvbnRGYW1pbHkiLCJmb250LWZhbWlseSJdLFsiZm9udFNpemUiLCJmb250LXNpemUiXSxbImZvbnRTaXplQWRqdXN0IiwiZm9udC1zaXplLWFkanVzdCJdLFsiZm9udFN0cmV0Y2giLCJmb250LXN0cmV0Y2giXSxbImZvbnRTdHlsZSIsImZvbnQtc3R5bGUiXSxbImZvbnRWYXJpYW50IiwiZm9udC12YXJpYW50Il0sWyJmb250V2VpZ2h0IiwiZm9udC13ZWlnaHQiXSxbImdseXBoTmFtZSIsImdseXBoLW5hbWUiXSxbImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsIiwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbCJdLFsiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsIiwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWwiXSxbImhvcml6QWR2WCIsImhvcml6LWFkdi14Il0sWyJob3Jpek9yaWdpblgiLCJob3Jpei1vcmlnaW4teCJdLFsiaW1hZ2VSZW5kZXJpbmciLCJpbWFnZS1yZW5kZXJpbmciXSxbImxldHRlclNwYWNpbmciLCJsZXR0ZXItc3BhY2luZyJdLFsibGlnaHRpbmdDb2xvciIsImxpZ2h0aW5nLWNvbG9yIl0sWyJtYXJrZXJFbmQiLCJtYXJrZXItZW5kIl0sWyJtYXJrZXJNaWQiLCJtYXJrZXItbWlkIl0sWyJtYXJrZXJTdGFydCIsIm1hcmtlci1zdGFydCJdLFsib3ZlcmxpbmVQb3NpdGlvbiIsIm92ZXJsaW5lLXBvc2l0aW9uIl0sWyJvdmVybGluZVRoaWNrbmVzcyIsIm92ZXJsaW5lLXRoaWNrbmVzcyJdLFsicGFpbnRPcmRlciIsInBhaW50LW9yZGVyIl0sWyJwYW5vc2UtMSIsInBhbm9zZS0xIl0sWyJwb2ludGVyRXZlbnRzIiwicG9pbnRlci1ldmVudHMiXSxbInJlbmRlcmluZ0ludGVudCIsInJlbmRlcmluZy1pbnRlbnQiXSxbInNoYXBlUmVuZGVyaW5nIiwic2hhcGUtcmVuZGVyaW5nIl0sWyJzdG9wQ29sb3IiLCJzdG9wLWNvbG9yIl0sWyJzdG9wT3BhY2l0eSIsInN0b3Atb3BhY2l0eSJdLFsic3RyaWtldGhyb3VnaFBvc2l0aW9uIiwic3RyaWtldGhyb3VnaC1wb3NpdGlvbiJdLFsic3RyaWtldGhyb3VnaFRoaWNrbmVzcyIsInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIl0sWyJzdHJva2VEYXNoYXJyYXkiLCJzdHJva2UtZGFzaGFycmF5Il0sWyJzdHJva2VEYXNob2Zmc2V0Iiwic3Ryb2tlLWRhc2hvZmZzZXQiXSxbInN0cm9rZUxpbmVjYXAiLCJzdHJva2UtbGluZWNhcCJdLFsic3Ryb2tlTGluZWpvaW4iLCJzdHJva2UtbGluZWpvaW4iXSxbInN0cm9rZU1pdGVybGltaXQiLCJzdHJva2UtbWl0ZXJsaW1pdCJdLFsic3Ryb2tlT3BhY2l0eSIsInN0cm9rZS1vcGFjaXR5Il0sWyJzdHJva2VXaWR0aCIsInN0cm9rZS13aWR0aCJdLFsidGV4dEFuY2hvciIsInRleHQtYW5jaG9yIl0sWyJ0ZXh0RGVjb3JhdGlvbiIsInRleHQtZGVjb3JhdGlvbiJdLFsidGV4dFJlbmRlcmluZyIsInRleHQtcmVuZGVyaW5nIl0sWyJ0cmFuc2Zvcm1PcmlnaW4iLCJ0cmFuc2Zvcm0tb3JpZ2luIl0sWyJ1bmRlcmxpbmVQb3NpdGlvbiIsInVuZGVybGluZS1wb3NpdGlvbiJdLFsidW5kZXJsaW5lVGhpY2tuZXNzIiwidW5kZXJsaW5lLXRoaWNrbmVzcyJdLFsidW5pY29kZUJpZGkiLCJ1bmljb2RlLWJpZGkiXSxbInVuaWNvZGVSYW5nZSIsInVuaWNvZGUtcmFuZ2UiXSxbInVuaXRzUGVyRW0iLCJ1bml0cy1wZXItZW0iXSxbInZBbHBoYWJldGljIiwidi1hbHBoYWJldGljIl0sWyJ2SGFuZ2luZyIsInYtaGFuZ2luZyJdLFsidklkZW9ncmFwaGljIiwidi1pZGVvZ3JhcGhpYyJdLFsidk1hdGhlbWF0aWNhbCIsInYtbWF0aGVtYXRpY2FsIl0sWyJ2ZWN0b3JFZmZlY3QiLCJ2ZWN0b3ItZWZmZWN0Il0sWyJ2ZXJ0QWR2WSIsInZlcnQtYWR2LXkiXSxbInZlcnRPcmlnaW5YIiwidmVydC1vcmlnaW4teCJdLFsidmVydE9yaWdpblkiLCJ2ZXJ0LW9yaWdpbi15Il0sWyJ3b3JkU3BhY2luZyIsIndvcmQtc3BhY2luZyJdLFsid3JpdGluZ01vZGUiLCJ3cml0aW5nLW1vZGUiXSxbInhtbG5zWGxpbmsiLCJ4bWxuczp4bGluayJdLFsieEhlaWdodCIsIngtaGVpZ2h0Il1dKSx0UD0vXltcdTAwMDAtXHUwMDFGIF0qaltcclxuXHRdKmFbXHJcblx0XSp2W1xyXG5cdF0qYVtcclxuXHRdKnNbXHJcblx0XSpjW1xyXG5cdF0qcltcclxuXHRdKmlbXHJcblx0XSpwW1xyXG5cdF0qdFtcclxuXHRdKjovaTtmdW5jdGlvbiB0QyhlKXtyZXR1cm4gdFAudGVzdCgiIitlKT8iamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGhhcyBibG9ja2VkIGEgamF2YXNjcmlwdDogVVJMIGFzIGEgc2VjdXJpdHkgcHJlY2F1dGlvbi4nKSI6ZX1mdW5jdGlvbiB0VCgpe312YXIgdHo9bnVsbDtmdW5jdGlvbiB0TyhlKXtyZXR1cm4oZT1lLnRhcmdldHx8ZS5zcmNFbGVtZW50fHx3aW5kb3cpLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50JiYoZT1lLmNvcnJlc3BvbmRpbmdVc2VFbGVtZW50KSwzPT09ZS5ub2RlVHlwZT9lLnBhcmVudE5vZGU6ZX12YXIgdEw9bnVsbCx0TT1udWxsO2Z1bmN0aW9uIHREKGUpe3ZhciB0PWUyKGUpO2lmKHQmJihlPXQuc3RhdGVOb2RlKSl7dmFyIG49ZVtlcV18fG51bGw7c3dpdGNoKGU9dC5zdGF0ZU5vZGUsdC50eXBlKXtjYXNlImlucHV0IjppZih0aChlLG4udmFsdWUsbi5kZWZhdWx0VmFsdWUsbi5kZWZhdWx0VmFsdWUsbi5jaGVja2VkLG4uZGVmYXVsdENoZWNrZWQsbi50eXBlLG4ubmFtZSksdD1uLm5hbWUsInJhZGlvIj09PW4udHlwZSYmbnVsbCE9dCl7Zm9yKG49ZTtuLnBhcmVudE5vZGU7KW49bi5wYXJlbnROb2RlO2ZvcihuPW4ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJyt0bSgiIit0KSsnIl1bdHlwZT0icmFkaW8iXScpLHQ9MDt0PG4ubGVuZ3RoO3QrKyl7dmFyIHI9blt0XTtpZihyIT09ZSYmci5mb3JtPT09ZS5mb3JtKXt2YXIgbD1yW2VxXXx8bnVsbDtpZighbCl0aHJvdyBFcnJvcih1KDkwKSk7dGgocixsLnZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuZGVmYXVsdFZhbHVlLGwuY2hlY2tlZCxsLmRlZmF1bHRDaGVja2VkLGwudHlwZSxsLm5hbWUpfX1mb3IodD0wO3Q8bi5sZW5ndGg7dCsrKShyPW5bdF0pLmZvcm09PT1lLmZvcm0mJnRmKHIpfWJyZWFrO2Nhc2UidGV4dGFyZWEiOnRiKGUsbi52YWx1ZSxuLmRlZmF1bHRWYWx1ZSk7YnJlYWs7Y2FzZSJzZWxlY3QiOm51bGwhPSh0PW4udmFsdWUpJiZ0eShlLCEhbi5tdWx0aXBsZSx0LCExKX19fXZhciB0Rj0hMTtmdW5jdGlvbiB0SShlLHQsbil7aWYodEYpcmV0dXJuIGUodCxuKTt0Rj0hMDt0cnl7cmV0dXJuIGUodCl9ZmluYWxseXtpZih0Rj0hMSwobnVsbCE9PXRMfHxudWxsIT09dE0pJiYoc3QoKSx0TCYmKHQ9dEwsZT10TSx0TT10TD1udWxsLHREKHQpLGUpKSlmb3IodD0wO3Q8ZS5sZW5ndGg7dCsrKXREKGVbdF0pfX1mdW5jdGlvbiB0UihlLHQpe3ZhciBuPWUuc3RhdGVOb2RlO2lmKG51bGw9PT1uKXJldHVybiBudWxsO3ZhciByPW5bZXFdfHxudWxsO2lmKG51bGw9PT1yKXJldHVybiBudWxsO3N3aXRjaChuPXJbdF0sdCl7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xpY2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVDbGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURvd25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3ZlQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVyZSI6Y2FzZSJvbk1vdXNlRW50ZXIiOihyPSFyLmRpc2FibGVkKXx8KHI9ImJ1dHRvbiIhPT0oZT1lLnR5cGUpJiYiaW5wdXQiIT09ZSYmInNlbGVjdCIhPT1lJiYidGV4dGFyZWEiIT09ZSksZT0hcjticmVhaztkZWZhdWx0OmU9ITF9aWYoZSlyZXR1cm4gbnVsbDtpZihuJiYiZnVuY3Rpb24iIT10eXBlb2Ygbil0aHJvdyBFcnJvcih1KDIzMSx0LHR5cGVvZiBuKSk7cmV0dXJuIG59dmFyIHRBPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuZG9jdW1lbnQmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50LHRqPSExO2lmKHRBKXRyeXt2YXIgdFU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KHRVLCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7dGo9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHRVLHRVKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsdFUsdFUpfWNhdGNoKGUpe3RqPSExfXZhciB0Qj1udWxsLHRWPW51bGwsdCQ9bnVsbDtmdW5jdGlvbiB0SCgpe2lmKHQkKXJldHVybiB0JDt2YXIgZSx0LG49dFYscj1uLmxlbmd0aCxsPSJ2YWx1ZSJpbiB0Qj90Qi52YWx1ZTp0Qi50ZXh0Q29udGVudCxhPWwubGVuZ3RoO2ZvcihlPTA7ZTxyJiZuW2VdPT09bFtlXTtlKyspO3ZhciBvPXItZTtmb3IodD0xO3Q8PW8mJm5bci10XT09PWxbYS10XTt0KyspO3JldHVybiB0JD1sLnNsaWNlKGUsMTx0PzEtdDp2b2lkIDApfWZ1bmN0aW9uIHRRKGUpe3ZhciB0PWUua2V5Q29kZTtyZXR1cm4iY2hhckNvZGUiaW4gZT8wPT09KGU9ZS5jaGFyQ29kZSkmJjEzPT09dCYmKGU9MTMpOmU9dCwxMD09PWUmJihlPTEzKSwzMjw9ZXx8MTM9PT1lP2U6MH1mdW5jdGlvbiB0Vygpe3JldHVybiEwfWZ1bmN0aW9uIHRxKCl7cmV0dXJuITF9ZnVuY3Rpb24gdEsoZSl7ZnVuY3Rpb24gdCh0LG4scixsLGEpe2Zvcih2YXIgbyBpbiB0aGlzLl9yZWFjdE5hbWU9dCx0aGlzLl90YXJnZXRJbnN0PXIsdGhpcy50eXBlPW4sdGhpcy5uYXRpdmVFdmVudD1sLHRoaXMudGFyZ2V0PWEsdGhpcy5jdXJyZW50VGFyZ2V0PW51bGwsZSllLmhhc093blByb3BlcnR5KG8pJiYodD1lW29dLHRoaXNbb109dD90KGwpOmxbb10pO3JldHVybiB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD0obnVsbCE9bC5kZWZhdWx0UHJldmVudGVkP2wuZGVmYXVsdFByZXZlbnRlZDohMT09PWwucmV0dXJuVmFsdWUpP3RXOnRxLHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dHEsdGhpc31yZXR1cm4geCh0LnByb3RvdHlwZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITA7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5wcmV2ZW50RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6InVua25vd24iIT10eXBlb2YgZS5yZXR1cm5WYWx1ZSYmKGUucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPXRXKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5zdG9wUHJvcGFnYXRpb24/ZS5zdG9wUHJvcGFnYXRpb24oKToidW5rbm93biIhPXR5cGVvZiBlLmNhbmNlbEJ1YmJsZSYmKGUuY2FuY2VsQnViYmxlPSEwKSx0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXRXKX0scGVyc2lzdDpmdW5jdGlvbigpe30saXNQZXJzaXN0ZW50OnRXfSksdH12YXIgdFksdEcsdFgsdFosdEosdDA9e2V2ZW50UGhhc2U6MCxidWJibGVzOjAsY2FuY2VsYWJsZTowLHRpbWVTdGFtcDpmdW5jdGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1bHRQcmV2ZW50ZWQ6MCxpc1RydXN0ZWQ6MH0sdDE9dEsodDApLHQyPXgoe30sdDAse3ZpZXc6MCxkZXRhaWw6MH0pLHQzPXRLKHQyKSx0ND14KHt9LHQyLHtzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MCxjbGllbnRZOjAscGFnZVg6MCxwYWdlWTowLGN0cmxLZXk6MCxzaGlmdEtleTowLGFsdEtleTowLG1ldGFLZXk6MCxnZXRNb2RpZmllclN0YXRlOm5hLGJ1dHRvbjowLGJ1dHRvbnM6MCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDA9PT1lLnJlbGF0ZWRUYXJnZXQ/ZS5mcm9tRWxlbWVudD09PWUuc3JjRWxlbWVudD9lLnRvRWxlbWVudDplLmZyb21FbGVtZW50OmUucmVsYXRlZFRhcmdldH0sbW92ZW1lbnRYOmZ1bmN0aW9uKGUpe3JldHVybiJtb3ZlbWVudFgiaW4gZT9lLm1vdmVtZW50WDooZSE9PXRKJiYodEomJiJtb3VzZW1vdmUiPT09ZS50eXBlPyh0WD1lLnNjcmVlblgtdEouc2NyZWVuWCx0Wj1lLnNjcmVlblktdEouc2NyZWVuWSk6dFo9dFg9MCx0Sj1lKSx0WCl9LG1vdmVtZW50WTpmdW5jdGlvbihlKXtyZXR1cm4ibW92ZW1lbnRZImluIGU/ZS5tb3ZlbWVudFk6dFp9fSksdDU9dEsodDQpLHQ4PXRLKHgoe30sdDQse2RhdGFUcmFuc2ZlcjowfSkpLHQ2PXRLKHgoe30sdDIse3JlbGF0ZWRUYXJnZXQ6MH0pKSx0OT10Syh4KHt9LHQwLHthbmltYXRpb25OYW1lOjAsZWxhcHNlZFRpbWU6MCxwc2V1ZG9FbGVtZW50OjB9KSksdDc9dEsoeCh7fSx0MCx7Y2xpcGJvYXJkRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4iY2xpcGJvYXJkRGF0YSJpbiBlP2UuY2xpcGJvYXJkRGF0YTp3aW5kb3cuY2xpcGJvYXJkRGF0YX19KSksbmU9dEsoeCh7fSx0MCx7ZGF0YTowfSkpLG50PXtFc2M6IkVzY2FwZSIsU3BhY2ViYXI6IiAiLExlZnQ6IkFycm93TGVmdCIsVXA6IkFycm93VXAiLFJpZ2h0OiJBcnJvd1JpZ2h0IixEb3duOiJBcnJvd0Rvd24iLERlbDoiRGVsZXRlIixXaW46Ik9TIixNZW51OiJDb250ZXh0TWVudSIsQXBwczoiQ29udGV4dE1lbnUiLFNjcm9sbDoiU2Nyb2xsTG9jayIsTW96UHJpbnRhYmxlS2V5OiJVbmlkZW50aWZpZWQifSxubj17ODoiQmFja3NwYWNlIiw5OiJUYWIiLDEyOiJDbGVhciIsMTM6IkVudGVyIiwxNjoiU2hpZnQiLDE3OiJDb250cm9sIiwxODoiQWx0IiwxOToiUGF1c2UiLDIwOiJDYXBzTG9jayIsMjc6IkVzY2FwZSIsMzI6IiAiLDMzOiJQYWdlVXAiLDM0OiJQYWdlRG93biIsMzU6IkVuZCIsMzY6IkhvbWUiLDM3OiJBcnJvd0xlZnQiLDM4OiJBcnJvd1VwIiwzOToiQXJyb3dSaWdodCIsNDA6IkFycm93RG93biIsNDU6Ikluc2VydCIsNDY6IkRlbGV0ZSIsMTEyOiJGMSIsMTEzOiJGMiIsMTE0OiJGMyIsMTE1OiJGNCIsMTE2OiJGNSIsMTE3OiJGNiIsMTE4OiJGNyIsMTE5OiJGOCIsMTIwOiJGOSIsMTIxOiJGMTAiLDEyMjoiRjExIiwxMjM6IkYxMiIsMTQ0OiJOdW1Mb2NrIiwxNDU6IlNjcm9sbExvY2siLDIyNDoiTWV0YSJ9LG5yPXtBbHQ6ImFsdEtleSIsQ29udHJvbDoiY3RybEtleSIsTWV0YToibWV0YUtleSIsU2hpZnQ6InNoaWZ0S2V5In07ZnVuY3Rpb24gbmwoZSl7dmFyIHQ9dGhpcy5uYXRpdmVFdmVudDtyZXR1cm4gdC5nZXRNb2RpZmllclN0YXRlP3QuZ2V0TW9kaWZpZXJTdGF0ZShlKTohIShlPW5yW2VdKSYmISF0W2VdfWZ1bmN0aW9uIG5hKCl7cmV0dXJuIG5sfXZhciBubz10Syh4KHt9LHQyLHtrZXk6ZnVuY3Rpb24oZSl7aWYoZS5rZXkpe3ZhciB0PW50W2Uua2V5XXx8ZS5rZXk7aWYoIlVuaWRlbnRpZmllZCIhPT10KXJldHVybiB0fXJldHVybiJrZXlwcmVzcyI9PT1lLnR5cGU/MTM9PT0oZT10UShlKSk/IkVudGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKGUpOiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9ubltlLmtleUNvZGVdfHwiVW5pZGVudGlmaWVkIjoiIn0sY29kZTowLGxvY2F0aW9uOjAsY3RybEtleTowLHNoaWZ0S2V5OjAsYWx0S2V5OjAsbWV0YUtleTowLHJlcGVhdDowLGxvY2FsZTowLGdldE1vZGlmaWVyU3RhdGU6bmEsY2hhckNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT90UShlKTowfSxrZXlDb2RlOmZ1bmN0aW9uKGUpe3JldHVybiJrZXlkb3duIj09PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9lLmtleUNvZGU6MH0sd2hpY2g6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT90UShlKToia2V5ZG93biI9PT1lLnR5cGV8fCJrZXl1cCI9PT1lLnR5cGU/ZS5rZXlDb2RlOjB9fSkpLG5pPXRLKHgoe30sdDQse3BvaW50ZXJJZDowLHdpZHRoOjAsaGVpZ2h0OjAscHJlc3N1cmU6MCx0YW5nZW50aWFsUHJlc3N1cmU6MCx0aWx0WDowLHRpbHRZOjAsdHdpc3Q6MCxwb2ludGVyVHlwZTowLGlzUHJpbWFyeTowfSkpLG51PXRLKHgoe30sdDIse3RvdWNoZXM6MCx0YXJnZXRUb3VjaGVzOjAsY2hhbmdlZFRvdWNoZXM6MCxhbHRLZXk6MCxtZXRhS2V5OjAsY3RybEtleTowLHNoaWZ0S2V5OjAsZ2V0TW9kaWZpZXJTdGF0ZTpuYX0pKSxucz10Syh4KHt9LHQwLHtwcm9wZXJ0eU5hbWU6MCxlbGFwc2VkVGltZTowLHBzZXVkb0VsZW1lbnQ6MH0pKSxuYz10Syh4KHt9LHQ0LHtkZWx0YVg6ZnVuY3Rpb24oZSl7cmV0dXJuImRlbHRhWCJpbiBlP2UuZGVsdGFYOiJ3aGVlbERlbHRhWCJpbiBlPy1lLndoZWVsRGVsdGFYOjB9LGRlbHRhWTpmdW5jdGlvbihlKXtyZXR1cm4iZGVsdGFZImluIGU/ZS5kZWx0YVk6IndoZWVsRGVsdGFZImluIGU/LWUud2hlZWxEZWx0YVk6IndoZWVsRGVsdGEiaW4gZT8tZS53aGVlbERlbHRhOjB9LGRlbHRhWjowLGRlbHRhTW9kZTowfSkpLG5mPXRLKHgoe30sdDAse25ld1N0YXRlOjAsb2xkU3RhdGU6MH0pKSxuZD1bOSwxMywyNywzMl0sbnA9dEEmJiJDb21wb3NpdGlvbkV2ZW50ImluIHdpbmRvdyxubT1udWxsO3RBJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYobm09ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIgbmg9dEEmJiJUZXh0RXZlbnQiaW4gd2luZG93JiYhbm0sbmc9dEEmJighbnB8fG5tJiY4PG5tJiYxMT49bm0pLG52PSExO2Z1bmN0aW9uIG55KGUsdCl7c3dpdGNoKGUpe2Nhc2Uia2V5dXAiOnJldHVybiAtMSE9PW5kLmluZGV4T2YodC5rZXlDb2RlKTtjYXNlImtleWRvd24iOnJldHVybiAyMjkhPT10LmtleUNvZGU7Y2FzZSJrZXlwcmVzcyI6Y2FzZSJtb3VzZWRvd24iOmNhc2UiZm9jdXNvdXQiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIG5iKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YoZT1lLmRldGFpbCkmJiJkYXRhImluIGU/ZS5kYXRhOm51bGx9dmFyIG53PSExLG5rPXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLCJkYXRldGltZS1sb2NhbCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEwLHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVybDohMCx3ZWVrOiEwfTtmdW5jdGlvbiBuUyhlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQ/ISFua1tlLnR5cGVdOiJ0ZXh0YXJlYSI9PT10fWZ1bmN0aW9uIG5FKGUsdCxuLHIpe3RMP3RNP3RNLnB1c2gocik6dE09W3JdOnRMPXIsMDwodD1zNSh0LCJvbkNoYW5nZSIpKS5sZW5ndGgmJihuPW5ldyB0MSgib25DaGFuZ2UiLCJjaGFuZ2UiLG51bGwsbixyKSxlLnB1c2goe2V2ZW50Om4sbGlzdGVuZXJzOnR9KSl9dmFyIG54PW51bGwsbl89bnVsbDtmdW5jdGlvbiBuTihlKXtzWChlLDApfWZ1bmN0aW9uIG5QKGUpe2lmKHRmKGUzKGUpKSlyZXR1cm4gZX1mdW5jdGlvbiBuQyhlLHQpe2lmKCJjaGFuZ2UiPT09ZSlyZXR1cm4gdH12YXIgblQ9ITE7aWYodEEpe2lmKHRBKXt2YXIgbno9Im9uaW5wdXQiaW4gZG9jdW1lbnQ7aWYoIW56KXt2YXIgbk89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bk8uc2V0QXR0cmlidXRlKCJvbmlucHV0IiwicmV0dXJuOyIpLG56PSJmdW5jdGlvbiI9PXR5cGVvZiBuTy5vbmlucHV0fXI9bnp9ZWxzZSByPSExO25UPXImJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHw5PGRvY3VtZW50LmRvY3VtZW50TW9kZSl9ZnVuY3Rpb24gbkwoKXtueCYmKG54LmRldGFjaEV2ZW50KCJvbnByb3BlcnR5Y2hhbmdlIixuTSksbl89bng9bnVsbCl9ZnVuY3Rpb24gbk0oZSl7aWYoInZhbHVlIj09PWUucHJvcGVydHlOYW1lJiZuUChuXykpe3ZhciB0PVtdO25FKHQsbl8sZSx0TyhlKSksdEkobk4sdCl9fWZ1bmN0aW9uIG5EKGUsdCxuKXsiZm9jdXNpbiI9PT1lPyhuTCgpLG54PXQsbl89bixueC5hdHRhY2hFdmVudCgib25wcm9wZXJ0eWNoYW5nZSIsbk0pKToiZm9jdXNvdXQiPT09ZSYmbkwoKX1mdW5jdGlvbiBuRihlKXtpZigic2VsZWN0aW9uY2hhbmdlIj09PWV8fCJrZXl1cCI9PT1lfHwia2V5ZG93biI9PT1lKXJldHVybiBuUChuXyl9ZnVuY3Rpb24gbkkoZSx0KXtpZigiY2xpY2siPT09ZSlyZXR1cm4gblAodCl9ZnVuY3Rpb24gblIoZSx0KXtpZigiaW5wdXQiPT09ZXx8ImNoYW5nZSI9PT1lKXJldHVybiBuUCh0KX12YXIgbkE9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT0xL3QpfHxlIT1lJiZ0IT10fTtmdW5jdGlvbiBuaihlLHQpe2lmKG5BKGUsdCkpcmV0dXJuITA7aWYoIm9iamVjdCIhPXR5cGVvZiBlfHxudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiB0fHxudWxsPT09dClyZXR1cm4hMTt2YXIgbj1PYmplY3Qua2V5cyhlKSxyPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXTtpZighZWQuY2FsbCh0LGwpfHwhbkEoZVtsXSx0W2xdKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBuVShlKXtmb3IoO2UmJmUuZmlyc3RDaGlsZDspZT1lLmZpcnN0Q2hpbGQ7cmV0dXJuIGV9ZnVuY3Rpb24gbkIoZSx0KXt2YXIgbixyPW5VKGUpO2ZvcihlPTA7cjspe2lmKDM9PT1yLm5vZGVUeXBlKXtpZihuPWUrci50ZXh0Q29udGVudC5sZW5ndGgsZTw9dCYmbj49dClyZXR1cm57bm9kZTpyLG9mZnNldDp0LWV9O2U9bn1lOntmb3IoO3I7KXtpZihyLm5leHRTaWJsaW5nKXtyPXIubmV4dFNpYmxpbmc7YnJlYWsgZX1yPXIucGFyZW50Tm9kZX1yPXZvaWQgMH1yPW5VKHIpfX1mdW5jdGlvbiBuVihlKXtlPW51bGwhPWUmJm51bGwhPWUub3duZXJEb2N1bWVudCYmbnVsbCE9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P2Uub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldzp3aW5kb3c7Zm9yKHZhciB0PXRkKGUuZG9jdW1lbnQpO3QgaW5zdGFuY2VvZiBlLkhUTUxJRnJhbWVFbGVtZW50Oyl7dHJ5e3ZhciBuPSJzdHJpbmciPT10eXBlb2YgdC5jb250ZW50V2luZG93LmxvY2F0aW9uLmhyZWZ9Y2F0Y2goZSl7bj0hMX1pZihuKWU9dC5jb250ZW50V2luZG93O2Vsc2UgYnJlYWs7dD10ZChlLmRvY3VtZW50KX1yZXR1cm4gdH1mdW5jdGlvbiBuJChlKXt2YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQmJigiaW5wdXQiPT09dCYmKCJ0ZXh0Ij09PWUudHlwZXx8InNlYXJjaCI9PT1lLnR5cGV8fCJ0ZWwiPT09ZS50eXBlfHwidXJsIj09PWUudHlwZXx8InBhc3N3b3JkIj09PWUudHlwZSl8fCJ0ZXh0YXJlYSI9PT10fHwidHJ1ZSI9PT1lLmNvbnRlbnRFZGl0YWJsZSl9dmFyIG5IPXRBJiYiZG9jdW1lbnRNb2RlImluIGRvY3VtZW50JiYxMT49ZG9jdW1lbnQuZG9jdW1lbnRNb2RlLG5RPW51bGwsblc9bnVsbCxucT1udWxsLG5LPSExO2Z1bmN0aW9uIG5ZKGUsdCxuKXt2YXIgcj1uLndpbmRvdz09PW4/bi5kb2N1bWVudDo5PT09bi5ub2RlVHlwZT9uOm4ub3duZXJEb2N1bWVudDtuS3x8bnVsbD09blF8fG5RIT09dGQocil8fChyPSJzZWxlY3Rpb25TdGFydCJpbihyPW5RKSYmbiQocik/e3N0YXJ0OnIuc2VsZWN0aW9uU3RhcnQsZW5kOnIuc2VsZWN0aW9uRW5kfTp7YW5jaG9yTm9kZToocj0oci5vd25lckRvY3VtZW50JiZyLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uKCkpLmFuY2hvck5vZGUsYW5jaG9yT2Zmc2V0OnIuYW5jaG9yT2Zmc2V0LGZvY3VzTm9kZTpyLmZvY3VzTm9kZSxmb2N1c09mZnNldDpyLmZvY3VzT2Zmc2V0fSxucSYmbmoobnEscil8fChucT1yLDA8KHI9czUoblcsIm9uU2VsZWN0IikpLmxlbmd0aCYmKHQ9bmV3IHQxKCJvblNlbGVjdCIsInNlbGVjdCIsbnVsbCx0LG4pLGUucHVzaCh7ZXZlbnQ6dCxsaXN0ZW5lcnM6cn0pLHQudGFyZ2V0PW5RKSkpfWZ1bmN0aW9uIG5HKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10LnRvTG93ZXJDYXNlKCksblsiV2Via2l0IitlXT0id2Via2l0Iit0LG5bIk1veiIrZV09Im1veiIrdCxufXZhciBuWD17YW5pbWF0aW9uZW5kOm5HKCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRpb246bkcoIkFuaW1hdGlvbiIsIkFuaW1hdGlvbkl0ZXJhdGlvbiIpLGFuaW1hdGlvbnN0YXJ0Om5HKCJBbmltYXRpb24iLCJBbmltYXRpb25TdGFydCIpLHRyYW5zaXRpb25ydW46bkcoIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uUnVuIiksdHJhbnNpdGlvbnN0YXJ0Om5HKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvblN0YXJ0IiksdHJhbnNpdGlvbmNhbmNlbDpuRygiVHJhbnNpdGlvbiIsIlRyYW5zaXRpb25DYW5jZWwiKSx0cmFuc2l0aW9uZW5kOm5HKCJUcmFuc2l0aW9uIiwiVHJhbnNpdGlvbkVuZCIpfSxuWj17fSxuSj17fTtmdW5jdGlvbiBuMChlKXtpZihuWltlXSlyZXR1cm4gblpbZV07aWYoIW5YW2VdKXJldHVybiBlO3ZhciB0LG49blhbZV07Zm9yKHQgaW4gbilpZihuLmhhc093blByb3BlcnR5KHQpJiZ0IGluIG5KKXJldHVybiBuWltlXT1uW3RdO3JldHVybiBlfXRBJiYobko9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsIkFuaW1hdGlvbkV2ZW50ImluIHdpbmRvd3x8KGRlbGV0ZSBuWC5hbmltYXRpb25lbmQuYW5pbWF0aW9uLGRlbGV0ZSBuWC5hbmltYXRpb25pdGVyYXRpb24uYW5pbWF0aW9uLGRlbGV0ZSBuWC5hbmltYXRpb25zdGFydC5hbmltYXRpb24pLCJUcmFuc2l0aW9uRXZlbnQiaW4gd2luZG93fHxkZWxldGUgblgudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTt2YXIgbjE9bjAoImFuaW1hdGlvbmVuZCIpLG4yPW4wKCJhbmltYXRpb25pdGVyYXRpb24iKSxuMz1uMCgiYW5pbWF0aW9uc3RhcnQiKSxuND1uMCgidHJhbnNpdGlvbnJ1biIpLG41PW4wKCJ0cmFuc2l0aW9uc3RhcnQiKSxuOD1uMCgidHJhbnNpdGlvbmNhbmNlbCIpLG42PW4wKCJ0cmFuc2l0aW9uZW5kIiksbjk9bmV3IE1hcCxuNz0iYWJvcnQgYXV4Q2xpY2sgYmVmb3JlVG9nZ2xlIGNhbmNlbCBjYW5QbGF5IGNhblBsYXlUaHJvdWdoIGNsaWNrIGNsb3NlIGNvbnRleHRNZW51IGNvcHkgY3V0IGRyYWcgZHJhZ0VuZCBkcmFnRW50ZXIgZHJhZ0V4aXQgZHJhZ0xlYXZlIGRyYWdPdmVyIGRyYWdTdGFydCBkcm9wIGR1cmF0aW9uQ2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGdvdFBvaW50ZXJDYXB0dXJlIGlucHV0IGludmFsaWQga2V5RG93biBrZXlQcmVzcyBrZXlVcCBsb2FkIGxvYWRlZERhdGEgbG9hZGVkTWV0YWRhdGEgbG9hZFN0YXJ0IGxvc3RQb2ludGVyQ2FwdHVyZSBtb3VzZURvd24gbW91c2VNb3ZlIG1vdXNlT3V0IG1vdXNlT3ZlciBtb3VzZVVwIHBhc3RlIHBhdXNlIHBsYXkgcGxheWluZyBwb2ludGVyQ2FuY2VsIHBvaW50ZXJEb3duIHBvaW50ZXJNb3ZlIHBvaW50ZXJPdXQgcG9pbnRlck92ZXIgcG9pbnRlclVwIHByb2dyZXNzIHJhdGVDaGFuZ2UgcmVzZXQgcmVzaXplIHNlZWtlZCBzZWVraW5nIHN0YWxsZWQgc3VibWl0IHN1c3BlbmQgdGltZVVwZGF0ZSB0b3VjaENhbmNlbCB0b3VjaEVuZCB0b3VjaFN0YXJ0IHZvbHVtZUNoYW5nZSBzY3JvbGwgdG9nZ2xlIHRvdWNoTW92ZSB3YWl0aW5nIHdoZWVsIi5zcGxpdCgiICIpO2Z1bmN0aW9uIHJlKGUsdCl7bjkuc2V0KGUsdCksZTkodCxbZV0pfW43LnB1c2goInNjcm9sbEVuZCIpO3ZhciBydD0wO2Z1bmN0aW9uIHJuKGUsdCl7cmV0dXJuIG51bGwhPWUubmFtZSYmImF1dG8iIT09ZS5uYW1lP2UubmFtZTpudWxsIT09dC5hdXRvTmFtZT90LmF1dG9OYW1lOnQuYXV0b05hbWU9ZT0iXyIrKGU9dXEuaWRlbnRpZmllclByZWZpeCkrInRfIisocnQrKykudG9TdHJpbmcoMzIpKyJfIn1mdW5jdGlvbiBycihlKXtpZihudWxsPT1lfHwic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7dmFyIHQ9bnVsbCxuPXUxO2lmKG51bGwhPT1uKWZvcih2YXIgcj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbD1lW25bcl1dO2lmKG51bGwhPWwpe2lmKCJub25lIj09PWwpcmV0dXJuIm5vbmUiO3Q9bnVsbD09dD9sOnQrIiAiK2x9fXJldHVybiBudWxsPT10P2UuZGVmYXVsdDp0fWZ1bmN0aW9uIHJsKGUsdCl7cmV0dXJuIGU9cnIoZSksbnVsbD09KHQ9cnIodCkpPyJhdXRvIj09PWU/bnVsbDplOiJhdXRvIj09PXQ/bnVsbDp0fXZhciByYT0iZnVuY3Rpb24iPT10eXBlb2YgcmVwb3J0RXJyb3I/cmVwb3J0RXJyb3I6ZnVuY3Rpb24oZSl7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cuRXJyb3JFdmVudCl7dmFyIHQ9bmV3IHdpbmRvdy5FcnJvckV2ZW50KCJlcnJvciIse2J1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxtZXNzYWdlOiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJzdHJpbmciPT10eXBlb2YgZS5tZXNzYWdlP1N0cmluZyhlLm1lc3NhZ2UpOlN0cmluZyhlKSxlcnJvcjplfSk7aWYoIXdpbmRvdy5kaXNwYXRjaEV2ZW50KHQpKXJldHVybn1lbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgbC5kZWZhdWx0JiYiZnVuY3Rpb24iPT10eXBlb2YgbC5kZWZhdWx0LmVtaXQpcmV0dXJuIHZvaWQgbC5kZWZhdWx0LmVtaXQoInVuY2F1Z2h0RXhjZXB0aW9uIixlKTtjb25zb2xlLmVycm9yKGUpfSxybz1bXSxyaT0wLHJ1PTA7ZnVuY3Rpb24gcnMoKXtmb3IodmFyIGU9cmksdD1ydT1yaT0wO3Q8ZTspe3ZhciBuPXJvW3RdO3JvW3QrK109bnVsbDt2YXIgcj1yb1t0XTtyb1t0KytdPW51bGw7dmFyIGw9cm9bdF07cm9bdCsrXT1udWxsO3ZhciBhPXJvW3RdO2lmKHJvW3QrK109bnVsbCxudWxsIT09ciYmbnVsbCE9PWwpe3ZhciBvPXIucGVuZGluZztudWxsPT09bz9sLm5leHQ9bDoobC5uZXh0PW8ubmV4dCxvLm5leHQ9bCksci5wZW5kaW5nPWx9MCE9PWEmJnJwKG4sbCxhKX19ZnVuY3Rpb24gcmMoZSx0LG4scil7cm9bcmkrK109ZSxyb1tyaSsrXT10LHJvW3JpKytdPW4scm9bcmkrK109cixydXw9cixlLmxhbmVzfD1yLG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLmxhbmVzfD1yKX1mdW5jdGlvbiByZihlLHQsbixyKXtyZXR1cm4gcmMoZSx0LG4scikscm0oZSl9ZnVuY3Rpb24gcmQoZSx0KXtyZXR1cm4gcmMoZSxudWxsLG51bGwsdCkscm0oZSl9ZnVuY3Rpb24gcnAoZSx0LG4pe2UubGFuZXN8PW47dmFyIHI9ZS5hbHRlcm5hdGU7bnVsbCE9PXImJihyLmxhbmVzfD1uKTtmb3IodmFyIGw9ITEsYT1lLnJldHVybjtudWxsIT09YTspYS5jaGlsZExhbmVzfD1uLG51bGwhPT0ocj1hLmFsdGVybmF0ZSkmJihyLmNoaWxkTGFuZXN8PW4pLDIyPT09YS50YWcmJihudWxsPT09KGU9YS5zdGF0ZU5vZGUpfHwxJmUuX3Zpc2liaWxpdHl8fChsPSEwKSksZT1hLGE9YS5yZXR1cm47cmV0dXJuIDM9PT1lLnRhZz8oYT1lLnN0YXRlTm9kZSxsJiZudWxsIT09dCYmKGw9MzEtZU4obiksbnVsbD09PShyPShlPWEuaGlkZGVuVXBkYXRlcylbbF0pP2VbbF09W3RdOnIucHVzaCh0KSx0LmxhbmU9MHgyMDAwMDAwMHxuKSxhKTpudWxsfWZ1bmN0aW9uIHJtKGUpe2lmKDUwPHUyKXRocm93IHUyPTAsdTM9bnVsbCxFcnJvcih1KDE4NSkpO2Zvcih2YXIgdD1lLnJldHVybjtudWxsIT09dDspdD0oZT10KS5yZXR1cm47cmV0dXJuIDM9PT1lLnRhZz9lLnN0YXRlTm9kZTpudWxsfXZhciByaD17fTtmdW5jdGlvbiByZyhlLHQsbixyKXt0aGlzLnRhZz1lLHRoaXMua2V5PW4sdGhpcy5zaWJsaW5nPXRoaXMuY2hpbGQ9dGhpcy5yZXR1cm49dGhpcy5zdGF0ZU5vZGU9dGhpcy50eXBlPXRoaXMuZWxlbWVudFR5cGU9bnVsbCx0aGlzLmluZGV4PTAsdGhpcy5yZWZDbGVhbnVwPXRoaXMucmVmPW51bGwsdGhpcy5wZW5kaW5nUHJvcHM9dCx0aGlzLmRlcGVuZGVuY2llcz10aGlzLm1lbW9pemVkU3RhdGU9dGhpcy51cGRhdGVRdWV1ZT10aGlzLm1lbW9pemVkUHJvcHM9bnVsbCx0aGlzLm1vZGU9cix0aGlzLnN1YnRyZWVGbGFncz10aGlzLmZsYWdzPTAsdGhpcy5kZWxldGlvbnM9bnVsbCx0aGlzLmNoaWxkTGFuZXM9dGhpcy5sYW5lcz0wLHRoaXMuYWx0ZXJuYXRlPW51bGx9ZnVuY3Rpb24gcnYoZSx0LG4scil7cmV0dXJuIG5ldyByZyhlLHQsbixyKX1mdW5jdGlvbiByeShlKXtyZXR1cm4hKCEoZT1lLnByb3RvdHlwZSl8fCFlLmlzUmVhY3RDb21wb25lbnQpfWZ1bmN0aW9uIHJiKGUsdCl7dmFyIG49ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT1uPygobj1ydihlLnRhZyx0LGUua2V5LGUubW9kZSkpLmVsZW1lbnRUeXBlPWUuZWxlbWVudFR5cGUsbi50eXBlPWUudHlwZSxuLnN0YXRlTm9kZT1lLnN0YXRlTm9kZSxuLmFsdGVybmF0ZT1lLGUuYWx0ZXJuYXRlPW4pOihuLnBlbmRpbmdQcm9wcz10LG4udHlwZT1lLnR5cGUsbi5mbGFncz0wLG4uc3VidHJlZUZsYWdzPTAsbi5kZWxldGlvbnM9bnVsbCksbi5mbGFncz0weDdlMDAwMDAmZS5mbGFncyxuLmNoaWxkTGFuZXM9ZS5jaGlsZExhbmVzLG4ubGFuZXM9ZS5sYW5lcyxuLmNoaWxkPWUuY2hpbGQsbi5tZW1vaXplZFByb3BzPWUubWVtb2l6ZWRQcm9wcyxuLm1lbW9pemVkU3RhdGU9ZS5tZW1vaXplZFN0YXRlLG4udXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0PWUuZGVwZW5kZW5jaWVzLG4uZGVwZW5kZW5jaWVzPW51bGw9PT10P251bGw6e2xhbmVzOnQubGFuZXMsZmlyc3RDb250ZXh0OnQuZmlyc3RDb250ZXh0fSxuLnNpYmxpbmc9ZS5zaWJsaW5nLG4uaW5kZXg9ZS5pbmRleCxuLnJlZj1lLnJlZixuLnJlZkNsZWFudXA9ZS5yZWZDbGVhbnVwLG59ZnVuY3Rpb24gcncoZSx0KXtlLmZsYWdzJj0weDdlMDAwMDI7dmFyIG49ZS5hbHRlcm5hdGU7cmV0dXJuIG51bGw9PT1uPyhlLmNoaWxkTGFuZXM9MCxlLmxhbmVzPXQsZS5jaGlsZD1udWxsLGUuc3VidHJlZUZsYWdzPTAsZS5tZW1vaXplZFByb3BzPW51bGwsZS5tZW1vaXplZFN0YXRlPW51bGwsZS51cGRhdGVRdWV1ZT1udWxsLGUuZGVwZW5kZW5jaWVzPW51bGwsZS5zdGF0ZU5vZGU9bnVsbCk6KGUuY2hpbGRMYW5lcz1uLmNoaWxkTGFuZXMsZS5sYW5lcz1uLmxhbmVzLGUuY2hpbGQ9bi5jaGlsZCxlLnN1YnRyZWVGbGFncz0wLGUuZGVsZXRpb25zPW51bGwsZS5tZW1vaXplZFByb3BzPW4ubWVtb2l6ZWRQcm9wcyxlLm1lbW9pemVkU3RhdGU9bi5tZW1vaXplZFN0YXRlLGUudXBkYXRlUXVldWU9bi51cGRhdGVRdWV1ZSxlLnR5cGU9bi50eXBlLGUuZGVwZW5kZW5jaWVzPW51bGw9PT0odD1uLmRlcGVuZGVuY2llcyk/bnVsbDp7bGFuZXM6dC5sYW5lcyxmaXJzdENvbnRleHQ6dC5maXJzdENvbnRleHR9KSxlfWZ1bmN0aW9uIHJrKGUsdCxuLHIsbCxhKXt2YXIgbz0wO2lmKHI9ZSwiZnVuY3Rpb24iPT10eXBlb2YgZSlyeShlKSYmKG89MSk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpbz0hZnVuY3Rpb24oZSx0LG4pe2lmKDE9PT1ufHxudWxsIT10Lml0ZW1Qcm9wKXJldHVybiExO3N3aXRjaChlKXtjYXNlIm1ldGEiOmNhc2UidGl0bGUiOnJldHVybiEwO2Nhc2Uic3R5bGUiOmlmKCJzdHJpbmciIT10eXBlb2YgdC5wcmVjZWRlbmNlfHwic3RyaW5nIiE9dHlwZW9mIHQuaHJlZnx8IiI9PT10LmhyZWYpYnJlYWs7cmV0dXJuITA7Y2FzZSJsaW5rIjppZigic3RyaW5nIiE9dHlwZW9mIHQucmVsfHwic3RyaW5nIiE9dHlwZW9mIHQuaHJlZnx8IiI9PT10LmhyZWZ8fHQub25Mb2FkfHx0Lm9uRXJyb3IpYnJlYWs7aWYoInN0eWxlc2hlZXQiPT09dC5yZWwpcmV0dXJuIGU9dC5kaXNhYmxlZCwic3RyaW5nIj09dHlwZW9mIHQucHJlY2VkZW5jZSYmbnVsbD09ZTtyZXR1cm4hMDtjYXNlInNjcmlwdCI6aWYodC5hc3luYyYmImZ1bmN0aW9uIiE9dHlwZW9mIHQuYXN5bmMmJiJzeW1ib2wiIT10eXBlb2YgdC5hc3luYyYmIXQub25Mb2FkJiYhdC5vbkVycm9yJiZ0LnNyYyYmInN0cmluZyI9PXR5cGVvZiB0LnNyYylyZXR1cm4hMH1yZXR1cm4hMX0oZSxuLGVlLmN1cnJlbnQpPyJodG1sIj09PWV8fCJoZWFkIj09PWV8fCJib2R5Ij09PWU/Mjc6NToyNjtlbHNlIGU6c3dpdGNoKGUpe2Nhc2UgQTpyZXR1cm4oZT1ydigzMSxuLHQsbCkpLmVsZW1lbnRUeXBlPUEsZS5sYW5lcz1hLGU7Y2FzZSBDOnJldHVybiByUyhuLmNoaWxkcmVuLGwsYSx0KTtjYXNlIFQ6bz04LGx8PTI0O2JyZWFrO2Nhc2UgejpyZXR1cm4oZT1ydigxMixuLHQsMnxsKSkuZWxlbWVudFR5cGU9eixlLmxhbmVzPWEsZTtjYXNlIEQ6cmV0dXJuKGU9cnYoMTMsbix0LGwpKS5lbGVtZW50VHlwZT1ELGUubGFuZXM9YSxlO2Nhc2UgRjpyZXR1cm4oZT1ydigxOSxuLHQsbCkpLmVsZW1lbnRUeXBlPUYsZS5sYW5lcz1hLGU7Y2FzZSBqOmNhc2UgQjpyZXR1cm4oZT1ydigzMCxuLHQsZT0zMnxsKSkuZWxlbWVudFR5cGU9QixlLmxhbmVzPWEsZS5zdGF0ZU5vZGU9e2F1dG9OYW1lOm51bGwscGFpcmVkOm51bGwsY2xvbmVzOm51bGwscmVmOm51bGx9LGU7ZGVmYXVsdDppZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lKXN3aXRjaChlLiQkdHlwZW9mKXtjYXNlIEw6bz0xMDticmVhayBlO2Nhc2UgTzpvPTk7YnJlYWsgZTtjYXNlIE06bz0xMTticmVhayBlO2Nhc2UgSTpvPTE0O2JyZWFrIGU7Y2FzZSBSOm89MTYscj1udWxsO2JyZWFrIGV9bz0yOSxuPUVycm9yKHUoMTMwLG51bGw9PT1lPyJudWxsIjp0eXBlb2YgZSwiIikpLHI9bnVsbH1yZXR1cm4odD1ydihvLG4sdCxsKSkuZWxlbWVudFR5cGU9ZSx0LnR5cGU9cix0LmxhbmVzPWEsdH1mdW5jdGlvbiByUyhlLHQsbixyKXtyZXR1cm4oZT1ydig3LGUscix0KSkubGFuZXM9bixlfWZ1bmN0aW9uIHJFKGUsdCxuKXtyZXR1cm4oZT1ydig2LGUsbnVsbCx0KSkubGFuZXM9bixlfWZ1bmN0aW9uIHJ4KGUpe3ZhciB0PXJ2KDE4LG51bGwsbnVsbCwwKTtyZXR1cm4gdC5zdGF0ZU5vZGU9ZSx0fWZ1bmN0aW9uIHJfKGUsdCxuKXtyZXR1cm4odD1ydig0LG51bGwhPT1lLmNoaWxkcmVuP2UuY2hpbGRyZW46W10sZS5rZXksdCkpLmxhbmVzPW4sdC5zdGF0ZU5vZGU9e2NvbnRhaW5lckluZm86ZS5jb250YWluZXJJbmZvLHBlbmRpbmdDaGlsZHJlbjpudWxsLGltcGxlbWVudGF0aW9uOmUuaW1wbGVtZW50YXRpb259LHR9dmFyIHJOPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHJQKGUsdCl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSl7dmFyIG49ck4uZ2V0KGUpO3JldHVybiB2b2lkIDAhPT1uP246KHQ9e3ZhbHVlOmUsc291cmNlOnQsc3RhY2s6ZWYodCl9LHJOLnNldChlLHQpLHQpfXJldHVybnt2YWx1ZTplLHNvdXJjZTp0LHN0YWNrOmVmKHQpfX12YXIgckM9W10sclQ9MCxyej1udWxsLHJPPTAsckw9W10sck09MCxyRD1udWxsLHJGPTEsckk9IiI7ZnVuY3Rpb24gclIoZSx0KXtyQ1tyVCsrXT1yTyxyQ1tyVCsrXT1yeixyej1lLHJPPXR9ZnVuY3Rpb24gckEoZSx0LG4pe3JMW3JNKytdPXJGLHJMW3JNKytdPXJJLHJMW3JNKytdPXJELHJEPWU7dmFyIHI9ckY7ZT1ySTt2YXIgbD0zMi1lTihyKS0xO3ImPX4oMTw8bCksbis9MTt2YXIgYT0zMi1lTih0KStsO2lmKDMwPGEpe3ZhciBvPWwtbCU1O2E9KHImKDE8PG8pLTEpLnRvU3RyaW5nKDMyKSxyPj49byxsLT1vLHJGPTE8PDMyLWVOKHQpK2x8bjw8bHxyLHJJPWErZX1lbHNlIHJGPTE8PGF8bjw8bHxyLHJJPWV9ZnVuY3Rpb24gcmooZSl7bnVsbCE9PWUucmV0dXJuJiYoclIoZSwxKSxyQShlLDEsMCkpfWZ1bmN0aW9uIHJVKGUpe2Zvcig7ZT09PXJ6Oylyej1yQ1stLXJUXSxyQ1tyVF09bnVsbCxyTz1yQ1stLXJUXSxyQ1tyVF09bnVsbDtmb3IoO2U9PT1yRDspckQ9ckxbLS1yTV0sckxbck1dPW51bGwsckk9ckxbLS1yTV0sckxbck1dPW51bGwsckY9ckxbLS1yTV0sckxbck1dPW51bGx9ZnVuY3Rpb24gckIoZSx0KXtyTFtyTSsrXT1yRixyTFtyTSsrXT1ySSxyTFtyTSsrXT1yRCxyRj10LmlkLHJJPXQub3ZlcmZsb3csckQ9ZX12YXIgclY9bnVsbCxyJD1udWxsLHJIPSExLHJRPW51bGwsclc9ITEscnE9RXJyb3IodSg1MTkpKTtmdW5jdGlvbiBySyhlKXt2YXIgdD1FcnJvcih1KDQxOCwxPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdPyJ0ZXh0IjoiSFRNTCIsIiIpKTt0aHJvdyByMChyUCh0LGUpKSxycX1mdW5jdGlvbiByWShlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUudHlwZSxyPWUubWVtb2l6ZWRQcm9wcztzd2l0Y2godFtlV109ZSx0W2VxXT1yLG4pe2Nhc2UiZGlhbG9nIjpzWigiY2FuY2VsIix0KSxzWigiY2xvc2UiLHQpO2JyZWFrO2Nhc2UiaWZyYW1lIjpjYXNlIm9iamVjdCI6Y2FzZSJlbWJlZCI6c1ooImxvYWQiLHQpO2JyZWFrO2Nhc2UidmlkZW8iOmNhc2UiYXVkaW8iOmZvcihuPTA7bjxzWS5sZW5ndGg7bisrKXNaKHNZW25dLHQpO2JyZWFrO2Nhc2Uic291cmNlIjpzWigiZXJyb3IiLHQpO2JyZWFrO2Nhc2UiaW1nIjpjYXNlImltYWdlIjpjYXNlImxpbmsiOnNaKCJlcnJvciIsdCksc1ooImxvYWQiLHQpO2JyZWFrO2Nhc2UiZGV0YWlscyI6c1ooInRvZ2dsZSIsdCk7YnJlYWs7Y2FzZSJpbnB1dCI6c1ooImludmFsaWQiLHQpLHRnKHQsci52YWx1ZSxyLmRlZmF1bHRWYWx1ZSxyLmNoZWNrZWQsci5kZWZhdWx0Q2hlY2tlZCxyLnR5cGUsci5uYW1lLCEwKTticmVhaztjYXNlInNlbGVjdCI6c1ooImludmFsaWQiLHQpO2JyZWFrO2Nhc2UidGV4dGFyZWEiOnNaKCJpbnZhbGlkIix0KSx0dyh0LHIudmFsdWUsci5kZWZhdWx0VmFsdWUsci5jaGlsZHJlbil9InN0cmluZyIhPXR5cGVvZihuPXIuY2hpbGRyZW4pJiYibnVtYmVyIiE9dHlwZW9mIG4mJiJiaWdpbnQiIT10eXBlb2Ygbnx8dC50ZXh0Q29udGVudD09PSIiK258fCEwPT09ci5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmd8fGN0KHQudGV4dENvbnRlbnQsbik/KG51bGwhPXIucG9wb3ZlciYmKHNaKCJiZWZvcmV0b2dnbGUiLHQpLHNaKCJ0b2dnbGUiLHQpKSxudWxsIT1yLm9uU2Nyb2xsJiZzWigic2Nyb2xsIix0KSxudWxsIT1yLm9uU2Nyb2xsRW5kJiZzWigic2Nyb2xsZW5kIix0KSxudWxsIT1yLm9uQ2xpY2smJih0Lm9uY2xpY2s9dFQpLHQ9ITApOnQ9ITEsdHx8cksoZSwhMCl9ZnVuY3Rpb24gckcoZSl7Zm9yKHJWPWUucmV0dXJuO3JWOylzd2l0Y2goclYudGFnKXtjYXNlIDU6Y2FzZSAzMTpjYXNlIDEzOnJXPSExO3JldHVybjtjYXNlIDI3OmNhc2UgMzpyVz0hMDtyZXR1cm47ZGVmYXVsdDpyVj1yVi5yZXR1cm59fWZ1bmN0aW9uIHJYKGUpe2lmKGUhPT1yVilyZXR1cm4hMTtpZighckgpcmV0dXJuIHJHKGUpLHJIPSEwLCExO3ZhciB0LG49ZS50YWc7aWYoKHQ9MyE9PW4mJjI3IT09bikmJigodD01PT09bikmJih0PSJmb3JtIj09PSh0PWUudHlwZSl8fCJidXR0b24iPT09dHx8Y2YoZS50eXBlLGUubWVtb2l6ZWRQcm9wcykpLHQ9IXQpLHQmJnIkJiZySyhlKSxyRyhlKSwxMz09PW4pe2lmKCEoZT1udWxsIT09KGU9ZS5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IodSgzMTcpKTtyJD1jcShlKX1lbHNlIGlmKDMxPT09bil7aWYoIShlPW51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpP2UuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcih1KDMxNykpO3IkPWNxKGUpfWVsc2UgMjc9PT1uPyhuPXIkLGN5KGUudHlwZSk/KGU9Y1csY1c9bnVsbCxyJD1lKTpyJD1uKTpyJD1yVj9jUShlLnN0YXRlTm9kZS5uZXh0U2libGluZyk6bnVsbDtyZXR1cm4hMH1mdW5jdGlvbiByWigpe3IkPXJWPW51bGwsckg9ITF9ZnVuY3Rpb24gckooKXt2YXIgZT1yUTtyZXR1cm4gbnVsbCE9PWUmJihudWxsPT09dWo/dWo9ZTp1ai5wdXNoLmFwcGx5KHVqLGUpLHJRPW51bGwpLGV9ZnVuY3Rpb24gcjAoZSl7bnVsbD09PXJRP3JRPVtlXTpyUS5wdXNoKGUpfXZhciByMT1YKG51bGwpLHIyPW51bGwscjM9bnVsbDtmdW5jdGlvbiByNChlLHQsbil7SihyMSx0Ll9jdXJyZW50VmFsdWUpLHQuX2N1cnJlbnRWYWx1ZT1ufWZ1bmN0aW9uIHI1KGUpe2UuX2N1cnJlbnRWYWx1ZT1yMS5jdXJyZW50LFoocjEpfWZ1bmN0aW9uIHI4KGUsdCxuKXtmb3IoO251bGwhPT1lOyl7dmFyIHI9ZS5hbHRlcm5hdGU7aWYoKGUuY2hpbGRMYW5lcyZ0KSE9PXQ/KGUuY2hpbGRMYW5lc3w9dCxudWxsIT09ciYmKHIuY2hpbGRMYW5lc3w9dCkpOm51bGwhPT1yJiYoci5jaGlsZExhbmVzJnQpIT09dCYmKHIuY2hpbGRMYW5lc3w9dCksZT09PW4pYnJlYWs7ZT1lLnJldHVybn19ZnVuY3Rpb24gcjYoZSx0LG4scil7dmFyIGw9ZS5jaGlsZDtmb3IobnVsbCE9PWwmJihsLnJldHVybj1lKTtudWxsIT09bDspe3ZhciBhPWwuZGVwZW5kZW5jaWVzO2lmKG51bGwhPT1hKXt2YXIgbz1sLmNoaWxkO2E9YS5maXJzdENvbnRleHQ7ZTpmb3IoO251bGwhPT1hOyl7dmFyIGk9YTthPWw7Zm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspaWYoaS5jb250ZXh0PT09dFtzXSl7YS5sYW5lc3w9bixudWxsIT09KGk9YS5hbHRlcm5hdGUpJiYoaS5sYW5lc3w9bikscjgoYS5yZXR1cm4sbixlKSxyfHwobz1udWxsKTticmVhayBlfWE9aS5uZXh0fX1lbHNlIGlmKDE4PT09bC50YWcpe2lmKG51bGw9PT0obz1sLnJldHVybikpdGhyb3cgRXJyb3IodSgzNDEpKTtvLmxhbmVzfD1uLG51bGwhPT0oYT1vLmFsdGVybmF0ZSkmJihhLmxhbmVzfD1uKSxyOChvLG4sZSksbz1udWxsfWVsc2Ugbz1sLmNoaWxkO2lmKG51bGwhPT1vKW8ucmV0dXJuPWw7ZWxzZSBmb3Iobz1sO251bGwhPT1vOyl7aWYobz09PWUpe289bnVsbDticmVha31pZihudWxsIT09KGw9by5zaWJsaW5nKSl7bC5yZXR1cm49by5yZXR1cm4sbz1sO2JyZWFrfW89by5yZXR1cm59bD1vfX1mdW5jdGlvbiByOShlLHQsbixyKXtlPW51bGw7Zm9yKHZhciBsPXQsYT0hMTtudWxsIT09bDspe2lmKCFhKXtpZigwIT0oNTI0Mjg4JmwuZmxhZ3MpKWE9ITA7ZWxzZSBpZigwIT0oMjYyMTQ0JmwuZmxhZ3MpKWJyZWFrfWlmKDEwPT09bC50YWcpe3ZhciBvPWwuYWx0ZXJuYXRlO2lmKG51bGw9PT1vKXRocm93IEVycm9yKHUoMzg3KSk7aWYobnVsbCE9PShvPW8ubWVtb2l6ZWRQcm9wcykpe3ZhciBpPWwudHlwZTtuQShsLnBlbmRpbmdQcm9wcy52YWx1ZSxvLnZhbHVlKXx8KG51bGwhPT1lP2UucHVzaChpKTplPVtpXSl9fWVsc2UgaWYobD09PWVyLmN1cnJlbnQpe2lmKG51bGw9PT0obz1sLmFsdGVybmF0ZSkpdGhyb3cgRXJyb3IodSgzODcpKTtvLm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSE9PWwubWVtb2l6ZWRTdGF0ZS5tZW1vaXplZFN0YXRlJiYobnVsbCE9PWU/ZS5wdXNoKGZ2KTplPVtmdl0pfWw9bC5yZXR1cm59bnVsbCE9PWUmJnI2KHQsZSxuLHIpLHQuZmxhZ3N8PTI2MjE0NH1mdW5jdGlvbiByNyhlKXtmb3IoZT1lLmZpcnN0Q29udGV4dDtudWxsIT09ZTspe2lmKCFuQShlLmNvbnRleHQuX2N1cnJlbnRWYWx1ZSxlLm1lbW9pemVkVmFsdWUpKXJldHVybiEwO2U9ZS5uZXh0fXJldHVybiExfWZ1bmN0aW9uIGxlKGUpe3IyPWUscjM9bnVsbCxudWxsIT09KGU9ZS5kZXBlbmRlbmNpZXMpJiYoZS5maXJzdENvbnRleHQ9bnVsbCl9ZnVuY3Rpb24gbHQoZSl7cmV0dXJuIGxyKHIyLGUpfWZ1bmN0aW9uIGxuKGUsdCl7cmV0dXJuIG51bGw9PT1yMiYmbGUoZSksbHIoZSx0KX1mdW5jdGlvbiBscihlLHQpe3ZhciBuPXQuX2N1cnJlbnRWYWx1ZTtpZih0PXtjb250ZXh0OnQsbWVtb2l6ZWRWYWx1ZTpuLG5leHQ6bnVsbH0sbnVsbD09PXIzKXtpZihudWxsPT09ZSl0aHJvdyBFcnJvcih1KDMwOCkpO3IzPXQsZS5kZXBlbmRlbmNpZXM9e2xhbmVzOjAsZmlyc3RDb250ZXh0OnR9LGUuZmxhZ3N8PTUyNDI4OH1lbHNlIHIzPXIzLm5leHQ9dDtyZXR1cm4gbn12YXIgbGw9InVuZGVmaW5lZCIhPXR5cGVvZiBBYm9ydENvbnRyb2xsZXI/QWJvcnRDb250cm9sbGVyOmZ1bmN0aW9uKCl7dmFyIGU9W10sdD10aGlzLnNpZ25hbD17YWJvcnRlZDohMSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsbil7ZS5wdXNoKG4pfX07dGhpcy5hYm9ydD1mdW5jdGlvbigpe3QuYWJvcnRlZD0hMCxlLmZvckVhY2goZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX0pfX0sbGE9YS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLGxvPWEudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksbGk9eyQkdHlwZW9mOkwsQ29uc3VtZXI6bnVsbCxQcm92aWRlcjpudWxsLF9jdXJyZW50VmFsdWU6bnVsbCxfY3VycmVudFZhbHVlMjpudWxsLF90aHJlYWRDb3VudDowfTtmdW5jdGlvbiBsdSgpe3JldHVybntjb250cm9sbGVyOm5ldyBsbCxkYXRhOm5ldyBNYXAscmVmQ291bnQ6MH19ZnVuY3Rpb24gbHMoZSl7ZS5yZWZDb3VudC0tLDA9PT1lLnJlZkNvdW50JiZsYShsbyxmdW5jdGlvbigpe2UuY29udHJvbGxlci5hYm9ydCgpfSl9ZnVuY3Rpb24gbGMoZSx0KXtpZigwIT0oNDE5NDA0OCZlLnBlbmRpbmdMYW5lcykpe3ZhciBuPWUudHJhbnNpdGlvblR5cGVzO2ZvcihudWxsPT09biYmKG49ZS50cmFuc2l0aW9uVHlwZXM9W10pLGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIHI9dFtlXTstMT09PW4uaW5kZXhPZihyKSYmbi5wdXNoKHIpfX19dmFyIGxmPW51bGwsbGQ9bnVsbCxscD0wLGxtPTAsbGg9bnVsbDtmdW5jdGlvbiBsZygpe2lmKDA9PS0tbHAmJihsZj1udWxsLG51bGwhPT1sZCkpe251bGwhPT1saCYmKGxoLnN0YXR1cz0iZnVsZmlsbGVkIik7dmFyIGU9bGQ7bGQ9bnVsbCxsbT0wLGxoPW51bGw7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspKDAsZVt0XSkoKX19dmFyIGx2PVcuUztXLlM9ZnVuY3Rpb24oZSx0KXtpZih1Vj1ldigpLCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnRoZW4mJmZ1bmN0aW9uKGUsdCl7aWYobnVsbD09PWxkKXt2YXIgbj1sZD1bXTtscD0wLGxtPXNIKCksbGg9e3N0YXR1czoicGVuZGluZyIsdmFsdWU6dm9pZCAwLHRoZW46ZnVuY3Rpb24oZSl7bi5wdXNoKGUpfX19bHArKyx0LnRoZW4obGcsbGcpfSgwLHQpLG51bGwhPT1sZilmb3IodmFyIG49c087bnVsbCE9PW47KWxjKG4sbGYpLG49bi5uZXh0O2lmKG51bGwhPT0obj1lLnR5cGVzKSl7Zm9yKHZhciByPXNPO251bGwhPT1yOylsYyhyLG4pLHI9ci5uZXh0O2lmKDAhPT1sbSl7bnVsbD09PShyPWxmKSYmKHI9bGY9W10pO2Zvcih2YXIgbD0wO2w8bi5sZW5ndGg7bCsrKXt2YXIgYT1uW2xdOy0xPT09ci5pbmRleE9mKGEpJiZyLnB1c2goYSl9fX1udWxsIT09bHYmJmx2KGUsdCl9O3ZhciBseT1YKG51bGwpO2Z1bmN0aW9uIGxiKCl7dmFyIGU9bHkuY3VycmVudDtyZXR1cm4gbnVsbCE9PWU/ZTp1RS5wb29sZWRDYWNoZX1mdW5jdGlvbiBsdyhlLHQpe251bGw9PT10P0oobHksbHkuY3VycmVudCk6SihseSx0LnBvb2wpfWZ1bmN0aW9uIGxrKCl7dmFyIGU9bGIoKTtyZXR1cm4gbnVsbD09PWU/bnVsbDp7cGFyZW50OmxpLl9jdXJyZW50VmFsdWUscG9vbDplfX12YXIgbFM9RXJyb3IodSg0NjApKSxsRT1FcnJvcih1KDQ3NCkpLGx4PUVycm9yKHUoNTQyKSksbF89e3RoZW46ZnVuY3Rpb24oKXt9fTtmdW5jdGlvbiBsTihlKXtyZXR1cm4iZnVsZmlsbGVkIj09PShlPWUuc3RhdHVzKXx8InJlamVjdGVkIj09PWV9ZnVuY3Rpb24gbFAoZSx0LG4pe3N3aXRjaCh2b2lkIDA9PT0obj1lW25dKT9lLnB1c2godCk6biE9PXQmJih0LnRoZW4odFQsdFQpLHQ9biksdC5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpyZXR1cm4gdC52YWx1ZTtjYXNlInJlamVjdGVkIjp0aHJvdyBsTyhlPXQucmVhc29uKSxlO2RlZmF1bHQ6aWYoInN0cmluZyI9PXR5cGVvZiB0LnN0YXR1cyl0LnRoZW4odFQsdFQpO2Vsc2V7aWYobnVsbCE9PShlPXVFKSYmMTAwPGUuc2hlbGxTdXNwZW5kQ291bnRlcil0aHJvdyBFcnJvcih1KDQ4MikpOyhlPXQpLnN0YXR1cz0icGVuZGluZyIsZS50aGVuKGZ1bmN0aW9uKGUpe2lmKCJwZW5kaW5nIj09PXQuc3RhdHVzKXt2YXIgbj10O24uc3RhdHVzPSJmdWxmaWxsZWQiLG4udmFsdWU9ZX19LGZ1bmN0aW9uKGUpe2lmKCJwZW5kaW5nIj09PXQuc3RhdHVzKXt2YXIgbj10O24uc3RhdHVzPSJyZWplY3RlZCIsbi5yZWFzb249ZX19KX1zd2l0Y2godC5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpyZXR1cm4gdC52YWx1ZTtjYXNlInJlamVjdGVkIjp0aHJvdyBsTyhlPXQucmVhc29uKSxlfXRocm93IGxUPXQsbFN9fWZ1bmN0aW9uIGxDKGUpe3RyeXtyZXR1cm4oMCxlLl9pbml0KShlLl9wYXlsb2FkKX1jYXRjaChlKXtpZihudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS50aGVuKXRocm93IGxUPWUsbFM7dGhyb3cgZX19dmFyIGxUPW51bGw7ZnVuY3Rpb24gbHooKXtpZihudWxsPT09bFQpdGhyb3cgRXJyb3IodSg0NTkpKTt2YXIgZT1sVDtyZXR1cm4gbFQ9bnVsbCxlfWZ1bmN0aW9uIGxPKGUpe2lmKGU9PT1sU3x8ZT09PWx4KXRocm93IEVycm9yKHUoNDgzKSl9dmFyIGxMPW51bGwsbE09MDtmdW5jdGlvbiBsRChlKXt2YXIgdD1sTTtyZXR1cm4gbE0rPTEsbnVsbD09PWxMJiYobEw9W10pLGxQKGxMLGUsdCl9ZnVuY3Rpb24gbEYoZSx0KXtlLnJlZj12b2lkIDAhPT0odD10LnByb3BzLnJlZik/dDpudWxsfWZ1bmN0aW9uIGxJKGUsdCl7aWYodC4kJHR5cGVvZj09PV8pdGhyb3cgRXJyb3IodSg1MjUpKTt0aHJvdyBFcnJvcih1KDMxLCJbb2JqZWN0IE9iamVjdF0iPT09KGU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKT8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyh0KS5qb2luKCIsICIpKyJ9IjplKSl9ZnVuY3Rpb24gbFIoZSl7ZnVuY3Rpb24gdCh0LG4pe2lmKGUpe3ZhciByPXQuZGVsZXRpb25zO251bGw9PT1yPyh0LmRlbGV0aW9ucz1bbl0sdC5mbGFnc3w9MTYpOnIucHVzaChuKX19ZnVuY3Rpb24gbihuLHIpe2lmKCFlKXJldHVybiBudWxsO2Zvcig7bnVsbCE9PXI7KXQobixyKSxyPXIuc2libGluZztyZXR1cm4gbnVsbH1mdW5jdGlvbiByKGUpe2Zvcih2YXIgdD1uZXcgTWFwO251bGwhPT1lOyludWxsIT09ZS5rZXk/dC5zZXQoZS5rZXksZSk6dC5zZXQoZS5pbmRleCxlKSxlPWUuc2libGluZztyZXR1cm4gdH1mdW5jdGlvbiBsKGUsdCl7cmV0dXJuKGU9cmIoZSx0KSkuaW5kZXg9MCxlLnNpYmxpbmc9bnVsbCxlfWZ1bmN0aW9uIGEodCxuLHIpe3JldHVybih0LmluZGV4PXIsZSk/bnVsbCE9PShyPXQuYWx0ZXJuYXRlKT8ocj1yLmluZGV4KTxuPyh0LmZsYWdzfD0weDgwMDAwMDIsbik6cjoodC5mbGFnc3w9MHg4MDAwMDAyLG4pOih0LmZsYWdzfD0xMDQ4NTc2LG4pfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGUmJm51bGw9PT10LmFsdGVybmF0ZSYmKHQuZmxhZ3N8PTB4ODAwMDAwMiksdH1mdW5jdGlvbiBpKGUsdCxuLHIpe3JldHVybiBudWxsPT09dHx8NiE9PXQudGFnPyh0PXJFKG4sZS5tb2RlLHIpKS5yZXR1cm49ZToodD1sKHQsbikpLnJldHVybj1lLHR9ZnVuY3Rpb24gcyhlLHQsbixyKXt2YXIgYT1uLnR5cGU7cmV0dXJuIGE9PT1DPyhsRihlPWYoZSx0LG4ucHJvcHMuY2hpbGRyZW4scixuLmtleSksbiksZSk6KG51bGwhPT10JiYodC5lbGVtZW50VHlwZT09PWF8fCJvYmplY3QiPT10eXBlb2YgYSYmbnVsbCE9PWEmJmEuJCR0eXBlb2Y9PT1SJiZsQyhhKT09PXQudHlwZSk/bEYodD1sKHQsbi5wcm9wcyksbik6bEYodD1yayhuLnR5cGUsbi5rZXksbi5wcm9wcyxudWxsLGUubW9kZSxyKSxuKSx0LnJldHVybj1lLHQpfWZ1bmN0aW9uIGMoZSx0LG4scil7cmV0dXJuIG51bGw9PT10fHw0IT09dC50YWd8fHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8hPT1uLmNvbnRhaW5lckluZm98fHQuc3RhdGVOb2RlLmltcGxlbWVudGF0aW9uIT09bi5pbXBsZW1lbnRhdGlvbj8odD1yXyhuLGUubW9kZSxyKSkucmV0dXJuPWU6KHQ9bCh0LG4uY2hpbGRyZW58fFtdKSkucmV0dXJuPWUsdH1mdW5jdGlvbiBmKGUsdCxuLHIsYSl7cmV0dXJuIG51bGw9PT10fHw3IT09dC50YWc/KHQ9clMobixlLm1vZGUscixhKSkucmV0dXJuPWU6KHQ9bCh0LG4pKS5yZXR1cm49ZSx0fWZ1bmN0aW9uIGQoZSx0LG4pe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmIiIhPT10fHwibnVtYmVyIj09dHlwZW9mIHR8fCJiaWdpbnQiPT10eXBlb2YgdClyZXR1cm4odD1yRSgiIit0LGUubW9kZSxuKSkucmV0dXJuPWUsdDtpZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10KXtzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBOOnJldHVybiBsRihuPXJrKHQudHlwZSx0LmtleSx0LnByb3BzLG51bGwsZS5tb2RlLG4pLHQpLG4ucmV0dXJuPWUsbjtjYXNlIFA6cmV0dXJuKHQ9cl8odCxlLm1vZGUsbikpLnJldHVybj1lLHQ7Y2FzZSBSOnJldHVybiBkKGUsdD1sQyh0KSxuKX1pZihRKHQpfHwkKHQpKXJldHVybih0PXJTKHQsZS5tb2RlLG4sbnVsbCkpLnJldHVybj1lLHQ7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbilyZXR1cm4gZChlLGxEKHQpLG4pO2lmKHQuJCR0eXBlb2Y9PT1MKXJldHVybiBkKGUsbG4oZSx0KSxuKTtsSShlLHQpfXJldHVybiBudWxsfWZ1bmN0aW9uIHAoZSx0LG4scil7dmFyIGw9bnVsbCE9PXQ/dC5rZXk6bnVsbDtpZigic3RyaW5nIj09dHlwZW9mIG4mJiIiIT09bnx8Im51bWJlciI9PXR5cGVvZiBufHwiYmlnaW50Ij09dHlwZW9mIG4pcmV0dXJuIG51bGwhPT1sP251bGw6aShlLHQsIiIrbixyKTtpZigib2JqZWN0Ij09dHlwZW9mIG4mJm51bGwhPT1uKXtzd2l0Y2gobi4kJHR5cGVvZil7Y2FzZSBOOnJldHVybiBuLmtleT09PWw/cyhlLHQsbixyKTpudWxsO2Nhc2UgUDpyZXR1cm4gbi5rZXk9PT1sP2MoZSx0LG4scik6bnVsbDtjYXNlIFI6cmV0dXJuIHAoZSx0LG49bEMobikscil9aWYoUShuKXx8JChuKSlyZXR1cm4gbnVsbCE9PWw/bnVsbDpmKGUsdCxuLHIsbnVsbCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4udGhlbilyZXR1cm4gcChlLHQsbEQobikscik7aWYobi4kJHR5cGVvZj09PUwpcmV0dXJuIHAoZSx0LGxuKGUsbikscik7bEkoZSxuKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBtKGUsdCxuLHIsbCl7aWYoInN0cmluZyI9PXR5cGVvZiByJiYiIiE9PXJ8fCJudW1iZXIiPT10eXBlb2Ygcnx8ImJpZ2ludCI9PXR5cGVvZiByKXJldHVybiBpKHQsZT1lLmdldChuKXx8bnVsbCwiIityLGwpO2lmKCJvYmplY3QiPT10eXBlb2YgciYmbnVsbCE9PXIpe3N3aXRjaChyLiQkdHlwZW9mKXtjYXNlIE46cmV0dXJuIHModCxlPWUuZ2V0KG51bGw9PT1yLmtleT9uOnIua2V5KXx8bnVsbCxyLGwpO2Nhc2UgUDpyZXR1cm4gYyh0LGU9ZS5nZXQobnVsbD09PXIua2V5P246ci5rZXkpfHxudWxsLHIsbCk7Y2FzZSBSOnJldHVybiBtKGUsdCxuLHI9bEMociksbCl9aWYoUShyKXx8JChyKSlyZXR1cm4gZih0LGU9ZS5nZXQobil8fG51bGwscixsLG51bGwpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiByLnRoZW4pcmV0dXJuIG0oZSx0LG4sbEQociksbCk7aWYoci4kJHR5cGVvZj09PUwpcmV0dXJuIG0oZSx0LG4sbG4odCxyKSxsKTtsSSh0LHIpfXJldHVybiBudWxsfXJldHVybiBmdW5jdGlvbihpLHMsYyxmKXt0cnl7bE09MDt2YXIgaD1mdW5jdGlvbiBpKHMsYyxmLGgpe2lmKCJvYmplY3QiPT10eXBlb2YgZiYmbnVsbCE9PWYmJmYudHlwZT09PUMmJm51bGw9PT1mLmtleSYmdm9pZCAwPT09Zi5wcm9wcy5yZWYmJihmPWYucHJvcHMuY2hpbGRyZW4pLCJvYmplY3QiPT10eXBlb2YgZiYmbnVsbCE9PWYpe3N3aXRjaChmLiQkdHlwZW9mKXtjYXNlIE46ZTp7Zm9yKHZhciBnPWYua2V5O251bGwhPT1jOyl7aWYoYy5rZXk9PT1nKXtpZigoZz1mLnR5cGUpPT09Qyl7aWYoNz09PWMudGFnKXtuKHMsYy5zaWJsaW5nKSxsRihoPWwoYyxmLnByb3BzLmNoaWxkcmVuKSxmKSxoLnJldHVybj1zLHM9aDticmVhayBlfX1lbHNlIGlmKGMuZWxlbWVudFR5cGU9PT1nfHwib2JqZWN0Ij09dHlwZW9mIGcmJm51bGwhPT1nJiZnLiQkdHlwZW9mPT09UiYmbEMoZyk9PT1jLnR5cGUpe24ocyxjLnNpYmxpbmcpLGxGKGg9bChjLGYucHJvcHMpLGYpLGgucmV0dXJuPXMscz1oO2JyZWFrIGV9bihzLGMpO2JyZWFrfXQocyxjKSxjPWMuc2libGluZ31mLnR5cGU9PT1DP2xGKGg9clMoZi5wcm9wcy5jaGlsZHJlbixzLm1vZGUsaCxmLmtleSksZik6bEYoaD1yayhmLnR5cGUsZi5rZXksZi5wcm9wcyxudWxsLHMubW9kZSxoKSxmKSxoLnJldHVybj1zLHM9aH1yZXR1cm4gbyhzKTtjYXNlIFA6ZTp7Zm9yKGc9Zi5rZXk7bnVsbCE9PWM7KXtpZihjLmtleT09PWcpaWYoND09PWMudGFnJiZjLnN0YXRlTm9kZS5jb250YWluZXJJbmZvPT09Zi5jb250YWluZXJJbmZvJiZjLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbj09PWYuaW1wbGVtZW50YXRpb24pe24ocyxjLnNpYmxpbmcpLChoPWwoYyxmLmNoaWxkcmVufHxbXSkpLnJldHVybj1zLHM9aDticmVhayBlfWVsc2V7bihzLGMpO2JyZWFrfXQocyxjKSxjPWMuc2libGluZ30oaD1yXyhmLHMubW9kZSxoKSkucmV0dXJuPXMscz1ofXJldHVybiBvKHMpO2Nhc2UgUjpyZXR1cm4gaShzLGMsZj1sQyhmKSxoKX1pZihRKGYpKXJldHVybiBmdW5jdGlvbihsLG8saSx1KXtmb3IodmFyIHM9bnVsbCxjPW51bGwsZj1vLGg9bz0wLGc9bnVsbDtudWxsIT09ZiYmaDxpLmxlbmd0aDtoKyspe2YuaW5kZXg+aD8oZz1mLGY9bnVsbCk6Zz1mLnNpYmxpbmc7dmFyIHY9cChsLGYsaVtoXSx1KTtpZihudWxsPT09dil7bnVsbD09PWYmJihmPWcpO2JyZWFrfWUmJmYmJm51bGw9PT12LmFsdGVybmF0ZSYmdChsLGYpLG89YSh2LG8saCksbnVsbD09PWM/cz12OmMuc2libGluZz12LGM9dixmPWd9aWYoaD09PWkubGVuZ3RoKXJldHVybiBuKGwsZiksckgmJnJSKGwsaCkscztpZihudWxsPT09Zil7Zm9yKDtoPGkubGVuZ3RoO2grKyludWxsIT09KGY9ZChsLGlbaF0sdSkpJiYobz1hKGYsbyxoKSxudWxsPT09Yz9zPWY6Yy5zaWJsaW5nPWYsYz1mKTtyZXR1cm4gckgmJnJSKGwsaCksc31mb3IoZj1yKGYpO2g8aS5sZW5ndGg7aCsrKW51bGwhPT0oZz1tKGYsbCxoLGlbaF0sdSkpJiYoZSYmbnVsbCE9PWcuYWx0ZXJuYXRlJiZmLmRlbGV0ZShudWxsPT09Zy5rZXk/aDpnLmtleSksbz1hKGcsbyxoKSxudWxsPT09Yz9zPWc6Yy5zaWJsaW5nPWcsYz1nKTtyZXR1cm4gZSYmZi5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGwsZSl9KSxySCYmclIobCxoKSxzfShzLGMsZixoKTtpZigkKGYpKXtpZigiZnVuY3Rpb24iIT10eXBlb2YoZz0kKGYpKSl0aHJvdyBFcnJvcih1KDE1MCkpO3JldHVybiBmdW5jdGlvbihsLG8saSxzKXtpZihudWxsPT1pKXRocm93IEVycm9yKHUoMTUxKSk7Zm9yKHZhciBjPW51bGwsZj1udWxsLGg9byxnPW89MCx2PW51bGwseT1pLm5leHQoKTtudWxsIT09aCYmIXkuZG9uZTtnKysseT1pLm5leHQoKSl7aC5pbmRleD5nPyh2PWgsaD1udWxsKTp2PWguc2libGluZzt2YXIgYj1wKGwsaCx5LnZhbHVlLHMpO2lmKG51bGw9PT1iKXtudWxsPT09aCYmKGg9dik7YnJlYWt9ZSYmaCYmbnVsbD09PWIuYWx0ZXJuYXRlJiZ0KGwsaCksbz1hKGIsbyxnKSxudWxsPT09Zj9jPWI6Zi5zaWJsaW5nPWIsZj1iLGg9dn1pZih5LmRvbmUpcmV0dXJuIG4obCxoKSxySCYmclIobCxnKSxjO2lmKG51bGw9PT1oKXtmb3IoOyF5LmRvbmU7ZysrLHk9aS5uZXh0KCkpbnVsbCE9PSh5PWQobCx5LnZhbHVlLHMpKSYmKG89YSh5LG8sZyksbnVsbD09PWY/Yz15OmYuc2libGluZz15LGY9eSk7cmV0dXJuIHJIJiZyUihsLGcpLGN9Zm9yKGg9cihoKTsheS5kb25lO2crKyx5PWkubmV4dCgpKW51bGwhPT0oeT1tKGgsbCxnLHkudmFsdWUscykpJiYoZSYmbnVsbCE9PXkuYWx0ZXJuYXRlJiZoLmRlbGV0ZShudWxsPT09eS5rZXk/Zzp5LmtleSksbz1hKHksbyxnKSxudWxsPT09Zj9jPXk6Zi5zaWJsaW5nPXksZj15KTtyZXR1cm4gZSYmaC5mb3JFYWNoKGZ1bmN0aW9uKGUpe3JldHVybiB0KGwsZSl9KSxySCYmclIobCxnKSxjfShzLGMsZj1nLmNhbGwoZiksaCl9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGYudGhlbilyZXR1cm4gaShzLGMsbEQoZiksaCk7aWYoZi4kJHR5cGVvZj09PUwpcmV0dXJuIGkocyxjLGxuKHMsZiksaCk7bEkocyxmKX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIGYmJiIiIT09Znx8Im51bWJlciI9PXR5cGVvZiBmfHwiYmlnaW50Ij09dHlwZW9mIGY/KGY9IiIrZixudWxsIT09YyYmNj09PWMudGFnPyhuKHMsYy5zaWJsaW5nKSwoaD1sKGMsZikpLnJldHVybj1zKToobihzLGMpLChoPXJFKGYscy5tb2RlLGgpKS5yZXR1cm49cyksbyhzPWgpKTpuKHMsYyl9KGkscyxjLGYpO3JldHVybiBsTD1udWxsLGh9Y2F0Y2goZSl7aWYoZT09PWxTfHxlPT09bHgpdGhyb3cgZTt2YXIgZz1ydigyOSxlLG51bGwsaS5tb2RlKTtyZXR1cm4gZy5sYW5lcz1mLGcucmV0dXJuPWksZ31maW5hbGx5e319fXZhciBsQT1sUighMCksbGo9bFIoITEpLGxVPSExO2Z1bmN0aW9uIGxCKGUpe2UudXBkYXRlUXVldWU9e2Jhc2VTdGF0ZTplLm1lbW9pemVkU3RhdGUsZmlyc3RCYXNlVXBkYXRlOm51bGwsbGFzdEJhc2VVcGRhdGU6bnVsbCxzaGFyZWQ6e3BlbmRpbmc6bnVsbCxsYW5lczowLGhpZGRlbkNhbGxiYWNrczpudWxsfSxjYWxsYmFja3M6bnVsbH19ZnVuY3Rpb24gbFYoZSx0KXtlPWUudXBkYXRlUXVldWUsdC51cGRhdGVRdWV1ZT09PWUmJih0LnVwZGF0ZVF1ZXVlPXtiYXNlU3RhdGU6ZS5iYXNlU3RhdGUsZmlyc3RCYXNlVXBkYXRlOmUuZmlyc3RCYXNlVXBkYXRlLGxhc3RCYXNlVXBkYXRlOmUubGFzdEJhc2VVcGRhdGUsc2hhcmVkOmUuc2hhcmVkLGNhbGxiYWNrczpudWxsfSl9ZnVuY3Rpb24gbCQoZSl7cmV0dXJue2xhbmU6ZSx0YWc6MCxwYXlsb2FkOm51bGwsY2FsbGJhY2s6bnVsbCxuZXh0Om51bGx9fWZ1bmN0aW9uIGxIKGUsdCxuKXt2YXIgcj1lLnVwZGF0ZVF1ZXVlO2lmKG51bGw9PT1yKXJldHVybiBudWxsO2lmKHI9ci5zaGFyZWQsMCE9KDImdVMpKXt2YXIgbD1yLnBlbmRpbmc7cmV0dXJuIG51bGw9PT1sP3QubmV4dD10Oih0Lm5leHQ9bC5uZXh0LGwubmV4dD10KSxyLnBlbmRpbmc9dCx0PXJtKGUpLHJwKGUsbnVsbCxuKSx0fXJldHVybiByYyhlLHIsdCxuKSxybShlKX1mdW5jdGlvbiBsUShlLHQsbil7aWYobnVsbCE9PSh0PXQudXBkYXRlUXVldWUpJiYodD10LnNoYXJlZCwwIT0oNDE5NDA0OCZuKSkpe3ZhciByPXQubGFuZXM7ciY9ZS5wZW5kaW5nTGFuZXMsbnw9cix0LmxhbmVzPW4sZWooZSxuKX19ZnVuY3Rpb24gbFcoZSx0KXt2YXIgbj1lLnVwZGF0ZVF1ZXVlLHI9ZS5hbHRlcm5hdGU7aWYobnVsbCE9PXImJm49PT0ocj1yLnVwZGF0ZVF1ZXVlKSl7dmFyIGw9bnVsbCxhPW51bGw7aWYobnVsbCE9PShuPW4uZmlyc3RCYXNlVXBkYXRlKSl7ZG97dmFyIG89e2xhbmU6bi5sYW5lLHRhZzpuLnRhZyxwYXlsb2FkOm4ucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH07bnVsbD09PWE/bD1hPW86YT1hLm5leHQ9byxuPW4ubmV4dH13aGlsZShudWxsIT09biludWxsPT09YT9sPWE9dDphPWEubmV4dD10fWVsc2UgbD1hPXQ7bj17YmFzZVN0YXRlOnIuYmFzZVN0YXRlLGZpcnN0QmFzZVVwZGF0ZTpsLGxhc3RCYXNlVXBkYXRlOmEsc2hhcmVkOnIuc2hhcmVkLGNhbGxiYWNrczpyLmNhbGxiYWNrc30sZS51cGRhdGVRdWV1ZT1uO3JldHVybn1udWxsPT09KGU9bi5sYXN0QmFzZVVwZGF0ZSk/bi5maXJzdEJhc2VVcGRhdGU9dDplLm5leHQ9dCxuLmxhc3RCYXNlVXBkYXRlPXR9dmFyIGxxPSExO2Z1bmN0aW9uIGxLKCl7aWYobHEpe3ZhciBlPWxoO2lmKG51bGwhPT1lKXRocm93IGV9fWZ1bmN0aW9uIGxZKGUsdCxuLHIpe2xxPSExO3ZhciBsPWUudXBkYXRlUXVldWU7bFU9ITE7dmFyIGE9bC5maXJzdEJhc2VVcGRhdGUsbz1sLmxhc3RCYXNlVXBkYXRlLGk9bC5zaGFyZWQucGVuZGluZztpZihudWxsIT09aSl7bC5zaGFyZWQucGVuZGluZz1udWxsO3ZhciB1PWkscz11Lm5leHQ7dS5uZXh0PW51bGwsbnVsbD09PW8/YT1zOm8ubmV4dD1zLG89dTt2YXIgYz1lLmFsdGVybmF0ZTtudWxsIT09YyYmKGk9KGM9Yy51cGRhdGVRdWV1ZSkubGFzdEJhc2VVcGRhdGUpIT09byYmKG51bGw9PT1pP2MuZmlyc3RCYXNlVXBkYXRlPXM6aS5uZXh0PXMsYy5sYXN0QmFzZVVwZGF0ZT11KX1pZihudWxsIT09YSl7dmFyIGY9bC5iYXNlU3RhdGU7Zm9yKG89MCxjPXM9dT1udWxsLGk9YTs7KXt2YXIgZD0tMHgyMDAwMDAwMSZpLmxhbmUscD1kIT09aS5sYW5lO2lmKHA/KHVfJmQpPT09ZDoociZkKT09PWQpezAhPT1kJiZkPT09bG0mJihscT0hMCksbnVsbCE9PWMmJihjPWMubmV4dD17bGFuZTowLHRhZzppLnRhZyxwYXlsb2FkOmkucGF5bG9hZCxjYWxsYmFjazpudWxsLG5leHQ6bnVsbH0pO2U6e3ZhciBtPWUsaD1pO3N3aXRjaChkPXQsaC50YWcpe2Nhc2UgMTppZigiZnVuY3Rpb24iPT10eXBlb2YobT1oLnBheWxvYWQpKXtmPW0uY2FsbChuLGYsZCk7YnJlYWsgZX1mPW07YnJlYWsgZTtjYXNlIDM6bS5mbGFncz0tNjU1MzcmbS5mbGFnc3wxMjg7Y2FzZSAwOmlmKG51bGw9PShkPSJmdW5jdGlvbiI9PXR5cGVvZihtPWgucGF5bG9hZCk/bS5jYWxsKG4sZixkKTptKSlicmVhayBlO2Y9eCh7fSxmLGQpO2JyZWFrIGU7Y2FzZSAyOmxVPSEwfX1udWxsIT09KGQ9aS5jYWxsYmFjaykmJihlLmZsYWdzfD02NCxwJiYoZS5mbGFnc3w9ODE5MiksbnVsbD09PShwPWwuY2FsbGJhY2tzKT9sLmNhbGxiYWNrcz1bZF06cC5wdXNoKGQpKX1lbHNlIHA9e2xhbmU6ZCx0YWc6aS50YWcscGF5bG9hZDppLnBheWxvYWQsY2FsbGJhY2s6aS5jYWxsYmFjayxuZXh0Om51bGx9LG51bGw9PT1jPyhzPWM9cCx1PWYpOmM9Yy5uZXh0PXAsb3w9ZDtpZihudWxsPT09KGk9aS5uZXh0KSlpZihudWxsPT09KGk9bC5zaGFyZWQucGVuZGluZykpYnJlYWs7ZWxzZSBpPShwPWkpLm5leHQscC5uZXh0PW51bGwsbC5sYXN0QmFzZVVwZGF0ZT1wLGwuc2hhcmVkLnBlbmRpbmc9bnVsbH1udWxsPT09YyYmKHU9ZiksbC5iYXNlU3RhdGU9dSxsLmZpcnN0QmFzZVVwZGF0ZT1zLGwubGFzdEJhc2VVcGRhdGU9YyxudWxsPT09YSYmKGwuc2hhcmVkLmxhbmVzPTApLHVNfD1vLGUubGFuZXM9byxlLm1lbW9pemVkU3RhdGU9Zn19ZnVuY3Rpb24gbEcoZSx0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBFcnJvcih1KDE5MSxlKSk7ZS5jYWxsKHQpfWZ1bmN0aW9uIGxYKGUsdCl7dmFyIG49ZS5jYWxsYmFja3M7aWYobnVsbCE9PW4pZm9yKGUuY2FsbGJhY2tzPW51bGwsZT0wO2U8bi5sZW5ndGg7ZSsrKWxHKG5bZV0sdCl9dmFyIGxaPVgobnVsbCksbEo9WCgwKTtmdW5jdGlvbiBsMChlLHQpe0oobEosZT11TyksSihsWix0KSx1Tz1lfHQuYmFzZUxhbmVzfWZ1bmN0aW9uIGwxKCl7SihsSix1TyksSihsWixsWi5jdXJyZW50KX1mdW5jdGlvbiBsMigpe3VPPWxKLmN1cnJlbnQsWihsWiksWihsSil9dmFyIGwzPVgobnVsbCksbDQ9bnVsbDtmdW5jdGlvbiBsNShlKXt2YXIgdD1lLmFsdGVybmF0ZTtKKGFlLDEmYWUuY3VycmVudCksSihsMyxlKSxudWxsPT09bDQmJihudWxsPT09dHx8bnVsbCE9PWxaLmN1cnJlbnQ/bDQ9ZTpudWxsIT09dC5tZW1vaXplZFN0YXRlJiYobDQ9ZSkpfWZ1bmN0aW9uIGw4KGUpe0ooYWUsYWUuY3VycmVudCksSihsMyxlKSxudWxsPT09bDQmJihsND1lKX1mdW5jdGlvbiBsNihlKXsyMj09PWUudGFnPyhKKGFlLGFlLmN1cnJlbnQpLEoobDMsZSksbnVsbD09PWw0JiYobDQ9ZSkpOmw5KCl9ZnVuY3Rpb24gbDkoKXtKKGFlLGFlLmN1cnJlbnQpLEoobDMsbDMuY3VycmVudCl9ZnVuY3Rpb24gbDcoZSl7WihsMyksbDQ9PT1lJiYobDQ9bnVsbCksWihhZSl9dmFyIGFlPVgoMCk7ZnVuY3Rpb24gYXQoZSx0KXtKKGwzLGwzLmN1cnJlbnQpLEooYWUsdCl9ZnVuY3Rpb24gYW4oZSl7WihhZSksWihsMyksbDQ9PT1lJiYobDQ9bnVsbCl9ZnVuY3Rpb24gYXIoZSl7Zm9yKHZhciB0PWU7bnVsbCE9PXQ7KXtpZigxMz09PXQudGFnKXt2YXIgbj10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PW4mJihudWxsPT09KG49bi5kZWh5ZHJhdGVkKXx8YyQobil8fGNIKG4pKSlyZXR1cm4gdH1lbHNlIGlmKDE5PT09dC50YWcmJiJpbmRlcGVuZGVudCIhPT10Lm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpe2lmKDAhPSgxMjgmdC5mbGFncykpcmV0dXJuIHR9ZWxzZSBpZihudWxsIT09dC5jaGlsZCl7dC5jaGlsZC5yZXR1cm49dCx0PXQuY2hpbGQ7Y29udGludWV9aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuIG51bGw7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfXJldHVybiBudWxsfXZhciBhbD0wLGFhPW51bGwsYW89bnVsbCxhaT1udWxsLGF1PSExLGFzPSExLGFjPSExLGFmPTAsYWQ9MCxhcD1udWxsLGFtPTA7ZnVuY3Rpb24gYWgoKXt0aHJvdyBFcnJvcih1KDMyMSkpfWZ1bmN0aW9uIGFnKGUsdCl7aWYobnVsbD09PXQpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aCYmbjxlLmxlbmd0aDtuKyspaWYoIW5BKGVbbl0sdFtuXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gYXYoZSx0LG4scixsLGEpe3JldHVybiBhbD1hLGFhPXQsdC5tZW1vaXplZFN0YXRlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsLHQubGFuZXM9MCxXLkg9bnVsbD09PWV8fG51bGw9PT1lLm1lbW9pemVkU3RhdGU/b0U6b3gsYWM9ITEsYT1uKHIsbCksYWM9ITEsYXMmJihhPWFiKHQsbixyLGwpKSxheShlKSxhfWZ1bmN0aW9uIGF5KGUpe1cuSD1vUzt2YXIgdD1udWxsIT09YW8mJm51bGwhPT1hby5uZXh0O2lmKGFsPTAsYWk9YW89YWE9bnVsbCxhdT0hMSxhZD0wLGFwPW51bGwsdCl0aHJvdyBFcnJvcih1KDMwMCkpO251bGw9PT1lfHxvVXx8bnVsbCE9PShlPWUuZGVwZW5kZW5jaWVzKSYmcjcoZSkmJihvVT0hMCl9ZnVuY3Rpb24gYWIoZSx0LG4scil7YWE9ZTt2YXIgbD0wO2Rve2lmKGFzJiYoYXA9bnVsbCksYWQ9MCxhcz0hMSwyNTw9bCl0aHJvdyBFcnJvcih1KDMwMSkpO2lmKGwrPTEsYWk9YW89bnVsbCxudWxsIT1lLnVwZGF0ZVF1ZXVlKXt2YXIgYT1lLnVwZGF0ZVF1ZXVlO2EubGFzdEVmZmVjdD1udWxsLGEuZXZlbnRzPW51bGwsYS5zdG9yZXM9bnVsbCxudWxsIT1hLm1lbW9DYWNoZSYmKGEubWVtb0NhY2hlLmluZGV4PTApfVcuSD1vXyxhPXQobixyKX13aGlsZShhcylyZXR1cm4gYX1mdW5jdGlvbiBhdygpe3ZhciBlPVcuSCx0PWUudXNlU3RhdGUoKVswXTtyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuP2FQKHQpOnQsZT1lLnVzZVN0YXRlKClbMF0sKG51bGwhPT1hbz9hby5tZW1vaXplZFN0YXRlOm51bGwpIT09ZSYmKGFhLmZsYWdzfD0xMDI0KSx0fWZ1bmN0aW9uIGFrKCl7dmFyIGU9MCE9PWFmO3JldHVybiBhZj0wLGV9ZnVuY3Rpb24gYVMoZSx0LG4pe3QudXBkYXRlUXVldWU9ZS51cGRhdGVRdWV1ZSx0LmZsYWdzJj0tMjA1MyxlLmxhbmVzJj1+bn1mdW5jdGlvbiBhRShlKXtpZihhdSl7Zm9yKGU9ZS5tZW1vaXplZFN0YXRlO251bGwhPT1lOyl7dmFyIHQ9ZS5xdWV1ZTtudWxsIT09dCYmKHQucGVuZGluZz1udWxsKSxlPWUubmV4dH1hdT0hMX1hbD0wLGFpPWFvPWFhPW51bGwsYXM9ITEsYWQ9YWY9MCxhcD1udWxsfWZ1bmN0aW9uIGF4KCl7dmFyIGU9e21lbW9pemVkU3RhdGU6bnVsbCxiYXNlU3RhdGU6bnVsbCxiYXNlUXVldWU6bnVsbCxxdWV1ZTpudWxsLG5leHQ6bnVsbH07cmV0dXJuIG51bGw9PT1haT9hYS5tZW1vaXplZFN0YXRlPWFpPWU6YWk9YWkubmV4dD1lLGFpfWZ1bmN0aW9uIGFfKCl7aWYobnVsbD09PWFvKXt2YXIgZT1hYS5hbHRlcm5hdGU7ZT1udWxsIT09ZT9lLm1lbW9pemVkU3RhdGU6bnVsbH1lbHNlIGU9YW8ubmV4dDt2YXIgdD1udWxsPT09YWk/YWEubWVtb2l6ZWRTdGF0ZTphaS5uZXh0O2lmKG51bGwhPT10KWFpPXQsYW89ZTtlbHNle2lmKG51bGw9PT1lKXtpZihudWxsPT09YWEuYWx0ZXJuYXRlKXRocm93IEVycm9yKHUoNDY3KSk7dGhyb3cgRXJyb3IodSgzMTApKX1lPXttZW1vaXplZFN0YXRlOihhbz1lKS5tZW1vaXplZFN0YXRlLGJhc2VTdGF0ZTphby5iYXNlU3RhdGUsYmFzZVF1ZXVlOmFvLmJhc2VRdWV1ZSxxdWV1ZTphby5xdWV1ZSxuZXh0Om51bGx9LG51bGw9PT1haT9hYS5tZW1vaXplZFN0YXRlPWFpPWU6YWk9YWkubmV4dD1lfXJldHVybiBhaX1mdW5jdGlvbiBhTigpe3JldHVybntsYXN0RWZmZWN0Om51bGwsZXZlbnRzOm51bGwsc3RvcmVzOm51bGwsbWVtb0NhY2hlOm51bGx9fWZ1bmN0aW9uIGFQKGUpe3ZhciB0PWFkO3JldHVybiBhZCs9MSxudWxsPT09YXAmJihhcD1bXSksZT1sUChhcCxlLHQpLHQ9YWEsbnVsbD09PShudWxsPT09YWk/dC5tZW1vaXplZFN0YXRlOmFpLm5leHQpJiYoVy5IPW51bGw9PT0odD10LmFsdGVybmF0ZSl8fG51bGw9PT10Lm1lbW9pemVkU3RhdGU/b0U6b3gpLGV9ZnVuY3Rpb24gYUMoZSl7aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbilyZXR1cm4gYVAoZSk7aWYoZS4kJHR5cGVvZj09PUwpcmV0dXJuIGx0KGUpfXRocm93IEVycm9yKHUoNDM4LFN0cmluZyhlKSkpfWZ1bmN0aW9uIGFUKGUpe3ZhciB0PW51bGwsbj1hYS51cGRhdGVRdWV1ZTtpZihudWxsIT09biYmKHQ9bi5tZW1vQ2FjaGUpLG51bGw9PXQpe3ZhciByPWFhLmFsdGVybmF0ZTtudWxsIT09ciYmbnVsbCE9PShyPXIudXBkYXRlUXVldWUpJiZudWxsIT0ocj1yLm1lbW9DYWNoZSkmJih0PXtkYXRhOnIuZGF0YS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2xpY2UoKX0pLGluZGV4OjB9KX1pZihudWxsPT10JiYodD17ZGF0YTpbXSxpbmRleDowfSksbnVsbD09PW4mJihuPWFOKCksYWEudXBkYXRlUXVldWU9biksbi5tZW1vQ2FjaGU9dCx2b2lkIDA9PT0obj10LmRhdGFbdC5pbmRleF0pKWZvcihuPXQuZGF0YVt0LmluZGV4XT1BcnJheShlKSxyPTA7cjxlO3IrKyluW3JdPVU7cmV0dXJuIHQuaW5kZXgrKyxufWZ1bmN0aW9uIGF6KGUsdCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChlKTp0fWZ1bmN0aW9uIGFPKGUpe3JldHVybiBhTChhXygpLGFvLGUpfWZ1bmN0aW9uIGFMKGUsdCxuKXt2YXIgcj1lLnF1ZXVlO2lmKG51bGw9PT1yKXRocm93IEVycm9yKHUoMzExKSk7ci5sYXN0UmVuZGVyZWRSZWR1Y2VyPW47dmFyIGw9ZS5iYXNlUXVldWUsYT1yLnBlbmRpbmc7aWYobnVsbCE9PWEpe2lmKG51bGwhPT1sKXt2YXIgbz1sLm5leHQ7bC5uZXh0PWEubmV4dCxhLm5leHQ9b310LmJhc2VRdWV1ZT1sPWEsci5wZW5kaW5nPW51bGx9aWYoYT1lLmJhc2VTdGF0ZSxudWxsPT09bCllLm1lbW9pemVkU3RhdGU9YTtlbHNle3Q9bC5uZXh0O3ZhciBpPW89bnVsbCxzPW51bGwsYz10LGY9ITE7ZG97dmFyIGQ9LTB4MjAwMDAwMDEmYy5sYW5lO2lmKGQhPT1jLmxhbmU/KHVfJmQpPT09ZDooYWwmZCk9PT1kKXt2YXIgcD1jLnJldmVydExhbmU7aWYoMD09PXApbnVsbCE9PXMmJihzPXMubmV4dD17bGFuZTowLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOmMuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6Yy5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH0pLGQ9PT1sbSYmKGY9ITApO2Vsc2UgaWYoKGFsJnApPT09cCl7Yz1jLm5leHQscD09PWxtJiYoZj0hMCk7Y29udGludWV9ZWxzZSBkPXtsYW5lOjAscmV2ZXJ0TGFuZTpjLnJldmVydExhbmUsZ2VzdHVyZTpudWxsLGFjdGlvbjpjLmFjdGlvbixoYXNFYWdlclN0YXRlOmMuaGFzRWFnZXJTdGF0ZSxlYWdlclN0YXRlOmMuZWFnZXJTdGF0ZSxuZXh0Om51bGx9LG51bGw9PT1zPyhpPXM9ZCxvPWEpOnM9cy5uZXh0PWQsYWEubGFuZXN8PXAsdU18PXA7ZD1jLmFjdGlvbixhYyYmbihhLGQpLGE9Yy5oYXNFYWdlclN0YXRlP2MuZWFnZXJTdGF0ZTpuKGEsZCl9ZWxzZSBwPXtsYW5lOmQscmV2ZXJ0TGFuZTpjLnJldmVydExhbmUsZ2VzdHVyZTpjLmdlc3R1cmUsYWN0aW9uOmMuYWN0aW9uLGhhc0VhZ2VyU3RhdGU6Yy5oYXNFYWdlclN0YXRlLGVhZ2VyU3RhdGU6Yy5lYWdlclN0YXRlLG5leHQ6bnVsbH0sbnVsbD09PXM/KGk9cz1wLG89YSk6cz1zLm5leHQ9cCxhYS5sYW5lc3w9ZCx1TXw9ZDtjPWMubmV4dH13aGlsZShudWxsIT09YyYmYyE9PXQpaWYobnVsbD09PXM/bz1hOnMubmV4dD1pLCFuQShhLGUubWVtb2l6ZWRTdGF0ZSkmJihvVT0hMCxmJiZudWxsIT09KG49bGgpKSl0aHJvdyBuO2UubWVtb2l6ZWRTdGF0ZT1hLGUuYmFzZVN0YXRlPW8sZS5iYXNlUXVldWU9cyxyLmxhc3RSZW5kZXJlZFN0YXRlPWF9cmV0dXJuIG51bGw9PT1sJiYoci5sYW5lcz0wKSxbZS5tZW1vaXplZFN0YXRlLHIuZGlzcGF0Y2hdfWZ1bmN0aW9uIGFNKGUpe3ZhciB0PWFfKCksbj10LnF1ZXVlO2lmKG51bGw9PT1uKXRocm93IEVycm9yKHUoMzExKSk7bi5sYXN0UmVuZGVyZWRSZWR1Y2VyPWU7dmFyIHI9bi5kaXNwYXRjaCxsPW4ucGVuZGluZyxhPXQubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09bCl7bi5wZW5kaW5nPW51bGw7dmFyIG89bD1sLm5leHQ7ZG8gYT1lKGEsby5hY3Rpb24pLG89by5uZXh0O3doaWxlKG8hPT1sKW5BKGEsdC5tZW1vaXplZFN0YXRlKXx8KG9VPSEwKSx0Lm1lbW9pemVkU3RhdGU9YSxudWxsPT09dC5iYXNlUXVldWUmJih0LmJhc2VTdGF0ZT1hKSxuLmxhc3RSZW5kZXJlZFN0YXRlPWF9cmV0dXJuW2Escl19ZnVuY3Rpb24gYUQoZSx0LG4pe3ZhciByPWFhLGw9YV8oKSxhPXJIO2lmKGEpe2lmKHZvaWQgMD09PW4pdGhyb3cgRXJyb3IodSg0MDcpKTtuPW4oKX1lbHNlIG49dCgpO3ZhciBvPSFuQSgoYW98fGwpLm1lbW9pemVkU3RhdGUsbik7aWYobyYmKGwubWVtb2l6ZWRTdGF0ZT1uLG9VPSEwKSxsPWwucXVldWUsYTUoYVIuYmluZChudWxsLHIsbCxlKSxbZV0pLGwuZ2V0U25hcHNob3QhPT10fHxvfHxudWxsIT09YWkmJjEmYWkubWVtb2l6ZWRTdGF0ZS50YWcpe2lmKHIuZmxhZ3N8PTIwNDgsYTAoOSx7ZGVzdHJveTp2b2lkIDB9LGFJLmJpbmQobnVsbCxyLGwsbix0KSxudWxsKSxudWxsPT09dUUpdGhyb3cgRXJyb3IodSgzNDkpKTthfHwwIT0oMTI3JmFsKXx8YUYocix0LG4pfXJldHVybiBufWZ1bmN0aW9uIGFGKGUsdCxuKXtlLmZsYWdzfD0xNjM4NCxlPXtnZXRTbmFwc2hvdDp0LHZhbHVlOm59LG51bGw9PT0odD1hYS51cGRhdGVRdWV1ZSk/KHQ9YU4oKSxhYS51cGRhdGVRdWV1ZT10LHQuc3RvcmVzPVtlXSk6bnVsbD09PShuPXQuc3RvcmVzKT90LnN0b3Jlcz1bZV06bi5wdXNoKGUpfWZ1bmN0aW9uIGFJKGUsdCxuLHIpe3QudmFsdWU9bix0LmdldFNuYXBzaG90PXIsYUEodCkmJmFqKGUpfWZ1bmN0aW9uIGFSKGUsdCxuKXtyZXR1cm4gbihmdW5jdGlvbigpe2FBKHQpJiZhaihlKX0pfWZ1bmN0aW9uIGFBKGUpe3ZhciB0PWUuZ2V0U25hcHNob3Q7ZT1lLnZhbHVlO3RyeXt2YXIgbj10KCk7cmV0dXJuIW5BKGUsbil9Y2F0Y2goZSl7cmV0dXJuITB9fWZ1bmN0aW9uIGFqKGUpe3ZhciB0PXJkKGUsMik7bnVsbCE9PXQmJnU2KHQsZSwyKX1mdW5jdGlvbiBhVShlKXt2YXIgdD1heCgpO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lKCkpLHQubWVtb2l6ZWRTdGF0ZT10LmJhc2VTdGF0ZT1lLHQucXVldWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpheixsYXN0UmVuZGVyZWRTdGF0ZTplfSx0fWZ1bmN0aW9uIGFCKGUsdCxuLHIpe3JldHVybiBlLmJhc2VTdGF0ZT1uLGFMKGUsYW8sImZ1bmN0aW9uIj09dHlwZW9mIHI/cjpheil9ZnVuY3Rpb24gYVYoZSx0LG4scixsKXtpZihvYihlKSl0aHJvdyBFcnJvcih1KDQ4NSkpO2lmKG51bGwhPT0oZT10LmFjdGlvbikpe3ZhciBhPXtwYXlsb2FkOmwsYWN0aW9uOmUsbmV4dDpudWxsLGlzVHJhbnNpdGlvbjohMCxzdGF0dXM6InBlbmRpbmciLHZhbHVlOm51bGwscmVhc29uOm51bGwsbGlzdGVuZXJzOltdLHRoZW46ZnVuY3Rpb24oZSl7YS5saXN0ZW5lcnMucHVzaChlKX19O251bGwhPT1XLlQ/bighMCk6YS5pc1RyYW5zaXRpb249ITEscihhKSxudWxsPT09KG49dC5wZW5kaW5nKT8oYS5uZXh0PXQucGVuZGluZz1hLGEkKHQsYSkpOihhLm5leHQ9bi5uZXh0LHQucGVuZGluZz1uLm5leHQ9YSl9fWZ1bmN0aW9uIGEkKGUsdCl7dmFyIG49dC5hY3Rpb24scj10LnBheWxvYWQsbD1lLnN0YXRlO2lmKHQuaXNUcmFuc2l0aW9uKXt2YXIgYT1XLlQsbz17fTtvLnR5cGVzPW51bGwhPT1hP2EudHlwZXM6bnVsbCxXLlQ9bzt0cnl7dmFyIGk9bihsLHIpLHU9Vy5TO251bGwhPT11JiZ1KG8saSksYUgoZSx0LGkpfWNhdGNoKG4pe2FXKGUsdCxuKX1maW5hbGx5e251bGwhPT1hJiZudWxsIT09by50eXBlcyYmKGEudHlwZXM9by50eXBlcyksVy5UPWF9fWVsc2UgdHJ5e2E9bihsLHIpLGFIKGUsdCxhKX1jYXRjaChuKXthVyhlLHQsbil9fWZ1bmN0aW9uIGFIKGUsdCxuKXtudWxsIT09biYmIm9iamVjdCI9PXR5cGVvZiBuJiYiZnVuY3Rpb24iPT10eXBlb2Ygbi50aGVuP24udGhlbihmdW5jdGlvbihuKXthUShlLHQsbil9LGZ1bmN0aW9uKG4pe3JldHVybiBhVyhlLHQsbil9KTphUShlLHQsbil9ZnVuY3Rpb24gYVEoZSx0LG4pe3Quc3RhdHVzPSJmdWxmaWxsZWQiLHQudmFsdWU9bixhcSh0KSxlLnN0YXRlPW4sbnVsbCE9PSh0PWUucGVuZGluZykmJigobj10Lm5leHQpPT09dD9lLnBlbmRpbmc9bnVsbDoobj1uLm5leHQsdC5uZXh0PW4sYSQoZSxuKSkpfWZ1bmN0aW9uIGFXKGUsdCxuKXt2YXIgcj1lLnBlbmRpbmc7aWYoZS5wZW5kaW5nPW51bGwsbnVsbCE9PXIpe3I9ci5uZXh0O2RvIHQuc3RhdHVzPSJyZWplY3RlZCIsdC5yZWFzb249bixhcSh0KSx0PXQubmV4dDt3aGlsZSh0IT09cil9ZS5hY3Rpb249bnVsbH1mdW5jdGlvbiBhcShlKXtlPWUubGlzdGVuZXJzO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKSgwLGVbdF0pKCl9ZnVuY3Rpb24gYUsoZSx0KXtyZXR1cm4gdH1mdW5jdGlvbiBhWShlLHQpe2lmKHJIKXt2YXIgbj11RS5mb3JtU3RhdGU7aWYobnVsbCE9PW4pe2U6e3ZhciByPWFhO2lmKHJIKXtpZihyJCl7dDp7Zm9yKHZhciBsPXIkLGE9clc7OCE9PWwubm9kZVR5cGU7KWlmKCFhfHxudWxsPT09KGw9Y1EobC5uZXh0U2libGluZykpKXtsPW51bGw7YnJlYWsgdH1sPSJGISI9PT0oYT1sLmRhdGEpfHwiRiI9PT1hP2w6bnVsbH1pZihsKXtyJD1jUShsLm5leHRTaWJsaW5nKSxyPSJGISI9PT1sLmRhdGE7YnJlYWsgZX19cksocil9cj0hMX1yJiYodD1uWzBdKX19cmV0dXJuKG49YXgoKSkubWVtb2l6ZWRTdGF0ZT1uLmJhc2VTdGF0ZT10LHI9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjphSyxsYXN0UmVuZGVyZWRTdGF0ZTp0fSxuLnF1ZXVlPXIsbj1vZy5iaW5kKG51bGwsYWEsciksci5kaXNwYXRjaD1uLHI9YVUoITEpLGE9b3kuYmluZChudWxsLGFhLCExLHIucXVldWUpLHI9YXgoKSxsPXtzdGF0ZTp0LGRpc3BhdGNoOm51bGwsYWN0aW9uOmUscGVuZGluZzpudWxsfSxyLnF1ZXVlPWwsbj1hVi5iaW5kKG51bGwsYWEsbCxhLG4pLGwuZGlzcGF0Y2g9bixyLm1lbW9pemVkU3RhdGU9ZSxbdCxuLCExXX1mdW5jdGlvbiBhRyhlKXtyZXR1cm4gYVgoYV8oKSxhbyxlKX1mdW5jdGlvbiBhWChlLHQsbil7aWYodD1hTChlLHQsYUspWzBdLGU9YU8oYXopWzBdLCJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnRoZW4pdHJ5e3ZhciByPWFQKHQpfWNhdGNoKGUpe2lmKGU9PT1sUyl0aHJvdyBseDt0aHJvdyBlfWVsc2Ugcj10O3ZhciBsPSh0PWFfKCkpLnF1ZXVlLGE9bC5kaXNwYXRjaDtyZXR1cm4gbiE9PXQubWVtb2l6ZWRTdGF0ZSYmKGFhLmZsYWdzfD0yMDQ4LGEwKDkse2Rlc3Ryb3k6dm9pZCAwfSxhWi5iaW5kKG51bGwsbCxuKSxudWxsKSksW3IsYSxlXX1mdW5jdGlvbiBhWihlLHQpe2UuYWN0aW9uPXR9ZnVuY3Rpb24gYUooZSl7dmFyIHQ9YV8oKSxuPWFvO2lmKG51bGwhPT1uKXJldHVybiBhWCh0LG4sZSk7YV8oKSx0PXQubWVtb2l6ZWRTdGF0ZTt2YXIgcj0obj1hXygpKS5xdWV1ZS5kaXNwYXRjaDtyZXR1cm4gbi5tZW1vaXplZFN0YXRlPWUsW3QsciwhMV19ZnVuY3Rpb24gYTAoZSx0LG4scil7cmV0dXJuIGU9e3RhZzplLGNyZWF0ZTpuLGRlcHM6cixpbnN0OnQsbmV4dDpudWxsfSxudWxsPT09KHQ9YWEudXBkYXRlUXVldWUpJiYodD1hTigpLGFhLnVwZGF0ZVF1ZXVlPXQpLG51bGw9PT0obj10Lmxhc3RFZmZlY3QpP3QubGFzdEVmZmVjdD1lLm5leHQ9ZToocj1uLm5leHQsbi5uZXh0PWUsZS5uZXh0PXIsdC5sYXN0RWZmZWN0PWUpLGV9ZnVuY3Rpb24gYTEoKXtyZXR1cm4gYV8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIGEyKGUsdCxuLHIpe3ZhciBsPWF4KCk7YWEuZmxhZ3N8PWUsbC5tZW1vaXplZFN0YXRlPWEwKDF8dCx7ZGVzdHJveTp2b2lkIDB9LG4sdm9pZCAwPT09cj9udWxsOnIpfWZ1bmN0aW9uIGEzKGUsdCxuLHIpe3ZhciBsPWFfKCk7cj12b2lkIDA9PT1yP251bGw6cjt2YXIgYT1sLm1lbW9pemVkU3RhdGUuaW5zdDtudWxsIT09YW8mJm51bGwhPT1yJiZhZyhyLGFvLm1lbW9pemVkU3RhdGUuZGVwcyk/bC5tZW1vaXplZFN0YXRlPWEwKHQsYSxuLHIpOihhYS5mbGFnc3w9ZSxsLm1lbW9pemVkU3RhdGU9YTAoMXx0LGEsbixyKSl9ZnVuY3Rpb24gYTQoZSx0KXthMig4MzkwNjU2LDgsZSx0KX1mdW5jdGlvbiBhNShlLHQpe2EzKDIwNDgsOCxlLHQpfWZ1bmN0aW9uIGE4KGUpe3ZhciB0PWFfKCkubWVtb2l6ZWRTdGF0ZSxuPXtyZWY6dCxuZXh0SW1wbDplfTthYS5mbGFnc3w9NDt2YXIgcj1hYS51cGRhdGVRdWV1ZTtpZihudWxsPT09cilyPWFOKCksYWEudXBkYXRlUXVldWU9cixyLmV2ZW50cz1bbl07ZWxzZXt2YXIgbD1yLmV2ZW50cztudWxsPT09bD9yLmV2ZW50cz1bbl06bC5wdXNoKG4pfXJldHVybiBmdW5jdGlvbigpe2lmKDAhPSgyJnVTKSl0aHJvdyBFcnJvcih1KDQ0MCkpO3JldHVybiB0LmltcGwuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIGE2KGUsdCl7cmV0dXJuIGEzKDQsMixlLHQpfWZ1bmN0aW9uIGE5KGUsdCl7cmV0dXJuIGEzKDQsNCxlLHQpfWZ1bmN0aW9uIGE3KGUsdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpe3ZhciBuPXQoZT1lKCkpO3JldHVybiBmdW5jdGlvbigpeyJmdW5jdGlvbiI9PXR5cGVvZiBuP24oKTp0KG51bGwpfX1pZihudWxsIT10KXJldHVybiB0LmN1cnJlbnQ9ZT1lKCksZnVuY3Rpb24oKXt0LmN1cnJlbnQ9bnVsbH19ZnVuY3Rpb24gb2UoZSx0LG4pe249bnVsbCE9bj9uLmNvbmNhdChbZV0pOm51bGwsYTMoNCw0LGE3LmJpbmQobnVsbCx0LGUpLG4pfWZ1bmN0aW9uIG90KCl7fWZ1bmN0aW9uIG9uKGUsdCl7dmFyIG49YV8oKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXQmJmFnKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtlLHRdLGUpfWZ1bmN0aW9uIG9yKGUsdCl7dmFyIG49YV8oKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPW4ubWVtb2l6ZWRTdGF0ZTtyZXR1cm4gbnVsbCE9PXQmJmFnKHQsclsxXSk/clswXToobi5tZW1vaXplZFN0YXRlPVtyPWUoKSx0XSxyKX1mdW5jdGlvbiBvbChlLHQsbil7cmV0dXJuIHZvaWQgMD09PW58fDAhPSgweDQwMDAwMDAwJmFsKSYmMD09KDI2MTkzMCZ1Xyk/ZS5tZW1vaXplZFN0YXRlPXQ6KGUubWVtb2l6ZWRTdGF0ZT1uLGU9dTUoKSxhYS5sYW5lc3w9ZSx1TXw9ZSxuKX1mdW5jdGlvbiBvYShlLHQsbixyKXtyZXR1cm4gbkEobix0KT9uOm51bGwhPT1sWi5jdXJyZW50PyhuQShlPW9sKGUsbixyKSx0KXx8KG9VPSEwKSxlKTowPT0oNDImYWwpfHwwIT0oMHg0MDAwMDAwMCZhbCkmJjA9PSgyNjE5MzAmdV8pPyhvVT0hMCxlLm1lbW9pemVkU3RhdGU9bik6KGU9dTUoKSxhYS5sYW5lc3w9ZSx1TXw9ZSx0KX1mdW5jdGlvbiBvbyhlLHQsbixyLGwpe3ZhciBhPXEucDtxLnA9MCE9PWEmJjg+YT9hOjg7dmFyIG89Vy5ULGk9e307aS50eXBlcz1udWxsIT09bz9vLnR5cGVzOm51bGwsVy5UPWksb3koZSwhMSx0LG4pO3RyeXt2YXIgdT1sKCkscz1XLlM7aWYobnVsbCE9PXMmJnMoaSx1KSxudWxsIT09dSYmIm9iamVjdCI9PXR5cGVvZiB1JiYiZnVuY3Rpb24iPT10eXBlb2YgdS50aGVuKXt2YXIgYyxmLGQ9KGM9W10sZj17c3RhdHVzOiJwZW5kaW5nIix2YWx1ZTpudWxsLHJlYXNvbjpudWxsLHRoZW46ZnVuY3Rpb24oZSl7Yy5wdXNoKGUpfX0sdS50aGVuKGZ1bmN0aW9uKCl7Zi5zdGF0dXM9ImZ1bGZpbGxlZCIsZi52YWx1ZT1yO2Zvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKSgwLGNbZV0pKHIpfSxmdW5jdGlvbihlKXtmb3IoZi5zdGF0dXM9InJlamVjdGVkIixmLnJlYXNvbj1lLGU9MDtlPGMubGVuZ3RoO2UrKykoMCxjW2VdKSh2b2lkIDApfSksZik7b3YoZSx0LGQsdTQoZSkpfWVsc2Ugb3YoZSx0LHIsdTQoZSkpfWNhdGNoKG4pe292KGUsdCx7dGhlbjpmdW5jdGlvbigpe30sc3RhdHVzOiJyZWplY3RlZCIscmVhc29uOm59LHU0KCkpfWZpbmFsbHl7cS5wPWEsbnVsbCE9PW8mJm51bGwhPT1pLnR5cGVzJiYoby50eXBlcz1pLnR5cGVzKSxXLlQ9b319ZnVuY3Rpb24gb2koKXt9ZnVuY3Rpb24gb3UoZSx0LG4scil7aWYoNSE9PWUudGFnKXRocm93IEVycm9yKHUoNDc2KSk7dmFyIGw9b3MoZSkucXVldWU7b28oZSxsLHQsSyxudWxsPT09bj9vaTpmdW5jdGlvbigpe3JldHVybiBvYyhlKSxuKHIpfSl9ZnVuY3Rpb24gb3MoZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlO2lmKG51bGwhPT10KXJldHVybiB0O3ZhciBuPXt9O3JldHVybih0PXttZW1vaXplZFN0YXRlOkssYmFzZVN0YXRlOkssYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpheixsYXN0UmVuZGVyZWRTdGF0ZTpLfSxuZXh0Om51bGx9KS5uZXh0PXttZW1vaXplZFN0YXRlOm4sYmFzZVN0YXRlOm4sYmFzZVF1ZXVlOm51bGwscXVldWU6e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjpheixsYXN0UmVuZGVyZWRTdGF0ZTpufSxuZXh0Om51bGx9LGUubWVtb2l6ZWRTdGF0ZT10LG51bGwhPT0oZT1lLmFsdGVybmF0ZSkmJihlLm1lbW9pemVkU3RhdGU9dCksdH1mdW5jdGlvbiBvYyhlKXt2YXIgdD1vcyhlKTtudWxsPT09dC5uZXh0JiYodD1lLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlKSxvdihlLHQubmV4dC5xdWV1ZSx7fSx1NCgpKX1mdW5jdGlvbiBvZigpe3JldHVybiBsdChmdil9ZnVuY3Rpb24gb2QoKXtyZXR1cm4gYV8oKS5tZW1vaXplZFN0YXRlfWZ1bmN0aW9uIG9wKCl7cmV0dXJuIGFfKCkubWVtb2l6ZWRTdGF0ZX1mdW5jdGlvbiBvbShlKXtmb3IodmFyIHQ9ZS5yZXR1cm47bnVsbCE9PXQ7KXtzd2l0Y2godC50YWcpe2Nhc2UgMjQ6Y2FzZSAzOnZhciBuPXU0KCkscj1sSCh0LGU9bCQobiksbik7bnVsbCE9PXImJih1NihyLHQsbiksbFEocix0LG4pKSx0PXtjYWNoZTpsdSgpfSxlLnBheWxvYWQ9dDtyZXR1cm59dD10LnJldHVybn19ZnVuY3Rpb24gb2goZSx0LG4pe3ZhciByPXU0KCk7bj17bGFuZTpyLHJldmVydExhbmU6MCxnZXN0dXJlOm51bGwsYWN0aW9uOm4saGFzRWFnZXJTdGF0ZTohMSxlYWdlclN0YXRlOm51bGwsbmV4dDpudWxsfSxvYihlKT9vdyh0LG4pOm51bGwhPT0obj1yZihlLHQsbixyKSkmJih1NihuLGUsciksb2sobix0LHIpKX1mdW5jdGlvbiBvZyhlLHQsbil7b3YoZSx0LG4sdTQoKSl9ZnVuY3Rpb24gb3YoZSx0LG4scil7dmFyIGw9e2xhbmU6cixyZXZlcnRMYW5lOjAsZ2VzdHVyZTpudWxsLGFjdGlvbjpuLGhhc0VhZ2VyU3RhdGU6ITEsZWFnZXJTdGF0ZTpudWxsLG5leHQ6bnVsbH07aWYob2IoZSkpb3codCxsKTtlbHNle3ZhciBhPWUuYWx0ZXJuYXRlO2lmKDA9PT1lLmxhbmVzJiYobnVsbD09PWF8fDA9PT1hLmxhbmVzKSYmbnVsbCE9PShhPXQubGFzdFJlbmRlcmVkUmVkdWNlcikpdHJ5e3ZhciBvPXQubGFzdFJlbmRlcmVkU3RhdGUsaT1hKG8sbik7aWYobC5oYXNFYWdlclN0YXRlPSEwLGwuZWFnZXJTdGF0ZT1pLG5BKGksbykpcmV0dXJuIHJjKGUsdCxsLDApLG51bGw9PT11RSYmcnMoKSwhMX1jYXRjaChlKXt9ZmluYWxseXt9aWYobnVsbCE9PShuPXJmKGUsdCxsLHIpKSlyZXR1cm4gdTYobixlLHIpLG9rKG4sdCxyKSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBveShlLHQsbixyKXtpZihyPXtsYW5lOjIscmV2ZXJ0TGFuZTpzSCgpLGdlc3R1cmU6bnVsbCxhY3Rpb246cixoYXNFYWdlclN0YXRlOiExLGVhZ2VyU3RhdGU6bnVsbCxuZXh0Om51bGx9LG9iKGUpKXtpZih0KXRocm93IEVycm9yKHUoNDc5KSl9ZWxzZSBudWxsIT09KHQ9cmYoZSxuLHIsMikpJiZ1Nih0LGUsMil9ZnVuY3Rpb24gb2IoZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7cmV0dXJuIGU9PT1hYXx8bnVsbCE9PXQmJnQ9PT1hYX1mdW5jdGlvbiBvdyhlLHQpe2FzPWF1PSEwO3ZhciBuPWUucGVuZGluZztudWxsPT09bj90Lm5leHQ9dDoodC5uZXh0PW4ubmV4dCxuLm5leHQ9dCksZS5wZW5kaW5nPXR9ZnVuY3Rpb24gb2soZSx0LG4pe2lmKDAhPSg0MTk0MDQ4Jm4pKXt2YXIgcj10LmxhbmVzO3ImPWUucGVuZGluZ0xhbmVzLHQubGFuZXM9bnw9cixlaihlLG4pfX12YXIgb1M9e3JlYWRDb250ZXh0Omx0LHVzZTphQyx1c2VDYWxsYmFjazphaCx1c2VDb250ZXh0OmFoLHVzZUVmZmVjdDphaCx1c2VJbXBlcmF0aXZlSGFuZGxlOmFoLHVzZUxheW91dEVmZmVjdDphaCx1c2VJbnNlcnRpb25FZmZlY3Q6YWgsdXNlTWVtbzphaCx1c2VSZWR1Y2VyOmFoLHVzZVJlZjphaCx1c2VTdGF0ZTphaCx1c2VEZWJ1Z1ZhbHVlOmFoLHVzZURlZmVycmVkVmFsdWU6YWgsdXNlVHJhbnNpdGlvbjphaCx1c2VTeW5jRXh0ZXJuYWxTdG9yZTphaCx1c2VJZDphaCx1c2VIb3N0VHJhbnNpdGlvblN0YXR1czphaCx1c2VGb3JtU3RhdGU6YWgsdXNlQWN0aW9uU3RhdGU6YWgsdXNlT3B0aW1pc3RpYzphaCx1c2VNZW1vQ2FjaGU6YWgsdXNlQ2FjaGVSZWZyZXNoOmFofTtvUy51c2VFZmZlY3RFdmVudD1haDt2YXIgb0U9e3JlYWRDb250ZXh0Omx0LHVzZTphQyx1c2VDYWxsYmFjazpmdW5jdGlvbihlLHQpe3JldHVybiBheCgpLm1lbW9pemVkU3RhdGU9W2Usdm9pZCAwPT09dD9udWxsOnRdLGV9LHVzZUNvbnRleHQ6bHQsdXNlRWZmZWN0OmE0LHVzZUltcGVyYXRpdmVIYW5kbGU6ZnVuY3Rpb24oZSx0LG4pe249bnVsbCE9bj9uLmNvbmNhdChbZV0pOm51bGwsYTIoNDE5NDMwOCw0LGE3LmJpbmQobnVsbCx0LGUpLG4pfSx1c2VMYXlvdXRFZmZlY3Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYTIoNDE5NDMwOCw0LGUsdCl9LHVzZUluc2VydGlvbkVmZmVjdDpmdW5jdGlvbihlLHQpe2EyKDQsMixlLHQpfSx1c2VNZW1vOmZ1bmN0aW9uKGUsdCl7dmFyIG49YXgoKTt0PXZvaWQgMD09PXQ/bnVsbDp0O3ZhciByPWUoKTtyZXR1cm4gbi5tZW1vaXplZFN0YXRlPVtyLHRdLHJ9LHVzZVJlZHVjZXI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWF4KCk7aWYodm9pZCAwIT09bil2YXIgbD1uKHQpO2Vsc2UgbD10O3JldHVybiByLm1lbW9pemVkU3RhdGU9ci5iYXNlU3RhdGU9bCxyLnF1ZXVlPWU9e3BlbmRpbmc6bnVsbCxsYW5lczowLGRpc3BhdGNoOm51bGwsbGFzdFJlbmRlcmVkUmVkdWNlcjplLGxhc3RSZW5kZXJlZFN0YXRlOmx9LGU9ZS5kaXNwYXRjaD1vaC5iaW5kKG51bGwsYWEsZSksW3IubWVtb2l6ZWRTdGF0ZSxlXX0sdXNlUmVmOmZ1bmN0aW9uKGUpe3JldHVybiBheCgpLm1lbW9pemVkU3RhdGU9e2N1cnJlbnQ6ZX19LHVzZVN0YXRlOmZ1bmN0aW9uKGUpe3ZhciB0PShlPWFVKGUpKS5xdWV1ZSxuPW9nLmJpbmQobnVsbCxhYSx0KTtyZXR1cm4gdC5kaXNwYXRjaD1uLFtlLm1lbW9pemVkU3RhdGUsbl19LHVzZURlYnVnVmFsdWU6b3QsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiBvbChheCgpLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hVSghMSk7cmV0dXJuIGU9b28uYmluZChudWxsLGFhLGUucXVldWUsITAsITEpLGF4KCkubWVtb2l6ZWRTdGF0ZT1lLFshMSxlXX0sdXNlU3luY0V4dGVybmFsU3RvcmU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWFhLGw9YXgoKTtpZihySCl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcih1KDQwNykpO249bigpfWVsc2V7aWYobj10KCksbnVsbD09PXVFKXRocm93IEVycm9yKHUoMzQ5KSk7MCE9KDEyNyZ1Xyl8fGFGKHIsdCxuKX1sLm1lbW9pemVkU3RhdGU9bjt2YXIgYT17dmFsdWU6bixnZXRTbmFwc2hvdDp0fTtyZXR1cm4gbC5xdWV1ZT1hLGE0KGFSLmJpbmQobnVsbCxyLGEsZSksW2VdKSxyLmZsYWdzfD0yMDQ4LGEwKDkse2Rlc3Ryb3k6dm9pZCAwfSxhSS5iaW5kKG51bGwscixhLG4sdCksbnVsbCksbn0sdXNlSWQ6ZnVuY3Rpb24oKXt2YXIgZT1heCgpLHQ9dUUuaWRlbnRpZmllclByZWZpeDtpZihySCl7dmFyIG49ckkscj1yRjt0PSJfIit0KyJSXyIrKG49KHImfigxPDwzMi1lTihyKS0xKSkudG9TdHJpbmcoMzIpK24pLDA8KG49YWYrKykmJih0Kz0iSCIrbi50b1N0cmluZygzMikpLHQrPSJfIn1lbHNlIHQ9Il8iK3QrInJfIisobj1hbSsrKS50b1N0cmluZygzMikrIl8iO3JldHVybiBlLm1lbW9pemVkU3RhdGU9dH0sdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6b2YsdXNlRm9ybVN0YXRlOmFZLHVzZUFjdGlvblN0YXRlOmFZLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSl7dmFyIHQ9YXgoKTt0Lm1lbW9pemVkU3RhdGU9dC5iYXNlU3RhdGU9ZTt2YXIgbj17cGVuZGluZzpudWxsLGxhbmVzOjAsZGlzcGF0Y2g6bnVsbCxsYXN0UmVuZGVyZWRSZWR1Y2VyOm51bGwsbGFzdFJlbmRlcmVkU3RhdGU6bnVsbH07cmV0dXJuIHQucXVldWU9bix0PW95LmJpbmQobnVsbCxhYSwhMCxuKSxuLmRpc3BhdGNoPXQsW2UsdF19LHVzZU1lbW9DYWNoZTphVCx1c2VDYWNoZVJlZnJlc2g6ZnVuY3Rpb24oKXtyZXR1cm4gYXgoKS5tZW1vaXplZFN0YXRlPW9tLmJpbmQobnVsbCxhYSl9LHVzZUVmZmVjdEV2ZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWF4KCksbj17aW1wbDplfTtyZXR1cm4gdC5tZW1vaXplZFN0YXRlPW4sZnVuY3Rpb24oKXtpZigwIT0oMiZ1UykpdGhyb3cgRXJyb3IodSg0NDApKTtyZXR1cm4gbi5pbXBsLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfX19LG94PXtyZWFkQ29udGV4dDpsdCx1c2U6YUMsdXNlQ2FsbGJhY2s6b24sdXNlQ29udGV4dDpsdCx1c2VFZmZlY3Q6YTUsdXNlSW1wZXJhdGl2ZUhhbmRsZTpvZSx1c2VJbnNlcnRpb25FZmZlY3Q6YTYsdXNlTGF5b3V0RWZmZWN0OmE5LHVzZU1lbW86b3IsdXNlUmVkdWNlcjphTyx1c2VSZWY6YTEsdXNlU3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gYU8oYXopfSx1c2VEZWJ1Z1ZhbHVlOm90LHVzZURlZmVycmVkVmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gb2EoYV8oKSxhby5tZW1vaXplZFN0YXRlLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hTyhheilbMF0sdD1hXygpLm1lbW9pemVkU3RhdGU7cmV0dXJuWyJib29sZWFuIj09dHlwZW9mIGU/ZTphUChlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6YUQsdXNlSWQ6b2QsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6b2YsdXNlRm9ybVN0YXRlOmFHLHVzZUFjdGlvblN0YXRlOmFHLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYUIoYV8oKSxhbyxlLHQpfSx1c2VNZW1vQ2FjaGU6YVQsdXNlQ2FjaGVSZWZyZXNoOm9wfTtveC51c2VFZmZlY3RFdmVudD1hODt2YXIgb189e3JlYWRDb250ZXh0Omx0LHVzZTphQyx1c2VDYWxsYmFjazpvbix1c2VDb250ZXh0Omx0LHVzZUVmZmVjdDphNSx1c2VJbXBlcmF0aXZlSGFuZGxlOm9lLHVzZUluc2VydGlvbkVmZmVjdDphNix1c2VMYXlvdXRFZmZlY3Q6YTksdXNlTWVtbzpvcix1c2VSZWR1Y2VyOmFNLHVzZVJlZjphMSx1c2VTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBhTShheil9LHVzZURlYnVnVmFsdWU6b3QsdXNlRGVmZXJyZWRWYWx1ZTpmdW5jdGlvbihlLHQpe3ZhciBuPWFfKCk7cmV0dXJuIG51bGw9PT1hbz9vbChuLGUsdCk6b2Eobixhby5tZW1vaXplZFN0YXRlLGUsdCl9LHVzZVRyYW5zaXRpb246ZnVuY3Rpb24oKXt2YXIgZT1hTShheilbMF0sdD1hXygpLm1lbW9pemVkU3RhdGU7cmV0dXJuWyJib29sZWFuIj09dHlwZW9mIGU/ZTphUChlKSx0XX0sdXNlU3luY0V4dGVybmFsU3RvcmU6YUQsdXNlSWQ6b2QsdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6b2YsdXNlRm9ybVN0YXRlOmFKLHVzZUFjdGlvblN0YXRlOmFKLHVzZU9wdGltaXN0aWM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1hXygpO3JldHVybiBudWxsIT09YW8/YUIobixhbyxlLHQpOihuLmJhc2VTdGF0ZT1lLFtlLG4ucXVldWUuZGlzcGF0Y2hdKX0sdXNlTWVtb0NhY2hlOmFULHVzZUNhY2hlUmVmcmVzaDpvcH07ZnVuY3Rpb24gb04oZSx0LG4scil7bj1udWxsPT0obj1uKHIsdD1lLm1lbW9pemVkU3RhdGUpKT90Ongoe30sdCxuKSxlLm1lbW9pemVkU3RhdGU9biwwPT09ZS5sYW5lcyYmKGUudXBkYXRlUXVldWUuYmFzZVN0YXRlPW4pfW9fLnVzZUVmZmVjdEV2ZW50PWE4O3ZhciBvUD17ZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKGUsdCxuKXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciByPXU0KCksbD1sJChyKTtsLnBheWxvYWQ9dCxudWxsIT1uJiYobC5jYWxsYmFjaz1uKSxudWxsIT09KHQ9bEgoZSxsLHIpKSYmKHU2KHQsZSxyKSxsUSh0LGUscikpfSxlbnF1ZXVlUmVwbGFjZVN0YXRlOmZ1bmN0aW9uKGUsdCxuKXtlPWUuX3JlYWN0SW50ZXJuYWxzO3ZhciByPXU0KCksbD1sJChyKTtsLnRhZz0xLGwucGF5bG9hZD10LG51bGwhPW4mJihsLmNhbGxiYWNrPW4pLG51bGwhPT0odD1sSChlLGwscikpJiYodTYodCxlLHIpLGxRKHQsZSxyKSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihlLHQpe2U9ZS5fcmVhY3RJbnRlcm5hbHM7dmFyIG49dTQoKSxyPWwkKG4pO3IudGFnPTIsbnVsbCE9dCYmKHIuY2FsbGJhY2s9dCksbnVsbCE9PSh0PWxIKGUscixuKSkmJih1Nih0LGUsbiksbFEodCxlLG4pKX19O2Z1bmN0aW9uIG9DKGUsdCxuLHIsbCxhLG8pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZihlPWUuc3RhdGVOb2RlKS5zaG91bGRDb21wb25lbnRVcGRhdGU/ZS5zaG91bGRDb21wb25lbnRVcGRhdGUocixhLG8pOiF0LnByb3RvdHlwZXx8IXQucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50fHwhbmoobixyKXx8IW5qKGwsYSl9ZnVuY3Rpb24gb1QoZSx0LG4scil7ZT10LnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMmJnQuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuLHIpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzJiZ0LlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKG4sciksdC5zdGF0ZSE9PWUmJm9QLmVucXVldWVSZXBsYWNlU3RhdGUodCx0LnN0YXRlLG51bGwpfWZ1bmN0aW9uIG96KGUsdCl7dmFyIG49dDtpZigicmVmImluIHQpZm9yKHZhciByIGluIG49e30sdCkicmVmIiE9PXImJihuW3JdPXRbcl0pO2lmKGU9ZS5kZWZhdWx0UHJvcHMpZm9yKHZhciBsIGluIG49PT10JiYobj14KHt9LG4pKSxlKXZvaWQgMD09PW5bbF0mJihuW2xdPWVbbF0pO3JldHVybiBufWZ1bmN0aW9uIG9PKGUpe3JhKGUpfWZ1bmN0aW9uIG9MKGUpe2NvbnNvbGUuZXJyb3IoZSl9ZnVuY3Rpb24gb00oZSl7cmEoZSl9ZnVuY3Rpb24gb0QoZSx0KXt0cnl7KDAsZS5vblVuY2F1Z2h0RXJyb3IpKHQudmFsdWUse2NvbXBvbmVudFN0YWNrOnQuc3RhY2t9KX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfX1mdW5jdGlvbiBvRihlLHQsbil7dHJ5eygwLGUub25DYXVnaHRFcnJvcikobi52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bi5zdGFjayxlcnJvckJvdW5kYXJ5OjE9PT10LnRhZz90LnN0YXRlTm9kZTpudWxsfSl9Y2F0Y2goZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGV9KX19ZnVuY3Rpb24gb0koZSx0LG4pe3JldHVybihuPWwkKG4pKS50YWc9MyxuLnBheWxvYWQ9e2VsZW1lbnQ6bnVsbH0sbi5jYWxsYmFjaz1mdW5jdGlvbigpe29EKGUsdCl9LG59ZnVuY3Rpb24gb1IoZSl7cmV0dXJuKGU9bCQoZSkpLnRhZz0zLGV9ZnVuY3Rpb24gb0EoZSx0LG4scil7dmFyIGw9bi50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcjtpZigiZnVuY3Rpb24iPT10eXBlb2YgbCl7dmFyIGE9ci52YWx1ZTtlLnBheWxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbChhKX0sZS5jYWxsYmFjaz1mdW5jdGlvbigpe29GKHQsbixyKX19dmFyIG89bi5zdGF0ZU5vZGU7bnVsbCE9PW8mJiJmdW5jdGlvbiI9PXR5cGVvZiBvLmNvbXBvbmVudERpZENhdGNoJiYoZS5jYWxsYmFjaz1mdW5jdGlvbigpe29GKHQsbixyKSwiZnVuY3Rpb24iIT10eXBlb2YgbCYmKG51bGw9PT11UT91UT1uZXcgU2V0KFt0aGlzXSk6dVEuYWRkKHRoaXMpKTt2YXIgZT1yLnN0YWNrO3RoaXMuY29tcG9uZW50RGlkQ2F0Y2goci52YWx1ZSx7Y29tcG9uZW50U3RhY2s6bnVsbCE9PWU/ZToiIn0pfSl9dmFyIG9qPUVycm9yKHUoNDYxKSksb1U9ITE7ZnVuY3Rpb24gb0IoZSx0LG4scil7dC5jaGlsZD1udWxsPT09ZT9saih0LG51bGwsbixyKTpsQSh0LGUuY2hpbGQsbixyKX1mdW5jdGlvbiBvVihlLHQsbixyLGwpe249bi5yZW5kZXI7dmFyIGE9dC5yZWY7aWYoInJlZiJpbiByKXt2YXIgbz17fTtmb3IodmFyIGkgaW4gcikicmVmIiE9PWkmJihvW2ldPXJbaV0pfWVsc2Ugbz1yO3JldHVybihsZSh0KSxyPWF2KGUsdCxuLG8sYSxsKSxpPWFrKCksbnVsbD09PWV8fG9VKT8ockgmJmkmJnJqKHQpLHQuZmxhZ3N8PTEsb0IoZSx0LHIsbCksdC5jaGlsZCk6KGFTKGUsdCxsKSxpbChlLHQsbCkpfWZ1bmN0aW9uIG8kKGUsdCxuLHIsbCl7aWYobnVsbD09PWUpe3ZhciBhPW4udHlwZTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgYXx8cnkoYSl8fHZvaWQgMCE9PWEuZGVmYXVsdFByb3BzfHxudWxsIT09bi5jb21wYXJlPygoZT1yayhuLnR5cGUsbnVsbCxyLHQsdC5tb2RlLGwpKS5yZWY9dC5yZWYsZS5yZXR1cm49dCx0LmNoaWxkPWUpOih0LnRhZz0xNSx0LnR5cGU9YSxvSChlLHQsYSxyLGwpKX1pZihhPWUuY2hpbGQsIWlhKGUsbCkpe3ZhciBvPWEubWVtb2l6ZWRQcm9wcztpZigobj1udWxsIT09KG49bi5jb21wYXJlKT9uOm5qKShvLHIpJiZlLnJlZj09PXQucmVmKXJldHVybiBpbChlLHQsbCl9cmV0dXJuIHQuZmxhZ3N8PTEsKGU9cmIoYSxyKSkucmVmPXQucmVmLGUucmV0dXJuPXQsdC5jaGlsZD1lfWZ1bmN0aW9uIG9IKGUsdCxuLHIsbCl7aWYobnVsbCE9PWUpe3ZhciBhPWUubWVtb2l6ZWRQcm9wcztpZihuaihhLHIpJiZlLnJlZj09PXQucmVmKWlmKG9VPSExLHQucGVuZGluZ1Byb3BzPXI9YSwhaWEoZSxsKSlyZXR1cm4gdC5sYW5lcz1lLmxhbmVzLGlsKGUsdCxsKTtlbHNlIDAhPSgxMzEwNzImZS5mbGFncykmJihvVT0hMCl9cmV0dXJuIG9YKGUsdCxuLHIsbCl9ZnVuY3Rpb24gb1EoZSx0LG4scil7dmFyIGw9ci5jaGlsZHJlbixhPW51bGwhPT1lP2UubWVtb2l6ZWRTdGF0ZTpudWxsO2lmKG51bGw9PT1lJiZudWxsPT09dC5zdGF0ZU5vZGUmJih0LnN0YXRlTm9kZT17X3Zpc2liaWxpdHk6MSxfcGVuZGluZ01hcmtlcnM6bnVsbCxfcmV0cnlDYWNoZTpudWxsLF90cmFuc2l0aW9uczpudWxsfSksImhpZGRlbiI9PT1yLm1vZGUpe2lmKDAhPSgxMjgmdC5mbGFncykpe2lmKGE9bnVsbCE9PWE/YS5iYXNlTGFuZXN8bjpuLG51bGwhPT1lKXtmb3IobD0wLHI9dC5jaGlsZD1lLmNoaWxkO251bGwhPT1yOylsPWx8ci5sYW5lc3xyLmNoaWxkTGFuZXMscj1yLnNpYmxpbmc7cj1sJn5hfWVsc2Ugcj0wLHQuY2hpbGQ9bnVsbDtyZXR1cm4gb3EoZSx0LGEsbixyKX1pZigwPT0oMHgyMDAwMDAwMCZuKSlyZXR1cm4gcj10LmxhbmVzPTB4MjAwMDAwMDAsb3EoZSx0LG51bGwhPT1hP2EuYmFzZUxhbmVzfG46bixuLHIpO3QubWVtb2l6ZWRTdGF0ZT17YmFzZUxhbmVzOjAsY2FjaGVQb29sOm51bGx9LG51bGwhPT1lJiZsdyh0LG51bGwhPT1hP2EuY2FjaGVQb29sOm51bGwpLG51bGwhPT1hP2wwKHQsYSk6bDEoKSxsNih0KX1lbHNlIG51bGwhPT1hPyhsdyh0LGEuY2FjaGVQb29sKSxsMCh0LGEpLGw5KCksdC5tZW1vaXplZFN0YXRlPW51bGwpOihudWxsIT09ZSYmbHcodCxudWxsKSxsMSgpLGw5KCkpO3JldHVybiBvQihlLHQsbCxuKSx0LmNoaWxkfWZ1bmN0aW9uIG9XKGUsdCl7cmV0dXJuIG51bGwhPT1lJiYyMj09PWUudGFnfHxudWxsIT09dC5zdGF0ZU5vZGV8fCh0LnN0YXRlTm9kZT17X3Zpc2liaWxpdHk6MSxfcGVuZGluZ01hcmtlcnM6bnVsbCxfcmV0cnlDYWNoZTpudWxsLF90cmFuc2l0aW9uczpudWxsfSksdC5zaWJsaW5nfWZ1bmN0aW9uIG9xKGUsdCxuLHIsbCl7dmFyIGE9bGIoKTtyZXR1cm4gdC5tZW1vaXplZFN0YXRlPXtiYXNlTGFuZXM6bixjYWNoZVBvb2w6YT1udWxsPT09YT9udWxsOntwYXJlbnQ6bGkuX2N1cnJlbnRWYWx1ZSxwb29sOmF9fSxudWxsIT09ZSYmbHcodCxudWxsKSxsMSgpLGw2KHQpLG51bGwhPT1lJiZyOShlLHQsciwhMCksdC5jaGlsZExhbmVzPWwsbnVsbH1mdW5jdGlvbiBvSyhlLHQpe3JldHVybih0PW84KHttb2RlOnQubW9kZSxjaGlsZHJlbjp0LmNoaWxkcmVufSxlLm1vZGUpKS5yZWY9ZS5yZWYsZS5jaGlsZD10LHQucmV0dXJuPWUsdH1mdW5jdGlvbiBvWShlLHQsbil7cmV0dXJuIGxBKHQsZS5jaGlsZCxudWxsLG4pLGU9b0sodCx0LnBlbmRpbmdQcm9wcyksZS5mbGFnc3w9MixsNyh0KSx0Lm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIG9HKGUsdCl7dmFyIG49dC5yZWY7aWYobnVsbD09PW4pbnVsbCE9PWUmJm51bGwhPT1lLnJlZiYmKHQuZmxhZ3N8PTQxOTQ4MTYpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG4mJiJvYmplY3QiIT10eXBlb2Ygbil0aHJvdyBFcnJvcih1KDI4NCkpOyhudWxsPT09ZXx8ZS5yZWYhPT1uKSYmKHQuZmxhZ3N8PTQxOTQ4MTYpfX1mdW5jdGlvbiBvWChlLHQsbixyLGwpe3JldHVybihsZSh0KSxuPWF2KGUsdCxuLHIsdm9pZCAwLGwpLHI9YWsoKSxudWxsPT09ZXx8b1UpPyhySCYmciYmcmoodCksdC5mbGFnc3w9MSxvQihlLHQsbixsKSx0LmNoaWxkKTooYVMoZSx0LGwpLGlsKGUsdCxsKSl9ZnVuY3Rpb24gb1ooZSx0LG4scixsLGEpe3JldHVybihsZSh0KSx0LnVwZGF0ZVF1ZXVlPW51bGwsbj1hYih0LHIsbixsKSxheShlKSxyPWFrKCksbnVsbD09PWV8fG9VKT8ockgmJnImJnJqKHQpLHQuZmxhZ3N8PTEsb0IoZSx0LG4sYSksdC5jaGlsZCk6KGFTKGUsdCxhKSxpbChlLHQsYSkpfWZ1bmN0aW9uIG9KKGUsdCxuLHIsbCl7aWYobGUodCksbnVsbD09PXQuc3RhdGVOb2RlKXt2YXIgYT1yaCxvPW4uY29udGV4dFR5cGU7Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09byYmKGE9bHQobykpLHQubWVtb2l6ZWRTdGF0ZT1udWxsIT09KGE9bmV3IG4ocixhKSkuc3RhdGUmJnZvaWQgMCE9PWEuc3RhdGU/YS5zdGF0ZTpudWxsLGEudXBkYXRlcj1vUCx0LnN0YXRlTm9kZT1hLGEuX3JlYWN0SW50ZXJuYWxzPXQsKGE9dC5zdGF0ZU5vZGUpLnByb3BzPXIsYS5zdGF0ZT10Lm1lbW9pemVkU3RhdGUsYS5yZWZzPXt9LGxCKHQpLG89bi5jb250ZXh0VHlwZSxhLmNvbnRleHQ9Im9iamVjdCI9PXR5cGVvZiBvJiZudWxsIT09bz9sdChvKTpyaCxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSwiZnVuY3Rpb24iPT10eXBlb2Yobz1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcykmJihvTih0LG4sbyxyKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIG4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzfHwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwobz1hLnN0YXRlLCJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudFdpbGxNb3VudCYmYS5jb21wb25lbnRXaWxsTW91bnQoKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50JiZhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQoKSxvIT09YS5zdGF0ZSYmb1AuZW5xdWV1ZVJlcGxhY2VTdGF0ZShhLGEuc3RhdGUsbnVsbCksbFkodCxyLGEsbCksbEsoKSxhLnN0YXRlPXQubWVtb2l6ZWRTdGF0ZSksImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSxyPSEwfWVsc2UgaWYobnVsbD09PWUpe2E9dC5zdGF0ZU5vZGU7dmFyIGk9dC5tZW1vaXplZFByb3BzLHU9b3oobixpKTthLnByb3BzPXU7dmFyIHM9YS5jb250ZXh0LGM9bi5jb250ZXh0VHlwZTtvPXJoLCJvYmplY3QiPT10eXBlb2YgYyYmbnVsbCE9PWMmJihvPWx0KGMpKTt2YXIgZj1uLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztjPSJmdW5jdGlvbiI9PXR5cGVvZiBmfHwiZnVuY3Rpb24iPT10eXBlb2YgYS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSxpPXQucGVuZGluZ1Byb3BzIT09aSxjfHwiZnVuY3Rpb24iIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KGl8fHMhPT1vKSYmb1QodCxhLHIsbyksbFU9ITE7dmFyIGQ9dC5tZW1vaXplZFN0YXRlO2Euc3RhdGU9ZCxsWSh0LHIsYSxsKSxsSygpLHM9dC5tZW1vaXplZFN0YXRlLGl8fGQhPT1zfHxsVT8oImZ1bmN0aW9uIj09dHlwZW9mIGYmJihvTih0LG4sZixyKSxzPXQubWVtb2l6ZWRTdGF0ZSksKHU9bFV8fG9DKHQsbix1LHIsZCxzLG8pKT8oY3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50fHwoImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50V2lsbE1vdW50JiZhLmNvbXBvbmVudFdpbGxNb3VudCgpLCJmdW5jdGlvbiI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQmJmEuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCgpKSwiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpKTooImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkTW91bnQmJih0LmZsYWdzfD00MTk0MzA4KSx0Lm1lbW9pemVkUHJvcHM9cix0Lm1lbW9pemVkU3RhdGU9cyksYS5wcm9wcz1yLGEuc3RhdGU9cyxhLmNvbnRleHQ9byxyPXUpOigiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnREaWRNb3VudCYmKHQuZmxhZ3N8PTQxOTQzMDgpLHI9ITEpfWVsc2V7YT10LnN0YXRlTm9kZSxsVihlLHQpLGM9b3oobixvPXQubWVtb2l6ZWRQcm9wcyksYS5wcm9wcz1jLGY9dC5wZW5kaW5nUHJvcHMsZD1hLmNvbnRleHQscz1uLmNvbnRleHRUeXBlLHU9cmgsIm9iamVjdCI9PXR5cGVvZiBzJiZudWxsIT09cyYmKHU9bHQocykpLChzPSJmdW5jdGlvbiI9PXR5cGVvZihpPW4uZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUpfHwiZnVuY3Rpb24iIT10eXBlb2YgYS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc3x8KG8hPT1mfHxkIT09dSkmJm9UKHQsYSxyLHUpLGxVPSExLGQ9dC5tZW1vaXplZFN0YXRlLGEuc3RhdGU9ZCxsWSh0LHIsYSxsKSxsSygpO3ZhciBwPXQubWVtb2l6ZWRTdGF0ZTtvIT09Znx8ZCE9PXB8fGxVfHxudWxsIT09ZSYmbnVsbCE9PWUuZGVwZW5kZW5jaWVzJiZyNyhlLmRlcGVuZGVuY2llcyk/KCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYob04odCxuLGkscikscD10Lm1lbW9pemVkU3RhdGUpLChjPWxVfHxvQyh0LG4sYyxyLGQscCx1KXx8bnVsbCE9PWUmJm51bGwhPT1lLmRlcGVuZGVuY2llcyYmcjcoZS5kZXBlbmRlbmNpZXMpKT8oc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIGEuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBhLmNvbXBvbmVudFdpbGxVcGRhdGV8fCgiZnVuY3Rpb24iPT10eXBlb2YgYS5jb21wb25lbnRXaWxsVXBkYXRlJiZhLmNvbXBvbmVudFdpbGxVcGRhdGUocixwLHUpLCJmdW5jdGlvbiI9PXR5cGVvZiBhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlJiZhLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKHIscCx1KSksImZ1bmN0aW9uIj09dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlJiYodC5mbGFnc3w9NCksImZ1bmN0aW9uIj09dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUmJih0LmZsYWdzfD0xMDI0KSk6KCJmdW5jdGlvbiIhPXR5cGVvZiBhLmNvbXBvbmVudERpZFVwZGF0ZXx8bz09PWUubWVtb2l6ZWRQcm9wcyYmZD09PWUubWVtb2l6ZWRTdGF0ZXx8KHQuZmxhZ3N8PTQpLCJmdW5jdGlvbiIhPXR5cGVvZiBhLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlfHxvPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9MTAyNCksdC5tZW1vaXplZFByb3BzPXIsdC5tZW1vaXplZFN0YXRlPXApLGEucHJvcHM9cixhLnN0YXRlPXAsYS5jb250ZXh0PXUscj1jKTooImZ1bmN0aW9uIiE9dHlwZW9mIGEuY29tcG9uZW50RGlkVXBkYXRlfHxvPT09ZS5tZW1vaXplZFByb3BzJiZkPT09ZS5tZW1vaXplZFN0YXRlfHwodC5mbGFnc3w9NCksImZ1bmN0aW9uIiE9dHlwZW9mIGEuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGV8fG89PT1lLm1lbW9pemVkUHJvcHMmJmQ9PT1lLm1lbW9pemVkU3RhdGV8fCh0LmZsYWdzfD0xMDI0KSxyPSExKX1yZXR1cm4gYT1yLG9HKGUsdCkscj0wIT0oMTI4JnQuZmxhZ3MpLGF8fHI/KGE9dC5zdGF0ZU5vZGUsbj1yJiYiZnVuY3Rpb24iIT10eXBlb2Ygbi5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I/bnVsbDphLnJlbmRlcigpLHQuZmxhZ3N8PTEsbnVsbCE9PWUmJnI/KHQuY2hpbGQ9bEEodCxlLmNoaWxkLG51bGwsbCksdC5jaGlsZD1sQSh0LG51bGwsbixsKSk6b0IoZSx0LG4sbCksdC5tZW1vaXplZFN0YXRlPWEuc3RhdGUsZT10LmNoaWxkKTplPWlsKGUsdCxsKSxlfWZ1bmN0aW9uIG8wKGUsdCxuLHIpe3JldHVybiByWigpLHQuZmxhZ3N8PTI1NixvQihlLHQsbixyKSx0LmNoaWxkfXZhciBvMT17ZGVoeWRyYXRlZDpudWxsLHRyZWVDb250ZXh0Om51bGwscmV0cnlMYW5lOjAsaHlkcmF0aW9uRXJyb3JzOm51bGx9O2Z1bmN0aW9uIG8yKGUpe3JldHVybntiYXNlTGFuZXM6ZSxjYWNoZVBvb2w6bGsoKX19ZnVuY3Rpb24gbzMoZSx0LG4pe3JldHVybiBlPW51bGwhPT1lP2UuY2hpbGRMYW5lcyZ+bjowLHQmJihlfD11SSksZX1mdW5jdGlvbiBvNChlLHQsbil7dmFyIHIsbD10LnBlbmRpbmdQcm9wcyxhPSExLG89MCE9KDEyOCZ0LmZsYWdzKTtpZigocj1vKXx8KHI9KG51bGw9PT1lfHxudWxsIT09ZS5tZW1vaXplZFN0YXRlKSYmMCE9KDImYWUuY3VycmVudCkpLHImJihhPSEwLHQuZmxhZ3MmPS0xMjkpLHI9MCE9KDMyJnQuZmxhZ3MpLHQuZmxhZ3MmPS0zMyxudWxsPT09ZSl7aWYockgpe2lmKGE/bDUodCk6bDkoKSwoZT1yJCk/bnVsbCE9PShlPW51bGwhPT0oZT1jVihlLHJXKSkmJiImIiE9PWUuZGF0YT9lOm51bGwpJiYodC5tZW1vaXplZFN0YXRlPXtkZWh5ZHJhdGVkOmUsdHJlZUNvbnRleHQ6bnVsbCE9PXJEP3tpZDpyRixvdmVyZmxvdzpySX06bnVsbCxyZXRyeUxhbmU6MHgyMDAwMDAwMCxoeWRyYXRpb25FcnJvcnM6bnVsbH0sKG49cngoZSkpLnJldHVybj10LHQuY2hpbGQ9bixyVj10LHIkPW51bGwpOmU9bnVsbCxudWxsPT09ZSl0aHJvdyBySyh0KTtyZXR1cm4gY0goZSk/dC5sYW5lcz0zMjp0LmxhbmVzPTB4MjAwMDAwMDAsbnVsbH12YXIgaT1sLmNoaWxkcmVuO3JldHVybihsPWwuZmFsbGJhY2ssYSk/KGw5KCksaT1vOCh7bW9kZToiaGlkZGVuIixjaGlsZHJlbjppfSxhPXQubW9kZSksbD1yUyhsLGEsbixudWxsKSxpLnJldHVybj10LGwucmV0dXJuPXQsaS5zaWJsaW5nPWwsdC5jaGlsZD1pLChsPXQuY2hpbGQpLm1lbW9pemVkU3RhdGU9bzIobiksbC5jaGlsZExhbmVzPW8zKGUscixuKSx0Lm1lbW9pemVkU3RhdGU9bzEsb1cobnVsbCxsKSk6KGw1KHQpLG81KHQsaSkpfXZhciBzPWUubWVtb2l6ZWRTdGF0ZTtpZihudWxsIT09cyYmbnVsbCE9PShpPXMuZGVoeWRyYXRlZCkpe2lmKG8pMjU2JnQuZmxhZ3M/KGw1KHQpLHQuZmxhZ3MmPS0yNTcsdD1vNihlLHQsbikpOm51bGwhPT10Lm1lbW9pemVkU3RhdGU/KGw5KCksdC5jaGlsZD1lLmNoaWxkLHQuZmxhZ3N8PTEyOCx0PW51bGwpOihsOSgpLGk9bC5mYWxsYmFjayxhPXQubW9kZSxsPW84KHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpsLmNoaWxkcmVufSxhKSxpPXJTKGksYSxuLG51bGwpLGkuZmxhZ3N8PTIsbC5yZXR1cm49dCxpLnJldHVybj10LGwuc2libGluZz1pLHQuY2hpbGQ9bCxsQSh0LGUuY2hpbGQsbnVsbCxuKSwobD10LmNoaWxkKS5tZW1vaXplZFN0YXRlPW8yKG4pLGwuY2hpbGRMYW5lcz1vMyhlLHIsbiksdC5tZW1vaXplZFN0YXRlPW8xLHQ9b1cobnVsbCxsKSk7ZWxzZSBpZihsNSh0KSxjSChpKSl7aWYocj1pLm5leHRTaWJsaW5nJiZpLm5leHRTaWJsaW5nLmRhdGFzZXQpdmFyIGM9ci5kZ3N0O3I9YywobD1FcnJvcih1KDQxOSkpKS5zdGFjaz0iIixsLmRpZ2VzdD1yLHIwKHt2YWx1ZTpsLHNvdXJjZTpudWxsLHN0YWNrOm51bGx9KSx0PW82KGUsdCxuKX1lbHNlIGlmKG9VfHxyOShlLHQsbiwhMSkscj0wIT0obiZlLmNoaWxkTGFuZXMpLG9VfHxyKXtpZihudWxsIT09KHI9dUUpJiYwIT09KGw9ZVUocixuKSkmJmwhPT1zLnJldHJ5TGFuZSl0aHJvdyBzLnJldHJ5TGFuZT1sLHJkKGUsbCksdTYocixlLGwpLG9qO2MkKGkpfHxzdSgpLHQ9bzYoZSx0LG4pfWVsc2UgYyQoaSk/KHQuZmxhZ3N8PTE5Mix0LmNoaWxkPWUuY2hpbGQsdD1udWxsKTooZT1zLnRyZWVDb250ZXh0LHIkPWNRKGkubmV4dFNpYmxpbmcpLHJWPXQsckg9ITAsclE9bnVsbCxyVz0hMSxudWxsIT09ZSYmckIodCxlKSx0PW81KHQsbC5jaGlsZHJlbiksdC5mbGFnc3w9NDA5Nik7cmV0dXJuIHR9cmV0dXJuIGE/KGw5KCksaT1sLmZhbGxiYWNrLGE9dC5tb2RlLGM9KHM9ZS5jaGlsZCkuc2libGluZywobD1yYihzLHttb2RlOiJoaWRkZW4iLGNoaWxkcmVuOmwuY2hpbGRyZW59KSkuc3VidHJlZUZsYWdzPTB4N2UwMDAwMCZzLnN1YnRyZWVGbGFncyxudWxsIT09Yz9pPXJiKGMsaSk6KGk9clMoaSxhLG4sbnVsbCksaS5mbGFnc3w9MiksaS5yZXR1cm49dCxsLnJldHVybj10LGwuc2libGluZz1pLHQuY2hpbGQ9bCxvVyhudWxsLGwpLGw9dC5jaGlsZCxudWxsPT09KGk9ZS5jaGlsZC5tZW1vaXplZFN0YXRlKT9pPW8yKG4pOihudWxsIT09KGE9aS5jYWNoZVBvb2wpPyhzPWxpLl9jdXJyZW50VmFsdWUsYT1hLnBhcmVudCE9PXM/e3BhcmVudDpzLHBvb2w6c306YSk6YT1saygpLGk9e2Jhc2VMYW5lczppLmJhc2VMYW5lc3xuLGNhY2hlUG9vbDphfSksbC5tZW1vaXplZFN0YXRlPWksbC5jaGlsZExhbmVzPW8zKGUscixuKSx0Lm1lbW9pemVkU3RhdGU9bzEsb1coZS5jaGlsZCxsKSk6KGw1KHQpLGU9KG49ZS5jaGlsZCkuc2libGluZywobj1yYihuLHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjpsLmNoaWxkcmVufSkpLnJldHVybj10LG4uc2libGluZz1udWxsLG51bGwhPT1lJiYobnVsbD09PShyPXQuZGVsZXRpb25zKT8odC5kZWxldGlvbnM9W2VdLHQuZmxhZ3N8PTE2KTpyLnB1c2goZSkpLHQuY2hpbGQ9bix0Lm1lbW9pemVkU3RhdGU9bnVsbCxuKX1mdW5jdGlvbiBvNShlLHQpe3JldHVybih0PW84KHttb2RlOiJ2aXNpYmxlIixjaGlsZHJlbjp0fSxlLm1vZGUpKS5yZXR1cm49ZSxlLmNoaWxkPXR9ZnVuY3Rpb24gbzgoZSx0KXtyZXR1cm4oZT1ydigyMixlLG51bGwsdCkpLmxhbmVzPTAsZX1mdW5jdGlvbiBvNihlLHQsbil7cmV0dXJuIGxBKHQsZS5jaGlsZCxudWxsLG4pLGU9bzUodCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbiksZS5mbGFnc3w9Mix0Lm1lbW9pemVkU3RhdGU9bnVsbCxlfWZ1bmN0aW9uIG85KGUsdCxuKXtlLmxhbmVzfD10O3ZhciByPWUuYWx0ZXJuYXRlO251bGwhPT1yJiYoci5sYW5lc3w9dCkscjgoZS5yZXR1cm4sdCxuKX1mdW5jdGlvbiBvNyhlKXtmb3IodmFyIHQ9bnVsbDtudWxsIT09ZTspe3ZhciBuPWUuYWx0ZXJuYXRlO251bGwhPT1uJiZudWxsPT09YXIobikmJih0PWUpLGU9ZS5zaWJsaW5nfXJldHVybiB0fWZ1bmN0aW9uIGllKGUsdCxuLHIsbCxhKXt2YXIgbz1lLm1lbW9pemVkU3RhdGU7bnVsbD09PW8/ZS5tZW1vaXplZFN0YXRlPXtpc0JhY2t3YXJkczp0LHJlbmRlcmluZzpudWxsLHJlbmRlcmluZ1N0YXJ0VGltZTowLGxhc3Q6cix0YWlsOm4sdGFpbE1vZGU6bCx0cmVlRm9ya0NvdW50OmF9OihvLmlzQmFja3dhcmRzPXQsby5yZW5kZXJpbmc9bnVsbCxvLnJlbmRlcmluZ1N0YXJ0VGltZT0wLG8ubGFzdD1yLG8udGFpbD1uLG8udGFpbE1vZGU9bCxvLnRyZWVGb3JrQ291bnQ9YSl9ZnVuY3Rpb24gaXQoZSl7dmFyIHQ9ZS5jaGlsZDtmb3IoZS5jaGlsZD1udWxsO251bGwhPT10Oyl7dmFyIG49dC5zaWJsaW5nO3Quc2libGluZz1lLmNoaWxkLGUuY2hpbGQ9dCx0PW59fWZ1bmN0aW9uIGlyKGUsdCxuKXt2YXIgcj10LnBlbmRpbmdQcm9wcyxsPXIucmV2ZWFsT3JkZXIsYT1yLnRhaWw7cj1yLmNoaWxkcmVuO3ZhciBvPWFlLmN1cnJlbnQ7aWYoMTI4JnQuZmxhZ3MpcmV0dXJuIGF0KHQsbyksbnVsbDt2YXIgaT0wIT0oMiZvKTtpZihpPyhvPTEmb3wyLHQuZmxhZ3N8PTEyOCk6byY9MSxhdCh0LG8pLCJiYWNrd2FyZHMiPT09bCYmbnVsbCE9PWU/KGl0KGUpLG9CKGUsdCxyLG4pLGl0KGUpKTpvQihlLHQscixuKSxyPXJIP3JPOjAsIWkmJm51bGwhPT1lJiYwIT0oMTI4JmUuZmxhZ3MpKWU6Zm9yKGU9dC5jaGlsZDtudWxsIT09ZTspe2lmKDEzPT09ZS50YWcpbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbzkoZSxuLHQpO2Vsc2UgaWYoMTk9PT1lLnRhZylvOShlLG4sdCk7ZWxzZSBpZihudWxsIT09ZS5jaGlsZCl7ZS5jaGlsZC5yZXR1cm49ZSxlPWUuY2hpbGQ7Y29udGludWV9aWYoZT09PXQpYnJlYWs7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxlLnJldHVybj09PXQpYnJlYWsgZTtlPWUucmV0dXJufWUuc2libGluZy5yZXR1cm49ZS5yZXR1cm4sZT1lLnNpYmxpbmd9c3dpdGNoKGwpe2Nhc2UiYmFja3dhcmRzIjpudWxsPT09KG49bzcodC5jaGlsZCkpPyhsPXQuY2hpbGQsdC5jaGlsZD1udWxsKToobD1uLnNpYmxpbmcsbi5zaWJsaW5nPW51bGwsaXQodCkpLGllKHQsITAsbCxudWxsLGEscik7YnJlYWs7Y2FzZSJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzIjpmb3Iobj1udWxsLGw9dC5jaGlsZCx0LmNoaWxkPW51bGw7bnVsbCE9PWw7KXtpZihudWxsIT09KGU9bC5hbHRlcm5hdGUpJiZudWxsPT09YXIoZSkpe3QuY2hpbGQ9bDticmVha31lPWwuc2libGluZyxsLnNpYmxpbmc9bixuPWwsbD1lfWllKHQsITAsbixudWxsLGEscik7YnJlYWs7Y2FzZSJ0b2dldGhlciI6aWUodCwhMSxudWxsLG51bGwsdm9pZCAwLHIpO2JyZWFrO2Nhc2UiaW5kZXBlbmRlbnQiOnQubWVtb2l6ZWRTdGF0ZT1udWxsO2JyZWFrO2RlZmF1bHQ6bnVsbD09PShuPW83KHQuY2hpbGQpKT8obD10LmNoaWxkLHQuY2hpbGQ9bnVsbCk6KGw9bi5zaWJsaW5nLG4uc2libGluZz1udWxsKSxpZSh0LCExLGwsbixhLHIpfXJldHVybiB0LmNoaWxkfWZ1bmN0aW9uIGlsKGUsdCxuKXtpZihudWxsIT09ZSYmKHQuZGVwZW5kZW5jaWVzPWUuZGVwZW5kZW5jaWVzKSx1TXw9dC5sYW5lcywwPT0obiZ0LmNoaWxkTGFuZXMpKXtpZihudWxsPT09ZSlyZXR1cm4gbnVsbDtlbHNlIGlmKHI5KGUsdCxuLCExKSwwPT0obiZ0LmNoaWxkTGFuZXMpKXJldHVybiBudWxsfWlmKG51bGwhPT1lJiZ0LmNoaWxkIT09ZS5jaGlsZCl0aHJvdyBFcnJvcih1KDE1MykpO2lmKG51bGwhPT10LmNoaWxkKXtmb3Iobj1yYihlPXQuY2hpbGQsZS5wZW5kaW5nUHJvcHMpLHQuY2hpbGQ9bixuLnJldHVybj10O251bGwhPT1lLnNpYmxpbmc7KWU9ZS5zaWJsaW5nLChuPW4uc2libGluZz1yYihlLGUucGVuZGluZ1Byb3BzKSkucmV0dXJuPXQ7bi5zaWJsaW5nPW51bGx9cmV0dXJuIHQuY2hpbGR9ZnVuY3Rpb24gaWEoZSx0KXtyZXR1cm4gMCE9KGUubGFuZXMmdCl8fCEhKG51bGwhPT0oZT1lLmRlcGVuZGVuY2llcykmJnI3KGUpKX1mdW5jdGlvbiBpbyhlLHQsbil7aWYobnVsbCE9PWUpaWYoZS5tZW1vaXplZFByb3BzIT09dC5wZW5kaW5nUHJvcHMpb1U9ITA7ZWxzZXtpZighaWEoZSxuKSYmMD09KDEyOCZ0LmZsYWdzKSlyZXR1cm4gb1U9ITEsZnVuY3Rpb24oZSx0LG4pe3N3aXRjaCh0LnRhZyl7Y2FzZSAzOmVsKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbykscjQodCxsaSxlLm1lbW9pemVkU3RhdGUuY2FjaGUpLHJaKCk7YnJlYWs7Y2FzZSAyNzpjYXNlIDU6ZW8odCk7YnJlYWs7Y2FzZSA0OmVsKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyk7YnJlYWs7Y2FzZSAxMDpyNCh0LHQudHlwZSx0Lm1lbW9pemVkUHJvcHMudmFsdWUpO2JyZWFrO2Nhc2UgMzE6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSlyZXR1cm4gdC5mbGFnc3w9MTI4LGw4KHQpLG51bGw7YnJlYWs7Y2FzZSAxMzp2YXIgcj10Lm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXIpe2lmKG51bGwhPT1yLmRlaHlkcmF0ZWQpcmV0dXJuIGw1KHQpLHQuZmxhZ3N8PTEyOCxudWxsO2lmKDAhPShuJnQuY2hpbGQuY2hpbGRMYW5lcykpcmV0dXJuIG80KGUsdCxuKTtyZXR1cm4gbDUodCksbnVsbCE9PShlPWlsKGUsdCxuKSk/ZS5zaWJsaW5nOm51bGx9bDUodCk7YnJlYWs7Y2FzZSAxOTppZigxMjgmdC5mbGFncylyZXR1cm4gaXIoZSx0LG4pO3ZhciBsPTAhPSgxMjgmZS5mbGFncyk7aWYoKHI9MCE9KG4mdC5jaGlsZExhbmVzKSl8fChyOShlLHQsbiwhMSkscj0wIT0obiZ0LmNoaWxkTGFuZXMpKSxsKXtpZihyKXJldHVybiBpcihlLHQsbik7dC5mbGFnc3w9MTI4fWlmKG51bGwhPT0obD10Lm1lbW9pemVkU3RhdGUpJiYobC5yZW5kZXJpbmc9bnVsbCxsLnRhaWw9bnVsbCxsLmxhc3RFZmZlY3Q9bnVsbCksYXQodCxhZS5jdXJyZW50KSwhcilyZXR1cm4gbnVsbDticmVhaztjYXNlIDIyOnJldHVybiB0LmxhbmVzPTAsb1EoZSx0LG4sdC5wZW5kaW5nUHJvcHMpO2Nhc2UgMjQ6cjQodCxsaSxlLm1lbW9pemVkU3RhdGUuY2FjaGUpfXJldHVybiBpbChlLHQsbil9KGUsdCxuKTtvVT0wIT0oMTMxMDcyJmUuZmxhZ3MpfWVsc2Ugb1U9ITEsckgmJjAhPSgxMDQ4NTc2JnQuZmxhZ3MpJiZyQSh0LHJPLHQuaW5kZXgpO3N3aXRjaCh0LmxhbmVzPTAsdC50YWcpe2Nhc2UgMTY6ZTp7dmFyIHI9dC5wZW5kaW5nUHJvcHM7aWYoZT1sQyh0LmVsZW1lbnRUeXBlKSx0LnR5cGU9ZSwiZnVuY3Rpb24iPT10eXBlb2YgZSlyeShlKT8ocj1veihlLHIpLHQudGFnPTEsdD1vSihudWxsLHQsZSxyLG4pKToodC50YWc9MCx0PW9YKG51bGwsdCxlLHIsbikpO2Vsc2V7aWYobnVsbCE9ZSl7dmFyIGw9ZS4kJHR5cGVvZjtpZihsPT09TSl7dC50YWc9MTEsdD1vVihudWxsLHQsZSxyLG4pO2JyZWFrIGV9aWYobD09PUkpe3QudGFnPTE0LHQ9byQobnVsbCx0LGUscixuKTticmVhayBlfX10aHJvdyBFcnJvcih1KDMwNix0PWZ1bmN0aW9uIGUodCl7aWYobnVsbD09dClyZXR1cm4gbnVsbDtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gdC4kJHR5cGVvZj09PUg/bnVsbDp0LmRpc3BsYXlOYW1lfHx0Lm5hbWV8fG51bGw7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O3N3aXRjaCh0KXtjYXNlIEM6cmV0dXJuIkZyYWdtZW50IjtjYXNlIHo6cmV0dXJuIlByb2ZpbGVyIjtjYXNlIFQ6cmV0dXJuIlN0cmljdE1vZGUiO2Nhc2UgRDpyZXR1cm4iU3VzcGVuc2UiO2Nhc2UgRjpyZXR1cm4iU3VzcGVuc2VMaXN0IjtjYXNlIEE6cmV0dXJuIkFjdGl2aXR5IjtjYXNlIEI6cmV0dXJuIlZpZXdUcmFuc2l0aW9uIn1pZigib2JqZWN0Ij09dHlwZW9mIHQpc3dpdGNoKHQuJCR0eXBlb2Ype2Nhc2UgUDpyZXR1cm4iUG9ydGFsIjtjYXNlIEw6cmV0dXJuIHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IjtjYXNlIE86cmV0dXJuKHQuX2NvbnRleHQuZGlzcGxheU5hbWV8fCJDb250ZXh0IikrIi5Db25zdW1lciI7Y2FzZSBNOnZhciBuPXQucmVuZGVyO3JldHVybih0PXQuZGlzcGxheU5hbWUpfHwodD0iIiE9PSh0PW4uZGlzcGxheU5hbWV8fG4ubmFtZXx8IiIpPyJGb3J3YXJkUmVmKCIrdCsiKSI6IkZvcndhcmRSZWYiKSx0O2Nhc2UgSTpyZXR1cm4gbnVsbCE9PShuPXQuZGlzcGxheU5hbWV8fG51bGwpP246ZSh0LnR5cGUpfHwiTWVtbyI7Y2FzZSBSOm49dC5fcGF5bG9hZCx0PXQuX2luaXQ7dHJ5e3JldHVybiBlKHQobikpfWNhdGNoKGUpe319cmV0dXJuIG51bGx9KGUpfHxlLCIiKSl9fXJldHVybiB0O2Nhc2UgMDpyZXR1cm4gb1goZSx0LHQudHlwZSx0LnBlbmRpbmdQcm9wcyxuKTtjYXNlIDE6cmV0dXJuIGw9b3oocj10LnR5cGUsdC5wZW5kaW5nUHJvcHMpLG9KKGUsdCxyLGwsbik7Y2FzZSAzOmU6e2lmKGVsKHQsdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksbnVsbD09PWUpdGhyb3cgRXJyb3IodSgzODcpKTtyPXQucGVuZGluZ1Byb3BzO3ZhciBhPXQubWVtb2l6ZWRTdGF0ZTtsPWEuZWxlbWVudCxsVihlLHQpLGxZKHQscixudWxsLG4pO3ZhciBvPXQubWVtb2l6ZWRTdGF0ZTtpZihyNCh0LGxpLHI9by5jYWNoZSksciE9PWEuY2FjaGUmJnI2KHQsW2xpXSxuLCEwKSxsSygpLHI9by5lbGVtZW50LGEuaXNEZWh5ZHJhdGVkKWlmKGE9e2VsZW1lbnQ6cixpc0RlaHlkcmF0ZWQ6ITEsY2FjaGU6by5jYWNoZX0sdC51cGRhdGVRdWV1ZS5iYXNlU3RhdGU9YSx0Lm1lbW9pemVkU3RhdGU9YSwyNTYmdC5mbGFncyl7dD1vMChlLHQscixuKTticmVhayBlfWVsc2UgaWYociE9PWwpe3IwKGw9clAoRXJyb3IodSg0MjQpKSx0KSksdD1vMChlLHQscixuKTticmVhayBlfWVsc2UgZm9yKHIkPWNRKChlPTk9PT0oZT10LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKS5ub2RlVHlwZT9lLmJvZHk6IkhUTUwiPT09ZS5ub2RlTmFtZT9lLm93bmVyRG9jdW1lbnQuYm9keTplKS5maXJzdENoaWxkKSxyVj10LHJIPSEwLHJRPW51bGwsclc9ITAsbj1saih0LG51bGwscixuKSx0LmNoaWxkPW47bjspbi5mbGFncz0tMyZuLmZsYWdzfDQwOTYsbj1uLnNpYmxpbmc7ZWxzZXtpZihyWigpLHI9PT1sKXt0PWlsKGUsdCxuKTticmVhayBlfW9CKGUsdCxyLG4pfXQ9dC5jaGlsZH1yZXR1cm4gdDtjYXNlIDI2OnJldHVybiBvRyhlLHQpLG51bGw9PT1lPyhuPWMzKHQudHlwZSxudWxsLHQucGVuZGluZ1Byb3BzLG51bGwpKT90Lm1lbW9pemVkU3RhdGU9bjpySHx8KG49dC50eXBlLGU9dC5wZW5kaW5nUHJvcHMsKHI9Y3UoZW4uY3VycmVudCkuY3JlYXRlRWxlbWVudChuKSlbZVddPXQscltlcV09ZSxjbChyLG4sZSksZTUociksdC5zdGF0ZU5vZGU9cik6dC5tZW1vaXplZFN0YXRlPWMzKHQudHlwZSxlLm1lbW9pemVkUHJvcHMsdC5wZW5kaW5nUHJvcHMsZS5tZW1vaXplZFN0YXRlKSxudWxsO2Nhc2UgMjc6cmV0dXJuIGVvKHQpLG51bGw9PT1lJiZySCYmKHI9dC5zdGF0ZU5vZGU9Y1kodC50eXBlLHQucGVuZGluZ1Byb3BzLGVuLmN1cnJlbnQpLHJWPXQsclc9ITAsbD1yJCxjeSh0LnR5cGUpPyhjVz1sLHIkPWNRKHIuZmlyc3RDaGlsZCkpOnIkPWwpLG9CKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSxvRyhlLHQpLG51bGw9PT1lJiYodC5mbGFnc3w9NDE5NDMwNCksdC5jaGlsZDtjYXNlIDU6cmV0dXJuIG51bGw9PT1lJiZySCYmKChsPXI9ciQpJiYobnVsbCE9PShyPWZ1bmN0aW9uKGUsdCxuLHIpe2Zvcig7MT09PWUubm9kZVR5cGU7KXtpZihlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPT10LnRvTG93ZXJDYXNlKCkpe2lmKCFyJiYoIklOUFVUIiE9PWUubm9kZU5hbWV8fCJoaWRkZW4iIT09ZS50eXBlKSlicmVha31lbHNlIGlmKHIpe2lmKCFlW2VKXSlzd2l0Y2godCl7Y2FzZSJtZXRhIjppZighZS5oYXNBdHRyaWJ1dGUoIml0ZW1wcm9wIikpYnJlYWs7cmV0dXJuIGU7Y2FzZSJsaW5rIjppZigic3R5bGVzaGVldCI9PT0obD1lLmdldEF0dHJpYnV0ZSgicmVsIikpJiZlLmhhc0F0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIil8fGwhPT1uLnJlbHx8ZS5nZXRBdHRyaWJ1dGUoImhyZWYiKSE9PShudWxsPT1uLmhyZWZ8fCIiPT09bi5ocmVmP251bGw6bi5ocmVmKXx8ZS5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIikhPT0obnVsbD09bi5jcm9zc09yaWdpbj9udWxsOm4uY3Jvc3NPcmlnaW4pfHxlLmdldEF0dHJpYnV0ZSgidGl0bGUiKSE9PShudWxsPT1uLnRpdGxlP251bGw6bi50aXRsZSkpYnJlYWs7cmV0dXJuIGU7Y2FzZSJzdHlsZSI6aWYoZS5oYXNBdHRyaWJ1dGUoImRhdGEtcHJlY2VkZW5jZSIpKWJyZWFrO3JldHVybiBlO2Nhc2Uic2NyaXB0IjppZigoKGw9ZS5nZXRBdHRyaWJ1dGUoInNyYyIpKSE9PShudWxsPT1uLnNyYz9udWxsOm4uc3JjKXx8ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSE9PShudWxsPT1uLnR5cGU/bnVsbDpuLnR5cGUpfHxlLmdldEF0dHJpYnV0ZSgiY3Jvc3NvcmlnaW4iKSE9PShudWxsPT1uLmNyb3NzT3JpZ2luP251bGw6bi5jcm9zc09yaWdpbikpJiZsJiZlLmhhc0F0dHJpYnV0ZSgiYXN5bmMiKSYmIWUuaGFzQXR0cmlidXRlKCJpdGVtcHJvcCIpKWJyZWFrO3JldHVybiBlO2RlZmF1bHQ6cmV0dXJuIGV9fWVsc2V7aWYoImlucHV0IiE9PXR8fCJoaWRkZW4iIT09ZS50eXBlKXJldHVybiBlO3ZhciBsPW51bGw9PW4ubmFtZT9udWxsOiIiK24ubmFtZTtpZigiaGlkZGVuIj09PW4udHlwZSYmZS5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PWwpcmV0dXJuIGV9aWYobnVsbD09PShlPWNRKGUubmV4dFNpYmxpbmcpKSlicmVha31yZXR1cm4gbnVsbH0ocix0LnR5cGUsdC5wZW5kaW5nUHJvcHMsclcpKT8odC5zdGF0ZU5vZGU9cixyVj10LHIkPWNRKHIuZmlyc3RDaGlsZCksclc9ITEsbD0hMCk6bD0hMSksbHx8cksodCkpLGVvKHQpLGw9dC50eXBlLGE9dC5wZW5kaW5nUHJvcHMsbz1udWxsIT09ZT9lLm1lbW9pemVkUHJvcHM6bnVsbCxyPWEuY2hpbGRyZW4sY2YobCxhKT9yPW51bGw6bnVsbCE9PW8mJmNmKGwsbykmJih0LmZsYWdzfD0zMiksbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSYmKGZ2Ll9jdXJyZW50VmFsdWU9bD1hdihlLHQsYXcsbnVsbCxudWxsLG4pKSxvRyhlLHQpLG9CKGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSA2OnJldHVybiBudWxsPT09ZSYmckgmJigoZT1uPXIkKSYmKG51bGwhPT0obj1mdW5jdGlvbihlLHQsbil7aWYoIiI9PT10KXJldHVybiBudWxsO2Zvcig7MyE9PWUubm9kZVR5cGU7KWlmKCgxIT09ZS5ub2RlVHlwZXx8IklOUFVUIiE9PWUubm9kZU5hbWV8fCJoaWRkZW4iIT09ZS50eXBlKSYmIW58fG51bGw9PT0oZT1jUShlLm5leHRTaWJsaW5nKSkpcmV0dXJuIG51bGw7cmV0dXJuIGV9KG4sdC5wZW5kaW5nUHJvcHMsclcpKT8odC5zdGF0ZU5vZGU9bixyVj10LHIkPW51bGwsZT0hMCk6ZT0hMSksZXx8cksodCkpLG51bGw7Y2FzZSAxMzpyZXR1cm4gbzQoZSx0LG4pO2Nhc2UgNDpyZXR1cm4gZWwodCx0LnN0YXRlTm9kZS5jb250YWluZXJJbmZvKSxyPXQucGVuZGluZ1Byb3BzLG51bGw9PT1lP3QuY2hpbGQ9bEEodCxudWxsLHIsbik6b0IoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDExOnJldHVybiBvVihlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgNzpyZXR1cm4gcj10LnBlbmRpbmdQcm9wcyxvRyhlLHQpLG9CKGUsdCxyLG4pLHQuY2hpbGQ7Y2FzZSA4OmNhc2UgMTI6cmV0dXJuIG9CKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMTA6cmV0dXJuIHI9dC5wZW5kaW5nUHJvcHMscjQodCx0LnR5cGUsci52YWx1ZSksb0IoZSx0LHIuY2hpbGRyZW4sbiksdC5jaGlsZDtjYXNlIDk6cmV0dXJuIGw9dC50eXBlLl9jb250ZXh0LHI9dC5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sbGUodCkscj1yKGw9bHQobCkpLHQuZmxhZ3N8PTEsb0IoZSx0LHIsbiksdC5jaGlsZDtjYXNlIDE0OnJldHVybiBvJChlLHQsdC50eXBlLHQucGVuZGluZ1Byb3BzLG4pO2Nhc2UgMTU6cmV0dXJuIG9IKGUsdCx0LnR5cGUsdC5wZW5kaW5nUHJvcHMsbik7Y2FzZSAxOTpyZXR1cm4gaXIoZSx0LG4pO2Nhc2UgMzE6dmFyIGk9ZSxzPXQsYz1uLGY9cy5wZW5kaW5nUHJvcHMsZD0wIT0oMTI4JnMuZmxhZ3MpO2lmKHMuZmxhZ3MmPS0xMjksbnVsbD09PWkpe2lmKHJIKXtpZigiaGlkZGVuIj09PWYubW9kZSlyZXR1cm4gaT1vSyhzLGYpLHMubGFuZXM9MHgyMDAwMDAwMCxvVyhudWxsLGkpO2lmKGw4KHMpLChpPXIkKT9udWxsIT09KGk9bnVsbCE9PShpPWNWKGksclcpKSYmIiYiPT09aS5kYXRhP2k6bnVsbCkmJihzLm1lbW9pemVkU3RhdGU9e2RlaHlkcmF0ZWQ6aSx0cmVlQ29udGV4dDpudWxsIT09ckQ/e2lkOnJGLG92ZXJmbG93OnJJfTpudWxsLHJldHJ5TGFuZToweDIwMDAwMDAwLGh5ZHJhdGlvbkVycm9yczpudWxsfSwoYz1yeChpKSkucmV0dXJuPXMscy5jaGlsZD1jLHJWPXMsciQ9bnVsbCk6aT1udWxsLG51bGw9PT1pKXRocm93IHJLKHMpO3JldHVybiBzLmxhbmVzPTB4MjAwMDAwMDAsbnVsbH1yZXR1cm4gb0socyxmKX12YXIgcD1pLm1lbW9pemVkU3RhdGU7aWYobnVsbCE9PXApe3ZhciBtPXAuZGVoeWRyYXRlZDtpZihsOChzKSxkKWlmKDI1NiZzLmZsYWdzKXMuZmxhZ3MmPS0yNTcscz1vWShpLHMsYyk7ZWxzZSBpZihudWxsIT09cy5tZW1vaXplZFN0YXRlKXMuY2hpbGQ9aS5jaGlsZCxzLmZsYWdzfD0xMjgscz1udWxsO2Vsc2UgdGhyb3cgRXJyb3IodSg1NTgpKTtlbHNlIGlmKG9VfHxyOShpLHMsYywhMSksZD0wIT0oYyZpLmNoaWxkTGFuZXMpLG9VfHxkKXtpZihudWxsIT09KGY9dUUpJiYwIT09KG09ZVUoZixjKSkmJm0hPT1wLnJldHJ5TGFuZSl0aHJvdyBwLnJldHJ5TGFuZT1tLHJkKGksbSksdTYoZixpLG0pLG9qO3N1KCkscz1vWShpLHMsYyl9ZWxzZSBpPXAudHJlZUNvbnRleHQsciQ9Y1EobS5uZXh0U2libGluZyksclY9cyxySD0hMCxyUT1udWxsLHJXPSExLG51bGwhPT1pJiZyQihzLGkpLHM9b0socyxmKSxzLmZsYWdzfD00MDk2O3JldHVybiBzfXJldHVybihpPXJiKGkuY2hpbGQse21vZGU6Zi5tb2RlLGNoaWxkcmVuOmYuY2hpbGRyZW59KSkucmVmPXMucmVmLHMuY2hpbGQ9aSxpLnJldHVybj1zLGk7Y2FzZSAyMjpyZXR1cm4gb1EoZSx0LG4sdC5wZW5kaW5nUHJvcHMpO2Nhc2UgMjQ6cmV0dXJuIGxlKHQpLHI9bHQobGkpLG51bGw9PT1lPyhudWxsPT09KGw9bGIoKSkmJihsPXVFLGE9bHUoKSxsLnBvb2xlZENhY2hlPWEsYS5yZWZDb3VudCsrLG51bGwhPT1hJiYobC5wb29sZWRDYWNoZUxhbmVzfD1uKSxsPWEpLHQubWVtb2l6ZWRTdGF0ZT17cGFyZW50OnIsY2FjaGU6bH0sbEIodCkscjQodCxsaSxsKSk6KDAhPShlLmxhbmVzJm4pJiYobFYoZSx0KSxsWSh0LG51bGwsbnVsbCxuKSxsSygpKSxsPWUubWVtb2l6ZWRTdGF0ZSxhPXQubWVtb2l6ZWRTdGF0ZSxsLnBhcmVudCE9PXI/KGw9e3BhcmVudDpyLGNhY2hlOnJ9LHQubWVtb2l6ZWRTdGF0ZT1sLDA9PT10LmxhbmVzJiYodC5tZW1vaXplZFN0YXRlPXQudXBkYXRlUXVldWUuYmFzZVN0YXRlPWwpLHI0KHQsbGkscikpOihyNCh0LGxpLHI9YS5jYWNoZSksciE9PWwuY2FjaGUmJnI2KHQsW2xpXSxuLCEwKSkpLG9CKGUsdCx0LnBlbmRpbmdQcm9wcy5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMzA6cmV0dXJuIG51bGwhPShyPXQucGVuZGluZ1Byb3BzKS5uYW1lJiYiYXV0byIhPT1yLm5hbWU/dC5mbGFnc3w9bnVsbD09PWU/MHgxMjAyMDAwOjB4MTIwMDAwMDpySCYmcmoodCksbnVsbCE9PWUmJmUubWVtb2l6ZWRQcm9wcy5uYW1lIT09ci5uYW1lP3QuZmxhZ3N8PTQxOTQ4MTY6b0coZSx0KSxvQihlLHQsci5jaGlsZHJlbixuKSx0LmNoaWxkO2Nhc2UgMjk6dGhyb3cgdC5wZW5kaW5nUHJvcHN9dGhyb3cgRXJyb3IodSgxNTYsdC50YWcpKX1mdW5jdGlvbiBpaShlKXtlLmZsYWdzfD00fWZ1bmN0aW9uIGl1KGUsdCxuLHIsbCl7dmFyIGE7aWYoKGE9MCE9KDMyJmUubW9kZSkpJiYoYT1udWxsPT09bj9mbyh0LHIpOmZvKHQscikmJihyLnNyYyE9PW4uc3JjfHxyLnNyY1NldCE9PW4uc3JjU2V0KSksYSl7aWYoZS5mbGFnc3w9MHgxMDAwMDAwLCgweDEzZmZmZjQwJmwpPT09bClpZihlLnN0YXRlTm9kZS5jb21wbGV0ZSllLmZsYWdzfD04MTkyO2Vsc2UgaWYoc2EoKSllLmZsYWdzfD04MTkyO2Vsc2UgdGhyb3cgbFQ9bF8sbEV9ZWxzZSBlLmZsYWdzJj0tMHgxMDAwMDAxfWZ1bmN0aW9uIGlzKGUsdCl7aWYoInN0eWxlc2hlZXQiIT09dC50eXBlfHwwIT0oNCZ0LnN0YXRlLmxvYWRpbmcpKWUuZmxhZ3MmPS0weDEwMDAwMDE7ZWxzZSBpZihlLmZsYWdzfD0weDEwMDAwMDAsIWZpKHQpKWlmKHNhKCkpZS5mbGFnc3w9ODE5MjtlbHNlIHRocm93IGxUPWxfLGxFfWZ1bmN0aW9uIGljKGUsdCl7bnVsbCE9PXQmJihlLmZsYWdzfD00KSwxNjM4NCZlLmZsYWdzJiYodD0yMiE9PWUudGFnP2VGKCk6MHgyMDAwMDAwMCxlLmxhbmVzfD10LHVSfD10KX1mdW5jdGlvbiBpZChlLHQpe2lmKCFySClzd2l0Y2goZS50YWlsTW9kZSl7Y2FzZSJ2aXNpYmxlIjpicmVhaztjYXNlImNvbGxhcHNlZCI6Zm9yKHZhciBuPWUudGFpbCxyPW51bGw7bnVsbCE9PW47KW51bGwhPT1uLmFsdGVybmF0ZSYmKHI9biksbj1uLnNpYmxpbmc7bnVsbD09PXI/dHx8bnVsbD09PWUudGFpbD9lLnRhaWw9bnVsbDplLnRhaWwuc2libGluZz1udWxsOnIuc2libGluZz1udWxsO2JyZWFrO2RlZmF1bHQ6Zm9yKG49bnVsbCx0PWUudGFpbDtudWxsIT09dDspbnVsbCE9PXQuYWx0ZXJuYXRlJiYobj10KSx0PXQuc2libGluZztudWxsPT09bj9lLnRhaWw9bnVsbDpuLnNpYmxpbmc9bnVsbH19ZnVuY3Rpb24gaXAoZSl7dmFyIHQ9bnVsbCE9PWUuYWx0ZXJuYXRlJiZlLmFsdGVybmF0ZS5jaGlsZD09PWUuY2hpbGQsbj0wLHI9MDtpZih0KWZvcih2YXIgbD1lLmNoaWxkO251bGwhPT1sOylufD1sLmxhbmVzfGwuY2hpbGRMYW5lcyxyfD0weDdlMDAwMDAmbC5zdWJ0cmVlRmxhZ3Mscnw9MHg3ZTAwMDAwJmwuZmxhZ3MsbC5yZXR1cm49ZSxsPWwuc2libGluZztlbHNlIGZvcihsPWUuY2hpbGQ7bnVsbCE9PWw7KW58PWwubGFuZXN8bC5jaGlsZExhbmVzLHJ8PWwuc3VidHJlZUZsYWdzLHJ8PWwuZmxhZ3MsbC5yZXR1cm49ZSxsPWwuc2libGluZztyZXR1cm4gZS5zdWJ0cmVlRmxhZ3N8PXIsZS5jaGlsZExhbmVzPW4sdH1mdW5jdGlvbiBpbShlLHQpe3N3aXRjaChyVSh0KSx0LnRhZyl7Y2FzZSAzOnI1KGxpKSxlYSgpO2JyZWFrO2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6ZWkodCk7YnJlYWs7Y2FzZSA0OmVhKCk7YnJlYWs7Y2FzZSAzMTpudWxsIT09dC5tZW1vaXplZFN0YXRlJiZsNyh0KTticmVhaztjYXNlIDEzOmw3KHQpO2JyZWFrO2Nhc2UgMTk6YW4odCk7YnJlYWs7Y2FzZSAxMDpyNSh0LnR5cGUpO2JyZWFrO2Nhc2UgMjI6Y2FzZSAyMzpsNyh0KSxsMigpLG51bGwhPT1lJiZaKGx5KTticmVhaztjYXNlIDI0OnI1KGxpKX19ZnVuY3Rpb24gaWgoZSx0KXt0cnl7dmFyIG49dC51cGRhdGVRdWV1ZSxyPW51bGwhPT1uP24ubGFzdEVmZmVjdDpudWxsO2lmKG51bGwhPT1yKXt2YXIgbD1yLm5leHQ7bj1sO2Rve2lmKChuLnRhZyZlKT09PWUpe3I9dm9pZCAwO3ZhciBhPW4uY3JlYXRlO24uaW5zdC5kZXN0cm95PXI9YSgpfW49bi5uZXh0fXdoaWxlKG4hPT1sKX19Y2F0Y2goZSl7c18odCx0LnJldHVybixlKX19ZnVuY3Rpb24gaWcoZSx0LG4pe3RyeXt2YXIgcj10LnVwZGF0ZVF1ZXVlLGw9bnVsbCE9PXI/ci5sYXN0RWZmZWN0Om51bGw7aWYobnVsbCE9PWwpe3ZhciBhPWwubmV4dDtyPWE7ZG97aWYoKHIudGFnJmUpPT09ZSl7dmFyIG89ci5pbnN0LGk9by5kZXN0cm95O2lmKHZvaWQgMCE9PWkpe28uZGVzdHJveT12b2lkIDAsbD10O3RyeXtpKCl9Y2F0Y2goZSl7c18obCxuLGUpfX19cj1yLm5leHR9d2hpbGUociE9PWEpfX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiBpdihlKXt2YXIgdD1lLnVwZGF0ZVF1ZXVlO2lmKG51bGwhPT10KXt2YXIgbj1lLnN0YXRlTm9kZTt0cnl7bFgodCxuKX1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfX19ZnVuY3Rpb24gaXkoZSx0LG4pe24ucHJvcHM9b3ooZS50eXBlLGUubWVtb2l6ZWRQcm9wcyksbi5zdGF0ZT1lLm1lbW9pemVkU3RhdGU7dHJ5e24uY29tcG9uZW50V2lsbFVubW91bnQoKX1jYXRjaChuKXtzXyhlLHQsbil9fWZ1bmN0aW9uIGliKGUsdCl7dHJ5e3ZhciBuPWUucmVmO2lmKG51bGwhPT1uKXtzd2l0Y2goZS50YWcpe2Nhc2UgMjY6Y2FzZSAyNzpjYXNlIDU6dmFyIHI9ZS5zdGF0ZU5vZGU7YnJlYWs7Y2FzZSAzMDp2YXIgbD1lLnN0YXRlTm9kZSxhPXJuKGUubWVtb2l6ZWRQcm9wcyxsKTsobnVsbD09PWwucmVmfHxsLnJlZi5uYW1lIT09YSkmJihsLnJlZj1jQyhhKSkscj1sLnJlZjticmVhaztjYXNlIDc6bnVsbD09PWUuc3RhdGVOb2RlJiYoZS5zdGF0ZU5vZGU9bmV3IGNUKGUpKSxyPWUuc3RhdGVOb2RlO2JyZWFrO2RlZmF1bHQ6cj1lLnN0YXRlTm9kZX0iZnVuY3Rpb24iPT10eXBlb2Ygbj9lLnJlZkNsZWFudXA9bihyKTpuLmN1cnJlbnQ9cn19Y2F0Y2gobil7c18oZSx0LG4pfX1mdW5jdGlvbiBpdyhlLHQpe3ZhciBuPWUucmVmLHI9ZS5yZWZDbGVhbnVwO2lmKG51bGwhPT1uKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiByKXRyeXtyKCl9Y2F0Y2gobil7c18oZSx0LG4pfWZpbmFsbHl7ZS5yZWZDbGVhbnVwPW51bGwsbnVsbCE9KGU9ZS5hbHRlcm5hdGUpJiYoZS5yZWZDbGVhbnVwPW51bGwpfWVsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pdHJ5e24obnVsbCl9Y2F0Y2gobil7c18oZSx0LG4pfWVsc2Ugbi5jdXJyZW50PW51bGx9ZnVuY3Rpb24gaWsoZSl7dmFyIHQ9ZS50eXBlLG49ZS5tZW1vaXplZFByb3BzLHI9ZS5zdGF0ZU5vZGU7dHJ5e3N3aXRjaCh0KXtjYXNlImJ1dHRvbiI6Y2FzZSJpbnB1dCI6Y2FzZSJzZWxlY3QiOmNhc2UidGV4dGFyZWEiOm4uYXV0b0ZvY3VzJiZyLmZvY3VzKCk7YnJlYWs7Y2FzZSJpbWciOm4uc3JjP3Iuc3JjPW4uc3JjOm4uc3JjU2V0JiYoci5zcmNzZXQ9bi5zcmNTZXQpfX1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfX1mdW5jdGlvbiBpUyhlLHQsbil7dHJ5e3ZhciByPWUuc3RhdGVOb2RlOyhmdW5jdGlvbihlLHQsbixyKXtzd2l0Y2godCl7Y2FzZSJkaXYiOmNhc2Uic3BhbiI6Y2FzZSJzdmciOmNhc2UicGF0aCI6Y2FzZSJhIjpjYXNlImciOmNhc2UicCI6Y2FzZSJsaSI6YnJlYWs7Y2FzZSJpbnB1dCI6dmFyIGw9bnVsbCxhPW51bGwsbz1udWxsLGk9bnVsbCxzPW51bGwsYz1udWxsLGY9bnVsbDtmb3IobSBpbiBuKXt2YXIgZD1uW21dO2lmKG4uaGFzT3duUHJvcGVydHkobSkmJm51bGwhPWQpc3dpdGNoKG0pe2Nhc2UiY2hlY2tlZCI6Y2FzZSJ2YWx1ZSI6YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOnM9ZDtkZWZhdWx0OnIuaGFzT3duUHJvcGVydHkobSl8fGNuKGUsdCxtLG51bGwscixkKX19Zm9yKHZhciBwIGluIHIpe3ZhciBtPXJbcF07aWYoZD1uW3BdLHIuaGFzT3duUHJvcGVydHkocCkmJihudWxsIT1tfHxudWxsIT1kKSlzd2l0Y2gocCl7Y2FzZSJ0eXBlIjptIT09ZCYmKHRyPSEwKSxhPW07YnJlYWs7Y2FzZSJuYW1lIjptIT09ZCYmKHRyPSEwKSxsPW07YnJlYWs7Y2FzZSJjaGVja2VkIjptIT09ZCYmKHRyPSEwKSxjPW07YnJlYWs7Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6bSE9PWQmJih0cj0hMCksZj1tO2JyZWFrO2Nhc2UidmFsdWUiOm0hPT1kJiYodHI9ITApLG89bTticmVhaztjYXNlImRlZmF1bHRWYWx1ZSI6bSE9PWQmJih0cj0hMCksaT1tO2JyZWFrO2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPW0pdGhyb3cgRXJyb3IodSgxMzcsdCkpO2JyZWFrO2RlZmF1bHQ6bSE9PWQmJmNuKGUsdCxwLG0scixkKX19dGgoZSxvLGkscyxjLGYsYSxsKTtyZXR1cm47Y2FzZSJzZWxlY3QiOmZvcihhIGluIG09bz1pPXA9bnVsbCxuKWlmKHM9blthXSxuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT1zKXN3aXRjaChhKXtjYXNlInZhbHVlIjpicmVhaztjYXNlIm11bHRpcGxlIjptPXM7ZGVmYXVsdDpyLmhhc093blByb3BlcnR5KGEpfHxjbihlLHQsYSxudWxsLHIscyl9Zm9yKGwgaW4gcilpZihhPXJbbF0scz1uW2xdLHIuaGFzT3duUHJvcGVydHkobCkmJihudWxsIT1hfHxudWxsIT1zKSlzd2l0Y2gobCl7Y2FzZSJ2YWx1ZSI6YSE9PXMmJih0cj0hMCkscD1hO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjphIT09cyYmKHRyPSEwKSxpPWE7YnJlYWs7Y2FzZSJtdWx0aXBsZSI6YSE9PXMmJih0cj0hMCksbz1hO2RlZmF1bHQ6YSE9PXMmJmNuKGUsdCxsLGEscixzKX10PWksbj1vLHI9bSxudWxsIT1wP3R5KGUsISFuLHAsITEpOiEhciE9ISFuJiYobnVsbCE9dD90eShlLCEhbix0LCEwKTp0eShlLCEhbixuP1tdOiIiLCExKSk7cmV0dXJuO2Nhc2UidGV4dGFyZWEiOmZvcihpIGluIG09cD1udWxsLG4paWYobD1uW2ldLG4uaGFzT3duUHJvcGVydHkoaSkmJm51bGwhPWwmJiFyLmhhc093blByb3BlcnR5KGkpKXN3aXRjaChpKXtjYXNlInZhbHVlIjpjYXNlImNoaWxkcmVuIjpicmVhaztkZWZhdWx0OmNuKGUsdCxpLG51bGwscixsKX1mb3IobyBpbiByKWlmKGw9cltvXSxhPW5bb10sci5oYXNPd25Qcm9wZXJ0eShvKSYmKG51bGwhPWx8fG51bGwhPWEpKXN3aXRjaChvKXtjYXNlInZhbHVlIjpsIT09YSYmKHRyPSEwKSxwPWw7YnJlYWs7Y2FzZSJkZWZhdWx0VmFsdWUiOmwhPT1hJiYodHI9ITApLG09bDticmVhaztjYXNlImNoaWxkcmVuIjpicmVhaztjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihudWxsIT1sKXRocm93IEVycm9yKHUoOTEpKTticmVhaztkZWZhdWx0OmwhPT1hJiZjbihlLHQsbyxsLHIsYSl9dGIoZSxwLG0pO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKHZhciBoIGluIG4pcD1uW2hdLG4uaGFzT3duUHJvcGVydHkoaCkmJm51bGwhPXAmJiFyLmhhc093blByb3BlcnR5KGgpJiYoInNlbGVjdGVkIj09PWg/ZS5zZWxlY3RlZD0hMTpjbihlLHQsaCxudWxsLHIscCkpO2ZvcihzIGluIHIpcD1yW3NdLG09bltzXSxyLmhhc093blByb3BlcnR5KHMpJiZwIT09bSYmKG51bGwhPXB8fG51bGwhPW0pJiYoInNlbGVjdGVkIj09PXM/KHAhPT1tJiYodHI9ITApLGUuc2VsZWN0ZWQ9cCYmImZ1bmN0aW9uIiE9dHlwZW9mIHAmJiJzeW1ib2wiIT10eXBlb2YgcCk6Y24oZSx0LHMscCxyLG0pKTtyZXR1cm47Y2FzZSJpbWciOmNhc2UibGluayI6Y2FzZSJhcmVhIjpjYXNlImJhc2UiOmNhc2UiYnIiOmNhc2UiY29sIjpjYXNlImVtYmVkIjpjYXNlImhyIjpjYXNlImtleWdlbiI6Y2FzZSJtZXRhIjpjYXNlInBhcmFtIjpjYXNlInNvdXJjZSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcih2YXIgZyBpbiBuKXA9bltnXSxuLmhhc093blByb3BlcnR5KGcpJiZudWxsIT1wJiYhci5oYXNPd25Qcm9wZXJ0eShnKSYmY24oZSx0LGcsbnVsbCxyLHApO2ZvcihjIGluIHIpaWYocD1yW2NdLG09bltjXSxyLmhhc093blByb3BlcnR5KGMpJiZwIT09bSYmKG51bGwhPXB8fG51bGwhPW0pKXN3aXRjaChjKXtjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjppZihudWxsIT1wKXRocm93IEVycm9yKHUoMTM3LHQpKTticmVhaztkZWZhdWx0OmNuKGUsdCxjLHAscixtKX1yZXR1cm47ZGVmYXVsdDppZih0Xyh0KSl7Zm9yKHZhciB2IGluIG4pcD1uW3ZdLG4uaGFzT3duUHJvcGVydHkodikmJnZvaWQgMCE9PXAmJiFyLmhhc093blByb3BlcnR5KHYpJiZjcihlLHQsdix2b2lkIDAscixwKTtmb3IoZiBpbiByKXA9cltmXSxtPW5bZl0sci5oYXNPd25Qcm9wZXJ0eShmKSYmcCE9PW0mJih2b2lkIDAhPT1wfHx2b2lkIDAhPT1tKSYmY3IoZSx0LGYscCxyLG0pO3JldHVybn19Zm9yKHZhciB5IGluIG4pcD1uW3ldLG4uaGFzT3duUHJvcGVydHkoeSkmJm51bGwhPXAmJiFyLmhhc093blByb3BlcnR5KHkpJiZjbihlLHQseSxudWxsLHIscCk7Zm9yKGQgaW4gcilwPXJbZF0sbT1uW2RdLHIuaGFzT3duUHJvcGVydHkoZCkmJnAhPT1tJiYobnVsbCE9cHx8bnVsbCE9bSkmJmNuKGUsdCxkLHAscixtKX0pKHIsZS50eXBlLG4sdCkscltlcV09dH1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfX1mdW5jdGlvbiBpRShlLHQpe2lmKDU9PT1lLnRhZyYmbnVsbD09PWUuYWx0ZXJuYXRlJiZudWxsIT09dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyljVShlLnN0YXRlTm9kZSx0W25dKX1mdW5jdGlvbiBpeChlKXtmb3IodmFyIHQ9ZS5yZXR1cm47bnVsbCE9PXQ7KXtpZihpTih0KSl7dmFyIG49ZS5zdGF0ZU5vZGUscj10LnN0YXRlTm9kZS5fZXZlbnRMaXN0ZW5lcnM7aWYobnVsbCE9PXIpZm9yKHZhciBsPTA7bDxyLmxlbmd0aDtsKyspe3ZhciBhPXJbbF07bi5yZW1vdmVFdmVudExpc3RlbmVyKGEudHlwZSxhLmxpc3RlbmVyLGEub3B0aW9uc09yVXNlQ2FwdHVyZSl9fWlmKGlfKHQpKWJyZWFrO3Q9dC5yZXR1cm59fWZ1bmN0aW9uIGlfKGUpe3JldHVybiA1PT09ZS50YWd8fDM9PT1lLnRhZ3x8MjY9PT1lLnRhZ3x8Mjc9PT1lLnRhZyYmY3koZS50eXBlKXx8ND09PWUudGFnfWZ1bmN0aW9uIGlOKGUpe3JldHVybiBlJiY3PT09ZS50YWcmJm51bGwhPT1lLnN0YXRlTm9kZX1mdW5jdGlvbiBpUChlKXtlOmZvcig7Oyl7Zm9yKDtudWxsPT09ZS5zaWJsaW5nOyl7aWYobnVsbD09PWUucmV0dXJufHxpXyhlLnJldHVybikpcmV0dXJuIG51bGw7ZT1lLnJldHVybn1mb3IoZS5zaWJsaW5nLnJldHVybj1lLnJldHVybixlPWUuc2libGluZzs1IT09ZS50YWcmJjYhPT1lLnRhZyYmMTghPT1lLnRhZzspe2lmKDI3PT09ZS50YWcmJmN5KGUudHlwZSl8fDImZS5mbGFnc3x8bnVsbD09PWUuY2hpbGR8fDQ9PT1lLnRhZyljb250aW51ZSBlO2UuY2hpbGQucmV0dXJuPWUsZT1lLmNoaWxkfWlmKCEoMiZlLmZsYWdzKSlyZXR1cm4gZS5zdGF0ZU5vZGV9fWZ1bmN0aW9uIGlDKGUsdCxuLHIpe3ZhciBsPWUudGFnO2lmKDU9PT1sfHw2PT09bClsPWUuc3RhdGVOb2RlLHQ/bi5pbnNlcnRCZWZvcmUobCx0KTpuLmFwcGVuZENoaWxkKGwpLGlFKGUsciksdHI9ITA7ZWxzZSBpZig0IT09bCYmKDI3PT09bCYmY3koZS50eXBlKSYmKG49ZS5zdGF0ZU5vZGUpLG51bGwhPT0oZT1lLmNoaWxkKSkpZm9yKGlDKGUsdCxuLHIpLGU9ZS5zaWJsaW5nO251bGwhPT1lOylpQyhlLHQsbixyKSxlPWUuc2libGluZ31mdW5jdGlvbiBpVChlKXt2YXIgdD1lLnN0YXRlTm9kZSxuPWUubWVtb2l6ZWRQcm9wczt0cnl7Zm9yKHZhciByPWUudHlwZSxsPXQuYXR0cmlidXRlcztsLmxlbmd0aDspdC5yZW1vdmVBdHRyaWJ1dGVOb2RlKGxbMF0pO2NsKHQscixuKSx0W2VXXT1lLHRbZXFdPW59Y2F0Y2godCl7c18oZSxlLnJldHVybix0KX19dmFyIGl6PSExLGlPPW51bGw7ZnVuY3Rpb24gaUwoZSl7KDMwPT09ZS50YWd8fDAhPSgweDIwMDAwMDAmZS5zdWJ0cmVlRmxhZ3MpKSYmKGl6PSEwKX12YXIgaU09bnVsbDtmdW5jdGlvbiBpRCgpe3ZhciBlPWlNO3JldHVybiBpTT1udWxsLGV9dmFyIGlGPTA7ZnVuY3Rpb24gaUkoZSx0LG4scixsKXtyZXR1cm4gaUY9MCxmdW5jdGlvbiBlKHQsbixyLGwsYSl7Zm9yKHZhciBvPSExO251bGwhPT10Oyl7aWYoNT09PXQudGFnKXt2YXIgaT10LnN0YXRlTm9kZTtpZihudWxsIT09bCl7dmFyIHU9Y3goaSk7bC5wdXNoKHUpLHUudmlldyYmKG89ITApfWVsc2Ugb3x8Y3goaSkudmlldyYmKG89ITApO2l6PSEwLGNrKGksMD09PWlGP246bisiXyIraUYsciksaUYrK31lbHNlKDIyIT09dC50YWd8fG51bGw9PT10Lm1lbW9pemVkU3RhdGUpJiYoMzA9PT10LnRhZyYmYXx8ZSh0LmNoaWxkLG4scixsLGEpJiYobz0hMCkpO3Q9dC5zaWJsaW5nfXJldHVybiBvfShlLmNoaWxkLHQsbixyLGwpfWZ1bmN0aW9uIGlSKGUsdCl7Zm9yKDtudWxsIT09ZTspNT09PWUudGFnP2NTKGUuc3RhdGVOb2RlLGUubWVtb2l6ZWRQcm9wcyk6KDIyIT09ZS50YWd8fG51bGw9PT1lLm1lbW9pemVkU3RhdGUpJiYoMzA9PT1lLnRhZyYmdHx8aVIoZS5jaGlsZCx0KSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gaUEoZSl7aWYoMCE9KDB4MTIwMDAwMCZlLnN1YnRyZWVGbGFncykpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspe2lmKCgyMiE9PWUudGFnfHxudWxsPT09ZS5tZW1vaXplZFN0YXRlKSYmKGlBKGUpLDMwPT09ZS50YWcmJjAhPSgweDEyMDAwMDAmZS5mbGFncykmJmUuc3RhdGVOb2RlLnBhaXJlZCkpe3ZhciB0PWUubWVtb2l6ZWRQcm9wcztpZihudWxsPT10Lm5hbWV8fCJhdXRvIj09PXQubmFtZSl0aHJvdyBFcnJvcih1KDU0NCkpO3ZhciBuPXQubmFtZTsibm9uZSIhPT0odD1ybCh0LmRlZmF1bHQsdC5zaGFyZSkpJiYoaUkoZSxuLHQsbnVsbCwhMSl8fGlSKGUuY2hpbGQsITEpKX1lPWUuc2libGluZ319ZnVuY3Rpb24gaWooZSx0KXtpZigzMD09PWUudGFnKXt2YXIgbj1lLnN0YXRlTm9kZSxyPWUubWVtb2l6ZWRQcm9wcyxsPXJuKHIsbiksYT1ybChyLmRlZmF1bHQsbi5wYWlyZWQ/ci5zaGFyZTpyLmVudGVyKTsibm9uZSIhPT1hP2lJKGUsbCxhLG51bGwsITEpPyhpQShlKSxuLnBhaXJlZHx8dHx8dTgoZSxyLm9uRW50ZXIpKTppUihlLmNoaWxkLCExKTppQShlKX1lbHNlIGlmKDAhPSgweDIwMDAwMDAmZS5zdWJ0cmVlRmxhZ3MpKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KWlqKGUsdCksZT1lLnNpYmxpbmc7ZWxzZSBpQShlKX1mdW5jdGlvbiBpVShlKXtpZihudWxsIT09aU8mJjAhPT1pTy5zaXplKXt2YXIgdD1pTztpZigwIT0oMHgxMjAwMDAwJmUuc3VidHJlZUZsYWdzKSlmb3IoZT1lLmNoaWxkO251bGwhPT1lOyl7aWYoMjIhPT1lLnRhZ3x8bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSl7aWYoMzA9PT1lLnRhZyYmMCE9KDB4MTIwMDAwMCZlLmZsYWdzKSl7dmFyIG49ZS5tZW1vaXplZFByb3BzLHI9bi5uYW1lO2lmKG51bGwhPXImJiJhdXRvIiE9PXIpe3ZhciBsPXQuZ2V0KHIpO2lmKHZvaWQgMCE9PWwpe3ZhciBhPXJsKG4uZGVmYXVsdCxuLnNoYXJlKTtpZigibm9uZSIhPT1hJiYoaUkoZSxyLGEsbnVsbCwhMSk/KGwucGFpcmVkPWE9ZS5zdGF0ZU5vZGUsYS5wYWlyZWQ9bCx1OChlLG4ub25TaGFyZSkpOmlSKGUuY2hpbGQsITEpKSx0LmRlbGV0ZShyKSwwPT09dC5zaXplKWJyZWFrfX19aVUoZSl9ZT1lLnNpYmxpbmd9fX1mdW5jdGlvbiBpQihlKXtpZigzMD09PWUudGFnKXt2YXIgdD1lLm1lbW9pemVkUHJvcHMsbj1ybih0LGUuc3RhdGVOb2RlKSxyPW51bGwhPT1pTz9pTy5nZXQobik6dm9pZCAwLGw9cmwodC5kZWZhdWx0LHZvaWQgMCE9PXI/dC5zaGFyZTp0LmV4aXQpOyJub25lIiE9PWwmJihpSShlLG4sbCxudWxsLCExKT92b2lkIDAhPT1yPyhyLnBhaXJlZD1sPWUuc3RhdGVOb2RlLGwucGFpcmVkPXIsaU8uZGVsZXRlKG4pLHU4KGUsdC5vblNoYXJlKSk6dTgoZSx0Lm9uRXhpdCk6aVIoZS5jaGlsZCwhMSkpLG51bGwhPT1pTyYmaVUoZSl9ZWxzZSBpZigwIT0oMHgyMDAwMDAwJmUuc3VidHJlZUZsYWdzKSlmb3IoZT1lLmNoaWxkO251bGwhPT1lOylpQihlKSxlPWUuc2libGluZztlbHNlIG51bGwhPT1pTyYmaVUoZSl9ZnVuY3Rpb24gaVYoZSl7aWYoMCE9KDB4MTIwMDAwMCZlLnN1YnRyZWVGbGFncykpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspe2lmKDIyIT09ZS50YWd8fG51bGw9PT1lLm1lbW9pemVkU3RhdGUpe2lmKDMwPT09ZS50YWcmJjAhPSgweDEyMDAwMDAmZS5mbGFncykpe3ZhciB0PWUuc3RhdGVOb2RlO251bGwhPT10LnBhaXJlZCYmKHQucGFpcmVkPW51bGwsaVIoZS5jaGlsZCwhMSkpfWlWKGUpfWU9ZS5zaWJsaW5nfX1mdW5jdGlvbiBpJChlKXtpZigzMD09PWUudGFnKWUuc3RhdGVOb2RlLnBhaXJlZD1udWxsLGlSKGUuY2hpbGQsITEpLGlWKGUpO2Vsc2UgaWYoMCE9KDB4MjAwMDAwMCZlLnN1YnRyZWVGbGFncykpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspaSQoZSksZT1lLnNpYmxpbmc7ZWxzZSBpVihlKX1mdW5jdGlvbiBpSChlLHQsbixyLGwsYSxvKXtmb3IodmFyIGk9ITE7bnVsbCE9PXQ7KXtpZig1PT09dC50YWcpe3ZhciB1PXQuc3RhdGVOb2RlO2lmKG51bGwhPT1hJiZpRjxhLmxlbmd0aCl7dmFyIHMsYz1hW2lGXSxmPWN4KHUpO2lmKChjLnZpZXd8fGYudmlldykmJihpPSEwKSxzPTA9PSg0JmUuZmxhZ3MpKWlmKGYuY2xpcClzPSEwO2Vsc2V7cz1jLnJlY3Q7dmFyIGQ9Zi5yZWN0O3M9cy55IT09ZC55fHxzLnghPT1kLnh8fHMuaGVpZ2h0IT09ZC5oZWlnaHR8fHMud2lkdGghPT1kLndpZHRofXMmJihlLmZsYWdzfD00KSxmLmFicz9mPSFjLmFiczooYz1jLnJlY3QsZj1mLnJlY3QsZj1jLmhlaWdodCE9PWYuaGVpZ2h0fHxjLndpZHRoIT09Zi53aWR0aCksZiYmKGUuZmxhZ3N8PTMyKX1lbHNlIGUuZmxhZ3N8PTMyOzAhPSg0JmUuZmxhZ3MpJiZjayh1LDA9PT1pRj9uOm4rIl8iK2lGLGwpLGkmJjAhPSg0JmUuZmxhZ3MpfHwobnVsbD09PWlNJiYoaU09W10pLGlNLnB1c2godSxyLHQubWVtb2l6ZWRQcm9wcykpLGlGKyt9ZWxzZSgyMiE9PXQudGFnfHxudWxsPT09dC5tZW1vaXplZFN0YXRlKSYmKDMwPT09dC50YWcmJm8/ZS5mbGFnc3w9MzImdC5mbGFnczppSChlLHQuY2hpbGQsbixyLGwsYSxvKSYmKGk9ITApKTt0PXQuc2libGluZ31yZXR1cm4gaX12YXIgaVE9ITEsaVc9ITEsaXE9ITEsaUs9ITEsaVk9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtTZXQ/V2Vha1NldDpTZXQsaUc9bnVsbCxpWD0hMSxpWj0hMSxpSj0hMSxpMD0hMTtmdW5jdGlvbiBpMShlKXtmb3IoO251bGwhPT1pRzspe3ZhciB0PWlHLG49ZSxyPXQuYWx0ZXJuYXRlLGw9dC5mbGFncztzd2l0Y2godC50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWYoMCE9KDQmbCkmJm51bGwhPT0ocj1udWxsIT09KHI9dC51cGRhdGVRdWV1ZSk/ci5ldmVudHM6bnVsbCkpZm9yKG49MDtuPHIubGVuZ3RoO24rKykobD1yW25dKS5yZWYuaW1wbD1sLm5leHRJbXBsO2JyZWFrO2Nhc2UgMTppZigwIT0oMTAyNCZsKSYmbnVsbCE9PXIpe249dm9pZCAwLGw9ci5tZW1vaXplZFByb3BzLHI9ci5tZW1vaXplZFN0YXRlO3ZhciBhPXQuc3RhdGVOb2RlO3RyeXt2YXIgbz1veih0LnR5cGUsbCk7bj1hLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKG8sciksYS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZT1ufWNhdGNoKGUpe3NfKHQsdC5yZXR1cm4sZSl9fWJyZWFrO2Nhc2UgMzppZigwIT0oMTAyNCZsKSl7aWYoOT09PShuPShyPXQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLm5vZGVUeXBlKSljQihyKTtlbHNlIGlmKDE9PT1uKXN3aXRjaChyLm5vZGVOYW1lKXtjYXNlIkhFQUQiOmNhc2UiSFRNTCI6Y2FzZSJCT0RZIjpjQihyKTticmVhaztkZWZhdWx0OnIudGV4dENvbnRlbnQ9IiJ9fWJyZWFrO2Nhc2UgNTpjYXNlIDI2OmNhc2UgMjc6Y2FzZSA2OmNhc2UgNDpjYXNlIDE3OmJyZWFrO2Nhc2UgMzA6biYmbnVsbCE9PXImJihuPXJuKHIubWVtb2l6ZWRQcm9wcyxyLnN0YXRlTm9kZSksIm5vbmUiIT09KGw9cmwoKGw9dC5tZW1vaXplZFByb3BzKS5kZWZhdWx0LGwudXBkYXRlKSkmJmlJKHIsbixsLHIubWVtb2l6ZWRTdGF0ZT1bXSwhMCkpO2JyZWFrO2RlZmF1bHQ6aWYoMCE9KDEwMjQmbCkpdGhyb3cgRXJyb3IodSgxNjMpKX1pZihudWxsIT09KHI9dC5zaWJsaW5nKSl7ci5yZXR1cm49dC5yZXR1cm4saUc9cjticmVha31pRz10LnJldHVybn19ZnVuY3Rpb24gaTIoZSx0LG4pe3ZhciByPW4uZmxhZ3M7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnVpKGUsbiksNCZyJiZpaCg1LG4pO2JyZWFrO2Nhc2UgMTppZih1aShlLG4pLDQmcilpZihlPW4uc3RhdGVOb2RlLG51bGw9PT10KXRyeXtlLmNvbXBvbmVudERpZE1vdW50KCl9Y2F0Y2goZSl7c18obixuLnJldHVybixlKX1lbHNle3ZhciBsPW96KG4udHlwZSx0Lm1lbW9pemVkUHJvcHMpO3Q9dC5tZW1vaXplZFN0YXRlO3RyeXtlLmNvbXBvbmVudERpZFVwZGF0ZShsLHQsZS5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZSl9Y2F0Y2goZSl7c18obixuLnJldHVybixlKX19NjQmciYmaXYobiksNTEyJnImJmliKG4sbi5yZXR1cm4pO2JyZWFrO2Nhc2UgMzppZih1aShlLG4pLDY0JnImJm51bGwhPT0oZT1uLnVwZGF0ZVF1ZXVlKSl7aWYodD1udWxsLG51bGwhPT1uLmNoaWxkKXN3aXRjaChuLmNoaWxkLnRhZyl7Y2FzZSAyNzpjYXNlIDU6Y2FzZSAxOnQ9bi5jaGlsZC5zdGF0ZU5vZGV9dHJ5e2xYKGUsdCl9Y2F0Y2goZSl7c18obixuLnJldHVybixlKX19YnJlYWs7Y2FzZSAyNzpudWxsPT09dCYmNCZyJiZpVChuKTtjYXNlIDI2OmNhc2UgNTp1aShlLG4pLG51bGw9PT10JiY0JnImJmlrKG4pLDUxMiZyJiZpYihuLG4ucmV0dXJuKTticmVhaztjYXNlIDEyOnVpKGUsbik7YnJlYWs7Y2FzZSAzMTp1aShlLG4pLDQmciYmaTkoZSxuKTticmVhaztjYXNlIDEzOnVpKGUsbiksNCZyJiZpNyhlLG4pLDY0JnImJm51bGwhPT0oZT1uLm1lbW9pemVkU3RhdGUpJiZudWxsIT09KGU9ZS5kZWh5ZHJhdGVkKSYmZnVuY3Rpb24oZSx0KXt2YXIgbj1lLm93bmVyRG9jdW1lbnQ7aWYoIiR+Ij09PWUuZGF0YSllLl9yZWFjdFJldHJ5PXQ7ZWxzZSBpZigiJD8iIT09ZS5kYXRhfHwibG9hZGluZyIhPT1uLnJlYWR5U3RhdGUpdCgpO2Vsc2V7dmFyIHI9ZnVuY3Rpb24oKXt0KCksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixyKX07bi5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixyKSxlLl9yZWFjdFJldHJ5PXJ9fShlLG49c1QuYmluZChudWxsLG4pKTticmVhaztjYXNlIDIyOmlmKCEocj1udWxsIT09bi5tZW1vaXplZFN0YXRlfHxpUSkpe3Q9bnVsbCE9PXQmJm51bGwhPT10Lm1lbW9pemVkU3RhdGV8fGlXLGw9aVE7dmFyIGE9aVc7aVE9ciwoaVc9dCkmJiFhP2Z1bmN0aW9uIGUodCxuLHIpe2ZvcihyPXImJjAhPSg4NzcyJm4uc3VidHJlZUZsYWdzKSxuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgbD1uLmFsdGVybmF0ZSxhPXQsbz1uLGk9by5mbGFncztzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6ZShhLG8sciksaWgoNCxvKTticmVhaztjYXNlIDE6aWYoZShhLG8sciksImZ1bmN0aW9uIj09dHlwZW9mKGE9KGw9bykuc3RhdGVOb2RlKS5jb21wb25lbnREaWRNb3VudCl0cnl7YS5jb21wb25lbnREaWRNb3VudCgpfWNhdGNoKGUpe3NfKGwsbC5yZXR1cm4sZSl9aWYobnVsbCE9PShhPShsPW8pLnVwZGF0ZVF1ZXVlKSl7dmFyIHU9bC5zdGF0ZU5vZGU7dHJ5e3ZhciBzPWEuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcztpZihudWxsIT09cylmb3IoYS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzPW51bGwsYT0wO2E8cy5sZW5ndGg7YSsrKWxHKHNbYV0sdSl9Y2F0Y2goZSl7c18obCxsLnJldHVybixlKX19ciYmNjQmaSYmaXYobyksaWIobyxvLnJldHVybik7YnJlYWs7Y2FzZSAyNzppVChvKTtjYXNlIDI2OmNhc2UgNTppZig1PT09by50YWcpe3U9bztmb3IodmFyIGM9dS5yZXR1cm47bnVsbCE9PWMmJihpTihjKSYmY1UodS5zdGF0ZU5vZGUsYy5zdGF0ZU5vZGUpLCFpXyhjKSk7KWM9Yy5yZXR1cm59ZShhLG8sciksciYmbnVsbD09PWwmJjQmaSYmaWsobyksaWIobyxvLnJldHVybik7YnJlYWs7Y2FzZSAxMjplKGEsbyxyKTticmVhaztjYXNlIDMxOmUoYSxvLHIpLHImJjQmaSYmaTkoYSxvKTticmVhaztjYXNlIDEzOmUoYSxvLHIpLHImJjQmaSYmaTcoYSxvKTticmVhaztjYXNlIDIyOm51bGw9PT1vLm1lbW9pemVkU3RhdGUmJmUoYSxvLHIpLGliKG8sby5yZXR1cm4pO2JyZWFrO2Nhc2UgMzA6ZShhLG8sciksaWIobyxvLnJldHVybik7YnJlYWs7Y2FzZSA3OmliKG8sby5yZXR1cm4pO2RlZmF1bHQ6ZShhLG8scil9bj1uLnNpYmxpbmd9fShlLG4sMCE9KDg3NzImbi5zdWJ0cmVlRmxhZ3MpKTp1aShlLG4pLGlRPWwsaVc9YX1icmVhaztjYXNlIDMwOnVpKGUsbiksNTEyJnImJmliKG4sbi5yZXR1cm4pO2JyZWFrO2Nhc2UgNzo1MTImciYmaWIobixuLnJldHVybik7ZGVmYXVsdDp1aShlLG4pfX1mdW5jdGlvbiBpMyhlLHQpe2ZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KShmdW5jdGlvbiBlKHQsbil7c3dpdGNoKHQudGFnKXtjYXNlIDU6Y2FzZSAyNjp0cnl7dmFyIHI9dC5zdGF0ZU5vZGU7aWYobil7dmFyIGw9ci5zdHlsZTsiZnVuY3Rpb24iPT10eXBlb2YgbC5zZXRQcm9wZXJ0eT9sLnNldFByb3BlcnR5KCJkaXNwbGF5Iiwibm9uZSIsImltcG9ydGFudCIpOmwuZGlzcGxheT0ibm9uZSJ9ZWxzZXt2YXIgYT10LnN0YXRlTm9kZSxvPXQubWVtb2l6ZWRQcm9wcy5zdHlsZSxpPW51bGwhPW8mJm8uaGFzT3duUHJvcGVydHkoImRpc3BsYXkiKT9vLmRpc3BsYXk6bnVsbDthLnN0eWxlLmRpc3BsYXk9bnVsbD09aXx8ImJvb2xlYW4iPT10eXBlb2YgaT8iIjooIiIraSkudHJpbSgpfX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfSFmdW5jdGlvbiB0KG4scil7aWYoMHg0MDAwMDAwJm4uc3VidHJlZUZsYWdzKWZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KXtlOnt2YXIgbD1uO3N3aXRjaChsLnRhZyl7Y2FzZSA0OmUobCxyKTticmVhayBlO2Nhc2UgMjI6bnVsbD09PWwubWVtb2l6ZWRTdGF0ZSYmdChsLHIpO2JyZWFrIGU7ZGVmYXVsdDp0KGwscil9fW49bi5zaWJsaW5nfX0odCxuKTticmVhaztjYXNlIDY6dHJ5e3Quc3RhdGVOb2RlLm5vZGVWYWx1ZT1uPyIiOnQubWVtb2l6ZWRQcm9wcyx0cj0hMH1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfWJyZWFrO2Nhc2UgMTg6dHJ5e3ZhciB1PXQuc3RhdGVOb2RlO24/Y3codSwhMCk6Y3codC5zdGF0ZU5vZGUsITEpfWNhdGNoKGUpe3NfKHQsdC5yZXR1cm4sZSl9YnJlYWs7Y2FzZSAyMjpjYXNlIDIzOm51bGw9PT10Lm1lbW9pemVkU3RhdGUmJmkzKHQsbik7YnJlYWs7ZGVmYXVsdDppMyh0LG4pfX0pKGUsdCksZT1lLnNpYmxpbmd9dmFyIGk0PW51bGwsaTU9ITE7ZnVuY3Rpb24gaTgoZSx0LG4pe2ZvcihuPW4uY2hpbGQ7bnVsbCE9PW47KWk2KGUsdCxuKSxuPW4uc2libGluZ31mdW5jdGlvbiBpNihlLHQsbil7aWYoZV8mJiJmdW5jdGlvbiI9PXR5cGVvZiBlXy5vbkNvbW1pdEZpYmVyVW5tb3VudCl0cnl7ZV8ub25Db21taXRGaWJlclVubW91bnQoZXgsbil9Y2F0Y2goZSl7fXN3aXRjaChuLnRhZyl7Y2FzZSAyNjppV3x8aXcobix0KSxpOChlLHQsbiksbi5tZW1vaXplZFN0YXRlP24ubWVtb2l6ZWRTdGF0ZS5jb3VudC0tOm4uc3RhdGVOb2RlJiYobj1uLnN0YXRlTm9kZSkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKTticmVhaztjYXNlIDI3OmlXfHxpdyhuLHQpO3ZhciByPWk0LGw9aTU7Y3kobi50eXBlKSYmKGk0PW4uc3RhdGVOb2RlLGk1PSExKSxpOChlLHQsbiksY0cobi5zdGF0ZU5vZGUpLGk0PXIsaTU9bDticmVhaztjYXNlIDU6aVd8fGl3KG4sdCksNT09PW4udGFnJiZpeChuKTtjYXNlIDY6aWYocj1pNCxsPWk1LGk0PW51bGwsaTgoZSx0LG4pLGk0PXIsaTU9bCxudWxsIT09aTQpaWYoaTUpdHJ5eyg5PT09aTQubm9kZVR5cGU/aTQuYm9keToiSFRNTCI9PT1pNC5ub2RlTmFtZT9pNC5vd25lckRvY3VtZW50LmJvZHk6aTQpLnJlbW92ZUNoaWxkKG4uc3RhdGVOb2RlKSx0cj0hMH1jYXRjaChlKXtzXyhuLHQsZSl9ZWxzZSB0cnl7aTQucmVtb3ZlQ2hpbGQobi5zdGF0ZU5vZGUpLHRyPSEwfWNhdGNoKGUpe3NfKG4sdCxlKX1icmVhaztjYXNlIDE4Om51bGwhPT1pNCYmKGk1PyhjYig5PT09KGU9aTQpLm5vZGVUeXBlP2UuYm9keToiSFRNTCI9PT1lLm5vZGVOYW1lP2Uub3duZXJEb2N1bWVudC5ib2R5OmUsbi5zdGF0ZU5vZGUpLGZHKGUpKTpjYihpNCxuLnN0YXRlTm9kZSkpO2JyZWFrO2Nhc2UgNDpyPWk0LGw9aTUsaTQ9bi5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyxpNT0hMCxpOChlLHQsbiksaTQ9cixpNT1sO2JyZWFrO2Nhc2UgMDpjYXNlIDExOmNhc2UgMTQ6Y2FzZSAxNTppZygyLG4sdCksaVd8fGlnKDQsbix0KSxpOChlLHQsbik7YnJlYWs7Y2FzZSAxOmlXfHwoaXcobix0KSwiZnVuY3Rpb24iPT10eXBlb2Yocj1uLnN0YXRlTm9kZSkuY29tcG9uZW50V2lsbFVubW91bnQmJml5KG4sdCxyKSksaTgoZSx0LG4pO2JyZWFrO2Nhc2UgMjE6ZGVmYXVsdDppOChlLHQsbik7YnJlYWs7Y2FzZSAyMjppVz0ocj1pVyl8fG51bGwhPT1uLm1lbW9pemVkU3RhdGUsaTgoZSx0LG4pLGlXPXI7YnJlYWs7Y2FzZSAzMDppdyhuLHQpLGk4KGUsdCxuKTticmVhaztjYXNlIDc6aVd8fGl3KG4sdCksaTgoZSx0LG4pfX1mdW5jdGlvbiBpOShlLHQpe2lmKG51bGw9PT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT0oZT10LmFsdGVybmF0ZSkmJm51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpKXtlPWUuZGVoeWRyYXRlZDt0cnl7ZkcoZSl9Y2F0Y2goZSl7c18odCx0LnJldHVybixlKX19fWZ1bmN0aW9uIGk3KGUsdCl7aWYobnVsbD09PXQubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PShlPXQuYWx0ZXJuYXRlKSYmbnVsbCE9PShlPWUubWVtb2l6ZWRTdGF0ZSkmJm51bGwhPT0oZT1lLmRlaHlkcmF0ZWQpKXRyeXtmRyhlKX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfX1mdW5jdGlvbiB1ZShlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMTk6dmFyIHQ9ZS5zdGF0ZU5vZGU7cmV0dXJuIG51bGw9PT10JiYodD1lLnN0YXRlTm9kZT1uZXcgaVkpLHQ7Y2FzZSAyMjpyZXR1cm4gbnVsbD09PSh0PShlPWUuc3RhdGVOb2RlKS5fcmV0cnlDYWNoZSkmJih0PWUuX3JldHJ5Q2FjaGU9bmV3IGlZKSx0O2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg0MzUsZS50YWcpKX19KGUpO3QuZm9yRWFjaChmdW5jdGlvbih0KXtpZighbi5oYXModCkpe24uYWRkKHQpO3ZhciByPXN6LmJpbmQobnVsbCxlLHQpO3QudGhlbihyLHIpfX0pfWZ1bmN0aW9uIHV0KGUsdCxuKXt2YXIgcj10LmRlbGV0aW9ucztpZihudWxsIT09cilmb3IodmFyIGw9MDtsPHIubGVuZ3RoO2wrKyl7dmFyIGE9cltsXSxvPWUsaT10LHM9aTtlOmZvcig7bnVsbCE9PXM7KXtzd2l0Y2gocy50YWcpe2Nhc2UgMjc6aWYoY3kocy50eXBlKSl7aTQ9cy5zdGF0ZU5vZGUsaTU9ITE7YnJlYWsgZX1icmVhaztjYXNlIDU6aTQ9cy5zdGF0ZU5vZGUsaTU9ITE7YnJlYWsgZTtjYXNlIDM6Y2FzZSA0Omk0PXMuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8saTU9ITA7YnJlYWsgZX1zPXMucmV0dXJufWlmKG51bGw9PT1pNCl0aHJvdyBFcnJvcih1KDE2MCkpO2k2KG8saSxhKSxpND1udWxsLGk1PSExLG51bGwhPT0obz1hLmFsdGVybmF0ZSkmJihvLnJldHVybj1udWxsKSxhLnJldHVybj1udWxsfWlmKDEzODg2JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXVyKHQsZSxuKSx0PXQuc2libGluZ312YXIgdW49bnVsbDtmdW5jdGlvbiB1cihlLHQsbil7dmFyIHI9ZS5hbHRlcm5hdGUsbD1lLmZsYWdzO3N3aXRjaChlLnRhZyl7Y2FzZSAwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OnV0KHQsZSxuKSx1bChlKSw0JmwmJihpZygzLGUsZS5yZXR1cm4pLGloKDMsZSksaWcoNSxlLGUucmV0dXJuKSk7YnJlYWs7Y2FzZSAxOnV0KHQsZSxuKSx1bChlKSw1MTImbCYmKGlXfHxudWxsPT09cnx8aXcocixyLnJldHVybikpLDY0JmwmJmlRJiZudWxsIT09KGU9ZS51cGRhdGVRdWV1ZSkmJm51bGwhPT0ocj1lLmNhbGxiYWNrcykmJih0PWUuc2hhcmVkLmhpZGRlbkNhbGxiYWNrcyxlLnNoYXJlZC5oaWRkZW5DYWxsYmFja3M9bnVsbD09PXQ/cjp0LmNvbmNhdChyKSk7YnJlYWs7Y2FzZSAyNjp2YXIgYT11bjtpZih1dCh0LGUsbiksdWwoZSksNTEyJmwmJihpV3x8bnVsbD09PXJ8fGl3KHIsci5yZXR1cm4pKSw0JmwpaWYobj1udWxsIT09cj9yLm1lbW9pemVkU3RhdGU6bnVsbCx0PWUubWVtb2l6ZWRTdGF0ZSxudWxsPT09cilpZihudWxsPT09dClpZihudWxsPT09ZS5zdGF0ZU5vZGUpe2U6e3I9ZS50eXBlLHQ9ZS5tZW1vaXplZFByb3BzLG49YS5vd25lckRvY3VtZW50fHxhO3Q6c3dpdGNoKHIpe2Nhc2UidGl0bGUiOighKGw9bi5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGl0bGUiKVswXSl8fGxbZUpdfHxsW2VXXXx8Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj09PWwubmFtZXNwYWNlVVJJfHxsLmhhc0F0dHJpYnV0ZSgiaXRlbXByb3AiKSkmJihsPW4uY3JlYXRlRWxlbWVudChyKSxuLmhlYWQuaW5zZXJ0QmVmb3JlKGwsbi5xdWVyeVNlbGVjdG9yKCJoZWFkID4gdGl0bGUiKSkpLGNsKGwscix0KSxsW2VXXT1lLGU1KGwpLHI9bDticmVhayBlO2Nhc2UibGluayI6aWYoYT1mbCgibGluayIsImhyZWYiLG4pLmdldChyKyh0LmhyZWZ8fCIiKSkpe2Zvcih2YXIgbz0wO288YS5sZW5ndGg7bysrKWlmKChsPWFbb10pLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09KG51bGw9PXQuaHJlZnx8IiI9PT10LmhyZWY/bnVsbDp0LmhyZWYpJiZsLmdldEF0dHJpYnV0ZSgicmVsIik9PT0obnVsbD09dC5yZWw/bnVsbDp0LnJlbCkmJmwuZ2V0QXR0cmlidXRlKCJ0aXRsZSIpPT09KG51bGw9PXQudGl0bGU/bnVsbDp0LnRpdGxlKSYmbC5nZXRBdHRyaWJ1dGUoImNyb3Nzb3JpZ2luIik9PT0obnVsbD09dC5jcm9zc09yaWdpbj9udWxsOnQuY3Jvc3NPcmlnaW4pKXthLnNwbGljZShvLDEpO2JyZWFrIHR9fWNsKGw9bi5jcmVhdGVFbGVtZW50KHIpLHIsdCksbi5oZWFkLmFwcGVuZENoaWxkKGwpO2JyZWFrO2Nhc2UibWV0YSI6aWYoYT1mbCgibWV0YSIsImNvbnRlbnQiLG4pLmdldChyKyh0LmNvbnRlbnR8fCIiKSkpe2ZvcihvPTA7bzxhLmxlbmd0aDtvKyspaWYoKGw9YVtvXSkuZ2V0QXR0cmlidXRlKCJjb250ZW50Iik9PT0obnVsbD09dC5jb250ZW50P251bGw6IiIrdC5jb250ZW50KSYmbC5nZXRBdHRyaWJ1dGUoIm5hbWUiKT09PShudWxsPT10Lm5hbWU/bnVsbDp0Lm5hbWUpJiZsLmdldEF0dHJpYnV0ZSgicHJvcGVydHkiKT09PShudWxsPT10LnByb3BlcnR5P251bGw6dC5wcm9wZXJ0eSkmJmwuZ2V0QXR0cmlidXRlKCJodHRwLWVxdWl2Iik9PT0obnVsbD09dC5odHRwRXF1aXY/bnVsbDp0Lmh0dHBFcXVpdikmJmwuZ2V0QXR0cmlidXRlKCJjaGFyc2V0Iik9PT0obnVsbD09dC5jaGFyU2V0P251bGw6dC5jaGFyU2V0KSl7YS5zcGxpY2UobywxKTticmVhayB0fX1jbChsPW4uY3JlYXRlRWxlbWVudChyKSxyLHQpLG4uaGVhZC5hcHBlbmRDaGlsZChsKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHUoNDY4LHIpKX1sW2VXXT1lLGU1KGwpLHI9bH1lLnN0YXRlTm9kZT1yfWVsc2UgZmEoYSxlLnR5cGUsZS5zdGF0ZU5vZGUpO2Vsc2UgZS5zdGF0ZU5vZGU9YzcoYSx0LGUubWVtb2l6ZWRQcm9wcyk7ZWxzZSBuIT09dD8obnVsbD09PW4/bnVsbCE9PXIuc3RhdGVOb2RlJiYocj1yLnN0YXRlTm9kZSkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKTpuLmNvdW50LS0sbnVsbD09PXQ/ZmEoYSxlLnR5cGUsZS5zdGF0ZU5vZGUpOmM3KGEsdCxlLm1lbW9pemVkUHJvcHMpKTpudWxsPT09dCYmbnVsbCE9PWUuc3RhdGVOb2RlJiZpUyhlLGUubWVtb2l6ZWRQcm9wcyxyLm1lbW9pemVkUHJvcHMpO2JyZWFrO2Nhc2UgMjc6dXQodCxlLG4pLHVsKGUpLDUxMiZsJiYoaVd8fG51bGw9PT1yfHxpdyhyLHIucmV0dXJuKSksbnVsbCE9PXImJjQmbCYmaVMoZSxlLm1lbW9pemVkUHJvcHMsci5tZW1vaXplZFByb3BzKTticmVhaztjYXNlIDU6aWYoYT1pcSxpcT0hMSx1dCh0LGUsbiksaXE9YSx1bChlKSw1MTImbCYmKGlXfHxudWxsPT09cnx8aXcocixyLnJldHVybikpLDMyJmUuZmxhZ3Mpe3Q9ZS5zdGF0ZU5vZGU7dHJ5e3RrKHQsIiIpLHRyPSEwfWNhdGNoKHQpe3NfKGUsZS5yZXR1cm4sdCl9fTQmbCYmbnVsbCE9ZS5zdGF0ZU5vZGUmJih0PWUubWVtb2l6ZWRQcm9wcyxpUyhlLHQsbnVsbCE9PXI/ci5tZW1vaXplZFByb3BzOnQpKSwxMDI0JmwmJihpSz0hMCk7YnJlYWs7Y2FzZSA2OmlmKHV0KHQsZSxuKSx1bChlKSw0Jmwpe2lmKG51bGw9PT1lLnN0YXRlTm9kZSl0aHJvdyBFcnJvcih1KDE2MikpO3I9ZS5tZW1vaXplZFByb3BzLHQ9ZS5zdGF0ZU5vZGU7dHJ5e3Qubm9kZVZhbHVlPXIsdHI9ITB9Y2F0Y2godCl7c18oZSxlLnJldHVybix0KX19YnJlYWs7Y2FzZSAzOmlmKHRyPSExLGZyPW51bGwsYT11bix1bj1jSih0LmNvbnRhaW5lckluZm8pLHV0KHQsZSxuKSx1bj1hLHVsKGUpLDQmbCYmbnVsbCE9PXImJnIubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpdHJ5e2ZHKHQuY29udGFpbmVySW5mbyl9Y2F0Y2godCl7c18oZSxlLnJldHVybix0KX1pSyYmKGlLPSExLGZ1bmN0aW9uIGUodCl7aWYoMTAyNCZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10Oyl7dmFyIG49dDtlKG4pLDU9PT1uLnRhZyYmMTAyNCZuLmZsYWdzJiZuLnN0YXRlTm9kZS5yZXNldCgpLHQ9dC5zaWJsaW5nfX0oZSkpLHRyPSExO2JyZWFrO2Nhc2UgNDpyPWlxLGlxPWlRLGw9dGwoKSxhPXVuLHVuPWNKKGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHV0KHQsZSxuKSx1bChlKSx1bj1hLHRyJiZpWiYmKGlKPSEwKSx0cj1sLGlxPXI7YnJlYWs7Y2FzZSAxMjp1dCh0LGUsbiksdWwoZSk7YnJlYWs7Y2FzZSAzMTpjYXNlIDE5OnV0KHQsZSxuKSx1bChlKSw0JmwmJm51bGwhPT0ocj1lLnVwZGF0ZVF1ZXVlKSYmKGUudXBkYXRlUXVldWU9bnVsbCx1ZShlLHIpKTticmVhaztjYXNlIDEzOnV0KHQsZSxuKSx1bChlKSw4MTkyJmUuY2hpbGQuZmxhZ3MmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUhPShudWxsIT09ciYmbnVsbCE9PXIubWVtb2l6ZWRTdGF0ZSkmJih1Qj1ldigpKSw0JmwmJm51bGwhPT0ocj1lLnVwZGF0ZVF1ZXVlKSYmKGUudXBkYXRlUXVldWU9bnVsbCx1ZShlLHIpKTticmVhaztjYXNlIDIyOmE9bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxvPW51bGwhPT1yJiZudWxsIT09ci5tZW1vaXplZFN0YXRlO3ZhciBpPWlRLHM9aVcsYz1pcTtpUT1pfHxhLGlxPWN8fGEsaVc9c3x8byx1dCh0LGUsbiksaVc9cyxpcT1jLGlRPWksdWwoZSksODE5MiZsJiYoKHQ9ZS5zdGF0ZU5vZGUpLl92aXNpYmlsaXR5PWE/LTImdC5fdmlzaWJpbGl0eToxfHQuX3Zpc2liaWxpdHksYSYmKG51bGw9PT1yfHxvfHxpUXx8aVd8fGZ1bmN0aW9uIGUodCl7Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe3ZhciBuPXQ7c3dpdGNoKG4udGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE0OmNhc2UgMTU6aWcoNCxuLG4ucmV0dXJuKSxlKG4pO2JyZWFrO2Nhc2UgMTppdyhuLG4ucmV0dXJuKTt2YXIgcj1uLnN0YXRlTm9kZTsiZnVuY3Rpb24iPT10eXBlb2Ygci5jb21wb25lbnRXaWxsVW5tb3VudCYmaXkobixuLnJldHVybixyKSxlKG4pO2JyZWFrO2Nhc2UgMjc6Y0cobi5zdGF0ZU5vZGUpO2Nhc2UgMjY6Y2FzZSA1Oml3KG4sbi5yZXR1cm4pLDU9PT1uLnRhZyYmaXgobiksZShuKTticmVhaztjYXNlIDIyOm51bGw9PT1uLm1lbW9pemVkU3RhdGUmJmUobik7YnJlYWs7Y2FzZSAzMDppdyhuLG4ucmV0dXJuKSxlKG4pO2JyZWFrO2Nhc2UgNzppdyhuLG4ucmV0dXJuKTtkZWZhdWx0OmUobil9dD10LnNpYmxpbmd9fShlKSksIWEmJmlxfHxpMyhlLGEpKSw0JmwmJm51bGwhPT0ocj1lLnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PSh0PXIucmV0cnlRdWV1ZSkmJihyLnJldHJ5UXVldWU9bnVsbCx1ZShlLHQpKTticmVhaztjYXNlIDMwOjUxMiZsJiYoaVd8fG51bGw9PT1yfHxpdyhyLHIucmV0dXJuKSksbD10bCgpLGE9aVosbz0oMHgxM2ZmZmYwMCZuKT09PW4saT1lLm1lbW9pemVkUHJvcHMsaVo9byYmIm5vbmUiIT09cmwoaS5kZWZhdWx0LGkudXBkYXRlKSx1dCh0LGUsbiksdWwoZSksbyYmbnVsbCE9PXImJnRyJiYoZS5mbGFnc3w9NCksaVo9YSx0cj1sO2JyZWFrO2Nhc2UgMjE6YnJlYWs7Y2FzZSA3OnImJm51bGwhPT1yLnN0YXRlTm9kZSYmKHIuc3RhdGVOb2RlLl9mcmFnbWVudEZpYmVyPWUpO2RlZmF1bHQ6dXQodCxlLG4pLHVsKGUpfX1mdW5jdGlvbiB1bChlKXt2YXIgdD1lLmZsYWdzO2lmKDImdCl7dHJ5e2Zvcih2YXIgbixyPW51bGwsbD1lLnJldHVybjtudWxsIT09bDspe2lmKGlOKGwpKXt2YXIgYT1sLnN0YXRlTm9kZTtudWxsPT09cj9yPVthXTpyLnB1c2goYSl9aWYoaV8obCkpe249bDticmVha31sPWwucmV0dXJufWlmKG51bGw9PW4pdGhyb3cgRXJyb3IodSgxNjApKTtzd2l0Y2gobi50YWcpe2Nhc2UgMjc6dmFyIG89bi5zdGF0ZU5vZGUsaT1pUChlKTtpQyhlLGksbyxyKTticmVhaztjYXNlIDU6dmFyIHM9bi5zdGF0ZU5vZGU7MzImbi5mbGFncyYmKHRrKHMsIiIpLG4uZmxhZ3MmPS0zMyk7dmFyIGM9aVAoZSk7aUMoZSxjLHMscik7YnJlYWs7Y2FzZSAzOmNhc2UgNDp2YXIgZj1uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvLGQ9aVAoZSk7IWZ1bmN0aW9uIGUodCxuLHIsbCl7dmFyIGE9dC50YWc7aWYoNT09PWF8fDY9PT1hKWE9dC5zdGF0ZU5vZGUsbj8oOT09PXIubm9kZVR5cGU/ci5ib2R5OiJIVE1MIj09PXIubm9kZU5hbWU/ci5vd25lckRvY3VtZW50LmJvZHk6cikuaW5zZXJ0QmVmb3JlKGEsbik6KChuPTk9PT1yLm5vZGVUeXBlP3IuYm9keToiSFRNTCI9PT1yLm5vZGVOYW1lP3Iub3duZXJEb2N1bWVudC5ib2R5OnIpLmFwcGVuZENoaWxkKGEpLG51bGwhPShyPXIuX3JlYWN0Um9vdENvbnRhaW5lcil8fG51bGwhPT1uLm9uY2xpY2t8fChuLm9uY2xpY2s9dFQpKSxpRSh0LGwpLHRyPSEwO2Vsc2UgaWYoNCE9PWEmJigyNz09PWEmJmN5KHQudHlwZSkmJihyPXQuc3RhdGVOb2RlLG49bnVsbCksbnVsbCE9PSh0PXQuY2hpbGQpKSlmb3IoZSh0LG4scixsKSx0PXQuc2libGluZztudWxsIT09dDspZSh0LG4scixsKSx0PXQuc2libGluZ30oZSxkLGYscik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcih1KDE2MSkpfX1jYXRjaCh0KXtzXyhlLGUucmV0dXJuLHQpfWUuZmxhZ3MmPS0zfTQwOTYmdCYmKGUuZmxhZ3MmPS00MDk3KX1mdW5jdGlvbiB1YShlLHQpe2lmKDkyNzAmdC5zdWJ0cmVlRmxhZ3MpZm9yKHQ9dC5jaGlsZDtudWxsIT09dDspdW8odCxlKSx0PXQuc2libGluZztlbHNlIWZ1bmN0aW9uIGUodCxuKXtmb3IodD10LmNoaWxkO251bGwhPT10Oyl7aWYoMzA9PT10LnRhZyl7dmFyIHI9dC5tZW1vaXplZFByb3BzLGw9dC5zdGF0ZU5vZGUsYT1ybihyLGwpLG89cmwoci5kZWZhdWx0LHIudXBkYXRlKTtpZihuKXZhciBpPW51bGw9PT0obD1sLmNsb25lcyk/bnVsbDpsLm1hcChjXyk7ZWxzZSBpPXQubWVtb2l6ZWRTdGF0ZSx0Lm1lbW9pemVkU3RhdGU9bnVsbDtsPXQ7dmFyIHU9dC5jaGlsZDtpRj0wLGE9aUgobCx1LGEsYSxvLGksITEpLDAhPSg0JnQuZmxhZ3MpJiZhJiYobnx8dTgodCxyLm9uVXBkYXRlKSl9ZWxzZSAwIT0oMHgyMDAwMDAwJnQuc3VidHJlZUZsYWdzKSYmZSh0LG4pO3Q9dC5zaWJsaW5nfX0odCwhMSl9ZnVuY3Rpb24gdW8oZSx0KXt2YXIgbj1lLmFsdGVybmF0ZTtpZihudWxsPT09bilpaihlLCExKTtlbHNlIHN3aXRjaChlLnRhZyl7Y2FzZSAzOmlmKGkwPWlYPSExLGlEKCksdWEodCxlKSwhaVgmJiFpSil7aWYobnVsbCE9PShlPWlNKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrPTMpe249ZVtyXTt2YXIgbD1lW3IrMV07Y1MobixlW3IrMl0pLG51bGwhPT0obj1uLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmbi5hbmltYXRlKHtvcGFjaXR5OlswLDBdLHBvaW50ZXJFdmVudHM6WyJub25lIiwibm9uZSJdfSx7ZHVyYXRpb246MCxmaWxsOiJmb3J3YXJkcyIscHNldWRvRWxlbWVudDoiOjp2aWV3LXRyYW5zaXRpb24tZ3JvdXAoIitsKyIpIn0pfW51bGwhPT0oZT05PT09KGU9dC5jb250YWluZXJJbmZvKS5ub2RlVHlwZT9lLmRvY3VtZW50RWxlbWVudDplLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmIiI9PT1lLnN0eWxlLnZpZXdUcmFuc2l0aW9uTmFtZSYmKGUuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lPSJub25lIixlLmFuaW1hdGUoe29wYWNpdHk6WzAsMF0scG9pbnRlckV2ZW50czpbIm5vbmUiLCJub25lIl19LHtkdXJhdGlvbjowLGZpbGw6ImZvcndhcmRzIixwc2V1ZG9FbGVtZW50OiI6OnZpZXctdHJhbnNpdGlvbi1ncm91cChyb290KSJ9KSxlLmFuaW1hdGUoe3dpZHRoOlswLDBdLGhlaWdodDpbMCwwXX0se2R1cmF0aW9uOjAsZmlsbDoiZm9yd2FyZHMiLHBzZXVkb0VsZW1lbnQ6Ijo6dmlldy10cmFuc2l0aW9uIn0pKSxpMD0hMH1pTT1udWxsO2JyZWFrO2Nhc2UgNTpkZWZhdWx0OnVhKHQsZSk7YnJlYWs7Y2FzZSA0OnI9aVgsaVg9ITEsdWEodCxlKSxpWCYmKGlKPSEwKSxpWD1yO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT1uLm1lbW9pemVkU3RhdGU/aWooZSwhMSk6dWEodCxlKSk7YnJlYWs7Y2FzZSAzMDpyPWlYLGw9aUQoKSxpWD0hMSx1YSh0LGUpLGlYJiYoZS5mbGFnc3w9NCk7dmFyIGE9ZS5tZW1vaXplZFByb3BzLG89ZS5zdGF0ZU5vZGU7dD1ybihhLG8pLG89cm4obi5tZW1vaXplZFByb3BzLG8pO3ZhciBpPXJsKGEuZGVmYXVsdCxhLnVwZGF0ZSk7Im5vbmUiPT09aT90PSExOihhPW4ubWVtb2l6ZWRTdGF0ZSxuLm1lbW9pemVkU3RhdGU9bnVsbCxuPWUuY2hpbGQsaUY9MCx0PWlIKGUsbix0LG8saSxhLCEwKSxpRiE9PShudWxsPT09YT8wOmEubGVuZ3RoKSYmKGUuZmxhZ3N8PTMyKSksMCE9KDQmZS5mbGFncykmJnQ/KHU4KGUsZS5tZW1vaXplZFByb3BzLm9uVXBkYXRlKSxpTT1sKTpudWxsIT09bCYmKGwucHVzaC5hcHBseShsLGlNKSxpTT1sKSxpWD0wIT0oMzImZS5mbGFncyl8fHJ9fWZ1bmN0aW9uIHVpKGUsdCl7aWYoODc3MiZ0LnN1YnRyZWVGbGFncylmb3IodD10LmNoaWxkO251bGwhPT10OylpMihlLHQuYWx0ZXJuYXRlLHQpLHQ9dC5zaWJsaW5nfWZ1bmN0aW9uIHV1KGUsdCl7dmFyIG49bnVsbDtudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihuPWUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksZT1udWxsLG51bGwhPT10Lm1lbW9pemVkU3RhdGUmJm51bGwhPT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYoZT10Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGUhPT1uJiYobnVsbCE9ZSYmZS5yZWZDb3VudCsrLG51bGwhPW4mJmxzKG4pKX1mdW5jdGlvbiB1cyhlLHQpe2U9bnVsbCxudWxsIT09dC5hbHRlcm5hdGUmJihlPXQuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLCh0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1lJiYodC5yZWZDb3VudCsrLG51bGwhPWUmJmxzKGUpKX1mdW5jdGlvbiB1YyhlLHQsbixyKXt2YXIgbD0oMHgxM2ZmZmYwMCZuKT09PW47aWYodC5zdWJ0cmVlRmxhZ3MmKGw/MTAyNjI6MTAyNTYpKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXVmKGUsdCxuLHIpLHQ9dC5zaWJsaW5nO2Vsc2UgbCYmZnVuY3Rpb24gZSh0KXtmb3IodD10LmNoaWxkO251bGwhPT10OykzMD09PXQudGFnP2lSKHQuY2hpbGQsITEpOjAhPSgweDIwMDAwMDAmdC5zdWJ0cmVlRmxhZ3MpJiZlKHQpLHQ9dC5zaWJsaW5nfSh0KX1mdW5jdGlvbiB1ZihlLHQsbixyKXt2YXIgbD0oMHgxM2ZmZmYwMCZuKT09PW47bCYmbnVsbD09PXQuYWx0ZXJuYXRlJiZudWxsIT09dC5yZXR1cm4mJm51bGwhPT10LnJldHVybi5hbHRlcm5hdGUmJmkkKHQpO3ZhciBhPXQuZmxhZ3M7c3dpdGNoKHQudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnVjKGUsdCxuLHIpLDIwNDgmYSYmaWgoOSx0KTticmVhaztjYXNlIDE6Y2FzZSAzMTpjYXNlIDEzOmRlZmF1bHQ6dWMoZSx0LG4scik7YnJlYWs7Y2FzZSAzOnVjKGUsdCxuLHIpLGwmJmkwJiYoInJvb3QiPT09KGU9OT09PShlPWUuY29udGFpbmVySW5mbykubm9kZVR5cGU/ZS5ib2R5OiJIVE1MIj09PWUubm9kZU5hbWU/ZS5vd25lckRvY3VtZW50LmJvZHk6ZSkuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lJiYoZS5zdHlsZS52aWV3VHJhbnNpdGlvbk5hbWU9IiIpLG51bGwhPT0oZT1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSYmIm5vbmUiPT09ZS5zdHlsZS52aWV3VHJhbnNpdGlvbk5hbWUmJihlLnN0eWxlLnZpZXdUcmFuc2l0aW9uTmFtZT0iIikpLDIwNDgmYSYmKGE9bnVsbCxudWxsIT09dC5hbHRlcm5hdGUmJihhPXQuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGUpLCh0PXQubWVtb2l6ZWRTdGF0ZS5jYWNoZSkhPT1hJiYodC5yZWZDb3VudCsrLG51bGwhPWEmJmxzKGEpKSk7YnJlYWs7Y2FzZSAxMjppZigyMDQ4JmEpe3VjKGUsdCxuLHIpLGE9dC5zdGF0ZU5vZGU7dHJ5e3ZhciBvPXQubWVtb2l6ZWRQcm9wcyxpPW8uaWQsdT1vLm9uUG9zdENvbW1pdDsiZnVuY3Rpb24iPT10eXBlb2YgdSYmdShpLG51bGw9PT10LmFsdGVybmF0ZT8ibW91bnQiOiJ1cGRhdGUiLGEucGFzc2l2ZUVmZmVjdER1cmF0aW9uLC0wKX1jYXRjaChlKXtzXyh0LHQucmV0dXJuLGUpfX1lbHNlIHVjKGUsdCxuLHIpO2JyZWFrO2Nhc2UgMjM6YnJlYWs7Y2FzZSAyMjpvPXQuc3RhdGVOb2RlLGk9dC5hbHRlcm5hdGUsbnVsbCE9PXQubWVtb2l6ZWRTdGF0ZT8obCYmbnVsbCE9PWkmJm51bGw9PT1pLm1lbW9pemVkU3RhdGUmJmkkKGkpLDImby5fdmlzaWJpbGl0eT91YyhlLHQsbixyKTp1ZChlLHQpKToobCYmbnVsbCE9PWkmJm51bGwhPT1pLm1lbW9pemVkU3RhdGUmJmkkKHQpLDImby5fdmlzaWJpbGl0eT91YyhlLHQsbixyKTooby5fdmlzaWJpbGl0eXw9MixmdW5jdGlvbiBlKHQsbixyLGwsYSl7Zm9yKGE9YSYmMCE9KDEwMjU2Jm4uc3VidHJlZUZsYWdzKSxuPW4uY2hpbGQ7bnVsbCE9PW47KXt2YXIgbz1uLGk9by5mbGFncztzd2l0Y2goby50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6ZSh0LG8scixsLGEpLGloKDgsbyk7YnJlYWs7Y2FzZSAyMzpicmVhaztjYXNlIDIyOnZhciB1PW8uc3RhdGVOb2RlO251bGwhPT1vLm1lbW9pemVkU3RhdGU/MiZ1Ll92aXNpYmlsaXR5P2UodCxvLHIsbCxhKTp1ZCh0LG8pOih1Ll92aXNpYmlsaXR5fD0yLGUodCxvLHIsbCxhKSksYSYmMjA0OCZpJiZ1dShvLmFsdGVybmF0ZSxvKTticmVhaztjYXNlIDI0OmUodCxvLHIsbCxhKSxhJiYyMDQ4JmkmJnVzKG8uYWx0ZXJuYXRlLG8pO2JyZWFrO2RlZmF1bHQ6ZSh0LG8scixsLGEpfW49bi5zaWJsaW5nfX0oZSx0LG4sciwwIT0oMTAyNTYmdC5zdWJ0cmVlRmxhZ3MpKSkpLDIwNDgmYSYmdXUoaSx0KTticmVhaztjYXNlIDI0OnVjKGUsdCxuLHIpLDIwNDgmYSYmdXModC5hbHRlcm5hdGUsdCk7YnJlYWs7Y2FzZSAzMDpsJiZudWxsIT09KGE9dC5hbHRlcm5hdGUpJiYoaVIoYS5jaGlsZCwhMCksaVIodC5jaGlsZCwhMCkpLHVjKGUsdCxuLHIpfX1mdW5jdGlvbiB1ZChlLHQpe2lmKDEwMjU2JnQuc3VidHJlZUZsYWdzKWZvcih0PXQuY2hpbGQ7bnVsbCE9PXQ7KXt2YXIgbj10LHI9bi5mbGFncztzd2l0Y2gobi50YWcpe2Nhc2UgMjI6dWQoZSxuKSwyMDQ4JnImJnV1KG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2Nhc2UgMjQ6dWQoZSxuKSwyMDQ4JnImJnVzKG4uYWx0ZXJuYXRlLG4pO2JyZWFrO2RlZmF1bHQ6dWQoZSxuKX10PXQuc2libGluZ319dmFyIHVwPTgxOTI7ZnVuY3Rpb24gdW0oZSx0LG4pe2lmKGUuc3VidHJlZUZsYWdzJnVwKWZvcihlPWUuY2hpbGQ7bnVsbCE9PWU7KXVoKGUsdCxuKSxlPWUuc2libGluZ31mdW5jdGlvbiB1aChlLHQsbil7c3dpdGNoKGUudGFnKXtjYXNlIDI2OnVtKGUsdCxuKSxlLmZsYWdzJnVwJiYobnVsbCE9PWUubWVtb2l6ZWRTdGF0ZT9mdW5jdGlvbihlLHQsbixyKXtpZigic3R5bGVzaGVldCI9PT1uLnR5cGUmJigic3RyaW5nIiE9dHlwZW9mIHIubWVkaWF8fCExIT09bWF0Y2hNZWRpYShyLm1lZGlhKS5tYXRjaGVzKSYmMD09KDQmbi5zdGF0ZS5sb2FkaW5nKSl7aWYobnVsbD09PW4uaW5zdGFuY2Upe3ZhciBsPWM0KHIuaHJlZiksYT10LnF1ZXJ5U2VsZWN0b3IoYzUobCkpO2lmKGEpe251bGwhPT0odD1hLl9wKSYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuJiYoZS5jb3VudCsrLGU9ZmQuYmluZChlKSx0LnRoZW4oZSxlKSksbi5zdGF0ZS5sb2FkaW5nfD00LG4uaW5zdGFuY2U9YSxlNShhKTtyZXR1cm59YT10Lm93bmVyRG9jdW1lbnR8fHQscj1jOChyKSwobD1jWC5nZXQobCkpJiZmdChyLGwpLGU1KGE9YS5jcmVhdGVFbGVtZW50KCJsaW5rIikpO3ZhciBvPWE7by5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihlLHQpe28ub25sb2FkPWUsby5vbmVycm9yPXR9KSxjbChhLCJsaW5rIixyKSxuLmluc3RhbmNlPWF9bnVsbD09PWUuc3R5bGVzaGVldHMmJihlLnN0eWxlc2hlZXRzPW5ldyBNYXApLGUuc3R5bGVzaGVldHMuc2V0KG4sdCksKHQ9bi5zdGF0ZS5wcmVsb2FkKSYmMD09KDMmbi5zdGF0ZS5sb2FkaW5nKSYmKGUuY291bnQrKyxuPWZkLmJpbmQoZSksdC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuKSx0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixuKSl9fShuLHVuLGUubWVtb2l6ZWRTdGF0ZSxlLm1lbW9pemVkUHJvcHMpOihlPWUuc3RhdGVOb2RlLCgweDEzZmZmZjQwJnQpPT09dCYmZnMobixlKSkpO2JyZWFrO2Nhc2UgNTp1bShlLHQsbiksZS5mbGFncyZ1cCYmKGU9ZS5zdGF0ZU5vZGUsKDB4MTNmZmZmNDAmdCk9PT10JiZmcyhuLGUpKTticmVhaztjYXNlIDM6Y2FzZSA0OnZhciByPXVuO3VuPWNKKGUuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHVtKGUsdCxuKSx1bj1yO2JyZWFrO2Nhc2UgMjI6bnVsbD09PWUubWVtb2l6ZWRTdGF0ZSYmKG51bGwhPT0ocj1lLmFsdGVybmF0ZSkmJm51bGwhPT1yLm1lbW9pemVkU3RhdGU/KHI9dXAsdXA9MHgxMDAwMDAwLHVtKGUsdCxuKSx1cD1yKTp1bShlLHQsbikpO2JyZWFrO2Nhc2UgMzA6aWYoMCE9KGUuZmxhZ3MmdXApJiZudWxsIT0ocj1lLm1lbW9pemVkUHJvcHMubmFtZSkmJiJhdXRvIiE9PXIpe3ZhciBsPWUuc3RhdGVOb2RlO2wucGFpcmVkPW51bGwsbnVsbD09PWlPJiYoaU89bmV3IE1hcCksaU8uc2V0KHIsbCl9dW0oZSx0LG4pO2JyZWFrO2RlZmF1bHQ6dW0oZSx0LG4pfX1mdW5jdGlvbiB1ZyhlKXt2YXIgdD1lLmFsdGVybmF0ZTtpZihudWxsIT09dCYmbnVsbCE9PShlPXQuY2hpbGQpKXt0LmNoaWxkPW51bGw7ZG8gdD1lLnNpYmxpbmcsZS5zaWJsaW5nPW51bGwsZT10O3doaWxlKG51bGwhPT1lKX19ZnVuY3Rpb24gdXYoZSl7dmFyIHQ9ZS5kZWxldGlvbnM7aWYoMCE9KDE2JmUuZmxhZ3MpKXtpZihudWxsIT09dClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtpRz1yLHViKHIsZSl9dWcoZSl9aWYoMTAyNTYmZS5zdWJ0cmVlRmxhZ3MpZm9yKGU9ZS5jaGlsZDtudWxsIT09ZTspdXkoZSksZT1lLnNpYmxpbmd9ZnVuY3Rpb24gdXkoZSl7c3dpdGNoKGUudGFnKXtjYXNlIDA6Y2FzZSAxMTpjYXNlIDE1OnV2KGUpLDIwNDgmZS5mbGFncyYmaWcoOSxlLGUucmV0dXJuKTticmVhaztjYXNlIDM6Y2FzZSAxMjpkZWZhdWx0OnV2KGUpO2JyZWFrO2Nhc2UgMjI6dmFyIHQ9ZS5zdGF0ZU5vZGU7bnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmMiZ0Ll92aXNpYmlsaXR5JiYobnVsbD09PWUucmV0dXJufHwxMyE9PWUucmV0dXJuLnRhZyk/KHQuX3Zpc2liaWxpdHkmPS0zLGZ1bmN0aW9uIGUodCl7dmFyIG49dC5kZWxldGlvbnM7aWYoMCE9KDE2JnQuZmxhZ3MpKXtpZihudWxsIT09bilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXTtpRz1sLHViKGwsdCl9dWcodCl9Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe3N3aXRjaCgobj10KS50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWcoOCxuLG4ucmV0dXJuKSxlKG4pO2JyZWFrO2Nhc2UgMjI6MiYocj1uLnN0YXRlTm9kZSkuX3Zpc2liaWxpdHkmJihyLl92aXNpYmlsaXR5Jj0tMyxlKG4pKTticmVhaztkZWZhdWx0OmUobil9dD10LnNpYmxpbmd9fShlKSk6dXYoZSl9fWZ1bmN0aW9uIHViKGUsdCl7Zm9yKDtudWxsIT09aUc7KXt2YXIgbj1pRztzd2l0Y2gobi50YWcpe2Nhc2UgMDpjYXNlIDExOmNhc2UgMTU6aWcoOCxuLHQpO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyMjppZihudWxsIT09bi5tZW1vaXplZFN0YXRlJiZudWxsIT09bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCl7dmFyIHI9bi5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sO251bGwhPXImJnIucmVmQ291bnQrK31icmVhaztjYXNlIDI0OmxzKG4ubWVtb2l6ZWRTdGF0ZS5jYWNoZSl9aWYobnVsbCE9PShyPW4uY2hpbGQpKXIucmV0dXJuPW4saUc9cjtlbHNlIGZvcihuPWU7bnVsbCE9PWlHOyl7dmFyIGw9KHI9aUcpLnNpYmxpbmcsYT1yLnJldHVybjtpZighZnVuY3Rpb24gZSh0KXt2YXIgbj10LmFsdGVybmF0ZTtudWxsIT09biYmKHQuYWx0ZXJuYXRlPW51bGwsZShuKSksdC5jaGlsZD1udWxsLHQuZGVsZXRpb25zPW51bGwsdC5zaWJsaW5nPW51bGwsNT09PXQudGFnJiZudWxsIT09KG49dC5zdGF0ZU5vZGUpJiZlMChuKSx0LnN0YXRlTm9kZT1udWxsLHQucmV0dXJuPW51bGwsdC5kZXBlbmRlbmNpZXM9bnVsbCx0Lm1lbW9pemVkUHJvcHM9bnVsbCx0Lm1lbW9pemVkU3RhdGU9bnVsbCx0LnBlbmRpbmdQcm9wcz1udWxsLHQuc3RhdGVOb2RlPW51bGwsdC51cGRhdGVRdWV1ZT1udWxsfShyKSxyPT09bil7aUc9bnVsbDticmVha31pZihudWxsIT09bCl7bC5yZXR1cm49YSxpRz1sO2JyZWFrfWlHPWF9fX12YXIgdXc9e2dldENhY2hlRm9yVHlwZTpmdW5jdGlvbihlKXt2YXIgdD1sdChsaSksbj10LmRhdGEuZ2V0KGUpO3JldHVybiB2b2lkIDA9PT1uJiYobj1lKCksdC5kYXRhLnNldChlLG4pKSxufSxjYWNoZVNpZ25hbDpmdW5jdGlvbigpe3JldHVybiBsdChsaSkuY29udHJvbGxlci5zaWduYWx9fSx1az0iZnVuY3Rpb24iPT10eXBlb2YgV2Vha01hcD9XZWFrTWFwOk1hcCx1Uz0wLHVFPW51bGwsdXg9bnVsbCx1Xz0wLHVOPTAsdVA9bnVsbCx1Qz0hMSx1VD0hMSx1ej0hMSx1Tz0wLHVMPTAsdU09MCx1RD0wLHVGPTAsdUk9MCx1Uj0wLHVBPW51bGwsdWo9bnVsbCx1VT0hMSx1Qj0wLHVWPTAsdSQ9MS8wLHVIPW51bGwsdVE9bnVsbCx1Vz0wLHVxPW51bGwsdUs9bnVsbCx1WT0wLHVHPTAsdVg9bnVsbCx1Wj1udWxsLHVKPW51bGwsdTA9bnVsbCx1MT1udWxsLHUyPTAsdTM9bnVsbDtmdW5jdGlvbiB1NCgpe3JldHVybiAwIT0oMiZ1UykmJjAhPT11Xz91XyYtdV86bnVsbCE9PVcuVD9zSCgpOmUkKCl9ZnVuY3Rpb24gdTUoKXtpZigwPT09dUkpaWYoMD09KDB4MjAwMDAwMDAmdV8pfHxySCl7dmFyIGU9ZXo7MD09KDM5MzIxNjAmKGV6PDw9MSkpJiYoZXo9MjYyMTQ0KSx1ST1lfWVsc2UgdUk9MHgyMDAwMDAwMDtyZXR1cm4gbnVsbCE9PShlPWwzLmN1cnJlbnQpJiYoZS5mbGFnc3w9MzIpLHVJfWZ1bmN0aW9uIHU4KGUsdCl7aWYobnVsbCE9dCl7dmFyIG49ZS5zdGF0ZU5vZGUscj1uLnJlZjtudWxsPT09ciYmKHI9bi5yZWY9Y0Mocm4oZS5tZW1vaXplZFByb3BzLG4pKSksbnVsbD09PXUwJiYodTA9W10pLHUwLnB1c2godC5iaW5kKG51bGwscikpfX1mdW5jdGlvbiB1NihlLHQsbil7KGU9PT11RSYmKDI9PT11Tnx8OT09PXVOKXx8bnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdCkmJihzcihlLDApLHNlKGUsdV8sdUksITEpKSxlUihlLG4pLCgwPT0oMiZ1Uyl8fGUhPT11RSkmJihlPT09dUUmJigwPT0oMiZ1UykmJih1RHw9biksND09PXVMJiZzZShlLHVfLHVJLCExKSksc1IoZSkpfWZ1bmN0aW9uIHU5KGUsdCxuKXtpZigwIT0oNiZ1UykpdGhyb3cgRXJyb3IodSgzMjcpKTtmb3IodmFyIHI9IW4mJjA9PSgxMjcmdCkmJjA9PSh0JmUuZXhwaXJlZExhbmVzKXx8ZUQoZSx0KSxsPXI/ZnVuY3Rpb24oZSx0KXt2YXIgbj11Uzt1U3w9Mjt2YXIgcj1zbygpLGw9c2koKTt1RSE9PWV8fHVfIT09dD8odUg9bnVsbCx1JD1ldigpKzUwMCxzcihlLHQpKTp1VD1lRChlLHQpO2U6Zm9yKDs7KXRyeXtpZigwIT09dU4mJm51bGwhPT11eCl7dD11eDt2YXIgYT11UDt0OnN3aXRjaCh1Til7Y2FzZSAxOnVOPTAsdVA9bnVsbCxzZChlLHQsYSwxKTticmVhaztjYXNlIDI6Y2FzZSA5OmlmKGxOKGEpKXt1Tj0wLHVQPW51bGwsc2YodCk7YnJlYWt9dD1mdW5jdGlvbigpezIhPT11TiYmOSE9PXVOfHx1RSE9PWV8fCh1Tj03KSxzUihlKX0sYS50aGVuKHQsdCk7YnJlYWsgZTtjYXNlIDM6dU49NzticmVhayBlO2Nhc2UgNDp1Tj01O2JyZWFrIGU7Y2FzZSA3OmxOKGEpPyh1Tj0wLHVQPW51bGwsc2YodCkpOih1Tj0wLHVQPW51bGwsc2QoZSx0LGEsNykpO2JyZWFrO2Nhc2UgNTp2YXIgbz1udWxsO3N3aXRjaCh1eC50YWcpe2Nhc2UgMjY6bz11eC5tZW1vaXplZFN0YXRlO2Nhc2UgNTpjYXNlIDI3OnZhciBpPXV4O2lmKG8/Zmkobyk6aS5zdGF0ZU5vZGUuY29tcGxldGUpe3VOPTAsdVA9bnVsbDt2YXIgcz1pLnNpYmxpbmc7aWYobnVsbCE9PXMpdXg9cztlbHNle3ZhciBjPWkucmV0dXJuO251bGwhPT1jPyh1eD1jLHNwKGMpKTp1eD1udWxsfWJyZWFrIHR9fXVOPTAsdVA9bnVsbCxzZChlLHQsYSw1KTticmVhaztjYXNlIDY6dU49MCx1UD1udWxsLHNkKGUsdCxhLDYpO2JyZWFrO2Nhc2UgODpzbigpLHVMPTY7YnJlYWsgZTtkZWZhdWx0OnRocm93IEVycm9yKHUoNDYyKSl9fWZvcig7bnVsbCE9PXV4JiYhZWgoKTspc2ModXgpO2JyZWFrfWNhdGNoKHQpe3NsKGUsdCl9cmV0dXJuKHIzPXIyPW51bGwsVy5IPXIsVy5BPWwsdVM9bixudWxsIT09dXgpPzA6KHVFPW51bGwsdV89MCxycygpLHVMKX0oZSx0KTpzcyhlLHQsITApLGE9cjs7KXtpZigwPT09bCl1VCYmIXImJnNlKGUsdCwwLCExKTtlbHNle2lmKG49ZS5jdXJyZW50LmFsdGVybmF0ZSxhJiYhZnVuY3Rpb24oZSl7Zm9yKHZhciB0PWU7Oyl7dmFyIG49dC50YWc7aWYoKDA9PT1ufHwxMT09PW58fDE1PT09bikmJjE2Mzg0JnQuZmxhZ3MmJm51bGwhPT0obj10LnVwZGF0ZVF1ZXVlKSYmbnVsbCE9PShuPW4uc3RvcmVzKSlmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXSxhPWwuZ2V0U25hcHNob3Q7bD1sLnZhbHVlO3RyeXtpZighbkEoYSgpLGwpKXJldHVybiExfWNhdGNoKGUpe3JldHVybiExfX1pZihuPXQuY2hpbGQsMTYzODQmdC5zdWJ0cmVlRmxhZ3MmJm51bGwhPT1uKW4ucmV0dXJuPXQsdD1uO2Vsc2V7aWYodD09PWUpYnJlYWs7Zm9yKDtudWxsPT09dC5zaWJsaW5nOyl7aWYobnVsbD09PXQucmV0dXJufHx0LnJldHVybj09PWUpcmV0dXJuITA7dD10LnJldHVybn10LnNpYmxpbmcucmV0dXJuPXQucmV0dXJuLHQ9dC5zaWJsaW5nfX1yZXR1cm4hMH0obikpe2w9c3MoZSx0LCExKSxhPSExO2NvbnRpbnVlfWlmKDI9PT1sKXtpZihhPXQsZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyZhKXZhciBvPTA7ZWxzZSBvPTAhPShvPS0weDIwMDAwMDAxJmUucGVuZGluZ0xhbmVzKT9vOjB4MjAwMDAwMDAmbz8weDIwMDAwMDAwOjA7aWYoMCE9PW8pe3Q9bztlOntsPXVBO3ZhciBpPWUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZDtpZihpJiYoc3IoZSxvKS5mbGFnc3w9MjU2KSwyIT09KG89c3MoZSxvLCExKSkpe2lmKHV6JiYhaSl7ZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lc3w9YSx1RHw9YSxsPTQ7YnJlYWsgZX1hPXVqLHVqPWwsbnVsbCE9PWEmJihudWxsPT09dWo/dWo9YTp1ai5wdXNoLmFwcGx5KHVqLGEpKX1sPW99aWYoYT0hMSwyIT09bCljb250aW51ZX19aWYoMT09PWwpe3NyKGUsMCksc2UoZSx0LDAsITApO2JyZWFrfWU6e3N3aXRjaChyPWUsYT1sKXtjYXNlIDA6Y2FzZSAxOnRocm93IEVycm9yKHUoMzQ1KSk7Y2FzZSA0OmlmKCg0MTk0MDQ4JnQpIT09dCYmKDB4M2MwMDAwMCZ0KSE9PXQpYnJlYWs7Y2FzZSA2OnNlKHIsdCx1SSwhdUMpO2JyZWFrIGU7Y2FzZSAyOnVqPW51bGw7YnJlYWs7Y2FzZSAzOmNhc2UgNTpicmVhaztkZWZhdWx0OnRocm93IEVycm9yKHUoMzI5KSl9aWYoKDB4M2MwMDAwMCZ0KT09PXQmJjEwPChsPXVCKzMwMC1ldigpKSl7aWYoc2Uocix0LHVJLCF1QyksMCE9PWVNKHIsMCwhMCkpYnJlYWsgZTt1WT10LHIudGltZW91dEhhbmRsZT1jcCh1Ny5iaW5kKG51bGwscixuLHVqLHVILHVVLHQsdUksdUQsdVIsdUMsYSwiVGhyb3R0bGVkIiwtMCwwKSxsKTticmVhayBlfXU3KHIsbix1aix1SCx1VSx0LHVJLHVELHVSLHVDLGEsbnVsbCwtMCwwKX19YnJlYWt9c1IoZSl9ZnVuY3Rpb24gdTcoZSx0LG4scixsLGEsbyxpLHUscyxjLGYsZCxwKXtlLnRpbWVvdXRIYW5kbGU9LTE7dmFyIG0saCxnPXQuc3VidHJlZUZsYWdzLHY9KDB4MTNmZmZmMDAmYSk9PT1hO2lmKGY9bnVsbCwodnx8ODE5MiZnfHwweDEwMDIwMDA9PSgweDEwMDIwMDAmZykpJiYoaU89bnVsbCx1aCh0LGEsZj17c3R5bGVzaGVldHM6bnVsbCxjb3VudDowLGltZ0NvdW50OjAsaW1nQnl0ZXM6MCxzdXNwZW5zZXlJbWFnZXM6W10sd2FpdGluZ0ZvckltYWdlczohMCx3YWl0aW5nRm9yVmlld1RyYW5zaXRpb246ITEsdW5zdXNwZW5kOnRUfSksdiYmKGc9ZixudWxsIT0odj0oOT09PSh2PWUuY29udGFpbmVySW5mbykubm9kZVR5cGU/djp2Lm93bmVyRG9jdW1lbnQpLl9fcmVhY3RWaWV3VHJhbnNpdGlvbikmJihnLmNvdW50KyssZy53YWl0aW5nRm9yVmlld1RyYW5zaXRpb249ITAsZz1mZC5iaW5kKGcpLHYuZmluaXNoZWQudGhlbihnLGcpKSksbnVsbCE9PShtPWYsaD1nPSgweDNjMDAwMDAmYSk9PT1hP3VCLWV2KCk6KDQxOTQwNDgmYSk9PT1hP3VWLWV2KCk6MCxtLnN0eWxlc2hlZXRzJiYwPT09bS5jb3VudCYmZmgobSxtLnN0eWxlc2hlZXRzKSxnPTA8bS5jb3VudHx8MDxtLmltZ0NvdW50P2Z1bmN0aW9uKGUpe3ZhciB0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihtLnN0eWxlc2hlZXRzJiZmaChtLG0uc3R5bGVzaGVldHMpLG0udW5zdXNwZW5kKXt2YXIgZT1tLnVuc3VzcGVuZDttLnVuc3VzcGVuZD1udWxsLGUoKX19LDZlNCtoKTswPG0uaW1nQnl0ZXMmJjA9PT1mYyYmKGZjPTYyNTAwKmZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpe2Zvcih2YXIgZT0wLHQ9MCxuPXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikscj0wO3I8bi5sZW5ndGg7cisrKXt2YXIgbD1uW3JdLGE9bC50cmFuc2ZlclNpemUsbz1sLmluaXRpYXRvclR5cGUsaT1sLmR1cmF0aW9uO2lmKGEmJmkmJmNhKG8pKXtmb3Iobz0wLGk9bC5yZXNwb25zZUVuZCxyKz0xO3I8bi5sZW5ndGg7cisrKXt2YXIgdT1uW3JdLHM9dS5zdGFydFRpbWU7aWYocz5pKWJyZWFrO3ZhciBjPXUudHJhbnNmZXJTaXplLGY9dS5pbml0aWF0b3JUeXBlO2MmJmNhKGYpJiYobys9YyooKHU9dS5yZXNwb25zZUVuZCk8aT8xOihpLXMpLyh1LXMpKSl9aWYoLS1yLHQrPTgqKGErbykvKGwuZHVyYXRpb24vMWUzKSwxMDwrK2UpYnJlYWt9fWlmKDA8ZSlyZXR1cm4gdC9lLzFlNn1yZXR1cm4gbmF2aWdhdG9yLmNvbm5lY3Rpb24mJiJudW1iZXIiPT10eXBlb2YoZT1uYXZpZ2F0b3IuY29ubmVjdGlvbi5kb3dubGluayk/ZTo1fSgpKTt2YXIgbj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYobS53YWl0aW5nRm9ySW1hZ2VzPSExLDA9PT1tLmNvdW50JiYobS5zdHlsZXNoZWV0cyYmZmgobSxtLnN0eWxlc2hlZXRzKSxtLnVuc3VzcGVuZCkpe3ZhciBlPW0udW5zdXNwZW5kO20udW5zdXNwZW5kPW51bGwsZSgpfX0sKG0uaW1nQnl0ZXM+ZmM/NTA6ODAwKStoKTtyZXR1cm4gbS51bnN1c3BlbmQ9ZSxmdW5jdGlvbigpe20udW5zdXNwZW5kPW51bGwsY2xlYXJUaW1lb3V0KHQpLGNsZWFyVGltZW91dChuKX19Om51bGwpKSl7dVk9YSxlLmNhbmNlbFBlbmRpbmdDb21taXQ9ZyhzaC5iaW5kKG51bGwsZSx0LGEsbixyLGwsbyxpLHUsYyxmLG51bGwsZCxwKSksc2UoZSxhLG8sIXMpO3JldHVybn1zaChlLHQsYSxuLHIsbCxvLGksdSxjLGYpfWZ1bmN0aW9uIHNlKGUsdCxuLHIpe3QmPX51Rix0Jj1+dUQsZS5zdXNwZW5kZWRMYW5lc3w9dCxlLnBpbmdlZExhbmVzJj1+dCxyJiYoZS53YXJtTGFuZXN8PXQpLHI9ZS5leHBpcmF0aW9uVGltZXM7Zm9yKHZhciBsPXQ7MDxsOyl7dmFyIGE9MzEtZU4obCksbz0xPDxhO3JbYV09LTEsbCY9fm99MCE9PW4mJmVBKGUsbix0KX1mdW5jdGlvbiBzdCgpe3JldHVybiAwIT0oNiZ1Uyl8fChzQSgwLCExKSwhMSl9ZnVuY3Rpb24gc24oKXtpZihudWxsIT09dXgpe2lmKDA9PT11Til2YXIgZT11eC5yZXR1cm47ZWxzZSBlPXV4LHIzPXIyPW51bGwsYUUoZSksbEw9bnVsbCxsTT0wLGU9dXg7Zm9yKDtudWxsIT09ZTspaW0oZS5hbHRlcm5hdGUsZSksZT1lLnJldHVybjt1eD1udWxsfX1mdW5jdGlvbiBzcihlLHQpe3ZhciBuPWUudGltZW91dEhhbmRsZTstMSE9PW4mJihlLnRpbWVvdXRIYW5kbGU9LTEsY20obikpLG51bGwhPT0obj1lLmNhbmNlbFBlbmRpbmdDb21taXQpJiYoZS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsbigpKSx1WT0wLHNuKCksdUU9ZSx1eD1uPXJiKGUuY3VycmVudCxudWxsKSx1Xz10LHVOPTAsdVA9bnVsbCx1Qz0hMSx1VD1lRChlLHQpLHV6PSExLHVSPXVJPXVGPXVEPXVNPXVMPTAsdWo9dUE9bnVsbCx1VT0hMSwwIT0oOCZ0KSYmKHR8PTMyJnQpO3ZhciByPWUuZW50YW5nbGVkTGFuZXM7aWYoMCE9PXIpZm9yKGU9ZS5lbnRhbmdsZW1lbnRzLHImPXQ7MDxyOyl7dmFyIGw9MzEtZU4ociksYT0xPDxsO3R8PWVbbF0sciY9fmF9cmV0dXJuIHVPPXQscnMoKSxufWZ1bmN0aW9uIHNsKGUsdCl7YWE9bnVsbCxXLkg9b1MsdD09PWxTfHx0PT09bHg/KHQ9bHooKSx1Tj0zKTp0PT09bEU/KHQ9bHooKSx1Tj00KTp1Tj10PT09b2o/ODpudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuPzY6MSx1UD10LG51bGw9PT11eCYmKHVMPTEsb0QoZSxyUCh0LGUuY3VycmVudCkpKX1mdW5jdGlvbiBzYSgpe3ZhciBlPWwzLmN1cnJlbnQ7cmV0dXJuIG51bGw9PT1lfHwoKDQxOTQwNDgmdV8pPT09dV8/bnVsbD09PWw0OigoMHgzYzAwMDAwJnVfKT09PXVffHwwIT0oMHgyMDAwMDAwMCZ1XykpJiZlPT09bDQpfWZ1bmN0aW9uIHNvKCl7dmFyIGU9Vy5IO3JldHVybiBXLkg9b1MsbnVsbD09PWU/b1M6ZX1mdW5jdGlvbiBzaSgpe3ZhciBlPVcuQTtyZXR1cm4gVy5BPXV3LGV9ZnVuY3Rpb24gc3UoKXt1TD00LHVDfHwoNDE5NDA0OCZ1XykhPT11XyYmbnVsbCE9PWwzLmN1cnJlbnR8fCh1VD0hMCksMD09KDB4N2ZmZmZmZiZ1TSkmJjA9PSgweDdmZmZmZmYmdUQpfHxudWxsPT09dUV8fHNlKHVFLHVfLHVJLCExKX1mdW5jdGlvbiBzcyhlLHQsbil7dmFyIHI9dVM7dVN8PTI7dmFyIGw9c28oKSxhPXNpKCk7KHVFIT09ZXx8dV8hPT10KSYmKHVIPW51bGwsc3IoZSx0KSksdD0hMTt2YXIgbz11TDtlOmZvcig7Oyl0cnl7aWYoMCE9PXVOJiZudWxsIT09dXgpe3ZhciBpPXV4LHU9dVA7c3dpdGNoKHVOKXtjYXNlIDg6c24oKSxvPTY7YnJlYWsgZTtjYXNlIDM6Y2FzZSAyOmNhc2UgOTpjYXNlIDY6bnVsbD09PWwzLmN1cnJlbnQmJih0PSEwKTt2YXIgcz11TjtpZih1Tj0wLHVQPW51bGwsc2QoZSxpLHUscyksbiYmdVQpe289MDticmVhayBlfWJyZWFrO2RlZmF1bHQ6cz11Tix1Tj0wLHVQPW51bGwsc2QoZSxpLHUscyl9fShmdW5jdGlvbigpe2Zvcig7bnVsbCE9PXV4OylzYyh1eCl9KSgpLG89dUw7YnJlYWt9Y2F0Y2godCl7c2woZSx0KX1yZXR1cm4gdCYmZS5zaGVsbFN1c3BlbmRDb3VudGVyKysscjM9cjI9bnVsbCx1Uz1yLFcuSD1sLFcuQT1hLG51bGw9PT11eCYmKHVFPW51bGwsdV89MCxycygpKSxvfWZ1bmN0aW9uIHNjKGUpe3ZhciB0PWlvKGUuYWx0ZXJuYXRlLGUsdU8pO2UubWVtb2l6ZWRQcm9wcz1lLnBlbmRpbmdQcm9wcyxudWxsPT09dD9zcChlKTp1eD10fWZ1bmN0aW9uIHNmKGUpe3ZhciB0PWUsbj10LmFsdGVybmF0ZTtzd2l0Y2godC50YWcpe2Nhc2UgMTU6Y2FzZSAwOnQ9b1oobix0LHQucGVuZGluZ1Byb3BzLHQudHlwZSx2b2lkIDAsdV8pO2JyZWFrO2Nhc2UgMTE6dD1vWihuLHQsdC5wZW5kaW5nUHJvcHMsdC50eXBlLnJlbmRlcix0LnJlZix1Xyk7YnJlYWs7Y2FzZSA1OmFFKHQpO2RlZmF1bHQ6aW0obix0KSx0PWlvKG4sdD11eD1ydyh0LHVPKSx1Tyl9ZS5tZW1vaXplZFByb3BzPWUucGVuZGluZ1Byb3BzLG51bGw9PT10P3NwKGUpOnV4PXR9ZnVuY3Rpb24gc2QoZSx0LG4scil7cjM9cjI9bnVsbCxhRSh0KSxsTD1udWxsLGxNPTA7dmFyIGw9dC5yZXR1cm47dHJ5e2lmKGZ1bmN0aW9uKGUsdCxuLHIsbCl7aWYobi5mbGFnc3w9MzI3NjgsbnVsbCE9PXImJiJvYmplY3QiPT10eXBlb2YgciYmImZ1bmN0aW9uIj09dHlwZW9mIHIudGhlbil7aWYobnVsbCE9PSh0PW4uYWx0ZXJuYXRlKSYmcjkodCxuLGwsITApLG51bGwhPT0obj1sMy5jdXJyZW50KSl7c3dpdGNoKG4udGFnKXtjYXNlIDMxOmNhc2UgMTM6Y2FzZSAxOTpyZXR1cm4gbnVsbD09PWw0P3N1KCk6bnVsbD09PW4uYWx0ZXJuYXRlJiYwPT09dUwmJih1TD0zKSxuLmZsYWdzJj0tMjU3LG4uZmxhZ3N8PTY1NTM2LG4ubGFuZXM9bCxyPT09bF8/bi5mbGFnc3w9MTYzODQ6KG51bGw9PT0odD1uLnVwZGF0ZVF1ZXVlKT9uLnVwZGF0ZVF1ZXVlPW5ldyBTZXQoW3JdKTp0LmFkZChyKSxzTihlLHIsbCkpLCExO2Nhc2UgMjI6cmV0dXJuIG4uZmxhZ3N8PTY1NTM2LHI9PT1sXz9uLmZsYWdzfD0xNjM4NDoobnVsbD09PSh0PW4udXBkYXRlUXVldWUpPyh0PXt0cmFuc2l0aW9uczpudWxsLG1hcmtlckluc3RhbmNlczpudWxsLHJldHJ5UXVldWU6bmV3IFNldChbcl0pfSxuLnVwZGF0ZVF1ZXVlPXQpOm51bGw9PT0obj10LnJldHJ5UXVldWUpP3QucmV0cnlRdWV1ZT1uZXcgU2V0KFtyXSk6bi5hZGQociksc04oZSxyLGwpKSwhMX10aHJvdyBFcnJvcih1KDQzNSxuLnRhZykpfXJldHVybiBzTihlLHIsbCksc3UoKSwhMX1pZihySClyZXR1cm4gbnVsbCE9PSh0PWwzLmN1cnJlbnQpPygwPT0oNjU1MzYmdC5mbGFncykmJih0LmZsYWdzfD0yNTYpLHQuZmxhZ3N8PTY1NTM2LHQubGFuZXM9bCxyIT09cnEmJnIwKHJQKGU9RXJyb3IodSg0MjIpLHtjYXVzZTpyfSksbikpKToociE9PXJxJiZyMChyUCh0PUVycm9yKHUoNDIzKSx7Y2F1c2U6cn0pLG4pKSxlPWUuY3VycmVudC5hbHRlcm5hdGUsZS5mbGFnc3w9NjU1MzYsbCY9LWwsZS5sYW5lc3w9bCxyPXJQKHIsbiksbD1vSShlLnN0YXRlTm9kZSxyLGwpLGxXKGUsbCksNCE9PXVMJiYodUw9MikpLCExO3ZhciBhPUVycm9yKHUoNTIwKSx7Y2F1c2U6cn0pO2lmKGE9clAoYSxuKSxudWxsPT09dUE/dUE9W2FdOnVBLnB1c2goYSksNCE9PXVMJiYodUw9MiksbnVsbD09PXQpcmV0dXJuITA7cj1yUChyLG4pLG49dDtkb3tzd2l0Y2gobi50YWcpe2Nhc2UgMzpyZXR1cm4gbi5mbGFnc3w9NjU1MzYsZT1sJi1sLG4ubGFuZXN8PWUsZT1vSShuLnN0YXRlTm9kZSxyLGUpLGxXKG4sZSksITE7Y2FzZSAxOmlmKHQ9bi50eXBlLGE9bi5zdGF0ZU5vZGUsMD09KDEyOCZuLmZsYWdzKSYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8bnVsbCE9PWEmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLmNvbXBvbmVudERpZENhdGNoJiYobnVsbD09PXVRfHwhdVEuaGFzKGEpKSkpcmV0dXJuIG4uZmxhZ3N8PTY1NTM2LGwmPS1sLG4ubGFuZXN8PWwsb0EobD1vUihsKSxlLG4sciksbFcobixsKSwhMTticmVhaztjYXNlIDIyOmlmKG51bGwhPT1uLm1lbW9pemVkU3RhdGUpcmV0dXJuIG4uZmxhZ3N8PTY1NTM2LCExfW49bi5yZXR1cm59d2hpbGUobnVsbCE9PW4pcmV0dXJuITF9KGUsbCx0LG4sdV8pKXt1TD0xLG9EKGUsclAobixlLmN1cnJlbnQpKSx1eD1udWxsO3JldHVybn19Y2F0Y2godCl7aWYobnVsbCE9PWwpdGhyb3cgdXg9bCx0O3VMPTEsb0QoZSxyUChuLGUuY3VycmVudCkpLHV4PW51bGw7cmV0dXJufTMyNzY4JnQuZmxhZ3M/KHJIfHwxPT09cj9lPSEwOnVUfHwwIT0oMHgyMDAwMDAwMCZ1Xyk/ZT0hMToodUM9ZT0hMCwoMj09PXJ8fDk9PT1yfHwzPT09cnx8Nj09PXIpJiZudWxsIT09KHI9bDMuY3VycmVudCkmJjEzPT09ci50YWcmJihyLmZsYWdzfD0xNjM4NCkpLHNtKHQsZSkpOnNwKHQpfWZ1bmN0aW9uIHNwKGUpe3ZhciB0PWU7ZG97aWYoMCE9KDMyNzY4JnQuZmxhZ3MpKXJldHVybiB2b2lkIHNtKHQsdUMpO2U9dC5yZXR1cm47dmFyIG49ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQucGVuZGluZ1Byb3BzO3N3aXRjaChyVSh0KSx0LnRhZyl7Y2FzZSAxNjpjYXNlIDE1OmNhc2UgMDpjYXNlIDExOmNhc2UgNzpjYXNlIDg6Y2FzZSAxMjpjYXNlIDk6Y2FzZSAxNDpjYXNlIDE6cmV0dXJuIGlwKHQpLG51bGw7Y2FzZSAzOnJldHVybiBuPXQuc3RhdGVOb2RlLHI9bnVsbCxudWxsIT09ZSYmKHI9ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1yJiYodC5mbGFnc3w9MjA0OCkscjUobGkpLGVhKCksbi5wZW5kaW5nQ29udGV4dCYmKG4uY29udGV4dD1uLnBlbmRpbmdDb250ZXh0LG4ucGVuZGluZ0NvbnRleHQ9bnVsbCksKG51bGw9PT1lfHxudWxsPT09ZS5jaGlsZCkmJihyWCh0KT9paSh0KTpudWxsPT09ZXx8ZS5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCYmMD09KDI1NiZ0LmZsYWdzKXx8KHQuZmxhZ3N8PTEwMjQsckooKSkpLGlwKHQpLG51bGw7Y2FzZSAyNjp2YXIgbD10LnR5cGUsYT10Lm1lbW9pemVkU3RhdGU7cmV0dXJuIG51bGw9PT1lPyhpaSh0KSxudWxsIT09YT8oaXAodCksaXModCxhKSk6KGlwKHQpLGl1KHQsbCxudWxsLHIsbikpKTphP2EhPT1lLm1lbW9pemVkU3RhdGU/KGlpKHQpLGlwKHQpLGlzKHQsYSkpOihpcCh0KSx0LmZsYWdzJj0tMHgxMDAwMDAxKTooKGU9ZS5tZW1vaXplZFByb3BzKSE9PXImJmlpKHQpLGlwKHQpLGl1KHQsbCxlLHIsbikpLG51bGw7Y2FzZSAyNzppZihlaSh0KSxuPWVuLmN1cnJlbnQsbD10LnR5cGUsbnVsbCE9PWUmJm51bGwhPXQuc3RhdGVOb2RlKWUubWVtb2l6ZWRQcm9wcyE9PXImJmlpKHQpO2Vsc2V7aWYoIXIpe2lmKG51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcih1KDE2NikpO3JldHVybiBpcCh0KSx0LnN1YnRyZWVGbGFncyY9LTB4MjAwMDAwMSxudWxsfWU9ZWUuY3VycmVudCxyWCh0KT9yWSh0LGUpOih0LnN0YXRlTm9kZT1lPWNZKGwscixuKSxpaSh0KSl9cmV0dXJuIGlwKHQpLHQuc3VidHJlZUZsYWdzJj0tMHgyMDAwMDAxLG51bGw7Y2FzZSA1OmlmKGVpKHQpLGw9dC50eXBlLG51bGwhPT1lJiZudWxsIT10LnN0YXRlTm9kZSllLm1lbW9pemVkUHJvcHMhPT1yJiZpaSh0KTtlbHNle2lmKCFyKXtpZihudWxsPT09dC5zdGF0ZU5vZGUpdGhyb3cgRXJyb3IodSgxNjYpKTtyZXR1cm4gaXAodCksdC5zdWJ0cmVlRmxhZ3MmPS0weDIwMDAwMDEsbnVsbH1pZihhPWVlLmN1cnJlbnQsclgodCkpclkodCxhKTtlbHNle3ZhciBvPWN1KGVuLmN1cnJlbnQpO3N3aXRjaChhKXtjYXNlIDE6YT1vLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGwpO2JyZWFrO2Nhc2UgMjphPW8uY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixsKTticmVhaztkZWZhdWx0OnN3aXRjaChsKXtjYXNlInN2ZyI6YT1vLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGwpO2JyZWFrO2Nhc2UibWF0aCI6YT1vLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsbCk7YnJlYWs7Y2FzZSJzY3JpcHQiOihhPW8uY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD0iPHNjcmlwdD48L3NjcmlwdD4iLGE9YS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2JyZWFrO2Nhc2Uic2VsZWN0IjphPSJzdHJpbmciPT10eXBlb2Ygci5pcz9vLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIse2lzOnIuaXN9KTpvLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLHIubXVsdGlwbGU/YS5tdWx0aXBsZT0hMDpyLnNpemUmJihhLnNpemU9ci5zaXplKTticmVhaztkZWZhdWx0OmE9InN0cmluZyI9PXR5cGVvZiByLmlzP28uY3JlYXRlRWxlbWVudChsLHtpczpyLmlzfSk6by5jcmVhdGVFbGVtZW50KGwpfX1hW2VXXT10LGFbZXFdPXI7ZTpmb3Iobz10LmNoaWxkO251bGwhPT1vOyl7aWYoNT09PW8udGFnfHw2PT09by50YWcpYS5hcHBlbmRDaGlsZChvLnN0YXRlTm9kZSk7ZWxzZSBpZig0IT09by50YWcmJjI3IT09by50YWcmJm51bGwhPT1vLmNoaWxkKXtvLmNoaWxkLnJldHVybj1vLG89by5jaGlsZDtjb250aW51ZX1pZihvPT09dClicmVhaztmb3IoO251bGw9PT1vLnNpYmxpbmc7KXtpZihudWxsPT09by5yZXR1cm58fG8ucmV0dXJuPT09dClicmVhayBlO289by5yZXR1cm59by5zaWJsaW5nLnJldHVybj1vLnJldHVybixvPW8uc2libGluZ31zd2l0Y2godC5zdGF0ZU5vZGU9YSxjbChhLGwsciksbCl7Y2FzZSJidXR0b24iOmNhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRleHRhcmVhIjpyPSEhci5hdXRvRm9jdXM7YnJlYWs7Y2FzZSJpbWciOnI9ITA7YnJlYWs7ZGVmYXVsdDpyPSExfXImJmlpKHQpfX1yZXR1cm4gaXAodCksdC5zdWJ0cmVlRmxhZ3MmPS0weDIwMDAwMDEsaXUodCx0LnR5cGUsbnVsbD09PWU/bnVsbDplLm1lbW9pemVkUHJvcHMsdC5wZW5kaW5nUHJvcHMsbiksbnVsbDtjYXNlIDY6aWYoZSYmbnVsbCE9dC5zdGF0ZU5vZGUpZS5tZW1vaXplZFByb3BzIT09ciYmaWkodCk7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIHImJm51bGw9PT10LnN0YXRlTm9kZSl0aHJvdyBFcnJvcih1KDE2NikpO2lmKGU9ZW4uY3VycmVudCxyWCh0KSl7aWYoZT10LnN0YXRlTm9kZSxuPXQubWVtb2l6ZWRQcm9wcyxyPW51bGwsbnVsbCE9PShsPXJWKSlzd2l0Y2gobC50YWcpe2Nhc2UgMjc6Y2FzZSA1OnI9bC5tZW1vaXplZFByb3BzfWVbZVddPXQsKGU9ISEoZS5ub2RlVmFsdWU9PT1ufHxudWxsIT09ciYmITA9PT1yLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZ3x8Y3QoZS5ub2RlVmFsdWUsbikpKXx8cksodCwhMCl9ZWxzZShlPWN1KGUpLmNyZWF0ZVRleHROb2RlKHIpKVtlV109dCx0LnN0YXRlTm9kZT1lfXJldHVybiBpcCh0KSxudWxsO2Nhc2UgMzE6aWYobj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUpe2lmKHI9clgodCksbnVsbCE9PW4pe2lmKG51bGw9PT1lKXtpZighcil0aHJvdyBFcnJvcih1KDMxOCkpO2lmKCEoZT1udWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKT9lLmRlaHlkcmF0ZWQ6bnVsbCkpdGhyb3cgRXJyb3IodSg1NTcpKTtlW2VXXT10fWVsc2UgclooKSwwPT0oMTI4JnQuZmxhZ3MpJiYodC5tZW1vaXplZFN0YXRlPW51bGwpLHQuZmxhZ3N8PTQ7aXAodCksZT0hMX1lbHNlIG49ckooKSxudWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSYmKGUubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnM9biksZT0hMDtpZighZSl7aWYoMjU2JnQuZmxhZ3MpcmV0dXJuIGw3KHQpLHQ7cmV0dXJuIGw3KHQpLG51bGx9aWYoMCE9KDEyOCZ0LmZsYWdzKSl0aHJvdyBFcnJvcih1KDU1OCkpfXJldHVybiBpcCh0KSxudWxsO2Nhc2UgMTM6aWYocj10Lm1lbW9pemVkU3RhdGUsbnVsbD09PWV8fG51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZCl7aWYobD1yWCh0KSxudWxsIT09ciYmbnVsbCE9PXIuZGVoeWRyYXRlZCl7aWYobnVsbD09PWUpe2lmKCFsKXRocm93IEVycm9yKHUoMzE4KSk7aWYoIShsPW51bGwhPT0obD10Lm1lbW9pemVkU3RhdGUpP2wuZGVoeWRyYXRlZDpudWxsKSl0aHJvdyBFcnJvcih1KDMxNykpO2xbZVddPXR9ZWxzZSByWigpLDA9PSgxMjgmdC5mbGFncykmJih0Lm1lbW9pemVkU3RhdGU9bnVsbCksdC5mbGFnc3w9NDtpcCh0KSxsPSExfWVsc2UgbD1ySigpLG51bGwhPT1lJiZudWxsIT09ZS5tZW1vaXplZFN0YXRlJiYoZS5tZW1vaXplZFN0YXRlLmh5ZHJhdGlvbkVycm9ycz1sKSxsPSEwO2lmKCFsKXtpZigyNTYmdC5mbGFncylyZXR1cm4gbDcodCksdDtyZXR1cm4gbDcodCksbnVsbH19aWYobDcodCksMCE9KDEyOCZ0LmZsYWdzKSlyZXR1cm4gdC5sYW5lcz1uLHQ7cmV0dXJuIG49bnVsbCE9PXIsZT1udWxsIT09ZSYmbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSxuJiYocj10LmNoaWxkLGw9bnVsbCxudWxsIT09ci5hbHRlcm5hdGUmJm51bGwhPT1yLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wmJihsPXIuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLGE9bnVsbCxudWxsIT09ci5tZW1vaXplZFN0YXRlJiZudWxsIT09ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKGE9ci5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxhIT09bCYmKHIuZmxhZ3N8PTIwNDgpKSxuIT09ZSYmbiYmKHQuY2hpbGQuZmxhZ3N8PTgxOTIpLGljKHQsdC51cGRhdGVRdWV1ZSksaXAodCksbnVsbDtjYXNlIDQ6cmV0dXJuIGVhKCksbnVsbD09PWUmJnMxKHQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8pLHQuZmxhZ3N8PTB4NDAwMDAwMCxpcCh0KSxudWxsO2Nhc2UgMTA6cmV0dXJuIHI1KHQudHlwZSksaXAodCksbnVsbDtjYXNlIDE5OmlmKGFuKHQpLG51bGw9PT0ocj10Lm1lbW9pemVkU3RhdGUpKXJldHVybiBpcCh0KSxudWxsO2lmKGw9MCE9KDEyOCZ0LmZsYWdzKSxudWxsPT09KGE9ci5yZW5kZXJpbmcpKWlmKGwpaWQociwhMSk7ZWxzZXtpZigwIT09dUx8fG51bGwhPT1lJiYwIT0oMTI4JmUuZmxhZ3MpKWZvcihlPXQuY2hpbGQ7bnVsbCE9PWU7KXtpZihudWxsIT09KGE9YXIoZSkpKXtmb3IodC5mbGFnc3w9MTI4LGlkKHIsITEpLHQudXBkYXRlUXVldWU9ZT1hLnVwZGF0ZVF1ZXVlLGljKHQsZSksdC5zdWJ0cmVlRmxhZ3M9MCxlPW4sbj10LmNoaWxkO251bGwhPT1uOylydyhuLGUpLG49bi5zaWJsaW5nO3JldHVybiBhdCh0LDEmYWUuY3VycmVudHwyKSxySCYmclIodCxyLnRyZWVGb3JrQ291bnQpLHQuY2hpbGR9ZT1lLnNpYmxpbmd9bnVsbCE9PXIudGFpbCYmZXYoKT51JCYmKHQuZmxhZ3N8PTEyOCxsPSEwLGlkKHIsITEpLHQubGFuZXM9NDE5NDMwNCl9ZWxzZXtpZighbClpZihudWxsIT09KGU9YXIoYSkpKXtpZih0LmZsYWdzfD0xMjgsbD0hMCx0LnVwZGF0ZVF1ZXVlPWU9ZS51cGRhdGVRdWV1ZSxpYyh0LGUpLGlkKHIsITApLG51bGw9PT1yLnRhaWwmJiJjb2xsYXBzZWQiIT09ci50YWlsTW9kZSYmInZpc2libGUiIT09ci50YWlsTW9kZSYmIWEuYWx0ZXJuYXRlJiYhckgpcmV0dXJuIGlwKHQpLG51bGx9ZWxzZSAyKmV2KCktci5yZW5kZXJpbmdTdGFydFRpbWU+dSQmJjB4MjAwMDAwMDAhPT1uJiYodC5mbGFnc3w9MTI4LGw9ITAsaWQociwhMSksdC5sYW5lcz00MTk0MzA0KTtyLmlzQmFja3dhcmRzPyhhLnNpYmxpbmc9dC5jaGlsZCx0LmNoaWxkPWEpOihudWxsIT09KGU9ci5sYXN0KT9lLnNpYmxpbmc9YTp0LmNoaWxkPWEsci5sYXN0PWEpfWlmKG51bGwhPT1yLnRhaWwpe2U9ci50YWlsO2U6e2ZvcihuPWU7bnVsbCE9PW47KXtpZihudWxsIT09bi5hbHRlcm5hdGUpe249ITE7YnJlYWsgZX1uPW4uc2libGluZ31uPSEwfXJldHVybiByLnJlbmRlcmluZz1lLHIudGFpbD1lLnNpYmxpbmcsci5yZW5kZXJpbmdTdGFydFRpbWU9ZXYoKSxlLnNpYmxpbmc9bnVsbCxhPWFlLmN1cnJlbnQsYT1sPzEmYXwyOjEmYSwidmlzaWJsZSI9PT1yLnRhaWxNb2RlfHwiY29sbGFwc2VkIj09PXIudGFpbE1vZGV8fCFufHxySD9hdCh0LGEpOihuPWEsSihsMyx0KSxKKGFlLG4pLG51bGw9PT1sNCYmKGw0PXQpKSxySCYmclIodCxyLnRyZWVGb3JrQ291bnQpLGV9cmV0dXJuIGlwKHQpLG51bGw7Y2FzZSAyMjpjYXNlIDIzOnJldHVybiBsNyh0KSxsMigpLHI9bnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSxudWxsIT09ZT9udWxsIT09ZS5tZW1vaXplZFN0YXRlIT09ciYmKHQuZmxhZ3N8PTgxOTIpOnImJih0LmZsYWdzfD04MTkyKSxyPzAhPSgweDIwMDAwMDAwJm4pJiYwPT0oMTI4JnQuZmxhZ3MpJiYoaXAodCksNiZ0LnN1YnRyZWVGbGFncyYmKHQuZmxhZ3N8PTgxOTIpKTppcCh0KSxudWxsIT09KG49dC51cGRhdGVRdWV1ZSkmJmljKHQsbi5yZXRyeVF1ZXVlKSxuPW51bGwsbnVsbCE9PWUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUmJm51bGwhPT1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sJiYobj1lLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLHI9bnVsbCxudWxsIT09dC5tZW1vaXplZFN0YXRlJiZudWxsIT09dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCYmKHI9dC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxyIT09biYmKHQuZmxhZ3N8PTIwNDgpLG51bGwhPT1lJiZaKGx5KSxudWxsO2Nhc2UgMjQ6cmV0dXJuIG49bnVsbCxudWxsIT09ZSYmKG49ZS5tZW1vaXplZFN0YXRlLmNhY2hlKSx0Lm1lbW9pemVkU3RhdGUuY2FjaGUhPT1uJiYodC5mbGFnc3w9MjA0OCkscjUobGkpLGlwKHQpLG51bGw7Y2FzZSAyNTpyZXR1cm4gbnVsbDtjYXNlIDMwOnJldHVybiB0LmZsYWdzfD0weDIwMDAwMDAsaXAodCksbnVsbH10aHJvdyBFcnJvcih1KDE1Nix0LnRhZykpfSh0LmFsdGVybmF0ZSx0LHVPKTtpZihudWxsIT09bil7dXg9bjtyZXR1cm59aWYobnVsbCE9PSh0PXQuc2libGluZykpe3V4PXQ7cmV0dXJufXV4PXQ9ZX13aGlsZShudWxsIT09dCkwPT09dUwmJih1TD01KX1mdW5jdGlvbiBzbShlLHQpe2Rve3ZhciBuPWZ1bmN0aW9uKGUsdCl7c3dpdGNoKHJVKHQpLHQudGFnKXtjYXNlIDE6cmV0dXJuIDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMzpyZXR1cm4gcjUobGkpLGVhKCksMCE9KDY1NTM2JihlPXQuZmxhZ3MpKSYmMD09KDEyOCZlKT8odC5mbGFncz0tNjU1MzcmZXwxMjgsdCk6bnVsbDtjYXNlIDI2OmNhc2UgMjc6Y2FzZSA1OnJldHVybiBlaSh0KSxudWxsO2Nhc2UgMzE6aWYobnVsbCE9PXQubWVtb2l6ZWRTdGF0ZSl7aWYobDcodCksbnVsbD09PXQuYWx0ZXJuYXRlKXRocm93IEVycm9yKHUoMzQwKSk7clooKX1yZXR1cm4gNjU1MzYmKGU9dC5mbGFncyk/KHQuZmxhZ3M9LTY1NTM3JmV8MTI4LHQpOm51bGw7Y2FzZSAxMzppZihsNyh0KSxudWxsIT09KGU9dC5tZW1vaXplZFN0YXRlKSYmbnVsbCE9PWUuZGVoeWRyYXRlZCl7aWYobnVsbD09PXQuYWx0ZXJuYXRlKXRocm93IEVycm9yKHUoMzQwKSk7clooKX1yZXR1cm4gNjU1MzYmKGU9dC5mbGFncyk/KHQuZmxhZ3M9LTY1NTM3JmV8MTI4LHQpOm51bGw7Y2FzZSAxOTpyZXR1cm4gYW4odCksNjU1MzYmKGU9dC5mbGFncyk/KHQuZmxhZ3M9LTY1NTM3JmV8MTI4LG51bGwhPT0oZT10Lm1lbW9pemVkU3RhdGUpJiYoZS5yZW5kZXJpbmc9bnVsbCxlLnRhaWw9bnVsbCksdC5mbGFnc3w9NCx0KTpudWxsO2Nhc2UgNDpyZXR1cm4gZWEoKSxudWxsO2Nhc2UgMTA6cmV0dXJuIHI1KHQudHlwZSksbnVsbDtjYXNlIDIyOmNhc2UgMjM6cmV0dXJuIGw3KHQpLGwyKCksbnVsbCE9PWUmJloobHkpLDY1NTM2JihlPXQuZmxhZ3MpPyh0LmZsYWdzPS02NTUzNyZlfDEyOCx0KTpudWxsO2Nhc2UgMjQ6cmV0dXJuIHI1KGxpKSxudWxsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fShlLmFsdGVybmF0ZSxlKTtpZihudWxsIT09bil7bi5mbGFncyY9MzI3NjcsdXg9bjtyZXR1cm59aWYobnVsbCE9PShuPWUucmV0dXJuKSYmKG4uZmxhZ3N8PTMyNzY4LG4uc3VidHJlZUZsYWdzPTAsbi5kZWxldGlvbnM9bnVsbCksIXQmJm51bGwhPT0oZT1lLnNpYmxpbmcpKXt1eD1lO3JldHVybn11eD1lPW59d2hpbGUobnVsbCE9PWUpdUw9Nix1eD1udWxsfWZ1bmN0aW9uIHNoKGUsdCxuLHIsbCxhLG8saSxzLGMsZil7ZS5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGw7ZG8gc1MoKTt3aGlsZSgwIT09dVcpaWYoMCE9KDYmdVMpKXRocm93IEVycm9yKHUoMzI3KSk7aWYobnVsbCE9PXQpe3ZhciBkO2lmKHQ9PT1lLmN1cnJlbnQpdGhyb3cgRXJyb3IodSgxNzcpKTtpZighZnVuY3Rpb24oZSx0LG4scixsLGEpe3ZhciBvPWUucGVuZGluZ0xhbmVzO2UucGVuZGluZ0xhbmVzPW4sZS5zdXNwZW5kZWRMYW5lcz0wLGUucGluZ2VkTGFuZXM9MCxlLndhcm1MYW5lcz0wLGUuZXhwaXJlZExhbmVzJj1uLGUuZW50YW5nbGVkTGFuZXMmPW4sZS5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyY9bixlLnNoZWxsU3VzcGVuZENvdW50ZXI9MDt2YXIgaT1lLmVudGFuZ2xlbWVudHMsdT1lLmV4cGlyYXRpb25UaW1lcyxzPWUuaGlkZGVuVXBkYXRlcztmb3Iobj1vJn5uOzA8bjspe3ZhciBjPTMxLWVOKG4pLGY9MTw8YztpW2NdPTAsdVtjXT0tMTt2YXIgZD1zW2NdO2lmKG51bGwhPT1kKWZvcihzW2NdPW51bGwsYz0wO2M8ZC5sZW5ndGg7YysrKXt2YXIgcD1kW2NdO251bGwhPT1wJiYocC5sYW5lJj0tMHgyMDAwMDAwMSl9biY9fmZ9MCE9PXImJmVBKGUsciwwKSwwIT09YSYmMD09PWwmJjAhPT1lLnRhZyYmKGUuc3VzcGVuZGVkTGFuZXN8PWEmfihvJn50KSl9KGUsbixhPXQubGFuZXN8dC5jaGlsZExhbmVzfHJ1LG8saSxzKSxlPT09dUUmJih1eD11RT1udWxsLHVfPTApLHVLPXQsdXE9ZSx1WT1uLHVHPWEsdVg9bCx1Wj1yLHUwPW51bGwsKDB4MTNmZmZmMDAmbik9PT1uPyhkPWUudHJhbnNpdGlvblR5cGVzLGUudHJhbnNpdGlvblR5cGVzPW51bGwsdTE9ZCxyPTEwMjYyKToodTE9bnVsbCxyPTEwMjU2KSwwIT0odC5zdWJ0cmVlRmxhZ3Mmcil8fDAhPSh0LmZsYWdzJnIpPyhlLmNhbGxiYWNrTm9kZT1udWxsLGUuY2FsbGJhY2tQcmlvcml0eT0wLGVwKGVrLGZ1bmN0aW9uKCl7cmV0dXJuIHNFKCksbnVsbH0pKTooZS5jYWxsYmFja05vZGU9bnVsbCxlLmNhbGxiYWNrUHJpb3JpdHk9MCksaXo9ITEscj0wIT0oMTM4NzgmdC5mbGFncyksMCE9KDEzODc4JnQuc3VidHJlZUZsYWdzKXx8cil7cj1XLlQsVy5UPW51bGwsbD1xLnAscS5wPTIsbz11Uyx1U3w9NDt0cnl7IWZ1bmN0aW9uKGUsdCxuKXtpZihlPWUuY29udGFpbmVySW5mbyxjbz1mXyxuJChlPW5WKGUpKSl7aWYoInNlbGVjdGlvblN0YXJ0ImluIGUpdmFyIHI9e3N0YXJ0OmUuc2VsZWN0aW9uU3RhcnQsZW5kOmUuc2VsZWN0aW9uRW5kfTtlbHNlIGU6e3ZhciBsPShyPShyPWUub3duZXJEb2N1bWVudCkmJnIuZGVmYXVsdFZpZXd8fHdpbmRvdykuZ2V0U2VsZWN0aW9uJiZyLmdldFNlbGVjdGlvbigpO2lmKGwmJjAhPT1sLnJhbmdlQ291bnQpe3I9bC5hbmNob3JOb2RlO3ZhciBhLG89bC5hbmNob3JPZmZzZXQsaT1sLmZvY3VzTm9kZTtsPWwuZm9jdXNPZmZzZXQ7dHJ5e3Iubm9kZVR5cGUsaS5ub2RlVHlwZX1jYXRjaChlKXtyPW51bGw7YnJlYWsgZX12YXIgdT0wLHM9LTEsYz0tMSxmPTAsZD0wLHA9ZSxtPW51bGw7dDpmb3IoOzspe2Zvcig7cCE9PXJ8fDAhPT1vJiYzIT09cC5ub2RlVHlwZXx8KHM9dStvKSxwIT09aXx8MCE9PWwmJjMhPT1wLm5vZGVUeXBlfHwoYz11K2wpLDM9PT1wLm5vZGVUeXBlJiYodSs9cC5ub2RlVmFsdWUubGVuZ3RoKSxudWxsIT09KGE9cC5maXJzdENoaWxkKTspbT1wLHA9YTtmb3IoOzspe2lmKHA9PT1lKWJyZWFrIHQ7aWYobT09PXImJisrZj09PW8mJihzPXUpLG09PT1pJiYrK2Q9PT1sJiYoYz11KSxudWxsIT09KGE9cC5uZXh0U2libGluZykpYnJlYWs7bT0ocD1tKS5wYXJlbnROb2RlfXA9YX1yPS0xPT09c3x8LTE9PT1jP251bGw6e3N0YXJ0OnMsZW5kOmN9fWVsc2Ugcj1udWxsfXI9cnx8e3N0YXJ0OjAsZW5kOjB9fWVsc2Ugcj1udWxsO2ZvcihjaT17Zm9jdXNlZEVsZW06ZSxzZWxlY3Rpb25SYW5nZTpyfSxmXz0hMSxuPSgweDEzZmZmZjAwJm4pPT09bixpRz10LHQ9bj85MjcwOjEwMjg7bnVsbCE9PWlHOyl7aWYoZT1pRyxuJiZudWxsIT09KHI9ZS5kZWxldGlvbnMpKWZvcihvPTA7bzxyLmxlbmd0aDtvKyspbiYmaUIocltvXSk7aWYobnVsbD09PWUuYWx0ZXJuYXRlJiYwIT0oMiZlLmZsYWdzKSluJiZpTChlKSxpMShuKTtlbHNle2lmKDIyPT09ZS50YWcpe2lmKHI9ZS5hbHRlcm5hdGUsbnVsbCE9PWUubWVtb2l6ZWRTdGF0ZSl7bnVsbCE9PXImJm51bGw9PT1yLm1lbW9pemVkU3RhdGUmJm4mJmlCKHIpLGkxKG4pO2NvbnRpbnVlfWVsc2UgaWYobnVsbCE9PXImJm51bGwhPT1yLm1lbW9pemVkU3RhdGUpe24mJmlMKGUpLGkxKG4pO2NvbnRpbnVlfX1yPWUuY2hpbGQsMCE9KGUuc3VidHJlZUZsYWdzJnQpJiZudWxsIT09cj8oci5yZXR1cm49ZSxpRz1yKToobiYmZnVuY3Rpb24gZSh0KXtmb3IodD10LmNoaWxkO251bGwhPT10Oyl7aWYoMzA9PT10LnRhZyl7dmFyIG49dC5tZW1vaXplZFByb3BzLHI9cm4obix0LnN0YXRlTm9kZSk7bj1ybChuLmRlZmF1bHQsbi51cGRhdGUpLHQuZmxhZ3MmPS01LCJub25lIiE9PW4mJmlJKHQscixuLHQubWVtb2l6ZWRTdGF0ZT1bXSwhMSl9ZWxzZSAwIT0oMHgyMDAwMDAwJnQuc3VidHJlZUZsYWdzKSYmZSh0KTt0PXQuc2libGluZ319KGUpLGkxKG4pKX19aU89bnVsbH0oZSx0LG4pfWZpbmFsbHl7dVM9byxxLnA9bCxXLlQ9cn19dVc9MSwodD1peik/dUo9ZnVuY3Rpb24oZSx0LG4scixsLGEsbyxpLHUpe3ZhciBzPTk9PT10Lm5vZGVUeXBlP3Q6dC5vd25lckRvY3VtZW50O3RyeXt2YXIgYz1zLnN0YXJ0Vmlld1RyYW5zaXRpb24oe3VwZGF0ZTpmdW5jdGlvbigpe3ZhciB0PXMuZGVmYXVsdFZpZXcsbj10Lm5hdmlnYXRpb24mJnQubmF2aWdhdGlvbi50cmFuc2l0aW9uLG89cy5mb250cy5zdGF0dXM7cigpO3ZhciBpPVtdO2lmKCJsb2FkZWQiPT09byYmKHMuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCwibG9hZGluZyI9PT1zLmZvbnRzLnN0YXR1cyYmaS5wdXNoKHMuZm9udHMucmVhZHkpKSxvPWkubGVuZ3RoLG51bGwhPT1lKWZvcih2YXIgdT1lLnN1c3BlbnNleUltYWdlcyxjPTAsZj0wO2Y8dS5sZW5ndGg7ZisrKXt2YXIgZD11W2ZdO2lmKCFkLmNvbXBsZXRlKXt2YXIgcD1kLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2lmKDA8cC5ib3R0b20mJjA8cC5yaWdodCYmcC50b3A8dC5pbm5lckhlaWdodCYmcC5sZWZ0PHQuaW5uZXJXaWR0aCl7aWYoKGMrPWZ1KGQpKT5mYyl7aS5sZW5ndGg9bzticmVha31kPW5ldyBQcm9taXNlKGNOLmJpbmQoZCkpLGkucHVzaChkKX19fXJldHVybiAwPGkubGVuZ3RoPyh0PVByb21pc2UucmFjZShbUHJvbWlzZS5hbGwoaSksbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7cmV0dXJuIHNldFRpbWVvdXQoZSw1MDApfSldKS50aGVuKGwsbCksKG4/UHJvbWlzZS5hbGxTZXR0bGVkKFtuLmZpbmlzaGVkLHRdKTp0KS50aGVuKGEsYSkpOihsKCksbik/bi5maW5pc2hlZC50aGVuKGEsYSk6dm9pZCBhKCl9LHR5cGVzOm59KTtyZXR1cm4gcy5fX3JlYWN0Vmlld1RyYW5zaXRpb249YyxjLnJlYWR5LnRoZW4oZnVuY3Rpb24oKXtmb3IodmFyIGU9cy5kb2N1bWVudEVsZW1lbnQuZ2V0QW5pbWF0aW9ucyh7c3VidHJlZTohMH0pLHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIG49ZVt0XS5lZmZlY3Qscj1uLnBzZXVkb0VsZW1lbnQ7aWYobnVsbCE9ciYmci5zdGFydHNXaXRoKCI6OnZpZXctdHJhbnNpdGlvbiIpKXtyPW4uZ2V0S2V5ZnJhbWVzKCk7Zm9yKHZhciBsPXZvaWQgMCxhPXZvaWQgMCxpPSEwLHU9MDt1PHIubGVuZ3RoO3UrKyl7dmFyIGM9clt1XSxmPWMud2lkdGg7aWYodm9pZCAwPT09bClsPWY7ZWxzZSBpZihsIT09Zil7aT0hMTticmVha31pZihmPWMuaGVpZ2h0LHZvaWQgMD09PWEpYT1mO2Vsc2UgaWYoYSE9PWYpe2k9ITE7YnJlYWt9ZGVsZXRlIGMud2lkdGgsZGVsZXRlIGMuaGVpZ2h0LCJub25lIj09PWMudHJhbnNmb3JtJiZkZWxldGUgYy50cmFuc2Zvcm19aSYmdm9pZCAwIT09bCYmdm9pZCAwIT09YSYmKG4uc2V0S2V5ZnJhbWVzKHIpLChpPWdldENvbXB1dGVkU3R5bGUobi50YXJnZXQsbi5wc2V1ZG9FbGVtZW50KSkud2lkdGghPT1sfHxpLmhlaWdodCE9PWEpJiYoKGk9clswXSkud2lkdGg9bCxpLmhlaWdodD1hLChpPXJbci5sZW5ndGgtMV0pLndpZHRoPWwsaS5oZWlnaHQ9YSxuLnNldEtleWZyYW1lcyhyKSl9fW8oKX0sZnVuY3Rpb24oZSl7cy5fX3JlYWN0Vmlld1RyYW5zaXRpb249PT1jJiYocy5fX3JlYWN0Vmlld1RyYW5zaXRpb249bnVsbCk7dHJ5eyJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJJbnZhbGlkU3RhdGVFcnJvciI9PT1lLm5hbWUmJigiVmlldyB0cmFuc2l0aW9uIHdhcyBza2lwcGVkIGJlY2F1c2UgZG9jdW1lbnQgdmlzaWJpbGl0eSBzdGF0ZSBpcyBoaWRkZW4uIj09PWUubWVzc2FnZXx8IlNraXBwaW5nIHZpZXcgdHJhbnNpdGlvbiBiZWNhdXNlIGRvY3VtZW50IHZpc2liaWxpdHkgc3RhdGUgaGFzIGJlY29tZSBoaWRkZW4uIj09PWUubWVzc2FnZXx8IlNraXBwaW5nIHZpZXcgdHJhbnNpdGlvbiBiZWNhdXNlIHZpZXdwb3J0IHNpemUgY2hhbmdlZC4iPT09ZS5tZXNzYWdlfHwiVHJhbnNpdGlvbiB3YXMgYWJvcnRlZCBiZWNhdXNlIG9mIGludmFsaWQgc3RhdGUiPT09ZS5tZXNzYWdlKSYmKGU9bnVsbCksbnVsbCE9PWUmJnUoZSl9ZmluYWxseXtyKCksbCgpLG8oKX19KSxjLmZpbmlzaGVkLmZpbmFsbHkoZnVuY3Rpb24oKXtmb3IodmFyIGU9cy5kb2N1bWVudEVsZW1lbnQsdD1lLmdldEFuaW1hdGlvbnMoe3N1YnRyZWU6ITB9KSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl0sbD1yLmVmZmVjdCxhPWwucHNldWRvRWxlbWVudDtudWxsIT1hJiZhLnN0YXJ0c1dpdGgoIjo6dmlldy10cmFuc2l0aW9uIikmJmwudGFyZ2V0PT09ZSYmci5jYW5jZWwoKX1zLl9fcmVhY3RWaWV3VHJhbnNpdGlvbj09PWMmJihzLl9fcmVhY3RWaWV3VHJhbnNpdGlvbj1udWxsKSxpKCl9KSxjfWNhdGNoKGUpe3JldHVybiByKCksbCgpLG8oKSxudWxsfX0oZixlLmNvbnRhaW5lckluZm8sdTEsc3ksc2Isc3Ysc3csc0Usc2csbnVsbCxudWxsKTooc3koKSxzYigpLHN3KCkpfX1mdW5jdGlvbiBzZyhlKXswIT09dVcmJigwLHVxLm9uUmVjb3ZlcmFibGVFcnJvcikoZSx7Y29tcG9uZW50U3RhY2s6bnVsbH0pfWZ1bmN0aW9uIHN2KCl7Mz09PXVXJiYodVc9MCx1byh1Syx1cSksdVc9NCl9ZnVuY3Rpb24gc3koKXtpZigxPT09dVcpe3VXPTA7dmFyIGU9dXEsdD11SyxuPXVZLHI9MCE9KDEzODc4JnQuZmxhZ3MpO2lmKDAhPSgxMzg3OCZ0LnN1YnRyZWVGbGFncyl8fHIpe3I9Vy5ULFcuVD1udWxsO3ZhciBsPXEucDtxLnA9Mjt2YXIgYT11Uzt1U3w9NDt0cnl7aVo9aUo9ITEsdXIodCxlLG4pLG49Y2k7dmFyIG89blYoZS5jb250YWluZXJJbmZvKSxpPW4uZm9jdXNlZEVsZW0sdT1uLnNlbGVjdGlvblJhbmdlO2lmKG8hPT1pJiZpJiZpLm93bmVyRG9jdW1lbnQmJmZ1bmN0aW9uIGUodCxuKXtyZXR1cm4hIXQmJiEhbiYmKHQ9PT1ufHwoIXR8fDMhPT10Lm5vZGVUeXBlKSYmKG4mJjM9PT1uLm5vZGVUeXBlP2UodCxuLnBhcmVudE5vZGUpOiJjb250YWlucyJpbiB0P3QuY29udGFpbnMobik6ISF0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG4pKSkpfShpLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGkpKXtpZihudWxsIT09dSYmbiQoaSkpe3ZhciBzPXUuc3RhcnQsYz11LmVuZDtpZih2b2lkIDA9PT1jJiYoYz1zKSwic2VsZWN0aW9uU3RhcnQiaW4gaSlpLnNlbGVjdGlvblN0YXJ0PXMsaS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4oYyxpLnZhbHVlLmxlbmd0aCk7ZWxzZXt2YXIgZj1pLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50LGQ9ZiYmZi5kZWZhdWx0Vmlld3x8d2luZG93O2lmKGQuZ2V0U2VsZWN0aW9uKXt2YXIgcD1kLmdldFNlbGVjdGlvbigpLG09aS50ZXh0Q29udGVudC5sZW5ndGgsaD1NYXRoLm1pbih1LnN0YXJ0LG0pLGc9dm9pZCAwPT09dS5lbmQ/aDpNYXRoLm1pbih1LmVuZCxtKTshcC5leHRlbmQmJmg+ZyYmKG89ZyxnPWgsaD1vKTt2YXIgdj1uQihpLGgpLHk9bkIoaSxnKTtpZih2JiZ5JiYoMSE9PXAucmFuZ2VDb3VudHx8cC5hbmNob3JOb2RlIT09di5ub2RlfHxwLmFuY2hvck9mZnNldCE9PXYub2Zmc2V0fHxwLmZvY3VzTm9kZSE9PXkubm9kZXx8cC5mb2N1c09mZnNldCE9PXkub2Zmc2V0KSl7dmFyIGI9Zi5jcmVhdGVSYW5nZSgpO2Iuc2V0U3RhcnQodi5ub2RlLHYub2Zmc2V0KSxwLnJlbW92ZUFsbFJhbmdlcygpLGg+Zz8ocC5hZGRSYW5nZShiKSxwLmV4dGVuZCh5Lm5vZGUseS5vZmZzZXQpKTooYi5zZXRFbmQoeS5ub2RlLHkub2Zmc2V0KSxwLmFkZFJhbmdlKGIpKX19fX1mb3IoZj1bXSxwPWk7cD1wLnBhcmVudE5vZGU7KTE9PT1wLm5vZGVUeXBlJiZmLnB1c2goe2VsZW1lbnQ6cCxsZWZ0OnAuc2Nyb2xsTGVmdCx0b3A6cC5zY3JvbGxUb3B9KTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGkuZm9jdXMmJmkuZm9jdXMoKSxpPTA7aTxmLmxlbmd0aDtpKyspe3ZhciB3PWZbaV07dy5lbGVtZW50LnNjcm9sbExlZnQ9dy5sZWZ0LHcuZWxlbWVudC5zY3JvbGxUb3A9dy50b3B9fWZfPSEhY28sY2k9Y289bnVsbH1maW5hbGx5e3VTPWEscS5wPWwsVy5UPXJ9fWUuY3VycmVudD10LHVXPTJ9fWZ1bmN0aW9uIHNiKCl7aWYoMj09PXVXKXt1Vz0wO3ZhciBlPXVxLHQ9dUssbj0wIT0oODc3MiZ0LmZsYWdzKTtpZigwIT0oODc3MiZ0LnN1YnRyZWVGbGFncyl8fG4pe249Vy5ULFcuVD1udWxsO3ZhciByPXEucDtxLnA9Mjt2YXIgbD11Uzt1U3w9NDt0cnl7aTIoZSx0LmFsdGVybmF0ZSx0KX1maW5hbGx5e3VTPWwscS5wPXIsVy5UPW59fXVXPTN9fWZ1bmN0aW9uIHN3KCl7aWYoND09PXVXfHwzPT09dVcpe3VXPTAsdUo9bnVsbCxlZygpO3ZhciBlPXVxLHQ9dUssbj11WSxyPXVaLGw9KDB4MTNmZmZmMDAmbik9PT1uPzEwMjYyOjEwMjU2O2lmKDAhPSh0LnN1YnRyZWVGbGFncyZsKXx8MCE9KHQuZmxhZ3MmbCk/dVc9NToodVc9MCx1Sz11cT1udWxsLHNrKGUsZS5wZW5kaW5nTGFuZXMpKSwwPT09KGw9ZS5wZW5kaW5nTGFuZXMpJiYodVE9bnVsbCksZVYobiksdD10LnN0YXRlTm9kZSxlXyYmImZ1bmN0aW9uIj09dHlwZW9mIGVfLm9uQ29tbWl0RmliZXJSb290KXRyeXtlXy5vbkNvbW1pdEZpYmVyUm9vdChleCx0LHZvaWQgMCwxMjg9PSgxMjgmdC5jdXJyZW50LmZsYWdzKSl9Y2F0Y2goZSl7fWlmKG51bGwhPT1yKXt0PVcuVCxsPXEucCxxLnA9MixXLlQ9bnVsbDt0cnl7Zm9yKHZhciBhPWUub25SZWNvdmVyYWJsZUVycm9yLG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIGk9cltvXTthKGkudmFsdWUse2NvbXBvbmVudFN0YWNrOmkuc3RhY2t9KX19ZmluYWxseXtXLlQ9dCxxLnA9bH19aWYocj11MCxhPXUxLHUxPW51bGwsbnVsbCE9PXIpZm9yKHUwPW51bGwsbnVsbD09PWEmJihhPVtdKSxpPTA7aTxyLmxlbmd0aDtpKyspKDAscltpXSkoYSk7MCE9KDMmdVkpJiZzUygpLHNSKGUpLGw9ZS5wZW5kaW5nTGFuZXMsMCE9KDI2MTkzMCZuKSYmMCE9KDQyJmwpP2U9PT11Mz91MisrOih1Mj0wLHUzPWUpOnUyPTAsc0EoMCwhMSl9fWZ1bmN0aW9uIHNrKGUsdCl7MD09KGUucG9vbGVkQ2FjaGVMYW5lcyY9dCkmJm51bGwhPSh0PWUucG9vbGVkQ2FjaGUpJiYoZS5wb29sZWRDYWNoZT1udWxsLGxzKHQpKX1mdW5jdGlvbiBzUygpe3JldHVybiBudWxsIT09dUomJih1Si5za2lwVHJhbnNpdGlvbigpLHVKPW51bGwpLHN5KCksc2IoKSxzdygpLHNFKCl9ZnVuY3Rpb24gc0UoKXtpZig1IT09dVcpcmV0dXJuITE7dmFyIGU9dXEsdD11Rzt1Rz0wO3ZhciBuPWVWKHVZKSxyPVcuVCxsPXEucDt0cnl7cS5wPTMyPm4/MzI6bixXLlQ9bnVsbCxuPXVYLHVYPW51bGw7dmFyIGE9dXEsbz11WTtpZih1Vz0wLHVLPXVxPW51bGwsdVk9MCwwIT0oNiZ1UykpdGhyb3cgRXJyb3IodSgzMzEpKTt2YXIgaT11UztpZih1U3w9NCx1eShhLmN1cnJlbnQpLHVmKGEsYS5jdXJyZW50LG8sbiksdVM9aSxzQSgwLCExKSxlXyYmImZ1bmN0aW9uIj09dHlwZW9mIGVfLm9uUG9zdENvbW1pdEZpYmVyUm9vdCl0cnl7ZV8ub25Qb3N0Q29tbWl0RmliZXJSb290KGV4LGEpfWNhdGNoKGUpe31yZXR1cm4hMH1maW5hbGx5e3EucD1sLFcuVD1yLHNrKGUsdCl9fWZ1bmN0aW9uIHN4KGUsdCxuKXt0PXJQKG4sdCksdD1vSShlLnN0YXRlTm9kZSx0LDIpLG51bGwhPT0oZT1sSChlLHQsMikpJiYoZVIoZSwyKSxzUihlKSl9ZnVuY3Rpb24gc18oZSx0LG4pe2lmKDM9PT1lLnRhZylzeChlLGUsbik7ZWxzZSBmb3IoO251bGwhPT10Oyl7aWYoMz09PXQudGFnKXtzeCh0LGUsbik7YnJlYWt9aWYoMT09PXQudGFnKXt2YXIgcj10LnN0YXRlTm9kZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvcnx8ImZ1bmN0aW9uIj09dHlwZW9mIHIuY29tcG9uZW50RGlkQ2F0Y2gmJihudWxsPT09dVF8fCF1US5oYXMocikpKXtlPXJQKG4sZSksbnVsbCE9PShyPWxIKHQsbj1vUigyKSwyKSkmJihvQShuLHIsdCxlKSxlUihyLDIpLHNSKHIpKTticmVha319dD10LnJldHVybn19ZnVuY3Rpb24gc04oZSx0LG4pe3ZhciByPWUucGluZ0NhY2hlO2lmKG51bGw9PT1yKXtyPWUucGluZ0NhY2hlPW5ldyB1azt2YXIgbD1uZXcgU2V0O3Iuc2V0KHQsbCl9ZWxzZSB2b2lkIDA9PT0obD1yLmdldCh0KSkmJihsPW5ldyBTZXQsci5zZXQodCxsKSk7bC5oYXMobil8fCh1ej0hMCxsLmFkZChuKSxlPXNQLmJpbmQobnVsbCxlLHQsbiksdC50aGVuKGUsZSkpfWZ1bmN0aW9uIHNQKGUsdCxuKXt2YXIgcj1lLnBpbmdDYWNoZTtudWxsIT09ciYmci5kZWxldGUodCksZS5waW5nZWRMYW5lc3w9ZS5zdXNwZW5kZWRMYW5lcyZuLGUud2FybUxhbmVzJj1+bix1RT09PWUmJih1XyZuKT09PW4mJig0PT09dUx8fDM9PT11TCYmKDB4M2MwMDAwMCZ1Xyk9PT11XyYmMzAwPmV2KCktdUI/MD09KDImdVMpJiZzcihlLDApOnVGfD1uLHVSPT09dV8mJih1Uj0wKSksc1IoZSl9ZnVuY3Rpb24gc0MoZSx0KXswPT09dCYmKHQ9ZUYoKSksbnVsbCE9PShlPXJkKGUsdCkpJiYoZVIoZSx0KSxzUihlKSl9ZnVuY3Rpb24gc1QoZSl7dmFyIHQ9ZS5tZW1vaXplZFN0YXRlLG49MDtudWxsIT09dCYmKG49dC5yZXRyeUxhbmUpLHNDKGUsbil9ZnVuY3Rpb24gc3ooZSx0KXt2YXIgbj0wO3N3aXRjaChlLnRhZyl7Y2FzZSAzMTpjYXNlIDEzOnZhciByPWUuc3RhdGVOb2RlLGw9ZS5tZW1vaXplZFN0YXRlO251bGwhPT1sJiYobj1sLnJldHJ5TGFuZSk7YnJlYWs7Y2FzZSAxOTpyPWUuc3RhdGVOb2RlO2JyZWFrO2Nhc2UgMjI6cj1lLnN0YXRlTm9kZS5fcmV0cnlDYWNoZTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKHUoMzE0KSl9bnVsbCE9PXImJnIuZGVsZXRlKHQpLHNDKGUsbil9dmFyIHNPPW51bGwsc0w9bnVsbCxzTT0hMSxzRD0hMSxzRj0hMSxzST0wO2Z1bmN0aW9uIHNSKGUpe2UhPT1zTCYmbnVsbD09PWUubmV4dCYmKG51bGw9PT1zTD9zTz1zTD1lOnNMPXNMLm5leHQ9ZSksc0Q9ITAsc018fChzTT0hMCxjZyhmdW5jdGlvbigpezAhPSg2JnVTKT9lcChlYixzaik6c1UoKX0pKX1mdW5jdGlvbiBzQShlLHQpe2lmKCFzRiYmc0Qpe3NGPSEwO2RvIGZvcih2YXIgbj0hMSxyPXNPO251bGwhPT1yOyl7aWYoIXQpaWYoMCE9PWUpe3ZhciBsPXIucGVuZGluZ0xhbmVzO2lmKDA9PT1sKXZhciBhPTA7ZWxzZXt2YXIgbz1yLnN1c3BlbmRlZExhbmVzLGk9ci5waW5nZWRMYW5lczthPTB4YzAwMDA5NSYoYT0oMTw8MzEtZU4oNDJ8ZSkrMSktMSYobCZ+KG8mfmkpKSk/MHhjMDAwMDk1JmF8MTphPzJ8YTowfTAhPT1hJiYobj0hMCxzJChyLGEpKX1lbHNlIGE9dV8sMD09KDMmKGE9ZU0ocixyPT09dUU/YTowLG51bGwhPT1yLmNhbmNlbFBlbmRpbmdDb21taXR8fC0xIT09ci50aW1lb3V0SGFuZGxlKSkpfHxlRChyLGEpfHwobj0hMCxzJChyLGEpKTtyPXIubmV4dH13aGlsZShuKXNGPSExfX1mdW5jdGlvbiBzaigpe3NVKCl9ZnVuY3Rpb24gc1UoKXtzRD1zTT0hMTt2YXIgZSx0PTA7MD09PXNJfHwoKGU9d2luZG93LmV2ZW50KSYmInBvcHN0YXRlIj09PWUudHlwZT9lPT09Y2R8fChjZD1lLDApOihjZD1udWxsLDEpKXx8KHQ9c0kpO2Zvcih2YXIgbj1ldigpLHI9bnVsbCxsPXNPO251bGwhPT1sOyl7dmFyIGE9bC5uZXh0LG89c0IobCxuKTswPT09bz8obC5uZXh0PW51bGwsbnVsbD09PXI/c089YTpyLm5leHQ9YSxudWxsPT09YSYmKHNMPXIpKToocj1sLCgwIT09dHx8MCE9KDMmbykpJiYoc0Q9ITApKSxsPWF9MCE9PXVXJiY1IT09dVd8fHNBKHQsITEpLDAhPT1zSSYmKHNJPTApfWZ1bmN0aW9uIHNCKGUsdCl7Zm9yKHZhciBuPWUuc3VzcGVuZGVkTGFuZXMscj1lLnBpbmdlZExhbmVzLGw9ZS5leHBpcmF0aW9uVGltZXMsYT0tMHgzYzAwMDAxJmUucGVuZGluZ0xhbmVzOzA8YTspe3ZhciBvPTMxLWVOKGEpLGk9MTw8byx1PWxbb107LTE9PT11PygwPT0oaSZuKXx8MCE9KGkmcikpJiYobFtvXT1mdW5jdGlvbihlLHQpe3N3aXRjaChlKXtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDg6Y2FzZSA2NDpyZXR1cm4gdCsyNTA7Y2FzZSAxNjpjYXNlIDMyOmNhc2UgMTI4OmNhc2UgMjU2OmNhc2UgNTEyOmNhc2UgMTAyNDpjYXNlIDIwNDg6Y2FzZSA0MDk2OmNhc2UgODE5MjpjYXNlIDE2Mzg0OmNhc2UgMzI3Njg6Y2FzZSA2NTUzNjpjYXNlIDEzMTA3MjpjYXNlIDI2MjE0NDpjYXNlIDUyNDI4ODpjYXNlIDEwNDg1NzY6Y2FzZSAyMDk3MTUyOnJldHVybiB0KzVlMztkZWZhdWx0OnJldHVybiAtMX19KGksdCkpOnU8PXQmJihlLmV4cGlyZWRMYW5lc3w9aSksYSY9fml9aWYodD11RSxuPXVfLG49ZU0oZSxlPT09dD9uOjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpLHI9ZS5jYWxsYmFja05vZGUsMD09PW58fGU9PT10JiYoMj09PXVOfHw5PT09dU4pfHxudWxsIT09ZS5jYW5jZWxQZW5kaW5nQ29tbWl0KXJldHVybiBudWxsIT09ciYmbnVsbCE9PXImJmVtKHIpLGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTA7aWYoMD09KDMmbil8fGVEKGUsbikpe2lmKCh0PW4mLW4pPT09ZS5jYWxsYmFja1ByaW9yaXR5KXJldHVybiB0O3N3aXRjaChudWxsIT09ciYmZW0ociksZVYobikpe2Nhc2UgMjpjYXNlIDg6bj1ldzticmVhaztjYXNlIDMyOmRlZmF1bHQ6bj1lazticmVhaztjYXNlIDB4MTAwMDAwMDA6bj1lRX1yZXR1cm4gbj1lcChuLHI9c1YuYmluZChudWxsLGUpKSxlLmNhbGxiYWNrUHJpb3JpdHk9dCxlLmNhbGxiYWNrTm9kZT1uLHR9cmV0dXJuIG51bGwhPT1yJiZudWxsIT09ciYmZW0ociksZS5jYWxsYmFja1ByaW9yaXR5PTIsZS5jYWxsYmFja05vZGU9bnVsbCwyfWZ1bmN0aW9uIHNWKGUsdCl7aWYoMCE9PXVXJiY1IT09dVcpcmV0dXJuIGUuY2FsbGJhY2tOb2RlPW51bGwsZS5jYWxsYmFja1ByaW9yaXR5PTAsbnVsbDt2YXIgbj1lLmNhbGxiYWNrTm9kZTtpZihzUygpJiZlLmNhbGxiYWNrTm9kZSE9PW4pcmV0dXJuIG51bGw7dmFyIHI9dV87cmV0dXJuIDA9PT0ocj1lTShlLGU9PT11RT9yOjAsbnVsbCE9PWUuY2FuY2VsUGVuZGluZ0NvbW1pdHx8LTEhPT1lLnRpbWVvdXRIYW5kbGUpKT9udWxsOih1OShlLHIsdCksc0IoZSxldigpKSxudWxsIT1lLmNhbGxiYWNrTm9kZSYmZS5jYWxsYmFja05vZGU9PT1uP3NWLmJpbmQobnVsbCxlKTpudWxsKX1mdW5jdGlvbiBzJChlLHQpe2lmKHNTKCkpcmV0dXJuIG51bGw7dTkoZSx0LCEwKX1mdW5jdGlvbiBzSCgpe2lmKDA9PT1zSSl7dmFyIGU9bG07MD09PWUmJihlPWVULDA9PSgyNjE4ODgmKGVUPDw9MSkpJiYoZVQ9MjU2KSksc0k9ZX1yZXR1cm4gc0l9ZnVuY3Rpb24gc1EoZSl7cmV0dXJuIG51bGw9PWV8fCJzeW1ib2wiPT10eXBlb2YgZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6dEMoIiIrZSl9ZnVuY3Rpb24gc1coZSx0KXt2YXIgbj10Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTtyZXR1cm4gbi5uYW1lPXQubmFtZSxuLnZhbHVlPXQudmFsdWUsZS5pZCYmbi5zZXRBdHRyaWJ1dGUoImZvcm0iLGUuaWQpLHQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobix0KSxlPW5ldyBGb3JtRGF0YShlKSxuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobiksZX1mb3IodmFyIHNxPTA7c3E8bjcubGVuZ3RoO3NxKyspe3ZhciBzSz1uN1tzcV07cmUoc0sudG9Mb3dlckNhc2UoKSwib24iKyhzS1swXS50b1VwcGVyQ2FzZSgpK3NLLnNsaWNlKDEpKSl9cmUobjEsIm9uQW5pbWF0aW9uRW5kIikscmUobjIsIm9uQW5pbWF0aW9uSXRlcmF0aW9uIikscmUobjMsIm9uQW5pbWF0aW9uU3RhcnQiKSxyZSgiZGJsY2xpY2siLCJvbkRvdWJsZUNsaWNrIikscmUoImZvY3VzaW4iLCJvbkZvY3VzIikscmUoImZvY3Vzb3V0Iiwib25CbHVyIikscmUobjQsIm9uVHJhbnNpdGlvblJ1biIpLHJlKG41LCJvblRyYW5zaXRpb25TdGFydCIpLHJlKG44LCJvblRyYW5zaXRpb25DYW5jZWwiKSxyZShuNiwib25UcmFuc2l0aW9uRW5kIiksZTcoIm9uTW91c2VFbnRlciIsWyJtb3VzZW91dCIsIm1vdXNlb3ZlciJdKSxlNygib25Nb3VzZUxlYXZlIixbIm1vdXNlb3V0IiwibW91c2VvdmVyIl0pLGU3KCJvblBvaW50ZXJFbnRlciIsWyJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiXSksZTcoIm9uUG9pbnRlckxlYXZlIixbInBvaW50ZXJvdXQiLCJwb2ludGVyb3ZlciJdKSxlOSgib25DaGFuZ2UiLCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZSIuc3BsaXQoIiAiKSksZTkoIm9uU2VsZWN0IiwiZm9jdXNvdXQgY29udGV4dG1lbnUgZHJhZ2VuZCBmb2N1c2luIGtleWRvd24ga2V5dXAgbW91c2Vkb3duIG1vdXNldXAgc2VsZWN0aW9uY2hhbmdlIi5zcGxpdCgiICIpKSxlOSgib25CZWZvcmVJbnB1dCIsWyJjb21wb3NpdGlvbmVuZCIsImtleXByZXNzIiwidGV4dElucHV0IiwicGFzdGUiXSksZTkoIm9uQ29tcG9zaXRpb25FbmQiLCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93biIuc3BsaXQoIiAiKSksZTkoIm9uQ29tcG9zaXRpb25TdGFydCIsImNvbXBvc2l0aW9uc3RhcnQgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpLGU5KCJvbkNvbXBvc2l0aW9uVXBkYXRlIiwiY29tcG9zaXRpb251cGRhdGUgZm9jdXNvdXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBtb3VzZWRvd24iLnNwbGl0KCIgIikpO3ZhciBzWT0iYWJvcnQgY2FucGxheSBjYW5wbGF5dGhyb3VnaCBkdXJhdGlvbmNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBsb2FkZWRkYXRhIGxvYWRlZG1ldGFkYXRhIGxvYWRzdGFydCBwYXVzZSBwbGF5IHBsYXlpbmcgcHJvZ3Jlc3MgcmF0ZWNoYW5nZSByZXNpemUgc2Vla2VkIHNlZWtpbmcgc3RhbGxlZCBzdXNwZW5kIHRpbWV1cGRhdGUgdm9sdW1lY2hhbmdlIHdhaXRpbmciLnNwbGl0KCIgIiksc0c9bmV3IFNldCgiYmVmb3JldG9nZ2xlIGNhbmNlbCBjbG9zZSBpbnZhbGlkIGxvYWQgc2Nyb2xsIHNjcm9sbGVuZCB0b2dnbGUiLnNwbGl0KCIgIikuY29uY2F0KHNZKSk7ZnVuY3Rpb24gc1goZSx0KXt0PTAhPSg0JnQpO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dLGw9ci5ldmVudDtyPXIubGlzdGVuZXJzO2U6e3ZhciBhPXZvaWQgMDtpZih0KWZvcih2YXIgbz1yLmxlbmd0aC0xOzA8PW87by0tKXt2YXIgaT1yW29dLHU9aS5pbnN0YW5jZSxzPWkuY3VycmVudFRhcmdldDtpZihpPWkubGlzdGVuZXIsdSE9PWEmJmwuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSlicmVhayBlO2E9aSxsLmN1cnJlbnRUYXJnZXQ9czt0cnl7YShsKX1jYXRjaChlKXtyYShlKX1sLmN1cnJlbnRUYXJnZXQ9bnVsbCxhPXV9ZWxzZSBmb3Iobz0wO288ci5sZW5ndGg7bysrKXtpZih1PShpPXJbb10pLmluc3RhbmNlLHM9aS5jdXJyZW50VGFyZ2V0LGk9aS5saXN0ZW5lcix1IT09YSYmbC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWJyZWFrIGU7YT1pLGwuY3VycmVudFRhcmdldD1zO3RyeXthKGwpfWNhdGNoKGUpe3JhKGUpfWwuY3VycmVudFRhcmdldD1udWxsLGE9dX19fX1mdW5jdGlvbiBzWihlLHQpe3ZhciBuPXRbZVldO3ZvaWQgMD09PW4mJihuPXRbZVldPW5ldyBTZXQpO3ZhciByPWUrIl9fYnViYmxlIjtuLmhhcyhyKXx8KHMyKHQsZSwyLCExKSxuLmFkZChyKSl9ZnVuY3Rpb24gc0ooZSx0LG4pe3ZhciByPTA7dCYmKHJ8PTQpLHMyKG4sZSxyLHQpfXZhciBzMD0iX3JlYWN0TGlzdGVuaW5nIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKTtmdW5jdGlvbiBzMShlKXtpZighZVtzMF0pe2VbczBdPSEwLGU4LmZvckVhY2goZnVuY3Rpb24odCl7InNlbGVjdGlvbmNoYW5nZSIhPT10JiYoc0cuaGFzKHQpfHxzSih0LCExLGUpLHNKKHQsITAsZSkpfSk7dmFyIHQ9OT09PWUubm9kZVR5cGU/ZTplLm93bmVyRG9jdW1lbnQ7bnVsbD09PXR8fHRbczBdfHwodFtzMF09ITAsc0ooInNlbGVjdGlvbmNoYW5nZSIsITEsdCkpfX1mdW5jdGlvbiBzMihlLHQsbixyKXtzd2l0Y2goZkwodCkpe2Nhc2UgMjp2YXIgbD1mTjticmVhaztjYXNlIDg6bD1mUDticmVhaztkZWZhdWx0Omw9ZkN9bj1sLmJpbmQobnVsbCx0LG4sZSksbD12b2lkIDAsdGomJigidG91Y2hzdGFydCI9PT10fHwidG91Y2htb3ZlIj09PXR8fCJ3aGVlbCI9PT10KSYmKGw9ITApLHI/dm9pZCAwIT09bD9lLmFkZEV2ZW50TGlzdGVuZXIodCxuLHtjYXB0dXJlOiEwLHBhc3NpdmU6bH0pOmUuYWRkRXZlbnRMaXN0ZW5lcih0LG4sITApOnZvaWQgMCE9PWw/ZS5hZGRFdmVudExpc3RlbmVyKHQsbix7cGFzc2l2ZTpsfSk6ZS5hZGRFdmVudExpc3RlbmVyKHQsbiwhMSl9ZnVuY3Rpb24gczMoZSx0LG4scixsKXt2YXIgYT1yO2lmKDA9PSgxJnQpJiYwPT0oMiZ0KSYmbnVsbCE9PXIpZTpmb3IoOzspe2lmKG51bGw9PT1yKXJldHVybjt2YXIgbz1yLnRhZztpZigzPT09b3x8ND09PW8pe3ZhciBpPXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87aWYoaT09PWwpYnJlYWs7aWYoND09PW8pZm9yKG89ci5yZXR1cm47bnVsbCE9PW87KXt2YXIgdT1vLnRhZztpZigoMz09PXV8fDQ9PT11KSYmby5zdGF0ZU5vZGUuY29udGFpbmVySW5mbz09PWwpcmV0dXJuO289by5yZXR1cm59Zm9yKDtudWxsIT09aTspe2lmKG51bGw9PT0obz1lMShpKSkpcmV0dXJuO2lmKDU9PT0odT1vLnRhZyl8fDY9PT11fHwyNj09PXV8fDI3PT09dSl7cj1hPW87Y29udGludWUgZX1pPWkucGFyZW50Tm9kZX19cj1yLnJldHVybn10SShmdW5jdGlvbigpe3ZhciByPWEsbD10TyhuKSxvPVtdO2U6e3ZhciBpPW45LmdldChlKTtpZih2b2lkIDAhPT1pKXt2YXIgdT10MSxzPWU7c3dpdGNoKGUpe2Nhc2Uia2V5cHJlc3MiOmlmKDA9PT10UShuKSlicmVhayBlO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6dT1ubzticmVhaztjYXNlImZvY3VzaW4iOnM9ImZvY3VzIix1PXQ2O2JyZWFrO2Nhc2UiZm9jdXNvdXQiOnM9ImJsdXIiLHU9dDY7YnJlYWs7Y2FzZSJiZWZvcmVibHVyIjpjYXNlImFmdGVyYmx1ciI6dT10NjticmVhaztjYXNlImNsaWNrIjppZigyPT09bi5idXR0b24pYnJlYWsgZTtjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlIm1vdXNlZG93biI6Y2FzZSJtb3VzZW1vdmUiOmNhc2UibW91c2V1cCI6Y2FzZSJtb3VzZW91dCI6Y2FzZSJtb3VzZW92ZXIiOmNhc2UiY29udGV4dG1lbnUiOnU9dDU7YnJlYWs7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ2VudGVyIjpjYXNlImRyYWdleGl0IjpjYXNlImRyYWdsZWF2ZSI6Y2FzZSJkcmFnb3ZlciI6Y2FzZSJkcmFnc3RhcnQiOmNhc2UiZHJvcCI6dT10ODticmVhaztjYXNlInRvdWNoY2FuY2VsIjpjYXNlInRvdWNoZW5kIjpjYXNlInRvdWNobW92ZSI6Y2FzZSJ0b3VjaHN0YXJ0Ijp1PW51O2JyZWFrO2Nhc2UgbjE6Y2FzZSBuMjpjYXNlIG4zOnU9dDk7YnJlYWs7Y2FzZSBuNjp1PW5zO2JyZWFrO2Nhc2Uic2Nyb2xsIjpjYXNlInNjcm9sbGVuZCI6dT10MzticmVhaztjYXNlIndoZWVsIjp1PW5jO2JyZWFrO2Nhc2UiY29weSI6Y2FzZSJjdXQiOmNhc2UicGFzdGUiOnU9dDc7YnJlYWs7Y2FzZSJnb3Rwb2ludGVyY2FwdHVyZSI6Y2FzZSJsb3N0cG9pbnRlcmNhcHR1cmUiOmNhc2UicG9pbnRlcmNhbmNlbCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInBvaW50ZXJ1cCI6dT1uaTticmVhaztjYXNlInRvZ2dsZSI6Y2FzZSJiZWZvcmV0b2dnbGUiOnU9bmZ9dmFyIGY9MCE9KDQmdCksZD0hZiYmKCJzY3JvbGwiPT09ZXx8InNjcm9sbGVuZCI9PT1lKSxwPWY/bnVsbCE9PWk/aSsiQ2FwdHVyZSI6bnVsbDppO2Y9W107Zm9yKHZhciBtLGg9cjtudWxsIT09aDspe3ZhciBnPWg7aWYobT1nLnN0YXRlTm9kZSw1IT09KGc9Zy50YWcpJiYyNiE9PWcmJjI3IT09Z3x8bnVsbD09PW18fG51bGw9PT1wfHxudWxsIT0oZz10UihoLHApKSYmZi5wdXNoKHM0KGgsZyxtKSksZClicmVhaztoPWgucmV0dXJufTA8Zi5sZW5ndGgmJihpPW5ldyB1KGkscyxudWxsLG4sbCksby5wdXNoKHtldmVudDppLGxpc3RlbmVyczpmfSkpfX1pZigwPT0oNyZ0KSl7dT0ibW91c2VvdmVyIj09PWV8fCJwb2ludGVyb3ZlciI9PT1lLGk9Im1vdXNlb3V0Ij09PWV8fCJwb2ludGVyb3V0Ij09PWUsISh1JiZuIT09dHomJihzPW4ucmVsYXRlZFRhcmdldHx8bi5mcm9tRWxlbWVudCkmJihlMShzKXx8c1tlS10pKSYmKGl8fHUpJiYocz1sLndpbmRvdz09PWw/bDoodT1sLm93bmVyRG9jdW1lbnQpP3UuZGVmYXVsdFZpZXd8fHUucGFyZW50V2luZG93OndpbmRvdyxpPyh1PW4ucmVsYXRlZFRhcmdldHx8bi50b0VsZW1lbnQsaT1yLG51bGwhPT0odT11P2UxKHUpOm51bGwpJiYoZD1jKHUpLGY9dS50YWcsdSE9PWR8fDUhPT1mJiYyNyE9PWYmJjYhPT1mKSYmKHU9bnVsbCkpOihpPW51bGwsdT1yKSxpIT09dSYmKGY9dDUsZz0ib25Nb3VzZUxlYXZlIixwPSJvbk1vdXNlRW50ZXIiLGg9Im1vdXNlIiwoInBvaW50ZXJvdXQiPT09ZXx8InBvaW50ZXJvdmVyIj09PWUpJiYoZj1uaSxnPSJvblBvaW50ZXJMZWF2ZSIscD0ib25Qb2ludGVyRW50ZXIiLGg9InBvaW50ZXIiKSxkPW51bGw9PWk/czplMyhpKSxtPW51bGw9PXU/czplMyh1KSwocz1uZXcgZihnLGgrImxlYXZlIixpLG4sbCkpLnRhcmdldD1kLHMucmVsYXRlZFRhcmdldD1tLGc9bnVsbCxlMShsKT09PXImJigoZj1uZXcgZihwLGgrImVudGVyIix1LG4sbCkpLnRhcmdldD1tLGYucmVsYXRlZFRhcmdldD1kLGc9ZiksZD1nLGY9aSYmdT9FKGksdSxzOCk6bnVsbCxudWxsIT09aSYmczYobyxzLGksZiwhMSksbnVsbCE9PXUmJm51bGwhPT1kJiZzNihvLGQsdSxmLCEwKSkpO2U6e2lmKCJzZWxlY3QiPT09KHU9KGk9cj9lMyhyKTp3aW5kb3cpLm5vZGVOYW1lJiZpLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpfHwiaW5wdXQiPT09dSYmImZpbGUiPT09aS50eXBlKXZhciB2LHk9bkM7ZWxzZSBpZihuUyhpKSlpZihuVCl5PW5SO2Vsc2V7eT1uRjt2YXIgYj1uRH1lbHNlKHU9aS5ub2RlTmFtZSkmJiJpbnB1dCI9PT11LnRvTG93ZXJDYXNlKCkmJigiY2hlY2tib3giPT09aS50eXBlfHwicmFkaW8iPT09aS50eXBlKT95PW5JOnImJnRfKHIuZWxlbWVudFR5cGUpJiYoeT1uQyk7aWYoeSYmKHk9eShlLHIpKSl7bkUobyx5LG4sbCk7YnJlYWsgZX1iJiZiKGUsaSxyKSwiZm9jdXNvdXQiPT09ZSYmciYmIm51bWJlciI9PT1pLnR5cGUmJm51bGwhPXIubWVtb2l6ZWRQcm9wcy52YWx1ZSYmdHYoaSwibnVtYmVyIixpLnZhbHVlKX1zd2l0Y2goYj1yP2UzKHIpOndpbmRvdyxlKXtjYXNlImZvY3VzaW4iOihuUyhiKXx8InRydWUiPT09Yi5jb250ZW50RWRpdGFibGUpJiYoblE9YixuVz1yLG5xPW51bGwpO2JyZWFrO2Nhc2UiZm9jdXNvdXQiOm5xPW5XPW5RPW51bGw7YnJlYWs7Y2FzZSJtb3VzZWRvd24iOm5LPSEwO2JyZWFrO2Nhc2UiY29udGV4dG1lbnUiOmNhc2UibW91c2V1cCI6Y2FzZSJkcmFnZW5kIjpuSz0hMSxuWShvLG4sbCk7YnJlYWs7Y2FzZSJzZWxlY3Rpb25jaGFuZ2UiOmlmKG5IKWJyZWFrO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6blkobyxuLGwpfWlmKG5wKXQ6e3N3aXRjaChlKXtjYXNlImNvbXBvc2l0aW9uc3RhcnQiOnZhciB3PSJvbkNvbXBvc2l0aW9uU3RhcnQiO2JyZWFrIHQ7Y2FzZSJjb21wb3NpdGlvbmVuZCI6dz0ib25Db21wb3NpdGlvbkVuZCI7YnJlYWsgdDtjYXNlImNvbXBvc2l0aW9udXBkYXRlIjp3PSJvbkNvbXBvc2l0aW9uVXBkYXRlIjticmVhayB0fXc9dm9pZCAwfWVsc2Ugbnc/bnkoZSxuKSYmKHc9Im9uQ29tcG9zaXRpb25FbmQiKToia2V5ZG93biI9PT1lJiYyMjk9PT1uLmtleUNvZGUmJih3PSJvbkNvbXBvc2l0aW9uU3RhcnQiKTt3JiYobmcmJiJrbyIhPT1uLmxvY2FsZSYmKG53fHwib25Db21wb3NpdGlvblN0YXJ0IiE9PXc/Im9uQ29tcG9zaXRpb25FbmQiPT09dyYmbncmJih2PXRIKCkpOih0Vj0idmFsdWUiaW4odEI9bCk/dEIudmFsdWU6dEIudGV4dENvbnRlbnQsbnc9ITApKSwwPChiPXM1KHIsdykpLmxlbmd0aCYmKHc9bmV3IG5lKHcsZSxudWxsLG4sbCksby5wdXNoKHtldmVudDp3LGxpc3RlbmVyczpifSksdj93LmRhdGE9djpudWxsIT09KHY9bmIobikpJiYody5kYXRhPXYpKSksKHY9bmg/ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJjb21wb3NpdGlvbmVuZCI6cmV0dXJuIG5iKHQpO2Nhc2Uia2V5cHJlc3MiOmlmKDMyIT09dC53aGljaClyZXR1cm4gbnVsbDtyZXR1cm4gbnY9ITAsIiAiO2Nhc2UidGV4dElucHV0IjpyZXR1cm4iICI9PT0oZT10LmRhdGEpJiZudj9udWxsOmU7ZGVmYXVsdDpyZXR1cm4gbnVsbH19KGUsbik6ZnVuY3Rpb24oZSx0KXtpZihudylyZXR1cm4iY29tcG9zaXRpb25lbmQiPT09ZXx8IW5wJiZueShlLHQpPyhlPXRIKCksdCQ9dFY9dEI9bnVsbCxudz0hMSxlKTpudWxsO3N3aXRjaChlKXtjYXNlInBhc3RlIjpkZWZhdWx0OnJldHVybiBudWxsO2Nhc2Uia2V5cHJlc3MiOmlmKCEodC5jdHJsS2V5fHx0LmFsdEtleXx8dC5tZXRhS2V5KXx8dC5jdHJsS2V5JiZ0LmFsdEtleSl7aWYodC5jaGFyJiYxPHQuY2hhci5sZW5ndGgpcmV0dXJuIHQuY2hhcjtpZih0LndoaWNoKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHQud2hpY2gpfXJldHVybiBudWxsO2Nhc2UiY29tcG9zaXRpb25lbmQiOnJldHVybiBuZyYmImtvIiE9PXQubG9jYWxlP251bGw6dC5kYXRhfX0oZSxuKSkmJjA8KHc9czUociwib25CZWZvcmVJbnB1dCIpKS5sZW5ndGgmJihiPW5ldyBuZSgib25CZWZvcmVJbnB1dCIsImJlZm9yZWlucHV0IixudWxsLG4sbCksby5wdXNoKHtldmVudDpiLGxpc3RlbmVyczp3fSksYi5kYXRhPXYpO3ZhciBrPWU7aWYoInN1Ym1pdCI9PT1rJiZyJiZyLnN0YXRlTm9kZT09PWwpe3ZhciBTPXNRKChsW2VxXXx8bnVsbCkuYWN0aW9uKSx4PW4uc3VibWl0dGVyO3gmJm51bGwhPT0oaz0oaz14W2VxXXx8bnVsbCk/c1Eoay5mb3JtQWN0aW9uKTp4LmdldEF0dHJpYnV0ZSgiZm9ybUFjdGlvbiIpKSYmKFM9ayx4PW51bGwpO3ZhciBfPW5ldyB0MSgiYWN0aW9uIiwiYWN0aW9uIixudWxsLG4sbCk7by5wdXNoKHtldmVudDpfLGxpc3RlbmVyczpbe2luc3RhbmNlOm51bGwsbGlzdGVuZXI6ZnVuY3Rpb24oKXtpZihuLmRlZmF1bHRQcmV2ZW50ZWQpe2lmKDAhPT1zSSl7dmFyIGU9eD9zVyhsLHgpOm5ldyBGb3JtRGF0YShsKTtvdShyLHtwZW5kaW5nOiEwLGRhdGE6ZSxtZXRob2Q6bC5tZXRob2QsYWN0aW9uOlN9LG51bGwsZSl9fWVsc2UiZnVuY3Rpb24iPT10eXBlb2YgUyYmKF8ucHJldmVudERlZmF1bHQoKSxvdShyLHtwZW5kaW5nOiEwLGRhdGE6ZT14P3NXKGwseCk6bmV3IEZvcm1EYXRhKGwpLG1ldGhvZDpsLm1ldGhvZCxhY3Rpb246U30sUyxlKSl9LGN1cnJlbnRUYXJnZXQ6bH1dfSl9fXNYKG8sdCl9KX1mdW5jdGlvbiBzNChlLHQsbil7cmV0dXJue2luc3RhbmNlOmUsbGlzdGVuZXI6dCxjdXJyZW50VGFyZ2V0Om59fWZ1bmN0aW9uIHM1KGUsdCl7Zm9yKHZhciBuPXQrIkNhcHR1cmUiLHI9W107bnVsbCE9PWU7KXt2YXIgbD1lLGE9bC5zdGF0ZU5vZGU7aWYoNSE9PShsPWwudGFnKSYmMjYhPT1sJiYyNyE9PWx8fG51bGw9PT1hfHwobnVsbCE9KGw9dFIoZSxuKSkmJnIudW5zaGlmdChzNChlLGwsYSkpLG51bGwhPShsPXRSKGUsdCkpJiZyLnB1c2goczQoZSxsLGEpKSksMz09PWUudGFnKXJldHVybiByO2U9ZS5yZXR1cm59cmV0dXJuW119ZnVuY3Rpb24gczgoZSl7aWYobnVsbD09PWUpcmV0dXJuIG51bGw7ZG8gZT1lLnJldHVybjt3aGlsZShlJiY1IT09ZS50YWcmJjI3IT09ZS50YWcpcmV0dXJuIGV8fG51bGx9ZnVuY3Rpb24gczYoZSx0LG4scixsKXtmb3IodmFyIGE9dC5fcmVhY3ROYW1lLG89W107bnVsbCE9PW4mJm4hPT1yOyl7dmFyIGk9bix1PWkuYWx0ZXJuYXRlLHM9aS5zdGF0ZU5vZGU7aWYoaT1pLnRhZyxudWxsIT09dSYmdT09PXIpYnJlYWs7NSE9PWkmJjI2IT09aSYmMjchPT1pfHxudWxsPT09c3x8KHU9cyxsP251bGwhPShzPXRSKG4sYSkpJiZvLnVuc2hpZnQoczQobixzLHUpKTpsfHxudWxsIT0ocz10UihuLGEpKSYmby5wdXNoKHM0KG4scyx1KSkpLG49bi5yZXR1cm59MCE9PW8ubGVuZ3RoJiZlLnB1c2goe2V2ZW50OnQsbGlzdGVuZXJzOm99KX12YXIgczk9L1xyXG4/L2csczc9L1x1MDAwMHxcdUZGRkQvZztmdW5jdGlvbiBjZShlKXtyZXR1cm4oInN0cmluZyI9PXR5cGVvZiBlP2U6IiIrZSkucmVwbGFjZShzOSwiXG4iKS5yZXBsYWNlKHM3LCIiKX1mdW5jdGlvbiBjdChlLHQpe3JldHVybiB0PWNlKHQpLGNlKGUpPT09dH1mdW5jdGlvbiBjbihlLHQsbixyLGwsYSl7c3dpdGNoKG4pe2Nhc2UiY2hpbGRyZW4iOmlmKCJzdHJpbmciPT10eXBlb2YgcikiYm9keSI9PT10fHwidGV4dGFyZWEiPT09dCYmIiI9PT1yfHx0ayhlLHIpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiByJiYiYmlnaW50IiE9dHlwZW9mIHIpcmV0dXJuOyJib2R5IiE9PXQmJnRrKGUsIiIrcil9YnJlYWs7Y2FzZSJjbGFzc05hbWUiOnRvKGUsImNsYXNzIixyKTticmVhaztjYXNlInRhYkluZGV4Ijp0byhlLCJ0YWJpbmRleCIscik7YnJlYWs7Y2FzZSJkaXIiOmNhc2Uicm9sZSI6Y2FzZSJ2aWV3Qm94IjpjYXNlIndpZHRoIjpjYXNlImhlaWdodCI6dG8oZSxuLHIpO2JyZWFrO2Nhc2Uic3R5bGUiOnR4KGUscixhKTtyZXR1cm47Y2FzZSJkYXRhIjppZigib2JqZWN0IiE9PXQpe3RvKGUsImRhdGEiLHIpO2JyZWFrfWNhc2Uic3JjIjpjYXNlImhyZWYiOmlmKCIiPT09ciYmKCJhIiE9PXR8fCJocmVmIiE9PW4pfHxudWxsPT1yfHwiZnVuY3Rpb24iPT10eXBlb2Ygcnx8InN5bWJvbCI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByKXtlLnJlbW92ZUF0dHJpYnV0ZShuKTticmVha31yPXRDKCIiK3IpLGUuc2V0QXR0cmlidXRlKG4scik7YnJlYWs7Y2FzZSJhY3Rpb24iOmNhc2UiZm9ybUFjdGlvbiI6aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe2Uuc2V0QXR0cmlidXRlKG4sImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdBIFJlYWN0IGZvcm0gd2FzIHVuZXhwZWN0ZWRseSBzdWJtaXR0ZWQuIElmIHlvdSBjYWxsZWQgZm9ybS5zdWJtaXQoKSBtYW51YWxseSwgY29uc2lkZXIgdXNpbmcgZm9ybS5yZXF1ZXN0U3VibWl0KCkgaW5zdGVhZC4gSWYgeW91XFwncmUgdHJ5aW5nIHRvIHVzZSBldmVudC5zdG9wUHJvcGFnYXRpb24oKSBpbiBhIHN1Ym1pdCBldmVudCBoYW5kbGVyLCBjb25zaWRlciBhbHNvIGNhbGxpbmcgZXZlbnQucHJldmVudERlZmF1bHQoKS4nKSIpO2JyZWFrfWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhJiYoImZvcm1BY3Rpb24iPT09bj8oImlucHV0IiE9PXQmJmNuKGUsdCwibmFtZSIsbC5uYW1lLGwsbnVsbCksY24oZSx0LCJmb3JtRW5jVHlwZSIsbC5mb3JtRW5jVHlwZSxsLG51bGwpLGNuKGUsdCwiZm9ybU1ldGhvZCIsbC5mb3JtTWV0aG9kLGwsbnVsbCksY24oZSx0LCJmb3JtVGFyZ2V0IixsLmZvcm1UYXJnZXQsbCxudWxsKSk6KGNuKGUsdCwiZW5jVHlwZSIsbC5lbmNUeXBlLGwsbnVsbCksY24oZSx0LCJtZXRob2QiLGwubWV0aG9kLGwsbnVsbCksY24oZSx0LCJ0YXJnZXQiLGwudGFyZ2V0LGwsbnVsbCkpKSxudWxsPT1yfHwic3ltYm9sIj09dHlwZW9mIHJ8fCJib29sZWFuIj09dHlwZW9mIHIpe2UucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrfXI9dEMoIiIrciksZS5zZXRBdHRyaWJ1dGUobixyKTticmVhaztjYXNlIm9uQ2xpY2siOm51bGwhPXImJihlLm9uY2xpY2s9dFQpO3JldHVybjtjYXNlIm9uU2Nyb2xsIjpudWxsIT1yJiZzWigic2Nyb2xsIixlKTtyZXR1cm47Y2FzZSJvblNjcm9sbEVuZCI6bnVsbCE9ciYmc1ooInNjcm9sbGVuZCIsZSk7cmV0dXJuO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPXIpe2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8ISgiX19odG1sImluIHIpKXRocm93IEVycm9yKHUoNjEpKTtpZihudWxsIT0obj1yLl9faHRtbCkpe2lmKG51bGwhPWwuY2hpbGRyZW4pdGhyb3cgRXJyb3IodSg2MCkpO2UuaW5uZXJIVE1MPW59fWJyZWFrO2Nhc2UibXVsdGlwbGUiOmUubXVsdGlwbGU9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2YgcjticmVhaztjYXNlIm11dGVkIjplLm11dGVkPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByJiYic3ltYm9sIiE9dHlwZW9mIHI7YnJlYWs7Y2FzZSJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmciOmNhc2Uic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nIjpjYXNlImRlZmF1bHRWYWx1ZSI6Y2FzZSJkZWZhdWx0Q2hlY2tlZCI6Y2FzZSJpbm5lckhUTUwiOmNhc2UicmVmIjpjYXNlImF1dG9Gb2N1cyI6YnJlYWs7Y2FzZSJ4bGlua0hyZWYiOmlmKG51bGw9PXJ8fCJmdW5jdGlvbiI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByfHwic3ltYm9sIj09dHlwZW9mIHIpe2UucmVtb3ZlQXR0cmlidXRlKCJ4bGluazpocmVmIik7YnJlYWt9bj10QygiIityKSxlLnNldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6aHJlZiIsbik7YnJlYWs7Y2FzZSJjb250ZW50RWRpdGFibGUiOmNhc2Uic3BlbGxDaGVjayI6Y2FzZSJkcmFnZ2FibGUiOmNhc2UidmFsdWUiOmNhc2UiYXV0b1JldmVyc2UiOmNhc2UiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCI6Y2FzZSJmb2N1c2FibGUiOmNhc2UicHJlc2VydmVBbHBoYSI6bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZShuLCIiK3IpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2UiaW5lcnQiOmNhc2UiYWxsb3dGdWxsU2NyZWVuIjpjYXNlImFzeW5jIjpjYXNlImF1dG9QbGF5IjpjYXNlImNvbnRyb2xzIjpjYXNlImRlZmF1bHQiOmNhc2UiZGVmZXIiOmNhc2UiZGlzYWJsZWQiOmNhc2UiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUiOmNhc2UiZGlzYWJsZVJlbW90ZVBsYXliYWNrIjpjYXNlImZvcm1Ob1ZhbGlkYXRlIjpjYXNlImhpZGRlbiI6Y2FzZSJsb29wIjpjYXNlIm5vTW9kdWxlIjpjYXNlIm5vVmFsaWRhdGUiOmNhc2Uib3BlbiI6Y2FzZSJwbGF5c0lubGluZSI6Y2FzZSJyZWFkT25seSI6Y2FzZSJyZXF1aXJlZCI6Y2FzZSJyZXZlcnNlZCI6Y2FzZSJzY29wZWQiOmNhc2Uic2VhbWxlc3MiOmNhc2UiaXRlbVNjb3BlIjpyJiYiZnVuY3Rpb24iIT10eXBlb2YgciYmInN5bWJvbCIhPXR5cGVvZiByP2Uuc2V0QXR0cmlidXRlKG4sIiIpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2UiY2FwdHVyZSI6Y2FzZSJkb3dubG9hZCI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKG4sIiIpOiExIT09ciYmbnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2Ygcj9lLnNldEF0dHJpYnV0ZShuLHIpOmUucmVtb3ZlQXR0cmlidXRlKG4pO2JyZWFrO2Nhc2UiY29scyI6Y2FzZSJyb3dzIjpjYXNlInNpemUiOmNhc2Uic3BhbiI6bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHImJiJzeW1ib2wiIT10eXBlb2YgciYmIWlzTmFOKHIpJiYxPD1yP2Uuc2V0QXR0cmlidXRlKG4scik6ZS5yZW1vdmVBdHRyaWJ1dGUobik7YnJlYWs7Y2FzZSJyb3dTcGFuIjpjYXNlInN0YXJ0IjpudWxsPT1yfHwiZnVuY3Rpb24iPT10eXBlb2Ygcnx8InN5bWJvbCI9PXR5cGVvZiByfHxpc05hTihyKT9lLnJlbW92ZUF0dHJpYnV0ZShuKTplLnNldEF0dHJpYnV0ZShuLHIpO2JyZWFrO2Nhc2UicG9wb3ZlciI6c1ooImJlZm9yZXRvZ2dsZSIsZSksc1ooInRvZ2dsZSIsZSksdGEoZSwicG9wb3ZlciIscik7YnJlYWs7Y2FzZSJ4bGlua0FjdHVhdGUiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazphY3R1YXRlIixyKTticmVhaztjYXNlInhsaW5rQXJjcm9sZSI6dGkoZSwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhsaW5rOmFyY3JvbGUiLHIpO2JyZWFrO2Nhc2UieGxpbmtSb2xlIjp0aShlLCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiwieGxpbms6cm9sZSIscik7YnJlYWs7Y2FzZSJ4bGlua1Nob3ciOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazpzaG93IixyKTticmVhaztjYXNlInhsaW5rVGl0bGUiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazp0aXRsZSIscik7YnJlYWs7Y2FzZSJ4bGlua1R5cGUiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLCJ4bGluazp0eXBlIixyKTticmVhaztjYXNlInhtbEJhc2UiOnRpKGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpiYXNlIixyKTticmVhaztjYXNlInhtbExhbmciOnRpKGUsImh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIsInhtbDpsYW5nIixyKTticmVhaztjYXNlInhtbFNwYWNlIjp0aShlLCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiLCJ4bWw6c3BhY2UiLHIpO2JyZWFrO2Nhc2UiaXMiOnRhKGUsImlzIixyKTticmVhaztjYXNlImlubmVyVGV4dCI6Y2FzZSJ0ZXh0Q29udGVudCI6cmV0dXJuO2RlZmF1bHQ6aWYoMjxuLmxlbmd0aCYmKCJvIj09PW5bMF18fCJPIj09PW5bMF0pJiYoIm4iPT09blsxXXx8Ik4iPT09blsxXSkpcmV0dXJuO3RhKGUsbj10Ti5nZXQobil8fG4scil9dHI9ITB9ZnVuY3Rpb24gY3IoZSx0LG4scixsLGEpe3N3aXRjaChuKXtjYXNlInN0eWxlIjp0eChlLHIsYSk7cmV0dXJuO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPXIpe2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8ISgiX19odG1sImluIHIpKXRocm93IEVycm9yKHUoNjEpKTtpZihudWxsIT0obj1yLl9faHRtbCkpe2lmKG51bGwhPWwuY2hpbGRyZW4pdGhyb3cgRXJyb3IodSg2MCkpO2UuaW5uZXJIVE1MPW59fWJyZWFrO2Nhc2UiY2hpbGRyZW4iOmlmKCJzdHJpbmciPT10eXBlb2Ygcil0ayhlLHIpO2Vsc2V7aWYoIm51bWJlciIhPXR5cGVvZiByJiYiYmlnaW50IiE9dHlwZW9mIHIpcmV0dXJuO3RrKGUsIiIrcil9YnJlYWs7Y2FzZSJvblNjcm9sbCI6bnVsbCE9ciYmc1ooInNjcm9sbCIsZSk7cmV0dXJuO2Nhc2Uib25TY3JvbGxFbmQiOm51bGwhPXImJnNaKCJzY3JvbGxlbmQiLGUpO3JldHVybjtjYXNlIm9uQ2xpY2siOm51bGwhPXImJihlLm9uY2xpY2s9dFQpO3JldHVybjtjYXNlInN1cHByZXNzQ29udGVudEVkaXRhYmxlV2FybmluZyI6Y2FzZSJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciOmNhc2UiaW5uZXJIVE1MIjpjYXNlInJlZiI6Y2FzZSJpbm5lclRleHQiOmNhc2UidGV4dENvbnRlbnQiOnJldHVybjtkZWZhdWx0OmlmKCFlNi5oYXNPd25Qcm9wZXJ0eShuKSllOntpZigibyI9PT1uWzBdJiYibiI9PT1uWzFdJiYobD1uLmVuZHNXaXRoKCJDYXB0dXJlIiksdD1uLnNsaWNlKDIsbD9uLmxlbmd0aC03OnZvaWQgMCksImZ1bmN0aW9uIj09dHlwZW9mKGE9bnVsbCE9KGE9ZVtlcV18fG51bGwpP2Fbbl06bnVsbCkmJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGEsbCksImZ1bmN0aW9uIj09dHlwZW9mIHIpKXsiZnVuY3Rpb24iIT10eXBlb2YgYSYmbnVsbCE9PWEmJihuIGluIGU/ZVtuXT1udWxsOmUuaGFzQXR0cmlidXRlKG4pJiZlLnJlbW92ZUF0dHJpYnV0ZShuKSksZS5hZGRFdmVudExpc3RlbmVyKHQscixsKTticmVhayBlfXRyPSEwLG4gaW4gZT9lW25dPXI6ITA9PT1yP2Uuc2V0QXR0cmlidXRlKG4sIiIpOnRhKGUsbixyKX1yZXR1cm59dHI9ITB9ZnVuY3Rpb24gY2woZSx0LG4pe3N3aXRjaCh0KXtjYXNlImRpdiI6Y2FzZSJzcGFuIjpjYXNlInN2ZyI6Y2FzZSJwYXRoIjpjYXNlImEiOmNhc2UiZyI6Y2FzZSJwIjpjYXNlImxpIjpicmVhaztjYXNlImltZyI6c1ooImVycm9yIixlKSxzWigibG9hZCIsZSk7dmFyIHIsbD0hMSxhPSExO2ZvcihyIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSl7dmFyIG89bltyXTtpZihudWxsIT1vKXN3aXRjaChyKXtjYXNlInNyYyI6bD0hMDticmVhaztjYXNlInNyY1NldCI6YT0hMDticmVhaztjYXNlImNoaWxkcmVuIjpjYXNlImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIjp0aHJvdyBFcnJvcih1KDEzNyx0KSk7ZGVmYXVsdDpjbihlLHQscixvLG4sbnVsbCl9fWEmJmNuKGUsdCwic3JjU2V0IixuLnNyY1NldCxuLG51bGwpLGwmJmNuKGUsdCwic3JjIixuLnNyYyxuLG51bGwpO3JldHVybjtjYXNlImlucHV0IjpzWigiaW52YWxpZCIsZSk7dmFyIGk9cj1vPWE9bnVsbCxzPW51bGwsYz1udWxsO2ZvcihsIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShsKSl7dmFyIGY9bltsXTtpZihudWxsIT1mKXN3aXRjaChsKXtjYXNlIm5hbWUiOmE9ZjticmVhaztjYXNlInR5cGUiOm89ZjticmVhaztjYXNlImNoZWNrZWQiOnM9ZjticmVhaztjYXNlImRlZmF1bHRDaGVja2VkIjpjPWY7YnJlYWs7Y2FzZSJ2YWx1ZSI6cj1mO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjppPWY7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6Y2FzZSJkYW5nZXJvdXNseVNldElubmVySFRNTCI6aWYobnVsbCE9Zil0aHJvdyBFcnJvcih1KDEzNyx0KSk7YnJlYWs7ZGVmYXVsdDpjbihlLHQsbCxmLG4sbnVsbCl9fXRnKGUscixpLHMsYyxvLGEsITEpO3JldHVybjtjYXNlInNlbGVjdCI6Zm9yKGEgaW4gc1ooImludmFsaWQiLGUpLGw9bz1yPW51bGwsbilpZihuLmhhc093blByb3BlcnR5KGEpJiZudWxsIT0oaT1uW2FdKSlzd2l0Y2goYSl7Y2FzZSJ2YWx1ZSI6cj1pO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjpvPWk7YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bD1pO2RlZmF1bHQ6Y24oZSx0LGEsaSxuLG51bGwpfXQ9cixuPW8sZS5tdWx0aXBsZT0hIWwsbnVsbCE9dD90eShlLCEhbCx0LCExKTpudWxsIT1uJiZ0eShlLCEhbCxuLCEwKTtyZXR1cm47Y2FzZSJ0ZXh0YXJlYSI6Zm9yKG8gaW4gc1ooImludmFsaWQiLGUpLHI9YT1sPW51bGwsbilpZihuLmhhc093blByb3BlcnR5KG8pJiZudWxsIT0oaT1uW29dKSlzd2l0Y2gobyl7Y2FzZSJ2YWx1ZSI6bD1pO2JyZWFrO2Nhc2UiZGVmYXVsdFZhbHVlIjphPWk7YnJlYWs7Y2FzZSJjaGlsZHJlbiI6cj1pO2JyZWFrO2Nhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOmlmKG51bGwhPWkpdGhyb3cgRXJyb3IodSg5MSkpO2JyZWFrO2RlZmF1bHQ6Y24oZSx0LG8saSxuLG51bGwpfXR3KGUsbCxhLHIpO3JldHVybjtjYXNlIm9wdGlvbiI6Zm9yKHMgaW4gbiluLmhhc093blByb3BlcnR5KHMpJiZudWxsIT0obD1uW3NdKSYmKCJzZWxlY3RlZCI9PT1zP2Uuc2VsZWN0ZWQ9bCYmImZ1bmN0aW9uIiE9dHlwZW9mIGwmJiJzeW1ib2wiIT10eXBlb2YgbDpjbihlLHQscyxsLG4sbnVsbCkpO3JldHVybjtjYXNlImRpYWxvZyI6c1ooImJlZm9yZXRvZ2dsZSIsZSksc1ooInRvZ2dsZSIsZSksc1ooImNhbmNlbCIsZSksc1ooImNsb3NlIixlKTticmVhaztjYXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOnNaKCJsb2FkIixlKTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjpmb3IobD0wO2w8c1kubGVuZ3RoO2wrKylzWihzWVtsXSxlKTticmVhaztjYXNlImltYWdlIjpzWigiZXJyb3IiLGUpLHNaKCJsb2FkIixlKTticmVhaztjYXNlImRldGFpbHMiOnNaKCJ0b2dnbGUiLGUpO2JyZWFrO2Nhc2UiZW1iZWQiOmNhc2Uic291cmNlIjpjYXNlImxpbmsiOnNaKCJlcnJvciIsZSksc1ooImxvYWQiLGUpO2Nhc2UiYXJlYSI6Y2FzZSJiYXNlIjpjYXNlImJyIjpjYXNlImNvbCI6Y2FzZSJociI6Y2FzZSJrZXlnZW4iOmNhc2UibWV0YSI6Y2FzZSJwYXJhbSI6Y2FzZSJ0cmFjayI6Y2FzZSJ3YnIiOmNhc2UibWVudWl0ZW0iOmZvcihjIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShjKSYmbnVsbCE9KGw9bltjXSkpc3dpdGNoKGMpe2Nhc2UiY2hpbGRyZW4iOmNhc2UiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiOnRocm93IEVycm9yKHUoMTM3LHQpKTtkZWZhdWx0OmNuKGUsdCxjLGwsbixudWxsKX1yZXR1cm47ZGVmYXVsdDppZih0Xyh0KSl7Zm9yKGYgaW4gbiluLmhhc093blByb3BlcnR5KGYpJiZ2b2lkIDAhPT0obD1uW2ZdKSYmY3IoZSx0LGYsbCxuLHZvaWQgMCk7cmV0dXJufX1mb3IoaSBpbiBuKW4uaGFzT3duUHJvcGVydHkoaSkmJm51bGwhPShsPW5baV0pJiZjbihlLHQsaSxsLG4sbnVsbCl9ZnVuY3Rpb24gY2EoZSl7c3dpdGNoKGUpe2Nhc2UiY3NzIjpjYXNlInNjcmlwdCI6Y2FzZSJmb250IjpjYXNlImltZyI6Y2FzZSJpbWFnZSI6Y2FzZSJpbnB1dCI6Y2FzZSJsaW5rIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX12YXIgY289bnVsbCxjaT1udWxsO2Z1bmN0aW9uIGN1KGUpe3JldHVybiA5PT09ZS5ub2RlVHlwZT9lOmUub3duZXJEb2N1bWVudH1mdW5jdGlvbiBjcyhlKXtzd2l0Y2goZSl7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI6cmV0dXJuIDE7Y2FzZSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfX1mdW5jdGlvbiBjYyhlLHQpe2lmKDA9PT1lKXN3aXRjaCh0KXtjYXNlInN2ZyI6cmV0dXJuIDE7Y2FzZSJtYXRoIjpyZXR1cm4gMjtkZWZhdWx0OnJldHVybiAwfXJldHVybiAxPT09ZSYmImZvcmVpZ25PYmplY3QiPT09dD8wOmV9ZnVuY3Rpb24gY2YoZSx0KXtyZXR1cm4idGV4dGFyZWEiPT09ZXx8Im5vc2NyaXB0Ij09PWV8fCJzdHJpbmciPT10eXBlb2YgdC5jaGlsZHJlbnx8Im51bWJlciI9PXR5cGVvZiB0LmNoaWxkcmVufHwiYmlnaW50Ij09dHlwZW9mIHQuY2hpbGRyZW58fCJvYmplY3QiPT10eXBlb2YgdC5kYW5nZXJvdXNseVNldElubmVySFRNTCYmbnVsbCE9PXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwmJm51bGwhPXQuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sfXZhciBjZD1udWxsLGNwPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dm9pZCAwLGNtPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhclRpbWVvdXQ/Y2xlYXJUaW1lb3V0OnZvaWQgMCxjaD0iZnVuY3Rpb24iPT10eXBlb2YgUHJvbWlzZT9Qcm9taXNlOnZvaWQgMCxjZz0iZnVuY3Rpb24iPT10eXBlb2YgcXVldWVNaWNyb3Rhc2s/cXVldWVNaWNyb3Rhc2s6dm9pZCAwIT09Y2g/ZnVuY3Rpb24oZSl7cmV0dXJuIGNoLnJlc29sdmUobnVsbCkudGhlbihlKS5jYXRjaChjdil9OmNwO2Z1bmN0aW9uIGN2KGUpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9ZnVuY3Rpb24gY3koZSl7cmV0dXJuImhlYWQiPT09ZX1mdW5jdGlvbiBjYihlLHQpe3ZhciBuPXQscj0wO2Rve3ZhciBsPW4ubmV4dFNpYmxpbmc7aWYoZS5yZW1vdmVDaGlsZChuKSxsJiY4PT09bC5ub2RlVHlwZSlpZigiLyQiPT09KG49bC5kYXRhKXx8Ii8mIj09PW4pe2lmKDA9PT1yKXtlLnJlbW92ZUNoaWxkKGwpLGZHKHQpO3JldHVybn1yLS19ZWxzZSBpZigiJCI9PT1ufHwiJD8iPT09bnx8IiR+Ij09PW58fCIkISI9PT1ufHwiJiI9PT1uKXIrKztlbHNlIGlmKCJodG1sIj09PW4pY0coZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7ZWxzZSBpZigiaGVhZCI9PT1uKXtjRyhuPWUub3duZXJEb2N1bWVudC5oZWFkKTtmb3IodmFyIGE9bi5maXJzdENoaWxkO2E7KXt2YXIgbz1hLm5leHRTaWJsaW5nLGk9YS5ub2RlTmFtZTthW2VKXXx8IlNDUklQVCI9PT1pfHwiU1RZTEUiPT09aXx8IkxJTksiPT09aSYmInN0eWxlc2hlZXQiPT09YS5yZWwudG9Mb3dlckNhc2UoKXx8bi5yZW1vdmVDaGlsZChhKSxhPW99fWVsc2UiYm9keSI9PT1uJiZjRyhlLm93bmVyRG9jdW1lbnQuYm9keSk7bj1sfXdoaWxlKG4pZkcodCl9ZnVuY3Rpb24gY3coZSx0KXt2YXIgbj1lO2U9MDtkb3t2YXIgcj1uLm5leHRTaWJsaW5nO2lmKDE9PT1uLm5vZGVUeXBlP3Q/KG4uX3N0YXNoZWREaXNwbGF5PW4uc3R5bGUuZGlzcGxheSxuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKToobi5zdHlsZS5kaXNwbGF5PW4uX3N0YXNoZWREaXNwbGF5fHwiIiwiIj09PW4uZ2V0QXR0cmlidXRlKCJzdHlsZSIpJiZuLnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSk6Mz09PW4ubm9kZVR5cGUmJih0PyhuLl9zdGFzaGVkVGV4dD1uLm5vZGVWYWx1ZSxuLm5vZGVWYWx1ZT0iIik6bi5ub2RlVmFsdWU9bi5fc3Rhc2hlZFRleHR8fCIiKSxyJiY4PT09ci5ub2RlVHlwZSlpZigiLyQiPT09KG49ci5kYXRhKSlpZigwPT09ZSlicmVhaztlbHNlIGUtLTtlbHNlIiQiIT09biYmIiQ/IiE9PW4mJiIkfiIhPT1uJiYiJCEiIT09bnx8ZSsrO249cn13aGlsZShuKX1mdW5jdGlvbiBjayhlLHQsbil7aWYodD1DU1MuZXNjYXBlKHQpIT09dD8ici0iK2J0b2EodCkucmVwbGFjZSgvPS9nLCIiKTp0LGUuc3R5bGUudmlld1RyYW5zaXRpb25OYW1lPXQsbnVsbCE9biYmKGUuc3R5bGUudmlld1RyYW5zaXRpb25DbGFzcz1uKSwiaW5saW5lIj09PShuPWdldENvbXB1dGVkU3R5bGUoZSkpLmRpc3BsYXkpe2lmKDE9PT0odD1lLmdldENsaWVudFJlY3RzKCkpLmxlbmd0aCl2YXIgcj0xO2Vsc2UgZm9yKHZhciBsPXI9MDtsPHQubGVuZ3RoO2wrKyl7dmFyIGE9dFtsXTswPGEud2lkdGgmJjA8YS5oZWlnaHQmJnIrK30xPT09ciYmKChlPWUuc3R5bGUpLmRpc3BsYXk9MT09PXQubGVuZ3RoPyJpbmxpbmUtYmxvY2siOiJibG9jayIsZS5tYXJnaW5Ub3A9Ii0iK24ucGFkZGluZ1RvcCxlLm1hcmdpbkJvdHRvbT0iLSIrbi5wYWRkaW5nQm90dG9tKX19ZnVuY3Rpb24gY1MoZSx0KXtlPWUuc3R5bGU7dmFyIG49bnVsbCE9KHQ9dC5zdHlsZSk/dC5oYXNPd25Qcm9wZXJ0eSgidmlld1RyYW5zaXRpb25OYW1lIik/dC52aWV3VHJhbnNpdGlvbk5hbWU6dC5oYXNPd25Qcm9wZXJ0eSgidmlldy10cmFuc2l0aW9uLW5hbWUiKT90WyJ2aWV3LXRyYW5zaXRpb24tbmFtZSJdOm51bGw6bnVsbDtlLnZpZXdUcmFuc2l0aW9uTmFtZT1udWxsPT1ufHwiYm9vbGVhbiI9PXR5cGVvZiBuPyIiOigiIituKS50cmltKCksbj1udWxsIT10P3QuaGFzT3duUHJvcGVydHkoInZpZXdUcmFuc2l0aW9uQ2xhc3MiKT90LnZpZXdUcmFuc2l0aW9uQ2xhc3M6dC5oYXNPd25Qcm9wZXJ0eSgidmlldy10cmFuc2l0aW9uLWNsYXNzIik/dFsidmlldy10cmFuc2l0aW9uLWNsYXNzIl06bnVsbDpudWxsLGUudmlld1RyYW5zaXRpb25DbGFzcz1udWxsPT1ufHwiYm9vbGVhbiI9PXR5cGVvZiBuPyIiOigiIituKS50cmltKCksImlubGluZS1ibG9jayI9PT1lLmRpc3BsYXkmJihudWxsPT10P2UuZGlzcGxheT1lLm1hcmdpbj0iIjoobj10LmRpc3BsYXksZS5kaXNwbGF5PW51bGw9PW58fCJib29sZWFuIj09dHlwZW9mIG4/IiI6bixudWxsIT0obj10Lm1hcmdpbik/ZS5tYXJnaW49bjoobj10Lmhhc093blByb3BlcnR5KCJtYXJnaW5Ub3AiKT90Lm1hcmdpblRvcDp0WyJtYXJnaW4tdG9wIl0sZS5tYXJnaW5Ub3A9bnVsbD09bnx8ImJvb2xlYW4iPT10eXBlb2Ygbj8iIjpuLHQ9dC5oYXNPd25Qcm9wZXJ0eSgibWFyZ2luQm90dG9tIik/dC5tYXJnaW5Cb3R0b206dFsibWFyZ2luLWJvdHRvbSJdLGUubWFyZ2luQm90dG9tPW51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHQ/IiI6dCkpKX1mdW5jdGlvbiBjRShlLHQsbil7cmV0dXJuIG49bi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LHtyZWN0OmUsYWJzOiJhYnNvbHV0ZSI9PT10LnBvc2l0aW9ufHwiZml4ZWQiPT09dC5wb3NpdGlvbixjbGlwOiJub25lIiE9PXQuY2xpcFBhdGh8fCJ2aXNpYmxlIiE9PXQub3ZlcmZsb3d8fCJub25lIiE9PXQuZmlsdGVyfHwibm9uZSIhPT10Lm1hc2t8fCJub25lIiE9PXQubWFza3x8IjBweCIhPT10LmJvcmRlclJhZGl1cyx2aWV3OjA8PWUuYm90dG9tJiYwPD1lLnJpZ2h0JiZlLnRvcDw9bi5pbm5lckhlaWdodCYmZS5sZWZ0PD1uLmlubmVyV2lkdGh9fWZ1bmN0aW9uIGN4KGUpe3JldHVybiBjRShlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGdldENvbXB1dGVkU3R5bGUoZSksZSl9ZnVuY3Rpb24gY18oZSl7dmFyIHQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gY0UodD1uZXcgRE9NUmVjdCh0LngrMmU0LHQueSsyZTQsdC53aWR0aCx0LmhlaWdodCksZ2V0Q29tcHV0ZWRTdHlsZShlKSxlKX1mdW5jdGlvbiBjTihlKXt0aGlzLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUpfWZ1bmN0aW9uIGNQKGUsdCl7dGhpcy5fc2NvcGU9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHRoaXMuX3NlbGVjdG9yPSI6OnZpZXctdHJhbnNpdGlvbi0iK2UrIigiK3QrIikifWZ1bmN0aW9uIGNDKGUpe3JldHVybntuYW1lOmUsZ3JvdXA6bmV3IGNQKCJncm91cCIsZSksaW1hZ2VQYWlyOm5ldyBjUCgiaW1hZ2UtcGFpciIsZSksb2xkOm5ldyBjUCgib2xkIixlKSxuZXc6bmV3IGNQKCJuZXciLGUpfX1mdW5jdGlvbiBjVChlKXt0aGlzLl9mcmFnbWVudEZpYmVyPWUsdGhpcy5fb2JzZXJ2ZXJzPXRoaXMuX2V2ZW50TGlzdGVuZXJzPW51bGx9ZnVuY3Rpb24gY3ooZSx0LG4scil7cmV0dXJuIGcoZSkuYWRkRXZlbnRMaXN0ZW5lcih0LG4sciksITF9ZnVuY3Rpb24gY08oZSx0LG4scil7cmV0dXJuIGcoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4sciksITF9ZnVuY3Rpb24gY0woZSl7cmV0dXJuIG51bGw9PWU/IjAiOiJib29sZWFuIj09dHlwZW9mIGU/ImM9IisoZT8iMSI6IjAiKToiYz0iKyhlLmNhcHR1cmU/IjEiOiIwIikrIiZvPSIrKGUub25jZT8iMSI6IjAiKSsiJnA9IisoZS5wYXNzaXZlPyIxIjoiMCIpfWZ1bmN0aW9uIGNNKGUsdCxuLHIpe2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYT1lW2xdO2lmKGEudHlwZT09PXQmJmEubGlzdGVuZXI9PT1uJiZjTChhLm9wdGlvbnNPclVzZUNhcHR1cmUpPT09Y0wocikpcmV0dXJuIGx9cmV0dXJuIC0xfWZ1bmN0aW9uIGNEKGUsdCl7dmFyIG49ZT1nKGUpLHI9dDtmdW5jdGlvbiBsKCl7YT0hMH12YXIgYT0hMTt0cnl7bi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsbCksKG4uZm9jdXN8fEhUTUxFbGVtZW50LnByb3RvdHlwZS5mb2N1cykuY2FsbChuLHIpfWZpbmFsbHl7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJmb2N1cyIsbCl9cmV0dXJuIGF9ZnVuY3Rpb24gY0YoZSx0KXtyZXR1cm4gdC5wdXNoKGUpLCExfWZ1bmN0aW9uIGNJKGUpe3JldHVybihlPWcoZSkpPT09ZS5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihlLmJsdXIoKSwhMCl9ZnVuY3Rpb24gY1IoZSx0KXtyZXR1cm4gZT1nKGUpLHQub2JzZXJ2ZShlKSwhMX1mdW5jdGlvbiBjQShlLHQpe3JldHVybiBlPWcoZSksdC51bm9ic2VydmUoZSksITF9ZnVuY3Rpb24gY2ooZSx0KXtyZXR1cm4gZT1nKGUpLHQucHVzaC5hcHBseSh0LGUuZ2V0Q2xpZW50UmVjdHMoKSksITF9ZnVuY3Rpb24gY1UoZSx0KXt2YXIgbj10Ll9ldmVudExpc3RlbmVycztpZihudWxsIT09bilmb3IodmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXTtlLmFkZEV2ZW50TGlzdGVuZXIobC50eXBlLGwubGlzdGVuZXIsbC5vcHRpb25zT3JVc2VDYXB0dXJlKX1udWxsIT09dC5fb2JzZXJ2ZXJzJiZ0Ll9vYnNlcnZlcnMuZm9yRWFjaChmdW5jdGlvbih0KXt0Lm9ic2VydmUoZSl9KX1mdW5jdGlvbiBjQihlKXt2YXIgdD1lLmZpcnN0Q2hpbGQ7Zm9yKHQmJjEwPT09dC5ub2RlVHlwZSYmKHQ9dC5uZXh0U2libGluZyk7dDspe3ZhciBuPXQ7c3dpdGNoKHQ9dC5uZXh0U2libGluZyxuLm5vZGVOYW1lKXtjYXNlIkhUTUwiOmNhc2UiSEVBRCI6Y2FzZSJCT0RZIjpjQihuKSxlMChuKTtjb250aW51ZTtjYXNlIlNDUklQVCI6Y2FzZSJTVFlMRSI6Y29udGludWU7Y2FzZSJMSU5LIjppZigic3R5bGVzaGVldCI9PT1uLnJlbC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIGNWKGUsdCl7Zm9yKDs4IT09ZS5ub2RlVHlwZTspaWYoKDEhPT1lLm5vZGVUeXBlfHwiSU5QVVQiIT09ZS5ub2RlTmFtZXx8ImhpZGRlbiIhPT1lLnR5cGUpJiYhdHx8bnVsbD09PShlPWNRKGUubmV4dFNpYmxpbmcpKSlyZXR1cm4gbnVsbDtyZXR1cm4gZX1mdW5jdGlvbiBjJChlKXtyZXR1cm4iJD8iPT09ZS5kYXRhfHwiJH4iPT09ZS5kYXRhfWZ1bmN0aW9uIGNIKGUpe3JldHVybiIkISI9PT1lLmRhdGF8fCIkPyI9PT1lLmRhdGEmJiJsb2FkaW5nIiE9PWUub3duZXJEb2N1bWVudC5yZWFkeVN0YXRlfWZ1bmN0aW9uIGNRKGUpe2Zvcig7bnVsbCE9ZTtlPWUubmV4dFNpYmxpbmcpe3ZhciB0PWUubm9kZVR5cGU7aWYoMT09PXR8fDM9PT10KWJyZWFrO2lmKDg9PT10KXtpZigiJCI9PT0odD1lLmRhdGEpfHwiJCEiPT09dHx8IiQ/Ij09PXR8fCIkfiI9PT10fHwiJiI9PT10fHwiRiEiPT09dHx8IkYiPT09dClicmVhaztpZigiLyQiPT09dHx8Ii8mIj09PXQpcmV0dXJuIG51bGx9fXJldHVybiBlfWNQLnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQ9Im51bWJlciI9PXR5cGVvZiB0P3tkdXJhdGlvbjp0fTp4KHt9LHQpKS5wc2V1ZG9FbGVtZW50PXRoaXMuX3NlbGVjdG9yLHRoaXMuX3Njb3BlLmFuaW1hdGUoZSx0KX0sY1AucHJvdG90eXBlLmdldEFuaW1hdGlvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5fc2NvcGUsdD10aGlzLl9zZWxlY3RvcixuPWUuZ2V0QW5pbWF0aW9ucyh7c3VidHJlZTohMH0pLHI9W10sbD0wO2w8bi5sZW5ndGg7bCsrKXt2YXIgYT1uW2xdLmVmZmVjdDtudWxsIT09YSYmYS50YXJnZXQ9PT1lJiZhLnBzZXVkb0VsZW1lbnQ9PT10JiZyLnB1c2gobltsXSl9cmV0dXJuIHJ9LGNQLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy5fc2NvcGUsdGhpcy5fc2VsZWN0b3IpfSxjVC5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQsbil7bnVsbD09PXRoaXMuX2V2ZW50TGlzdGVuZXJzJiYodGhpcy5fZXZlbnRMaXN0ZW5lcnM9W10pO3ZhciByPXRoaXMuX2V2ZW50TGlzdGVuZXJzOy0xPT09Y00ocixlLHQsbikmJihyLnB1c2goe3R5cGU6ZSxsaXN0ZW5lcjp0LG9wdGlvbnNPclVzZUNhcHR1cmU6bn0pLG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjeixlLHQsbikpLHRoaXMuX2V2ZW50TGlzdGVuZXJzPXJ9LGNULnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10aGlzLl9ldmVudExpc3RlbmVycztudWxsIT1yJiYwPHIubGVuZ3RoJiYobSh0aGlzLl9mcmFnbWVudEZpYmVyLmNoaWxkLCExLGNPLGUsdCxuKSxlPWNNKHIsZSx0LG4pLG51bGwhPT10aGlzLl9ldmVudExpc3RlbmVycyYmdGhpcy5fZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKGUsMSkpfSxjVC5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudD1mdW5jdGlvbihlKXt2YXIgdD1oKHRoaXMuX2ZyYWdtZW50RmliZXIpO2lmKG51bGw9PT10KXJldHVybiEwO3Q9Zyh0KTt2YXIgbj10aGlzLl9ldmVudExpc3RlbmVycztpZihudWxsIT09biYmMDxuLmxlbmd0aHx8IWUuYnViYmxlcyl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO2lmKG4pZm9yKHZhciBsPTA7bDxuLmxlbmd0aDtsKyspe3ZhciBhPW5bbF07ci5hZGRFdmVudExpc3RlbmVyKGEudHlwZSxhLmxpc3RlbmVyLGEub3B0aW9uc09yVXNlQ2FwdHVyZSl9aWYodC5hcHBlbmRDaGlsZChyKSxlPXIuZGlzcGF0Y2hFdmVudChlKSxuKWZvcihsPTA7bDxuLmxlbmd0aDtsKyspYT1uW2xdLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLnR5cGUsYS5saXN0ZW5lcixhLm9wdGlvbnNPclVzZUNhcHR1cmUpO3JldHVybiB0LnJlbW92ZUNoaWxkKHIpLGV9cmV0dXJuIHQuZGlzcGF0Y2hFdmVudChlKX0sY1QucHJvdG90eXBlLmZvY3VzPWZ1bmN0aW9uKGUpe20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMCxjRCxlLHZvaWQgMCx2b2lkIDApfSxjVC5wcm90b3R5cGUuZm9jdXNMYXN0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdO20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMCxjRix0LHZvaWQgMCx2b2lkIDApO2Zvcih2YXIgbj10Lmxlbmd0aC0xOzA8PW4mJiFjRCh0W25dLGUpO24tLSk7fSxjVC5wcm90b3R5cGUuYmx1cj1mdW5jdGlvbigpe20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjSSx2b2lkIDAsdm9pZCAwLHZvaWQgMCl9LGNULnByb3RvdHlwZS5vYnNlcnZlVXNpbmc9ZnVuY3Rpb24oZSl7bnVsbD09PXRoaXMuX29ic2VydmVycyYmKHRoaXMuX29ic2VydmVycz1uZXcgU2V0KSx0aGlzLl9vYnNlcnZlcnMuYWRkKGUpLG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjUixlLHZvaWQgMCx2b2lkIDApfSxjVC5wcm90b3R5cGUudW5vYnNlcnZlVXNpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fb2JzZXJ2ZXJzO251bGwhPT10JiZ0LmhhcyhlKSYmKHQuZGVsZXRlKGUpLG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjQSxlLHZvaWQgMCx2b2lkIDApKX0sY1QucHJvdG90eXBlLmdldENsaWVudFJlY3RzPWZ1bmN0aW9uKCl7dmFyIGU9W107cmV0dXJuIG0odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjaixlLHZvaWQgMCx2b2lkIDApLGV9LGNULnByb3RvdHlwZS5nZXRSb290Tm9kZT1mdW5jdGlvbihlKXt2YXIgdD1oKHRoaXMuX2ZyYWdtZW50RmliZXIpO3JldHVybiBudWxsPT09dD90aGlzOmcodCkuZ2V0Um9vdE5vZGUoZSl9LGNULnByb3RvdHlwZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbj1mdW5jdGlvbihlKXt2YXIgdD1oKHRoaXMuX2ZyYWdtZW50RmliZXIpO2lmKG51bGw9PT10KXJldHVybiBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRDt2YXIgbj1bXTttKHRoaXMuX2ZyYWdtZW50RmliZXIuY2hpbGQsITEsY0Ysbix2b2lkIDAsdm9pZCAwKTt2YXIgcj1nKHQpO2lmKDA9PT1uLmxlbmd0aCl7bj10aGlzLl9mcmFnbWVudEZpYmVyO3ZhciBsPXIuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSk7cmV0dXJuIHQ9bCxyPT09ZT90PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM6bCZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSYmKG0obi5zaWJsaW5nLCExLGIpLG49dix2PW51bGwsdD1udWxsPT09bj9Ob2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzowPT09KGU9ZyhuKS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKSl8fGUmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc/Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc6Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcpLHR8Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQ310PWcoblswXSksbD1nKG5bbi5sZW5ndGgtMV0pO2Zvcih2YXIgYT1nKG5bMF0pLG89ITEsaT10aGlzLl9mcmFnbWVudEZpYmVyLnJldHVybjtudWxsIT09aSYmKDQ9PT1pLnRhZyYmKG89ITApLDMhPT1pLnRhZyYmNSE9PWkudGFnKTspaT1pLnJldHVybjtpZihudWxsPT0oYT1vP2EucGFyZW50RWxlbWVudDpyKSlyZXR1cm4gTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQ7cj1hLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZLGE9YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihsKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSxvPXQuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZSk7dmFyIHU9bC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKTtyZXR1cm4gaT1vJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZfHx1Jk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZLHU9ciYmYSYmbyZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyYmdSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORywodD1yJiZ0PT09ZXx8YSYmbD09PWV8fGl8fHU/Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlk6KHJ8fHQhPT1lKSYmKGF8fGwhPT1lKT9vOk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEfHx0Jk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUN8fGZ1bmN0aW9uKGUsdCxuLHIsbCl7dmFyIGE9ZTEobCk7aWYoZSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSl7aWYobj0hIWEpZTp7Zm9yKDtudWxsIT09YTspe2lmKDc9PT1hLnRhZyYmKGE9PT10fHxhLmFsdGVybmF0ZT09PXQpKXtuPSEwO2JyZWFrIGV9YT1hLnJldHVybn1uPSExfXJldHVybiBufWlmKGUmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlOUyl7aWYobnVsbD09PWEpcmV0dXJuIGE9bC5vd25lckRvY3VtZW50LGw9PT1hfHxsPT09YS5ib2R5O2U6e2ZvcihhPXQsdD1oKHQpO251bGwhPT1hOyl7aWYoKDU9PT1hLnRhZ3x8Mz09PWEudGFnKSYmKGE9PT10fHxhLmFsdGVybmF0ZT09PXQpKXthPSEwO2JyZWFrIGV9YT1hLnJldHVybn1hPSExfXJldHVybiBhfXJldHVybiBlJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HPygodD0hIWEpJiYhKHQ9YT09PW4pJiYobnVsbD09PSh0PUUobixhLFMpKT90PSExOihtKHQsITAsdyxhLG4pLGE9dix2PW51bGwsdD1udWxsIT09YSkpLHQpOiEhKGUmTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcpJiYoKHQ9ISFhKSYmISh0PWE9PT1yKSYmKG51bGw9PT0odD1FKHIsYSxTKSk/dD0hMToobSh0LCEwLGssYSxyKSxhPXYseT12PW51bGwsdD1udWxsIT09YSkpLHQpfSh0LHRoaXMuX2ZyYWdtZW50RmliZXIsblswXSxuW24ubGVuZ3RoLTFdLGUpP3Q6Tm9kZS5ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQ30sY1QucHJvdG90eXBlLnNjcm9sbEludG9WaWV3PWZ1bmN0aW9uKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZSl0aHJvdyBFcnJvcih1KDU2NikpO3ZhciB0PVtdO20odGhpcy5fZnJhZ21lbnRGaWJlci5jaGlsZCwhMSxjRix0LHZvaWQgMCx2b2lkIDApO3ZhciBuPSExIT09ZTtpZigwPT09dC5sZW5ndGgpe3Q9dGhpcy5fZnJhZ21lbnRGaWJlcjt2YXIgcj1bbnVsbCxudWxsXSxsPWgodCk7bnVsbCE9PWwmJmZ1bmN0aW9uIGUodCxuLHIpe2Zvcih2YXIgbD0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdO251bGwhPT1yOyl7aWYocj09PW4paWYobD0hMCwhci5zaWJsaW5nKXJldHVybiEwO2Vsc2Ugcj1yLnNpYmxpbmc7aWYoNT09PXIudGFnKXtpZihsKXJldHVybiB0WzFdPXIsITA7dFswXT1yfWVsc2UgaWYoKDIyIT09ci50YWd8fG51bGw9PT1yLm1lbW9pemVkU3RhdGUpJiZlKHQsbixyLmNoaWxkLGwpKXJldHVybiEwO3I9ci5zaWJsaW5nfXJldHVybiExfShyLHQsbC5jaGlsZCksbnVsbCE9PShuPW4/clsxXXx8clswXXx8aCh0aGlzLl9mcmFnbWVudEZpYmVyKTpyWzBdfHxyWzFdKSYmZyhuKS5zY3JvbGxJbnRvVmlldyhlKX1lbHNlIGZvcihyPW4/dC5sZW5ndGgtMTowO3IhPT0obj8tMTp0Lmxlbmd0aCk7KWcodFtyXSkuc2Nyb2xsSW50b1ZpZXcoZSkscis9bj8tMToxfTt2YXIgY1c9bnVsbDtmdW5jdGlvbiBjcShlKXtlPWUubmV4dFNpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoIi8kIj09PW58fCIvJiI9PT1uKXtpZigwPT09dClyZXR1cm4gY1EoZS5uZXh0U2libGluZyk7dC0tfWVsc2UiJCIhPT1uJiYiJCEiIT09biYmIiQ/IiE9PW4mJiIkfiIhPT1uJiYiJiIhPT1ufHx0Kyt9ZT1lLm5leHRTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNLKGUpe2U9ZS5wcmV2aW91c1NpYmxpbmc7Zm9yKHZhciB0PTA7ZTspe2lmKDg9PT1lLm5vZGVUeXBlKXt2YXIgbj1lLmRhdGE7aWYoIiQiPT09bnx8IiQhIj09PW58fCIkPyI9PT1ufHwiJH4iPT09bnx8IiYiPT09bil7aWYoMD09PXQpcmV0dXJuIGU7dC0tfWVsc2UiLyQiIT09biYmIi8mIiE9PW58fHQrK31lPWUucHJldmlvdXNTaWJsaW5nfXJldHVybiBudWxsfWZ1bmN0aW9uIGNZKGUsdCxuKXtzd2l0Y2godD1jdShuKSxlKXtjYXNlImh0bWwiOmlmKCEoZT10LmRvY3VtZW50RWxlbWVudCkpdGhyb3cgRXJyb3IodSg0NTIpKTtyZXR1cm4gZTtjYXNlImhlYWQiOmlmKCEoZT10LmhlYWQpKXRocm93IEVycm9yKHUoNDUzKSk7cmV0dXJuIGU7Y2FzZSJib2R5IjppZighKGU9dC5ib2R5KSl0aHJvdyBFcnJvcih1KDQ1NCkpO3JldHVybiBlO2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg0NTEpKX19ZnVuY3Rpb24gY0coZSl7Zm9yKHZhciB0PWUuYXR0cmlidXRlczt0Lmxlbmd0aDspZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKHRbMF0pO2UwKGUpfXZhciBjWD1uZXcgTWFwLGNaPW5ldyBTZXQ7ZnVuY3Rpb24gY0ooZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0Um9vdE5vZGU/ZS5nZXRSb290Tm9kZSgpOjk9PT1lLm5vZGVUeXBlP2U6ZS5vd25lckRvY3VtZW50fXZhciBjMD1xLmQ7cS5kPXtmOmZ1bmN0aW9uKCl7dmFyIGU9YzAuZigpLHQ9c3QoKTtyZXR1cm4gZXx8dH0scjpmdW5jdGlvbihlKXt2YXIgdD1lMihlKTtudWxsIT09dCYmNT09PXQudGFnJiYiZm9ybSI9PT10LnR5cGU/b2ModCk6YzAucihlKX0sRDpmdW5jdGlvbihlKXtjMC5EKGUpLGMyKCJkbnMtcHJlZmV0Y2giLGUsbnVsbCl9LEM6ZnVuY3Rpb24oZSx0KXtjMC5DKGUsdCksYzIoInByZWNvbm5lY3QiLGUsdCl9LEw6ZnVuY3Rpb24oZSx0LG4pe2lmKGMwLkwoZSx0LG4pLGMxJiZlJiZ0KXt2YXIgcj0nbGlua1tyZWw9InByZWxvYWQiXVthcz0iJyt0bSh0KSsnIl0nOyJpbWFnZSI9PT10JiZuJiZuLmltYWdlU3JjU2V0PyhyKz0nW2ltYWdlc3Jjc2V0PSInK3RtKG4uaW1hZ2VTcmNTZXQpKyciXScsInN0cmluZyI9PXR5cGVvZiBuLmltYWdlU2l6ZXMmJihyKz0nW2ltYWdlc2l6ZXM9IicrdG0obi5pbWFnZVNpemVzKSsnIl0nKSk6cis9J1tocmVmPSInK3RtKGUpKyciXSc7dmFyIGw9cjtzd2l0Y2godCl7Y2FzZSJzdHlsZSI6bD1jNChlKTticmVhaztjYXNlInNjcmlwdCI6bD1jNihlKX1jWC5oYXMobCl8fChlPXgoe3JlbDoicHJlbG9hZCIsaHJlZjoiaW1hZ2UiPT09dCYmbiYmbi5pbWFnZVNyY1NldD92b2lkIDA6ZSxhczp0fSxuKSxjWC5zZXQobCxlKSxudWxsIT09YzEucXVlcnlTZWxlY3RvcihyKXx8InN0eWxlIj09PXQmJmMxLnF1ZXJ5U2VsZWN0b3IoYzUobCkpfHwic2NyaXB0Ij09PXQmJmMxLnF1ZXJ5U2VsZWN0b3IoYzkobCkpfHwoY2wodD1jMS5jcmVhdGVFbGVtZW50KCJsaW5rIiksImxpbmsiLGUpLGU1KHQpLGMxLmhlYWQuYXBwZW5kQ2hpbGQodCkpKX19LG06ZnVuY3Rpb24oZSx0KXtpZihjMC5tKGUsdCksYzEmJmUpe3ZhciBuPXQmJiJzdHJpbmciPT10eXBlb2YgdC5hcz90LmFzOiJzY3JpcHQiLHI9J2xpbmtbcmVsPSJtb2R1bGVwcmVsb2FkIl1bYXM9IicrdG0obikrJyJdW2hyZWY9IicrdG0oZSkrJyJdJyxsPXI7c3dpdGNoKG4pe2Nhc2UiYXVkaW93b3JrbGV0IjpjYXNlInBhaW50d29ya2xldCI6Y2FzZSJzZXJ2aWNld29ya2VyIjpjYXNlInNoYXJlZHdvcmtlciI6Y2FzZSJ3b3JrZXIiOmNhc2Uic2NyaXB0IjpsPWM2KGUpfWlmKCFjWC5oYXMobCkmJihlPXgoe3JlbDoibW9kdWxlcHJlbG9hZCIsaHJlZjplfSx0KSxjWC5zZXQobCxlKSxudWxsPT09YzEucXVlcnlTZWxlY3RvcihyKSkpe3N3aXRjaChuKXtjYXNlImF1ZGlvd29ya2xldCI6Y2FzZSJwYWludHdvcmtsZXQiOmNhc2Uic2VydmljZXdvcmtlciI6Y2FzZSJzaGFyZWR3b3JrZXIiOmNhc2Uid29ya2VyIjpjYXNlInNjcmlwdCI6aWYoYzEucXVlcnlTZWxlY3RvcihjOShsKSkpcmV0dXJufWNsKG49YzEuY3JlYXRlRWxlbWVudCgibGluayIpLCJsaW5rIixlKSxlNShuKSxjMS5oZWFkLmFwcGVuZENoaWxkKG4pfX19LFg6ZnVuY3Rpb24oZSx0KXtpZihjMC5YKGUsdCksYzEmJmUpe3ZhciBuPWU0KGMxKS5ob2lzdGFibGVTY3JpcHRzLHI9YzYoZSksbD1uLmdldChyKTtsfHwoKGw9YzEucXVlcnlTZWxlY3RvcihjOShyKSkpfHwoZT14KHtzcmM6ZSxhc3luYzohMH0sdCksKHQ9Y1guZ2V0KHIpKSYmZm4oZSx0KSxlNShsPWMxLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpKSxjbChsLCJsaW5rIixlKSxjMS5oZWFkLmFwcGVuZENoaWxkKGwpKSxsPXt0eXBlOiJzY3JpcHQiLGluc3RhbmNlOmwsY291bnQ6MSxzdGF0ZTpudWxsfSxuLnNldChyLGwpKX19LFM6ZnVuY3Rpb24oZSx0LG4pe2lmKGMwLlMoZSx0LG4pLGMxJiZlKXt2YXIgcj1lNChjMSkuaG9pc3RhYmxlU3R5bGVzLGw9YzQoZSk7dD10fHwiZGVmYXVsdCI7dmFyIGE9ci5nZXQobCk7aWYoIWEpe3ZhciBvPXtsb2FkaW5nOjAscHJlbG9hZDpudWxsfTtpZihhPWMxLnF1ZXJ5U2VsZWN0b3IoYzUobCkpKW8ubG9hZGluZz01O2Vsc2V7ZT14KHtyZWw6InN0eWxlc2hlZXQiLGhyZWY6ZSwiZGF0YS1wcmVjZWRlbmNlIjp0fSxuKSwobj1jWC5nZXQobCkpJiZmdChlLG4pO3ZhciBpPWE9YzEuY3JlYXRlRWxlbWVudCgibGluayIpO2U1KGkpLGNsKGksImxpbmsiLGUpLGkuX3A9bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtpLm9ubG9hZD1lLGkub25lcnJvcj10fSksaS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe28ubG9hZGluZ3w9MX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7by5sb2FkaW5nfD0yfSksby5sb2FkaW5nfD00LGZlKGEsdCxjMSl9YT17dHlwZToic3R5bGVzaGVldCIsaW5zdGFuY2U6YSxjb3VudDoxLHN0YXRlOm99LHIuc2V0KGwsYSl9fX0sTTpmdW5jdGlvbihlLHQpe2lmKGMwLk0oZSx0KSxjMSYmZSl7dmFyIG49ZTQoYzEpLmhvaXN0YWJsZVNjcmlwdHMscj1jNihlKSxsPW4uZ2V0KHIpO2x8fCgobD1jMS5xdWVyeVNlbGVjdG9yKGM5KHIpKSl8fChlPXgoe3NyYzplLGFzeW5jOiEwLHR5cGU6Im1vZHVsZSJ9LHQpLCh0PWNYLmdldChyKSkmJmZuKGUsdCksZTUobD1jMS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSksY2wobCwibGluayIsZSksYzEuaGVhZC5hcHBlbmRDaGlsZChsKSksbD17dHlwZToic2NyaXB0IixpbnN0YW5jZTpsLGNvdW50OjEsc3RhdGU6bnVsbH0sbi5zZXQocixsKSl9fX07dmFyIGMxPSJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQ/bnVsbDpkb2N1bWVudDtmdW5jdGlvbiBjMihlLHQsbil7aWYoYzEmJiJzdHJpbmciPT10eXBlb2YgdCYmdCl7dmFyIHI9dG0odCk7cj0nbGlua1tyZWw9IicrZSsnIl1baHJlZj0iJytyKyciXScsInN0cmluZyI9PXR5cGVvZiBuJiYocis9J1tjcm9zc29yaWdpbj0iJytuKyciXScpLGNaLmhhcyhyKXx8KGNaLmFkZChyKSxlPXtyZWw6ZSxjcm9zc09yaWdpbjpuLGhyZWY6dH0sbnVsbD09PWMxLnF1ZXJ5U2VsZWN0b3IocikmJihjbCh0PWMxLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSwibGluayIsZSksZTUodCksYzEuaGVhZC5hcHBlbmRDaGlsZCh0KSkpfX1mdW5jdGlvbiBjMyhlLHQsbixyKXt2YXIgbD0obD1lbi5jdXJyZW50KT9jSihsKTpudWxsO2lmKCFsKXRocm93IEVycm9yKHUoNDQ2KSk7c3dpdGNoKGUpe2Nhc2UibWV0YSI6Y2FzZSJ0aXRsZSI6cmV0dXJuIG51bGw7Y2FzZSJzdHlsZSI6cmV0dXJuInN0cmluZyI9PXR5cGVvZiBuLnByZWNlZGVuY2UmJiJzdHJpbmciPT10eXBlb2Ygbi5ocmVmPyh0PWM0KG4uaHJlZiksKHI9KG49ZTQobCkuaG9pc3RhYmxlU3R5bGVzKS5nZXQodCkpfHwocj17dHlwZToic3R5bGUiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTpudWxsfSxuLnNldCh0LHIpKSxyKTp7dHlwZToidm9pZCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9O2Nhc2UibGluayI6aWYoInN0eWxlc2hlZXQiPT09bi5yZWwmJiJzdHJpbmciPT10eXBlb2Ygbi5ocmVmJiYic3RyaW5nIj09dHlwZW9mIG4ucHJlY2VkZW5jZSl7ZT1jNChuLmhyZWYpO3ZhciBhLG8saSxzLGM9ZTQobCkuaG9pc3RhYmxlU3R5bGVzLGY9Yy5nZXQoZSk7aWYoZnx8KGw9bC5vd25lckRvY3VtZW50fHxsLGY9e3R5cGU6InN0eWxlc2hlZXQiLGluc3RhbmNlOm51bGwsY291bnQ6MCxzdGF0ZTp7bG9hZGluZzowLHByZWxvYWQ6bnVsbH19LGMuc2V0KGUsZiksKGM9bC5xdWVyeVNlbGVjdG9yKGM1KGUpKSkmJiFjLl9wJiYoZi5pbnN0YW5jZT1jLGYuc3RhdGUubG9hZGluZz01KSxjWC5oYXMoZSl8fChuPXtyZWw6InByZWxvYWQiLGFzOiJzdHlsZSIsaHJlZjpuLmhyZWYsY3Jvc3NPcmlnaW46bi5jcm9zc09yaWdpbixpbnRlZ3JpdHk6bi5pbnRlZ3JpdHksbWVkaWE6bi5tZWRpYSxocmVmTGFuZzpuLmhyZWZMYW5nLHJlZmVycmVyUG9saWN5Om4ucmVmZXJyZXJQb2xpY3l9LGNYLnNldChlLG4pLGN8fChhPWwsbz1lLGk9bixzPWYuc3RhdGUsYS5xdWVyeVNlbGVjdG9yKCdsaW5rW3JlbD0icHJlbG9hZCJdW2FzPSJzdHlsZSJdWycrbysiXSIpP3MubG9hZGluZz0xOihzLnByZWxvYWQ9bz1hLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSxvLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHMubG9hZGluZ3w9MX0pLG8uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKCl7cmV0dXJuIHMubG9hZGluZ3w9Mn0pLGNsKG8sImxpbmsiLGkpLGU1KG8pLGEuaGVhZC5hcHBlbmRDaGlsZChvKSkpKSksdCYmbnVsbD09PXIpdGhyb3cgRXJyb3IodSg1MjgsIiIpKTtyZXR1cm4gZn1pZih0JiZudWxsIT09cil0aHJvdyBFcnJvcih1KDUyOSwiIikpO3JldHVybiBudWxsO2Nhc2Uic2NyaXB0IjpyZXR1cm4gdD1uLmFzeW5jLCJzdHJpbmciPT10eXBlb2Yobj1uLnNyYykmJnQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYic3ltYm9sIiE9dHlwZW9mIHQ/KHQ9YzYobiksKHI9KG49ZTQobCkuaG9pc3RhYmxlU2NyaXB0cykuZ2V0KHQpKXx8KHI9e3R5cGU6InNjcmlwdCIsaW5zdGFuY2U6bnVsbCxjb3VudDowLHN0YXRlOm51bGx9LG4uc2V0KHQscikpLHIpOnt0eXBlOiJ2b2lkIixpbnN0YW5jZTpudWxsLGNvdW50OjAsc3RhdGU6bnVsbH07ZGVmYXVsdDp0aHJvdyBFcnJvcih1KDQ0NCxlKSl9fWZ1bmN0aW9uIGM0KGUpe3JldHVybidocmVmPSInK3RtKGUpKyciJ31mdW5jdGlvbiBjNShlKXtyZXR1cm4nbGlua1tyZWw9InN0eWxlc2hlZXQiXVsnK2UrIl0ifWZ1bmN0aW9uIGM4KGUpe3JldHVybiB4KHt9LGUseyJkYXRhLXByZWNlZGVuY2UiOmUucHJlY2VkZW5jZSxwcmVjZWRlbmNlOm51bGx9KX1mdW5jdGlvbiBjNihlKXtyZXR1cm4nW3NyYz0iJyt0bShlKSsnIl0nfWZ1bmN0aW9uIGM5KGUpe3JldHVybiJzY3JpcHRbYXN5bmNdIitlfWZ1bmN0aW9uIGM3KGUsdCxuKXtpZih0LmNvdW50KyssbnVsbD09PXQuaW5zdGFuY2Upc3dpdGNoKHQudHlwZSl7Y2FzZSJzdHlsZSI6dmFyIHI9ZS5xdWVyeVNlbGVjdG9yKCdzdHlsZVtkYXRhLWhyZWZ+PSInK3RtKG4uaHJlZikrJyJdJyk7aWYocilyZXR1cm4gdC5pbnN0YW5jZT1yLGU1KHIpLHI7dmFyIGw9eCh7fSxuLHsiZGF0YS1ocmVmIjpuLmhyZWYsImRhdGEtcHJlY2VkZW5jZSI6bi5wcmVjZWRlbmNlLGhyZWY6bnVsbCxwcmVjZWRlbmNlOm51bGx9KTtyZXR1cm4gZTUocj0oZS5vd25lckRvY3VtZW50fHxlKS5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKSxjbChyLCJzdHlsZSIsbCksZmUocixuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1yO2Nhc2Uic3R5bGVzaGVldCI6bD1jNChuLmhyZWYpO3ZhciBhPWUucXVlcnlTZWxlY3RvcihjNShsKSk7aWYoYSlyZXR1cm4gdC5zdGF0ZS5sb2FkaW5nfD00LHQuaW5zdGFuY2U9YSxlNShhKSxhO3I9YzgobiksKGw9Y1guZ2V0KGwpKSYmZnQocixsKSxlNShhPShlLm93bmVyRG9jdW1lbnR8fGUpLmNyZWF0ZUVsZW1lbnQoImxpbmsiKSk7dmFyIG89YTtyZXR1cm4gby5fcD1uZXcgUHJvbWlzZShmdW5jdGlvbihlLHQpe28ub25sb2FkPWUsby5vbmVycm9yPXR9KSxjbChhLCJsaW5rIixyKSx0LnN0YXRlLmxvYWRpbmd8PTQsZmUoYSxuLnByZWNlZGVuY2UsZSksdC5pbnN0YW5jZT1hO2Nhc2Uic2NyaXB0IjppZihhPWM2KG4uc3JjKSxsPWUucXVlcnlTZWxlY3RvcihjOShhKSkpcmV0dXJuIHQuaW5zdGFuY2U9bCxlNShsKSxsO3JldHVybiByPW4sKGw9Y1guZ2V0KGEpKSYmZm4ocj14KHt9LG4pLGwpLGU1KGw9KGU9ZS5vd25lckRvY3VtZW50fHxlKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSksY2wobCwibGluayIsciksZS5oZWFkLmFwcGVuZENoaWxkKGwpLHQuaW5zdGFuY2U9bDtjYXNlInZvaWQiOnJldHVybiBudWxsO2RlZmF1bHQ6dGhyb3cgRXJyb3IodSg0NDMsdC50eXBlKSl9cmV0dXJuInN0eWxlc2hlZXQiPT09dC50eXBlJiYwPT0oNCZ0LnN0YXRlLmxvYWRpbmcpJiYocj10Lmluc3RhbmNlLHQuc3RhdGUubG9hZGluZ3w9NCxmZShyLG4ucHJlY2VkZW5jZSxlKSksdC5pbnN0YW5jZX1mdW5jdGlvbiBmZShlLHQsbil7Zm9yKHZhciByPW4ucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9InN0eWxlc2hlZXQiXVtkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0nKSxsPXIubGVuZ3RoP3Jbci5sZW5ndGgtMV06bnVsbCxhPWwsbz0wO288ci5sZW5ndGg7bysrKXt2YXIgaT1yW29dO2lmKGkuZGF0YXNldC5wcmVjZWRlbmNlPT09dClhPWk7ZWxzZSBpZihhIT09bClicmVha31hP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSxhLm5leHRTaWJsaW5nKToodD05PT09bi5ub2RlVHlwZT9uLmhlYWQ6bikuaW5zZXJ0QmVmb3JlKGUsdC5maXJzdENoaWxkKX1mdW5jdGlvbiBmdChlLHQpe251bGw9PWUuY3Jvc3NPcmlnaW4mJihlLmNyb3NzT3JpZ2luPXQuY3Jvc3NPcmlnaW4pLG51bGw9PWUucmVmZXJyZXJQb2xpY3kmJihlLnJlZmVycmVyUG9saWN5PXQucmVmZXJyZXJQb2xpY3kpLG51bGw9PWUudGl0bGUmJihlLnRpdGxlPXQudGl0bGUpfWZ1bmN0aW9uIGZuKGUsdCl7bnVsbD09ZS5jcm9zc09yaWdpbiYmKGUuY3Jvc3NPcmlnaW49dC5jcm9zc09yaWdpbiksbnVsbD09ZS5yZWZlcnJlclBvbGljeSYmKGUucmVmZXJyZXJQb2xpY3k9dC5yZWZlcnJlclBvbGljeSksbnVsbD09ZS5pbnRlZ3JpdHkmJihlLmludGVncml0eT10LmludGVncml0eSl9dmFyIGZyPW51bGw7ZnVuY3Rpb24gZmwoZSx0LG4pe2lmKG51bGw9PT1mcil7dmFyIHI9bmV3IE1hcCxsPWZyPW5ldyBNYXA7bC5zZXQobixyKX1lbHNlKHI9KGw9ZnIpLmdldChuKSl8fChyPW5ldyBNYXAsbC5zZXQobixyKSk7aWYoci5oYXMoZSkpcmV0dXJuIHI7Zm9yKHIuc2V0KGUsbnVsbCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpLGw9MDtsPG4ubGVuZ3RoO2wrKyl7dmFyIGE9bltsXTtpZighKGFbZUpdfHxhW2VXXXx8ImxpbmsiPT09ZSYmInN0eWxlc2hlZXQiPT09YS5nZXRBdHRyaWJ1dGUoInJlbCIpKSYmImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiE9PWEubmFtZXNwYWNlVVJJKXt2YXIgbz1hLmdldEF0dHJpYnV0ZSh0KXx8IiI7bz1lK287dmFyIGk9ci5nZXQobyk7aT9pLnB1c2goYSk6ci5zZXQobyxbYV0pfX1yZXR1cm4gcn1mdW5jdGlvbiBmYShlLHQsbil7KGU9ZS5vd25lckRvY3VtZW50fHxlKS5oZWFkLmluc2VydEJlZm9yZShuLCJ0aXRsZSI9PT10P2UucXVlcnlTZWxlY3RvcigiaGVhZCA+IHRpdGxlIik6bnVsbCl9ZnVuY3Rpb24gZm8oZSx0KXtyZXR1cm4iaW1nIj09PWUmJm51bGwhPXQuc3JjJiYiIiE9PXQuc3JjJiZudWxsPT10Lm9uTG9hZCYmImxhenkiIT09dC5sb2FkaW5nfWZ1bmN0aW9uIGZpKGUpe3JldHVybiJzdHlsZXNoZWV0IiE9PWUudHlwZXx8MCE9KDMmZS5zdGF0ZS5sb2FkaW5nKX1mdW5jdGlvbiBmdShlKXtyZXR1cm4oZS53aWR0aHx8MTAwKSooZS5oZWlnaHR8fDEwMCkqKCJudW1iZXIiPT10eXBlb2YgZGV2aWNlUGl4ZWxSYXRpbz9kZXZpY2VQaXhlbFJhdGlvOjEpKi4yNX1mdW5jdGlvbiBmcyhlLHQpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlY29kZSYmKGUuaW1nQ291bnQrKyx0LmNvbXBsZXRlfHwoZS5pbWdCeXRlcys9ZnUodCksZS5zdXNwZW5zZXlJbWFnZXMucHVzaCh0KSksZT1mcC5iaW5kKGUpLHQuZGVjb2RlKCkudGhlbihlLGUpKX12YXIgZmM9MDtmdW5jdGlvbiBmZihlKXtpZigwPT09ZS5jb3VudCYmKDA9PT1lLmltZ0NvdW50fHwhZS53YWl0aW5nRm9ySW1hZ2VzKSl7aWYoZS5zdHlsZXNoZWV0cylmaChlLGUuc3R5bGVzaGVldHMpO2Vsc2UgaWYoZS51bnN1c3BlbmQpe3ZhciB0PWUudW5zdXNwZW5kO2UudW5zdXNwZW5kPW51bGwsdCgpfX19ZnVuY3Rpb24gZmQoKXt0aGlzLmNvdW50LS0sZmYodGhpcyl9ZnVuY3Rpb24gZnAoKXt0aGlzLmltZ0NvdW50LS0sZmYodGhpcyl9dmFyIGZtPW51bGw7ZnVuY3Rpb24gZmgoZSx0KXtlLnN0eWxlc2hlZXRzPW51bGwsbnVsbCE9PWUudW5zdXNwZW5kJiYoZS5jb3VudCsrLGZtPW5ldyBNYXAsdC5mb3JFYWNoKGZnLGUpLGZtPW51bGwsZmQuY2FsbChlKSl9ZnVuY3Rpb24gZmcoZSx0KXtpZighKDQmdC5zdGF0ZS5sb2FkaW5nKSl7dmFyIG49Zm0uZ2V0KGUpO2lmKG4pdmFyIHI9bi5nZXQobnVsbCk7ZWxzZXtuPW5ldyBNYXAsZm0uc2V0KGUsbik7Zm9yKHZhciBsPWUucXVlcnlTZWxlY3RvckFsbCgibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV0iKSxhPTA7YTxsLmxlbmd0aDthKyspe3ZhciBvPWxbYV07KCJMSU5LIj09PW8ubm9kZU5hbWV8fCJub3QgYWxsIiE9PW8uZ2V0QXR0cmlidXRlKCJtZWRpYSIpKSYmKG4uc2V0KG8uZGF0YXNldC5wcmVjZWRlbmNlLG8pLHI9byl9ciYmbi5zZXQobnVsbCxyKX1vPShsPXQuaW5zdGFuY2UpLmdldEF0dHJpYnV0ZSgiZGF0YS1wcmVjZWRlbmNlIiksKGE9bi5nZXQobyl8fHIpPT09ciYmbi5zZXQobnVsbCxsKSxuLnNldChvLGwpLHRoaXMuY291bnQrKyxyPWZkLmJpbmQodGhpcyksbC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixyKSxsLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixyKSxhP2EucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobCxhLm5leHRTaWJsaW5nKTooZT05PT09ZS5ub2RlVHlwZT9lLmhlYWQ6ZSkuaW5zZXJ0QmVmb3JlKGwsZS5maXJzdENoaWxkKSx0LnN0YXRlLmxvYWRpbmd8PTR9fXZhciBmdj17JCR0eXBlb2Y6TCxQcm92aWRlcjpudWxsLENvbnN1bWVyOm51bGwsX2N1cnJlbnRWYWx1ZTpLLF9jdXJyZW50VmFsdWUyOkssX3RocmVhZENvdW50OjB9O2Z1bmN0aW9uIGZ5KGUsdCxuLHIsbCxhLG8saSx1KXt0aGlzLnRhZz0xLHRoaXMuY29udGFpbmVySW5mbz1lLHRoaXMucGluZ0NhY2hlPXRoaXMuY3VycmVudD10aGlzLnBlbmRpbmdDaGlsZHJlbj1udWxsLHRoaXMudGltZW91dEhhbmRsZT0tMSx0aGlzLmNhbGxiYWNrTm9kZT10aGlzLm5leHQ9dGhpcy5wZW5kaW5nQ29udGV4dD10aGlzLmNvbnRleHQ9dGhpcy5jYW5jZWxQZW5kaW5nQ29tbWl0PW51bGwsdGhpcy5jYWxsYmFja1ByaW9yaXR5PTAsdGhpcy5leHBpcmF0aW9uVGltZXM9ZUkoLTEpLHRoaXMuZW50YW5nbGVkTGFuZXM9dGhpcy5zaGVsbFN1c3BlbmRDb3VudGVyPXRoaXMuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXM9dGhpcy5leHBpcmVkTGFuZXM9dGhpcy53YXJtTGFuZXM9dGhpcy5waW5nZWRMYW5lcz10aGlzLnN1c3BlbmRlZExhbmVzPXRoaXMucGVuZGluZ0xhbmVzPTAsdGhpcy5lbnRhbmdsZW1lbnRzPWVJKDApLHRoaXMuaGlkZGVuVXBkYXRlcz1lSShudWxsKSx0aGlzLmlkZW50aWZpZXJQcmVmaXg9cix0aGlzLm9uVW5jYXVnaHRFcnJvcj1sLHRoaXMub25DYXVnaHRFcnJvcj1hLHRoaXMub25SZWNvdmVyYWJsZUVycm9yPW8sdGhpcy5wb29sZWRDYWNoZT1udWxsLHRoaXMucG9vbGVkQ2FjaGVMYW5lcz0wLHRoaXMuZm9ybVN0YXRlPXUsdGhpcy50cmFuc2l0aW9uVHlwZXM9bnVsbCx0aGlzLmluY29tcGxldGVUcmFuc2l0aW9ucz1uZXcgTWFwfWZ1bmN0aW9uIGZiKGUsdCxuLHIsbCxhLG8saSx1LHMsYyxmKXtyZXR1cm4gZT1uZXcgZnkoZSx0LG4sbyx1LHMsYyxmLGkpLHQ9MSwhMD09PWEmJih0fD0yNCksYT1ydigzLG51bGwsbnVsbCx0KSxlLmN1cnJlbnQ9YSxhLnN0YXRlTm9kZT1lLHQ9bHUoKSx0LnJlZkNvdW50KyssZS5wb29sZWRDYWNoZT10LHQucmVmQ291bnQrKyxhLm1lbW9pemVkU3RhdGU9e2VsZW1lbnQ6cixpc0RlaHlkcmF0ZWQ6bixjYWNoZTp0fSxsQihhKSxlfWZ1bmN0aW9uIGZ3KGUsdCxuLHIsbCxhKXtsPWw/cmg6cmgsbnVsbD09PXIuY29udGV4dD9yLmNvbnRleHQ9bDpyLnBlbmRpbmdDb250ZXh0PWwsKHI9bCQodCkpLnBheWxvYWQ9e2VsZW1lbnQ6bn0sbnVsbCE9PShhPXZvaWQgMD09PWE/bnVsbDphKSYmKHIuY2FsbGJhY2s9YSksbnVsbCE9PShuPWxIKGUscix0KSkmJih1NihuLGUsdCksbFEobixlLHQpKX1mdW5jdGlvbiBmayhlLHQpe2lmKG51bGwhPT0oZT1lLm1lbW9pemVkU3RhdGUpJiZudWxsIT09ZS5kZWh5ZHJhdGVkKXt2YXIgbj1lLnJldHJ5TGFuZTtlLnJldHJ5TGFuZT0wIT09biYmbjx0P246dH19ZnVuY3Rpb24gZlMoZSx0KXtmayhlLHQpLChlPWUuYWx0ZXJuYXRlKSYmZmsoZSx0KX1mdW5jdGlvbiBmRShlKXtpZigxMz09PWUudGFnfHwzMT09PWUudGFnKXt2YXIgdD1yZChlLDB4NDAwMDAwMCk7bnVsbCE9PXQmJnU2KHQsZSwweDQwMDAwMDApLGZTKGUsMHg0MDAwMDAwKX19ZnVuY3Rpb24gZngoZSl7aWYoMTM9PT1lLnRhZ3x8MzE9PT1lLnRhZyl7dmFyIHQ9dTQoKSxuPXJkKGUsdD1lQih0KSk7bnVsbCE9PW4mJnU2KG4sZSx0KSxmUyhlLHQpfX12YXIgZl89ITA7ZnVuY3Rpb24gZk4oZSx0LG4scil7dmFyIGw9Vy5UO1cuVD1udWxsO3ZhciBhPXEucDt0cnl7cS5wPTIsZkMoZSx0LG4scil9ZmluYWxseXtxLnA9YSxXLlQ9bH19ZnVuY3Rpb24gZlAoZSx0LG4scil7dmFyIGw9Vy5UO1cuVD1udWxsO3ZhciBhPXEucDt0cnl7cS5wPTgsZkMoZSx0LG4scil9ZmluYWxseXtxLnA9YSxXLlQ9bH19ZnVuY3Rpb24gZkMoZSx0LG4scil7aWYoZl8pe3ZhciBsPWZUKHIpO2lmKG51bGw9PT1sKXMzKGUsdCxyLGZ6LG4pLGZCKGUscik7ZWxzZSBpZihmdW5jdGlvbihlLHQsbixyLGwpe3N3aXRjaCh0KXtjYXNlImZvY3VzaW4iOnJldHVybiBmRD1mVihmRCxlLHQsbixyLGwpLCEwO2Nhc2UiZHJhZ2VudGVyIjpyZXR1cm4gZkY9ZlYoZkYsZSx0LG4scixsKSwhMDtjYXNlIm1vdXNlb3ZlciI6cmV0dXJuIGZJPWZWKGZJLGUsdCxuLHIsbCksITA7Y2FzZSJwb2ludGVyb3ZlciI6dmFyIGE9bC5wb2ludGVySWQ7cmV0dXJuIGZSLnNldChhLGZWKGZSLmdldChhKXx8bnVsbCxlLHQsbixyLGwpKSwhMDtjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpyZXR1cm4gYT1sLnBvaW50ZXJJZCxmQS5zZXQoYSxmVihmQS5nZXQoYSl8fG51bGwsZSx0LG4scixsKSksITB9cmV0dXJuITF9KGwsZSx0LG4scikpci5zdG9wUHJvcGFnYXRpb24oKTtlbHNlIGlmKGZCKGUsciksNCZ0JiYtMTxmVS5pbmRleE9mKGUpKXtmb3IoO251bGwhPT1sOyl7dmFyIGE9ZTIobCk7aWYobnVsbCE9PWEpc3dpdGNoKGEudGFnKXtjYXNlIDM6aWYoKGE9YS5zdGF0ZU5vZGUpLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe3ZhciBvPWVMKGEucGVuZGluZ0xhbmVzKTtpZigwIT09byl7dmFyIGk9YTtmb3IoaS5wZW5kaW5nTGFuZXN8PTIsaS5lbnRhbmdsZWRMYW5lc3w9MjtvOyl7dmFyIHU9MTw8MzEtZU4obyk7aS5lbnRhbmdsZW1lbnRzWzFdfD11LG8mPX51fXNSKGEpLDA9PSg2JnVTKSYmKHUkPWV2KCkrNTAwLHNBKDAsITEpKX19YnJlYWs7Y2FzZSAzMTpjYXNlIDEzOm51bGwhPT0oaT1yZChhLDIpKSYmdTYoaSxhLDIpLHN0KCksZlMoYSwyKX1pZihudWxsPT09KGE9ZlQocikpJiZzMyhlLHQscixmeixuKSxhPT09bClicmVhaztsPWF9bnVsbCE9PWwmJnIuc3RvcFByb3BhZ2F0aW9uKCl9ZWxzZSBzMyhlLHQscixudWxsLG4pfX1mdW5jdGlvbiBmVChlKXtyZXR1cm4gZk8oZT10TyhlKSl9dmFyIGZ6PW51bGw7ZnVuY3Rpb24gZk8oZSl7aWYoZno9bnVsbCxudWxsIT09KGU9ZTEoZSkpKXt2YXIgdD1jKGUpO2lmKG51bGw9PT10KWU9bnVsbDtlbHNle3ZhciBuPXQudGFnO2lmKDEzPT09bil7aWYobnVsbCE9PShlPWYodCkpKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDMxPT09bil7aWYobnVsbCE9PShlPWQodCkpKXJldHVybiBlO2U9bnVsbH1lbHNlIGlmKDM9PT1uKXtpZih0LnN0YXRlTm9kZS5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkKXJldHVybiAzPT09dC50YWc/dC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbzpudWxsO2U9bnVsbH1lbHNlIHQhPT1lJiYoZT1udWxsKX19cmV0dXJuIGZ6PWUsbnVsbH1mdW5jdGlvbiBmTChlKXtzd2l0Y2goZSl7Y2FzZSJiZWZvcmV0b2dnbGUiOmNhc2UiY2FuY2VsIjpjYXNlImNsaWNrIjpjYXNlImNsb3NlIjpjYXNlImNvbnRleHRtZW51IjpjYXNlImNvcHkiOmNhc2UiY3V0IjpjYXNlImF1eGNsaWNrIjpjYXNlImRibGNsaWNrIjpjYXNlImRyYWdlbmQiOmNhc2UiZHJhZ3N0YXJ0IjpjYXNlImRyb3AiOmNhc2UiZm9jdXNpbiI6Y2FzZSJmb2N1c291dCI6Y2FzZSJpbnB1dCI6Y2FzZSJpbnZhbGlkIjpjYXNlImtleWRvd24iOmNhc2Uia2V5cHJlc3MiOmNhc2Uia2V5dXAiOmNhc2UibW91c2Vkb3duIjpjYXNlIm1vdXNldXAiOmNhc2UicGFzdGUiOmNhc2UicGF1c2UiOmNhc2UicGxheSI6Y2FzZSJwb2ludGVyY2FuY2VsIjpjYXNlInBvaW50ZXJkb3duIjpjYXNlInBvaW50ZXJ1cCI6Y2FzZSJyYXRlY2hhbmdlIjpjYXNlInJlc2V0IjpjYXNlInJlc2l6ZSI6Y2FzZSJzZWVrZWQiOmNhc2Uic3VibWl0IjpjYXNlInRvZ2dsZSI6Y2FzZSJ0b3VjaGNhbmNlbCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJ0b3VjaHN0YXJ0IjpjYXNlInZvbHVtZWNoYW5nZSI6Y2FzZSJjaGFuZ2UiOmNhc2Uic2VsZWN0aW9uY2hhbmdlIjpjYXNlInRleHRJbnB1dCI6Y2FzZSJjb21wb3NpdGlvbnN0YXJ0IjpjYXNlImNvbXBvc2l0aW9uZW5kIjpjYXNlImNvbXBvc2l0aW9udXBkYXRlIjpjYXNlImJlZm9yZWJsdXIiOmNhc2UiYWZ0ZXJibHVyIjpjYXNlImJlZm9yZWlucHV0IjpjYXNlImJsdXIiOmNhc2UiZnVsbHNjcmVlbmNoYW5nZSI6Y2FzZSJmb2N1cyI6Y2FzZSJoYXNoY2hhbmdlIjpjYXNlInBvcHN0YXRlIjpjYXNlInNlbGVjdCI6Y2FzZSJzZWxlY3RzdGFydCI6cmV0dXJuIDI7Y2FzZSJkcmFnIjpjYXNlImRyYWdlbnRlciI6Y2FzZSJkcmFnZXhpdCI6Y2FzZSJkcmFnbGVhdmUiOmNhc2UiZHJhZ292ZXIiOmNhc2UibW91c2Vtb3ZlIjpjYXNlIm1vdXNlb3V0IjpjYXNlIm1vdXNlb3ZlciI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJwb2ludGVyb3V0IjpjYXNlInBvaW50ZXJvdmVyIjpjYXNlInNjcm9sbCI6Y2FzZSJ0b3VjaG1vdmUiOmNhc2Uid2hlZWwiOmNhc2UibW91c2VlbnRlciI6Y2FzZSJtb3VzZWxlYXZlIjpjYXNlInBvaW50ZXJlbnRlciI6Y2FzZSJwb2ludGVybGVhdmUiOnJldHVybiA4O2Nhc2UibWVzc2FnZSI6c3dpdGNoKGV5KCkpe2Nhc2UgZWI6cmV0dXJuIDI7Y2FzZSBldzpyZXR1cm4gODtjYXNlIGVrOmNhc2UgZVM6cmV0dXJuIDMyO2Nhc2UgZUU6cmV0dXJuIDB4MTAwMDAwMDA7ZGVmYXVsdDpyZXR1cm4gMzJ9ZGVmYXVsdDpyZXR1cm4gMzJ9fXZhciBmTT0hMSxmRD1udWxsLGZGPW51bGwsZkk9bnVsbCxmUj1uZXcgTWFwLGZBPW5ldyBNYXAsZmo9W10sZlU9Im1vdXNlZG93biBtb3VzZXVwIHRvdWNoY2FuY2VsIHRvdWNoZW5kIHRvdWNoc3RhcnQgYXV4Y2xpY2sgZGJsY2xpY2sgcG9pbnRlcmNhbmNlbCBwb2ludGVyZG93biBwb2ludGVydXAgZHJhZ2VuZCBkcmFnc3RhcnQgZHJvcCBjb21wb3NpdGlvbmVuZCBjb21wb3NpdGlvbnN0YXJ0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgaW5wdXQgdGV4dElucHV0IGNvcHkgY3V0IHBhc3RlIGNsaWNrIGNoYW5nZSBjb250ZXh0bWVudSByZXNldCIuc3BsaXQoIiAiKTtmdW5jdGlvbiBmQihlLHQpe3N3aXRjaChlKXtjYXNlImZvY3VzaW4iOmNhc2UiZm9jdXNvdXQiOmZEPW51bGw7YnJlYWs7Y2FzZSJkcmFnZW50ZXIiOmNhc2UiZHJhZ2xlYXZlIjpmRj1udWxsO2JyZWFrO2Nhc2UibW91c2VvdmVyIjpjYXNlIm1vdXNlb3V0IjpmST1udWxsO2JyZWFrO2Nhc2UicG9pbnRlcm92ZXIiOmNhc2UicG9pbnRlcm91dCI6ZlIuZGVsZXRlKHQucG9pbnRlcklkKTticmVhaztjYXNlImdvdHBvaW50ZXJjYXB0dXJlIjpjYXNlImxvc3Rwb2ludGVyY2FwdHVyZSI6ZkEuZGVsZXRlKHQucG9pbnRlcklkKX19ZnVuY3Rpb24gZlYoZSx0LG4scixsLGEpe3JldHVybiBudWxsPT09ZXx8ZS5uYXRpdmVFdmVudCE9PWE/KGU9e2Jsb2NrZWRPbjp0LGRvbUV2ZW50TmFtZTpuLGV2ZW50U3lzdGVtRmxhZ3M6cixuYXRpdmVFdmVudDphLHRhcmdldENvbnRhaW5lcnM6W2xdfSxudWxsIT09dCYmbnVsbCE9PSh0PWUyKHQpKSYmZkUodCkpOihlLmV2ZW50U3lzdGVtRmxhZ3N8PXIsdD1lLnRhcmdldENvbnRhaW5lcnMsbnVsbCE9PWwmJi0xPT09dC5pbmRleE9mKGwpJiZ0LnB1c2gobCkpLGV9ZnVuY3Rpb24gZiQoZSl7dmFyIHQ9ZTEoZS50YXJnZXQpO2lmKG51bGwhPT10KXt2YXIgbj1jKHQpO2lmKG51bGwhPT1uKXtpZigxMz09PSh0PW4udGFnKSl7aWYobnVsbCE9PSh0PWYobikpKXtlLmJsb2NrZWRPbj10LGVIKGUucHJpb3JpdHksZnVuY3Rpb24oKXtmeChuKX0pO3JldHVybn19ZWxzZSBpZigzMT09PXQpe2lmKG51bGwhPT0odD1kKG4pKSl7ZS5ibG9ja2VkT249dCxlSChlLnByaW9yaXR5LGZ1bmN0aW9uKCl7Zngobil9KTtyZXR1cm59fWVsc2UgaWYoMz09PXQmJm4uc3RhdGVOb2RlLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpe2UuYmxvY2tlZE9uPTM9PT1uLnRhZz9uLnN0YXRlTm9kZS5jb250YWluZXJJbmZvOm51bGw7cmV0dXJufX19ZS5ibG9ja2VkT249bnVsbH1mdW5jdGlvbiBmSChlKXtpZihudWxsIT09ZS5ibG9ja2VkT24pcmV0dXJuITE7Zm9yKHZhciB0PWUudGFyZ2V0Q29udGFpbmVyczswPHQubGVuZ3RoOyl7dmFyIG49ZlQoZS5uYXRpdmVFdmVudCk7aWYobnVsbCE9PW4pcmV0dXJuIG51bGwhPT0odD1lMihuKSkmJmZFKHQpLGUuYmxvY2tlZE9uPW4sITE7dmFyIHI9bmV3KG49ZS5uYXRpdmVFdmVudCkuY29uc3RydWN0b3Iobi50eXBlLG4pO3R6PXIsbi50YXJnZXQuZGlzcGF0Y2hFdmVudChyKSx0ej1udWxsLHQuc2hpZnQoKX1yZXR1cm4hMH1mdW5jdGlvbiBmUShlLHQsbil7ZkgoZSkmJm4uZGVsZXRlKHQpfWZ1bmN0aW9uIGZXKCl7Zk09ITEsbnVsbCE9PWZEJiZmSChmRCkmJihmRD1udWxsKSxudWxsIT09ZkYmJmZIKGZGKSYmKGZGPW51bGwpLG51bGwhPT1mSSYmZkgoZkkpJiYoZkk9bnVsbCksZlIuZm9yRWFjaChmUSksZkEuZm9yRWFjaChmUSl9ZnVuY3Rpb24gZnEoZSx0KXtlLmJsb2NrZWRPbj09PXQmJihlLmJsb2NrZWRPbj1udWxsLGZNfHwoZk09ITAsYS51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrKGEudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksZlcpKSl9dmFyIGZLPW51bGw7ZnVuY3Rpb24gZlkoZSl7ZkshPT1lJiYoZks9ZSxhLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2soYS51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxmdW5jdGlvbigpe2ZLPT09ZSYmKGZLPW51bGwpO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCs9Myl7dmFyIG49ZVt0XSxyPWVbdCsxXSxsPWVbdCsyXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgcilpZihudWxsPT09Zk8ocnx8bikpY29udGludWU7ZWxzZSBicmVhazt2YXIgYT1lMihuKTtudWxsIT09YSYmKGUuc3BsaWNlKHQsMyksdC09MyxvdShhLHtwZW5kaW5nOiEwLGRhdGE6bCxtZXRob2Q6bi5tZXRob2QsYWN0aW9uOnJ9LHIsbCkpfX0pKX1mdW5jdGlvbiBmRyhlKXtmdW5jdGlvbiB0KHQpe3JldHVybiBmcSh0LGUpfW51bGwhPT1mRCYmZnEoZkQsZSksbnVsbCE9PWZGJiZmcShmRixlKSxudWxsIT09ZkkmJmZxKGZJLGUpLGZSLmZvckVhY2godCksZkEuZm9yRWFjaCh0KTtmb3IodmFyIG49MDtuPGZqLmxlbmd0aDtuKyspe3ZhciByPWZqW25dO3IuYmxvY2tlZE9uPT09ZSYmKHIuYmxvY2tlZE9uPW51bGwpfWZvcig7MDxmai5sZW5ndGgmJm51bGw9PT0obj1malswXSkuYmxvY2tlZE9uOylmJChuKSxudWxsPT09bi5ibG9ja2VkT24mJmZqLnNoaWZ0KCk7aWYobnVsbCE9KG49KGUub3duZXJEb2N1bWVudHx8ZSkuJCRyZWFjdEZvcm1SZXBsYXkpKWZvcihyPTA7cjxuLmxlbmd0aDtyKz0zKXt2YXIgbD1uW3JdLGE9bltyKzFdLG89bFtlcV18fG51bGw7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpb3x8Zlkobik7ZWxzZSBpZihvKXt2YXIgaT1udWxsO2lmKGEmJmEuaGFzQXR0cmlidXRlKCJmb3JtQWN0aW9uIikpe2lmKGw9YSxvPWFbZXFdfHxudWxsKWk9by5mb3JtQWN0aW9uO2Vsc2UgaWYobnVsbCE9PWZPKGwpKWNvbnRpbnVlfWVsc2UgaT1vLmFjdGlvbjsiZnVuY3Rpb24iPT10eXBlb2YgaT9uW3IrMV09aToobi5zcGxpY2UociwzKSxyLT0zKSxmWShuKX19fWZ1bmN0aW9uIGZYKCl7ZnVuY3Rpb24gZShlKXtlLmNhbkludGVyY2VwdCYmInJlYWN0LXRyYW5zaXRpb24iPT09ZS5pbmZvJiZlLmludGVyY2VwdCh7aGFuZGxlcjpmdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtyZXR1cm4gbD1lfSl9LGZvY3VzUmVzZXQ6Im1hbnVhbCIsc2Nyb2xsOiJtYW51YWwifSl9ZnVuY3Rpb24gdCgpe251bGwhPT1sJiYobCgpLGw9bnVsbCkscnx8c2V0VGltZW91dChuLDIwKX1mdW5jdGlvbiBuKCl7aWYoIXImJiFuYXZpZ2F0aW9uLnRyYW5zaXRpb24pe3ZhciBlPW5hdmlnYXRpb24uY3VycmVudEVudHJ5O2UmJm51bGwhPWUudXJsJiZuYXZpZ2F0aW9uLm5hdmlnYXRlKGUudXJsLHtzdGF0ZTplLmdldFN0YXRlKCksaW5mbzoicmVhY3QtdHJhbnNpdGlvbiIsaGlzdG9yeToicmVwbGFjZSJ9KX19aWYoIm9iamVjdCI9PXR5cGVvZiBuYXZpZ2F0aW9uKXt2YXIgcj0hMSxsPW51bGw7cmV0dXJuIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGUiLGUpLG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcigibmF2aWdhdGVzdWNjZXNzIix0KSxuYXZpZ2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlZXJyb3IiLHQpLHNldFRpbWVvdXQobiwxMDApLGZ1bmN0aW9uKCl7cj0hMCxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlIixlKSxuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm5hdmlnYXRlc3VjY2VzcyIsdCksbmF2aWdhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCJuYXZpZ2F0ZWVycm9yIix0KSxudWxsIT09bCYmKGwoKSxsPW51bGwpfX19ZnVuY3Rpb24gZlooZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZnVuY3Rpb24gZkooZSl7dGhpcy5faW50ZXJuYWxSb290PWV9ZkoucHJvdG90eXBlLnJlbmRlcj1mWi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsPT09dCl0aHJvdyBFcnJvcih1KDQwOSkpO2Z3KHQuY3VycmVudCx1NCgpLGUsdCxudWxsLG51bGwpfSxmSi5wcm90b3R5cGUudW5tb3VudD1mWi5wcm90b3R5cGUudW5tb3VudD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX2ludGVybmFsUm9vdDtpZihudWxsIT09ZSl7dGhpcy5faW50ZXJuYWxSb290PW51bGw7dmFyIHQ9ZS5jb250YWluZXJJbmZvO2Z3KGUuY3VycmVudCwyLG51bGwsZSxudWxsLG51bGwpLHN0KCksdFtlS109bnVsbH19LGZKLnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbj1mdW5jdGlvbihlKXtpZihlKXt2YXIgdD1lJCgpO2U9e2Jsb2NrZWRPbjpudWxsLHRhcmdldDplLHByaW9yaXR5OnR9O2Zvcih2YXIgbj0wO248ZmoubGVuZ3RoJiYwIT09dCYmdDxmaltuXS5wcmlvcml0eTtuKyspO2ZqLnNwbGljZShuLDAsZSksMD09PW4mJmYkKGUpfX07dmFyIGYwPW8udmVyc2lvbjtpZigiMTkuMy4wLWNhbmFyeS01MjY4NDkyNS0yMDI1MTExMCIhPT1mMCl0aHJvdyBFcnJvcih1KDUyNyxmMCwiMTkuMy4wLWNhbmFyeS01MjY4NDkyNS0yMDI1MTExMCIpKTtpZihxLmZpbmRET01Ob2RlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuX3JlYWN0SW50ZXJuYWxzO2lmKHZvaWQgMD09PXQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLnJlbmRlcil0aHJvdyBFcnJvcih1KDE4OCkpO3Rocm93IEVycm9yKHUoMjY4LGU9T2JqZWN0LmtleXMoZSkuam9pbigiLCIpKSl9cmV0dXJuIG51bGw9PT0oZT1udWxsIT09KGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hbHRlcm5hdGU7aWYoIXQpe2lmKG51bGw9PT0odD1jKGUpKSl0aHJvdyBFcnJvcih1KDE4OCkpO3JldHVybiB0IT09ZT9udWxsOmV9Zm9yKHZhciBuPWUscj10Ozspe3ZhciBsPW4ucmV0dXJuO2lmKG51bGw9PT1sKWJyZWFrO3ZhciBhPWwuYWx0ZXJuYXRlO2lmKG51bGw9PT1hKXtpZihudWxsIT09KHI9bC5yZXR1cm4pKXtuPXI7Y29udGludWV9YnJlYWt9aWYobC5jaGlsZD09PWEuY2hpbGQpe2ZvcihhPWwuY2hpbGQ7YTspe2lmKGE9PT1uKXJldHVybiBwKGwpLGU7aWYoYT09PXIpcmV0dXJuIHAobCksdDthPWEuc2libGluZ310aHJvdyBFcnJvcih1KDE4OCkpfWlmKG4ucmV0dXJuIT09ci5yZXR1cm4pbj1sLHI9YTtlbHNle2Zvcih2YXIgbz0hMSxpPWwuY2hpbGQ7aTspe2lmKGk9PT1uKXtvPSEwLG49bCxyPWE7YnJlYWt9aWYoaT09PXIpe289ITAscj1sLG49YTticmVha31pPWkuc2libGluZ31pZighbyl7Zm9yKGk9YS5jaGlsZDtpOyl7aWYoaT09PW4pe289ITAsbj1hLHI9bDticmVha31pZihpPT09cil7bz0hMCxyPWEsbj1sO2JyZWFrfWk9aS5zaWJsaW5nfWlmKCFvKXRocm93IEVycm9yKHUoMTg5KSl9fWlmKG4uYWx0ZXJuYXRlIT09cil0aHJvdyBFcnJvcih1KDE5MCkpfWlmKDMhPT1uLnRhZyl0aHJvdyBFcnJvcih1KDE4OCkpO3JldHVybiBuLnN0YXRlTm9kZS5jdXJyZW50PT09bj9lOnR9KHQpKT9mdW5jdGlvbiBlKHQpe3ZhciBuPXQudGFnO2lmKDU9PT1ufHwyNj09PW58fDI3PT09bnx8Nj09PW4pcmV0dXJuIHQ7Zm9yKHQ9dC5jaGlsZDtudWxsIT09dDspe2lmKG51bGwhPT0obj1lKHQpKSlyZXR1cm4gbjt0PXQuc2libGluZ31yZXR1cm4gbnVsbH0oZSk6bnVsbCk/bnVsbDplLnN0YXRlTm9kZX0sInVuZGVmaW5lZCIhPXR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18pe3ZhciBmMT1fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187aWYoIWYxLmlzRGlzYWJsZWQmJmYxLnN1cHBvcnRzRmliZXIpdHJ5e2V4PWYxLmluamVjdCh7YnVuZGxlVHlwZTowLHZlcnNpb246IjE5LjMuMC1jYW5hcnktNTI2ODQ5MjUtMjAyNTExMTAiLHJlbmRlcmVyUGFja2FnZU5hbWU6InJlYWN0LWRvbSIsY3VycmVudERpc3BhdGNoZXJSZWY6VyxyZWNvbmNpbGVyVmVyc2lvbjoiMTkuMy4wLWNhbmFyeS01MjY4NDkyNS0yMDI1MTExMCJ9KSxlXz1mMX1jYXRjaChlKXt9fW4uY3JlYXRlUm9vdD1mdW5jdGlvbihlLHQpe2lmKCFzKGUpKXRocm93IEVycm9yKHUoMjk5KSk7dmFyIG49ITEscj0iIixsPW9PLGE9b0wsbz1vTTtyZXR1cm4gbnVsbCE9dCYmKCEwPT09dC51bnN0YWJsZV9zdHJpY3RNb2RlJiYobj0hMCksdm9pZCAwIT09dC5pZGVudGlmaWVyUHJlZml4JiYocj10LmlkZW50aWZpZXJQcmVmaXgpLHZvaWQgMCE9PXQub25VbmNhdWdodEVycm9yJiYobD10Lm9uVW5jYXVnaHRFcnJvciksdm9pZCAwIT09dC5vbkNhdWdodEVycm9yJiYoYT10Lm9uQ2F1Z2h0RXJyb3IpLHZvaWQgMCE9PXQub25SZWNvdmVyYWJsZUVycm9yJiYobz10Lm9uUmVjb3ZlcmFibGVFcnJvcikpLHQ9ZmIoZSwxLCExLG51bGwsbnVsbCxuLHIsbnVsbCxsLGEsbyxmWCksZVtlS109dC5jdXJyZW50LHMxKGUpLG5ldyBmWih0KX0sbi5oeWRyYXRlUm9vdD1mdW5jdGlvbihlLHQsbil7aWYoIXMoZSkpdGhyb3cgRXJyb3IodSgyOTkpKTt2YXIgcixsPSExLGE9IiIsbz1vTyxpPW9MLGM9b00sZj1udWxsO3JldHVybiBudWxsIT1uJiYoITA9PT1uLnVuc3RhYmxlX3N0cmljdE1vZGUmJihsPSEwKSx2b2lkIDAhPT1uLmlkZW50aWZpZXJQcmVmaXgmJihhPW4uaWRlbnRpZmllclByZWZpeCksdm9pZCAwIT09bi5vblVuY2F1Z2h0RXJyb3ImJihvPW4ub25VbmNhdWdodEVycm9yKSx2b2lkIDAhPT1uLm9uQ2F1Z2h0RXJyb3ImJihpPW4ub25DYXVnaHRFcnJvciksdm9pZCAwIT09bi5vblJlY292ZXJhYmxlRXJyb3ImJihjPW4ub25SZWNvdmVyYWJsZUVycm9yKSx2b2lkIDAhPT1uLmZvcm1TdGF0ZSYmKGY9bi5mb3JtU3RhdGUpKSwodD1mYihlLDEsITAsdCxudWxsIT1uP246bnVsbCxsLGEsZixvLGksYyxmWCkpLmNvbnRleHQ9KHI9bnVsbCxyaCksbj10LmN1cnJlbnQsKGE9bCQobD1lQihsPXU0KCkpKSkuY2FsbGJhY2s9bnVsbCxsSChuLGEsbCksbj1sLHQuY3VycmVudC5sYW5lcz1uLGVSKHQsbiksc1IodCksZVtlS109dC5jdXJyZW50LHMxKGUpLG5ldyBmSih0KX0sbi52ZXJzaW9uPSIxOS4zLjAtY2FuYXJ5LTUyNjg0OTI1LTIwMjUxMTEwIn0sODgwMTQsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjshZnVuY3Rpb24gZSgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYiZnVuY3Rpb24iPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKXRyeXtfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18uY2hlY2tEQ0UoZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcihlKX19KCksdC5leHBvcnRzPWUucigxNDY0ODApfSw4NTEzMjMsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e29uQ2F1Z2h0RXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sb25VbmNhdWdodEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHB9fTtmb3IodmFyIGwgaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixsLHtlbnVtZXJhYmxlOiEwLGdldDpyW2xdfSk7bGV0IGE9ZS5yKDU1NTY4Miksbz1lLnIoMjY1NzEzKSxpPWUucigxMzIwNjEpLHU9ZS5yKDUyODI3OSkscz1lLnIoOTcyMzgzKSxjPWEuXyhlLnIoMTY4MDI3KSksZj17ZGVjb3JhdGVEZXZFcnJvcjplPT5lLGhhbmRsZUNsaWVudEVycm9yOigpPT57fSxvcmlnaW5Db25zb2xlRXJyb3I6Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpfTtmdW5jdGlvbiBkKGUsdCl7bGV0IG4scj10LmVycm9yQm91bmRhcnk/LmNvbnN0cnVjdG9yO2lmKG49bnx8cj09PXMuRXJyb3JCb3VuZGFyeUhhbmRsZXImJnQuZXJyb3JCb3VuZGFyeS5wcm9wcy5lcnJvckNvbXBvbmVudD09PWMuZGVmYXVsdClyZXR1cm4gcChlKTsoMCxpLmlzQmFpbG91dFRvQ1NSRXJyb3IpKGUpfHwoMCxvLmlzTmV4dFJvdXRlckVycm9yKShlKXx8Zi5vcmlnaW5Db25zb2xlRXJyb3IoZSl9ZnVuY3Rpb24gcChlKXsoMCxpLmlzQmFpbG91dFRvQ1NSRXJyb3IpKGUpfHwoMCxvLmlzTmV4dFJvdXRlckVycm9yKShlKXx8KDAsdS5yZXBvcnRHbG9iYWxFcnJvcikoZSl9KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sNjY1NzE2LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJjcmVhdGVJbml0aWFsUm91dGVyU3RhdGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1fX0pO2xldCByPWUucig0NTExOTEpLGw9ZS5yKDYwMTc2NCksYT1lLnIoNzM0NzI3KSxvPWUucig1MTM1NzYpLGk9ZS5yKDQ1MDU5MCk7ZnVuY3Rpb24gdSh7bmF2aWdhdGVkQXQ6ZSxpbml0aWFsRmxpZ2h0RGF0YTp0LGluaXRpYWxDYW5vbmljYWxVcmxQYXJ0czpuLGluaXRpYWxSZW5kZXJlZFNlYXJjaDp1LGluaXRpYWxQYXJhbGxlbFJvdXRlczpzLGxvY2F0aW9uOmN9KXtsZXQgZj1uLmpvaW4oIi8iKSx7dHJlZTpkLHNlZWREYXRhOnAsaGVhZDptfT0oMCxpLmdldEZsaWdodERhdGFQYXJ0c0Zyb21QYXRoKSh0WzBdKSxoPXtsYXp5RGF0YTpudWxsLHJzYzpwPy5bMF0scHJlZmV0Y2hSc2M6bnVsbCxoZWFkOm51bGwscHJlZmV0Y2hIZWFkOm51bGwscGFyYWxsZWxSb3V0ZXM6cyxsb2FkaW5nOnA/LlsyXT8/bnVsbCxuYXZpZ2F0ZWRBdDplfSxnPWM/KDAsci5jcmVhdGVIcmVmRnJvbVVybCkoYyk6ZjtyZXR1cm4oMCxvLmFkZFJlZnJlc2hNYXJrZXJUb0FjdGl2ZVBhcmFsbGVsU2VnbWVudHMpKGQsZyksKG51bGw9PT1zfHwwPT09cy5zaXplKSYmKDAsbC5maWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCkoZSxoLHZvaWQgMCxkLHAsbSkse3RyZWU6ZCxjYWNoZTpoLHB1c2hSZWY6e3BlbmRpbmdQdXNoOiExLG1wYU5hdmlnYXRpb246ITEscHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6ITB9LGZvY3VzQW5kU2Nyb2xsUmVmOnthcHBseTohMSxvbmx5SGFzaENoYW5nZTohMSxoYXNoRnJhZ21lbnQ6bnVsbCxzZWdtZW50UGF0aHM6W119LGNhbm9uaWNhbFVybDpnLHJlbmRlcmVkU2VhcmNoOnUsbmV4dFVybDooKDAsYS5leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSkoZCl8fGM/LnBhdGhuYW1lKT8/bnVsbCxwcmV2aW91c05leHRVcmw6bnVsbCxkZWJ1Z0luZm86bnVsbH19KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sMTk4NTY5LChlLHQsbik9PnsidXNlIHN0cmljdCI7bGV0IHIsbCxhLG87T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJoeWRyYXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQX19KTtsZXQgaT1lLnIoNTU1NjgyKSx1PWUucig4NDM0NzYpO2Uucig1MjM5MTEpO2xldCBzPWkuXyhlLnIoODgwMTQpKSxjPWkuXyhlLnIoMjcxNjQ1KSksZj1lLnIoMjM1MzI2KSxkPWUucig3NDI3MzIpLHA9ZS5yKDU5NzIzOCksbT1lLnIoODUxMzIzKSxoPWUucigxMzIxMjApLGc9ZS5yKDkyMjQ1KSx2PWUucig2OTk3ODEpLHk9aS5fKGUucig4NzU1MzApKSxiPWUucig2NjU3MTYpO2Uucig4MzcyKTtsZXQgdz1lLnIoODE0Mjk3KSxrPWUucig0NTA1OTApLFM9Zi5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW0sRT1mLmNyZWF0ZUZyb21GZXRjaCx4PWRvY3VtZW50LF89bmV3IFRleHRFbmNvZGVyLE49ITEsUD0hMSxDPW51bGw7ZnVuY3Rpb24gVChlKXtpZigwPT09ZVswXSlhPVtdO2Vsc2UgaWYoMT09PWVbMF0pe2lmKCFhKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiVW5leHBlY3RlZCBzZXJ2ZXIgZGF0YTogbWlzc2luZyBib290c3RyYXAgc2NyaXB0LiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMTgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bz9vLmVucXVldWUoXy5lbmNvZGUoZVsxXSkpOmEucHVzaChlWzFdKX1lbHNlIGlmKDI9PT1lWzBdKUM9ZVsxXTtlbHNlIGlmKDM9PT1lWzBdKXtpZighYSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIlVuZXhwZWN0ZWQgc2VydmVyIGRhdGE6IG1pc3NpbmcgYm9vdHN0cmFwIHNjcmlwdC4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTE4IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2xldCBuPWF0b2IoZVsxXSkscj1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKHZhciB0PTA7dDxuLmxlbmd0aDt0Kyspclt0XT1uLmNoYXJDb2RlQXQodCk7bz9vLmVucXVldWUocik6YS5wdXNoKHIpfX1sZXQgej1mdW5jdGlvbigpe28mJiFQJiYoby5jbG9zZSgpLFA9ITAsYT12b2lkIDApLE49ITB9OyJsb2FkaW5nIj09PWRvY3VtZW50LnJlYWR5U3RhdGU/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIseiwhMSk6c2V0VGltZW91dCh6KTtsZXQgTz1zZWxmLl9fbmV4dF9mPXNlbGYuX19uZXh0X2Z8fFtdO08uZm9yRWFjaChUKSxPLmxlbmd0aD0wLE8ucHVzaD1UO2xldCBMPW5ldyBSZWFkYWJsZVN0cmVhbSh7c3RhcnQoZSl7YSYmKGEuZm9yRWFjaCh0PT57ZS5lbnF1ZXVlKCJzdHJpbmciPT10eXBlb2YgdD9fLmVuY29kZSh0KTp0KX0pLE4mJiFQKSYmKG51bGw9PT1lLmRlc2lyZWRTaXplfHxlLmRlc2lyZWRTaXplPDA/ZS5lcnJvcihPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIlRoZSBjb25uZWN0aW9uIHRvIHRoZSBwYWdlIHdhcyB1bmV4cGVjdGVkbHkgY2xvc2VkLCBwb3NzaWJseSBkdWUgdG8gdGhlIHN0b3AgYnV0dG9uIGJlaW5nIGNsaWNrZWQsIGxvc3Mgb2YgV2ktRmksIG9yIGFuIHVuc3RhYmxlIGludGVybmV0IGNvbm5lY3Rpb24uIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUxMTciLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkpOmUuY2xvc2UoKSxQPSEwLGE9dm9pZCAwKSxvPWV9fSksTT13aW5kb3cuX19ORVhUX0NMSUVOVF9SRVNVTUU7ZnVuY3Rpb24gRCh7aW5pdGlhbFJTQ1BheWxvYWQ6ZSxhY3Rpb25RdWV1ZTp0LHdlYlNvY2tldDpuLHN0YXRpY0luZGljYXRvclN0YXRlOnJ9KXtyZXR1cm4oMCx1LmpzeCkoeS5kZWZhdWx0LHthY3Rpb25RdWV1ZTp0LGdsb2JhbEVycm9yU3RhdGU6ZS5HLHdlYlNvY2tldDpuLHN0YXRpY0luZGljYXRvclN0YXRlOnJ9KX1sPU0/UHJvbWlzZS5yZXNvbHZlKEUoTSx7Y2FsbFNlcnZlcjpoLmNhbGxTZXJ2ZXIsZmluZFNvdXJjZU1hcFVSTDpnLmZpbmRTb3VyY2VNYXBVUkwsZGVidWdDaGFubmVsOnJ9KSkudGhlbihhc3luYyBlPT4oMCxrLmNyZWF0ZUluaXRpYWxSU0NQYXlsb2FkRnJvbUZhbGxiYWNrUHJlcmVuZGVyKShhd2FpdCBNLGUpKTpTKEwse2NhbGxTZXJ2ZXI6aC5jYWxsU2VydmVyLGZpbmRTb3VyY2VNYXBVUkw6Zy5maW5kU291cmNlTWFwVVJMLGRlYnVnQ2hhbm5lbDpyLHN0YXJ0VGltZTowfSk7bGV0IEY9Yy5kZWZhdWx0LlN0cmljdE1vZGU7ZnVuY3Rpb24gSSh7Y2hpbGRyZW46ZX0pe3JldHVybiBlfWxldCBSPXtvbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yOmZ1bmN0aW9uKCl7cmV0dXJuKCk9Pnt9fSxvblJlY292ZXJhYmxlRXJyb3I6cC5vblJlY292ZXJhYmxlRXJyb3Isb25DYXVnaHRFcnJvcjptLm9uQ2F1Z2h0RXJyb3Isb25VbmNhdWdodEVycm9yOm0ub25VbmNhdWdodEVycm9yfTthc3luYyBmdW5jdGlvbiBBKGUsdCl7bGV0IG4scixhPWF3YWl0IGw7KDAsdy5zZXRBcHBCdWlsZElkKShhLmIpO2xldCBvPURhdGUubm93KCksaT0oMCx2LmNyZWF0ZU11dGFibGVBY3Rpb25RdWV1ZSkoKDAsYi5jcmVhdGVJbml0aWFsUm91dGVyU3RhdGUpKHtuYXZpZ2F0ZWRBdDpvLGluaXRpYWxGbGlnaHREYXRhOmEuZixpbml0aWFsQ2Fub25pY2FsVXJsUGFydHM6YS5jLGluaXRpYWxSZW5kZXJlZFNlYXJjaDphLnEsaW5pdGlhbFBhcmFsbGVsUm91dGVzOm5ldyBNYXAsbG9jYXRpb246d2luZG93LmxvY2F0aW9ufSksZSksZj0oMCx1LmpzeCkoRix7Y2hpbGRyZW46KDAsdS5qc3gpKGQuSGVhZE1hbmFnZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTp7YXBwRGlyOiEwfSxjaGlsZHJlbjooMCx1LmpzeCkoSSx7Y2hpbGRyZW46KDAsdS5qc3gpKEQse2luaXRpYWxSU0NQYXlsb2FkOmEsYWN0aW9uUXVldWU6aSx3ZWJTb2NrZXQ6cixzdGF0aWNJbmRpY2F0b3JTdGF0ZTpufSl9KX0pfSk7Il9fbmV4dF9lcnJvcl9fIj09PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pZD9zLmRlZmF1bHQuY3JlYXRlUm9vdCh4LFIpLnJlbmRlcihmKTpjLmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uKCgpPT57cy5kZWZhdWx0Lmh5ZHJhdGVSb290KHgsZix7Li4uUixmb3JtU3RhdGU6Q30pfSl9KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sNDk0NTUzLChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2xldCByPWUucigzOTY1MTcpO2Uucig1OTcyMzgpLHdpbmRvdy5uZXh0LnR1cmJvcGFjaz0hMCxzZWxmLl9fd2VicGFja19oYXNoX189IiI7bGV0IGw9ZS5yKDU1MjYpOygwLHIuYXBwQm9vdHN0cmFwKSh0PT57bGV0e2h5ZHJhdGU6bn09ZS5yKDE5ODU2OSk7bihsLHQpfSksKCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX1dKTs="}},"time_used":21,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":21,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/icon.png?icon.9fb70b49.png","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.332Z","timestamp":1785142498332,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /icon.png?icon.9fb70b49.png HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 12182\r\ncache-control: public, max-age=0, must-revalidate\r\ncontent-disposition: inline; filename=\"icon.png\"\r\ncontent-type: image/png\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: \"0d0143d1f5bf5c44fec22837cde4004d\"\r\nlast-modified: Mon, 27 Jul 2026 05:31:55 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /icon.png\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::tjcl7-1785142498337-fe8325df72a6\r\ncontent-length: 5036\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":5036,"size_decoded":5572,"mime_type":"image/png","magic":"PNG image data, 197 x 201, 8-bit/color RGBA, non-interlaced","md5":"0d0143d1f5bf5c44fec22837cde4004d","sha1":"b3077a979494fa452b0e08f074bae10cc1556b4f","sha256":"5a21afe3082ce5f6b8b9423536e6a33f14e0f77fdc066987ad2f02917dc146ec","sha512":"38d8bb017f3accdd60123c7b94c0f332f47fd04edbe543b6a0133a4657e642aef050ba1dfc2e91f59829eca4b49c2f163eba8b6ef1fc425e18775606a59680d4","ssdeep":"96:HknGLWp8XjcTyBNMkrHFEbtKM5HHffHGBNZfHQJpdldifP2T4XdHp3:HknO0IyhnmdAdiG8dHF","tlshash":"1da1d64eff20dc4143686988f4ebd36ad577dac0e9c2d1c06ac58a1749232badd27396","first_seen":"2026-07-27T06:16:09.143345Z","last_seen":"2026-07-27T08:57:45.691259Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAMUAAADJCAYAAACT+vaLAAAACXBIWXMAAC4jAAAuIwF4pT92AAAMM2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDMgNzkuOTY5MGE4NywgMjAyNS8wMy8wNi0xOToxMjowMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBUUGc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC90L3BnLyIgeG1sbnM6c3REaW09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9EaW1lbnNpb25zIyIgeG1sbnM6eG1wRz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL2cvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIElsbHVzdHJhdG9yIDI4LjcgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNS0wOS0xMFQxMjo1NjowMC0wNTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0wOS0xMFQxMjo1NzowMS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDktMTBUMTI6NTc6MDEtMDU6MDAiIHhtcFRQZzpOUGFnZXM9IjEiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJGYWxzZSIgeG1wVFBnOkhhc1Zpc2libGVPdmVycHJpbnQ9IkZhbHNlIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0YzM1ZTNkYi1jNDNhLTg5NDQtODdiZC1kZDJmYmQyOTdkZDciIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjZTEwZjU0NS1iNDE2LWNmNGItYTNiOC1iM2M2ZGM2ZTZjOWEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkMTE0NjVhOS1kM2QwLTM3NDAtODI1OC1mMzUwZDFiYTkwN2QiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wVFBnOk1heFBhZ2VTaXplIHN0RGltOnc9IjEuMDcyMTAzIiBzdERpbTpoPSIxLjAwMTg2MSIgc3REaW06dW5pdD0iSW5jaGVzIi8+IDx4bXBUUGc6UGxhdGVOYW1lcz4gPHJkZjpTZXE+IDxyZGY6bGk+Q3lhbjwvcmRmOmxpPiA8cmRmOmxpPk1hZ2VudGE8L3JkZjpsaT4gPHJkZjpsaT5ZZWxsb3c8L3JkZjpsaT4gPHJkZjpsaT5CbGFjazwvcmRmOmxpPiA8L3JkZjpTZXE+IDwveG1wVFBnOlBsYXRlTmFtZXM+IDx4bXBUUGc6U3dhdGNoR3JvdXBzPiA8cmRmOlNlcT4gPHJkZjpsaSB4bXBHOmdyb3VwTmFtZT0iRGVmYXVsdCBTd2F0Y2ggR3JvdXAiIHhtcEc6Z3JvdXBUeXBlPSIwIi8+IDwvcmRmOlNlcT4gPC94bXBUUGc6U3dhdGNoR3JvdXBzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vcG9zdHNjcmlwdCB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUuaWxsdXN0cmF0b3IiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi9wb3N0c2NyaXB0IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5pbGx1c3RyYXRvciIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWQ5MjY4ZWUtZDBlZS1hNjQ4LWEzNWMtNDE5NDgyNDhkMjAyIiBzdEV2dDp3aGVuPSIyMDI1LTA5LTEwVDEyOjU2OjAwLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBJbGx1c3RyYXRvciAyOC43IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQgdG8gaW1hZ2UvZXBzZiIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDUwYzY4MWEtMjE0MC1jMDRlLThmYzktYjA5YmFkYWVjZDViIiBzdEV2dDp3aGVuPSIyMDI1LTA5LTEwVDEyOjU3OjAxLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjYuMTAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vcG9zdHNjcmlwdCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL2Vwc2YgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RF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"}},"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":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/Silka_Bold-s.p.6d3cd53a.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.372Z","timestamp":1785142498372,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/Silka_Bold-s.p.6d3cd53a.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"Silka_Bold-s.p.6d3cd53a.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"12525b4c746ed034e64894c5d0565a04\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/Silka_Bold-s.p.6d3cd53a.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::vg8gr-1785142498377-cd07c5c6f98c\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":45088,"size_decoded":23187,"mime_type":"font/otf","magic":"OpenType font data","md5":"12525b4c746ed034e64894c5d0565a04","sha1":"a82236893e28fe4f7013337edaa124e79fb44bdc","sha256":"2adcd76cebb1c8c6faa040f83552ecd93e1e643fd147c325e113444dd877c8f3","sha512":"cc934aba16ee11267795a349416f8a112ea929666d90ed5a154499ec9704aae0c1ce54322b44a36717b0920c78a7508084e9b070d001d7dbafe2ec1b8f6df6a6","ssdeep":"768:JUpqNrZfL7QGVaa4NYHW1NE6MYIttBKVKLddmDjXoj+CHu1En5S1:Wp8V3naa4NYHW1NE6MYytzddmDjCO1E+","tlshash":"c9137c59f329e380fb8ccd7050e757766b17b70d9fa7632ab119f2011be03960e68849","first_seen":"2023-09-20T14:32:09Z","last_seen":"2026-07-27T08:57:45.665291Z","times_seen":38,"resource_available":false,"data":"T1RUTwAMAIAAAwBAQ0ZGILG9fBEAAA6kAAB/LEdERUYJCwkmAACN0AAAAIhHUE9TKGkpwgAAjlgAABxCR1NVQqYxjBgAAKqcAAAFgk9TLzJp0avzAAAGyAAAAGBjbWFwMHEp0AAACoAAAAQEaGVhZBI4VX0AAADUAAAANmhoZWEHYgTMAAAGpAAAACRobXR4OAk8IAAAAQwAAAWYbWF4cAFmUAAAAADMAAAABm5hbWUhxCj5AAAHKAAAA1Zwb3N0/7gAMgAADoQAAAAgAABQAAFmAAAAAQAAAAEAAOCWD8JfDzz1AAMD6AAAAADXvAjvAAAAANe8CO//UP8NBFkDsgAAAAMAAgAAAAAAAAI4ACICwwANAsMADQLDAA0CwwANAsMADQLDAA0CwwANAsMADQLDAA0CwwANA6EADQJnAEUDIgAoAyIAKAMiACgDIgAoAyIAKALNAEUC2QAXAs0ARQLZABcCMgBFAjIARQIyAEUCMgBFAjIARQIyAEUCMgBFAjIARQIyAEUCKABFAykAKAMpACgDKQAoAykAKALdAEUDRwBFAt0ARQEoAEUBKABFASj/6AEo/+QBKAA8ASgADQEoAAwBKAA1AlMAHgJTAB4ClwBFApcARQIZAEUCGQBFAhUARQIZAEUCWABFAjkAJAN5AEUC5ABFAuQARQLkAEUC5ABFAuQARQLkAEUDNwAoAzcAKAM3ACgDNwAoAzcAKAM3ACgDNwAoAzAAKAM3ACgEVAAoAmIARQJcAEUDOQAoAocARQKHAEUChwBFAocARQJgABwCYAAcAmAAHAJgABwCYAAcAroARQJcABsCMwAbAlwAGwJcABsCXAAbArYAPgK2AD4CtgA+ArYAPgK2AD4CtgA+ArYAPgK2AD4CtgA+AsMADQPkAA0D5AANA+QADQPkAA0D5AANApYACgKcAA0CnAANApwADQKcAA0CnAANAnEAKwJxACsCcQArAnEAKwJ8ACQCfAAkAnwAJAJ8ACQCfAAkAnwAJAJ8ACQCfAAkAnwAJAJ8ACQDzQAkAo0AQgJrACQCawAkAmsAJAJrACQCawAkAnwAJAJqACQC9QAkAn0AJAJgACQCYAAkAmAAJAJgACQCYAAkAmAAJAJgACQCYAAkAmAAJAG4ABsCgwAkAoMAJAKDACQCgwAkAlwAQgJcAAUCXP/dAQ0ANAENAEIBDQBCAQ3/5gEN/+EBDQA3AQ0ACgENAAkBBgAqAUAAAgE7AAIBOwACAlIAQgJSAEICUgBCAUMAQgFDAEIBbABCAUMAQgG7AEIBiQAfA5AAQgJYAEICWABCAlgAQgJYAEICWABCAlgAQgKBACQCgQAkAoEAJAKBACQCgQAkAoEAJAKBACQCgQAkAoEAJAQDACQCjQBCAo4AQgKDACQBuwBCAbsAQgG7AEIBuwBCAhMAJAITACQCEwAkAhMAJAITACQCewBCAbwAJQG0ACUBtAAlAbwAJQG8ACUCXAA/AlwAPwJcAD8CXAA/AlwAPwJcAD8CXAA/AlwAPwJcAD8CSAAQA2sAFwNrABcDawAXA2sAFwNrABcCQAAPAlAAEAJQABACUAAQAlAAEAJQABACDgAuAg4ALgIOAC4CDgAuAg8AMgINADICZAA9AdAAPgJLADsCWQBDAoIANwJPAEECZgA4AjAAMAJnADQCZgA4Al8AOwJfAJ8CXwBAAl8APwJfACUCXwA9Al8ANAJfAEcCXwAxAl8ANAEfAC4BdgAuAXgALgID//wDcQAuA2MALgOCAC4BEgA0AREAMgESADQBFQAyAxcANAEsAEEBLABBAi8ANQIvADUBEgA0AdAAPAHRADoCVwAuAgsAIgILACIB+QAmAfkATAHzAEMB8wBjAaYAQwGmAEsBgAAxAokAMQOFADECjQA3AREALgHsADUB5gA1AeYANQETADUBEwA1AjcAQQI6AEEBSAA6AUgAOgHQAD8BCAA/AQIAAAAAAAACawAkAmAAHAJwABQCGgA1Ao0AOAKcAA0B9QAFAfUABQHpAAUB9QAFAfUABQIUADYCFAA2AhMAIAJSADMDRAA/BJUAPwMLACMCnwAjAy4AMgKeABcDCwAjAp4AHgMuABkCnwARA34AKAK7ACQCYQA6AhcAJQM4ACgCHwArA2IAMgGVADUBTQBcAdIAJwHSACcEkgBFA9IANQAA/1ABGwArAXkAKwGcACQBBgAgAZwAJAGdACIBDQAvARsAKwHLAC0BbgArAQQAKwEnACoBuAAoAOcAMgAAAAAAAQAAA7b/BgAABJX/UP/KBFkAAQAAAAAAAAAAAAAAAAAAAWYAAwJSArwABQAIAooCWAAAAEsCigJYAAABXgAyAS8AAAAACAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAVUtXTgBAAA0iEgO2/wYAAAO2APogAACTAAAAAAH6ArwAAAAgAAMAAAAYASYAAQAAAAAAAAAvAAAAAQAAAAAAAQAFAC8AAQAAAAAAAgAEADQAAQAAAAAAAwAVADgAAQAAAAAABAAKAE0AAQAAAAAABQA8AFcAAQAAAAAABgAKAJMAAQAAAAAACAAFAJ0AAQAAAAAACQAFAJ0AAQAAAAAACwAUAKIAAQAAAAAADAAUAKIAAwABBAkAAABeALYAAwABBAkAAQAUARQAAwABBAkAAgAOASgAAwABBAkAAwAqATYAAwABBAkABAAUARQAAwABBAkABQB4AWAAAwABBAkABgAUAdgAAwABBAkACAAKAewAAwABBAkACQAKAewAAwABBAkACwAoAfYAAwABBAkADAAoAfYAAwABBAkAEAAKAh4AAwABBAkAEQAIAihDb3B5cmlnaHQgqSAyMDE4IGJ5IGF0aXBvLiBBbGwgcmlnaHRzIHJlc2VydmVkLlNpbGthQm9sZDEuMDAwO1VLV047U2lsa2EtQm9sZFNpbGthIEJvbGRWZXJzaW9uIDEuMDAwO1BTIDAwMS4wMDA7aG90Y29udiAxLjAuODg7bWFrZW90Zi5saWIyLjUuNjQ3NzVTaWxrYS1Cb2xkYXRpcG93d3cuYXRpcG9mb3VuZHJ5LmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQA4ACAAYgB5ACAAYQB0AGkAcABvAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4AUwBpAGwAawBhACAAQgBvAGwAZABSAGUAZwB1AGwAYQByADEALgAwADAAMAA7AFUASwBXAE4AOwBTAGkAbABrAGEALQBCAG8AbABkAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBQAFMAIAAwADAAMQAuADAAMAAwADsAaABvAHQAYwBvAG4AdgAgADEALgAwAC4AOAA4ADsAbQBhAGsAZQBvAHQAZgAuAGwAaQBiADIALgA1AC4ANgA0ADcANwA1AFMAaQBsAGsAYQAtAEIAbwBsAGQAYQB0AGkAcABvAHcAdwB3AC4AYQB0AGkAcABvAGYAbwB1AG4AZAByAHkALgBjAG8AbQBTAGkAbABrAGEAQgBvAGwAZAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAPwAAAAWgBAAAUAGgANAC8AOQB+AKMApQCrALAAtAEHARMBGwEnASsBMQFIAU0BWwFnAWsBfgGSAhsCNwLHAt0DJh6FHp4e8yAUIBogHiAiICYgMCA6IEQgrCEWISIhkyGZIhL//wAAAA0AIAAwADoAoQClAKcArgCyALYBCgEWAR4BKgEuATQBSgFQAV4BagFuAZICGAI3AsYC2AMmHoAenh7yIBMgGCAcICAgJiAwIDkgRCCsIRYhIiGQIZYiEv//ASIAAAC+AAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/6EAAP5uAAAAAP4wAADhuAAA4QwAAAAAAADg5+EQ4PHgweCG4D7gLQAAAADfJQABAAAAWAAAAHQA/AAAAP4BBgEKAQ4BsAHCAcwB3gHgAeYCDgIUAioCPAI+AAACXAAAAmACYgAAAmoAAAJyAAACcgJ2AnoAAAAAAAAAAAAAAAAAAAJwAnYAAAAAAS4BDgEsARUBMQE/AUoBLQEYARkBFAE2AQoBHgEJARYBCwEMATwBOgE7ARABSQABAAwADQASABYAHwAgACQAJwAvADEAMwA5ADoAQABKAEwATQBRAFcAXABlAGYAawBsAHEBHAEXAR0BPgEhAV4AdQCAAIEAhgCKAJMAlACYAJsApACnAKoAsACxALcAwQDDAMQAyADOANMA3ADdAOIA4wDoARoBUQEbAT0BDwEwATQBTAFcAU0A7AEoAU4BYAFQAQMBBAFXAUsBEgFaAQIA7QEpAQcBBgEIAREABgACAAQACgAFAAkACwAQABwAFwAZABoALAAoACkAKgATAD8ARABBAEIASABDATgARwBgAF0AXgBfAG0ASwDNAHoAdgB4AH4AeQB9AH8AhACQAIsAjQCOAKEAnQCeAJ8AhwC2ALsAuAC5AL8AugE5AL4A1wDUANUA1gDkAMIA5gAHAHsAAwB3AAgAfAAOAIIAEQCFAA8AgwAUAIgAFQCJAB0AkQAbAI8AHgCSABgAjAAhAJUAIwCXACIAlgAmAJoAJQCZAC0AogAuAKMAKwCcADAApgAyAKgAqQA0AKsANgCtADUArAA3AK4AOACvADsAsgA9ALQAPACzAD4AtQBGAL0ARQC8AEkAwABOAMUAUADHAE8AxgBSAMkAVADLAFMAygBaANEAWQDQAFgAzwBiANkAZADbAGEA2ABjANoAaADfAG4A5QBvAHIA6QB0AOsAcwDqAFUAzABbANIBWwFZAVgBXQFiAWEBYwFfAGoA4QBnAN4AaQDgAHAA5wEmAScBIgEkASUBIwFSAVMBEwFHAUEBQwFFAUgBQgFEAUYAAwAAAAAAAP+1ADIAAAAAAAAAAAAAAAAAAAAAAAAAAAEABAIAAQEBC1NpbGthLUJvbGQAAQEBI/gPAPimAfinAvgUBPtE+4f67fpGBRwFhQ8cCFARuhx+/RIAjQIAAQAHAA4AFAAaACEAJwAtADMAPQBDAEoAUQBbAGUAaQB0AH8AhgCNAJcAngCiAKkArwC1ALgAvwDMANIA2ADfAOUA6wDyAPkBAAEIAQwBEgEYAR8BJgEsATkBPgFFAUwBVwFeAWcBcgF4AX4BhAGLAZIBmAGeAagBrgG4Ab4BxAHKAdEB2wHhAegB7wH5Af0CCAIPAhYCHwImAjECPQJEAkgCTgJUAlsCYgJoAm4CcQJ4AoUCiwKRApkCoAKmAq0CtAK6Ar4CxQLKAtUC3ALjAukC9gL/AwoDEAMWAxwDJgMsAzMDOQNAA0cDTQNVA10DZANrA3MDegOBA4MDhwOOA5UDnAOlA6wDtgO/A8YDzQPXA94D4gPuBCEEK0FicmV2ZUFtYWNyb25DY2Fyb25DYWN1dGVBb2dvbmVrRWNhcm9uRGNyb2F0RGNhcm9uQ2RvdGFjY2VudEdicmV2ZUVtYWNyb25Fb2dvbmVrRWRvdGFjY2VudEdkb3RhY2NlbnRIYmFySGNpcmN1bWZsZXhKY2lyY3VtZmxleEltYWNyb25Jb2dvbmVrSWRvdGFjY2VudHVuaTAxMzZMZG90dW5pMDE0NU5jYXJvbk5hY3V0ZUVuZ09tYWNyb25PaHVuZ2FydW1sYXV0TGNhcm9uTGFjdXRldW5pMDEzQlJjYXJvblJhY3V0ZXVuaTAyMTh1bmkxRTlFdW5pMDE1NlNjZWRpbGxhVGJhclNhY3V0ZVRjYXJvbnVuaTAxNjJ1bmkwMjFBV2FjdXRlVWh1bmdhcnVtbGF1dFVyaW5ndW5pMDEyMlVtYWNyb25XY2lyY3VtZmxleFVvZ29uZWtXZGllcmVzaXNZY2lyY3VtZmxleFdncmF2ZWFicmV2ZVlncmF2ZWFtYWNyb25hb2dvbmVrWmFjdXRlY2FjdXRlWmRvdGFjY2VudGNjYXJvbmNkb3RhY2NlbnRkY3JvYXRkY2Fyb25lY2Fyb25lbWFjcm9uZWRvdGFjY2VudGdicmV2ZWVvZ29uZWt1bmkwMTIzZ2RvdGFjY2VudGhiYXJoY2lyY3VtZmxleGltYWNyb25pb2dvbmVraS5sb2NsVFJLdW5pMDIzN2pjaXJjdW1mbGV4a2dyZWVubGFuZGljdW5pMDEzN2xkb3RsYWN1dGVsY2Fyb251bmkwMTNDdW5pMDE0Nm5jYXJvbm5hY3V0ZWVuZ29tYWNyb25vaHVuZ2FydW1sYXV0cmFjdXRlcmNhcm9uc2NlZGlsbGF1bmkwMTU3c2FjdXRldW5pMDIxOXVuaTAxNjN0Y2Fyb250YmFydW5pMDIxQnVyaW5nd2NpcmN1bWZsZXh1bWFjcm9udW9nb25la3dhY3V0ZXVodW5nYXJ1bWxhdXR3ZGllcmVzaXN5Y2lyY3VtZmxleHdncmF2ZXlncmF2ZXphY3V0ZXpkb3RhY2NlbnRzaXgudGZmaXZlLnRmb25lLnRmemVyby50ZmZvdXIudGZ0d28udGZ0aHJlZS50ZnNldmVuLnRmdW5pMDBCOXVuaTAwQjJlaWdodC50Zm5pbmUudGZ1bmkwMEIzQ1JFdXJvdW5pMjE5N2Fycm93dXB1bmkyMTk5YXJyb3dkb3dudW5pMjE5OGFycm93cmlnaHRhcnJvd2xlZnR1bmkyMTk2dW5pMjExNmRlZ3JlZS5hbHR1bmkwMzI2TlVMTGNhcm9uLlNsb3Zha0NvcHlyaWdodCBcKGNcKSAyMDE4IGJ5IGF0aXBvLiBBbGwgcmlnaHRzIHJlc2VydmVkLlNpbGthIEJvbGQAAAAAIgCrAYcArACtAK4BiAGLAK8AsACKACMAJAGKAYkAsQGPACUAmgGOAY0AJgCyAYwAswC0AZMAtQGRAZIAJwAoAZABtAGUACkBlQGWACoAtgC3ALgBmgC5AZgBmQArAZcALAGbAC0BpAGjAaUBnACMAC4ALwGfAZ4BnQGgALoAMAC7ALwAvQC+AaIBoQCNAL8AjgAxAJ0AMgAzAacBpgGqADQBrQDAAasBqAGpADUBrAGuAa8BsAA2AMEAwgDDAMQBsgG1AbcBswA3ADgBsQG2AbgBugA5ADoAxQG5AMYBvAA7Ab8AxwHBAEIAyAG7AMkAygDLAb0BvgDMAM0AkABDAEQBwAHCAM4BwwBFAKcBxQHEAEYAzwHGANAA0QHIANIBxwHKAEcASAHJAcsBzABJAc0BzgBKAJEA0wDUANUB0QDWAc8B0ABLAdIB0wBMAdUB1ABNAdcB2AHZAdYAkgBOAE8B3AHbAdoB3QDXAFAA2ADZANoA2wHfAd4AkwDcAJQAUQCiAFIAUwHgAeEB4wBUAeQA3QHiAeUAlQBVAegB5wHmAekAVgDeAN8A4ADhAe8B7AHtAeoAVwBYAe4B6wHwAfIAWQBaAOIB8QDjAfMAWwH0AOQB9QCLAI8AEQASABMAFAAVABYAFwAYABkAGgH5AfgB+wH8AfoB9wH2Af0CAAIBAf4B/wICAGMAmwCeAKMADwANABsAHAB5AAIAYAAgAHsAcgB0AAsABAAQAD0ACQAKAFwAXgA8AD4ADgBvAIkAQAB1AHYAaQB3AEEACABqAHgAawBsAAMAaAABAgMAYQAFAgQAZQBiAGQADACmAKgAnwAeAB8AHQBfAD8ABgB6AgYCBQIKAgkCCAIHAgsCDAAhAAcAcwBmAKoApQCZAKEAXQBwAHECDQIOAg8AfQCBAIgAhQB+AIMAggB8AIYAgACHAIQAfwIRAhABZgIAAQBOAIgA1gE0AYwB+gJIApgC/QNpA+QEMwSYBO4FVQXHBnQG5wcnB30H2ggwCFsImgjiCSsJkQngCh4KYgq4Ct4LPAu9DCwMpwzVDS8New2RDbkN6w47DnUOnQ7EDvwPNw+ND8AQBhAgEEwQeBCkENsRFRFUEYQRyBIWElgSnRMPE2MTyBQ3FL0VIxWWFfwWixceF7cX+Bg8GLwZCBloGdEaLhqcGxsbpRxjHOIdXh1+HbQd8B5oHpke1x8mH38f9CBEIKEg9yFYIcsh9CJEIqcjFCOXI/okOiRrJK4k+yVmJakl3CYnJnsmzCcdJ4Un/ih6KQYpainSKj4qvytXLAosaSy2LRQthC4jLosu6y9mL+EwWzC3MSQxozIhMrQzKzOZNAw0kTTUNU018zZ8NxU3UjexOAo4QjhWOHw4szkBOTk5XzmEOek6NjphOq465DstO2E7iDvAO/c8QjyGPMc9LT1wPcc+LT6CPuE/aD+zQA9AfED+QVtBxUInQrdDPEPbRDdEjETrRR1FY0W4RftGa0bsR35IOEi5SUBJiUnfSjtK0UsrS3JLykwyTLBNCE1vTcZONE60TuRPLU+JT/NQb1DLUQdRSFGbUf9SclLEUvNTOlOQU95UO1SAVNdU/VVcVblV9FZZVrZW3ldmV75YFVg6WJlY9lkxWZZZ81ocWqRa/FshW3lbx1vfXGFcxV1SXXJdjF3FXfleR16CXsBfL1+nX8lf62BKYLZgz2DpYSlhamHUYj1iYGKEYptisWLIYt5i+GMgY0hjcGONY6pj7WQzZFdkfGSvZMxkz2TSZSxl0GY3ZntmxmcaZ0FnV2eMZ9Vn+GggaEZogWivaVNqOmpoaqBq1WsJazprbWuja9tskG1FbXBuLm6/bzFvgG+5b9Bv/HA8cM9xXHF3cZBxuXHkcj5yaHKgcsBy2nMBcxhzSnOBc8Jz2nPdZYu9+Oy9Aa29+CS9A60W+Ij5UPyIBveO+8UV+z73kwX36Ab8Bvy/FfiSB/c++5MF93r7kxX7PveT9z73kwX8Bvy/Ffc+95P3PvuTBQ7woHb3EPch95n3QgGY+T0DmBb3Nga09xAF96AGtfsQBfc8BvuF+VAF+14Gk/xHFeL3mQWUBuH7mQUO8KB29xD3IfeZ90Lb9ywBmPk9A/e4+aAV9Abn9ywF+ygG+9z+OBX3Nga09xAF96AGtfsQBfc8BvuF+VAF+14Gk/xHFeL3mQWUBuH7mQUO8KB29xD3IfeZ90LZ9ycB92Pn9ucD9/X5nhXnwMHoHy8GbXhzaWd5oaseLwYuwFXoHvvo/Z4V9zYGtPcQBfegBrX7EAX3PAb7hflQBfteBpP8RxXi95kFlAbh+5kFDvCgdvcQ9yH3mfdC2/crAZj5PQP3TfmgFfMGyb8FkwbKVwXyBiL3KwX7Fgb7qf43Ffc2BrT3EAX3oAa1+xAF9zwG+4X5UAX7XgaT/EcV4veZBZQG4fuZBQ7woHb3EPch95n3Qtv3KAH3SPcnvvcnA/eR+aAVuKiqtrRurF5ia2piYKtstB/3Wxa0q6q2tGusYl5ubGBgqGy4H/xL/aAV9zYGtPcQBfegBrX7EAX3PAb7hflQBfteBpP8RxXi95kFlAbh+5kFDvCgdvcQ9yH3mfdC2/csAZj5PQP3z/mgFfMGW/csBfspBvtl/jgV9zYGtPcQBfegBrX7EAX3PAb7hflQBfteBpP8RxXi95kFlAbh+5kFDvCgdvcQ9yH3mfdC7PcBEvdw96wTABP493D5sRX3rPcB+6wG+2P+HhX3Nga09xAF96AGtfsQBfc8BvuF+VAF+14Gk/xHFeL3mQWUBuH7mQUO8PtZ5fcUdvcQ9yH3mfdCAfic90ID+RM5FZaQk5aZHrK8+4X5UAX7Xgb7gv1QBfc2BrT3EAX3oAa1+xAFxAZvaAV2cn1ybBpWtm+9HtzlcgZ6fpOcH/wQ9+8V4veZBZQG4fuZBQ7woHb3EPch95n3QrnM0ssB943S0dED9/f5fhXIt7bFxGC1TE5fYVFSt2DJH8wEdX6ZoKCYmqChmXx3dX19dh/76v2/Ffc2BrT3EAX3oAa1+xAF9zwG+4X5UAX7XgaT/EcV4veZBZQG4fuZBQ7woHb3EPch95n3Qtb0I/cmEvc+6PdC6BMAE/b4NfmbFRPuy7y87R8uBhP2cIl/fHYbE+5qcbVQG0tZXyUf6AamjZeZoBsT9rKiYcQbE+78KP2bFfc2BrT3EAX3oAa1+xAF9zwG+4X5UAX7XgaT/EcV4veZBZQG4fuZBQ7314v3HH/3IZ/3G/cl9xsS+Ej3MhO4mBb3NwYTeMb3EAX3XQYTuPsQ+Fr3HPu89yn3hPcb+4T3Jfey9xv8owcTeFb8RxX3E/efBZT7nwYOlIv3GfdA9wb3LPcVEtD3K/dN9y/7Jfc8E/TQFve7BvcH89b3FuVTvV2gH5EHE/i7qKq9yhr1PNv7Hh77pgb3K/utFfcs8ge8rG1gXWxqVx8l+7IV90AHE/TvBr63cFJPZW9UHw73WH73LPg69ywBs/c4A/gsfhX3UPcd9wj3Lqkf+0EGSHFJWDEb+w045PcO9wze5vcN5c5XRp4f90AG9y5t+xT3C/tSG/tu+yr7Mfti+2P3Kfsw928fDvdYfvcs+Dr3LM73LAGz9zgD9+n5oBX0Buf3LAX7KAad/kUV91D3HfcI9y6pH/tBBkhxSVgxG/sNOOT3DvcM3ub3DeXOV0aeH/dABvcubfsU9wv7Uhv7bvsq+zH7Yvtj9yn7MPdvHw73WH73LPg69yzO9ysBs/c4A/fn+aAV9xYG9PcrBSQGTFcFgwZNvwUjBvdC/kQV91D3HfcI9y6pH/tBBkhxSVgxG/sNOOT3DvcM3ub3DeXOV0aeH/dABvcubfsU9wv7Uhv7bvsq+zH7Yvtj9yn7MPdvHw73WPth2f8AFYAA/wBDgACk9yz7Enb4zfcsErP3OPeF1hOu+Y/3lRX7QQZIcUlYMRv7DTjk9w73DN7m9w3lzldGnh/3QAb3Lm37FPcL+1Ib+277Kvsx+2IfE577TvcM+yX3S3AeE+56KtOKBZKOlJGVG5qVgHwfE657goB6f4CUlYoeQQZcjLZswhvHs669HxPuvmaqXn99h4aFHoUGE66UrQX3UPcc9wj3LqkfDvdYfvcs+Dr3LL73PAGz9zj3BvdDA/gp+ZAVwa2uvLtpr1VWaWdbWq1owB+O/Z0V91D3HfcI9y6pH/tBBkhxSVgxG/sNOOT3DvcM3ub3DeXOV0aeH/dABvcubfsU9wv7Uhv7bvsq+zH7Yvtj9yn7MPdvHw73A4v3Hfg+9x0B0Pcy97L3OQPQFveNBvd09xz3HPdt92D7HPcj+3Qf+40G9zL8xxX4Pt8H8u5Q+yv7MydSJR8O9w+L9x33L/cE9zP3HQHh9zP3rPc4A/ff+VAV+4n7vEz7BMr7uPeJBvd09xr3HPdt92D7Gvcj+3QfhPzHFTz3L/cO9wT7Dvcz2gby7VD7K/szKFIlHw73A4v3Hfg+9x3c9ysB0Pcy97L3OQP3iPmhFfcWBvT3KwUkBkxXBYMGTb8FIwZF/jgV940G93T3HPcc9233YPsc9yP7dB/7jQb3MvzHFfg+3wfy7lD7K/szJ1IlHw73D4v3Hfcv9wT3M/cdAeH3M/es9zgD99/5UBX7ifu8TPsEyvu494kG93T3Gvcc9233YPsa9yP7dB+E/McVPPcv9w73BPsO9zPaBvLtUPsr+zMoUiUfDl+L9xz3Kfcb9yX3GwHQ9zID0Bb4Wvcc+7z3KfeH9xv7h/cl97H3G/xPBg5fi/cc9yn3G/cl9xvb9ywB0PcyA/eD+aAV9Abn9ywF+ygG+2/+OBX4Wvcc+7z3KfeH9xv7h/cl97H3G/xPBg5fi/cc9yn3G/cl9xvb9ysB0PcyA/eA+aAV9xYG9PcrBSQGTFcFgwZNvwUjBk3+NxX4Wvcc+7z3KfeH9xv7h/cl97H3G/xPBg5fi/cc9yn3G/cl9xvb9ysB0PcyA/cY+aAV8wbJvwWTBspXBfIGIvcrBfsWBvs8/jcV+Fr3HPu89yn3h/cb+4f3Jfex9xv8TwYOX4v3HPcp9xv3Jfcb2/coEtD3Mif3J773JxMAE/b3XPmgFbioqra0bqxeYmtqYmCrbLQf91sWtKuqtrRrrGJebmxgYKhsuB8T6Pve/aAV+Fr3HPu89yn3h/cb+4f3Jfex9xv8TwYOX4v3HPcp9xv3Jfcby/c8EtD3Mn/3QxMAE/T3wvmQFcGtrry7aa9VVmlnW1qtaMAfE+j7ff2QFfha9xz7vPcp94f3G/uH9yX3sfcb/E8GDl+L9xz3Kfcb9yX3G9v3LAHQ9zID95n5oBXzBlv3LAX7KQYo/jgV+Fr3HPu89yn3h/cb+4f3Jfex9xv8TwYOX4v3HPcp9xv3Jfcb7PcBEtD3Mk/3rBMAE/T3O/mxFfes9wH7rAYT+Cn+HhX4Wvcc+7z3KfeH9xv7h/cl97H3G/xPBg5f+1nl9vcc9yn3G/cl9xsB0Pcy9w33QgP3d/ccFfcp94f3G/uH9yX3sfcb/E/9UPfqB29oBXZyfXJsGla2b70e3OVyBnp+k5yWkJOWmR+yvAWM9xwGDlWgdveh9xv3NfcbAdD3MgPQFvcy96H3lfcb+5X3Nfex9xv8TwYO919+9yj3CfcW90f3LAGz9zgD+C1+Ffdx9yj3KfeKgh/8A/sW91MGS35DVigb+xA65/cP9wzc5vcQ4sleT6If90MG9yVp+xX3BPtMG/tu+yv7Mfti+2P3Kvsw928fDvdffvco9wn3FvdH9yzM9ycBs/c4yOf25wP4L/meFefAwegfLwZteHNpZ3mhqx4vBi7AVegeif2rFfdx9yj3KfeKgh/8A/sW91MGS35DVigb+xA65/cP9wzc5vcQ4sleT6If90MG9yVp+xX3BPtMG/tu+yv7Mfti+2P3Kvsw928fDvdf+3n3RLP3KPcJ9xb3R/csAbP3OAP4LX4V93H3KPcp94qCH/wD+xb3UwZLfkNWKBv7EDrn9w/3DNzm9xDiyV5Poh/3Qwb3JWn7FfcE+0wb+277K/sx+2L7Y/cq+zD3bx8/+2wV6Qa490QF+xAGDvdffvco9wn3FvdH9yy+9zwBs/c49w/3QwP4MvmQFcGtrry7aa9VVmlnW1qtaMAfhv2dFfdx9yj3KfeKgh/8A/sW91MGS35DVigb+xA65/cP9wzc5vcQ4sleT6If90MG9yVp+xX3BPtMG/tu+yv7Mfti+2P3Kvsw928fDvcToHb3qfcs96N3AdD3Mver9zMD0Bb3Mvep96v7qfcz+VD7M/uj+6v3o/syBg73faB296n3LNv3BfsF91MS9w73M/er9zITABPs+Zf5AhVWBhPc2fsyBxPsPfurBxPc2fszBxPsPVYHE9z7BcD8kfcz96n3q/up9zL4kcAH+2c7Ffur2/erBg73E6B296n3LPejd+/3KwHQ9zL3q/czA/da+aAV8wbJvwWTBspXBfIGIvcrBfsWBvt+/jcV9zL3qfer+6n3M/lQ+zP7o/ur96P7MgYO+8qgdvlQdwHQ9zID0Bb3MvlQ+zIGDvvKoHb5UHfv9ywB0PcyA975oBX0Buf3LAX7KAZM/jgV9zL5UPsyBg77yqB2+VB37/crAdD3MgNz+aAV8wbJvwWTBspXBfIGIvcrBfsWBn/+NxX3MvlQ+zIGDvvKoHb5UHfv9ygSb/cnWfcyUvcnEwAT9Lj5oBW4qKq2tG6sXmJramJgq2y0H/dbFrSrqra0a6xiXm5sYGCobLgfE+j7Q/2gFfcy+VD7MgYO+8qgdvlQd9/3PBLH90P7OvcyEwAT8Pcn+ZAVwa2uvLtpr1VWaWdbWq1owB8T6D39kBX3MvlQ+zIGDvvKoHb5UHfv9ywB0PcyA/X5oBXzBlv3LAX7KQbD/jgV9zL5UPsyBg77yqB2+VB39wn3AQHQ9zIDl/mxFfes9wH7rAbE/h4V9zL5UPsyBg77yvtZ5fcUdvlQdwHQ9zID93cW+VD7Mv1QugdvaAV2cn1ybBpWtm+9HtzlcgZ5f5OclpCTlpkfDoB/9yT4Q/cdAan3KvdW9zMD96p/Ffcy7Or3Kh/4Z/wR+x33cvvXB1ZyVENLarLBHvsqBvsi5Cz3Mx4OgH/3JPhD9x3b9ysBqfcq91b3MwP3QPmgFfMGyb8FkwbKVwXyBiL3KwX7FgaM/kMV9zLs6vcqH/hn/BH7Hfdy+9cHVnJUQ0tqssEe+yoG+yLkLPczHg7EoHb5UHcB0PcyA/kXFvuB+D33ffenBftXBvtn+58Fhfef+zL9UPcy92oG0d73N/u9BQ7E+3n3RNV2+VB3AdD3MgP4Kvg9Ffd996cF+1cG+2f7nwWF95/7Mv1Q9zL3agbR3vc3+70F90sG/B77eRXpBrj3RAX7EAYORov3IfjDdwHQ9zID0Bb4RPch+6b4w/syBg5Gi/ch+MN37/csAdD3MgPd+aAV9Abn9ywF+ygGTf44FfhE9yH7pvjD+zIGDkKL9yH3+PdfAdD3MvcA9gPQFvhE9yH7pvjD+zIG9577XxX2BqP3XwX7FwYORvt590TA9yH4w3cB0PcyA9AW+ET3Ifum+MP7Mgb3Hv41FekGuPdEBfsQBg6Fi/ch9zT3O/d8dwHQ9zLI9z8D0Bb4RPch+6b4w/syBvfE/CMVvq6uvLpor1hcZWdcWrFouh8OZov3IfgEd/dndwH09zID95v3IRX3PAf3KNMF9xQH+yhDBfeb+zL76AdGaQX7FAfQrQX7fPhE9yEHDvevoHb5UHcB0Pcs+FP3LQPQFvcs+DCRBvc2/DAF9xMG9yb4IAWR/CD3LflQ+1gG+zr8bwWFBvtR+G8F+1cGDvcaoHb5UHcB0Pct97z3LQPQFvct+EyRBvef/EwF90T5UPst/EyFBvug+EwF+0MGDvcaoHb5UHfv9ywB0Pct97z3LQP3z/mgFfQG5/csBfsoBvu7/jgV9y34TJEG95/8TAX3RPlQ+y38TIUG+6D4TAX7QwYO9xqgdvlQd+/3KwHQ9y33vPctA/fN+aAV9xYG9PcrBSQGTFcFgwZNvwUjBvsf/jcV9y34TJEG95/8TAX3RPlQ+y38TIUG+6D4TAX7QwYO9xr7efdE1Xb5UHcB0Pct97z3LQPQFvct+EyRBvef/EwF90T5UPst/EyFBvug+EwF+0MG92j+NRXpBrj3RAX7EAYO9xr7evcj9wB2+VB3AdD3Lfe89y0D+ED7ehX3H/Pf9yof+Uz7LfwrhQf7sPgrBfsz/VD3LfhNkQb3sfwpBWwHXHVeTR4O9xqgdvlQd+r0I/cmEtD3LW7o90LoaPctEwAT6fhM+ZsVE9rLvLztHy4GE+pwiX98dhsT1WpxtVAbS1lfJR/oBqaNl5mgGxPpsqJhxBsT2fwH/ZsV9y34TJEG95/8TAX3RPlQ+y38TIUG+6D4TAX7QwYO921+9yz4OvcsAbP3OPgz9zkD+DB+Ffdp9zP3Mvdh92D7Mvcz+2r7avsy+zH7Yvtj9zH7MPdrH/csBPsONeX3DfcL4ef3DvcN4S/7C/sNNTH7DR8O921+9yz4OvcszvcsAbP3OPgz9zkD9/H5oBX0Buf3LAX7KAaZ/kUV92n3M/cy92H3YPsy9zP7avtq+zL7Mfti+2P3Mfsw92sf9ywE+w415fcN9wvh5/cO9w3hL/sL+w01MfsNHw73bX73LPg69yzO9ysBs/c4+DP3OQP3hvmgFfMGyb8FkwbKVwXyBiL3KwX7FgbM/kQV92n3M/cy92H3YPsy9zP7avtq+zL7Mfti+2P3Mfsw92sf9ywE+w415fcN9wvh5/cO9w3hL/sL+w01MfsNHw73bX73LPg69yzO9ygBs/c4rPcnvvcnsPc5A/fK+aAVuKiqtrRurF5ia2piYKtstB/3Wxa0q6q2tGusYl5ubGBgqGy4Hyr9rRX3afcz9zL3Yfdg+zL3M/tq+2r7Mvsx+2L7Y/cx+zD3ax/3LAT7DjXl9w33C+Hn9w73DeEv+wv7DTUx+w0fDvdtfvcs+Dr3LM73LAGz9zj4M/c5A/gI+aAV8wZb9ywF+ykG9xn+RRX3afcz9zL3Yfdg+zL3M/tq+2r7Mvsx+2L7Y/cx+zD3ax/3LAT7DjXl9w33C+Hn9w73DeEv+wv7DTUx+w0fDvdtfvcs+Dr3LM73LwGz9zj4M/c5A/ei+aAV8Abf9y8F+yUG9yb7LxXwBt/3LwX7JQY3/kgV92n3M/cy92H3YPsy9zP7avtq+zL7Mfti+2P3Mfsw92sf9ywE+w415fcN9wvh5/cO9w3hL/sL+w01MfsNHw73bX73LPg69yzf9wEBs/c41Pesyfc5A/ep+bEV96z3AfusBvcb/isV92n3M/cy92H3YPsy9zP7avtq+zL7Mfti+2P3Mfsw92sf9ywE+w415fcN9wvh5/cO9w3hL/sL+w01MfsNHw73Zn73LPg69ywBs/c4+DP3OQP5KPkFFdb3BgX7FwZmUgWfXFeWUxv7Z/s1+y77ZfsFuSrYSR85+xAF9xcGuM4FeLnAgMMb92n3M/cy92H3A1ztPs0f/Fz7pxX3C+Hn9w6joYeFoB77dvvqBWywebzCGvdk+2cVc3SPkXYf93b36QWqZp1aVRr7DTUx+w0eDvdtfvcs+Dr3LMn0I/cmErP3OKLo90Loq/c5EwAT6fhu+ZsVE9vLvLztHy4GE+twiX98dhsT3WpxtVAbS1lfJR/oBqaNl5mgGxPpsqJhxBsT2U39qBX3afcz9zL3Yfdg+zL3M/tq+2r7Mvsx+2L7Y/cx+zD3ax/3LAT7DjXl9w33C+Hn9w73DeEv+wv7DTUx+w0fDviKfvcs+x/3HPsc9x/3Jvcb9yH3H/sf9yz7KPcbErP3OPgx9zITAAATkwD4MH4VE1OArq2Qk6wf+L73HPv6Bq60or2TxQj3h/cb+4gGgsJ0vWqzCPfw9xv8tAYTVQCTa2iQaBv7avsy+zH7Yh8TkwD7Y/cx+zD3ax4TOYD3LAT7DjXl9w33C+Hn9w73C+Ev+wv7DTUx+wsfDo+gdvd69xr3XfcbAdD3MvdY9zUD0Bb3Mvd69wUG9xv3Ae73HfceIuv7Hx/7owb3MvvkFfdd7AfEtWVOTmFiUh8OiaB29xP3G/dc9xvydwHQ9zL3Uvc1A9AW9zL3E/YG9xv3Ae73HfcfIur7Hx8g8vsyBvcy/EoV91zmB8S1ZU5OYWNSHw73b373JfsY9wEzdvjI9ykSs/c1+Dn3NhOc+DB+Fc3Im6fAHxM8pGwF9zkGE1wz9wEFw8qt3+ka92D7Mvcz+2r7avsy+zH7Yh4TnPtj9zH7MPdrHvclBPsSNur3D/cN4Oj3EvcQ4S77DWCAZHhrH0LlBfs6Bvci+0MFf3NvhGwbDrSgdvd+9xv3WPcbAdD3Mvde9zYD0Bb3Mvd+6Qb3C/t+BfdEBvsp950F0q/A1eka9x0i6fsjHvumBvcy+98V91jvB8mzZVFKYGhSHw60oHb3fvcb91j3G9v3LAHQ9zL3Xvc2A/eB+aAV9Abn9ywF+ygG+23+OBX3Mvd+6Qb3C/t+BfdEBvsp950F0q/A1eka9x0i6fsjHvumBvcy+98V91jvB8mzZVFKYGhSHw60oHb3fvcb91j3G9v3KwHQ9zL3Xvc2A/d++aAV9xYG9PcrBSQGTFcFgwZNvwUjBk/+NxX3Mvd+6Qb3C/t+BfdEBvsp950F0q/A1eka9x0i6fsjHvumBvcy+98V91jvB8mzZVFKYGhSHw60+3n3RNV29373G/dY9xsB0Pcy9173NgPQFvcy937pBvcL+34F90QG+yn3nQXSr8DV6Rr3HSLp+yMe+6YG9zL73xX3WO8HybNlUUpgaFIfNvzqFekGuPdEBfsQBg6Nfvcl/wCVszP/AJSPXP8Ajb1x9yEBufcy92P3OQP3wX4V90Tu6/cWH/ev/Aj7BfcQGrCrp8nMr2lbjB73Mgb3KIX7ANb7Jhv7NTAu+wkf+7T4AfcI+xYaX2RySTtftMKIHvsrBvskivMq9z4bDo1+9yX/AJWzM/8AlI9c/wCNvXH3Ic73LAG59zL3Y/c5A/eA+aAV9Abn9ywF+ygGm/5FFfdE7uv3Fh/3r/wI+wX3EBqwq6fJzK9pW4we9zIG9yiF+wDW+yYb+zUwLvsJH/u0+AH3CPsWGl9kckk7X7TCiB77Kwb7JIrzKvc+Gw6Nfvcl/wCVszP/AJSPXP8Ajb1x9yHO9ysBufcy92P3OQP3ffmgFfcWBvT3KwUkBkxXBYMGTb8FIwb3Qf5EFfdE7uv3Fh/3r/wI+wX3EBqwq6fJzK9pW4we9zIG9yiF+wDW+yYb+zUwLvsJH/u0+AH3CPsWGl9kckk7X7TCiB77Kwb7JIrzKvc+Gw6N+2HZ/wAVgAD/AEOAAL12/wEiszP/AJSPXP8Ajb1x9yESufcy9yPWgPc5E7341PdpFfev/Aj7BfcQGrCrp8nMr2lbjB73Mgb3KIX7ANb7Jhv7NTAu+wkf+7T4AfcI+xYaX2RySTtftMKIHvsrBor7E9ww9x14CBP+eivSigWSj5ORlRualoB8HxO+e4GAen+AlJWKHkIGXIy1bMIbx7SuvR8T/r5lql5/foeGhR6FBpStBRO99z6P6ur3ExoOjft590Sz9yX/AJWzM/8AlI9c/wCNvXH3IQG59zL3Y/c5A/fBfhX3RO7r9xYf96/8CPsF9xAasKunycyvaVuMHvcyBvcohfsA1vsmG/s1MC77CR/7tPgB9wj7FhpfZHJJO1+0woge+ysG+ySK8yr3PhtE+2wV6Qa490QF+xAGDueL9x33Jf8Af4AA/wCbgAD3GxLQ9zLT90NP904o9zgT8vh8+C0VE/p9jAWVBxP09xL3GwX3Jfu4B/swOCf7CB/8ePcy+GgHwa62zR7hgQYT+vsH+xQF+yUHE/L3FAa1q2tiY2trYR/7Kfsd90QG9w/j7/cA9ww31S6SHw6JoHb4x/cdAfdy9zMD93IW9zP4x/dY9x38uvsd91cGDmCgdvfA9wT3K/cdAfdy9zMD+NX4xxX3Hfy6+x33V/sr+yn7BPcp+8D3M/fA9wD3BPsA9ysHDomgdvjH9x3b9ysB93L3MwP3h/mgFfcWBvT3KwUkBkxXBYMGTb8FIwbf/jcV9zP4x/dY9x38uvsd91cGDon7Ydn/ABWAAP8AQ4AAxnb4x/cdEvdy9zN41hO4+BEW+Mf3WPcd/Lr7HfdX/MeyBxP4eSIFE/TSigWSj5SRlBublYB8HxO0e4GAex4TuH6BlJWJH0IGXIy1bMIbE7THtK69HxP0vmaqXh4T+H99h4aFH4UGmLoFDon7efdE1Xb4x/cdAfdy9zMD93IW9zP4x/dY9x38uvsd91cGjP2sFekGuPdEBfsQBg7jfvcp+Mh3Acn3M/eQ9zMD9+9+Ffc/9wb3Bfc7H/hF+zP8RAc5YFk4OGC93B74Rfsz/EYH+zr3BfsF90AeDuN+9yn4yHfv9ywByfcz95D3MwP3qvmgFfQG5/csBfsoBp/+RRX3P/cG9wX3Ox/4Rfsz/EQHOWBZODhgvdwe+EX7M/xGB/s69wX7BfdAHg7jfvcp+Mh37/crAcn3M/eQ9zMD9z/5oBXzBsm/BZMGylcF8gYi9ysF+xYG0v5EFfc/9wb3Bfc7H/hF+zP8RAc5YFk4OGC93B74Rfsz/EYH+zr3BfsF90AeDuN+9yn4yHfv9ygSyfczVPcnvvcnZfczEwAT7PeD+aAVuKiqtrRurF5ia2piYKtstB/3Wxa0q6q2tGusYl5ubGBgqGy4HxPyMP2tFfc/9wb3Bfc7H/hF+zP8RAc5YFk4OGC93B74Rfsz/EYH+zr3BfsF90AeDuN+9yn4yHfv9ywByfcz95D3MwP3wfmgFfMGW/csBfspBvcf/kUV9z/3BvcF9zsf+EX7M/xEBzlgWTg4YL3cHvhF+zP8Rgf7OvcF+wX3QB4O4373KfjId+/3LwHJ9zP3kPczA/db+aAV8Abf9y8F+yUG9yb7LxXwBt/3LwX7JQY9/kgV9z/3BvcF9zsf+EX7M/xEBzlgWTg4YL3cHvhF+zP8Rgf7OvcF+wX3QB4O4373KfjId/cJ9wESyfczfPesfvczEwAT6Pdi+bEV96z3AfusBhP09yH+KxX3P/cG9wX3Ox/4Rfsz/EQHOWBZODhgvdwe+EX7M/xGB/s69wX7BfdAHg7j+1nl9wl2+Vt3Acn3M6/3QrX3MwP4bflQFfxEBzlgWTg4YL3cHvhF+zP8Rgf7Luz7AfcsfR54cwV2cn1ybBpWtm+9HtzlcgZ5f5OclpCTlpkfr7gF9xGp2vH3Hxr4RQcO4373KfjId83M0ssSyfczmdLR0ab3MxMAE//36fl+Fci3tsXEYLVMTl9hUVK3YMkfzAR1fpmgoJiaoKGZfHd1fX12HxP5kf3MFfc/9wb3Bfc7H/hF+zP8RAc5YFk4OGC93B74Rfsz/EYH+zr3BfsF90AeDvCgdvlQdwGY+T0D96MW9zcG95j5UAX7Qgb7Nvx6BYMG+zX4egX7RAYO+BqL94n7dHb4bfd3i3cSmPpeE1j3Vxb3TgYTaPcF+G0Fkwb3BPxtBfdPBvdK+VAF+0EGE5gl/FsFgwYi+FsF+1cGI/xbBYMGJfhbBftBBg74Gov3ift0dvht93eLd+/3LBKY+l4TXPhL+aAV9Abn9ywF+ygG+7n+OBX3TgYTbPcF+G0Fkwb3BPxtBfdPBvdK+VAF+0EGE5wl/FsFgwYi+FsF+1cGI/xbBYMGJfhbBftBBg74Gov3ift0dvht93eLd+/3KxKY+l4TXPfg+aAV8wbJvwWTBspXBfIGIvcrBfsWBvuG/jcV904GE2z3BfhtBZMG9wT8bQX3Twb3SvlQBftBBhOcJfxbBYMGIvhbBftXBiP8WwWDBiX4WwX7QQYO+BqL94n7dHb4bfd3i3fv9ygS99v3J773JxNe+CT5oBW4qKq2tG6sXmJramJgq2y0H/dbFrSrqra0a6xiXm5sYGCobLgf/Cj9oBX3TgYTbvcF+G0Fkwb3BPxtBfdPBvdK+VAF+0EGE54l/FsFgwYi+FsF+1cGI/xbBYMGJfhbBftBBg74Gov3ift0dvht93eLd+/3LBKY+l4TXPhi+aAV8wZb9ywF+ykG+0L+OBX3TgYTbPcF+G0Fkwb3BPxtBfdPBvdK+VAF+0EGE5wl/FsFgwYi+FsF+1cGI/xbBYMGJfhbBftBBg7DoHb5UHcBlfkKA5UW90kG9xf3fwWRBvcW+38F90oG+2v3+/dh9+kF+0cG+w/7agWFBvsP92oF+0YG91/76QUOyaB2+VB3AfeU9zMD95QW9zP3pAb3hPhABftDBvsi+6EFggb7I/ehBftBBveH/EEFDsmgdvlQd+/3LAH3lPczA/em+aAV9Abn9ywF+ygGSP44Ffcz96QG94T4QAX7Qwb7IvuhBYIG+yP3oQX7QQb3h/xBBQ7JoHb5UHfv9ysB95T3MwP3OvmgFfMGyb8FkwbKVwXyBiL3KwX7FgZ8/jcV9zP3pAb3hPhABftDBvsi+6EFggb7I/ehBftBBveH/EEFDsmgdvlQd+/3KBL3NvcnVvczVPcnEwAT9Pd/+aAVuKiqtrRurF5ia2piYKtstB/3Wxa0q6q2tGusYl5ubGBgqGy4HxPo+0b9oBX3M/ekBveE+EAF+0MG+yL7oQWCBvsj96EF+0EG94f8QQUOyaB2+VB37/csAfeU9zMD97z5oBXzBlv3LAX7KQbA/jgV9zP3pAb3hPhABftDBvsi+6EFggb7I/ehBftBBveH/EEFDp6L9xz4QfcbErb3XfcZ918TABPwthb4r/cc++aTBvfk+DcF9x38ofsb99aDB/vi/DcFDp6L9xz4Qfcb2/csErb3Xftd+K/7YfdfE+j3ifmgFfQG5/csBfsoBhP0+4/+OBX4r/cc++aTBvfk+DcF9x38ofsb99aDB/vi/DcFDp6L9xz4Qfcb2/crErb3Xftd+K/7YfdfE+j3h/mgFfcWBvT3KwUkBkxXBYMGTb8FIwYT9Cz+NxX4r/cc++aTBvfk+DcF9x38ofsb99aDB/vi/DcFDp6L9xz4Qfcby/c8Erb3XXX3Q3f3XxPo98n5kBXBra68u2mvVVZpZ1tarWjAHxP0+579kBX4r/cc++aTBvfk+DcF9x38ofsb99aDB/vi/DcFDqmL9xP3pvcTAa/3MfeH9ywD96x+FeK3vKOaH5NP9y74pPsvT4MGp3lbuDgb+yIp+wb7Ovs67vsA9yUfrvcgFUJawt3cvMPT0r5WNz1cUEEfDqmL9xP3pvcT1vcsEq/3MdP3WXH3LBP495347xX0Buf3LAX7KAZp/ZQV4re8o5ofk0/3Lvik+y9PgwaneVu4OBv7Iin7Bvs6+zru+wD3JR+u9yAVQlrC3dy8w9MfE/TSvlY3PVxQQR8OqYv3E/em9xPU9ycSr/cxfuf252j3LBPs99r47RXnwMHoHy8GbXhzaWd5oaseLwYuwFXoHl38+hXit7yjmh+TT/cu+KT7L0+DBqd5W7g4GxP0+yIp+wb7Ovs67vsA9yUfrvcgFUJawt3cvMPTHxPq0r5WNz1cUEEfDqmL9xP3pvcT1vcrKO4Sr/cxaPfoTfcsE+T3MvjvFfMGE9TJvwWTBhPkylcF8gYT1CL3KwX7Fgac/ZMV4re8o5ofk0/3Lvik+y9PgwaneVu4OBsT2PsiKfsG+zr7Ou77APclH673IBVCWsLd3LzD0x8T2tK+Vjc9XFBBHw6pi/cT96b3E9b3KBKv9zFj9ye+9ydN9ywT8vd2+O8VE+q4qKq2tG6sXmJramJgq2y0H/dbFhP0tKuqtrRrrGJebmxgYKhsuB/7Jfz8FeK3vKOaH5NP9y74pPsvT4MGp3lbuDgb+yIp+wb7Ovs67vsA9yUfrvcgFUJawt3cvMPTHxPy0r5WNz1cUEEfDqmL9xP3pvcT1vcsAa/3MY33Wbf3LAP3tPjvFfMGW/csBfspBuD9lBXit7yjmh+TT/cu+KT7L0+DBqd5W7g4G/siKfsG+zr7Ou77APclH673IBVCWsLd3LzD09K+Vjc9XFBBHw6pi/cT96b3E+f3ARKv9zGL96xm9ywT9PdV+QAVE+j3rPcBBhP0+6wG4v16FeK3vKOaH5NP9y74pPsvT4MGp3lbuDgb+yIp+wb7Ovs67vsA9yUfrvcgFUJawt3cvMPT0r5WNz1cUEEfDqmL9xP3pvcTAa/3MfeH9ywD+OAW+KT7L0+DB6d5W7g4G/siKfsG+zr7Ou77APcl4re8o5ofk0+2Bm5oBXdyfXJsGla1b74e3OVxBnp+k5yWkZOWmR/7fvdEFUJawt3cvMPT0r5WNz1cUEEfDqmL9xP3pvcTtMzSywGv9zGo0tHRjvcsA/fc+M0VyLe2xcRgtUxOX2FRUrdgyR/MBHV+maCgmJqgoZl8d3V9fXYfW/0bFeK3vKOaH5NP9y74pPsvT4MGp3lbuDgb+yIp+wb7Ovs67vsA9yUfrvcgFUJawt3cvMPT0r5WNz1cUEEfDqmL9xP3pvcTi3fl9CP3JhKv9zFZ6PdC6Ej3LBO1APga+OoVy7y87R8uBnCJf3x2GxOtAGpxtVAbE7MAS1lfJR/oBqaNl5mgsqJhxBv7Avz3FeK3vKOaH5NP9y74pPsvT4MGp3lbuDgbE7UA+yIp+wb7Ovs67vsA9yUfrvcgFUJawt0fE9UA3LzD0x4T1IDSvlY3PVxQQR8O+AN+9wX7BfcJ9wrx7/cJEq/3Gvd69yn3ivciE773j34V9wDLtb+tH5MGUbnUZ+Eb9yLq0vcDox8TfvsgBml9ZmxNGz5avNCIH/gYtwb3KDH3E/tDOkpuV2AehAa9ZkSqMBv7Eiw9IYkf9xAGqo6vrc0b1rVqXB95+zoH+wuHPFAnGhO+IuRG9xIe97/35RXBkru5zBvQvWBSkR/8pvt0FVRjo7Cxp5+1H/c0fwZPVlw5Hg66fvcg+xP3E/em9yD3ZXcSzfcv94P3MRO8+Ap+Ffck7vcA9zr3Oir3BvsiN1xeb3kfg/eu+y8GE3z9gvctBxO8x5MHc5q3WuMbaPcgFUFcxtnfvcDS07xTOjlaVEMfDph+9yD3pvcgAa/3MQP30H4V9yXy4vcRnB/7MgZhfmJtVxtAWsfY17rI18Kzal6ZH/cxBvcVfCLk+ycb+z77AfsN+zD7L/cC+w73Ph8OmH73IPem9yDK9ywBr/cxA/eR+PAV9Abn9ywF+ygGmf2VFfcl8uL3EZwf+zIGYX5ibVcbQFrH2Ne6yNfCs2pemR/3MQb3FXwi5PsnG/s++wH7Dfsw+y/3AvsO9z4fDph+9yD3pvcgyu4o9ysSr/cxE9j3jvjwFfcWBvT3KwUkBhPoTFcFgwYT2E2/BSMG9z/9lBX3JfLi9xGcH/syBmF+Ym1XG0Bax9jXusjXwrNqXpkf9zEG9xV8IuT7Jxv7PvsB+w37MPsv9wL7Dvc+Hw6Y+2HZ/wAVgAD/AEOAALx2+C/3IBKv9zH3R9YTABP899H3ExVAWsfY17rI18Kzal6ZH/cxBvcVfCLk+ycb+z77AfsN+zAfE7z7IOX7Bvckdx4T/Hos0ooFko+TkZUbmpaAfB8TvHuBgHp/gJSVih5CBlyMtWzCG8e0rr0fE/y+Zapef36HhoUehQaUrvcbkungm/cLGfsyBmF+Ym1XGw6Yfvcg96b3ILr3PAGv9zGv90MD99D44BXBra68u2mvVVZpZ1tarWjAH/ztBPcl8uL3EZwf+zIGYX5ibVcbQFrH2Ne6yNfCs2pemR/3MQb3FXwi5PsnG/s++wH7Dfsw+y/3AvsO9z4fDql+9yD7E/cT96b3IPdldxKv9zH3hPcvE7z3rH4V4re8o5ofkwYTfE/3LvmC+y/7roMHp3lbuDgb+yIp+wb7Oh8TvPs67vsA9yUervcgFUJawt3cvMPT0r5WNz1cUEEfDpd+9yT3gPcYAa/3Mfd89zED98h+Ffc9jPT3BPc2GvciTPcQIOoe16gF3gf7KFNipl2jXZwZNFqueq12rXQZL2gFOQf3NcevbLFhoGUZhQaYemacWhv7GPsCK/su+yz3APsB9ziKH/ckBEpZudPTvLnPy75eRkJbWkYfDvcrfvcg+xP3E/em9yCR918Sr/cx94T3L8b2E573rH4V4re8o5ofkwYTXk/3LvmC+y8HE677roMHp3lbuDgb+yIp+wb7Oh8Tnvs67vsA9yUe+AP4xBX2BqP3XwX7Fwb74P0DFUJawt0fE67cvMPT0r5WNx4Tnj1cUEEeDqp+9yD7E/cT96b3ILD3APsA90ASr/cx94T3LxMAE7b5F/lCFVQGE67L+y8HE7ZL+xgHE677APcY+wKDB6d5W7g4G/siKfsG+zr7Ou77APcl4re8o5ofkwYTbk/3LvjWwgcTrvvc/FcVQlrC3dy8w9PSvlY3PVxQQR8OjX73C/cH8u73CgGv9yf3ifckA/fEfhX3I+vS9wOjH/sgBmp8Ym1OG0Jau86GH/gZuAb3JzD3FPtC+zX7AvsH+zn7M/cH+wf3LR77CvflFb+Su7rNG9C5YFORHw6NfvcL9wfy7vcKyfcsAa/3J/eJ9yQD94f47xX0Buf3LAX7KAaX/ZQV9yPr0vcDox/7IAZqfGJtThtCWrvOhh/4GbgG9ycw9xT7Qvs1+wL7B/s5+zP3B/sH9y0e+wr35RW/kru6zRvQuWBTkR8OjX73C/cH8u73CsnuKPcrEq/3J/eJ9yQT7veF+O8V9xYG9PcrBSQGE/ZMVwWDBhPuTb8FIwb3PP2TFfcj69L3A6Mf+yAGanxibU4bQlq7zoYf+Bm4BvcnMPcU+0L7NfsC+wf7Ofsz9wf7B/ctHvsK9+UVv5K7us0b0LlgU5EfDo1+9wv3B/Lu9wrJ9yso7hKv9yf3ifckE/b3HPjvFfMGE+7JvwWTBhP2ylcF8gYi9ysF+xYGyv2TFfcj69L3A6Mf+yAGanxibU4bQlq7zoYf+Bm4BvcnMPcU+0L7NfsC+wf7Ofsz9wf7B/ctHvsK9+UVv5K7us0b0LlgU5EfDo1+9wv3B/Lu9wrJ9ygSr/cnV/cnvvcnW/ckEwAT9vdg+O8VuKiqtrRurF5ia2piYKtstB/3Wxa0q6q2tGusYl5ubGBgqGy4HxP5KPz8Ffcj69L3A6Mf+yAGanxibU4bQlq7zoYf+Bm4BvcnMPcU+0L7NfsC+wf7Ofsz9wf7B/ctHvsK9+UVv5K7us0b0LlgU5EfDo1+9wv3B/Lu9wq59zwBr/cnsPdDrPckA/fH+N8Vwa2uvLtpr1VWaWdbWq1owB+I/OwV9yPr0vcDox/7IAZqfGJtThtCWrvOhh/4GbgG9ycw9xT7Qvs1+wL7B/s5+zP3B/sH9y0e+wr35RW/kru6zRvQuWBTkR8OjX73C/cH8u73Csn3LAGv9yf3ifckA/ee+O8V8wZb9ywF+ykG9xf9lBX3I+vS9wOjH/sgBmp8Ym1OG0Jau86GH/gZuAb3JzD3FPtC+zX7AvsH+zn7M/cH+wf3LR77CvflFb+Su7rNG9C5YFORHw6NfvcL9wfy7vcK2vcBEq/3J4D3rHP3JBMAE/T3QPkAFfes9wH7rAYT+vcY/XoV9yPr0vcDox/7IAZqfGJtThtCWrvOhh/4GbgG9ycw9xT7Qvs1+wL7B/s5+zP3B/sH9y0e+wr35RW/kru6zRvQuWBTkR8OjftZ5fcKdvd78u73ChKv9yek90K59yQT9vjQ954V9ycw9xT7Qh4T/vs1+wL7B/s5+yTq+wH3GHkfE/Z3cgV2cn1ybBpWtm+9HtzlcgZ6fpOclpCTlpkfrbbxn8/Ln+YZ+yAGanxibU4bE/5CWrvOhh/4GQb8FvIVv5K7us0b0LlgU5EfDvs6oHb4K/cN6fcUEvcF9y/7K/cpE/D3BRb3L/gr9xf3DQYT6PsZpgayoae8HsX3FD8G+ww5Q/sIH2kHE/Ax+w3hBg6w+4f3EfcE9yD3n/cT+xP3IBKv9zH3hfcuE+z3zPuHFfdR4vcD9x4f+J77LwcT3E+DB6V7Wro1G/sbJCL7Pfs+9CT3Hd+5uqWdH5NOBjliYTpHaamzhB77IgYT7CaQ3S33OBuO+A0VQlq+3dy8wNPSvlk3PVxUQR8OsPuH9xH3BPcg95/3E/sT9yDH9ycSr/cxc+f253H3LhMAABPrAPfP+O0V58DB6B8vBm14c2lneaGrHi8GLsBV6B6I/eAVE+yA91Hi9wP3Hh/4nvsvBxPcgE+DB6V7Wro1G/sbJCL7Pfs+9CT3Hd+5uqWdH5NOBjliYTpHaamzhB77IgYT6wAmkN0t9zgbE+yAjvgNFUJavt3cvMDT0r5ZNz1cVEEfDrD7h/cR9wT3IPef9xP7E/cgyvdEEq/3MfeF9y4T7vgT+aAVLQZd+0QF9xEGU/3jFfdR4vcD9x4f+J77LwcT3k+DB6V7Wro1G/sbJCL7Pfs+9CT3Hd+5uqWdH5NOBjliYTpHaamzhB77IgYT7iaQ3S33OBuO+A0VQlq+3dy8wNPSvlk3PVxUQR8OsPuH9xH3BPcg95/3E/sT9yC59zwSr/cxsfdDp/cuEwAT7/fS+N8Vwa2uvLtpr1VWaWdbWq1owB+F/dIVE+33UeL3A/ceH/ie+y8HE91Pgwele1q6NRv7GyQi+z37PvQk9x3fubqlnR+TTgY5YmE6R2mps4Qe+yIGE+8mkN0t9zgbE+2O+A0VQlq+3dy8wNPSvlk3PVxUQR8OiaB2+CH3JPdldwHN9y/3R/cvA80W9y/3vgbCsbfBwK1kVR77xPcv9/QH9wJE2vsJRFxoZ3Yeg/es+y4GDomgdvgh9ySw9wD7APdAEs33L/dH9y8T3PgD+LEVRFxoZ3Yfg/cA9xIGE+z3APsSBxPcy/suBxPsS04HE9z7AMj81vcv974HwrG3wcCtZFUe+8T3L/f0B/cCRNr7CR4OiaB2+CH3JPdld8T3KwHN9y/3R/cvA2j5pxXzBsm/BZMGylcF8gYi9ysF+xYGh/4+Ffcv974GwrG3wcCtZFUe+8T3L/f0B/cCRNr7CURcaGd2HoP3rPsuBg6gdvikd9r3PBK/90r7PPcvEwAT8Pcj+N8VwLGrv79lq1ZWZWtXV7FrwB8T6D783xX3L/ik+y8GDqB2+KR3Ac33LwPNFvcv+KT7LwYOoHb4pHfq9ywBzfcvA9z47xX0Buf3LAX7KAZL/YcV9y/4pPsvBg6gdvikd+r3KyjuEs33LxPocfjvFfMGE9jJvwWTBhPoylcF8gYi9ysF+xYGfv2GFfcv+KT7LwYOoHb4pHfq9ygSbPcnWfcvVfcnEwAT9LX47xW4qKq2tG6sXmJramJgq2y0H/dbFrSrqra0a6xiXm5sYGCobLgfE+j7Q/zvFfcv+KT7LwYOoHb4pHfa9zwSwvdE+zn3LxMAE/D3I/jfFcCurry7aK9WVmhnW1quaMAfE+g+/N8V9y/4pPsvBg6gdvikd+r3LAHN9y8D8vjvFfMGW/csBfspBsP9hxX3L/ik+y8GDqB2+KR39wT3AQHN9y8DlPkAFfes9wH7rAbE/W0V9y/4pPsvBg777PtZ5fcUdvikd9r3PBK19wr7APdD+zr3LxMAE/T3H/jfFcGtrry7aa9VVmlnW1qtaMAfE/I9/N8VE/i3Bm5oBXdyfXJsGla1b74eE/Lc5XEGen6TnJaRk5aZH7K8Bfik+y8HDvuy+3r3HfkBd9r3PBLt90v7PvcvEwAT8PdR+N8VwbGrv79lq1VWZWtXV7FrwB/7T/3FFc0GE+j3CdzZ9xYf+Lr7L/y5B15wcF0eZwYO+7f7evcd+QF3AfcD9y8Djft6Fc0G9wnc2fcWH/i6+y/8uQdecHBdHmcGDvu3+3r3HfkBd+r3KyjuEvcD9y8T6Jf47xXzBhPYyb8FkwYT6MpXBfIGIvcrBfsWBvsH/mwVzQb3CdzZ9xYf+Lr7L/y5B15wcF0eZwYOf6B2+KR394Z3Ac33LwP42Rb7S/fm9z73UgX7Uwb7KvtIBYX4Jvsv/YL3L/chBtHZ9wj7bwUOf/t590TVdvikd/eGdwHN9y8D+CL35hX3PvdSBftTBvsq+0gFhfgm+y/9gvcv9yEG0dn3CPtvBfdCBvv1+3kV6Qa490QF+xAGDn+gdvikdwHN9y8DzRb3L/chBtHY9wj7bgX3Qgb7S/fm90H3UgX7Ugb7LvtIBYX3SPsvBg77r4v3HPj6dwHN9y8D93sWwPcceAZve5urH/jK+y/83Ackxkz1Hg77r4v3HPj6d8T3LAHN9y8D3PmnFfQG5/csBfsoBvD+PxXA9xx4Bm97m6sf+Mr7L/zcByTGTPUeDvuGi/cc+C/3XwHN9y/N9gP3exbA9xx4Bm97m6sf+Mr7L/zcByTGTPUew/i3FfYGo/dfBfsXBg77r/t590TA9xz4+ncSzfcv//+dgAD/AKGAABPw93sWE+jA9xwGE/B4Bm97m6sf+Mr7L/zcByTGTPUeE+j7CPt5FekGuPdEBfsQBg77N4v3HPc99zv3qncBzfcvvPc+A/d7FsD3HHgGb3ubqx/4yvsv/NwHJMZM9R73D/fFFb6urry6aK9YXGZnXFqwaLofDvtpi/cc+B1394V3Aez3LwP34vglFfcUBzljBfeZ+y/74wdJawX7FAfNqwX7DQckx0z0HsH3HHgGb3qbqx/3RQcO98agdvgh9xf7F/ckEs33L/c79y/3OfcvE9zNFvcv970GxK22vsCoZVUe+8X3L/e8B8attb7BpWVRHvvB9y/39wcTvPcCPtf7B0lZdFpmHoQGuGtXpkYbRV1oaHUfgwYT3MT7JgcOhaB2+CH3F/sX9yQSzfcv90P3LxPYzRb3L/e8BsOvuMHAq2RVHvvE9y/39AcTuPcCQ9r7CURZaGd2HoMGE9jF+yYHDoWgdvgh9xf7F/ckyfcsEs33L/dD9y8T3PeV+O8V9Abn9ywF+ygG+4T9hxX3L/e8BsOvuMHAq2RVHvvE9y/39AcTvPcCQ9r7CURZaGd2HoMGE9zF+yYHDoWgdvgh9xf7F/ckye4o9ysSzfcv90P3LxPO95P47xX3Fgb09ysFJAYT1kxXBYMGE85NvwUjBjf9hhX3L/e8BsOvuMHAq2RVHvvE9y/39AcTrvcCQ9r7CURZaGd2HoMGE87F+yYHDoX7efdE1Xb4IfcX+xf3JBLN9y/3Q/cvE+zNFvcv97wGw6+4wcCrZFUe+8T3L/f0BxPc9wJD2vsJRFloZ3YegwYT7MX7Jgf3O/2JFekGuPdEBfsQBg6F+3r3HfcGdvgh9xf7F/ckEs33L/dD9y8TABPc9/74sRVEWWhndh+DBhPsxfsm/KT3L/e8B8OvuMHAq2RVHvvZB15xcFweZ/sdzQb3CdzZ9xYf+AoHE9z3AkPa+wkeDoWgdvgh9xf7F/ckxPQj9yYSzfcvNej3PPcv+ynoE9UA+BL46hUTzIDLvLztHy4GE9SAcIl/fHZqcbVQGxPLAEtZXyUf6AamjZeZoBsT1QCyomHEG/vQ/OoV9y/3vAbDr7jBwKtkVR77xPcv9/QHE7UA9wJD2vsJRFloZ3YegwYT1QDF+yYHDq5+9yD3pvcgAa/3MfeT9zED99R+Ffc+9wf3Dfcw9zD7B/cN+z37P/sG+w37MPsw9wf7Dfc9H/cgBEJVw9zbwcTU1cFSOztVUkEfDq5+9yD3pvcgyfcsAa/3MfeT9zED95f47xX0Buf3LAX7KAaX/ZQV9z73B/cN9zD3MPsH9w37Pfs/+wb7Dfsw+zD3B/sN9z0f9yAEQlXD3NvBxNTVwVI7O1VSQR8Orn73IPem9yDJ9yso7hKv9zH3k/cxE+z3K/jvFfMGE9zJvwWTBhPsylcF8gYi9ysF+xYGy/2TFfc+9wf3Dfcw9zD7B/cN+z37P/sG+w37MPsw9wf7Dfc9H/cgBEJVw9zbwcTU1cFSOztVUkEfDq5+9yD3pvcgyfcoEq/3MV33J773J1/3MRMAE+z3cPjvFbioqra0bqxeYmtqYmCrbLQf91sWtKuqtrRrrGJebmxgYKhsuB8T8ij8/BX3PvcH9w33MPcw+wf3Dfs9+z/7BvsN+zD7MPcH+w33PR/3IARCVcPc28HE1NXBUjs7VVJBHw6ufvcg96b3IMn3LAGv9zH3k/cxA/et+O8V8wZb9ywF+ykG9xj9lBX3PvcH9w33MPcw+wf3Dfs9+z/7BvsN+zD7MPcH+w33PR/3IARCVcPc28HE1NXBUjs7VVJBHw6ufvcg96b3IMn3LwGv9zH3k/cxA/dI+O8V8Abf9y8F+yUG9yb7LxXwBt/3LwX7JQY1/ZcV9z73B/cN9zD3MPsH9w37Pfs/+wb7Dfsw+zD3B/sN9z0f9yAEQlXD3NvBxNTVwVI7O1VSQR8Orn73IPem9yDa9wESr/cxhfesePcxEwAT6PdP+QAV96z3AfusBhP09xn9ehX3PvcH9w33MPcw+wf3Dfs9+z/7BvsN+zD7MPcH+w33PR/3IARCVcPc28HE1NXBUjs7VVJBHw6ufvcg96b3IHp3Eq/3MfeT9zETuPiN+HQVweUFIQZwXQUT2JZraJFlG/s/+wb7DfswMLI8zlkfUSkF9AaswwWBqayGrhv3PvcH9w33MB8TuONm2Ey+HvvM+2wVE9jbwcTUlpWKiJUe+xf7cQUTuHqigamuGvcT+x0Vg4SMjIMf9xX3bAWZdZNvbBo7VVJBHg6ufvcg96b3IMT0I/cmEq/3MVLo90LoW/cxE+n4E/jqFRPay7y87R8uBhPqcIl/fHZqcbVQGxPVS1lfJR/oBqaNl5mgGxPpsqJhxBtM/PcV9z73B/cN9zD3MPsH9w37Pfs/+wb7Dfsw+zD3B/sN9z0f9yAEQlXD3NvBxNTVwVI7O1VSQR8O+Dl+9wr7Cvcg6fLY9yD7CvcKEq/3MfeT9zD3h/ckE636c/eeFfcnMPcU+0I5Rm1YXB4Tt71ZQ6o2G/s/+wb7Dfsw+zD3B/sN9z3h06q9vR9Yu89t2hv3IuvS9wOjH/sfBml8Y21MG0JbvM6HH/gYBvwX8hUTb7+TurrMG9C7YFORH/yj+1kVQlXD3B8Tt9vBxNTVwVI7HhNvO1VSQR4Oun73IPem9xP7E/cgEs33L/eD9zET2M37ehX3L/e2kwZunLlf4Rv3Iuz3Bvc6HxO49zoo9wD7JDNfW3N8HoMGE9jG+y0H96X8JRVEWcDf2rrF1dO8VTg6WlNDHw67fvcg96b3IAHN9y/3hPcxA837chX3L/eukwZwnbtd3hv3Iu33Bvc69zoo9wD7JTRgW3N8H4MGivesBfsuBvem/QIVRFjA39q6xdXUvFU4OlpTQx8OsH73IPem9xP7E/cgEq/3MfeE9y8T2PhF+3oV9y/5ivsuBhO4UIMHo3xfuzQb+yUo+wD7Ovs67fsG9yLeu7mmnR+TBvsLzhVDWsPcHxPY3rzB1NW6UTweE7g3WFZEHg77N6B2+Bb3Ivsi9yYSzfcvE7DNFvcv94QG5rzC1x7I9yZYBkRcXmR5H4MGE9Db+yYHDvs3oHb4Fvci+yL3JtL3LBLN9y8TuPdV+O8V9Abn9ywF+ygG+0T9hxX3L/eEBua8wtceyPcmWAZEXF5keR+DBhPY2/smBw77N6B2+Bb3Ivsi9ybS7ij3KxLN9y8TrPdS+O8V9xYG9PcrBSQGE7RMVwWDBhOsTb8FIwZ4/YYV9y/3hAbmvMLXHsj3JlgGRFxeZHkfgwYTzNv7JgcO+zf7efdE1Xb4Fvci+yL3JhLN9y8T2M0W9y/3hAbmvMLXHsj3JlgGRFxeZHkfgwYT6Nv7JgfX/YkV6Qa490QF+xAGDkB+9wv7C/dD/wAu/XH/AHq1w/8AX0zM9wYSufcg9zL3KhO895p+Ffcq3dXxH/d++8gk4RqnqZ66vqZ1a5Ae9xoG9wKEM8X7Dhv7IT89MR/7d/e+8ywabW54Vx4TfFhsnrCHH/shBhO8II7SR/csGw5AfvcL+wv3Q/8ALv1x/wB6tcP/AF9MzPcGyfcsErn3IPcy9yoTvvdY+O8V9Abn9ywF+ygGnP2UFfcq3dXxH/d++8gk4RqnqZ66vqZ1a5Ae9xoG9wKEM8X7Dhv7IT89MR/7d/e+8ywabW54Vx4TflhsnrCHH/shBhO+II7SR/csGw5AfvcL+wv3Q/8ALv1x/wB6tcP/AF9MzPcGye4o9ysSufcg9zL3KhO391b47xX3Fgb09ysFJAYTu0xXBYMGE7dNvwUjBvdB/ZMV9yrd1fEf9377yCThGqepnrq+pnVrkB73Ggb3AoQzxfsOG/shPz0xH/t3977zLBptbnhXHhN3WGyesIcf+yEGE7cgjtJH9ywbDkD7Ydn/ABWAAP8AQ4AAvHb/ANr9cf8AerXD/wBfTMz3BhK59yD3D9Zj9yoTvfiC9zcV9377yCThGqepnrq+pnVrkB73Ggb3AoQzxfsOG/shPz0xH/t3977zLBoT/W1ueFdYbJ6whx77IQYTvY4uwUv3BnwIE/56LNKKBZKPk5GVG5qWgHwfE757gYB7foGUlYkeQgZcjLVswhvHtK69HxP+vmaqXn99h4aFHoUGlK0FE733I4/Z1O4aDkD7efdEs/cL+wv3Q/8ALv1x/wB6tcP/AF9MzPcGErn3IPcy9yoT3veafhX3Kt3V8R/3fvvIJOEap6meur6mdWuQHvcaBvcChDPF+w4b+yE/PTEf+3f3vvMsGm1ueFceE75YbJ6whx/7IQYT3iCO0kf3LBtF+2wV6Qa490QF+xAGDqh+9yT7Anb3zPch9zH3IBLN9y/N90wy9z/7Cvc4EwATuff0fhX3Otzo9yIfE3ziWdA9px6RBxN6uqOut9Ma9wCMKOX7KBv7Iig0+ykf/Jb3L/iZB8Worr+/p2pgXGppUx6FBhN8+yGwBxO5ybxtUU9galB2co+Sdx8TePsiBxO5hKSthaUbDvs2i/cU96v3DPsM9w0S9w73LxOw98YW9vcURwZddaOyH/ds9x73Dfse9yP7JwcT0CoHb3x4bx5ZBhOw+wzg+3QH+wjQSPcHHg77Pov3FPT3AM33DPsM9w0S9xb3JxPY+DP4KxX3Dfse9yP7JwcT6CoHb3x4bx5ZBhPY+wzgSTv7ANtZB/sI0Ej3Bx729xRHBl11o7IftfcQ9wD7EM0HDvs+i/cU96v3DPsM9w2z8hL3DvcvzdMTvPfr+MwV9gaj918F+xcGZv2XFfb3FEcGXXWjsh/3bPce9w37Hvcj+ycHE9wqB298eG8eWQYTvPsM4Pt0B/sI0Ej3Bx4O+zb7Ydn/ABWAAP8AQ4AAsfcU96v3DPsM9w0S9w73L8vWEwAT7vfiZRV/fYeGhR+FBpi6BfP3FEcGXXWjsh/3bPce9w37Hvcj+ycHE7QqB298eG8eWQYT7vsM4Pt0By+3Tdd2Hnf7BdOKBZKOlJGUG5uVgHwfE657goB6foGUlYoeQQZcjLVswhvIs669HxPuvmaqXh4O+zb7efdEwPcU96v3DPsM9w0S9w73LxPY98YW9vcURwZddaOyH/ds9x73Dfse9yP7JwcT6CoHb3x4bx5ZBhPY+wzg+3QH+wjQSPcHHiP7eRXpBrj3RAX7EAYOiX73JPsX9xf4IXcSyvcv90P3LxO495B+FdK9r66fH5MGE3hR9yf4pPsv+7wHE7hTZ15VVmuxwh73xPsv+/QH+wLTPPcJHg6Jfvck+xf3F/ghd+r3LBLK9y/3Q/cvE7z3iPjvFfQG5/csBfsoBmL9lBXSva+unx+TBhN8Ufcn+KT7L/u8BxO8U2deVVZrscIe98T7L/v0B/sC0zz3CR4OiX73JPsX9xf4IXfq9yso7hLK9y/3Q/cvE7b3HfjvFfMGE67JvwWTBhO2ylcF8gYi9ysF+xYGlf2TFdK9r66fH5MGE3ZR9yf4pPsv+7wHE7ZTZ15VVmuxwh73xPsv+/QH+wLTPPcJHg6Jfvck+xf3F/ghd+r3KBLK9y819ye+9yc39y8TABO292H47xW4qKq2tG6sXmJramJgq2y0H/dbFrSrqra0a6xiXm5sYGCobLgfE7n7LPz8FdK9r66fH5MGE3lR9yf4pPsv+7wHE7lTZ15VVmuxwh73xPsv+/QH+wLTPPcJHg6Jfvck+xf3F/ghd+r3LBLK9y/3Q/cvE7z3nvjvFfMGW/csBfspBtr9lBXSva+unx+TBhN8Ufcn+KT7L/u8BxO8U2deVVZrscIe98T7L/v0B/sC0zz3CR4OiX73JPsX9xf4IXfq9y8Syvcv90P3LxO89zn47xXwBt/3LwX7JQb3JvsvFfAG3/cvBfslBvsf/ZcV0r2vrp8fkwYTfFH3J/ik+y/7vAcTvFNnXlVWa7HCHvfE+y/79Af7AtM89wkeDol+9yT7F/cX+CF39wT3ARLK9y/3Q/cvE7z3QPkAFfes9wH7rAbb/XoV0r2vrp8fkwYTfFH3J/ik+y/7vAcTvFNnXlVWa7HCHvfE+y/79Af7AtM89wkeDon7WeXp9yT7Anb4pHcSyvcv9zD3Cyf3LxO6+LgW+KT7L/u8BxPaU2deVVZrscIe98T7L/v0B/sC0zz3CdK9r66fHpMGE7pRBxO8rwZvaAV2cn1ybBpWtm+9HhO63OUGE7xyBnl/k5yWkJOWmR8OiX73JPsX9xf4IXfIzNLLEsr3L3rS0dF49y8TAAATuwD3x/jNFci3tsXEYLVMTl9hUVK3YMkfzAR1fpmgoJiaoKGZfHd1fX12HxO8gFT9GxXSva+unx+TBhN8gFH3J/ik+y/7vAcTvIBTZ15VVmuxwh73xPsv+/QH+wLTPPcJHg51i/dM+zd2+KR3Epv4vBNw918W90cG9074pAX7NwYTsPsC++wFgwb7AvfsBfs1Bg73oYv3UfcZ92KLdxKi+dETsPc3Fvc+BhPQ8ffWBZEG8PvWBfc+Bvcg+KQF+zUGRfvnBYMGJ/fnBfsrBif75wWDBkX35wX7NQYO96GL91H3Gfdii3fq9ywSovnRE7j4DPjvFfQG5/csBfsoBvua/YcV9z4GE9jx99YFkQbw+9YF9z4G9yD4pAX7NQZF++cFgwYn9+cF+ysGJ/vnBYMGRffnBfs1Bg73oYv3UfcZ92KLd+r3KyjuEqL50RO096D47xXzBhOsyb8FkwYT1MpXBfIGIvcrBfsWBvtm/YYV9z4G8ffWBZEG8PvWBfc+Bvcg+KQF+zUGRfvnBYMGJ/fnBfsrBif75wWDBkX35wX7NQYO96GL91H3Gfdii3fq9ygS95z3J773JxO89+X47xW4qKq2tG6sXmJramJgq2y0H/dbFrSrqra0a6xiXm5sYGCobLgf/An87xX3PgYT3PH31gWRBvD71gX3Pgb3IPikBfs1BkX75wWDBif35wX7KwYn++cFgwZF9+cF+zUGDvehi/dR9xn3Yot36vcsEqL50RO4+CL47xXzBlv3LAX7KQb7Iv2HFfc+BhPY8ffWBZEG8PvWBfc+Bvcg+KQF+zUGRfvnBYMGJ/fnBfsrBif75wWDBkX35wX7NQYObaB2+KR3AZr4tgOaFvc8BvD3NQWSBvD7NQX3PQb7Rfel9zf3kwX7OwYy+yoFhQYy9yoF+zsG9zf7kgUOfft69x35AXcBm/jEA9b7ehXRBvcDx8Tsrx/3dPjwBfs4BvsC++MFgwb7CPfjBfs2Bvdl/K6CcgVofXN0YRtOBg59+3r3HfkBd+r3LAGb+MQD93747xX0Buf3LAX7KAb7ZP5tFdEG9wPHxOyvH/d0+PAF+zgG+wL74wWDBvsI9+MF+zYG92X8roJyBWh9c3RhG04GDn37evcd+QF36vcrKO4Sm/jEE+j3E/jvFfMGE9jJvwWTBhPoylcF8gYi9ysF+xYG+zH+bBXRBvcDx8Tsrx/3dPjwBfs4BvsC++MFgwb7CPfjBfs2Bvdl/K6CcgVofXN0YRtOBg59+3r3HfkBd+r3KAH3DvcnvvcnA/dX+O8VuKiqtrRurF5ia2piYKtstB/3Wxa0q6q2tGusYl5ubGBgqGy4H/vT/dUV0Qb3A8fE7K8f93T48AX7OAb7AvvjBYMG+wj34wX7Ngb3ZfyugnIFaH1zdGEbTgYOfft69x35AXfq9ywBm/jEA/eV+O8V8wZb9ywF+ykGMv5tFdEG9wPHxOyvH/d0+PAF+zgG+wL74wWDBvsI9+MF+zYG92X8roJyBWh9c3RhG04GDjuL9xj3oPcUErn3XRMAE+C5FvhG9xj7fZMG93j3mAX3FPw5+xT3cIMH+3j7kwUOO4v3GPeg9xTW9ywSufdd+134RhPo92L47xX0Buf3LAX7KAYT8Ptl/YcV+Eb3GPt9kwb3ePeYBfcU/Dn7FPdwgwf7ePuTBQ47i/cY96D3FNbuKPcrErn3Xftd+EYT1Pdg+O8V9xYG9PcrBSQGE+RMVwWDBhPUTb8FIwYT2Fb9hhX4RvcY+32TBvd495gF9xT8OfsU93CDB/t4+5MFDjuL9xj3oPcUxvc8Ern3XUv3QxPo96L43xXBra68u2mvVVZpZ1tarWjAHxPw+3T83xX4RvcY+32TBvd495gF9xT8OfsU93CDB/t4+5MFDjz3vvcA91rBVe4o9wESvfcK90j3CBOc93z3vhXMq62flh+SXvcJBhOs+CD7CgcTzF6FBxOcoH1orU0bIEM2+xH7ENU69wAfpvcAFVZls8bGsLPAv7FlTlNoYFUfDjr3vvcA91r3AQG99wr3UfcLA/eb974V9xLi5fcJ9wk15vsT+xQ2MPsJ+wnhMfcTH/cABFRjtcTEs7XCwbNhUlJjYVUfDpF+9yn4QPcpAcj3MPdF9zED98V+FfcR9w3f9ykf95gH9yn7Dd/7EfsP+w03+yke+5gH+yn3DTf3Dx73KQRZZa/FH/eEB8Wxr72/sGdRHvuEB1FmZ1ceDvsioHb4cPcJ9ncB93X3MQP3dRb3MflQ+yUGRGNn+xse+wn3NwcOeIv3HfhD9yUSxvcm+yX3Mfc19zIT2McW+G/3HfvSkwalmJ+uoR73IN0F3r27xusa9wov6vsrHhPo+y06+wP7CR/3Jga2rLPBwqpqYmZ3dGh1HvsWOwUT2C5SY1AuGg6Gf/cp+Dv3IRL36PdU+yD3MhPQ98J/Ffcx5vcC9xD0Rt0snR+RBxPg9yb3FwX3HfxZ+yH3mYQH+yH7EwX7CwcT0O4GyKxhYFtoZlJWaq63iR/7JQb7B9v7BfcvHg6voHb3D/cg+El3AcL3Pvcb9zAD9/wW9zD3D9L3IET3JPsw+yT7G5EG9zn4QwX7NQb7QvxRBfsY98UHDnx/9yj3IfchIvcc9wP3IRL4HfcxE7j3w38V9yvr9PcX9wsz9fsVHxPYWmh3gHsfhgaV9yIF96P3IfwqBhO4bvw8BfcqBpqVo6C0G8etYltbaGNSVmqst4cf+yYG+xCO4yb3JxsOk373KfdO9xj3incBw/cy9033MwP3xn4V9xj3DO33I/cz+xHOM39/iYiDH4eP9yz3iwX7Swb7TvvkBXVkfV5XGvsl9wor9xge9ykEVmSzv7+ytcDBsmFXWGRiVR8OXaB2+MT3IRK7+Gb7QPdAE+DxFvdBBhPQ94P4ygX3G/xm+yH3uoQHDpR/9x/3P/cX9yj3HBK/9zL7Gfcr9zL3LPsa9zMT8vfHfxX3LPPf9xPoVL5cph+TBxPstKevu9Ea9wYr1vsb+xgpQPsGRa9bs28egwcT8lxwVVguGvsT8jf3LB4T7PhNBF1qrLS0qqy7uqtqYmJqal0fE/L7wgROZ7G5wLStw8O0aVZdZ2VOHw6ToHb3ivcY9073KQHD9zP3TfcyA/ctFvdLBvdO9+QFobKZuL8a9yX7Cuv7GPsY+wwp+yP7M/cRSOOXl42Okx6PhwWO9xcVVWS1v76ytMHAsmNXV2RhVh8OjH73KfhA9ykBxvcw90X3MQP3w34V9xH3Dd/3KR/3mAf3KfsN3/sR+w/7DTf7KR77mAf7KfcNN/cPHvcpBFhmr8Uf94QHxbGvvb+wZ1Ee+4QHUWZnVx4OjKB2+HD3CfZ3AffW9zED99YW9zH5UPslBkRjZ/sbHvsJ9zcHDoyL9x34Q/clEsv3Jvsl9zH3NfcyE9jMFvhv9x370pMGpZifrqEe9yDdBd69u8brGvcKL+r7Kx4T6PstOvsD+wkf9yYGtqyzwcKqamJmd3RodR77FjsFE9guUmNQLhoOjH/3Kfg79yES9+T3U/sf9zET0Pe+fxX3MOb3AvcQ9EfdLJ0fkQcT4Pcl9xcF9x38WPsh95mEB/sh+xMF+wsHE9DuBsisYWBbaGZSVmqut4kf+yUG+wfb+wX3Lx4OjKB29w/3IPhJdwGw9z/3GvcxA/fqFvcx9w/S9yBE9yT7Mfsk+xqRBvc5+EMF+zYG+0L8UQX7GPfFBw6Mf/co9yH3ISL3HPcD9yES+Bn3MRO4979/Ffcq7PT3F/cLMvX7FR8T2Fpod4B7H4cGlPciBfej9yH8KgYTuG/8PAX3KQaalqOgsxvIrWJbW2djU1ZprLeHH/slBvsQjeMm9ygbDox+9yn3TvcY94p3Ab/3MvdO9zMD98N+FfcY9wzt9yP3M/sRzjJ/f4mIhB+Hj/cr94sF+0oG+0/75AV2ZHxeVxr7JfcLK/cYHvcpBFVks7+/srXBwbJhV1hkYlUfDoygdvjE9yES0vhm+0D3QBPg9xEW90EGE9D3g/jKBfcb/Gb7Ife6hAcOjH/3H/c/9xf3KPccErz3MfsZ9yv3M/cs+xr3MhPy98R/Ffcs8t/3E+hVvlumH5MHE+y0p7C70Rr3BivW+xv7GSlA+wZFr1u0bx6DBxPyW3BWWC4a+xPyN/csHhPs+E0EXWmstLSrrLu6q2piYmlqXh8T8vvCBE5msbnAtK3Ew7RpVl1mZU8fDoygdveK9xj3TvcpAb/3M/dO9zID9yoW90sG90735AWhspm4vxr3JfsK6/sY+xj7DSn7I/sz9xFI5JeXjY6THo+HBY73FxVUZLW/vrK0wsCyY1dXZGFWHw770/jJ0kT3GxL3I+0TYPcj97oV7fgqMQYToGB4djUeE2BE7AcO+3z3uuH3V/cZMeUSueUy7d7tE6y697oV96zh+0qQBpqRlJyVHt64Bbylpa3DGs9XxzAeE9QyW0tGH+UGE7SgmqGqqZt5d3eBfnd+HhOsQWIFU2x2bVQaDvt697Ll94HiEvcP91oy7RPQ90z3shXmwsjVHxPgxWO8VpUekAff1QXe+5009yaHBxPQPEUFQMYHrJx2dXJ4d21ue56jiR8xBka7S+UeDjBi+aIBh/ifA4diFfcWBvgd+aIF+xYGDveniuL3guX3K9JE9xsS9yPt98zlMu3e7RPY9zViFfcLBvgd+aIF+wwG/C78UxXt+CoxBhPoYHh2NR4T20TsB/gv/MoV96zi+0qQBpqRlJyUHt65Bbylpa3DGs5XyDAeE90yW0tGH+UGoJqhqqmbeXd3gX13fx4T2kFiBVNsdm1TGg73mYv3LTTi+DDSRPcbEvcj7feZ89jsE5r3NWIV9wsG+B35ogX7DAb8LvxTFe34KjEGE6pgeHY1HhOaROwH+LD8yRXsBhNazbQHE57iYuIqND6OB+n3jgUpBhNeJ/uXBTr3SQcO97iL9y004vcZ5feB4hL3D/daMu33X/PY7BO1915iFfcMBvgc+aIF+wwG/C78WxXmwsjVHxO5xWO8VpUekAff1QXe+5009yaHBxO1PEUFQMYHrJx2dXJ4d21ue56jiR8xBka7S+Ue+Kb7shXsBhN1zbQHE7fiYuIqND6OB+r3jgUoBhN3J/uXBTr3SQcO++B+9zoBv/c+A/cdfhW+ra28ummvWFxlZ1xasWm6Hw774fsX95oBvfc+A737FxX3AwbG95oF+ysGDvvgfvc690L3OwG/9z4D9x332xW+ra68ummvWFxlZ1xasWi6H/voBL6trby6aa9YXGVnXFqxabofDvvd+xf3mvdY9zsBv/c+A/cd99sVvq2uvLppr1hcZWdcWrFouh80/F4V9wMGxveaBfsrBg73TX73OgG/9z7k9z7j9z4D9x1+Fb6trby6aa9YXGVnXFqxabof95YWvq6tvLpor1hcZmdcWrBpuh/3lxa9rq28umivWVxlZ1xasWm6Hw77xn73Ovi3dxLM9z77N/cyE9D192UV5Qat93kF95r7MvuaBxPg2fxXFb6trby6aa9YXGVnXFqxabofDvvG+B73OhLM9z77N/cyEwATwPcq+B4Vva6vurxorVlcZWlaXLFnuh8ToD38txX3MveaBmn3eQUxBmn7eQUOXH73Ovg79x0S9zP3Pvsu9x+y9y4T2PdD92UV9x+lBqaWnaGbHr6uBcCuw8PfGvcLN+P7J/smPir7CR73IQa1jKWuwBu/pmxka3t2b3YfVGQFWGhvY0gaE+jQ+5wVvq2tvLppr1hcZWdcWrFpuh8OXPs69x34O/c6EsD3LaP3Pvsu9x549yITABPw98/4HhW6sa+6vGWtXFloaVpcrme9HxPkbPzEFfcl2ez3CR/7IgZhcWhVV3CqsqucoKegHhPowrIFvq6ms84atfsecQdwgHl0ex5ZaAVWaFNTNxoT5PsL3zP3Jx4O++D3e/c7Ab/3PgP3Hfd7Fb2urry6aK9ZXGVnXFqxaLofDvsi9x737AHH9+wD93z3HhXu1Njq6kLYKChCPiws1D7uHw77Ifji9wKLdxL3XsgTYPdY9/IV1AZ+9wCQjtA1v780zYyS9wOABROg1Af7An6KkeHPV79HM4aOl/cCBUIGl/sChohH41dX4UeKhfsCmAVCB/cClo2ENEm/V9DhkIgFDoSgdvdM9wby9wb3TXcBufiPA/i9+CUV9wZHB6f3TQX7DAZv+00FOgan900F+wwGb/tNBTP7BtIGeyQFNvsGzwZv+0wF9wwGp/dMBdwGb/tMBfcMBqf3TAXj9wZEBpvyBfscJBU6BpvyBdwGDjj5gncBrfhbA637ABX3KQb3xvnuBfsqBg44+YJ3Aa34WwP36PsAFfcpBvvF+e4F+yoGDib7Mfo6AbH3LAP31PsxFfcB3AX7EtT7BfcR91Aa91D3BfcR9xLUHvsB3AX7Lzj7E/s6+24a+273E/s69y84Hg4m+zH6OgH3z/csA/dN+Z0V+wE6BfcSQvcF+xH7UBr7UPsF+xH7EkIe9wE6Bfcv3vcT9zr3bhr3bvsT9zr7L94eDiD7KfcQ96X3C/ek9xASzvdCKvcoE+j32fspFdb3EFoGYXqdth/3UQe9dqFtkR6TB6mRoKG9GvdSB7ScnrUevPcQQAYjPln7BB/7UgdxenlwHhPwavsLBhPorAamnHlxH/tSB/sF2FnzHg4g+yn3EPel9wv3pPcQEvdj9ygp90IT8O77KRXWBvLZvfcFH/dSB6WbnaYeE+is9wsGE/BqBnB7naUf91IH9wQ9vSQeQPsQvAa1nHhiH/tSB1mgdaiFHoMHboV2dVka+1EHYHp5YR5aBg77TPsp9xD5LfcPAc73KAPO+ykV95T3EPsA+S33APcP+5QGDvtM+yn3EPkt9w8B90v3KAPW+ykV95T6JPuU+w/3AP0t+wAGDvty94T3FwG897IDvPeEFfey9xf7sgYOtveF9xYBvPi7A7z3hRX4u/cW/LsGDve794X3FQG8+bcDvPeFFfm39xX9twYOuvsu9xEBwvizA8L7LhX4s/cR/LMGDvvh+xf3mgG59z0DufsXFfcDBsX3mgX7KwYO+wb7F/eaAcD4EAPA+xcV9wMGxfeaBfsrBvdb+5oV8wbG95oF+ysGDvsM+Er3mgHA+BEDwPhKFfcrBpf3mgUjBvcs+5oV9ysGnveaBfsDBg77DPhK95oBwPgQA8D4ShX3AwbF95oF+ysG91v7mhXzBsb3mgX7KwYO+9/4SveaEsD3PhMAE8DA+EoV9ysGnveaBfsDBg773/hK95oSwPc9EwATwMD4ShX3AwbF95oF+ysGDmTi+C4SzPdomPdoE8D3qeIV9xoHNc8FkQfhzwX3Ggf7aPs/BUcHE+D4Sfs/FfcaBzXPBZEH4c8F9xoH+2j7PwVHBw5n4vguEsz3aJj3aBPAzOIV92j3PwXPB/to9z8F+xoH4UcFhQc1RwUT4Pd1+xoV92j3PwXPB/to9z8F+xoH4UcFhQc1RwUO+6ri+C4BxfdoA/ei4hX3Ggc1zwWRB+HPBfcaB/to+z8FRwcO+6ri+C4BxfdoA8XiFfdo9z8Fzwf7aPc/BfsaB+FHBYUHNUcFDvsi+GP3gQHQ/wB+gAD/AEmAAPcTA9b4YxX3BgaY94EF+x8G92j7gRX3BwaX94EF+x8GDvvq+GP3gQHQ/wB+gAAD1vhjFfcGBpj3gQX7HwYO+/AO/PIOmIv3Z/em924Br/cxyvcNA/eUFvcN1wb3BKDY2Zr2CPsyBmJ+Ym1XG0BaxtnXusjXwrNqXpkf9zEGfvcBPdz7BqEI3/sNNwf7G3M2+wL7HRr7HeD7Avcbch4OjZV2+WZ31ncSp/cr+xn3MsHfxfcy+yf3ORPl+NT3aRX3OvsUqSGgHvccBxPusH+fb4xnCPcyBob3GTPV+w+ZCMI3VAf7HH0/NCAa+zT3BGjvdR77KAcT9VmYcK2Jtgj7KwaK+xfiLvckfAhB39UHE+X3Kpnf5fcMGhPt/Aj3uhWnnaKvlB77CQdqlnabqRr3HvwIFfcXB7R/p3pnGmhydF+DHg6dfvcp9eC24PcB9ykBzPcx90T3MQP3yn4V9yD06vcnH/sxBlJmZ1hYZq7GHpf3D+D7D7b3D+D7D5oHxrCuvsCuZ1Ee9zEG9ycn6/sl+xD7DTf7KR5yXja4YF42uHUH+yn3DTf3EB4OR/fZ9w73QfcWAcD4UgPF+1UV9yoG7PiaBfcl9w77Dgae8QW8lKihuRu/Bpv3FgU3BvsDN1H7BHcfcvsZBfsO+w7vBg66i/cr9xL3FPcz9ykB9wn3MQPDFvis9yv70vcS9zv3FPs70gbDrau7uqttXYwe9zAG9xSKL+z7Ixv7EfsGN/sjHzpY+xS++xJOBw7Ji/dkI/PC9PfgdxL3lPczE7j5I/lQFftDBvsi+6EFggb7I/ehBftBBvdQ++AFKSL3LVT7LQYTeCP3LQcTuCP3MwcTePP3KwcTuPP7K8L3K/QqBw4i94/3DAH3UPcSA/dQyhX3EvdQ90r3DPtK91D7EvtQ+0v7DPdLBg4i94/3DAGQ+H8DkPePFfh/9wz8fwYO+wnF+IsBkPhzA+jFFfcr9zX3K/s15OL7L/c49y73ODPj+yr7Nfss9zUzM/cu+zj7Lvs4BQ4izfccvPcMw/cbAfdK9xwD9474PxWyqKixsW6pZGVtbWVlqW6xH/uJ+0QV+H/3DPx/BveJ+8UVsqipsbBuqmRlbWxmZaltsR8OIvcn9w3X9wwBkPh/A5D37BX4f/cM/H8G+9EE+H/3Dfx/Bg5B2/hkAffn9x8DwdsV+Dz3NAX3JAf8PPc0BfsWB/exKAWFB/uxKAUOQdv4ZAHB9x8D+HLbFfcWB/ux7gWRB/ex7gX3Fgf8PPs0BfskBw5A92z3P/sG9wcSq/ATYKv3bhXwBqiMnKWuGxOgwsBS0hvotc/yHyYGbop4dWobE2BXUL9HGy1iRyUfDn/4xfcfi3cSvviAE2C+974V9xYGE6D3BfebBZEG9wX7mwX3Fgb7SfgmBfsWBg73en7l92XmVeX3ZeYSyu7g7fcm7t/uE7/3YPfXFdzHwNof9xIH2k/AOjpPVjwe+xIHPMdW3B68+70V+DT45TXJ/DT85QWw99kVcHyfox/3Dgejmp6mppt4cx77Dgdze3dwHvhA/D4V3MfA2h/3EgcT39pPwDo6T1Y8HvsSBxO/PMdW3B7lBHB8n6MfE9/3Dgejmp6mpZt4cx77DgcTv3N7d3EeDvjLfuX3ZeZV5fdl5hLK7uDt9ybu3+7C7t/uEwAAE78A92D31xXcx8DaH/cSB9pPwDo6T1Y8HvsSBzzHVtwevPu9Ffg0+OU1yfw0/OUFsPfZFXB8n6Mf9w4Ho5qepqabeHMe+w4Hc3t3cB74QPw+FdzHwNof9xIHE0MA2k/AOjpPVjwe+xIHE78APMdW3B4Tw8D35Rbcx8DaH/cSB9pPwDo6T1Y8HvsSBzzHVtwe++XlFXB8n6Mf9w4Ho5qepqWbeHMe+w4Hc3t3cR735RZwfJ+jH/cOB6Oanqalm3hzHvsOB3N7d3EeDvdBoHYB98b3OwP3xhb3O/iQkQb3PPs97ez7wvfDBSMG+8T7w+wq9zz3PQWRBg7M/wJFgAD/AIiAAAH4l/ceA673bxX3CfsK9/v3+4+HBfuD9x0HjfhAQdQF/EEGivsd94OMkIcFDvdknXb3pPc696N3Ab35dwO9+EcV+zr4kIUH+z37Pewq98P3wgXzB/vD98MqK/c9+z0FhQcOy///24AA9x4B+Iv3HQP3H2cV+D+K1dQF+EL7HfuDB4eH+/v3+/sJ+wr3+/v7hof7gowFDvdB+VB3AffG9zsD98b5UBX8kIUH+zz3PSoq98T7wwXzBvfC98Mp7Ps8+z0FhfiQBg7L///bgAD3HgGp9x0D82YV+ECMBfceB/uDioeP9/v3+/sK9wr7+/v7h48F94P7HfxCBw73ZJ1296T3OvejdwGk+XcD+ZD4RxX8kJEG9z33PSrr+8P7wwUjB/fD+8Ls7Ps99z0FkfiQBw7M/wJFgAD/AIiAAAGd9x4D+RD3bxX7+/f7kI/3g4qK9x0F/EEGQUKN/EAF9x33gwaPj/f7+/sFDve0+yXz8fUi8fdO9vcI8hKz9wPl9wj3PPcE9wT1E7+A+GP7JRX3SPP7SAb7S/sV9wT3VfdO9xT3D/c+9z73FvsA+zk5eVVea3qfqx/3fPsGY4UHfZ9qp1KMCCeMQzj7CxoT34D7C9g/8NS2sa6dHpEGE7+AYpyxbM0b9wHN2vc092D7Ofc/+4T7g/s/+0f7fvuB90j7P/eHHxPfgHX3zBVaaK/Cwq6wvB++jKxlVRpRaGlaHg7ofvcZ+wz3EiJ2+Nv3FhKv9yos9yL3Cfcj/wAFY9f/AIg1wxMAEzH5OxYTUfsG9xLE1qXsd+wZ+xsGmEuAVHFeIPcLGJWQBROW07K9vIrjCPKKNdr7Bhv7ED46JVGoWaxiHxOZQV9gUTwa+yb3C0j3FM3Inam/HhM2q2gF+1742xWxn3FtbH15YHUfeYEFcah7n6oaqqOlrh4TmYT8YxVSYa25sZ6jr6Af9xT7JAV/cG6EbxsOjvjh9wMB97jzvfMD97heFfP5Dr39DvP5ffuaBvsXKCH7EfsQ7iD3G4ofDkT7avcW+UP3FhKw9yP7EPcs9wr3Lfsb9yb7HPcjE9j3mftqFfcP6s33BsV1t2SwH5MHE9K6pau7xBrWY7tJsB77GdcFcZpzoKoaq6SjtB4T1L+daW4f9yYG9xsixfsD+w8sSPsFUaFesWYegwcT6F1yaltSGkCxXsZpHvcjOAWlfKJ3axpscnNjVnqsqYoe+yUGE9j7G/NR9wQeE+Kx+CAVOLkFdZd9nKQaqaOjqh7WYwWnfJt5bxptc3RsHg73bn3l2uP3ZuPc5gGz6t7p+A3qA/gvfRX3bfcw9zD3Yvdi+zL3M/tt+2b7M/s0+2H7Yvcx+zD3ah/lBPs1+wf3Bvcy9zH3CvcJ9zD3OvcG+wf7Mvs0+wb7Bfs4H43aFe3Ux+CbHysGa35scl0bTGS3yMexuMq6qXFrlB/sBt59RsonG/sHOzf7AfsC2jj3CB8OTPfGy/cLwLvAvMwBts/YycDOyNAD96P3xhX3IePx9xD3EjLu+yL7HDEn+xL7E+Up9x4fywQnT9Hm6MfP7fHHSS0tUEcmHzi8FcnRpwaoRQXPBmLcBZ6TnKWsGrFusVkeJAbJJhW7qQeak39/f4R/ex8O95j36Pc38ukB9x/3Afck9Pdq9QP3H/foFfcB957k6fuzLeQG95H7nhX09zyQBtn7PAW7Btn3PAWQ+zz19/z7CQYu+1kFhQYv91kF+wkGDvtd+Dbl9wflAcDp9wPpA/df+DYV5cbN3dxQzTEwUEg6OsVJ5x/lBGh2pKusoaStraBya2p2cmkfDvul+2L6cQHn9ykD5/tiFfcp+nH7KQYO+yCgdvgk9xH3Q3cB9zb3HwP3Nhb3H/gk9xL3EfsS90P7H/tD+w/7EfcPBg77IKB29yr3Efcq9xH3KncB9zb3HwP3Nhb3H/cq9xL3EfsS9yr3EvcR+xL3Kvsf+yr7D/sR9w/7KvsP+xH3DwYO+MigdvdK9xO69wT3GPcFfncS0Pct97z3LdX3CST35yX3CRP3QPo19/gV9wDX2u3uP9z7APsBQDooKdY89wEf/fD7+BX3LfhIkQb3ofxIBfdCBhPvQPlQ+y38RoUH+6H4RgX7Qgb58Pt8FWJxqq0fE/dAr6WqtLSlbGceE+9AaXFsYh4T9oD7PvuyFffn9xP75wYO+Ah+9yn3ruXD9ykx5RLA6fcD6c73MfdF9zAT3/df+DYV5cbN3dxQzTEwUEg6OsVJ5x/4YfxDFfch8+r3Jx/7MAZSZWdYWGauxh4T7/eEB8awrr7BrmdRHvcwBhPf9ycm6/sk+xD7DTf7KR77mAf7KfcNN/cQHvxh+J0VaHakq6yhpK2toHJranZyaR8O/PL7efdEAftE9x8D+0T7eRXpBrj3RAX7EAYO+9f47/csAbb3WQO2+O8V9Abn9ywF+ygGDvt5+O33JwG25/bnA/dR+O0V58DB6B8vBm14c2lneaGrHi8GLsBV6B4O+1b47+4o9ysSr/foE2D3IfjvFfcWBvT3KwUkBhOgTFcFgwYTYE2/BSMGDvvs+2HZ/wAVgAD/AH2AAPsFwhL3MNYTsPcW+2EVyLOuvR8T0L5mql5/fYeGhR6FBp3OBUUGdfsR04oFE7CSjpSRlBublYB8e4KAen6BlJWKH0EGXIy1bMIbDvtW+O/3KyjuEq/36BOgr/jvFfMGE2DJvwWTBhOgylcF8gYi9ysF+xYGDvtV+O/3KAGt9ye+9ycD9vjvFbioqra0bqxeYmtqYmCrbLQf91sWtKuqtrRrrGJebmxgYKhsuB8O+N/3PAG690MD9xr43xXBra68u2mvVVZpZ1tarWjAHw771/jv9ywBtvdZA/cc+O8V8wZb9ywF+ykGDvsn+O/3LwG4+AcDuPjvFfAG3/cvBfslBvcm+y8V8Abf9y8F+yUGDvuE+QD3AQG296wDtvkAFfes9wH7rAYO++77WeUBtvdCA/cc+1kV3OVyBnp+k5yWkJOWmR+yvAX7AwZvaAV2cn1ybBpWtm+9Hg77y/jNzNLLAbXS0dED9yj4zRXIt7bFxGC1TE5fYVFSt2DJH8wEdX6ZoKCYmqChmXx3dX19dh8O+zr46vQj9yYSs+j3QugTsPez+OoVE3DLvLztHy4GE7BwiX98dmpxtVAbE3BLWV8lH+gGpo2XmaAbE7CyomHEGw78C/iF918BvfYDvfiFFfYGo/dfBfsXBg788g59mfiOqvc3ma+bBvuemwceoDf/DAmLDAv3JAr3Lwv3JJMMDPcvjpIMDfehFPjyFQABAAAADAAAAAAAAAACABQAAQAKAAEADQARAAEAFgAeAAEAIAAjAAEAJwAuAAEAMQA4AAEAOgA9AAEAPwA/AAEATQBVAAEAVwBkAAEAdQB+AAEAgQCFAAEAigCSAAEAnACjAAEApwCoAAEAqgCvAAEAsQC2AAEAxADMAAEAzgDbAAEBVgFWAAMAAQAAAAoAtAG6AAJERkxUAA5sYXRuABwABAAAAAD//wACAAAACgA0AAhBWkUgAD5DQVQgAEhDUlQgAFJLQVogAFxNT0wgAGZST00gAHBUQVQgAHpUUksgAIQAAP//AAIAAQALAAD//wACAAIADAAA//8AAgADAA0AAP//AAIABAAOAAD//wACAAUADwAA//8AAgAGABAAAP//AAIABwARAAD//wACAAgAEgAA//8AAgAJABMAFGtlcm4Aemtlcm4Agmtlcm4Aimtlcm4Akmtlcm4Ammtlcm4Aomtlcm4Aqmtlcm4Asmtlcm4Aumtlcm4Awm1hcmsAym1hcmsA0G1hcmsA1m1hcmsA3G1hcmsA4m1hcmsA6G1hcmsA7m1hcmsA9G1hcmsA+m1hcmsBAAAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAAAAQACAAMACAAUACIAAgAIAAMAIgCQAPQAAgAIAAQB6AjqDpoQ5AAEAAAAARIWAAET3gAEAAAABgAWACwANgBEAFIAaAAFAPH/6QDy//oBLP/WAS3/1gFQ//MAAgDy/+YA9P/qAAMA7/++APD/8wD1/+8AAwDv/8gA9f/dAVD/vQAFAO8AEQDy/9UA9P/VAQn/dAEtAA4AAQDxADAAAhOAAAQAABUEFSYABgAHAAD/6//u/4j/8f/xAAAAAAAAAAAAAAAAAAD/6gAAAAAAAAAAAAD/7gAAAAAAAP/VAAAAAAAAAAAAAAAAAAAAAAAAAAD/1gAAAAAAAAAAAAAAAP/qAAITNAAEAAAU8BUIAAoADAAA/8D/1v/3/9H/5f/qAAAAAAAAAAAAAAAA/9UAAAAAAAAAAP/q//f/6wAAAAAAAAAA/94AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//QAAAAAAAAAAAAAAAAAAP/m//oAAAAA//EAAAAAAAAAAAAAAAAAAP/sAAAAAAAA/7L/1gAAAAAAAP/IAAAAAAAAAAD/5wAA/9gAAAAAAAAAAP/qAAAAAP/RAAAAAAAA/9gAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAABEj4ABAAAAIIBDgEUARoBIAEmASwBMgE4AT4BRAFKAVgBZgF0AYIBkAGeAawBugHEAc4B5AHyAgACDgIcAiICKAIuAjgCQgJMAlYCYAJqAnQCfgKQAqICqAKuArQCugLAAsYCzALSAtgC5gL0AwIDEAMeAywDOgNIA1IDYAN2A4wDogO4A84D4APyBAQEFgQoBDoEQARaBHQEjgSoBMIE0ATeBOwE+gUABQYFDAUSBRgFHgUkBSoFMAU2BTwFQgVIBU4FVAVaBWQFfgWYBZ4FpAWqBbAFtgW8BcIFyAXOBdQF2gXgBeYF7AXyBiQGKgY4BkYGVAZiBmgGdgaEBpIGoAauBrwGygbYBuYG9AABAN3/1wABAN3/1wABAN3/1wABAN3/1wABAN3/1wABAN3/1wABAN3/1wABAN3/1wABAN3/1wABAN3/1wADAQn/2AEL//0BDP/2AAMBCf/YAQv//QEM//YAAwEJ/9gBC//9AQz/9gADAQn/2AEL//0BDP/2AAMBCf/YAQv//QEM//YAAwEJ/9gBC//9AQz/9gADAQn/2AEL//0BDP/2AAMBCf/YAQv//QEM//YAAgCeAA4AnwAbAAIAngAOAJ8AGwAFAJ4AHACfACMAxP/5AQv/7AEM/+wAAwEJ/9gBC//9AQz/9gADAQn/2AEL//0BDP/2AAMBCf/YAQv//QEM//YAAwEJ/9gBC//9AQz/9gABAJ8AFQABAJ8AFQABAJ8AFQACAJ4ADgCfABUAAgCeAA4AnwAVAAIAngAOAJ8AFQACAJ4ADgCfABUAAgCeAA4AnwAVAAIAngAOAJ8AFQACAJ4ADgCfABUAAgCeAA4AnwAVAAQAngAOAJ8AFQEL//ABDP/wAAQAngAOAJ8AFQEL//ABDP/wAAEAnwAcAAEAnwAcAAEAnwAVAAEAnwAVAAEAnwAVAAEAnwAVAAEAnwAVAAEAnwAVAAEAnwAVAAMBCf/YAQv//QEM//YAAwEJ/9gBC//9AQz/9gADAQn/2AEL//0BDP/2AAMBCf/YAQv//QEM//YAAwEJ/9gBC//9AQz/9gADAQn/2AEL//0BDP/2AAMBCf/YAQv//QEM//YAAwEJ/9gBC//9AQz/9gACAQsAAAEMAAAAAwEJ/9gBC//9AQz/9gAFAIb/xQCeACUAnwA2AQv/0AEM/9kABQCG/8UAngAlAJ8ANgEL/9ABDP/ZAAUAhv/FAJ4AJQCfADYBC//QAQz/2QAFAIb/xQCeACUAnwA2AQv/0AEM/9kABQCG/8UAngAlAJ8ANgEL/9ABDP/ZAAQAngAhAJ8AQAEL/+kBDP/pAAQAngAvAJ8ARwEL/+kBDP/pAAQAngAvAJ8ARwEL/+kBDP/pAAQAngAvAJ8ARwEL/+kBDP/pAAQAngAvAJ8ARwEL/+kBDP/pAAQAngAvAJ8ARwEL/+kBDP/pAAEAnwAvAAYAnP/lAJ4AIgCfADUAoQAAAQv/1gEM/9YABgCc/+UAngAiAJ8ANQChAAABC//WAQz/1gAGAJz/5QCeACIAnwA1AKEAAAEL/9YBDP/WAAYAnP/lAJ4AIgCfADUAoQAAAQv/1gEM/9YABgCc/+UAngAiAJ8ANQChAAABC//WAQz/1gADAHX/8wCeACUAnwAoAAMAdf/zAJ4AJQCfACgAAwB1//MAngAlAJ8AKAADAHX/8wCeACUAnwAoAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAEArwAAAAIBCwAAAQwAAAAGAKoAKgCrACoArAAqAK0AKgCuACoArwAqAAYAqgAqAKsAKgCsACoArQAqAK4AKgCvACoAAQCf//oAAQCf//oAAQCf//oAAQCf//oAAQCf//oAAQCf//oAAQCvAAAAAQCvAAAAAQCvAAAAAQCvAAAAAQCvAAAAAQCvAAAAAQCvAAAAAQCvAAAAAQCvAAAADACvAAAA3P/nAN3/5wDe/+cA3//nAOD/5wDh/+cA4//nAOT/5wDl/+cA5v/nAOf/5wABAK8AAAADAQsAAAEMAAABDf+0AAMBCwAAAQwAAAEN/7QAAwELAAABDAAAAQ3/tAADAQsAAAEMAAABDf+0AAEArwAAAAMBCwAAAQwAAAEN/8IAAwELAAABDAAAAQ3/wgADAQsAAAEMAAABDf/CAAMBCwAAAQwAAAEN/8IAAwELAAABDAAAAQ3/wgADAQsAAAEMAAABDf/CAAMBCwAAAQwAAAEN/8IAAwELAAABDAAAAQ3/wgADAQsAAAEMAAABDf/CAAMBCwAAAQwAAAEN/8IAAwELAAABDAAAAQ3/wgACC74ABAAADVgN8gAUACQAAP/l/8f/vP/Q/6b/3f/s/+//6P+g/8z/yv+Y/8D/v/+0/9z/5//q//L/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+gAA//oAAAAA/98AAP/6AAAADgAAAAAAAAAAAAAAAAAAAAAAAP/6//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+v/7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/73/0v+I/+n/vf/xAAAAAAAAAAAAAAAAAAAAAP/6AAAAAAAAAAAAAAAA/9L/+v/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+n/7AAAAAD/6QAAAAAAAAAAAAAAAAAAAAAAAP+9AAAAAAAAAAAAAAAA/+n/zQAAAAD/ygAA/9sAAAAAAAAAAP/V//L/9gAAAAAAAAAA/9sAAAAA//oAAAAAAAAAAAAAAAAAAP/Z/4j/nP+t/44AAP/bAAD/7P96/8P/tv+c/8EAAP+t/9wAAP/V/+z/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+z/7//y/80AAAAA/9IAAAAAAAAAAP/qAAAAAAAAAAAAAAAAAAAAAP/Q/9j/5QAAAAD/9AAAAAD/7P/6/68AAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9n/5AAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAA/6f/xP+I/9H/pwAAAAAAAAAAAAAAAAAAAAAAAP/yAAD/3QAA/9AAAAAA/+P/8v/6AAAAAAAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAA/94AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8gAA/+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sACEAFQAVAA4AAAAAAAD/sAAAAAD/7QAAAAAAAAAAAAAAAP/jAAD/2QAA/7v/xwAA/9T/u//3AAAAAAAAAAD/z//r/+8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/94AAAAAAAD/9AAAAAAAAAAAAAAAAAAAAAAAAP/vABUADgAAAAAAAAAAAAD/uQAAAAAAAAAAAAAAAAAAAAAAAP/xAAD/8gAA/7v/vAAA/9T/u//r//IAAAAAAAD/2AAAAAAAAP/yABUAAAAOAAAAAAAAAAD/1AAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAA/83/0AAA/9D/zQAAAAAAAAAAAAAAAAAAAAAAAP/QAAAAAAAAAAAAAAAAAAD/0AAAAAD/1gAAAAAAAAAAAAAAAP/cAAD/3gAAAAAAAAAA/+sAAAAA/+sAAAAAAAAAAAAAAAAAAP/KAA4AAAAAAA4AAP/6AAD/nwAAAAD/4gAAAAAAAAAAAAAAAP/qAAD/2wAA/7X/qQAA/9f/tf/K/+gAAAAAAAD/uv/bAAAAAP/xAAAAAAAAAAAAAAAAAAD/5AAAAAAAAAAAAAAAAAAAAAAAAP/qAAD/6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//IAAAAAAAAAAAAAAAAAAAAA//kAAAAAAAD/+QAAAAAAAAAAAAAAAAAAAAAAAgZCAAQAAAmQCiQADwATAAD/6f/5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/SAA7/wf/p/8EAHgAJ//kAFQAVAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/0AAAADv/UAAAAAAAA/+MAAAAA//IAAAAAAAAAAAAAAAAAAAAA/+v/7AAA//MAAP/fAAD/+v/iAAAAAP/s/+7/3v/rAAAAAAAAAAD/3//wAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/V//H/9gAAAAD/8v/iAAD/5wAAAAAAAP/3AAAAAP/eAAAAAAAA/+IAAP+0/+//zwAAAAAAAAAVAAAAAAAAAAAABwAAAAAABwAAAAD/9wAA//oAAAAA//oAAAAA/+kAAAAAAAAAAAAAAAAAAP/6AAAAAP/uAAD/+gAAAAAAAAAA/+oADgAAAAAAAAAAAAAAAAAAAA4AAAAA//cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAA/8L/5f/dAAAAAAAAABUAAAAAAAD/+gAAABsAAAAA/+4AAP/6AAAAAP/eAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//MAAAAAAAD/6gAAAAAAAAAAAAAADgAAAAAAAP/6AAIEDgAEAAAIegioAAgAEwAA/5L/z//oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/rwAGACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xv/VAAAAAP/s/+r/6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAD/nQAA/7T/2wAAAAAAAAAAAAAAAP/6//H/sP/3/9//+gAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAP/uAAAAAAAAAAAAAAAA//H/8QAAAAAAAAAAAAAAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQLoAu4AAQAMABIAAQAAASIAjQEiASIBIgEiASIBIgEiASIBIgEiASgBKAEoASgBKAEuAS4BLgEuAS4BLgEuAS4BLgE0ATQBNAE0AToBOgE6AToBOgE6AToBOgFAAUABRgFGAUYBRgFGAUwBUgFSAVIBUgFSAVgBWAFYAVgBXgFeAV4BXgFeAWQBZAFkAWQBZAFqAWoBagFqAWoBagFqAWoBagFwAXABcAFwAXABcAFwAXABcAFwAXYBdgF2AXYBdgF8AXwBfAF8AXwBfAF8AXwBfAGCAYIBggGCAYIBggGCAYgBjgGOAZQBlAGUAZQBlAGaAaABoAGgAaABoAGgAaYBpgGmAaYBrAGsAawBrAGsAbIBsgGyAbIBsgG4AbgBuAG4AbgBuAG4AbgBuAAB/54AAAABAoEAAAABAZYAAAABAdUAAAABAZsAAAABAK0AAAABAUcAAAABAR0AAAABAUEAAAABAWYAAAABAUIAAAABATMAAAABAS0AAAABAXkAAAABAhYAAAABATYAAAABAUgAAAABAKcAAAABAKIAAAABATIAAAABAMAAAAABAOAAAAABATcAAAABANwAAAABAQ4AAAABARgAAAABAe8AAAABAAYA7wDwAPIA9AD1AQUAAQAKAQkBCgEMARQBFgEeAR8BIAElAScAAgABAO4A9wAAAAIAFQABAAoAAAANABIACgAUABcAEAAfADIAFAA5AEYAKABIAEgANgBKAEoANwBMAEwAOABXAFsAOQBlAHQAPgCAAIUATgCHAIcAVACKAJMAVQCeAJ8AXwCqAK8AYQC3AL8AZwDBAMIAcADEAMcAcgDNAM0AdgDcAOEAdwDjAOcAfQACAAgAAQAKAAAADAASAAoAFAAXABEAHwBGABUASABIAD0ASgBKAD4ATABVAD8AVwB0AEkAAgADAHUAfgAAAIAAvwAKAMEA6wBKAAEACwERARgBGgEcAR4BHwEgASMBJAEmAScAAQABAVYAAgATAAEACgAAAA0AEQAKABYAHgAPACAAIwAYACcALgAcADEAOAAkADoAPQAsAD8APwAwAE0AVQAxAFcAZAA6AHUAfgBIAIEAhQBSAIoAkgBXAJwAowBgAKcAqABoAKoArwBqALEAtgBwAMQAzAB2AM4A2wB/AAIABQEUARQABAEWARYAAwEeASAAAgElASUABQEnAScAAQACAAcA7gDuAAIA7wDvAAMA9QD1AAUA9wD3AAEBCQEKAAYBDAEMAAYBGQEZAAQAAQDuAAkAAQAFAAkACAAEAAMABwAGAAIAAgANAO4A7gAKAO8A7wAHAPEA8QAFAPIA8gADAPQA9AAEAPcA9wAJAQkBCgABAQsBCwACAQwBDAABAQ0BDQACARYBFgAGAR4BIAALAVABUAAIAAIAGQAMAAwAAQANABIACAAUABUACAAWABcAAgAfAB8AAwAgACMACAAkACYAEwAnAC4ABAAvADAABQAxADIABgAzADgABwA5AD8AEwBAAEYACABIAEgACABKAEoACQBMAEwACABNAFAACgBRAFUACwBXAFsADABcAGQADQBlAGUADgBmAGoADwBrAGsAEABsAHAAEQBxAHQAEgACADcAAQAKABgACwALABkADAAMAB4ADQARAAEAIAAjAAEAJwAuAB8ALwAwABoAQABGAAEARwBHABIASABIAAEASQBJABIATABMAAEAUQBVAB0AVwBbAAIAXABkABEAZQBlAAMAZgBqAAQAawBrABYAbABwAAUAdQB/AAkAgACAABwAgQCSAAkAkwCTAAYAlACXAAkAmACaABwAmwCjAAcApACmAAgApwCpABwAqgCvABQAsAC2ABwAtwDAAAkAwQDCABwAwwDDAAkAxADHABwAyADMACEAzQDNABwAzgDSAAsA0wDbABUA3ADhAAwA4gDiACMA4wDnAAwA6ADrACIBCQEKABcBCwELABsBDAEMABcBDQENABsBEAEQAA4BFAEUAA0BGQEZACABHgEgABMBJQElAAoBJwEnAAoBTQFNABIBTgFOAA8BTwFPABAAAgAYAIAAhQAHAIYAhgAGAIcAhwAHAIgAiQAGAIoAkgAHAJMAkwABAJQAmgAGAJsAowACAKQApgADAKcAqQAEAKoArwAFALAAtgAGALcAvwAHAMEAwgAHAMMAwwAGAMQAxwAIAMgAzAAJAM0AzQAHAM4A0gAKANMA2wALANwA4QAMAOIA4gANAOMA5wAMAOgA6wAOAAIAGgB1AH8ABACBAJIABACTAJMADwCUAJcABACbAKMADACkAKYAAQCqAK8ADQC3AMAABADDAMMABADIAMwAEgDOANIADgDTANsACwDcAOEACQDiAOIAEADjAOcACQDoAOsAEQEJAQoAAwELAQsABQEMAQwAAwENAQ0ABQEQARAABwEUARQAAgEZARkACgEeASAACAElASUABgEnAScABgACAAcBEQERAAIBGAEYAAEBGgEaAAYBHAEcAAcBHgEgAAUBIwEjAAMBJwEnAAQAAgAmAAEACgABAAwADAAIAA0AEQAEABIAFQAJABYAFwAHAB8AHwAHACAAIwAEACQAJgAHAC8AMAACADEAPwAHAEAARgAEAEgASAAEAEoASgAHAEwATAAEAE0AUAAHAFEAVQALAFcAWwAFAGUAZQAKAHUAfwADAIAAgAAMAIEAkgADAJQAlwADAJgAmgAMAKQApgAGAKcAqQAMALAAtgAMALcAwAADAMEAwgAMAMMAwwADAMQAxwAMAMgAzAANAM0AzQAMAM4A0gAOANMA2wAPANwA4QAQAOIA4gARAOMA5wAQAOgA6wASAAAAAQAAAAoBBgP4AAJERkxUAA5sYXRuACQABAAAAAD//wAGAAAACgAUAB8AKQAzADQACEFaRSAASENBVCAAWkNSVCAAbEtBWiAAfk1PTCAAkFJPTSAAolRBVCAAtFRSSyAAxgAA//8ABwABAAsAFQAeACAAKgA0AAD//wAGAAIADAAWACEAKwA1AAD//wAGAAMADQAXACIALAA2AAD//wAGAAQADgAYACMALQA3AAD//wAGAAUADwAZACQALgA4AAD//wAGAAYAEAAaACUALwA5AAD//wAGAAcAEQAbACYAMAA6AAD//wAGAAgAEgAcACcAMQA7AAD//wAGAAkAEwAdACgAMgA8AD1hYWx0AXBhYWx0AXhhYWx0AYBhYWx0AYhhYWx0AZBhYWx0AZhhYWx0AaBhYWx0AahhYWx0AbBhYWx0AbhmcmFjAcBmcmFjAcZmcmFjAcxmcmFjAdJmcmFjAdhmcmFjAd5mcmFjAeRmcmFjAepmcmFjAfBmcmFjAfZsaWdhAfxsaWdhAgJsaWdhAghsaWdhAg5saWdhAhRsaWdhAhpsaWdhAiBsaWdhAiZsaWdhAixsaWdhAjJvcmRuAjhwbnVtAj5wbnVtAkRwbnVtAkpwbnVtAlBwbnVtAlZwbnVtAlxwbnVtAmJwbnVtAmhwbnVtAm5wbnVtAnRzdXBzAnpzdXBzAoBzdXBzAoZzdXBzAoxzdXBzApJzdXBzAphzdXBzAp5zdXBzAqRzdXBzAqpzdXBzArB0bnVtArZ0bnVtArx0bnVtAsJ0bnVtAsh0bnVtAs50bnVtAtR0bnVtAtp0bnVtAuB0bnVtAuZ0bnVtAuwAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEABAAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEAAgAAAAEABQAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEABgAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEAAwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAAAAEABwAIABIAGgAiACoAMgA6AEIASgABAAAAAQCsAAMAAAABAM4ABAAAAAEAMAABAAAAAQBIAAQAAAABAEYAAQAAAAEAagABAAAAAQBwAAEAAAABAG4AAQDGAAIACgAWAAEABAENAAMBCQEJAAEABAFVAAIADQABAK4AEwABALIAAgAKACAAAgAGAA4BBgADARYA8AEHAAMBFgDyAAEABAEIAAMBFgDyAAIAjgAEAOwA7QDsAO0AAQCM//YAAQCQAAoAAgCUABIA7ADtAOwA7QD4APwA/QD+AP8BAAEBAO4A8gDzAPQA9QD2APcAAQCSAAYAEgAYAB4AJAAoACwAAgECAPkAAgEDAPoAAgEEAPsAAQDvAAEA8AABAPEAAQACAQkBUAACAAEA7wDxAAAAAQACAO8A8QABAAQAAQBAAHUAtwACAAEA+AEBAAAAAgABAO4A9wAAAAEAEgABAEAAdQC3AO4A8gDzAPQA9QD2APcA+AD8AP0A/gD/AQABAQACAAIA7wDxAAAA+QD7AAMAAA=="}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.377Z","timestamp":1785142498377,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"neuro_styrene_bold-s.p.d62967a0.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"1701812accd2003f670be62a50621941\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::4s7n2-1785142498382-9ba2100a147b\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":71516,"size_decoded":24987,"mime_type":"font/otf","magic":"OpenType font data","md5":"1701812accd2003f670be62a50621941","sha1":"a1f53ce028f55225a0efbc750c2d7317e8b670ea","sha256":"970ae623aa2b3fce0a29e35de5f8d1413aed2d4e9f48eb94f6fc9c2d20815e02","sha512":"d0958085921c59fe744a293859e81a9d9eab0beb2d93660a4804da0f7dc57ba839de71cf038a43fc5428a556bd0b1569aa14da2b9b680f2d4845fb8cb0bf2451","ssdeep":"1536:hT8p3xFH53EOcFmz77gbzGYdIt1fGNXJHEPU4O4:hKFH530FmnKTdIUJ4","tlshash":"5063b751b3fd0214faf73b706eba92a85e3abca9a93dd24c1514405e0a72e50ce70737","first_seen":"2025-03-19T06:27:29.463058Z","last_seen":"2026-07-27T08:57:45.719096Z","times_seen":7,"resource_available":false,"data":"T1RUTwALAIAAAwAwQ0ZGIMEb7FMAAO5oAAAUxkdQT1Oi6rEiAAEDMAAAEbpHU1VC4Cf6vwABFOwAAAFCT1MvMl8KklYAAAEgAAAAYGNtYXAhsiJ9AADtzAAAAHpoZWFkFna9SgAAALwAAAA2aGhlYQi3BKQAAAD0AAAAJGhtdHi6GBSKAAEWMAAAASxtYXhwAEtQAAAAARgAAAAGbmFtZSmbJlwAAAGAAADsTHBvc3T/3QBMAADuSAAAACAAAQAAAAEAQchGAcxfDzz1AAMD6AAAAADVYEAuAAAAAN40Ogf/jf8UBD4C4AAAAAMAAgAAAAAAAAABAAAC/P8UAMgFqv+N/5oFYwABAAAAAAAAAAAAAAAAAAAASwAAUAAASwAAAAQChgGQAAUABAKKAlgAAABLAooCWAAAAV4ATAEoAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAENPTU0BQAAgIB0C/P8UAMgEsQFFIAAAkwAAAAAB7gLGAAAAIAAMAAAAHgFuAAEAAAAAAAAAIgAAAAEAAAAAAAEAFwAiAAEAAAAAAAIABwA5AAEAAAAAAAMAIABAAAEAAAAAAAQAFQBgAAEAAAAAAAUAOwB1AAEAAAAAAAYAFQBgAAEAAAAAAAcARgCwAAEAAAAAAAgAFQD2AAEAAAAAAAkADQELAAEAAAAAAAsAGQEYAAEAAAAAAAwAGwExAAEAAAAAAA1MzgFMAAEAAAAAAA4AIU4aAAEAAAAAABAAD047AAMAAQQJAAAARE5KAAMAAQQJAAEALk6OAAMAAQQJAAIADk68AAMAAQQJAAMAQE7KAAMAAQQJAAQAKk8KAAMAAQQJAAUAdk80AAMAAQQJAAYAKk8KAAMAAQQJAAcAjE+qAAMAAQQJAAgAKlA2AAMAAQQJAAkAGlBgAAMAAQQJAAsAMlB6AAMAAQQJAAwANlCsAAMAAQQJAA2ZnFDiAAMAAQQJAA4AQup+AAMAAQQJABAAHurAQ29weXJpZ2h0IChDKTIwMTYgQ29tbWVyY2lhbCBUeXBlLlN0eXJlbmUgQSBSZWd1bGFyIFRyaWFsUmVndWxhcjEuMDAxO0NPTU07U3R5cmVuZUFUcmlhbC1SZWd1bGFyU3R5cmVuZUFUcmlhbC1SZWd1bGFyVmVyc2lvbiAxLjAwMTtQUyAwMDEuMDAxO2hvdGNvbnYgMS4wLjcyO21ha2VvdGYubGliMi41LjU5MDBTdHlyZW5lIEEgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBDb21tZXJjaWFsIFR5cGUvU2Nod2FydHpjbyBJbmMuQ29tbWVyY2lhbCBUeXBlLCBJbmMuQmVydG9uIEhhc2ViZWh0dHA6Ly9jb21tZXJjaWFsdHlwZS5jb21odHRwOi8vd3d3LmJlcnRvbmhhc2ViZS5jb21Db21tZXJjaWFsIFR5cGUgRm9udCBTb2Z0d2FyZSBFbmQgVXNlciBMaWNlbnNlIEFncmVlbWVudCAgUExFQVNFIFJFQUQgVEhJUyBET0NVTUVOVCBDQVJFRlVMTFkgYW5kIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBrZWVwIGEgY29weSBmb3IgZnVydGhlciByZWZlcmVuY2UuICAgVGhpcyBFbmQgVXNlciBMaWNlbnNlIEFncmVlbWVudCAodGhlICJBZ3JlZW1lbnQiICJFVUxBLCIgIkxpY2Vuc2UsIiAiQWdyZWVtZW50IiBvciAiTGljZW5zZSBBZ3JlZW1lbnQiKSBpcyBhIGxlZ2FsIGFncmVlbWVudCBiZXR3ZWVuIHlvdSBhbmQgU2Nod2FydHpjbywgSW5jLiwgZC9iL2EgQ29tbWVyY2lhbCBUeXBlLCBhL2QvYi9hIFN0LiBCcmlkZSBUeXBlIEZvdW5kcnkgKGNvbGxlY3RpdmVseSwgIkNvbW1lcmNpYWwgVHlwZSIpIGFuZCBiZWNvbWVzIGEgYmluZGluZyBjb250cmFjdCBiZXR3ZWVuIHlvdSBhbmQgU2Nod2FydHpjby4gVGhpcyBBZ3JlZW1lbnQgZ292ZXJucyB0aGUgdGVybXMgb2YgdXNlIHRoZSBGb250IFNvZnR3YXJlIGFuZCB0aGUgZGVzaWduIG9mIHRoZSBGb250cyBlbWJvZGllZCB0aGVyZWluIChjb2xsZWN0aXZlbHksICJGb250IFNvZnR3YXJlIiksIHRvZ2V0aGVyIHdpdGggYW55IG1lZGlhLCBwcmludGVkIG1hdGVyaWFscywgZWxlY3Ryb25pYyBkb2N1bWVudGF0aW9uLCB1cGRhdGVzLCBhZGQtb25zLCBhcnR3b3JrLCB3ZWIgc2VydmljZXMgYW5kIGFueSBvdGhlciBtYXRlcmlhbCB0aGF0IG1heSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb2R1Y3Qgbm93IG9yIGluIHRoZSBmdXR1cmUuIFRoaXMgQWdyZWVtZW50IGJlY29tZXMgZWZmZWN0aXZlIChhKSB3aGVuIHlvdSAiQUNDRVBUIExJQ0VOU0UgQUdSRUVNRU5ULCIgb3IgKGIpIGlmIHlvdSBhcmUgYWNxdWlyZSBhbmQgYWNjZXB0IHRoZSBGb250IFNvZnR3YXJlIG9uIGEgQ29tcGFjdCBEaXNjIG9yIERpZ2l0YWwgVmlkZW8gRGlzayAoQ0QsIERWRCksIG9yIChjKSB3aGVuIHlvdSBvcGVuIHRoZSBjb21wcmVzc2VkIGVsZWN0cm9uaWMgZmlsZSBpbiB3aGljaCB0aGUgRm9udCBTb2Z0d2FyZSBpcyBjb250YWluZWQuIElmIHlvdSBkbyBub3Qgd2lzaCB0byBlbnRlciBpbnRvIHRoaXMgQWdyZWVtZW50LCBkbyBub3QgcHVyY2hhc2UsIGFjY2VzcywgZG93bmxvYWQgYW5kL29yIGluc3RhbGwgb3Igb3RoZXJ3aXNlIHVzZSB0aGUgRm9udCBTb2Z0d2FyZS4gIDEuIFVwb24gcGF5bWVudCBpbiBmdWxsLCBDb21tZXJjaWFsIFR5cGUgd2lsbCBncmFudCB5b3UgYSBub24tZXhjbHVzaXZlIHRlcm1pbmFibGUgTGljZW5zZSB0byB0aGUgRm9udCBTb2Z0d2FyZSB0aGF0IGFjY29tcGFuaWVzIHRoaXMgRVVMQS4gVXNlIG9mIHRoZSBGb250IFNvZnR3YXJlIGlzIGxpbWl0ZWQgdG8gUGVyc29uYWwgb3IgSW50ZXJuYWwgQnVzaW5lc3MgVXNlIG9ubHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsICJGb250IFNvZnR3YXJlIiBzaGFsbCBiZSBkZWZpbmVkIGFzIHRoZSBkZXNpZ24gb2YgdGhlIEZvbnRzIHRvZ2V0aGVyIHdpdGggdGhlIEZvbnQgU29mdHdhcmUgd2hpY2gsIHdoZW4gdXNlZCBnZW5lcmF0ZXMgdGhlIHR5cGVmYWNlLCB0eXBvZ3JhcGhpYyBkZXNpZ25zIGFuZCwgaWYgYXBwbGljYWJsZSwgb3JuYW1lbnRzIG9yIG90aGVyIGRlc2lnbnMuIFBlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSBzaGFsbCBtZWFuIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBmb3IgeW91ciBjdXN0b21hcnkgcGVyc29uYWwgb3IgaW50ZXJuYWwgYnVzaW5lc3MgcHVycG9zZXMgYW5kLCBleGNlcHQgYXMgbWF5IG90aGVyd2lzZSBwZXJtaXR0ZWQgaGVyZWluLCBzaGFsbCBub3QgbWVhbiBvciBpbmNsdWRlIHRoZSBjb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBvciB1c2Ugb2YgRm9udCBTb2Z0d2FyZSwgdGhlIGRlc2lnbiBvZiB0aGUgZm9udHMgb3IgYXJ0d29yayBlbWJvZGllZCB0aGVyZWluIG9yIGFueSBjb21wb25lbnQgdGhlcmVvZiBmb3IgYW55IGNvbW1lcmNpYWwgdXNlIG9yIGluIGFueSBDb21tZXJjaWFsIFByb2R1Y3QgZm9yIHNhbGUgd2hhdHNvZXZlci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIEFncmVlbWVudCwgcHJvaGliaXRlZCBjb21tZXJjaWFsIHVzZXMgaW5jbHVkZSwgYnkgd2F5IG9mIGV4YW1wbGUgbm90IGxpbWl0YXRpb24sIFQtc2hpcnRzLCB0aGlyZC1wYXJ0eSBzb2Z0d2FyZSwgZWxlY3Ryb25pYyBkZXZpY2VzLCBtdWdzLCBhbmltYXRpb24sIGV0Yy4gYW5kIGFzIG1heSBiZSBmdXJ0aGVyIG5vdGVkIGJlbG93LiBJZiB5b3UgYXJlIHVuc3VyZSB3aGV0aGVyIHlvdXIgdXNlIGlzIG5vdCBwZXJtaXR0ZWQsIGNvbnRhY3QgQ29tbWVyY2lhbCBUeXBlLiBZb3VyIGZhaWx1cmUgdG8gY29udGFjdCB0byBzZWVrIHBlcm1pc3Npb24gb3IgdGhlIGxhY2sgb2YgYSBzcGVjaWZpYyBwcm9oaWJpdGlvbiBpbiB0aGlzIEFncmVlbWVudCBzaGFsbCBub3QgYmUgaW50ZXJwcmV0ZWQgb3IgZGVlbWVkIGEgd2FpdmVyIG9yIHBlcm1pc3NpYmxlIHVzZSBvZiBhbnkga2luZC4gWW91IGhlcmVieSBhZ3JlZSB0aGF0IHRoZSBGb250IFNvZnR3YXJlIHNoYWxsIGZ1cnRoZXIgY29tcHJpc2UgYWxsIGJpdG1hcCByZXByZXNlbnRhdGlvbnMgb2YgdHlwZWZhY2UgYW5kIHR5cG9ncmFwaGljIGRlc2lnbnMgYW5kIG9ybmFtZW50cyBjcmVhdGVkIGJ5IG9yIGRlcml2ZWQgZnJvbSB0aGUgRm9udCBTb2Z0d2FyZS4gVGhlIEZvbnQgU29mdHdhcmUgc2hhbGwgYmUgZGVlbWVkIHRvIGluY2x1ZGUgYW55IHVwZ3JhZGVzLCB1cGRhdGVzLCByZWxhdGVkIGZpbGVzLCBwZXJtaXR0ZWQgbW9kaWZpY2F0aW9ucywgaWYgYW55LCBwZXJtaXR0ZWQgY29waWVzLCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uLiAgMi4gSWYgeW91IGFyZSBhIGRlc2lnbiBjb25zdWx0YW5jeSwgYWR2ZXJ0aXNpbmcgYWdlbmN5IG9yIHB1cmNoYXNpbmcgdGhpcyBsaWNlbnNlIGZvciB1c2UgYnkgb3Igb24gYmVoYWxmIG9mIHN1Y2ggYW4gZW50aXR5LCB0aGUgdWx0aW1hdGUgZW5kIHVzZXIgc2hvdWxkIGFsc28gcHVyY2hhc2UgYSBsaWNlbnNlIGFwcHJvcHJpYXRlIGZvciB0aGVpciBpbnRlbmRlZCB1c2Ugb2YgdGhlIEZvbnQgU29mdHdhcmUsIGlmIHRoZWlyIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpcyBsaWtlbHkgdG8gaW52b2x2ZSB1c2VzIG5vdCBwZXJtaXR0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuIFRoZSBsaWNlbnNlIGdyYW50ZWQgaGVyZWluIGZvciBwZXJzb25hbCB1c2UgZG9lcyBub3QgZXh0ZW5kIHRvIHVzZXMgYnkgdGVtcG9yYXJ5IGVtcGxveWVlcyBvciBpbmRlcGVuZGVudCBjb250cmFjdG9ycyB1c2luZyB0aGUgRm9udCBTb2Z0d2FyZSBhcyB0aGVpciB1c2UgbWF5IHJlbGF0ZSB0byBwcm92aWRpbmcgcHJvZmVzc2lvbmFsIHNlcnZpY2VzIG9yIGZvciBvdGhlciBwcm9mZXNzaW9uYWwgdXNlcy4gVW5kZXIgc3VjaCBjaXJjdW1zdGFuY2VzIGFuIGVtcGxveWVyIGFuZC9vciB0aGUgdWx0aW1hdGUgZW5kIHVzZXIgYXJlIGFsc28gcmVxdWlyZWQgdG8gcHVyY2hhc2UgYSBsaWNlbnNlIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZS4gIDMuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsICJDb21tZXJjaWFsIFByb2R1Y3QiIHNoYWxsIGFsc28gbWVhbiwgYW1vbmcgb3RoZXIgdGhpbmdzLCBhIHVzZXIgZWRpdGFibGUgZWxlY3Ryb25pYyBkb2N1bWVudCBjcmVhdGVkIGJ5IFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB3aGljaCBpcyBvZmZlcmVkIGZvciBkaXN0cmlidXRpb24gdG8gdGhlIGdlbmVyYWwgcHVibGljIChvciB0byBzb21lIHN1YnNldCBvZiB0aGUgZ2VuZXJhbCBwdWJsaWMpLCBpbiBGbGFzaCB0eXBlIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIG9yIGV4aGliaXRlZCwgaW4gZ2FtaW5nIHByb2R1Y3RzIG9yIHNvZnR3YXJlIHdoZXJlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBGb250IFNvZnR3YXJlIG9yIHRoZSBkZXNpZ25zIGVtYm9kaWVkIHRoZXJlaW4gbWF5IGJlIGV4dHJhY3RlZDsgb3IgdXNlIG9uIGdvb2RzIGZvciBzYWxlIGFzIGEgY29tbWVyY2lhbCBwcm9kdWN0IGluIGV4Y2hhbmdlIGZvciBhIHNlcGFyYXRlIGZlZSBvciBvdGhlciBjb25zaWRlcmF0aW9uLiBIb3dldmVyLCBhIGRvY3VtZW50IGRpc3RyaWJ1dGVkIGluIGNvbm5lY3Rpb24gd2l0aCBhIGNvbW1lcmNpYWwgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIGNvbnNpZGVyYXRpb24gaXMgdW5yZWxhdGVkIHRvIHN1Y2ggYSBkb2N1bWVudCAoZm9yIGV4YW1wbGUsIHByaW50ZWQgYWR2ZXJ0aXNpbmcsIGEgYnVzaW5lc3MgbGV0dGVyIG9yIGEgcmVjZWlwdCBmb3IgcHVyY2hhc2Ugb2YgdGFuZ2libGUgZ29vZHMgc3VjaCBhcyBjbG90aGluZyksIG9yIGFzIG90aGVyIGRlc2lnbiBtYXRlcmlhbHMgZGlzdHJpYnV0ZWQgaW5jaWRlbnRhbCB0byB0aGUgcHVyY2hhc2Ugb2YgZ29vZHMgb3Igc2VydmljZXMsIHNoYWxsIG5vdCBiZSBjb25zaWRlcmVkIGEgQ29tbWVyY2lhbCBQcm9kdWN0LiAgNC4gYSkgRXhjZXB0IGFzIG1heSBiZSBwcm9oaWJpdGVkIGhlcmVpbiwgeW91IGFyZSBwZXJtaXR0ZWQgdG8gZWxlY3Ryb25pY2FsbHkgZGlzdHJpYnV0ZSBhICYjMjEwO1BlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSYjMjExOyBkb2N1bWVudCAodGhhdCBpcywgYSBkb2N1bWVudCBvdGhlciB0aGFuIGEgQ29tbWVyY2lhbCBQcm9kdWN0IGFzIGRlZmluZWQgYWJvdmUpIChpKSB0aGF0IGlzIGluIGEgc3RhdGljIGdyYXBoaWMgaW1hZ2UgKGZvciBleGFtcGxlLCBhICYjMjEwO2dpZiYjMjExOykgb3IgaW4gYW4gZW1iZWRkZWQgZWxlY3Ryb25pYyBkb2N1bWVudCwgYW5kIChpaSkgd2hpY2ggaXMgZGlzdHJpYnV0ZWQgaW4gYSBmb3JtYXQgdGhhdCBwZXJtaXRzIG9ubHkgdGhlIHZpZXdpbmcgYW5kIHByaW50aW5nIChhbmQgbm90IHRoZSBlZGl0aW5nLCBhbHRlcmluZywgZW5oYW5jaW5nLCBvciBtb2RpZnlpbmcpIG9mIHN1Y2ggc3RhdGljIGdyYXBoaWMgaW1hZ2Ugb3IgZW1iZWRkZWQgZG9jdW1lbnQuIFBlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSBzaGFsbCBub3QgaW5jbHVkZSBhbnkgVXNlIG9mIHRoZSBGb250IFNvZnR3YXJlIGJ5IHBlcnNvbnMgdGhhdCBhcmUgbm90IG1lbWJlcnMgb2YgeW91ciBpbW1lZGlhdGUgaG91c2Vob2xkLCB5b3VyIGF1dGhvcml6ZWQgZW1wbG95ZWVzLCBvciB5b3VyIGF1dGhvcml6ZWQgYWdlbnRzLiBBbGwgc3VjaCBob3VzZWhvbGQgbWVtYmVycywgZW1wbG95ZWVzIGFuZCBhZ2VudHMgc2hhbGwgYmUgbm90aWZpZWQgYnkgeW91IGFzIHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQWdyZWVtZW50IGFuZCBzaGFsbCBhZ3JlZSB0byBiZSBib3VuZCBieSBpdCBwcmlvciB0byB1c2Ugb2YgdGhlIEZvbnQgU29mdHdhcmUuIGIpIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpbiBzSUZSIChTY2FsYWJsZSBJbm1hbiBGb250IFJlcGxhY2VtZW50KSBpcyBwZXJtaXR0ZWQuIEhvd2V2ZXIsIHRoZSB1c2Ugb2YgQ3VmJiMxNTE7biBvciBAZm9udC1mYWNlIG9yIG90aGVyIGZvcm1zIG9mIHdlYiBlbWJlZGRpbmcgb3Igd2ViIGZvbnQgcmVwbGFjZW1lbnQgdGVjaG5vbG9naWVzLCAoJiMyMTA7Rm9udCBSZXBsYWNlbWVudCBUZWNobm9sb2dpZXMmIzIxMTspIG90aGVyIHRoYW4gcGRmIGFzIG90aGVyd2lzZSBleHByZXNzbHkgcGVybWl0dGVkIGhlcmVpbiwgZWFjaCByZXF1aXJlIHRoZSBwdXJjaGFzZSBvZiBhIGxpY2Vuc2UgdXBncmFkZS4gIDUuIENvbW1lcmNpYWwgVHlwZSwgaXRzIHN1Y2Nlc3NvcnMgYW5kIGFzc2lnbnMsIGV4cHJlc3NseSByZXRhaW4gYWxsIHJpZ2h0IGFuZCB0aXRsZSBpbiBhbmQgdG8gdGhlIEZvbnQgU29mdHdhcmUgdG9nZXRoZXIgd2l0aCB0aGUgZGVzaWduIG9mIHRoZSBGb250IGVtYm9kaWVkIHRoZXJlaW4gdG9nZXRoZXIgd2l0aCBhbnkgdHJhZGVtYXJrcyB1c2VkIGluIGNvbm5lY3Rpb24gdGhlcmV3aXRoLiBFeGNlcHQgYXMgbWF5IGJlIG90aGVyd2lzZSBleHByZXNzbHkgcGVybWl0dGVkIGhlcmVpbiwgeW91IGFncmVlIG5vdCB0byBjb3B5IHRoZSBGb250IFNvZnR3YXJlIG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIGJhc2VkIHVwb24gdGhlIGRlc2lnbiBvZiB0aGUgRm9udCBvciB0aGUgRm9udCBTb2Z0d2FyZS4gWW91IGhlcmVieSBhZ3JlZSB0aGF0IHRoZSBkZXNpZ24gb2YgdGhlIEZvbnQgYW5kIHRoZSBGb250IFNvZnR3YXJlIGFyZSB0aGUgZXhjbHVzaXZlIHByb3BlcnR5IG9mIENvbW1lcmNpYWwgVHlwZSBhbmQgdGhhdCB0aGUgdW5hdXRob3JpemVkIHVzZSBvZiB0aGUgZGVzaWduIG9mIHRoZSBGb250IG9yIHRoZSBGb250IFNvZnR3YXJlIGlzIGFuIGluZnJpbmdlbWVudCBvZiBDb21tZXJjaWFsIFR5cGUncyBleGNsdXNpdmUgcmlnaHRzIGFuZCBjYXVzaW5nIHNpZ25pZmljYW50IG1vbmV0YXJ5IGhhcm0uIEFsbCByaWdodHMgbm90IGV4cHJlc3NseSBncmFudGVkIGhlcmVpbiBhcmUgcmVzZXJ2ZWQgdG8gQ29tbWVyY2lhbCBUeXBlLiBDb21tZXJjaWFsIFR5cGUncyByaWdodHMgYW5kIHJlbWVkaWVzIGluIHRoZSBldmVudCBvZiBhbiBpbmZyaW5nZW1lbnQgc2hhbGwgYmUgY3VtdWxhdGl2ZSBpbiBuYXR1cmUuICAgNi4gRXhjZXB0IGFzIGlzIHByb2hpYml0ZWQgaGVyZWluLCB5b3UgbWF5IGluc3RhbGwgYW5kIFVzZSB0aGUgRm9udCBTb2Z0d2FyZSBvbiBhIHNpbmdsZSBmaWxlIHNlcnZlciBmb3IgVXNlIG9uIGEgc2luZ2xlIGxvY2FsIGFyZWEgbmV0d29yayAoIkxBTiIpIG9ubHkgd2hlbiB0aGUgVXNlIG9mIHN1Y2ggRm9udCBTb2Z0d2FyZSBpcyBleHByZXNzbHkgZm9yIGFuZCBsaW1pdGVkIHRvIHRoZSBudW1iZXIgb2YgdG90YWwgdXNlcnMgZGlzY2xvc2VkIGFuZCBsaWNlbnNlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgaS5lLiwgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycyB3aG8gY291bGQgdXNlIHRoZSBGb250IFNvZnR3YXJlLCBub3QgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycyB3aG8gbWlnaHQgaGF2ZSBhY2Nlc3MgdG8gdGhlIEZvbnQgU29mdHdhcmUgYXQgYW55IG9uZSB0aW1lLiAgNy4gRXhjZXB0IGFzIG1heSBiZSBvdGhlcndpc2UgZXhwcmVzc2x5IHBlcm1pdHRlZCBoZXJlaW4sIHlvdSBtYXkgbm90IGFsdGVyIG9yIGNvcHkgdGhlIEZvbnQgU29mdHdhcmUgb3IgdGhlIGRlc2lnbnMgZW1ib2RpZWQgdGhlcmVpbiBpbiBhbnkgbWFubmVyIHdoYXRzb2V2ZXIuIFJlZm9ybWF0dGluZyB0aGUgRm9udCBTb2Z0d2FyZSBpbnRvIG90aGVyIGZvcm1hdHMgZm9yIHVzZSBpbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyBpcyBleHByZXNzbHkgcHJvaGliaXRlZC4gVXBvbiBwYXltZW50IG9mIGFuIGFkZGl0aW9uYWwgZmVlIGFuZCBhIHNlcGFyYXRlIHdyaXR0ZW4gYWdyZWVtZW50IENvbW1lcmNpYWwgVHlwZSBtYXksIGlmIHNvIGFncmVlZCwgcHJvdmlkZSB0aGUgRm9udCBTb2Z0d2FyZSBpbiBhbHRlcm5hdGUgYW5kL29yIGFkZGl0aW9uYWwgZm9udCBmb3JtYXRzLCBjb250YWN0IENvbW1lcmNpYWwgVHlwZSBmb3IgYSBxdW90YXRpb24uIEFsdGVyaW5nIG9yIGFtZW5kaW5nIHRoZSBlbWJlZGRpbmcgYml0cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIEZvbnQgU29mdHdhcmUgaXMgZXhwcmVzc2x5IHByb2hpYml0ZWQuIFRoZSBGb250IFNvZnR3YXJlIG1heSBub3QgYmUgdXNlZCB0byBjcmVhdGUgb3IgZGlzdHJpYnV0ZSBhbnkgZWxlY3Ryb25pYyBkb2N1bWVudCBpbiB3aGljaCB0aGUgRm9udCBTb2Z0d2FyZSBvciBhbnkgcGFydCB0aGVyZW9mLCBpcyBlbWJlZGRlZCBpbiBhIG1hbm5lciBvciBmb3JtYXQgdGhhdCBwZXJtaXRzIGVkaXRpbmcsIGFsdGVyYXRpb25zLCBlbmhhbmNlbWVudHMsIG9yIG1vZGlmaWNhdGlvbnMgYnkgdGhlIHJlY2lwaWVudCBvZiBzdWNoIGRvY3VtZW50LiBZb3UgbWF5IG5vdCBrbm93aW5nbHkgdHJhbnNtaXQgYW55IGVsZWN0cm9uaWMgZG9jdW1lbnQgb3IgdGhlIEZvbnQgU29mdHdhcmUgdG8gYW55IHBhcnR5IHRoYXQgaW50ZW5kcyBvciBpcyBsaWtlbHkgdG8gImhhY2ssIiBlZGl0LCBhbHRlciwgZW5oYW5jZSwgb3Igb3RoZXJ3aXNlIG1vZGlmeSB0aGUgRm9udCBTb2Z0d2FyZSBvciByZW1vdmUgdGhlIEZvbnQgU29mdHdhcmUgZnJvbSBhbnkgZG9jdW1lbnQuICA4LiBZb3UgbWF5IG1ha2Ugb25lICgxKSBiYWNrLXVwIGNvcHkgb2YgRm9udCBTb2Z0d2FyZSBmb3IgYXJjaGl2YWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBhZ3JlZSB0byByZXRhaW4gZXhjbHVzaXZlIGN1c3RvZHkgYW5kIGNvbnRyb2wgb3ZlciBhbnkgc3VjaCBjb3B5LiBVcG9uIHRlcm1pbmF0aW9uIG9mIHRoZSBBZ3JlZW1lbnQsIHlvdSBtdXN0IGRlc3Ryb3kgdGhlIG9yaWdpbmFsIGFuZCBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgdGhlIEZvbnQgU29mdHdhcmUuIFRoZSB1bmF1dGhvcml6ZWQgc2hhcmluZywgbGVuZGluZywgcmVudGluZywgc2FsZSwgb3Igb3RoZXIgdW5hdXRob3JpemVkIHVzZSBvciBtaXN1c2Ugb2YgdGhlIGJhY2stdXAgY29weSBpcyBhIG1hdGVyaWFsIGJyZWFjaCBvZiB0aGlzIEFncmVlbWVudCBhbmQgd2lsbCByZXN1bHQgaW4gdGhlIGltbWVkaWF0ZSB0ZXJtaW5hdGlvbiBvZiB0aGlzIExpY2Vuc2UuICA5LiBJZiBubyBvdGhlciBvcHRpb24gZXhpc3RzLCB5b3UgbWF5IHRha2UgYSBkaWdpdGl6ZWQgY29weSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB1c2VkIGZvciBhIHBhcnRpY3VsYXIgZG9jdW1lbnQsIG9yIEZvbnQgU29mdHdhcmUgZW1iZWRkZWQgaW4gYW4gZWxlY3Ryb25pYyBkb2N1bWVudCB0aGF0IGlzIHNlbnQgdG8gYSBjb21tZXJjaWFsIHByaW50ZXIgb3Igc2VydmljZSBidXJlYXUgZm9yIHVzZSBieSB0aGUgcHJpbnRlciBvciBzZXJ2aWNlIGJ1cmVhdSBmb3IgcHJlcGFyaW5nIHRoZSBkb2N1bWVudCBwcm92aWRlZCB0aGF0IHRoZSBwcmludGVyIG9yIHNlcnZpY2UgYnVyZWF1IHJlcHJlc2VudHMgdGhhdCBpdCBzaGFsbCBkZXN0cm95IGFueSBhbmQgYWxsIGNvcGllcyBvZiB0aGUgRm9udCBTb2Z0d2FyZSB1cG9uIGNvbXBsZXRpb24gb2YgaXRzIHdvcmsuIE5vdHdpdGhzdGFuZGluZywgeW91IGFncmVlIHRoYXQgdGhlIHRyYW5zbWlzc2lvbiBvZiBhICJwcmludC9wcmV2aWV3IiBQREYgZG9jdW1lbnQgaXMgdGhlIGZpcnN0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIG9mIHRyYW5zbWl0dGluZyBzdWNoIGRvY3VtZW50cyB0byBhIHNlcnZpY2UgYnVyZWF1IG9yIHByaW50ZXIuICAxMC4gVGhlIGRlc2lnbnMgZW1ib2RpZWQgYW5kIHRoZSBGb250IFNvZnR3YXJlIGFuZCB0aGUgRm9udCBTb2Z0d2FyZSBhbmQgYW55IHRyYWRlbWFya3MgYXNzb2NpYXRlZCB0aGVyZXdpdGggYXJlIHRoZSBleGNsdXNpdmUgcHJvcGVydHkgb2YgQ29tbWVyY2lhbCBUeXBlIGFuZCB0aGVpciBkZXNpZ25lcnMsIHdoZXJlIGFwcGxpY2FibGUgYW5kIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIGNvcHlyaWdodCBhbmQgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMsIGJ5IHRoZSBjb3B5cmlnaHQgYW5kIGRlc2lnbiBsYXdzIG9mIG90aGVyIG5hdGlvbnMsIGFuZCBieSBvdGhlciBpbnRlcm5hdGlvbmFsIHRyZWF0aWVzLiBBbnkgY29waWVzIHRoYXQgeW91IGFyZSBleHByZXNzbHkgcGVybWl0dGVkIHRvIG1ha2UgcHVyc3VhbnQgdG8gdGhlIEFncmVlbWVudCBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgY29weXJpZ2h0LCB0cmFkZW1hcmssIGFuZCBvdGhlciBwcm9wcmlldGFyeSBub3RpY2VzIHRoYXQgYXBwZWFyIG9uIG9yIGluIHRoZSBGb250IFNvZnR3YXJlLiAgMTEuIFlvdSBhZ3JlZSBub3QgdG8gY3JlYXRlLCBhc3Npc3QgaW4gYW5kL29yIGNhdXNlIHRoZSBjcmVhdGlvbiBvZiBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGUgRm9udHMgb3IgRm9udCBTb2Z0d2FyZSwgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIGNyZWF0aW5nIGFkZGl0aW9uYWwgd2VpZ2h0czsgY3JlYXRpbmcgYWRkaXRpb25hbCBvciBkZWxldGluZyBleGlzdGluZyBjaGFyYWN0ZXJzOyBtb2RpZnlpbmcgZXhpc3RpbmcgY2hhcmFjdGVyczsgbW9kaWZ5aW5nIGZvbnQgc3BhY2luZyBhbmQga2VybmluZzsgb3IgY29udmVydGluZyBmb250cyB0byBhbiBhbHRlcm5hdGUgZGlnaXRhbCBmb3JtYXQsIG1vZGlmeSwgYWRhcHQsIHRyYW5zbGF0ZSwgcmV2ZXJzZSBlbmdpbmVlciwgZGVjb21waWxlLCBkaXNhc3NlbWJsZSwgYWx0ZXIsIG9yIG90aGVyd2lzZSBhdHRlbXB0IHRvIGRpc2NvdmVyIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB3aXRob3V0IGZpcnN0IG9idGFpbmluZyB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDb21tZXJjaWFsIFR5cGUuIEluIHRoZSBldmVudCB0aGF0IHBlcm1pc3Npb24gaXMgZ2l2ZW4gdG8geW91LCBhbnkgYW5kIGFsbCBtb2RpZmljYXRpb25zIGFuZCBhZGRpdGlvbnMgc2hhbGwgYmVjb21lIGFuZCBzaGFsbCByZW1haW4gdGhlIHNvbGUgYW5kIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBDb21tZXJjaWFsIFR5cGUgYW5kIHlvdSBtYXkgbm90IHNlbGwsIGxlbmQgb3Igb3RoZXJ3aXNlIHRyYW5zbWl0IGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGUgRm9udCBTb2Z0d2FyZSB0byBhbnkgdGhpcmQgcGFydHkuIE90aGVyIGp1cmlzZGljdGlvbnMgbWF5IHByb3ZpZGUgZm9yIGFkZGl0aW9uYWwgcmlnaHRzLCBhbmQgaWYgYXBwbGljYWJsZSwgeW91IG1heSByZXZlcnNlIGVuZ2luZWVyIG9yIGRlY29tcGlsZSB0aGUgRm9udCBTb2Z0d2FyZSBvbmx5IHRvIHRoZSBleHRlbnQgdGhhdCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGFuIGludGVyb3BlcmFibGUgc29mdHdhcmUgcHJvZ3JhbSAoYnV0IG9ubHkgZm9yIHN1Y2ggcHVycG9zZSBhbmQgb25seSB0byB0aGUgZXh0ZW50IHRoYXQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBpcyBub3QgcHJvdmlkZWQgYnkgQ29tbWVyY2lhbCBUeXBlIHVwb24gd3JpdHRlbiByZXF1ZXN0KS4gQWxsIHRyYWRlbWFya3Mgc2hhbGwgYmUgdXNlZCBpbiBhY2NvcmRhbmNlIHdpdGggYWNjZXB0ZWQgdHJhZGVtYXJrIHByYWN0aWNlLCBpbmNsdWRpbmcgaWRlbnRpZmljYXRpb24gb2YgdGhlIHRyYWRlbWFyayBvd25lcidzIG5hbWUuIFVzZSBvZiB0aGUgdHJhZGVtYXJrcyBhc3NvY2lhdGVkIHdpdGggdGhlIEZvbnQgU29mdHdhcmUgaW51cmVzIHNvbGVseSB0byB0aGUgYmVuZWZpdCBvZiBDb21tZXJjaWFsIFR5cGUuICAgMTIuIFVzZSBvZiBDb21tZXJjaWFsIFR5cGUgRm9udCBTb2Z0d2FyZSBpbiB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXMgYW5kL29yIGFwcGxpY2F0aW9ucyBpcyBOT1QgcGVybWl0dGVkIHdpdGhvdXQgZmlyc3Qgb2J0YWluaW5nIHRoZSBhcHByb3ByaWF0ZSBsaWNlbnNpbmcgdXBncmFkZS4gICBhKSAmIzk7QUxQSEFCRVQgT1IgTEVUVEVSRk9STS1SRUxBVEVEIFBST0RVQ1RTICYjOTsmIzk7Rk9SIFJFU0FMRSBPUiBMRVRURVJGT1JNIENSRUFUSU9OIFBST0RVQ1RTIE9SIERFVklDRVM7IGIpICYjOTtFTUJFRERJTkcgSU4gRUxFQ1RST05JQyBERVZJQ0VTOyBBTEwgR0FNSU5HIFVTRVMgQU5EL09SIERFVklDRVM7IGMpICYjOTtFTUJFRERJTkcgSU4gU09GVFdBUkU7IGQpICYjOTtTVE9SSU5HIEFORC9PUiBTRVJWSU5HIFRIRSBGT05UIFNPRlRXQVJFIEZPUiBUSEUgUFVSUE9TRVMgT0YgTUFLSU5HIFRIRSBGT05UIFNPRlRXQVJFICYjOTsmIzk7QVZBSUxBQkxFIFZJQSBUSEUgSU5URVJORVQgVVNJTkcgRk9OVCBSRVBMQUNFTUVOVCBURUNITk9MT0dJRVMuICAgaSkgTGV0dGVyZm9ybSBvciBBbHBoYWJldCBQcm9kdWN0cyBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBzaWduYWdlIGFuZC9vciBzY3JhcGJvb2tpbmcgdXNlcyBpbnZvbHZpbmcgcmVwcm9kdWN0aW9ucyBvZiBpbmRpdmlkdWFsIGxldHRlcmZvcm1zLCB1c2UgaW4gdGhlIGNyZWF0aW9uIG9mIHNpZ25hZ2Ugb3IgbnVtYmVyaW5nIHByb2R1Y3RzLCBydWJiZXIgc3RhbXBzLCBkaWUtY3V0IHByb2R1Y3RzLCBzdGVuY2lsIHByb2R1Y3RzLCB0YXR0b28sIGZsYXNoLCBvciBhZGhlc2l2ZSBzdGlja2VyIGFscGhhYmV0IHByb2R1Y3RzIG9yIGFueSBvdGhlciBwcm9kdWN0IGNvbnRhaW5pbmcgYW55IGltYWdlIG9mIG9yIGRlcml2ZWQgZnJvbSB0aGUgZGVzaWduIG9mIHRoZSBGb250IGVtYm9kaWVkIGluIHRoZSBGb250IFNvZnR3YXJlIG9mIHdoaWNoIGFueSBsaWtlbmVzcyBvZiB0aGUgYWxwaGFiZXQgY2FuIGJlIHJlcHJvZHVjZWQuICBpaSkgRW1iZWRkaW5nIG9mIHRoZSBGb250cyBpbiBhIHByaW50L3ByZXZpZXcgZm9ybWF0IGlzIHBlcm1pdHRlZC4gTm90d2l0aHN0YW5kaW5nLCBlbWJlZGRpbmcgb3Igb3RoZXIgdXNlIG9mIHRoZSBGb250cyBvciB0aGUgb3V0bGluZXMgdGhlcmVvZiBpbiBhbnkgbWV0aG9kIHdoaWNoIHBlcm1pdHMgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIEZvbnQgU29mdHdhcmUgb2YgdGhlIGRlc2lnbnMgZW1ib2RpZWQgdGhlcmVpbiBpcyBleHByZXNzbHkgcHJvaGliaXRlZC4gQW55IHN1Y2ggdXNlIHJlcXVpcmVzIHRoZSBleHByZXNzIHdyaXR0ZW4gcGVybWlzc2lvbiBvZiBDb21tZXJjaWFsIFR5cGUgYW5kIG1heSBvciBtYXkgbm90IHJlcXVpcmUgdGhlIHB1cmNoYXNlIG9mIGEgbGljZW5zZSB1cGdyYWRlIGF0IHRoZSBzb2xlIGRpc2NyZXRpb24gb2YgQ29tbWVyY2lhbCBUeXBlLiAgaWlpKSBJbiB0aGUgZXZlbnQgYW55IGRpbmdiYXRzIG9yIG90aGVyIGFydCBmb3JtcyBhcmUgcGFydCBvZiB0aGUgRm9udCBTb2Z0d2FyZSwgdXNlIG9mIHRoZSBhcnR3b3JrIGlzIGZ1cnRoZXIgcmVzdHJpY3RlZC4gWW91IG1heSB1c2UgdGhlIGFydHdvcmssIGRyYXdpbmdzIGFuZC9vciBkaW5nYmF0cyBvbiBnb29kcyBmb3Igc2FsZSwgaW4gbG9nbyBkZXNpZ24sIHJldGFpbCBwYWNrYWdpbmcgb3IgaW4gcG9pbnQgb2Ygc2FsZSB1c2VzIG9ubHkgYWZ0ZXIgdGhlIHB1cmNoYXNlIG9mIGEgbGljZW5zZSB1cGdyYWRlLiAgSW4gb3JkZXIgdG8gb2J0YWluIGEgbGljZW5zZSB1cGdyYWRlLCB5b3UgbXVzdCBjb250YWN0IENvbW1lcmNpYWwgVHlwZSBhdCBpbmZvQGNvbW1lcmNpYWx0eXBlLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gSWYgeW91IGFyZSB1bnN1cmUgd2hldGhlciB5b3VyIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpcyBzcGVjaWZpY2FsbHkgcGVybWl0dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBjb250YWN0IENvbW1lcmNpYWwgVHlwZS4gIDEzLiBFbWJlZGRlZCBFbGVjdHJvbmljIERldmljZXMgaW5jbHVkZXMgdGhlIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBmb3IgYW55IG9uLXNjcmVlbiBkaXNwbGF5IG9yIG9uIGFuIGVsZWN0cm9uaWMgZGV2aWNlIG91dHNpZGUgYSBzaW5nbGUgbG9jYXRpb24uIEZvciBleGFtcGxlLCBhbmQgbm90IGJ5IHdheSBvZiBsaW1pdGF0aW9uLCBzdWNoIGVsZWN0cm9uaWMgZGV2aWNlcyBpbmNsdWRlIGEga2lvc2ssIGdhbWluZyBkZXZpY2VzLCBlbWJyb2lkZXJ5IG9yIHNld2luZyBtYWNoaW5lcyBnYW1lIHBsYXlpbmcgb3IgZ2FtYmxpbmcgZGV2aWNlcywgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIgdGhlIHNob3dpbmcgb3IgY3JlYXRpb24gb2YgY29waWVzIG9mIHRoZSBkZXNpZ24gZW1ib2RpZWQgaW4gdGhlIEZvbnQgU29mdHdhcmUgaXMgY3JlYXRlZCBieSB1c2Ugb2YgdGhlIHNvZnR3YXJlIG9yIGFzIGFuIGltYWdlIG9mIHRoZSBkZXNpZ24gaW4gdGlmZiwgZ2lmIG9yIG90aGVyIGZvcm1hdC4gICAxNC4gQ29tbWVyY2lhbCBUeXBlIEZvbnQgU29mdHdhcmUgaXMgbGljZW5zZWQgZm9yIHVzZSBieSBhIHNwZWNpZmllZCBudW1iZXIgb2YgdXNlcnMuIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpbiBtb3JlIHRoYW4gb25lIGdlb2dyYXBoaWMgbG9jYXRpb24gb3IgYnkgbWVhbnMgb2Ygc2VydmVyIG9yIGNlbnRyYWwgQ1BVIG91dHNpZGUgb2YgdGhlIHRlcm1zIG9mIHlvdXIgbGljZW5zZSBpcyBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhlIGVhY2ggdXNlciBvciBwb3RlbnRpYWwgdXNlciBpcyBsaWNlbnNlZC4gTGljZW5zZSB1cGdyYWRlcyBtYXkgYmUgcHVyY2hhc2VkIGZyb20gQ29tbWVyY2lhbCBUeXBlIGF0IGluZm9AY29tbWVyY2lhbHR5cGUuY29tLiAgMTUuIEV4Y2VwdCBhcyBtYXkgYmUgb3RoZXJ3aXNlIGV4cHJlc3NseSBwcm92aWRlZCBmb3IgaGVyZWluLCB5b3UgZXhwcmVzc2x5IGFncmVlIG5vdCB0byByZW50LCBsZWFzZSwgc3VibGljZW5zZSwgZ2l2ZSwgbGVuZCwgb3IgZnVydGhlciBkaXN0cmlidXRlIHRoZSBGb250IFNvZnR3YXJlLiBZb3UgbWF5IHRyYW5zZmVyIGFsbCB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBhbm90aGVyIHBlcnNvbiBvciBlbnRpdHkgcHJvdmlkZWQgdGhhdCAoaSkgdGhlIHRyYW5zZmVyZWUgYWNjZXB0cyBhbmQgYWdyZWVzIHRvIGJlIGJvdW5kIGJ5IGFsbCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCAoaWkpIHlvdSBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIEZvbnQgU29mdHdhcmUsIGluY2x1ZGluZyBhbGwgY29waWVzIHN0b3JlZCBpbiB0aGUgbWVtb3J5IG9mIGEgaGFyZHdhcmUgZGV2aWNlLiAgMTYuIENvbW1lcmNpYWwgVHlwZSB3YXJyYW50cyB0aGF0IHRoZSBGb250IFNvZnR3YXJlIHdpbGwgcGVyZm9ybSBzdWJzdGFudGlhbGx5IGluIGFjY29yZGFuY2Ugd2l0aCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgbmluZXR5ICg5MCkgZGF5cyBmb2xsb3dpbmcgZGVsaXZlcnkgb2YgdGhlIEZvbnQgU29mdHdhcmUuIFRvIG1ha2UgYSB3YXJyYW50eSBjbGFpbSwgeW91IG11c3QgZWl0aGVyIHJldHVybiB0aGUgRm9udCBTb2Z0d2FyZSB0byB0aGUgbG9jYXRpb24gZnJvbSB3aGljaCB5b3Ugb2J0YWluZWQgaXQgdG9nZXRoZXIgd2l0aCBhIGNvcHkgb2YgeW91ciBzYWxlcyByZWNlaXB0IG9yLCBpZiBhY3F1aXJlZCBvbi1saW5lLCBjb250YWN0IHRoZSBvbi1saW5lIHByb3ZpZGVyIHdpdGggc3VmZmljaWVudCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgeW91ciBhY3F1aXNpdGlvbiBvZiB0aGUgRm9udCBTb2Z0d2FyZSB0byBwZXJtaXQgdGhlIGNvbmZpcm1hdGlvbiBvZiB0aGUgZWZmZWN0aXZlIGRhdGUgb2YgdGhpcyBMaWNlbnNlLiBTY2h3YXJ0emNvLCBJbmMuIGFuZCBDb21tZXJjaWFsIFR5cGUgaGVyZWJ5IEVYUFJFU1NMWSBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMsIEVYUFJFU1MgQU5EIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIENPTU1FUkNJQUwgVFlQRSBET0VTIE5PVCBXQVJSQU5UIFRIQVQgVEhFIE9QRVJBVElPTiBPRiBUSEUgRk9OVCBTT0ZUV0FSRSBXSUxMIEJFIFVOSU5URVJSVVBURUQgT1IgRVJST1ItRlJFRSwgT1IgVEhBVCBUSEUgRk9OVCBTT0ZUV0FSRSBJUyBXSVRIT1VUIERFRkVDVFMuIFVOREVSIE5PIENJUkNVTVNUQU5DRVMgU0hBTEwgQ09NTUVSQ0lBTCBUWVBFIEJFIExJQUJMRSBUTyBZT1UgT1IgQU5ZIE9USEVSIFBBUlRZLCBXSEVUSEVSIElOIENPTlRSQUNUIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFKSBPUiBPVEhFUldJU0UsIEZPUiBBTlkgU1BFQ0lBTCwgQ09OU0VRVUVOVElBTCwgT1IgSU5DSURFTlRBTCBEQU1BR0VTLCBJTkNMVURJTkcgTE9TVCBQUk9GSVRTLCBTQVZJTkdTIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTiBBUyBBIFJFU1VMVCBPRiBUSEUgVVNFIE9GIFRIRSBGT05UIFNPRlRXQVJFIEVWRU4gSUYgTk9USUZJRUQgSU4gQURWQU5DRSBPRiBTVUNIIFBPU1NJQklMSVRZLiBZb3UgaGVyZWJ5IGFncmVlIHRoYXQgeW91ciBlbnRpcmUsIGV4Y2x1c2l2ZSwgYW5kIGN1bXVsYXRpdmUgbGlhYmlsaXR5IGFuZCByZW1lZHkgc2hhbGwgYmUgbGltaXRlZCB0byB0aGUgcHVyY2hhc2UgcHJpY2Ugb2YgdGhpcyBGb250IFNvZnR3YXJlIExpY2Vuc2UuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgc2hhbGwgU2Nod2FydHpjbywgSW5jLidzIG9yIENvbW1lcmNpYWwgVHlwZSdzIGxpYWJpbGl0eSB0byB5b3UgZXhjZWVkIGVpdGhlciB0aGUgcmVmdW5kaW5nIG9mIHRoZSBjb3N0IG9mIHRoZSBGb250IFNvZnR3YXJlIExpY2Vuc2Ugb3IgcmVwbGFjZW1lbnQgb2YgdGhlIEZvbnQgU29mdHdhcmUgZWl0aGVyIG9mIHdoaWNoIHNoYWxsIGJlIGF0IENvbW1lcmNpYWwgVHlwZSdzIHNvbGUgZGlzY3JldGlvbi4gIDE3LiBPVEhFUiBMQVcgLSBDT05TVU1FUlMgT05MWS4gU29tZSBqdXJpc2RpY3Rpb25zIGRvIG5vdCBhbGxvdyB0aGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgaW5jaWRlbnRhbCwgY29uc2VxdWVudGlhbCBvciBzcGVjaWFsIGRhbWFnZXMsIGltcGxpZWQgd2FycmFudGllcyBvciBpbXBsaWVkIHdhcnJhbnRpZXMgYXMgdGhleSByZWxhdGUgdG8gc2FsZXMgdG8gY29uc3VtZXJzLiBBTlkgSU1QTElFRCBXQVJSQU5UWSBPUiBPVEhFUiBSSUdIVCBDUkVBVEVEIEJZIExBVyBJUyBPTkxZIEVGRkVDVElWRSBGT1IgVEhFIE5JTkVUWSAoOTApIERBWSBXQVJSQU5UWSBQRVJJT0QuIFRIRVJFIEFSRSBOTyBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQgQUZURVIgVEhFIE5JTkVUWSAoOTApIERBWSBXQVJSQU5UWSBQRVJJT0QuIFRvIHRoZSBleHRlbnQgcGVybWlzc2libGUgYnkgbGF3LCB5b3UgYWdyZWUgdGhhdCBhbGwgaW1wbGllZCB3YXJyYW50aWVzIGFyZSBub3QgdG8gYmUgZWZmZWN0aXZlIGZvciBtb3JlIHRoYW4gdGhpcnR5ICgzMCkgZGF5cy4gICAxOC4gWW91IGV4cHJlc3NseSBhZ3JlZSB0aGF0IHRoaXMgQWdyZWVtZW50IHNoYWxsIGJlIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yaywgVS5TLkEuLCBhcyB0aGV5IGFwcGx5IHRvIGNvbnRyYWN0cyBlbnRlcmVkIGludG8gYW5kIHdob2xseSBwZXJmb3JtZWQgdGhlcmVpbiBhbmQgd2l0aG91dCByZXNwZWN0IHRvIGl0cyBjb25mbGljdCBvZiBsYXdzIHByb3Zpc2lvbnMgb3IgdGhlIGNvbmZsaWN0IG9mIGxhd3MgcHJvdmlzaW9ucyBvZiBhbnkgb3RoZXIganVyaXNkaWN0aW9uLiBZb3UgZXhwcmVzc2x5IHN1Ym1pdCB0byB0aGUgcGVyc29uYWwganVyaXNkaWN0aW9uIG9mIHRoZSBzdGF0ZSBhbmQgZmVkZXJhbCBjb3VydHMgaW4gdGhlIFN0YXRlIG9mIE5ldyBZb3JrLCBVU0EsIGFncmVlIHRvIHdhaXZlIGFueSBkZWZlbnNlcyBhcmlzaW5nIG91dCBvZiB0aGUgc2VsZWN0aW9uIG9mIGp1cmlzZGljdGlvbiBvciB2ZW51ZSBhbmQgZnVydGhlciBhZ3JlZSB0byBzZXJ2aWNlIG9mIHByb2Nlc3MgYnkgbWFpbC4gWW91IGhlcmVieSBleHByZXNzbHkgYWdyZWUgdGhhdCB0aGUgYXBwbGljYXRpb24gb2YgdGhlIFVuaXRlZCBOYXRpb25zIENvbnZlbnRpb24gb2YgQ29udHJhY3RzIGZvciB0aGUgSW50ZXJuYXRpb25hbCBTYWxlIG9mIEdvb2RzIGlzIGV4cHJlc3NseSBleGNsdWRlZC4gIDE5LiBZb3UgYWNrbm93bGVkZ2UgdGhhdCB5b3UgaGF2ZSByZWFkIGFuZCB1bmRlcnN0YW5kIHRoaXMgQWdyZWVtZW50IGFuZCB0aGF0IGJ5IHVzaW5nIHRoZSBzb2Z0d2FyZSB5b3UgYWdyZWUgdG8gYmUgYm91bmQgYnkgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zLiBZb3UgZnVydGhlciBhZ3JlZSB0aGF0IGl0IGlzIHRoZSBjb21wbGV0ZSBhbmQgZXhjbHVzaXZlIHN0YXRlbWVudCBvZiB0aGUgYWdyZWVtZW50IGJldHdlZW4gQ29tbWVyY2lhbCBUeXBlIGFuZCB5b3Ugd2hpY2ggc3VwZXJzZWRlcyBhbnkgcHJvcG9zYWwgb3IgcHJpb3IgYWdyZWVtZW50LCBvcmFsIG9yIHdyaXR0ZW4sIGFuZCBhbnkgb3RoZXIgY29tbXVuaWNhdGlvbnMgcmVsYXRpbmcgdG8gdGhlIHN1YmplY3QgbWF0dGVyIG9mIHRoaXMgQWdyZWVtZW50LiBObyB2YXJpYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50IG9yIGFueSBkaWZmZXJlbnQgdGVybXMgd2lsbCBiZSBlbmZvcmNlYWJsZSBpbiB0aGUgYWJzZW5jZSBvZiBhbiBleHByZXNzIHdyaXR0ZW4gYW1lbmRtZW50LCBvciBjb25zZW50LCBpbmNsdWRpbmcgYSB3cml0dGVuIGV4cHJlc3Mgd2FpdmVyIG9mIHRoZSBhZmZlY3RlZCB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudC4gSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBkZWNsYXJlZCBieSBhIGNvdXJ0IG9mIGNvbXBldGVudCBqdXJpc2RpY3Rpb24gdG8gYmUgaW52YWxpZCwgdm9pZCBvciB1bmVuZm9yY2VhYmxlLCB0aGUgcmVtYWluaW5nIHByb3Zpc2lvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgY29udGludWUgaW4gZnVsbCBmb3JjZSBhbmQgZWZmZWN0LCBhbmQgdGhlIGludmFsaWQgcHJvdmlzaW9uIHNoYWxsIGJlIHJlcGxhY2VkIGJ5IENvbW1lcmNpYWwgVHlwZSB3aXRoIGEgcHJvdmlzaW9uIHRoYXQgZWZmZWN0cyB0aGUgaW50ZW50IG9mIHRoZSBpbnZhbGlkIHByb3Zpc2lvbi4gIDIwLiBDb21tZXJjaWFsIFR5cGUgZXhwcmVzc2x5IHJlc2VydmVzIHRoZSByaWdodCB0byBhbWVuZCBvciBtb2RpZnkgaXRzIExpY2Vuc2UgQWdyZWVtZW50cyBhdCBhbnkgdGltZSBhbmQgd2l0aG91dCBwcmlvciBub3RpZmljYXRpb24uICAyMS4gVGhlIEFncmVlbWVudCBzaGFsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSBpbiB0aGUgZXZlbnQgeW91IG9yIGFueSBhdXRob3JpemVkIHVzZXIgYnJlYWNoZXMgYW55IHRlcm0gb3IgY29uZGl0aW9uIHNldCBmb3J0aCBoZXJlaW4uIE5vdHdpdGhzdGFuZGluZyBhbnkgdGVybWluYXRpb24gb2YgdGhpcyBMaWNlbnNlLCBDb21tZXJjaWFsIFR5cGUgZXhwcmVzc2x5IHJlc2VydmVzIGFueSBhbmQgYWxsIG90aGVyIHJpZ2h0cyBhbmQgcmVtZWRpZXMgdW5kZXIgZXF1aXR5IG9yIGxhdy4gVGhlIEFncmVlbWVudCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiBhIHdyaXRpbmcgc2lnbmVkIGJ5IGFuIGF1dGhvcml6ZWQgb2ZmaWNlciBvZiBDb21tZXJjaWFsIFR5cGUuICAyMi4gWW91IGFncmVlIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBjb21wbGlhbmNlIHdpdGggYWxsIGxhd3MsIGZvcmVpZ24gYW5kIGRvbWVzdGljIHJlbGF0aW5nIHRvIHRoZSBjb250cm9sIG9mIGV4cG9ydHMgb3IgdGhlIHRyYW5zZmVyIG9mIHRlY2hub2xvZ3kuIElmIHlvdSBhcmUgcHVyY2hhc2luZyB0aGlzIExpY2Vuc2UgZm9yIGdvdmVybm1lbnQgdXNlLCBvciB1bmRlciBhIGdvdmVybm1lbnQgY29udHJhY3QsIHlvdSBhZ3JlZSB0byBmYW1pbGlhcml6ZSB5b3Vyc2VsZiB3aXRoIGFuZCBmb2xsb3cgYW55IGFwcGxpY2FibGUgcnVsZXMgYW5kIHJlZ3VsYXRpb25zIHJlbGF0aW5nIHRvIHRoZSBwdXJjaGFzZSBvZiBhIGxpY2Vuc2UgdG8gdXNlIHNvZnR3YXJlIGFuZCB0aGUgYWN0dWFsIHVzZSB0aGVyZW9mLiAgQWxsIGlucXVpcmllcyBhbmQgYXJyYW5nZW1lbnRzIGZvciByZXR1cm5zLCBpZiBhbnksIG1heSBiZSBzZW50IHZpYSBlLW1haWwgdG8gaW5mb0Bjb21tZXJjaWFsdHlwZS5jb20uIFRoZSBDb21tZXJjaWFsIFR5cGUgd2Vic2l0ZSBpcyBsb2NhdGVkIGF0IHd3dy5jb21tZXJjaWFsdHlwZS5jb20gIHYwOTA4MTVodHRwOi8vY29tbWVyY2lhbHR5cGUuY29tL2xpY2Vuc2VTdHlyZW5lIEEgVHJpYWwAQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAyADAAMQA2ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgBTAHQAeQByAGUAbgBlACAAQQAgAFIAZQBnAHUAbABhAHIAIABUAHIAaQBhAGwAUgBlAGcAdQBsAGEAcgAxAC4AMAAwADEAOwBDAE8ATQBNADsAUwB0AHkAcgBlAG4AZQBBAFQAcgBpAGEAbAAtAFIAZQBnAHUAbABhAHIAUwB0AHkAcgBlAG4AZQBBAFQAcgBpAGEAbAAtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMQA7AFAAUwAgADAAMAAxAC4AMAAwADEAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADIAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADkAMAAwAFMAdAB5AHIAZQBuAGUAIABBACAAaQBzACAAYQAgAHIAZQBnAGkAcwB0AGUAcgBlAGQAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC8AUwBjAGgAdwBhAHIAdAB6AGMAbwAgAEkAbgBjAC4AQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALAAgAEkAbgBjAC4AQgBlAHIAdABvAG4AIABIAGEAcwBlAGIAZQBoAHQAdABwADoALwAvAGMAbwBtAG0AZQByAGMAaQBhAGwAdAB5AHAAZQAuAGMAbwBtAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBiAGUAcgB0AG8AbgBoAGEAcwBlAGIAZQAuAGMAbwBtAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAEUAbgBkACAAVQBzAGUAcgAgAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgACAAUABMAEUAQQBTAEUAIABSAEUAQQBEACAAVABIAEkAUwAgAEQATwBDAFUATQBFAE4AVAAgAEMAQQBSAEUARgBVAEwATABZACAAYQBuAGQAIAB3AGUAIAByAGUAYwBvAG0AbQBlAG4AZAAgAHQAaABhAHQAIAB5AG8AdQAgAGsAZQBlAHAAIABhACAAYwBvAHAAeQAgAGYAbwByACAAZgB1AHIAdABoAGUAcgAgAHIAZQBmAGUAcgBlAG4AYwBlAC4AIAAgACAAVABoAGkAcwAgAEUAbgBkACAAVQBzAGUAcgAgAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgACgAdABoAGUAIAAiAEEAZwByAGUAZQBtAGUAbgB0ACIAIAAiAEUAVQBMAEEALAAiACAAIgBMAGkAYwBlAG4AcwBlACwAIgAgACIAQQBnAHIAZQBlAG0AZQBuAHQAIgAgAG8AcgAgACIATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0ACIAKQAgAGkAcwAgAGEAIABsAGUAZwBhAGwAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGIAZQB0AHcAZQBlAG4AIAB5AG8AdQAgAGEAbgBkACAAUwBjAGgAdwBhAHIAdAB6AGMAbwAsACAASQBuAGMALgAsACAAZAAvAGIALwBhACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALAAgAGEALwBkAC8AYgAvAGEAIABTAHQALgAgAEIAcgBpAGQAZQAgAFQAeQBwAGUAIABGAG8AdQBuAGQAcgB5ACAAKABjAG8AbABsAGUAYwB0AGkAdgBlAGwAeQAsACAAIgBDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAiACkAIABhAG4AZAAgAGIAZQBjAG8AbQBlAHMAIABhACAAYgBpAG4AZABpAG4AZwAgAGMAbwBuAHQAcgBhAGMAdAAgAGIAZQB0AHcAZQBlAG4AIAB5AG8AdQAgAGEAbgBkACAAUwBjAGgAdwBhAHIAdAB6AGMAbwAuACAAVABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAZwBvAHYAZQByAG4AcwAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdQBzAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAcwAgAGUAbQBiAG8AZABpAGUAZAAgAHQAaABlAHIAZQBpAG4AIAAoAGMAbwBsAGwAZQBjAHQAaQB2AGUAbAB5ACwAIAAiAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIgApACwAIAB0AG8AZwBlAHQAaABlAHIAIAB3AGkAdABoACAAYQBuAHkAIABtAGUAZABpAGEALAAgAHAAcgBpAG4AdABlAGQAIABtAGEAdABlAHIAaQBhAGwAcwAsACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4ALAAgAHUAcABkAGEAdABlAHMALAAgAGEAZABkAC0AbwBuAHMALAAgAGEAcgB0AHcAbwByAGsALAAgAHcAZQBiACAAcwBlAHIAdgBpAGMAZQBzACAAYQBuAGQAIABhAG4AeQAgAG8AdABoAGUAcgAgAG0AYQB0AGUAcgBpAGEAbAAgAHQAaABhAHQAIABtAGEAeQAgAGIAZQAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIAB3AGkAdABoACAAdABoAGUAIABwAHIAbwBkAHUAYwB0ACAAbgBvAHcAIABvAHIAIABpAG4AIAB0AGgAZQAgAGYAdQB0AHUAcgBlAC4AIABUAGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAYwBvAG0AZQBzACAAZQBmAGYAZQBjAHQAaQB2AGUAIAAoAGEAKQAgAHcAaABlAG4AIAB5AG8AdQAgACIAQQBDAEMARQBQAFQAIABMAEkAQwBFAE4AUwBFACAAQQBHAFIARQBFAE0ARQBOAFQALAAiACAAbwByACAAKABiACkAIABpAGYAIAB5AG8AdQAgAGEAcgBlACAAYQBjAHEAdQBpAHIAZQAgAGEAbgBkACAAYQBjAGMAZQBwAHQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAG4AIABhACAAQwBvAG0AcABhAGMAdAAgAEQAaQBzAGMAIABvAHIAIABEAGkAZwBpAHQAYQBsACAAVgBpAGQAZQBvACAARABpAHMAawAgACgAQwBEACwAIABEAFYARAApACwAIABvAHIAIAAoAGMAKQAgAHcAaABlAG4AIAB5AG8AdQAgAG8AcABlAG4AIAB0AGgAZQAgAGMAbwBtAHAAcgBlAHMAcwBlAGQAIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZgBpAGwAZQAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGMAbwBuAHQAYQBpAG4AZQBkAC4AIABJAGYAIAB5AG8AdQAgAGQAbwAgAG4AbwB0ACAAdwBpAHMAaAAgAHQAbwAgAGUAbgB0AGUAcgAgAGkAbgB0AG8AIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALAAgAGQAbwAgAG4AbwB0ACAAcAB1AHIAYwBoAGEAcwBlACwAIABhAGMAYwBlAHMAcwAsACAAZABvAHcAbgBsAG8AYQBkACAAYQBuAGQALwBvAHIAIABpAG4AcwB0AGEAbABsACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIAB1AHMAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAIAAxAC4AIABVAHAAbwBuACAAcABhAHkAbQBlAG4AdAAgAGkAbgAgAGYAdQBsAGwALAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAdwBpAGwAbAAgAGcAcgBhAG4AdAAgAHkAbwB1ACAAYQAgAG4AbwBuAC0AZQB4AGMAbAB1AHMAaQB2AGUAIAB0AGUAcgBtAGkAbgBhAGIAbABlACAATABpAGMAZQBuAHMAZQAgAHQAbwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAaABhAHQAIABhAGMAYwBvAG0AcABhAG4AaQBlAHMAIAB0AGgAaQBzACAARQBVAEwAQQAuACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAbQBpAHQAZQBkACAAdABvACAAUABlAHIAcwBvAG4AYQBsACAAbwByACAASQBuAHQAZQByAG4AYQBsACAAQgB1AHMAaQBuAGUAcwBzACAAVQBzAGUAIABvAG4AbAB5AC4AIABGAG8AcgAgAHQAaABlACAAcAB1AHIAcABvAHMAZQBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIAAiAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIgAgAHMAaABhAGwAbAAgAGIAZQAgAGQAZQBmAGkAbgBlAGQAIABhAHMAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0AHMAIAB0AG8AZwBlAHQAaABlAHIAIAB3AGkAdABoACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdwBoAGkAYwBoACwAIAB3AGgAZQBuACAAdQBzAGUAZAAgAGcAZQBuAGUAcgBhAHQAZQBzACAAdABoAGUAIAB0AHkAcABlAGYAYQBjAGUALAAgAHQAeQBwAG8AZwByAGEAcABoAGkAYwAgAGQAZQBzAGkAZwBuAHMAIABhAG4AZAAsACAAaQBmACAAYQBwAHAAbABpAGMAYQBiAGwAZQAsACAAbwByAG4AYQBtAGUAbgB0AHMAIABvAHIAIABvAHQAaABlAHIAIABkAGUAcwBpAGcAbgBzAC4AIABQAGUAcgBzAG8AbgBhAGwAIABvAHIAIABJAG4AdABlAHIAbgBhAGwAIABCAHUAcwBpAG4AZQBzAHMAIABVAHMAZQAgAHMAaABhAGwAbAAgAG0AZQBhAG4AIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAbwByACAAeQBvAHUAcgAgAGMAdQBzAHQAbwBtAGEAcgB5ACAAcABlAHIAcwBvAG4AYQBsACAAbwByACAAaQBuAHQAZQByAG4AYQBsACAAYgB1AHMAaQBuAGUAcwBzACAAcAB1AHIAcABvAHMAZQBzACAAYQBuAGQALAAgAGUAeABjAGUAcAB0ACAAYQBzACAAbQBhAHkAIABvAHQAaABlAHIAdwBpAHMAZQAgAHAAZQByAG0AaQB0AHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAHMAaABhAGwAbAAgAG4AbwB0ACAAbQBlAGEAbgAgAG8AcgAgAGkAbgBjAGwAdQBkAGUAIAB0AGgAZQAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIABkAGkAcwB0AHIAaQBiAHUAdABpAG8AbgAgAG8AcgAgAHUAcwBlACAAbwBmACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAG8AZgAgAHQAaABlACAAZgBvAG4AdABzACAAbwByACAAYQByAHQAdwBvAHIAawAgAGUAbQBiAG8AZABpAGUAZAAgAHQAaABlAHIAZQBpAG4AIABvAHIAIABhAG4AeQAgAGMAbwBtAHAAbwBuAGUAbgB0ACAAdABoAGUAcgBlAG8AZgAgAGYAbwByACAAYQBuAHkAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAdQBzAGUAIABvAHIAIABpAG4AIABhAG4AeQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABQAHIAbwBkAHUAYwB0ACAAZgBvAHIAIABzAGEAbABlACAAdwBoAGEAdABzAG8AZQB2AGUAcgAuACAARgBvAHIAIAB0AGgAZQAgAHAAdQByAHAAbwBzAGUAcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAcAByAG8AaABpAGIAaQB0AGUAZAAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIAB1AHMAZQBzACAAaQBuAGMAbAB1AGQAZQAsACAAYgB5ACAAdwBhAHkAIABvAGYAIABlAHgAYQBtAHAAbABlACAAbgBvAHQAIABsAGkAbQBpAHQAYQB0AGkAbwBuACwAIABUAC0AcwBoAGkAcgB0AHMALAAgAHQAaABpAHIAZAAtAHAAYQByAHQAeQAgAHMAbwBmAHQAdwBhAHIAZQAsACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAZQB2AGkAYwBlAHMALAAgAG0AdQBnAHMALAAgAGEAbgBpAG0AYQB0AGkAbwBuACwAIABlAHQAYwAuACAAYQBuAGQAIABhAHMAIABtAGEAeQAgAGIAZQAgAGYAdQByAHQAaABlAHIAIABuAG8AdABlAGQAIABiAGUAbABvAHcALgAgAEkAZgAgAHkAbwB1ACAAYQByAGUAIAB1AG4AcwB1AHIAZQAgAHcAaABlAHQAaABlAHIAIAB5AG8AdQByACAAdQBzAGUAIABpAHMAIABuAG8AdAAgAHAAZQByAG0AaQB0AHQAZQBkACwAIABjAG8AbgB0AGEAYwB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgAFkAbwB1AHIAIABmAGEAaQBsAHUAcgBlACAAdABvACAAYwBvAG4AdABhAGMAdAAgAHQAbwAgAHMAZQBlAGsAIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAbwByACAAdABoAGUAIABsAGEAYwBrACAAbwBmACAAYQAgAHMAcABlAGMAaQBmAGkAYwAgAHAAcgBvAGgAaQBiAGkAdABpAG8AbgAgAGkAbgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHMAaABhAGwAbAAgAG4AbwB0ACAAYgBlACAAaQBuAHQAZQByAHAAcgBlAHQAZQBkACAAbwByACAAZABlAGUAbQBlAGQAIABhACAAdwBhAGkAdgBlAHIAIABvAHIAIABwAGUAcgBtAGkAcwBzAGkAYgBsAGUAIAB1AHMAZQAgAG8AZgAgAGEAbgB5ACAAawBpAG4AZAAuACAAWQBvAHUAIABoAGUAcgBlAGIAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABzAGgAYQBsAGwAIABmAHUAcgB0AGgAZQByACAAYwBvAG0AcAByAGkAcwBlACAAYQBsAGwAIABiAGkAdABtAGEAcAAgAHIAZQBwAHIAZQBzAGUAbgB0AGEAdABpAG8AbgBzACAAbwBmACAAdAB5AHAAZQBmAGEAYwBlACAAYQBuAGQAIAB0AHkAcABvAGcAcgBhAHAAaABpAGMAIABkAGUAcwBpAGcAbgBzACAAYQBuAGQAIABvAHIAbgBhAG0AZQBuAHQAcwAgAGMAcgBlAGEAdABlAGQAIABiAHkAIABvAHIAIABkAGUAcgBpAHYAZQBkACAAZgByAG8AbQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAVABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAcwBoAGEAbABsACAAYgBlACAAZABlAGUAbQBlAGQAIAB0AG8AIABpAG4AYwBsAHUAZABlACAAYQBuAHkAIAB1AHAAZwByAGEAZABlAHMALAAgAHUAcABkAGEAdABlAHMALAAgAHIAZQBsAGEAdABlAGQAIABmAGkAbABlAHMALAAgAHAAZQByAG0AaQB0AHQAZQBkACAAbQBvAGQAaQBmAGkAYwBhAHQAaQBvAG4AcwAsACAAaQBmACAAYQBuAHkALAAgAHAAZQByAG0AaQB0AHQAZQBkACAAYwBvAHAAaQBlAHMALAAgAGEAbgBkACAAcgBlAGwAYQB0AGUAZAAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4ALgAgACAAMgAuACAASQBmACAAeQBvAHUAIABhAHIAZQAgAGEAIABkAGUAcwBpAGcAbgAgAGMAbwBuAHMAdQBsAHQAYQBuAGMAeQAsACAAYQBkAHYAZQByAHQAaQBzAGkAbgBnACAAYQBnAGUAbgBjAHkAIABvAHIAIABwAHUAcgBjAGgAYQBzAGkAbgBnACAAdABoAGkAcwAgAGwAaQBjAGUAbgBzAGUAIABmAG8AcgAgAHUAcwBlACAAYgB5ACAAbwByACAAbwBuACAAYgBlAGgAYQBsAGYAIABvAGYAIABzAHUAYwBoACAAYQBuACAAZQBuAHQAaQB0AHkALAAgAHQAaABlACAAdQBsAHQAaQBtAGEAdABlACAAZQBuAGQAIAB1AHMAZQByACAAcwBoAG8AdQBsAGQAIABhAGwAcwBvACAAcAB1AHIAYwBoAGEAcwBlACAAYQAgAGwAaQBjAGUAbgBzAGUAIABhAHAAcAByAG8AcAByAGkAYQB0AGUAIABmAG8AcgAgAHQAaABlAGkAcgAgAGkAbgB0AGUAbgBkAGUAZAAgAHUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACwAIABpAGYAIAB0AGgAZQBpAHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAdABvACAAaQBuAHYAbwBsAHYAZQAgAHUAcwBlAHMAIABuAG8AdAAgAHAAZQByAG0AaQB0AHQAZQBkACAAdQBuAGQAZQByACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0AC4AIABUAGgAZQAgAGwAaQBjAGUAbgBzAGUAIABnAHIAYQBuAHQAZQBkACAAaABlAHIAZQBpAG4AIABmAG8AcgAgAHAAZQByAHMAbwBuAGEAbAAgAHUAcwBlACAAZABvAGUAcwAgAG4AbwB0ACAAZQB4AHQAZQBuAGQAIAB0AG8AIAB1AHMAZQBzACAAYgB5ACAAdABlAG0AcABvAHIAYQByAHkAIABlAG0AcABsAG8AeQBlAGUAcwAgAG8AcgAgAGkAbgBkAGUAcABlAG4AZABlAG4AdAAgAGMAbwBuAHQAcgBhAGMAdABvAHIAcwAgAHUAcwBpAG4AZwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGEAcwAgAHQAaABlAGkAcgAgAHUAcwBlACAAbQBhAHkAIAByAGUAbABhAHQAZQAgAHQAbwAgAHAAcgBvAHYAaQBkAGkAbgBnACAAcAByAG8AZgBlAHMAcwBpAG8AbgBhAGwAIABzAGUAcgB2AGkAYwBlAHMAIABvAHIAIABmAG8AcgAgAG8AdABoAGUAcgAgAHAAcgBvAGYAZQBzAHMAaQBvAG4AYQBsACAAdQBzAGUAcwAuACAAVQBuAGQAZQByACAAcwB1AGMAaAAgAGMAaQByAGMAdQBtAHMAdABhAG4AYwBlAHMAIABhAG4AIABlAG0AcABsAG8AeQBlAHIAIABhAG4AZAAvAG8AcgAgAHQAaABlACAAdQBsAHQAaQBtAGEAdABlACAAZQBuAGQAIAB1AHMAZQByACAAYQByAGUAIABhAGwAcwBvACAAcgBlAHEAdQBpAHIAZQBkACAAdABvACAAcAB1AHIAYwBoAGEAcwBlACAAYQAgAGwAaQBjAGUAbgBzAGUAIABhAHAAcAByAG8AcAByAGkAYQB0AGUAIABmAG8AcgAgAHQAaABlAGkAcgAgAHUAcwBhAGcAZQAuACAAIAAzAC4AIABGAG8AcgAgAHQAaABlACAAcAB1AHIAcABvAHMAZQBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIAAiAEMAbwBtAG0AZQByAGMAaQBhAGwAIABQAHIAbwBkAHUAYwB0ACIAIABzAGgAYQBsAGwAIABhAGwAcwBvACAAbQBlAGEAbgAsACAAYQBtAG8AbgBnACAAbwB0AGgAZQByACAAdABoAGkAbgBnAHMALAAgAGEAIAB1AHMAZQByACAAZQBkAGkAdABhAGIAbABlACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAGMAcgBlAGEAdABlAGQAIABiAHkAIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaABpAGMAaAAgAGkAcwAgAG8AZgBmAGUAcgBlAGQAIABmAG8AcgAgAGQAaQBzAHQAcgBpAGIAdQB0AGkAbwBuACAAdABvACAAdABoAGUAIABnAGUAbgBlAHIAYQBsACAAcAB1AGIAbABpAGMAIAAoAG8AcgAgAHQAbwAgAHMAbwBtAGUAIABzAHUAYgBzAGUAdAAgAG8AZgAgAHQAaABlACAAZwBlAG4AZQByAGEAbAAgAHAAdQBiAGwAaQBjACkALAAgAGkAbgAgAEYAbABhAHMAaAAgAHQAeQBwAGUAIABzAG8AZgB0AHcAYQByAGUAIABkAGkAcwB0AHIAaQBiAHUAdABlAGQAIABvAHIAIABlAHgAaABpAGIAaQB0AGUAZAAsACAAaQBuACAAZwBhAG0AaQBuAGcAIABwAHIAbwBkAHUAYwB0AHMAIABvAHIAIABzAG8AZgB0AHcAYQByAGUAIAB3AGgAZQByAGUAIAB0AGgAZQAgAGUAeAB0AHIAYQBjAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAHIAIAB0AGgAZQAgAGQAZQBzAGkAZwBuAHMAIABlAG0AYgBvAGQAaQBlAGQAIAB0AGgAZQByAGUAaQBuACAAbQBhAHkAIABiAGUAIABlAHgAdAByAGEAYwB0AGUAZAA7ACAAbwByACAAdQBzAGUAIABvAG4AIABnAG8AbwBkAHMAIABmAG8AcgAgAHMAYQBsAGUAIABhAHMAIABhACAAYwBvAG0AbQBlAHIAYwBpAGEAbAAgAHAAcgBvAGQAdQBjAHQAIABpAG4AIABlAHgAYwBoAGEAbgBnAGUAIABmAG8AcgAgAGEAIABzAGUAcABhAHIAYQB0AGUAIABmAGUAZQAgAG8AcgAgAG8AdABoAGUAcgAgAGMAbwBuAHMAaQBkAGUAcgBhAHQAaQBvAG4ALgAgAEgAbwB3AGUAdgBlAHIALAAgAGEAIABkAG8AYwB1AG0AZQBuAHQAIABkAGkAcwB0AHIAaQBiAHUAdABlAGQAIABpAG4AIABjAG8AbgBuAGUAYwB0AGkAbwBuACAAdwBpAHQAaAAgAGEAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAdAByAGEAbgBzAGEAYwB0AGkAbwBuACAAaQBuACAAdwBoAGkAYwBoACAAdABoAGUAIABjAG8AbgBzAGkAZABlAHIAYQB0AGkAbwBuACAAaQBzACAAdQBuAHIAZQBsAGEAdABlAGQAIAB0AG8AIABzAHUAYwBoACAAYQAgAGQAbwBjAHUAbQBlAG4AdAAgACgAZgBvAHIAIABlAHgAYQBtAHAAbABlACwAIABwAHIAaQBuAHQAZQBkACAAYQBkAHYAZQByAHQAaQBzAGkAbgBnACwAIABhACAAYgB1AHMAaQBuAGUAcwBzACAAbABlAHQAdABlAHIAIABvAHIAIABhACAAcgBlAGMAZQBpAHAAdAAgAGYAbwByACAAcAB1AHIAYwBoAGEAcwBlACAAbwBmACAAdABhAG4AZwBpAGIAbABlACAAZwBvAG8AZABzACAAcwB1AGMAaAAgAGEAcwAgAGMAbABvAHQAaABpAG4AZwApACwAIABvAHIAIABhAHMAIABvAHQAaABlAHIAIABkAGUAcwBpAGcAbgAgAG0AYQB0AGUAcgBpAGEAbABzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAgAHQAbwAgAHQAaABlACAAcAB1AHIAYwBoAGEAcwBlACAAbwBmACAAZwBvAG8AZABzACAAbwByACAAcwBlAHIAdgBpAGMAZQBzACwAIABzAGgAYQBsAGwAIABuAG8AdAAgAGIAZQAgAGMAbwBuAHMAaQBkAGUAcgBlAGQAIABhACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFAAcgBvAGQAdQBjAHQALgAgACAANAAuACAAYQApACAARQB4AGMAZQBwAHQAIABhAHMAIABtAGEAeQAgAGIAZQAgAHAAcgBvAGgAaQBiAGkAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAeQBvAHUAIABhAHIAZQAgAHAAZQByAG0AaQB0AHQAZQBkACAAdABvACAAZQBsAGUAYwB0AHIAbwBuAGkAYwBhAGwAbAB5ACAAZABpAHMAdAByAGkAYgB1AHQAZQAgAGEAIAAmACMAMgAxADAAOwBQAGUAcgBzAG8AbgBhAGwAIABvAHIAIABJAG4AdABlAHIAbgBhAGwAIABCAHUAcwBpAG4AZQBzAHMAIABVAHMAZQAmACMAMgAxADEAOwAgAGQAbwBjAHUAbQBlAG4AdAAgACgAdABoAGEAdAAgAGkAcwAsACAAYQAgAGQAbwBjAHUAbQBlAG4AdAAgAG8AdABoAGUAcgAgAHQAaABhAG4AIABhACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFAAcgBvAGQAdQBjAHQAIABhAHMAIABkAGUAZgBpAG4AZQBkACAAYQBiAG8AdgBlACkAIAAoAGkAKQAgAHQAaABhAHQAIABpAHMAIABpAG4AIABhACAAcwB0AGEAdABpAGMAIABnAHIAYQBwAGgAaQBjACAAaQBtAGEAZwBlACAAKABmAG8AcgAgAGUAeABhAG0AcABsAGUALAAgAGEAIAAmACMAMgAxADAAOwBnAGkAZgAmACMAMgAxADEAOwApACAAbwByACAAaQBuACAAYQBuACAAZQBtAGIAZQBkAGQAZQBkACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAsACAAYQBuAGQAIAAoAGkAaQApACAAdwBoAGkAYwBoACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAYQAgAGYAbwByAG0AYQB0ACAAdABoAGEAdAAgAHAAZQByAG0AaQB0AHMAIABvAG4AbAB5ACAAdABoAGUAIAB2AGkAZQB3AGkAbgBnACAAYQBuAGQAIABwAHIAaQBuAHQAaQBuAGcAIAAoAGEAbgBkACAAbgBvAHQAIAB0AGgAZQAgAGUAZABpAHQAaQBuAGcALAAgAGEAbAB0AGUAcgBpAG4AZwAsACAAZQBuAGgAYQBuAGMAaQBuAGcALAAgAG8AcgAgAG0AbwBkAGkAZgB5AGkAbgBnACkAIABvAGYAIABzAHUAYwBoACAAcwB0AGEAdABpAGMAIABnAHIAYQBwAGgAaQBjACAAaQBtAGEAZwBlACAAbwByACAAZQBtAGIAZQBkAGQAZQBkACAAZABvAGMAdQBtAGUAbgB0AC4AIABQAGUAcgBzAG8AbgBhAGwAIABvAHIAIABJAG4AdABlAHIAbgBhAGwAIABCAHUAcwBpAG4AZQBzAHMAIABVAHMAZQAgAHMAaABhAGwAbAAgAG4AbwB0ACAAaQBuAGMAbAB1AGQAZQAgAGEAbgB5ACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABiAHkAIABwAGUAcgBzAG8AbgBzACAAdABoAGEAdAAgAGEAcgBlACAAbgBvAHQAIABtAGUAbQBiAGUAcgBzACAAbwBmACAAeQBvAHUAcgAgAGkAbQBtAGUAZABpAGEAdABlACAAaABvAHUAcwBlAGgAbwBsAGQALAAgAHkAbwB1AHIAIABhAHUAdABoAG8AcgBpAHoAZQBkACAAZQBtAHAAbABvAHkAZQBlAHMALAAgAG8AcgAgAHkAbwB1AHIAIABhAHUAdABoAG8AcgBpAHoAZQBkACAAYQBnAGUAbgB0AHMALgAgAEEAbABsACAAcwB1AGMAaAAgAGgAbwB1AHMAZQBoAG8AbABkACAAbQBlAG0AYgBlAHIAcwAsACAAZQBtAHAAbABvAHkAZQBlAHMAIABhAG4AZAAgAGEAZwBlAG4AdABzACAAcwBoAGEAbABsACAAYgBlACAAbgBvAHQAaQBmAGkAZQBkACAAYgB5ACAAeQBvAHUAIABhAHMAIAB0AG8AIAB0AGgAZQAgAHQAZQByAG0AcwAgAGEAbgBkACAAYwBvAG4AZABpAHQAaQBvAG4AcwAgAG8AZgAgAHQAaABlACAAQQBnAHIAZQBlAG0AZQBuAHQAIABhAG4AZAAgAHMAaABhAGwAbAAgAGEAZwByAGUAZQAgAHQAbwAgAGIAZQAgAGIAbwB1AG4AZAAgAGIAeQAgAGkAdAAgAHAAcgBpAG8AcgAgAHQAbwAgAHUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABiACkAIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAHMASQBGAFIAIAAoAFMAYwBhAGwAYQBiAGwAZQAgAEkAbgBtAGEAbgAgAEYAbwBuAHQAIABSAGUAcABsAGEAYwBlAG0AZQBuAHQAKQAgAGkAcwAgAHAAZQByAG0AaQB0AHQAZQBkAC4AIABIAG8AdwBlAHYAZQByACwAIAB0AGgAZQAgAHUAcwBlACAAbwBmACAAQwB1AGYAJgAjADEANQAxADsAbgAgAG8AcgAgAEAAZgBvAG4AdAAtAGYAYQBjAGUAIABvAHIAIABvAHQAaABlAHIAIABmAG8AcgBtAHMAIABvAGYAIAB3AGUAYgAgAGUAbQBiAGUAZABkAGkAbgBnACAAbwByACAAdwBlAGIAIABmAG8AbgB0ACAAcgBlAHAAbABhAGMAZQBtAGUAbgB0ACAAdABlAGMAaABuAG8AbABvAGcAaQBlAHMALAAgACgAJgAjADIAMQAwADsARgBvAG4AdAAgAFIAZQBwAGwAYQBjAGUAbQBlAG4AdAAgAFQAZQBjAGgAbgBvAGwAbwBnAGkAZQBzACYAIwAyADEAMQA7ACkAIABvAHQAaABlAHIAIAB0AGgAYQBuACAAcABkAGYAIABhAHMAIABvAHQAaABlAHIAdwBpAHMAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAZQBhAGMAaAAgAHIAZQBxAHUAaQByAGUAIAB0AGgAZQAgAHAAdQByAGMAaABhAHMAZQAgAG8AZgAgAGEAIABsAGkAYwBlAG4AcwBlACAAdQBwAGcAcgBhAGQAZQAuACAAIAA1AC4AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAsACAAaQB0AHMAIABzAHUAYwBjAGUAcwBzAG8AcgBzACAAYQBuAGQAIABhAHMAcwBpAGcAbgBzACwAIABlAHgAcAByAGUAcwBzAGwAeQAgAHIAZQB0AGEAaQBuACAAYQBsAGwAIAByAGkAZwBoAHQAIABhAG4AZAAgAHQAaQB0AGwAZQAgAGkAbgAgAGEAbgBkACAAdABvACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABlAG0AYgBvAGQAaQBlAGQAIAB0AGgAZQByAGUAaQBuACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAGEAbgB5ACAAdAByAGEAZABlAG0AYQByAGsAcwAgAHUAcwBlAGQAIABpAG4AIABjAG8AbgBuAGUAYwB0AGkAbwBuACAAdABoAGUAcgBlAHcAaQB0AGgALgAgAEUAeABjAGUAcAB0ACAAYQBzACAAbQBhAHkAIABiAGUAIABvAHQAaABlAHIAdwBpAHMAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAeQBvAHUAIABhAGcAcgBlAGUAIABuAG8AdAAgAHQAbwAgAGMAbwBwAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAHIAIABjAHIAZQBhAHQAZQAgAGQAZQByAGkAdgBhAHQAaQB2AGUAIAB3AG8AcgBrAHMAIABiAGEAcwBlAGQAIAB1AHAAbwBuACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAG8AcgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAWQBvAHUAIABoAGUAcgBlAGIAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAYQBuAGQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAHIAZQAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQB2AGUAIABwAHIAbwBwAGUAcgB0AHkAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGEAbgBkACAAdABoAGEAdAAgAHQAaABlACAAdQBuAGEAdQB0AGgAbwByAGkAegBlAGQAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABvAHIAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABhAG4AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACcAcwAgAGUAeABjAGwAdQBzAGkAdgBlACAAcgBpAGcAaAB0AHMAIABhAG4AZAAgAGMAYQB1AHMAaQBuAGcAIABzAGkAZwBuAGkAZgBpAGMAYQBuAHQAIABtAG8AbgBlAHQAYQByAHkAIABoAGEAcgBtAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAbgBvAHQAIABlAHgAcAByAGUAcwBzAGwAeQAgAGcAcgBhAG4AdABlAGQAIABoAGUAcgBlAGkAbgAgAGEAcgBlACAAcgBlAHMAZQByAHYAZQBkACAAdABvACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACcAcwAgAHIAaQBnAGgAdABzACAAYQBuAGQAIAByAGUAbQBlAGQAaQBlAHMAIABpAG4AIAB0AGgAZQAgAGUAdgBlAG4AdAAgAG8AZgAgAGEAbgAgAGkAbgBmAHIAaQBuAGcAZQBtAGUAbgB0ACAAcwBoAGEAbABsACAAYgBlACAAYwB1AG0AdQBsAGEAdABpAHYAZQAgAGkAbgAgAG4AYQB0AHUAcgBlAC4AIAAgACAANgAuACAARQB4AGMAZQBwAHQAIABhAHMAIABpAHMAIABwAHIAbwBoAGkAYgBpAHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAHkAbwB1ACAAbQBhAHkAIABpAG4AcwB0AGEAbABsACAAYQBuAGQAIABVAHMAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AbgAgAGEAIABzAGkAbgBnAGwAZQAgAGYAaQBsAGUAIABzAGUAcgB2AGUAcgAgAGYAbwByACAAVQBzAGUAIABvAG4AIABhACAAcwBpAG4AZwBsAGUAIABsAG8AYwBhAGwAIABhAHIAZQBhACAAbgBlAHQAdwBvAHIAawAgACgAIgBMAEEATgAiACkAIABvAG4AbAB5ACAAdwBoAGUAbgAgAHQAaABlACAAVQBzAGUAIABvAGYAIABzAHUAYwBoACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAZgBvAHIAIABhAG4AZAAgAGwAaQBtAGkAdABlAGQAIAB0AG8AIAB0AGgAZQAgAG4AdQBtAGIAZQByACAAbwBmACAAdABvAHQAYQBsACAAdQBzAGUAcgBzACAAZABpAHMAYwBsAG8AcwBlAGQAIABhAG4AZAAgAGwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAaQAuAGUALgAsACAAdABoAGUAIAB0AG8AdABhAGwAIABuAHUAbQBiAGUAcgAgAG8AZgAgAHUAcwBlAHIAcwAgAHcAaABvACAAYwBvAHUAbABkACAAdQBzAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALAAgAG4AbwB0ACAAdABoAGUAIAB0AG8AdABhAGwAIABuAHUAbQBiAGUAcgAgAG8AZgAgAHUAcwBlAHIAcwAgAHcAaABvACAAbQBpAGcAaAB0ACAAaABhAHYAZQAgAGEAYwBjAGUAcwBzACAAdABvACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYQB0ACAAYQBuAHkAIABvAG4AZQAgAHQAaQBtAGUALgAgACAANwAuACAARQB4AGMAZQBwAHQAIABhAHMAIABtAGEAeQAgAGIAZQAgAG8AdABoAGUAcgB3AGkAcwBlACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGgAZQByAGUAaQBuACwAIAB5AG8AdQAgAG0AYQB5ACAAbgBvAHQAIABhAGwAdABlAHIAIABvAHIAIABjAG8AcAB5ACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAdABoAGUAcgBlAGkAbgAgAGkAbgAgAGEAbgB5ACAAbQBhAG4AbgBlAHIAIAB3AGgAYQB0AHMAbwBlAHYAZQByAC4AIABSAGUAZgBvAHIAbQBhAHQAdABpAG4AZwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgB0AG8AIABvAHQAaABlAHIAIABmAG8AcgBtAGEAdABzACAAZgBvAHIAIAB1AHMAZQAgAGkAbgAgAG8AdABoAGUAcgAgAG8AcABlAHIAYQB0AGkAbgBnACAAcwB5AHMAdABlAG0AcwAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcAByAG8AaABpAGIAaQB0AGUAZAAuACAAVQBwAG8AbgAgAHAAYQB5AG0AZQBuAHQAIABvAGYAIABhAG4AIABhAGQAZABpAHQAaQBvAG4AYQBsACAAZgBlAGUAIABhAG4AZAAgAGEAIABzAGUAcABhAHIAYQB0AGUAIAB3AHIAaQB0AHQAZQBuACAAYQBnAHIAZQBlAG0AZQBuAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAG0AYQB5ACwAIABpAGYAIABzAG8AIABhAGcAcgBlAGUAZAAsACAAcAByAG8AdgBpAGQAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAGEAbAB0AGUAcgBuAGEAdABlACAAYQBuAGQALwBvAHIAIABhAGQAZABpAHQAaQBvAG4AYQBsACAAZgBvAG4AdAAgAGYAbwByAG0AYQB0AHMALAAgAGMAbwBuAHQAYQBjAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGYAbwByACAAYQAgAHEAdQBvAHQAYQB0AGkAbwBuAC4AIABBAGwAdABlAHIAaQBuAGcAIABvAHIAIABhAG0AZQBuAGQAaQBuAGcAIAB0AGgAZQAgAGUAbQBiAGUAZABkAGkAbgBnACAAYgBpAHQAcwAgAGMAaABhAHIAYQBjAHQAZQByAGkAcwB0AGkAYwBzACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAHIAbwBoAGkAYgBpAHQAZQBkAC4AIABUAGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABtAGEAeQAgAG4AbwB0ACAAYgBlACAAdQBzAGUAZAAgAHQAbwAgAGMAcgBlAGEAdABlACAAbwByACAAZABpAHMAdAByAGkAYgB1AHQAZQAgAGEAbgB5ACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AcgAgAGEAbgB5ACAAcABhAHIAdAAgAHQAaABlAHIAZQBvAGYALAAgAGkAcwAgAGUAbQBiAGUAZABkAGUAZAAgAGkAbgAgAGEAIABtAGEAbgBuAGUAcgAgAG8AcgAgAGYAbwByAG0AYQB0ACAAdABoAGEAdAAgAHAAZQByAG0AaQB0AHMAIABlAGQAaQB0AGkAbgBnACwAIABhAGwAdABlAHIAYQB0AGkAbwBuAHMALAAgAGUAbgBoAGEAbgBjAGUAbQBlAG4AdABzACwAIABvAHIAIABtAG8AZABpAGYAaQBjAGEAdABpAG8AbgBzACAAYgB5ACAAdABoAGUAIAByAGUAYwBpAHAAaQBlAG4AdAAgAG8AZgAgAHMAdQBjAGgAIABkAG8AYwB1AG0AZQBuAHQALgAgAFkAbwB1ACAAbQBhAHkAIABuAG8AdAAgAGsAbgBvAHcAaQBuAGcAbAB5ACAAdAByAGEAbgBzAG0AaQB0ACAAYQBuAHkAIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZABvAGMAdQBtAGUAbgB0ACAAbwByACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdABvACAAYQBuAHkAIABwAGEAcgB0AHkAIAB0AGgAYQB0ACAAaQBuAHQAZQBuAGQAcwAgAG8AcgAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAdABvACAAIgBoAGEAYwBrACwAIgAgAGUAZABpAHQALAAgAGEAbAB0AGUAcgAsACAAZQBuAGgAYQBuAGMAZQAsACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIABtAG8AZABpAGYAeQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AcgAgAHIAZQBtAG8AdgBlACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAZgByAG8AbQAgAGEAbgB5ACAAZABvAGMAdQBtAGUAbgB0AC4AIAAgADgALgAgAFkAbwB1ACAAbQBhAHkAIABtAGEAawBlACAAbwBuAGUAIAAoADEAKQAgAGIAYQBjAGsALQB1AHAAIABjAG8AcAB5ACAAbwBmACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAbwByACAAYQByAGMAaABpAHYAYQBsACAAcAB1AHIAcABvAHMAZQBzACAAbwBuAGwAeQAsACAAYQBuAGQAIAB5AG8AdQAgAGEAZwByAGUAZQAgAHQAbwAgAHIAZQB0AGEAaQBuACAAZQB4AGMAbAB1AHMAaQB2AGUAIABjAHUAcwB0AG8AZAB5ACAAYQBuAGQAIABjAG8AbgB0AHIAbwBsACAAbwB2AGUAcgAgAGEAbgB5ACAAcwB1AGMAaAAgAGMAbwBwAHkALgAgAFUAcABvAG4AIAB0AGUAcgBtAGkAbgBhAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIAB5AG8AdQAgAG0AdQBzAHQAIABkAGUAcwB0AHIAbwB5ACAAdABoAGUAIABvAHIAaQBnAGkAbgBhAGwAIABhAG4AZAAgAGEAbgB5ACAAYQBuAGQAIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABUAGgAZQAgAHUAbgBhAHUAdABoAG8AcgBpAHoAZQBkACAAcwBoAGEAcgBpAG4AZwAsACAAbABlAG4AZABpAG4AZwAsACAAcgBlAG4AdABpAG4AZwAsACAAcwBhAGwAZQAsACAAbwByACAAbwB0AGgAZQByACAAdQBuAGEAdQB0AGgAbwByAGkAegBlAGQAIAB1AHMAZQAgAG8AcgAgAG0AaQBzAHUAcwBlACAAbwBmACAAdABoAGUAIABiAGEAYwBrAC0AdQBwACAAYwBvAHAAeQAgAGkAcwAgAGEAIABtAGEAdABlAHIAaQBhAGwAIABiAHIAZQBhAGMAaAAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBkACAAdwBpAGwAbAAgAHIAZQBzAHUAbAB0ACAAaQBuACAAdABoAGUAIABpAG0AbQBlAGQAaQBhAHQAZQAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABMAGkAYwBlAG4AcwBlAC4AIAAgADkALgAgAEkAZgAgAG4AbwAgAG8AdABoAGUAcgAgAG8AcAB0AGkAbwBuACAAZQB4AGkAcwB0AHMALAAgAHkAbwB1ACAAbQBhAHkAIAB0AGEAawBlACAAYQAgAGQAaQBnAGkAdABpAHoAZQBkACAAYwBvAHAAeQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGEAIABwAGEAcgB0AGkAYwB1AGwAYQByACAAZABvAGMAdQBtAGUAbgB0ACwAIABvAHIAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAZQBtAGIAZQBkAGQAZQBkACAAaQBuACAAYQBuACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAHQAaABhAHQAIABpAHMAIABzAGUAbgB0ACAAdABvACAAYQAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIABwAHIAaQBuAHQAZQByACAAbwByACAAcwBlAHIAdgBpAGMAZQAgAGIAdQByAGUAYQB1ACAAZgBvAHIAIAB1AHMAZQAgAGIAeQAgAHQAaABlACAAcAByAGkAbgB0AGUAcgAgAG8AcgAgAHMAZQByAHYAaQBjAGUAIABiAHUAcgBlAGEAdQAgAGYAbwByACAAcAByAGUAcABhAHIAaQBuAGcAIAB0AGgAZQAgAGQAbwBjAHUAbQBlAG4AdAAgAHAAcgBvAHYAaQBkAGUAZAAgAHQAaABhAHQAIAB0AGgAZQAgAHAAcgBpAG4AdABlAHIAIABvAHIAIABzAGUAcgB2AGkAYwBlACAAYgB1AHIAZQBhAHUAIAByAGUAcAByAGUAcwBlAG4AdABzACAAdABoAGEAdAAgAGkAdAAgAHMAaABhAGwAbAAgAGQAZQBzAHQAcgBvAHkAIABhAG4AeQAgAGEAbgBkACAAYQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHUAcABvAG4AIABjAG8AbQBwAGwAZQB0AGkAbwBuACAAbwBmACAAaQB0AHMAIAB3AG8AcgBrAC4AIABOAG8AdAB3AGkAdABoAHMAdABhAG4AZABpAG4AZwAsACAAeQBvAHUAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAdABoAGUAIAB0AHIAYQBuAHMAbQBpAHMAcwBpAG8AbgAgAG8AZgAgAGEAIAAiAHAAcgBpAG4AdAAvAHAAcgBlAHYAaQBlAHcAIgAgAFAARABGACAAZABvAGMAdQBtAGUAbgB0ACAAaQBzACAAdABoAGUAIABmAGkAcgBzAHQAIABhAG4AZAAgAHAAcgBlAGYAZQByAHIAZQBkACAAbQBlAHQAaABvAGQAIABvAGYAIAB0AHIAYQBuAHMAbQBpAHQAdABpAG4AZwAgAHMAdQBjAGgAIABkAG8AYwB1AG0AZQBuAHQAcwAgAHQAbwAgAGEAIABzAGUAcgB2AGkAYwBlACAAYgB1AHIAZQBhAHUAIABvAHIAIABwAHIAaQBuAHQAZQByAC4AIAAgADEAMAAuACAAVABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAYQBuAGQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGEAbgBkACAAYQBuAHkAIAB0AHIAYQBkAGUAbQBhAHIAawBzACAAYQBzAHMAbwBjAGkAYQB0AGUAZAAgAHQAaABlAHIAZQB3AGkAdABoACAAYQByAGUAIAB0AGgAZQAgAGUAeABjAGwAdQBzAGkAdgBlACAAcAByAG8AcABlAHIAdAB5ACAAbwBmACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAG4AZAAgAHQAaABlAGkAcgAgAGQAZQBzAGkAZwBuAGUAcgBzACwAIAB3AGgAZQByAGUAIABhAHAAcABsAGkAYwBhAGIAbABlACAAYQBuAGQAIABhAHIAZQAgAHAAcgBvAHQAZQBjAHQAZQBkACAAYgB5ACAAdABoAGUAIABjAG8AcAB5AHIAaQBnAGgAdAAgAGEAbgBkACAAbwB0AGgAZQByACAAaQBuAHQAZQBsAGwAZQBjAHQAdQBhAGwAIABwAHIAbwBwAGUAcgB0AHkAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACwAIABiAHkAIAB0AGgAZQAgAGMAbwBwAHkAcgBpAGcAaAB0ACAAYQBuAGQAIABkAGUAcwBpAGcAbgAgAGwAYQB3AHMAIABvAGYAIABvAHQAaABlAHIAIABuAGEAdABpAG8AbgBzACwAIABhAG4AZAAgAGIAeQAgAG8AdABoAGUAcgAgAGkAbgB0AGUAcgBuAGEAdABpAG8AbgBhAGwAIAB0AHIAZQBhAHQAaQBlAHMALgAgAEEAbgB5ACAAYwBvAHAAaQBlAHMAIAB0AGgAYQB0ACAAeQBvAHUAIABhAHIAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIAB0AG8AIABtAGEAawBlACAAcAB1AHIAcwB1AGEAbgB0ACAAdABvACAAdABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgAG0AdQBzAHQAIABjAG8AbgB0AGEAaQBuACAAdABoAGUAIABzAGEAbQBlACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHQAcgBhAGQAZQBtAGEAcgBrACwAIABhAG4AZAAgAG8AdABoAGUAcgAgAHAAcgBvAHAAcgBpAGUAdABhAHIAeQAgAG4AbwB0AGkAYwBlAHMAIAB0AGgAYQB0ACAAYQBwAHAAZQBhAHIAIABvAG4AIABvAHIAIABpAG4AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgACAAMQAxAC4AIABZAG8AdQAgAGEAZwByAGUAZQAgAG4AbwB0ACAAdABvACAAYwByAGUAYQB0AGUALAAgAGEAcwBzAGkAcwB0ACAAaQBuACAAYQBuAGQALwBvAHIAIABjAGEAdQBzAGUAIAB0AGgAZQAgAGMAcgBlAGEAdABpAG8AbgAgAG8AZgAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMAIABvAHIAIABhAGQAZABpAHQAaQBvAG4AcwAgAHQAbwAgAHQAaABlACAARgBvAG4AdABzACAAbwByACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAaQBuAGMAbAB1AGQAaQBuAGcALAAgAGIAdQB0ACAAbgBvAHQAIABsAGkAbQBpAHQAZQBkACAAdABvACwAIABjAHIAZQBhAHQAaQBuAGcAIABhAGQAZABpAHQAaQBvAG4AYQBsACAAdwBlAGkAZwBoAHQAcwA7ACAAYwByAGUAYQB0AGkAbgBnACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAG8AcgAgAGQAZQBsAGUAdABpAG4AZwAgAGUAeABpAHMAdABpAG4AZwAgAGMAaABhAHIAYQBjAHQAZQByAHMAOwAgAG0AbwBkAGkAZgB5AGkAbgBnACAAZQB4AGkAcwB0AGkAbgBnACAAYwBoAGEAcgBhAGMAdABlAHIAcwA7ACAAbQBvAGQAaQBmAHkAaQBuAGcAIABmAG8AbgB0ACAAcwBwAGEAYwBpAG4AZwAgAGEAbgBkACAAawBlAHIAbgBpAG4AZwA7ACAAbwByACAAYwBvAG4AdgBlAHIAdABpAG4AZwAgAGYAbwBuAHQAcwAgAHQAbwAgAGEAbgAgAGEAbAB0AGUAcgBuAGEAdABlACAAZABpAGcAaQB0AGEAbAAgAGYAbwByAG0AYQB0ACwAIABtAG8AZABpAGYAeQAsACAAYQBkAGEAcAB0ACwAIAB0AHIAYQBuAHMAbABhAHQAZQAsACAAcgBlAHYAZQByAHMAZQAgAGUAbgBnAGkAbgBlAGUAcgAsACAAZABlAGMAbwBtAHAAaQBsAGUALAAgAGQAaQBzAGEAcwBzAGUAbQBiAGwAZQAsACAAYQBsAHQAZQByACwAIABvAHIAIABvAHQAaABlAHIAdwBpAHMAZQAgAGEAdAB0AGUAbQBwAHQAIAB0AG8AIABkAGkAcwBjAG8AdgBlAHIAIAB0AGgAZQAgAHMAbwB1AHIAYwBlACAAYwBvAGQAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaQB0AGgAbwB1AHQAIABmAGkAcgBzAHQAIABvAGIAdABhAGkAbgBpAG4AZwAgAHcAcgBpAHQAdABlAG4AIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAZgByAG8AbQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIABJAG4AIAB0AGgAZQAgAGUAdgBlAG4AdAAgAHQAaABhAHQAIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAaQBzACAAZwBpAHYAZQBuACAAdABvACAAeQBvAHUALAAgAGEAbgB5ACAAYQBuAGQAIABhAGwAbAAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMAIABhAG4AZAAgAGEAZABkAGkAdABpAG8AbgBzACAAcwBoAGEAbABsACAAYgBlAGMAbwBtAGUAIABhAG4AZAAgAHMAaABhAGwAbAAgAHIAZQBtAGEAaQBuACAAdABoAGUAIABzAG8AbABlACAAYQBuAGQAIABlAHgAYwBsAHUAcwBpAHYAZQAgAHAAcgBvAHAAZQByAHQAeQAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQBuAGQAIAB5AG8AdQAgAG0AYQB5ACAAbgBvAHQAIABzAGUAbABsACwAIABsAGUAbgBkACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIAB0AHIAYQBuAHMAbQBpAHQAIABhAG4AeQAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMAIABvAHIAIABhAGQAZABpAHQAaQBvAG4AcwAgAHQAbwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAGEAbgB5ACAAdABoAGkAcgBkACAAcABhAHIAdAB5AC4AIABPAHQAaABlAHIAIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgBzACAAbQBhAHkAIABwAHIAbwB2AGkAZABlACAAZgBvAHIAIABhAGQAZABpAHQAaQBvAG4AYQBsACAAcgBpAGcAaAB0AHMALAAgAGEAbgBkACAAaQBmACAAYQBwAHAAbABpAGMAYQBiAGwAZQAsACAAeQBvAHUAIABtAGEAeQAgAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIAIABvAHIAIABkAGUAYwBvAG0AcABpAGwAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AbgBsAHkAIAB0AG8AIAB0AGgAZQAgAGUAeAB0AGUAbgB0ACAAdABoAGEAdAAgAHMAdQBmAGYAaQBjAGkAZQBuAHQAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABpAHMAIABuAG8AdAAgAGEAdgBhAGkAbABhAGIAbABlACAAZgBvAHIAIAB0AGgAZQAgAHAAdQByAHAAbwBzAGUAIABvAGYAIABjAHIAZQBhAHQAaQBuAGcAIABhAG4AIABpAG4AdABlAHIAbwBwAGUAcgBhAGIAbABlACAAcwBvAGYAdAB3AGEAcgBlACAAcAByAG8AZwByAGEAbQAgACgAYgB1AHQAIABvAG4AbAB5ACAAZgBvAHIAIABzAHUAYwBoACAAcAB1AHIAcABvAHMAZQAgAGEAbgBkACAAbwBuAGwAeQAgAHQAbwAgAHQAaABlACAAZQB4AHQAZQBuAHQAIAB0AGgAYQB0ACAAcwB1AGYAZgBpAGMAaQBlAG4AdAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAgAGkAcwAgAG4AbwB0ACAAcAByAG8AdgBpAGQAZQBkACAAYgB5ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIAB1AHAAbwBuACAAdwByAGkAdAB0AGUAbgAgAHIAZQBxAHUAZQBzAHQAKQAuACAAQQBsAGwAIAB0AHIAYQBkAGUAbQBhAHIAawBzACAAcwBoAGEAbABsACAAYgBlACAAdQBzAGUAZAAgAGkAbgAgAGEAYwBjAG8AcgBkAGEAbgBjAGUAIAB3AGkAdABoACAAYQBjAGMAZQBwAHQAZQBkACAAdAByAGEAZABlAG0AYQByAGsAIABwAHIAYQBjAHQAaQBjAGUALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAaQBkAGUAbgB0AGkAZgBpAGMAYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AdwBuAGUAcgAnAHMAIABuAGEAbQBlAC4AIABVAHMAZQAgAG8AZgAgAHQAaABlACAAdAByAGEAZABlAG0AYQByAGsAcwAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIAB3AGkAdABoACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBuAHUAcgBlAHMAIABzAG8AbABlAGwAeQAgAHQAbwAgAHQAaABlACAAYgBlAG4AZQBmAGkAdAAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIAAgACAAMQAyAC4AIABVAHMAZQAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABjAGkAcgBjAHUAbQBzAHQAYQBuAGMAZQBzACAAYQBuAGQALwBvAHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwAgAGkAcwAgAE4ATwBUACAAcABlAHIAbQBpAHQAdABlAGQAIAB3AGkAdABoAG8AdQB0ACAAZgBpAHIAcwB0ACAAbwBiAHQAYQBpAG4AaQBuAGcAIAB0AGgAZQAgAGEAcABwAHIAbwBwAHIAaQBhAHQAZQAgAGwAaQBjAGUAbgBzAGkAbgBnACAAdQBwAGcAcgBhAGQAZQAuACAAIAAgAGEAKQAgACYAIwA5ADsAQQBMAFAASABBAEIARQBUACAATwBSACAATABFAFQAVABFAFIARgBPAFIATQAtAFIARQBMAEEAVABFAEQAIABQAFIATwBEAFUAQwBUAFMAIAAmACMAOQA7ACYAIwA5ADsARgBPAFIAIABSAEUAUwBBAEwARQAgAE8AUgAgAEwARQBUAFQARQBSAEYATwBSAE0AIABDAFIARQBBAFQASQBPAE4AIABQAFIATwBEAFUAQwBUAFMAIABPAFIAIABEAEUAVgBJAEMARQBTADsAIABiACkAIAAmACMAOQA7AEUATQBCAEUARABEAEkATgBHACAASQBOACAARQBMAEUAQwBUAFIATwBOAEkAQwAgAEQARQBWAEkAQwBFAFMAOwAgAEEATABMACAARwBBAE0ASQBOAEcAIABVAFMARQBTACAAQQBOAEQALwBPAFIAIABEAEUAVgBJAEMARQBTADsAIABjACkAIAAmACMAOQA7AEUATQBCAEUARABEAEkATgBHACAASQBOACAAUwBPAEYAVABXAEEAUgBFADsAIABkACkAIAAmACMAOQA7AFMAVABPAFIASQBOAEcAIABBAE4ARAAvAE8AUgAgAFMARQBSAFYASQBOAEcAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIABGAE8AUgAgAFQASABFACAAUABVAFIAUABPAFMARQBTACAATwBGACAATQBBAEsASQBOAEcAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIAAmACMAOQA7ACYAIwA5ADsAQQBWAEEASQBMAEEAQgBMAEUAIABWAEkAQQAgAFQASABFACAASQBOAFQARQBSAE4ARQBUACAAVQBTAEkATgBHACAARgBPAE4AVAAgAFIARQBQAEwAQQBDAEUATQBFAE4AVAAgAFQARQBDAEgATgBPAEwATwBHAEkARQBTAC4AIAAgACAAaQApACAATABlAHQAdABlAHIAZgBvAHIAbQAgAG8AcgAgAEEAbABwAGgAYQBiAGUAdAAgAFAAcgBvAGQAdQBjAHQAcwAgAGkAbgBjAGwAdQBkAGUALAAgAGIAdQB0ACAAYQByAGUAIABuAG8AdAAgAGwAaQBtAGkAdABlAGQAIAB0AG8ALAAgAHMAaQBnAG4AYQBnAGUAIABhAG4AZAAvAG8AcgAgAHMAYwByAGEAcABiAG8AbwBrAGkAbgBnACAAdQBzAGUAcwAgAGkAbgB2AG8AbAB2AGkAbgBnACAAcgBlAHAAcgBvAGQAdQBjAHQAaQBvAG4AcwAgAG8AZgAgAGkAbgBkAGkAdgBpAGQAdQBhAGwAIABsAGUAdAB0AGUAcgBmAG8AcgBtAHMALAAgAHUAcwBlACAAaQBuACAAdABoAGUAIABjAHIAZQBhAHQAaQBvAG4AIABvAGYAIABzAGkAZwBuAGEAZwBlACAAbwByACAAbgB1AG0AYgBlAHIAaQBuAGcAIABwAHIAbwBkAHUAYwB0AHMALAAgAHIAdQBiAGIAZQByACAAcwB0AGEAbQBwAHMALAAgAGQAaQBlAC0AYwB1AHQAIABwAHIAbwBkAHUAYwB0AHMALAAgAHMAdABlAG4AYwBpAGwAIABwAHIAbwBkAHUAYwB0AHMALAAgAHQAYQB0AHQAbwBvACwAIABmAGwAYQBzAGgALAAgAG8AcgAgAGEAZABoAGUAcwBpAHYAZQAgAHMAdABpAGMAawBlAHIAIABhAGwAcABoAGEAYgBlAHQAIABwAHIAbwBkAHUAYwB0AHMAIABvAHIAIABhAG4AeQAgAG8AdABoAGUAcgAgAHAAcgBvAGQAdQBjAHQAIABjAG8AbgB0AGEAaQBuAGkAbgBnACAAYQBuAHkAIABpAG0AYQBnAGUAIABvAGYAIABvAHIAIABkAGUAcgBpAHYAZQBkACAAZgByAG8AbQAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABlAG0AYgBvAGQAaQBlAGQAIABpAG4AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAGYAIAB3AGgAaQBjAGgAIABhAG4AeQAgAGwAaQBrAGUAbgBlAHMAcwAgAG8AZgAgAHQAaABlACAAYQBsAHAAaABhAGIAZQB0ACAAYwBhAG4AIABiAGUAIAByAGUAcAByAG8AZAB1AGMAZQBkAC4AIAAgAGkAaQApACAARQBtAGIAZQBkAGQAaQBuAGcAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAcwAgAGkAbgAgAGEAIABwAHIAaQBuAHQALwBwAHIAZQB2AGkAZQB3ACAAZgBvAHIAbQBhAHQAIABpAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAuACAATgBvAHQAdwBpAHQAaABzAHQAYQBuAGQAaQBuAGcALAAgAGUAbQBiAGUAZABkAGkAbgBnACAAbwByACAAbwB0AGgAZQByACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAcwAgAG8AcgAgAHQAaABlACAAbwB1AHQAbABpAG4AZQBzACAAdABoAGUAcgBlAG8AZgAgAGkAbgAgAGEAbgB5ACAAbQBlAHQAaABvAGQAIAB3AGgAaQBjAGgAIABwAGUAcgBtAGkAdABzACAAdABoAGUAIABlAHgAdAByAGEAYwB0AGkAbwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwBmACAAdABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAdABoAGUAcgBlAGkAbgAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcAByAG8AaABpAGIAaQB0AGUAZAAuACAAQQBuAHkAIABzAHUAYwBoACAAdQBzAGUAIAByAGUAcQB1AGkAcgBlAHMAIAB0AGgAZQAgAGUAeABwAHIAZQBzAHMAIAB3AHIAaQB0AHQAZQBuACAAcABlAHIAbQBpAHMAcwBpAG8AbgAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQBuAGQAIABtAGEAeQAgAG8AcgAgAG0AYQB5ACAAbgBvAHQAIAByAGUAcQB1AGkAcgBlACAAdABoAGUAIABwAHUAcgBjAGgAYQBzAGUAIABvAGYAIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUAIABhAHQAIAB0AGgAZQAgAHMAbwBsAGUAIABkAGkAcwBjAHIAZQB0AGkAbwBuACAAbwBmACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgACAAaQBpAGkAKQAgAEkAbgAgAHQAaABlACAAZQB2AGUAbgB0ACAAYQBuAHkAIABkAGkAbgBnAGIAYQB0AHMAIABvAHIAIABvAHQAaABlAHIAIABhAHIAdAAgAGYAbwByAG0AcwAgAGEAcgBlACAAcABhAHIAdAAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAGEAcgB0AHcAbwByAGsAIABpAHMAIABmAHUAcgB0AGgAZQByACAAcgBlAHMAdAByAGkAYwB0AGUAZAAuACAAWQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGUAIABhAHIAdAB3AG8AcgBrACwAIABkAHIAYQB3AGkAbgBnAHMAIABhAG4AZAAvAG8AcgAgAGQAaQBuAGcAYgBhAHQAcwAgAG8AbgAgAGcAbwBvAGQAcwAgAGYAbwByACAAcwBhAGwAZQAsACAAaQBuACAAbABvAGcAbwAgAGQAZQBzAGkAZwBuACwAIAByAGUAdABhAGkAbAAgAHAAYQBjAGsAYQBnAGkAbgBnACAAbwByACAAaQBuACAAcABvAGkAbgB0ACAAbwBmACAAcwBhAGwAZQAgAHUAcwBlAHMAIABvAG4AbAB5ACAAYQBmAHQAZQByACAAdABoAGUAIABwAHUAcgBjAGgAYQBzAGUAIABvAGYAIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUALgAgACAASQBuACAAbwByAGQAZQByACAAdABvACAAbwBiAHQAYQBpAG4AIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUALAAgAHkAbwB1ACAAbQB1AHMAdAAgAGMAbwBuAHQAYQBjAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGEAdAAgAGkAbgBmAG8AQABjAG8AbQBtAGUAcgBjAGkAYQBsAHQAeQBwAGUALgBjAG8AbQAgAGYAbwByACAAbQBvAHIAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAuACAASQBmACAAeQBvAHUAIABhAHIAZQAgAHUAbgBzAHUAcgBlACAAdwBoAGUAdABoAGUAcgAgAHkAbwB1AHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAHMAcABlAGMAaQBmAGkAYwBhAGwAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIAB1AG4AZABlAHIAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALAAgAGMAbwBuAHQAYQBjAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAuACAAIAAxADMALgAgAEUAbQBiAGUAZABkAGUAZAAgAEUAbABlAGMAdAByAG8AbgBpAGMAIABEAGUAdgBpAGMAZQBzACAAaQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAbwByACAAYQBuAHkAIABvAG4ALQBzAGMAcgBlAGUAbgAgAGQAaQBzAHAAbABhAHkAIABvAHIAIABvAG4AIABhAG4AIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZABlAHYAaQBjAGUAIABvAHUAdABzAGkAZABlACAAYQAgAHMAaQBuAGcAbABlACAAbABvAGMAYQB0AGkAbwBuAC4AIABGAG8AcgAgAGUAeABhAG0AcABsAGUALAAgAGEAbgBkACAAbgBvAHQAIABiAHkAIAB3AGEAeQAgAG8AZgAgAGwAaQBtAGkAdABhAHQAaQBvAG4ALAAgAHMAdQBjAGgAIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZABlAHYAaQBjAGUAcwAgAGkAbgBjAGwAdQBkAGUAIABhACAAawBpAG8AcwBrACwAIABnAGEAbQBpAG4AZwAgAGQAZQB2AGkAYwBlAHMALAAgAGUAbQBiAHIAbwBpAGQAZQByAHkAIABvAHIAIABzAGUAdwBpAG4AZwAgAG0AYQBjAGgAaQBuAGUAcwAgAGcAYQBtAGUAIABwAGwAYQB5AGkAbgBnACAAbwByACAAZwBhAG0AYgBsAGkAbgBnACAAZABlAHYAaQBjAGUAcwAsACAAaQByAHIAZQBzAHAAZQBjAHQAaQB2AGUAIABvAGYAIAB3AGgAZQB0AGgAZQByACAAdABoAGUAIABzAGgAbwB3AGkAbgBnACAAbwByACAAYwByAGUAYQB0AGkAbwBuACAAbwBmACAAYwBvAHAAaQBlAHMAIABvAGYAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAZQBtAGIAbwBkAGkAZQBkACAAaQBuACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAYwByAGUAYQB0AGUAZAAgAGIAeQAgAHUAcwBlACAAbwBmACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABvAHIAIABhAHMAIABhAG4AIABpAG0AYQBnAGUAIABvAGYAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAaQBuACAAdABpAGYAZgAsACAAZwBpAGYAIABvAHIAIABvAHQAaABlAHIAIABmAG8AcgBtAGEAdAAuACAAIAAgADEANAAuACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAZgBvAHIAIAB1AHMAZQAgAGIAeQAgAGEAIABzAHAAZQBjAGkAZgBpAGUAZAAgAG4AdQBtAGIAZQByACAAbwBmACAAdQBzAGUAcgBzAC4AIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAG0AbwByAGUAIAB0AGgAYQBuACAAbwBuAGUAIABnAGUAbwBnAHIAYQBwAGgAaQBjACAAbABvAGMAYQB0AGkAbwBuACAAbwByACAAYgB5ACAAbQBlAGEAbgBzACAAbwBmACAAcwBlAHIAdgBlAHIAIABvAHIAIABjAGUAbgB0AHIAYQBsACAAQwBQAFUAIABvAHUAdABzAGkAZABlACAAbwBmACAAdABoAGUAIAB0AGUAcgBtAHMAIABvAGYAIAB5AG8AdQByACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAHAAZQByAG0AaQB0AHQAZQBkACAAcAByAG8AdgBpAGQAZQBkACAAdABoAGUAIABlAGEAYwBoACAAdQBzAGUAcgAgAG8AcgAgAHAAbwB0AGUAbgB0AGkAYQBsACAAdQBzAGUAcgAgAGkAcwAgAGwAaQBjAGUAbgBzAGUAZAAuACAATABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUAcwAgAG0AYQB5ACAAYgBlACAAcAB1AHIAYwBoAGEAcwBlAGQAIABmAHIAbwBtACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAHQAIABpAG4AZgBvAEAAYwBvAG0AbQBlAHIAYwBpAGEAbAB0AHkAcABlAC4AYwBvAG0ALgAgACAAMQA1AC4AIABFAHgAYwBlAHAAdAAgAGEAcwAgAG0AYQB5ACAAYgBlACAAbwB0AGgAZQByAHcAaQBzAGUAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAcgBvAHYAaQBkAGUAZAAgAGYAbwByACAAaABlAHIAZQBpAG4ALAAgAHkAbwB1ACAAZQB4AHAAcgBlAHMAcwBsAHkAIABhAGcAcgBlAGUAIABuAG8AdAAgAHQAbwAgAHIAZQBuAHQALAAgAGwAZQBhAHMAZQAsACAAcwB1AGIAbABpAGMAZQBuAHMAZQAsACAAZwBpAHYAZQAsACAAbABlAG4AZAAsACAAbwByACAAZgB1AHIAdABoAGUAcgAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgAFkAbwB1ACAAbQBhAHkAIAB0AHIAYQBuAHMAZgBlAHIAIABhAGwAbAAgAHkAbwB1AHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBvAHQAaABlAHIAIABwAGUAcgBzAG8AbgAgAG8AcgAgAGUAbgB0AGkAdAB5ACAAcAByAG8AdgBpAGQAZQBkACAAdABoAGEAdAAgACgAaQApACAAdABoAGUAIAB0AHIAYQBuAHMAZgBlAHIAZQBlACAAYQBjAGMAZQBwAHQAcwAgAGEAbgBkACAAYQBnAHIAZQBlAHMAIAB0AG8AIABiAGUAIABiAG8AdQBuAGQAIABiAHkAIABhAGwAbAAgAHQAaABlACAAdABlAHIAbQBzACAAYQBuAGQAIABjAG8AbgBkAGkAdABpAG8AbgBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIABhAG4AZAAgACgAaQBpACkAIAB5AG8AdQAgAGQAZQBzAHQAcgBvAHkAIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABzAHQAbwByAGUAZAAgAGkAbgAgAHQAaABlACAAbQBlAG0AbwByAHkAIABvAGYAIABhACAAaABhAHIAZAB3AGEAcgBlACAAZABlAHYAaQBjAGUALgAgACAAMQA2AC4AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAHcAYQByAHIAYQBuAHQAcwAgAHQAaABhAHQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB3AGkAbABsACAAcABlAHIAZgBvAHIAbQAgAHMAdQBiAHMAdABhAG4AdABpAGEAbABsAHkAIABpAG4AIABhAGMAYwBvAHIAZABhAG4AYwBlACAAdwBpAHQAaAAgAGkAdABzACAAZABvAGMAdQBtAGUAbgB0AGEAdABpAG8AbgAgAGYAbwByACAAbgBpAG4AZQB0AHkAIAAoADkAMAApACAAZABhAHkAcwAgAGYAbwBsAGwAbwB3AGkAbgBnACAAZABlAGwAaQB2AGUAcgB5ACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABUAG8AIABtAGEAawBlACAAYQAgAHcAYQByAHIAYQBuAHQAeQAgAGMAbABhAGkAbQAsACAAeQBvAHUAIABtAHUAcwB0ACAAZQBpAHQAaABlAHIAIAByAGUAdAB1AHIAbgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAHQAaABlACAAbABvAGMAYQB0AGkAbwBuACAAZgByAG8AbQAgAHcAaABpAGMAaAAgAHkAbwB1ACAAbwBiAHQAYQBpAG4AZQBkACAAaQB0ACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAGEAIABjAG8AcAB5ACAAbwBmACAAeQBvAHUAcgAgAHMAYQBsAGUAcwAgAHIAZQBjAGUAaQBwAHQAIABvAHIALAAgAGkAZgAgAGEAYwBxAHUAaQByAGUAZAAgAG8AbgAtAGwAaQBuAGUALAAgAGMAbwBuAHQAYQBjAHQAIAB0AGgAZQAgAG8AbgAtAGwAaQBuAGUAIABwAHIAbwB2AGkAZABlAHIAIAB3AGkAdABoACAAcwB1AGYAZgBpAGMAaQBlAG4AdAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAgAHIAZQBnAGEAcgBkAGkAbgBnACAAeQBvAHUAcgAgAGEAYwBxAHUAaQBzAGkAdABpAG8AbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAHAAZQByAG0AaQB0ACAAdABoAGUAIABjAG8AbgBmAGkAcgBtAGEAdABpAG8AbgAgAG8AZgAgAHQAaABlACAAZQBmAGYAZQBjAHQAaQB2AGUAIABkAGEAdABlACAAbwBmACAAdABoAGkAcwAgAEwAaQBjAGUAbgBzAGUALgAgAFMAYwBoAHcAYQByAHQAegBjAG8ALAAgAEkAbgBjAC4AIABhAG4AZAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAaABlAHIAZQBiAHkAIABFAFgAUABSAEUAUwBTAEwAWQAgAEQASQBTAEMATABBAEkATQBTACAAQQBMAEwAIABXAEEAUgBSAEEATgBUAEkARQBTACwAIABFAFgAUABSAEUAUwBTACAAQQBOAEQAIABJAE0AUABMAEkARQBEACwAIABJAE4AQwBMAFUARABJAE4ARwAsACAAQgBVAFQAIABOAE8AVAAgAEwASQBNAEkAVABFAEQAIABUAE8ALAAgAFQASABFACAASQBNAFAATABJAEUARAAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAEYAIABNAEUAUgBDAEgAQQBOAFQAQQBCAEkATABJAFQAWQAgAEEATgBEACAARgBJAFQATgBFAFMAUwAgAEYATwBSACAAQQAgAFAAQQBSAFQASQBDAFUATABBAFIAIABQAFUAUgBQAE8AUwBFAC4AIABDAE8ATQBNAEUAUgBDAEkAQQBMACAAVABZAFAARQAgAEQATwBFAFMAIABOAE8AVAAgAFcAQQBSAFIAQQBOAFQAIABUAEgAQQBUACAAVABIAEUAIABPAFAARQBSAEEAVABJAE8ATgAgAE8ARgAgAFQASABFACAARgBPAE4AVAAgAFMATwBGAFQAVwBBAFIARQAgAFcASQBMAEwAIABCAEUAIABVAE4ASQBOAFQARQBSAFIAVQBQAFQARQBEACAATwBSACAARQBSAFIATwBSAC0ARgBSAEUARQAsACAATwBSACAAVABIAEEAVAAgAFQASABFACAARgBPAE4AVAAgAFMATwBGAFQAVwBBAFIARQAgAEkAUwAgAFcASQBUAEgATwBVAFQAIABEAEUARgBFAEMAVABTAC4AIABVAE4ARABFAFIAIABOAE8AIABDAEkAUgBDAFUATQBTAFQAQQBOAEMARQBTACAAUwBIAEEATABMACAAQwBPAE0ATQBFAFIAQwBJAEEATAAgAFQAWQBQAEUAIABCAEUAIABMAEkAQQBCAEwARQAgAFQATwAgAFkATwBVACAATwBSACAAQQBOAFkAIABPAFQASABFAFIAIABQAEEAUgBUAFkALAAgAFcASABFAFQASABFAFIAIABJAE4AIABDAE8ATgBUAFIAQQBDAFQAIABPAFIAIABUAE8AUgBUACAAKABJAE4AQwBMAFUARABJAE4ARwAgAE4ARQBHAEwASQBHAEUATgBDAEUAKQAgAE8AUgAgAE8AVABIAEUAUgBXAEkAUwBFACwAIABGAE8AUgAgAEEATgBZACAAUwBQAEUAQwBJAEEATAAsACAAQwBPAE4AUwBFAFEAVQBFAE4AVABJAEEATAAsACAATwBSACAASQBOAEMASQBEAEUATgBUAEEATAAgAEQAQQBNAEEARwBFAFMALAAgAEkATgBDAEwAVQBEAEkATgBHACAATABPAFMAVAAgAFAAUgBPAEYASQBUAFMALAAgAFMAQQBWAEkATgBHAFMAIABPAFIAIABCAFUAUwBJAE4ARQBTAFMAIABJAE4AVABFAFIAUgBVAFAAVABJAE8ATgAgAEEAUwAgAEEAIABSAEUAUwBVAEwAVAAgAE8ARgAgAFQASABFACAAVQBTAEUAIABPAEYAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIABFAFYARQBOACAASQBGACAATgBPAFQASQBGAEkARQBEACAASQBOACAAQQBEAFYAQQBOAEMARQAgAE8ARgAgAFMAVQBDAEgAIABQAE8AUwBTAEkAQgBJAEwASQBUAFkALgAgAFkAbwB1ACAAaABlAHIAZQBiAHkAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAeQBvAHUAcgAgAGUAbgB0AGkAcgBlACwAIABlAHgAYwBsAHUAcwBpAHYAZQAsACAAYQBuAGQAIABjAHUAbQB1AGwAYQB0AGkAdgBlACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAgAHIAZQBtAGUAZAB5ACAAcwBoAGEAbABsACAAYgBlACAAbABpAG0AaQB0AGUAZAAgAHQAbwAgAHQAaABlACAAcAB1AHIAYwBoAGEAcwBlACAAcAByAGkAYwBlACAAbwBmACAAdABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABMAGkAYwBlAG4AcwBlAC4AIABVAG4AZABlAHIAIABuAG8AIABjAGkAcgBjAHUAbQBzAHQAYQBuAGMAZQBzACAAcwBoAGEAbABsACAAUwBjAGgAdwBhAHIAdAB6AGMAbwAsACAASQBuAGMALgAnAHMAIABvAHIAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAnAHMAIABsAGkAYQBiAGkAbABpAHQAeQAgAHQAbwAgAHkAbwB1ACAAZQB4AGMAZQBlAGQAIABlAGkAdABoAGUAcgAgAHQAaABlACAAcgBlAGYAdQBuAGQAaQBuAGcAIABvAGYAIAB0AGgAZQAgAGMAbwBzAHQAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABMAGkAYwBlAG4AcwBlACAAbwByACAAcgBlAHAAbABhAGMAZQBtAGUAbgB0ACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAZQBpAHQAaABlAHIAIABvAGYAIAB3AGgAaQBjAGgAIABzAGgAYQBsAGwAIABiAGUAIABhAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAnAHMAIABzAG8AbABlACAAZABpAHMAYwByAGUAdABpAG8AbgAuACAAIAAxADcALgAgAE8AVABIAEUAUgAgAEwAQQBXACAALQAgAEMATwBOAFMAVQBNAEUAUgBTACAATwBOAEwAWQAuACAAUwBvAG0AZQAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuAHMAIABkAG8AIABuAG8AdAAgAGEAbABsAG8AdwAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHIAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAbwBmACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAsACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAgAG8AcgAgAHMAcABlAGMAaQBhAGwAIABkAGEAbQBhAGcAZQBzACwAIABpAG0AcABsAGkAZQBkACAAdwBhAHIAcgBhAG4AdABpAGUAcwAgAG8AcgAgAGkAbQBwAGwAaQBlAGQAIAB3AGEAcgByAGEAbgB0AGkAZQBzACAAYQBzACAAdABoAGUAeQAgAHIAZQBsAGEAdABlACAAdABvACAAcwBhAGwAZQBzACAAdABvACAAYwBvAG4AcwB1AG0AZQByAHMALgAgAEEATgBZACAASQBNAFAATABJAEUARAAgAFcAQQBSAFIAQQBOAFQAWQAgAE8AUgAgAE8AVABIAEUAUgAgAFIASQBHAEgAVAAgAEMAUgBFAEEAVABFAEQAIABCAFkAIABMAEEAVwAgAEkAUwAgAE8ATgBMAFkAIABFAEYARgBFAEMAVABJAFYARQAgAEYATwBSACAAVABIAEUAIABOAEkATgBFAFQAWQAgACgAOQAwACkAIABEAEEAWQAgAFcAQQBSAFIAQQBOAFQAWQAgAFAARQBSAEkATwBEAC4AIABUAEgARQBSAEUAIABBAFIARQAgAE4ATwAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAFIAIABDAE8ATgBEAEkAVABJAE8ATgBTACAATwBGACAAQQBOAFkAIABLAEkATgBEACAAQQBGAFQARQBSACAAVABIAEUAIABOAEkATgBFAFQAWQAgACgAOQAwACkAIABEAEEAWQAgAFcAQQBSAFIAQQBOAFQAWQAgAFAARQBSAEkATwBEAC4AIABUAG8AIAB0AGgAZQAgAGUAeAB0AGUAbgB0ACAAcABlAHIAbQBpAHMAcwBpAGIAbABlACAAYgB5ACAAbABhAHcALAAgAHkAbwB1ACAAYQBnAHIAZQBlACAAdABoAGEAdAAgAGEAbABsACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABhAHIAZQAgAG4AbwB0ACAAdABvACAAYgBlACAAZQBmAGYAZQBjAHQAaQB2AGUAIABmAG8AcgAgAG0AbwByAGUAIAB0AGgAYQBuACAAdABoAGkAcgB0AHkAIAAoADMAMAApACAAZABhAHkAcwAuACAAIAAgADEAOAAuACAAWQBvAHUAIABlAHgAcAByAGUAcwBzAGwAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABzAGgAYQBsAGwAIABiAGUAIABnAG8AdgBlAHIAbgBlAGQAIABiAHkAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB0AGgAZQAgAFMAdABhAHQAZQAgAG8AZgAgAE4AZQB3ACAAWQBvAHIAawAsACAAVQAuAFMALgBBAC4ALAAgAGEAcwAgAHQAaABlAHkAIABhAHAAcABsAHkAIAB0AG8AIABjAG8AbgB0AHIAYQBjAHQAcwAgAGUAbgB0AGUAcgBlAGQAIABpAG4AdABvACAAYQBuAGQAIAB3AGgAbwBsAGwAeQAgAHAAZQByAGYAbwByAG0AZQBkACAAdABoAGUAcgBlAGkAbgAgAGEAbgBkACAAdwBpAHQAaABvAHUAdAAgAHIAZQBzAHAAZQBjAHQAIAB0AG8AIABpAHQAcwAgAGMAbwBuAGYAbABpAGMAdAAgAG8AZgAgAGwAYQB3AHMAIABwAHIAbwB2AGkAcwBpAG8AbgBzACAAbwByACAAdABoAGUAIABjAG8AbgBmAGwAaQBjAHQAIABvAGYAIABsAGEAdwBzACAAcAByAG8AdgBpAHMAaQBvAG4AcwAgAG8AZgAgAGEAbgB5ACAAbwB0AGgAZQByACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4ALgAgAFkAbwB1ACAAZQB4AHAAcgBlAHMAcwBsAHkAIABzAHUAYgBtAGkAdAAgAHQAbwAgAHQAaABlACAAcABlAHIAcwBvAG4AYQBsACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAHMAdABhAHQAZQAgAGEAbgBkACAAZgBlAGQAZQByAGEAbAAgAGMAbwB1AHIAdABzACAAaQBuACAAdABoAGUAIABTAHQAYQB0AGUAIABvAGYAIABOAGUAdwAgAFkAbwByAGsALAAgAFUAUwBBACwAIABhAGcAcgBlAGUAIAB0AG8AIAB3AGEAaQB2AGUAIABhAG4AeQAgAGQAZQBmAGUAbgBzAGUAcwAgAGEAcgBpAHMAaQBuAGcAIABvAHUAdAAgAG8AZgAgAHQAaABlACAAcwBlAGwAZQBjAHQAaQBvAG4AIABvAGYAIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgAgAG8AcgAgAHYAZQBuAHUAZQAgAGEAbgBkACAAZgB1AHIAdABoAGUAcgAgAGEAZwByAGUAZQAgAHQAbwAgAHMAZQByAHYAaQBjAGUAIABvAGYAIABwAHIAbwBjAGUAcwBzACAAYgB5ACAAbQBhAGkAbAAuACAAWQBvAHUAIABoAGUAcgBlAGIAeQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAYQBnAHIAZQBlACAAdABoAGEAdAAgAHQAaABlACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAE4AYQB0AGkAbwBuAHMAIABDAG8AbgB2AGUAbgB0AGkAbwBuACAAbwBmACAAQwBvAG4AdAByAGEAYwB0AHMAIABmAG8AcgAgAHQAaABlACAASQBuAHQAZQByAG4AYQB0AGkAbwBuAGEAbAAgAFMAYQBsAGUAIABvAGYAIABHAG8AbwBkAHMAIABpAHMAIABlAHgAcAByAGUAcwBzAGwAeQAgAGUAeABjAGwAdQBkAGUAZAAuACAAIAAxADkALgAgAFkAbwB1ACAAYQBjAGsAbgBvAHcAbABlAGQAZwBlACAAdABoAGEAdAAgAHkAbwB1ACAAaABhAHYAZQAgAHIAZQBhAGQAIABhAG4AZAAgAHUAbgBkAGUAcgBzAHQAYQBuAGQAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABhAG4AZAAgAHQAaABhAHQAIABiAHkAIAB1AHMAaQBuAGcAIAB0AGgAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAHkAbwB1ACAAYQBnAHIAZQBlACAAdABvACAAYgBlACAAYgBvAHUAbgBkACAAYgB5ACAAaQB0AHMAIAB0AGUAcgBtAHMAIABhAG4AZAAgAGMAbwBuAGQAaQB0AGkAbwBuAHMALgAgAFkAbwB1ACAAZgB1AHIAdABoAGUAcgAgAGEAZwByAGUAZQAgAHQAaABhAHQAIABpAHQAIABpAHMAIAB0AGgAZQAgAGMAbwBtAHAAbABlAHQAZQAgAGEAbgBkACAAZQB4AGMAbAB1AHMAaQB2AGUAIABzAHQAYQB0AGUAbQBlAG4AdAAgAG8AZgAgAHQAaABlACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAG4AZAAgAHkAbwB1ACAAdwBoAGkAYwBoACAAcwB1AHAAZQByAHMAZQBkAGUAcwAgAGEAbgB5ACAAcAByAG8AcABvAHMAYQBsACAAbwByACAAcAByAGkAbwByACAAYQBnAHIAZQBlAG0AZQBuAHQALAAgAG8AcgBhAGwAIABvAHIAIAB3AHIAaQB0AHQAZQBuACwAIABhAG4AZAAgAGEAbgB5ACAAbwB0AGgAZQByACAAYwBvAG0AbQB1AG4AaQBjAGEAdABpAG8AbgBzACAAcgBlAGwAYQB0AGkAbgBnACAAdABvACAAdABoAGUAIABzAHUAYgBqAGUAYwB0ACAAbQBhAHQAdABlAHIAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALgAgAE4AbwAgAHYAYQByAGkAYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIAB0AGUAcgBtAHMAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABvAHIAIABhAG4AeQAgAGQAaQBmAGYAZQByAGUAbgB0ACAAdABlAHIAbQBzACAAdwBpAGwAbAAgAGIAZQAgAGUAbgBmAG8AcgBjAGUAYQBiAGwAZQAgAGkAbgAgAHQAaABlACAAYQBiAHMAZQBuAGMAZQAgAG8AZgAgAGEAbgAgAGUAeABwAHIAZQBzAHMAIAB3AHIAaQB0AHQAZQBuACAAYQBtAGUAbgBkAG0AZQBuAHQALAAgAG8AcgAgAGMAbwBuAHMAZQBuAHQALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYQAgAHcAcgBpAHQAdABlAG4AIABlAHgAcAByAGUAcwBzACAAdwBhAGkAdgBlAHIAIABvAGYAIAB0AGgAZQAgAGEAZgBmAGUAYwB0AGUAZAAgAHQAZQByAG0AcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAuACAASQBmACAAYQBuAHkAIABwAHIAbwB2AGkAcwBpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGkAcwAgAGQAZQBjAGwAYQByAGUAZAAgAGIAeQAgAGEAIABjAG8AdQByAHQAIABvAGYAIABjAG8AbQBwAGUAdABlAG4AdAAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuACAAdABvACAAYgBlACAAaQBuAHYAYQBsAGkAZAAsACAAdgBvAGkAZAAgAG8AcgAgAHUAbgBlAG4AZgBvAHIAYwBlAGEAYgBsAGUALAAgAHQAaABlACAAcgBlAG0AYQBpAG4AaQBuAGcAIABwAHIAbwB2AGkAcwBpAG8AbgBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAcwBoAGEAbABsACAAYwBvAG4AdABpAG4AdQBlACAAaQBuACAAZgB1AGwAbAAgAGYAbwByAGMAZQAgAGEAbgBkACAAZQBmAGYAZQBjAHQALAAgAGEAbgBkACAAdABoAGUAIABpAG4AdgBhAGwAaQBkACAAcAByAG8AdgBpAHMAaQBvAG4AIABzAGgAYQBsAGwAIABiAGUAIAByAGUAcABsAGEAYwBlAGQAIABiAHkAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAHcAaQB0AGgAIABhACAAcAByAG8AdgBpAHMAaQBvAG4AIAB0AGgAYQB0ACAAZQBmAGYAZQBjAHQAcwAgAHQAaABlACAAaQBuAHQAZQBuAHQAIABvAGYAIAB0AGgAZQAgAGkAbgB2AGEAbABpAGQAIABwAHIAbwB2AGkAcwBpAG8AbgAuACAAIAAyADAALgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAZQB4AHAAcgBlAHMAcwBsAHkAIAByAGUAcwBlAHIAdgBlAHMAIAB0AGgAZQAgAHIAaQBnAGgAdAAgAHQAbwAgAGEAbQBlAG4AZAAgAG8AcgAgAG0AbwBkAGkAZgB5ACAAaQB0AHMAIABMAGkAYwBlAG4AcwBlACAAQQBnAHIAZQBlAG0AZQBuAHQAcwAgAGEAdAAgAGEAbgB5ACAAdABpAG0AZQAgAGEAbgBkACAAdwBpAHQAaABvAHUAdAAgAHAAcgBpAG8AcgAgAG4AbwB0AGkAZgBpAGMAYQB0AGkAbwBuAC4AIAAgADIAMQAuACAAVABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHMAaABhAGwAbAAgAGEAdQB0AG8AbQBhAHQAaQBjAGEAbABsAHkAIAB0AGUAcgBtAGkAbgBhAHQAZQAgAGkAbgAgAHQAaABlACAAZQB2AGUAbgB0ACAAeQBvAHUAIABvAHIAIABhAG4AeQAgAGEAdQB0AGgAbwByAGkAegBlAGQAIAB1AHMAZQByACAAYgByAGUAYQBjAGgAZQBzACAAYQBuAHkAIAB0AGUAcgBtACAAbwByACAAYwBvAG4AZABpAHQAaQBvAG4AIABzAGUAdAAgAGYAbwByAHQAaAAgAGgAZQByAGUAaQBuAC4AIABOAG8AdAB3AGkAdABoAHMAdABhAG4AZABpAG4AZwAgAGEAbgB5ACAAdABlAHIAbQBpAG4AYQB0AGkAbwBuACAAbwBmACAAdABoAGkAcwAgAEwAaQBjAGUAbgBzAGUALAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAZQB4AHAAcgBlAHMAcwBsAHkAIAByAGUAcwBlAHIAdgBlAHMAIABhAG4AeQAgAGEAbgBkACAAYQBsAGwAIABvAHQAaABlAHIAIAByAGkAZwBoAHQAcwAgAGEAbgBkACAAcgBlAG0AZQBkAGkAZQBzACAAdQBuAGQAZQByACAAZQBxAHUAaQB0AHkAIABvAHIAIABsAGEAdwAuACAAVABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgAG0AYQB5ACAAbwBuAGwAeQAgAGIAZQAgAG0AbwBkAGkAZgBpAGUAZAAgAGkAbgAgAGEAIAB3AHIAaQB0AGkAbgBnACAAcwBpAGcAbgBlAGQAIABiAHkAIABhAG4AIABhAHUAdABoAG8AcgBpAHoAZQBkACAAbwBmAGYAaQBjAGUAcgAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIAAgADIAMgAuACAAWQBvAHUAIABhAGcAcgBlAGUAIAB0AG8AIABiAGUAIAByAGUAcwBwAG8AbgBzAGkAYgBsAGUAIABmAG8AcgAgAGMAbwBtAHAAbABpAGEAbgBjAGUAIAB3AGkAdABoACAAYQBsAGwAIABsAGEAdwBzACwAIABmAG8AcgBlAGkAZwBuACAAYQBuAGQAIABkAG8AbQBlAHMAdABpAGMAIAByAGUAbABhAHQAaQBuAGcAIAB0AG8AIAB0AGgAZQAgAGMAbwBuAHQAcgBvAGwAIABvAGYAIABlAHgAcABvAHIAdABzACAAbwByACAAdABoAGUAIAB0AHIAYQBuAHMAZgBlAHIAIABvAGYAIAB0AGUAYwBoAG4AbwBsAG8AZwB5AC4AIABJAGYAIAB5AG8AdQAgAGEAcgBlACAAcAB1AHIAYwBoAGEAcwBpAG4AZwAgAHQAaABpAHMAIABMAGkAYwBlAG4AcwBlACAAZgBvAHIAIABnAG8AdgBlAHIAbgBtAGUAbgB0ACAAdQBzAGUALAAgAG8AcgAgAHUAbgBkAGUAcgAgAGEAIABnAG8AdgBlAHIAbgBtAGUAbgB0ACAAYwBvAG4AdAByAGEAYwB0ACwAIAB5AG8AdQAgAGEAZwByAGUAZQAgAHQAbwAgAGYAYQBtAGkAbABpAGEAcgBpAHoAZQAgAHkAbwB1AHIAcwBlAGwAZgAgAHcAaQB0AGgAIABhAG4AZAAgAGYAbwBsAGwAbwB3ACAAYQBuAHkAIABhAHAAcABsAGkAYwBhAGIAbABlACAAcgB1AGwAZQBzACAAYQBuAGQAIAByAGUAZwB1AGwAYQB0AGkAbwBuAHMAIAByAGUAbABhAHQAaQBuAGcAIAB0AG8AIAB0AGgAZQAgAHAAdQBy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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+w/8T/pgAA//b/4v/7//v/4v/2AAD/+wAAAAD/4gAA/+cAAP/x/8T/xAAAAAAAAAAA/7r/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAA//v/9gAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAABf/2//v/+wAA//H/4v/2AAD/7P/sAAAAAAAAAAD/7AAA/+wAAP/2AAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/s/+z/4gAAAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+cAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/+wAA/93/2P/2//H/5/+/AAD/8QAA//v/5//s/9gAAP/7AAAAAAAAAAAAAAAA//v/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+D/6H/agAZ/+z/4v/2AAD/2P/OAAAAAAAAAAD/2AAA/90AAP/n/7r/vwAAAAAAAAAA/5z/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4v/i/+z/3QAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAA/+f/+//n//v/+//2//YAAAAAAAAAAAAAAAAAAP/7AAD/+wAA//YAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+//x/+z/4gAAAAAAAAAAAAD/9gAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAA/+f/+//2AAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAAABQAA/43/4gAA/5z/2P+1/8T/nP+h/7X/8f/E/87/2AAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/2AAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAAAAAAAAAA/8T/7P/7/87/7P/d/93/zv+m/9j/9v/Y/+z/5wAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/9gAAAAAAAAAAAAD/pgAFAAAAAAAA/5f/3f/7/5z/0/+1/8T/nP+h/7X/3f/E/87/2AAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/2AAAAAAAAAAAAAAAAP/s//H/9gAA//b/7AAAAAD/7AAAAAAAAAAAAAD/8QAA//YAAP/7AAAAAAAAAAAAAAAA//b/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAA//sAAAAAAAD/+//OAAAAAAAAAAAAAAAAADwARgAAAAoADwBGAAAALQAAAAAAAAAAAAAAAAAtAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v+1/93/tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAA/9gAAP/iAAD/9v/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAP/xAAD/9gAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAD/8QAA//sAAAAA//b/9gAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/+wAAAAD/+wAA//v/9gAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAP+h/6b/oQAAAAD/7AAAAAD/0wAAAAAAAAAAAAD/zv/7/9gAAP/7/2//bwAAAAAAAAAA/6EAAAAAAAD/uv/xAAAAAAAAAAAAAP/OAAD/xAAAAAAAAAAA//sAAAAA//sAAAAAAAD/+/9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vwAAAAAAAAAA//YAAAAA//sAAAAAAAD/+/9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/9gAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAD/+/+cAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+wAA//sAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/7AAAAAD/+wAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+wAAAAD/+wAAAAD/+//7//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABQACAAYAAAALAAsABQANAA4ABgAQACsACAAtAEkAJAABAAIASAAqACoAJwAgACcAAAAAAAAAAAAFAAAACgAJAAAABgAIAAwAAAANABQADgABAA8AEAAQABEAEgATABAAEAAUAAIAFAAVABYAFwAYAAMAGQAEABoAGwAAACYAHAAkAB0AHgAfACUAIQAiACMAJAAlACUAJgAmAAcAKwAsAC0AMAAuAC4ACwAuAC8AKAApACgAKQABAAIASQAaABoADgALAA4AAAAfAAAAIQAkAB4AJQAgAAAAJgAcAAEAAAAHAAAAAAAAAAcAAAAAAAYAAAAAAAAAAAAHAAAABwAAAAgAAgAUABsAAwAdAAQAFwAJABkADQAJAA0ACgAJABkAGAAFABkAGQAMAAwADQAMAAkADAAPABAAEQASABIAIgASABMAFQAWABUAFgAjAAAAAQAAAAoAagDMAAJERkxUAA5sYXRuABwABAAAAAD//wACAAAABQAWAANBWkUgACBDUlQgACxUUksgADgAAP//AAIAAQAGAAD//wADAAIABwAKAAD//wADAAMACAALAAD//wADAAQACQAMAA1jYWx0AFBjYWx0AFBjYWx0AFBjYWx0AFBjYWx0AFBsaWdhAFZsaWdhAFZsaWdhAFZsaWdhAFZsaWdhAFZsb2NsAFxsb2NsAFxsb2NsAFwAAAABAAIAAAABAAEAAAABAAAAAwAIACIAKgAGAAAAAQAIAAMAAAABAAwAAAAAAAEAAQA0AAYAAAABABIABgAAAAIACgAwAAMAAAABAA4AAQAUAAAAAQABADEAAQAHAC0AMQAzADQANQA2ADcAAwAAAAEADgABABQAAAABAAEANQABAAIANQA8AAAB9AAAAQkAAAHVAGYBHwBmASQAQgHwAFQBJABYArQAYgG9ADICagBLAoIAQQKwAC0CiwBPAo4ASAJqAEECngBQAo4ASAIgAE4DIAAhAxAAbgMpAEUDQABuAu0AbgLUAG4DTwBFA1IAbgE/AG8ClwBZAwwAbgLAAG4D8QBuA1wAbgNoAEUDCgBuA2gARQMjAG4C8AA0Av8AKANJAGsDHQAmBGkAKwMtACIC/QAPAw4ANwKTADoCmQBeAlIAOQKbADoCZAA5AekAHgKbADoCjABeARkAXQEZ/40CTwBeARsAYAP7AF4CjABeAnoAOQKZAF4CmwA6AgIAXgI1ADACBAAeAn8AWAJFABcDZQAcAloAFwJFABcCXgA4ASQAWAEkAFIB7wBYAe8AUgFQAG4="}},"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":"vercel.live/_next-live/feedback/feedback.html?dpl=dpl_GBSv5uteAdkYzC5LuQUrVTgkwdAR","fqdn":"vercel.live","domain":"vercel.live","tld":"live"},"ip":{"addr":"64.239.123.1","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"subdocument","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.454Z","timestamp":1785142498454,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.vercel.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 16 Jul 2026 06:06:15 GMT","end":"Wed, 14 Oct 2026 06:06:14 GMT"},"fingerprint":{"sha1":"F7:C4:44:D7:65:85:7F:13:D1:88:22:52:01:13:39:2C:D2:4D:B4:03","sha256":"D1:97:31:2B:16:93:09:96:71:5C:B3:35:63:90:F5:A8:A7:F8:C0:6B:D8:21:B8:AB:5A:31:BF:80:A6:89:DF:E9"}}},"request":{"raw":"GET /_next-live/feedback/feedback.html?dpl=dpl_GBSv5uteAdkYzC5LuQUrVTgkwdAR HTTP/1.1\r\nHost: vercel.live\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-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://preview-strategynavigator.newton.tech/\r\nUpgrade-Insecure-Requests: 1\r\nSec-Fetch-Dest: iframe\r\nSec-Fetch-Mode: navigate\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\naccess-control-allow-origin: *\r\nage: 412435\r\ncache-control: public,max-age=60,stale-while-revalidate=600\r\ncontent-disposition: inline; filename=\"feedback.html\"\r\ncontent-encoding: br\r\ncontent-type: text/html; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"46686eff22c812c15128ddc4424d6989\"\r\nlast-modified: Wed, 22 Jul 2026 13:42:02 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next-live/feedback/feedback.html\r\nx-robots-tag: noindex\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::77dj7-1785142498459-398e3e6d84bb\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":116438,"size_decoded":32680,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (65339)","md5":"46686eff22c812c15128ddc4424d6989","sha1":"8f28d0d5be69e6f1728add908edc28bb208ecf54","sha256":"e014de19f51113dad5027c6e08db0b160a7fd5dbfc984333d0637ddb7ade979f","sha512":"a183a19ba1e56487941923809f083845d08d3da921506f36f216734ec971a6a289089ccba7b90e5e6a88bab373d169ab44bb8d49696ae64a949cb9d173736843","ssdeep":"1536:WxJprhLI6DZYA0UT/gKD1DJAnrdPRkUp1EPRv8Acs1Scdtl4DeHgk7DjidRNE21l:WxJRhLI6DDT/OU99CN","tlshash":"47b32adc32c3f67923635536603fb606f27a5910a42f4510e62adcd5bd6889ac337be8","first_seen":"2026-07-22T18:51:15.275637Z","last_seen":"2026-07-27T10:14:54.485629Z","times_seen":82,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICA8bWV0YSBuYW1lPSJjb2xvci1zY2hlbWUiIGNvbnRlbnQ9ImRhcmsgbGlnaHQiPgo8L2hlYWQ+Cjxib2R5PjwvYm9keT4KPHNjcmlwdD4KICAvKiEgRm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBmcmFtZS5hMDFlYzg2Njg4OTY2ODBjNGMyNy5qcy5MSUNFTlNFLnR4dCAqLwooKCk9Pnt2YXIgZT17NTY4OmU9PntlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9T2JqZWN0KGUpLG49W107Zm9yKHZhciByIGluIHQpbi51bnNoaWZ0KHIpO3JldHVybiBmdW5jdGlvbiBlKCl7Zm9yKDtuLmxlbmd0aDspaWYoKHI9bi5wb3AoKSlpbiB0KXJldHVybiBlLnZhbHVlPXIsZS5kb25lPSExLGU7cmV0dXJuIGUuZG9uZT0hMCxlfX0sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSw4NDcwOihlLHQsbik9Pnt2YXIgcj1uKDY4MjM3KSxvPW4oNDk4MzIpLGE9big1MDkzNCksaT1uKDIxMzM0KSxzPW4oMjQ5NDApLGM9big1NjgpLHU9big0ODk3OCk7ZnVuY3Rpb24gZCgpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1vKCksbj10Lm0oZCksbD0oT2JqZWN0LmdldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZihuKTpuLl9fcHJvdG9fXykuY29uc3RydWN0b3I7ZnVuY3Rpb24gcChlKXt2YXIgdD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5jb25zdHJ1Y3RvcjtyZXR1cm4hIXQmJih0PT09bHx8IkdlbmVyYXRvckZ1bmN0aW9uIj09PSh0LmRpc3BsYXlOYW1lfHx0Lm5hbWUpKX12YXIgZj17dGhyb3c6MSxyZXR1cm46MixicmVhazozLGNvbnRpbnVlOjN9O2Z1bmN0aW9uIG0oZSl7dmFyIHQsbjtyZXR1cm4gZnVuY3Rpb24ocil7dHx8KHQ9e3N0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gbihyLmEsMil9LGNhdGNoOmZ1bmN0aW9uKCl7cmV0dXJuIHIudn0sYWJydXB0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4oci5hLGZbZV0sdCl9LGRlbGVnYXRlWWllbGQ6ZnVuY3Rpb24oZSxvLGEpe3JldHVybiB0LnJlc3VsdE5hbWU9byxuKHIuZCx1KGUpLGEpfSxmaW5pc2g6ZnVuY3Rpb24oZSl7cmV0dXJuIG4oci5mLGUpfX0sbj1mdW5jdGlvbihlLG4sbyl7ci5wPXQucHJldixyLm49dC5uZXh0O3RyeXtyZXR1cm4gZShuLG8pfWZpbmFsbHl7dC5uZXh0PXIubn19KSx0LnJlc3VsdE5hbWUmJih0W3QucmVzdWx0TmFtZV09ci52LHQucmVzdWx0TmFtZT12b2lkIDApLHQuc2VudD1yLnYsdC5uZXh0PXIubjt0cnl7cmV0dXJuIGUuY2FsbCh0aGlzLHQpfWZpbmFsbHl7ci5wPXQucHJldixyLm49dC5uZXh0fX19cmV0dXJuKGUuZXhwb3J0cz1kPWZ1bmN0aW9uKCl7cmV0dXJue3dyYXA6ZnVuY3Rpb24oZSxuLHIsbyl7cmV0dXJuIHQudyhtKGUpLG4scixvJiZvLnJldmVyc2UoKSl9LGlzR2VuZXJhdG9yRnVuY3Rpb246cCxtYXJrOnQubSxhd3JhcDpmdW5jdGlvbihlLHQpe3JldHVybiBuZXcgcihlLHQpfSxBc3luY0l0ZXJhdG9yOnMsYXN5bmM6ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4ocCh0KT9pOmEpKG0oZSksdCxuLHIsbyl9LGtleXM6Yyx2YWx1ZXM6dX19LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cykoKX1lLmV4cG9ydHM9ZCxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDEyNDU0OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYodC5zdHlsZVNoZWV0KXQuc3R5bGVTaGVldC5jc3NUZXh0PWU7ZWxzZXtmb3IoO3QuZmlyc3RDaGlsZDspdC5yZW1vdmVDaGlsZCh0LmZpcnN0Q2hpbGQpO3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpfX19LDEyOTk3OihlLHQsbik9Pnt2YXIgcj1uKDg0NzApKCk7ZS5leHBvcnRzPXI7dHJ5e3JlZ2VuZXJhdG9yUnVudGltZT1yfWNhdGNoKGUpeyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzLnJlZ2VuZXJhdG9yUnVudGltZT1yOkZ1bmN0aW9uKCJyIiwicmVnZW5lcmF0b3JSdW50aW1lID0gciIpKHIpfX0sMTg4ODg6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QTooKT0+c30pO3ZhciByPW4oNDk4MDIpLG89bi5uKHIpLGE9big1MTM0NyksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCwiLkREdVpqaEtvNzBlbTQ2NjJIWkF6e2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigzcHgpO2JhY2tncm91bmQ6aHNsYSgwLDAlLDk1JSwuOCk7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOiMwMDA7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7bGVmdDowO292ZXJmbG93OmF1dG87cGFkZGluZzoxNnB4O3Bvc2l0aW9uOmZpeGVkO3RvcDowO3dpZHRoOjEwMCV9QGtleWZyYW1lcyBPRTBPM29vWUZVNGNTa2JFNVpjVHswJXtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtNDBweCwwKX10b3tvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YWxsO3RyYW5zZm9ybTp0cmFuc2xhdGVaKDApfX0uU3FIaENHdDJBZjdqMGFWeDZGYzZ7YW5pbWF0aW9uOk9FME8zb29ZRlU0Y1NrYkU1WmNUIC4zNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7YmFja2dyb3VuZDojZmZmO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMCAwIDAgdHJhbnNwYXJlbnQsMCAwIDAgMCB0cmFuc3BhcmVudCwwIDAgMCAwIHRyYW5zcGFyZW50LDAgMCAwIDAgdHJhbnNwYXJlbnQsMCAwIDAgMXB4IHJnYmEoMCwwLDAsLjA4KSwwIDMycHggNzJweCAtMTJweCByZ2JhKDAsMCwwLC4wNiksMCA4cHggMzJweCAtMTJweCByZ2JhKDAsMCwwLC4wOCksMCA4cHggMjRweCAtMTJweCByZ2JhKDAsMCwwLC4xMik7ZmxleC1zaHJpbms6MDtoZWlnaHQ6MjgwcHg7bWFyZ2luOmF1dG87bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAzMnB4KTttaW4td2lkdGg6bWluKGNhbGMoMTAwdncgLSAzMnB4KSw0ODJweCk7b3ZlcmZsb3c6aGlkZGVufS5TcUhoQ0d0MkFmN2owYVZ4NkZjNiBpZnJhbWV7aGVpZ2h0OjEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6NDgwcHgpey5TcUhoQ0d0MkFmN2owYVZ4NkZjNntoZWlnaHQ6MzYwcHh9fUBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5TcUhoQ0d0MkFmN2owYVZ4NkZjNnthbmltYXRpb246bm9uZX19IiwiIl0pLGkubG9jYWxzPXtjb3ZlcjoiRER1WmpoS283MGVtNDY2MkhaQXoiLG1vZGFsOiJTcUhoQ0d0MkFmN2owYVZ4NkZjNiIsIm1lbnUtZW50ZXIiOiJPRTBPM29vWUZVNGNTa2JFNVpjVCJ9O2NvbnN0IHM9aX0sMjAzMzM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9bi5uYzt0JiZlLnNldEF0dHJpYnV0ZSgibm9uY2UiLHQpfX0sMjEzMzQ6KGUsdCxuKT0+e3ZhciByPW4oNDk4MzIpLG89bigyNDk0MCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLGEsaSl7cmV0dXJuIG5ldyBvKHIoKS53KGUsdCxuLGEpLGl8fFByb21pc2UpfSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDI0OTQwOihlLHQsbik9Pnt2YXIgcj1uKDY4MjM3KSxvPW4oNzc0NzEpO2UuZXhwb3J0cz1mdW5jdGlvbiBlKHQsbil7ZnVuY3Rpb24gYShlLG8saSxzKXt0cnl7dmFyIGM9dFtlXShvKSx1PWMudmFsdWU7cmV0dXJuIHUgaW5zdGFuY2VvZiByP24ucmVzb2x2ZSh1LnYpLnRoZW4oZnVuY3Rpb24oZSl7YSgibmV4dCIsZSxpLHMpfSxmdW5jdGlvbihlKXthKCJ0aHJvdyIsZSxpLHMpfSk6bi5yZXNvbHZlKHUpLnRoZW4oZnVuY3Rpb24oZSl7Yy52YWx1ZT1lLGkoYyl9LGZ1bmN0aW9uKGUpe3JldHVybiBhKCJ0aHJvdyIsZSxpLHMpfSl9Y2F0Y2goZSl7cyhlKX19dmFyIGk7dGhpcy5uZXh0fHwobyhlLnByb3RvdHlwZSksbyhlLnByb3RvdHlwZSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuYXN5bmNJdGVyYXRvcnx8IkBhc3luY0l0ZXJhdG9yIixmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLG8odGhpcywiX2ludm9rZSIsZnVuY3Rpb24oZSx0LHIpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gbmV3IG4oZnVuY3Rpb24odCxuKXthKGUscix0LG4pfSl9cmV0dXJuIGk9aT9pLnRoZW4obyxvKTpvKCl9LCEwKX0sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSwzNDY0NTplPT57ZnVuY3Rpb24gdChuKXtyZXR1cm4gZS5leHBvcnRzPXQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyx0KG4pfWUuZXhwb3J0cz10LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sNDA2Nzc6ZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXTtmdW5jdGlvbiBuKGUpe2Zvcih2YXIgbj0tMSxyPTA7cjx0Lmxlbmd0aDtyKyspaWYodFtyXS5pZGVudGlmaWVyPT09ZSl7bj1yO2JyZWFrfXJldHVybiBufWZ1bmN0aW9uIHIoZSxyKXtmb3IodmFyIGE9e30saT1bXSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBjPWVbc10sdT1yLmJhc2U/Y1swXStyLmJhc2U6Y1swXSxkPWFbdV18fDAsbD0iIi5jb25jYXQodSwiICIpLmNvbmNhdChkKTthW3VdPWQrMTt2YXIgcD1uKGwpLGY9e2NzczpjWzFdLG1lZGlhOmNbMl0sc291cmNlTWFwOmNbM10sc3VwcG9ydHM6Y1s0XSxsYXllcjpjWzVdfTtpZigtMSE9PXApdFtwXS5yZWZlcmVuY2VzKyssdFtwXS51cGRhdGVyKGYpO2Vsc2V7dmFyIG09byhmLHIpO3IuYnlJbmRleD1zLHQuc3BsaWNlKHMsMCx7aWRlbnRpZmllcjpsLHVwZGF0ZXI6bSxyZWZlcmVuY2VzOjF9KX1pLnB1c2gobCl9cmV0dXJuIGl9ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPXQuZG9tQVBJKHQpO24udXBkYXRlKGUpO3JldHVybiBmdW5jdGlvbih0KXtpZih0KXtpZih0LmNzcz09PWUuY3NzJiZ0Lm1lZGlhPT09ZS5tZWRpYSYmdC5zb3VyY2VNYXA9PT1lLnNvdXJjZU1hcCYmdC5zdXBwb3J0cz09PWUuc3VwcG9ydHMmJnQubGF5ZXI9PT1lLmxheWVyKXJldHVybjtuLnVwZGF0ZShlPXQpfWVsc2Ugbi5yZW1vdmUoKX19ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbyl7dmFyIGE9cihlPWV8fFtdLG89b3x8e30pO3JldHVybiBmdW5jdGlvbihlKXtlPWV8fFtdO2Zvcih2YXIgaT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgcz1uKGFbaV0pO3Rbc10ucmVmZXJlbmNlcy0tfWZvcih2YXIgYz1yKGUsbyksdT0wO3U8YS5sZW5ndGg7dSsrKXt2YXIgZD1uKGFbdV0pOzA9PT10W2RdLnJlZmVyZW5jZXMmJih0W2RdLnVwZGF0ZXIoKSx0LnNwbGljZShkLDEpKX1hPWN9fX0sNDA4OTM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QTooKT0+c30pO3ZhciByPW4oNDk4MDIpLG89bi5uKHIpLGE9big1MTM0NyksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCwnLm13c1RrQnBtQUtqbnVGNHczbDZRe2JhY2tncm91bmQ6I2ZmZjtncmlkLWdhcDoyNHB4O2dhcDoyNHB4O3BhZGRpbmc6MjBweH0ubXdzVGtCcG1BS2pudUY0dzNsNlEsLm13c1RrQnBtQUtqbnVGNHczbDZRIC5uT3hMTUtQWXZWaURoX0d3RlpLeXthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5uT3hMTUtQWXZWaURoX0d3RlpLeXtncmlkLWdhcDowO2NvbG9yOiMwMDA7Z2FwOjA7bWF4LXdpZHRoOjEwMCV9Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5uT3hMTUtQWXZWaURoX0d3RlpLeSAuamhnYjVTWFNUT1IxUWpfRktMWFJ7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleDttYXJnaW4tYm90dG9tOjE2cHg7bWFyZ2luLXRvcDoycHh9Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5uT3hMTUtQWXZWaURoX0d3RlpLeSAuamhnYjVTWFNUT1IxUWpfRktMWFIgLkY3Z29HMUQ4SDZhUmg2Vlc4N0lae2hlaWdodDoxNHB4O3dpZHRoOmF1dG99Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5uT3hMTUtQWXZWaURoX0d3RlpLeSBoMXtmb250LWZlYXR1cmUtc2V0dGluZ3M6ImNhbHQiIDAsInJsaWciLCJzczExIjtmb250LXNpemU6MjRweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uOTZweDtsaW5lLWhlaWdodDozMnB4O21hcmdpbjowIDAgMTJweDt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1pbmRlbnQ6MDstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbW96LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0ZXh0LXNpemUtYWRqdXN0OjEwMCU7dGV4dC13cmFwLW1vZGU6bm93cmFwO3doaXRlLXNwYWNlLWNvbGxhcHNlOmNvbGxhcHNlfS5td3NUa0JwbUFLam51RjR3M2w2USAubk94TE1LUFl2VmlEaF9Hd0ZaS3kgaDEsLm13c1RrQnBtQUtqbnVGNHczbDZRIC5uT3hMTUtQWXZWaURoX0d3RlpLeSBwe2NvbG9yOiMxNzE3MTc7LW1vei10YWItc2l6ZTo0Oy1vLXRhYi1zaXplOjQ7dGFiLXNpemU6NDt3aWR0aDoxMDAlfS5td3NUa0JwbUFLam51RjR3M2w2USAubk94TE1LUFl2VmlEaF9Hd0ZaS3kgcHtmb250LWZlYXR1cmUtc2V0dGluZ3M6ImNhbHQiIDAsInJsaWciLCJzczExIjtmb250LXNpemU6MTRweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjIwcHg7bWFyZ2luOjA7dGV4dC1hbGlnbjpsZWZ0Oy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tb3otdGV4dC1zaXplLWFkanVzdDoxMDAlO3RleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0ZXh0LXdyYXA6cHJldHR5fS5td3NUa0JwbUFLam51RjR3M2w2USBidXR0b257YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6NnB4O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6ZmxleDtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjM2cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtsaW5lLWhlaWdodDoyMHB4O3dpZHRoOjEwMCV9Lm13c1RrQnBtQUtqbnVGNHczbDZRIGJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkICMwMDcwZjM7b3V0bGluZS1vZmZzZXQ6MnB4fS5td3NUa0JwbUFLam51RjR3M2w2USAuSU5ZWm5rMmZLWGFQVEVXbmU0eUF7ZGlzcGxheTpncmlkO2dyaWQtZ2FwOjEycHg7Z2FwOjEycHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO21hcmdpbi10b3A6YXV0bzt3aWR0aDoxMDAlfS5td3NUa0JwbUFLam51RjR3M2w2USAuSU5ZWm5rMmZLWGFQVEVXbmU0eUEgYnV0dG9ue21pbi13aWR0aDowO3dpZHRoOjEwMCV9Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5JTllabmsyZktYYVBURVduZTR5QSAuWU5ZMm01dHkyWl9zY1Joa0dxOUR7Z3JpZC1jb2x1bW46MjtncmlkLXJvdzoxfS5td3NUa0JwbUFLam51RjR3M2w2USAuSU5ZWm5rMmZLWGFQVEVXbmU0eUEgLkEzWUwxUmxzZ2VPQXJqMlpBWEVpe2dyaWQtY29sdW1uOjE7Z3JpZC1yb3c6MX1AbWVkaWEgKG1heC13aWR0aDo0ODBweCl7Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5JTllabmsyZktYYVBURVduZTR5QXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKX0ubXdzVGtCcG1BS2pudUY0dzNsNlEgLklOWVpuazJmS1hhUFRFV25lNHlBIC5ZTlkybTV0eTJaX3NjUmhrR3E5RHtncmlkLWNvbHVtbjoxO2dyaWQtcm93OjF9Lm13c1RrQnBtQUtqbnVGNHczbDZRIC5JTllabmsyZktYYVBURVduZTR5QSAuQTNZTDFSbHNnZU9BcmoyWkFYRWl7Z3JpZC1jb2x1bW46MTtncmlkLXJvdzoyfX0ubXdzVGtCcG1BS2pudUY0dzNsNlEgLllOWTJtNXR5Mlpfc2NSaGtHcTlEe2JhY2tncm91bmQ6IzE3MTcxNztjb2xvcjojZmZmfUBtZWRpYSAoaG92ZXI6aG92ZXIpey5td3NUa0JwbUFLam51RjR3M2w2USAuWU5ZMm01dHkyWl9zY1Joa0dxOUQ6aG92ZXJ7YmFja2dyb3VuZDojMzgzODM4fX0ubXdzVGtCcG1BS2pudUY0dzNsNlEgLkEzWUwxUmxzZ2VPQXJqMlpBWEVpe2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNlYmViZWI7Y29sb3I6IzAwMH1AbWVkaWEgKGhvdmVyOmhvdmVyKXsubXdzVGtCcG1BS2pudUY0dzNsNlEgLkEzWUwxUmxzZ2VPQXJqMlpBWEVpOmhvdmVye2JhY2tncm91bmQ6I2YyZjJmMn19LnZGNGlTR1pCSEw3NlBpczNPRk9Ce3doaXRlLXNwYWNlOm5vd3JhcH0nLCIiXSksaS5sb2NhbHM9e21vZGFsOiJtd3NUa0JwbUFLam51RjR3M2w2USIsY29udGFpbmVyOiJuT3hMTUtQWXZWaURoX0d3RlpLeSIscHJvZHVjdExhYmVsOiJqaGdiNVNYU1RPUjFRal9GS0xYUiIscHJvZHVjdEljb246IkY3Z29HMUQ4SDZhUmg2Vlc4N0laIixhY3Rpb25zOiJJTllabmsyZktYYVBURVduZTR5QSIsY29udGludWVXaXRoVmVyY2VsQnV0dG9uOiJZTlkybTV0eTJaX3NjUmhrR3E5RCIsY29udGludWVXaXRob3V0SW50ZW50QnV0dG9uOiJBM1lMMVJsc2dlT0FyajJaQVhFaSIscHJvZHVjdE5hbWU6InZGNGlTR1pCSEw3NlBpczNPRk9CIn07Y29uc3Qgcz1pfSw0MzQyMDooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBOigpPT5zfSk7dmFyIHI9big0OTgwMiksbz1uLm4ociksYT1uKDUxMzQ3KSxpPW4ubihhKSgpKG8oKSk7aS5wdXNoKFtlLmlkLCcuT2t0cUFhbWVaUTBqcGp1RFJUN2t7Zm9udC1mYW1pbHk6SW50ZXIsLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksUm9ib3RvLE94eWdlbixVYnVudHUsQ2FudGFyZWxsLEZpcmEgU2FucyxEcm9pZCBTYW5zLEhlbHZldGljYSBOZXVlLHNhbnMtc2VyaWY7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTstLWJhY2tncm91bmQtcmdiOjI1NSwyNTUsMjU1Oy0tZm9yZWdyb3VuZC1yZ2I6MCwwLDA7LS1iYWNrZ3JvdW5kOnJnYih2YXIoLS1iYWNrZ3JvdW5kLXJnYikpOy0tZm9yZWdyb3VuZDpyZ2IodmFyKC0tZm9yZWdyb3VuZC1yZ2IpKTstLWhvdmVyOiNlYmViZWI7LS1ib3JkZXI6I2U2ZTZlNjtiYWNrZ3JvdW5kOnZhcigtLWJhY2tncm91bmQpO2NvbG9yOnZhcigtLWZvcmVncm91bmQpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Lk9rdHFBYW1lWlEwanBqdURSVDdrey0tYmFja2dyb3VuZC1yZ2I6MCwwLDA7LS1mb3JlZ3JvdW5kLXJnYjoyNTUsMjU1LDI1NTstLWhvdmVyOiMxZjFmMWY7LS1ib3JkZXI6IzJlMmUyZX19Lk9rdHFBYW1lWlEwanBqdURSVDdrIGJ1dHRvbntmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxNHB4fS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayBocntiYWNrZ3JvdW5kOnZhcigtLWJvcmRlcik7Ym9yZGVyOm5vbmU7Ym90dG9tOjA7aGVpZ2h0OjFweDtsZWZ0OjA7bWFyZ2luOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLmpzZlBiZjljZnhTOWdqenlGc3pue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MjRweCA4cHggOHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAudXFwZTVnV20zRVJkejFFeTk0amd7LS1pY29uLXNpemU6MTZweDthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dyaWQtZ2FwOjE2cHg7Z2FwOjE2cHh9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC51cXBlNWdXbTNFUmR6MUV5OTRqZyBzdmd7aGVpZ2h0OnZhcigtLWljb24tc2l6ZSk7d2lkdGg6dmFyKC0taWNvbi1zaXplKX0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLnVxcGU1Z1dtM0VSZHoxRXk5NGpnIC5EV2VEVk5lcmxtOUpUUkhuazNxNntvcGFjaXR5Oi4zfS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAudXFwZTVnV20zRVJkejFFeTk0amcgLlpFdFczRERwTk84WTdtSGxRd2R5e29wYWNpdHk6LjZ9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC51cXBlNWdXbTNFUmR6MUV5OTRqZyAua1V5RFBBWlUxakhBTDRVRlpIRk17b3BhY2l0eTouODd9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC51cXBlNWdXbTNFUmR6MUV5OTRqZyAuaDJEcVl3azJZTDZxczZBWmVnemt7LS1zaXplOmNhbGModmFyKC0taWNvbi1zaXplKSArIDE2cHgpO2JhY2tncm91bmQ6dmFyKC0tZm9yZWdyb3VuZCk7Ym9yZGVyLXJhZGl1czo1MCU7Y29sb3I6dmFyKC0tYmFja2dyb3VuZCk7ZGlzcGxheTpncmlkO2hlaWdodDp2YXIoLS1zaXplKTtwbGFjZS1jb250ZW50OmNlbnRlcjt3aWR0aDp2YXIoLS1zaXplKX0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLnVxcGU1Z1dtM0VSZHoxRXk5NGpnIC5oMkRxWXdrMllMNnFzNkFaZWd6ayBzdmd7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xcHh9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5TRFRRZm1kalVnQWZUTFN1V0xteHtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MjBweDtwYWRkaW5nOjEycHggMTJweCAwO3RleHQtYWxpZ246Y2VudGVyfS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuR3ZINmRfQXFQdzFWa19IdGo0VkJ7Y29sb3I6cmdiYSh2YXIoLS1mb3JlZ3JvdW5kLXJnYiksLjYxKTtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMXB4O3BhZGRpbmc6MnB4IDEycHggMTZweDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmNlbnRlcjt6LWluZGV4OjN9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKSBhbmQgKGhvdmVyOmhvdmVyKXsuT2t0cUFhbWVaUTBqcGp1RFJUN2s6bm90KC5wM3dqUlVDX3Z0bjFlRHNvOHhMdSkgLkd2SDZkX0FxUHcxVmtfSHRqNFZCe21peC1ibGVuZC1tb2RlOnBsdXMtbGlnaHRlcn0uT2t0cUFhbWVaUTBqcGp1RFJUN2sucDN3alJVQ192dG4xZURzbzh4THU6aGFzKC5YeW9tT2NqQ19WWlhTQXdySl9Scjpmb2N1cy12aXNpYmxlKSAuR3ZINmRfQXFQdzFWa19IdGo0VkIsLk9rdHFBYW1lWlEwanBqdURSVDdrLnAzd2pSVUNfdnRuMWVEc284eEx1OmhhcyguWHlvbU9jakNfVlpYU0F3ckpfUnI6aG92ZXIpIC5Hdkg2ZF9BcVB3MVZrX0h0ajRWQntiYWNrZHJvcC1maWx0ZXI6Ymx1cigwKSBicmlnaHRuZXNzKDkuNSkgc2F0dXJhdGUoLjgpOy13ZWJraXQtbWFzazpsaW5lYXItZ3JhZGllbnQoIzAwMCAwIDApIGJvcmRlci1ib3ggdGV4dDt0ZXh0LXNoYWRvdzowIDFweCAjMDAwMDAwOGF9fS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWHlvbU9jakNfVlpYU0F3ckpfUnJ7YmFja2dyb3VuZDp2YXIoLS1mb3JlZ3JvdW5kKTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6NnB4O2NvbG9yOnZhcigtLWJhY2tncm91bmQpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6Z3JpZDtmb250LXdlaWdodDo1MDA7aGVpZ2h0OjMycHg7cGxhY2UtY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo5OTl9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9SciAucVp0QUp3OGZEMUZOQ1pVaVIxT2N7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWHlvbU9jakNfVlpYU0F3ckpfUnI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1mb3JlZ3JvdW5kKX1AbWVkaWEgKGhvdmVyOmhvdmVyKXsuT2t0cUFhbWVaUTBqcGp1RFJUN2sgLlh5b21PY2pDX1ZaWFNBd3JKX1JyOmZvY3VzLXZpc2libGUsLk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjpyZ2JhKHZhcigtLWZvcmVncm91bmQtcmdiKSwuMSk7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpmb2N1cy12aXNpYmxlOmFmdGVyLC5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWHlvbU9jakNfVlpYU0F3ckpfUnI6Zm9jdXMtdmlzaWJsZTpiZWZvcmUsLk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpob3ZlcjphZnRlciwuT2t0cUFhbWVaUTBqcGp1RFJUN2sgLlh5b21PY2pDX1ZaWFNBd3JKX1JyOmhvdmVyOmJlZm9yZXtjb250ZW50OiIiO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGV9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsuT2t0cUFhbWVaUTBqcGp1RFJUN2sgLlh5b21PY2pDX1ZaWFNBd3JKX1JyOmZvY3VzLXZpc2libGUsLk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpob3Zlcntib3JkZXItY29sb3I6cmdiYSh2YXIoLS1mb3JlZ3JvdW5kLXJnYiksLjMpfS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWHlvbU9jakNfVlpYU0F3ckpfUnI6Zm9jdXMtdmlzaWJsZTpiZWZvcmUsLk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpob3ZlcjpiZWZvcmV7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgYnJpZ2h0bmVzcygxLjMpIHNhdHVyYXRlKDEuNSk7YmFja2dyb3VuZDojMDAwMDAwMDA7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOmluaGVyaXQ7aW5zZXQ6LTFweDstd2Via2l0LW1hc2s6bGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBwYWRkaW5nLWJveCxsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO21hc2s6bGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBwYWRkaW5nLWJveCxsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApOy13ZWJraXQtbWFzay1jb21wb3NpdGU6ZGVzdGluYXRpb24tb3V0O21hc2stY29tcG9zaXRlOmV4Y2x1ZGU7b3BhY2l0eTouN319Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpmb2N1cy12aXNpYmxlOmFmdGVyLC5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWHlvbU9jakNfVlpYU0F3ckpfUnI6aG92ZXI6YWZ0ZXJ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMzBweCk7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWJhY2tncm91bmQtcmdiKSwuNCk7Ym9yZGVyLXJhZGl1czo1cHg7Y29udGVudDoiIjtpbnNldDowfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpmb2N1cy12aXNpYmxlOmFmdGVyLC5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWHlvbU9jakNfVlpYU0F3ckpfUnI6aG92ZXI6YWZ0ZXJ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7YmFja2dyb3VuZDpub25lfX0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLlh5b21PY2pDX1ZaWFNBd3JKX1JyOmZvY3VzLXZpc2libGV+aHIsLk9rdHFBYW1lWlEwanBqdURSVDdrIC5YeW9tT2NqQ19WWlhTQXdySl9Scjpob3Zlcn5ocntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tZm9yZWdyb3VuZC1yZ2IpLC4xKX0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLlh5b21PY2pDX1ZaWFNBd3JKX1JyOmFjdGl2ZTphZnRlcntiYWNrZ3JvdW5kOnJnYmEodmFyKC0tZm9yZWdyb3VuZC1yZ2IpLC4xKX19Lk9rdHFBYW1lWlEwanBqdURSVDdrLnlxdTk1bzNLS1dsazFMUmRmRDRQIC5YeW9tT2NqQ19WWlhTQXdySl9ScntoZWlnaHQ6NDBweH0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLmw2Nlk0MEZIZWlfRVJoYzA1clpMe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z3JpZC1nYXA6NHB4O2JhY2tncm91bmQ6I2ZhZmFmYTtnYXA6NHB4O3BhZGRpbmc6OHB4fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5sNjZZNDBGSGVpX0VSaGMwNXJaTHtiYWNrZ3JvdW5kOiMwYTBhMGF9fS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuUEEyaHhjTHc2NU1CR0p0N3ZRQ2h7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo2cHg7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2ZvbnQtc2l6ZToxNHB4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2xpbmUtaGVpZ2h0OjIwcHg7cGFkZGluZzoxMHB4IDhweH0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLlBBMmh4Y0x3NjVNQkdKdDd2UUNoOmZvY3VzLXZpc2libGV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob3Zlcil9QG1lZGlhIChob3Zlcjpob3Zlcil7Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5QQTJoeGNMdzY1TUJHSnQ3dlFDaDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvdmVyKX19Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5QQTJoeGNMdzY1TUJHSnQ3dlFDaCBzdmd7Y29sb3I6cmdiYSh2YXIoLS1mb3JlZ3JvdW5kLXJnYiksLjYpO2hlaWdodDoxNnB4O3dpZHRoOjE2cHh9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5zWVJvVTlRXzlRNG1UY3FOd1pXOHtkaXNwbGF5OmZsZXg7Z3JpZC1nYXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHh9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC5nQVFZM2c5cmt4Wml6X0owZG1BR3tkaXNwbGF5OmZsZXg7Z3JpZC1nYXA6NHB4O2dhcDo0cHh9QG1lZGlhIChhbnktcG9pbnRlcjpjb2Fyc2Upey5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuZ0FRWTNnOXJreFppel9KMGRtQUd7ZGlzcGxheTpub25lfX0uT2t0cUFhbWVaUTBqcGp1RFJUN2sgLnkxSlNKT1llSTlyVWpmVEhCMzhWe2FsaWduLWl0ZW1zOmNlbnRlcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MnB4O2dyaWQtZ2FwOjE2cHg7YmFja2dyb3VuZDp2YXIoLS1iYWNrZ3JvdW5kKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czozcHg7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCk7Zm9udC1zaXplOjE0cHg7Z2FwOjE2cHg7aGVpZ2h0OjIwcHg7bWluLXdpZHRoOjIwcHh9Lk9rdHFBYW1lWlEwanBqdURSVDdrIC55MUpTSk9ZZUk5clVqZlRIQjM4ViBzdmd7Y29sb3I6aW5oZXJpdDtoZWlnaHQ6MTJweDt3aWR0aDoxMnB4fS5Pa3RxQWFtZVpRMGpwanVEUlQ3ayAuWm5pMXJseVR1WldNc0pHVk94UVJ7aGVpZ2h0Oi44ZW07d2lkdGg6LjhlbX0uSU9WUjdaQW96ZGoyd0RzTEgyRlR7Ym90dG9tOjA7bGVmdDowO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RyYW5zaXRpb246b3BhY2l0eSAuNXM7d2lkdGg6MTAwJTstLWRzLXRlYWwtNTAwOiM4NmVhZDk7LS1kcy1ibHVlLTcwMDojMDA3MmY1Oy0tZHMtcHVycGxlLTcwMDojOGU0ZWM2Oy0tZHMtcGluay03MDA6I2VhM2U4MzstLWRzLWFtYmVyLTcwMDojZmZiMjI0O2hlaWdodDo2NHB4fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7LklPVlI3WkFvemRqMndEc0xIMkZUey0tZHMtdGVhbC01MDA6IzA4NWU1MzstLWRzLWJsdWUtNzAwOiMwMDcyZjU7LS1kcy1wdXJwbGUtNzAwOiM4ZTRlYzY7LS1kcy1waW5rLTcwMDojZWEzZTgzOy0tZHMtYW1iZXItNzAwOiNmZmIyMjQ7aGVpZ2h0OjgwcHh9fS5JT1ZSN1pBb3pkajJ3RHNMSDJGVCAuSlpfcnVJUnRucFJ3T2Z5NzFOQVV7aW5zZXQ6MCAtMzJweDstd2Via2l0LW1hc2s6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDgyJSwjMDAwIDI3JSx0cmFuc3BhcmVudCA3MCUpO21hc2s6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDgyJSwjMDAwIDI3JSx0cmFuc3BhcmVudCA3MCUpO3Bvc2l0aW9uOmFic29sdXRlfS5JT1ZSN1pBb3pkajJ3RHNMSDJGVCAuX2JEZTYydTBCWWdBMXVTYzlDbkx7aW5zZXQ6MH0uSU9WUjdaQW96ZGoyd0RzTEgyRlQgLmlFeENCZksxNzZxYjVDTFRSODhyLC5JT1ZSN1pBb3pkajJ3RHNMSDJGVCAuX2JEZTYydTBCWWdBMXVTYzlDbkx7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOmFic29sdXRlfS5JT1ZSN1pBb3pkajJ3RHNMSDJGVCAuaUV4Q0JmSzE3NnFiNUNMVFI4OHJ7LS1kdXJhdGlvbjoyM3M7LS1nYXBzOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTEwZGVnLHZhcigtLWJhY2tncm91bmQpIDAlLHZhcigtLWJhY2tncm91bmQpIDclLHRyYW5zcGFyZW50IDEwJSx0cmFuc3BhcmVudCAxMiUsdmFyKC0tYmFja2dyb3VuZCkgMTklKTstLWxpZ2h0czpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDExMGRlZyx2YXIoLS1kcy10ZWFsLTUwMCkgMTAlLHZhcigtLWRzLWJsdWUtNzAwKSAxNSUsdmFyKC0tZHMtcHVycGxlLTcwMCkgMjAlLHZhcigtLWRzLXBpbmstNzAwKSAyNSUsdmFyKC0tZHMtYW1iZXItNzAwKSAzMCUpO2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tZ2FwcyksdmFyKC0tbGlnaHRzKTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJSA1MCUsNTAlIDUwJTtiYWNrZ3JvdW5kLXNpemU6MTIwJSwyMDAlO2JvdHRvbTotMTBweDtmaWx0ZXI6Ymx1cigxMnB4KSBpbnZlcnQodmFyKC0taW52ZXJ0KSk7bGVmdDotNDBweDtvcGFjaXR5Oi43O3JpZ2h0Oi0yMDBweDt0b3A6LTEwcHg7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7LS1pbnZlcnQ6MTAwJX1AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspey5JT1ZSN1pBb3pkajJ3RHNMSDJGVCAuaUV4Q0JmSzE3NnFiNUNMVFI4OHJ7LS1pbnZlcnQ6MH19LklPVlI3WkFvemRqMndEc0xIMkZUIC5iQzl6cFpNdHU4OXRZb0g2NzJjMnthbmltYXRpb246SFkzcUo5VjNhZmFyT192ZEZiMzEgMjNzIGN1YmljLWJlemllciguMTUsMCwuODUsMSkgaW5maW5pdGUgYWx0ZXJuYXRlO2FuaW1hdGlvbi1wbGF5LXN0YXRlOnBhdXNlZDtiYWNrZ3JvdW5kLWltYWdlOnZhcigtLWdhcHMpLHZhcigtLWxpZ2h0cyk7YmFja2dyb3VuZC1wb3NpdGlvbjo1MCUgNTAlLDUwJSA1MCU7YmFja2dyb3VuZC1zaXplOjEwMCUsMTAwJTtoZWlnaHQ6MTAwJTtsZWZ0OjA7bWl4LWJsZW5kLW1vZGU6ZGlmZmVyZW5jZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDozMDAlfUBrZXlmcmFtZXMgSFkzcUo5VjNhZmFyT192ZEZiMzF7MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMCl9dG97dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSl9fUBtZWRpYSAoaG92ZXI6aG92ZXIpey5YeW9tT2NqQ19WWlhTQXdySl9Scjpmb2N1cy12aXNpYmxlfi5JT1ZSN1pBb3pkajJ3RHNMSDJGVCwuWHlvbU9jakNfVlpYU0F3ckpfUnI6aG92ZXJ+LklPVlI3WkFvemRqMndEc0xIMkZUe29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX0uWHlvbU9jakNfVlpYU0F3ckpfUnI6Zm9jdXMtdmlzaWJsZX4uSU9WUjdaQW96ZGoyd0RzTEgyRlQgLmJDOXpwWk10dTg5dFlvSDY3MmMyLC5YeW9tT2NqQ19WWlhTQXdySl9Scjpob3Zlcn4uSU9WUjdaQW96ZGoyd0RzTEgyRlQgLmJDOXpwWk10dTg5dFlvSDY3MmMye2FuaW1hdGlvbi1wbGF5LXN0YXRlOnJ1bm5pbmd9fScsIiJdKSxpLmxvY2Fscz17bWVudToiT2t0cUFhbWVaUTBqcGp1RFJUN2siLGhlYWRlckNvbnRhaW5lcjoianNmUGJmOWNmeFM5Z2p6eUZzem4iLGljb25MaXN0OiJ1cXBlNWdXbTNFUmR6MUV5OTRqZyIscDM6IkRXZURWTmVybG05SlRSSG5rM3E2IixwMjoiWkV0VzNERHBOTzhZN21IbFF3ZHkiLHAxOiJrVXlEUEFaVTFqSEFMNFVGWkhGTSIsbG9nb1dyYXBwZXI6ImgyRHFZd2syWUw2cXM2QVplZ3prIixwcm9kdWN0TmFtZToiU0RUUWZtZGpVZ0FmVExTdVdMbXgiLGN0YVRleHQ6Ikd2SDZkX0FxUHcxVmtfSHRqNFZCIix3ZWJraXQ6InAzd2pSVUNfdnRuMWVEc284eEx1IixhY3RpdmF0ZUJ1dHRvbjoiWHlvbU9jakNfVlpYU0F3ckpfUnIiLGFjdGl2YXRlVGV4dDoicVp0QUp3OGZEMUZOQ1pVaVIxT2MiLG1vYmlsZToieXF1OTVvM0tLV2xrMUxSZGZENFAiLGJ1dHRvbkNvbnRhaW5lcjoibDY2WTQwRkhlaV9FUmhjMDVyWkwiLG1lbnVCdXR0b246IlBBMmh4Y0x3NjVNQkdKdDd2UUNoIixsYWJlbDoic1lSb1U5UV85UTRtVGNxTndaVzgiLHNob3J0Y3V0V3JhcHBlcjoiZ0FRWTNnOXJreFppel9KMGRtQUciLHNob3J0Y3V0OiJ5MUpTSk9ZZUk5clVqZlRIQjM4ViIsY29tbWFuZEljb246IlpuaTFybHlUdVpXTXNKR1ZPeFFSIixsaWdodHM6IklPVlI3WkFvemRqMndEc0xIMkZUIixtYXNrOiJKWl9ydUlSdG5wUndPZnk3MU5BVSIsdmlzaWJsZToiX2JEZTYydTBCWWdBMXVTYzlDbkwiLG91dGVyOiJpRXhDQmZLMTc2cWI1Q0xUUjg4ciIsaW5uZXI6ImJDOXpwWk10dTg5dFlvSDY3MmMyIiwiaW5uZXItbGlnaHRzIjoiSFkzcUo5VjNhZmFyT192ZEZiMzEifTtjb25zdCBzPWl9LDQ4OTc4OihlLHQsbik9Pnt2YXIgcj1uKDM0NjQ1KS5kZWZhdWx0O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihudWxsIT1lKXt2YXIgdD1lWyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvcnx8IkBAaXRlcmF0b3IiXSxuPTA7aWYodClyZXR1cm4gdC5jYWxsKGUpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlLm5leHQpcmV0dXJuIGU7aWYoIWlzTmFOKGUubGVuZ3RoKSlyZXR1cm57bmV4dDpmdW5jdGlvbigpe3JldHVybiBlJiZuPj1lLmxlbmd0aCYmKGU9dm9pZCAwKSx7dmFsdWU6ZSYmZVtuKytdLGRvbmU6IWV9fX19dGhyb3cgbmV3IFR5cGVFcnJvcihyKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sNDk4MDI6ZT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV19fSw0OTgzMjooZSx0LG4pPT57dmFyIHI9big3NzQ3MSk7ZnVuY3Rpb24gbygpe3ZhciB0LG4sYT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sP1N5bWJvbDp7fSxpPWEuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIixzPWEudG9TdHJpbmdUYWd8fCJAQHRvU3RyaW5nVGFnIjtmdW5jdGlvbiBjKGUsbyxhLGkpe3ZhciBzPW8mJm8ucHJvdG90eXBlIGluc3RhbmNlb2YgZD9vOmQsYz1PYmplY3QuY3JlYXRlKHMucHJvdG90eXBlKTtyZXR1cm4gcihjLCJfaW52b2tlIixmdW5jdGlvbihlLHIsbyl7dmFyIGEsaSxzLGM9MCxkPW98fFtdLGw9ITEscD17cDowLG46MCx2OnQsYTpmLGY6Zi5iaW5kKHQsNCksZDpmdW5jdGlvbihlLG4pe3JldHVybiBhPWUsaT0wLHM9dCxwLm49bix1fX07ZnVuY3Rpb24gZihlLHIpe2ZvcihpPWUscz1yLG49MDshbCYmYyYmIW8mJm48ZC5sZW5ndGg7bisrKXt2YXIgbyxhPWRbbl0sZj1wLnAsbT1hWzJdO2U+Mz8obz1tPT09cikmJihzPWFbKGk9YVs0XSk/NTooaT0zLDMpXSxhWzRdPWFbNV09dCk6YVswXTw9ZiYmKChvPWU8MiYmZjxhWzFdKT8oaT0wLHAudj1yLHAubj1hWzFdKTpmPG0mJihvPWU8M3x8YVswXT5yfHxyPm0pJiYoYVs0XT1lLGFbNV09cixwLm49bSxpPTApKX1pZihvfHxlPjEpcmV0dXJuIHU7dGhyb3cgbD0hMCxyfXJldHVybiBmdW5jdGlvbihvLGQsbSl7aWYoYz4xKXRocm93IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO2ZvcihsJiYxPT09ZCYmZihkLG0pLGk9ZCxzPW07KG49aTwyP3Q6cyl8fCFsOyl7YXx8KGk/aTwzPyhpPjEmJihwLm49LTEpLGYoaSxzKSk6cC5uPXM6cC52PXMpO3RyeXtpZihjPTIsYSl7aWYoaXx8KG89Im5leHQiKSxuPWFbb10pe2lmKCEobj1uLmNhbGwoYSxzKSkpdGhyb3cgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpO2lmKCFuLmRvbmUpcmV0dXJuIG47cz1uLnZhbHVlLGk8MiYmKGk9MCl9ZWxzZSAxPT09aSYmKG49YS5yZXR1cm4pJiZuLmNhbGwoYSksaTwyJiYocz1UeXBlRXJyb3IoIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJyIrbysiJyBtZXRob2QiKSxpPTEpO2E9dH1lbHNlIGlmKChuPShsPXAubjwwKT9zOmUuY2FsbChyLHApKSE9PXUpYnJlYWt9Y2F0Y2goZSl7YT10LGk9MSxzPWV9ZmluYWxseXtjPTF9fXJldHVybnt2YWx1ZTpuLGRvbmU6bH19fShlLGEsaSksITApLGN9dmFyIHU9e307ZnVuY3Rpb24gZCgpe31mdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIHAoKXt9bj1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7dmFyIGY9W11baV0/bihuKFtdW2ldKCkpKToocihuPXt9LGksZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG4pLG09cC5wcm90b3R5cGU9ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShmKTtmdW5jdGlvbiBoKGUpe3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUscCk6KGUuX19wcm90b19fPXAscihlLHMsIkdlbmVyYXRvckZ1bmN0aW9uIikpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobSksZX1yZXR1cm4gbC5wcm90b3R5cGU9cCxyKG0sImNvbnN0cnVjdG9yIixwKSxyKHAsImNvbnN0cnVjdG9yIixsKSxsLmRpc3BsYXlOYW1lPSJHZW5lcmF0b3JGdW5jdGlvbiIscihwLHMsIkdlbmVyYXRvckZ1bmN0aW9uIikscihtKSxyKG0scywiR2VuZXJhdG9yIikscihtLGksZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHIobSwidG9TdHJpbmciLGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgR2VuZXJhdG9yXSJ9KSwoZS5leHBvcnRzPW89ZnVuY3Rpb24oKXtyZXR1cm57dzpjLG06aH19LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cykoKX1lLmV4cG9ydHM9byxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDUwMDQ0OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbyhlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gcihlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9yKGUsdCk6dm9pZCAwfX1mdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGV9KGUpfHxmdW5jdGlvbihlLHQpe3ZhciBuPW51bGw9PWU/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9bil7dmFyIHIsbyxhLGkscz1bXSxjPSEwLHU9ITE7dHJ5e2lmKGE9KG49bi5jYWxsKGUpKS5uZXh0LDA9PT10KXtpZihPYmplY3QobikhPT1uKXJldHVybjtjPSExfWVsc2UgZm9yKDshKGM9KHI9YS5jYWxsKG4pKS5kb25lKSYmKHMucHVzaChyLnZhbHVlKSxzLmxlbmd0aCE9PXQpO2M9ITApO31jYXRjaChlKXt1PSEwLG89ZX1maW5hbGx5e3RyeXtpZighYyYmbnVsbCE9bi5yZXR1cm4mJihpPW4ucmV0dXJuKCksT2JqZWN0KGkpIT09aSkpcmV0dXJufWZpbmFsbHl7aWYodSl0aHJvdyBvfX1yZXR1cm4gc319KGUsdCl8fG8oZSx0KXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGkoZSx0LG4scixvLGEsaSl7dHJ5e3ZhciBzPWVbYV0oaSksYz1zLnZhbHVlfWNhdGNoKGUpe3JldHVybiB2b2lkIG4oZSl9cy5kb25lP3QoYyk6UHJvbWlzZS5yZXNvbHZlKGMpLnRoZW4ocixvKX1mdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHIsbyl7dmFyIGE9ZS5hcHBseSh0LG4pO2Z1bmN0aW9uIHMoZSl7aShhLHIsbyxzLGMsIm5leHQiLGUpfWZ1bmN0aW9uIGMoZSl7aShhLHIsbyxzLGMsInRocm93IixlKX1zKHZvaWQgMCl9KX19dmFyIGM9bigxMjk5NyksdT1uLm4oYyk7ZnVuY3Rpb24gZChlKXtyZXR1cm4gZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gcihlKX0oZSl8fGZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1lW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWVbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShlKX0oZSl8fG8oZSl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gbChlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIHAoZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/cChlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGEsaT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gaT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLGE9ZX0sZjpmdW5jdGlvbigpe3RyeXtpfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgYX19fX1mdW5jdGlvbiBwKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgZj1bXSxtPW5ldyBTZXQ7ZnVuY3Rpb24gaChlKXttLmFkZChlKSxlLmFwcGVuZC5hcHBseShlLGQoZi5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xvbmVOb2RlKCEwKX0pKSl9ZnVuY3Rpb24gdihlKXt2YXIgdD0hMTtpZigxPT09bS5zaXplKXt2YXIgbjtmLnB1c2goZSksbnVsbD09PShuPWQobSlbMF0pfHx2b2lkIDA9PT1ufHxuLmFwcGVuZChlKX1lbHNle3ZhciByPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj1bXSxyPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBvPTAsYT1uO288YS5sZW5ndGg7bysrKWFbb10uaW5uZXJIVE1MPWUuaW5uZXJIVE1MO3R8fHIuZGlzY29ubmVjdCgpfSk7cmV0dXJuIHIub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITB9KSx7Y2xvbmVOb2RlOmZ1bmN0aW9uKCl7dmFyIHQ9ZS5jbG9uZU5vZGUoITApO3JldHVybiBuLnB1c2godCksdH19fShlLHQpO2YucHVzaChyKTt2YXIgbyxhPWwobSk7dHJ5e2ZvcihhLnMoKTshKG89YS5uKCkpLmRvbmU7KXtvLnZhbHVlLmFwcGVuZChyLmNsb25lTm9kZSgpKX19Y2F0Y2goZSl7YS5lKGUpfWZpbmFsbHl7YS5mKCl9fX1mdW5jdGlvbiBnKGUpe3JldHVybiBnPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxnKGUpfWZ1bmN0aW9uIGIoZSl7dmFyIHQ9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9ZyhlKXx8IWUpcmV0dXJuIGU7dmFyIG49ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciByPW4uY2FsbChlLHR8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPWcocikpcmV0dXJuIHI7dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT10P1N0cmluZzpOdW1iZXIpKGUpfShlLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09Zyh0KT90OnQrIiJ9ZnVuY3Rpb24geShlLHQsbil7cmV0dXJuKHQ9Yih0KSlpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW4sZX1sZXQgdz0oZT0yMSk9PmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoZSkpLnJlZHVjZSgoZSx0KT0+ZSs9KHQmPTYzKTwzNj90LnRvU3RyaW5nKDM2KTp0PDYyPyh0LTI2KS50b1N0cmluZygzNikudG9VcHBlckNhc2UoKTp0PjYyPyItIjoiXyIsIiIpO3ZhciBFLE89ZnVuY3Rpb24oZSl7InByZXZpZXctb3JpZ2luIj09PWUuZGF0YS50eXBlJiZlLmRhdGEucHJldmlld09yaWdpbj09PWUub3JpZ2luJiZrKGUuZGF0YS5wcmV2aWV3T3JpZ2luKX07ZnVuY3Rpb24gayhlKXtFPWUsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLE8pfWZ1bmN0aW9uIHgoKXtpZighRSYmKCEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF0pKXRocm93IG5ldyBFcnJvcigicHJldmlld09yaWdpbiBub3Qgc2V0IHlldCIpO3JldHVybiBFfWZ1bmN0aW9uIEEoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn12YXIgQz1uZXcgTWFwO2Z1bmN0aW9uIFQoZSx0KXtyZXR1cm4gQy5zZXQoZSx0KSxmdW5jdGlvbigpe0MuZGVsZXRlKGUpfX1mdW5jdGlvbiBfKGUsdCl7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKCFuKXtpZihBcnJheS5pc0FycmF5KGUpfHwobj1mdW5jdGlvbihlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gUyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9TKGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtuJiYoZT1uKTt2YXIgcj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiByPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtyKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgYSxpPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtuPW4uY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPW4ubmV4dCgpO3JldHVybiBpPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsYT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2l8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBhfX19fWZ1bmN0aW9uIFMoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfWZ1bmN0aW9uIEwoZSl7cmV0dXJuInRydWUiPT09ZXx8ImZhbHNlIiE9PWUmJmV9dmFyIGo9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9InZlcmNlbC1leHRlbnNpb24iXScpO2lmKCFlKXJldHVybiBmdW5jdGlvbigpe2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoInNjcmVlbnNob3QtZXh0ZW5zaW9uLXByZXNlbnQiKSlyZXR1cm57bmFtZToidmVyY2VsLWV4dGVuc2lvbiIsdmVyc2lvbjoidW5rbm93biIscHJveHk6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygic2NyZWVuc2hvdC1jYW4tcHJveHkiKSxwdXNoZXI6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiY2FuLXByb3h5LXB1c2hlciIpLHNldHRpbmdzOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImhhcy11c2VyLXNldHRpbmdzIil9fSgpO3ZhciB0LG49e25hbWU6InZlcmNlbC1leHRlbnNpb24ifSxyPV8oZS5hdHRyaWJ1dGVzKTt0cnl7Zm9yKHIucygpOyEodD1yLm4oKSkuZG9uZTspe3ZhciBvPXQudmFsdWU7bltvLm5hbWVdPUwoby52YWx1ZSl9fWNhdGNoKGUpe3IuZShlKX1maW5hbGx5e3IuZigpfXJldHVybiBufSgpLEQ9MDtmdW5jdGlvbiBJKCl7cmV0dXJuIEJvb2xlYW4oail9ZnVuY3Rpb24gUigpe3JldHVybiBCb29sZWFuKG51bGw9PWo/dm9pZCAwOmoudGFiaGVhZGVycyl9ZnVuY3Rpb24gUChlLHQpe3JldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBOKCl7cmV0dXJuIE49cyh1KCkubWFyayhmdW5jdGlvbiBlKHQsbil7dmFyIHIsbz1hcmd1bWVudHM7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKHI9by5sZW5ndGg+MiYmdm9pZCAwIT09b1syXT9vWzJdOnt9LFIoKSl7ZS5uZXh0PTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDE6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciBvPWZ1bmN0aW9uKG4pe3ZhciBpLHM7aWYoImdldC10YWItaGVhZGVycy1yZXNwb25zZSI9PT1uLmRhdGEudHlwZSYmbi5vcmlnaW49PT13aW5kb3cub3JpZ2luKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbyk7dmFyIGM9bnVsbD09PShpPU9iamVjdC5lbnRyaWVzKG51bGwhPT0ocz1uLmRhdGEuaGVhZGVycykmJnZvaWQgMCE9PXM/czp7fSkuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gTShhKGUsMSlbMF0sdCxyKX0pKXx8dm9pZCAwPT09aT92b2lkIDA6aVsxXTtlKGMpfX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLHdpbmRvdy5wb3N0TWVzc2FnZSh7YWN0aW9uOiJnZXQtdGFiLWhlYWRlcnMiLGtleXM6bn0pfSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSksTi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTShlLHQsbil7dmFyIHI9bmV3IFVSTChlKSxvPW5ldyBVUkwodCk7cmV0dXJuIG4ub3JpZ2luT25seT9yLm9yaWdpbj09PW8ub3JpZ2luOm4uaW5jbHVkZVF1ZXJ5P3IuaHJlZj09PW8uaHJlZjpyLm9yaWdpbj09PW8ub3JpZ2luJiZyLnBhdGhuYW1lPT09by5wYXRobmFtZX1mdW5jdGlvbiBWKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gSChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9WKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXt5KGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOlYoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfXZhciBaPSExLEY9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiIEZpcmVmb3gvIiksQj1mdW5jdGlvbihlKXtpZigicHJldmlldy1vcmlnaW4iPT09ZS5kYXRhLnR5cGUmJmUub3JpZ2luPT09ZS5kYXRhLnByZXZpZXdPcmlnaW4pcmV0dXJuIFo9ITEsdm9pZCB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJjYW4taW5saW5lLXNjcmlwdHMiLGhhc0lubGluZTohMX0sZS5kYXRhLnByZXZpZXdPcmlnaW4pfTtmdW5jdGlvbiBVKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpmZXRjaDtpZighRygpfHxGJiZ0LnNraXBGaXJlZm94KXJldHVybiBuKGUsdCk7dmFyIHI9dygpO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihvKXt2YXIgYT10LnRpbWVvdXR8fCF0Lm1ldGhvZHx8IkdFVCI9PT10Lm1ldGhvZC50b1VwcGVyQ2FzZSgpP3NldFRpbWVvdXQoZnVuY3Rpb24oKXtLPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSxvKG4oZSx0KSl9LG51bGwhPWomJmoucHJveHlhY2s/MWUzOjFlNCk6dm9pZCAwLGk9ZnVuY3Rpb24oZSl7aWYoZS5vcmlnaW49PT13aW5kb3cub3JpZ2luJiZlLmRhdGEucmVxdWVzdElkPT09cil7aWYoInByb3h5LWZldGNoLXJlc3BvbnNlIj09PWUuZGF0YS50eXBlKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSk7dmFyIHQ9bmV3IFJlc3BvbnNlKGUuZGF0YS5ib2R5JiYwIT09ZS5kYXRhLmJvZHkuYnl0ZUxlbmd0aD9lLmRhdGEuYm9keTpudWxsLHtzdGF0dXM6ZS5kYXRhLnN0YXR1cyxoZWFkZXJzOmUuZGF0YS5oZWFkZXJzLHN0YXR1c1RleHQ6ZS5kYXRhLnN0YXR1c1RleHR9KTtvKHQpLGEmJmNsZWFyVGltZW91dChhKX0icHJveHktZmV0Y2gtYWNrIj09PWUuZGF0YS50eXBlJiZhJiZjbGVhclRpbWVvdXQoYSl9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSksd2luZG93LnBvc3RNZXNzYWdlKHthY3Rpb246InByb3h5LWZldGNoIix1cmw6ZSBpbnN0YW5jZW9mIFVSTD9lLmhyZWY6ZSxpbml0OkgoSCh7fSx0KSx7fSx7aGVhZGVyczp0LmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzP0FycmF5LmZyb20odC5oZWFkZXJzLmVudHJpZXMoKSk6dC5oZWFkZXJzLHJlZGlyZWN0OiJtYW51YWwifSkscmVxdWVzdElkOnJ9LHdpbmRvdy5vcmlnaW4pfSl9dmFyIEs9ITE7ZnVuY3Rpb24gRygpe3ZhciBlO3JldHVybiFLJiYobnVsbCE9PShlPW51bGw9PWo/dm9pZCAwOmoucHJveHkpJiZ2b2lkIDAhPT1lJiZlKX1mdW5jdGlvbiBxKGUpe3ZhciB0LG49bmV3IE1hcDt0cnl7dD13aW5kb3dbZV19Y2F0Y2goZSl7fXJldHVybntnZXQ6ZnVuY3Rpb24oZSl7aWYoIXQpcmV0dXJuIG4uZ2V0KGUpO3RyeXt2YXIgcj10LmdldEl0ZW0oZSk7aWYobnVsbD09PXIpcmV0dXJuO3JldHVybiBKU09OLnBhcnNlKHIpfWNhdGNoKHQpe3JldHVybiBuLmdldChlKX19LHNldDpmdW5jdGlvbihlLHIpe2lmKG4uc2V0KGUsciksdCl0cnl7dC5zZXRJdGVtKGUsSlNPTi5zdHJpbmdpZnkocikpfWNhdGNoKGUpe319LGhhczpmdW5jdGlvbihlKXtpZighdClyZXR1cm4gbi5oYXMoZSk7dHJ5e3JldHVybiBudWxsIT09dC5nZXRJdGVtKGUpfWNhdGNoKHQpe3JldHVybiBuLmhhcyhlKX19LGRlbGV0ZTpmdW5jdGlvbihlKXt2YXIgcj1uLmRlbGV0ZShlKTtpZighdClyZXR1cm4gcjt0cnl7cmV0dXJuIHQucmVtb3ZlSXRlbShlKX1jYXRjaChlKXtyZXR1cm4gcn19LGNsZWFyOmZ1bmN0aW9uKCl7aWYobi5jbGVhcigpLHQpdHJ5e3QuY2xlYXIoKX1jYXRjaChlKXt9fX19dmFyIHo9cSgibG9jYWxTdG9yYWdlIik7cSgic2Vzc2lvblN0b3JhZ2UiKTtmdW5jdGlvbiBRKGUpe3JldHVybiIiLmNvbmNhdChlLCItIikuY29uY2F0KHgoKSl9dmFyIEosWD0idmVyY2VsLXRvb2xiYXItdG9rZW4iLFk9InZlcmNlbC10b29sYmFyLXNlc3Npb24iLFc9InZlcmNlbC10b29sYmFyLWV4cGVyaW1lbnQtdXVpZCIsJD0idmVyY2VsLWZlZWRiYWNrLXJlcC1jb29raWUiO2Z1bmN0aW9uIGVlKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gdGUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/ZWUoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3koZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6ZWUoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfWZ1bmN0aW9uIG5lKCl7dHJ5e3ZhciBlPXouZ2V0KFEoWSkpO3JldHVybiBudWxsPT1lP3ZvaWQgMDplLnNlc3Npb259Y2F0Y2goZSl7cmV0dXJufX1mdW5jdGlvbiByZShlLHQpe0o9ZTt0cnl7ei5zZXQoUShZKSx7dG9rZW46ZSxzZXNzaW9uOm51bGwhPXQ/dDpuZSgpfSksei5zZXQoWCxlKX1jYXRjaChlKXt9fWZ1bmN0aW9uIG9lKCl7dmFyIGU7Snx8KEo9bnVsbD09PShlPXouZ2V0KFEoWSkpKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS50b2tlbik7cmV0dXJuIEp9ZnVuY3Rpb24gYWUoZSl7cmV0dXJuIGllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpZSgpe3JldHVybiBpZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvPWFyZ3VtZW50cztyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49by5sZW5ndGg+MSYmdm9pZCAwIT09b1sxXT9vWzFdOnt9LHI9by5sZW5ndGg+MiYmdm9pZCAwIT09b1syXT9vWzJdOnt9LGUuYWJydXB0KCJyZXR1cm4iLHNlKHQsbix0ZSh0ZSh7fSxyKSx7fSx7c2tpcExvZ291dENoZWNrOiEwfSkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpLGllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBzZShlKXtyZXR1cm4gY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGNlKCl7cmV0dXJuIGNlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbixyLG8sYSxpLHMsYz1hcmd1bWVudHM7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKG49Yy5sZW5ndGg+MSYmdm9pZCAwIT09Y1sxXT9jWzFdOnt9LHI9Yy5sZW5ndGg+MiYmdm9pZCAwIT09Y1syXT9jWzJdOnt9LG89b2UoKSl7ZS5uZXh0PTE7YnJlYWt9dGhyb3cgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToibG9nb3V0IixyZWNvdmVyYWJsZTohMH0sIioiKSxuZXcgRXJyb3IoIk1pc3NpbmcgdG9rZW4iKTtjYXNlIDE6cmV0dXJuIHQgaW5zdGFuY2VvZiBSZXF1ZXN0P3QuaGVhZGVycy5zZXQoIkF1dGhvcml6YXRpb24iLG8pOigoYT1uZXcgSGVhZGVycyhuLmhlYWRlcnMpKS5zZXQoIkF1dGhvcml6YXRpb24iLG8pLG4uaGVhZGVycz1hKSxlLm5leHQ9Miwoci5ub1Byb3h5P2ZldGNoOlUpKHQsbik7Y2FzZSAyOmlmKGk9ZS5zZW50LHIuc2tpcExvZ291dENoZWNrfHxpLm9rfHwhWzQwMSw0MDNdLmluY2x1ZGVzKGkuc3RhdHVzKSl7ZS5uZXh0PTM7YnJlYWt9dGhyb3cgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToibG9nb3V0IixyZWNvdmVyYWJsZTo0MDM9PT1pLnN0YXR1c30sIioiKSxuZXcgRXJyb3IoIlRva2VuIGV4cGlyZWQiKTtjYXNlIDM6cmV0dXJuKHM9aS5oZWFkZXJzLmdldCgieC12ZXJjZWwtZmVlZGJhY2stdG9rZW4tcmVmcmVzaCIpKSYmcmUocyksZS5hYnJ1cHQoInJldHVybiIsaSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKSxjZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dmFyIHVlO2Z1bmN0aW9uIGRlKGUpe2UuZGF0YSxwZShlLmlkKX1mdW5jdGlvbiBsZSgpe3JldHVybiB6LmdldChRKFcpKX1mdW5jdGlvbiBwZShlKXt6LnNldChRKFcpLGUpfWZ1bmN0aW9uIGZlKCl7aWYodWUpcmV0dXJuIHVlO3ZhciBlPVEoInZpZCIpO3JldHVybih1ZT16LmdldChlKSl8fCh1ZT0iIi5jb25jYXQoRGF0ZS5ub3coKSkuY29uY2F0KE1hdGgucmFuZG9tKCkpLHouc2V0KGUsdWUpKSx1ZX12YXIgbWUsaGU9ITE7ZnVuY3Rpb24gdmUoKXtyZXR1cm4gaGV9ZnVuY3Rpb24gZ2UoZSl7cmUoZS50b2tlbixlLnNlc3Npb24pfWZ1bmN0aW9uIGJlKGUsdCl7cmV0dXJuIHllLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB5ZSgpe3JldHVybiB5ZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG1lfHwobWU9d2UodCxuKSksZS5hYnJ1cHQoInJldHVybiIsbWUpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSkseWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHdlKGUsdCl7cmV0dXJuIEVlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFZSgpe3JldHVybiBFZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCxuKXt2YXIgcixvLGEsaSxzLGMsZCxsLHAsZixtLGgsdjtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGE9ISgiaG9zdG5hbWUiaW4gdCksaT16LmdldChRKFkpKSxzPWkmJiFhP2kuc2Vzc2lvbi5yb29tSWQ6dm9pZCAwLGM9bmV3IFNldCxpJiZjLmFkZChpLnRva2VuKSwoZD16LmdldChYKSkmJmMuYWRkKGQpLGw9bmV3IFVSTFNlYXJjaFBhcmFtcygiaG9zdG5hbWUiaW4gdD97aG9zdG5hbWU6dC5ob3N0bmFtZSxkZXBsb3ltZW50SWQ6bnVsbCE9PShyPXQuZGVwbG95bWVudElkKSYmdm9pZCAwIT09cj9yOiIifTp7cHJvamVjdElkOnQucHJvamVjdElkLG93bmVySWQ6dC5vd25lcklkLGJyYW5jaDpudWxsIT09KG89dC5icmFuY2gpJiZ2b2lkIDAhPT1vP286IiJ9KSxwPXsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LChmPWxlKCkpJiYocFsieC12ZXJjZWwtZXhwZXJpbWVudC11dWlkIl09ZiksSSgpJiYocFsieC1oYXMtZXh0ZW5zaW9uIl09InRydWUiKSxlLm5leHQ9MSxVKCIvbG9naW4vdmFsaWRhdGU/Ii5jb25jYXQobC50b1N0cmluZygpKSx7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtza2lwUm9vbUluaXQ6cyxwYWdlOm4sZXhpc3RpbmdUb2tlbnM6QXJyYXkuZnJvbShjKSxyZXBsaWNhY2hlQ29va2llOnouZ2V0KFEoJCkpLHZlcmNlbFRvb2xiYXJDb2RlOiJ2ZXJjZWxUb29sYmFyQ29kZSJpbiB0P3QudmVyY2VsVG9vbGJhckNvZGU6dm9pZCAwLHZlcmNlbEF1dGhKV0U6InZlcmNlbEF1dGhKV0UiaW4gdD90LnZlcmNlbEF1dGhKV0U6dm9pZCAwLHRyYWNraW5nOntzZXNzaW9uSWQ6ZmUoKSx1YTpuYXZpZ2F0b3IudXNlckFnZW50fX0pLGhlYWRlcnM6cCx0aW1lb3V0OiEwLHNraXBGaXJlZm94OiEwfSk7Y2FzZSAxOmlmKCEobT1lLnNlbnQpLm9rKXtlLm5leHQ9MzticmVha31yZXR1cm4gZS5uZXh0PTIsbS5qc29uKCk7Y2FzZSAyOmlmKCJleHBlcmltZW50cyJpbihoPWUuc2VudCkmJmguZXhwZXJpbWVudHMmJmRlKGguZXhwZXJpbWVudHMpLCJpZGVudGl0eSJpbiBoJiZoLmlkZW50aXR5JiZoLmlkZW50aXR5LnVzZXJuYW1lLCJub25WZXJjZWxEb21haW4iaW4gaCYmKGhlPW51bGwhPT0odj1oLm5vblZlcmNlbERvbWFpbikmJnZvaWQgMCE9PXYmJnYpLCFoLnRva2VuKXtlLm5leHQ9MzticmVha31yZXR1cm4gZ2UoaCksZS5hYnJ1cHQoInJldHVybiIsaCk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKSxFZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gT2UoZSl7VChlLGZ1bmN0aW9uKCl7dmFyIHQ9cyh1KCkubWFyayhmdW5jdGlvbiB0KG4pe3ZhciByLG8sYSxpLHMsYyxsO3JldHVybiB1KCkud3JhcChmdW5jdGlvbih0KXtmb3IoOzspc3dpdGNoKHQucHJldj10Lm5leHQpe2Nhc2UgMDpyZXR1cm4gdC5uZXh0PTEsc2UoIi9hcGkvcmVwbGljYWNoZS8iLmNvbmNhdChlLCI/ZG9jSUQ9IikuY29uY2F0KG4ucm9vbUlkKSx7Ym9keTpuLmJvZHksbWV0aG9kOm4ubWV0aG9kLGhlYWRlcnM6bi5oZWFkZXJzLHRpbWVvdXQ6ITB9LCJwdXNoIj09PWU/e25vUHJveHk6ITB9OnZvaWQgMCk7Y2FzZSAxOmlmKHI9dC5zZW50LChvPXIuaGVhZGVycy5nZXQoIngtZmVlZGJhY2stcmVwLWNvb2tpZSIpKSYmei5zZXQoUSgkKSxvKSwhci5ib2R5fHwyMDAhPT1yLnN0YXR1cyl7dC5uZXh0PTM7YnJlYWt9cmV0dXJuIHQubmV4dD0yLHIuanNvbigpO2Nhc2UgMjphPXQuc2VudCx0Lm5leHQ9NDticmVhaztjYXNlIDM6YT12b2lkIDA7Y2FzZSA0OmlmKGk9YSwhci5ib2R5fHwyMDA9PT1yLnN0YXR1cyl7dC5uZXh0PTY7YnJlYWt9cmV0dXJuIHQubmV4dD01LHIudGV4dCgpO2Nhc2UgNTpzPXQuc2VudCx0Lm5leHQ9NzticmVhaztjYXNlIDY6cz12b2lkIDA7Y2FzZSA3OnJldHVybiBjPXMsbD17c3RhdHVzOnIuc3RhdHVzLHN0YXR1c1RleHQ6ci5zdGF0dXNUZXh0LGhlYWRlcnM6ZChyLmhlYWRlcnMpfSx0LmFicnVwdCgicmV0dXJuIix7Ym9keTppLGVycm9yOmMsaW5pdDpsfSk7Y2FzZSA4OmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSx0KX0pKTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSl9dmFyIGtlPWZ1bmN0aW9uKCl7cmV0dXJuW1QoImdldC10ZWFtLW1lbWJlcnMiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTEsYWUoIi9hcGkvZmVlZGJhY2svdGVhbS1tZW1iZXJzIi5jb25jYXQodC5zZWFyY2g/Ij9zZWFyY2g9Ii5jb25jYXQoZW5jb2RlVVJJQ29tcG9uZW50KHQuc2VhcmNoKSk6IiIpKTtjYXNlIDE6aWYoKG49ZS5zZW50KS5vayl7ZS5uZXh0PTI7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLFtdKTtjYXNlIDI6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG4uanNvbigpKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJzZXNzaW9uIixmdW5jdGlvbigpe3JldHVybiBzZSgiL3Rvb2xiYXIvc2Vzc2lvbiIse2hlYWRlcnM6eyJ4LWhhcy1leHRlbnNpb24iOkkoKT8idHJ1ZSI6ImZhbHNlIn19KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUub2spcmV0dXJuIGUuanNvbigpO3Rocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZldGNoIHNlc3Npb24iKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3RyeXt2YXIgdD1RKFkpLG49ei5nZXQodCk7biYmei5zZXQodCx7dG9rZW46bi50b2tlbixzZXNzaW9uOm51bGwhPWU/ZTpuLnNlc3Npb259KX1jYXRjaChlKXtjb25zb2xlLmVycm9yKCJFcnJvciBzYXZpbmcgc2Vzc2lvbiB0byBzdG9yYWdlIixlKX19KGUpLGV9KX0pLFQoImdldC1zbmFwc2hvdCIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj10LnNuYXBzaG90S2V5LGUubmV4dD0xLGZldGNoKCIvYXBpL2ZlZWRiYWNrL2Jsb2IvZ2V0Ii5jb25jYXQobikpO2Nhc2UgMTpyZXR1cm4gcj1lLnNlbnQsZS5uZXh0PTIsci50ZXh0KCk7Y2FzZSAyOnJldHVybiBvPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIix7dGV4dDpvfSk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZ2V0LWVtb2ppcyIsZnVuY3Rpb24oKXtyZXR1cm4gc2UoIi9hcGkvc2xhY2svZW1vamlzIikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KX0pLFQoImdldC11c2VyLWRhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIHNlKCIvYXBpL2ZlZWRiYWNrL3VzZXItZGF0YSIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSl9KSxUKCJ1cGRhdGUtdXNlci1kYXRhIixmdW5jdGlvbihlKXtyZXR1cm4gc2UoIi9hcGkvZmVlZGJhY2svdXNlci1kYXRhIix7bWV0aG9kOiJQVVQiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeShlKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSl9KSxUKCJnZXQtaW50ZWdyYXRpb25zIixmdW5jdGlvbigpe3JldHVybiBzZSgiL2FwaS9mZWVkYmFjay9pbnRlZ3JhdGlvbnMiKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pfSksVCgiZ2V0LXNoYXJpbmctaW5mbyIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ob3N0bmFtZTtyZXR1cm4gc2UoIi9hcGkvZmVlZGJhY2svc2hhcmluZz8iLmNvbmNhdChuZXcgVVJMU2VhcmNoUGFyYW1zKHtob3N0bmFtZTp0fSkudG9TdHJpbmcoKSkpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSl9KSxUKCJnZXQtbWljcm9mcm9udGVuZC1jb25maWciLGZ1bmN0aW9uKCl7cmV0dXJuIHNlKCIvYXBpL21pY3JvZnJvbnRlbmQvY29uZmlnIikudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KX0pLFQoImdldC1taWNyb2Zyb250ZW5kLW1ldGFkYXRhIixmdW5jdGlvbihlKXt2YXIgdD1lLmhvc3RzLG49ZS5jbGllbnRIb3N0LHI9ZS5wcm9qZWN0SWRzO3JldHVybiBzZSgiL2FwaS9taWNyb2Zyb250ZW5kL21ldGFkYXRhPyIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoe2hvc3RzOnQsY2xpZW50SG9zdDpuLHByb2plY3RJZHM6cn0pLnRvU3RyaW5nKCkpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pfSksVCgiZ2V0LW1pY3JvZnJvbnRlbmQtYnJhbmNoZXMiLGZ1bmN0aW9uKGUpe3ZhciB0PWUucHJvamVjdElkO3JldHVybiBzZSgiL2FwaS9taWNyb2Zyb250ZW5kL2JyYW5jaGVzPyIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoe3Byb2plY3RJZDp0fSkudG9TdHJpbmcoKSkpLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIix0Lmpzb24oKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSl9KSxUKCJnZXQtZGVwbG95bWVudHMiLGZ1bmN0aW9uKGUpe3ZhciB0PWUucHJvamVjdElkLG49ZS50YXJnZXQscj1lLmN1c3RvbUVudmlyb25tZW50SWQsbz1lLmxpbWl0LGE9bmV3IFVSTFNlYXJjaFBhcmFtcyh7cHJvamVjdElkOnR9KTtyZXR1cm4gbiYmYS5zZXQoInRhcmdldCIsbiksciYmYS5zZXQoImN1c3RvbUVudmlyb25tZW50SWQiLHIpLG8mJmEuc2V0KCJsaW1pdCIsby50b1N0cmluZygpKSxzZSgiL2FwaS9kZXBsb3ltZW50cz8iLmNvbmNhdChhLnRvU3RyaW5nKCkpKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdC5qc29uKCkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpfSksVCgidXBkYXRlLXNoYXJpbmctaW5mbyIsZnVuY3Rpb24oZSl7cmV0dXJuIHNlKCIvYXBpL2ZlZWRiYWNrL3NoYXJpbmciLHttZXRob2Q6IlBVVCIsYm9keTpKU09OLnN0cmluZ2lmeShlKSxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTplLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7dGhyb3cgbmV3IEVycm9yKChudWxsPT1lfHxudWxsPT09KHQ9ZS5lcnJvcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQubWVzc2FnZSl8fCJDb3VsZCBub3QgdXBkYXRlIHNoYXJpbmcgaW5mbyIpfSl9KX0pLFQoImNyZWF0ZS1pc3N1ZSIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scjtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0xLHNlKCIvYXBpL2ZlZWRiYWNrL2NyZWF0ZS1pc3N1ZSIse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh0KSxoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9fSk7Y2FzZSAxOmlmKChuPWUuc2VudCkub2spe2UubmV4dD0zO2JyZWFrfXJldHVybiBlLm5leHQ9MixuLnRleHQoKTtjYXNlIDI6cmV0dXJuIHI9ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLHtlcnJvcjpyfSk7Y2FzZSAzOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixuLmpzb24oKSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZ2V0LXByb2plY3QtbWFuYWdlbWVudC1pbmZvIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbixyLG8sYSxpLHM7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBuPXQudGVhbUlkLHI9dm9pZCAwPT09bj8iIjpuLG89dC5yZXBvc2l0b3J5LGE9dm9pZCAwPT09bz8iIjpvLGk9dC5wcm92aWRlcixlLm5leHQ9MSxzZSgiL2FwaS9mZWVkYmFjay9wcm9qZWN0LW1hbmFnZW1lbnQtaW5mbz8iLmNvbmNhdChuZXcgVVJMU2VhcmNoUGFyYW1zKHt0ZWFtSWQ6cixyZXBvc2l0b3J5OmEscHJvdmlkZXI6aX0pLnRvU3RyaW5nKCksIlxuICAgICAgICAiKSx7bWV0aG9kOiJHRVQifSk7Y2FzZSAxOnJldHVybiBzPWUuc2VudCxlLmFicnVwdCgicmV0dXJuIixzLmpzb24oKSk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZ2V0LXByb2plY3QtYnJhbmNoZXMiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsYWUoIi90b29sYmFyL2JyYW5jaGVzPyIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXModCkudG9TdHJpbmcoKSkpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoInRyYWNrLXJlY2VudCIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MSxhZSgiL2FwaS9yZWNlbnRzIix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHQpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJnZXQtb2ciLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj10LnBhdGgsZS5hYnJ1cHQoInJldHVybiIsc2UoIi90b29sYmFyL29nPyIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoe3BhdGg6bn0pLnRvU3RyaW5nKCkpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJyZXBvcnQtb3ZlcnJpZGVzIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9yZXBvcnQtb3ZlcnJpZGVzIix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtvdmVycmlkZXM6dC5vdmVycmlkZXMscGF0aG5hbWU6dC5wYXRobmFtZX0pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgic2V0LXJlY29tbWVuZGVkLWZsYWctb3ZlcnJpZGVzIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9zZXQtcmVjb21tZW5kZWQtZmxhZy1vdmVycmlkZXMiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe292ZXJyaWRlczp0Lm92ZXJyaWRlc30pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZ2VuZXJhdGUtZmxhZ3Mtc2VjcmV0IixzKHUoKS5tYXJrKGZ1bmN0aW9uIGUoKXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9nZW5lcmF0ZS1mbGFncy1zZWNyZXQiLHttZXRob2Q6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTplLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oZSl7dmFyIHQ7dGhyb3cgbmV3IEVycm9yKChudWxsPT1lfHxudWxsPT09KHQ9ZS5lcnJvcil8fHZvaWQgMD09PXQ/dm9pZCAwOnQubWVzc2FnZSl8fCJDb3VsZCBub3QgY3JlYXRlIGVudmlyb25tZW50IHZhcmlhYmxlIil9KX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpKSxUKCJnZXQtcmVjZW50LWZsYWctb3ZlcnJpZGVzIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbjtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49bmV3IFVSTFNlYXJjaFBhcmFtcyx0LnBhdGhuYW1lJiZuLnNldCgicGF0aG5hbWUiLHQucGF0aG5hbWUpLGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9nZXQtcmVjZW50LWZsYWctb3ZlcnJpZGVzPyIuY29uY2F0KG4udG9TdHJpbmcoKSkpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoImdldC1uYXRpdmUtZmxhZ3MiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj1uZXcgVVJMU2VhcmNoUGFyYW1zLHQucHJvamVjdElkcyYmdC5wcm9qZWN0SWRzLmxlbmd0aD4wJiZuLnNldCgicHJvamVjdElkcyIsdC5wcm9qZWN0SWRzLmpvaW4oIiwiKSksZS5hYnJ1cHQoInJldHVybiIsc2UoIi90b29sYmFyL2dldC1uYXRpdmUtZmxhZ3M/Ii5jb25jYXQobi50b1N0cmluZygpKSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZW5jcnlwdC1mbGFnLW92ZXJyaWRlcyIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixzZSgiL3Rvb2xiYXIvZmxhZy1vdmVycmlkZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJjb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7b3ZlcnJpZGVzOnQub3ZlcnJpZGVzLG92ZXJyaWRlRW5jcnlwdGlvbk1vZGU6dC5vdmVycmlkZUVuY3J5cHRpb25Nb2RlfSl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJkZWNyeXB0LWZsYWctb3ZlcnJpZGVzIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9mbGFnLW92ZXJyaWRlcz8iLmNvbmNhdChuZXcgVVJMU2VhcmNoUGFyYW1zKHtlbmNyeXB0ZWRUZXh0OnQuZW5jcnlwdGVkVGV4dH0pLnRvU3RyaW5nKCkpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJkZWNyeXB0LWZsYWctZGVmaW5pdGlvbnMiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsc2UoIi90b29sYmFyL2RlY3J5cHQtZmxhZy1kZWZpbml0aW9ucyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7ImNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHQpfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZGVjcnlwdC1mbGFnLXZhbHVlcyIsZnVuY3Rpb24oZSl7cmV0dXJuIHNlKCIvdG9vbGJhci9kZWNyeXB0LWZsYWctdmFsdWVzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiY29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoZSl9KS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZighdC5vayl7ZS5uZXh0PTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHQuanNvbigpKTtjYXNlIDE6dGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZGVjcnlwdCBmbGFnIHZhbHVlcyIpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpfSksVCgiY3JlYXRlLXNoYXJlZC1vdmVycmlkZXMiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsc2UoIi90b29sYmFyL2ZsYWdzLWV4cGxvcmVyL3NoYXJlZC1vdmVycmlkZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJjb250ZW50LXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKCF0Lm9rKXtlLm5leHQ9MTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsdC5qc29uKCkpO2Nhc2UgMTp0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgc2hhcmVkIG92ZXJyaWRlcyIpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJnZXQtc2hhcmVkLW92ZXJyaWRlcyIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixzZSgiL3Rvb2xiYXIvZmxhZ3MtZXhwbG9yZXIvc2hhcmVkLW92ZXJyaWRlcy8iLmNvbmNhdCh0LmlkKSkudGhlbihmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoNDA0IT09dC5zdGF0dXMpe2UubmV4dD0xO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixudWxsKTtjYXNlIDE6aWYoIXQub2spe2UubmV4dD0yO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIix0Lmpzb24oKSk7Y2FzZSAyOnRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGdldCBzaGFyZWQgb3ZlcnJpZGVzIik7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoImZsYWdzLWV4cGxvcmVyLXVwZ3JhZGUiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsc2UoIi90b29sYmFyL2ZsYWdzLWV4cGxvcmVyL3VwZ3JhZGUiLHttZXRob2Q6IlBPU1QifSkudGhlbihmdW5jdGlvbihlKXtpZighZS5vayl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byB1cGdyYWRlIHRoZSBGbGFncyBFeHBsb3Jlci4iKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJmbGFncy1leHBsb3Jlci1zdGF0ZSIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixzZSgiL3Rvb2xiYXIvZmxhZ3MtZXhwbG9yZXIvc3RhdGUiKS50aGVuKGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuLHI7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MSx0Lmpzb24oKTtjYXNlIDE6aWYocj1lLnNlbnQsIXQub2spe2UubmV4dD0yO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixyKTtjYXNlIDI6aWYoISgiZXJyb3IiaW4gcil8fG51bGw9PT0obj1yLmVycm9yKXx8dm9pZCAwPT09bnx8IW4ubWVzc2FnZSl7ZS5uZXh0PTM7YnJlYWt9dGhyb3cgbmV3IEVycm9yKHIuZXJyb3IubWVzc2FnZSk7Y2FzZSAzOnRocm93IHI7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSkuY2F0Y2goZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gZmV0Y2ggRmxhZ3MgRXhwbG9yZXIgc3RhdGUiKX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJnZXQtcHJvZHVjdGlvbi1kb21haW5zIixmdW5jdGlvbigpe3JldHVybiBhZSgiL2FwaS9wcm9kdWN0aW9uLWRvbWFpbnMiKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pfSksVCgiaW5pdGlhdGUtYmlzZWN0IixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9iaXNlY3QiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKS50aGVuKGZ1bmN0aW9uKHQpe2lmKCFlLm9rKXRocm93IHQ7cmV0dXJuIHR9KX0pKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJsaXN0LWJpc2VjdHMiLHModSgpLm1hcmsoZnVuY3Rpb24gZSgpe3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsc2UoIi90b29sYmFyL2Jpc2VjdCIpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSkpLFQoImdldC1iaXNlY3QiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj10LmlkLGUuYWJydXB0KCJyZXR1cm4iLHNlKCIvdG9vbGJhci9iaXNlY3QvIi5jb25jYXQobikpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoInVwZGF0ZS1iaXNlY3QiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuLHI7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBuPXQuaWQscj10LmFjdGlvbixlLmFicnVwdCgicmV0dXJuIixzZSgiL3Rvb2xiYXIvYmlzZWN0LyIuY29uY2F0KG4pLHttZXRob2Q6IlBBVENIIixib2R5OkpTT04uc3RyaW5naWZ5KHthY3Rpb246cn0pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiZ2V0LXNwZWVkLWluc2lnaHRzIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbjtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49dC5yb3V0ZSxlLmFicnVwdCgicmV0dXJuIixhZSgiL3Rvb2xiYXIvc3BlZWQtaW5zaWdodHM/Ii5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7cm91dGU6bn0pLnRvU3RyaW5nKCkpKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOm51bGx9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksVCgiYXV0aC1wdXNoZXIiLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5uZXh0PTEsc2UoIi9hcGkvcHVzaGVyL2F1dGgiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KTtjYXNlIDE6cmV0dXJuIG49ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLG4uanNvbigpKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxUKCJ1cGRhdGUtdHJhY2luZy1vcHQtaW4iLGZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuLHIsbztyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49dC5vcHRJbkNvb2tpZVZhbHVlLHI9dC5yZW1vdmVPbGRPcHRJbkNvb2tpZSxvPXZvaWQgMCE9PXImJnIsZS5uZXh0PTEsc2UoIi9hcGkvdHJhY2luZyIse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeSh7b3B0SW5Db29raWVWYWx1ZTpuLHJlbW92ZU9sZE9wdEluQ29va2llOm99KX0pO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoInRvb2xiYXItZGF0YSIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvLGEsaTtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUubmV4dD0xLGFlKCIvdG9vbGJhci9kYXRhIix7Ym9keTp0LmJvZHksbWV0aG9kOnQubWV0aG9kLGhlYWRlcnM6dC5oZWFkZXJzfSk7Y2FzZSAxOnJldHVybiBuPWUuc2VudCxlLm5leHQ9MixuLnRleHQoKTtjYXNlIDI6cmV0dXJuIHI9ZS5zZW50LG89bi5zdGF0dXMsYT1uLnN0YXR1c1RleHQsaT1kKG4uaGVhZGVycyksZS5hYnJ1cHQoInJldHVybiIse2JvZHk6cixzdGF0dXM6byxzdGF0dXNUZXh0OmEsaGVhZGVyczppfSk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSldfSx4ZT0hMTtmdW5jdGlvbiBBZSgpe24ucD1uZXcgVVJMKCIvX25leHQtbGl2ZS9mZWVkYmFjay8iLG9yaWdpbikuaHJlZix3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7dmFyIHQ9eCghMSk7aWYoKCF0fHxlLm9yaWdpbj09PXQpJiZlLmRhdGEmJigiY3JlYXRlLXdvcmtlciI9PT1lLmRhdGEudHlwZSYmZnVuY3Rpb24oZSx0KXt2YXIgbj1UZVtlXTtpZighbilyZXR1cm47dmFyIHI9bigpO0NlLnNldCh0LHIpO3ZhciBvPWZ1bmN0aW9uKGUpe3ZhciBuOyJpbml0Ij09PShudWxsPT09KG49ZS5kYXRhKXx8dm9pZCAwPT09bj92b2lkIDA6bi50eXBlKSYmKHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uoe3R5cGU6Indvcmtlci1yZWFkeSIsd29ya2VySWQ6dCxwb3J0OmUuZGF0YS5wb3J0fSx4KCExKXx8IioiLFtlLmRhdGEucG9ydF0pLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbykpfTtyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG8pLHIucG9zdE1lc3NhZ2Uoe3R5cGU6ImluaXQifSl9KGUuZGF0YS53b3JrZXJLZXksZS5kYXRhLndvcmtlcklkKSwidGVybWluYXRlLXdvcmtlciI9PT1lLmRhdGEudHlwZSkpe3ZhciBuPUNlLmdldChlLmRhdGEud29ya2VySWQpO24mJihuLnRlcm1pbmF0ZSgpLENlLmRlbGV0ZShlLmRhdGEud29ya2VySWQpKX19KX12YXIgQ2U9bmV3IE1hcDt2YXIgVGU9e2F4ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgV29ya2VyKG5ldyBVUkwobi5wK24udSgyMTQpLG4uYikpfX07ZnVuY3Rpb24gX2UoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBTZShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9fZShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7eShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpfZShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gTGUoKXt2YXIgZTtyZXR1cm4gbnVsbCE9PShlPW51bGw9PWo/dm9pZCAwOmoucHVzaGVyKSYmdm9pZCAwIT09ZSYmZX1mdW5jdGlvbiBqZShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIERlKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP2plKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXt5KGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOmplKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiBJZShlKXt2YXIgdCxuPWUuYXV0aCxyPWUudHJhY2tpbmcsbz1lLnNraXBMb2dpbkFuaW1hdGlvbixhPWUuZGVlcExpbms7Z2UobiksT2UoInB1bGwiKSxPZSgicHVzaCIpLFQoInVwbG9hZC1pbWFnZSIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvLGEsaSxzLGMsZCxsO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj10LmZpbGVuYW1lLHI9dC5idWZmZXIsbz10LnRlbXBJZCxhPXQubWltZVR5cGUsd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToidXBsb2FkLXByb2dyZXNzIixpZDpvLHByb2dyZXNzOjV9LHgoKSksaT1uZXcgQmxvYihbcl0se3R5cGU6YX0pLGUubmV4dD0xLHNlKCIvYXBpL2Jsb2IvdXBsb2FkIix7bWV0aG9kOiJQT1NUIixib2R5OkpTT04uc3RyaW5naWZ5KHtmaWxlbmFtZTpuLG1pbWVUeXBlOmF9KX0pO2Nhc2UgMTpyZXR1cm4gcz1lLnNlbnQsZS5uZXh0PTIscy5qc29uKCk7Y2FzZSAyOnJldHVybiBjPWUuc2VudCxkPWMuY2xpZW50VG9rZW4sbD1jLnBhdGhuYW1lLGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49bmV3IFhNTEh0dHBSZXF1ZXN0O24udXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixmdW5jdGlvbihlKXt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJ1cGxvYWQtcHJvZ3Jlc3MiLGlkOm8scHJvZ3Jlc3M6TWF0aC5yb3VuZCgxMDAqZS5sb2FkZWQvZS50b3RhbCl9LHgoKSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWRlbmQiLGZ1bmN0aW9uKCl7aWYod2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToidXBsb2FkLXByb2dyZXNzIixpZDpvLGRvbmU6ITB9LHgoKSksMjAwPT09bi5zdGF0dXMpe3ZhciByPUpTT04ucGFyc2Uobi5yZXNwb25zZVRleHQpLnVybDtlKHtpZDoiLzMiLmNvbmNhdChuZXcgVVJMKHIpLnBhdGhuYW1lKX0pfWVsc2UgdChuZXcgRXJyb3Iobi5yZXNwb25zZVRleHQpKX0pLG4ub3BlbigiUFVUIixuZXcgVVJMKCIvIi5jb25jYXQobCksImh0dHBzOi8vYmxvYi52ZXJjZWwtc3RvcmFnZS5jb20iKS5ocmVmLCEwKSxuLnNldFJlcXVlc3RIZWFkZXIoIngtYXBpLXZlcnNpb24iLCI3Iiksbi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLGEpLG4uc2V0UmVxdWVzdEhlYWRlcigiYXV0aG9yaXphdGlvbiIsIkJlYXJlciAiLmNvbmNhdChkKSksbi5zZW5kKGkpfSkpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoInVwbG9hZC1zbmFwc2hvdCIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvLGEsaSxzO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gbj10LnNuYXBzaG90SWQscj10LmJsb2IsZS5uZXh0PTEsc2UoIi9hcGkvYmxvYi91cGxvYWQiLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2ZpbGVuYW1lOm4sbWltZVR5cGU6InRleHQvaHRtbCIsc25hcHNob3Q6ITB9KX0pO2Nhc2UgMTpyZXR1cm4gbz1lLnNlbnQsZS5uZXh0PTIsby5qc29uKCk7Y2FzZSAyOnJldHVybiBhPWUuc2VudCxpPWEuY2xpZW50VG9rZW4scz1hLnBhdGhuYW1lLGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7ZmV0Y2gobmV3IFVSTCgiLyIuY29uY2F0KHMpLCJodHRwczovL2Jsb2IudmVyY2VsLXN0b3JhZ2UuY29tIikse21ldGhvZDoiUFVUIixoZWFkZXJzOnsieC1hcGktdmVyc2lvbiI6IjciLCJDb250ZW50LVR5cGUiOiJ0ZXh0L2h0bWwiLGF1dGhvcml6YXRpb246IkJlYXJlciAiLmNvbmNhdChpKX0sYm9keTpyfSkudGhlbihmdW5jdGlvbihuKXsyMDA9PT1uLnN0YXR1cz9uLmpzb24oKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPXQudXJsO3JldHVybiBlKHtpZDoiLzMiLmNvbmNhdChuZXcgVVJMKG4pLnBhdGhuYW1lKX0pfSk6bi50ZXh0KCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gdChuZXcgRXJyb3IoZSkpfSl9KX0pKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSxrZSgpLFQoInB1c2hlciIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKExlKCkpe2UubmV4dD0xO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIix7c3Vic2NyaWJlZDohMX0pO2Nhc2UgMTpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIG49dygpLHI9ZnVuY3Rpb24odCl7dC5vcmlnaW49PT13aW5kb3cub3JpZ2luJiYicHVzaGVyLXN1YnNjcmliZS1yZXNwb25zZSI9PT10LmRhdGEudHlwZSYmdC5kYXRhLm1lc3NhZ2VJZD09PW4mJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksZSh7c3Vic2NyaWJlZDp0LmRhdGEuc3Vic2NyaWJlZH0pKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHIpLHdpbmRvdy5wb3N0TWVzc2FnZShTZShTZSh7YWN0aW9uOiJwdXNoZXItc3Vic2NyaWJlIn0sdCkse30se3Rva2VuOm9lKCksbWVzc2FnZUlkOm59KSx3aW5kb3cub3JpZ2luKX0pKTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7aWYoZS5vcmlnaW49PT13aW5kb3cub3JpZ2luJiYicHVzaGVyLWV2ZW50Ij09PWUuZGF0YS50eXBlKXt2YXIgdD14KCExKTt0JiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGUuZGF0YSx0KX19KSx0PW4udG9rZW4sd2luZG93LnBvc3RNZXNzYWdlKHthY3Rpb246InNjcmVlbnNob3QtYXV0aCIsdG9rZW46dH0sd2luZG93Lm9yaWdpbiksVCgic2NyZWVuc2hvdCIsZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHQsbil7dmFyIHI9RCsrO3dpbmRvdy5wb3N0TWVzc2FnZSh7YWN0aW9uOiJzY3JlZW5zaG90IixpbmRleDpyLG9wdGlvbnM6ZX0pO3ZhciBvPWZ1bmN0aW9uKGUpe2lmKGUuZGF0YS5yZXNwb25zZT09PXIpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixvKTt2YXIgYT1lLmRhdGE7aWYoIWEuZGF0YVVSSSlyZXR1cm4gbihuZXcgRXJyb3IoIlNjcmVlbnNob3QgZmFpbGVkICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KGEpKSkpO3Qoe2RhdGFVUkk6YS5kYXRhVVJJfSl9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbyl9KX0pLHhlfHwoeGU9ITAsVCgibG9nb3V0IixzKHUoKS5tYXJrKGZ1bmN0aW9uIGUoKXt2YXIgdDtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHQ9bGUoKSx6LmNsZWFyKCksdCYmcGUodCksbG9jYWxTdG9yYWdlLnNldEl0ZW0oInZlcmNlbC10b29sYmFyLWxvZ2dlZC1vdXQiLCIxIiksZS5uZXh0PTEsZmV0Y2goIi9sb2dvdXQiKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpKSksQWUoKTt2YXIgaT1JKCksYz17c2Vzc2lvbjpuLnNlc3Npb24scHVsbDpuLnB1bGwsaW5pdGlhbERhdGE6bi5pbml0aWFsRGF0YSx0cmFja2luZzpEZShEZSh7fSxyKSx7fSx7c2Vzc2lvbklkOmZlKCksZXh0ZW5zaW9uSW5zdGFsbGVkOml9KSxiaXNlY3Q6bi5iaXNlY3QsZGVlcExpbms6YSxvcHRpb25zOntzdXBwb3J0c1NjcmVlbnNob3RzOmksc2tpcExvZ2luQW5pbWF0aW9uOiEhb30saW50ZW50Om4uaW50ZW50LGhhc1JlY29tbWVuZGVkRmxhZ3M6bi5oYXNSZWNvbW1lbmRlZEZsYWdzfTtyZXR1cm4gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oInZlcmNlbC10b29sYmFyLWxvZ2dlZC1vdXQiKSxjfWZ1bmN0aW9uIFJlKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gUGUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/UmUoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3koZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6UmUoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfXZhciBOZT1mdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0LG4pe3ZhciByLG8sYTtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIHI9bi53YWl0LG89bi5kZWZhdWx0UmVzcG9uc2UsYT12b2lkIDA9PT1vP3ZvaWQgMDpvLGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciBuPXcoKSxvPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzKCksZShhKX0sciksaT1mdW5jdGlvbih0KXsibWVzc2FnZUlkImluIHQuZGF0YSYmdC5kYXRhLm1lc3NhZ2VJZD09PW4mJiJyZXNwb25zZSJpbiB0LmRhdGEmJihzKCksZSh0LmRhdGEucmVzcG9uc2UpKX0scz1mdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSxjbGVhclRpbWVvdXQobyl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixpKSx3aW5kb3cucG9zdE1lc3NhZ2UoUGUoUGUoe30sdCkse30se21lc3NhZ2VJZDpufSksd2luZG93Lm9yaWdpbil9KSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpO2Z1bmN0aW9uIE1lKGUpe3JldHVybiBWZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVmUoKXtyZXR1cm4gVmU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuLHIsbyxhLGksYztyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49dC5rZXkscj10LnBhZ2Usbz0hMSxhPWZ1bmN0aW9uKCl7dmFyIGU9cyh1KCkubWFyayhmdW5jdGlvbiBlKCl7dmFyIHQsYSxpO3JldHVybiB1KCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZih0PUJvb2xlYW4obG9jYWxTdG9yYWdlLmdldEl0ZW0oInZlcmNlbC10b29sYmFyLWxvZ2dlZC1vdXQiKSksYT0idmVyY2VsVG9vbGJhckNvZGUiaW4gbiYmbi52ZXJjZWxUb29sYmFyQ29kZXx8InZlcmNlbEF1dGhKV0UiaW4gbiYmbi52ZXJjZWxBdXRoSldFLCF0fHwhRygpfHxhKXtlLm5leHQ9MTticmVha310aHJvdyBuZXcgRXJyb3I7Y2FzZSAxOnJldHVybiBlLm5leHQ9MixiZShuLHIpO2Nhc2UgMjppZigoaT1lLnNlbnQpJiYhbyl7ZS5uZXh0PTM7YnJlYWt9dGhyb3cgbmV3IEVycm9yO2Nhc2UgMzpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIse2F1dGg6aSx0cmFja2luZzp7YXV0aE9yaWdpbjppLmF1dGhPcmlnaW4sdXNlZEV4aXN0aW5nQXV0aDohMH0sc2tpcExvZ2luQW5pbWF0aW9uOiEwfSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGk9ZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUoKXt2YXIgdCxhLGkscztyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoIXZlKCkpe2UubmV4dD0xO2JyZWFrfXRocm93IG5ldyBFcnJvcjtjYXNlIDE6aWYoIUJvb2xlYW4obG9jYWxTdG9yYWdlLmdldEl0ZW0oInZlcmNlbC10b29sYmFyLWxvZ2dlZC1vdXQiKSkpe2UubmV4dD0yO2JyZWFrfXRocm93IG5ldyBFcnJvcjtjYXNlIDI6aWYoSSgpJiYhbyl7ZS5uZXh0PTM7YnJlYWt9dGhyb3cgbmV3IEVycm9yO2Nhc2UgMzpyZXR1cm4gZS5uZXh0PTQsTmUoe2FjdGlvbjoiY2hlY2stYXV0aCIsZGF0YTpufSx7d2FpdDoxZTQsZGVmYXVsdFJlc3BvbnNlOnZvaWQgMH0pO2Nhc2UgNDppZigodD1lLnNlbnQpJiYhbyl7ZS5uZXh0PTU7YnJlYWt9dGhyb3cgbmV3IEVycm9yO2Nhc2UgNTpyZXR1cm4gYT1uZXcgVVJMU2VhcmNoUGFyYW1zKCJob3N0bmFtZSJpbiBuP3tob3N0bmFtZTpuLmhvc3RuYW1lLGp3dDp0LHBhZ2U6cn06e2p3dDp0LHBhZ2U6cixvd25lcklkOm4ub3duZXJJZCxwcm9qZWN0SWQ6bi5wcm9qZWN0SWQsYnJhbmNoOm4uYnJhbmNofHwiIn0pLGUubmV4dD02LFUoIi9leHRlbnNpb24tYXV0aD8iLmNvbmNhdChhLnRvU3RyaW5nKCkpLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJ4LWhhcy1leHRlbnNpb24iOkkoKT8idHJ1ZSI6ImZhbHNlIn0sdGltZW91dDohMCxza2lwRmlyZWZveDohMH0pO2Nhc2UgNjppZigyMDA9PT0oaT1lLnNlbnQpLnN0YXR1cyl7ZS5uZXh0PTc7YnJlYWt9dGhyb3cgbmV3IEVycm9yO2Nhc2UgNzpyZXR1cm4gZS5uZXh0PTgsaS5qc29uKCk7Y2FzZSA4OmlmKChzPWUuc2VudCkmJnMudG9rZW4mJiFvKXtlLm5leHQ9OTticmVha310aHJvdyBuZXcgRXJyb3I7Y2FzZSA5OnJldHVybiBlLmFicnVwdCgicmV0dXJuIix7YXV0aDpzLHRyYWNraW5nOnthdXRoT3JpZ2luOiJleHRlbnNpb24tYXV0by1hdXRoIix1c2VkRXhpc3RpbmdBdXRoOiEwfSxza2lwTG9naW5BbmltYXRpb246ITB9KTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpLGUucHJldj0xLGUucHJldj0yLGUubmV4dD0zLGEoKTtjYXNlIDM6Yz1lLnNlbnQsZS5uZXh0PTY7YnJlYWs7Y2FzZSA0OnJldHVybiBlLnByZXY9NCxlLmNhdGNoKDIpLGUubmV4dD01LGkoKTtjYXNlIDU6Yz1lLnNlbnQ7Y2FzZSA2OnJldHVybiBvPSEwLGUuYWJydXB0KCJyZXR1cm4iLEllKGMpKTtjYXNlIDc6cmV0dXJuIGUucHJldj03LGUuY2F0Y2goMSksZS5hYnJ1cHQoInJldHVybiIsdm9pZCAwKTtjYXNlIDg6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUsbnVsbCxbWzEsN10sWzIsNF1dKX0pKSxWZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSGUoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZigtMSE9PXQuaW5kZXhPZihyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8YS5sZW5ndGg7cisrKW49YVtyXSwtMT09PXQuaW5kZXhPZihuKSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb312YXIgWmU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuUFJPSkVDVF9QTEFDRUhPTERFUl9FVkVOVD0iUGxhY2Vob2xkZXIgZXZlbnQiLGUuQ0hBVF9PUEVORURfU0hPUlRDVVQ9Ik9wZW5lZCBDaGF0IFZpYSBTaG9ydGN1dCIsZS5DSEFUX09QRU5FRF9UT09MQkFSPSJPcGVuZWQgQ2hhdCBWaWEgVG9vbGJhciIsZS5DSEFUX09QRU5FRF9NRU5VX0JVVFRPTj0iT3BlbmVkIENoYXQgVmlhIE1lbnUgQnV0dG9uIixlLkNPTU1FTlRfT1BFTkVEX1RPT0xCQVI9Ik9wZW5lZCBDb21tZW50IFZpYSBUb29sYmFyIixlLkNPTU1FTlRfVEhSRUFEX0NSRUFURUQ9IkNvbW1lbnQgdGhyZWFkIGNyZWF0ZWQiLGUuQ09NTUVOVF9USFJFQURfUkVTT0xWRUQ9IkNvbW1lbnQgdGhyZWFkIHJlc29sdmVkIixlLkNPTU1FTlRfQURERUQ9IkNvbW1lbnQgYWRkZWQiLGUuREVQTE9ZTUVOVF9JTlZJVEVfU0NSRUVOX09QRU5FRD0iRGVwbG95bWVudCBpbnZpdGUgc2NyZWVuIG9wZW5lZCIsZS5ERVBMT1lNRU5UX0lOVklURV9TRU5UPSJEZXBsb3ltZW50IGludml0ZSBzZW50IixlLkRFUExPWU1FTlRfU0hBUkVfT1BFTkVEPSJEZXBsb3ltZW50IHNoYXJlIG9wZW5lZCIsZS5ERVBMT1lNRU5UX1NIQVJFX01PREVfQ0hBTkdFRD0iU2hhcmVhYmxlIGxpbmsgc3RhdHVzIGNoYW5nZWQiLGUuREVQTE9ZTUVOVF9TSEFSRV9DT1BJRUQ9IlNoYXJlYWJsZSBsaW5rIGNvcGllZCIsZS5EUkFXSU5HX1RPT0xfT1BFTkVEPSJPcGVuZWQgRHJhd2luZyBUb29sIixlLkRSQVdJTkdfVE9PTF9PUEVORURfU0hPUlRDVVQ9Ik9wZW5lZCBEcmF3aW5nIFRvb2wgd2l0aCBrZXlib2FyZCBzaG9ydGN1dCIsZS5JTlNQRUNUT1JfT1BFTkVEX1NIT1JUQ1VUPSJPcGVuZWQgSW5zcGVjdG9yIFZpYSBTaG9ydGN1dCIsZS5JTlNQRUNUT1JfVE9HR0xFRF9UT09MQkFSPSJUb2dnbGVkIEluc3BlY3RvciBWaWEgVG9vbGJhciIsZS5JTlNQRUNUT1JfT1BFTkVEX0JVVFRPTj0iT3BlbmVkIEluc3BlY3RvciBWaWEgVlNDb2RlIEJ1dHRvbiIsZS5FRElUT1JfVE9HR0xFRD0iVG9nZ2xlZCBFZGl0b3IgVmlhIFRvb2xiYXIiLGUuQ09NTUlUX1NVQk1JVFRFRD0iQ29tbWl0IEFjdGlvbiBWaWEgTWVudSIsZS5DT01NSVRfRVJST1JfUVVJVD0iR290IENvbW1pdCBFcnJvciBhbmQgUXVpdCIsZS5DT01NSVRfRVJST1JfRklYPSJHb3QgQ29tbWl0IEVycm9yIGFuZCBGaXhlZCBJdCIsZS5DT01NSVRfQ0FOQ0VMPSJDYW5jZWxsZWQgQ29tbWl0IERpYWxvZyIsZS5BQ0NFU1NfVkVSQ0VMX0NPTT0iVmlzaXRlZCBmcm9tIFZlcmNlbC5jb20iLGUuQUNDRVNTX1ZFUkNFTF9MSVZFPSJWaXNpdGVkIGZyb20gLnZlcmNlbC5saXZlIixlLkFDQ0VTU19WRVJDRUxfU0hPUlRDVVQ9IlZpc2l0ZWQgZnJvbSAvX2xpdmUiLGUuQUNDRVNTX1JFRElSRUNUPSJWaXNpdGVkIGltbXV0YWJsZSB1cmwgYW5kIHJlZGlyZWN0ZWQiLGUuQUNDRVNTX0dJVF9CUkFOQ0g9InZpc2l0ZWQgZ2l0IGJyYW5jaCBkaXJlY3RseSIsZS5MT0FERURfTkVYVF9MSVZFPSJMb2FkZWQgTmV4dCBMaXZlIixlLk1BWF9VU0VSUz0iTWF4IGFtb3VudCBvZiBwZW9wbGUgaW4gdGhlIHNlc3Npb24iLGUuVE9UQUxfQ09NTUlUX1VTRVJTPSJOdW1iZXIgb2YgcGVvcGxlIGF0dHJpYnV0ZWQgdG8gYSBjb21taXQiLGUuT1JJR0lOX1ZFUkNFTF9DT009IlZpc2l0ZWQgZnJvbSB2ZXJjZWwuY29tIChOZXh0IExpdmUgYnV0dG9uKSIsZS5PUklHSU5fRVhURVJOQUxfU0lURT0iVmlzaXRlZCBmcm9tIGV4dGVybmFsIHNpdGUiLGUuSU5URVJBQ1RJT05fVElNSU5HX09QRU5FRF9WSUFfVElQPSJPcGVuZWQgaW50ZXJhY3Rpb24gdGltaW5nIHZpYSB0aGUgdGlwIixlLk5BVklHQVRJT05fU1RPUkFHRV9QRVJTSVNUPSJOYXZpZ2F0aW9uIHN0b3JhZ2UgcGVyc2lzdCByZXF1ZXN0IixlLkZFRURCQUNLX0xPR0dFRF9PVVRfTE9BREVEPSJMb2FkZWQgbG9nZ2VkIG91dCB0b29sYmFyIixlLkZFRURCQUNLX0ZPUk1fT1BFTkVEPSJPcGVuZWQgRmVlZGJhY2sgRm9ybSBWaWEgVG9vbGJhciBNYW51IixlLkZFRURCQUNLX0FVVEhfSU5JVElBVEVEPSJGZWVkYmFjayBhdXRoIGluaXRpYXRlZCIsZS5GRUVEQkFDS19BVVRIX0NPTVBMRVRFPSJGZWVkYmFjayBhdXRoIGNvbXBsZXRlIixlLkZFRURCQUNLX0xPQURFRD0iTG9hZGVkIHRoZSBmZWVkYmFjayB0b29scyIsZS5GRUVEQkFDS19WSVNJQkxFPSJUaGUgZnVsbCB0b29sYmFyIGxvYWRlZCBhbmQgYmVjYW1lIHZpc2libGUiLGUuRkVFREJBQ0tfTE9HT1VUPSJMb2dnZWQgb3V0IG9mIHRoZSBmZWVkYmFjayB0b29scyIsZS5GRUVEQkFDS19DT01NRU5UX01PREU9IlRvZ2dsZWQgY29tbWVudCBtb2RlIHZpYSB0aGUgdG9vbGJhciIsZS5GRUVEQkFDS19BUkNISVZFX01PREU9IlRvZ2dsZWQgYXJjaGl2ZSBtb2RlIHZpYSB0aGUgdG9vbGJhciIsZS5GRUVEQkFDS19DT01NRU5UX1BMQUNFRD0iUGxhY2VkIGEgY29tbWVudCBvbiBwcmV2aWV3IixlLkZFRURCQUNLX0NPTU1FTlRfQURERUQ9IlVzZXIgY29tbWVudGVkIixlLkZFRURCQUNLX0NPTU1FTlRfVEhSRUFEX0NSRUFURUQ9IkNyZWF0ZWQgYSBuZXcgY29tbWVudCB0aHJlYWQiLGUuRkVFREJBQ0tfQ09NTUVOVF9SRVNPTFZFX0NMSUNLRUQ9IlVzZXIgY2xpY2tlZCB0aGUgcmVzb2x2ZSBidXR0b24iLGUuRkVFREJBQ0tfQ09NTUVOVF9ERUxFVEVEPSJEZWxldGVkIGEgY29tbWVudCIsZS5GRUVEQkFDS19TQ1JFRU5TSE9UX0NMSUNLRUQ9IlVzZXIgYXR0ZW1wdGVkIHRvIHRha2UgYSBzY3JlZW5zaG90IixlLkZFRURCQUNLX0RSQUdfVE9fU0NSRUVOU0hPVD0iVXNlciBkcmFnZ2VkIHRvIHRha2UgYSBzY3JlZW5zaG90IixlLkZFRURCQUNLX0lOU1RBTExfRVhURU5TSU9OX01PREFMX0NMSUNLRUQ9IlVzZXIgY2xpY2tlZCB0aGUgaW5zdGFsbCBleHRlbnNpb24gbW9kYWwgYnV0dG9uIixlLkZFRURCQUNLX0lOU1RBTExfRVhURU5TSU9OX1RJUF9DTElDS0VEPSJVc2VyIGNsaWNrZWQgdGhlIGluc3RhbGwgZXh0ZW5zaW9uIG1vZGFsIGJ1dHRvbiBpbiB0aGUgdGlwIixlLkZFRURCQUNLX0FMV0FZU19BQ1RJVkFURV9USVBfQ0xJQ0tFRD0iVXNlciBjbGlja2VkIHRoZSBhbHdheXMgYWN0aXZhdGUgdGlwIixlLkZFRURCQUNLX0lNQUdFX1VQTE9BRF9DTElDSz0iVXNlciBjbGlja2VkIHRoZSB1cGxvYWQgaW1hZ2UgYnV0dG9uIixlLkZFRURCQUNLX0lNQUdFX1VQTE9BREVEPSJVc2VyIHVwbG9hZGVkIGFuIGltYWdlIixlLkZFRURCQUNLX0ZJTFRFUl9DSEFOR0VEPSJVc2VyIGNoYW5nZWQgZmlsdGVycyIsZS5GRUVEQkFDS19DT01NRU5UX0JVQkJMRV9PUEVORUQ9IlVzZXIgb3BlbmVkIGEgY29tbWVudCBidWJibGUiLGUuRkVFREJBQ0tfUkVQTFlfQ0xJQ0tFRD0iVXNlciBjbGlja2VkIHJlcGxpZXMgaW4gc2lkZWJhciIsZS5GRUVEQkFDS19DT01NRU5UX0VESVRFRD0iVXNlciBlZGl0ZWQgYSBjb21tZW50IixlLkZFRURCQUNLX1RPT0xCQVJfUkVOREVSRUQ9IkZlZWRiYWNrIHRvb2xiYXIgcmVuZGVyZWQiLGUuRkVFREJBQ0tfUkVESVJFQ1Q9IkZlZWRiYWNrIGF1dGggcmVkaXJlY3QiLGUuRkVFREJBQ0tfUkVESVJFQ1RfRU1BSUw9IkZlZWRiYWNrIGF1dGggcmVkaXJlY3QgKGVtYWlsKSIsZS5GRUVEQkFDS19SRURJUkVDVF9TTEFDSz0iRmVlZGJhY2sgYXV0aCByZWRpcmVjdCAoc2xhY2spIixlLkZFRURCQUNLX1NIQVJFX1VQR1JBREVfVE9fUFJPX0NMSUNLRUQ9IkNsaWNrZWQgb24gdXBncmFkZSB0byBQcm8gcGxhbiBmcm9tIFNoYXJlIExpbmsgcG9wb3ZlciIsZS5GRUVEQkFDS19USVBfU0hPV0VEPSJGZWVkYmFjayB0aXAgd2FzIGRpc3BsYXllZCB0byB0aGUgdXNlciIsZS5GRUVEQkFDS19ESVNBQkxFRD0iRmVlZGJhY2sgZGlzYWJsZWQgZm9yIHNlc3Npb24iLGUuRkVFREJBQ0tfUkVMT0FEPSJGZWVkYmFjayByZWxvYWRlZCIsZS5GRUVEQkFDS19VTkNBVUdIVF9FWENFUFRJT049IkZlZWRiYWNrIHVuY2F1Z2h0IGV4Y2VwdGlvbiIsZS5GRUVEQkFDS19USFJFQURfT1BFTkVEPSJVc2VyIG9wZW5lZCBhIHRocmVhZCIsZS5GRUVEQkFDS19DTURfRE9UX1VTRUQ9IkZlZWRiYWNrIGludGVyZmFjZSBoaWRkZW4gdmlhIGNtZCArIC4iLGUuRkVFREJBQ0tfRVhURU5TSU9OX0NMSUNLRUQ9IlZlcmNlbCBFeHRlbnNpb24gQ2xpY2tlZCIsZS5GRUVEQkFDS19QQVJUSUNJUEFOVF9DTElDS0VEPSJVc2VyIGNsaWNrZWQgb24gYSBwYXJ0aWNpcGFudCIsZS5GRUVEQkFDS19VU0VSX0lOVEVSQUNURURfT05fSU5JVElBTF9QQUdFPSJVc2VyIGludGVyYWN0ZWQgd2l0aCB0aGUgdG9vbGJhciBvbiB0aGUgaW5pdGlhbCBwYWdlIixlLkZFRURCQUNLX1VTRVJfTEVGVF9JTklUSUFMX1BBR0U9IlVzZXIgbGVmdCB0aGUgaW5pdGlhbCBwYWdlIG9mIHRoZSBzZXNzaW9uIixlLkZFRURCQUNLX0RFVEFDSEVEX0NPTU1FTlRfVEhSRUFEX1BMQUNFRD0iVXNlciBwbGFjZWQgYSBkZXRhY2hlZCBjb21tZW50IHRocmVhZCIsZS5GRUVEQkFDS19ERVRBQ0hFRF9DT01NRU5UX1RIUkVBRF9QTEFDRV9DTElDS0VEPSJVc2VyIGNsaWNrZWQgcGxhY2UgYnV0dG9uIG9uIGRldGFhY2hlZCBjb21tZW50IHRocmVhZCIsZS5UT09MQkFSX01PVkVEPSJVc2VyIG1vdmVkIHRoZSB0b29sYmFyIixlLkRSQUZUX01PREVfRU5BQkxFRD0iVXNlciBlbmFibGVkIGRyYWZ0IG1vZGUiLGUuT1BFTl9HUkFQSF9PUEVORURfVklBX1RJUD0iT3BlbmVkIE9wZW4gR3JhcGggdmlhIHRoZSB0aXAiLGUuQklTRUNUX1NUQVJURUQ9IkJpc2VjdCBzdGFydGVkIixlLkJJU0VDVF9BQ1RJT049IkFuIGFjdGlvbiB3YXMgdGFrZW4gZHVyaW5nIGEgYmlzZWN0IixlLkJJU0VDVF9DTURLX09QRU5FRD0iQmlzZWN0IGNtZCArIGsgbWVudSBvcGVuZWQiLGUuQklTRUNUX0dJVF9PUEVORUQ9IkEgZ2l0IGxpbmsgd2FzIG9wZW5lZCBkdXJpbmcgYSBiaXNlY3QiLGUuQklTRUNUX0RFUExPWU1FTlRfT1BFTkVEPSJBIGRlcGxveW1lbnQgbGluayB3YXMgb3BlbmVkIGR1cmluZyBhIGJpc2VjdCIsZS5CSVNFQ1RfRklOSVNIRUQ9IkJpc2VjdCB3YXMgY29tcGxldGVkIixlLkJJU0VDVF9SRVNVTUVEPSJCaXNlY3Qgd2FzIHJlc3VtZWQiLGUuQklTRUNUX1JFU1VMVFNfT1BFTkVEPSJSZXN1bHRzIG9mIGFuIG9sZCBiaXNlY3Qgd2VyZSBvcGVuZWQiLGUuQklTRUNUX0RFTEVURUQ9IkJpc2VjdCB3YXMgZGVsZXRlZCIsZS5GTEFHU19ESUFMT0dfTE9BREVEPSJVc2VyIG9wZW5lZCBmbGFncyBkaWFsb2ciLGUuRkxBR1NfT1ZFUlJJREVTX1NFVD0iVXNlciBzZXQgZmxhZyBvdmVycmlkZXMiLGUuRkxBR1NfT1ZFUlJJREVTX0JSQU5DSF9SRUNPTU1FTkRBVElPTl9TRVQ9IlVzZXIgc2V0IGEgYnJhbmNoIGJhc2VkIHJlY29tbWVuZGF0aW9uIGZvciBmbGFncyBvdmVycmlkZXMiLGUuRkxBR1NfT1ZFUlJJREVTX1NIQVJFX0xJTktfQ09QSUVEPSJVc2VyIGNvcGllZCBhIGZsYWcgb3ZlcnJpZGVzIHNoYXJlIGxpbmsiLGUuRkxBR1NfT1ZFUlJJREVTX0NMRUFSRUQ9IlVzZXIgY2xlYXJlZCBmbGFnIG92ZXJyaWRlcyIsZS5GTEFHU19PTkJPQVJESU5HX1NUQVJURUQ9IkZsYWdzIEV4cGxvcmVyIG9uYm9hcmRpbmcgd2FzIHNob3duIixlLkZMQUdTX09OQk9BUkRJTkdfRklOSVNIRUQ9IkZsYWdzIEV4cGxvcmVyIG9uYm9hcmRpbmcgd2FzIGNvbXBsZXRlZCAoRG9uZSBidXR0b24gcHJlc3NlZCkiLGUuTkVXX1NMQUNLX0lOVEVHUkFUSU9OX1ZJQV9NRU5VPSJPcGVuZWQgbmV3IFNsYWNrIEludGVncmFpdG9uIGZsb3cgdmlhIHRoZSB0b29sYmFyIG1lbnUiLGUuTkVXX1NMQUNLX0lOVEVHUkFUSU9OX1ZJQV9QUk9NUFQ9Ik9wZW5lZCBuZXcgU2xhY2sgSW50ZWdyYWl0b24gZmxvdyB2aWEgdGhlIHByb21wdCAiLGUuTkVXX1NMQUNLX0lOVEVHUkFUSU9OX1ZJQV9USVA9Ik9wZW5lZCBuZXcgU2xhY2sgSW50ZWdyYXRpb24gZmxvdyB2aWEgdGhlIHRpcCIsZS5VUEdSQURFX1NMQUNLX0lOVEVHUkFUSU9OX1ZJQV9USVA9Ik9wZW5lZCB1cGdyYWRlIHRvIG1haW4gU2xhY2sgSW50ZWdyYXRpb24gZmxvdyB2aWEgdGhlIHRpcCIsZS5TTEFDS19JTlRFR1JBVElPTl9MSU5LX1ZJQV9USVA9Ik9wZW5lZCB0aGUgU2xhY2sgSW50ZWdyYXRpb24gbGluayBmbG93IHZpYSB0aGUgdGlwIixlLlBST0pFQ1RfTUFOQUdFTUVOVF9ESUFMT0dfT1BFTkVEPSJVc2VyIG9wZW5lZCBDb252ZXJ0IFRvIElzc3VlIGRpYWxvZyIsZS5QUk9KRUNUX01BTkFHRU1FTlRfRElBTE9HX0NBTkNFTEVEPSJVc2VyIGNhbmNlbGVkIENvbnZlcnQgVG8gSXNzdWUgZGlhbG9nIixlLkxJTkVBUl9QUk9KRUNUX1NFTEVDVEVEPSJVc2VyIGNob3NlIGEgTGluZWFyIHByb2plY3QiLGUuTElORUFSX0NPTlZFUlRFRF9UT19JU1NVRT0iVXNlciBjb252ZXJ0ZWQgYW4gaXNzdWUgdG8gTGluZWFyIixlLkpJUkFfSVNTVUVUWVBFX1NFTEVDVEVEPSJVc2VyIGNob3NlIGEgSmlyYSBpc3N1ZXR5cGUiLGUuSklSQV9DT05WRVJURURfVE9fSVNTVUU9IlVzZXIgY29udmVydGVkIGFuIGlzc3VlIHRvIEppcmEiLGUuR0hfSVNTVUVTX1JFUE9fU0VMRUNURUQ9IlVzZXIgY2hvc2UgYSBHaXRodWIgcmVwbyIsZS5HSF9JU1NVRVNfUFJPSkVDVF9TRUxFQ1RFRD0iVXNlciBjaG9zZSBhIEdpdGh1YiBwcm9qZWN0IixlLkdIX0lTU1VFU19DT05WRVJURURfVE9fSVNTVUU9IlVzZXIgY29udmVydGVkIGFuIGlzc3VlIHRvIEdpdGh1YiBJc3N1ZXMiLGUuRURJVF9NT0RFX09QRU49IlVzZXIgb3BlbmVkIGFuIGVkaXRhYmxlIGZpZWxkIixlLkFDQ0VTU0lCSUxJVFlfUlVOX0NPTVBMRVRFRD0iQWNjZXNzaWJpbGl0eSBydW4gY29tcGxldGVkIixlLkFDQ0VTU0lCSUxJVFlfRklMVEVSX1NFTEVDVEVEPSJBY2Nlc3NpYmlsaXR5IGZpbHRlciBzZWxlY3RlZCIsZS5BQ0NFU1NJQklMSVRZX1ZJT0xBVElPTl9UT0dHTEVEPSJBY2Nlc3NpYmlsaXR5IHZpb2xhdGlvbiB0b2dnbGVkIixlLkFDQ0VTU0lCSUxJVFlfRUxFTUVOVF9DTElDS0VEPSJBY2Nlc3NpYmlsaXR5IGVsZW1lbnQgY2xpY2tlZCIsZS5BQ0NFU1NJQklMSVRZX1JVTl9UUklHR0VSRUQ9IkFjY2Vzc2liaWxpdHkgcnVuIHRyaWdnZXJlZCIsZS5BQ0NFU1NJQklMSVRZX1RPR0dMRV9SRUNPUkRJTkc9IkFjY2Vzc2liaWxpdHkgcmVjb3JkaW5nIHRvZ2dsZWQiLGUuQUNDRVNTSUJJTElUWV9MRUFSTl9NT1JFX0NMSUNLRUQ9IkFjY2Vzc2liaWxpdHkgbGVhcm4gbW9yZSBjbGlja2VkIixlLkFDQ0VTU0lCSUxJVFlfQVVESVRfT1BFTkVEX1ZJQV9USVA9IkFjY2Vzc2liaWxpdHkgYXVkaXQgb3BlbmVkIHZpYSB0aGUgdGlwIixlLkNPTU1BTkRfT1BFTkVEPSJPcGVuZWQgdGhlIENvbW1hbmQgbWVudSIsZS5DT01NQU5EX1NFTEVDVEVEPSJTZWxlY3RlZCBhbiBpdGVtIGluIHRoZSBDb21tYW5kIG1lbnUiLGUuQ09NTUFORF9UT09MVElQX0NMSUNLRUQ9IlNlbGVjdGVkIGEgY29tbWFuZCBmcm9tIHRoZSBtZW51IGJ1dHRvbiB0b29sdGlwIixlLlRPT0xfU0VMRUNURUQ9IlNlbGVjdGVkIGEgdG9vbCIsZS5TSElGVFNfUkVQTEFZPSJVc2VyIHJlcGxheWVkIGEgbGF5b3V0IHNoaWZ0IixlLlNISUZUU19TUEVFRF9JTlNJR0hUU19DTElDS0VEPSJVc2VyIGNsaWNrZWQgU3BlZWQgSW5zaWdodHMgbGluayBpbiBMYXlvdXQgU2hpZnRzIixlLlNISUZUU19PUEVORURfVklBX1RJUD0iTGF5b3V0IFNoaWZ0cyBvcGVuZWQgdmlhIHRoZSB0aXAiLGUuU0lERUJBUl9PUEVORUQ9Ik9wZW5lZCBhIFNpZGViYXIiLGUuRVhURU5TSU9OX1NFVFRJTkdTX0NIQU5HRUQ9IkV4dGVuc2lvbiBzZXR0aW5nIGNoYW5nZWQiLGUuVE9PTEJBUl9TRVRUSU5HX0NIQU5HRUQ9IlRvb2xiYXIgc2V0dGluZyBjaGFuZ2VkIixlLklOVEVOVF9ESUFMT0dfU0hPV049IkludGVudCBkaWFsb2cgc2hvd24iLGUuSU5URU5UX0RJQUxPR19DTE9TRUQ9IkludGVudCBkaWFsb2cgY2xvc2VkIixlLklOVEVOVF9ESUFMT0dfU0tJUFBFRD0iSW50ZW50IGRpYWxvZyBza2lwcGVkIixlLkNPUFlfRk9SX0FHRU5UU19DTElDS0VEPSJVc2VyIGNsaWNrZWQgY29weSBmb3IgYWdlbnRzIixlLlYwX01FTlRJT05FRD0iVXNlciBtZW50aW9uZWQgdjAgaW4gYSBjb21tZW50IixlLlYwX0dFVF9TVEFSVEVEX1ZJQV9USVA9IlVzZXIgY2xpY2tlZCBnZXQgc3RhcnRlZCBvbiB0aGUgdjAgdGlwIixlLlYwX0NIQVRfQ1JFQVRFRD0iVXNlciBjcmVhdGVkIGEgdjAgY2hhdCIsZS5WMF9DSEFUX1JFUExJRUQ9IlVzZXIgcmVwbGllZCB0byBhIHYwIGNoYXQiLGUuVjBfQ0hBVF9SRVNVTUVEPSJVc2VyIHJlc3VtZWQgYSB2MCBjaGF0IixlLlYwX0NIQVRfRVJST1I9IlVzZXIgZW5jb3VudGVyZWQgYW4gZXJyb3IgaW4gYSB2MCBjaGF0IixlLlYwX0NIQVRfRVhQRUNURURfRVJST1I9IlVzZXIgZW5jb3VudGVyZWQgYW4gZXhwZWN0ZWQgZXJyb3IgaW4gYSB2MCBjaGF0IixlfSh7fSksRmU9T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKFplKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHQ9YShlLDIpLG49dFswXTtyZXR1cm5bdFsxXSxuXX0pKTtuZXcgUHJvbWlzZShmdW5jdGlvbihlKXswfSk7dmFyIEJlPWZ1bmN0aW9uKGUpe3JldHVybiBlLlRPR0dMRV9QT1BQRVI9InRvZ2dsZS1wb3BwZXIiLGUuQ0xPU0VfUE9QUEVSPSJjbG9zZS1wb3BwZXIiLGUuR0VUX1dJTkRPV19TSVpFPSJnZXQtd2luZG93LXNpemUiLGUuVE9HR0xFX0ZFRURCQUNLX1ZJU0lCSUxJVFk9InRvZ2dsZS1mZWVkYmFjay12aXNpYmxpdHkiLGUuTE9HT1VUPSJsb2dvdXQiLGUuUkVBRFk9InJlYWR5IixlLlJFUExZX0ZST01fTElWRV9GUkFNRT0ibGl2ZS1mcmFtZS1yZXBseSIsZS5UT09MQkFSX1NJWkVfQ0hBTkdFRD0idG9vbGJhci1zaXplLWNoYW5nZWQiLGUuR0VUX1dJTkRPV19UUkFDS0lOR19EQVRBPSJnZXQtd2luZG93LXRyYWNraW5nLWRhdGEiLGV9KHt9KSxVZT1bImV2ZW50Il07ZnVuY3Rpb24gS2UoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBHZShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9LZShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7eShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpLZShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9dmFyIHFlPSJzZW5kQmVhY29uImluIG5hdmlnYXRvcjtmdW5jdGlvbiB6ZSgpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24gdChuKXt2YXIgcjtuLm9yaWdpbj09PXgoKSYmKG51bGw9PT0ocj1uLmRhdGEpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLnR5cGUpPT09QmUuR0VUX1dJTkRPV19UUkFDS0lOR19EQVRBJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHQpLGUobi5kYXRhLmRhdGEpKX0pLHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uoe3R5cGU6QmUuR0VUX1dJTkRPV19UUkFDS0lOR19EQVRBfSx4KCkpfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pfWZ1bmN0aW9uIFFlKGUpe3JldHVybiBKZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSmUoKXtyZXR1cm4gSmU9cyh1KCkubWFyayhmdW5jdGlvbiBlKHQpe3ZhciBuLHIsbyxhLGkscz1hcmd1bWVudHM7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBvPXMubGVuZ3RoPjEmJnZvaWQgMCE9PXNbMV0/c1sxXTp7fSxlLm5leHQ9MSx6ZSgpO2Nhc2UgMTphPWUuc2VudCxpPXtpZGVudGl0eTpmZSgpLGV2ZW50OnQsdGltZXN0YW1wOihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSxwcm9wZXJ0aWVzOkdlKEdlKHtzdGFibGVfaWQ6bnVsbCE9PShuPWxlKCkpJiZ2b2lkIDAhPT1uP246IiIsZXZlbnRfdGltZTpEYXRlLm5vdygpLGV2ZW50X25hbWU6bnVsbCE9PShyPUZlW3RdKSYmdm9pZCAwIT09cj9yOiJVTktOT1dOX0VWRU5UIixvcmlnaW46eCgpLHVzZXJfYWdlbnQ6bmF2aWdhdG9yLnVzZXJBZ2VudH0sYSksbyl9LEcoKT9VKCIvYXBpL2V2ZW50L3RpY2siLHttZXRob2Q6IlBPU1QiLGJvZHk6SlNPTi5zdHJpbmdpZnkoaSl9KTpxZT9uYXZpZ2F0b3Iuc2VuZEJlYWNvbigiL2FwaS9ldmVudC90aWNrIixKU09OLnN0cmluZ2lmeShpKSk6ZmV0Y2goIi9hcGkvZXZlbnQvdGljayIse21ldGhvZDoiUE9TVCIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0pO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSksSmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFhlKGUpe3RyeXtRZShaZS5GRUVEQkFDS19VTkNBVUdIVF9FWENFUFRJT04sZSl9Y2F0Y2goZSl7fX12YXIgWWU9big0MDY3NyksV2U9bi5uKFllKSwkZT1uKDU2MDUwKSxldD1uLm4oJGUpLHR0PW4oMjAzMzMpLG50PW4ubih0dCkscnQ9big5MzIwOSksb3Q9bi5uKHJ0KSxhdD1uKDEyNDU0KSxpdD1uLm4oYXQpLHN0PW4oOTAxMDIpLGN0PXt9O2N0LnN0eWxlVGFnVHJhbnNmb3JtPWl0KCksY3Quc2V0QXR0cmlidXRlcz1udCgpLGN0Lmluc2VydD12LGN0LmRvbUFQST1ldCgpLGN0Lmluc2VydFN0eWxlRWxlbWVudD1vdCgpO1dlKCkoc3QuQSxjdCk7c3QuQSYmc3QuQS5sb2NhbHMmJnN0LkEubG9jYWxzO3ZhciB1dCxkdD1uKDY4MDE4KSxsdD1uLm4oZHQpO2Z1bmN0aW9uIHB0KGUpe3ZhciB0PShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30pLmRhbmdlcm91c0N1c3RvbVNjcmlwdENoZWNrZWRGb3JYU1Msbj12b2lkIDA9PT10PyIiOnQ7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PW5ldyBVUkwoZSk7aWYoIVsiaHR0cDoiLCJodHRwczoiXS5pbmNsdWRlcyh0LnByb3RvY29sKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdXJsIHByb3RvY29sOiAiLmNvbmNhdCh0LmhyZWYpKX19KGUpLCdcbiA8IWRvY3R5cGUgaHRtbD5cbiAgPGh0bWwgbGFuZz0iZW4iPlxuICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+XG4gIDxtZXRhIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiIG5hbWU9InZpZXdwb3J0Ij5cbiAgPHN0eWxlPi8qIW5vcm1hbGl6ZS5jc3MgdjguMC4xIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyovaHRtbHtsaW5lLWhlaWdodDoxLjE1Oy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlO2hlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlfWJvZHl7bWFyZ2luOjB9bWFpbntkaXNwbGF5OmJsb2NrfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOi42N2VtIDB9aHJ7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6MDtvdmVyZmxvdzp2aXNpYmxlfXByZXtmb250LWZhbWlseTptb25vc3BhY2UsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19YXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfWFiYnJbdGl0bGVde2JvcmRlci1ib3R0b206bm9uZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGRlcn1jb2RlLGtiZCxzYW1we2ZvbnQtZmFtaWx5Om1vbm9zcGFjZSxtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19aW1ne2JvcmRlci1zdHlsZTpub25lfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXNpemU6MTAwJTtsaW5lLWhlaWdodDoxLjE1O21hcmdpbjowfWJ1dHRvbixpbnB1dHtvdmVyZmxvdzp2aXNpYmxlfWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1bdHlwZT1idXR0b25dLFt0eXBlPXJlc2V0XSxbdHlwZT1zdWJtaXRdLGJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufVt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIsYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlci1zdHlsZTpub25lO3BhZGRpbmc6MH1bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZyxbdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nLGJ1dHRvbjotbW96LWZvY3VzcmluZ3tvdXRsaW5lOjFweCBkb3R0ZWQgQnV0dG9uVGV4dH1maWVsZHNldHtwYWRkaW5nOi4zNWVtIC43NWVtIC42MjVlbX1sZWdlbmR7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7ZGlzcGxheTp0YWJsZTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjA7d2hpdGUtc3BhY2U6bm9ybWFsfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXRleHRhcmVhe292ZXJmbG93OmF1dG99W3R5cGU9Y2hlY2tib3hdLFt0eXBlPXJhZGlvXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfVt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31bdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7b3V0bGluZS1vZmZzZXQ6LTJweH1bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9ZGV0YWlsc3tkaXNwbGF5OmJsb2NrfXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW19dGVtcGxhdGV7ZGlzcGxheTpub25lfVtoaWRkZW5de2Rpc3BsYXk6bm9uZX0qLCo6YmVmb3JlLCo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94fWJvZHl7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQ6I0ZGRjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LHNlZ29lIHVpLHJvYm90byxveHlnZW4sdWJ1bnR1LGNhbnRhcmVsbCxmaXJhIHNhbnMsZHJvaWQgc2FucyxoZWx2ZXRpY2EgbmV1ZSxzYW5zLXNlcmlmO2hlaWdodDoxMDB2aDtoZWlnaHQ6LXdlYmtpdC1maWxsLWF2YWlsYWJsZTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21heC1oZWlnaHQ6MTAwdmg7bWF4LWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO21pbi1oZWlnaHQ6MTAwdmg7bWluLWhlaWdodDotd2Via2l0LWZpbGwtYXZhaWxhYmxlO3BhZGRpbmc6MDstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkfWgxe2NvbG9yOiMxNzE3MTc7Zm9udC1zaXplOjI0cHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjMycHg7bWFyZ2luOjA7bWFyZ2luLWJvdHRvbTo4cHg7dGV4dC1hbGlnbjpjZW50ZXJ9aDEscHttYXJnaW46MH0uY29udGFpbmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fS5mb290ZXJ7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjMycHg7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjIwcHg7Y29sb3I6IzY2NjtvcGFjaXR5OjA7YW5pbWF0aW9uOmFwcGVhciAzMDBtcyBlYXNlIDRzIGZvcndhcmRzfS5mb290ZXIgYXtjb2xvcjojMTcxNzE3fS5zcGlubmVyLXdyYXBwZXJ7aGVpZ2h0OjI0cHg7d2lkdGg6MjRweH0uc3Bpbm5lcntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NTAlO2xlZnQ6NTAlO2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LnNwaW5uZXItYmFyey13ZWJraXQtYW5pbWF0aW9uOnNwaW5uZXItc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTthbmltYXRpb246c3Bpbm5lci1zcGluIDEuMnMgbGluZWFyIGluZmluaXRlO2JhY2tncm91bmQ6IzhGOEY4Rjtib3JkZXItcmFkaXVzOjVweDtoZWlnaHQ6OCU7bGVmdDotMTAlO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMy45JTt3aWR0aDoyNCV9LnNwaW5uZXItYmFyOm50aC1jaGlsZCgxKXthbmltYXRpb24tZGVsYXk6LTEuMnM7dHJhbnNmb3JtOnJvdGF0ZSgwLjAwMDFkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc3Bpbm5lci1iYXI6bnRoLWNoaWxkKDIpe2FuaW1hdGlvbi1kZWxheTotMS4xczt0cmFuc2Zvcm06cm90YXRlKDMwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNwaW5uZXItYmFyOm50aC1jaGlsZCgzKXthbmltYXRpb24tZGVsYXk6LTFzO3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc3Bpbm5lci1iYXI6bnRoLWNoaWxkKDQpe2FuaW1hdGlvbi1kZWxheTotLjlzO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc3Bpbm5lci1iYXI6bnRoLWNoaWxkKDUpe2FuaW1hdGlvbi1kZWxheTotLjhzO3RyYW5zZm9ybTpyb3RhdGUoMTIwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNwaW5uZXItYmFyOm50aC1jaGlsZCg2KXthbmltYXRpb24tZGVsYXk6LS43czt0cmFuc2Zvcm06cm90YXRlKDE1MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zcGlubmVyLWJhcjpudGgtY2hpbGQoNyl7YW5pbWF0aW9uLWRlbGF5Oi0uNnM7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc3Bpbm5lci1iYXI6bnRoLWNoaWxkKDgpe2FuaW1hdGlvbi1kZWxheTotLjVzO3RyYW5zZm9ybTpyb3RhdGUoMjEwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNwaW5uZXItYmFyOm50aC1jaGlsZCg5KXthbmltYXRpb24tZGVsYXk6LS40czt0cmFuc2Zvcm06cm90YXRlKDI0MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zcGlubmVyLWJhcjpudGgtY2hpbGQoMTApe2FuaW1hdGlvbi1kZWxheTotLjNzO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNwaW5uZXItYmFyOm50aC1jaGlsZCgxMSl7YW5pbWF0aW9uLWRlbGF5Oi0uMnM7dHJhbnNmb3JtOnJvdGF0ZSgzMDBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc3Bpbm5lci1iYXI6bnRoLWNoaWxkKDEyKXthbmltYXRpb24tZGVsYXk6LS4xczt0cmFuc2Zvcm06cm90YXRlKDMzMGRlZykgdHJhbnNsYXRlKDE0NiUpfUBrZXlmcmFtZXMgc3Bpbm5lci1zcGluezAle29wYWNpdHk6MX0xMDAle29wYWNpdHk6LjE1fX1Aa2V5ZnJhbWVzIGFwcGVhcnsxMDAle29wYWNpdHk6MX19QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQ6IzBBMEEwQX1oMXtjb2xvcjojRURFREVEfS5mb290ZXJ7Y29sb3I6I0ExQTFBMX0uZm9vdGVyIGF7Y29sb3I6I0VERURFRH19PC9zdHlsZT5cbiAgPGJvZHk+XG4gICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj5cbiAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXItd3JhcHBlciI+XG4gICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXIiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXItYmFyIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWJhciI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1iYXIiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXItYmFyIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWJhciI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1iYXIiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXItYmFyIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWJhciI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1iYXIiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9InNwaW5uZXItYmFyIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPSJzcGlubmVyLWJhciI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz0ic3Bpbm5lci1iYXIiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGgxPkF1dGhlbnRpY2F0aW5nPC9oMT5cbiAgICA8L2Rpdj5cbiAgICAnLmNvbmNhdChlPyc8Zm9vdGVyIGNsYXNzPSJmb290ZXIiPlxuICAgICAgICAgICAgPHA+SWYgeW91IGFyZW5cJ3QgYXV0b21hdGljYWxseSByZWRpcmVjdGVkLCA8YVxuICAgICAgICAgICAgICBocmVmPSInLmNvbmNhdChsdCgpKGUpLCciPmNsaWNrIGhlcmU8L2E+PC9wPlxuICAgICAgICA8L2Zvb3Rlcj4nKToiIiwiXG4gIDwvYm9keT5cbiAgPHNjcmlwdD5cbiAgICAiKS5jb25jYXQoZT8id2luZG93LmxvY2F0aW9uID0gIi5jb25jYXQoSlNPTi5zdHJpbmdpZnkoZSkucmVwbGFjZSgvPC9nLCJcXHUwMDNjIiksIjsiKToiIiwiXG4gICAgIikuY29uY2F0KG4sIlxuICA8LyIsInNjcmlwdCIsIj5cbjwvaHRtbD5cbiIpLnRyaW0oKX1mdW5jdGlvbiBmdChlKXt2YXIgdDtudWxsPT09KHQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50cmFja2luZztpZighdXQpcmV0dXJuO3ZhciBuPXV0LHI9bi5hdXRoT3B0aW9ucyxvPW4ud2luZG93U2l6ZSxhPXouZ2V0KCJ1c2Vfb2F1dGhfbG9naW4iKT8iL2FwaS9hdXRoL2F1dGhvcml6ZSI6Ii9sb2dpbiIsaT1uZXcgVVJMKGEsb3JpZ2luKTsiaG9zdG5hbWUiaW4gcj8oaS5zZWFyY2hQYXJhbXMuc2V0KCJob3N0bmFtZSIsci5ob3N0bmFtZSksInBhdGgiaW4gciYmci5wYXRoJiZpLnNlYXJjaFBhcmFtcy5zZXQoInBhdGgiLHIucGF0aCksImRlcGxveW1lbnRJZCJpbiByJiZyLmRlcGxveW1lbnRJZCYmaS5zZWFyY2hQYXJhbXMuc2V0KCJkZXBsb3ltZW50SWQiLHIuZGVwbG95bWVudElkKSk6KGkuc2VhcmNoUGFyYW1zLnNldCgicHJvamVjdElkIixyLnByb2plY3RJZCksaS5zZWFyY2hQYXJhbXMuc2V0KCJvd25lcklkIixyLm93bmVySWQpLHIuYnJhbmNoJiZpLnNlYXJjaFBhcmFtcy5zZXQoImJyYW5jaCIsci5icmFuY2gpKTt2YXIgcz0hMTtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIG49ZnVuY3Rpb24ocil7dmFyIG87ci5vcmlnaW49PT1vcmlnaW4mJiJhdXRoLXJlc3BvbnNlIj09PShudWxsPT09KG89ci5kYXRhKXx8dm9pZCAwPT09bz92b2lkIDA6by50eXBlKSYmci5kYXRhLmF1dGgmJihzPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSxRZShaZS5GRUVEQkFDS19BVVRIX0NPTVBMRVRFLHQpLGUoSWUoe2F1dGg6ci5kYXRhLmF1dGgsdHJhY2tpbmc6dCxza2lwTG9naW5BbmltYXRpb246ITF9KSksbnVsbD09Y3x8Yy5jbG9zZSgpKX0scj1mdW5jdGlvbihlKXt2YXIgdDsiY2xvc2UiPT09KG51bGw9PT0odD1lLmRhdGEpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LnR5cGUpJiYobnVsbD09Y3x8Yy5jbG9zZSgpKX0sYT1mdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsciksY2xlYXJJbnRlcnZhbCh1KSxzfHxlKHZvaWQgMCl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIscik7dmFyIGM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1mdW5jdGlvbihlLHQsbil7cmV0dXJue3dpZHRoOmUsaGVpZ2h0OnQsdG9wOm4ub3V0ZXJIZWlnaHQvMituLnNjcmVlblktdC8yLGxlZnQ6bi5vdXRlcldpZHRoLzIrbi5zY3JlZW5YLWUvMn19KDgwMCw2MDAsdCkscj13aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCJ2ZXJjZWxMb2dpbiIsInBvcHVwPTEsd2lkdGg9Ii5jb25jYXQobi53aWR0aCwiLGhlaWdodD0iKS5jb25jYXQobi5oZWlnaHQsIix0b3A9IikuY29uY2F0KG4udG9wLCIsbGVmdD0iKS5jb25jYXQobi5sZWZ0KSk7cmV0dXJuIG51bGw9PXJ8fHIuZG9jdW1lbnQud3JpdGUocHQoZSkpLHJ9KGkudG9TdHJpbmcoKSxvKTtudWxsPT1jfHxjLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIixmdW5jdGlvbigpe2EoKX0pO3ZhciB1PXNldEludGVydmFsKGZ1bmN0aW9uKCl7bnVsbCE9YyYmYy5jbG9zZWQmJmEoKX0sMjUwKX0pfShlKSl8fHZvaWQgMD09PXR8fHQudGhlbihmdW5jdGlvbihlKXt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJhdXRoLXBvcHVwLXJlc3BvbnNlIixhdXRoOmV9LHgoKSl9KX12YXIgbXQ9big0MzQyMCksaHQ9e307aHQuc3R5bGVUYWdUcmFuc2Zvcm09aXQoKSxodC5zZXRBdHRyaWJ1dGVzPW50KCksaHQuaW5zZXJ0PXYsaHQuZG9tQVBJPWV0KCksaHQuaW5zZXJ0U3R5bGVFbGVtZW50PW90KCk7V2UoKShtdC5BLGh0KTtjb25zdCB2dD1tdC5BJiZtdC5BLmxvY2Fscz9tdC5BLmxvY2Fsczp2b2lkIDA7ZnVuY3Rpb24gZ3QoZSx0KXt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoIW4pe2lmKEFycmF5LmlzQXJyYXkoZSl8fChuPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBidChlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9idChlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGEsaT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gaT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLGE9ZX0sZjpmdW5jdGlvbigpe3RyeXtpfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgYX19fX1mdW5jdGlvbiBidChlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9dmFyIHl0PW5ldyBTZXQ7ZnVuY3Rpb24gd3QoKXt2YXIgZSx0PWd0KHl0KTt0cnl7Zm9yKHQucygpOyEoZT10Lm4oKSkuZG9uZTspeygwLGUudmFsdWUpKCl9fWNhdGNoKGUpe3QuZShlKX1maW5hbGx5e3QuZigpfXl0LmNsZWFyKCl9dmFyIEV0O2Z1bmN0aW9uIE90KGUsdCxuKXt2YXIgcixvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3JldHVybiBvLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHZ0Lm1lbnVCdXR0b24pKSxvLmlubmVySFRNTD0nXG4gIDxkaXYgY2xhc3M9IicuY29uY2F0KFN0cmluZyh2dC5sYWJlbCksJyI+XG4gICAgJykuY29uY2F0KGUub3V0ZXJIVE1MLCJcbiAgICAiKS5jb25jYXQodCwiXG4gIDwvZGl2PlxuICAiKS5jb25jYXQobnVsbCE9PShyPW51bGw9PW4/dm9pZCAwOm4ub3V0ZXJIVE1MKSYmdm9pZCAwIT09cj9yOiIiKSxvfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihlKXshZS50YXJnZXQuY2xvc2VzdCgiYnV0dG9uIikmJmUuY2FuY2VsYWJsZSYmZS5wcmV2ZW50RGVmYXVsdCgpfSx7cGFzc2l2ZTohMX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKGUpe2UuY2FuY2VsYWJsZSYmZS5wcmV2ZW50RGVmYXVsdCgpfSx7cGFzc2l2ZTohMX0pO3ZhciBrdCx4dD1kb2N1bWVudC5jdXJyZW50U2NyaXB0LEF0PW51bGw9PXh0P3ZvaWQgMDp4dC5zcmMsQ3Q9QXQ/bmV3IFVSTChBdCkub3JpZ2luOiIiO251bGw9PT0oa3Q9ZG9jdW1lbnQuY3VycmVudFNjcmlwdCl8fHZvaWQgMD09PWt0fHxrdC5ub25jZTt2YXIgVHQ9U3ltYm9sLmZvcigidmNfdG9vbGJhciIpO2Z1bmN0aW9uIF90KGUpeyhmdW5jdGlvbihlKXtyZXR1cm4gZVtUdF19KShlKSYmKGVbVHRdPSExKX1mdW5jdGlvbiBTdChlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIEx0KGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP0x0KGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtuJiYoZT1uKTt2YXIgcj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiByPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtyKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgYSxpPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtuPW4uY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPW4ubmV4dCgpO3JldHVybiBpPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsYT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2l8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBhfX19fWZ1bmN0aW9uIEx0KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIganQ9bmV3IFNldDtmdW5jdGlvbiBEdChlKXt2YXIgdCxuPVN0KGp0KTt0cnl7Zm9yKG4ucygpOyEodD1uLm4oKSkuZG9uZTspe3ZhciByPXQudmFsdWU7cihlKSxqdC5kZWxldGUocil9fWNhdGNoKGUpe24uZShlKX1maW5hbGx5e24uZigpfX1mdW5jdGlvbiBJdCgpe0R0KCEwKSxmdW5jdGlvbihlKXtpZihOdClyZXR1cm4gTnQoZSl9KCk7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZS5zcmM9QXQ7dmFyIHQsbj1TdCh4dC5hdHRyaWJ1dGVzKTt0cnl7Zm9yKG4ucygpOyEodD1uLm4oKSkuZG9uZTspe3ZhciByPXQudmFsdWU7ZS5zZXRBdHRyaWJ1dGUoci5uYW1lLHIudmFsdWUpfX1jYXRjaChlKXtuLmUoZSl9ZmluYWxseXtuLmYoKX1fdCh3aW5kb3cpLHh0LnJlbW92ZSgpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9dmFyIFJ0PSJ2ZXJjZWwtbGl2ZS1mZWVkYmFjay1vcHRvdXQiO2Z1bmN0aW9uIFB0KCl7cmV0dXJuIjEiPT09c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShSdCl9dmFyIE50O3ZhciBNdD1mdW5jdGlvbigpe307d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGUpeyJleHRlbnNpb24tY2xpY2tlZCI9PT1lLmRhdGEudHlwZSYmZS5vcmlnaW49PT1DdCYmTXQoKX0pO3ZhciBWdD1mdW5jdGlvbigpe30sSHQ9big4NDgzNiksWnQ9e307WnQuc3R5bGVUYWdUcmFuc2Zvcm09aXQoKSxadC5zZXRBdHRyaWJ1dGVzPW50KCksWnQuaW5zZXJ0PXYsWnQuZG9tQVBJPWV0KCksWnQuaW5zZXJ0U3R5bGVFbGVtZW50PW90KCk7V2UoKShIdC5BLFp0KTtjb25zdCBGdD1IdC5BJiZIdC5BLmxvY2Fscz9IdC5BLmxvY2Fsczp2b2lkIDA7dmFyIEJ0PSExLFV0PW5ldyBQcm94eSh7fSx7Z2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGgsdD1uZXcgQXJyYXkoZSksbj0wO248ZTtuKyspdFtuXT1hcmd1bWVudHNbbl07dmFyIHI9dFsxXSxvPVsiZWxlbWVudCIsInNoYWRvd1Jvb3QiLCJtZW51Il0uaW5jbHVkZXMocik7aWYoIUJ0JiZvKUt0KCk7ZWxzZSBpZihCdCYmbyl7dmFyIGE7bnVsbCE9PShhPXRbMF0uZWxlbWVudCkmJnZvaWQgMCE9PWEmJmEuaXNDb25uZWN0ZWR8fChCdD0hMSxLdCgpKX1yZXR1cm4gUmVmbGVjdC5nZXQuYXBwbHkoUmVmbGVjdCx0KX19KTtmdW5jdGlvbiBLdCgpe1Z0KCJDcmVhdGluZyB0b29sYmFyIHJvb3QiKTt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2ZXJjZWwtbGl2ZS1mZWVkYmFjayIpO2Uuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MjE0NzQ4MzY0NyI7dmFyIHQ9ZS5hdHRhY2hTaGFkb3coe21vZGU6ImNsb3NlZCJ9KSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5hcHBlbmRDaGlsZChyKSx0LmFwcGVuZENoaWxkKG4pLGgodCksVXQuZWxlbWVudD1lLFV0LnNoYWRvd1Jvb3Q9dCxVdC5tZW51PXtjb250YWluZXI6bixjb250ZW50OnIscmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCx0PWQobi5jbGFzc0xpc3QpO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbz10W2VdO24uY2xhc3NMaXN0LnJlbW92ZShvKX1mb3IodmFyIGE9MCxpPWQoci5jbGFzc0xpc3QpO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1pW2FdO3IuY2xhc3NMaXN0LnJlbW92ZShzKX1yLnBvcG92ZXI9bnVsbCxuLmNsYXNzTGlzdC5hZGQoU3RyaW5nKEZ0LmhpZGRlbikpfX0sQnQ9ITA7dmFyIG8sYT1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbih0KXt0LnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuImNoaWxkTGlzdCI9PT1lLnR5cGUmJmQoZS5yZW1vdmVkTm9kZXMpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFbGVtZW50JiYiVkVSQ0VMLUxJVkUtRkVFREJBQ0siPT09ZS50YWdOYW1lfSl9KSYmKGEuZGlzY29ubmVjdCgpLGUucmVtb3ZlKCksKCJyZXF1ZXN0SWRsZUNhbGxiYWNrImluIHdpbmRvdz93aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjazpzZXRUaW1lb3V0KShmdW5jdGlvbigpe1B0KCk/KER0KCExKSxzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJ2ZXJjZWwtdG9vbGJhci1hY3RpdmF0ZWQiKSx4dC5yZW1vdmUoKSk6KFZ0KCJSZS1hdHRhY2hpbmcgdG9vbGJhciByb290IiksSXQoKSl9KSl9KTthLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwfSksd2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZlcmNlbC1saXZlLWZlZWRiYWNrIil8fGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksbz1mdW5jdGlvbih0KXthLmRpc2Nvbm5lY3QoKSxlLnJlbW92ZSgpLHR8fChCdD0hMSl9LGp0LmFkZChvKX12YXIgR3Q9bigxODg4OCkscXQ9e307cXQuc3R5bGVUYWdUcmFuc2Zvcm09aXQoKSxxdC5zZXRBdHRyaWJ1dGVzPW50KCkscXQuaW5zZXJ0PXYscXQuZG9tQVBJPWV0KCkscXQuaW5zZXJ0U3R5bGVFbGVtZW50PW90KCk7V2UoKShHdC5BLHF0KTtHdC5BJiZHdC5BLmxvY2FscyYmR3QuQS5sb2NhbHM7dmFyIHp0PWZ1bmN0aW9uKGUpe3JldHVybiBlLmRyYWZ0PSJkcmFmdCIsZS5mbGFnT3ZlcnJpZGVzPSJmbGFnT3ZlcnJpZGVzIixlLmZsYWdSZWNvbW1lbmRhdGlvbnM9ImZsYWdSZWNvbW1lbmRhdGlvbnMiLGUudGhyZWFkTGluaz0idGhyZWFkTGluayIsZS50b29sYmFyPSJ0b29sYmFyIixlLm5vbkJsb2NraW5nVG9vbGJhcj0ibm9uQmxvY2tpbmdUb29sYmFyIixlLmZsYWdDb29raWU9ImZsYWdDb29raWUiLGUuYmlzZWN0PSJiaXNlY3QiLGV9KHt9KTt6dC5mbGFnUmVjb21tZW5kYXRpb25zLHp0LmZsYWdPdmVycmlkZXMsenQudGhyZWFkTGluayx6dC50b29sYmFyLHp0LmRyYWZ0O3ZhciBRdD1uKDQwODkzKSxKdD17fTtKdC5zdHlsZVRhZ1RyYW5zZm9ybT1pdCgpLEp0LnNldEF0dHJpYnV0ZXM9bnQoKSxKdC5pbnNlcnQ9dixKdC5kb21BUEk9ZXQoKSxKdC5pbnNlcnRTdHlsZUVsZW1lbnQ9b3QoKTtXZSgpKFF0LkEsSnQpO2NvbnN0IFh0PVF0LkEmJlF0LkEubG9jYWxzP1F0LkEubG9jYWxzOnZvaWQgMDtmdW5jdGlvbiBZdChlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIFd0KGUsdCk7dmFyIG49e30udG9TdHJpbmcuY2FsbChlKS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PW4mJmUuY29uc3RydWN0b3ImJihuPWUuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ufHwiU2V0Ij09PW4/QXJyYXkuZnJvbShlKToiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pP1d0KGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtuJiYoZT1uKTt2YXIgcj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiByPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtyKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgYSxpPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtuPW4uY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPW4ubmV4dCgpO3JldHVybiBpPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsYT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2l8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBhfX19fWZ1bmN0aW9uIFd0KGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgJHQ9bmV3IFNldDtmdW5jdGlvbiBlbigpe3ZhciBlLHQ9WXQoJHQpO3RyeXtmb3IodC5zKCk7IShlPXQubigpKS5kb25lOyl7KDAsZS52YWx1ZSkoKX19Y2F0Y2goZSl7dC5lKGUpfWZpbmFsbHl7dC5mKCl9JHQuY2xlYXIoKX1mdW5jdGlvbiB0bihlLHQpe3ZhciBuPSJWZXJjZWwgVG9vbGJhciIscj10LnNwbGl0KG4pO3IuZm9yRWFjaChmdW5jdGlvbih0LG8pe2lmKGUuYXBwZW5kKHQpLG88ci5sZW5ndGgtMSl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO2EuY2xhc3NMaXN0LmFkZChTdHJpbmcoWHQucHJvZHVjdE5hbWUpKSxhLnRleHRDb250ZW50PW4sZS5hcHBlbmQoYSl9fSl9ZnVuY3Rpb24gbm4oZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBybihlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9ubihPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7eShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpubihPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb24oKXtyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaGFzLXVzZXItc2V0dGluZ3MiKX1mdW5jdGlvbiBhbihlKXtyZXR1cm4gc24uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHNuKCl7cmV0dXJuKHNuPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoSSgpJiZvbigpKXtlLm5leHQ9MTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIse2FjdGl2YXRlOiJpbnRlbnQiLHNob3c6ImFsd2F5cyIsaXNJbnN0YWxsZWQ6ITF9KTtjYXNlIDE6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciBuPWZ1bmN0aW9uKHQpe3ZhciByLG87aWYoInVzZXItc2V0dGluZ3MtcmVzcG9uc2UiPT09dC5kYXRhLnR5cGUmJnQub3JpZ2luPT09d2luZG93Lm9yaWdpbil7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pO3ZhciBhPXQuZGF0YS5zZXR0aW5ncyxpPXZvaWQgMD09PWE/e306YTtlKHJuKHJuKHt9LGkpLHt9LHthY3RpdmF0ZTpudWxsIT09KHI9aS5hY3RpdmF0ZSkmJnZvaWQgMCE9PXI/cjoiaW50ZW50IixzaG93Om51bGwhPT0obz1pLnNob3cpJiZ2b2lkIDAhPT1vP286ImFsd2F5cyIsaXNJbnN0YWxsZWQ6ITB9KSl9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbiksd2luZG93LnBvc3RNZXNzYWdlKHJuKHthY3Rpb246InVzZXItc2V0dGluZ3MifSx0P3tzZXR0aW5nczp0fTp7fSkpfSkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSkpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBjbigpe3JldHVybiB1bi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdW4oKXtyZXR1cm4odW49cyh1KCkubWFyayhmdW5jdGlvbiBlKCl7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLmFicnVwdCgicmV0dXJuIixhbigpKTtjYXNlIDE6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZG4oZSx0KXt2YXIgbj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZVtTeW1ib2wuaXRlcmF0b3JdfHxlWyJAQGl0ZXJhdG9yIl07aWYoIW4pe2lmKEFycmF5LmlzQXJyYXkoZSl8fChuPWZ1bmN0aW9uKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBsbihlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9sbihlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGEsaT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gaT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLGE9ZX0sZjpmdW5jdGlvbigpe3RyeXtpfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgYX19fX1mdW5jdGlvbiBsbihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9aChkb2N1bWVudC5oZWFkKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7dmFyIHQ9eCghMSk7aWYoKCF0fHxlLm9yaWdpbj09PXQpJiZlLmRhdGEpe3ZhciBuPWUuZGF0YSxyPW4udHlwZSxvPW4ucmVwbHlJZCxhPW4ucGF5bG9hZDtpZihyJiZvKXt2YXIgaT1mdW5jdGlvbihlLG4pe3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UoZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/QShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7eShlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpBKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX0oe3R5cGU6ImxpdmUtZnJhbWUtcmVwbHkiLGlkOm99LG4/e2Vycm9yOm4gaW5zdGFuY2VvZiBFcnJvcj8iIi5jb25jYXQobik6bn06e3Jlc3VsdDplfSksdHx8IioiKX0scz1DLmdldChyKTtpZighcylyZXR1cm4gaSh2b2lkIDAsbmV3IEVycm9yKCJObyBoYW5kbGVyIGZvdW5kIGZvciB0aGF0IHR5cGUgIi5jb25jYXQocikpKTtzKGEsZSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gaShlKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Rocm93IGkodm9pZCAwLGUpLGV9KX19fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLE8pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixCKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7ImNhbi1pbmxpbmUtc2NyaXB0cyI9PT1lLmRhdGEudHlwZSYmZS5vcmlnaW49PT14KCkmJndpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uoe3R5cGU6ImNhbi1pbmxpbmUtc2NyaXB0cyIsaGFzSW5saW5lOlp9LHgoKSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7aWYoImZyYW1lLXByb3h5LWZldGNoIj09PWUuZGF0YS50eXBlKXt2YXIgdD14KCExKTtpZih0JiZ0PT09ZS5vcmlnaW4pcmV0dXJuIG5ldyBVUkwoZS5kYXRhLnVybCkub3JpZ2luIT09dHx8RygpLHZvaWQgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToiZnJhbWUtcHJveHktZmV0Y2gtcmVzcG9uc2UiLHJlcXVlc3RJZDplLmRhdGEucmVxdWVzdElkLGNhblByb3h5OiExfSx0KX19KSxuYXZpZ2F0b3Iuc3RvcmFnZS5wZXJzaXN0ZWQoKS50aGVuKGZ1bmN0aW9uKGUpezB9KS5jYXRjaChmdW5jdGlvbigpe30pLFQoInRyYWNrLWNsaWVudCIsZnVuY3Rpb24oKXt2YXIgZT1zKHUoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scjtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49dC5ldmVudCxyPUhlKHQsVWUpLGUuYWJydXB0KCJyZXR1cm4iLFFlKG4scikpO2Nhc2UgMTpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLFQoImV4dGVuc2lvbi11c2VyLXNldHRpbmdzIixmdW5jdGlvbigpe3ZhciBlPXModSgpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbjtyZXR1cm4gdSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIG49dC5zZXR0aW5ncyxlLmFicnVwdCgicmV0dXJuIixhbihuKSk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGUpeyJ1cGRhdGUtZXh0ZW5zaW9uLXNldHRpbmdzIj09PWUuZGF0YS50eXBlJiZlLm9yaWdpbj09PXgoKSYmYW4oZS5kYXRhLnNldHRpbmdzKX0pLGZ1bmN0aW9uKCl7dHJ5e3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24oZSl7dmFyIHQ7WGUoe3R5cGU6ZS50eXBlLG1lc3NhZ2U6ZS5tZXNzYWdlLGZpbGVuYW1lOmUuZmlsZW5hbWUsbGluZW5vOmUubGluZW5vLGNvbG5vOmUuY29sbm8sc3RhY2s6bnVsbCE9PSh0PWUuZXJyb3Iuc3RhY2spJiZ2b2lkIDAhPT10P3Q6bnVsbH0pfSx7b25jZTohMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLGZ1bmN0aW9uKGUpe1hlKHt0eXBlOmUudHlwZSxtZXNzYWdlOmUucmVhc29ufSl9LHtvbmNlOiEwfSl9Y2F0Y2goZSl7fX0oKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7dmFyIHQ7InJlbmRlci1pbnRlbnQiPT09ZS5kYXRhLnR5cGUmJmUub3JpZ2luPT09eCghMSkmJihlbigpLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1mdW5jdGlvbihlKXtzd2l0Y2goZSl7Y2FzZSB6dC50b29sYmFyOnJldHVybnt0aXRsZToiVXNlIHRoZSBWZXJjZWwgVG9vbGJhciIsc3VidGl0bGU6IkFkZCBjb21tZW50cywgYXBwbHkgZmVhdHVyZSBmbGFncywgYW5kIGluc3BlY3QgcGVyZm9ybWFuY2UgYW5kIGFjY2Vzc2liaWxpdHkuIixzZWNvbmRhcnlCdXR0b25UZXh0OiJTdGF5IExvZ2dlZCBPdXQifTtjYXNlIHp0LmZsYWdPdmVycmlkZXM6cmV0dXJue3RpdGxlOiJVc2UgU2hhcmVkIEZsYWcgT3ZlcnJpZGVzIixzdWJ0aXRsZToiQXBwbHkgdGhlIGZsYWcgb3ZlcnJpZGVzIHNoYXJlZCB3aXRoIHRoaXMgbGluayBpbiB0aGUgVmVyY2VsIFRvb2xiYXIuIE9ubHkgeW91ciBzZXNzaW9uIGlzIGFmZmVjdGVkLiIsc2Vjb25kYXJ5QnV0dG9uVGV4dDoiU2tpcCBPdmVycmlkZXMifTtjYXNlIHp0LmZsYWdSZWNvbW1lbmRhdGlvbnM6cmV0dXJue3RpdGxlOiJVc2UgUmVjb21tZW5kZWQgRmxhZyBPdmVycmlkZXMiLHN1YnRpdGxlOiJBcHBseSB0aGUgZmxhZyBvdmVycmlkZXMgcmVjb21tZW5kZWQgZm9yIHRoaXMgYnJhbmNoIGluIHRoZSBWZXJjZWwgVG9vbGJhci4gT25seSB5b3VyIHNlc3Npb24gaXMgYWZmZWN0ZWQuIixzZWNvbmRhcnlCdXR0b25UZXh0OiJTa2lwIE92ZXJyaWRlcyJ9O2Nhc2UgenQudGhyZWFkTGluazpyZXR1cm57dGl0bGU6IlZpZXcgQ29tbWVudCIsc3VidGl0bGU6IlJlYWQgYW5kIHJlcGx5IHRvIGZlZWRiYWNrIGF0dGFjaGVkIGRpcmVjdGx5IHRvIHRoaXMgcGFnZSBpbiB0aGUgVmVyY2VsIFRvb2xiYXIuIixzZWNvbmRhcnlCdXR0b25UZXh0OiJTa2lwIn07Y2FzZSB6dC5kcmFmdDpyZXR1cm57dGl0bGU6IkRyYWZ0IE1vZGUgSXMgT24iLHN1YnRpdGxlOiJZb3XigJlyZSB2aWV3aW5nIHVucHVibGlzaGVkIGNvbnRlbnQuIEFjdGl2YXRlIHRoZSBWZXJjZWwgVG9vbGJhciB0byBzZWUgY29tbWVudHMgYW5kIGtlZXAgRHJhZnQgTW9kZSB2aXNpYmxlIGFzIHlvdSBuYXZpZ2F0ZS4iLHNlY29uZGFyeUJ1dHRvblRleHQ6IlN0YXkgTG9nZ2VkIE91dCJ9fX0oZSksbj0wLHI9ZChkb2N1bWVudC5ib2R5LmNoaWxkTm9kZXMpO248ci5sZW5ndGg7bisrKXJbbl0ucmVtb3ZlKCk7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc0xpc3QuYWRkKFN0cmluZyhYdC5tb2RhbCkpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IiwiaW50ZW50LWRlc2NyaXB0aW9uIiksby5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIsImludGVudC10aXRsZSIpLG8uc2V0QXR0cmlidXRlKCJhcmlhLW1vZGFsIiwidHJ1ZSIpLG8uc2V0QXR0cmlidXRlKCJyb2xlIiwiZGlhbG9nIik7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc0xpc3QuYWRkKFN0cmluZyhYdC5jb250YWluZXIpKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTGlzdC5hZGQoU3RyaW5nKFh0LnByb2R1Y3RMYWJlbCkpLGkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiVmVyY2VsIiksaS5zZXRBdHRyaWJ1dGUoInJvbGUiLCJpbWciKTt2YXIgcz1mdW5jdGlvbihlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmlubmVySFRNTD0nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyNjIgNTIiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0ibTU5LjgwMiA1Mi0yOS45LTUyLTI5LjkgNTJ6bTMwLjE1Ny0yLjM2NyAyNC45ODgtNDcuMjdoLTEwLjgwOGwtMTcuMjM3IDM0LjMzLTE3LjIzNy0zNC4zM0g1OC44NTZsMjQuOTg4IDQ3LjI3ek0yNjAuMjUgMi4zNjN2NDcuMjdoLTguOTQ4VjIuMzYzek0yMTAuNDQyIDMxLjk5cTAtNS41MjYgMi4zMDctOS43MnQ2LjQzMi02LjQ1OHE0LjEyNC0yLjI2NCA5LjY0Ny0yLjI2NCA0Ljg5MyAwIDguODA4IDIuMTMgMy45MTQgMi4xMzIgNi4yMjEgNi4zMjZ0Mi4zNzcgMTAuMjUydjIuMDY0SDIxOS44OHEuMjc5IDQuMzk1IDIuNTg2IDYuOTI0IDIuMzc3IDIuNDYzIDYuMzYyIDIuNDY0YTguNDQgOC40NCAwIDAgMCA0LjYxMy0xLjMzMiA4LjMgOC4zIDAgMCAwIDMuMTQ2LTMuNTk1bDkuMTU4LjY2NnEtMS42NzggNC45OTItNi4yOTIgNy45ODl0LTEwLjYyNSAyLjk5NnEtNS41MjMgMC05LjY0Ny0yLjI2NHQtNi40MzItNi40NThxLTIuMzA3LTQuMTk0LTIuMzA3LTkuNzJtMjYuNTY0LTMuMzI5cS0uNDktNC4zMjgtMi43MjYtNi4zMjQtMi4yMzctMi4wNjQtNS40NTItMi4wNjQtMy43MDUgMC02LjAxMiAyLjE5Ny0yLjMwOCAyLjE5Ni0yLjg2NiA2LjE5MXptLTQxLjY1OS02LjMyNHEyLjIzNyAxLjc5NyAyLjc5NiA0Ljk5M2w5LjIyOC0uNDY2cS0uNDktNC4wNjItMi44NjYtNy4wNTctMi4zNzgtMi45OTctNi4xNTItNC41OTQtMy43MDUtMS42NjUtOC4xNzktMS42NjUtNS41MjIgMC05LjY0NyAyLjI2NHQtNi40MzEgNi40NTgtMi4zMDcgOS43MiAyLjMwNyA5LjcyIDYuNDMxIDYuNDU4cTQuMTI1IDIuMjY1IDkuNjQ3IDIuMjY0IDQuNjE0IDAgOC4zODktMS42NjUgMy43NzQtMS43MzEgNi4xNTEtNC44NnQyLjg2Ni03LjMyM2wtOS4yOTctLjRxLS40OSAzLjUyOS0yLjcyNiA1LjQ2LTIuMjM4IDEuODYzLTUuMzgzIDEuODY0LTQuMzMzIDAtNi43MTEtMi45OTYtMi4zNzctMi45OTYtMi4zNzctOC41MjJ0Mi4zNzctOC41MjIgNi43MTEtMi45OTZxMy4wMDYgMCA1LjE3MyAxLjg2NG0tNDUuMzkyLTcuOTkxaDguMzI2bC4yNDEgNi43OXEuODg3LTIuODgyIDIuNDY2LTQuNDc3IDIuMjktMi4zMTMgNi4zODMtMi4zMTNoMy40djcuMjY5aC0zLjQ2OXEtMi45MTUgMC00Ljc4OC43OTNhNS43OCA1Ljc4IDAgMCAwLTIuNzc1IDIuNTFxLS45MDIgMS43MTktLjkwMiA0LjM2MnYyMC4zNTNoLTguODgyem0tMzguNDA3IDcuOTI0cS0yLjMwNyA0LjE5NC0yLjMwNyA5LjcydDIuMzA3IDkuNzIgNi40MzEgNi40NTggOS42NDcgMi4yNjRxNi4wMTIgMCAxMC42MjYtMi45OTZ0Ni4yOTEtNy45OWwtOS4xNTgtLjY2NWE4LjMgOC4zIDAgMCAxLTMuMTQ1IDMuNTk1IDguNDQgOC40NCAwIDAgMS00LjYxNCAxLjMzMnEtMy45ODQgMC02LjM2MS0yLjQ2NC0yLjMwNy0yLjUyOS0yLjU4Ny02LjkyNGgyNi4zNTR2LTIuMDY0cS0uMDY5LTYuMDU4LTIuMzc2LTEwLjI1MnQtNi4yMjItNi4zMjUtOC44MDgtMi4xM3EtNS41MjMgMC05LjY0NyAyLjI2M3QtNi40MzEgNi40NThtMjEuNTMxLjA2N3EyLjIzNyAxLjk5NyAyLjcyNiA2LjMyNGgtMTcuMDU3cS41Ni0zLjk5NSAyLjg2Ni02LjE5MSAyLjMwNy0yLjE5NyA2LjAxMi0yLjE5NyAzLjIxNiAwIDUuNDUzIDIuMDY0Ii8+PC9zdmc+JyxlJiZ0LmZpcnN0Q2hpbGQuY2xhc3NMaXN0LmFkZChlKSx0LmZpcnN0Q2hpbGR9KCk7cy5jbGFzc0xpc3QuYWRkKFN0cmluZyhYdC5wcm9kdWN0SWNvbikpLHMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxpLmFwcGVuZChzKSxhLmFwcGVuZENoaWxkKGkpO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIik7Yy5pZD0iaW50ZW50LXRpdGxlIix0bihjLHQudGl0bGUpLGEuYXBwZW5kQ2hpbGQoYyk7dmFyIHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpO3UuaWQ9ImludGVudC1kZXNjcmlwdGlvbiIsdG4odSx0LnN1YnRpdGxlKSxhLmFwcGVuZENoaWxkKHUpO3ZhciBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2wudHlwZT0iYnV0dG9uIixsLmNsYXNzTGlzdC5hZGQoU3RyaW5nKFh0LmNvbnRpbnVlV2l0aFZlcmNlbEJ1dHRvbikpLGwudGV4dENvbnRlbnQ9IkxvZyBJbiB0byBWZXJjZWwiLGwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToiaW50ZW50LWFjdGlvbiIsYWN0aW9uOiJzaWduLWluIn0seCgpKSxmdCh7dHJhY2tpbmc6e2F1dGhPcmlnaW46ImludGVudCIsdXNlZEV4aXN0aW5nQXV0aDohMX19KSxlbigpLFFlKFplLklOVEVOVF9ESUFMT0dfQ0xPU0VELHtpbnRlbnQ6ZSxkaXNtaXNzZWQ6ITEsdmlhOiJjb250aW51ZS13aXRoLXZlcmNlbCJ9KX0pO3ZhciBwPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3AudHlwZT0iYnV0dG9uIixwLmNsYXNzTGlzdC5hZGQoU3RyaW5nKFh0LmNvbnRpbnVlV2l0aG91dEludGVudEJ1dHRvbikpLHAudGV4dENvbnRlbnQ9dC5zZWNvbmRhcnlCdXR0b25UZXh0LHAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToiaW50ZW50LWFjdGlvbiIsYWN0aW9uOiJjb250aW51ZS13aXRob3V0LWludGVudCJ9LHgoKSksZW4oKSxRZShaZS5JTlRFTlRfRElBTE9HX0NMT1NFRCx7aW50ZW50OmUsZGlzbWlzc2VkOiEwLHZpYToiY29udGludWUtd2l0aG91dC1pbnRlbnQifSl9KTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTGlzdC5hZGQoU3RyaW5nKFh0LmFjdGlvbnMpKSxmLmFwcGVuZChsLHApLGEuYXBwZW5kQ2hpbGQoZik7dmFyIG09ZnVuY3Rpb24odCl7aWYoIlRhYiIhPT10LmtleSkiRXNjYXBlIj09PXQua2V5JiYod2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7dHlwZToiaW50ZW50LWFjdGlvbiIsYWN0aW9uOiJjb250aW51ZS13aXRob3V0LWludGVudCJ9LHgoKSksZW4oKSxRZShaZS5JTlRFTlRfRElBTE9HX0NMT1NFRCx7aW50ZW50OmUsZGlzbWlzc2VkOiEwLHZpYToiZXNjYWxlIn0pKTtlbHNle3ZhciBuPXQuc2hpZnRLZXk/cDpsOyh0LnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bHx8IXQuc2hpZnRLZXkmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1wKSYmKHQucHJldmVudERlZmF1bHQoKSxuLmZvY3VzKCkpfX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLG0pLCR0LmFkZChmdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixtKX0pLG8uYXBwZW5kQ2hpbGQoYSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKSxsLmZvY3VzKCl9KGUuZGF0YS5pbnRlbnQpLFFlKFplLklOVEVOVF9ESUFMT0dfU0hPV04se2ludGVudDplLmRhdGEuaW50ZW50LHRpbWVBZnRlck9yaWdpbjpudWxsIT09KHQ9ZS5kYXRhLnRpbWVBZnRlck9yaWdpbikmJnZvaWQgMCE9PXQ/dDpudWxsfSkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGUpe3ZhciB0O2Uub3JpZ2luPT09eCghMSkmJigiaW50ZW50LWRpc21pc3NlZCI9PT1lLmRhdGEudHlwZSYmKFFlKFplLklOVEVOVF9ESUFMT0dfQ0xPU0VELHtpbnRlbnQ6ZS5kYXRhLmludGVudCxkaXNtaXNzZWQ6ITAsdmlhOiJlc2NhcGUifSksZW4oKSksImludGVudC1za2lwcGVkIj09PWUuZGF0YS50eXBlJiZRZShaZS5JTlRFTlRfRElBTE9HX1NLSVBQRUQse2ludGVudDplLmRhdGEuaW50ZW50LHRpbWVBZnRlck9yaWdpbjpudWxsIT09KHQ9ZS5kYXRhLnRpbWVBZnRlck9yaWdpbikmJnZvaWQgMCE9PXQ/dDpudWxsfSkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGUpe2Uub3JpZ2luPT09eCghMSkmJigicmVuZGVyLW1lbnUiPT09ZS5kYXRhLnR5cGU/KHd0KCksZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1kKGRvY3VtZW50LmJvZHkuY2hpbGROb2Rlcyk7dDxuLmxlbmd0aDt0Kyspblt0XS5yZW1vdmUoKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHZ0Lm1lbnUpKSwvXGJBcHBsZVdlYktpdFxiLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiZyLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHZ0LndlYmtpdCkpLChFdD1mdW5jdGlvbihlKXtlP3IuY2xhc3NMaXN0LmFkZChTdHJpbmcodnQubW9iaWxlKSk6ci5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyh2dC5tb2JpbGUpKX0pKGUpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uY2xhc3NMaXN0LmFkZChTdHJpbmcodnQuaGVhZGVyQ29udGFpbmVyKSk7dmFyIGEsaSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuY2xhc3NOYW1lPVN0cmluZyh2dC5pY29uTGlzdCkscy5hcHBlbmQoZnVuY3Rpb24oZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5pbm5lckhUTUw9JzxzdmcgZGF0YS10ZXN0aWQ9ImdlaXN0LWljb24iIGhlaWdodD0iMTYiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBzdHlsZT0iY29sb3I6IGN1cnJlbnRjb2xvcjsiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNC43NSAxLjc1VjFIMy4yNVYxLjc1VjkuMDk0NTFDMS45NTYwOCA5LjQyNzU0IDEgMTAuNjAyMSAxIDEyQzEgMTMuNjU2OSAyLjM0MzE1IDE1IDQgMTVDNS40MjA1MSAxNSA2LjYxMDQyIDE0LjAxMjcgNi45MjEgMTIuNjg2OUM4LjM3MTAyIDEyLjQ4NzIgOS43MjYyIDExLjgxOTcgMTAuNzczIDEwLjc3M0MxMS44MTk3IDkuNzI2MiAxMi40ODcyIDguMzcxMDIgMTIuNjg2OSA2LjkyMUMxNC4wMTI3IDYuNjEwNDIgMTUgNS40MjA1MSAxNSA0QzE1IDIuMzQzMTUgMTMuNjU2OSAxIDEyIDFDMTAuMzQzMSAxIDkgMi4zNDMxNSA5IDRDOSA1LjM3MDY5IDkuOTE5MjQgNi41MjY2NyAxMS4xNzQ5IDYuODg1MUMxMC45OTI5IDcuOTQ5MDQgMTAuNDg1NyA4LjkzODkgOS43MTIzMSA5LjcxMjMxQzguOTM4OSAxMC40ODU3IDcuOTQ5MDQgMTAuOTkyOSA2Ljg4NTEgMTEuMTc0OUM2LjU5NDM5IDEwLjE1NjUgNS43NzkwMyA5LjM1OTM3IDQuNzUgOS4wOTQ1MVYxLjc1Wk0xMy41IDRDMTMuNSA0LjgyODQzIDEyLjgyODQgNS41IDEyIDUuNUMxMS4xNzE2IDUuNSAxMC41IDQuODI4NDMgMTAuNSA0QzEwLjUgMy4xNzE1NyAxMS4xNzE2IDIuNSAxMiAyLjVDMTIuODI4NCAyLjUgMTMuNSAzLjE3MTU3IDEzLjUgNFpNNCAxMy41QzQuODI4NDMgMTMuNSA1LjUgMTIuODI4NCA1LjUgMTJDNS41IDExLjE3MTYgNC44Mjg0MyAxMC41IDQgMTAuNUMzLjE3MTU3IDEwLjUgMi41IDExLjE3MTYgMi41IDEyQzIuNSAxMi44Mjg0IDMuMTcxNTcgMTMuNSA0IDEzLjVaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4nLGUmJnQuZmlyc3RDaGlsZC5jbGFzc0xpc3QuYWRkKGUpLHQuZmlyc3RDaGlsZH0odnQucDMpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuaW5uZXJIVE1MPSc8c3ZnIGRhdGEtdGVzdGlkPSJnZWlzdC1pY29uIiBoZWlnaHQ9IjE2IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgc3R5bGU9ImNvbG9yOiBjdXJyZW50Y29sb3I7Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTcuMjUgMS4yNVYyLjAzOTcxQzUuODc5MjggMi4xODU3MSA0LjYyNjc4IDIuNzI3MzYgMy42MDg5IDMuNTQ4MjRMMy4wMzAzMyAyLjk2OTY3TDIuNSAyLjQzOTM0TDEuNDM5MzQgMy41TDEuOTY5NjcgNC4wMzAzM0wyLjU0ODI0IDQuNjA4OUMxLjU3OTc5IDUuODA5NzYgMSA3LjMzNzE3IDEgOUMxIDEyLjg2NiA0LjEzNDAxIDE2IDggMTZDMTEuODY2IDE2IDE1IDEyLjg2NiAxNSA5QzE1IDcuMzM3MTcgMTQuNDIwMiA1LjgwOTc2IDEzLjQ1MTggNC42MDg5TDE0LjAzMDMgNC4wMzAzM0wxNC41NjA3IDMuNUwxMy41IDIuNDM5MzRMMTIuOTY5NyAyLjk2OTY3TDEyLjM5MTEgMy41NDgyNEMxMS4zNzMyIDIuNzI3MzYgMTAuMTIwNyAyLjE4NTcxIDguNzUgMi4wMzk3MVYxLjI1SDkuMjVIMTBWLTAuMjVIOS4yNUg4Ljc1SDcuMjVINi43NUg2VjEuMjVINi43NUg3LjI1Wk0yLjUgOUMyLjUgNS45NjI0MyA0Ljk2MjQzIDMuNSA4IDMuNUMxMS4wMzc2IDMuNSAxMy41IDUuOTYyNDMgMTMuNSA5QzEzLjUgMTIuMDM3NiAxMS4wMzc2IDE0LjUgOCAxNC41QzQuOTYyNDMgMTQuNSAyLjUgMTIuMDM3NiAyLjUgOVpNOC43NSA2Ljc1VjZINy4yNVY2Ljc1VjlWOS43NUg4Ljc1VjlWNi43NVoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ZnPicsZSYmdC5maXJzdENoaWxkLmNsYXNzTGlzdC5hZGQoZSksdC5maXJzdENoaWxkfSh2dC5wMiksZnVuY3Rpb24oZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5pbm5lckhUTUw9JzxzdmcgZGF0YS10ZXN0aWQ9ImdlaXN0LWljb24iIGhlaWdodD0iMTYiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBzdHlsZT0iY29sb3I6IGN1cnJlbnRjb2xvcjsiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMi44OTE0IDEwLjQwMjhMMi45ODMyNyAxMC42MzE4QzMuMjI5MDkgMTEuMjQ0NSAzLjUgMTIuMTA0NSAzLjUgMTNDMy41IDEzLjM1ODggMy40NTY0IDEzLjcxMzEgMy4zODc3MyAxNC4wNDk1QzMuNjk2MzcgMTMuOTQ0NiA0LjAxNDA5IDEzLjgxNTkgNC4zMjkxOCAxMy42NTg0QzQuODc4ODggMTMuMzgzNSA1LjMzOTYxIDEzLjA2MTEgNS43MDk5NCAxMi43NTIxTDYuMjI0NzEgMTIuMzIyNkw2Ljg4ODA5IDEyLjQxOTZDNy4yNDg1MSAxMi40NzI0IDcuNjE5OTQgMTIuNSA4IDEyLjVDMTEuNzg0MyAxMi41IDE0LjUgOS44NTU2OSAxNC41IDdDMTQuNSA0LjE0NDMxIDExLjc4NDMgMS41IDggMS41QzQuMjE1NzQgMS41IDEuNSA0LjE0NDMxIDEuNSA3QzEuNSA4LjE4MTc1IDEuOTQyMjkgOS4yOTMyMiAyLjczMTAzIDEwLjIxNTNMMi44OTE0IDEwLjQwMjhaTTIuODEzNSAxNS43NjUzQzEuNzYwOTYgMTYgMSAxNiAxIDE2QzEgMTYgMS40MzMyMiAxNS4zMDk3IDEuNzI5MzcgMTQuNDM2N0MxLjg4MzE3IDEzLjk4MzQgMiAxMy40ODA4IDIgMTNDMiAxMi4zODI2IDEuODA3MzMgMTEuNzI5MiAxLjU5MTE0IDExLjE5MDNDMC41OTE4NDUgMTAuMDIyMSAwIDguNTcxNTIgMCA3QzAgMy4xMzQwMSAzLjU4MTcyIDAgOCAwQzEyLjQxODMgMCAxNiAzLjEzNDAxIDE2IDdDMTYgMTAuODY2IDEyLjQxODMgMTQgOCAxNEM3LjU0NzIxIDE0IDcuMTAzMjEgMTMuOTY3MSA2LjY3MDk0IDEzLjkwMzhDNi4yMjU3OSAxNC4yNzUzIDUuNjY4ODEgMTQuNjY1NiA1IDE1QzQuMjMzNjYgMTUuMzgzMiAzLjQ2NzMzIDE1LjYxOTUgMi44MTM1IDE1Ljc2NTNaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4nLGUmJnQuZmlyc3RDaGlsZC5jbGFzc0xpc3QuYWRkKGUpLHQuZmlyc3RDaGlsZH0odnQucDEpLChhPXZ0LnAwLChpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5jbGFzc05hbWU9U3RyaW5nKHZ0LmxvZ29XcmFwcGVyKSxpLmFwcGVuZChmdW5jdGlvbihlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmlubmVySFRNTD0nPHN2ZyBkYXRhLXRlc3RpZD0iZ2Vpc3QtaWNvbiIgaGVpZ2h0PSIxNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIHN0eWxlPSJjb2xvcjogY3VycmVudGNvbG9yOyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik04IDFMMTYgMTVIMEw4IDFaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4nLGUmJnQuZmlyc3RDaGlsZC5jbGFzc0xpc3QuYWRkKGUpLHQuZmlyc3RDaGlsZH0oYSkpLGkpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuaW5uZXJIVE1MPSc8c3ZnIGRhdGEtdGVzdGlkPSJnZWlzdC1pY29uIiBoZWlnaHQ9IjE2IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgc3R5bGU9ImNvbG9yOiBjdXJyZW50Y29sb3I7Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYgMy41SDEwQzEyLjQ4NTMgMy41IDE0LjUgNS41MTQ3MiAxNC41IDhDMTQuNSAxMC40ODUzIDEyLjQ4NTMgMTIuNSAxMCAxMi41SDZDMy41MTQ3MiAxMi41IDEuNSAxMC40ODUzIDEuNSA4QzEuNSA1LjUxNDcyIDMuNTE0NzIgMy41IDYgMy41Wk0wIDhDMCA0LjY4NjI5IDIuNjg2MjkgMiA2IDJIMTBDMTMuMzEzNyAyIDE2IDQuNjg2MjkgMTYgOEMxNiAxMS4zMTM3IDEzLjMxMzcgMTQgMTAgMTRINkMyLjY4NjI5IDE0IDAgMTEuMzEzNyAwIDhaTTEwIDExQzExLjY1NjkgMTEgMTMgOS42NTY4NSAxMyA4QzEzIDYuMzQzMTUgMTEuNjU2OSA1IDEwIDVDOC4zNDMxNSA1IDcgNi4zNDMxNSA3IDhDNyA5LjY1Njg1IDguMzQzMTUgMTEgMTAgMTFaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4nLGUmJnQuZmlyc3RDaGlsZC5jbGFzc0xpc3QuYWRkKGUpLHQuZmlyc3RDaGlsZH0odnQucDEpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuaW5uZXJIVE1MPSc8c3ZnIGRhdGEtdGVzdGlkPSJnZWlzdC1pY29uIiBoZWlnaHQ9IjE2IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgc3R5bGU9ImNvbG9yOiBjdXJyZW50Y29sb3I7Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTYuNTE0MDQgMy4xNTc5M0M3LjQ4MjE3IDIuODc0MTEgOC41MTc3NiAyLjg3NDExIDkuNDg1ODkgMy4xNTc5M0w5LjkwNzg3IDEuNzE4NTFDOC42NjQyMiAxLjM1MzkyIDcuMzM1NzEgMS4zNTM5MiA2LjA5MjA2IDEuNzE4NTFMNi41MTQwNCAzLjE1NzkzWk0xMC44NDggMy43ODE2NkMxMS4yNTc4IDQuMDQ2ODIgMTEuNjM5MyA0LjM3NTY4IDExLjk3ODMgNC43NjkzMkwxMy4wNDYgNi4wMDkzNEwxNC4xODI3IDUuMDMwNTZMMTMuMTE0OSAzLjc5MDU0QzEyLjY4MTggMy4yODc2MSAxMi4xOTE4IDIuODY0NDkgMTEuNjYyOCAyLjUyMjI0TDEwLjg0OCAzLjc4MTY2Wk00LjAyMTY4IDQuNzY5MzJDNC4zNjA2NSA0LjM3NTY4IDQuNzQyMDkgNC4wNDY4MiA1LjE1MTk1IDMuNzgxNjZMNC4zMzcxNyAyLjUyMjI1QzMuODA4MTUgMi44NjQ0OSAzLjMxODEgMy4yODc2MSAyLjg4NTAzIDMuNzkwNTRMMS44MTcyMyA1LjAzMDU2TDIuOTUzODkgNi4wMDkzNEw0LjAyMTY4IDQuNzY5MzJaTTE0LjExMzggNy4yNDkzNkwxNC43NjAyIDcuOTk5OTlMMTQuMTEzOCA4Ljc1MDYyTDE1LjI1MDUgOS43Mjk0MUwxNi4zMTgzIDguNDg5MzhWNy41MTA2TDE1LjI1MDUgNi4yNzA1OEwxNC4xMTM4IDcuMjQ5MzZaTTEuODg2MDkgNy4yNDkzNkwxLjIzOTcxIDcuOTk5OTlMMS44ODYwOSA4Ljc1MDYyTDAuNzQ5NDM3IDkuNzI5NDFMLTAuMzE4MzU5IDguNDg5MzhWNy41MTA2TDAuNzQ5NDM2IDYuMjcwNThMMS44ODYwOSA3LjI0OTM2Wk0xMy4wNDYxIDkuOTkwNjRMMTEuOTc4MyAxMS4yMzA3QzExLjYzOTMgMTEuNjI0MyAxMS4yNTc4IDExLjk1MzIgMTAuODQ4IDEyLjIxODNMMTEuNjYyOCAxMy40Nzc3QzEyLjE5MTggMTMuMTM1NSAxMi42ODE4IDEyLjcxMjQgMTMuMTE0OSAxMi4yMDk0TDE0LjE4MjcgMTAuOTY5NEwxMy4wNDYxIDkuOTkwNjRaTTQuMDIxNjggMTEuMjMwN0wyLjk1Mzg5IDkuOTkwNjRMMS44MTcyMyAxMC45Njk0TDIuODg1MDMgMTIuMjA5NEMzLjMxODEgMTIuNzEyNCAzLjgwODE1IDEzLjEzNTUgNC4zMzcxNyAxMy40Nzc3TDUuMTUxOTUgMTIuMjE4M0M0Ljc0MjEgMTEuOTUzMiA0LjM2MDY1IDExLjYyNDMgNC4wMjE2OCAxMS4yMzA3Wk05LjkwNzg3IDE0LjI4MTVMOS40ODU4OSAxMi44NDIxQzguNTE3NzYgMTMuMTI1OSA3LjQ4MjE3IDEzLjEyNTkgNi41MTQwNSAxMi44NDIxTDYuMDkyMDYgMTQuMjgxNUM3LjMzNTcyIDE0LjY0NjEgOC42NjQyMiAxNC42NDYxIDkuOTA3ODcgMTQuMjgxNVpNNi40OTk5NyA3Ljk5OTk5QzYuNDk5OTcgNy4xNzE1NyA3LjE3MTU0IDYuNDk5OTkgNy45OTk5NyA2LjQ5OTk5QzguODI4MzkgNi40OTk5OSA5LjQ5OTk3IDcuMTcxNTcgOS40OTk5NyA3Ljk5OTk5QzkuNDk5OTcgOC44Mjg0MiA4LjgyODM5IDkuNDk5OTkgNy45OTk5NyA5LjQ5OTk5QzcuMTcxNTQgOS40OTk5OSA2LjQ5OTk3IDguODI4NDIgNi40OTk5NyA3Ljk5OTk5Wk03Ljk5OTk3IDQuOTk5OTlDNi4zNDMxMSA0Ljk5OTk5IDQuOTk5OTcgNi4zNDMxNCA0Ljk5OTk3IDcuOTk5OTlDNC45OTk5NyA5LjY1Njg1IDYuMzQzMTEgMTEgNy45OTk5NyAxMUM5LjY1NjgyIDExIDExIDkuNjU2ODUgMTEgNy45OTk5OUMxMSA2LjM0MzE0IDkuNjU2ODIgNC45OTk5OSA3Ljk5OTk3IDQuOTk5OTlaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4nLGUmJnQuZmlyc3RDaGlsZC5jbGFzc0xpc3QuYWRkKGUpLHQuZmlyc3RDaGlsZH0odnQucDIpLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuaW5uZXJIVE1MPSc8c3ZnIGRhdGEtdGVzdGlkPSJnZWlzdC1pY29uIiBoZWlnaHQ9IjE2IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiIgc3R5bGU9ImNvbG9yOiBjdXJyZW50Y29sb3I7Ij48cGF0aCBkPSJNOCAzQzguODI4NDMgMyA5LjUgMi4zMjg0MyA5LjUgMS41QzkuNSAwLjY3MTU3MyA4LjgyODQzIDAgOCAwQzcuMTcxNTcgMCA2LjUgMC42NzE1NzMgNi41IDEuNUM2LjUgMi4zMjg0MyA3LjE3MTU3IDMgOCAzWiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+ICA8cGF0aCBkPSJNNC42NzE0OCA2QzUuODk2MzIgNiA2LjgzMzQzIDcuMDkxMDQgNi42NDg1NyA4LjMwMTg1TDYuNDMgOS43MzM0NkM2LjMzODEgMTAuMjE1OSA2LjE5MDYgMTAuNjg3NCA2IDExLjE0MDFMNC4zMyAxNS4yTDUuOTIxNjQgMTUuODg4TDcuNTk0IDExLjkxNjJDNy43MjY2OCAxMS42MDExIDguMjczMzIgMTEuNjAxMSA4LjQwNiAxMS45MTYyTDEwLjA3ODQgMTUuODg4TDExLjY3IDE1LjJMMTAgMTEuMTQwMUM5LjgwOTQgMTAuNjg3NCA5LjY2MTkgMTAuMjE1OSA5LjU3IDkuNzMzNDZMOS4yODM1IDguNDI5MDRDOS4wMDk0NiA3LjE4MTMxIDkuOTU5NDcgNiAxMS4yMzY5IDZIMTRWNC41SDJWNkg0LjY3MTQ4WiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zdmc+JyxlJiZ0LmZpcnN0Q2hpbGQuY2xhc3NMaXN0LmFkZChlKSx0LmZpcnN0Q2hpbGR9KHZ0LnAzKSksby5hcHBlbmQocyk7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5jbGFzc05hbWU9U3RyaW5nKHZ0LnByb2R1Y3ROYW1lKSxjLnRleHRDb250ZW50PSJWZXJjZWwgVG9vbGJhciIsby5hcHBlbmQoYyk7dmFyIHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dS5jbGFzc05hbWU9U3RyaW5nKHZ0LmN0YVRleHQpLHUudGV4dENvbnRlbnQ9IkNvbW1lbnRzLCBmbGFncywgYW5kIG1vcmUuIixvLmFwcGVuZCh1KTt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTtsLnR5cGU9ImJ1dHRvbiIsbC5jbGFzc05hbWU9U3RyaW5nKHZ0LmFjdGl2YXRlQnV0dG9uKSxsLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIkNvbnRpbnVlIHdpdGggVmVyY2VsIik7dmFyIHA9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3AuY2xhc3NOYW1lPVN0cmluZyh2dC5hY3RpdmF0ZVRleHQpLHAudGV4dENvbnRlbnQ9IkNvbnRpbnVlIHdpdGggVmVyY2VsIixsLmFwcGVuZChwKTt2YXIgZj1mdW5jdGlvbigpe3dpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uoe3R5cGU6Im1lbnUtYWN0aW9uIixhY3Rpb246InNpZ24taW4ifSx4KCkpLGZ0KHt0cmFja2luZzp7YXV0aE9yaWdpbjoibWVudSIsdXNlZEV4aXN0aW5nQXV0aDohMX19KSx3dCgpfTtsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmKSxvLmFwcGVuZENoaWxkKGwpLG8uYXBwZW5kKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9U3RyaW5nKHZ0LmxpZ2h0cyk7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9U3RyaW5nKHZ0Lm1hc2spO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPVN0cmluZyh2dC52aXNpYmxlKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTmFtZT1TdHJpbmcodnQub3V0ZXIpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBvLmNsYXNzTmFtZT1TdHJpbmcodnQuaW5uZXIpLHIuYXBwZW5kKG8pLG4uYXBwZW5kKHIpLHQuYXBwZW5kKG4pLGUuYXBwZW5kKHQpLGV9KCkpLHIuYXBwZW5kQ2hpbGQobyk7dmFyIG09ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKTtvLmFwcGVuZENoaWxkKG0pO3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2guY2xhc3NOYW1lPVN0cmluZyh2dC5idXR0b25Db250YWluZXIpO3ZhciB2LGcsYj1PdChmdW5jdGlvbihlKXtjb25zdCB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmlubmVySFRNTD0nPHN2ZyBoZWlnaHQ9IjE2IiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNiI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xLjUgMi41SDE0LjVWMTIuNUMxNC41IDEzLjA1MjMgMTQuMDUyMyAxMy41IDEzLjUgMTMuNUgyLjVDMS45NDc3MiAxMy41IDEuNSAxMy4wNTIzIDEuNSAxMi41VjIuNVpNMCAxSDEuNUgxNC41SDE2VjIuNVYxMi41QzE2IDEzLjg4MDcgMTQuODgwNyAxNSAxMy41IDE1SDIuNUMxLjExOTI5IDE1IDAgMTMuODgwNyAwIDEyLjVWMi41VjFaTTkuNjMzNzggMTAuNUg2LjM2NjIySDUuNUM1LjIyMzg2IDEwLjUgNSAxMC4yNzYxIDUgMTBDNSA5LjcyMzg2IDUuMjIzODYgOS41IDUuNSA5LjVINi4zNjYyMkg5LjYzMzc4SDEwLjVDMTAuNzc2MSA5LjUgMTEgOS43MjM4NiAxMSAxMEMxMSAxMC4yNzYxIDEwLjc3NjEgMTAuNSAxMC41IDEwLjVIOS42MzM3OFpNMTAuNSA4SDUuNUM0LjM5NTQzIDggMy41IDguODk1NDMgMy41IDEwQzMuNSAxMS4xMDQ2IDQuMzk1NDMgMTIgNS41IDEySDEwLjVDMTEuNjA0NiAxMiAxMi41IDExLjEwNDYgMTIuNSAxMEMxMi41IDguODk1NDMgMTEuNjA0NiA4IDEwLjUgOFoiIGZpbGw9ImN1cnJlbnRDb2xvciI+PC9wYXRoPjwvc3ZnPicsZSYmdC5maXJzdENoaWxkLmNsYXNzTGlzdC5hZGQoZSksdC5maXJzdENoaWxkfSgpLCJIaWRlIFRvb2xiYXIiLCh2PSIuIiwoZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPVN0cmluZyh2dC5zaG9ydGN1dFdyYXBwZXIpLGcuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSInLmNvbmNhdChTdHJpbmcodnQuc2hvcnRjdXQpLCciPicpLmNvbmNhdCgvTWFjfGlQaG9uZXxpUG9kfGlQYWQvaS50ZXN0KG5hdmlnYXRvci5wbGF0Zm9ybSk/ZnVuY3Rpb24oZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5pbm5lckhUTUw9Jzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBmaWxsPSJub25lIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiI+ICA8cGF0aCBkPSJNMTggM2EzIDMgMCAwMC0zIDN2MTJhMyAzIDAgMDAzIDMgMyAzIDAgMDAzLTMgMyAzIDAgMDAtMy0zSDZhMyAzIDAgMDAtMyAzIDMgMyAwIDAwMyAzIDMgMyAwIDAwMy0zVjZhMyAzIDAgMDAtMy0zIDMgMyAwIDAwLTMgMyAzIDMgMCAwMDMgM2gxMmEzIDMgMCAwMDMtMyAzIDMgMCAwMC0zLTN6Ii8+PC9zdmc+JyxlJiZ0LmZpcnN0Q2hpbGQuY2xhc3NMaXN0LmFkZChlKSx0LmZpcnN0Q2hpbGR9KFN0cmluZyh2dC5jb21tYW5kSWNvbikpLm91dGVySFRNTDoiY3RybCIsJzwvZGl2PlxuICAgIDxkaXYgY2xhc3M9IicpLmNvbmNhdChTdHJpbmcodnQuc2hvcnRjdXQpLCciPicpLmNvbmNhdCh2LCI8L2Rpdj4iKSxnKSk7Yi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJtZW51LWFjdGlvbiIsYWN0aW9uOiJkaXNhYmxlIn0seCgpKSx3dCgpfSk7dmFyIHk9T3QoZnVuY3Rpb24oZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5pbm5lckhUTUw9JzxzdmcgaGVpZ2h0PSIxNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAxSDAuNzVINUM2LjIyNjcgMSA3LjMxNTgzIDEuNTg5MDEgOCAyLjQ5OTYzQzguNjg0MTcgMS41ODkwMSA5Ljc3MzMgMSAxMSAxSDE1LjI1SDE2VjEuNzVWMTNWMTMuNzVIMTUuMjVIMTAuNzQyNkMxMC4xNDU5IDEzLjc1IDkuNTczNjEgMTMuOTg3MSA5LjE1MTY1IDE0LjQwOUw4LjUzMDMzIDE1LjAzMDNINy40Njk2N0w2Ljg0ODM1IDE0LjQwOUM2LjQyNjM5IDEzLjk4NzEgNS44NTQxIDEzLjc1IDUuMjU3MzYgMTMuNzVIMC43NUgwVjEzVjEuNzVWMVpNNy4yNSA0Ljc1QzcuMjUgMy41MDczNiA2LjI0MjY0IDIuNSA1IDIuNUgxLjVWMTIuMjVINS4yNTczNkM1Ljk2Nzg2IDEyLjI1IDYuNjU3NTggMTIuNDUxNiA3LjI1IDEyLjgyMzJWNC43NVpNOC43NSAxMi44MjMyVjQuNzVDOC43NSAzLjUwNzM2IDkuNzU3MzYgMi41IDExIDIuNUgxNC41VjEyLjI1SDEwLjc0MjZDMTAuMDMyMSAxMi4yNSA5LjM0MjQyIDEyLjQ1MTYgOC43NSAxMi44MjMyWiIgZmlsbD0iY3VycmVudENvbG9yIj48L3BhdGg+PC9zdmc+JyxlJiZ0LmZpcnN0Q2hpbGQuY2xhc3NMaXN0LmFkZChlKSx0LmZpcnN0Q2hpbGR9KCksIkRvY3MiLGZ1bmN0aW9uKGUpe2NvbnN0IHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuaW5uZXJIVE1MPSc8c3ZnIGhlaWdodD0iMTYiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjUgOS43NVYxMS4yNUMxMS41IDExLjM4ODEgMTEuMzg4MSAxMS41IDExLjI1IDExLjVINC43NUM0LjYxMTkzIDExLjUgNC41IDExLjM4ODEgNC41IDExLjI1TDQuNSA0Ljc1QzQuNSA0LjYxMTkzIDQuNjExOTMgNC41IDQuNzUgNC41SDYuMjVIN1YzSDYuMjVINC43NUMzLjc4MzUgMyAzIDMuNzgzNSAzIDQuNzVWMTEuMjVDMyAxMi4yMTY1IDMuNzgzNSAxMyA0Ljc1IDEzSDExLjI1QzEyLjIxNjUgMTMgMTMgMTIuMjE2NSAxMyAxMS4yNVY5Ljc1VjlIMTEuNVY5Ljc1Wk04LjUgM0g5LjI1SDEyLjI0OTVDMTIuNjYzNyAzIDEyLjk5OTUgMy4zMzU3OSAxMi45OTk1IDMuNzVWNi43NVY3LjVIMTEuNDk5NVY2Ljc1VjUuNTYwNjZMOC41MzAzMyA4LjUyOTc4TDggOS4wNjAxMUw2LjkzOTM0IDcuOTk5NDVMNy40Njk2NyA3LjQ2OTEyTDEwLjQzODggNC41SDkuMjVIOC41VjNaIiBmaWxsPSJjdXJyZW50Q29sb3IiPjwvcGF0aD48L3N2Zz4nLGUmJnQuZmlyc3RDaGlsZC5jbGFzc0xpc3QuYWRkKGUpLHQuZmlyc3RDaGlsZH0oKSk7eS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cub3BlbigiaHR0cHM6Ly92ZXJjZWwuY29tL2RvY3MvY29uY2VwdHMvZGVwbG95bWVudHMvY29tbWVudHMiLCJfYmxhbmsiLCJub3JlZmVycmVyIil9KSxoLmFwcGVuZENoaWxkKGIpLGguYXBwZW5kQ2hpbGQoeSksci5hcHBlbmRDaGlsZChoKTt2YXIgdz1mdW5jdGlvbihlKXsiRW50ZXIiPT09ZS5rZXkmJmYoKSwiRXNjYXBlIj09PWUua2V5JiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJtZW51LWFjdGlvbiIsYWN0aW9uOiJjbG9zZSJ9LHgoKSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIix3KSx5dC5hZGQoZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdyl9KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHIpfShlLmRhdGEuaXNNb2JpbGUpKToiaXMtbW9iaWxlIj09PWUuZGF0YS50eXBlJiZFdChlLmRhdGEuaXNNb2JpbGUpKX0pO3ZhciBwbj1mdW5jdGlvbihlKXtpZigiaW5pdCI9PT1lLmRhdGEudHlwZSYmZS5vcmlnaW49PT14KCkpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixwbik7dmFyIHQ9ZS5kYXRhLmF1dGhPcHRpb25zO3ModSgpLm1hcmsoZnVuY3Rpb24gbigpe3ZhciByLG8saSxzLGM7cmV0dXJuIHUoKS53cmFwKGZ1bmN0aW9uKG4pe2Zvcig7Oylzd2l0Y2gobi5wcmV2PW4ubmV4dCl7Y2FzZSAwOnJldHVybiBuLm5leHQ9MSxQcm9taXNlLmFsbChbTWUoe2tleTp0LHBhZ2U6ZS5kYXRhLnBhZ2V9KSxjbigpLFAoeCgpLFsieC1yb2JvdHMtdGFnIiwiY29udGVudC1zZWN1cml0eS1wb2xpY3kiXSx7b3JpZ2luT25seTohMH0pXSk7Y2FzZSAxOnI9bi5zZW50LG89YShyLDMpLGk9b1swXSxzPW9bMV0sYz1vWzJdLHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2Uoe3R5cGU6ImluaXQtcmVwbHkiLGV4aXN0aW5nQXV0aDppLGNhblByb3h5OkcoKSxjYW5Qcm94eVB1c2hlcjpMZSgpLGlzTm9uVmVyY2VsRG9tYWluOnZlKCksdXNlclNldHRpbmdzOnMsdGFiSGVhZGVyczpjfSx4KCkpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIG4uc3RvcCgpfX0sbil9KSkoKS5jYXRjaChmdW5jdGlvbigpe30pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihlKXsiZXh0ZW5zaW9uLWNsaWNrZWQiPT09ZS5kYXRhLnR5cGUmJmUub3JpZ2luPT09b3JpZ2luJiZ3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJleHRlbnNpb24tY2xpY2tlZCJ9LHgoKSl9KX19O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihlKXt2YXIgdCxuOyJzZXR1cC1wb3B1cCI9PT1lLmRhdGEudHlwZSYmZS5vcmlnaW49PT14KCkmJih0PWUuZGF0YS5hdXRoT3B0aW9ucyxuPWUuZGF0YS53aW5kb3dTaXplLHV0PXthdXRoT3B0aW9uczp0LHdpbmRvd1NpemU6bn0pfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHBuKSx3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKHt0eXBlOiJyZWFkeSJ9LCIqIiksInNlcnZpY2VXb3JrZXIiaW4gbmF2aWdhdG9yJiZuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihmdW5jdGlvbihlKXt2YXIgdCxuPWRuKGUpO3RyeXtmb3Iobi5zKCk7ISh0PW4ubigpKS5kb25lOyl7dC52YWx1ZS51bnJlZ2lzdGVyKCkuY2F0Y2goZnVuY3Rpb24oKXt9KX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9fSkuY2F0Y2goZnVuY3Rpb24oKXt9KX0sNTA5MzQ6KGUsdCxuKT0+e3ZhciByPW4oMjEzMzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixvLGEpe3ZhciBpPXIoZSx0LG4sbyxhKTtyZXR1cm4gaS5uZXh0KCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5kb25lP2UudmFsdWU6aS5uZXh0KCl9KX0sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSw1MTM0NzplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1bXTtyZXR1cm4gdC50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbih0KXt2YXIgbj0iIixyPXZvaWQgMCE9PXRbNV07cmV0dXJuIHRbNF0mJihuKz0iQHN1cHBvcnRzICgiLmNvbmNhdCh0WzRdLCIpIHsiKSksdFsyXSYmKG4rPSJAbWVkaWEgIi5jb25jYXQodFsyXSwiIHsiKSksciYmKG4rPSJAbGF5ZXIiLmNvbmNhdCh0WzVdLmxlbmd0aD4wPyIgIi5jb25jYXQodFs1XSk6IiIsIiB7IikpLG4rPWUodCksciYmKG4rPSJ9IiksdFsyXSYmKG4rPSJ9IiksdFs0XSYmKG4rPSJ9Iiksbn0pLmpvaW4oIiIpfSx0Lmk9ZnVuY3Rpb24oZSxuLHIsbyxhKXsic3RyaW5nIj09dHlwZW9mIGUmJihlPVtbbnVsbCxlLHZvaWQgMF1dKTt2YXIgaT17fTtpZihyKWZvcih2YXIgcz0wO3M8dGhpcy5sZW5ndGg7cysrKXt2YXIgYz10aGlzW3NdWzBdO251bGwhPWMmJihpW2NdPSEwKX1mb3IodmFyIHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIGQ9W10uY29uY2F0KGVbdV0pO3ImJmlbZFswXV18fCh2b2lkIDAhPT1hJiYodm9pZCAwPT09ZFs1XXx8KGRbMV09IkBsYXllciIuY29uY2F0KGRbNV0ubGVuZ3RoPjA/IiAiLmNvbmNhdChkWzVdKToiIiwiIHsiKS5jb25jYXQoZFsxXSwifSIpKSxkWzVdPWEpLG4mJihkWzJdPyhkWzFdPSJAbWVkaWEgIi5jb25jYXQoZFsyXSwiIHsiKS5jb25jYXQoZFsxXSwifSIpLGRbMl09bik6ZFsyXT1uKSxvJiYoZFs0XT8oZFsxXT0iQHN1cHBvcnRzICgiLmNvbmNhdChkWzRdLCIpIHsiKS5jb25jYXQoZFsxXSwifSIpLGRbNF09byk6ZFs0XT0iIi5jb25jYXQobykpLHQucHVzaChkKSl9fSx0fX0sNTYwNTA6ZT0+eyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkb2N1bWVudClyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKCl7fSxyZW1vdmU6ZnVuY3Rpb24oKXt9fTt2YXIgdD1lLmluc2VydFN0eWxlRWxlbWVudChlKTtyZXR1cm57dXBkYXRlOmZ1bmN0aW9uKG4peyFmdW5jdGlvbihlLHQsbil7dmFyIHI9IiI7bi5zdXBwb3J0cyYmKHIrPSJAc3VwcG9ydHMgKCIuY29uY2F0KG4uc3VwcG9ydHMsIikgeyIpKSxuLm1lZGlhJiYocis9IkBtZWRpYSAiLmNvbmNhdChuLm1lZGlhLCIgeyIpKTt2YXIgbz12b2lkIDAhPT1uLmxheWVyO28mJihyKz0iQGxheWVyIi5jb25jYXQobi5sYXllci5sZW5ndGg+MD8iICIuY29uY2F0KG4ubGF5ZXIpOiIiLCIgeyIpKSxyKz1uLmNzcyxvJiYocis9In0iKSxuLm1lZGlhJiYocis9In0iKSxuLnN1cHBvcnRzJiYocis9In0iKTt2YXIgYT1uLnNvdXJjZU1hcDthJiYidW5kZWZpbmVkIiE9dHlwZW9mIGJ0b2EmJihyKz0iXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGEpKSkpLCIgKi8iKSksdC5zdHlsZVRhZ1RyYW5zZm9ybShyLGUsdC5vcHRpb25zKX0odCxlLG4pfSxyZW1vdmU6ZnVuY3Rpb24oKXshZnVuY3Rpb24oZSl7aWYobnVsbD09PWUucGFyZW50Tm9kZSlyZXR1cm4hMTtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KHQpfX19fSw2ODAxODplPT57InVzZSBzdHJpY3QiO3ZhciB0PS9bIicmPD5dLztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIG4scj0iIitlLG89dC5leGVjKHIpO2lmKCFvKXJldHVybiByO3ZhciBhPSIiLGk9MCxzPTA7Zm9yKGk9by5pbmRleDtpPHIubGVuZ3RoO2krKyl7c3dpdGNoKHIuY2hhckNvZGVBdChpKSl7Y2FzZSAzNDpuPSImcXVvdDsiO2JyZWFrO2Nhc2UgMzg6bj0iJmFtcDsiO2JyZWFrO2Nhc2UgMzk6bj0iJiMzOTsiO2JyZWFrO2Nhc2UgNjA6bj0iJmx0OyI7YnJlYWs7Y2FzZSA2MjpuPSImZ3Q7IjticmVhaztkZWZhdWx0OmNvbnRpbnVlfXMhPT1pJiYoYSs9ci5zdWJzdHJpbmcocyxpKSkscz1pKzEsYSs9bn1yZXR1cm4gcyE9PWk/YStyLnN1YnN0cmluZyhzLGkpOmF9fSw2ODIzNzplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dGhpcy52PWUsdGhpcy5rPXR9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sNzc0NzE6ZT0+e2Z1bmN0aW9uIHQobixyLG8sYSl7dmFyIGk9T2JqZWN0LmRlZmluZVByb3BlcnR5O3RyeXtpKHt9LCIiLHt9KX1jYXRjaChuKXtpPTB9ZS5leHBvcnRzPXQ9ZnVuY3Rpb24oZSxuLHIsbyl7ZnVuY3Rpb24gYShuLHIpe3QoZSxuLGZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9pbnZva2UobixyLGUpfSl9bj9pP2koZSxuLHt2YWx1ZTpyLGVudW1lcmFibGU6IW8sY29uZmlndXJhYmxlOiFvLHdyaXRhYmxlOiFvfSk6ZVtuXT1yOihhKCJuZXh0IiwwKSxhKCJ0aHJvdyIsMSksYSgicmV0dXJuIiwyKSl9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0cyx0KG4scixvLGEpfWUuZXhwb3J0cz10LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sODQ4MzY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QTooKT0+c30pO3ZhciByPW4oNDk4MDIpLG89bi5uKHIpLGE9big1MTM0NyksaT1uLm4oYSkoKShvKCkpO2kucHVzaChbZS5pZCwiLmd6MHVhRXJSb1g1bElGZGYwQ0RDe2Rpc3BsYXk6bm9uZX0iLCIiXSksaS5sb2NhbHM9e2hpZGRlbjoiZ3owdWFFclJvWDVsSUZkZjBDREMifTtjb25zdCBzPWl9LDkwMTAyOihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0E6KCk9PnN9KTt2YXIgcj1uKDQ5ODAyKSxvPW4ubihyKSxhPW4oNTEzNDcpLGk9bi5uKGEpKCkobygpKTtpLnB1c2goW2UuaWQsImh0bWx7Ym94LXNpemluZzpib3JkZXItYm94O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlfSosOmFmdGVyLDpiZWZvcmV7Ym94LXNpemluZzppbmhlcml0fWJvZHl7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luOjA7bWluLWhlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Ym9keSxodG1se2ZvbnQtZmFtaWx5OkludGVyLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxPeHlnZW4sVWJ1bnR1LENhbnRhcmVsbCxGaXJhIFNhbnMsRHJvaWQgU2FucyxIZWx2ZXRpY2EgTmV1ZSxzYW5zLXNlcmlmO3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOnVuc2V0Oy1tb3otYXBwZWFyYW5jZTp1bnNldDthcHBlYXJhbmNlOnVuc2V0O2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyOnVuc2V0O2ZvbnQ6dW5zZXQ7bWFyZ2luOnVuc2V0O3BhZGRpbmc6dW5zZXQ7dGV4dC1hbGlnbjp1bnNldH0iLCIiXSk7Y29uc3Qgcz1pfSw5MzIwOTplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiBlLnNldEF0dHJpYnV0ZXModCxlLmF0dHJpYnV0ZXMpLGUuaW5zZXJ0KHQsZS5vcHRpb25zKSx0fX19LHQ9e307ZnVuY3Rpb24gbihyKXt2YXIgbz10W3JdO2lmKHZvaWQgMCE9PW8pcmV0dXJuIG8uZXhwb3J0czt2YXIgYT10W3JdPXtpZDpyLGV4cG9ydHM6e319O3JldHVybiBlW3JdKGEsYS5leHBvcnRzLG4pLGEuZXhwb3J0c31uLm09ZSxuLm49ZT0+e3ZhciB0PWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiBuLmQodCx7YTp0fSksdH0sbi5kPShlLHQpPT57Zm9yKHZhciByIGluIHQpbi5vKHQscikmJiFuLm8oZSxyKSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6dFtyXX0pfSxuLnU9ZT0+ImExMXktd29ya2VyLmY0NGRkMmZkMTBiNWFjMTFhNmExLmpzP2RwbD1kcGxfR0JTdjV1dGVBZGtZekM1THVRVXJWVGdrd2RBUiIsbi5vPShlLHQpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KSxuLnA9IiIsbi5iPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmJhc2VVUkl8fHNlbGYubG9jYXRpb24uaHJlZixuLm5jPXZvaWQgMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe1Byb21pc2UucmVzb2x2ZSgpLnRoZW4obi5iaW5kKG4sNTAwNDQpKX0pfSkoKTsKPC9zY3JpcHQ+CjwvaHRtbD4="}},"time_used":12,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_vercel/insights/script.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.457Z","timestamp":1785142498457,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_vercel/insights/script.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 48069\r\ncache-control: public, max-age=2678400\r\ncontent-disposition: inline; filename=\"script.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"8e699b6e4471fd6950176e39c5f1ace0\"\r\nlast-modified: Sun, 26 Jul 2026 19:15:40 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000; includeSubDomains; preload\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1:arn1:arn1::sb2bk-1785142498462-b9f789c09918\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":2495,"size_decoded":1889,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2495), with no line terminators","md5":"8e699b6e4471fd6950176e39c5f1ace0","sha1":"a3957a826a0c77a338e1bd9b408b90c6215491f8","sha256":"79bf638dd4acdeb9b80c5a4009a3e1986968d615e9557dcf23d91b5e8ad158d8","sha512":"c49b40fbcbe959fab505da0d27a9f3c273a3740f07b34433619e5bc88cd7dd54564609284f4ee30ae219a1572a0a255fe9af92f2f948931b761cbc1be3605e2f","ssdeep":"","tlshash":"2251a5ea74a1e16d4ad79275817f1204f37f2a92fc05000132d99c9d3539d1dea73f99","first_seen":"2026-02-17T21:27:06.661745Z","last_seen":"2026-07-27T14:22:57.582723Z","times_seen":18315,"resource_available":true,"data":"InVzZSBzdHJpY3QiOygoKT0+e2Z1bmN0aW9uIGUoZSl7bGV0IHQ9bG9jYXRpb24uaHJlZjtpZihlKXtsZXQgbj1uZXcgVVJMKHQpO2lmKG4ucGF0aG5hbWUhPT1lKXJldHVybiBuLnBhdGhuYW1lPWUsbi5zZWFyY2g9IiIsbi5ocmVmfXJldHVybiB0fWZ1bmN0aW9uIHQoKXtyZXR1cm4hIShuYXZpZ2F0b3Iud2ViZHJpdmVyfHxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKCJIZWFkbGVzcyIpKX12YXIgbixhLHIsaSxvPShyPSgpPT57fSwoKT0+KHImJihpPXIocj0wKSksaSkpOyhuPSgpPT57bygpLGZ1bmN0aW9uKCl7dmFyIG47bGV0IGE9ZT0+ZSxyPWRvY3VtZW50LGk9ci5jdXJyZW50U2NyaXB0O2lmKHQoKSlyZXR1cm47bGV0IG89bnVsbCE9KG49bnVsbD09aT92b2lkIDA6aS5kYXRhc2V0KT9uOnt9LGw9ZChvLCJ2aWV3Iikscz1kKG8sImV2ZW50IiksdT1kKG8sInNlc3Npb24iKSxjPW51bGwscD1udWxsLGY9ITA7ZnVuY3Rpb24gZChlLHQpe3JldHVybiBlW2Ake3R9RW5kcG9pbnRgXXx8KCJlbmRwb2ludCJpbiBlP2Ake2UuZW5kcG9pbnR9LyR7dH1gOmAke251bGwhPWkmJmkuc3JjLmluY2x1ZGVzKCIvdmEvIik/Ii92YSI6Ii9fdmVyY2VsL2luc2lnaHRzIn0vJHt0fWApfWFzeW5jIGZ1bmN0aW9uIGgoZSl7aWYoZSYmIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJue3A6ZX07bGV0IHQ9ci5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1mbGFnLXZhbHVlc10iKTtpZighaXx8IXQubGVuZ3RoKXJldHVybjtsZXQgbj1uZXcgVVJMKGkuc3JjKSxhPW4ucGF0aG5hbWUuc3BsaXQoIi8iKSxvPWEucG9wKCk7cmV0dXJuIG8mJmEucHVzaCgiZmxhZ3MiLG8pLG4ucGF0aG5hbWU9YS5qb2luKCIvIiksaW1wb3J0KG4uaHJlZikudGhlbihuPT5uLmdhdGhlcih0LGUpKX1hc3luYyBmdW5jdGlvbiB2KHt0eXBlOnQsZGF0YTpuLG9wdGlvbnM6aX0pe3ZhciB1O2xldCBmPWUocCksZD1yLnJlZmVycmVyLHY9YSh7dHlwZTp0LHVybDpmLHBheWxvYWQ6bn0pO2lmKCExPT09dnx8bnVsbD09PXYpcmV0dXJuO3YmJihmPXYudXJsLG49bnVsbCE9KHU9di5wYXlsb2FkKT91Om4pO2xldCB3PWQuaW5jbHVkZXMobG9jYXRpb24uaG9zdCkseT17bzpmLHN2OiIwLjEuMyIsc2RrbjpvLnNka24sc2RrdjpvLnNka3YsdHM6RGF0ZS5ub3coKSwuLi5jJiZ7ZHA6Y30sLi4ubnVsbCE9aSYmaS53aXRoUmVmZXJyZXImJiF3P3tyOmR9Ont9LC4uLiJldmVudCI9PT10JiZuJiZ7ZW46bi5uYW1lLGVkOm4uZGF0YX0sZjphd2FpdCBoKG51bGw9PWk/dm9pZCAwOmkuZmxhZ3MpLmNhdGNoKCgpPT57fSl9O3RyeXthd2FpdCBmZXRjaCgicGFnZXZpZXciPT09dD9sOnMse21ldGhvZDoiUE9TVCIsa2VlcGFsaXZlOiEwLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh5KX0pfWNhdGNoKGcpe319YXN5bmMgZnVuY3Rpb24gdyhlPXt9KXtyZXR1cm4gdih7dHlwZToicGFnZXZpZXciLG9wdGlvbnM6e3dpdGhSZWZlcnJlcjplLndpdGhSZWZlcnJlcn19KX1hc3luYyBmdW5jdGlvbiB5KGUsdCxuKXtyZXR1cm4gdih7dHlwZToiZXZlbnQiLGRhdGE6e25hbWU6ZSxkYXRhOnR9LG9wdGlvbnM6e3dpdGhSZWZlcnJlcjohMCxmbGFnczpudWxsPT1uP3ZvaWQgMDpuLmZsYWdzfX0pfWFzeW5jIGZ1bmN0aW9uIGcoKXthd2FpdCBmZXRjaCh1LHttZXRob2Q6IkdFVCIsa2VlcGFsaXZlOiEwfSkuY2F0Y2goKCk9Pnt9KX1mdW5jdGlvbiBtKGUpe3JldHVybiBlLnBhdGhuYW1lPT09bmV3IFVSTChrKS5wYXRobmFtZX1mdW5jdGlvbiBSKGUpe2xldCB0PWU/InN0cmluZyI9PXR5cGVvZiBlP25ldyBVUkwoZSxsb2NhdGlvbi5vcmlnaW4pOm5ldyBVUkwoZS5ocmVmKTpudWxsOyF0fHxtKHQpfHx0Lmhhc2gmJm0odCl8fHcoKX1sZXQgaz1lKCksUz0oKT0+e3ZhciBlO3dpbmRvdy52YT1mdW5jdGlvbihlLHQpeyJiZWZvcmVTZW5kIj09PWU/YT10OiJldmVudCI9PT1lP3QmJnkodC5uYW1lLHQuZGF0YSx0Lm9wdGlvbnMpOiJwYWdldmlldyI9PT1lJiZ0JiYodC5yb3V0ZSYmKGM9dC5yb3V0ZSksdC5wYXRoJiYocD10LnBhdGgpLHcoe3dpdGhSZWZlcnJlcjpmfSksZj0hMSksImVuYWJsZUNvb2tpZSI9PT1lJiZnKCl9LG51bGw9PShlPXdpbmRvdy52YXEpfHxlLmZvckVhY2goKFtlLHRdKT0+e3dpbmRvdy52YShlLHQpfSl9OygoKT0+e2lmKHdpbmRvdy52YWl8fCh3aW5kb3cudmFpPSEwLFMoKSxvLmRpc2FibGVBdXRvVHJhY2spKXJldHVybjt3KHt3aXRoUmVmZXJyZXI6ITB9KTtsZXQgdD1oaXN0b3J5LnB1c2hTdGF0ZS5iaW5kKGhpc3RvcnkpO2hpc3RvcnkucHVzaFN0YXRlPWZ1bmN0aW9uKC4uLm4pe3QoLi4ubik7dHJ5e1IoblsyXSksaz1lKCl9Y2F0Y2goYSl7fX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixmdW5jdGlvbigpe1IoZSgpKSxrPWUoKX0pfSkoKX0oKX0sKCk9PihhfHxuKChhPXtleHBvcnRzOnt9fSkuZXhwb3J0cyxhKSxhLmV4cG9ydHMpKSgpfSkoKTs="}},"time_used":21,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":21,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_vercel/insights/view","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.488Z","timestamp":1785142498488,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"POST /_vercel/insights/view HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: application/json\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nContent-Length: 169\r\nOrigin: https://preview-strategynavigator.newton.tech\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":169,"data":"{\"o\":\"https://preview-strategynavigator.newton.tech/auth/login\",\"sv\":\"0.1.3\",\"sdkn\":\"@vercel/analytics/next\",\"sdkv\":\"1.5.0\",\"ts\":1785142498486,\"dp\":\"/auth/login\",\"r\":\"\"}"}},"response":{"raw":"HTTP/2 200 \r\ncache-control: public, max-age=0, must-revalidate\r\ncontent-type: text/plain; charset=utf-8\r\ncross-origin-resource-policy: cross-origin\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-ratelimit-limit: 1000\r\nx-ratelimit-remaining: 999\r\nx-ratelimit-reset: 60\r\nx-vercel-cache: MISS\r\nx-vercel-id: arn1::4s7n2-1785142498493-c1bc11537041\r\ncontent-length: 2\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":2,"size_decoded":441,"mime_type":"text/plain; charset=utf-8","magic":"ASCII text, with no line terminators","md5":"e0aa021e21dddbd6d8cecec71e9cf564","sha1":"9ce3bd4224c8c1780db56b4125ecf3f24bf748b7","sha256":"565339bc4d33d72817b583024112eb7f5cdf3e5eef0252d6ec1b9c9a94e12bb3","sha512":"900110c951560eff857b440e89cc29f529416e0e3b3d7f0ad51651bfdbd8025b91768c5ed7db5352d1a5523354ce06ced2c42047e33a3e958a1bba5f742db874","ssdeep":"","tlshash":"c710000000000000000000030000000030000000000000000c000000c0000000000000","first_seen":"2023-03-09T09:04:49Z","last_seen":"2026-07-27T14:53:43.41628Z","times_seen":356062,"resource_available":true,"data":"T0s="}},"time_used":55,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":55,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/.well-known/vercel/jwe","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.610Z","timestamp":1785142498610,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /.well-known/vercel/jwe HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\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 204 \r\ncache-control: public, max-age=0, must-revalidate\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-id: arn1::dglgh-1785142498615-4a94bc6cbeac\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"204","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":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":0,"size_decoded":237,"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-07-27T15:05:58.256156Z","times_seen":17565140,"resource_available":true,"data":""}},"time_used":12,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":12,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/Silka_Regular-s.p.67d455c4.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.208Z","timestamp":1785142498208,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/Silka_Regular-s.p.67d455c4.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"Silka_Regular-s.p.67d455c4.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"c7b6f4d143875ead3ba4a4a36b24dec6\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/Silka_Regular-s.p.67d455c4.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::vg8gr-1785142498213-e6fa3684f407\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":41936,"size_decoded":21238,"mime_type":"font/otf","magic":"OpenType font data","md5":"c7b6f4d143875ead3ba4a4a36b24dec6","sha1":"d3cf0a3f2e46edb54de5ad9f6f89bfc6fb2f2577","sha256":"719e1b3f32a9526eab1a5d405e4f3386ec36b9eac11fab0de88bb94b60aa5df6","sha512":"332717e32a322185cc926d1cad570f4a8bc57688f478701b7f79581ea77655b9da661e73939ff06c88961edae7eb1932c152d0cf8ade68b01e7a73c0401b60fb","ssdeep":"768:LpkhctbFKiEJQGF7rkDpwGwls6hqj0HeM5uGFV7bbyNGxgMRE1jJlApbYwvYGuh6:6ctGB42quFRy4RWjJliVEYgm1","tlshash":"8b138dc9773d2304d7269a3615e7c3baab708559fbe3b357ba924100bd817d21c88fa4","first_seen":"2023-09-20T14:32:09Z","last_seen":"2026-07-27T08:57:45.705122Z","times_seen":43,"resource_available":false,"data":"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dGVhbWFjcm9uY2RvdGFjY2VudGRjYXJvbmRjcm9hdGVjYXJvblphY3V0ZWVtYWNyb25lb2dvbmVrZWRvdGFjY2VudGhiYXJnZG90YWNjZW50aGNpcmN1bWZsZXhpLmxvY2xUUktjY2Fyb251bmkwMTIzZ2JyZXZlaW9nb25la3VuaTAyMzdpbWFjcm9udW5pMDEzN2xjYXJvbmxhY3V0ZWtncmVlbmxhbmRpY3VuaTAxM0NuYWN1dGVsZG90bmNhcm9uZW5ndW5pMDE0Nm9odW5nYXJ1bWxhdXRvbWFjcm9ucmFjdXRlcmNhcm9udW5pMDE1N3NjZWRpbGxhc2FjdXRldW5pMDIxOXVuaTAxNjN0YmFydGNhcm9udW5pMDIxQnVyaW5ndW9nb25la3VodW5nYXJ1bWxhdXR1bWFjcm9ud2RpZXJlc2lzd2dyYXZld2FjdXRld2NpcmN1bWZsZXh5Y2lyY3VtZmxleHlncmF2ZXpkb3RhY2NlbnR6YWN1dGV0d28udGZ0aHJlZS50Znplcm8udGZvbmUudGZqY2lyY3VtZmxleHNpeC50ZmZpdmUudGZuaW5lLnRmZm91ci50ZmVpZ2h0LnRmc2V2ZW4udGZ1bmkwMEIzdW5pMDBCMnVuaTAwQjlDUkV1cm9hcnJvd3VwdW5pMjE5N3VuaTIxOTh1bmkyMTk5dW5pMjE5NmFycm93ZG93bmRlZ3JlZS5hbHR1bmkwMzI2dW5pMjExNmFycm93cmlnaHRhcnJvd2xlZnRjYXJvbi5TbG92YWtOVUxMQ29weXJpZ2h0IFwoY1wpIDIwMTggYnkgYXRpcG8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuU2lsa2EgUmVndWxhcgAAAAAiAKsBhwCsAK0ArgGIAZUArwCwAIoAIwAkAYkBjACxAYoAJQCaAYsBjwAmALIBjgCzALQBjQC1AZABkgAnACgBkQGTAZQAKQGYAZcAKgC2ALcAuAGWALkBmwGaACsBmQAsAaAALQGfAZ4BnQGcAIwALgAvAaMBpAGiAaEAugAwALsAvAC9AL4BqgGlAI0AvwCOADEAnQAyADMBpgGnAbEANAGoAMABrQGpAasANQGsAa4BsgG3ADYAwQDCAMMAxAG6Aa8BsAG9ADcAOAG1AbQBswG2ADkAOgDFAbgAxgG5ADsBxQDHAbsAQgDI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AAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAA/8T/iP/i/8T/xAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAD/xP/s/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAD/4v/iAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAAAAAAAAAAAAAAAP/i/+IAAAAA/9gAAP/iAAAAAAAAAAAAAP/iAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAA/8T/iP+c/6b/nAAA/9gAAP/s/4j/2P/E/5wAAAAA/6YAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/+IAAAAA/8QAAAAAAAAAAAAAAAAAAAAA/+z/7AAAAAD/2P/YAAAAAP/s/+z/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/E/+wAAAAAAAAAAAAAAAAAAAAA/8T/iP/Y/5L/kgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAD/zgAA/+wAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAoAAAAAAAAAAAAAAAA/6YAAAAA/9gAAAAAAAAAAAAA/84AAP/i/6b/pgAAAAAAAAAAAAD/4v+6/8T/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Y/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAD/2AAA/+L/pv+mAAAAAAAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAAAA/+wAAP/s/+L/4gAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/YAAAAAAAA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AAQALwAwAAUAMQAyAAYAMwA4AAcAQABGAAgASABIAAgASgBKAAkATABMAAgATQBQAAoAUQBVAAsAVwBbAAwAXABkAA0AZQBlAA4AZgBqAA8AawBrABAAbABwABEAcQB0ABIAAgAxAAEACgASAAsACwATAAwADAAZAA0AEQABACAAIwABACcALgAaAC8AMAAUAEAARgABAEgASAABAEwATAABAFEAVQAXAFcAWwACAGUAZQADAGYAagAEAGsAawARAGwAcAAFAHUAfwAJAIAAgAAcAIEAkgAJAJMAkwAGAJQAlwAJAJgAmgAcAJsAowAHAKQApgAIAKcAqQAcAKoArwAYALAAtgAcALcAwAAJAMEAwgAcAMMAwwAJAMQAxwAcAMgAzAAdAM0AzQAcAM4A0gALANMA2wAeANwA4QAMAOMA5wAMAOgA6wAfAQkBCgAVAQsBCwAWAQwBDAAVAQ0BDQAWARABEAAOARQBFAANARkBGQAbASUBJQAKAScBJwAKAU4BTgAPAU8BTwAQAAIAGACAAIUABwCGAIYABgCHAIcABwCIAIkABgCKAJIABwCTAJMAAQCUAJoABgCbAKMAAgCkAKYAAwCnAKkABACqAK8ABQCwALYABgC3AL8ABwDBAMIABwDDAMMABgDEAMcACADIAMwACQDNAM0ABwDOANIACgDTANsACwDcAOEADADiAOIADQDjAOcADADoAOsADgACABgAdQB/AAMAgQCSAAMAkwCTAA8AlACXAAMAmwCjAAgApACmAAEAqgCvAAkAtwDAAAMAwwDDAAMAyADMABAAzgDSAAoA3ADhAAsA4gDiAA0A4wDnAAsA6ADrAA4BCQEKAAIBCwELAAQBDAEMAAIBDQENAAQBEAEQAAYBFAEUAAwBHgEgAAcBJQElAAUBJwEnAAUAAgAEAREBEQACARgBGAABASMBIwADAScBJwAEAAIAIQABAAoAAQANABEABAAWABcABgAfAB8ABgAgACMABAAkACYABgAvADAAAgAxAD8ABgBAAEYABABIAEgABABKAEoABgBMAEwABABNAFAABgBRAFUACABXAFsABQBlAGUABwB1AH8AAwCAAIAACQCBAJIAAwCUAJcAAwCYAJoACQCnAKkACQCwALYACQC3AMAAAwDBAMIACQDDAMMAAwDEAMcACQDIAMwACgDNAM0ACQDOANIACwDTANsADADcAOEADQDjAOcADQAAAAEAAAAKAQYD+AACREZMVAAObGF0bgAkAAQAAAAA//8ABgAAAAoAFAAfACkAMwA0AAhBWkUgAEhDQVQgAFpDUlQgAGxLQVogAH5NT0wgAJBST00gAKJUQVQgALRUUksgAMYAAP//AAcAAQALABUAHgAgACoANAAA//8ABgACAAwAFgAhACsANQAA//8ABgADAA0AFwAiACwANgAA//8ABgAEAA4AGAAjAC0ANwAA//8ABgAFAA8AGQAkAC4AOAAA//8ABgAGABAAGgAlAC8AOQAA//8ABgAHABEAGwAmADAAOgAA//8ABgAIABIAHAAnADEAOwAA//8ABgAJABMAHQAoADIAPAA9YWFsdAFwYWFsdAF4YWFsdAGAYWFsdAGIYWFsdAGQYWFsdAGYYWFsdAGgYWFsdAGoYWFsdAGwYWFsdAG4ZnJhYwHAZnJhYwHGZnJhYwHMZnJhYwHSZnJhYwHYZnJhYwHeZnJhYwHkZnJhYwHqZnJhYwHwZnJhYwH2bGlnYQH8bGlnYQICbGlnYQIIbGlnYQIObGlnYQIUbGlnYQIabGlnYQIgbGlnYQImbGlnYQIsbGlnYQIyb3JkbgI4cG51bQI+cG51bQJEcG51bQJKcG51bQJQcG51bQJWcG51bQJccG51bQJicG51bQJocG51bQJucG51bQJ0c3VwcwJ6c3VwcwKAc3VwcwKGc3VwcwKMc3VwcwKSc3VwcwKYc3VwcwKec3VwcwKkc3VwcwKqc3VwcwKwdG51bQK2dG51bQK8dG51bQLCdG51bQLIdG51bQLOdG51bQLUdG51bQLadG51bQLgdG51bQLmdG51bQLsAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAUAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcACAASABoAIgAqADIAOgBCAEoAAQAAAAEArAADAAAAAQDOAAQAAAABADAAAQAAAAEASAAEAAAAAQBGAAEAAAABAGoAAQAAAAEAcAABAAAAAQBuAAEAxgACAAoAFgABAAQBDQADAQkBCQABAAQBVQACAA0AAQCuABMAAQCyAAIACgAgAAIABgAOAQYAAwEWAPABBwADARYA8gABAAQBCAADARYA8gACAI4ABADsAO0A7ADtAAEAjP/2AAEAkAAKAAIAlAASAOwA7QDsAO0A+AD8AP0A/gD/AQABAQDuAPIA8wD0APUA9gD3AAEAkgAGABIAGAAeACQAKAAsAAIBAgD5AAIBAwD6AAIBBAD7AAEA7wABAPAAAQDxAAEAAgEJAVAAAgABAO8A8QAAAAEAAgDvAPEAAQAEAAEAQAB1ALcAAgABAPgBAQAAAAIAAQDuAPcAAAABABIAAQBAAHUAtwDuAPIA8wD0APUA9gD3APgA/AD9AP4A/wEAAQEAAgACAO8A8QAAAPkA+wADAAA="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/4dbe745b26b8afdf.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.218Z","timestamp":1785142498218,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/4dbe745b26b8afdf.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"4dbe745b26b8afdf.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"cb33fdabf2f0e26be4bbb53aacd7d012\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/4dbe745b26b8afdf.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::bjzbw-1785142498223-0ee3ca81a330\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":42663,"size_decoded":14441,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (42663), with no line terminators","md5":"cb33fdabf2f0e26be4bbb53aacd7d012","sha1":"fddcf6453b37da3121d0b6aa6d8b80c35070cf9d","sha256":"82fa981ec20733e3df4d2171e3f98864eb7709f1d8d00aa25744ee677af6658d","sha512":"684dcfea50a5f96474fdcd8f23ee67f9c6f884d053e13c4fd7153e33419401f65935c8ea8690808fbdd4aa9de796c4646cde5a1adf3cdecc5fd2f7a62731aaa3","ssdeep":"768:IYgvBFB6Lvx1Xl2OcEwnWxLuMG+KRozd+a1VNgObxc9+HXdQAPS+O:9iiZHZ0W8NozNVNNbxc9+3dfPS+O","tlshash":"f91309cd75a6b0910bb396b1802f401bf23e1937189d48a0d3a2dde9bcb856dd237f59","first_seen":"2026-07-27T06:16:09.147093Z","last_seen":"2026-07-27T08:57:45.679626Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDkwMzE3LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPXtiaW5kU25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gc30sY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sY3JlYXRlU25hcHNob3Q6ZnVuY3Rpb24oKXtyZXR1cm4gY319O2Zvcih2YXIgbyBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLG8se2VudW1lcmFibGU6ITAsZ2V0OnJbb119KTtsZXQgdT1PYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludmFyaWFudDogQXN5bmNMb2NhbFN0b3JhZ2UgYWNjZXNzZWQgaW4gcnVudGltZSB3aGVyZSBpdCBpcyBub3QgYXZhaWxhYmxlIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU1MDQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2xhc3MgYXtkaXNhYmxlKCl7dGhyb3cgdX1nZXRTdG9yZSgpe31ydW4oKXt0aHJvdyB1fWV4aXQoKXt0aHJvdyB1fWVudGVyV2l0aCgpe3Rocm93IHV9c3RhdGljIGJpbmQoZSl7cmV0dXJuIGV9fWxldCBpPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcy5Bc3luY0xvY2FsU3RvcmFnZTtmdW5jdGlvbiBsKCl7cmV0dXJuIGk/bmV3IGk6bmV3IGF9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gaT9pLmJpbmQoZSk6YS5iaW5kKGUpfWZ1bmN0aW9uIGMoKXtyZXR1cm4gaT9pLnNuYXBzaG90KCk6ZnVuY3Rpb24oZSwuLi50KXtyZXR1cm4gZSguLi50KX19fSwyNDIzNDQsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIndvcmtBc3luY1N0b3JhZ2VJbnN0YW5jZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHJ9fSk7bGV0IHI9KDAsZS5yKDkwMzE3KS5jcmVhdGVBc3luY0xvY2FsU3RvcmFnZSkoKX0sNTYzNTk5LChlLHQsbik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJ3b3JrQXN5bmNTdG9yYWdlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci53b3JrQXN5bmNTdG9yYWdlSW5zdGFuY2V9fSk7bGV0IHI9ZS5yKDI0MjM0NCl9LDU1NTY4MiwoZSx0LG4pPT57InVzZSBzdHJpY3QiO24uXz1mdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19fSwxMzIwNjEsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e0JhaWxvdXRUb0NTUkVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGlzQmFpbG91dFRvQ1NSRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gaX19O2Zvcih2YXIgbyBpbiByKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLG8se2VudW1lcmFibGU6ITAsZ2V0OnJbb119KTtsZXQgdT0iQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkciO2NsYXNzIGEgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihgQmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nOiAke2V9YCksdGhpcy5yZWFzb249ZSx0aGlzLmRpZ2VzdD11fX1mdW5jdGlvbiBpKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJkaWdlc3QiaW4gZSYmZS5kaWdlc3Q9PT11fX0sOTM1NDUxLChlLHQsbik9Pnt2YXIgcj17MjI5OmZ1bmN0aW9uKGUpe3ZhciB0LG4scixvPWUuZXhwb3J0cz17fTtmdW5jdGlvbiB1KCl7dGhyb3cgRXJyb3IoInNldFRpbWVvdXQgaGFzIG5vdCBiZWVuIGRlZmluZWQiKX1mdW5jdGlvbiBhKCl7dGhyb3cgRXJyb3IoImNsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfXRyeXt0PSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6dX1jYXRjaChlKXt0PXV9dHJ5e249ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6YX1jYXRjaChlKXtuPWF9ZnVuY3Rpb24gaShlKXtpZih0PT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dChlLDApO2lmKCh0PT09dXx8IXQpJiZzZXRUaW1lb3V0KXJldHVybiB0PXNldFRpbWVvdXQsc2V0VGltZW91dChlLDApO3RyeXtyZXR1cm4gdChlLDApfWNhdGNoKG4pe3RyeXtyZXR1cm4gdC5jYWxsKG51bGwsZSwwKX1jYXRjaChuKXtyZXR1cm4gdC5jYWxsKHRoaXMsZSwwKX19fXZhciBsPVtdLHM9ITEsYz0tMTtmdW5jdGlvbiBmKCl7cyYmciYmKHM9ITEsci5sZW5ndGg/bD1yLmNvbmNhdChsKTpjPS0xLGwubGVuZ3RoJiZkKCkpfWZ1bmN0aW9uIGQoKXtpZighcyl7dmFyIGU9aShmKTtzPSEwO2Zvcih2YXIgdD1sLmxlbmd0aDt0Oyl7Zm9yKHI9bCxsPVtdOysrYzx0OylyJiZyW2NdLnJ1bigpO2M9LTEsdD1sLmxlbmd0aH1yPW51bGwscz0hMSxmdW5jdGlvbihlKXtpZihuPT09Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoZSk7aWYoKG49PT1hfHwhbikmJmNsZWFyVGltZW91dClyZXR1cm4gbj1jbGVhclRpbWVvdXQsY2xlYXJUaW1lb3V0KGUpO3RyeXtuKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsZSl9Y2F0Y2godCl7cmV0dXJuIG4uY2FsbCh0aGlzLGUpfX19KGUpfX1mdW5jdGlvbiBwKGUsdCl7dGhpcy5mdW49ZSx0aGlzLmFycmF5PXR9ZnVuY3Rpb24geSgpe31vLm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PUFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspdFtuLTFdPWFyZ3VtZW50c1tuXTtsLnB1c2gobmV3IHAoZSx0KSksMSE9PWwubGVuZ3RofHxzfHxpKGQpfSxwLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxvLnRpdGxlPSJicm93c2VyIixvLmJyb3dzZXI9ITAsby5lbnY9e30sby5hcmd2PVtdLG8udmVyc2lvbj0iIixvLnZlcnNpb25zPXt9LG8ub249eSxvLmFkZExpc3RlbmVyPXksby5vbmNlPXksby5vZmY9eSxvLnJlbW92ZUxpc3RlbmVyPXksby5yZW1vdmVBbGxMaXN0ZW5lcnM9eSxvLmVtaXQ9eSxvLnByZXBlbmRMaXN0ZW5lcj15LG8ucHJlcGVuZE9uY2VMaXN0ZW5lcj15LG8ubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfSxvLmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoInByb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LG8uY3dkPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifSxvLmNoZGlyPWZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0sby51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX19LG89e307ZnVuY3Rpb24gdShlKXt2YXIgdD1vW2VdO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQuZXhwb3J0czt2YXIgbj1vW2VdPXtleHBvcnRzOnt9fSxhPSEwO3RyeXtyW2VdKG4sbi5leHBvcnRzLHUpLGE9ITF9ZmluYWxseXthJiZkZWxldGUgb1tlXX1yZXR1cm4gbi5leHBvcnRzfXUuYWI9Ii9ST09UL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcHJvY2Vzcy8iLHQuZXhwb3J0cz11KDIyOSl9LDI0NzE2NywoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByLG87dC5leHBvcnRzPShudWxsPT0ocj1lLmcucHJvY2Vzcyk/dm9pZCAwOnIuZW52KSYmIm9iamVjdCI9PXR5cGVvZihudWxsPT0obz1lLmcucHJvY2Vzcyk/dm9pZCAwOm8uZW52KT9lLmcucHJvY2VzczplLnIoOTM1NDUxKX0sNzQ1Njg5LChlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9U3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKTtmdW5jdGlvbiBvKGUsdCxuKXt2YXIgbz1udWxsO2lmKHZvaWQgMCE9PW4mJihvPSIiK24pLHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksImtleSJpbiB0KWZvcih2YXIgdSBpbiBuPXt9LHQpImtleSIhPT11JiYoblt1XT10W3VdKTtlbHNlIG49dDtyZXR1cm57JCR0eXBlb2Y6cix0eXBlOmUsa2V5Om8scmVmOnZvaWQgMCE9PSh0PW4ucmVmKT90Om51bGwscHJvcHM6bn19bi5GcmFnbWVudD1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLG4uanN4PW8sbi5qc3hzPW99LDg0MzQ3NiwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3QuZXhwb3J0cz1lLnIoNzQ1Njg5KX0sMzUwNzQwLChlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9ZS5pKDI0NzE2Nyksbz1TeW1ib2wuZm9yKCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudCIpLHU9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksYT1TeW1ib2wuZm9yKCJyZWFjdC5mcmFnbWVudCIpLGk9U3ltYm9sLmZvcigicmVhY3Quc3RyaWN0X21vZGUiKSxsPVN5bWJvbC5mb3IoInJlYWN0LnByb2ZpbGVyIikscz1TeW1ib2wuZm9yKCJyZWFjdC5jb25zdW1lciIpLGM9U3ltYm9sLmZvcigicmVhY3QuY29udGV4dCIpLGY9U3ltYm9sLmZvcigicmVhY3QuZm9yd2FyZF9yZWYiKSxkPVN5bWJvbC5mb3IoInJlYWN0LnN1c3BlbnNlIikscD1TeW1ib2wuZm9yKCJyZWFjdC5tZW1vIikseT1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5Iiksdj1TeW1ib2wuZm9yKCJyZWFjdC5hY3Rpdml0eSIpLGg9U3ltYm9sLmZvcigicmVhY3Qudmlld190cmFuc2l0aW9uIiksZz1TeW1ib2wuaXRlcmF0b3IsYj17aXNNb3VudGVkOmZ1bmN0aW9uKCl7cmV0dXJuITF9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbigpe30sZW5xdWV1ZVNldFN0YXRlOmZ1bmN0aW9uKCl7fX0sXz1PYmplY3QuYXNzaWduLG09e307ZnVuY3Rpb24gUyhlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10LHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj1ufHxifWZ1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gTyhlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10LHRoaXMucmVmcz1tLHRoaXMudXBkYXRlcj1ufHxifVMucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ9e30sUy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXtpZigib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT1lKXRocm93IEVycm9yKCJ0YWtlcyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzIHRvIHVwZGF0ZSBvciBhIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcy4iKTt0aGlzLnVwZGF0ZXIuZW5xdWV1ZVNldFN0YXRlKHRoaXMsZSx0LCJzZXRTdGF0ZSIpfSxTLnByb3RvdHlwZS5mb3JjZVVwZGF0ZT1mdW5jdGlvbihlKXt0aGlzLnVwZGF0ZXIuZW5xdWV1ZUZvcmNlVXBkYXRlKHRoaXMsZSwiZm9yY2VVcGRhdGUiKX0sdy5wcm90b3R5cGU9Uy5wcm90b3R5cGU7dmFyIGs9Ty5wcm90b3R5cGU9bmV3IHc7ay5jb25zdHJ1Y3Rvcj1PLF8oayxTLnByb3RvdHlwZSksay5pc1B1cmVSZWFjdENvbXBvbmVudD0hMDt2YXIgRT1BcnJheS5pc0FycmF5O2Z1bmN0aW9uIFIoKXt9dmFyIFQ9e0g6bnVsbCxBOm51bGwsVDpudWxsLFM6bnVsbH0sQT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGooZSx0LG4pe3ZhciByPW4ucmVmO3JldHVybnskJHR5cGVvZjpvLHR5cGU6ZSxrZXk6dCxyZWY6dm9pZCAwIT09cj9yOm51bGwscHJvcHM6bn19ZnVuY3Rpb24gJChlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZlLiQkdHlwZW9mPT09b312YXIgQz0vXC8rL2c7ZnVuY3Rpb24gUChlLHQpe3ZhciBuLHI7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmbnVsbCE9ZS5rZXk/KG49IiIrZS5rZXkscj17Ij0iOiI9MCIsIjoiOiI9MiJ9LCIkIituLnJlcGxhY2UoL1s9Ol0vZyxmdW5jdGlvbihlKXtyZXR1cm4gcltlXX0pKTp0LnRvU3RyaW5nKDM2KX1mdW5jdGlvbiBOKGUsdCxuKXtpZihudWxsPT1lKXJldHVybiBlO3ZhciByPVtdLGE9MDtyZXR1cm4hZnVuY3Rpb24gZSh0LG4scixhLGkpe3ZhciBsLHMsYyxmPXR5cGVvZiB0OygidW5kZWZpbmVkIj09PWZ8fCJib29sZWFuIj09PWYpJiYodD1udWxsKTt2YXIgZD0hMTtpZihudWxsPT09dClkPSEwO2Vsc2Ugc3dpdGNoKGYpe2Nhc2UiYmlnaW50IjpjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmQ9ITA7YnJlYWs7Y2FzZSJvYmplY3QiOnN3aXRjaCh0LiQkdHlwZW9mKXtjYXNlIG86Y2FzZSB1OmQ9ITA7YnJlYWs7Y2FzZSB5OnJldHVybiBlKChkPXQuX2luaXQpKHQuX3BheWxvYWQpLG4scixhLGkpfX1pZihkKXJldHVybiBpPWkodCksZD0iIj09PWE/Ii4iK1AodCwwKTphLEUoaSk/KHI9IiIsbnVsbCE9ZCYmKHI9ZC5yZXBsYWNlKEMsIiQmLyIpKyIvIiksZShpLG4sciwiIixmdW5jdGlvbihlKXtyZXR1cm4gZX0pKTpudWxsIT1pJiYoJChpKSYmKGw9aSxzPXIrKG51bGw9PWkua2V5fHx0JiZ0LmtleT09PWkua2V5PyIiOigiIitpLmtleSkucmVwbGFjZShDLCIkJi8iKSsiLyIpK2QsaT1qKGwudHlwZSxzLGwucHJvcHMpKSxuLnB1c2goaSkpLDE7ZD0wO3ZhciBwPSIiPT09YT8iLiI6YSsiOiI7aWYoRSh0KSlmb3IodmFyIHY9MDt2PHQubGVuZ3RoO3YrKylmPXArUChhPXRbdl0sdiksZCs9ZShhLG4scixmLGkpO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mKHY9bnVsbD09PShjPXQpfHwib2JqZWN0IiE9dHlwZW9mIGM/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YoYz1nJiZjW2ddfHxjWyJAQGl0ZXJhdG9yIl0pP2M6bnVsbCkpZm9yKHQ9di5jYWxsKHQpLHY9MDshKGE9dC5uZXh0KCkpLmRvbmU7KWY9cCtQKGE9YS52YWx1ZSx2KyspLGQrPWUoYSxuLHIsZixpKTtlbHNlIGlmKCJvYmplY3QiPT09Zil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbilyZXR1cm4gZShmdW5jdGlvbihlKXtzd2l0Y2goZS5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjpyZXR1cm4gZS52YWx1ZTtjYXNlInJlamVjdGVkIjp0aHJvdyBlLnJlYXNvbjtkZWZhdWx0OnN3aXRjaCgic3RyaW5nIj09dHlwZW9mIGUuc3RhdHVzP2UudGhlbihSLFIpOihlLnN0YXR1cz0icGVuZGluZyIsZS50aGVuKGZ1bmN0aW9uKHQpeyJwZW5kaW5nIj09PWUuc3RhdHVzJiYoZS5zdGF0dXM9ImZ1bGZpbGxlZCIsZS52YWx1ZT10KX0sZnVuY3Rpb24odCl7InBlbmRpbmciPT09ZS5zdGF0dXMmJihlLnN0YXR1cz0icmVqZWN0ZWQiLGUucmVhc29uPXQpfSkpLGUuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6cmV0dXJuIGUudmFsdWU7Y2FzZSJyZWplY3RlZCI6dGhyb3cgZS5yZWFzb259fXRocm93IGV9KHQpLG4scixhLGkpO3Rocm93IEVycm9yKCJPYmplY3RzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICIrKCJbb2JqZWN0IE9iamVjdF0iPT09KG49U3RyaW5nKHQpKT8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmplY3Qua2V5cyh0KS5qb2luKCIsICIpKyJ9IjpuKSsiKS4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0ZWFkLiIpfXJldHVybiBkfShlLHIsIiIsIiIsZnVuY3Rpb24oZSl7cmV0dXJuIHQuY2FsbChuLGUsYSsrKX0pLHJ9ZnVuY3Rpb24gTShlKXtpZigtMT09PWUuX3N0YXR1cyl7dmFyIHQ9ZS5fcmVzdWx0Oyh0PXQoKSkudGhlbihmdW5jdGlvbih0KXsoMD09PWUuX3N0YXR1c3x8LTE9PT1lLl9zdGF0dXMpJiYoZS5fc3RhdHVzPTEsZS5fcmVzdWx0PXQpfSxmdW5jdGlvbih0KXsoMD09PWUuX3N0YXR1c3x8LTE9PT1lLl9zdGF0dXMpJiYoZS5fc3RhdHVzPTIsZS5fcmVzdWx0PXQpfSksLTE9PT1lLl9zdGF0dXMmJihlLl9zdGF0dXM9MCxlLl9yZXN1bHQ9dCl9aWYoMT09PWUuX3N0YXR1cylyZXR1cm4gZS5fcmVzdWx0LmRlZmF1bHQ7dGhyb3cgZS5fcmVzdWx0fXZhciBEPSJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpmdW5jdGlvbihlKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmImZ1bmN0aW9uIj09dHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50KXt2YXIgdD1uZXcgd2luZG93LkVycm9yRXZlbnQoImVycm9yIix7YnViYmxlczohMCxjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmInN0cmluZyI9PXR5cGVvZiBlLm1lc3NhZ2U/U3RyaW5nKGUubWVzc2FnZSk6U3RyaW5nKGUpLGVycm9yOmV9KTtpZighd2luZG93LmRpc3BhdGNoRXZlbnQodCkpcmV0dXJufWVsc2UgaWYoIm9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJiJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHQuZW1pdClyZXR1cm4gdm9pZCByLmRlZmF1bHQuZW1pdCgidW5jYXVnaHRFeGNlcHRpb24iLGUpO2NvbnNvbGUuZXJyb3IoZSl9O2Z1bmN0aW9uIEkoZSl7dmFyIHQ9VC5ULG49e307bi50eXBlcz1udWxsIT09dD90LnR5cGVzOm51bGwsVC5UPW47dHJ5e3ZhciByPWUoKSxvPVQuUztudWxsIT09byYmbyhuLHIpLCJvYmplY3QiPT10eXBlb2YgciYmbnVsbCE9PXImJiJmdW5jdGlvbiI9PXR5cGVvZiByLnRoZW4mJnIudGhlbihSLEQpfWNhdGNoKGUpe0QoZSl9ZmluYWxseXtudWxsIT09dCYmbnVsbCE9PW4udHlwZXMmJih0LnR5cGVzPW4udHlwZXMpLFQuVD10fX1mdW5jdGlvbiB4KGUpe3ZhciB0PVQuVDtpZihudWxsIT09dCl7dmFyIG49dC50eXBlcztudWxsPT09bj90LnR5cGVzPVtlXTotMT09PW4uaW5kZXhPZihlKSYmbi5wdXNoKGUpfWVsc2UgSSh4LmJpbmQobnVsbCxlKSl9bi5BY3Rpdml0eT12LG4uQ2hpbGRyZW49e21hcDpOLGZvckVhY2g6ZnVuY3Rpb24oZSx0LG4pe04oZSxmdW5jdGlvbigpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxuKX0sY291bnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9MDtyZXR1cm4gTihlLGZ1bmN0aW9uKCl7dCsrfSksdH0sdG9BcnJheTpmdW5jdGlvbihlKXtyZXR1cm4gTihlLGZ1bmN0aW9uKGUpe3JldHVybiBlfSl8fFtdfSxvbmx5OmZ1bmN0aW9uKGUpe2lmKCEkKGUpKXRocm93IEVycm9yKCJSZWFjdC5DaGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVhY3QgZWxlbWVudCBjaGlsZC4iKTtyZXR1cm4gZX19LG4uQ29tcG9uZW50PVMsbi5GcmFnbWVudD1hLG4uUHJvZmlsZXI9bCxuLlB1cmVDb21wb25lbnQ9TyxuLlN0cmljdE1vZGU9aSxuLlN1c3BlbnNlPWQsbi5WaWV3VHJhbnNpdGlvbj1oLG4uX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPVQsbi5fX0NPTVBJTEVSX1JVTlRJTUU9e19fcHJvdG9fXzpudWxsLGM6ZnVuY3Rpb24oZSl7cmV0dXJuIFQuSC51c2VNZW1vQ2FjaGUoZSl9fSxuLmFkZFRyYW5zaXRpb25UeXBlPXgsbi5jYWNoZT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseShudWxsLGFyZ3VtZW50cyl9fSxuLmNhY2hlU2lnbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LG4uY2xvbmVFbGVtZW50PWZ1bmN0aW9uKGUsdCxuKXtpZihudWxsPT1lKXRocm93IEVycm9yKCJUaGUgYXJndW1lbnQgbXVzdCBiZSBhIFJlYWN0IGVsZW1lbnQsIGJ1dCB5b3UgcGFzc2VkICIrZSsiLiIpO3ZhciByPV8oe30sZS5wcm9wcyksbz1lLmtleTtpZihudWxsIT10KWZvcih1IGluIHZvaWQgMCE9PXQua2V5JiYobz0iIit0LmtleSksdClBLmNhbGwodCx1KSYmImtleSIhPT11JiYiX19zZWxmIiE9PXUmJiJfX3NvdXJjZSIhPT11JiYoInJlZiIhPT11fHx2b2lkIDAhPT10LnJlZikmJihyW3VdPXRbdV0pO3ZhciB1PWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09dSlyLmNoaWxkcmVuPW47ZWxzZSBpZigxPHUpe2Zvcih2YXIgYT1BcnJheSh1KSxpPTA7aTx1O2krKylhW2ldPWFyZ3VtZW50c1tpKzJdO3IuY2hpbGRyZW49YX1yZXR1cm4gaihlLnR5cGUsbyxyKX0sbi5jcmVhdGVDb250ZXh0PWZ1bmN0aW9uKGUpe3JldHVybihlPXskJHR5cGVvZjpjLF9jdXJyZW50VmFsdWU6ZSxfY3VycmVudFZhbHVlMjplLF90aHJlYWRDb3VudDowLFByb3ZpZGVyOm51bGwsQ29uc3VtZXI6bnVsbH0pLlByb3ZpZGVyPWUsZS5Db25zdW1lcj17JCR0eXBlb2Y6cyxfY29udGV4dDplfSxlfSxuLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByLG89e30sdT1udWxsO2lmKG51bGwhPXQpZm9yKHIgaW4gdm9pZCAwIT09dC5rZXkmJih1PSIiK3Qua2V5KSx0KUEuY2FsbCh0LHIpJiYia2V5IiE9PXImJiJfX3NlbGYiIT09ciYmIl9fc291cmNlIiE9PXImJihvW3JdPXRbcl0pO3ZhciBhPWFyZ3VtZW50cy5sZW5ndGgtMjtpZigxPT09YSlvLmNoaWxkcmVuPW47ZWxzZSBpZigxPGEpe2Zvcih2YXIgaT1BcnJheShhKSxsPTA7bDxhO2wrKylpW2xdPWFyZ3VtZW50c1tsKzJdO28uY2hpbGRyZW49aX1pZihlJiZlLmRlZmF1bHRQcm9wcylmb3IociBpbiBhPWUuZGVmYXVsdFByb3BzKXZvaWQgMD09PW9bcl0mJihvW3JdPWFbcl0pO3JldHVybiBqKGUsdSxvKX0sbi5jcmVhdGVSZWY9ZnVuY3Rpb24oKXtyZXR1cm57Y3VycmVudDpudWxsfX0sbi5mb3J3YXJkUmVmPWZ1bmN0aW9uKGUpe3JldHVybnskJHR5cGVvZjpmLHJlbmRlcjplfX0sbi5pc1ZhbGlkRWxlbWVudD0kLG4ubGF6eT1mdW5jdGlvbihlKXtyZXR1cm57JCR0eXBlb2Y6eSxfcGF5bG9hZDp7X3N0YXR1czotMSxfcmVzdWx0OmV9LF9pbml0Ok19fSxuLm1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm57JCR0eXBlb2Y6cCx0eXBlOmUsY29tcGFyZTp2b2lkIDA9PT10P251bGw6dH19LG4uc3RhcnRUcmFuc2l0aW9uPUksbi51bnN0YWJsZV91c2VDYWNoZVJlZnJlc2g9ZnVuY3Rpb24oKXtyZXR1cm4gVC5ILnVzZUNhY2hlUmVmcmVzaCgpfSxuLnVzZT1mdW5jdGlvbihlKXtyZXR1cm4gVC5ILnVzZShlKX0sbi51c2VBY3Rpb25TdGF0ZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIFQuSC51c2VBY3Rpb25TdGF0ZShlLHQsbil9LG4udXNlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5ILnVzZUNhbGxiYWNrKGUsdCl9LG4udXNlQ29udGV4dD1mdW5jdGlvbihlKXtyZXR1cm4gVC5ILnVzZUNvbnRleHQoZSl9LG4udXNlRGVidWdWYWx1ZT1mdW5jdGlvbigpe30sbi51c2VEZWZlcnJlZFZhbHVlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFQuSC51c2VEZWZlcnJlZFZhbHVlKGUsdCl9LG4udXNlRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFQuSC51c2VFZmZlY3QoZSx0KX0sbi51c2VFZmZlY3RFdmVudD1mdW5jdGlvbihlKXtyZXR1cm4gVC5ILnVzZUVmZmVjdEV2ZW50KGUpfSxuLnVzZUlkPWZ1bmN0aW9uKCl7cmV0dXJuIFQuSC51c2VJZCgpfSxuLnVzZUltcGVyYXRpdmVIYW5kbGU9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBULkgudXNlSW1wZXJhdGl2ZUhhbmRsZShlLHQsbil9LG4udXNlSW5zZXJ0aW9uRWZmZWN0PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFQuSC51c2VJbnNlcnRpb25FZmZlY3QoZSx0KX0sbi51c2VMYXlvdXRFZmZlY3Q9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5ILnVzZUxheW91dEVmZmVjdChlLHQpfSxuLnVzZU1lbW89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gVC5ILnVzZU1lbW8oZSx0KX0sbi51c2VPcHRpbWlzdGljPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIFQuSC51c2VPcHRpbWlzdGljKGUsdCl9LG4udXNlUmVkdWNlcj1mdW5jdGlvbihlLHQsbil7cmV0dXJuIFQuSC51c2VSZWR1Y2VyKGUsdCxuKX0sbi51c2VSZWY9ZnVuY3Rpb24oZSl7cmV0dXJuIFQuSC51c2VSZWYoZSl9LG4udXNlU3RhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIFQuSC51c2VTdGF0ZShlKX0sbi51c2VTeW5jRXh0ZXJuYWxTdG9yZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIFQuSC51c2VTeW5jRXh0ZXJuYWxTdG9yZShlLHQsbil9LG4udXNlVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiBULkgudXNlVHJhbnNpdGlvbigpfSxuLnZlcnNpb249IjE5LjMuMC1jYW5hcnktNTI2ODQ5MjUtMjAyNTExMTAifSwyNzE2NDUsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ZS5yKDM1MDc0MCl9LDgxODgwMCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByPWUucigyNzE2NDUpO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9Imh0dHBzOi8vcmVhY3QuZGV2L2Vycm9ycy8iK2U7aWYoMTxhcmd1bWVudHMubGVuZ3RoKXt0Kz0iP2FyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbMV0pO2Zvcih2YXIgbj0yO248YXJndW1lbnRzLmxlbmd0aDtuKyspdCs9IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW25dKX1yZXR1cm4iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrZSsiOyB2aXNpdCAiK3QrIiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5pZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIn1mdW5jdGlvbiB1KCl7fXZhciBhPXtkOntmOnUscjpmdW5jdGlvbigpe3Rocm93IEVycm9yKG8oNTIyKSl9LEQ6dSxDOnUsTDp1LG06dSxYOnUsUzp1LE06dX0scDowLGZpbmRET01Ob2RlOm51bGx9LGk9U3ltYm9sLmZvcigicmVhY3QucG9ydGFsIiksbD1yLl9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtmdW5jdGlvbiBzKGUsdCl7cmV0dXJuImZvbnQiPT09ZT8iIjoic3RyaW5nIj09dHlwZW9mIHQ/InVzZS1jcmVkZW50aWFscyI9PT10P3Q6IiI6dm9pZCAwfW4uX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFPWEsbi5jcmVhdGVQb3J0YWw9ZnVuY3Rpb24oZSx0KXt2YXIgbj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtpZighdHx8MSE9PXQubm9kZVR5cGUmJjkhPT10Lm5vZGVUeXBlJiYxMSE9PXQubm9kZVR5cGUpdGhyb3cgRXJyb3IobygyOTkpKTtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpudWxsO3JldHVybnskJHR5cGVvZjppLGtleTpudWxsPT1yP251bGw6IiIrcixjaGlsZHJlbjplLGNvbnRhaW5lckluZm86dCxpbXBsZW1lbnRhdGlvbjpufX0oZSx0LG51bGwsbil9LG4uZmx1c2hTeW5jPWZ1bmN0aW9uKGUpe3ZhciB0PWwuVCxuPWEucDt0cnl7aWYobC5UPW51bGwsYS5wPTIsZSlyZXR1cm4gZSgpfWZpbmFsbHl7bC5UPXQsYS5wPW4sYS5kLmYoKX19LG4ucHJlY29ubmVjdD1mdW5jdGlvbihlLHQpeyJzdHJpbmciPT10eXBlb2YgZSYmKHQ9dD8ic3RyaW5nIj09dHlwZW9mKHQ9dC5jcm9zc09yaWdpbik/InVzZS1jcmVkZW50aWFscyI9PT10P3Q6IiI6dm9pZCAwOm51bGwsYS5kLkMoZSx0KSl9LG4ucHJlZmV0Y2hETlM9ZnVuY3Rpb24oZSl7InN0cmluZyI9PXR5cGVvZiBlJiZhLmQuRChlKX0sbi5wcmVpbml0PWZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlJiZ0JiYic3RyaW5nIj09dHlwZW9mIHQuYXMpe3ZhciBuPXQuYXMscj1zKG4sdC5jcm9zc09yaWdpbiksbz0ic3RyaW5nIj09dHlwZW9mIHQuaW50ZWdyaXR5P3QuaW50ZWdyaXR5OnZvaWQgMCx1PSJzdHJpbmciPT10eXBlb2YgdC5mZXRjaFByaW9yaXR5P3QuZmV0Y2hQcmlvcml0eTp2b2lkIDA7InN0eWxlIj09PW4/YS5kLlMoZSwic3RyaW5nIj09dHlwZW9mIHQucHJlY2VkZW5jZT90LnByZWNlZGVuY2U6dm9pZCAwLHtjcm9zc09yaWdpbjpyLGludGVncml0eTpvLGZldGNoUHJpb3JpdHk6dX0pOiJzY3JpcHQiPT09biYmYS5kLlgoZSx7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6byxmZXRjaFByaW9yaXR5OnUsbm9uY2U6InN0cmluZyI9PXR5cGVvZiB0Lm5vbmNlP3Qubm9uY2U6dm9pZCAwfSl9fSxuLnByZWluaXRNb2R1bGU9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIGUpaWYoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCl7aWYobnVsbD09dC5hc3x8InNjcmlwdCI9PT10LmFzKXt2YXIgbj1zKHQuYXMsdC5jcm9zc09yaWdpbik7YS5kLk0oZSx7Y3Jvc3NPcmlnaW46bixpbnRlZ3JpdHk6InN0cmluZyI9PXR5cGVvZiB0LmludGVncml0eT90LmludGVncml0eTp2b2lkIDAsbm9uY2U6InN0cmluZyI9PXR5cGVvZiB0Lm5vbmNlP3Qubm9uY2U6dm9pZCAwfSl9fWVsc2UgbnVsbD09dCYmYS5kLk0oZSl9LG4ucHJlbG9hZD1mdW5jdGlvbihlLHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmInN0cmluZyI9PXR5cGVvZiB0LmFzKXt2YXIgbj10LmFzLHI9cyhuLHQuY3Jvc3NPcmlnaW4pO2EuZC5MKGUsbix7Y3Jvc3NPcmlnaW46cixpbnRlZ3JpdHk6InN0cmluZyI9PXR5cGVvZiB0LmludGVncml0eT90LmludGVncml0eTp2b2lkIDAsbm9uY2U6InN0cmluZyI9PXR5cGVvZiB0Lm5vbmNlP3Qubm9uY2U6dm9pZCAwLHR5cGU6InN0cmluZyI9PXR5cGVvZiB0LnR5cGU/dC50eXBlOnZvaWQgMCxmZXRjaFByaW9yaXR5OiJzdHJpbmciPT10eXBlb2YgdC5mZXRjaFByaW9yaXR5P3QuZmV0Y2hQcmlvcml0eTp2b2lkIDAscmVmZXJyZXJQb2xpY3k6InN0cmluZyI9PXR5cGVvZiB0LnJlZmVycmVyUG9saWN5P3QucmVmZXJyZXJQb2xpY3k6dm9pZCAwLGltYWdlU3JjU2V0OiJzdHJpbmciPT10eXBlb2YgdC5pbWFnZVNyY1NldD90LmltYWdlU3JjU2V0OnZvaWQgMCxpbWFnZVNpemVzOiJzdHJpbmciPT10eXBlb2YgdC5pbWFnZVNpemVzP3QuaW1hZ2VTaXplczp2b2lkIDAsbWVkaWE6InN0cmluZyI9PXR5cGVvZiB0Lm1lZGlhP3QubWVkaWE6dm9pZCAwfSl9fSxuLnByZWxvYWRNb2R1bGU9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIj09dHlwZW9mIGUpaWYodCl7dmFyIG49cyh0LmFzLHQuY3Jvc3NPcmlnaW4pO2EuZC5tKGUse2FzOiJzdHJpbmciPT10eXBlb2YgdC5hcyYmInNjcmlwdCIhPT10LmFzP3QuYXM6dm9pZCAwLGNyb3NzT3JpZ2luOm4saW50ZWdyaXR5OiJzdHJpbmciPT10eXBlb2YgdC5pbnRlZ3JpdHk/dC5pbnRlZ3JpdHk6dm9pZCAwfSl9ZWxzZSBhLmQubShlKX0sbi5yZXF1ZXN0Rm9ybVJlc2V0PWZ1bmN0aW9uKGUpe2EuZC5yKGUpfSxuLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUodCl9LG4udXNlRm9ybVN0YXRlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbC5ILnVzZUZvcm1TdGF0ZShlLHQsbil9LG4udXNlRm9ybVN0YXR1cz1mdW5jdGlvbigpe3JldHVybiBsLkgudXNlSG9zdFRyYW5zaXRpb25TdGF0dXMoKX0sbi52ZXJzaW9uPSIxOS4zLjAtY2FuYXJ5LTUyNjg0OTI1LTIwMjUxMTEwIn0sMTc0MDgwLChlLHQsbik9PnsidXNlIHN0cmljdCI7IWZ1bmN0aW9uIGUoKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyYmImZ1bmN0aW9uIj09dHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSl0cnl7X19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSgpLHQuZXhwb3J0cz1lLnIoODE4ODAwKX0sMTkwODA5LChlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgV2Vha01hcClyZXR1cm4gbnVsbDt2YXIgdD1uZXcgV2Vha01hcCxuPW5ldyBXZWFrTWFwO3JldHVybihyPWZ1bmN0aW9uKGUpe3JldHVybiBlP246dH0pKGUpfW4uXz1mdW5jdGlvbihlLHQpe2lmKCF0JiZlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7aWYobnVsbD09PWV8fCJvYmplY3QiIT10eXBlb2YgZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpcmV0dXJue2RlZmF1bHQ6ZX07dmFyIG49cih0KTtpZihuJiZuLmhhcyhlKSlyZXR1cm4gbi5nZXQoZSk7dmFyIG89e19fcHJvdG9fXzpudWxsfSx1PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtmb3IodmFyIGEgaW4gZSlpZigiZGVmYXVsdCIhPT1hJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxhKSl7dmFyIGk9dT9PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsYSk6bnVsbDtpJiYoaS5nZXR8fGkuc2V0KT9PYmplY3QuZGVmaW5lUHJvcGVydHkobyxhLGkpOm9bYV09ZVthXX1yZXR1cm4gby5kZWZhdWx0PWUsbiYmbi5zZXQoZSxvKSxvfX0sOTY0ODkzLChlLHQsbik9PnsidXNlIHN0cmljdCI7dmFyIHI9ZS5yKDE3NDA4MCksbz17c3RyZWFtOiEwfSx1PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gYSh0KXt2YXIgbj1lLnIodCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIG4udGhlbnx8ImZ1bGZpbGxlZCI9PT1uLnN0YXR1cz9udWxsOihuLnRoZW4oZnVuY3Rpb24oZSl7bi5zdGF0dXM9ImZ1bGZpbGxlZCIsbi52YWx1ZT1lfSxmdW5jdGlvbihlKXtuLnN0YXR1cz0icmVqZWN0ZWQiLG4ucmVhc29uPWV9KSxuKX12YXIgaT1uZXcgV2Vha1NldCxsPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIHMoKXt9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIG49dFsxXSxyPVtdLG89MDtvPG4ubGVuZ3RoO28rKyl7dmFyIHU9ZS5MKG5bb10pO2lmKGwuaGFzKHUpfHxyLnB1c2godSksIWkuaGFzKHUpKXt2YXIgYz1sLmFkZC5iaW5kKGwsdSk7dS50aGVuKGMscyksaS5hZGQodSl9fXJldHVybiA0PT09dC5sZW5ndGg/MD09PXIubGVuZ3RoP2EodFswXSk6UHJvbWlzZS5hbGwocikudGhlbihmdW5jdGlvbigpe3JldHVybiBhKHRbMF0pfSk6MDxyLmxlbmd0aD9Qcm9taXNlLmFsbChyKTpudWxsfWZ1bmN0aW9uIGYodCl7dmFyIG49ZS5yKHRbMF0pO2lmKDQ9PT10Lmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIG4udGhlbilpZigiZnVsZmlsbGVkIj09PW4uc3RhdHVzKW49bi52YWx1ZTtlbHNlIHRocm93IG4ucmVhc29uO3JldHVybiIqIj09PXRbMl0/bjoiIj09PXRbMl0/bi5fX2VzTW9kdWxlP24uZGVmYXVsdDpuOnUuY2FsbChuLHRbMl0pP25bdFsyXV06dm9pZCAwfXZhciBkPXIuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLHA9U3ltYm9sLmZvcigicmVhY3QudHJhbnNpdGlvbmFsLmVsZW1lbnQiKSx5PVN5bWJvbC5mb3IoInJlYWN0LmxhenkiKSx2PVN5bWJvbC5pdGVyYXRvcixoPVN5bWJvbC5hc3luY0l0ZXJhdG9yLGc9QXJyYXkuaXNBcnJheSxiPU9iamVjdC5nZXRQcm90b3R5cGVPZixfPU9iamVjdC5wcm90b3R5cGUsbT1uZXcgV2Vha01hcDtmdW5jdGlvbiBTKGUsdCxuKXttLmhhcyhlKXx8bS5zZXQoZSx7aWQ6dCxvcmlnaW5hbEJpbmQ6ZS5iaW5kLGJvdW5kOm59KX1mdW5jdGlvbiB3KGUsdCxuKXt0aGlzLnN0YXR1cz1lLHRoaXMudmFsdWU9dCx0aGlzLnJlYXNvbj1ufWZ1bmN0aW9uIE8oZSl7c3dpdGNoKGUuc3RhdHVzKXtjYXNlInJlc29sdmVkX21vZGVsIjpNKGUpO2JyZWFrO2Nhc2UicmVzb2x2ZWRfbW9kdWxlIjpEKGUpfXN3aXRjaChlLnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiBlLnZhbHVlO2Nhc2UicGVuZGluZyI6Y2FzZSJibG9ja2VkIjpjYXNlImhhbHRlZCI6dGhyb3cgZTtkZWZhdWx0OnRocm93IGUucmVhc29ufX1mdW5jdGlvbiBrKGUsdCxuLHIpe2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgdT10W29dOyJmdW5jdGlvbiI9PXR5cGVvZiB1P3Uobik6RihlLHUsbixyKX19ZnVuY3Rpb24gRShlLHQsbil7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07ImZ1bmN0aW9uIj09dHlwZW9mIG8/byhuKTpVKGUsby5oYW5kbGVyLG4pfX1mdW5jdGlvbiBSKGUsdCl7dmFyIG49dC5oYW5kbGVyLmNodW5rO2lmKG51bGw9PT1uKXJldHVybiBudWxsO2lmKG49PT1lKXJldHVybiB0LmhhbmRsZXI7aWYobnVsbCE9PSh0PW4udmFsdWUpKWZvcihuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHImJm51bGwhPT0ocj1SKGUscikpKXJldHVybiByfXJldHVybiBudWxsfWZ1bmN0aW9uIFQoZSx0LG4scil7c3dpdGNoKHQuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6ayhlLG4sdC52YWx1ZSx0KTticmVhaztjYXNlImJsb2NrZWQiOmZvcih2YXIgbz0wO288bi5sZW5ndGg7bysrKXt2YXIgdT1uW29dO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB1KXt2YXIgYT1SKHQsdSk7aWYobnVsbCE9PWEpc3dpdGNoKEYoZSx1LGEudmFsdWUsdCksbi5zcGxpY2UobywxKSxvLS0sbnVsbCE9PXImJi0xIT09KHU9ci5pbmRleE9mKHUpKSYmci5zcGxpY2UodSwxKSx0LnN0YXR1cyl7Y2FzZSJmdWxmaWxsZWQiOmsoZSxuLHQudmFsdWUsdCk7cmV0dXJuO2Nhc2UicmVqZWN0ZWQiOm51bGwhPT1yJiZFKGUscix0LnJlYXNvbik7cmV0dXJufX19Y2FzZSJwZW5kaW5nIjppZih0LnZhbHVlKWZvcihlPTA7ZTxuLmxlbmd0aDtlKyspdC52YWx1ZS5wdXNoKG5bZV0pO2Vsc2UgdC52YWx1ZT1uO2lmKHQucmVhc29uKXtpZihyKWZvcihuPTA7bjxyLmxlbmd0aDtuKyspdC5yZWFzb24ucHVzaChyW25dKX1lbHNlIHQucmVhc29uPXI7YnJlYWs7Y2FzZSJyZWplY3RlZCI6ciYmRShlLHIsdC5yZWFzb24pfX1mdW5jdGlvbiBBKGUsdCxuKXtpZigicGVuZGluZyIhPT10LnN0YXR1cyYmImJsb2NrZWQiIT09dC5zdGF0dXMpdC5yZWFzb24uZXJyb3Iobik7ZWxzZXt2YXIgcj10LnJlYXNvbjt0LnN0YXR1cz0icmVqZWN0ZWQiLHQucmVhc29uPW4sbnVsbCE9PXImJkUoZSxyLG4pfX1mdW5jdGlvbiBqKGUsdCxuKXtyZXR1cm4gbmV3IHcoInJlc29sdmVkX21vZGVsIiwobj8neyJkb25lIjp0cnVlLCJ2YWx1ZSI6JzoneyJkb25lIjpmYWxzZSwidmFsdWUiOicpK3QrIn0iLGUpfWZ1bmN0aW9uICQoZSx0LG4scil7QyhlLHQsKHI/J3siZG9uZSI6dHJ1ZSwidmFsdWUiOic6J3siZG9uZSI6ZmFsc2UsInZhbHVlIjonKStuKyJ9Iil9ZnVuY3Rpb24gQyhlLHQsbil7aWYoInBlbmRpbmciIT09dC5zdGF0dXMpdC5yZWFzb24uZW5xdWV1ZU1vZGVsKG4pO2Vsc2V7dmFyIHI9dC52YWx1ZSxvPXQucmVhc29uO3Quc3RhdHVzPSJyZXNvbHZlZF9tb2RlbCIsdC52YWx1ZT1uLHQucmVhc29uPWUsbnVsbCE9PXImJihNKHQpLFQoZSx0LHIsbykpfX1mdW5jdGlvbiBQKGUsdCxuKXtpZigicGVuZGluZyI9PT10LnN0YXR1c3x8ImJsb2NrZWQiPT09dC5zdGF0dXMpe3ZhciByPXQudmFsdWUsbz10LnJlYXNvbjt0LnN0YXR1cz0icmVzb2x2ZWRfbW9kdWxlIix0LnZhbHVlPW4sdC5yZWFzb249bnVsbCxudWxsIT09ciYmKEQodCksVChlLHQscixvKSl9fXcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUHJvbWlzZS5wcm90b3R5cGUpLHcucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZSx0KXtzd2l0Y2godGhpcy5zdGF0dXMpe2Nhc2UicmVzb2x2ZWRfbW9kZWwiOk0odGhpcyk7YnJlYWs7Y2FzZSJyZXNvbHZlZF9tb2R1bGUiOkQodGhpcyl9c3dpdGNoKHRoaXMuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUodGhpcy52YWx1ZSk7YnJlYWs7Y2FzZSJwZW5kaW5nIjpjYXNlImJsb2NrZWQiOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobnVsbD09PXRoaXMudmFsdWUmJih0aGlzLnZhbHVlPVtdKSx0aGlzLnZhbHVlLnB1c2goZSkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYobnVsbD09PXRoaXMucmVhc29uJiYodGhpcy5yZWFzb249W10pLHRoaXMucmVhc29uLnB1c2godCkpO2JyZWFrO2Nhc2UiaGFsdGVkIjpicmVhaztkZWZhdWx0OiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0KHRoaXMucmVhc29uKX19O3ZhciBOPW51bGw7ZnVuY3Rpb24gTShlKXt2YXIgdD1OO049bnVsbDt2YXIgbj1lLnZhbHVlLHI9ZS5yZWFzb247ZS5zdGF0dXM9ImJsb2NrZWQiLGUudmFsdWU9bnVsbCxlLnJlYXNvbj1udWxsO3RyeXt2YXIgbz1KU09OLnBhcnNlKG4sci5fZnJvbUpTT04pLHU9ZS52YWx1ZTtpZihudWxsIT09dSlmb3IoZS52YWx1ZT1udWxsLGUucmVhc29uPW51bGwsbj0wO248dS5sZW5ndGg7bisrKXt2YXIgYT11W25dOyJmdW5jdGlvbiI9PXR5cGVvZiBhP2Eobyk6RihyLGEsbyxlKX1pZihudWxsIT09Til7aWYoTi5lcnJvcmVkKXRocm93IE4ucmVhc29uO2lmKDA8Ti5kZXBzKXtOLnZhbHVlPW8sTi5jaHVuaz1lO3JldHVybn19ZS5zdGF0dXM9ImZ1bGZpbGxlZCIsZS52YWx1ZT1vfWNhdGNoKHQpe2Uuc3RhdHVzPSJyZWplY3RlZCIsZS5yZWFzb249dH1maW5hbGx5e049dH19ZnVuY3Rpb24gRChlKXt0cnl7dmFyIHQ9ZihlLnZhbHVlKTtlLnN0YXR1cz0iZnVsZmlsbGVkIixlLnZhbHVlPXR9Y2F0Y2godCl7ZS5zdGF0dXM9InJlamVjdGVkIixlLnJlYXNvbj10fX1mdW5jdGlvbiBJKGUsdCl7ZS5fY2xvc2VkPSEwLGUuX2Nsb3NlZFJlYXNvbj10LGUuX2NodW5rcy5mb3JFYWNoKGZ1bmN0aW9uKG4peyJwZW5kaW5nIj09PW4uc3RhdHVzP0EoZSxuLHQpOiJmdWxmaWxsZWQiPT09bi5zdGF0dXMmJm51bGwhPT1uLnJlYXNvbiYmbi5yZWFzb24uZXJyb3IodCl9KX1mdW5jdGlvbiB4KGUpe3JldHVybnskJHR5cGVvZjp5LF9wYXlsb2FkOmUsX2luaXQ6T319ZnVuY3Rpb24gTChlLHQpe3ZhciBuPWUuX2NodW5rcyxyPW4uZ2V0KHQpO3JldHVybiByfHwocj1lLl9jbG9zZWQ/bmV3IHcoInJlamVjdGVkIixudWxsLGUuX2Nsb3NlZFJlYXNvbik6bmV3IHcoInBlbmRpbmciLG51bGwsbnVsbCksbi5zZXQodCxyKSkscn1mdW5jdGlvbiBGKGUsdCxuKXt2YXIgcj10LmhhbmRsZXIsbz10LnBhcmVudE9iamVjdCx1PXQua2V5LGE9dC5tYXAsaT10LnBhdGg7dHJ5e2Zvcih2YXIgbD0xO2w8aS5sZW5ndGg7bCsrKXtmb3IoOyJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJm4uJCR0eXBlb2Y9PT15Oyl7dmFyIHM9bi5fcGF5bG9hZDtpZihzPT09ci5jaHVuayluPXIudmFsdWU7ZWxzZXtzd2l0Y2gocy5zdGF0dXMpe2Nhc2UicmVzb2x2ZWRfbW9kZWwiOk0ocyk7YnJlYWs7Y2FzZSJyZXNvbHZlZF9tb2R1bGUiOkQocyl9c3dpdGNoKHMuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6bj1zLnZhbHVlO2NvbnRpbnVlO2Nhc2UiYmxvY2tlZCI6dmFyIGM9UihzLHQpO2lmKG51bGwhPT1jKXtuPWMudmFsdWU7Y29udGludWV9Y2FzZSJwZW5kaW5nIjppLnNwbGljZSgwLGwtMSksbnVsbD09PXMudmFsdWU/cy52YWx1ZT1bdF06cy52YWx1ZS5wdXNoKHQpLG51bGw9PT1zLnJlYXNvbj9zLnJlYXNvbj1bdF06cy5yZWFzb24ucHVzaCh0KTtyZXR1cm47Y2FzZSJoYWx0ZWQiOnJldHVybjtkZWZhdWx0OlUoZSx0LmhhbmRsZXIscy5yZWFzb24pO3JldHVybn19fW49bltpW2xdXX1mb3IoOyJvYmplY3QiPT10eXBlb2YgbiYmbnVsbCE9PW4mJm4uJCR0eXBlb2Y9PT15Oyl7dmFyIGY9bi5fcGF5bG9hZDtpZihmPT09ci5jaHVuayluPXIudmFsdWU7ZWxzZXtzd2l0Y2goZi5zdGF0dXMpe2Nhc2UicmVzb2x2ZWRfbW9kZWwiOk0oZik7YnJlYWs7Y2FzZSJyZXNvbHZlZF9tb2R1bGUiOkQoZil9aWYoImZ1bGZpbGxlZCI9PT1mLnN0YXR1cyl7bj1mLnZhbHVlO2NvbnRpbnVlfWJyZWFrfX12YXIgZD1hKGUsbixvLHUpO2lmKG9bdV09ZCwiIj09PXUmJm51bGw9PT1yLnZhbHVlJiYoci52YWx1ZT1kKSxvWzBdPT09cCYmIm9iamVjdCI9PXR5cGVvZiByLnZhbHVlJiZudWxsIT09ci52YWx1ZSYmci52YWx1ZS4kJHR5cGVvZj09PXApe3ZhciB2PXIudmFsdWU7IjMiPT09dSYmKHYucHJvcHM9ZCl9fWNhdGNoKG4pe1UoZSx0LmhhbmRsZXIsbik7cmV0dXJufXIuZGVwcy0tLDA9PT1yLmRlcHMmJm51bGwhPT0odD1yLmNodW5rKSYmImJsb2NrZWQiPT09dC5zdGF0dXMmJihuPXQudmFsdWUsdC5zdGF0dXM9ImZ1bGZpbGxlZCIsdC52YWx1ZT1yLnZhbHVlLHQucmVhc29uPXIucmVhc29uLG51bGwhPT1uJiZrKGUsbixyLnZhbHVlLHQpKX1mdW5jdGlvbiBVKGUsdCxuKXt0LmVycm9yZWR8fCh0LmVycm9yZWQ9ITAsdC52YWx1ZT1udWxsLHQucmVhc29uPW4sbnVsbCE9PSh0PXQuY2h1bmspJiYiYmxvY2tlZCI9PT10LnN0YXR1cyYmQShlLHQsbikpfWZ1bmN0aW9uIEgoZSx0LG4scixvLHUpe3JldHVybiBOPyhyPU4sci5kZXBzKyspOnI9Tj17cGFyZW50Om51bGwsY2h1bms6bnVsbCx2YWx1ZTpudWxsLHJlYXNvbjpudWxsLGRlcHM6MSxlcnJvcmVkOiExfSx0PXtoYW5kbGVyOnIscGFyZW50T2JqZWN0OnQsa2V5Om4sbWFwOm8scGF0aDp1fSxudWxsPT09ZS52YWx1ZT9lLnZhbHVlPVt0XTplLnZhbHVlLnB1c2godCksbnVsbD09PWUucmVhc29uP2UucmVhc29uPVt0XTplLnJlYXNvbi5wdXNoKHQpLG51bGx9ZnVuY3Rpb24gQihlLHQsbixyKXtpZighZS5fc2VydmVyUmVmZXJlbmNlQ29uZmlnKXJldHVybiBmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBvPyJmdWxmaWxsZWQiPT09by5zdGF0dXM/dChyLG8udmFsdWUuY29uY2F0KGUpKTpQcm9taXNlLnJlc29sdmUobykudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gdChyLG4uY29uY2F0KGUpKX0pOnQocixlKX12YXIgcj1lLmlkLG89ZS5ib3VuZDtyZXR1cm4gUyhuLHIsbyksbn0odCxlLl9jYWxsU2VydmVyKTt2YXIgbz1mdW5jdGlvbihlLHQpe3ZhciBuPSIiLHI9ZVt0XTtpZihyKW49ci5uYW1lO2Vsc2V7dmFyIG89dC5sYXN0SW5kZXhPZigiIyIpO2lmKC0xIT09byYmKG49dC5zbGljZShvKzEpLHI9ZVt0LnNsaWNlKDAsbyldKSwhcil0aHJvdyBFcnJvcignQ291bGQgbm90IGZpbmQgdGhlIG1vZHVsZSAiJyt0KyciIGluIHRoZSBSZWFjdCBTZXJ2ZXIgTWFuaWZlc3QuIFRoaXMgaXMgcHJvYmFibHkgYSBidWcgaW4gdGhlIFJlYWN0IFNlcnZlciBDb21wb25lbnRzIGJ1bmRsZXIuJyl9cmV0dXJuIHIuYXN5bmM/W3IuaWQsci5jaHVua3MsbiwxXTpbci5pZCxyLmNodW5rcyxuXX0oZS5fc2VydmVyUmVmZXJlbmNlQ29uZmlnLHQuaWQpLHU9YyhvKTtpZih1KXQuYm91bmQmJih1PVByb21pc2UuYWxsKFt1LHQuYm91bmRdKSk7ZWxzZXtpZighdC5ib3VuZClyZXR1cm4gUyh1PWYobyksdC5pZCx0LmJvdW5kKSx1O3U9UHJvbWlzZS5yZXNvbHZlKHQuYm91bmQpfWlmKE4pe3ZhciBhPU47YS5kZXBzKyt9ZWxzZSBhPU49e3BhcmVudDpudWxsLGNodW5rOm51bGwsdmFsdWU6bnVsbCxyZWFzb246bnVsbCxkZXBzOjEsZXJyb3JlZDohMX07cmV0dXJuIHUudGhlbihmdW5jdGlvbigpe3ZhciB1PWYobyk7aWYodC5ib3VuZCl7dmFyIGk9dC5ib3VuZC52YWx1ZS5zbGljZSgwKTtpLnVuc2hpZnQobnVsbCksdT11LmJpbmQuYXBwbHkodSxpKX1TKHUsdC5pZCx0LmJvdW5kKSxuW3JdPXUsIiI9PT1yJiZudWxsPT09YS52YWx1ZSYmKGEudmFsdWU9dSksblswXT09PXAmJiJvYmplY3QiPT10eXBlb2YgYS52YWx1ZSYmbnVsbCE9PWEudmFsdWUmJmEudmFsdWUuJCR0eXBlb2Y9PT1wJiYoaT1hLnZhbHVlLCIzIj09PXIpJiYoaS5wcm9wcz11KSxhLmRlcHMtLSwwPT09YS5kZXBzJiZudWxsIT09KHU9YS5jaHVuaykmJiJibG9ja2VkIj09PXUuc3RhdHVzJiYoaT11LnZhbHVlLHUuc3RhdHVzPSJmdWxmaWxsZWQiLHUudmFsdWU9YS52YWx1ZSx1LnJlYXNvbj1udWxsLG51bGwhPT1pJiZrKGUsaSxhLnZhbHVlLHUpKX0sZnVuY3Rpb24odCl7aWYoIWEuZXJyb3JlZCl7YS5lcnJvcmVkPSEwLGEudmFsdWU9bnVsbCxhLnJlYXNvbj10O3ZhciBuPWEuY2h1bms7bnVsbCE9PW4mJiJibG9ja2VkIj09PW4uc3RhdHVzJiZBKGUsbix0KX19KSxudWxsfWZ1bmN0aW9uIFYoZSx0LG4scixvKXt2YXIgdT1wYXJzZUludCgodD10LnNwbGl0KCI6IikpWzBdLDE2KTtzd2l0Y2goKHU9TChlLHUpKS5zdGF0dXMpe2Nhc2UicmVzb2x2ZWRfbW9kZWwiOk0odSk7YnJlYWs7Y2FzZSJyZXNvbHZlZF9tb2R1bGUiOkQodSl9c3dpdGNoKHUuc3RhdHVzKXtjYXNlImZ1bGZpbGxlZCI6dT11LnZhbHVlO2Zvcih2YXIgYT0xO2E8dC5sZW5ndGg7YSsrKXtmb3IoOyJvYmplY3QiPT10eXBlb2YgdSYmbnVsbCE9PXUmJnUuJCR0eXBlb2Y9PT15Oyl7c3dpdGNoKCh1PXUuX3BheWxvYWQpLnN0YXR1cyl7Y2FzZSJyZXNvbHZlZF9tb2RlbCI6TSh1KTticmVhaztjYXNlInJlc29sdmVkX21vZHVsZSI6RCh1KX1zd2l0Y2godS5zdGF0dXMpe2Nhc2UiZnVsZmlsbGVkIjp1PXUudmFsdWU7YnJlYWs7Y2FzZSJibG9ja2VkIjpjYXNlInBlbmRpbmciOnJldHVybiBIKHUsbixyLGUsbyx0LnNsaWNlKGEtMSkpO2Nhc2UiaGFsdGVkIjpyZXR1cm4gTj8oZT1OLGUuZGVwcysrKTpOPXtwYXJlbnQ6bnVsbCxjaHVuazpudWxsLHZhbHVlOm51bGwscmVhc29uOm51bGwsZGVwczoxLGVycm9yZWQ6ITF9LG51bGw7ZGVmYXVsdDpyZXR1cm4gTj8oTi5lcnJvcmVkPSEwLE4udmFsdWU9bnVsbCxOLnJlYXNvbj11LnJlYXNvbik6Tj17cGFyZW50Om51bGwsY2h1bms6bnVsbCx2YWx1ZTpudWxsLHJlYXNvbjp1LnJlYXNvbixkZXBzOjAsZXJyb3JlZDohMH0sbnVsbH19dT11W3RbYV1dfWZvcig7Im9iamVjdCI9PXR5cGVvZiB1JiZudWxsIT09dSYmdS4kJHR5cGVvZj09PXk7KXtzd2l0Y2goKHQ9dS5fcGF5bG9hZCkuc3RhdHVzKXtjYXNlInJlc29sdmVkX21vZGVsIjpNKHQpO2JyZWFrO2Nhc2UicmVzb2x2ZWRfbW9kdWxlIjpEKHQpfWlmKCJmdWxmaWxsZWQiPT09dC5zdGF0dXMpe3U9dC52YWx1ZTtjb250aW51ZX1icmVha31yZXR1cm4gbyhlLHUsbixyKTtjYXNlInBlbmRpbmciOmNhc2UiYmxvY2tlZCI6cmV0dXJuIEgodSxuLHIsZSxvLHQpO2Nhc2UiaGFsdGVkIjpyZXR1cm4gTj8oZT1OLGUuZGVwcysrKTpOPXtwYXJlbnQ6bnVsbCxjaHVuazpudWxsLHZhbHVlOm51bGwscmVhc29uOm51bGwsZGVwczoxLGVycm9yZWQ6ITF9LG51bGw7ZGVmYXVsdDpyZXR1cm4gTj8oTi5lcnJvcmVkPSEwLE4udmFsdWU9bnVsbCxOLnJlYXNvbj11LnJlYXNvbik6Tj17cGFyZW50Om51bGwsY2h1bms6bnVsbCx2YWx1ZTpudWxsLHJlYXNvbjp1LnJlYXNvbixkZXBzOjAsZXJyb3JlZDohMH0sbnVsbH19ZnVuY3Rpb24gcShlLHQpe3JldHVybiBuZXcgTWFwKHQpfWZ1bmN0aW9uIEooZSx0KXtyZXR1cm4gbmV3IFNldCh0KX1mdW5jdGlvbiBXKGUsdCl7cmV0dXJuIG5ldyBCbG9iKHQuc2xpY2UoMSkse3R5cGU6dFswXX0pfWZ1bmN0aW9uIEcoZSx0KXtlPW5ldyBGb3JtRGF0YTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyllLmFwcGVuZCh0W25dWzBdLHRbbl1bMV0pO3JldHVybiBlfWZ1bmN0aW9uIEsoZSx0KXtyZXR1cm4gdFtTeW1ib2wuaXRlcmF0b3JdKCl9ZnVuY3Rpb24gWChlLHQpe3JldHVybiB0fWZ1bmN0aW9uIHooKXt0aHJvdyBFcnJvcignVHJ5aW5nIHRvIGNhbGwgYSBmdW5jdGlvbiBmcm9tICJ1c2Ugc2VydmVyIiBidXQgdGhlIGNhbGxTZXJ2ZXIgb3B0aW9uIHdhcyBub3QgaW1wbGVtZW50ZWQgaW4geW91ciByb3V0ZXIgcnVudGltZS4nKX1mdW5jdGlvbiBZKGUsdCxuLHIsbyx1LGEpe3ZhciBpLGw9bmV3IE1hcDt0aGlzLl9idW5kbGVyQ29uZmlnPWUsdGhpcy5fc2VydmVyUmVmZXJlbmNlQ29uZmlnPXQsdGhpcy5fbW9kdWxlTG9hZGluZz1uLHRoaXMuX2NhbGxTZXJ2ZXI9dm9pZCAwIT09cj9yOnosdGhpcy5fZW5jb2RlRm9ybUFjdGlvbj1vLHRoaXMuX25vbmNlPXUsdGhpcy5fY2h1bmtzPWwsdGhpcy5fc3RyaW5nRGVjb2Rlcj1uZXcgVGV4dERlY29kZXIsdGhpcy5fZnJvbUpTT049bnVsbCx0aGlzLl9jbG9zZWQ9ITEsdGhpcy5fY2xvc2VkUmVhc29uPW51bGwsdGhpcy5fdGVtcFJlZnM9YSx0aGlzLl9mcm9tSlNPTj0oaT10aGlzLGZ1bmN0aW9uKGUsdCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgbj1pLHI9dGhpcyxvPWUsdT10O2lmKCIkIj09PXVbMF0pe2lmKCIkIj09PXUpcmV0dXJuIG51bGwhPT1OJiYiMCI9PT1vJiYoTj17cGFyZW50Ok4sY2h1bms6bnVsbCx2YWx1ZTpudWxsLHJlYXNvbjpudWxsLGRlcHM6MCxlcnJvcmVkOiExfSkscDtzd2l0Y2godVsxXSl7Y2FzZSIkIjpyZXR1cm4gdS5zbGljZSgxKTtjYXNlIkwiOnJldHVybiB4KG49TChuLHI9cGFyc2VJbnQodS5zbGljZSgyKSwxNikpKTtjYXNlIkAiOnJldHVybiBMKG4scj1wYXJzZUludCh1LnNsaWNlKDIpLDE2KSk7Y2FzZSJTIjpyZXR1cm4gU3ltYm9sLmZvcih1LnNsaWNlKDIpKTtjYXNlImgiOnJldHVybiBWKG4sdT11LnNsaWNlKDIpLHIsbyxCKTtjYXNlIlQiOmlmKHI9IiQiK3Uuc2xpY2UoMiksbnVsbD09KG49bi5fdGVtcFJlZnMpKXRocm93IEVycm9yKCJNaXNzaW5nIGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQgYnV0IHRoZSBSU0MgcmVzcG9uc2UgcmV0dXJuZWQgYSB0ZW1wb3JhcnkgcmVmZXJlbmNlLiBQYXNzIGEgdGVtcG9yYXJ5UmVmZXJlbmNlIG9wdGlvbiB3aXRoIHRoZSBzZXQgdGhhdCB3YXMgdXNlZCB3aXRoIHRoZSByZXBseS4iKTtyZXR1cm4gbi5nZXQocik7Y2FzZSJRIjpyZXR1cm4gVihuLHU9dS5zbGljZSgyKSxyLG8scSk7Y2FzZSJXIjpyZXR1cm4gVihuLHU9dS5zbGljZSgyKSxyLG8sSik7Y2FzZSJCIjpyZXR1cm4gVihuLHU9dS5zbGljZSgyKSxyLG8sVyk7Y2FzZSJLIjpyZXR1cm4gVihuLHU9dS5zbGljZSgyKSxyLG8sRyk7Y2FzZSJaIjpyZXR1cm4gZXIoKTtjYXNlImkiOnJldHVybiBWKG4sdT11LnNsaWNlKDIpLHIsbyxLKTtjYXNlIkkiOnJldHVybiAxLzA7Y2FzZSItIjpyZXR1cm4iJC0wIj09PXU/LTA6LTEvMDtjYXNlIk4iOnJldHVybiBOYU47Y2FzZSJ1IjpyZXR1cm47Y2FzZSJEIjpyZXR1cm4gbmV3IERhdGUoRGF0ZS5wYXJzZSh1LnNsaWNlKDIpKSk7Y2FzZSJuIjpyZXR1cm4gQmlnSW50KHUuc2xpY2UoMikpO2RlZmF1bHQ6cmV0dXJuIFYobix1PXUuc2xpY2UoMSkscixvLFgpfX1yZXR1cm4gdX1pZigib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10KXtpZih0WzBdPT09cCl7aWYoZT17JCR0eXBlb2Y6cCx0eXBlOnRbMV0sa2V5OnRbMl0scmVmOm51bGwscHJvcHM6dFszXX0sbnVsbCE9PU4pe2lmKE49KHQ9TikucGFyZW50LHQuZXJyb3JlZCllPXgoZT1uZXcgdygicmVqZWN0ZWQiLG51bGwsdC5yZWFzb24pKTtlbHNlIGlmKDA8dC5kZXBzKXt2YXIgYT1uZXcgdygiYmxvY2tlZCIsbnVsbCxudWxsKTt0LnZhbHVlPWUsdC5jaHVuaz1hLGU9eChhKX19fWVsc2UgZT10O3JldHVybiBlfXJldHVybiB0fSl9ZnVuY3Rpb24gUShlLHQsbil7dmFyIHI9KGU9ZS5fY2h1bmtzKS5nZXQodCk7ciYmInBlbmRpbmciIT09ci5zdGF0dXM/ci5yZWFzb24uZW5xdWV1ZVZhbHVlKG4pOihuPW5ldyB3KCJmdWxmaWxsZWQiLG4sbnVsbCksZS5zZXQodCxuKSl9ZnVuY3Rpb24gWihlLHQsbixyKXt2YXIgbz1lLl9jaHVua3MsdT1vLmdldCh0KTt1PyJwZW5kaW5nIj09PXUuc3RhdHVzJiYodD11LnZhbHVlLHUuc3RhdHVzPSJmdWxmaWxsZWQiLHUudmFsdWU9bix1LnJlYXNvbj1yLG51bGwhPT10JiZrKGUsdCx1LnZhbHVlLHUpKTooZT1uZXcgdygiZnVsZmlsbGVkIixuLHIpLG8uc2V0KHQsZSkpfWZ1bmN0aW9uIGVlKGUsdCxuKXt2YXIgcj1udWxsLG89ITE7bj1uZXcgUmVhZGFibGVTdHJlYW0oe3R5cGU6bixzdGFydDpmdW5jdGlvbihlKXtyPWV9fSk7dmFyIHU9bnVsbDtaKGUsdCxuLHtlbnF1ZXVlVmFsdWU6ZnVuY3Rpb24oZSl7bnVsbD09PXU/ci5lbnF1ZXVlKGUpOnUudGhlbihmdW5jdGlvbigpe3IuZW5xdWV1ZShlKX0pfSxlbnF1ZXVlTW9kZWw6ZnVuY3Rpb24odCl7aWYobnVsbD09PXUpe3ZhciBuPW5ldyB3KCJyZXNvbHZlZF9tb2RlbCIsdCxlKTtNKG4pLCJmdWxmaWxsZWQiPT09bi5zdGF0dXM/ci5lbnF1ZXVlKG4udmFsdWUpOihuLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIHIuZW5xdWV1ZShlKX0sZnVuY3Rpb24oZSl7cmV0dXJuIHIuZXJyb3IoZSl9KSx1PW4pfWVsc2V7bj11O3ZhciBvPW5ldyB3KCJwZW5kaW5nIixudWxsLG51bGwpO28udGhlbihmdW5jdGlvbihlKXtyZXR1cm4gci5lbnF1ZXVlKGUpfSxmdW5jdGlvbihlKXtyZXR1cm4gci5lcnJvcihlKX0pLHU9byxuLnRoZW4oZnVuY3Rpb24oKXt1PT09byYmKHU9bnVsbCksQyhlLG8sdCl9KX19LGNsb3NlOmZ1bmN0aW9uKCl7aWYoIW8paWYobz0hMCxudWxsPT09dSlyLmNsb3NlKCk7ZWxzZXt2YXIgZT11O3U9bnVsbCxlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5jbG9zZSgpfSl9fSxlcnJvcjpmdW5jdGlvbihlKXtpZighbylpZihvPSEwLG51bGw9PT11KXIuZXJyb3IoZSk7ZWxzZXt2YXIgdD11O3U9bnVsbCx0LnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gci5lcnJvcihlKX0pfX19KX1mdW5jdGlvbiBldCgpe3JldHVybiB0aGlzfWZ1bmN0aW9uIGVuKGUsdCxuKXt2YXIgcj1bXSxvPSExLHU9MCxhPXt9O2FbaF09ZnVuY3Rpb24oKXt2YXIgZSx0PTA7cmV0dXJuKGU9e25leHQ6ZT1mdW5jdGlvbihlKXtpZih2b2lkIDAhPT1lKXRocm93IEVycm9yKCJWYWx1ZXMgY2Fubm90IGJlIHBhc3NlZCB0byBuZXh0KCkgb2YgQXN5bmNJdGVyYWJsZXMgcGFzc2VkIHRvIENsaWVudCBDb21wb25lbnRzLiIpO2lmKHQ9PT1yLmxlbmd0aCl7aWYobylyZXR1cm4gbmV3IHcoImZ1bGZpbGxlZCIse2RvbmU6ITAsdmFsdWU6dm9pZCAwfSxudWxsKTtyW3RdPW5ldyB3KCJwZW5kaW5nIixudWxsLG51bGwpfXJldHVybiByW3QrK119fSlbaF09ZXQsZX0sWihlLHQsbj9hW2hdKCk6YSx7ZW5xdWV1ZVZhbHVlOmZ1bmN0aW9uKHQpe2lmKHU9PT1yLmxlbmd0aClyW3VdPW5ldyB3KCJmdWxmaWxsZWQiLHtkb25lOiExLHZhbHVlOnR9LG51bGwpO2Vsc2V7dmFyIG49clt1XSxvPW4udmFsdWUsYT1uLnJlYXNvbjtuLnN0YXR1cz0iZnVsZmlsbGVkIixuLnZhbHVlPXtkb25lOiExLHZhbHVlOnR9LG4ucmVhc29uPW51bGwsbnVsbCE9PW8mJlQoZSxuLG8sYSl9dSsrfSxlbnF1ZXVlTW9kZWw6ZnVuY3Rpb24odCl7dT09PXIubGVuZ3RoP3JbdV09aihlLHQsITEpOiQoZSxyW3VdLHQsITEpLHUrK30sY2xvc2U6ZnVuY3Rpb24odCl7aWYoIW8pZm9yKG89ITAsdT09PXIubGVuZ3RoP3JbdV09aihlLHQsITApOiQoZSxyW3VdLHQsITApLHUrKzt1PHIubGVuZ3RoOykkKGUsclt1KytdLCciJHVuZGVmaW5lZCInLCEwKX0sZXJyb3I6ZnVuY3Rpb24odCl7aWYoIW8pZm9yKG89ITAsdT09PXIubGVuZ3RoJiYoclt1XT1uZXcgdygicGVuZGluZyIsbnVsbCxudWxsKSk7dTxyLmxlbmd0aDspQShlLHJbdSsrXSx0KX19KX1mdW5jdGlvbiBlcigpe3ZhciBlPUVycm9yKCJBbiBlcnJvciBvY2N1cnJlZCBpbiB0aGUgU2VydmVyIENvbXBvbmVudHMgcmVuZGVyLiBUaGUgc3BlY2lmaWMgbWVzc2FnZSBpcyBvbWl0dGVkIGluIHByb2R1Y3Rpb24gYnVpbGRzIHRvIGF2b2lkIGxlYWtpbmcgc2Vuc2l0aXZlIGRldGFpbHMuIEEgZGlnZXN0IHByb3BlcnR5IGlzIGluY2x1ZGVkIG9uIHRoaXMgZXJyb3IgaW5zdGFuY2Ugd2hpY2ggbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGFib3V0IHRoZSBuYXR1cmUgb2YgdGhlIGVycm9yLiIpO3JldHVybiBlLnN0YWNrPSJFcnJvcjogIitlLm1lc3NhZ2UsZX1mdW5jdGlvbiBlbyhlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aCxyPXQubGVuZ3RoLG89MDtvPG47bysrKXIrPWVbb10uYnl0ZUxlbmd0aDtyPW5ldyBVaW50OEFycmF5KHIpO2Zvcih2YXIgdT1vPTA7dTxuO3UrKyl7dmFyIGE9ZVt1XTtyLnNldChhLG8pLG8rPWEuYnl0ZUxlbmd0aH1yZXR1cm4gci5zZXQodCxvKSxyfWZ1bmN0aW9uIGV1KGUsdCxuLHIsbyx1KXtRKGUsdCxvPW5ldyBvKChuPTA9PT1uLmxlbmd0aCYmMD09ci5ieXRlT2Zmc2V0JXU/cjplbyhuLHIpKS5idWZmZXIsbi5ieXRlT2Zmc2V0LG4uYnl0ZUxlbmd0aC91KSl9ZnVuY3Rpb24gZWEoZSl7SShlLEVycm9yKCJDb25uZWN0aW9uIGNsb3NlZC4iKSl9ZnVuY3Rpb24gZWkoZSl7cmV0dXJuIG5ldyBZKG51bGwsbnVsbCxudWxsLGUmJmUuY2FsbFNlcnZlcj9lLmNhbGxTZXJ2ZXI6dm9pZCAwLHZvaWQgMCx2b2lkIDAsZSYmZS50ZW1wb3JhcnlSZWZlcmVuY2VzP2UudGVtcG9yYXJ5UmVmZXJlbmNlczp2b2lkIDApfWZ1bmN0aW9uIGVsKGUsdCxuKXtmdW5jdGlvbiByKHQpe0koZSx0KX12YXIgdT17X3Jvd1N0YXRlOjAsX3Jvd0lEOjAsX3Jvd1RhZzowLF9yb3dMZW5ndGg6MCxfYnVmZmVyOltdfSxhPXQuZ2V0UmVhZGVyKCk7YS5yZWFkKCkudGhlbihmdW5jdGlvbiB0KGkpe3ZhciBsPWkudmFsdWU7aWYoaS5kb25lKXJldHVybiBuKCk7dmFyIHM9MCxmPXUuX3Jvd1N0YXRlO2k9dS5fcm93SUQ7Zm9yKHZhciBwPXUuX3Jvd1RhZyx5PXUuX3Jvd0xlbmd0aCx2PXUuX2J1ZmZlcixoPWwubGVuZ3RoO3M8aDspe3ZhciBnPS0xO3N3aXRjaChmKXtjYXNlIDA6NTg9PT0oZz1sW3MrK10pP2Y9MTppPWk8PDR8KDk2PGc/Zy04NzpnLTQ4KTtjb250aW51ZTtjYXNlIDE6ODQ9PT0oZj1sW3NdKXx8NjU9PT1mfHw3OT09PWZ8fDExMT09PWZ8fDg1PT09Znx8ODM9PT1mfHwxMTU9PT1mfHw3Nj09PWZ8fDEwOD09PWZ8fDcxPT09Znx8MTAzPT09Znx8Nzc9PT1mfHwxMDk9PT1mfHw4Nj09PWY/KHA9ZixmPTIscysrKTo2NDxmJiY5MT5mfHwzNT09PWZ8fDExND09PWZ8fDEyMD09PWY/KHA9ZixmPTMscysrKToocD0wLGY9Myk7Y29udGludWU7Y2FzZSAyOjQ0PT09KGc9bFtzKytdKT9mPTQ6eT15PDw0fCg5NjxnP2ctODc6Zy00OCk7Y29udGludWU7Y2FzZSAzOmc9bC5pbmRleE9mKDEwLHMpO2JyZWFrO2Nhc2UgNDooZz1zK3kpPmwubGVuZ3RoJiYoZz0tMSl9dmFyIGI9bC5ieXRlT2Zmc2V0K3M7aWYoLTE8ZykoZnVuY3Rpb24oZSx0LG4scix1LGEpe3N3aXRjaChyKXtjYXNlIDY1OlEoZSxuLGVvKHUsYSkuYnVmZmVyKTtyZXR1cm47Y2FzZSA3OTpldShlLG4sdSxhLEludDhBcnJheSwxKTtyZXR1cm47Y2FzZSAxMTE6UShlLG4sMD09PXUubGVuZ3RoP2E6ZW8odSxhKSk7cmV0dXJuO2Nhc2UgODU6ZXUoZSxuLHUsYSxVaW50OENsYW1wZWRBcnJheSwxKTtyZXR1cm47Y2FzZSA4MzpldShlLG4sdSxhLEludDE2QXJyYXksMik7cmV0dXJuO2Nhc2UgMTE1OmV1KGUsbix1LGEsVWludDE2QXJyYXksMik7cmV0dXJuO2Nhc2UgNzY6ZXUoZSxuLHUsYSxJbnQzMkFycmF5LDQpO3JldHVybjtjYXNlIDEwODpldShlLG4sdSxhLFVpbnQzMkFycmF5LDQpO3JldHVybjtjYXNlIDcxOmV1KGUsbix1LGEsRmxvYXQzMkFycmF5LDQpO3JldHVybjtjYXNlIDEwMzpldShlLG4sdSxhLEZsb2F0NjRBcnJheSw4KTtyZXR1cm47Y2FzZSA3NzpldShlLG4sdSxhLEJpZ0ludDY0QXJyYXksOCk7cmV0dXJuO2Nhc2UgMTA5OmV1KGUsbix1LGEsQmlnVWludDY0QXJyYXksOCk7cmV0dXJuO2Nhc2UgODY6ZXUoZSxuLHUsYSxEYXRhVmlldywxKTtyZXR1cm59dD1lLl9zdHJpbmdEZWNvZGVyO2Zvcih2YXIgaT0iIixsPTA7bDx1Lmxlbmd0aDtsKyspaSs9dC5kZWNvZGUodVtsXSxvKTtzd2l0Y2godT1pKz10LmRlY29kZShhKSxyKXtjYXNlIDczOnZhciBzPWUsZj1uLHA9dSx5PXMuX2NodW5rcyx2PXkuZ2V0KGYpO3A9SlNPTi5wYXJzZShwLHMuX2Zyb21KU09OKTt2YXIgaD1mdW5jdGlvbihlLHQpe2lmKGUpe3ZhciBuPWVbdFswXV07aWYoZT1uJiZuW3RbMl1dKW49ZS5uYW1lO2Vsc2V7aWYoIShlPW4mJm5bIioiXSkpdGhyb3cgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIHRoZSBtb2R1bGUgIicrdFswXSsnIiBpbiB0aGUgUmVhY3QgU2VydmVyIENvbnN1bWVyIE1hbmlmZXN0LiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIHRoZSBSZWFjdCBTZXJ2ZXIgQ29tcG9uZW50cyBidW5kbGVyLicpO249dFsyXX1yZXR1cm4gND09PXQubGVuZ3RoP1tlLmlkLGUuY2h1bmtzLG4sMV06W2UuaWQsZS5jaHVua3Msbl19cmV0dXJuIHR9KHMuX2J1bmRsZXJDb25maWcscCk7aWYocD1jKGgpKXtpZih2KXt2YXIgZz12O2cuc3RhdHVzPSJibG9ja2VkIn1lbHNlIGc9bmV3IHcoImJsb2NrZWQiLG51bGwsbnVsbCkseS5zZXQoZixnKTtwLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUChzLGcsaCl9LGZ1bmN0aW9uKGUpe3JldHVybiBBKHMsZyxlKX0pfWVsc2Ugdj9QKHMsdixoKToodj1uZXcgdygicmVzb2x2ZWRfbW9kdWxlIixoLG51bGwpLHkuc2V0KGYsdikpO2JyZWFrO2Nhc2UgNzI6c3dpdGNoKG49dVswXSxlPUpTT04ucGFyc2UodT11LnNsaWNlKDEpLGUuX2Zyb21KU09OKSx1PWQuZCxuKXtjYXNlIkQiOnUuRChlKTticmVhaztjYXNlIkMiOiJzdHJpbmciPT10eXBlb2YgZT91LkMoZSk6dS5DKGVbMF0sZVsxXSk7YnJlYWs7Y2FzZSJMIjpuPWVbMF0scj1lWzFdLDM9PT1lLmxlbmd0aD91LkwobixyLGVbMl0pOnUuTChuLHIpO2JyZWFrO2Nhc2UibSI6InN0cmluZyI9PXR5cGVvZiBlP3UubShlKTp1Lm0oZVswXSxlWzFdKTticmVhaztjYXNlIlgiOiJzdHJpbmciPT10eXBlb2YgZT91LlgoZSk6dS5YKGVbMF0sZVsxXSk7YnJlYWs7Y2FzZSJTIjoic3RyaW5nIj09dHlwZW9mIGU/dS5TKGUpOnUuUyhlWzBdLDA9PT1lWzFdP3ZvaWQgMDplWzFdLDM9PT1lLmxlbmd0aD9lWzJdOnZvaWQgMCk7YnJlYWs7Y2FzZSJNIjoic3RyaW5nIj09dHlwZW9mIGU/dS5NKGUpOnUuTShlWzBdLGVbMV0pfWJyZWFrO2Nhc2UgNjk6YT0ocj1lLl9jaHVua3MpLmdldChuKSx1PUpTT04ucGFyc2UodSksKHQ9ZXIoKSkuZGlnZXN0PXUuZGlnZXN0LGE/QShlLGEsdCk6KGU9bmV3IHcoInJlamVjdGVkIixudWxsLHQpLHIuc2V0KG4sZSkpO2JyZWFrO2Nhc2UgODQ6KHI9KGU9ZS5fY2h1bmtzKS5nZXQobikpJiYicGVuZGluZyIhPT1yLnN0YXR1cz9yLnJlYXNvbi5lbnF1ZXVlVmFsdWUodSk6KHU9bmV3IHcoImZ1bGZpbGxlZCIsdSxudWxsKSxlLnNldChuLHUpKTticmVhaztjYXNlIDc4OmNhc2UgNjg6Y2FzZSA3NDpjYXNlIDg3OnRocm93IEVycm9yKCJGYWlsZWQgdG8gcmVhZCBhIFJTQyBwYXlsb2FkIGNyZWF0ZWQgYnkgYSBkZXZlbG9wbWVudCB2ZXJzaW9uIG9mIFJlYWN0IG9uIHRoZSBzZXJ2ZXIgd2hpbGUgdXNpbmcgYSBwcm9kdWN0aW9uIHZlcnNpb24gb24gdGhlIGNsaWVudC4gQWx3YXlzIHVzZSBtYXRjaGluZyB2ZXJzaW9ucyBvbiB0aGUgc2VydmVyIGFuZCB0aGUgY2xpZW50LiIpO2Nhc2UgODI6ZWUoZSxuLHZvaWQgMCk7YnJlYWs7Y2FzZSAxMTQ6ZWUoZSxuLCJieXRlcyIpO2JyZWFrO2Nhc2UgODg6ZW4oZSxuLCExKTticmVhaztjYXNlIDEyMDplbihlLG4sITApO2JyZWFrO2Nhc2UgNjc6KG49ZS5fY2h1bmtzLmdldChuKSkmJiJmdWxmaWxsZWQiPT09bi5zdGF0dXMmJm4ucmVhc29uLmNsb3NlKCIiPT09dT8nIiR1bmRlZmluZWQiJzp1KTticmVhaztkZWZhdWx0OihhPShyPWUuX2NodW5rcykuZ2V0KG4pKT9DKGUsYSx1KTooZT1uZXcgdygicmVzb2x2ZWRfbW9kZWwiLHUsZSksci5zZXQobixlKSl9fSkoZSx1LGkscCx2LHk9bmV3IFVpbnQ4QXJyYXkobC5idWZmZXIsYixnLXMpKSxzPWcsMz09PWYmJnMrKyx5PWk9cD1mPTAsdi5sZW5ndGg9MDtlbHNle2w9bmV3IFVpbnQ4QXJyYXkobC5idWZmZXIsYixsLmJ5dGVMZW5ndGgtcyksdi5wdXNoKGwpLHktPWwuYnl0ZUxlbmd0aDticmVha319cmV0dXJuIHUuX3Jvd1N0YXRlPWYsdS5fcm93SUQ9aSx1Ll9yb3dUYWc9cCx1Ll9yb3dMZW5ndGg9eSxhLnJlYWQoKS50aGVuKHQpLmNhdGNoKHIpfSkuY2F0Y2gocil9bi5jcmVhdGVGcm9tRmV0Y2g9ZnVuY3Rpb24oZSx0KXt2YXIgbj1laSh0KTtyZXR1cm4gZS50aGVuKGZ1bmN0aW9uKGUpe2VsKG4sZS5ib2R5LGVhLmJpbmQobnVsbCxuKSl9LGZ1bmN0aW9uKGUpe0kobixlKX0pLEwobiwwKX0sbi5jcmVhdGVGcm9tUmVhZGFibGVTdHJlYW09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZWwodD1laSh0KSxlLGVhLmJpbmQobnVsbCx0KSksTCh0LDApfSxuLmNyZWF0ZVNlcnZlclJlZmVyZW5jZT1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXt2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiB0KGUsbil9cmV0dXJuIFMobixlLG51bGwpLG59LG4uY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBNYXB9LG4uZW5jb2RlUmVwbHk9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt2YXIgbz1mdW5jdGlvbihlLHQsbixyLG8pe2Z1bmN0aW9uIHUoZSx0KXt0PW5ldyBCbG9iKFtuZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKV0pO3ZhciBuPWwrKztyZXR1cm4gbnVsbD09PWMmJihjPW5ldyBGb3JtRGF0YSksYy5hcHBlbmQoIiIrbix0KSwiJCIrZStuLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBhKGUsdCl7aWYobnVsbD09PXQpcmV0dXJuIG51bGw7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtzd2l0Y2godC4kJHR5cGVvZil7Y2FzZSBwOmlmKHZvaWQgMCE9PW4mJi0xPT09ZS5pbmRleE9mKCI6Iikpe3ZhciBTLHcsTyxrLEUsUj1mLmdldCh0aGlzKTtpZih2b2lkIDAhPT1SKXJldHVybiBuLnNldChSKyI6IitlLHQpLCIkVCJ9dGhyb3cgRXJyb3IoIlJlYWN0IEVsZW1lbnQgY2Fubm90IGJlIHBhc3NlZCB0byBTZXJ2ZXIgRnVuY3Rpb25zIGZyb20gdGhlIENsaWVudCB3aXRob3V0IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQuIFBhc3MgYSBUZW1wb3JhcnlSZWZlcmVuY2VTZXQgdG8gdGhlIG9wdGlvbnMuIik7Y2FzZSB5OlI9dC5fcGF5bG9hZDt2YXIgVD10Ll9pbml0O251bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLHMrKzt0cnl7dmFyIEE9VChSKSxqPWwrKywkPWkoQSxqKTtyZXR1cm4gYy5hcHBlbmQoIiIraiwkKSwiJCIrai50b1N0cmluZygxNil9Y2F0Y2goZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbil7cysrO3ZhciBDPWwrKztyZXR1cm4gUj1mdW5jdGlvbigpe3RyeXt2YXIgZT1pKHQsQyksbj1jO24uYXBwZW5kKCIiK0MsZSkscy0tLDA9PT1zJiZyKG4pfWNhdGNoKGUpe28oZSl9fSxlLnRoZW4oUixSKSwiJCIrQy50b1N0cmluZygxNil9cmV0dXJuIG8oZSksbnVsbH1maW5hbGx5e3MtLX19aWYoUj1mLmdldCh0KSwiZnVuY3Rpb24iPT10eXBlb2YgdC50aGVuKXtpZih2b2lkIDAhPT1SKWlmKGQhPT10KXJldHVybiBSO2Vsc2UgZD1udWxsO251bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLHMrKzt2YXIgUD1sKys7cmV0dXJuIGU9IiRAIitQLnRvU3RyaW5nKDE2KSxmLnNldCh0LGUpLHQudGhlbihmdW5jdGlvbihlKXt0cnl7dmFyIHQ9Zi5nZXQoZSksbj12b2lkIDAhPT10P0pTT04uc3RyaW5naWZ5KHQpOmkoZSxQKTsoZT1jKS5hcHBlbmQoIiIrUCxuKSxzLS0sMD09PXMmJnIoZSl9Y2F0Y2goZSl7byhlKX19LG8pLGV9aWYodm9pZCAwIT09UilpZihkIT09dClyZXR1cm4gUjtlbHNlIGQ9bnVsbDtlbHNlIC0xPT09ZS5pbmRleE9mKCI6IikmJnZvaWQgMCE9PShSPWYuZ2V0KHRoaXMpKSYmKGU9UisiOiIrZSxmLnNldCh0LGUpLHZvaWQgMCE9PW4mJm4uc2V0KGUsdCkpO2lmKGcodCkpcmV0dXJuIHQ7aWYodCBpbnN0YW5jZW9mIEZvcm1EYXRhKXtudWxsPT09YyYmKGM9bmV3IEZvcm1EYXRhKTt2YXIgTj1jLE09IiIrKGU9bCsrKSsiXyI7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlLHQpe04uYXBwZW5kKE0rdCxlKX0pLCIkSyIrZS50b1N0cmluZygxNil9aWYodCBpbnN0YW5jZW9mIE1hcClyZXR1cm4gZT1sKyssUj1pKEFycmF5LmZyb20odCksZSksbnVsbD09PWMmJihjPW5ldyBGb3JtRGF0YSksYy5hcHBlbmQoIiIrZSxSKSwiJFEiK2UudG9TdHJpbmcoMTYpO2lmKHQgaW5zdGFuY2VvZiBTZXQpcmV0dXJuIGU9bCsrLFI9aShBcnJheS5mcm9tKHQpLGUpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGMuYXBwZW5kKCIiK2UsUiksIiRXIitlLnRvU3RyaW5nKDE2KTtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIGU9bmV3IEJsb2IoW3RdKSxSPWwrKyxudWxsPT09YyYmKGM9bmV3IEZvcm1EYXRhKSxjLmFwcGVuZCgiIitSLGUpLCIkQSIrUi50b1N0cmluZygxNik7aWYodCBpbnN0YW5jZW9mIEludDhBcnJheSlyZXR1cm4gdSgiTyIsdCk7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIHUoIm8iLHQpO2lmKHQgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSlyZXR1cm4gdSgiVSIsdCk7aWYodCBpbnN0YW5jZW9mIEludDE2QXJyYXkpcmV0dXJuIHUoIlMiLHQpO2lmKHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheSlyZXR1cm4gdSgicyIsdCk7aWYodCBpbnN0YW5jZW9mIEludDMyQXJyYXkpcmV0dXJuIHUoIkwiLHQpO2lmKHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheSlyZXR1cm4gdSgibCIsdCk7aWYodCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSlyZXR1cm4gdSgiRyIsdCk7aWYodCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSlyZXR1cm4gdSgiZyIsdCk7aWYodCBpbnN0YW5jZW9mIEJpZ0ludDY0QXJyYXkpcmV0dXJuIHUoIk0iLHQpO2lmKHQgaW5zdGFuY2VvZiBCaWdVaW50NjRBcnJheSlyZXR1cm4gdSgibSIsdCk7aWYodCBpbnN0YW5jZW9mIERhdGFWaWV3KXJldHVybiB1KCJWIix0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQmxvYiYmdCBpbnN0YW5jZW9mIEJsb2IpcmV0dXJuIG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGU9bCsrLGMuYXBwZW5kKCIiK2UsdCksIiRCIitlLnRvU3RyaW5nKDE2KTtpZihlPW51bGw9PT0oUz10KXx8Im9iamVjdCIhPXR5cGVvZiBTP251bGw6ImZ1bmN0aW9uIj09dHlwZW9mKFM9diYmU1t2XXx8U1siQEBpdGVyYXRvciJdKT9TOm51bGwpcmV0dXJuKFI9ZS5jYWxsKHQpKT09PXQ/KGU9bCsrLFI9aShBcnJheS5mcm9tKFIpLGUpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGMuYXBwZW5kKCIiK2UsUiksIiRpIitlLnRvU3RyaW5nKDE2KSk6QXJyYXkuZnJvbShSKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUmVhZGFibGVTdHJlYW0mJnQgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSlyZXR1cm4gZnVuY3Rpb24oZSl7dHJ5e3ZhciB0LG4sdSxpLGYsZCxwLHk9ZS5nZXRSZWFkZXIoe21vZGU6ImJ5b2IifSl9Y2F0Y2goaSl7cmV0dXJuIHQ9ZS5nZXRSZWFkZXIoKSxudWxsPT09YyYmKGM9bmV3IEZvcm1EYXRhKSxuPWMscysrLHU9bCsrLHQucmVhZCgpLnRoZW4oZnVuY3Rpb24gZShpKXtpZihpLmRvbmUpbi5hcHBlbmQoIiIrdSwiQyIpLDA9PS0tcyYmcihuKTtlbHNlIHRyeXt2YXIgbD1KU09OLnN0cmluZ2lmeShpLnZhbHVlLGEpO24uYXBwZW5kKCIiK3UsbCksdC5yZWFkKCkudGhlbihlLG8pfWNhdGNoKGUpe28oZSl9fSxvKSwiJFIiK3UudG9TdHJpbmcoMTYpfXJldHVybiBpPXksbnVsbD09PWMmJihjPW5ldyBGb3JtRGF0YSksZj1jLHMrKyxkPWwrKyxwPVtdLGkucmVhZChuZXcgVWludDhBcnJheSgxMDI0KSkudGhlbihmdW5jdGlvbiBlKHQpe3QuZG9uZT8odD1sKyssZi5hcHBlbmQoIiIrdCxuZXcgQmxvYihwKSksZi5hcHBlbmQoIiIrZCwnIiRvJyt0LnRvU3RyaW5nKDE2KSsnIicpLGYuYXBwZW5kKCIiK2QsIkMiKSwwPT0tLXMmJnIoZikpOihwLnB1c2godC52YWx1ZSksaS5yZWFkKG5ldyBVaW50OEFycmF5KDEwMjQpKS50aGVuKGUsbykpfSxvKSwiJHIiK2QudG9TdHJpbmcoMTYpfSh0KTtpZigiZnVuY3Rpb24iPT10eXBlb2YoZT10W2hdKSlyZXR1cm4gdz10LE89ZS5jYWxsKHQpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLGs9YyxzKyssRT1sKyssdz13PT09TyxPLm5leHQoKS50aGVuKGZ1bmN0aW9uIGUodCl7aWYodC5kb25lKXtpZih2b2lkIDA9PT10LnZhbHVlKWsuYXBwZW5kKCIiK0UsIkMiKTtlbHNlIHRyeXt2YXIgbj1KU09OLnN0cmluZ2lmeSh0LnZhbHVlLGEpO2suYXBwZW5kKCIiK0UsIkMiK24pfWNhdGNoKGUpe28oZSk7cmV0dXJufTA9PS0tcyYmcihrKX1lbHNlIHRyeXt2YXIgdT1KU09OLnN0cmluZ2lmeSh0LnZhbHVlLGEpO2suYXBwZW5kKCIiK0UsdSksTy5uZXh0KCkudGhlbihlLG8pfWNhdGNoKGUpe28oZSl9fSxvKSwiJCIrKHc/IngiOiJYIikrRS50b1N0cmluZygxNik7aWYoKGU9Yih0KSkhPT1fJiYobnVsbD09PWV8fG51bGwhPT1iKGUpKSl7aWYodm9pZCAwPT09bil0aHJvdyBFcnJvcigiT25seSBwbGFpbiBvYmplY3RzLCBhbmQgYSBmZXcgYnVpbHQtaW5zLCBjYW4gYmUgcGFzc2VkIHRvIFNlcnZlciBGdW5jdGlvbnMuIENsYXNzZXMgb3IgbnVsbCBwcm90b3R5cGVzIGFyZSBub3Qgc3VwcG9ydGVkLiIpO3JldHVybiIkVCJ9cmV0dXJuIHR9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiJaIj09PXRbdC5sZW5ndGgtMV0mJnRoaXNbZV1pbnN0YW5jZW9mIERhdGU/IiREIit0OmU9IiQiPT09dFswXT8iJCIrdDp0O2lmKCJib29sZWFuIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiBOdW1iZXIuaXNGaW5pdGUodCk/MD09PXQmJi0xLzA9PTEvdD8iJC0wIjp0OjEvMD09PXQ/IiRJbmZpbml0eSI6LTEvMD09PXQ/IiQtSW5maW5pdHkiOiIkTmFOIjtpZih2b2lkIDA9PT10KXJldHVybiIkdW5kZWZpbmVkIjtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7aWYodm9pZCAwIT09KFI9bS5nZXQodCkpKXJldHVybiBlPUpTT04uc3RyaW5naWZ5KHtpZDpSLmlkLGJvdW5kOlIuYm91bmR9LGEpLG51bGw9PT1jJiYoYz1uZXcgRm9ybURhdGEpLFI9bCsrLGMuc2V0KCIiK1IsZSksIiRoIitSLnRvU3RyaW5nKDE2KTtpZih2b2lkIDAhPT1uJiYtMT09PWUuaW5kZXhPZigiOiIpJiZ2b2lkIDAhPT0oUj1mLmdldCh0aGlzKSkpcmV0dXJuIG4uc2V0KFIrIjoiK2UsdCksIiRUIjt0aHJvdyBFcnJvcigiQ2xpZW50IEZ1bmN0aW9ucyBjYW5ub3QgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIFNlcnZlciBGdW5jdGlvbnMuIE9ubHkgRnVuY3Rpb25zIHBhc3NlZCBmcm9tIHRoZSBTZXJ2ZXIgY2FuIGJlIHBhc3NlZCBiYWNrIGFnYWluLiIpfWlmKCJzeW1ib2wiPT10eXBlb2YgdCl7aWYodm9pZCAwIT09biYmLTE9PT1lLmluZGV4T2YoIjoiKSYmdm9pZCAwIT09KFI9Zi5nZXQodGhpcykpKXJldHVybiBuLnNldChSKyI6IitlLHQpLCIkVCI7dGhyb3cgRXJyb3IoIlN5bWJvbHMgY2Fubm90IGJlIHBhc3NlZCB0byBhIFNlcnZlciBGdW5jdGlvbiB3aXRob3V0IGEgdGVtcG9yYXJ5IHJlZmVyZW5jZSBzZXQuIFBhc3MgYSBUZW1wb3JhcnlSZWZlcmVuY2VTZXQgdG8gdGhlIG9wdGlvbnMuIil9aWYoImJpZ2ludCI9PXR5cGVvZiB0KXJldHVybiIkbiIrdC50b1N0cmluZygxMCk7dGhyb3cgRXJyb3IoIlR5cGUgIit0eXBlb2YgdCsiIGlzIG5vdCBzdXBwb3J0ZWQgYXMgYW4gYXJndW1lbnQgdG8gYSBTZXJ2ZXIgRnVuY3Rpb24uIil9ZnVuY3Rpb24gaShlLHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJih0PSIkIit0LnRvU3RyaW5nKDE2KSxmLnNldChlLHQpLHZvaWQgMCE9PW4mJm4uc2V0KHQsZSkpLGQ9ZSxKU09OLnN0cmluZ2lmeShlLGEpfXZhciBsPTEscz0wLGM9bnVsbCxmPW5ldyBXZWFrTWFwLGQ9ZSxTPWkoZSwwKTtyZXR1cm4gbnVsbD09PWM/cihTKTooYy5zZXQoIjAiLFMpLDA9PT1zJiZyKGMpKSxmdW5jdGlvbigpezA8cyYmKHM9MCxudWxsPT09Yz9yKFMpOnIoYykpfX0oZSwwLHQmJnQudGVtcG9yYXJ5UmVmZXJlbmNlcz90LnRlbXBvcmFyeVJlZmVyZW5jZXM6dm9pZCAwLG4scik7aWYodCYmdC5zaWduYWwpe3ZhciB1PXQuc2lnbmFsO2lmKHUuYWJvcnRlZClvKHUucmVhc29uKTtlbHNle3ZhciBhPWZ1bmN0aW9uKCl7byh1LnJlYXNvbiksdS5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsYSl9O3UuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGEpfX19KX0sbi5yZWdpc3RlclNlcnZlclJlZmVyZW5jZT1mdW5jdGlvbihlLHQpe3JldHVybiBTKGUsdCxudWxsKSxlfX0sMTIxNDEzLChlLHQsbik9PnsidXNlIHN0cmljdCI7dC5leHBvcnRzPWUucig5NjQ4OTMpfSwyMzUzMjYsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ZS5yKDEyMTQxMyl9LDM4ODU0MCwoZSx0LG4pPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcixvPXtBQ1RJT05fSE1SX1JFRlJFU0g6ZnVuY3Rpb24oKXtyZXR1cm4gY30sQUNUSU9OX05BVklHQVRFOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LEFDVElPTl9SRUZSRVNIOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LEFDVElPTl9SRVNUT1JFOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LEFDVElPTl9TRVJWRVJfQUNUSU9OOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LEFDVElPTl9TRVJWRVJfUEFUQ0g6ZnVuY3Rpb24oKXtyZXR1cm4gc30sUHJlZmV0Y2hLaW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGR9fTtmb3IodmFyIHUgaW4gbylPYmplY3QuZGVmaW5lUHJvcGVydHkobix1LHtlbnVtZXJhYmxlOiEwLGdldDpvW3VdfSk7bGV0IGE9InJlZnJlc2giLGk9Im5hdmlnYXRlIixsPSJyZXN0b3JlIixzPSJzZXJ2ZXItcGF0Y2giLGM9Imhtci1yZWZyZXNoIixmPSJzZXJ2ZXItYWN0aW9uIjt2YXIgZD0oKHI9e30pLkFVVE89ImF1dG8iLHIuRlVMTD0iZnVsbCIsci5URU1QT1JBUlk9InRlbXBvcmFyeSIscik7KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sNTY0MjQ1LChlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSYmInRoZW4iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbn1PYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImlzVGhlbmFibGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByfX0pfSw5NDE1MzgsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9e2Rpc3BhdGNoQXBwUm91dGVyQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHVzZUFjdGlvblF1ZXVlOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIG8gaW4gcilPYmplY3QuZGVmaW5lUHJvcGVydHkobixvLHtlbnVtZXJhYmxlOiEwLGdldDpyW29dfSk7bGV0IHU9ZS5yKDE5MDgwOSkuXyhlLnIoMjcxNjQ1KSksYT1lLnIoNTY0MjQ1KSxpPW51bGw7ZnVuY3Rpb24gbChlKXtpZihudWxsPT09aSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludGVybmFsIE5leHQuanMgZXJyb3I6IFJvdXRlciBhY3Rpb24gZGlzcGF0Y2hlZCBiZWZvcmUgaW5pdGlhbGl6YXRpb24uIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU2NjgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7aShlKX1mdW5jdGlvbiBzKGUpe2xldFt0LG5dPXUuZGVmYXVsdC51c2VTdGF0ZShlLnN0YXRlKTtpPXQ9PmUuZGlzcGF0Y2godCxuKTtsZXQgcj0oMCx1LnVzZU1lbW8pKCgpPT50LFt0XSk7cmV0dXJuKDAsYS5pc1RoZW5hYmxlKShyKT8oMCx1LnVzZSkocik6cn0oImZ1bmN0aW9uIj09dHlwZW9mIG4uZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiBuLmRlZmF1bHQmJm51bGwhPT1uLmRlZmF1bHQpJiZ2b2lkIDA9PT1uLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24obi5kZWZhdWx0LG4pLHQuZXhwb3J0cz1uLmRlZmF1bHQpfSwxMzIxMjAsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImNhbGxTZXJ2ZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCByPWUucigyNzE2NDUpLG89ZS5yKDM4ODU0MCksdT1lLnIoOTQxNTM4KTthc3luYyBmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIG5ldyBQcm9taXNlKChuLGEpPT57KDAsci5zdGFydFRyYW5zaXRpb24pKCgpPT57KDAsdS5kaXNwYXRjaEFwcFJvdXRlckFjdGlvbikoe3R5cGU6by5BQ1RJT05fU0VSVkVSX0FDVElPTixhY3Rpb25JZDplLGFjdGlvbkFyZ3M6dCxyZXNvbHZlOm4scmVqZWN0OmF9KX0pfSl9KCJmdW5jdGlvbiI9PXR5cGVvZiBuLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygbi5kZWZhdWx0JiZudWxsIT09bi5kZWZhdWx0KSYmdm9pZCAwPT09bi5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkobi5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKG4uZGVmYXVsdCxuKSx0LmV4cG9ydHM9bi5kZWZhdWx0KX0sOTIyNDUsKGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtsZXQgcjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sImZpbmRTb3VyY2VNYXBVUkwiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByfX0pOygiZnVuY3Rpb24iPT10eXBlb2Ygbi5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIG4uZGVmYXVsdCYmbnVsbCE9PW4uZGVmYXVsdCkmJnZvaWQgMD09PW4uZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihuLmRlZmF1bHQsbiksdC5leHBvcnRzPW4uZGVmYXVsdCl9XSk7"}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/Silka_Regular-s.p.67d455c4.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.373Z","timestamp":1785142498373,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/Silka_Regular-s.p.67d455c4.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"Silka_Regular-s.p.67d455c4.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"c7b6f4d143875ead3ba4a4a36b24dec6\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/Silka_Regular-s.p.67d455c4.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::5dt7x-1785142498378-d3be5e845b83\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":41936,"size_decoded":21238,"mime_type":"font/otf","magic":"OpenType font data","md5":"c7b6f4d143875ead3ba4a4a36b24dec6","sha1":"d3cf0a3f2e46edb54de5ad9f6f89bfc6fb2f2577","sha256":"719e1b3f32a9526eab1a5d405e4f3386ec36b9eac11fab0de88bb94b60aa5df6","sha512":"332717e32a322185cc926d1cad570f4a8bc57688f478701b7f79581ea77655b9da661e73939ff06c88961edae7eb1932c152d0cf8ade68b01e7a73c0401b60fb","ssdeep":"768:LpkhctbFKiEJQGF7rkDpwGwls6hqj0HeM5uGFV7bbyNGxgMRE1jJlApbYwvYGuh6:6ctGB42quFRy4RWjJliVEYgm1","tlshash":"8b138dc9773d2304d7269a3615e7c3baab708559fbe3b357ba924100bd817d21c88fa4","first_seen":"2023-09-20T14:32:09Z","last_seen":"2026-07-27T08:57:45.705122Z","times_seen":43,"resource_available":false,"data":"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dGVhbWFjcm9uY2RvdGFjY2VudGRjYXJvbmRjcm9hdGVjYXJvblphY3V0ZWVtYWNyb25lb2dvbmVrZWRvdGFjY2VudGhiYXJnZG90YWNjZW50aGNpcmN1bWZsZXhpLmxvY2xUUktjY2Fyb251bmkwMTIzZ2JyZXZlaW9nb25la3VuaTAyMzdpbWFjcm9udW5pMDEzN2xjYXJvbmxhY3V0ZWtncmVlbmxhbmRpY3VuaTAxM0NuYWN1dGVsZG90bmNhcm9uZW5ndW5pMDE0Nm9odW5nYXJ1bWxhdXRvbWFjcm9ucmFjdXRlcmNhcm9udW5pMDE1N3NjZWRpbGxhc2FjdXRldW5pMDIxOXVuaTAxNjN0YmFydGNhcm9udW5pMDIxQnVyaW5ndW9nb25la3VodW5nYXJ1bWxhdXR1bWFjcm9ud2RpZXJlc2lzd2dyYXZld2FjdXRld2NpcmN1bWZsZXh5Y2lyY3VtZmxleHlncmF2ZXpkb3RhY2NlbnR6YWN1dGV0d28udGZ0aHJlZS50Znplcm8udGZvbmUudGZqY2lyY3VtZmxleHNpeC50ZmZpdmUudGZuaW5lLnRmZm91ci50ZmVpZ2h0LnRmc2V2ZW4udGZ1bmkwMEIzdW5pMDBCMnVuaTAwQjlDUkV1cm9hcnJvd3VwdW5pMjE5N3VuaTIxOTh1bmkyMTk5dW5pMjE5NmFycm93ZG93bmRlZ3JlZS5hbHR1bmkwMzI2dW5pMjExNmFycm93cmlnaHRhcnJvd2xlZnRjYXJvbi5TbG92YWtOVUxMQ29weXJpZ2h0IFwoY1wpIDIwMTggYnkgYXRpcG8uIEFsbCByaWdodHMgcmVzZXJ2ZWQuU2lsa2EgUmVndWxhcgAAAAAiAKsBhwCsAK0ArgGIAZUArwCwAIoAIwAkAYkBjACxAYoAJQCaAYsBjwAmALIBjgCzALQBjQC1AZABkgAnACgBkQGTAZQAKQGYAZcAKgC2ALcAuAGWALkBmwGaACsBmQAsAaAALQGfAZ4BnQGcAIwALgAvAaMBpAGiAaEAugAwALsAvAC9AL4BqgGlAI0AvwCOADEAnQAyADMBpgGnAbEANAGoAMABrQGpAasANQGsAa4BsgG3ADYAwQDCAMMAxAG6Aa8BsAG9ADcAOAG1AbQBswG2ADkAOgDFAbgAxgG5ADsBxQDHAbsAQgDI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AAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAA/8T/iP/i/8T/xAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAD/xP/s/84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAD/4v/iAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAAAAAAAAAAAAAAAP/i/+IAAAAA/9gAAP/iAAAAAAAAAAAAAP/iAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAA/8T/iP+c/6b/nAAA/9gAAP/s/4j/2P/E/5wAAAAA/6YAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/+IAAAAA/8QAAAAAAAAAAAAAAAAAAAAA/+z/7AAAAAD/2P/YAAAAAP/s/+z/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/E/+wAAAAAAAAAAAAAAAAAAAAA/8T/iP/Y/5L/kgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAD/zgAA/+wAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAoAAAAAAAAAAAAAAAA/6YAAAAA/9gAAAAAAAAAAAAA/84AAP/i/6b/pgAAAAAAAAAAAAD/4v+6/8T/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Y/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zgAAAAAAAAAAAAAAAAAAAAD/2AAA/+L/pv+mAAAAAAAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAAAA/+wAAP/s/+L/4gAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/YAAAAAAAA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AAQALwAwAAUAMQAyAAYAMwA4AAcAQABGAAgASABIAAgASgBKAAkATABMAAgATQBQAAoAUQBVAAsAVwBbAAwAXABkAA0AZQBlAA4AZgBqAA8AawBrABAAbABwABEAcQB0ABIAAgAxAAEACgASAAsACwATAAwADAAZAA0AEQABACAAIwABACcALgAaAC8AMAAUAEAARgABAEgASAABAEwATAABAFEAVQAXAFcAWwACAGUAZQADAGYAagAEAGsAawARAGwAcAAFAHUAfwAJAIAAgAAcAIEAkgAJAJMAkwAGAJQAlwAJAJgAmgAcAJsAowAHAKQApgAIAKcAqQAcAKoArwAYALAAtgAcALcAwAAJAMEAwgAcAMMAwwAJAMQAxwAcAMgAzAAdAM0AzQAcAM4A0gALANMA2wAeANwA4QAMAOMA5wAMAOgA6wAfAQkBCgAVAQsBCwAWAQwBDAAVAQ0BDQAWARABEAAOARQBFAANARkBGQAbASUBJQAKAScBJwAKAU4BTgAPAU8BTwAQAAIAGACAAIUABwCGAIYABgCHAIcABwCIAIkABgCKAJIABwCTAJMAAQCUAJoABgCbAKMAAgCkAKYAAwCnAKkABACqAK8ABQCwALYABgC3AL8ABwDBAMIABwDDAMMABgDEAMcACADIAMwACQDNAM0ABwDOANIACgDTANsACwDcAOEADADiAOIADQDjAOcADADoAOsADgACABgAdQB/AAMAgQCSAAMAkwCTAA8AlACXAAMAmwCjAAgApACmAAEAqgCvAAkAtwDAAAMAwwDDAAMAyADMABAAzgDSAAoA3ADhAAsA4gDiAA0A4wDnAAsA6ADrAA4BCQEKAAIBCwELAAQBDAEMAAIBDQENAAQBEAEQAAYBFAEUAAwBHgEgAAcBJQElAAUBJwEnAAUAAgAEAREBEQACARgBGAABASMBIwADAScBJwAEAAIAIQABAAoAAQANABEABAAWABcABgAfAB8ABgAgACMABAAkACYABgAvADAAAgAxAD8ABgBAAEYABABIAEgABABKAEoABgBMAEwABABNAFAABgBRAFUACABXAFsABQBlAGUABwB1AH8AAwCAAIAACQCBAJIAAwCUAJcAAwCYAJoACQCnAKkACQCwALYACQC3AMAAAwDBAMIACQDDAMMAAwDEAMcACQDIAMwACgDNAM0ACQDOANIACwDTANsADADcAOEADQDjAOcADQAAAAEAAAAKAQYD+AACREZMVAAObGF0bgAkAAQAAAAA//8ABgAAAAoAFAAfACkAMwA0AAhBWkUgAEhDQVQgAFpDUlQgAGxLQVogAH5NT0wgAJBST00gAKJUQVQgALRUUksgAMYAAP//AAcAAQALABUAHgAgACoANAAA//8ABgACAAwAFgAhACsANQAA//8ABgADAA0AFwAiACwANgAA//8ABgAEAA4AGAAjAC0ANwAA//8ABgAFAA8AGQAkAC4AOAAA//8ABgAGABAAGgAlAC8AOQAA//8ABgAHABEAGwAmADAAOgAA//8ABgAIABIAHAAnADEAOwAA//8ABgAJABMAHQAoADIAPAA9YWFsdAFwYWFsdAF4YWFsdAGAYWFsdAGIYWFsdAGQYWFsdAGYYWFsdAGgYWFsdAGoYWFsdAGwYWFsdAG4ZnJhYwHAZnJhYwHGZnJhYwHMZnJhYwHSZnJhYwHYZnJhYwHeZnJhYwHkZnJhYwHqZnJhYwHwZnJhYwH2bGlnYQH8bGlnYQICbGlnYQIIbGlnYQIObGlnYQIUbGlnYQIabGlnYQIgbGlnYQImbGlnYQIsbGlnYQIyb3JkbgI4cG51bQI+cG51bQJEcG51bQJKcG51bQJQcG51bQJWcG51bQJccG51bQJicG51bQJocG51bQJucG51bQJ0c3VwcwJ6c3VwcwKAc3VwcwKGc3VwcwKMc3VwcwKSc3VwcwKYc3VwcwKec3VwcwKkc3VwcwKqc3VwcwKwdG51bQK2dG51bQK8dG51bQLCdG51bQLIdG51bQLOdG51bQLUdG51bQLadG51bQLgdG51bQLmdG51bQLsAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAQAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAIAAAABAAUAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAYAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAMAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcAAAABAAcACAASABoAIgAqADIAOgBCAEoAAQAAAAEArAADAAAAAQDOAAQAAAABADAAAQAAAAEASAAEAAAAAQBGAAEAAAABAGoAAQAAAAEAcAABAAAAAQBuAAEAxgACAAoAFgABAAQBDQADAQkBCQABAAQBVQACAA0AAQCuABMAAQCyAAIACgAgAAIABgAOAQYAAwEWAPABBwADARYA8gABAAQBCAADARYA8gACAI4ABADsAO0A7ADtAAEAjP/2AAEAkAAKAAIAlAASAOwA7QDsAO0A+AD8AP0A/gD/AQABAQDuAPIA8wD0APUA9gD3AAEAkgAGABIAGAAeACQAKAAsAAIBAgD5AAIBAwD6AAIBBAD7AAEA7wABAPAAAQDxAAEAAgEJAVAAAgABAO8A8QAAAAEAAgDvAPEAAQAEAAEAQAB1ALcAAgABAPgBAQAAAAIAAQDuAPcAAAABABIAAQBAAHUAtwDuAPIA8wD0APUA9gD3APgA/AD9AP4A/wEAAQEAAgACAO8A8QAAAPkA+wADAAA="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/171106987fa60957.css","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.212Z","timestamp":1785142498212,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/171106987fa60957.css HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"171106987fa60957.css\"\r\ncontent-encoding: br\r\ncontent-type: text/css; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"1743b2377ec7fa1839760a9730f70164\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/171106987fa60957.css\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::dglgh-1785142498217-7efc7f012312\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":76367,"size_decoded":15453,"mime_type":"text/css; charset=utf-8","magic":"Unicode text, UTF-8 text, with very long lines (65526), with no line terminators","md5":"1743b2377ec7fa1839760a9730f70164","sha1":"a0b3298ec5a670b2f623f3c68da7301177993830","sha256":"9f4a72e77d5296ba8aad2a02db4a037e58d07ed39984b2d287119501f1d60861","sha512":"2d02b07deb440d284aa3502cef3ce3a6c0ce35e1c7160f712b18c57547a5a063dafae56c2806b7c1184323b775ef3ad8eeae819d8b7fa99817d441f236b2a67b","ssdeep":"1536:GNMkYNZGldltlOJRkDse20IUv9PQCfZvHklPBOb2eBUCwiW2wvI2Wa377hF+F+:GekYNZGldltlOJRkDse20IUv9PQCfZvk","tlshash":"6773965daa15563f7c2b80f9d2acbd9d911ab1c0ee3747e6fd4261214ad27f72ca3200","first_seen":"2026-07-27T06:16:09.109505Z","last_seen":"2026-07-27T08:57:45.722639Z","times_seen":3,"resource_available":false,"data":"Kiw6YmVmb3JlLDphZnRlciw6OmJhY2tkcm9wey0tdHctYm9yZGVyLXNwYWNpbmcteDowOy0tdHctYm9yZGVyLXNwYWNpbmcteTowOy0tdHctdHJhbnNsYXRlLXg6MDstLXR3LXRyYW5zbGF0ZS15OjA7LS10dy1yb3RhdGU6MDstLXR3LXNrZXcteDowOy0tdHctc2tldy15OjA7LS10dy1zY2FsZS14OjE7LS10dy1zY2FsZS15OjE7LS10dy1wYW4teDogOy0tdHctcGFuLXk6IDstLXR3LXBpbmNoLXpvb206IDstLXR3LXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdHctZ3JhZGllbnQtZnJvbS1wb3NpdGlvbjogOy0tdHctZ3JhZGllbnQtdmlhLXBvc2l0aW9uOiA7LS10dy1ncmFkaWVudC10by1wb3NpdGlvbjogOy0tdHctb3JkaW5hbDogOy0tdHctc2xhc2hlZC16ZXJvOiA7LS10dy1udW1lcmljLWZpZ3VyZTogOy0tdHctbnVtZXJpYy1zcGFjaW5nOiA7LS10dy1udW1lcmljLWZyYWN0aW9uOiA7LS10dy1yaW5nLWluc2V0OiA7LS10dy1yaW5nLW9mZnNldC13aWR0aDowcHg7LS10dy1yaW5nLW9mZnNldC1jb2xvcjojZmZmOy0tdHctcmluZy1jb2xvcjojM2I4MmY2ODA7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdHctcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdHctc2hhZG93OjAgMCAjMDAwMDstLXR3LXNoYWRvdy1jb2xvcmVkOjAgMCAjMDAwMDstLXR3LWJsdXI6IDstLXR3LWJyaWdodG5lc3M6IDstLXR3LWNvbnRyYXN0OiA7LS10dy1ncmF5c2NhbGU6IDstLXR3LWh1ZS1yb3RhdGU6IDstLXR3LWludmVydDogOy0tdHctc2F0dXJhdGU6IDstLXR3LXNlcGlhOiA7LS10dy1kcm9wLXNoYWRvdzogOy0tdHctYmFja2Ryb3AtYmx1cjogOy0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzczogOy0tdHctYmFja2Ryb3AtY29udHJhc3Q6IDstLXR3LWJhY2tkcm9wLWdyYXlzY2FsZTogOy0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZTogOy0tdHctYmFja2Ryb3AtaW52ZXJ0OiA7LS10dy1iYWNrZHJvcC1vcGFjaXR5OiA7LS10dy1iYWNrZHJvcC1zYXR1cmF0ZTogOy0tdHctYmFja2Ryb3Atc2VwaWE6IDstLXR3LWNvbnRhaW4tc2l6ZTogOy0tdHctY29udGFpbi1sYXlvdXQ6IDstLXR3LWNvbnRhaW4tcGFpbnQ6IDstLXR3LWNvbnRhaW4tc3R5bGU6IH0qLDpiZWZvcmUsOmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MCBzb2xpZCAjZTVlN2VifTpiZWZvcmUsOmFmdGVyey0tdHctY29udGVudDoiIn1odG1sLDpob3N0ey13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlO3RhYi1zaXplOjQ7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O2ZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLHNhbnMtc2VyaWYsQXBwbGUgQ29sb3IgRW1vamksU2Vnb2UgVUkgRW1vamksU2Vnb2UgVUkgU3ltYm9sLE5vdG8gQ29sb3IgRW1vamk7bGluZS1oZWlnaHQ6MS41fWJvZHl7bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46MH1ocntoZWlnaHQ6MDtjb2xvcjppbmhlcml0O2JvcmRlci10b3Atd2lkdGg6MXB4fWFiYnI6d2hlcmUoW3RpdGxlXSl7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZDt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZH1oMSxoMixoMyxoNCxoNSxoNntmb250LXNpemU6aW5oZXJpdDtmb250LXdlaWdodDppbmhlcml0fWF7Y29sb3I6aW5oZXJpdDstd2Via2l0LXRleHQtZGVjb3JhdGlvbjppbmhlcml0O3RleHQtZGVjb3JhdGlvbjppbmhlcml0fWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGRlcn1jb2RlLGtiZCxzYW1wLHByZXtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO2ZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOm5vcm1hbDtmb250LWZhbWlseTp1aS1tb25vc3BhY2UsU0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLExpYmVyYXRpb24gTW9ubyxDb3VyaWVyIE5ldyxtb25vc3BhY2U7Zm9udC1zaXplOjFlbX1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3Bvc2l0aW9uOnJlbGF0aXZlfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19dGFibGV7dGV4dC1pbmRlbnQ6MDtib3JkZXItY29sb3I6aW5oZXJpdDtib3JkZXItY29sbGFwc2U6Y29sbGFwc2V9YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0YXJlYXtmb250LWZlYXR1cmUtc2V0dGluZ3M6aW5oZXJpdDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjEwMCU7Zm9udC13ZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2xldHRlci1zcGFjaW5nOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDttYXJnaW46MDtwYWRkaW5nOjB9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixpbnB1dDp3aGVyZShbdHlwZT1idXR0b25dKSxpbnB1dDp3aGVyZShbdHlwZT1yZXNldF0pLGlucHV0OndoZXJlKFt0eXBlPXN1Ym1pdF0pey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247YmFja2dyb3VuZC1jb2xvcjojMDAwMDtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9Oi1tb3otZm9jdXNyaW5ne291dGxpbmU6YXV0b306LW1vei11aS1pbnZhbGlke2JveC1zaGFkb3c6bm9uZX1wcm9ncmVzc3t2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW19YmxvY2txdW90ZSxkbCxkZCxoMSxoMixoMyxoNCxoNSxoNixocixmaWd1cmUscCxwcmV7bWFyZ2luOjB9ZmllbGRzZXR7bWFyZ2luOjA7cGFkZGluZzowfWxlZ2VuZHtwYWRkaW5nOjB9b2wsdWwsbWVudXttYXJnaW46MDtwYWRkaW5nOjA7bGlzdC1zdHlsZTpub25lfWRpYWxvZ3twYWRkaW5nOjB9dGV4dGFyZWF7cmVzaXplOnZlcnRpY2FsfWlucHV0OjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjojOWNhM2FmfXRleHRhcmVhOjotbW96LXBsYWNlaG9sZGVye29wYWNpdHk6MTtjb2xvcjojOWNhM2FmfWlucHV0OjpwbGFjZWhvbGRlcix0ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7b3BhY2l0eToxO2NvbG9yOiM5Y2EzYWZ9YnV0dG9uLFtyb2xlPWJ1dHRvbl17Y3Vyc29yOnBvaW50ZXJ9OmRpc2FibGVke2N1cnNvcjpkZWZhdWx0fWltZyxzdmcsdmlkZW8sY2FudmFzLGF1ZGlvLGlmcmFtZSxlbWJlZCxvYmplY3R7dmVydGljYWwtYWxpZ246bWlkZGxlO2Rpc3BsYXk6YmxvY2t9aW1nLHZpZGVve21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfVtoaWRkZW5dOndoZXJlKDpub3QoW2hpZGRlbj11bnRpbC1mb3VuZF0pKXtkaXNwbGF5Om5vbmV9OnJvb3R7LS1iYWNrZ3JvdW5kOiNlZGY4ZmQ7LS1mb3JlZ3JvdW5kOiMwYTJjNDA7LS1jYXJkOiNmZmY7LS1jYXJkLWZvcmVncm91bmQ6IzBhMmM0MDstLXBvcG92ZXI6I2ZmZjstLXBvcG92ZXItZm9yZWdyb3VuZDojMGEyYzQwOy0tcHJpbWFyeTojMGEyYzQwOy0tcHJpbWFyeS1mb3JlZ3JvdW5kOiNmZmY7LS1zZWNvbmRhcnk6I2Y4ZmFmYzstLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiMwYTJjNDA7LS1tdXRlZDojZjFmNWY5Oy0tbXV0ZWQtZm9yZWdyb3VuZDojNDc1NTY5Oy0tYWNjZW50OiNmMWY1Zjk7LS1hY2NlbnQtZm9yZWdyb3VuZDojMGEyYzQwOy0tZGVzdHJ1Y3RpdmU6I2VmNDQ0NDstLWRlc3RydWN0aXZlLWZvcmVncm91bmQ6I2ZmZjstLWJvcmRlcjojY2JkNWUxOy0taW5wdXQ6I2NiZDVlMTstLXJpbmc6IzBhMmM0MDstLXJhZGl1czouNzVyZW07LS1kcy1iZy1ob3ZlcjojMGU0ODYzMTQ7LS1kcy1iZy1zZWN0aW9uOiNmOGZhZmM7LS1kcy1ib3JkZXItbWVkaXVtOiM5NGEzYjg7LS1kcy1zaGFkb3ctc206MCAxcHggM3B4ICMwMDAwMDAxNDstLWRzLXNoYWRvdy1tZDowIDRweCAxMnB4ICMwMDAwMDAxYTstLWRzLWZvbnQtZmFtaWx5LWhlYWRpbmc6dmFyKC0tZm9udC1zdHlyZW5lKSxzYW5zLXNlcmlmOy0tZHMtZm9udC1mYW1pbHktYm9keTp2YXIoLS1mb250LXNpbGthKSx2YXIoLS1mb250LXNpbGthLWZhbGxiYWNrKSxzYW5zLXNlcmlmOy0tc3RhdHVzLXBvc2l0aXZlOiMwNTk2Njk7LS1zdGF0dXMtaW5mbzojMDI4NGM3Oy0tc3RhdHVzLXdhcm5pbmc6I2I0NTMwOTstLXN0YXR1cy1uZWdhdGl2ZTojZGMyNjI2Oy0tc3RhdHVzLW5ldXRyYWw6IzcxNzE3YTstLXN0YXR1cy1wb3NpdGl2ZS10aW50LWJnOiMxMGI5ODExNDstLXN0YXR1cy1pbmZvLXRpbnQtYmc6IzBlYTVlOTE0Oy0tc3RhdHVzLXdhcm5pbmctdGludC1iZzojZjU5ZTBiMTQ7LS1zdGF0dXMtbmVnYXRpdmUtdGludC1iZzojZWY0NDQ0MTQ7LS1zdGF0dXMtbmV1dHJhbC10aW50LWJnOiM3MTcxN2ExNDstLXN0YXR1cy1wb3NpdGl2ZS10aW50LWJvcmRlcjojMTBiOTgxNjY7LS1zdGF0dXMtaW5mby10aW50LWJvcmRlcjojMGVhNWU5NjY7LS1zdGF0dXMtd2FybmluZy10aW50LWJvcmRlcjojZjU5ZTBiNjY7LS1zdGF0dXMtbmVnYXRpdmUtdGludC1ib3JkZXI6I2VmNDQ0NDY2Oy0tc3RhdHVzLW5ldXRyYWwtdGludC1ib3JkZXI6IzcxNzE3YTY2Oy0tY2hhcnQtMTojMDI4NGM3Oy0tY2hhcnQtMjojN2MzYWVkOy0tY2hhcnQtMzojZWE1ODBjfS5kYXJrey0tYmFja2dyb3VuZDojMGIxOTI5Oy0tZm9yZWdyb3VuZDojZTJlZGY1Oy0tY2FyZDojMGYyMTMyOy0tY2FyZC1mb3JlZ3JvdW5kOiNlMmVkZjU7LS1wb3BvdmVyOiMwZjIxMzI7LS1wb3BvdmVyLWZvcmVncm91bmQ6I2UyZWRmNTstLXByaW1hcnk6IzRkYjhkYjstLXByaW1hcnktZm9yZWdyb3VuZDojMGIxOTI5Oy0tc2Vjb25kYXJ5OiMxZTNhNTI7LS1zZWNvbmRhcnktZm9yZWdyb3VuZDojZTJlZGY1Oy0tbXV0ZWQ6IzE2MmQ0MjstLW11dGVkLWZvcmVncm91bmQ6IzdhOWJiNTstLWFjY2VudDojMTYyZDQyOy0tYWNjZW50LWZvcmVncm91bmQ6I2UyZWRmNTstLWRlc3RydWN0aXZlOiNlZjQ0NDQ7LS1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kOiNmZmY7LS1ib3JkZXI6IzFlM2E1MjstLWlucHV0OiMxZTNhNTI7LS1yaW5nOiM0ZGI4ZGI7LS1kcy1iZy1ob3ZlcjojNGRiOGRiMWE7LS1kcy1iZy1zZWN0aW9uOiMxNjJkNDI7LS1kcy1ib3JkZXItbWVkaXVtOiMyYTRhNjM7LS1kcy1zaGFkb3ctc206MCAxcHggM3B4ICMwMDAwMDA0ZDstLWRzLXNoYWRvdy1tZDowIDRweCAxMnB4ICMwMDA2Oy0tc3RhdHVzLXBvc2l0aXZlOiMzNGQzOTk7LS1zdGF0dXMtaW5mbzojMzhiZGY4Oy0tc3RhdHVzLXdhcm5pbmc6I2ZiYmYyNDstLXN0YXR1cy1uZWdhdGl2ZTojZjg3MTcxOy0tc3RhdHVzLW5ldXRyYWw6I2ExYTFhYTstLWNoYXJ0LTE6IzM4YmRmODstLWNoYXJ0LTI6I2E3OGJmYTstLWNoYXJ0LTM6I2ZiOTIzY31ib2R5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZCk7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCk7Zm9udC1mYW1pbHk6dmFyKC0tZHMtZm9udC1mYW1pbHktYm9keSk7Zm9udC1mZWF0dXJlLXNldHRpbmdzOiJybGlnIiAxLCJjYWx0IiAxfWgxLGgyLGgzLGg0LGg1LGg2e2ZvbnQtZmFtaWx5OnZhcigtLWRzLWZvbnQtZmFtaWx5LWhlYWRpbmcpfWlucHV0OjotbW96LXNlbGVjdGlvbntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzNiODJmNjgwfXRleHRhcmVhOjotbW96LXNlbGVjdGlvbntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzNiODJmNjgwfWlucHV0OjpzZWxlY3Rpb24sdGV4dGFyZWE6OnNlbGVjdGlvbntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzNiODJmNjgwfS5jb250YWluZXJ7d2lkdGg6MTAwJTttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvO3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX1AbWVkaWEgKG1pbi13aWR0aDoxNDAwcHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjE0MDBweH19LnNyLW9ubHl7Y2xpcDpyZWN0KDAsMCwwLDApO3doaXRlLXNwYWNlOm5vd3JhcDtib3JkZXItd2lkdGg6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7b3ZlcmZsb3c6aGlkZGVufS5wb2ludGVyLWV2ZW50cy1ub25le3BvaW50ZXItZXZlbnRzOm5vbmV9LnZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5pbnZpc2libGV7dmlzaWJpbGl0eTpoaWRkZW59LmNvbGxhcHNle3Zpc2liaWxpdHk6Y29sbGFwc2V9LnN0YXRpY3twb3NpdGlvbjpzdGF0aWN9LmZpeGVke3Bvc2l0aW9uOmZpeGVkfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0ucmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmV9LnN0aWNreXtwb3NpdGlvbjpzdGlja3l9Lmluc2V0LTB7aW5zZXQ6MH0uYm90dG9tLTV7Ym90dG9tOjEuMjVyZW19LmJvdHRvbS1cWzEyMHB4XF17Ym90dG9tOjEyMHB4fS5sZWZ0LTF7bGVmdDouMjVyZW19LmxlZnQtMVwvMntsZWZ0OjUwJX0ubGVmdC0xXC80e2xlZnQ6MjUlfS5sZWZ0LTJ7bGVmdDouNXJlbX0ubGVmdC0yXC41e2xlZnQ6LjYyNXJlbX0ubGVmdC0ze2xlZnQ6Ljc1cmVtfS5sZWZ0LVxbMTBcJVxde2xlZnQ6MTAlfS5sZWZ0LVxbMjBcJVxde2xlZnQ6MjAlfS5sZWZ0LVxbMjdcLjVcJVxde2xlZnQ6MjcuNSV9LmxlZnQtXFszNVwlXF17bGVmdDozNSV9LmxlZnQtXFs1MFwlXF17bGVmdDo1MCV9LnJpZ2h0LTB7cmlnaHQ6MH0ucmlnaHQtMXtyaWdodDouMjVyZW19LnJpZ2h0LTFcLzR7cmlnaHQ6MjUlfS5yaWdodC0ye3JpZ2h0Oi41cmVtfS5yaWdodC0ze3JpZ2h0Oi43NXJlbX0ucmlnaHQtNHtyaWdodDoxcmVtfS5yaWdodC01e3JpZ2h0OjEuMjVyZW19LnJpZ2h0LVxbMTBcJVxde3JpZ2h0OjEwJX0ucmlnaHQtXFsyMFwlXF17cmlnaHQ6MjAlfS5yaWdodC1cWzI3XC41XCVcXXtyaWdodDoyNy41JX0ucmlnaHQtXFszNVwlXF17cmlnaHQ6MzUlfS50b3AtMHt0b3A6MH0udG9wLTF7dG9wOi4yNXJlbX0udG9wLTFcLzJ7dG9wOjUwJX0udG9wLTJ7dG9wOi41cmVtfS50b3AtMlwuNXt0b3A6LjYyNXJlbX0udG9wLTN7dG9wOi43NXJlbX0udG9wLTR7dG9wOjFyZW19LnRvcC1cWzEwOHB4XF17dG9wOjEwOHB4fS50b3AtXFsxNzJweFxde3RvcDoxNzJweH0udG9wLVxbMjM2cHhcXXt0b3A6MjM2cHh9LnRvcC1cWzMwMHB4XF17dG9wOjMwMHB4fS50b3AtXFs0NHB4XF17dG9wOjQ0cHh9LnRvcC1cWzUwXCVcXXt0b3A6NTAlfS5pc29sYXRle2lzb2xhdGlvbjppc29sYXRlfS56LTB7ei1pbmRleDowfS56LTEwe3otaW5kZXg6MTB9LnotNDB7ei1pbmRleDo0MH0uei01MHt6LWluZGV4OjUwfS5jb2wtc3Bhbi0xe2dyaWQtY29sdW1uOnNwYW4gMS9zcGFuIDF9LmNvbC1zcGFuLTN7Z3JpZC1jb2x1bW46c3BhbiAzL3NwYW4gM30uY29sLXNwYW4tNHtncmlkLWNvbHVtbjpzcGFuIDQvc3BhbiA0fS5jb2wtc3RhcnQtMntncmlkLWNvbHVtbi1zdGFydDoyfS5yb3ctc3Bhbi0ye2dyaWQtcm93OnNwYW4gMi9zcGFuIDJ9LnJvdy1zdGFydC0xe2dyaWQtcm93LXN0YXJ0OjF9Lm0tMHttYXJnaW46MH0ubS0xe21hcmdpbjouMjVyZW19Lm0tMnttYXJnaW46LjVyZW19Li1teC0xe21hcmdpbi1sZWZ0Oi0uMjVyZW07bWFyZ2luLXJpZ2h0Oi0uMjVyZW19Lm14LTBcLjV7bWFyZ2luLWxlZnQ6LjEyNXJlbTttYXJnaW4tcmlnaHQ6LjEyNXJlbX0ubXgtMnttYXJnaW4tbGVmdDouNXJlbTttYXJnaW4tcmlnaHQ6LjVyZW19Lm14LWF1dG97bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0b30ubXktMXttYXJnaW4tdG9wOi4yNXJlbTttYXJnaW4tYm90dG9tOi4yNXJlbX0ubXktMnttYXJnaW4tdG9wOi41cmVtO21hcmdpbi1ib3R0b206LjVyZW19Lm15LTR7bWFyZ2luLXRvcDoxcmVtO21hcmdpbi1ib3R0b206MXJlbX0uLW1iLXB4e21hcmdpbi1ib3R0b206LTFweH0uLW1sLTJ7bWFyZ2luLWxlZnQ6LS41cmVtfS5tYi0we21hcmdpbi1ib3R0b206MH0ubWItMFwuNXttYXJnaW4tYm90dG9tOi4xMjVyZW19Lm1iLTF7bWFyZ2luLWJvdHRvbTouMjVyZW19Lm1iLTFcLjV7bWFyZ2luLWJvdHRvbTouMzc1cmVtfS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW19Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW19Lm1iLTR7bWFyZ2luLWJvdHRvbToxcmVtfS5tYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tYi04e21hcmdpbi1ib3R0b206MnJlbX0ubWwtMXttYXJnaW4tbGVmdDouMjVyZW19Lm1sLTFcLjV7bWFyZ2luLWxlZnQ6LjM3NXJlbX0ubWwtMnttYXJnaW4tbGVmdDouNXJlbX0ubWwtNHttYXJnaW4tbGVmdDoxcmVtfS5tbC02e21hcmdpbi1sZWZ0OjEuNXJlbX0ubWwtYXV0b3ttYXJnaW4tbGVmdDphdXRvfS5tci0xe21hcmdpbi1yaWdodDouMjVyZW19Lm1yLTFcLjV7bWFyZ2luLXJpZ2h0Oi4zNzVyZW19Lm1yLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtfS5tci0ze21hcmdpbi1yaWdodDouNzVyZW19Lm1yLWF1dG97bWFyZ2luLXJpZ2h0OmF1dG99Lm10LTB7bWFyZ2luLXRvcDowfS5tdC0wXC41e21hcmdpbi10b3A6LjEyNXJlbX0ubXQtMXttYXJnaW4tdG9wOi4yNXJlbX0ubXQtMVwuNXttYXJnaW4tdG9wOi4zNzVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0ubXQtNHttYXJnaW4tdG9wOjFyZW19Lm10LTV7bWFyZ2luLXRvcDoxLjI1cmVtfS5tdC02e21hcmdpbi10b3A6MS41cmVtfS5tdC04e21hcmdpbi10b3A6MnJlbX0ubGluZS1jbGFtcC0xey13ZWJraXQtbGluZS1jbGFtcDoxOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC0yey13ZWJraXQtbGluZS1jbGFtcDoyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC0zey13ZWJraXQtbGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0uYmxvY2t7ZGlzcGxheTpibG9ja30uaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5pbmxpbmV7ZGlzcGxheTppbmxpbmV9LmZsZXh7ZGlzcGxheTpmbGV4fS5pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4fS5cIXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS50YWJsZXtkaXNwbGF5OnRhYmxlfS50YWJsZS1jYXB0aW9ue2Rpc3BsYXk6dGFibGUtY2FwdGlvbn0udGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGx9LnRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvd30uZ3JpZHtkaXNwbGF5OmdyaWR9LmNvbnRlbnRze2Rpc3BsYXk6Y29udGVudHN9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmFzcGVjdC1zcXVhcmV7YXNwZWN0LXJhdGlvOjF9LnNpemUtMnt3aWR0aDouNXJlbTtoZWlnaHQ6LjVyZW19LnNpemUtM3t3aWR0aDouNzVyZW07aGVpZ2h0Oi43NXJlbX0uc2l6ZS0zXC41e3dpZHRoOi44NzVyZW07aGVpZ2h0Oi44NzVyZW19LnNpemUtNHt3aWR0aDoxcmVtO2hlaWdodDoxcmVtfS5zaXplLTd7d2lkdGg6MS43NXJlbTtoZWlnaHQ6MS43NXJlbX0uc2l6ZS04e3dpZHRoOjJyZW07aGVpZ2h0OjJyZW19LnNpemUtOXt3aWR0aDoyLjI1cmVtO2hlaWdodDoyLjI1cmVtfS5oLTBcLjV7aGVpZ2h0Oi4xMjVyZW19LmgtMVwuNXtoZWlnaHQ6LjM3NXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTExe2hlaWdodDoyLjc1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTE2e2hlaWdodDo0cmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtMjB7aGVpZ2h0OjVyZW19LmgtMjR7aGVpZ2h0OjZyZW19LmgtM3toZWlnaHQ6Ljc1cmVtfS5oLTNcLjV7aGVpZ2h0Oi44NzVyZW19LmgtNHtoZWlnaHQ6MXJlbX0uaC00OHtoZWlnaHQ6MTJyZW19LmgtNXtoZWlnaHQ6MS4yNXJlbX0uaC02e2hlaWdodDoxLjVyZW19LmgtNjB7aGVpZ2h0OjE1cmVtfS5oLTY0e2hlaWdodDoxNnJlbX0uaC03e2hlaWdodDoxLjc1cmVtfS5oLTh7aGVpZ2h0OjJyZW19LmgtOXtoZWlnaHQ6Mi4yNXJlbX0uaC05NntoZWlnaHQ6MjRyZW19LmgtXFsxXC4xNXJlbVxde2hlaWdodDoxLjE1cmVtfS5oLVxbMTBweFxde2hlaWdodDoxMHB4fS5oLVxbMTUwcHhcXXtoZWlnaHQ6MTUwcHh9LmgtXFsxNjBweFxde2hlaWdodDoxNjBweH0uaC1cWzIwMHB4XF17aGVpZ2h0OjIwMHB4fS5oLVxbMjgwcHhcXXtoZWlnaHQ6MjgwcHh9LmgtXFszMDBweFxde2hlaWdodDozMDBweH0uaC1cWzQwMHB4XF17aGVpZ2h0OjQwMHB4fS5oLVxbNTRweFxde2hlaWdodDo1NHB4fS5oLVxbY2FsY1woMTAwZHZoLTRyZW1cKVxde2hlaWdodDpjYWxjKDEwMGR2aCAtIDRyZW0pfS5oLVxbdmFyXCgtLXJhZGl4LXNlbGVjdC10cmlnZ2VyLWhlaWdodFwpXF17aGVpZ2h0OnZhcigtLXJhZGl4LXNlbGVjdC10cmlnZ2VyLWhlaWdodCl9LmgtYXV0b3toZWlnaHQ6YXV0b30uaC1mdWxse2hlaWdodDoxMDAlfS5oLXB4e2hlaWdodDoxcHh9Lmgtc2NyZWVue2hlaWdodDoxMDB2aH0ubWF4LWgtNzJ7bWF4LWhlaWdodDoxOHJlbX0ubWF4LWgtOTZ7bWF4LWhlaWdodDoyNHJlbX0ubWF4LWgtXFsxODBweFxde21heC1oZWlnaHQ6MTgwcHh9Lm1heC1oLVxbMzIwcHhcXXttYXgtaGVpZ2h0OjMyMHB4fS5tYXgtaC1cWzM2MHB4XF17bWF4LWhlaWdodDozNjBweH0ubWF4LWgtXFs0MDBweFxde21heC1oZWlnaHQ6NDAwcHh9Lm1heC1oLVxbNDIwcHhcXXttYXgtaGVpZ2h0OjQyMHB4fS5tYXgtaC1cWzQ0MHB4XF17bWF4LWhlaWdodDo0NDBweH0ubWF4LWgtXFs2MDBweFxde21heC1oZWlnaHQ6NjAwcHh9Lm1heC1oLVxbNjB2aFxde21heC1oZWlnaHQ6NjB2aH0ubWF4LWgtXFs3XC41cmVtXF17bWF4LWhlaWdodDo3LjVyZW19Lm1heC1oLVxbNzB2aFxde21heC1oZWlnaHQ6NzB2aH0ubWF4LWgtXFs5MHZoXF17bWF4LWhlaWdodDo5MHZofS5tYXgtaC1cW21pblwoNDQwcHhcLHZhclwoLS1yYWRpeC1wb3BvdmVyLWNvbnRlbnQtYXZhaWxhYmxlLWhlaWdodFwpXClcXXttYXgtaGVpZ2h0Om1pbig0NDBweCx2YXIoLS1yYWRpeC1wb3BvdmVyLWNvbnRlbnQtYXZhaWxhYmxlLWhlaWdodCkpfS5tYXgtaC1ub25le21heC1oZWlnaHQ6bm9uZX0ubWluLWgtMHttaW4taGVpZ2h0OjB9Lm1pbi1oLTEwe21pbi1oZWlnaHQ6Mi41cmVtfS5taW4taC0xNnttaW4taGVpZ2h0OjRyZW19Lm1pbi1oLTR7bWluLWhlaWdodDoxcmVtfS5taW4taC05e21pbi1oZWlnaHQ6Mi4yNXJlbX0ubWluLWgtXFsxMDBkdmhcXXttaW4taGVpZ2h0OjEwMGR2aH0ubWluLWgtXFsxMjBweFxde21pbi1oZWlnaHQ6MTIwcHh9Lm1pbi1oLVxbMTUwcHhcXXttaW4taGVpZ2h0OjE1MHB4fS5taW4taC1cWzE4MHB4XF17bWluLWhlaWdodDoxODBweH0ubWluLWgtXFs0MDBweFxde21pbi1oZWlnaHQ6NDAwcHh9Lm1pbi1oLVxbODVweFxde21pbi1oZWlnaHQ6ODVweH0ubWluLWgtXFthdXRvXF17bWluLWhlaWdodDphdXRvfS5taW4taC1zY3JlZW57bWluLWhlaWdodDoxMDB2aH0udy0we3dpZHRoOjB9LnctMFwuNXt3aWR0aDouMTI1cmVtfS53LTF7d2lkdGg6LjI1cmVtfS53LTFcLjV7d2lkdGg6LjM3NXJlbX0udy0xXC8ye3dpZHRoOjUwJX0udy0xMHt3aWR0aDoyLjVyZW19LnctMTJ7d2lkdGg6M3JlbX0udy0xNHt3aWR0aDozLjVyZW19LnctMTZ7d2lkdGg6NHJlbX0udy0ye3dpZHRoOi41cmVtfS53LTJcLjV7d2lkdGg6LjYyNXJlbX0udy0yMHt3aWR0aDo1cmVtfS53LTI0e3dpZHRoOjZyZW19LnctMjh7d2lkdGg6N3JlbX0udy0ze3dpZHRoOi43NXJlbX0udy0zXC41e3dpZHRoOi44NzVyZW19LnctM1wvNXt3aWR0aDo2MCV9LnctMzJ7d2lkdGg6OHJlbX0udy00e3dpZHRoOjFyZW19LnctNFwvNXt3aWR0aDo4MCV9LnctNDB7d2lkdGg6MTByZW19LnctNDh7d2lkdGg6MTJyZW19LnctNXt3aWR0aDoxLjI1cmVtfS53LTU2e3dpZHRoOjE0cmVtfS53LTZ7d2lkdGg6MS41cmVtfS53LTY0e3dpZHRoOjE2cmVtfS53LTd7d2lkdGg6MS43NXJlbX0udy03Mnt3aWR0aDoxOHJlbX0udy04e3dpZHRoOjJyZW19LnctODB7d2lkdGg6MjByZW19LnctOXt3aWR0aDoyLjI1cmVtfS53LVxbMTAwcHhcXXt3aWR0aDoxMDBweH0udy1cWzEwcHhcXXt3aWR0aDoxMHB4fS53LVxbMTJcJVxde3dpZHRoOjEyJX0udy1cWzEyMHB4XF17d2lkdGg6MTIwcHh9LnctXFsxNFwlXF17d2lkdGg6MTQlfS53LVxbMTQwcHhcXXt3aWR0aDoxNDBweH0udy1cWzE1XCVcXXt3aWR0aDoxNSV9LnctXFsxNjBweFxde3dpZHRoOjE2MHB4fS53LVxbMThcJVxde3dpZHRoOjE4JX0udy1cWzE4MHB4XF17d2lkdGg6MTgwcHh9LnctXFsxOVwlXF17d2lkdGg6MTklfS53LVxbMjBcJVxde3dpZHRoOjIwJX0udy1cWzIwMHB4XF17d2lkdGg6MjAwcHh9LnctXFsyMjBweFxde3dpZHRoOjIyMHB4fS53LVxbMjQwcHhcXXt3aWR0aDoyNDBweH0udy1cWzI1XCVcXXt3aWR0aDoyNSV9LnctXFsyODBweFxde3dpZHRoOjI4MHB4fS53LVxbMzBcJVxde3dpZHRoOjMwJX0udy1cWzMyXCVcXXt3aWR0aDozMiV9LnctXFszMjBweFxde3dpZHRoOjMyMHB4fS53LVxbMzRcJVxde3dpZHRoOjM0JX0udy1cWzQ1XCVcXXt3aWR0aDo0NSV9LnctXFs2NHB4XF17d2lkdGg6NjRweH0udy1cWzgwcHhcXXt3aWR0aDo4MHB4fS53LWF1dG97d2lkdGg6YXV0b30udy1maXR7d2lkdGg6Zml0LWNvbnRlbnR9LnctZnVsbHt3aWR0aDoxMDAlfS5taW4tdy0we21pbi13aWR0aDowfS5taW4tdy0xMHttaW4td2lkdGg6Mi41cmVtfS5taW4tdy04e21pbi13aWR0aDoycmVtfS5taW4tdy05e21pbi13aWR0aDoyLjI1cmVtfS5taW4tdy1cWzEzMHB4XF17bWluLXdpZHRoOjEzMHB4fS5taW4tdy1cWzE1MHB4XF17bWluLXdpZHRoOjE1MHB4fS5taW4tdy1cWzE3MHB4XF17bWluLXdpZHRoOjE3MHB4fS5taW4tdy1cWzIwMHB4XF17bWluLXdpZHRoOjIwMHB4fS5taW4tdy1cWzI2MHB4XF17bWluLXdpZHRoOjI2MHB4fS5taW4tdy1cWzNweFxde21pbi13aWR0aDozcHh9Lm1pbi13LVxbNXJlbVxde21pbi13aWR0aDo1cmVtfS5taW4tdy1cWzZcLjVyZW1cXXttaW4td2lkdGg6Ni41cmVtfS5taW4tdy1cWzY0MHB4XF17bWluLXdpZHRoOjY0MHB4fS5taW4tdy1cWzY0cHhcXXttaW4td2lkdGg6NjRweH0ubWluLXctXFs4cmVtXF17bWluLXdpZHRoOjhyZW19Lm1pbi13LVxbdmFyXCgtLXJhZGl4LXNlbGVjdC10cmlnZ2VyLXdpZHRoXClcXXttaW4td2lkdGg6dmFyKC0tcmFkaXgtc2VsZWN0LXRyaWdnZXItd2lkdGgpfS5taW4tdy1mdWxse21pbi13aWR0aDoxMDAlfS5cIW1heC13LVxbMTIwMHB4XF17bWF4LXdpZHRoOjEyMDBweCFpbXBvcnRhbnR9Lm1heC13LTJ4bHttYXgtd2lkdGg6NDJyZW19Lm1heC13LTN4bHttYXgtd2lkdGg6NDhyZW19Lm1heC13LTR4bHttYXgtd2lkdGg6NTZyZW19Lm1heC13LTV4bHttYXgtd2lkdGg6NjRyZW19Lm1heC13LTZ4bHttYXgtd2lkdGg6NzJyZW19Lm1heC13LTd4bHttYXgtd2lkdGg6ODByZW19Lm1heC13LVxbMTFyZW1cXXttYXgtd2lkdGg6MTFyZW19Lm1heC13LVxbMTIwcHhcXXttYXgtd2lkdGg6MTIwcHh9Lm1heC13LVxbMTUwcHhcXXttYXgtd2lkdGg6MTUwcHh9Lm1heC13LVxbMTgwcHhcXXttYXgtd2lkdGg6MTgwcHh9Lm1heC13LVxbMTkycHhcXXttYXgtd2lkdGg6MTkycHh9Lm1heC13LVxbMjAwcHhcXXttYXgtd2lkdGg6MjAwcHh9Lm1heC13LVxbMjByZW1cXXttYXgtd2lkdGg6MjByZW19Lm1heC13LVxbMjIwcHhcXXttYXgtd2lkdGg6MjIwcHh9Lm1heC13LVxbMjU2cHhcXXttYXgtd2lkdGg6MjU2cHh9Lm1heC13LVxbMjYwcHhcXXttYXgtd2lkdGg6MjYwcHh9Lm1heC13LVxbMjgwcHhcXXttYXgtd2lkdGg6MjgwcHh9Lm1heC13LVxbNDZyZW1cXXttYXgtd2lkdGg6NDZyZW19Lm1heC13LVxbNzhcJVxde21heC13aWR0aDo3OCV9Lm1heC13LVxbODhyZW1cXXttYXgtd2lkdGg6ODhyZW19Lm1heC13LVxbOXJlbVxde21heC13aWR0aDo5cmVtfS5tYXgtdy1cW2NhbGNcKDEwMFwlLTJyZW1cKVxde21heC13aWR0aDpjYWxjKDEwMCUgLSAycmVtKX0ubWF4LXctZnVsbHttYXgtd2lkdGg6MTAwJX0ubWF4LXctbWR7bWF4LXdpZHRoOjI4cmVtfS5tYXgtdy1zbXttYXgtd2lkdGg6MjRyZW19Lm1heC13LXhse21heC13aWR0aDozNnJlbX0ubWF4LXcteHN7bWF4LXdpZHRoOjIwcmVtfS5mbGV4LTF7ZmxleDoxfS5mbGV4LW5vbmV7ZmxleDpub25lfS5mbGV4LXNocmluay0we2ZsZXgtc2hyaW5rOjB9LnNocmlua3tmbGV4LXNocmluazoxfS5zaHJpbmstMHtmbGV4LXNocmluazowfS5mbGV4LWdyb3csLmdyb3d7ZmxleC1ncm93OjF9LnRhYmxlLWZpeGVke3RhYmxlLWxheW91dDpmaXhlZH0uY2FwdGlvbi1ib3R0b217Y2FwdGlvbi1zaWRlOmJvdHRvbX0uYm9yZGVyLWNvbGxhcHNle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0ub3JpZ2luLWJvdHRvbXt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbX0uLXRyYW5zbGF0ZS14LTFcLzJ7LS10dy10cmFuc2xhdGUteDotNTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSlyb3RhdGUodmFyKC0tdHctcm90YXRlKSlza2V3WCh2YXIoLS10dy1za2V3LXgpKXNrZXdZKHZhcigtLXR3LXNrZXcteSkpc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKXNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9Li10cmFuc2xhdGUteS0xXC8yey0tdHctdHJhbnNsYXRlLXk6LTUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS50cmFuc2xhdGUteC0wey0tdHctdHJhbnNsYXRlLXg6MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSlyb3RhdGUodmFyKC0tdHctcm90YXRlKSlza2V3WCh2YXIoLS10dy1za2V3LXgpKXNrZXdZKHZhcigtLXR3LXNrZXcteSkpc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKXNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9LnRyYW5zbGF0ZS14LVxbLTUwXCVcXXstLXR3LXRyYW5zbGF0ZS14Oi01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKXJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKXNrZXdYKHZhcigtLXR3LXNrZXcteCkpc2tld1kodmFyKC0tdHctc2tldy15KSlzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX0udHJhbnNsYXRlLXgtZnVsbHstLXR3LXRyYW5zbGF0ZS14OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKXJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKXNrZXdYKHZhcigtLXR3LXNrZXcteCkpc2tld1kodmFyKC0tdHctc2tldy15KSlzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX0udHJhbnNsYXRlLXktXFstNTBcJVxdey0tdHctdHJhbnNsYXRlLXk6LTUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS4tcm90YXRlLTkwey0tdHctcm90YXRlOi05MGRlZzt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS5yb3RhdGUtMTgwey0tdHctcm90YXRlOjE4MGRlZzt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS5yb3RhdGUtOTB7LS10dy1yb3RhdGU6OTBkZWc7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKXJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKXNrZXdYKHZhcigtLXR3LXNrZXcteCkpc2tld1kodmFyKC0tdHctc2tldy15KSlzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX0udHJhbnNmb3Jte3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSlyb3RhdGUodmFyKC0tdHctcm90YXRlKSlza2V3WCh2YXIoLS10dy1za2V3LXgpKXNrZXdZKHZhcigtLXR3LXNrZXcteSkpc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKXNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9QGtleWZyYW1lcyBmYWRlSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19LmFuaW1hdGUtZmFkZUlue2FuaW1hdGlvbjouM3MgZWFzZS1vdXQgZm9yd2FyZHMgZmFkZUlufUBrZXlmcmFtZXMgcHVsc2V7NTAle29wYWNpdHk6LjV9fS5hbmltYXRlLXB1bHNle2FuaW1hdGlvbjoycyBjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSBpbmZpbml0ZSBwdWxzZX1Aa2V5ZnJhbWVzIHNsaWRlSW5MZWZ0ezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwJSl9fS5hbmltYXRlLXNsaWRlSW5MZWZ0e2FuaW1hdGlvbjouNXMgZWFzZS1vdXQgZm9yd2FyZHMgc2xpZGVJbkxlZnR9QGtleWZyYW1lcyBzbGlkZUluUmlnaHR7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCUpfX0uYW5pbWF0ZS1zbGlkZUluUmlnaHR7YW5pbWF0aW9uOi41cyBlYXNlLW91dCBmb3J3YXJkcyBzbGlkZUluUmlnaHR9QGtleWZyYW1lcyBzcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmFuaW1hdGUtc3BpbnthbmltYXRpb246MXMgbGluZWFyIGluZmluaXRlIHNwaW59LmN1cnNvci1kZWZhdWx0e2N1cnNvcjpkZWZhdWx0fS5jdXJzb3ItaGVscHtjdXJzb3I6aGVscH0uY3Vyc29yLW5vdC1hbGxvd2Vke2N1cnNvcjpub3QtYWxsb3dlZH0uY3Vyc29yLXBvaW50ZXJ7Y3Vyc29yOnBvaW50ZXJ9LmN1cnNvci10ZXh0e2N1cnNvcjp0ZXh0fS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uc2VsZWN0LWFsbHstd2Via2l0LXVzZXItc2VsZWN0OmFsbDt1c2VyLXNlbGVjdDphbGx9LnJlc2l6ZS1ub25le3Jlc2l6ZTpub25lfS5yZXNpemV7cmVzaXplOmJvdGh9LnNjcm9sbC1weS0xe3Njcm9sbC1wYWRkaW5nLXRvcDouMjVyZW07c2Nyb2xsLXBhZGRpbmctYm90dG9tOi4yNXJlbX0ubGlzdC1pbnNpZGV7bGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGV9Lmxpc3QtZGVjaW1hbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5saXN0LW5vbmV7bGlzdC1zdHlsZS10eXBlOm5vbmV9LmFwcGVhcmFuY2Utbm9uZXthcHBlYXJhbmNlOm5vbmV9LmF1dG8tcm93cy1mcntncmlkLWF1dG8tcm93czptaW5tYXgoMCwxZnIpfS5hdXRvLXJvd3MtbWlue2dyaWQtYXV0by1yb3dzOm1pbi1jb250ZW50fS5ncmlkLWNvbHMtMXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDEsbWlubWF4KDAsMWZyKSl9LmdyaWQtY29scy0ye2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMixtaW5tYXgoMCwxZnIpKX0uZ3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5ncmlkLWNvbHMtNHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsbWlubWF4KDAsMWZyKSl9LmdyaWQtY29scy02e2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNixtaW5tYXgoMCwxZnIpKX0uZ3JpZC1jb2xzLVxbMF8xZnJcXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MCAxZnJ9LmdyaWQtY29scy1cWzEycmVtX21pbm1heFwoMFwsMWZyXClfMTRyZW1cXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MTJyZW0gbWlubWF4KDAsMWZyKSAxNHJlbX0uZ3JpZC1jb2xzLVxbMWZyX2F1dG9cXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIGF1dG99LmdyaWQtY29scy1cWzJcLjVyZW1fMWZyX2F1dG9fYXV0b19hdXRvX2F1dG9cXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6Mi41cmVtIDFmciBhdXRvIGF1dG8gYXV0byBhdXRvfS5ncmlkLWNvbHMtXFsyZnJfYXV0b19hdXRvXzFmcl9hdXRvXF17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjJmciBhdXRvIGF1dG8gMWZyIGF1dG99LmdyaWQtY29scy1cWzJmcl9hdXRvX2F1dG9fMWZyX2F1dG9fYXV0b1xde2dyaWQtdGVtcGxhdGUtY29sdW1uczoyZnIgYXV0byBhdXRvIDFmciBhdXRvIGF1dG99LmdyaWQtY29scy1cW2F1dG9fMWZyX2F1dG9cXXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byAxZnIgYXV0b30uZ3JpZC1jb2xzLVxbbWF4LWNvbnRlbnRfMWZyXF17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1heC1jb250ZW50IDFmcn0uZ3JpZC1yb3dzLVxbYXV0b19hdXRvXF17Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gYXV0b30uZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5mbGV4LWNvbHtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmZsZXgtY29sLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LmZsZXgtd3JhcHtmbGV4LXdyYXA6d3JhcH0ucGxhY2UtaXRlbXMtY2VudGVye3BsYWNlLWl0ZW1zOmNlbnRlcn0uaXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uaXRlbXMtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNofS5qdXN0aWZ5LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5qdXN0aWZ5LWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9Lmp1c3RpZnktY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lmp1c3RpZnktYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0uanVzdGlmeS1pdGVtcy1zdGFydHtqdXN0aWZ5LWl0ZW1zOnN0YXJ0fS5cIWdhcC0we2dhcDowIWltcG9ydGFudH0uZ2FwLTBcLjV7Z2FwOi4xMjVyZW19LmdhcC0xe2dhcDouMjVyZW19LmdhcC0xXC41e2dhcDouMzc1cmVtfS5nYXAtMTJ7Z2FwOjNyZW19LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTJcLjV7Z2FwOi42MjVyZW19LmdhcC0ze2dhcDouNzVyZW19LmdhcC00e2dhcDoxcmVtfS5nYXAtNXtnYXA6MS4yNXJlbX0uZ2FwLTZ7Z2FwOjEuNXJlbX0uZ2FwLTh7Z2FwOjJyZW19LmdhcC1cWzJweFxde2dhcDoycHh9LmdhcC14LTJ7LW1vei1jb2x1bW4tZ2FwOi41cmVtO2NvbHVtbi1nYXA6LjVyZW19LmdhcC14LTN7LW1vei1jb2x1bW4tZ2FwOi43NXJlbTtjb2x1bW4tZ2FwOi43NXJlbX0uZ2FwLXgtNHstbW96LWNvbHVtbi1nYXA6MXJlbTtjb2x1bW4tZ2FwOjFyZW19LmdhcC14LTV7LW1vei1jb2x1bW4tZ2FwOjEuMjVyZW07Y29sdW1uLWdhcDoxLjI1cmVtfS5nYXAteS0wXC41e3Jvdy1nYXA6LjEyNXJlbX0uZ2FwLXktMXtyb3ctZ2FwOi4yNXJlbX0uZ2FwLXktMVwuNXtyb3ctZ2FwOi4zNzVyZW19LmdhcC15LTJ7cm93LWdhcDouNXJlbX0uc3BhY2UteC0xPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLXJpZ2h0OmNhbGMoLjI1cmVtKnZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpO21hcmdpbi1sZWZ0OmNhbGMoLjI1cmVtKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXgtcmV2ZXJzZSkpKX0uc3BhY2UteC0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLXJpZ2h0OmNhbGMoLjVyZW0qdmFyKC0tdHctc3BhY2UteC1yZXZlcnNlKSk7bWFyZ2luLWxlZnQ6Y2FsYyguNXJlbSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS14LXJldmVyc2UpKSl9LnNwYWNlLXktMD46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygwcHgqY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygwcHgqdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktMFwuNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYyguMTI1cmVtKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoLjEyNXJlbSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS0xPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLXRvcDpjYWxjKC4yNXJlbSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC4yNXJlbSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS0xXC41Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLXRvcDpjYWxjKC4zNzVyZW0qY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguMzc1cmVtKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5zcGFjZS15LTI+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjVyZW0qY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguNXJlbSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS0yXC41Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLXRvcDpjYWxjKC42MjVyZW0qY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYyguNjI1cmVtKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5zcGFjZS15LTM+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjc1cmVtKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoLjc1cmVtKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5zcGFjZS15LTQ+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS10dy1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoMXJlbSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKDFyZW0qdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoMS4yNXJlbSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS02Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLXRvcDpjYWxjKDEuNXJlbSpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKDEuNXJlbSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0uc3BhY2UteS04Pjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLXRvcDpjYWxjKDJyZW0qY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygycmVtKnZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpfS5kaXZpZGUteT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LWRpdmlkZS15LXJldmVyc2U6MDtib3JkZXItdG9wLXdpZHRoOmNhbGMoMXB4KmNhbGMoMSAtIHZhcigtLXR3LWRpdmlkZS15LXJldmVyc2UpKSk7Ym9yZGVyLWJvdHRvbS13aWR0aDpjYWxjKDFweCp2YXIoLS10dy1kaXZpZGUteS1yZXZlcnNlKSl9LnNlbGYtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5zZWxmLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlcn0uanVzdGlmeS1zZWxmLWVuZHtqdXN0aWZ5LXNlbGY6ZW5kfS5vdmVyZmxvdy1hdXRve292ZXJmbG93OmF1dG99Lm92ZXJmbG93LWhpZGRlbntvdmVyZmxvdzpoaWRkZW59Lm92ZXJmbG93LXgtYXV0b3tvdmVyZmxvdy14OmF1dG99Lm92ZXJmbG93LXktYXV0b3tvdmVyZmxvdy15OmF1dG99Lm92ZXJmbG93LXgtaGlkZGVue292ZXJmbG93LXg6aGlkZGVufS50cnVuY2F0ZXt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LndoaXRlc3BhY2Utbm9ybWFse3doaXRlLXNwYWNlOm5vcm1hbH0ud2hpdGVzcGFjZS1ub3dyYXB7d2hpdGUtc3BhY2U6bm93cmFwfS53aGl0ZXNwYWNlLXByZS1saW5le3doaXRlLXNwYWNlOnByZS1saW5lfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS50ZXh0LWJhbGFuY2V7dGV4dC13cmFwOmJhbGFuY2V9LmJyZWFrLXdvcmRze292ZXJmbG93LXdyYXA6YnJlYWstd29yZH0uYnJlYWstYWxse3dvcmQtYnJlYWs6YnJlYWstYWxsfS5yb3VuZGVke2JvcmRlci1yYWRpdXM6LjI1cmVtfS5yb3VuZGVkLTJ4bHtib3JkZXItcmFkaXVzOjFyZW19LnJvdW5kZWQtXFs0cHhcXXtib3JkZXItcmFkaXVzOjRweH0ucm91bmRlZC1mdWxse2JvcmRlci1yYWRpdXM6OTk5OXB4fS5yb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCl9LnJvdW5kZWQtbm9uZXtib3JkZXItcmFkaXVzOjB9LnJvdW5kZWQtc217Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSA0cHgpfS5yb3VuZGVkLXhse2JvcmRlci1yYWRpdXM6Ljc1cmVtfS5yb3VuZGVkLWItbWR7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCl9LnJvdW5kZWQtdC1tZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KX0ucm91bmRlZC1ici1zbXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSA0cHgpfS5ib3JkZXJ7Ym9yZGVyLXdpZHRoOjFweH0uYm9yZGVyLWJ7Ym9yZGVyLWJvdHRvbS13aWR0aDoxcHh9LmJvcmRlci1iLTB7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5ib3JkZXItYi0ye2JvcmRlci1ib3R0b20td2lkdGg6MnB4fS5ib3JkZXItbHtib3JkZXItbGVmdC13aWR0aDoxcHh9LmJvcmRlci1sLTJ7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4fS5ib3JkZXItcntib3JkZXItcmlnaHQtd2lkdGg6MXB4fS5ib3JkZXItdHtib3JkZXItdG9wLXdpZHRoOjFweH0uYm9yZGVyLXQtNHtib3JkZXItdG9wLXdpZHRoOjRweH0uYm9yZGVyLWRhc2hlZHtib3JkZXItc3R5bGU6ZGFzaGVkfS5ib3JkZXItXFtjb2xvci1taXhcKGluX3NyZ2JcLHZhclwoLS1wcmltYXJ5XClfMjVcJVwsdHJhbnNwYXJlbnRcKVxde2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1wcmltYXJ5KTI1JSx0cmFuc3BhcmVudCl9LmJvcmRlci1hbWJlci00MDBcLzYwe2JvcmRlci1jb2xvcjojZmJiZjI0OTl9LmJvcmRlci1hbWJlci01MDBcLzEwe2JvcmRlci1jb2xvcjojZjU5ZTBiMWF9LmJvcmRlci1hbWJlci01MDBcLzIwe2JvcmRlci1jb2xvcjojZjU5ZTBiMzN9LmJvcmRlci1hbWJlci01MDBcLzMwe2JvcmRlci1jb2xvcjojZjU5ZTBiNGR9LmJvcmRlci1hbWJlci01MDBcLzQwe2JvcmRlci1jb2xvcjojZjU5ZTBiNjZ9LmJvcmRlci1hbWJlci01MDBcLzYwe2JvcmRlci1jb2xvcjojZjU5ZTBiOTl9LmJvcmRlci1hbWJlci05MDBcLzUwe2JvcmRlci1jb2xvcjojNzgzNTBmODB9LmJvcmRlci1ibHVlLTUwMHstLXR3LWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXR3LWJvcmRlci1vcGFjaXR5LDEpKX0uYm9yZGVyLWJvcmRlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKX0uYm9yZGVyLWJyYW5kLWJsdWUsLmJvcmRlci1icmFuZC1ibHVlLWxpZ2h0e2JvcmRlci1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uYm9yZGVyLWJyYW5kLWJvcmRlcntib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKX0uYm9yZGVyLWJyYW5kLWJvcmRlci1saWdodHtib3JkZXItY29sb3I6dmFyKC0tZHMtYm9yZGVyLW1lZGl1bSl9LmJvcmRlci1icmFuZC1lcnJvciwuYm9yZGVyLWRlc3RydWN0aXZle2JvcmRlci1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LmJvcmRlci1lbWVyYWxkLTQwMFwvNjB7Ym9yZGVyLWNvbG9yOiMzNGQzOTk5OX0uYm9yZGVyLWVtZXJhbGQtNTAwXC8zMHtib3JkZXItY29sb3I6IzEwYjk4MTRkfS5ib3JkZXItZnVjaHNpYS01MDBcLzEwe2JvcmRlci1jb2xvcjojZDk0NmVmMWF9LmJvcmRlci1mdWNoc2lhLTUwMFwvMjB7Ym9yZGVyLWNvbG9yOiNkOTQ2ZWYzM30uYm9yZGVyLWZ1Y2hzaWEtNTAwXC8zMHtib3JkZXItY29sb3I6I2Q5NDZlZjRkfS5ib3JkZXItZ3JlZW4tNTAwXC8zMHtib3JkZXItY29sb3I6IzIyYzU1ZTRkfS5ib3JkZXItaW5wdXR7Ym9yZGVyLWNvbG9yOnZhcigtLWlucHV0KX0uYm9yZGVyLW11dGVke2JvcmRlci1jb2xvcjp2YXIoLS1tdXRlZCl9LmJvcmRlci1tdXRlZC1mb3JlZ3JvdW5ke2JvcmRlci1jb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0uYm9yZGVyLXByaW1hcnl7Ym9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnkpfS5ib3JkZXItcHVycGxlLTUwMHstLXR3LWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigxNjggODUgMjQ3L3ZhcigtLXR3LWJvcmRlci1vcGFjaXR5LDEpKX0uYm9yZGVyLXJvc2UtNTAwXC8zMHtib3JkZXItY29sb3I6I2Y0M2Y1ZTRkfS5ib3JkZXItc2t5LTUwMFwvMzB7Ym9yZGVyLWNvbG9yOiMwZWE1ZTk0ZH0uYm9yZGVyLXNsYXRlLTcwMHstLXR3LWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1MSA2NSA4NS92YXIoLS10dy1ib3JkZXItb3BhY2l0eSwxKSl9LmJvcmRlci1zdGF0dXMtbmVnYXRpdmUtdGludC1ib3JkZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXN0YXR1cy1uZWdhdGl2ZS10aW50LWJvcmRlcil9LmJvcmRlci10cmFuc3BhcmVudHtib3JkZXItY29sb3I6IzAwMDB9LmJvcmRlci16aW5jLTUwMFwvMzB7Ym9yZGVyLWNvbG9yOiM3MTcxN2E0ZH0uYm9yZGVyLWItYnJhbmQtYm9yZGVye2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tYm9yZGVyKX0uYm9yZGVyLWItdHJhbnNwYXJlbnR7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwMH0uYmctXFtjb2xvci1taXhcKGluX3NyZ2JcLHZhclwoLS1wcmltYXJ5XClfMTBcJVwsdHJhbnNwYXJlbnRcKVxde2JhY2tncm91bmQtY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tcHJpbWFyeSkxMCUsdHJhbnNwYXJlbnQpfS5iZy1cW3JnYmFcKDc3XCwxODRcLDIxOVwsMFwuMTBcKVxde2JhY2tncm91bmQtY29sb3I6IzRkYjhkYjFhfS5iZy1cW3JnYmFcKDc3XCwxODRcLDIxOVwsMFwuMTVcKVxde2JhY2tncm91bmQtY29sb3I6IzRkYjhkYjI2fS5iZy1cW3JnYmFcKDc3XCwxODRcLDIxOVwsMFwuMjBcKVxde2JhY2tncm91bmQtY29sb3I6IzRkYjhkYjMzfS5iZy1cW3JnYmFcKDc3XCwxODRcLDIxOVwsMFwuMjVcKVxde2JhY2tncm91bmQtY29sb3I6IzRkYjhkYjQwfS5iZy1cW3JnYmFcKDc3XCwxODRcLDIxOVwsMFwuMzBcKVxde2JhY2tncm91bmQtY29sb3I6IzRkYjhkYjRkfS5iZy1hY2NlbnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5iZy1hbWJlci0xMDB7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU0IDI0MyAxOTkvdmFyKC0tdHctYmctb3BhY2l0eSwxKSl9LmJnLWFtYmVyLTUwey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSAyNTEgMjM1L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5iZy1hbWJlci01MDB7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDE1OCAxMS92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uYmctYW1iZXItNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTllMGIxYX0uYmctYW1iZXItNTAwXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiNmNTllMGIyNn0uYmctYW1iZXItNTAwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNTllMGIzM30uYmctYW1iZXItNTAwXC81e2JhY2tncm91bmQtY29sb3I6I2Y1OWUwYjBkfS5iZy1hbWJlci05NTB7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoNjkgMjYgMy92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uYmctYW1iZXItOTUwXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiM0NTFhMDMyNn0uYmctYW1iZXItOTUwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiM0NTFhMDMzM30uYmctYmFja2dyb3VuZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpfS5iZy1ibGFja1wvNTB7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwODB9LmJnLWJsdWUtNTAwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiMzYjgyZjYzM30uYmctYmx1ZS02MDB7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMzcgOTkgMjM1L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5iZy1ibHVlLTkwMFwvNDB7YmFja2dyb3VuZC1jb2xvcjojMWUzYThhNjZ9LmJnLWJvcmRlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJvcmRlcil9LmJnLWJyYW5kLWJne2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZCl9LmJnLWJyYW5kLWJsdWV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uYmctYnJhbmQtYm9yZGVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYm9yZGVyKX0uYmctYnJhbmQtY2FyZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhcmQpfS5iZy1icmFuZC1ncmVlbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCl9LmJnLWJyYW5kLWhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tZHMtYmctaG92ZXIpfS5iZy1jYXJke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2FyZCl9LmJnLWNoYXJ0LTJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jaGFydC0yKX0uYmctZGVzdHJ1Y3RpdmV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LmJnLWVtZXJhbGQtMTAwey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDIwOSAyNTAgMjI5L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5iZy1lbWVyYWxkLTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojMTBiOTgxMWF9LmJnLWVtZXJhbGQtNTAwXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiMxMGI5ODEyNn0uYmctZW1lcmFsZC01MDBcLzIwe2JhY2tncm91bmQtY29sb3I6IzEwYjk4MTMzfS5iZy1lbWVyYWxkLTUwMFwvNXtiYWNrZ3JvdW5kLWNvbG9yOiMxMGI5ODEwZH0uYmctZW1lcmFsZC01MDBcLzcwe2JhY2tncm91bmQtY29sb3I6IzEwYjk4MWIzfS5iZy1mdWNoc2lhLTUwMFwvMTB7YmFja2dyb3VuZC1jb2xvcjojZDk0NmVmMWF9LmJnLWZ1Y2hzaWEtNTAwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiNkOTQ2ZWYzM30uYmctZnVjaHNpYS01MDBcLzV7YmFja2dyb3VuZC1jb2xvcjojZDk0NmVmMGR9LmJnLWdyYXktNzAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiMzNzQxNTE2Nn0uYmctZ3JlZW4tNTAwXC8xMHtiYWNrZ3JvdW5kLWNvbG9yOiMyMmM1NWUxYX0uYmctZ3JlZW4tNjAwey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDIyIDE2MyA3NC92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uYmctbXV0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9LmJnLW5ldXRyYWwtNzAwXC8zMHtiYWNrZ3JvdW5kLWNvbG9yOiM0MDQwNDA0ZH0uYmctcG9wb3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXBvcG92ZXIpfS5iZy1wcmltYXJ5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LmJnLXB1cnBsZS01MDBcLzIwe2JhY2tncm91bmQtY29sb3I6I2E4NTVmNzMzfS5iZy1wdXJwbGUtNTAwXC9cWzBcLjA0XF17YmFja2dyb3VuZC1jb2xvcjojYTg1NWY3MGF9LmJnLXB1cnBsZS01MDBcL1xbMFwuMDdcXXtiYWNrZ3JvdW5kLWNvbG9yOiNhODU1ZjcxMn0uYmctcHVycGxlLTUwMFwvXFswXC4xMFxde2JhY2tncm91bmQtY29sb3I6I2E4NTVmNzFhfS5iZy1wdXJwbGUtNTAwXC9cWzBcLjE0XF17YmFja2dyb3VuZC1jb2xvcjojYTg1NWY3MjR9LmJnLXB1cnBsZS01MDBcL1xbMFwuMThcXXtiYWNrZ3JvdW5kLWNvbG9yOiNhODU1ZjcyZX0uYmctcHVycGxlLTkwMFwvNDB7YmFja2dyb3VuZC1jb2xvcjojNTgxYzg3NjZ9LmJnLXJlZC01MDB7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjM5IDY4IDY4L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5iZy1yZWQtOTAwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiM3ZjFkMWQzM30uYmctcm9zZS01MDBcLzEwe2JhY2tncm91bmQtY29sb3I6I2Y0M2Y1ZTFhfS5iZy1yb3NlLTUwMFwvMTV7YmFja2dyb3VuZC1jb2xvcjojZjQzZjVlMjZ9LmJnLXJvc2UtNTAwXC8yMHtiYWNrZ3JvdW5kLWNvbG9yOiNmNDNmNWUzM30uYmctcm9zZS01MDBcLzV7YmFja2dyb3VuZC1jb2xvcjojZjQzZjVlMGR9LmJnLXNlY29uZGFyeXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXNlY29uZGFyeSl9LmJnLXNreS01MDBcLzEwe2JhY2tncm91bmQtY29sb3I6IzBlYTVlOTFhfS5iZy1za3ktNTAwXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiMwZWE1ZTkyNn0uYmctc2t5LTUwMFwvNzB7YmFja2dyb3VuZC1jb2xvcjojMGVhNWU5YjN9LmJnLXNsYXRlLTkwMHstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNSAyMyA0Mi92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uYmctc3RhdHVzLW5lZ2F0aXZlLXRpbnR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zdGF0dXMtbmVnYXRpdmUtdGludC1iZyl9LmJnLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6IzAwMDB9LmJnLXdoaXRley0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NSAyNTUgMjU1L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5iZy15ZWxsb3ctMTAwey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI1NCAyNDkgMTk1L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5iZy15ZWxsb3ctNDAwey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI1MCAyMDQgMjEvdmFyKC0tdHctYmctb3BhY2l0eSwxKSl9LmJnLXppbmMtNTAwXC8xNXtiYWNrZ3JvdW5kLWNvbG9yOiM3MTcxN2EyNn0uYmctemluYy01MDBcLzIwe2JhY2tncm91bmQtY29sb3I6IzcxNzE3YTMzfS5iZy16aW5jLTUwMFwvNzB7YmFja2dyb3VuZC1jb2xvcjojNzE3MTdhYjN9LmZpbGwtY3VycmVudHtmaWxsOmN1cnJlbnRDb2xvcn0uZmlsbC1wcmltYXJ5e2ZpbGw6dmFyKC0tcHJpbWFyeSl9LmZpbGwtcmVkLTUwMHtmaWxsOiNlZjQ0NDR9Lm9iamVjdC1jb3Zlcnstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9LnAtMHtwYWRkaW5nOjB9LnAtMFwuNXtwYWRkaW5nOi4xMjVyZW19LnAtMXtwYWRkaW5nOi4yNXJlbX0ucC0ye3BhZGRpbmc6LjVyZW19LnAtM3twYWRkaW5nOi43NXJlbX0ucC00e3BhZGRpbmc6MXJlbX0ucC01e3BhZGRpbmc6MS4yNXJlbX0ucC02e3BhZGRpbmc6MS41cmVtfS5wLTh7cGFkZGluZzoycmVtfS5cIXB5LTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnR9LnB4LTB7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfS5weC0wXC41e3BhZGRpbmctbGVmdDouMTI1cmVtO3BhZGRpbmctcmlnaHQ6LjEyNXJlbX0ucHgtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtO3BhZGRpbmctcmlnaHQ6LjI1cmVtfS5weC0xXC41e3BhZGRpbmctbGVmdDouMzc1cmVtO3BhZGRpbmctcmlnaHQ6LjM3NXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtMlwuNXtwYWRkaW5nLWxlZnQ6LjYyNXJlbTtwYWRkaW5nLXJpZ2h0Oi42MjVyZW19LnB4LTN7cGFkZGluZy1sZWZ0Oi43NXJlbTtwYWRkaW5nLXJpZ2h0Oi43NXJlbX0ucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTZ7cGFkZGluZy1sZWZ0OjEuNXJlbTtwYWRkaW5nLXJpZ2h0OjEuNXJlbX0ucHktMHtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjB9LnB5LTBcLjV7cGFkZGluZy10b3A6LjEyNXJlbTtwYWRkaW5nLWJvdHRvbTouMTI1cmVtfS5weS0xe3BhZGRpbmctdG9wOi4yNXJlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnB5LTFcLjV7cGFkZGluZy10b3A6LjM3NXJlbTtwYWRkaW5nLWJvdHRvbTouMzc1cmVtfS5weS0xMHtwYWRkaW5nLXRvcDoyLjVyZW07cGFkZGluZy1ib3R0b206Mi41cmVtfS5weS0xMntwYWRkaW5nLXRvcDozcmVtO3BhZGRpbmctYm90dG9tOjNyZW19LnB5LTJ7cGFkZGluZy10b3A6LjVyZW07cGFkZGluZy1ib3R0b206LjVyZW19LnB5LTJcLjV7cGFkZGluZy10b3A6LjYyNXJlbTtwYWRkaW5nLWJvdHRvbTouNjI1cmVtfS5weS0ze3BhZGRpbmctdG9wOi43NXJlbTtwYWRkaW5nLWJvdHRvbTouNzVyZW19LnB5LTNcLjV7cGFkZGluZy10b3A6Ljg3NXJlbTtwYWRkaW5nLWJvdHRvbTouODc1cmVtfS5weS00e3BhZGRpbmctdG9wOjFyZW07cGFkZGluZy1ib3R0b206MXJlbX0ucHktNXtwYWRkaW5nLXRvcDoxLjI1cmVtO3BhZGRpbmctYm90dG9tOjEuMjVyZW19LnB5LTZ7cGFkZGluZy10b3A6MS41cmVtO3BhZGRpbmctYm90dG9tOjEuNXJlbX0ucHktOHtwYWRkaW5nLXRvcDoycmVtO3BhZGRpbmctYm90dG9tOjJyZW19LlwhcGItMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBiLTFcLjV7cGFkZGluZy1ib3R0b206LjM3NXJlbX0ucGItMntwYWRkaW5nLWJvdHRvbTouNXJlbX0ucGItM3twYWRkaW5nLWJvdHRvbTouNzVyZW19LnBiLTR7cGFkZGluZy1ib3R0b206MXJlbX0ucGwtMHtwYWRkaW5nLWxlZnQ6MH0ucGwtMTB7cGFkZGluZy1sZWZ0OjIuNXJlbX0ucGwtMntwYWRkaW5nLWxlZnQ6LjVyZW19LnBsLTR7cGFkZGluZy1sZWZ0OjFyZW19LnBsLTV7cGFkZGluZy1sZWZ0OjEuMjVyZW19LnBsLTh7cGFkZGluZy1sZWZ0OjJyZW19LnBsLTl7cGFkZGluZy1sZWZ0OjIuMjVyZW19LnByLTB7cGFkZGluZy1yaWdodDowfS5wci0wXC41e3BhZGRpbmctcmlnaHQ6LjEyNXJlbX0ucHItMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHItMntwYWRkaW5nLXJpZ2h0Oi41cmVtfS5wci0yMHtwYWRkaW5nLXJpZ2h0OjVyZW19LnByLTN7cGFkZGluZy1yaWdodDouNzVyZW19LnByLTV7cGFkZGluZy1yaWdodDoxLjI1cmVtfS5wci03e3BhZGRpbmctcmlnaHQ6MS43NXJlbX0ucHItOHtwYWRkaW5nLXJpZ2h0OjJyZW19LnB0LTB7cGFkZGluZy10b3A6MH0ucHQtMXtwYWRkaW5nLXRvcDouMjVyZW19LnB0LTJ7cGFkZGluZy10b3A6LjVyZW19LnB0LTI0e3BhZGRpbmctdG9wOjZyZW19LnB0LTN7cGFkZGluZy10b3A6Ljc1cmVtfS5wdC00e3BhZGRpbmctdG9wOjFyZW19LnB0LTZ7cGFkZGluZy10b3A6MS41cmVtfS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0udGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0fS5hbGlnbi10b3B7dmVydGljYWwtYWxpZ246dG9wfS5hbGlnbi1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb250LWhlYWRpbmd7Zm9udC1mYW1pbHk6dmFyKC0tZHMtZm9udC1mYW1pbHktaGVhZGluZyl9LmZvbnQtbW9ub3tmb250LWZhbWlseTp1aS1tb25vc3BhY2UsU0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLExpYmVyYXRpb24gTW9ubyxDb3VyaWVyIE5ldyxtb25vc3BhY2V9LlwhdGV4dC1cWzE0cHhcXXtmb250LXNpemU6MTRweCFpbXBvcnRhbnR9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC0zeGx7Zm9udC1zaXplOjEuODc1cmVtO2xpbmUtaGVpZ2h0OjIuMjVyZW19LnRleHQtNnhse2ZvbnQtc2l6ZTozLjc1cmVtO2xpbmUtaGVpZ2h0OjF9LnRleHQtN3hse2ZvbnQtc2l6ZTo0LjVyZW07bGluZS1oZWlnaHQ6MX0udGV4dC1cWzBcLjhyZW1cXXtmb250LXNpemU6LjhyZW19LnRleHQtXFsxMHB4XF17Zm9udC1zaXplOjEwcHh9LnRleHQtXFsxMXB4XF17Zm9udC1zaXplOjExcHh9LnRleHQtXFsxMnB4XF17Zm9udC1zaXplOjEycHh9LnRleHQtXFsxM3B4XF17Zm9udC1zaXplOjEzcHh9LnRleHQtXFsyNnB4XF17Zm9udC1zaXplOjI2cHh9LnRleHQtXFs4cHhcXXtmb250LXNpemU6OHB4fS50ZXh0LVxbOXB4XF17Zm9udC1zaXplOjlweH0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1sZ3tmb250LXNpemU6MS4xMjVyZW07bGluZS1oZWlnaHQ6MS43NXJlbX0udGV4dC1zbXtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS50ZXh0LXhse2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQteHN7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxcmVtfS5mb250LWJvbGR7Zm9udC13ZWlnaHQ6NzAwfS5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtbm9ybWFse2ZvbnQtd2VpZ2h0OjQwMH0uZm9udC1zZW1pYm9sZHtmb250LXdlaWdodDo2MDB9LnVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9Lmxvd2VyY2FzZXt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2V9LmNhcGl0YWxpemV7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZX0uaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljfS5ub3QtaXRhbGlje2ZvbnQtc3R5bGU6bm9ybWFsfS50YWJ1bGFyLW51bXN7LS10dy1udW1lcmljLXNwYWNpbmc6dGFidWxhci1udW1zO2ZvbnQtdmFyaWFudC1udW1lcmljOnZhcigtLXR3LW9yZGluYWwpdmFyKC0tdHctc2xhc2hlZC16ZXJvKXZhcigtLXR3LW51bWVyaWMtZmlndXJlKXZhcigtLXR3LW51bWVyaWMtc3BhY2luZyl2YXIoLS10dy1udW1lcmljLWZyYWN0aW9uKX0ubGVhZGluZy1cWzFcLjAzXF17bGluZS1oZWlnaHQ6MS4wM30ubGVhZGluZy1ub25le2xpbmUtaGVpZ2h0OjF9LmxlYWRpbmctcmVsYXhlZHtsaW5lLWhlaWdodDoxLjYyNX0ubGVhZGluZy1zbnVne2xpbmUtaGVpZ2h0OjEuMzc1fS5sZWFkaW5nLXRpZ2h0e2xpbmUtaGVpZ2h0OjEuMjV9LnRyYWNraW5nLVxbMFwuMTJlbVxde2xldHRlci1zcGFjaW5nOi4xMmVtfS50cmFja2luZy1cWzBcLjE4ZW1cXXtsZXR0ZXItc3BhY2luZzouMThlbX0udHJhY2tpbmctXFswXC4yOGVtXF17bGV0dGVyLXNwYWNpbmc6LjI4ZW19LnRyYWNraW5nLVxbMFwuMmVtXF17bGV0dGVyLXNwYWNpbmc6LjJlbX0udHJhY2tpbmctdGlnaHR7bGV0dGVyLXNwYWNpbmc6LS4wMjVlbX0udHJhY2tpbmctdGlnaHRlcntsZXR0ZXItc3BhY2luZzotLjA1ZW19LnRyYWNraW5nLXdpZGV7bGV0dGVyLXNwYWNpbmc6LjAyNWVtfS50cmFja2luZy13aWRlcntsZXR0ZXItc3BhY2luZzouMDVlbX0udHJhY2tpbmctd2lkZXN0e2xldHRlci1zcGFjaW5nOi4xZW19LnRleHQtXFtcIzREQjhEQlxdey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDc3IDE4NCAyMTkvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1cW1wjQkE0REE1XF17LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTg2IDc3IDE2NS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWFjY2VudC1mb3JlZ3JvdW5ke2NvbG9yOnZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKX0udGV4dC1hbWJlci0yMDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjUzIDIzMCAxMzgvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1hbWJlci0zMDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjUyIDIxMSA3Ny92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWFtYmVyLTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTEgMTkxIDM2L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtYW1iZXItNTB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1MSAyMzUvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1hbWJlci01MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjQ1IDE1OCAxMS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWFtYmVyLTYwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMTcgMTE5IDYvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1hbWJlci03MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTgwIDgzIDkvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1hbWJlci04MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTQ2IDY0IDE0L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtYW1iZXItOTAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDEyMCA1MyAxNS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWFtYmVyLTkwMFwvODB7Y29sb3I6Izc4MzUwZmNjfS50ZXh0LWFtYmVyLTk1MHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYig2OSAyNiAzL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtYmxhY2t7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1ibHVlLTMwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxNDcgMTk3IDI1My92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWJsdWUtNDAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDk2IDE2NSAyNTAvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1icmFuZC1ibHVlLC50ZXh0LWJyYW5kLWJsdWUtbGlnaHR7Y29sb3I6dmFyKC0tcHJpbWFyeSl9LnRleHQtYnJhbmQtYm9yZGVye2NvbG9yOnZhcigtLWJvcmRlcil9LnRleHQtYnJhbmQtZXJyb3J7Y29sb3I6dmFyKC0tZGVzdHJ1Y3RpdmUpfS50ZXh0LWJyYW5kLXB1cnBsZXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxODYgNzcgMTY1L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtYnJhbmQtdGV4dHtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKX0udGV4dC1icmFuZC10ZXh0LWRhcmssLnRleHQtYnJhbmQtdGV4dC1tdXRlZHtjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0udGV4dC1jYXJkLWZvcmVncm91bmR7Y29sb3I6dmFyKC0tY2FyZC1mb3JlZ3JvdW5kKX0udGV4dC1jaGFydC0xe2NvbG9yOnZhcigtLWNoYXJ0LTEpfS50ZXh0LWNoYXJ0LTJ7Y29sb3I6dmFyKC0tY2hhcnQtMil9LnRleHQtY2hhcnQtM3tjb2xvcjp2YXIoLS1jaGFydC0zKX0udGV4dC1kZXN0cnVjdGl2ZXtjb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LnRleHQtZW1lcmFsZC0zMDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTEwIDIzMSAxODMvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1lbWVyYWxkLTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYig1MiAyMTEgMTUzL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtZW1lcmFsZC01MHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMzYgMjUzIDI0NS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWVtZXJhbGQtNTAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE2IDE4NSAxMjkvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1lbWVyYWxkLTYwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYig1IDE1MCAxMDUvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1lbWVyYWxkLTcwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYig0IDEyMCA4Ny92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWVtZXJhbGQtODAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDYgOTUgNzAvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1mb3JlZ3JvdW5ke2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS50ZXh0LWZ1Y2hzaWEtMzAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI0MCAxNzEgMjUyL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtZnVjaHNpYS00MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjMyIDEyMSAyNDkvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1ncmF5LTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxNTYgMTYzIDE3NS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LWdyYXktODAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDMxIDQxIDU1L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtZ3JlZW4tNDAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDc0IDIyMiAxMjgvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1ncmVlbi01MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzQgMTk3IDk0L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtZ3JlZW4tNjAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIyIDE2MyA3NC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LW11dGVkLWZvcmVncm91bmR7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9LnRleHQtb3JhbmdlLTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTEgMTQ2IDYwL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtb3JhbmdlLTYwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMzQgODggMTIvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1wb3BvdmVyLWZvcmVncm91bmR7Y29sb3I6dmFyKC0tcG9wb3Zlci1mb3JlZ3JvdW5kKX0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLXByaW1hcnkpfS50ZXh0LXByaW1hcnktZm9yZWdyb3VuZHtjb2xvcjp2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpfS50ZXh0LXB1cnBsZS0zMDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjE2IDE4MCAyNTQvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1wdXJwbGUtNDAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE5MiAxMzIgMjUyL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtcHVycGxlLTUwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxNjggODUgMjQ3L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtcHVycGxlLTYwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxNDcgNTEgMjM0L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtcmVkLTMwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTIgMTY1IDE2NS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXJlZC00MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjQ4IDExMyAxMTMvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1yZWQtNTAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXJlZC02MDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjIwIDM4IDM4L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtcm9zZS0zMDB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjUzIDE2NCAxNzUvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1yb3NlLTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTEgMTEzIDEzMy92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXJvc2UtNjAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIyNSAyOSA3Mi92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXJvc2UtNzAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE5MCAxOCA2MC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXNlY29uZGFyeS1mb3JlZ3JvdW5ke2NvbG9yOnZhcigtLXNlY29uZGFyeS1mb3JlZ3JvdW5kKX0udGV4dC1za3ktMzAwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDEyNSAyMTEgMjUyL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtc2t5LTUwey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI0MCAyNDkgMjU1L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQtc2t5LTcwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigzIDEwNSAxNjEvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC1zdGF0dXMtaW5mb3tjb2xvcjp2YXIoLS1zdGF0dXMtaW5mbyl9LnRleHQtc3RhdHVzLW5lZ2F0aXZle2NvbG9yOnZhcigtLXN0YXR1cy1uZWdhdGl2ZSl9LnRleHQtc3RhdHVzLW5ldXRyYWx7Y29sb3I6dmFyKC0tc3RhdHVzLW5ldXRyYWwpfS50ZXh0LXN0YXR1cy1wb3NpdGl2ZXtjb2xvcjp2YXIoLS1zdGF0dXMtcG9zaXRpdmUpfS50ZXh0LXN0YXR1cy13YXJuaW5ne2NvbG9yOnZhcigtLXN0YXR1cy13YXJuaW5nKX0udGV4dC10cmFuc3BhcmVudHtjb2xvcjojMDAwMH0udGV4dC13aGl0ZXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTUgMjU1IDI1NS92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXdoaXRlXC85NXtjb2xvcjojZmZmZmZmZjJ9LnRleHQteWVsbG93LTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTAgMjA0IDIxL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LnRleHQteWVsbG93LTYwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMDIgMTM4IDQvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udGV4dC16aW5jLTQwMHstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxNjEgMTYxIDE3MC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS50ZXh0LXppbmMtNTB7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjUwIDI1MCAyNTAvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0udW5kZXJsaW5le3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZX0ubGluZS10aHJvdWdoe3RleHQtZGVjb3JhdGlvbi1saW5lOmxpbmUtdGhyb3VnaH0uZGVjb3JhdGlvbi1kb3R0ZWR7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOmRvdHRlZH0udW5kZXJsaW5lLW9mZnNldC0ye3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHh9LnVuZGVybGluZS1vZmZzZXQtNHt0ZXh0LXVuZGVybGluZS1vZmZzZXQ6NHB4fS5hbnRpYWxpYXNlZHstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZX0ucGxhY2Vob2xkZXItYnJhbmQtdGV4dC1tdXRlZDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9Lm9wYWNpdHktMHtvcGFjaXR5OjB9Lm9wYWNpdHktMTAwe29wYWNpdHk6MX0ub3BhY2l0eS00MHtvcGFjaXR5Oi40fS5vcGFjaXR5LTUwe29wYWNpdHk6LjV9Lm9wYWNpdHktNjB7b3BhY2l0eTouNn0ub3BhY2l0eS03MHtvcGFjaXR5Oi43fS5vcGFjaXR5LTc1e29wYWNpdHk6Ljc1fS5vcGFjaXR5LTgwe29wYWNpdHk6Ljh9LnNoYWRvd3stLXR3LXNoYWRvdzowIDFweCAzcHggMCAjMDAwMDAwMWEsMCAxcHggMnB4IC0xcHggIzAwMDAwMDFhOy0tdHctc2hhZG93LWNvbG9yZWQ6MCAxcHggM3B4IDAgdmFyKC0tdHctc2hhZG93LWNvbG9yKSwwIDFweCAycHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LDAgMCAjMDAwMCksdmFyKC0tdHctcmluZy1zaGFkb3csMCAwICMwMDAwKSx2YXIoLS10dy1zaGFkb3cpfS5zaGFkb3ctaW5uZXItY3VzdG9tey0tdHctc2hhZG93Omluc2V0IDJweCAycHggNXB4ICMwMDA2LGluc2V0IC0ycHggLTJweCA1cHggI2ZmZmZmZjBkOy0tdHctc2hhZG93LWNvbG9yZWQ6aW5zZXQgMnB4IDJweCA1cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKSxpbnNldCAtMnB4IC0ycHggNXB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csMCAwICMwMDAwKSx2YXIoLS10dy1yaW5nLXNoYWRvdywwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy1sZ3stLXR3LXNoYWRvdzowIDEwcHggMTVweCAtM3B4ICMwMDAwMDAxYSwwIDRweCA2cHggLTRweCAjMDAwMDAwMWE7LS10dy1zaGFkb3ctY29sb3JlZDowIDEwcHggMTVweCAtM3B4IHZhcigtLXR3LXNoYWRvdy1jb2xvciksMCA0cHggNnB4IC00cHggdmFyKC0tdHctc2hhZG93LWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LDAgMCAjMDAwMCksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LW1key0tdHctc2hhZG93OjAgNHB4IDZweCAtMXB4ICMwMDAwMDAxYSwwIDJweCA0cHggLTJweCAjMDAwMDAwMWE7LS10dy1zaGFkb3ctY29sb3JlZDowIDRweCA2cHggLTFweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLDAgMnB4IDRweCAtMnB4IHZhcigtLXR3LXNoYWRvdy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csMCAwICMwMDAwKSx2YXIoLS10dy1yaW5nLXNoYWRvdywwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy1ub25ley0tdHctc2hhZG93OjAgMCAjMDAwMDstLXR3LXNoYWRvdy1jb2xvcmVkOjAgMCAjMDAwMDtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdywwIDAgIzAwMDApLHZhcigtLXR3LXJpbmctc2hhZG93LDAgMCAjMDAwMCksdmFyKC0tdHctc2hhZG93KX0uc2hhZG93LXNtey0tdHctc2hhZG93OjAgMXB4IDJweCAwICMwMDAwMDAwZDstLXR3LXNoYWRvdy1jb2xvcmVkOjAgMXB4IDJweCAwIHZhcigtLXR3LXNoYWRvdy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3csMCAwICMwMDAwKSx2YXIoLS10dy1yaW5nLXNoYWRvdywwIDAgIzAwMDApLHZhcigtLXR3LXNoYWRvdyl9LnNoYWRvdy14bHstLXR3LXNoYWRvdzowIDIwcHggMjVweCAtNXB4ICMwMDAwMDAxYSwwIDhweCAxMHB4IC02cHggIzAwMDAwMDFhOy0tdHctc2hhZG93LWNvbG9yZWQ6MCAyMHB4IDI1cHggLTVweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpLDAgOHB4IDEwcHggLTZweCB2YXIoLS10dy1zaGFkb3ctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93LDAgMCAjMDAwMCksdmFyKC0tdHctcmluZy1zaGFkb3csMCAwICMwMDAwKSx2YXIoLS10dy1zaGFkb3cpfS5vdXRsaW5lLW5vbmV7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5vdXRsaW5le291dGxpbmUtc3R5bGU6c29saWR9LnJpbmd7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCl2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0KTAgMCAwIGNhbGMoM3B4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93LDAgMCAjMDAwMCl9LnJpbmctMHstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0KTAgMCAwIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKXZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgY2FsYygwcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3csMCAwICMwMDAwKX0ucmluZy0xey0tdHctcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCBjYWxjKDFweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywwIDAgIzAwMDApfS5yaW5nLTJ7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCl2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0KTAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93LDAgMCAjMDAwMCl9LnJpbmctaW5zZXR7LS10dy1yaW5nLWluc2V0Omluc2V0fS5yaW5nLWFtYmVyLTQwMHstLXR3LXJpbmctb3BhY2l0eToxOy0tdHctcmluZy1jb2xvcjpyZ2IoMjUxIDE5MSAzNi92YXIoLS10dy1yaW5nLW9wYWNpdHksMSkpfS5yaW5nLWJyYW5kLWJsdWV7LS10dy1yaW5nLWNvbG9yOnZhcigtLXByaW1hcnkpfS5yaW5nLWZ1Y2hzaWEtNDAwey0tdHctcmluZy1vcGFjaXR5OjE7LS10dy1yaW5nLWNvbG9yOnJnYigyMzIgMTIxIDI0OS92YXIoLS10dy1yaW5nLW9wYWNpdHksMSkpfS5yaW5nLW9mZnNldC0yey0tdHctcmluZy1vZmZzZXQtd2lkdGg6MnB4fS5yaW5nLW9mZnNldC1iYWNrZ3JvdW5kLC5yaW5nLW9mZnNldC1icmFuZC1iZ3stLXR3LXJpbmctb2Zmc2V0LWNvbG9yOnZhcigtLWJhY2tncm91bmQpfS5ibHVyey0tdHctYmx1cjpibHVyKDhweCk7ZmlsdGVyOnZhcigtLXR3LWJsdXIpdmFyKC0tdHctYnJpZ2h0bmVzcyl2YXIoLS10dy1jb250cmFzdCl2YXIoLS10dy1ncmF5c2NhbGUpdmFyKC0tdHctaHVlLXJvdGF0ZSl2YXIoLS10dy1pbnZlcnQpdmFyKC0tdHctc2F0dXJhdGUpdmFyKC0tdHctc2VwaWEpdmFyKC0tdHctZHJvcC1zaGFkb3cpfS5kcm9wLXNoYWRvd3stLXR3LWRyb3Atc2hhZG93OmRyb3Atc2hhZG93KDAgMXB4IDJweCAjMDAwMDAwMWEpZHJvcC1zaGFkb3coMCAxcHggMXB4ICMwMDAwMDAwZik7ZmlsdGVyOnZhcigtLXR3LWJsdXIpdmFyKC0tdHctYnJpZ2h0bmVzcyl2YXIoLS10dy1jb250cmFzdCl2YXIoLS10dy1ncmF5c2NhbGUpdmFyKC0tdHctaHVlLXJvdGF0ZSl2YXIoLS10dy1pbnZlcnQpdmFyKC0tdHctc2F0dXJhdGUpdmFyKC0tdHctc2VwaWEpdmFyKC0tdHctZHJvcC1zaGFkb3cpfS5pbnZlcnR7LS10dy1pbnZlcnQ6aW52ZXJ0KDEwMCUpO2ZpbHRlcjp2YXIoLS10dy1ibHVyKXZhcigtLXR3LWJyaWdodG5lc3MpdmFyKC0tdHctY29udHJhc3QpdmFyKC0tdHctZ3JheXNjYWxlKXZhcigtLXR3LWh1ZS1yb3RhdGUpdmFyKC0tdHctaW52ZXJ0KXZhcigtLXR3LXNhdHVyYXRlKXZhcigtLXR3LXNlcGlhKXZhcigtLXR3LWRyb3Atc2hhZG93KX0uXCFmaWx0ZXJ7ZmlsdGVyOnZhcigtLXR3LWJsdXIpdmFyKC0tdHctYnJpZ2h0bmVzcyl2YXIoLS10dy1jb250cmFzdCl2YXIoLS10dy1ncmF5c2NhbGUpdmFyKC0tdHctaHVlLXJvdGF0ZSl2YXIoLS10dy1pbnZlcnQpdmFyKC0tdHctc2F0dXJhdGUpdmFyKC0tdHctc2VwaWEpdmFyKC0tdHctZHJvcC1zaGFkb3cpIWltcG9ydGFudH0uZmlsdGVye2ZpbHRlcjp2YXIoLS10dy1ibHVyKXZhcigtLXR3LWJyaWdodG5lc3MpdmFyKC0tdHctY29udHJhc3QpdmFyKC0tdHctZ3JheXNjYWxlKXZhcigtLXR3LWh1ZS1yb3RhdGUpdmFyKC0tdHctaW52ZXJ0KXZhcigtLXR3LXNhdHVyYXRlKXZhcigtLXR3LXNlcGlhKXZhcigtLXR3LWRyb3Atc2hhZG93KX0uYmFja2Ryb3AtYmx1ci1zbXstLXR3LWJhY2tkcm9wLWJsdXI6Ymx1cig0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIpdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcyl2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCl2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSl2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSl2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSl2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSk7YmFja2Ryb3AtZmlsdGVyOnZhcigtLXR3LWJhY2tkcm9wLWJsdXIpdmFyKC0tdHctYmFja2Ryb3AtYnJpZ2h0bmVzcyl2YXIoLS10dy1iYWNrZHJvcC1jb250cmFzdCl2YXIoLS10dy1iYWNrZHJvcC1ncmF5c2NhbGUpdmFyKC0tdHctYmFja2Ryb3AtaHVlLXJvdGF0ZSl2YXIoLS10dy1iYWNrZHJvcC1pbnZlcnQpdmFyKC0tdHctYmFja2Ryb3Atb3BhY2l0eSl2YXIoLS10dy1iYWNrZHJvcC1zYXR1cmF0ZSl2YXIoLS10dy1iYWNrZHJvcC1zZXBpYSl9LlwhdHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXIhaW1wb3J0YW50O3RyYW5zaXRpb24tZHVyYXRpb246LjE1cyFpbXBvcnRhbnQ7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSkhaW1wb3J0YW50fS50cmFuc2l0aW9ue3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlLG9wYWNpdHksYm94LXNoYWRvdyx0cmFuc2Zvcm0sZmlsdGVyLC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyLGJhY2tkcm9wLWZpbHRlcjt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tXFtjb2xvclwsYm94LXNoYWRvd1xde3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYm94LXNoYWRvdzt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tXFt3aWR0aFxde3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGg7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tdHJhbnNmb3Jte3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZHVyYXRpb24tMjAwe3RyYW5zaXRpb24tZHVyYXRpb246LjJzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LmR1cmF0aW9uLTUwMHt0cmFuc2l0aW9uLWR1cmF0aW9uOi41c30uZHVyYXRpb24tNzAwe3RyYW5zaXRpb24tZHVyYXRpb246LjdzfS5lYXNlLW91dHt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoMCwwLC4yLDEpfS5cW3RleHQtc2hhZG93XDowXzBfMnB4X3JnYlwoMF8wXzBcLzBcLjZcKVxde3RleHQtc2hhZG93OjAgMCAycHggIzAwMDl9LnJkcC1kYXlfYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tcG9wb3ZlcikhaW1wb3J0YW50O2NvbG9yOnZhcigtLXBvcG92ZXItZm9yZWdyb3VuZCkhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKSFpbXBvcnRhbnQ7d2lkdGg6MTAwJSFpbXBvcnRhbnR9LnJkcC1kYXlfYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KSFpbXBvcnRhbnQ7Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpIWltcG9ydGFudH0ucmRwLW5hdl9idXR0b257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wb3BvdmVyKSFpbXBvcnRhbnQ7Y29sb3I6dmFyKC0tcG9wb3Zlci1mb3JlZ3JvdW5kKSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMpIWltcG9ydGFudDtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnJkcC1uYXZfYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KSFpbXBvcnRhbnQ7Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpIWltcG9ydGFudH0ucmRwLWRheV9zZWxlY3RlZCwucmRwLWRheV9zZWxlY3RlZDpmb2N1cy12aXNpYmxlLC5yZHAtZGF5X3NlbGVjdGVkOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSkhaW1wb3J0YW50O2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCkhaW1wb3J0YW50fS5yZHAtZGF5X2Rpc2FibGVkLC5yZHAtYnV0dG9uOmRpc2FibGVke29wYWNpdHk6LjUhaW1wb3J0YW50O3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50fS5yZHAtY2hldnJvbntmaWxsOnZhcigtLWZvcmVncm91bmQpfUBtZWRpYSBwcmludHsubm8tcHJpbnR7ZGlzcGxheTpub25lIWltcG9ydGFudH19LmZhLXNlZ21lbnR7Y29udGFpbmVyLXR5cGU6aW5saW5lLXNpemV9LmZhLXNlZ21lbnQtY291bnR7ZGlzcGxheTpub25lfUBjb250YWluZXIgKG1pbi13aWR0aDoyNHB4KXsuZmEtc2VnbWVudC1jb3VudHtkaXNwbGF5OmJsb2NrfX0uc2VsZWN0aW9uXDpiZy1wcmltYXJ5IDo6c2VsZWN0aW9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LnNlbGVjdGlvblw6dGV4dC1wcmltYXJ5LWZvcmVncm91bmQgOjpzZWxlY3Rpb257Y29sb3I6dmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKX0uc2VsZWN0aW9uXDpiZy1wcmltYXJ5OjpzZWxlY3Rpb257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uc2VsZWN0aW9uXDp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZDo6c2VsZWN0aW9ue2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCl9LmZpbGVcOmlubGluZS1mbGV4OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntkaXNwbGF5OmlubGluZS1mbGV4fS5maWxlXDpoLTc6OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2hlaWdodDoxLjc1cmVtfS5maWxlXDpib3JkZXItMDo6ZmlsZS1zZWxlY3Rvci1idXR0b257Ym9yZGVyLXdpZHRoOjB9LmZpbGVcOmJnLXRyYW5zcGFyZW50OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5maWxlXDp0ZXh0LXNtOjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxLjI1cmVtfS5maWxlXDpmb250LW1lZGl1bTo6ZmlsZS1zZWxlY3Rvci1idXR0b257Zm9udC13ZWlnaHQ6NTAwfS5maWxlXDp0ZXh0LWZvcmVncm91bmQ6OmZpbGUtc2VsZWN0b3ItYnV0dG9ue2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5wbGFjZWhvbGRlclw6dGV4dC1icmFuZC10ZXh0LW11dGVkOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0ucGxhY2Vob2xkZXJcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9LmJlZm9yZVw6bXItMVwuNTpiZWZvcmV7Y29udGVudDp2YXIoLS10dy1jb250ZW50KTttYXJnaW4tcmlnaHQ6LjM3NXJlbX0uYmVmb3JlXDp0ZXh0LW11dGVkLWZvcmVncm91bmQ6YmVmb3Jle2NvbnRlbnQ6dmFyKC0tdHctY29udGVudCk7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9LmJlZm9yZVw6Y29udGVudC1cW1wnw5dcJ1xdOmJlZm9yZXstLXR3LWNvbnRlbnQ6IsOXIjtjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpfS5iZWZvcmVcOmNvbnRlbnQtXFtcJ+KAolwnXF06YmVmb3Jley0tdHctY29udGVudDoi4oCiIjtjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpfS5iZWZvcmVcOmNvbnRlbnQtXFtcJ+KaoFwnXF06YmVmb3Jley0tdHctY29udGVudDoi4pqgIjtjb250ZW50OnZhcigtLXR3LWNvbnRlbnQpfS5maXJzdFw6cm91bmRlZC1sLW1kOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCl9LmZpcnN0XDpib3JkZXItdC0wOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MH0ubGFzdFw6cm91bmRlZC1yLW1kOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpfS5sYXN0XDpib3JkZXItMDpsYXN0LWNoaWxke2JvcmRlci13aWR0aDowfS5sYXN0XDpib3JkZXItYi0wOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5mb2N1cy13aXRoaW5cOnJlbGF0aXZlOmZvY3VzLXdpdGhpbntwb3NpdGlvbjpyZWxhdGl2ZX0uZm9jdXMtd2l0aGluXDp6LTIwOmZvY3VzLXdpdGhpbnt6LWluZGV4OjIwfS5ob3Zlclw6Ym9yZGVyLWJyYW5kLWJsdWU6aG92ZXIsLmhvdmVyXDpib3JkZXItYnJhbmQtYmx1ZS1saWdodDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tcHJpbWFyeSl9LmhvdmVyXDpiZy1hY2NlbnQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5ob3Zlclw6YmctYW1iZXItNTAwXC8xMDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNTllMGIxYX0uaG92ZXJcOmJnLWFtYmVyLTYwMDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMTcgMTE5IDYvdmFyKC0tdHctYmctb3BhY2l0eSwxKSl9LmhvdmVyXDpiZy1hbWJlci05MDA6aG92ZXJ7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTIwIDUzIDE1L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5ob3Zlclw6YmctYmx1ZS03MDA6aG92ZXJ7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjkgNzggMjE2L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5ob3Zlclw6YmctYnJhbmQtYm9yZGVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYm9yZGVyKX0uaG92ZXJcOmJnLWJyYW5kLWNhcmQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jYXJkKX0uaG92ZXJcOmJnLWJyYW5kLWhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tZHMtYmctaG92ZXIpfS5ob3Zlclw6YmctZW1lcmFsZC01MDBcLzI1OmhvdmVye2JhY2tncm91bmQtY29sb3I6IzEwYjk4MTQwfS5ob3Zlclw6YmctZ3JheS01MDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMjUwIDI1MS92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uaG92ZXJcOmJnLWdyZWVuLTUwMFwvMjA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjJjNTVlMzN9LmhvdmVyXDpiZy1ncmVlbi03MDA6aG92ZXJ7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjEgMTI4IDYxL3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5ob3Zlclw6YmctbXV0ZWQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9LmhvdmVyXDpiZy1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LmhvdmVyXDpiZy1yb3NlLTUwMFwvMjA6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjQzZjVlMzN9LmhvdmVyXDpiZy10cmFuc3BhcmVudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ob3Zlclw6Ymctb3BhY2l0eS05MDpob3ZlcnstLXR3LWJnLW9wYWNpdHk6Ljl9LmhvdmVyXDp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kOmhvdmVye2NvbG9yOnZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKX0uaG92ZXJcOnRleHQtYW1iZXItNzAwOmhvdmVyey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE4MCA4MyA5L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LmhvdmVyXDp0ZXh0LWJyYW5kLWJsdWU6aG92ZXIsLmhvdmVyXDp0ZXh0LWJyYW5kLWJsdWUtbGlnaHQ6aG92ZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeSl9LmhvdmVyXDp0ZXh0LWJyYW5kLXRleHQ6aG92ZXIsLmhvdmVyXDp0ZXh0LWZvcmVncm91bmQ6aG92ZXJ7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9LmhvdmVyXDp0ZXh0LWluaGVyaXQ6aG92ZXJ7Y29sb3I6aW5oZXJpdH0uaG92ZXJcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZDpob3Zlcntjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0uaG92ZXJcOnRleHQtcHJpbWFyeTpob3Zlcntjb2xvcjp2YXIoLS1wcmltYXJ5KX0uaG92ZXJcOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kOmhvdmVye2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCl9LmhvdmVyXDp0ZXh0LXB1cnBsZS00MDA6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTkyIDEzMiAyNTIvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uaG92ZXJcOnRleHQtd2hpdGU6aG92ZXJ7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uaG92ZXJcOnVuZGVybGluZTpob3Zlcnt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9LmhvdmVyXDpkZWNvcmF0aW9uLWFtYmVyLTQwMFwvNjA6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiNmYmJmMjQ5OX0uaG92ZXJcOmRlY29yYXRpb24tc29saWQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkfS5ob3Zlclw6dW5kZXJsaW5lLW9mZnNldC0yOmhvdmVye3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHh9LmhvdmVyXDpvcGFjaXR5LTEwMDpob3ZlcntvcGFjaXR5OjF9LmhvdmVyXDpvcGFjaXR5LTgwOmhvdmVye29wYWNpdHk6Ljh9LmhvdmVyXDpvcGFjaXR5LTkwOmhvdmVye29wYWNpdHk6Ljl9LmZvY3VzXDp6LTEwOmZvY3Vze3otaW5kZXg6MTB9LmZvY3VzXDpib3JkZXItYW1iZXItNDAwOmZvY3Vzey0tdHctYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDI1MSAxOTEgMzYvdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksMSkpfS5mb2N1c1w6Ym9yZGVyLWJsdWUtNTAwOmZvY3Vzey0tdHctYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDU5IDEzMCAyNDYvdmFyKC0tdHctYm9yZGVyLW9wYWNpdHksMSkpfS5mb2N1c1w6Ym9yZGVyLWJyYW5kLWJsdWU6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnkpfS5mb2N1c1w6Ym9yZGVyLWZ1Y2hzaWEtNDAwOmZvY3Vzey0tdHctYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIzMiAxMjEgMjQ5L3ZhcigtLXR3LWJvcmRlci1vcGFjaXR5LDEpKX0uZm9jdXNcOmJvcmRlci1yaW5nOmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1yaW5nKX0uZm9jdXNcOmJnLWFjY2VudDpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCl9LmZvY3VzXDpiZy1tdXRlZDpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0uZm9jdXNcOmJnLXByaW1hcnk6Zm9jdXN7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uZm9jdXNcOnRleHQtYWNjZW50LWZvcmVncm91bmQ6Zm9jdXN7Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpfS5mb2N1c1w6dGV4dC1kZXN0cnVjdGl2ZTpmb2N1c3tjb2xvcjp2YXIoLS1kZXN0cnVjdGl2ZSl9LmZvY3VzXDp0ZXh0LWVtZXJhbGQtNDAwOmZvY3Vzey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUyIDIxMSAxNTMvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZm9jdXNcOnRleHQtcHJpbWFyeS1mb3JlZ3JvdW5kOmZvY3Vze2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCl9LmZvY3VzXDpvcGFjaXR5LTEwMDpmb2N1c3tvcGFjaXR5OjF9LmZvY3VzXDpvdXRsaW5lLW5vbmU6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5mb2N1c1w6cmluZy0wOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCBjYWxjKDBweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywwIDAgIzAwMDApfS5mb2N1c1w6cmluZy0xOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCBjYWxjKDFweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywwIDAgIzAwMDApfS5mb2N1c1w6cmluZy0yOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCBjYWxjKDJweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywwIDAgIzAwMDApfS5mb2N1c1w6cmluZy1ibHVlLTUwMDpmb2N1c3stLXR3LXJpbmctb3BhY2l0eToxOy0tdHctcmluZy1jb2xvcjpyZ2IoNTkgMTMwIDI0Ni92YXIoLS10dy1yaW5nLW9wYWNpdHksMSkpfS5mb2N1c1w6cmluZy1icmFuZC1ibHVlOmZvY3Vzey0tdHctcmluZy1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uZm9jdXNcOnJpbmctcmluZzpmb2N1c3stLXR3LXJpbmctY29sb3I6dmFyKC0tcmluZyl9LmZvY3VzXDpyaW5nLW9mZnNldC0yOmZvY3Vzey0tdHctcmluZy1vZmZzZXQtd2lkdGg6MnB4fS5mb2N1cy12aXNpYmxlXDp6LTEwOmZvY3VzLXZpc2libGV7ei1pbmRleDoxMH0uZm9jdXMtdmlzaWJsZVw6Ym9yZGVyLXJpbmc6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tcmluZyl9LmZvY3VzLXZpc2libGVcOnVuZGVybGluZTpmb2N1cy12aXNpYmxle3RleHQtZGVjb3JhdGlvbi1saW5lOnVuZGVybGluZX0uZm9jdXMtdmlzaWJsZVw6ZGVjb3JhdGlvbi1hbWJlci00MDA6Zm9jdXMtdmlzaWJsZXt0ZXh0LWRlY29yYXRpb24tY29sb3I6I2ZiYmYyNH0uZm9jdXMtdmlzaWJsZVw6b3V0bGluZS1ub25lOmZvY3VzLXZpc2libGV7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5mb2N1cy12aXNpYmxlXDpyaW5nLTE6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctb2Zmc2V0LXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0KTAgMCAwIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKXZhcigtLXR3LXJpbmctb2Zmc2V0LWNvbG9yKTstLXR3LXJpbmctc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgY2FsYygxcHggKyB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCkpdmFyKC0tdHctcmluZy1jb2xvcik7Ym94LXNoYWRvdzp2YXIoLS10dy1yaW5nLW9mZnNldC1zaGFkb3cpLHZhcigtLXR3LXJpbmctc2hhZG93KSx2YXIoLS10dy1zaGFkb3csMCAwICMwMDAwKX0uZm9jdXMtdmlzaWJsZVw6cmluZy0yOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLW9mZnNldC1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCB2YXIoLS10dy1yaW5nLW9mZnNldC13aWR0aCl2YXIoLS10dy1yaW5nLW9mZnNldC1jb2xvcik7LS10dy1yaW5nLXNoYWRvdzp2YXIoLS10dy1yaW5nLWluc2V0KTAgMCAwIGNhbGMoMnB4ICsgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpKXZhcigtLXR3LXJpbmctY29sb3IpO2JveC1zaGFkb3c6dmFyKC0tdHctcmluZy1vZmZzZXQtc2hhZG93KSx2YXIoLS10dy1yaW5nLXNoYWRvdyksdmFyKC0tdHctc2hhZG93LDAgMCAjMDAwMCl9LmZvY3VzLXZpc2libGVcOnJpbmctXFszcHhcXTpmb2N1cy12aXNpYmxley0tdHctcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXR3LXJpbmctaW5zZXQpMCAwIDAgdmFyKC0tdHctcmluZy1vZmZzZXQtd2lkdGgpdmFyKC0tdHctcmluZy1vZmZzZXQtY29sb3IpOy0tdHctcmluZy1zaGFkb3c6dmFyKC0tdHctcmluZy1pbnNldCkwIDAgMCBjYWxjKDNweCArIHZhcigtLXR3LXJpbmctb2Zmc2V0LXdpZHRoKSl2YXIoLS10dy1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXR3LXJpbmctb2Zmc2V0LXNoYWRvdyksdmFyKC0tdHctcmluZy1zaGFkb3cpLHZhcigtLXR3LXNoYWRvdywwIDAgIzAwMDApfS5mb2N1cy12aXNpYmxlXDpyaW5nLWJyYW5kLWJsdWU6Zm9jdXMtdmlzaWJsZXstLXR3LXJpbmctY29sb3I6dmFyKC0tcHJpbWFyeSl9LmZvY3VzLXZpc2libGVcOnJpbmctcmluZzpmb2N1cy12aXNpYmxley0tdHctcmluZy1jb2xvcjp2YXIoLS1yaW5nKX0uZm9jdXMtdmlzaWJsZVw6cmluZy1vZmZzZXQtMTpmb2N1cy12aXNpYmxley0tdHctcmluZy1vZmZzZXQtd2lkdGg6MXB4fS5mb2N1cy12aXNpYmxlXDpyaW5nLW9mZnNldC0yOmZvY3VzLXZpc2libGV7LS10dy1yaW5nLW9mZnNldC13aWR0aDoycHh9LmRpc2FibGVkXDpwb2ludGVyLWV2ZW50cy1ub25lOmRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmV9LmRpc2FibGVkXDpjdXJzb3Itbm90LWFsbG93ZWQ6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5kaXNhYmxlZFw6b3BhY2l0eS0zMDpkaXNhYmxlZHtvcGFjaXR5Oi4zfS5kaXNhYmxlZFw6b3BhY2l0eS01MDpkaXNhYmxlZHtvcGFjaXR5Oi41fS5kaXNhYmxlZFw6b3BhY2l0eS02MDpkaXNhYmxlZHtvcGFjaXR5Oi42fS5ncm91cFtvcGVuXSAuZ3JvdXAtb3Blblw6cm90YXRlLTE4MHstLXR3LXJvdGF0ZToxODBkZWc7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKXJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKXNrZXdYKHZhcigtLXR3LXNrZXcteCkpc2tld1kodmFyKC0tdHctc2tldy15KSlzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX0uZ3JvdXBcL3Jvdzpmb2N1cy13aXRoaW4gLmdyb3VwLWZvY3VzLXdpdGhpblwvcm93XDpvcGFjaXR5LTEwMHtvcGFjaXR5OjF9Lmdyb3VwOmhvdmVyIC5ncm91cC1ob3Zlclw6Ym9yZGVyLWJyYW5kLWJsdWV7Ym9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnkpfS5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcOnRleHQtYnJhbmQtYmx1ZS1saWdodHtjb2xvcjp2YXIoLS1wcmltYXJ5KX0uZ3JvdXBcL3Jvdzpob3ZlciAuZ3JvdXAtaG92ZXJcL3Jvd1w6b3BhY2l0eS0xMDAsLmdyb3VwOmhvdmVyIC5ncm91cC1ob3Zlclw6b3BhY2l0eS0xMDB7b3BhY2l0eToxfS5ncm91cDpob3ZlciAuZ3JvdXAtaG92ZXJcOm9wYWNpdHktODB7b3BhY2l0eTouOH0uZ3JvdXA6Zm9jdXMtdmlzaWJsZSAuZ3JvdXAtZm9jdXMtdmlzaWJsZVw6Ym9yZGVyLWJyYW5kLWJsdWV7Ym9yZGVyLWNvbG9yOnZhcigtLXByaW1hcnkpfS5wZWVyOmRpc2FibGVkfi5wZWVyLWRpc2FibGVkXDpjdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5wZWVyOmRpc2FibGVkfi5wZWVyLWRpc2FibGVkXDpvcGFjaXR5LTUwe29wYWNpdHk6LjV9Lmhhcy1cW1w+c3ZnXF1cOmdyaWQtY29scy1cW2NhbGNcKHZhclwoLS1zcGFjaW5nXClcKjRcKV8xZnJcXTpoYXMoPnN2Zyl7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmNhbGModmFyKC0tc3BhY2luZykqNCkxZnJ9Lmhhcy1cW1w+c3ZnXF1cOmdhcC14LTM6aGFzKD5zdmcpey1tb3otY29sdW1uLWdhcDouNzVyZW07Y29sdW1uLWdhcDouNzVyZW19Lmhhcy1cW1w+c3ZnXF1cOnB4LTJcLjU6aGFzKD5zdmcpe3BhZGRpbmctbGVmdDouNjI1cmVtO3BhZGRpbmctcmlnaHQ6LjYyNXJlbX0uaGFzLVxbXD5zdmdcXVw6cHgtMzpoYXMoPnN2Zyl7cGFkZGluZy1sZWZ0Oi43NXJlbTtwYWRkaW5nLXJpZ2h0Oi43NXJlbX0uaGFzLVxbXD5zdmdcXVw6cHgtNDpoYXMoPnN2Zyl7cGFkZGluZy1sZWZ0OjFyZW07cGFkZGluZy1yaWdodDoxcmVtfS5hcmlhLWNoZWNrZWRcOmJnLXByaW1hcnlbYXJpYS1jaGVja2VkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LmFyaWEtY2hlY2tlZFw6dGV4dC1wcmltYXJ5LWZvcmVncm91bmRbYXJpYS1jaGVja2VkPXRydWVde2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCl9LmFyaWEtc2VsZWN0ZWRcOmJnLWFjY2VudFthcmlhLXNlbGVjdGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KX0uYXJpYS1zZWxlY3RlZFw6YmctcHJpbWFyeVthcmlhLXNlbGVjdGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LmFyaWEtc2VsZWN0ZWRcOnRleHQtYWNjZW50LWZvcmVncm91bmRbYXJpYS1zZWxlY3RlZD10cnVlXXtjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9LmFyaWEtc2VsZWN0ZWRcOnRleHQtbXV0ZWQtZm9yZWdyb3VuZFthcmlhLXNlbGVjdGVkPXRydWVde2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5hcmlhLXNlbGVjdGVkXDp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZFthcmlhLXNlbGVjdGVkPXRydWVde2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCl9LmFyaWEtc2VsZWN0ZWRcOm9wYWNpdHktMTAwW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV17b3BhY2l0eToxfS5kYXRhLVxbZGlzYWJsZWRcPXRydWVcXVw6cG9pbnRlci1ldmVudHMtbm9uZVtkYXRhLWRpc2FibGVkPXRydWVdLC5kYXRhLVxbZGlzYWJsZWRcXVw6cG9pbnRlci1ldmVudHMtbm9uZVtkYXRhLWRpc2FibGVkXXtwb2ludGVyLWV2ZW50czpub25lfS5kYXRhLVxbb3JpZW50YXRpb25cPWhvcml6b250YWxcXVw6aC1weFtkYXRhLW9yaWVudGF0aW9uPWhvcml6b250YWxde2hlaWdodDoxcHh9LmRhdGEtXFtvcmllbnRhdGlvblw9dmVydGljYWxcXVw6aC1mdWxsW2RhdGEtb3JpZW50YXRpb249dmVydGljYWxde2hlaWdodDoxMDAlfS5kYXRhLVxbb3JpZW50YXRpb25cPWhvcml6b250YWxcXVw6dy1mdWxsW2RhdGEtb3JpZW50YXRpb249aG9yaXpvbnRhbF17d2lkdGg6MTAwJX0uZGF0YS1cW29yaWVudGF0aW9uXD12ZXJ0aWNhbFxdXDp3LXB4W2RhdGEtb3JpZW50YXRpb249dmVydGljYWxde3dpZHRoOjFweH0uZGF0YS1cW3NpZGVcPWJvdHRvbVxdXDp0cmFuc2xhdGUteS0xW2RhdGEtc2lkZT1ib3R0b21dey0tdHctdHJhbnNsYXRlLXk6LjI1cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSlyb3RhdGUodmFyKC0tdHctcm90YXRlKSlza2V3WCh2YXIoLS10dy1za2V3LXgpKXNrZXdZKHZhcigtLXR3LXNrZXcteSkpc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKXNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9LmRhdGEtXFtzaWRlXD1sZWZ0XF1cOi10cmFuc2xhdGUteC0xW2RhdGEtc2lkZT1sZWZ0XXstLXR3LXRyYW5zbGF0ZS14Oi0uMjVyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKXJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKXNrZXdYKHZhcigtLXR3LXNrZXcteCkpc2tld1kodmFyKC0tdHctc2tldy15KSlzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX0uZGF0YS1cW3NpZGVcPXJpZ2h0XF1cOnRyYW5zbGF0ZS14LTFbZGF0YS1zaWRlPXJpZ2h0XXstLXR3LXRyYW5zbGF0ZS14Oi4yNXJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS5kYXRhLVxbc2lkZVw9dG9wXF1cOi10cmFuc2xhdGUteS0xW2RhdGEtc2lkZT10b3Bdey0tdHctdHJhbnNsYXRlLXk6LS4yNXJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS5kYXRhLVxbc3RhdGVcPWNoZWNrZWRcXVw6dHJhbnNsYXRlLXgtXFtjYWxjXCgxMDBcJS0ycHhcKVxdW2RhdGEtc3RhdGU9Y2hlY2tlZF17LS10dy10cmFuc2xhdGUteDpjYWxjKDEwMCUgLSAycHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSlyb3RhdGUodmFyKC0tdHctcm90YXRlKSlza2V3WCh2YXIoLS10dy1za2V3LXgpKXNrZXdZKHZhcigtLXR3LXNrZXcteSkpc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKXNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9LmRhdGEtXFtzdGF0ZVw9dW5jaGVja2VkXF1cOnRyYW5zbGF0ZS14LTBbZGF0YS1zdGF0ZT11bmNoZWNrZWRdey0tdHctdHJhbnNsYXRlLXg6MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUodmFyKC0tdHctdHJhbnNsYXRlLXgpLHZhcigtLXR3LXRyYW5zbGF0ZS15KSlyb3RhdGUodmFyKC0tdHctcm90YXRlKSlza2V3WCh2YXIoLS10dy1za2V3LXgpKXNrZXdZKHZhcigtLXR3LXNrZXcteSkpc2NhbGVYKHZhcigtLXR3LXNjYWxlLXgpKXNjYWxlWSh2YXIoLS10dy1zY2FsZS15KSl9LmRhdGEtXFt2YXJpYW50XD1vdXRsaW5lXF1cOmJvcmRlci1sLTBbZGF0YS12YXJpYW50PW91dGxpbmVde2JvcmRlci1sZWZ0LXdpZHRoOjB9LmRhdGEtXFtzZWxlY3RlZFw9dHJ1ZVxdXDpiZy1tdXRlZFtkYXRhLXNlbGVjdGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpfS5kYXRhLVxbc3RhdGVcPWNoZWNrZWRcXVw6YmctcHJpbWFyeVtkYXRhLXN0YXRlPWNoZWNrZWRde2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LmRhdGEtXFtzdGF0ZVw9b25cXVw6YmctYWNjZW50W2RhdGEtc3RhdGU9b25de2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KX0uZGF0YS1cW3N0YXRlXD1vblxdXDpiZy1icmFuZC1ibHVlW2RhdGEtc3RhdGU9b25de2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSl9LmRhdGEtXFtzdGF0ZVw9b25cXVw6YmctbXV0ZWQtZm9yZWdyb3VuZFtkYXRhLXN0YXRlPW9uXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5kYXRhLVxbc3RhdGVcPW9uXF1cOmJnLXByaW1hcnlbZGF0YS1zdGF0ZT1vbl17YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KX0uZGF0YS1cW3N0YXRlXD1vblxdXDpiZy15ZWxsb3ctNjAwW2RhdGEtc3RhdGU9b25dey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDIwMiAxMzggNC92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uZGF0YS1cW3N0YXRlXD1vcGVuXF1cOmJnLWFjY2VudFtkYXRhLXN0YXRlPW9wZW5de2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KX0uZGF0YS1cW3N0YXRlXD1zZWxlY3RlZFxdXDpiZy1tdXRlZFtkYXRhLXN0YXRlPXNlbGVjdGVkXXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0uZGF0YS1cW3N0YXRlXD11bmNoZWNrZWRcXVw6YmctaW5wdXRbZGF0YS1zdGF0ZT11bmNoZWNrZWRde2JhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQpfS5kYXRhLVxbaW5zZXRcXVw6cGwtOFtkYXRhLWluc2V0XXtwYWRkaW5nLWxlZnQ6MnJlbX0uZGF0YS1cW3NlbGVjdGVkXD10cnVlXF1cOnRleHQtZm9yZWdyb3VuZFtkYXRhLXNlbGVjdGVkPXRydWVde2NvbG9yOnZhcigtLWZvcmVncm91bmQpfS5kYXRhLVxbc3RhdGVcPW9uXF1cOnRleHQtYWNjZW50LWZvcmVncm91bmRbZGF0YS1zdGF0ZT1vbl17Y29sb3I6dmFyKC0tYWNjZW50LWZvcmVncm91bmQpfS5kYXRhLVxbc3RhdGVcPW9uXF1cOnRleHQtYmFja2dyb3VuZFtkYXRhLXN0YXRlPW9uXXtjb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKX0uZGF0YS1cW3N0YXRlXD1vblxdXDp0ZXh0LXByaW1hcnktZm9yZWdyb3VuZFtkYXRhLXN0YXRlPW9uXXtjb2xvcjp2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpfS5kYXRhLVxbc3RhdGVcPW9wZW5cXVw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZFtkYXRhLXN0YXRlPW9wZW5de2NvbG9yOnZhcigtLWFjY2VudC1mb3JlZ3JvdW5kKX0uZGF0YS1cW3N0YXRlXD1vcGVuXF1cOnRleHQtbXV0ZWQtZm9yZWdyb3VuZFtkYXRhLXN0YXRlPW9wZW5de2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5kYXRhLVxbdmFyaWFudFw9ZGVzdHJ1Y3RpdmVcXVw6dGV4dC1kZXN0cnVjdGl2ZVtkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVde2NvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0uZGF0YS1cW2Rpc2FibGVkXD10cnVlXF1cOm9wYWNpdHktNTBbZGF0YS1kaXNhYmxlZD10cnVlXSwuZGF0YS1cW2Rpc2FibGVkXF1cOm9wYWNpdHktNTBbZGF0YS1kaXNhYmxlZF17b3BhY2l0eTouNX0uZGF0YS1cW3ZhcmlhbnRcPW91dGxpbmVcXVw6Zmlyc3RcOmJvcmRlci1sOmZpcnN0LWNoaWxkW2RhdGEtdmFyaWFudD1vdXRsaW5lXXtib3JkZXItbGVmdC13aWR0aDoxcHh9LmRhdGEtXFt2YXJpYW50XD1kZXN0cnVjdGl2ZVxdXDpmb2N1c1w6dGV4dC1kZXN0cnVjdGl2ZTpmb2N1c1tkYXRhLXZhcmlhbnQ9ZGVzdHJ1Y3RpdmVde2NvbG9yOnZhcigtLWRlc3RydWN0aXZlKX0uZ3JvdXBbZGF0YS1kaXNhYmxlZD10cnVlXSAuZ3JvdXAtZGF0YS1cW2Rpc2FibGVkXD10cnVlXF1cOnBvaW50ZXItZXZlbnRzLW5vbmV7cG9pbnRlci1ldmVudHM6bm9uZX0uZ3JvdXBbZGF0YS1kaXNhYmxlZD10cnVlXSAuZ3JvdXAtZGF0YS1cW2Rpc2FibGVkXD10cnVlXF1cOm9wYWNpdHktNTB7b3BhY2l0eTouNX0uZGFya1w6Ym9yZGVyLWFtYmVyLTQwMFwvNDA6aXMoLmRhcmsgKil7Ym9yZGVyLWNvbG9yOiNmYmJmMjQ2Nn0uZGFya1w6Ym9yZGVyLWlucHV0OmlzKC5kYXJrICope2JvcmRlci1jb2xvcjp2YXIoLS1pbnB1dCl9LmRhcmtcOmJnLWFtYmVyLTUwMFwvMTA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjojZjU5ZTBiMWF9LmRhcmtcOmJnLWFtYmVyLTk1MDppcyguZGFyayAqKXstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig2OSAyNiAzL3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5kYXJrXDpiZy1hbWJlci05NTBcLzQwOmlzKC5kYXJrICope2JhY2tncm91bmQtY29sb3I6IzQ1MWEwMzY2fS5kYXJrXDpiZy1ibHVlLTYwMDppcyguZGFyayAqKXstLXR3LWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigzNyA5OSAyMzUvdmFyKC0tdHctYmctb3BhY2l0eSwxKSl9LmRhcmtcOmJnLWVtZXJhbGQtNTAwXC8xMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOiMxMGI5ODExYX0uZGFya1w6YmctZW1lcmFsZC05NTA6aXMoLmRhcmsgKil7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMiA0NCAzNC92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uZGFya1w6YmctZ3JlZW4tNjAwOmlzKC5kYXJrICopey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDIyIDE2MyA3NC92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uZGFya1w6YmctbXV0ZWQ6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9LmRhcmtcOmJnLXJvc2UtNTAwXC8xMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOiNmNDNmNWUxYX0uZGFya1w6Ymctc2t5LTUwMFwvMTA6aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjojMGVhNWU5MWF9LmRhcmtcOmJnLXllbGxvdy01MDA6aXMoLmRhcmsgKil7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjM0IDE3OSA4L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5kYXJrXDpiZy15ZWxsb3ctOTAwXC8yMDppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOiM3MTNmMTIzM30uZGFya1w6YmctemluYy01MDBcLzEwOmlzKC5kYXJrICope2JhY2tncm91bmQtY29sb3I6IzcxNzE3YTFhfS5kYXJrXDp0ZXh0LWFtYmVyLTIwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTMgMjMwIDEzOC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS5kYXJrXDp0ZXh0LWFtYmVyLTIwMFwvODA6aXMoLmRhcmsgKil7Y29sb3I6I2ZkZTY4YWNjfS5kYXJrXDp0ZXh0LWFtYmVyLTMwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTIgMjExIDc3L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LmRhcmtcOnRleHQtYW1iZXItNDAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1MSAxOTEgMzYvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZGFya1w6dGV4dC1lbWVyYWxkLTMwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMTAgMjMxIDE4My92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS5kYXJrXDp0ZXh0LWVtZXJhbGQtNDAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUyIDIxMSAxNTMvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZGFya1w6dGV4dC1ncmVlbi00MDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoNzQgMjIyIDEyOC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS5kYXJrXDp0ZXh0LWdyZWVuLTUwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigzNCAxOTcgOTQvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZGFya1w6dGV4dC1vcmFuZ2UtNDAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1MSAxNDYgNjAvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZGFya1w6dGV4dC1wdXJwbGUtMzAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIxNiAxODAgMjU0L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LmRhcmtcOnRleHQtcmVkLTQwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNDggMTEzIDExMy92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS5kYXJrXDp0ZXh0LXJvc2UtMzAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1MyAxNjQgMTc1L3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LmRhcmtcOnRleHQtcm9zZS00MDA6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjUxIDExMyAxMzMvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZGFya1w6dGV4dC1za3ktMzAwOmlzKC5kYXJrICopey0tdHctdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDEyNSAyMTEgMjUyL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LmRhcmtcOnRleHQteWVsbG93LTQwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyNTAgMjA0IDIxL3ZhcigtLXR3LXRleHQtb3BhY2l0eSwxKSl9LmRhcmtcOnRleHQteWVsbG93LTUwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMzQgMTc5IDgvdmFyKC0tdHctdGV4dC1vcGFjaXR5LDEpKX0uZGFya1w6dGV4dC16aW5jLTQwMDppcyguZGFyayAqKXstLXR3LXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxNjEgMTYxIDE3MC92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS5kYXJrXDppbnZlcnQtMDppcyguZGFyayAqKXstLXR3LWludmVydDppbnZlcnQoMCk7ZmlsdGVyOnZhcigtLXR3LWJsdXIpdmFyKC0tdHctYnJpZ2h0bmVzcyl2YXIoLS10dy1jb250cmFzdCl2YXIoLS10dy1ncmF5c2NhbGUpdmFyKC0tdHctaHVlLXJvdGF0ZSl2YXIoLS10dy1pbnZlcnQpdmFyKC0tdHctc2F0dXJhdGUpdmFyKC0tdHctc2VwaWEpdmFyKC0tdHctZHJvcC1zaGFkb3cpfS5kYXJrXDpob3Zlclw6YmctYmx1ZS03MDA6aG92ZXI6aXMoLmRhcmsgKil7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjkgNzggMjE2L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5kYXJrXDpob3Zlclw6YmctZ3JlZW4tNzAwOmhvdmVyOmlzKC5kYXJrICopey0tdHctYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDIxIDEyOCA2MS92YXIoLS10dy1iZy1vcGFjaXR5LDEpKX0uZGFya1w6aG92ZXJcOmJnLXllbGxvdy02MDA6aG92ZXI6aXMoLmRhcmsgKil7LS10dy1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAyIDEzOCA0L3ZhcigtLXR3LWJnLW9wYWNpdHksMSkpfS5kYXJrXDpob3Zlclw6dGV4dC1hbWJlci0zMDA6aG92ZXI6aXMoLmRhcmsgKil7LS10dy10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjUyIDIxMSA3Ny92YXIoLS10dy10ZXh0LW9wYWNpdHksMSkpfS5kYXJrXDpkYXRhLVxbc3RhdGVcPWNoZWNrZWRcXVw6YmctcHJpbWFyeS1mb3JlZ3JvdW5kW2RhdGEtc3RhdGU9Y2hlY2tlZF06aXMoLmRhcmsgKil7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5LWZvcmVncm91bmQpfS5kYXJrXDpkYXRhLVxbc3RhdGVcPXVuY2hlY2tlZFxdXDpiZy1mb3JlZ3JvdW5kW2RhdGEtc3RhdGU9dW5jaGVja2VkXTppcyguZGFyayAqKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvcmVncm91bmQpfUBtZWRpYSAobWluLXdpZHRoOjY0MHB4KXsuc21cOmNvbC1zcGFuLTJ7Z3JpZC1jb2x1bW46c3BhbiAyL3NwYW4gMn0uc21cOm10LTB7bWFyZ2luLXRvcDowfS5zbVw6aW5saW5le2Rpc3BsYXk6aW5saW5lfS5zbVw6aW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uc21cOmhpZGRlbntkaXNwbGF5Om5vbmV9LnNtXDp3LVxbMzAwcHhcXXt3aWR0aDozMDBweH0uc21cOnctXFs0MjBweFxde3dpZHRoOjQyMHB4fS5zbVw6bWF4LXctMnhse21heC13aWR0aDo0MnJlbX0uc21cOm1heC13LTN4bHttYXgtd2lkdGg6NDhyZW19LnNtXDptYXgtdy1cWzQyNXB4XF17bWF4LXdpZHRoOjQyNXB4fS5zbVw6bWF4LXctXFs2MDBweFxde21heC13aWR0aDo2MDBweH0uc21cOm1heC13LVxbODAwcHhcXXttYXgtd2lkdGg6ODAwcHh9LnNtXDptYXgtdy1sZ3ttYXgtd2lkdGg6MzJyZW19LnNtXDptYXgtdy1tZHttYXgtd2lkdGg6MjhyZW19LnNtXDptYXgtdy14bHttYXgtd2lkdGg6MzZyZW19LnNtXDptYXgtdy14c3ttYXgtd2lkdGg6MjByZW19LnNtXDpncmlkLWNvbHMtMntncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSl9LnNtXDpncmlkLWNvbHMtM3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDMsbWlubWF4KDAsMWZyKSl9LnNtXDpncmlkLWNvbHMtXFsxZnJfYXV0b19hdXRvX2F1dG9fYXV0b1xde2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgYXV0byBhdXRvIGF1dG8gYXV0b30uc21cOmdyaWQtY29scy1cW21heC1jb250ZW50XzFmclxde2dyaWQtdGVtcGxhdGUtY29sdW1uczptYXgtY29udGVudCAxZnJ9LnNtXDpmbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LnNtXDppdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5zbVw6anVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zbVw6anVzdGlmeS1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5zbVw6Z2FwLTJcLjV7Z2FwOi42MjVyZW19LnNtXDpnYXAteC02ey1tb3otY29sdW1uLWdhcDoxLjVyZW07Y29sdW1uLWdhcDoxLjVyZW19LnNtXDpib3JkZXItbHtib3JkZXItbGVmdC13aWR0aDoxcHh9LnNtXDpib3JkZXItYnJhbmQtYm9yZGVye2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpfS5zbVw6cGwtNntwYWRkaW5nLWxlZnQ6MS41cmVtfS5zbVw6dGV4dC1sZWZ0e3RleHQtYWxpZ246bGVmdH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5tZFw6Y29sLXNwYW4tMntncmlkLWNvbHVtbjpzcGFuIDIvc3BhbiAyfS5tZFw6Y29sLXNwYW4tNHtncmlkLWNvbHVtbjpzcGFuIDQvc3BhbiA0fS5tZFw6bWItNHttYXJnaW4tYm90dG9tOjFyZW19Lm1kXDptYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tZFw6bWItOHttYXJnaW4tYm90dG9tOjJyZW19Lm1kXDptdC0ye21hcmdpbi10b3A6LjVyZW19Lm1kXDpibG9ja3tkaXNwbGF5OmJsb2NrfS5tZFw6ZmxleHtkaXNwbGF5OmZsZXh9Lm1kXDpncmlke2Rpc3BsYXk6Z3JpZH0ubWRcOmhpZGRlbntkaXNwbGF5Om5vbmV9Lm1kXDpoLVxbMTgwcHhcXXtoZWlnaHQ6MTgwcHh9Lm1kXDpoLVxbMzUwcHhcXXtoZWlnaHQ6MzUwcHh9Lm1kXDpoLVxbY2FsY1woMTAwZHZoLTVcLjVyZW1cKVxde2hlaWdodDpjYWxjKDEwMGR2aCAtIDUuNXJlbSl9Lm1kXDpoLWF1dG97aGVpZ2h0OmF1dG99Lm1kXDp3LTY0e3dpZHRoOjE2cmVtfS5tZFw6dy1cWzQwXCVcXXt3aWR0aDo0MCV9Lm1kXDp3LVxbNDAwcHhcXXt3aWR0aDo0MDBweH0ubWRcOnctXFs2MFwlXF17d2lkdGg6NjAlfS5tZFw6bWF4LXctbWR7bWF4LXdpZHRoOjI4cmVtfS5tZFw6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS5tZFw6Z3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5tZFw6Z3JpZC1jb2xzLTR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpfS5tZFw6Z3JpZC1jb2xzLTh7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg4LG1pbm1heCgwLDFmcikpfS5tZFw6ZmxleC1yb3d7ZmxleC1kaXJlY3Rpb246cm93fS5tZFw6aXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ubWRcOmp1c3RpZnktY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm1kXDpnYXAtMTB7Z2FwOjIuNXJlbX0ubWRcOmdhcC0ze2dhcDouNzVyZW19Lm1kXDpnYXAtNHtnYXA6MXJlbX0ubWRcOmdhcC02e2dhcDoxLjVyZW19Lm1kXDpnYXAtOHtnYXA6MnJlbX0ubWRcOmdhcC14LTR7LW1vei1jb2x1bW4tZ2FwOjFyZW07Y29sdW1uLWdhcDoxcmVtfS5tZFw6c3BhY2UteS0wPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdHctc3BhY2UteS1yZXZlcnNlOjA7bWFyZ2luLXRvcDpjYWxjKDBweCpjYWxjKDEgLSB2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKDBweCp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0ubWRcOnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxcmVtKmNhbGMoMSAtIHZhcigtLXR3LXNwYWNlLXktcmV2ZXJzZSkpKTttYXJnaW4tYm90dG9tOmNhbGMoMXJlbSp2YXIoLS10dy1zcGFjZS15LXJldmVyc2UpKX0ubWRcOnNwYWNlLXktNj46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXR3LXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjVyZW0qY2FsYygxIC0gdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjVyZW0qdmFyKC0tdHctc3BhY2UteS1yZXZlcnNlKSl9Lm1kXDpib3JkZXItYi0we2JvcmRlci1ib3R0b20td2lkdGg6MH0ubWRcOmJvcmRlci1ye2JvcmRlci1yaWdodC13aWR0aDoxcHh9Lm1kXDpwLTB7cGFkZGluZzowfS5tZFw6cC00e3BhZGRpbmc6MXJlbX0ubWRcOnAtNntwYWRkaW5nOjEuNXJlbX0ubWRcOnAtOHtwYWRkaW5nOjJyZW19Lm1kXDpweC0ye3BhZGRpbmctbGVmdDouNXJlbTtwYWRkaW5nLXJpZ2h0Oi41cmVtfS5tZFw6cHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19Lm1kXDpweC02e3BhZGRpbmctbGVmdDoxLjVyZW07cGFkZGluZy1yaWdodDoxLjVyZW19Lm1kXDpweC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ubWRcOnB5LTF7cGFkZGluZy10b3A6LjI1cmVtO3BhZGRpbmctYm90dG9tOi4yNXJlbX0ubWRcOnB5LTR7cGFkZGluZy10b3A6MXJlbTtwYWRkaW5nLWJvdHRvbToxcmVtfS5tZFw6cHktNntwYWRkaW5nLXRvcDoxLjVyZW07cGFkZGluZy1ib3R0b206MS41cmVtfS5tZFw6dGV4dC0yeGx7Zm9udC1zaXplOjEuNXJlbTtsaW5lLWhlaWdodDoycmVtfS5tZFw6dGV4dC0zeGx7Zm9udC1zaXplOjEuODc1cmVtO2xpbmUtaGVpZ2h0OjIuMjVyZW19Lm1kXDp0ZXh0LWJhc2V7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MS41cmVtfS5tZFw6dGV4dC1sZ3tmb250LXNpemU6MS4xMjVyZW07bGluZS1oZWlnaHQ6MS43NXJlbX0ubWRcOnRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0ubWRcOnRleHQteGx7Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MS43NXJlbX19QG1lZGlhIChtaW4td2lkdGg6MTAyNHB4KXsubGdcOnctXFs1MDBweFxde3dpZHRoOjUwMHB4fS5sZ1w6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS5sZ1w6Z3JpZC1jb2xzLTN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLG1pbm1heCgwLDFmcikpfS5sZ1w6Z3JpZC1jb2xzLTR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpfS5sZ1w6Z3JpZC1jb2xzLVxbMmZyXzFmclxde2dyaWQtdGVtcGxhdGUtY29sdW1uczoyZnIgMWZyfS5sZ1w6cC0we3BhZGRpbmc6MH0ubGdcOnAtOHtwYWRkaW5nOjJyZW19LmxnXDpweC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ubGdcOnB5LTh7cGFkZGluZy10b3A6MnJlbTtwYWRkaW5nLWJvdHRvbToycmVtfX1AbWVkaWEgKG1pbi13aWR0aDoxMjgwcHgpey54bFw6Z3JpZC1jb2xzLTJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpfS54bFw6Z3JpZC1jb2xzLTR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LG1pbm1heCgwLDFmcikpfX0uXFtcJlw6XDotd2Via2l0LWRldGFpbHMtbWFya2VyXF1cOmhpZGRlbjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlcntkaXNwbGF5Om5vbmV9LlxbXCZcOmhhc1woXD5cLmRheS1yYW5nZS1lbmRcKVxdXDpyb3VuZGVkLXItbWQ6aGFzKD4uZGF5LXJhbmdlLWVuZCl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpfS5cW1wmXDpoYXNcKFw+XC5kYXktcmFuZ2Utc3RhcnRcKVxdXDpyb3VuZGVkLWwtbWQ6aGFzKD4uZGF5LXJhbmdlLXN0YXJ0KXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpfS5cW1wmXDpoYXNcKFxbYXJpYS1zZWxlY3RlZFxdXClcXVw6cm91bmRlZC1tZDpoYXMoW2FyaWEtc2VsZWN0ZWRdKXtib3JkZXItcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCl9LlxbXCZcOmhhc1woXFthcmlhLXNlbGVjdGVkXF1cKVxdXDpiZy1hY2NlbnQ6aGFzKFthcmlhLXNlbGVjdGVkXSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfS5maXJzdFw6XFtcJlw6aGFzXChcW2FyaWEtc2VsZWN0ZWRcXVwpXF1cOnJvdW5kZWQtbC1tZDpoYXMoW2FyaWEtc2VsZWN0ZWRdKTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpfS5sYXN0XDpcW1wmXDpoYXNcKFxbYXJpYS1zZWxlY3RlZFxdXClcXVw6cm91bmRlZC1yLW1kOmhhcyhbYXJpYS1zZWxlY3RlZF0pOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpfS5cW1wmXDpoYXNcKFxbYXJpYS1zZWxlY3RlZFxdXC5kYXktcmFuZ2UtZW5kXClcXVw6cm91bmRlZC1yLW1kOmhhcyhbYXJpYS1zZWxlY3RlZF0uZGF5LXJhbmdlLWVuZCl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6Y2FsYyh2YXIoLS1yYWRpdXMpIC0gMnB4KTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cykgLSAycHgpfS5cW1wmXDpoYXNcKFxbcm9sZVw9Y2hlY2tib3hcXVwpXF1cOnByLTA6aGFzKFtyb2xlPWNoZWNrYm94XSl7cGFkZGluZy1yaWdodDowfS5cW1wmXD5cW3JvbGVcPWNoZWNrYm94XF1cXVw6dHJhbnNsYXRlLXktXFsycHhcXT5bcm9sZT1jaGVja2JveF17LS10dy10cmFuc2xhdGUteToycHg7dHJhbnNmb3JtOnRyYW5zbGF0ZSh2YXIoLS10dy10cmFuc2xhdGUteCksdmFyKC0tdHctdHJhbnNsYXRlLXkpKXJvdGF0ZSh2YXIoLS10dy1yb3RhdGUpKXNrZXdYKHZhcigtLXR3LXNrZXcteCkpc2tld1kodmFyKC0tdHctc2tldy15KSlzY2FsZVgodmFyKC0tdHctc2NhbGUteCkpc2NhbGVZKHZhcigtLXR3LXNjYWxlLXkpKX0uXFtcJlw+c3BhblxdXDpsaW5lLWNsYW1wLTE+c3Bhbnstd2Via2l0LWxpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LlxbXCZcPnN2Z1xdXDpwb2ludGVyLWV2ZW50cy1ub25lPnN2Z3twb2ludGVyLWV2ZW50czpub25lfS5cW1wmXD5zdmdcXVw6c2l6ZS0zPnN2Z3t3aWR0aDouNzVyZW07aGVpZ2h0Oi43NXJlbX0uXFtcJlw+c3ZnXF1cOnNpemUtM1wuNT5zdmd7d2lkdGg6Ljg3NXJlbTtoZWlnaHQ6Ljg3NXJlbX0uXFtcJlw+c3ZnXF1cOnNpemUtND5zdmd7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbX0uXFtcJlw+c3ZnXF1cOnRyYW5zbGF0ZS15LTBcLjU+c3Zney0tdHctdHJhbnNsYXRlLXk6LjEyNXJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKHZhcigtLXR3LXRyYW5zbGF0ZS14KSx2YXIoLS10dy10cmFuc2xhdGUteSkpcm90YXRlKHZhcigtLXR3LXJvdGF0ZSkpc2tld1godmFyKC0tdHctc2tldy14KSlza2V3WSh2YXIoLS10dy1za2V3LXkpKXNjYWxlWCh2YXIoLS10dy1zY2FsZS14KSlzY2FsZVkodmFyKC0tdHctc2NhbGUteSkpfS5cW1wmXD5zdmdcXVw6dGV4dC1jdXJyZW50PnN2Z3tjb2xvcjpjdXJyZW50Q29sb3J9LlxbXCZcPnRyXF1cOmxhc3RcOmJvcmRlci1iLTA6bGFzdC1jaGlsZD50cntib3JkZXItYm90dG9tLXdpZHRoOjB9LlxbXCZcW29wZW5cXVw+c3VtbWFyeVxdXDpib3JkZXItYltvcGVuXT5zdW1tYXJ5e2JvcmRlci1ib3R0b20td2lkdGg6MXB4fS5cW1wmX1xbY21kay1ncm91cC1oZWFkaW5nXF1cXVw6cHgtMiBbY21kay1ncm91cC1oZWFkaW5nXXtwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0uXFtcJl9cW2NtZGstZ3JvdXAtaGVhZGluZ1xdXF1cOnB5LTFcLjUgW2NtZGstZ3JvdXAtaGVhZGluZ117cGFkZGluZy10b3A6LjM3NXJlbTtwYWRkaW5nLWJvdHRvbTouMzc1cmVtfS5cW1wmX1xbY21kay1ncm91cC1oZWFkaW5nXF1cXVw6dGV4dC14cyBbY21kay1ncm91cC1oZWFkaW5nXXtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LlxbXCZfXFtjbWRrLWdyb3VwLWhlYWRpbmdcXVxdXDpmb250LW1lZGl1bSBbY21kay1ncm91cC1oZWFkaW5nXXtmb250LXdlaWdodDo1MDB9LlxbXCZfXFtjbWRrLWdyb3VwLWhlYWRpbmdcXVxdXDp0ZXh0LW11dGVkLWZvcmVncm91bmQgW2NtZGstZ3JvdXAtaGVhZGluZ117Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9LlxbXCZfXFtjbWRrLWdyb3VwXF1cOm5vdFwoXFtoaWRkZW5cXVwpX1x+XFtjbWRrLWdyb3VwXF1cXVw6cHQtMCBbY21kay1ncm91cF06bm90KFtoaWRkZW5dKX5bY21kay1ncm91cF17cGFkZGluZy10b3A6MH0uXFtcJl9cW2NtZGstZ3JvdXBcXVxdXDpweC0yIFtjbWRrLWdyb3VwXXtwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0uXFtcJl9cW2NtZGstaW5wdXQtd3JhcHBlclxdX3N2Z1xdXDpoLTUgW2NtZGstaW5wdXQtd3JhcHBlcl0gc3Zne2hlaWdodDoxLjI1cmVtfS5cW1wmX1xbY21kay1pbnB1dC13cmFwcGVyXF1fc3ZnXF1cOnctNSBbY21kay1pbnB1dC13cmFwcGVyXSBzdmd7d2lkdGg6MS4yNXJlbX0uXFtcJl9cW2NtZGstaW5wdXRcXVxdXDpoLTEyIFtjbWRrLWlucHV0XXtoZWlnaHQ6M3JlbX0uXFtcJl9cW2NtZGstaXRlbVxdXF1cOnB4LTIgW2NtZGstaXRlbV17cGFkZGluZy1sZWZ0Oi41cmVtO3BhZGRpbmctcmlnaHQ6LjVyZW19LlxbXCZfXFtjbWRrLWl0ZW1cXVxdXDpweS0zIFtjbWRrLWl0ZW1de3BhZGRpbmctdG9wOi43NXJlbTtwYWRkaW5nLWJvdHRvbTouNzVyZW19LlxbXCZfXFtjbWRrLWl0ZW1cXV9zdmdcXVw6aC01IFtjbWRrLWl0ZW1dIHN2Z3toZWlnaHQ6MS4yNXJlbX0uXFtcJl9cW2NtZGstaXRlbVxdX3N2Z1xdXDp3LTUgW2NtZGstaXRlbV0gc3Zne3dpZHRoOjEuMjVyZW19LlxbXCZfXFtkYXRhLXNsb3RcPXRhYmxlLWNvbnRhaW5lclxdXF1cOm92ZXJmbG93LXZpc2libGUgW2RhdGEtc2xvdD10YWJsZS1jb250YWluZXJde292ZXJmbG93OnZpc2libGV9LlxbXCZfcFxdXDpsZWFkaW5nLXJlbGF4ZWQgcHtsaW5lLWhlaWdodDoxLjYyNX0uXFtcJl9zdmdcOm5vdFwoXFtjbGFzc1wqXD1cJ3NpemUtXCdcXVwpXF1cOnNpemUtNCBzdmc6bm90KFtjbGFzcyo9c2l6ZS1dKXt3aWR0aDoxcmVtO2hlaWdodDoxcmVtfS5cW1wmX3N2Z1w6bm90XChcW2NsYXNzXCpcPVwndGV4dC1cJ1xdXClcXVw6dGV4dC1tdXRlZC1mb3JlZ3JvdW5kIHN2Zzpub3QoW2NsYXNzKj10ZXh0LV0pe2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfS5cW1wmX3N2Z1xdXDpwb2ludGVyLWV2ZW50cy1ub25lIHN2Z3twb2ludGVyLWV2ZW50czpub25lfS5cW1wmX3N2Z1xdXDpzaHJpbmstMCBzdmd7ZmxleC1zaHJpbms6MH0uXFtcJl90clw6bGFzdC1jaGlsZFxdXDpib3JkZXItMCB0cjpsYXN0LWNoaWxke2JvcmRlci13aWR0aDowfS5cW1wmX3RyXF1cOmJvcmRlci1iIHRye2JvcmRlci1ib3R0b20td2lkdGg6MXB4fWEuXFthXCZcXVw6aG92ZXJcOmJnLWFjY2VudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCl9YS5cW2FcJlxdXDpob3Zlclw6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZDpob3Zlcntjb2xvcjp2YXIoLS1hY2NlbnQtZm9yZWdyb3VuZCl9CkBmb250LWZhY2V7Zm9udC1mYW1pbHk6c3R5cmVuZTtzcmM6dXJsKC4uL21lZGlhL25ldXJvX3N0eXJlbmVfYm9sZC1zLnAuZDYyOTY3YTAub3RmKWZvcm1hdCgib3BlbnR5cGUiKTtmb250LWRpc3BsYXk6c3dhcDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpzdHlyZW5lIEZhbGxiYWNrO3NyYzpsb2NhbChBcmlhbCk7YXNjZW50LW92ZXJyaWRlOjYzLjkxJTtkZXNjZW50LW92ZXJyaWRlOjE5Ljc0JTtsaW5lLWdhcC1vdmVycmlkZToxNi43MyU7c2l6ZS1hZGp1c3Q6MTE5LjU1JX0uc3R5cmVuZV8yMTQ4MWZjYy1tb2R1bGVfX3l5dkVLV19fY2xhc3NOYW1le2ZvbnQtZmFtaWx5OnN0eXJlbmUsc3R5cmVuZSBGYWxsYmFjaztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo3MDB9LnN0eXJlbmVfMjE0ODFmY2MtbW9kdWxlX195eXZFS1dfX3ZhcmlhYmxley0tZm9udC1zdHlyZW5lOiJzdHlyZW5lIiwic3R5cmVuZSBGYWxsYmFjayJ9CkBmb250LWZhY2V7Zm9udC1mYW1pbHk6c2lsa2E7c3JjOnVybCguLi9tZWRpYS9TaWxrYV9SZWd1bGFyLXMucC42N2Q0NTVjNC5vdGYpZm9ybWF0KCJvcGVudHlwZSIpO2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OnNpbGthO3NyYzp1cmwoLi4vbWVkaWEvU2lsa2FfQm9sZC1zLnAuNmQzY2Q1M2Eub3RmKWZvcm1hdCgib3BlbnR5cGUiKTtmb250LWRpc3BsYXk6c3dhcDtmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpzaWxrYSBGYWxsYmFjaztzcmM6bG9jYWwoQXJpYWwpO2FzY2VudC1vdmVycmlkZTo4My4zJTtkZXNjZW50LW92ZXJyaWRlOjIxLjkyJTtsaW5lLWdhcC1vdmVycmlkZTowLjAlO3NpemUtYWRqdXN0OjExNC4wNCV9LnNpbGthXzE4MjgyMGQzLW1vZHVsZV9faFM5Y3FHX19jbGFzc05hbWV7Zm9udC1mYW1pbHk6c2lsa2Esc2lsa2EgRmFsbGJhY2t9LnNpbGthXzE4MjgyMGQzLW1vZHVsZV9faFM5Y3FHX192YXJpYWJsZXstLWZvbnQtc2lsa2E6InNpbGthIiwic2lsa2EgRmFsbGJhY2sifQpAZm9udC1mYWNle2ZvbnQtZmFtaWx5OnNpbGthRmFsbGJhY2s7c3JjOnVybCguLi9tZWRpYS9uZXVyb19zaWxrYWZvbnRfcmVndWxhci1zLnAuZmU5MzMwNWIub3RmKWZvcm1hdCgib3BlbnR5cGUiKTtmb250LWRpc3BsYXk6c3dhcDtmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpzaWxrYUZhbGxiYWNrIEZhbGxiYWNrO3NyYzpsb2NhbChBcmlhbCk7YXNjZW50LW92ZXJyaWRlOjY1LjQ4JTtkZXNjZW50LW92ZXJyaWRlOjIwLjIzJTtsaW5lLWdhcC1vdmVycmlkZToxNy4xNCU7c2l6ZS1hZGp1c3Q6MTE2LjY5JX0uc2lsa2FmYWxsYmFja183ZmNhNTM4Ny1tb2R1bGVfX2hGTXREV19fY2xhc3NOYW1le2ZvbnQtZmFtaWx5OnNpbGthRmFsbGJhY2ssc2lsa2FGYWxsYmFjayBGYWxsYmFjaztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDB9LnNpbGthZmFsbGJhY2tfN2ZjYTUzODctbW9kdWxlX19oRk10RFdfX3ZhcmlhYmxley0tZm9udC1zaWxrYS1mYWxsYmFjazoic2lsa2FGYWxsYmFjayIsInNpbGthRmFsbGJhY2sgRmFsbGJhY2sifQo="}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":20,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/08dcfc3b15383cd6.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.225Z","timestamp":1785142498225,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/08dcfc3b15383cd6.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"08dcfc3b15383cd6.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"751e7da7f171d94dad078ac6292c8b77\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/08dcfc3b15383cd6.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::9pt6b-1785142498230-d365015ae363\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":85647,"size_decoded":24329,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65536), with no line terminators","md5":"751e7da7f171d94dad078ac6292c8b77","sha1":"fa2c4719c1c60fdb1d023a0de5d2c098e16aaf39","sha256":"89323de6940c0ca5dbb9459ded415e49e11d4ec884f20807abeba37370175e88","sha512":"a369b07c9b86153512873fd41ec0d7decac518a0acad52ce4991ae37926d37c34104748709d7ed5f5c7f7007a165c6cdd10f9df5042a322483f78d959ca4fab1","ssdeep":"768:4iwnmHlaAhKCKywJr8EU6KtsdDvCw4MuW1BIrbeAvrtmaP8apf647q6FYWkbZiNn:0eL54sDkuXDr0znZiOuTV7o/zTfqR","tlshash":"7983d7f936d0f8920bab45a6c07f0005f31c4d77245e78a4a3e5ddda316459ee0e2faa","first_seen":"2025-11-26T00:10:05.074391Z","last_seen":"2026-07-27T08:57:45.675962Z","times_seen":214,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDczNDcyNywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Y29tcHV0ZUNoYW5nZWRQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LGV4dHJhY3RQYXRoRnJvbUZsaWdodFJvdXRlclN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGdldFNlbGVjdGVkUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCxyPXt9KXtmb3IobGV0IG4gb2YgT2JqZWN0LnZhbHVlcyh0WzFdKSl7bGV0IHQ9blswXSxsPUFycmF5LmlzQXJyYXkodCksYT1sP3RbMV06dDshYXx8YS5zdGFydHNXaXRoKHUuUEFHRV9TRUdNRU5UX0tFWSl8fChsJiYoImMiPT09dFsyXXx8Im9jIj09PXRbMl0pP3JbdFswXV09dFsxXS5zcGxpdCgiLyIpOmwmJihyW3RbMF1dPXRbMV0pLHI9ZShuLHIpKX1yZXR1cm4gcn19fTtmb3IodmFyIGwgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDpuW2xdfSk7bGV0IGE9ZS5yKDU5MTQ2MyksdT1lLnIoODEzMjU4KSxvPWUucig3NTYwMTkpLGk9ZT0+InN0cmluZyI9PXR5cGVvZiBlPyJjaGlsZHJlbiI9PT1lPyIiOmU6ZVsxXTtmdW5jdGlvbiBjKGUpe3JldHVybiBlLnJlZHVjZSgoZSx0KT0+e2xldCByO3JldHVybiIiPT09KHQ9Ii8iPT09KHI9dClbMF0/ci5zbGljZSgxKTpyKXx8KDAsdS5pc0dyb3VwU2VnbWVudCkodCk/ZTpgJHtlfS8ke3R9YH0sIiIpfHwiLyJ9ZnVuY3Rpb24gcyhlKXtsZXQgdD1BcnJheS5pc0FycmF5KGVbMF0pP2VbMF1bMV06ZVswXTtpZih0PT09dS5ERUZBVUxUX1NFR01FTlRfS0VZfHxhLklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoZT0+dC5zdGFydHNXaXRoKGUpKSlyZXR1cm47aWYodC5zdGFydHNXaXRoKHUuUEFHRV9TRUdNRU5UX0tFWSkpcmV0dXJuIiI7bGV0IHI9W2kodCldLG49ZVsxXT8/e30sbD1uLmNoaWxkcmVuP3Mobi5jaGlsZHJlbik6dm9pZCAwO2lmKHZvaWQgMCE9PWwpci5wdXNoKGwpO2Vsc2UgZm9yKGxldFtlLHRdb2YgT2JqZWN0LmVudHJpZXMobikpe2lmKCJjaGlsZHJlbiI9PT1lKWNvbnRpbnVlO2xldCBuPXModCk7dm9pZCAwIT09biYmci5wdXNoKG4pfXJldHVybiBjKHIpfWZ1bmN0aW9uIGQoZSx0KXtsZXQgcj1mdW5jdGlvbiBlKHQscil7bGV0W24sbF09dCxbdSxjXT1yLGQ9aShuKSxmPWkodSk7aWYoYS5JTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUy5zb21lKGU9PmQuc3RhcnRzV2l0aChlKXx8Zi5zdGFydHNXaXRoKGUpKSlyZXR1cm4iIjtpZighKDAsby5tYXRjaFNlZ21lbnQpKG4sdSkpcmV0dXJuIHMocik/PyIiO2ZvcihsZXQgdCBpbiBsKWlmKGNbdF0pe2xldCByPWUobFt0XSxjW3RdKTtpZihudWxsIT09cilyZXR1cm5gJHtpKHUpfS8ke3J9YH1yZXR1cm4gbnVsbH0oZSx0KTtyZXR1cm4gbnVsbD09cnx8Ii8iPT09cj9yOmMoci5zcGxpdCgiLyIpKX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwzNDc0NDIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImhhbmRsZU11dGFibGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig3MzQ3MjcpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIHZvaWQgMCE9PWV9ZnVuY3Rpb24gYShlLHQpe2xldCByPXQuc2hvdWxkU2Nyb2xsPz8hMCxhPWUucHJldmlvdXNOZXh0VXJsLHU9ZS5uZXh0VXJsO2lmKGwodC5wYXRjaGVkVHJlZSkpe2xldCByPSgwLG4uY29tcHV0ZUNoYW5nZWRQYXRoKShlLnRyZWUsdC5wYXRjaGVkVHJlZSk7cj8oYT11LHU9cik6dXx8KHU9ZS5jYW5vbmljYWxVcmwpfXJldHVybntjYW5vbmljYWxVcmw6dC5jYW5vbmljYWxVcmw/P2UuY2Fub25pY2FsVXJsLHJlbmRlcmVkU2VhcmNoOnQucmVuZGVyZWRTZWFyY2g/P2UucmVuZGVyZWRTZWFyY2gscHVzaFJlZjp7cGVuZGluZ1B1c2g6bCh0LnBlbmRpbmdQdXNoKT90LnBlbmRpbmdQdXNoOmUucHVzaFJlZi5wZW5kaW5nUHVzaCxtcGFOYXZpZ2F0aW9uOmwodC5tcGFOYXZpZ2F0aW9uKT90Lm1wYU5hdmlnYXRpb246ZS5wdXNoUmVmLm1wYU5hdmlnYXRpb24scHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU6bCh0LnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlKT90LnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOmUucHVzaFJlZi5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZX0sZm9jdXNBbmRTY3JvbGxSZWY6e2FwcGx5OiEhciYmKCEhbCh0Py5zY3JvbGxhYmxlU2VnbWVudHMpfHxlLmZvY3VzQW5kU2Nyb2xsUmVmLmFwcGx5KSxvbmx5SGFzaENoYW5nZTp0Lm9ubHlIYXNoQ2hhbmdlfHwhMSxoYXNoRnJhZ21lbnQ6cj90Lmhhc2hGcmFnbWVudCYmIiIhPT10Lmhhc2hGcmFnbWVudD9kZWNvZGVVUklDb21wb25lbnQodC5oYXNoRnJhZ21lbnQuc2xpY2UoMSkpOmUuZm9jdXNBbmRTY3JvbGxSZWYuaGFzaEZyYWdtZW50Om51bGwsc2VnbWVudFBhdGhzOnI/dD8uc2Nyb2xsYWJsZVNlZ21lbnRzPz9lLmZvY3VzQW5kU2Nyb2xsUmVmLnNlZ21lbnRQYXRoczpbXX0sY2FjaGU6dC5jYWNoZT90LmNhY2hlOmUuY2FjaGUsdHJlZTpsKHQucGF0Y2hlZFRyZWUpP3QucGF0Y2hlZFRyZWU6ZS50cmVlLG5leHRVcmw6dSxwcmV2aW91c05leHRVcmw6YSxkZWJ1Z0luZm86dC5jb2xsZWN0ZWREZWJ1Z0luZm8/P251bGx9fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDU0ODkxOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiaXNOYXZpZ2F0aW5nVG9OZXdSb290TGF5b3V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZSh0LHIpe2xldCBuPXRbMF0sbD1yWzBdO2lmKEFycmF5LmlzQXJyYXkobikmJkFycmF5LmlzQXJyYXkobCkpe2lmKG5bMF0hPT1sWzBdfHxuWzJdIT09bFsyXSlyZXR1cm4hMH1lbHNlIGlmKG4hPT1sKXJldHVybiEwO2lmKHRbNF0pcmV0dXJuIXJbNF07aWYocls0XSlyZXR1cm4hMDtsZXQgYT1PYmplY3QudmFsdWVzKHRbMV0pWzBdLHU9T2JqZWN0LnZhbHVlcyhyWzFdKVswXTtyZXR1cm4hYXx8IXV8fGUoYSx1KX19fSksKCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNTk1ODcxLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXthYm9ydFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gUn0sbGlzdGVuRm9yRHluYW1pY1JlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sc3RhcnRQUFJOYXZpZ2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHVwZGF0ZUNhY2hlTm9kZU9uUG9wc3RhdGVSZXN0b3JhdGlvbjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHQscil7bGV0IG49clsxXSxsPXQucGFyYWxsZWxSb3V0ZXMsYT1uZXcgTWFwKGwpO2ZvcihsZXQgdCBpbiBuKXtsZXQgcj1uW3RdLHU9clswXSxvPSgwLGkuY3JlYXRlUm91dGVyQ2FjaGVLZXkpKHUpLGM9bC5nZXQodCk7aWYodm9pZCAwIT09Yyl7bGV0IG49Yy5nZXQobyk7aWYodm9pZCAwIT09bil7bGV0IGw9ZShuLHIpLHU9bmV3IE1hcChjKTt1LnNldChvLGwpLGEuc2V0KHQsdSl9fX1sZXQgdT10LnJzYyxvPXYodSkmJiJwZW5kaW5nIj09PXUuc3RhdHVzO3JldHVybntsYXp5RGF0YTpudWxsLHJzYzp1LGhlYWQ6dC5oZWFkLHByZWZldGNoSGVhZDpvP3QucHJlZmV0Y2hIZWFkOltudWxsLG51bGxdLHByZWZldGNoUnNjOm8/dC5wcmVmZXRjaFJzYzpudWxsLGxvYWRpbmc6dC5sb2FkaW5nLHBhcmFsbGVsUm91dGVzOmEsbmF2aWdhdGVkQXQ6dC5uYXZpZ2F0ZWRBdH19fX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucig4MTMyNTgpLHU9ZS5yKDc1NjAxOSksbz1lLnIoNDUxMTkxKSxpPWUucigyNzA3MjUpLGM9ZS5yKDU0ODkxOSkscz1lLnIoNzU0MDY5KSxkPXtyb3V0ZTpudWxsLG5vZGU6bnVsbCxkeW5hbWljUmVxdWVzdFRyZWU6bnVsbCxjaGlsZHJlbjpudWxsfTtmdW5jdGlvbiBmKGUsdCxyLG4sbCxjLHMsZix5LGcpe3JldHVybiBmdW5jdGlvbiBlKHQscixuLGwsYyxzLGYseSxnLFIsUCxfKXtsZXQgdj1sWzFdLG09Y1sxXSxFPW51bGwhPT1mP2ZbMV06bnVsbDtzfHwhMD09PWNbNF0mJihzPSEwKTtsZXQgYj1uLnBhcmFsbGVsUm91dGVzLFM9bmV3IE1hcChiKSxUPXt9LE89bnVsbCxqPSExLHc9e307Zm9yKGxldCBuIGluIG0pe2xldCBsLGM9bVtuXSxmPXZbbl0sTT1iLmdldChuKSxDPW51bGwhPT1FP0Vbbl06bnVsbCxBPWNbMF0sTj1QLmNvbmNhdChbbixBXSkseD0oMCxpLmNyZWF0ZVJvdXRlckNhY2hlS2V5KShBKSxMPXZvaWQgMCE9PWY/ZlswXTp2b2lkIDAsRj12b2lkIDAhPT1NP00uZ2V0KHgpOnZvaWQgMDtpZihudWxsIT09KGw9QT09PWEuREVGQVVMVF9TRUdNRU5UX0tFWT92b2lkIDAhPT1mP2Z1bmN0aW9uKGUsdCl7bGV0IHI7cmV0dXJuInJlZnJlc2giPT09dFszXT9yPXQ6KChyPXAodCx0WzFdKSlbMl09KDAsby5jcmVhdGVIcmVmRnJvbVVybCkoZSksclszXT0icmVmcmVzaCIpLHtyb3V0ZTpyLG5vZGU6bnVsbCxkeW5hbWljUmVxdWVzdFRyZWU6bnVsbCxjaGlsZHJlbjpudWxsfX0ocixmKTpoKHQsZixjLEYscyx2b2lkIDAhPT1DP0M6bnVsbCx5LGcsTixfKTpSJiYwPT09T2JqZWN0LmtleXMoY1sxXSkubGVuZ3RoP2godCxmLGMsRixzLHZvaWQgMCE9PUM/QzpudWxsLHksZyxOLF8pOnZvaWQgMCE9PWYmJnZvaWQgMCE9PUwmJigwLHUubWF0Y2hTZWdtZW50KShBLEwpJiZ2b2lkIDAhPT1GJiZ2b2lkIDAhPT1mP2UodCxyLEYsZixjLHMsQyx5LGcsUixOLF8pOmgodCxmLGMsRixzLHZvaWQgMCE9PUM/QzpudWxsLHksZyxOLF8pKSl7aWYobnVsbD09PWwucm91dGUpcmV0dXJuIGQ7bnVsbD09PU8mJihPPW5ldyBNYXApLE8uc2V0KG4sbCk7bGV0IGU9bC5ub2RlO2lmKG51bGwhPT1lKXtsZXQgdD1uZXcgTWFwKE0pO3Quc2V0KHgsZSksUy5zZXQobix0KX1sZXQgdD1sLnJvdXRlO1Rbbl09dDtsZXQgcj1sLmR5bmFtaWNSZXF1ZXN0VHJlZTtudWxsIT09cj8oaj0hMCx3W25dPXIpOndbbl09dH1lbHNlIFRbbl09Yyx3W25dPWN9aWYobnVsbD09PU8pcmV0dXJuIG51bGw7bGV0IE09e2xhenlEYXRhOm51bGwscnNjOm4ucnNjLHByZWZldGNoUnNjOm4ucHJlZmV0Y2hSc2MsaGVhZDpuLmhlYWQscHJlZmV0Y2hIZWFkOm4ucHJlZmV0Y2hIZWFkLGxvYWRpbmc6bi5sb2FkaW5nLHBhcmFsbGVsUm91dGVzOlMsbmF2aWdhdGVkQXQ6dH07cmV0dXJue3JvdXRlOnAoYyxUKSxub2RlOk0sZHluYW1pY1JlcXVlc3RUcmVlOmo/cChjLHcpOm51bGwsY2hpbGRyZW46T319KGUsdCxyLG4sbCwhMSxjLHMsZix5LFtdLGcpfWZ1bmN0aW9uIGgoZSx0LHIsbixsLGEsdSxvLGYsaCl7cmV0dXJuIWwmJih2b2lkIDA9PT10fHwoMCxjLmlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCkodCxyKSk/ZDpmdW5jdGlvbiBlKHQscixuLGwsYSx1LG8sYyl7bGV0IGQsZixoLGcsUj1yWzFdLFA9MD09PU9iamVjdC5rZXlzKFIpLmxlbmd0aDtpZih2b2lkIDAhPT1uJiZuLm5hdmlnYXRlZEF0K3MuRFlOQU1JQ19TVEFMRVRJTUVfTVM+dClkPW4ucnNjLGY9bi5sb2FkaW5nLGg9bi5oZWFkLGc9bi5uYXZpZ2F0ZWRBdDtlbHNlIGlmKG51bGw9PT1sKXJldHVybiB5KHQscixudWxsLGEsdSxvLGMpO2Vsc2UgaWYoZD1sWzBdLGY9bFsyXSxoPVA/YTpudWxsLGc9dCxsWzNdfHx1JiZQKXJldHVybiB5KHQscixsLGEsdSxvLGMpO2xldCBfPW51bGwhPT1sP2xbMV06bnVsbCx2PW5ldyBNYXAsbT12b2lkIDAhPT1uP24ucGFyYWxsZWxSb3V0ZXM6bnVsbCxFPW5ldyBNYXAobSksYj17fSxTPSExO2lmKFApYy5wdXNoKG8pO2Vsc2UgZm9yKGxldCByIGluIFIpe2xldCBuPVJbcl0sbD1udWxsIT09Xz9fW3JdOm51bGwscz1udWxsIT09bT9tLmdldChyKTp2b2lkIDAsZD1uWzBdLGY9by5jb25jYXQoW3IsZF0pLGg9KDAsaS5jcmVhdGVSb3V0ZXJDYWNoZUtleSkoZCkscD1lKHQsbix2b2lkIDAhPT1zP3MuZ2V0KGgpOnZvaWQgMCxsLGEsdSxmLGMpO3Yuc2V0KHIscCk7bGV0IHk9cC5keW5hbWljUmVxdWVzdFRyZWU7bnVsbCE9PXk/KFM9ITAsYltyXT15KTpiW3JdPW47bGV0IGc9cC5ub2RlO2lmKG51bGwhPT1nKXtsZXQgZT1uZXcgTWFwO2Uuc2V0KGgsZyksRS5zZXQocixlKX19cmV0dXJue3JvdXRlOnIsbm9kZTp7bGF6eURhdGE6bnVsbCxyc2M6ZCxwcmVmZXRjaFJzYzpudWxsLGhlYWQ6aCxwcmVmZXRjaEhlYWQ6bnVsbCxsb2FkaW5nOmYscGFyYWxsZWxSb3V0ZXM6RSxuYXZpZ2F0ZWRBdDpnfSxkeW5hbWljUmVxdWVzdFRyZWU6Uz9wKHIsYik6bnVsbCxjaGlsZHJlbjp2fX0oZSxyLG4sYSx1LG8sZixoKX1mdW5jdGlvbiBwKGUsdCl7bGV0IHI9W2VbMF0sdF07cmV0dXJuIDIgaW4gZSYmKHJbMl09ZVsyXSksMyBpbiBlJiYoclszXT1lWzNdKSw0IGluIGUmJihyWzRdPWVbNF0pLHJ9ZnVuY3Rpb24geShlLHQscixuLGwsYSx1KXtsZXQgbz1wKHQsdFsxXSk7cmV0dXJuIG9bM109InJlZmV0Y2giLHtyb3V0ZTp0LG5vZGU6ZnVuY3Rpb24gZSh0LHIsbixsLGEsdSxvKXtsZXQgYz1yWzFdLHM9bnVsbCE9PW4/blsxXTpudWxsLGQ9bmV3IE1hcDtmb3IobGV0IHIgaW4gYyl7bGV0IG49Y1tyXSxmPW51bGwhPT1zP3Nbcl06bnVsbCxoPW5bMF0scD11LmNvbmNhdChbcixoXSkseT0oMCxpLmNyZWF0ZVJvdXRlckNhY2hlS2V5KShoKSxnPWUodCxuLHZvaWQgMD09PWY/bnVsbDpmLGwsYSxwLG8pLFI9bmV3IE1hcDtSLnNldCh5LGcpLGQuc2V0KHIsUil9bGV0IGY9MD09PWQuc2l6ZTtmJiZvLnB1c2godSk7bGV0IGg9bnVsbCE9PW4/blswXTpudWxsO3JldHVybntsYXp5RGF0YTpudWxsLHBhcmFsbGVsUm91dGVzOmQscHJlZmV0Y2hSc2M6dm9pZCAwIT09aD9oOm51bGwscHJlZmV0Y2hIZWFkOmY/bDpbbnVsbCxudWxsXSxyc2M6bSgpLGhlYWQ6Zj9tKCk6bnVsbCxsb2FkaW5nOm51bGwhPT1uP25bMl0/P251bGw6bSgpLG5hdmlnYXRlZEF0OnR9fShlLHQscixuLGwsYSx1KSxkeW5hbWljUmVxdWVzdFRyZWU6byxjaGlsZHJlbjpudWxsfX1mdW5jdGlvbiBnKGUsdCl7dC50aGVuKHQ9PntpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuO2xldHtmbGlnaHREYXRhOnIsZGVidWdJbmZvOm59PXQ7Zm9yKGxldCB0IG9mIHIpe2xldHtzZWdtZW50UGF0aDpyLHRyZWU6bCxzZWVkRGF0YTphLGhlYWQ6b309dDthJiZmdW5jdGlvbihlLHQscixuLGwsYSl7bGV0IG89ZTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTIpe2xldCByPXRbZV0sbj10W2UrMV0sbD1vLmNoaWxkcmVuO2lmKG51bGwhPT1sKXtsZXQgZT1sLmdldChyKTtpZih2b2lkIDAhPT1lKXtsZXQgdD1lLnJvdXRlWzBdO2lmKCgwLHUubWF0Y2hTZWdtZW50KShuLHQpKXtvPWU7Y29udGludWV9fX1yZXR1cm59IWZ1bmN0aW9uIGUodCxyLG4sbCxhKXtpZihudWxsPT09dC5keW5hbWljUmVxdWVzdFRyZWUpcmV0dXJuO2xldCBvPXQuY2hpbGRyZW4sYz10Lm5vZGU7aWYobnVsbD09PW8pe251bGwhPT1jJiYoZnVuY3Rpb24gZSh0LHIsbixsLGEsbyl7bGV0IGM9clsxXSxzPW5bMV0sZD1sWzFdLGY9dC5wYXJhbGxlbFJvdXRlcztmb3IobGV0IHQgaW4gYyl7bGV0IHI9Y1t0XSxuPXNbdF0sbD1kW3RdLGg9Zi5nZXQodCkscD1yWzBdLHk9KDAsaS5jcmVhdGVSb3V0ZXJDYWNoZUtleSkocCksZz12b2lkIDAhPT1oP2guZ2V0KHkpOnZvaWQgMDt2b2lkIDAhPT1nJiYodm9pZCAwIT09biYmKDAsdS5tYXRjaFNlZ21lbnQpKHAsblswXSkmJm51bGwhPWw/ZShnLHIsbixsLGEsbyk6UChyLGcsbnVsbCxvKSl9bGV0IGg9dC5yc2MscD1sWzBdO251bGw9PT1oP3QucnNjPXA6dihoKSYmaC5yZXNvbHZlKHAsbyk7bGV0IHk9dC5sb2FkaW5nO2lmKHYoeSkpe2xldCBlPWxbMl07eS5yZXNvbHZlKGUsbyl9bGV0IGc9dC5oZWFkO3YoZykmJmcucmVzb2x2ZShhLG8pfShjLHQucm91dGUscixuLGwsYSksdC5keW5hbWljUmVxdWVzdFRyZWU9bnVsbCk7cmV0dXJufWxldCBzPXJbMV0sZD1uWzFdO2ZvcihsZXQgdCBpbiByKXtsZXQgcj1zW3RdLG49ZFt0XSxpPW8uZ2V0KHQpO2lmKHZvaWQgMCE9PWkpe2xldCB0PWkucm91dGVbMF07aWYoKDAsdS5tYXRjaFNlZ21lbnQpKHJbMF0sdCkmJm51bGwhPW4pcmV0dXJuIGUoaSxyLG4sbCxhKX19fShvLHIsbixsLGEpfShlLHIsbCxhLG8sbil9UihlLG51bGwsbil9LHQ9PntSKGUsdCxudWxsKX0pfWZ1bmN0aW9uIFIoZSx0LHIpe2xldCBuPWUubm9kZTtpZihudWxsPT09bilyZXR1cm47bGV0IGw9ZS5jaGlsZHJlbjtpZihudWxsPT09bClQKGUucm91dGUsbix0LHIpO2Vsc2UgZm9yKGxldCBlIG9mIGwudmFsdWVzKCkpUihlLHQscik7ZS5keW5hbWljUmVxdWVzdFRyZWU9bnVsbH1mdW5jdGlvbiBQKGUsdCxyLG4pe2xldCBsPWVbMV0sYT10LnBhcmFsbGVsUm91dGVzO2ZvcihsZXQgZSBpbiBsKXtsZXQgdD1sW2VdLHU9YS5nZXQoZSk7aWYodm9pZCAwPT09dSljb250aW51ZTtsZXQgbz10WzBdLGM9KDAsaS5jcmVhdGVSb3V0ZXJDYWNoZUtleSkobykscz11LmdldChjKTt2b2lkIDAhPT1zJiZQKHQscyxyLG4pfWxldCB1PXQucnNjO3YodSkmJihudWxsPT09cj91LnJlc29sdmUobnVsbCxuKTp1LnJlamVjdChyLG4pKTtsZXQgbz10LmxvYWRpbmc7dihvKSYmby5yZXNvbHZlKG51bGwsbik7bGV0IGM9dC5oZWFkO3YoYykmJmMucmVzb2x2ZShudWxsLG4pfWxldCBfPVN5bWJvbCgpO2Z1bmN0aW9uIHYoZSl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmZS50YWc9PT1ffWZ1bmN0aW9uIG0oKXtsZXQgZSx0LHI9W10sbj1uZXcgUHJvbWlzZSgocixuKT0+e2U9cix0PW59KTtyZXR1cm4gbi5zdGF0dXM9InBlbmRpbmciLG4ucmVzb2x2ZT0odCxsKT0+eyJwZW5kaW5nIj09PW4uc3RhdHVzJiYobi5zdGF0dXM9ImZ1bGZpbGxlZCIsbi52YWx1ZT10LG51bGwhPT1sJiZyLnB1c2guYXBwbHkocixsKSxlKHQpKX0sbi5yZWplY3Q9KGUsbCk9PnsicGVuZGluZyI9PT1uLnN0YXR1cyYmKG4uc3RhdHVzPSJyZWplY3RlZCIsbi5yZWFzb249ZSxudWxsIT09bCYmci5wdXNoLmFwcGx5KHIsbCksdChlKSl9LG4udGFnPV8sbi5fZGVidWdJbmZvPXIsbn0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1MjI3NDQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkhhc0xvYWRpbmdCb3VuZGFyeSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSk7dmFyIG4sbD0oKG49e30pW24uU2VnbWVudEhhc0xvYWRpbmdCb3VuZGFyeT0xXT0iU2VnbWVudEhhc0xvYWRpbmdCb3VuZGFyeSIsbltuLlN1YnRyZWVIYXNMb2FkaW5nQm91bmRhcnk9Ml09IlN1YnRyZWVIYXNMb2FkaW5nQm91bmRhcnkiLG5bbi5TdWJ0cmVlSGFzTm9Mb2FkaW5nQm91bmRhcnk9M109IlN1YnRyZWVIYXNOb0xvYWRpbmdCb3VuZGFyeSIsbil9LDUwOTM5NiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbixsLGEsdT17RmV0Y2hTdHJhdGVneTpmdW5jdGlvbigpe3JldHVybiBzfSxOYXZpZ2F0aW9uUmVzdWx0VGFnOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LFByZWZldGNoUHJpb3JpdHk6ZnVuY3Rpb24oKXtyZXR1cm4gY319O2Zvcih2YXIgbyBpbiB1KU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0OnVbb119KTt2YXIgaT0oKG49e30pW24uTVBBPTBdPSJNUEEiLG5bbi5TdWNjZXNzPTFdPSJTdWNjZXNzIixuW24uTm9PcD0yXT0iTm9PcCIsbltuLkFzeW5jPTNdPSJBc3luYyIsbiksYz0oKGw9e30pW2wuSW50ZW50PTJdPSJJbnRlbnQiLGxbbC5EZWZhdWx0PTFdPSJEZWZhdWx0IixsW2wuQmFja2dyb3VuZD0wXT0iQmFja2dyb3VuZCIsbCkscz0oKGE9e30pW2EuTG9hZGluZ0JvdW5kYXJ5PTBdPSJMb2FkaW5nQm91bmRhcnkiLGFbYS5QUFI9MV09IlBQUiIsYVthLlBQUlJ1bnRpbWU9Ml09IlBQUlJ1bnRpbWUiLGFbYS5GdWxsPTNdPSJGdWxsIixhKTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwzNzM4NjEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2RlbGV0ZUZyb21McnU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sbHJ1UHV0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LHVwZGF0ZUxydVNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgbCBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGwse2VudW1lcmFibGU6ITAsZ2V0Om5bbF19KTtsZXQgYT1lLnIoNTExKSx1PW51bGwsbz0hMSxpPTA7ZnVuY3Rpb24gYyhlKXtpZih1PT09ZSlyZXR1cm47bGV0IHQ9ZS5wcmV2LHI9ZS5uZXh0O2lmKG51bGw9PT1yfHxudWxsPT09dD8oaSs9ZS5zaXplLGYoKSk6KHQubmV4dD1yLHIucHJldj10KSxudWxsPT09dSllLnByZXY9ZSxlLm5leHQ9ZTtlbHNle2xldCB0PXUucHJldjtlLnByZXY9dCxudWxsIT09dCYmKHQubmV4dD1lKSxlLm5leHQ9dSx1LnByZXY9ZX11PWV9ZnVuY3Rpb24gcyhlLHQpe2xldCByPWUuc2l6ZTtlLnNpemU9dCxudWxsIT09ZS5uZXh0JiYoaT1pLXIrdCxmKCkpfWZ1bmN0aW9uIGQoZSl7bGV0IHQ9ZS5uZXh0LHI9ZS5wcmV2O251bGwhPT10JiZudWxsIT09ciYmKGktPWUuc2l6ZSxlLm5leHQ9bnVsbCxlLnByZXY9bnVsbCx1PT09ZT91PXQ9PT11P251bGw6dDooci5uZXh0PXQsdC5wcmV2PXIpKX1mdW5jdGlvbiBmKCl7b3x8aTw9MHgzMjAwMDAwfHwobz0hMCxwKGgpKX1mdW5jdGlvbiBoKCl7bz0hMTtmb3IoO2k+MHgyZDAwMDAwJiZudWxsIT09dTspe2xldCBlPXUucHJldjtudWxsIT09ZSYmKDAsYS5kZWxldGVGcm9tQ2FjaGVNYXApKGUudmFsdWUpfX1sZXQgcD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdElkbGVDYWxsYmFjaz9yZXF1ZXN0SWRsZUNhbGxiYWNrOmU9PnNldFRpbWVvdXQoZSwwKTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1MTEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0ZhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGNyZWF0ZUNhY2hlTWFwOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGRlbGV0ZUZyb21DYWNoZU1hcDpmdW5jdGlvbigpe3JldHVybiBwfSxnZXRGcm9tQ2FjaGVNYXA6ZnVuY3Rpb24oKXtyZXR1cm4gY30saXNWYWx1ZUV4cGlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gc30sc2V0SW5DYWNoZU1hcDpmdW5jdGlvbigpe3JldHVybiBkfSxzZXRTaXplSW5DYWNoZU1hcDpmdW5jdGlvbigpe3JldHVybiBnfX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucigzNzM4NjEpLHU9e30sbz17fTtmdW5jdGlvbiBpKCl7cmV0dXJue3BhcmVudDpudWxsLGtleTpudWxsLHZhbHVlOm51bGwsbWFwOm51bGwscHJldjpudWxsLG5leHQ6bnVsbCxzaXplOjB9fWZ1bmN0aW9uIGMoZSx0LHIsbixsKXtsZXQgaT1mdW5jdGlvbiBlKHQscixuLGwsYSxpKXtsZXQgYyxkO2lmKG51bGwhPT1sKWM9bC52YWx1ZSxkPWwucGFyZW50O2Vsc2UgaWYoYSYmaSE9PW8pYz1vLGQ9bnVsbDtlbHNlIHJldHVybiBudWxsPT09bi52YWx1ZT9uOnModCxyLG4udmFsdWUpPyh5KG4pLG51bGwpOm47bGV0IGY9bi5tYXA7aWYobnVsbCE9PWYpe2xldCBuPWYuZ2V0KGMpO2lmKHZvaWQgMCE9PW4pe2xldCBsPWUodCxyLG4sZCxhLGMpO2lmKG51bGwhPT1sKXJldHVybiBsfWxldCBsPWYuZ2V0KHUpO2lmKHZvaWQgMCE9PWwpcmV0dXJuIGUodCxyLGwsZCxhLGMpfXJldHVybiBudWxsfShlLHQscixuLGwsMCk7cmV0dXJuIG51bGw9PT1pfHxudWxsPT09aS52YWx1ZT9udWxsOigoMCxhLmxydVB1dCkoaSksaS52YWx1ZSl9ZnVuY3Rpb24gcyhlLHQscil7cmV0dXJuIHIuc3RhbGVBdDw9ZXx8ci52ZXJzaW9uPHR9ZnVuY3Rpb24gZChlLHQscixuKXtsZXQgbD1mdW5jdGlvbihlLHQscil7bGV0IG49ZSxsPXQsYT1udWxsO2Zvcig7Oyl7bGV0IGU9YTtpZihudWxsIT09bClhPWwudmFsdWUsbD1sLnBhcmVudDtlbHNlIGlmKHImJmUhPT1vKXtpZihudWxsPT09bi52YWx1ZSlyZXR1cm4gbjthPW99ZWxzZSBicmVhaztsZXQgdD1uLm1hcDtpZihudWxsIT09dCl7bGV0IGU9dC5nZXQoYSk7aWYodm9pZCAwIT09ZSl7bj1lO2NvbnRpbnVlfX1lbHNlIHQ9bmV3IE1hcCxuLm1hcD10O2xldCB1PXtwYXJlbnQ6bixrZXk6YSx2YWx1ZTpudWxsLG1hcDpudWxsLHByZXY6bnVsbCxuZXh0Om51bGwsc2l6ZTowfTt0LnNldChhLHUpLG49dX1yZXR1cm4gbn0oZSx0LG4pO2YobCxyKSwoMCxhLmxydVB1dCkobCksKDAsYS51cGRhdGVMcnVTaXplKShsLHIuc2l6ZSl9ZnVuY3Rpb24gZihlLHQpe2lmKG51bGwhPT1lLnZhbHVlKWUudmFsdWUucmVmPW51bGwsZS52YWx1ZT1udWxsLGgoZSx0KTtlbHNlIGgoZSx0KX1mdW5jdGlvbiBoKGUsdCl7bGV0IHI9dC5yZWY7ZS52YWx1ZT10LHQucmVmPWUsKDAsYS51cGRhdGVMcnVTaXplKShlLHQuc2l6ZSksbnVsbCE9PXImJnIhPT1lJiZyLnZhbHVlPT09dCYmeShyKX1mdW5jdGlvbiBwKGUpe2xldCB0PWUucmVmO251bGwhPT10JiYoZS5yZWY9bnVsbCx5KHQpKX1mdW5jdGlvbiB5KGUpe2UudmFsdWU9bnVsbCwoMCxhLmRlbGV0ZUZyb21McnUpKGUpO2xldCB0PWUubWFwO2lmKG51bGw9PT10KXtsZXQgdD1lLnBhcmVudCxyPWUua2V5O2Zvcig7bnVsbCE9PXQ7KXtsZXQgZT10Lm1hcDtpZihudWxsIT09ZSYmKGUuZGVsZXRlKHIpLDA9PT1lLnNpemUpJiYodC5tYXA9bnVsbCxudWxsPT09dC52YWx1ZSkpe3I9dC5rZXksdD10LnBhcmVudDtjb250aW51ZX1icmVha319ZWxzZXtsZXQgcj10LmdldChvKTt2b2lkIDAhPT1yJiZudWxsIT09ci52YWx1ZSYmZihlLHIudmFsdWUpfX1mdW5jdGlvbiBnKGUsdCl7bGV0IHI9ZS5yZWY7bnVsbCE9PXImJihlLnNpemU9dCwoMCxhLnVwZGF0ZUxydVNpemUpKHIsdCkpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDg1NjY1NSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17YXBwZW5kTGF5b3V0VmFyeVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gc30sY2xvbmVQYWdlVmFyeVBhdGhXaXRoTmV3U2VhcmNoUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LGZpbmFsaXplTGF5b3V0VmFyeVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZmluYWxpemVNZXRhZGF0YVZhcnlQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGZpbmFsaXplUGFnZVZhcnlQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGdldEZ1bGZpbGxlZFJvdXRlVmFyeVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gY30sZ2V0Um91dGVWYXJ5UGF0aDpmdW5jdGlvbigpe3JldHVybiBpfSxnZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHB9fTtmb3IodmFyIGwgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDpuW2xdfSk7bGV0IGE9ZS5yKDUwOTM5NiksdT1lLnIoNTExKSxvPWUucig3Njc3NjQpO2Z1bmN0aW9uIGkoZSx0LHIpe3JldHVybnt2YWx1ZTplLHBhcmVudDp7dmFsdWU6dCxwYXJlbnQ6e3ZhbHVlOnIscGFyZW50Om51bGx9fX19ZnVuY3Rpb24gYyhlLHQscixuKXtyZXR1cm57dmFsdWU6ZSxwYXJlbnQ6e3ZhbHVlOnQscGFyZW50Ont2YWx1ZTpuP3I6dS5GYWxsYmFjayxwYXJlbnQ6bnVsbH19fX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJue3ZhbHVlOnQscGFyZW50OmV9fWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm57dmFsdWU6ZSxwYXJlbnQ6dH19ZnVuY3Rpb24gZihlLHQscil7cmV0dXJue3ZhbHVlOmUscGFyZW50Ont2YWx1ZTp0LHBhcmVudDpyfX19ZnVuY3Rpb24gaChlLHQscil7cmV0dXJue3ZhbHVlOmUrby5IRUFEX1JFUVVFU1RfS0VZLHBhcmVudDp7dmFsdWU6dCxwYXJlbnQ6cn19fWZ1bmN0aW9uIHAoZSx0KXtsZXQgcj10LnZhcnlQYXRoO2lmKHQuaXNQYWdlJiZlIT09YS5GZXRjaFN0cmF0ZWd5LkZ1bGwmJmUhPT1hLkZldGNoU3RyYXRlZ3kuUFBSUnVudGltZSl7bGV0IGU9ci5wYXJlbnQucGFyZW50O3JldHVybnt2YWx1ZTpyLnZhbHVlLHBhcmVudDp7dmFsdWU6dS5GYWxsYmFjayxwYXJlbnQ6ZX19fXJldHVybiByfWZ1bmN0aW9uIHkoZSx0KXtsZXQgcj1lLnBhcmVudDtyZXR1cm57dmFsdWU6ZS52YWx1ZSxwYXJlbnQ6e3ZhbHVlOnQscGFyZW50OnIucGFyZW50fX19KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNDc3MDQ4LChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2xldCByPW5ldyBVUkwoZSk7cmV0dXJue3BhdGhuYW1lOnIucGF0aG5hbWUsc2VhcmNoOnIuc2VhcmNoLG5leHRVcmw6dH19T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJjcmVhdGVDYWNoZUtleSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksKCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzc3NzA5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjYW5jZWxQcmVmZXRjaFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gbX0saXNQcmVmZXRjaFRhc2tEaXJ0eTpmdW5jdGlvbigpe3JldHVybiBifSxwaW5nUHJlZmV0Y2hUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIE19LHJlc2NoZWR1bGVQcmVmZXRjaFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sc2NoZWR1bGVQcmVmZXRjaFRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sc3RhcnRSZXZhbGlkYXRpb25Db29sZG93bjpmdW5jdGlvbigpe3JldHVybiBffX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucig1MjI3NDQpLHU9ZS5yKDc1NjAxOSksbz1lLnIoNjIwODk2KSxpPWUucig4NTY2NTUpLGM9ZS5yKDQ3NzA0OCkscz1lLnIoNTA5Mzk2KSxkPWUucig4MTMyNTgpLGY9ImZ1bmN0aW9uIj09dHlwZW9mIHF1ZXVlTWljcm90YXNrP3F1ZXVlTWljcm90YXNrOmU9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oZSkuY2F0Y2goZT0+c2V0VGltZW91dCgoKT0+e3Rocm93IGV9KSksaD1bXSxwPTAseT0wLGc9ITEsUj1udWxsLFA9bnVsbDtmdW5jdGlvbiBfKCl7bnVsbCE9PVAmJmNsZWFyVGltZW91dChQKSxQPXNldFRpbWVvdXQoKCk9PntQPW51bGwsVCgpfSwzMDApfWZ1bmN0aW9uIHYoZSx0LHIsbixsKXtsZXQgYT17a2V5OmUsdHJlZUF0VGltZU9mUHJlZmV0Y2g6dCxjYWNoZVZlcnNpb246KDAsby5nZXRDdXJyZW50Q2FjaGVWZXJzaW9uKSgpLHByaW9yaXR5Om4scGhhc2U6MSxoYXNCYWNrZ3JvdW5kV29yazohMSxzcGF3bmVkUnVudGltZVByZWZldGNoZXM6bnVsbCxmZXRjaFN0cmF0ZWd5OnIsc29ydElkOnkrKyxpc0NhbmNlbGVkOiExLG9uSW52YWxpZGF0ZTpsLF9oZWFwSW5kZXg6LTF9O3JldHVybiBTKGEpLEIoaCxhKSxUKCksYX1mdW5jdGlvbiBtKGUpe2UuaXNDYW5jZWxlZD0hMCxmdW5jdGlvbihlLHQpe2xldCByPXQuX2hlYXBJbmRleDtpZigtMSE9PXImJih0Ll9oZWFwSW5kZXg9LTEsMCE9PWUubGVuZ3RoKSl7bGV0IG49ZS5wb3AoKTtuIT09dCYmKGVbcl09bixuLl9oZWFwSW5kZXg9cixHKGUsbixyKSl9fShoLGUpfWZ1bmN0aW9uIEUoZSx0LHIsbil7ZS5pc0NhbmNlbGVkPSExLGUucGhhc2U9MSxlLnNvcnRJZD15KyssZS5wcmlvcml0eT1lPT09Uj9zLlByZWZldGNoUHJpb3JpdHkuSW50ZW50Om4sZS50cmVlQXRUaW1lT2ZQcmVmZXRjaD10LGUuZmV0Y2hTdHJhdGVneT1yLFMoZSksLTEhPT1lLl9oZWFwSW5kZXg/SyhoLGUpOkIoaCxlKSxUKCl9ZnVuY3Rpb24gYihlLHQscil7bGV0IG49KDAsby5nZXRDdXJyZW50Q2FjaGVWZXJzaW9uKSgpO3JldHVybiBlLmNhY2hlVmVyc2lvbiE9PW58fGUudHJlZUF0VGltZU9mUHJlZmV0Y2ghPT1yfHxlLmtleS5uZXh0VXJsIT09dH1mdW5jdGlvbiBTKGUpe2UucHJpb3JpdHk9PT1zLlByZWZldGNoUHJpb3JpdHkuSW50ZW50JiZlIT09UiYmKG51bGwhPT1SJiZSLnByaW9yaXR5IT09cy5QcmVmZXRjaFByaW9yaXR5LkJhY2tncm91bmQmJihSLnByaW9yaXR5PXMuUHJlZmV0Y2hQcmlvcml0eS5EZWZhdWx0LEsoaCxSKSksUj1lKX1mdW5jdGlvbiBUKCl7Z3x8KGc9ITAsZihDKSl9ZnVuY3Rpb24gTyhlKXtyZXR1cm4gbnVsbD09PVAmJihlLnByaW9yaXR5PT09cy5QcmVmZXRjaFByaW9yaXR5LkludGVudD9wPDEyOnA8NCl9ZnVuY3Rpb24gaihlKXtyZXR1cm4gcCsrLGUudGhlbihlPT5udWxsPT09ZT8odygpLG51bGwpOihlLmNsb3NlZC50aGVuKHcpLGUudmFsdWUpKX1mdW5jdGlvbiB3KCl7cC0tLFQoKX1mdW5jdGlvbiBNKGUpe2UuaXNDYW5jZWxlZHx8LTEhPT1lLl9oZWFwSW5kZXh8fChCKGgsZSksVCgpKX1mdW5jdGlvbiBDKCl7Zz0hMTtsZXQgZT1EYXRlLm5vdygpLHQ9VihoKTtmb3IoO251bGwhPT10JiZPKHQpOyl7dC5jYWNoZVZlcnNpb249KDAsby5nZXRDdXJyZW50Q2FjaGVWZXJzaW9uKSgpO2xldCByPWZ1bmN0aW9uKGUsdCl7bGV0IHI9dC5rZXksbj0oMCxvLnJlYWRPckNyZWF0ZVJvdXRlQ2FjaGVFbnRyeSkoZSx0LHIpLGw9ZnVuY3Rpb24oZSx0LHIpe3N3aXRjaChyLnN0YXR1cyl7Y2FzZSBvLkVudHJ5U3RhdHVzLkVtcHR5OmooKDAsby5mZXRjaFJvdXRlT25DYWNoZU1pc3MpKHIsdCx0LmtleSkpLHIuc3RhbGVBdD1lKzZlNCxyLnN0YXR1cz1vLkVudHJ5U3RhdHVzLlBlbmRpbmc7Y2FzZSBvLkVudHJ5U3RhdHVzLlBlbmRpbmc6e2xldCBlPXIuYmxvY2tlZFRhc2tzO3JldHVybiBudWxsPT09ZT9yLmJsb2NrZWRUYXNrcz1uZXcgU2V0KFt0XSk6ZS5hZGQodCksMX1jYXNlIG8uRW50cnlTdGF0dXMuUmVqZWN0ZWQ6YnJlYWs7Y2FzZSBvLkVudHJ5U3RhdHVzLkZ1bGZpbGxlZDp7aWYoMCE9PXQucGhhc2UpcmV0dXJuIDI7aWYoIU8odCkpcmV0dXJuIDA7bGV0IGk9ci50cmVlLGM9dC5mZXRjaFN0cmF0ZWd5PT09cy5GZXRjaFN0cmF0ZWd5LlBQUj9yLmlzUFBSRW5hYmxlZD9zLkZldGNoU3RyYXRlZ3kuUFBSOnMuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnk6dC5mZXRjaFN0cmF0ZWd5O3N3aXRjaChjKXtjYXNlIHMuRmV0Y2hTdHJhdGVneS5QUFI6e3ZhciBuLGwsdTtpZihMKG49ZSxsPXQsdT1yLCgwLG8ucmVhZE9yQ3JlYXRlU2VnbWVudENhY2hlRW50cnkpKG4scy5GZXRjaFN0cmF0ZWd5LlBQUix1LHUubWV0YWRhdGEpLGwua2V5LHUubWV0YWRhdGEpLDA9PT1mdW5jdGlvbiBlKHQscixuLGwsYSl7bGV0IHU9KDAsby5yZWFkT3JDcmVhdGVTZWdtZW50Q2FjaGVFbnRyeSkodCxyLmZldGNoU3RyYXRlZ3ksbixhKTtMKHQscixuLHUsci5rZXksYSk7bGV0IGk9bFsxXSxjPWEuc2xvdHM7aWYobnVsbCE9PWMpZm9yKGxldCBsIGluIGMpe2lmKCFPKHIpKXJldHVybiAwO2xldCBhPWNbbF0sdT1hLnNlZ21lbnQscz1pW2xdLGQ9cz8uWzBdO2lmKDA9PT0odm9pZCAwIT09ZCYmayhuLHUsZCk/ZSh0LHIsbixzLGEpOmZ1bmN0aW9uIGUodCxyLG4sbCl7aWYobC5oYXNSdW50aW1lUHJlZmV0Y2gpcmV0dXJuIG51bGw9PT1yLnNwYXduZWRSdW50aW1lUHJlZmV0Y2hlcz9yLnNwYXduZWRSdW50aW1lUHJlZmV0Y2hlcz1uZXcgU2V0KFtsLnJlcXVlc3RLZXldKTpyLnNwYXduZWRSdW50aW1lUHJlZmV0Y2hlcy5hZGQobC5yZXF1ZXN0S2V5KSwyO2xldCBhPSgwLG8ucmVhZE9yQ3JlYXRlU2VnbWVudENhY2hlRW50cnkpKHQsci5mZXRjaFN0cmF0ZWd5LG4sbCk7aWYoTCh0LHIsbixhLHIua2V5LGwpLG51bGwhPT1sLnNsb3RzKXtpZighTyhyKSlyZXR1cm4gMDtmb3IobGV0IGEgaW4gbC5zbG90cylpZigwPT09ZSh0LHIsbixsLnNsb3RzW2FdKSlyZXR1cm4gMH1yZXR1cm4gMn0odCxyLG4sYSkpKXJldHVybiAwfXJldHVybiAyfShlLHQscix0LnRyZWVBdFRpbWVPZlByZWZldGNoLGkpKXJldHVybiAwO2xldCBhPXQuc3Bhd25lZFJ1bnRpbWVQcmVmZXRjaGVzO2lmKG51bGwhPT1hKXtsZXQgbj1uZXcgTWFwO04oZSx0LHIsbixzLkZldGNoU3RyYXRlZ3kuUFBSUnVudGltZSk7bGV0IGw9ZnVuY3Rpb24gZSh0LHIsbixsLGEsdSl7aWYoYS5oYXMobC5yZXF1ZXN0S2V5KSlyZXR1cm4geCh0LHIsbixsLCExLHUscy5GZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWUpO2xldCBvPXt9LGk9bC5zbG90cztpZihudWxsIT09aSlmb3IobGV0IGwgaW4gaSl7bGV0IGM9aVtsXTtvW2xdPWUodCxyLG4sYyxhLHUpfXJldHVybltsLnNlZ21lbnQsbyxudWxsLG51bGxdfShlLHQscixpLGEsbik7bi5zaXplPjAmJmooKDAsby5mZXRjaFNlZ21lbnRQcmVmZXRjaGVzVXNpbmdEeW5hbWljUmVxdWVzdCkodCxyLHMuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lLGwsbikpfXJldHVybiAyfWNhc2Ugcy5GZXRjaFN0cmF0ZWd5LkZ1bGw6Y2FzZSBzLkZldGNoU3RyYXRlZ3kuUFBSUnVudGltZTpjYXNlIHMuRmV0Y2hTdHJhdGVneS5Mb2FkaW5nQm91bmRhcnk6e2xldCBuPW5ldyBNYXA7TihlLHQscixuLGMpO2xldCBsPWZ1bmN0aW9uIGUodCxyLG4sbCx1LGksYyl7bGV0IGQ9bFsxXSxmPXUuc2xvdHMsaD17fTtpZihudWxsIT09Zilmb3IobGV0IGwgaW4gZil7bGV0IHU9ZltsXSxwPXUuc2VnbWVudCx5PWRbbF0sZz15Py5bMF07aWYodm9pZCAwIT09ZyYmayhuLHAsZykpe2xldCBhPWUodCxyLG4seSx1LGksYyk7aFtsXT1hfWVsc2Ugc3dpdGNoKGMpe2Nhc2Ugcy5GZXRjaFN0cmF0ZWd5LkxvYWRpbmdCb3VuZGFyeTp7bGV0IGU9dS5oYXNMb2FkaW5nQm91bmRhcnkhPT1hLkhhc0xvYWRpbmdCb3VuZGFyeS5TdWJ0cmVlSGFzTm9Mb2FkaW5nQm91bmRhcnk/ZnVuY3Rpb24gZSh0LHIsbixsLHUsaSl7bGV0IGM9bnVsbD09PXU/Imluc2lkZS1zaGFyZWQtbGF5b3V0IjpudWxsLGQ9KDAsby5yZWFkT3JDcmVhdGVTZWdtZW50Q2FjaGVFbnRyeSkodCxyLmZldGNoU3RyYXRlZ3ksbixsKTtzd2l0Y2goZC5zdGF0dXMpe2Nhc2Ugby5FbnRyeVN0YXR1cy5FbXB0eTppLnNldChsLnJlcXVlc3RLZXksKDAsby51cGdyYWRlVG9QZW5kaW5nU2VnbWVudCkoZCxzLkZldGNoU3RyYXRlZ3kuTG9hZGluZ0JvdW5kYXJ5KSksInJlZmV0Y2giIT09dSYmKGM9dT0icmVmZXRjaCIpO2JyZWFrO2Nhc2Ugby5FbnRyeVN0YXR1cy5GdWxmaWxsZWQ6aWYobC5oYXNMb2FkaW5nQm91bmRhcnk9PT1hLkhhc0xvYWRpbmdCb3VuZGFyeS5TZWdtZW50SGFzTG9hZGluZ0JvdW5kYXJ5KXJldHVybigwLG8uY29udmVydFJvdXRlVHJlZVRvRmxpZ2h0Um91dGVyU3RhdGUpKGwpO2Nhc2Ugby5FbnRyeVN0YXR1cy5QZW5kaW5nOmNhc2Ugby5FbnRyeVN0YXR1cy5SZWplY3RlZDp9bGV0IGY9e307aWYobnVsbCE9PWwuc2xvdHMpZm9yKGxldCBhIGluIGwuc2xvdHMpe2xldCBvPWwuc2xvdHNbYV07ZlthXT1lKHQscixuLG8sdSxpKX1yZXR1cm5bbC5zZWdtZW50LGYsbnVsbCxjLGwuaXNSb290TGF5b3V0XX0odCxyLG4sdSxudWxsLGkpOigwLG8uY29udmVydFJvdXRlVHJlZVRvRmxpZ2h0Um91dGVyU3RhdGUpKHUpO2hbbF09ZTticmVha31jYXNlIHMuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lOntsZXQgZT14KHQscixuLHUsITEsaSxjKTtoW2xdPWU7YnJlYWt9Y2FzZSBzLkZldGNoU3RyYXRlZ3kuRnVsbDp7bGV0IGU9eCh0LHIsbix1LCExLGksYyk7aFtsXT1lfX19cmV0dXJuW3Uuc2VnbWVudCxoLG51bGwsbnVsbCx1LmlzUm9vdExheW91dF19KGUsdCxyLHQudHJlZUF0VGltZU9mUHJlZmV0Y2gsaSxuLGMpO3JldHVybiBuLnNpemU+MCYmaigoMCxvLmZldGNoU2VnbWVudFByZWZldGNoZXNVc2luZ0R5bmFtaWNSZXF1ZXN0KSh0LHIsYyxsLG4pKSwyfX19fXJldHVybiAyfShlLHQsbik7aWYoMCE9PWwmJiIiIT09ci5zZWFyY2gpe2xldCBuPW5ldyBVUkwoci5wYXRobmFtZSxsb2NhdGlvbi5vcmlnaW4pLGw9KDAsYy5jcmVhdGVDYWNoZUtleSkobi5ocmVmLHIubmV4dFVybCksYT0oMCxvLnJlYWRPckNyZWF0ZVJvdXRlQ2FjaGVFbnRyeSkoZSx0LGwpO3N3aXRjaChhLnN0YXR1cyl7Y2FzZSBvLkVudHJ5U3RhdHVzLkVtcHR5OkEodCkmJihhLnN0YXR1cz1vLkVudHJ5U3RhdHVzLlBlbmRpbmcsaigoMCxvLmZldGNoUm91dGVPbkNhY2hlTWlzcykoYSx0LGwpKSk7Y2FzZSBvLkVudHJ5U3RhdHVzLlBlbmRpbmc6Y2FzZSBvLkVudHJ5U3RhdHVzLkZ1bGZpbGxlZDpjYXNlIG8uRW50cnlTdGF0dXMuUmVqZWN0ZWQ6fX1yZXR1cm4gbH0oZSx0KSxuPXQuaGFzQmFja2dyb3VuZFdvcms7c3dpdGNoKHQuaGFzQmFja2dyb3VuZFdvcms9ITEsdC5zcGF3bmVkUnVudGltZVByZWZldGNoZXM9bnVsbCxyKXtjYXNlIDA6cmV0dXJuO2Nhc2UgMTp6KGgpLHQ9VihoKTtjb250aW51ZTtjYXNlIDI6MT09PXQucGhhc2U/KHQucGhhc2U9MCxLKGgsdCkpOm4/KHQucHJpb3JpdHk9cy5QcmVmZXRjaFByaW9yaXR5LkJhY2tncm91bmQsSyhoLHQpKTp6KGgpLHQ9VihoKTtjb250aW51ZX19fWZ1bmN0aW9uIEEoZSl7cmV0dXJuIGUucHJpb3JpdHk9PT1zLlByZWZldGNoUHJpb3JpdHkuQmFja2dyb3VuZHx8KGUuaGFzQmFja2dyb3VuZFdvcms9ITAsITEpfWZ1bmN0aW9uIE4oZSx0LHIsbixsKXt4KGUsdCxyLHIubWV0YWRhdGEsITEsbixsPT09cy5GZXRjaFN0cmF0ZWd5LkxvYWRpbmdCb3VuZGFyeT9zLkZldGNoU3RyYXRlZ3kuRnVsbDpsKX1mdW5jdGlvbiB4KGUsdCxyLG4sbCxhLHUpe2xldCBpPSgwLG8ucmVhZE9yQ3JlYXRlU2VnbWVudENhY2hlRW50cnkpKGUsdSxyLG4pLGM9bnVsbDtzd2l0Y2goaS5zdGF0dXMpe2Nhc2Ugby5FbnRyeVN0YXR1cy5FbXB0eTpjPSgwLG8udXBncmFkZVRvUGVuZGluZ1NlZ21lbnQpKGksdSk7YnJlYWs7Y2FzZSBvLkVudHJ5U3RhdHVzLkZ1bGZpbGxlZDppLmlzUGFydGlhbCYmKDAsby5jYW5OZXdGZXRjaFN0cmF0ZWd5UHJvdmlkZU1vcmVDb250ZW50KShpLmZldGNoU3RyYXRlZ3ksdSkmJihjPVUoZSxyLG4sdSkpO2JyZWFrO2Nhc2Ugby5FbnRyeVN0YXR1cy5QZW5kaW5nOmNhc2Ugby5FbnRyeVN0YXR1cy5SZWplY3RlZDooMCxvLmNhbk5ld0ZldGNoU3RyYXRlZ3lQcm92aWRlTW9yZUNvbnRlbnQpKGkuZmV0Y2hTdHJhdGVneSx1KSYmKGM9VShlLHIsbix1KSl9bGV0IHM9e307aWYobnVsbCE9PW4uc2xvdHMpZm9yKGxldCBvIGluIG4uc2xvdHMpe2xldCBpPW4uc2xvdHNbb107c1tvXT14KGUsdCxyLGksbHx8bnVsbCE9PWMsYSx1KX1udWxsIT09YyYmYS5zZXQobi5yZXF1ZXN0S2V5LGMpO2xldCBkPWx8fG51bGw9PT1jP251bGw6InJlZmV0Y2giO3JldHVybltuLnNlZ21lbnQscyxudWxsLGQsbi5pc1Jvb3RMYXlvdXRdfWZ1bmN0aW9uIEwoZSx0LHIsbixsLGEpe3N3aXRjaChuLnN0YXR1cyl7Y2FzZSBvLkVudHJ5U3RhdHVzLkVtcHR5OmooKDAsby5mZXRjaFNlZ21lbnRPbkNhY2hlTWlzcykociwoMCxvLnVwZ3JhZGVUb1BlbmRpbmdTZWdtZW50KShuLHMuRmV0Y2hTdHJhdGVneS5QUFIpLGwsYSkpO2JyZWFrO2Nhc2Ugby5FbnRyeVN0YXR1cy5QZW5kaW5nOnN3aXRjaChuLmZldGNoU3RyYXRlZ3kpe2Nhc2Ugcy5GZXRjaFN0cmF0ZWd5LlBQUjpjYXNlIHMuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lOmNhc2Ugcy5GZXRjaFN0cmF0ZWd5LkZ1bGw6YnJlYWs7Y2FzZSBzLkZldGNoU3RyYXRlZ3kuTG9hZGluZ0JvdW5kYXJ5OkEodCkmJkYoZSxyLGwsYSk7YnJlYWs7ZGVmYXVsdDpuLmZldGNoU3RyYXRlZ3l9YnJlYWs7Y2FzZSBvLkVudHJ5U3RhdHVzLlJlamVjdGVkOnN3aXRjaChuLmZldGNoU3RyYXRlZ3kpe2Nhc2Ugcy5GZXRjaFN0cmF0ZWd5LlBQUjpjYXNlIHMuRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lOmNhc2Ugcy5GZXRjaFN0cmF0ZWd5LkZ1bGw6YnJlYWs7Y2FzZSBzLkZldGNoU3RyYXRlZ3kuTG9hZGluZ0JvdW5kYXJ5OkYoZSxyLGwsYSk7YnJlYWs7ZGVmYXVsdDpuLmZldGNoU3RyYXRlZ3l9Y2FzZSBvLkVudHJ5U3RhdHVzLkZ1bGZpbGxlZDp9fWZ1bmN0aW9uIEYoZSx0LHIsbil7bGV0IGw9KDAsby5yZWFkT3JDcmVhdGVSZXZhbGlkYXRpbmdTZWdtZW50RW50cnkpKGUscy5GZXRjaFN0cmF0ZWd5LlBQUix0LG4pO3N3aXRjaChsLnN0YXR1cyl7Y2FzZSBvLkVudHJ5U3RhdHVzLkVtcHR5OkQoaigoMCxvLmZldGNoU2VnbWVudE9uQ2FjaGVNaXNzKSh0LCgwLG8udXBncmFkZVRvUGVuZGluZ1NlZ21lbnQpKGwscy5GZXRjaFN0cmF0ZWd5LlBQUikscixuKSksKDAsaS5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KShzLkZldGNoU3RyYXRlZ3kuUFBSLG4pKTtjYXNlIG8uRW50cnlTdGF0dXMuUGVuZGluZzpjYXNlIG8uRW50cnlTdGF0dXMuRnVsZmlsbGVkOmNhc2Ugby5FbnRyeVN0YXR1cy5SZWplY3RlZDp9fWZ1bmN0aW9uIFUoZSx0LHIsbil7bGV0IGw9KDAsby5yZWFkT3JDcmVhdGVSZXZhbGlkYXRpbmdTZWdtZW50RW50cnkpKGUsbix0LHIpO2lmKGwuc3RhdHVzPT09by5FbnRyeVN0YXR1cy5FbXB0eSl7bGV0IGU9KDAsby51cGdyYWRlVG9QZW5kaW5nU2VnbWVudCkobCxuKTtyZXR1cm4gRCgoMCxvLndhaXRGb3JTZWdtZW50Q2FjaGVFbnRyeSkoZSksKDAsaS5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KShuLHIpKSxlfWlmKCgwLG8uY2FuTmV3RmV0Y2hTdHJhdGVneVByb3ZpZGVNb3JlQ29udGVudCkobC5mZXRjaFN0cmF0ZWd5LG4pKXtsZXQgZT0oMCxvLm92ZXJ3cml0ZVJldmFsaWRhdGluZ1NlZ21lbnRDYWNoZUVudHJ5KShuLHQsciksbD0oMCxvLnVwZ3JhZGVUb1BlbmRpbmdTZWdtZW50KShlLG4pO3JldHVybiBEKCgwLG8ud2FpdEZvclNlZ21lbnRDYWNoZUVudHJ5KShsKSwoMCxpLmdldFNlZ21lbnRWYXJ5UGF0aEZvclJlcXVlc3QpKG4scikpLGx9c3dpdGNoKGwuc3RhdHVzKXtjYXNlIG8uRW50cnlTdGF0dXMuUGVuZGluZzpjYXNlIG8uRW50cnlTdGF0dXMuRnVsZmlsbGVkOmNhc2Ugby5FbnRyeVN0YXR1cy5SZWplY3RlZDpkZWZhdWx0OnJldHVybiBudWxsfX1sZXQgST0oKT0+e307ZnVuY3Rpb24gRChlLHQpe2UudGhlbihlPT57bnVsbCE9PWUmJigwLG8udXBzZXJ0U2VnbWVudEVudHJ5KShEYXRlLm5vdygpLHQsZSl9LEkpfWZ1bmN0aW9uIGsoZSx0LHIpe3JldHVybiByPT09ZC5QQUdFX1NFR01FTlRfS0VZP3Q9PT0oMCxkLmFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQpKGQuUEFHRV9TRUdNRU5UX0tFWSxPYmplY3QuZnJvbUVudHJpZXMobmV3IFVSTFNlYXJjaFBhcmFtcyhlLnJlbmRlcmVkU2VhcmNoKSkpOigwLHUubWF0Y2hTZWdtZW50KShyLHQpfWZ1bmN0aW9uIEgoZSx0KXtsZXQgcj10LnByaW9yaXR5LWUucHJpb3JpdHk7aWYoMCE9PXIpcmV0dXJuIHI7bGV0IG49dC5waGFzZS1lLnBoYXNlO3JldHVybiAwIT09bj9uOnQuc29ydElkLWUuc29ydElkfWZ1bmN0aW9uIEIoZSx0KXtsZXQgcj1lLmxlbmd0aDtlLnB1c2godCksdC5faGVhcEluZGV4PXIscShlLHQscil9ZnVuY3Rpb24gVihlKXtyZXR1cm4gMD09PWUubGVuZ3RoP251bGw6ZVswXX1mdW5jdGlvbiB6KGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgdD1lWzBdO3QuX2hlYXBJbmRleD0tMTtsZXQgcj1lLnBvcCgpO3JldHVybiByIT09dCYmKGVbMF09cixyLl9oZWFwSW5kZXg9MCxHKGUsciwwKSksdH1mdW5jdGlvbiBLKGUsdCl7bGV0IHI9dC5faGVhcEluZGV4Oy0xIT09ciYmKDA9PT1yP0coZSx0LDApOkgoZVtyLTE+Pj4xXSx0KT4wP3EoZSx0LHIpOkcoZSx0LHIpKX1mdW5jdGlvbiBxKGUsdCxyKXtsZXQgbj1yO2Zvcig7bj4wOyl7bGV0IHI9bi0xPj4+MSxsPWVbcl07aWYoIShIKGwsdCk+MCkpcmV0dXJuO2Vbcl09dCx0Ll9oZWFwSW5kZXg9cixlW25dPWwsbC5faGVhcEluZGV4PW4sbj1yfX1mdW5jdGlvbiBHKGUsdCxyKXtsZXQgbj1yLGw9ZS5sZW5ndGgsYT1sPj4+MTtmb3IoO248YTspe2xldCByPShuKzEpKjItMSxhPWVbcl0sdT1yKzEsbz1lW3VdO2lmKDA+SChhLHQpKXU8bCYmMD5IKG8sYSk/KGVbbl09byxvLl9oZWFwSW5kZXg9bixlW3VdPXQsdC5faGVhcEluZGV4PXUsbj11KTooZVtuXT1hLGEuX2hlYXBJbmRleD1uLGVbcl09dCx0Ll9oZWFwSW5kZXg9cixuPXIpO2Vsc2V7aWYoISh1PGwmJjA+SChvLHQpKSlyZXR1cm47ZVtuXT1vLG8uX2hlYXBJbmRleD1uLGVbdV09dCx0Ll9oZWFwSW5kZXg9dSxuPXV9fX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1NzI0NjMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe2xldCB0PWUuaW5kZXhPZigiIyIpLHI9ZS5pbmRleE9mKCI/Iiksbj1yPi0xJiYodDwwfHxyPHQpO3JldHVybiBufHx0Pi0xP3twYXRobmFtZTplLnN1YnN0cmluZygwLG4/cjp0KSxxdWVyeTpuP2Uuc3Vic3RyaW5nKHIsdD4tMT90OnZvaWQgMCk6IiIsaGFzaDp0Pi0xP2Uuc2xpY2UodCk6IiJ9OntwYXRobmFtZTplLHF1ZXJ5OiIiLGhhc2g6IiJ9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicGFyc2VQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX0sNTQxODU4LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhZGRQYXRoUHJlZml4Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgbj1lLnIoNTcyNDYzKTtmdW5jdGlvbiBsKGUsdCl7aWYoIWUuc3RhcnRzV2l0aCgiLyIpfHwhdClyZXR1cm4gZTtsZXR7cGF0aG5hbWU6cixxdWVyeTpsLGhhc2g6YX09KDAsbi5wYXJzZVBhdGgpKGUpO3JldHVybmAke3R9JHtyfSR7bH0ke2F9YH19LDkzODI4MSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSl7cmV0dXJuIGUucmVwbGFjZSgvXC8kLywiIil8fCIvIn1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInJlbW92ZVRyYWlsaW5nU2xhc2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pfSw4MjgyMywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig5MzgyODEpLGw9ZS5yKDU3MjQ2MyksYT1lPT57aWYoIWUuc3RhcnRzV2l0aCgiLyIpKXJldHVybiBlO2xldHtwYXRobmFtZTp0LHF1ZXJ5OnIsaGFzaDphfT0oMCxsLnBhcnNlUGF0aCkoZSk7cmV0dXJuYCR7KDAsbi5yZW1vdmVUcmFpbGluZ1NsYXNoKSh0KX0ke3J9JHthfWB9OygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDQwNTU1MCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiYWRkQmFzZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig1NDE4NTgpLGw9ZS5yKDgyODIzKTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuKDAsbC5ub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCkoKDAsbi5hZGRQYXRoUHJlZml4KShlLCIiKSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjU3NjMwLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjcmVhdGVQcmVmZXRjaFVSTDpmdW5jdGlvbigpe3JldHVybiBpfSxpc0V4dGVybmFsVVJMOmZ1bmN0aW9uKCl7cmV0dXJuIG99fTtmb3IodmFyIGwgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDpuW2xdfSk7bGV0IGE9ZS5yKDgyNjA0KSx1PWUucig0MDU1NTApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUub3JpZ2luIT09d2luZG93LmxvY2F0aW9uLm9yaWdpbn1mdW5jdGlvbiBpKGUpe2xldCB0O2lmKCgwLGEuaXNCb3QpKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KSlyZXR1cm4gbnVsbDt0cnl7dD1uZXcgVVJMKCgwLHUuYWRkQmFzZVBhdGgpKGUpLHdpbmRvdy5sb2NhdGlvbi5ocmVmKX1jYXRjaCh0KXt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoYENhbm5vdCBwcmVmZXRjaCAnJHtlfScgYmVjYXVzZSBpdCBjYW5ub3QgYmUgY29udmVydGVkIHRvIGEgVVJMLmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjM0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfXJldHVybiBvKHQpP251bGw6dH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw5MTk0OSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17SURMRV9MSU5LX1NUQVRVUzpmdW5jdGlvbigpe3JldHVybiBkfSxQRU5ESU5HX0xJTktfU1RBVFVTOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LG1vdW50Rm9ybUluc3RhbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIHZ9LG1vdW50TGlua0luc3RhbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIF99LG9uTGlua1Zpc2liaWxpdHlDaGFuZ2VkOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LG9uTmF2aWdhdGlvbkludGVudDpmdW5jdGlvbigpe3JldHVybiBifSxwaW5nVmlzaWJsZUxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIFR9LHNldExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbjpmdW5jdGlvbigpe3JldHVybiBmfSx1bm1vdW50TGlua0ZvckN1cnJlbnROYXZpZ2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHVubW91bnRQcmVmZXRjaGFibGVJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiBtfX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucig1MDkzOTYpLHU9ZS5yKDQ3NzA0OCksbz1lLnIoNzc3NzA5KSxpPWUucigyNzE2NDUpLGM9bnVsbCxzPXtwZW5kaW5nOiEwfSxkPXtwZW5kaW5nOiExfTtmdW5jdGlvbiBmKGUpeygwLGkuc3RhcnRUcmFuc2l0aW9uKSgoKT0+e2M/LnNldE9wdGltaXN0aWNMaW5rU3RhdHVzKGQpLGU/LnNldE9wdGltaXN0aWNMaW5rU3RhdHVzKHMpLGM9ZX0pfWZ1bmN0aW9uIGgoZSl7Yz09PWUmJihjPW51bGwpfWxldCBwPSJmdW5jdGlvbiI9PXR5cGVvZiBXZWFrTWFwP25ldyBXZWFrTWFwOm5ldyBNYXAseT1uZXcgU2V0LGc9ImZ1bmN0aW9uIj09dHlwZW9mIEludGVyc2VjdGlvbk9ic2VydmVyP25ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmdW5jdGlvbihlKXtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dC5pbnRlcnNlY3Rpb25SYXRpbz4wO0UodC50YXJnZXQsZSl9fSx7cm9vdE1hcmdpbjoiMjAwcHgifSk6bnVsbDtmdW5jdGlvbiBSKGUsdCl7dm9pZCAwIT09cC5nZXQoZSkmJm0oZSkscC5zZXQoZSx0KSxudWxsIT09ZyYmZy5vYnNlcnZlKGUpfWZ1bmN0aW9uIFAodCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIG51bGw7e2xldHtjcmVhdGVQcmVmZXRjaFVSTDpyfT1lLnIoNjU3NjMwKTt0cnl7cmV0dXJuIHIodCl9Y2F0Y2h7cmV0dXJuKCJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcjpjb25zb2xlLmVycm9yKShgQ2Fubm90IHByZWZldGNoICcke3R9JyBiZWNhdXNlIGl0IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYSBVUkwuYCksbnVsbH19fWZ1bmN0aW9uIF8oZSx0LHIsbixsLGEpe2lmKGwpe2xldCBsPVAodCk7aWYobnVsbCE9PWwpe2xldCB0PXtyb3V0ZXI6cixmZXRjaFN0cmF0ZWd5Om4saXNWaXNpYmxlOiExLHByZWZldGNoVGFzazpudWxsLHByZWZldGNoSHJlZjpsLmhyZWYsc2V0T3B0aW1pc3RpY0xpbmtTdGF0dXM6YX07cmV0dXJuIFIoZSx0KSx0fX1yZXR1cm57cm91dGVyOnIsZmV0Y2hTdHJhdGVneTpuLGlzVmlzaWJsZTohMSxwcmVmZXRjaFRhc2s6bnVsbCxwcmVmZXRjaEhyZWY6bnVsbCxzZXRPcHRpbWlzdGljTGlua1N0YXR1czphfX1mdW5jdGlvbiB2KGUsdCxyLG4pe2xldCBsPVAodCk7bnVsbD09PWx8fFIoZSx7cm91dGVyOnIsZmV0Y2hTdHJhdGVneTpuLGlzVmlzaWJsZTohMSxwcmVmZXRjaFRhc2s6bnVsbCxwcmVmZXRjaEhyZWY6bC5ocmVmLHNldE9wdGltaXN0aWNMaW5rU3RhdHVzOm51bGx9KX1mdW5jdGlvbiBtKGUpe2xldCB0PXAuZ2V0KGUpO2lmKHZvaWQgMCE9PXQpe3AuZGVsZXRlKGUpLHkuZGVsZXRlKHQpO2xldCByPXQucHJlZmV0Y2hUYXNrO251bGwhPT1yJiYoMCxvLmNhbmNlbFByZWZldGNoVGFzaykocil9bnVsbCE9PWcmJmcudW5vYnNlcnZlKGUpfWZ1bmN0aW9uIEUoZSx0KXtsZXQgcj1wLmdldChlKTt2b2lkIDAhPT1yJiYoci5pc1Zpc2libGU9dCx0P3kuYWRkKHIpOnkuZGVsZXRlKHIpLFMocixhLlByZWZldGNoUHJpb3JpdHkuRGVmYXVsdCkpfWZ1bmN0aW9uIGIoZSx0KXtsZXQgcj1wLmdldChlKTt2b2lkIDAhPT1yJiZ2b2lkIDAhPT1yJiZTKHIsYS5QcmVmZXRjaFByaW9yaXR5LkludGVudCl9ZnVuY3Rpb24gUyh0LHIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXtsZXQgbj10LnByZWZldGNoVGFzaztpZighdC5pc1Zpc2libGUpe251bGwhPT1uJiYoMCxvLmNhbmNlbFByZWZldGNoVGFzaykobik7cmV0dXJufWxldHtnZXRDdXJyZW50QXBwUm91dGVyU3RhdGU6bH09ZS5yKDY5OTc4MSksYT1sKCk7aWYobnVsbCE9PWEpe2xldCBlPWEudHJlZTtpZihudWxsPT09bil7bGV0IG49YS5uZXh0VXJsLGw9KDAsdS5jcmVhdGVDYWNoZUtleSkodC5wcmVmZXRjaEhyZWYsbik7dC5wcmVmZXRjaFRhc2s9KDAsby5zY2hlZHVsZVByZWZldGNoVGFzaykobCxlLHQuZmV0Y2hTdHJhdGVneSxyLG51bGwpfWVsc2UoMCxvLnJlc2NoZWR1bGVQcmVmZXRjaFRhc2spKG4sZSx0LmZldGNoU3RyYXRlZ3kscil9fX1mdW5jdGlvbiBUKGUsdCl7Zm9yKGxldCByIG9mIHkpe2xldCBuPXIucHJlZmV0Y2hUYXNrO2lmKG51bGwhPT1uJiYhKDAsby5pc1ByZWZldGNoVGFza0RpcnR5KShuLGUsdCkpY29udGludWU7bnVsbCE9PW4mJigwLG8uY2FuY2VsUHJlZmV0Y2hUYXNrKShuKTtsZXQgbD0oMCx1LmNyZWF0ZUNhY2hlS2V5KShyLnByZWZldGNoSHJlZixlKTtyLnByZWZldGNoVGFzaz0oMCxvLnNjaGVkdWxlUHJlZmV0Y2hUYXNrKShsLHQsci5mZXRjaFN0cmF0ZWd5LGEuUHJlZmV0Y2hQcmlvcml0eS5EZWZhdWx0LG51bGwpfX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwzOTUyODIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0RPQ19QUkVGRVRDSF9SQU5HRV9IRUFERVJfVkFMVUU6ZnVuY3Rpb24oKXtyZXR1cm4gdX0sZG9lc0V4cG9ydGVkSHRtbE1hdGNoQnVpbGRJZDpmdW5jdGlvbigpe3JldHVybiBjfSxpbnNlcnRCdWlsZElkQ29tbWVudDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPSI8IURPQ1RZUEUgaHRtbD4iLHU9ImJ5dGVzPTAtNjMiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUuc2xpY2UoMCwyNCkucmVwbGFjZSgvLS9nLCJfIil9ZnVuY3Rpb24gaShlLHQpe3JldHVybiB0LmluY2x1ZGVzKCItLT4iKXx8IWUuc3RhcnRzV2l0aChhKT9lOmUucmVwbGFjZShhLGErIjwhLS0iK28odCkrIi0tPiIpfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gZS5zdGFydHNXaXRoKGErIjwhLS0iK28odCkrIi0tPiIpfX0sNjIwODk2LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuLGw9e0VudHJ5U3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIFN9LGNhbk5ld0ZldGNoU3RyYXRlZ3lQcm92aWRlTW9yZUNvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZWx9LGNvbnZlcnRSb3V0ZVRyZWVUb0ZsaWdodFJvdXRlclN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCl7bGV0IHI9e307aWYobnVsbCE9PXQuc2xvdHMpZm9yKGxldCBuIGluIHQuc2xvdHMpcltuXT1lKHQuc2xvdHNbbl0pO3JldHVyblt0LnNlZ21lbnQscixudWxsLG51bGwsdC5pc1Jvb3RMYXlvdXRdfX0sY3JlYXRlRGV0YWNoZWRTZWdtZW50Q2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiB6fSxmZXRjaFJvdXRlT25DYWNoZU1pc3M6ZnVuY3Rpb24oKXtyZXR1cm4gJH0sZmV0Y2hTZWdtZW50T25DYWNoZU1pc3M6ZnVuY3Rpb24oKXtyZXR1cm4gUX0sZmV0Y2hTZWdtZW50UHJlZmV0Y2hlc1VzaW5nRHluYW1pY1JlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gSn0sZ2V0Q3VycmVudENhY2hlVmVyc2lvbjpmdW5jdGlvbigpe3JldHVybiBDfSxnZXRTdGFsZVRpbWVNczpmdW5jdGlvbigpe3JldHVybiBifSxvdmVyd3JpdGVSZXZhbGlkYXRpbmdTZWdtZW50Q2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiBCfSxwaW5nSW52YWxpZGF0aW9uTGlzdGVuZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIE59LHJlYWRPckNyZWF0ZVJldmFsaWRhdGluZ1NlZ21lbnRFbnRyeTpmdW5jdGlvbigpe3JldHVybiBIfSxyZWFkT3JDcmVhdGVSb3V0ZUNhY2hlRW50cnk6ZnVuY3Rpb24oKXtyZXR1cm4gVX0scmVhZE9yQ3JlYXRlU2VnbWVudENhY2hlRW50cnk6ZnVuY3Rpb24oKXtyZXR1cm4ga30scmVhZFJvdXRlQ2FjaGVFbnRyeTpmdW5jdGlvbigpe3JldHVybiB4fSxyZWFkU2VnbWVudENhY2hlRW50cnk6ZnVuY3Rpb24oKXtyZXR1cm4gTH0scmVxdWVzdE9wdGltaXN0aWNSb3V0ZUNhY2hlRW50cnk6ZnVuY3Rpb24oKXtyZXR1cm4gSX0scmV2YWxpZGF0ZUVudGlyZUNhY2hlOmZ1bmN0aW9uKCl7cmV0dXJuIEF9LHVwZ3JhZGVUb1BlbmRpbmdTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIEt9LHVwc2VydFNlZ21lbnRFbnRyeTpmdW5jdGlvbigpe3JldHVybiBWfSx3YWl0Rm9yU2VnbWVudENhY2hlRW50cnk6ZnVuY3Rpb24oKXtyZXR1cm4gRn19O2Zvcih2YXIgYSBpbiBsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0OmxbYV19KTtsZXQgdT1lLnIoNTIyNzQ0KSxvPWUucig2MjE3NjgpLGk9ZS5yKDc4NzI4OCksYz1lLnIoNzc3NzA5KSxzPWUucig4NTY2NTUpLGQ9ZS5yKDgxNDI5NyksZj1lLnIoNDUxMTkxKSxoPWUucig0NzcwNDgpLHA9ZS5yKDMzOTA2KSx5PWUucig1MTEpLGc9ZS5yKDc2Nzc2NCksUj1lLnIoNDUwNTkwKSxQPWUucig3NTQwNjkpLF89ZS5yKDkxOTQ5KSx2PWUucig4MTMyNTgpO2UucigzOTUyODIpO2xldCBtPWUucig1MDkzOTYpLEU9ZS5yKDgzOTQ3MCk7ZnVuY3Rpb24gYihlKXtyZXR1cm4gMWUzKk1hdGgubWF4KGUsMzApfXZhciBTPSgobj17fSlbbi5FbXB0eT0wXT0iRW1wdHkiLG5bbi5QZW5kaW5nPTFdPSJQZW5kaW5nIixuW24uRnVsZmlsbGVkPTJdPSJGdWxmaWxsZWQiLG5bbi5SZWplY3RlZD0zXT0iUmVqZWN0ZWQiLG4pO2xldCBUPVsiIix7fSxudWxsLCJtZXRhZGF0YS1vbmx5Il0sTz0oMCx5LmNyZWF0ZUNhY2hlTWFwKSgpLGo9KDAseS5jcmVhdGVDYWNoZU1hcCkoKSx3PW51bGwsTT0wO2Z1bmN0aW9uIEMoKXtyZXR1cm4gTX1mdW5jdGlvbiBBKGUsdCl7TSsrLCgwLGMuc3RhcnRSZXZhbGlkYXRpb25Db29sZG93bikoKSwoMCxfLnBpbmdWaXNpYmxlTGlua3MpKGUsdCksTihlLHQpfWZ1bmN0aW9uIE4oZSx0KXtpZihudWxsIT09dyl7bGV0IHI9dztmb3IobGV0IG4gb2Yodz1udWxsLHIpKSgwLGMuaXNQcmVmZXRjaFRhc2tEaXJ0eSkobixlLHQpJiZmdW5jdGlvbihlKXtsZXQgdD1lLm9uSW52YWxpZGF0ZTtpZihudWxsIT09dCl7ZS5vbkludmFsaWRhdGU9bnVsbDt0cnl7dCgpfWNhdGNoKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiByZXBvcnRFcnJvcj9yZXBvcnRFcnJvcihlKTpjb25zb2xlLmVycm9yKGUpfX19KG4pfX1mdW5jdGlvbiB4KGUsdCl7bGV0IHI9KDAscy5nZXRSb3V0ZVZhcnlQYXRoKSh0LnBhdGhuYW1lLHQuc2VhcmNoLHQubmV4dFVybCk7cmV0dXJuKDAseS5nZXRGcm9tQ2FjaGVNYXApKGUsTSxPLHIsITEpfWZ1bmN0aW9uIEwoZSx0KXtyZXR1cm4oMCx5LmdldEZyb21DYWNoZU1hcCkoZSxNLGosdCwhMSl9ZnVuY3Rpb24gRihlKXtsZXQgdD1lLnByb21pc2U7cmV0dXJuIG51bGw9PT10JiYodD1lLnByb21pc2U9KDAsRS5jcmVhdGVQcm9taXNlV2l0aFJlc29sdmVycykoKSksdC5wcm9taXNlfWZ1bmN0aW9uIFUoZSx0LHIpe251bGwhPT10Lm9uSW52YWxpZGF0ZSYmKG51bGw9PT13P3c9bmV3IFNldChbdF0pOncuYWRkKHQpKTtsZXQgbj14KGUscik7aWYobnVsbCE9PW4pcmV0dXJuIG47bGV0IGw9e2Nhbm9uaWNhbFVybDpudWxsLHN0YXR1czowLGJsb2NrZWRUYXNrczpudWxsLHRyZWU6bnVsbCxtZXRhZGF0YTpudWxsLGNvdWxkQmVJbnRlcmNlcHRlZDohMCxpc1BQUkVuYWJsZWQ6ITEscmVuZGVyZWRTZWFyY2g6bnVsbCxyZWY6bnVsbCxzaXplOjAsc3RhbGVBdDoxLzAsdmVyc2lvbjpNfSxhPSgwLHMuZ2V0Um91dGVWYXJ5UGF0aCkoci5wYXRobmFtZSxyLnNlYXJjaCxyLm5leHRVcmwpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoTyxhLGwsITEpLGx9ZnVuY3Rpb24gSShlLHQscil7bGV0IG49dC5zZWFyY2g7aWYoIiI9PT1uKXJldHVybiBudWxsO2xldCBsPW5ldyBVUkwodCk7bC5zZWFyY2g9IiI7bGV0IGE9eChlLCgwLGguY3JlYXRlQ2FjaGVLZXkpKGwuaHJlZixyKSk7aWYobnVsbD09PWF8fDIhPT1hLnN0YXR1cylyZXR1cm4gbnVsbDtsZXQgdT1uZXcgVVJMKGEuY2Fub25pY2FsVXJsLHQub3JpZ2luKSxvPSIiIT09dS5zZWFyY2g/dS5zZWFyY2g6bixpPSIiIT09YS5yZW5kZXJlZFNlYXJjaD9hLnJlbmRlcmVkU2VhcmNoOm4sYz1uZXcgVVJMKGEuY2Fub25pY2FsVXJsLGxvY2F0aW9uLm9yaWdpbik7cmV0dXJuIGMuc2VhcmNoPW8se2Nhbm9uaWNhbFVybDooMCxmLmNyZWF0ZUhyZWZGcm9tVXJsKShjKSxzdGF0dXM6MixibG9ja2VkVGFza3M6bnVsbCx0cmVlOkQoYS50cmVlLGkpLG1ldGFkYXRhOkQoYS5tZXRhZGF0YSxpKSxjb3VsZEJlSW50ZXJjZXB0ZWQ6YS5jb3VsZEJlSW50ZXJjZXB0ZWQsaXNQUFJFbmFibGVkOmEuaXNQUFJFbmFibGVkLHJlbmRlcmVkU2VhcmNoOmkscmVmOm51bGwsc2l6ZTowLHN0YWxlQXQ6YS5zdGFsZUF0LHZlcnNpb246YS52ZXJzaW9ufX1mdW5jdGlvbiBEKGUsdCl7bGV0IHI9bnVsbCxuPWUuc2xvdHM7aWYobnVsbCE9PW4pZm9yKGxldCBlIGluIHI9e30sbil7bGV0IGw9bltlXTtyW2VdPUQobCx0KX1yZXR1cm4gZS5pc1BhZ2U/e3JlcXVlc3RLZXk6ZS5yZXF1ZXN0S2V5LHNlZ21lbnQ6ZS5zZWdtZW50LHZhcnlQYXRoOigwLHMuY2xvbmVQYWdlVmFyeVBhdGhXaXRoTmV3U2VhcmNoUGFyYW1zKShlLnZhcnlQYXRoLHQpLGlzUGFnZTohMCxzbG90czpyLGlzUm9vdExheW91dDplLmlzUm9vdExheW91dCxoYXNMb2FkaW5nQm91bmRhcnk6ZS5oYXNMb2FkaW5nQm91bmRhcnksaGFzUnVudGltZVByZWZldGNoOmUuaGFzUnVudGltZVByZWZldGNofTp7cmVxdWVzdEtleTplLnJlcXVlc3RLZXksc2VnbWVudDplLnNlZ21lbnQsdmFyeVBhdGg6ZS52YXJ5UGF0aCxpc1BhZ2U6ITEsc2xvdHM6cixpc1Jvb3RMYXlvdXQ6ZS5pc1Jvb3RMYXlvdXQsaGFzTG9hZGluZ0JvdW5kYXJ5OmUuaGFzTG9hZGluZ0JvdW5kYXJ5LGhhc1J1bnRpbWVQcmVmZXRjaDplLmhhc1J1bnRpbWVQcmVmZXRjaH19ZnVuY3Rpb24gayhlLHQscixuKXtsZXQgbD1MKGUsbi52YXJ5UGF0aCk7aWYobnVsbCE9PWwpcmV0dXJuIGw7bGV0IGE9KDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KSh0LG4pLHU9eihyLnN0YWxlQXQpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoaixhLHUsITEpLHV9ZnVuY3Rpb24gSChlLHQscixuKXt2YXIgbDtsZXQgYT0obD1uLnZhcnlQYXRoLCgwLHkuZ2V0RnJvbUNhY2hlTWFwKShlLE0saixsLCEwKSk7aWYobnVsbCE9PWEpcmV0dXJuIGE7bGV0IHU9KDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KSh0LG4pLG89eihyLnN0YWxlQXQpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoaix1LG8sITApLG99ZnVuY3Rpb24gQihlLHQscil7bGV0IG49KDAscy5nZXRTZWdtZW50VmFyeVBhdGhGb3JSZXF1ZXN0KShlLHIpLGw9eih0LnN0YWxlQXQpO3JldHVybigwLHkuc2V0SW5DYWNoZU1hcCkoaixuLGwsITApLGx9ZnVuY3Rpb24gVihlLHQscil7aWYoKDAseS5pc1ZhbHVlRXhwaXJlZCkoZSxNLHIpKXJldHVybiBudWxsO2xldCBuPUwoZSx0KTtpZihudWxsIT09bil7dmFyIGw7aWYoci5mZXRjaFN0cmF0ZWd5IT09bi5mZXRjaFN0cmF0ZWd5JiYobD1uLmZldGNoU3RyYXRlZ3ksIShsPHIuZmV0Y2hTdHJhdGVneSkpfHwhbi5pc1BhcnRpYWwmJnIuaXNQYXJ0aWFsKXJldHVybiByLnN0YXR1cz0zLHIubG9hZGluZz1udWxsLHIucnNjPW51bGwsbnVsbDsoMCx5LmRlbGV0ZUZyb21DYWNoZU1hcCkobil9cmV0dXJuKDAseS5zZXRJbkNhY2hlTWFwKShqLHQsciwhMSkscn1mdW5jdGlvbiB6KGUpe3JldHVybntzdGF0dXM6MCxmZXRjaFN0cmF0ZWd5Om0uRmV0Y2hTdHJhdGVneS5QUFIscnNjOm51bGwsbG9hZGluZzpudWxsLGlzUGFydGlhbDohMCxwcm9taXNlOm51bGwscmVmOm51bGwsc2l6ZTowLHN0YWxlQXQ6ZSx2ZXJzaW9uOjB9fWZ1bmN0aW9uIEsoZSx0KXtyZXR1cm4gZS5zdGF0dXM9MSxlLmZldGNoU3RyYXRlZ3k9dCxlLnZlcnNpb249TSxlfWZ1bmN0aW9uIHEoZSl7bGV0IHQ9ZS5ibG9ja2VkVGFza3M7aWYobnVsbCE9PXQpe2ZvcihsZXQgZSBvZiB0KSgwLGMucGluZ1ByZWZldGNoVGFzaykoZSk7ZS5ibG9ja2VkVGFza3M9bnVsbH19ZnVuY3Rpb24gRyhlLHQscixuLGwsYSxvLGkpe2xldCBjPXtyZXF1ZXN0S2V5OmcuSEVBRF9SRVFVRVNUX0tFWSxzZWdtZW50OmcuSEVBRF9SRVFVRVNUX0tFWSx2YXJ5UGF0aDpyLGlzUGFnZTohMCxzbG90czpudWxsLGlzUm9vdExheW91dDohMSxoYXNMb2FkaW5nQm91bmRhcnk6dS5IYXNMb2FkaW5nQm91bmRhcnkuU3VidHJlZUhhc05vTG9hZGluZ0JvdW5kYXJ5LGhhc1J1bnRpbWVQcmVmZXRjaDohMX07cmV0dXJuIGUuc3RhdHVzPTIsZS50cmVlPXQsZS5tZXRhZGF0YT1jLGUuc3RhbGVBdD1uLGUuY291bGRCZUludGVyY2VwdGVkPWwsZS5jYW5vbmljYWxVcmw9YSxlLnJlbmRlcmVkU2VhcmNoPW8sZS5pc1BQUkVuYWJsZWQ9aSxxKGUpLGV9ZnVuY3Rpb24gVyhlLHQscixuLGwpe3JldHVybiBlLnN0YXR1cz0yLGUucnNjPXQsZS5sb2FkaW5nPXIsZS5zdGFsZUF0PW4sZS5pc1BhcnRpYWw9bCxudWxsIT09ZS5wcm9taXNlJiYoZS5wcm9taXNlLnJlc29sdmUoZSksZS5wcm9taXNlPW51bGwpLGV9ZnVuY3Rpb24gWChlLHQpe2Uuc3RhdHVzPTMsZS5zdGFsZUF0PXQscShlKX1mdW5jdGlvbiBZKGUsdCl7ZS5zdGF0dXM9MyxlLnN0YWxlQXQ9dCxudWxsIT09ZS5wcm9taXNlJiYoZS5wcm9taXNlLnJlc29sdmUobnVsbCksZS5wcm9taXNlPW51bGwpfWFzeW5jIGZ1bmN0aW9uICQoZSx0LHIpe2xldCBuPXIucGF0aG5hbWUsbD1yLnNlYXJjaCxhPXIubmV4dFVybCxjPXtbby5SU0NfSEVBREVSXToiMSIsW28uTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXToiMSIsW28uTkVYVF9ST1VURVJfU0VHTUVOVF9QUkVGRVRDSF9IRUFERVJdOiIvX3RyZWUifTtudWxsIT09YSYmKGNbby5ORVhUX1VSTF09YSk7dHJ5e2xldCByLGgsXz1uZXcgVVJMKG4rbCxsb2NhdGlvbi5vcmlnaW4pO2lmKHI9YXdhaXQgZXIoXyxjKSxoPW51bGwhPT1yJiZyLnJlZGlyZWN0ZWQ/bmV3IFVSTChyLnVybCk6Xywhcnx8IXIub2t8fDIwND09PXIuc3RhdHVzfHwhci5ib2R5KXJldHVybiBYKGUsRGF0ZS5ub3coKSsxZTQpLG51bGw7bGV0IFM9KDAsZi5jcmVhdGVIcmVmRnJvbVVybCkoaCksVD1yLmhlYWRlcnMuZ2V0KCJ2YXJ5Iiksaj1udWxsIT09VCYmVC5pbmNsdWRlcyhvLk5FWFRfVVJMKSx3PSgwLEUuY3JlYXRlUHJvbWlzZVdpdGhSZXNvbHZlcnMpKCksTT0iMiI9PT1yLmhlYWRlcnMuZ2V0KG8uTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSKTtpZihNKXtsZXQgdCxuLGw9ZW4oci5ib2R5LHcucmVzb2x2ZSxmdW5jdGlvbih0KXsoMCx5LnNldFNpemVJbkNhY2hlTWFwKShlLHQpfSksYT1hd2FpdCAoMCxpLmNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0pKGwsYyk7aWYoYS5idWlsZElkIT09KDAsZC5nZXRBcHBCdWlsZElkKSgpKXJldHVybiBYKGUsRGF0ZS5ub3coKSsxZTQpLG51bGw7bGV0IG89KDAscC5nZXRSZW5kZXJlZFBhdGhuYW1lKShyKSxmPSgwLHAuZ2V0UmVuZGVyZWRTZWFyY2gpKHIpLGg9e21ldGFkYXRhVmFyeVBhdGg6bnVsbH0sUj0odD1vLnNwbGl0KCIvIikuZmlsdGVyKGU9PiIiIT09ZSksbj1nLlJPT1RfU0VHTUVOVF9SRVFVRVNUX0tFWSxmdW5jdGlvbiBlKHQscixuLGwsYSxvLGksYyl7bGV0IGQsZixoPW51bGwseT10LnNsb3RzO2lmKG51bGwhPT15KWZvcihsZXQgdCBpbiBkPSExLGY9KDAscy5maW5hbGl6ZUxheW91dFZhcnlQYXRoKShsLG4pLGg9e30seSl7bGV0IHIsdSxkLGY9eVt0XSxSPWYubmFtZSxQPWYucGFyYW1UeXBlLF89Zi5wYXJhbUtleTtpZihudWxsIT09UCl7bGV0IGU9KDAscC5wYXJzZUR5bmFtaWNQYXJhbUZyb21VUkxQYXJ0KShQLGEsbyksdD1udWxsIT09Xz9fOigwLHAuZ2V0Q2FjaGVLZXlGb3JEeW5hbWljUGFyYW0pKGUsIiIpO2Q9KDAscy5hcHBlbmRMYXlvdXRWYXJ5UGF0aCkobix0KSx1PVtSLHQsUF0scj0hMH1lbHNlIGQ9bix1PVIscj0oMCxwLmRvZXNTdGF0aWNTZWdtZW50QXBwZWFySW5VUkwpKFIpO2xldCB2PXI/bysxOm8sbT0oMCxnLmNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydCkodSksRT0oMCxnLmFwcGVuZFNlZ21lbnRSZXF1ZXN0S2V5UGFydCkobCx0LG0pO2hbdF09ZShmLHUsZCxFLGEsdixpLGMpfWVsc2UgbC5lbmRzV2l0aCh2LlBBR0VfU0VHTUVOVF9LRVkpPyhkPSEwLGY9KDAscy5maW5hbGl6ZVBhZ2VWYXJ5UGF0aCkobCxpLG4pLG51bGw9PT1jLm1ldGFkYXRhVmFyeVBhdGgmJihjLm1ldGFkYXRhVmFyeVBhdGg9KDAscy5maW5hbGl6ZU1ldGFkYXRhVmFyeVBhdGgpKGwsaSxuKSkpOihkPSExLGY9KDAscy5maW5hbGl6ZUxheW91dFZhcnlQYXRoKShsLG4pKTtyZXR1cm57cmVxdWVzdEtleTpsLHNlZ21lbnQ6cix2YXJ5UGF0aDpmLGlzUGFnZTpkLHNsb3RzOmgsaXNSb290TGF5b3V0OnQuaXNSb290TGF5b3V0LGhhc0xvYWRpbmdCb3VuZGFyeTp1Lkhhc0xvYWRpbmdCb3VuZGFyeS5TZWdtZW50SGFzTG9hZGluZ0JvdW5kYXJ5LGhhc1J1bnRpbWVQcmVmZXRjaDp0Lmhhc1J1bnRpbWVQcmVmZXRjaH19KGEudHJlZSxuLG51bGwsZy5ST09UX1NFR01FTlRfUkVRVUVTVF9LRVksdCwwLGYsaCkpLFA9aC5tZXRhZGF0YVZhcnlQYXRoO2lmKG51bGw9PT1QKXJldHVybiBYKGUsRGF0ZS5ub3coKSsxZTQpLG51bGw7bGV0IF89YihhLnN0YWxlVGltZSk7RyhlLFIsUCxEYXRlLm5vdygpK18saixTLGYsTSl9ZWxzZXtsZXQgbj1lbihyLmJvZHksdy5yZXNvbHZlLGZ1bmN0aW9uKHQpeygwLHkuc2V0U2l6ZUluQ2FjaGVNYXApKGUsdCl9KSxsPWF3YWl0ICgwLGkuY3JlYXRlRnJvbU5leHRSZWFkYWJsZVN0cmVhbSkobixjKTtpZihsLmIhPT0oMCxkLmdldEFwcEJ1aWxkSWQpKCkpcmV0dXJuIFgoZSxEYXRlLm5vdygpKzFlNCksbnVsbDshZnVuY3Rpb24oZSx0LHIsbixsLGEsaSxjLGQpe2xldCBmPSgwLHAuZ2V0UmVuZGVyZWRTZWFyY2gpKG4pLGg9KDAsUi5ub3JtYWxpemVGbGlnaHREYXRhKShsLmYpO2lmKCJzdHJpbmciPT10eXBlb2YgaHx8MSE9PWgubGVuZ3RoKXJldHVybiBYKGEsZSsxZTQpO2xldCB5PWhbMF07aWYoIXkuaXNSb290UmVuZGVyKXJldHVybiBYKGEsZSsxZTQpO2xldCBfPXkudHJlZSxtPSJudW1iZXIiPT10eXBlb2YgbC5ycD8uWzFdP2wucnBbMV06cGFyc2VJbnQobi5oZWFkZXJzLmdldChvLk5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSKT8/IiIsMTApLEU9aXNOYU4obSk/UC5TVEFUSUNfU1RBTEVUSU1FX01TOmIobSksUz0iMSI9PT1uLmhlYWRlcnMuZ2V0KG8uTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSKSxUPXttZXRhZGF0YVZhcnlQYXRoOm51bGx9LE89ZnVuY3Rpb24gZSh0LHIsbixsLGEpe2xldCBvLGksYyxkLGY9dFswXTtpZihBcnJheS5pc0FycmF5KGYpKXtjPSExO2xldCBlPWZbMV07aT0oMCxzLmFwcGVuZExheW91dFZhcnlQYXRoKShuLGUpLGQ9KDAscy5maW5hbGl6ZUxheW91dFZhcnlQYXRoKShyLGkpLG89Zn1lbHNlIGk9bixyLmVuZHNXaXRoKHYuUEFHRV9TRUdNRU5UX0tFWSk/KGM9ITAsbz12LlBBR0VfU0VHTUVOVF9LRVksZD0oMCxzLmZpbmFsaXplUGFnZVZhcnlQYXRoKShyLGwsaSksbnVsbD09PWEubWV0YWRhdGFWYXJ5UGF0aCYmKGEubWV0YWRhdGFWYXJ5UGF0aD0oMCxzLmZpbmFsaXplTWV0YWRhdGFWYXJ5UGF0aCkocixsLGkpKSk6KGM9ITEsbz1mLGQ9KDAscy5maW5hbGl6ZUxheW91dFZhcnlQYXRoKShyLGkpKTtsZXQgaD1udWxsLHA9dFsxXTtmb3IobGV0IHQgaW4gcCl7bGV0IG49cFt0XSx1PW5bMF0sbz0oMCxnLmNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydCkodSksYz1lKG4sKDAsZy5hcHBlbmRTZWdtZW50UmVxdWVzdEtleVBhcnQpKHIsdCxvKSxpLGwsYSk7bnVsbD09PWg/aD17W3RdOmN9OmhbdF09Y31yZXR1cm57cmVxdWVzdEtleTpyLHNlZ21lbnQ6byx2YXJ5UGF0aDpkLGlzUGFnZTpjLHNsb3RzOmgsaXNSb290TGF5b3V0OiEwPT09dFs0XSxoYXNMb2FkaW5nQm91bmRhcnk6dm9pZCAwIT09dFs1XT90WzVdOnUuSGFzTG9hZGluZ0JvdW5kYXJ5LlN1YnRyZWVIYXNOb0xvYWRpbmdCb3VuZGFyeSxoYXNSdW50aW1lUHJlZmV0Y2g6ITF9fShfLGcuUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZLG51bGwsZixUKSxqPVQubWV0YWRhdGFWYXJ5UGF0aDtpZihudWxsPT09ailyZXR1cm4gWChhLGUrMWU0KTtsZXQgdz1HKGEsTyxqLGUrRSxpLGMsZixkKTtlZShlLHQscixuLGwsUyx3LG51bGwpfShEYXRlLm5vdygpLHQsbS5GZXRjaFN0cmF0ZWd5LkxvYWRpbmdCb3VuZGFyeSxyLGwsZSxqLFMsTSl9aWYoIWope2xldCB0PSgwLHMuZ2V0RnVsZmlsbGVkUm91dGVWYXJ5UGF0aCkobixsLGEsaik7KDAseS5zZXRJbkNhY2hlTWFwKShPLHQsZSwhMSl9cmV0dXJue3ZhbHVlOm51bGwsY2xvc2VkOncucHJvbWlzZX19Y2F0Y2godCl7cmV0dXJuIFgoZSxEYXRlLm5vdygpKzFlNCksbnVsbH19YXN5bmMgZnVuY3Rpb24gUShlLHQscixuKXtsZXQgbD1uZXcgVVJMKGUuY2Fub25pY2FsVXJsLGxvY2F0aW9uLm9yaWdpbiksYT1yLm5leHRVcmwsdT1uLnJlcXVlc3RLZXksYz11PT09Zy5ST09UX1NFR01FTlRfUkVRVUVTVF9LRVk/Ii9faW5kZXgiOnUscz17W28uUlNDX0hFQURFUl06IjEiLFtvLk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl06IjEiLFtvLk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSXTpjfTtudWxsIT09YSYmKHNbby5ORVhUX1VSTF09YSk7dHJ5e2xldCByPWF3YWl0IGVyKGwscyk7aWYoIXJ8fCFyLm9rfHwyMDQ9PT1yLnN0YXR1c3x8IjIiIT09ci5oZWFkZXJzLmdldChvLk5FWFRfRElEX1BPU1RQT05FX0hFQURFUil8fCFyLmJvZHkpcmV0dXJuIFkodCxEYXRlLm5vdygpKzFlNCksbnVsbDtsZXQgbj0oMCxFLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLGE9ZW4oci5ib2R5LG4ucmVzb2x2ZSxmdW5jdGlvbihlKXsoMCx5LnNldFNpemVJbkNhY2hlTWFwKSh0LGUpfSksdT1hd2FpdCAoMCxpLmNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW0pKGEscyk7aWYodS5idWlsZElkIT09KDAsZC5nZXRBcHBCdWlsZElkKSgpKXJldHVybiBZKHQsRGF0ZS5ub3coKSsxZTQpLG51bGw7cmV0dXJue3ZhbHVlOlcodCx1LnJzYyx1LmxvYWRpbmcsZS5zdGFsZUF0LHUuaXNQYXJ0aWFsKSxjbG9zZWQ6bi5wcm9taXNlfX1jYXRjaChlKXtyZXR1cm4gWSh0LERhdGUubm93KCkrMWU0KSxudWxsfX1hc3luYyBmdW5jdGlvbiBKKGUsdCxyLG4sbCl7bGV0IGE9ZS5rZXksdT1uZXcgVVJMKHQuY2Fub25pY2FsVXJsLGxvY2F0aW9uLm9yaWdpbiksYz1hLm5leHRVcmw7MT09PWwuc2l6ZSYmbC5oYXModC5tZXRhZGF0YS5yZXF1ZXN0S2V5KSYmKG49VCk7bGV0IHM9e1tvLlJTQ19IRUFERVJdOiIxIixbby5ORVhUX1JPVVRFUl9TVEFURV9UUkVFX0hFQURFUl06KDAsUi5wcmVwYXJlRmxpZ2h0Um91dGVyU3RhdGVGb3JSZXF1ZXN0KShuKX07c3dpdGNoKG51bGwhPT1jJiYoc1tvLk5FWFRfVVJMXT1jKSxyKXtjYXNlIG0uRmV0Y2hTdHJhdGVneS5GdWxsOmJyZWFrO2Nhc2UgbS5GZXRjaFN0cmF0ZWd5LlBQUlJ1bnRpbWU6c1tvLk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl09IjIiO2JyZWFrO2Nhc2UgbS5GZXRjaFN0cmF0ZWd5LkxvYWRpbmdCb3VuZGFyeTpzW28uTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXT0iMSJ9dHJ5e2xldCBuPWF3YWl0IGVyKHUscyk7aWYoIW58fCFuLm9rfHwhbi5ib2R5fHwoMCxwLmdldFJlbmRlcmVkU2VhcmNoKShuKSE9PXQucmVuZGVyZWRTZWFyY2gpcmV0dXJuIFoobCxEYXRlLm5vdygpKzFlNCksbnVsbDtsZXQgYT0oMCxFLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLG89bnVsbCxjPWVuKG4uYm9keSxhLnJlc29sdmUsZnVuY3Rpb24oZSl7aWYobnVsbD09PW8pcmV0dXJuO2xldCB0PWUvby5sZW5ndGg7Zm9yKGxldCBlIG9mIG8pKDAseS5zZXRTaXplSW5DYWNoZU1hcCkoZSx0KX0pLGQ9YXdhaXQgKDAsaS5jcmVhdGVGcm9tTmV4dFJlYWRhYmxlU3RyZWFtKShjLHMpLGY9cj09PW0uRmV0Y2hTdHJhdGVneS5QUFJSdW50aW1lJiZkLnJwPy5bMF09PT0hMDtyZXR1cm4gbz1lZShEYXRlLm5vdygpLGUscixuLGQsZix0LGwpLHt2YWx1ZTpudWxsLGNsb3NlZDphLnByb21pc2V9fWNhdGNoKGUpe3JldHVybiBaKGwsRGF0ZS5ub3coKSsxZTQpLG51bGx9fWZ1bmN0aW9uIFooZSx0KXtsZXQgcj1bXTtmb3IobGV0IG4gb2YgZS52YWx1ZXMoKSkxPT09bi5zdGF0dXM/WShuLHQpOjI9PT1uLnN0YXR1cyYmci5wdXNoKG4pO3JldHVybiByfWZ1bmN0aW9uIGVlKGUsdCxyLG4sbCxhLHUsaSl7aWYobC5iIT09KDAsZC5nZXRBcHBCdWlsZElkKSgpKXJldHVybiBudWxsIT09aSYmWihpLGUrMWU0KSxudWxsO2xldCBjPSgwLFIubm9ybWFsaXplRmxpZ2h0RGF0YSkobC5mKTtpZigic3RyaW5nIj09dHlwZW9mIGMpcmV0dXJuIG51bGw7bGV0IHM9Im51bWJlciI9PXR5cGVvZiBsLnJwPy5bMV0/bC5ycFsxXTpwYXJzZUludChuLmhlYWRlcnMuZ2V0KG8uTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIpPz8iIiwxMCksZj1lKyhpc05hTihzKT9QLlNUQVRJQ19TVEFMRVRJTUVfTVM6YihzKSk7Zm9yKGxldCBuIG9mIGMpe2xldCBsPW4uc2VlZERhdGE7aWYobnVsbCE9PWwpe2xldCBvPW4uc2VnbWVudFBhdGgsYz11LnRyZWU7Zm9yKGxldCB0PTA7dDxvLmxlbmd0aDt0Kz0yKXtsZXQgcj1vW3RdO2lmKGM/LnNsb3RzPy5bcl09PT12b2lkIDApcmV0dXJuIG51bGwhPT1pJiZaKGksZSsxZTQpLG51bGw7Yz1jLnNsb3RzW3JdfSFmdW5jdGlvbiBlKHQscixuLGwsYSx1LG8saSxjKXtsZXQgcz1vWzBdO2V0KHQsbixsLHMsb1syXSxudWxsPT09c3x8aSx1LGEsYyk7bGV0IGQ9YS5zbG90cztpZihudWxsIT09ZCl7bGV0IGE9b1sxXTtmb3IobGV0IG8gaW4gZCl7bGV0IHM9ZFtvXSxmPWFbb107bnVsbCE9ZiYmZSh0LHIsbixsLHMsdSxmLGksYyl9fX0oZSx0LHIsdSxjLGYsbCxhLGkpfWxldCBvPW4uaGVhZDtudWxsIT09byYmZXQoZSxyLHUsbyxudWxsLG4uaXNIZWFkUGFydGlhbCxmLHUubWV0YWRhdGEsaSl9cmV0dXJuIG51bGwhPT1pP1ooaSxlKzFlNCk6bnVsbH1mdW5jdGlvbiBldChlLHQscixuLGwsYSx1LG8saSl7bGV0IGM9bnVsbCE9PWk/aS5nZXQoby5yZXF1ZXN0S2V5KTp2b2lkIDA7aWYodm9pZCAwIT09YylXKGMsbixsLHUsYSk7ZWxzZXtsZXQgaT1rKGUsdCxyLG8pO2lmKDA9PT1pLnN0YXR1cylXKEsoaSx0KSxuLGwsdSxhKTtlbHNle2xldCByPVcoSyh6KHUpLHQpLG4sbCx1LGEpO1YoZSwoMCxzLmdldFNlZ21lbnRWYXJ5UGF0aEZvclJlcXVlc3QpKHQsbykscil9fX1hc3luYyBmdW5jdGlvbiBlcihlLHQpe2xldCByPWF3YWl0ICgwLGkuY3JlYXRlRmV0Y2gpKGUsdCwibG93IiwhMSk7aWYoIXIub2spcmV0dXJuIG51bGw7e2xldCBlPXIuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpO2lmKCEoZSYmZS5zdGFydHNXaXRoKG8uUlNDX0NPTlRFTlRfVFlQRV9IRUFERVIpKSlyZXR1cm4gbnVsbH1yZXR1cm4gcn1mdW5jdGlvbiBlbihlLHQscil7bGV0IG49MCxsPWUuZ2V0UmVhZGVyKCk7cmV0dXJuIG5ldyBSZWFkYWJsZVN0cmVhbSh7YXN5bmMgcHVsbChlKXtmb3IoOzspe2xldHtkb25lOmEsdmFsdWU6dX09YXdhaXQgbC5yZWFkKCk7aWYoIWEpe2UuZW5xdWV1ZSh1KSxyKG4rPXUuYnl0ZUxlbmd0aCk7Y29udGludWV9dCgpO3JldHVybn19fSl9ZnVuY3Rpb24gZWwoZSx0KXtyZXR1cm4gZTx0fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDc2MDM1NSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwibmF2aWdhdGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzfX0pO2xldCBuPWUucig3ODcyODgpLGw9ZS5yKDU5NTg3MSksYT1lLnIoNDUxMTkxKSx1PWUucig2MjA4OTYpLG89ZS5yKDQ3NzA0OCksaT1lLnIoODEzMjU4KSxjPWUucig1MDkzOTYpO2Z1bmN0aW9uIHMoZSx0LHIsbixsLGEsaSl7bGV0IHM9RGF0ZS5ub3coKSxmPWUuaHJlZixnPWY9PT13aW5kb3cubG9jYXRpb24uaHJlZixSPSgwLG8uY3JlYXRlQ2FjaGVLZXkpKGYsbCksUD0oMCx1LnJlYWRSb3V0ZUNhY2hlRW50cnkpKHMsUik7aWYobnVsbCE9PVAmJlAuc3RhdHVzPT09dS5FbnRyeVN0YXR1cy5GdWxmaWxsZWQpe2xldCB1PWgocyxQLFAudHJlZSksbz11LmZsaWdodFJvdXRlclN0YXRlLGk9dS5zZWVkRGF0YSxjPXAocyxQKSxmPWMucnNjLHk9Yy5pc1BhcnRpYWwsUj1QLmNhbm9uaWNhbFVybCtlLmhhc2g7cmV0dXJuIGQocyxlLHQsbCxnLHIsbixvLGksZix5LFIsUC5yZW5kZXJlZFNlYXJjaCxhLGUuaGFzaCl9aWYobnVsbD09PVB8fFAuc3RhdHVzIT09dS5FbnRyeVN0YXR1cy5SZWplY3RlZCl7bGV0IG89KDAsdS5yZXF1ZXN0T3B0aW1pc3RpY1JvdXRlQ2FjaGVFbnRyeSkocyxlLGwpO2lmKG51bGwhPT1vKXtsZXQgdT1oKHMsbyxvLnRyZWUpLGk9dS5mbGlnaHRSb3V0ZXJTdGF0ZSxjPXUuc2VlZERhdGEsZj1wKHMsbykseT1mLnJzYyxSPWYuaXNQYXJ0aWFsLFA9by5jYW5vbmljYWxVcmwrZS5oYXNoO3JldHVybiBkKHMsZSx0LGwsZyxyLG4saSxjLHksUixQLG8ucmVuZGVyZWRTZWFyY2gsYSxlLmhhc2gpfX1sZXQgXz1pLmNvbGxlY3RlZERlYnVnSW5mbz8/W107cmV0dXJuIHZvaWQgMD09PWkuY29sbGVjdGVkRGVidWdJbmZvJiYoXz1pLmNvbGxlY3RlZERlYnVnSW5mbz1bXSkse3RhZzpjLk5hdmlnYXRpb25SZXN1bHRUYWcuQXN5bmMsZGF0YTp5KHMsZSx0LGwsZyxyLG4sYSxlLmhhc2gsXyl9fWZ1bmN0aW9uIGQoZSx0LHIsYSx1LG8saSxzLGQsaCxwLHksZyxSLFApe2xldCBfPVtdLHY9KDAsbC5zdGFydFBQUk5hdmlnYXRpb24pKGUscixvLGkscyxkLGgscCx1LF8pO2lmKG51bGwhPT12KXtsZXQgZT12LmR5bmFtaWNSZXF1ZXN0VHJlZTtpZihudWxsIT09ZSl7bGV0IHI9KDAsbi5mZXRjaFNlcnZlclJlc3BvbnNlKShuZXcgVVJMKHksdC5vcmlnaW4pLHtmbGlnaHRSb3V0ZXJTdGF0ZTplLG5leHRVcmw6YX0pOygwLGwubGlzdGVuRm9yRHluYW1pY1JlcXVlc3QpKHYscil9cmV0dXJuIGYodixvLHksZyxfLFIsUCl9cmV0dXJue3RhZzpjLk5hdmlnYXRpb25SZXN1bHRUYWcuTm9PcCxkYXRhOntjYW5vbmljYWxVcmw6eSxzaG91bGRTY3JvbGw6Un19fWZ1bmN0aW9uIGYoZSx0LHIsbixsLGEsdSl7bGV0IG89ZS5yb3V0ZTtpZihudWxsPT09bylyZXR1cm57dGFnOmMuTmF2aWdhdGlvblJlc3VsdFRhZy5NUEEsZGF0YTpyfTtsZXQgaT1lLm5vZGU7cmV0dXJue3RhZzpjLk5hdmlnYXRpb25SZXN1bHRUYWcuU3VjY2VzcyxkYXRhOntmbGlnaHRSb3V0ZXJTdGF0ZTpvLGNhY2hlTm9kZTpudWxsIT09aT9pOnQsY2Fub25pY2FsVXJsOnIscmVuZGVyZWRTZWFyY2g6bixzY3JvbGxhYmxlU2VnbWVudHM6bCxzaG91bGRTY3JvbGw6YSxoYXNoOnV9fX1mdW5jdGlvbiBoKGUsdCxyKXtsZXQgbj17fSxsPXt9LGE9ci5zbG90cztpZihudWxsIT09YSlmb3IobGV0IHIgaW4gYSl7bGV0IHU9aChlLHQsYVtyXSk7bltyXT11LmZsaWdodFJvdXRlclN0YXRlLGxbcl09dS5zZWVkRGF0YX1sZXQgbz1udWxsLGM9bnVsbCxzPSEwLGQ9KDAsdS5yZWFkU2VnbWVudENhY2hlRW50cnkpKGUsci52YXJ5UGF0aCk7aWYobnVsbCE9PWQpc3dpdGNoKGQuc3RhdHVzKXtjYXNlIHUuRW50cnlTdGF0dXMuRnVsZmlsbGVkOm89ZC5yc2MsYz1kLmxvYWRpbmcscz1kLmlzUGFydGlhbDticmVhaztjYXNlIHUuRW50cnlTdGF0dXMuUGVuZGluZzp7bGV0IGU9KDAsdS53YWl0Rm9yU2VnbWVudENhY2hlRW50cnkpKGQpO289ZS50aGVuKGU9Pm51bGwhPT1lP2UucnNjOm51bGwpLGM9ZS50aGVuKGU9Pm51bGwhPT1lP2UubG9hZGluZzpudWxsKSxzPSEwfWNhc2UgdS5FbnRyeVN0YXR1cy5FbXB0eTpjYXNlIHUuRW50cnlTdGF0dXMuUmVqZWN0ZWQ6fXJldHVybntmbGlnaHRSb3V0ZXJTdGF0ZTpbKDAsaS5hZGRTZWFyY2hQYXJhbXNJZlBhZ2VTZWdtZW50KShyLnNlZ21lbnQsT2JqZWN0LmZyb21FbnRyaWVzKG5ldyBVUkxTZWFyY2hQYXJhbXModC5yZW5kZXJlZFNlYXJjaCkpKSxuLG51bGwsbnVsbCxyLmlzUm9vdExheW91dF0sc2VlZERhdGE6W28sbCxjLHMsITFdfX1mdW5jdGlvbiBwKGUsdCl7bGV0IHI9bnVsbCxuPSEwLGw9KDAsdS5yZWFkU2VnbWVudENhY2hlRW50cnkpKGUsdC5tZXRhZGF0YS52YXJ5UGF0aCk7aWYobnVsbCE9PWwpc3dpdGNoKGwuc3RhdHVzKXtjYXNlIHUuRW50cnlTdGF0dXMuRnVsZmlsbGVkOnI9bC5yc2Msbj1sLmlzUGFydGlhbDticmVhaztjYXNlIHUuRW50cnlTdGF0dXMuUGVuZGluZzpyPSgwLHUud2FpdEZvclNlZ21lbnRDYWNoZUVudHJ5KShsKS50aGVuKGU9Pm51bGwhPT1lP2UucnNjOm51bGwpLG49ITA7Y2FzZSB1LkVudHJ5U3RhdHVzLkVtcHR5OmNhc2UgdS5FbnRyeVN0YXR1cy5SZWplY3RlZDp9cmV0dXJue3JzYzpyLGlzUGFydGlhbDpufX1hc3luYyBmdW5jdGlvbiB5KGUsdCxyLHUsbyxpLHMsZCxoLHApe2xldCB5PSgwLG4uZmV0Y2hTZXJ2ZXJSZXNwb25zZSkodCx7ZmxpZ2h0Um91dGVyU3RhdGU6cyxuZXh0VXJsOnV9KSxnPWF3YWl0IHk7aWYoInN0cmluZyI9PXR5cGVvZiBnKXJldHVybnt0YWc6Yy5OYXZpZ2F0aW9uUmVzdWx0VGFnLk1QQSxkYXRhOmd9O2xldHtmbGlnaHREYXRhOlIsY2Fub25pY2FsVXJsOlAscmVuZGVyZWRTZWFyY2g6XyxkZWJ1Z0luZm86dn09ZztudWxsIT09diYmcC5wdXNoKC4uLnYpO2xldCBtPWZ1bmN0aW9uKGUsdCl7bGV0IHI9ZTtmb3IobGV0e3NlZ21lbnRQYXRoOm4sdHJlZTpsfW9mIHQpe2xldCB0PXIhPT1lO3I9ZnVuY3Rpb24gZSh0LHIsbixsLGEpe2lmKGE9PT1uLmxlbmd0aClyZXR1cm4gcjtsZXQgdT1uW2FdLG89dFsxXSxpPXt9O2ZvcihsZXQgdCBpbiBvKWlmKHQ9PT11KXtsZXQgdT1vW3RdO2lbdF09ZSh1LHIsbixsLGErMil9ZWxzZSBpW3RdPW9bdF07aWYobClyZXR1cm4gdFsxXT1pLHQ7bGV0IGM9W3RbMF0saV07cmV0dXJuIDIgaW4gdCYmKGNbMl09dFsyXSksMyBpbiB0JiYoY1szXT10WzNdKSw0IGluIHQmJihjWzRdPXRbNF0pLGN9KHIsbCxuLHQsMCl9cmV0dXJuIHJ9KHMsUiksRT1bXSxiPSgwLGwuc3RhcnRQUFJOYXZpZ2F0aW9uKShlLHIsaSxzLG0sbnVsbCxudWxsLCEwLG8sRSk7cmV0dXJuIG51bGwhPT1iPyhudWxsIT09Yi5keW5hbWljUmVxdWVzdFRyZWUmJigwLGwubGlzdGVuRm9yRHluYW1pY1JlcXVlc3QpKGIseSksZihiLGksKDAsYS5jcmVhdGVIcmVmRnJvbVVybCkoUCksXyxFLGQsaCkpOnt0YWc6Yy5OYXZpZ2F0aW9uUmVzdWx0VGFnLk5vT3AsZGF0YTp7Y2Fub25pY2FsVXJsOigwLGEuY3JlYXRlSHJlZkZyb21VcmwpKFApLHNob3VsZFNjcm9sbDpkfX19KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzU0MDY5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtEWU5BTUlDX1NUQUxFVElNRV9NUzpmdW5jdGlvbigpe3JldHVybiBzfSxTVEFUSUNfU1RBTEVUSU1FX01TOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LGdlbmVyYXRlU2VnbWVudHNGcm9tUGF0Y2g6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZSh0KXtsZXQgcj1bXSxbbixsXT10O2lmKDA9PT1PYmplY3Qua2V5cyhsKS5sZW5ndGgpcmV0dXJuW1tuXV07Zm9yKGxldFt0LGFdb2YgT2JqZWN0LmVudHJpZXMobCkpZm9yKGxldCBsIG9mIGUoYSkpIiI9PT1uP3IucHVzaChbdCwuLi5sXSk6ci5wdXNoKFtuLHQsLi4ubF0pO3JldHVybiByfX0saGFuZGxlRXh0ZXJuYWxVcmw6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sbmF2aWdhdGVSZWR1Y2VyOmZ1bmN0aW9uKCl7cmV0dXJuIGh9fTtmb3IodmFyIGwgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDpuW2xdfSk7bGV0IGE9ZS5yKDQ1MTE5MSksdT1lLnIoMzQ3NDQyKSxvPWUucig3NjAzNTUpLGk9ZS5yKDUwOTM5NiksYz1lLnIoNjIwODk2KSxzPTFlMypOdW1iZXIoIjAiKSxkPSgwLGMuZ2V0U3RhbGVUaW1lTXMpKE51bWJlcigiMzAwIikpO2Z1bmN0aW9uIGYoZSx0LHIsbil7cmV0dXJuIHQubXBhTmF2aWdhdGlvbj0hMCx0LmNhbm9uaWNhbFVybD1yLHQucGVuZGluZ1B1c2g9bix0LnNjcm9sbGFibGVTZWdtZW50cz12b2lkIDAsKDAsdS5oYW5kbGVNdXRhYmxlKShlLHQpfWZ1bmN0aW9uIGgoZSx0KXtsZXR7dXJsOnIsaXNFeHRlcm5hbFVybDpuLG5hdmlnYXRlVHlwZTpsLHNob3VsZFNjcm9sbDpjfT10LHM9e30sZD0oMCxhLmNyZWF0ZUhyZWZGcm9tVXJsKShyKSxoPSJwdXNoIj09PWw7aWYocy5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT0hMSxzLnBlbmRpbmdQdXNoPWgsbilyZXR1cm4gZihlLHMsci50b1N0cmluZygpLGgpO2lmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX25leHQtcGFnZS1yZWRpcmVjdCIpKXJldHVybiBmKGUscyxkLGgpO2xldCBwPW5ldyBVUkwoZS5jYW5vbmljYWxVcmwsbG9jYXRpb24ub3JpZ2luKSx5PSgwLG8ubmF2aWdhdGUpKHIscCxlLmNhY2hlLGUudHJlZSxlLm5leHRVcmwsYyxzKTtyZXR1cm4gZnVuY3Rpb24gZSh0LHIsbixsLGEpe3N3aXRjaChhLnRhZyl7Y2FzZSBpLk5hdmlnYXRpb25SZXN1bHRUYWcuTVBBOnJldHVybiBmKHIsbixhLmRhdGEsbCk7Y2FzZSBpLk5hdmlnYXRpb25SZXN1bHRUYWcuTm9PcDp7bi5jYW5vbmljYWxVcmw9YS5kYXRhLmNhbm9uaWNhbFVybDtsZXQgZT1uZXcgVVJMKHIuY2Fub25pY2FsVXJsLHQpO3JldHVybiB0LnBhdGhuYW1lPT09ZS5wYXRobmFtZSYmdC5zZWFyY2g9PT1lLnNlYXJjaCYmdC5oYXNoIT09ZS5oYXNoJiYobi5vbmx5SGFzaENoYW5nZT0hMCxuLnNob3VsZFNjcm9sbD1hLmRhdGEuc2hvdWxkU2Nyb2xsLG4uaGFzaEZyYWdtZW50PXQuaGFzaCxuLnNjcm9sbGFibGVTZWdtZW50cz1bXSksKDAsdS5oYW5kbGVNdXRhYmxlKShyLG4pfWNhc2UgaS5OYXZpZ2F0aW9uUmVzdWx0VGFnLlN1Y2Nlc3M6cmV0dXJuIG4uY2FjaGU9YS5kYXRhLmNhY2hlTm9kZSxuLnBhdGNoZWRUcmVlPWEuZGF0YS5mbGlnaHRSb3V0ZXJTdGF0ZSxuLnJlbmRlcmVkU2VhcmNoPWEuZGF0YS5yZW5kZXJlZFNlYXJjaCxuLmNhbm9uaWNhbFVybD1hLmRhdGEuY2Fub25pY2FsVXJsLG4uc2Nyb2xsYWJsZVNlZ21lbnRzPWEuZGF0YS5zY3JvbGxhYmxlU2VnbWVudHMsbi5zaG91bGRTY3JvbGw9YS5kYXRhLnNob3VsZFNjcm9sbCxuLmhhc2hGcmFnbWVudD1hLmRhdGEuaGFzaCwoMCx1LmhhbmRsZU11dGFibGUpKHIsbik7Y2FzZSBpLk5hdmlnYXRpb25SZXN1bHRUYWcuQXN5bmM6cmV0dXJuIGEuZGF0YS50aGVuKGE9PmUodCxyLG4sbCxhKSwoKT0+cik7ZGVmYXVsdDpyZXR1cm4gcn19KHIsZSxzLGgseSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjAxNzY0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJmaWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCxyLGwsYSx1LG8pe2lmKDA9PT1PYmplY3Qua2V5cyhhWzFdKS5sZW5ndGgpe3IuaGVhZD1vO3JldHVybn1mb3IobGV0IGkgaW4gYVsxXSl7bGV0IGMscz1hWzFdW2ldLGQ9c1swXSxmPSgwLG4uY3JlYXRlUm91dGVyQ2FjaGVLZXkpKGQpLGg9bnVsbCE9PXUmJnZvaWQgMCE9PXVbMV1baV0/dVsxXVtpXTpudWxsO2lmKGwpe2xldCBuPWwucGFyYWxsZWxSb3V0ZXMuZ2V0KGkpO2lmKG4pe2xldCBsLGE9bmV3IE1hcChuKSx1PWEuZ2V0KGYpO2w9bnVsbCE9PWg/e2xhenlEYXRhOm51bGwscnNjOmhbMF0scHJlZmV0Y2hSc2M6bnVsbCxoZWFkOm51bGwscHJlZmV0Y2hIZWFkOm51bGwsbG9hZGluZzpoWzJdLHBhcmFsbGVsUm91dGVzOm5ldyBNYXAodT8ucGFyYWxsZWxSb3V0ZXMpLG5hdmlnYXRlZEF0OnR9OntsYXp5RGF0YTpudWxsLHJzYzpudWxsLHByZWZldGNoUnNjOm51bGwsaGVhZDpudWxsLHByZWZldGNoSGVhZDpudWxsLHBhcmFsbGVsUm91dGVzOm5ldyBNYXAodT8ucGFyYWxsZWxSb3V0ZXMpLGxvYWRpbmc6bnVsbCxuYXZpZ2F0ZWRBdDp0fSxhLnNldChmLGwpLGUodCxsLHUscyxofHxudWxsLG8pLHIucGFyYWxsZWxSb3V0ZXMuc2V0KGksYSk7Y29udGludWV9fWlmKG51bGwhPT1oKXtsZXQgZT1oWzBdLHI9aFsyXTtjPXtsYXp5RGF0YTpudWxsLHJzYzplLHByZWZldGNoUnNjOm51bGwsaGVhZDpudWxsLHByZWZldGNoSGVhZDpudWxsLHBhcmFsbGVsUm91dGVzOm5ldyBNYXAsbG9hZGluZzpyLG5hdmlnYXRlZEF0OnR9fWVsc2UgYz17bGF6eURhdGE6bnVsbCxyc2M6bnVsbCxwcmVmZXRjaFJzYzpudWxsLGhlYWQ6bnVsbCxwcmVmZXRjaEhlYWQ6bnVsbCxwYXJhbGxlbFJvdXRlczpuZXcgTWFwLGxvYWRpbmc6bnVsbCxuYXZpZ2F0ZWRBdDp0fTtsZXQgcD1yLnBhcmFsbGVsUm91dGVzLmdldChpKTtwP3Auc2V0KGYsYyk6ci5wYXJhbGxlbFJvdXRlcy5zZXQoaSxuZXcgTWFwKFtbZixjXV0pKSxlKHQsYyx2b2lkIDAscyxoLG8pfX19fSk7bGV0IG49ZS5yKDI3MDcyNSk7KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjUxNTY1LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJpbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgbj1lLnIoMjcwNzI1KTtmdW5jdGlvbiBsKGUsdCxyKXtmb3IobGV0IGwgaW4gclsxXSl7bGV0IGE9clsxXVtsXVswXSx1PSgwLG4uY3JlYXRlUm91dGVyQ2FjaGVLZXkpKGEpLG89dC5wYXJhbGxlbFJvdXRlcy5nZXQobCk7aWYobyl7bGV0IHQ9bmV3IE1hcChvKTt0LmRlbGV0ZSh1KSxlLnBhcmFsbGVsUm91dGVzLnNldChsLHQpfX19KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNDg3NzUyLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtmaWxsQ2FjaGVXaXRoTmV3U3ViVHJlZURhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gc30sZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhQnV0T25seUxvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gZH19O2Zvcih2YXIgbCBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGwse2VudW1lcmFibGU6ITAsZ2V0Om5bbF19KTtsZXQgYT1lLnIoNjUxNTY1KSx1PWUucig2MDE3NjQpLG89ZS5yKDI3MDcyNSksaT1lLnIoODEzMjU4KTtmdW5jdGlvbiBjKGUsdCxyLG4sbCl7bGV0e3NlZ21lbnRQYXRoOmMsc2VlZERhdGE6cyx0cmVlOmQsaGVhZDpmfT1uLGg9dCxwPXI7Zm9yKGxldCB0PTA7dDxjLmxlbmd0aDt0Kz0yKXtsZXQgcj1jW3RdLG49Y1t0KzFdLHk9dD09PWMubGVuZ3RoLTIsZz0oMCxvLmNyZWF0ZVJvdXRlckNhY2hlS2V5KShuKSxSPXAucGFyYWxsZWxSb3V0ZXMuZ2V0KHIpO2lmKCFSKWNvbnRpbnVlO2xldCBQPWgucGFyYWxsZWxSb3V0ZXMuZ2V0KHIpO1AmJlAhPT1SfHwoUD1uZXcgTWFwKFIpLGgucGFyYWxsZWxSb3V0ZXMuc2V0KHIsUCkpO2xldCBfPVIuZ2V0KGcpLHY9UC5nZXQoZyk7aWYoeSl7aWYocyYmKCF2fHwhdi5sYXp5RGF0YXx8dj09PV8pKXtsZXQgdD1zWzBdLHI9c1syXTt2PXtsYXp5RGF0YTpudWxsLHJzYzpsfHxuIT09aS5QQUdFX1NFR01FTlRfS0VZP3Q6bnVsbCxwcmVmZXRjaFJzYzpudWxsLGhlYWQ6bnVsbCxwcmVmZXRjaEhlYWQ6bnVsbCxsb2FkaW5nOnIscGFyYWxsZWxSb3V0ZXM6bCYmXz9uZXcgTWFwKF8ucGFyYWxsZWxSb3V0ZXMpOm5ldyBNYXAsbmF2aWdhdGVkQXQ6ZX0sXyYmbCYmKDAsYS5pbnZhbGlkYXRlQ2FjaGVCeVJvdXRlclN0YXRlKSh2LF8sZCksbCYmKDAsdS5maWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCkoZSx2LF8sZCxzLGYpLFAuc2V0KGcsdil9Y29udGludWV9diYmXyYmKHY9PT1fJiYodj17bGF6eURhdGE6di5sYXp5RGF0YSxyc2M6di5yc2MscHJlZmV0Y2hSc2M6di5wcmVmZXRjaFJzYyxoZWFkOnYuaGVhZCxwcmVmZXRjaEhlYWQ6di5wcmVmZXRjaEhlYWQscGFyYWxsZWxSb3V0ZXM6bmV3IE1hcCh2LnBhcmFsbGVsUm91dGVzKSxsb2FkaW5nOnYubG9hZGluZ30sUC5zZXQoZyx2KSksaD12LHA9Xyl9fWZ1bmN0aW9uIHMoZSx0LHIsbil7YyhlLHQscixuLCEwKX1mdW5jdGlvbiBkKGUsdCxyLG4pe2MoZSx0LHIsbiwhMSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODEwODI3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhcHBseUZsaWdodERhdGEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig2MDE3NjQpLGw9ZS5yKDQ4Nzc1Mik7ZnVuY3Rpb24gYShlLHQscixhKXtsZXR7dHJlZTp1LHNlZWREYXRhOm8saGVhZDppLGlzUm9vdFJlbmRlcjpjfT1hO2lmKG51bGw9PT1vKXJldHVybiExO2lmKGMpe2xldCBsPW9bMF07ci5sb2FkaW5nPW9bMl0sci5yc2M9bCxyLnByZWZldGNoUnNjPW51bGwsKDAsbi5maWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCkoZSxyLHQsdSxvLGkpfWVsc2Ugci5yc2M9dC5yc2Msci5wcmVmZXRjaFJzYz10LnByZWZldGNoUnNjLHIucGFyYWxsZWxSb3V0ZXM9bmV3IE1hcCh0LnBhcmFsbGVsUm91dGVzKSxyLmxvYWRpbmc9dC5sb2FkaW5nLCgwLGwuZmlsbENhY2hlV2l0aE5ld1N1YlRyZWVEYXRhKShlLHIsdCxhKTtyZXR1cm4hMH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw1MTM1NzYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2FkZFJlZnJlc2hNYXJrZXJUb0FjdGl2ZVBhcmFsbGVsU2VnbWVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZSh0LHIpe2xldFtuLGwsLGFdPXQ7Zm9yKGxldCB1IGluIG4uaW5jbHVkZXMoby5QQUdFX1NFR01FTlRfS0VZKSYmInJlZnJlc2giIT09YSYmKHRbMl09cix0WzNdPSJyZWZyZXNoIiksbCllKGxbdV0scil9fSxyZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fTtmb3IodmFyIGwgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDpuW2xdfSk7bGV0IGE9ZS5yKDgxMDgyNyksdT1lLnIoNzg3Mjg4KSxvPWUucig4MTMyNTgpO2FzeW5jIGZ1bmN0aW9uIGkoZSl7bGV0IHQ9bmV3IFNldDthd2FpdCBjKHsuLi5lLHJvb3RUcmVlOmUudXBkYXRlZFRyZWUsZmV0Y2hlZFNlZ21lbnRzOnR9KX1hc3luYyBmdW5jdGlvbiBjKHtuYXZpZ2F0ZWRBdDplLHN0YXRlOnQsdXBkYXRlZFRyZWU6cix1cGRhdGVkQ2FjaGU6bixpbmNsdWRlTmV4dFVybDpsLGZldGNoZWRTZWdtZW50czpvLHJvb3RUcmVlOmk9cixjYW5vbmljYWxVcmw6c30pe2xldFssZCxmLGhdPXIscD1bXTtpZihmJiZmIT09cyYmInJlZnJlc2giPT09aCYmIW8uaGFzKGYpKXtvLmFkZChmKTtsZXQgcj0oMCx1LmZldGNoU2VydmVyUmVzcG9uc2UpKG5ldyBVUkwoZixsb2NhdGlvbi5vcmlnaW4pLHtmbGlnaHRSb3V0ZXJTdGF0ZTpbaVswXSxpWzFdLGlbMl0sInJlZmV0Y2giXSxuZXh0VXJsOmw/dC5uZXh0VXJsOm51bGx9KS50aGVuKHQ9PntpZigic3RyaW5nIiE9dHlwZW9mIHQpe2xldHtmbGlnaHREYXRhOnJ9PXQ7Zm9yKGxldCB0IG9mIHIpKDAsYS5hcHBseUZsaWdodERhdGEpKGUsbixuLHQpfX0pO3AucHVzaChyKX1mb3IobGV0IHIgaW4gZCl7bGV0IGE9Yyh7bmF2aWdhdGVkQXQ6ZSxzdGF0ZTp0LHVwZGF0ZWRUcmVlOmRbcl0sdXBkYXRlZENhY2hlOm4saW5jbHVkZU5leHRVcmw6bCxmZXRjaGVkU2VnbWVudHM6byxyb290VHJlZTppLGNhbm9uaWNhbFVybDpzfSk7cC5wdXNoKGEpfWF3YWl0IFByb21pc2UuYWxsKHApfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDkyMjcxOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZSh0LHIsbixpKXtsZXQgYyxbcyxkLGYsaCxwXT1yO2lmKDE9PT10Lmxlbmd0aCl7bGV0IGU9byhyLG4pO3JldHVybigwLHUuYWRkUmVmcmVzaE1hcmtlclRvQWN0aXZlUGFyYWxsZWxTZWdtZW50cykoZSxpKSxlfWxldFt5LGddPXQ7aWYoISgwLGEubWF0Y2hTZWdtZW50KSh5LHMpKXJldHVybiBudWxsO2lmKDI9PT10Lmxlbmd0aCljPW8oZFtnXSxuKTtlbHNlIGlmKG51bGw9PT0oYz1lKCgwLGwuZ2V0TmV4dEZsaWdodFNlZ21lbnRQYXRoKSh0KSxkW2ddLG4saSkpKXJldHVybiBudWxsO2xldCBSPVt0WzBdLHsuLi5kLFtnXTpjfSxmLGhdO3JldHVybiBwJiYoUls0XT0hMCksKDAsdS5hZGRSZWZyZXNoTWFya2VyVG9BY3RpdmVQYXJhbGxlbFNlZ21lbnRzKShSLGkpLFJ9fX0pO2xldCBuPWUucig4MTMyNTgpLGw9ZS5yKDQ1MDU5MCksYT1lLnIoNzU2MDE5KSx1PWUucig1MTM1NzYpO2Z1bmN0aW9uIG8oZSx0KXtsZXRbcixsXT1lLFt1LGldPXQ7aWYodT09PW4uREVGQVVMVF9TRUdNRU5UX0tFWSYmciE9PW4uREVGQVVMVF9TRUdNRU5UX0tFWSlyZXR1cm4gZTtpZigoMCxhLm1hdGNoU2VnbWVudCkocix1KSl7bGV0IHQ9e307Zm9yKGxldCBlIGluIGwpdm9pZCAwIT09aVtlXT90W2VdPW8obFtlXSxpW2VdKTp0W2VdPWxbZV07Zm9yKGxldCBlIGluIGkpdFtlXXx8KHRbZV09aVtlXSk7bGV0IG49W3IsdF07cmV0dXJuIGVbMl0mJihuWzJdPWVbMl0pLGVbM10mJihuWzNdPWVbM10pLGVbNF0mJihuWzRdPWVbNF0pLG59cmV0dXJuIHR9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzYyNjM0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJBcHBSb3V0ZXJBbm5vdW5jZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1fX0pO2xldCBuPWUucigyNzE2NDUpLGw9ZS5yKDE3NDA4MCksYT0ibmV4dC1yb3V0ZS1hbm5vdW5jZXIiO2Z1bmN0aW9uIHUoe3RyZWU6ZX0pe2xldFt0LHJdPSgwLG4udXNlU3RhdGUpKG51bGwpOygwLG4udXNlRWZmZWN0KSgoKT0+KHIoZnVuY3Rpb24oKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShhKVswXTtpZihlPy5zaGFkb3dSb290Py5jaGlsZE5vZGVzWzBdKXJldHVybiBlLnNoYWRvd1Jvb3QuY2hpbGROb2Rlc1swXTt7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChhKTtlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlIjtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5hcmlhTGl2ZT0iYXNzZXJ0aXZlIix0LmlkPSJfX25leHQtcm91dGUtYW5ub3VuY2VyX18iLHQucm9sZT0iYWxlcnQiLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7aGVpZ2h0OjFweDttYXJnaW46LTFweDtwYWRkaW5nOjA7d2lkdGg6MXB4O2NsaXA6cmVjdCgwIDAgMCAwKTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWwiLGUuYXR0YWNoU2hhZG93KHttb2RlOiJvcGVuIn0pLmFwcGVuZENoaWxkKHQpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksdH19KCkpLCgpPT57bGV0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSlbMF07ZT8uaXNDb25uZWN0ZWQmJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSl9KSxbXSk7bGV0W3Usb109KDAsbi51c2VTdGF0ZSkoIiIpLGk9KDAsbi51c2VSZWYpKHZvaWQgMCk7cmV0dXJuKDAsbi51c2VFZmZlY3QpKCgpPT57bGV0IGU9IiI7aWYoZG9jdW1lbnQudGl0bGUpZT1kb2N1bWVudC50aXRsZTtlbHNle2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImgxIik7dCYmKGU9dC5pbm5lclRleHR8fHQudGV4dENvbnRlbnR8fCIiKX12b2lkIDAhPT1pLmN1cnJlbnQmJmkuY3VycmVudCE9PWUmJm8oZSksaS5jdXJyZW50PWV9LFtlXSksdD8oMCxsLmNyZWF0ZVBvcnRhbCkodSx0KTpudWxsfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDQyNTAxOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZmluZEhlYWRJbkNhY2hlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTtsZXQgbj1lLnIoODEzMjU4KSxsPWUucigyNzA3MjUpO2Z1bmN0aW9uIGEoZSx0KXtyZXR1cm4gZnVuY3Rpb24gZSh0LHIsYSx1KXtpZigwPT09T2JqZWN0LmtleXMocikubGVuZ3RoKXJldHVyblt0LGEsdV07bGV0IG89T2JqZWN0LmtleXMocikuZmlsdGVyKGU9PiJjaGlsZHJlbiIhPT1lKTtmb3IobGV0IHUgb2YoImNoaWxkcmVuImluIHImJm8udW5zaGlmdCgiY2hpbGRyZW4iKSxvKSl7bGV0W28saV09clt1XTtpZihvPT09bi5ERUZBVUxUX1NFR01FTlRfS0VZKWNvbnRpbnVlO2xldCBjPXQucGFyYWxsZWxSb3V0ZXMuZ2V0KHUpO2lmKCFjKWNvbnRpbnVlO2xldCBzPSgwLGwuY3JlYXRlUm91dGVyQ2FjaGVLZXkpKG8pLGQ9KDAsbC5jcmVhdGVSb3V0ZXJDYWNoZUtleSkobywhMCksZj1jLmdldChzKTtpZighZiljb250aW51ZTtsZXQgaD1lKGYsaSxhKyIvIitzLGErIi8iK2QpO2lmKGgpcmV0dXJuIGh9cmV0dXJuIG51bGx9KGUsdCwiIiwiIil9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNTkwODQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInBhdGhIYXNQcmVmaXgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBsfX0pO2xldCBuPWUucig1NzI0NjMpO2Z1bmN0aW9uIGwoZSx0KXtpZigic3RyaW5nIiE9dHlwZW9mIGUpcmV0dXJuITE7bGV0e3BhdGhuYW1lOnJ9PSgwLG4ucGFyc2VQYXRoKShlKTtyZXR1cm4gcj09PXR8fHIuc3RhcnRzV2l0aCh0KyIvIil9fSw2NTI4MTcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImhhc0Jhc2VQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgbj1lLnIoNTkwODQpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuKDAsbi5wYXRoSGFzUHJlZml4KShlLCIiKX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwzODcyNTAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUpe3JldHVybiBlfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwicmVtb3ZlQmFzZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pLGUucig2NTI4MTcpLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI0MTYyNCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17R3JhY2VmdWxEZWdyYWRlQm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gb30sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucig4NDM0NzYpLHU9ZS5yKDI3MTY0NSk7Y2xhc3MgbyBleHRlbmRzIHUuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuc3RhdGU9e2hhc0Vycm9yOiExfSx0aGlzLnJvb3RIdG1sPSIiLHRoaXMuaHRtbEF0dHJpYnV0ZXM9e30sdGhpcy5odG1sUmVmPSgwLHUuY3JlYXRlUmVmKSgpfXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7cmV0dXJue2hhc0Vycm9yOiEwfX1jb21wb25lbnREaWRNb3VudCgpe2xldCBlPXRoaXMuaHRtbFJlZi5jdXJyZW50O3RoaXMuc3RhdGUuaGFzRXJyb3ImJmUmJk9iamVjdC5lbnRyaWVzKHRoaXMuaHRtbEF0dHJpYnV0ZXMpLmZvckVhY2goKFt0LHJdKT0+e2Uuc2V0QXR0cmlidXRlKHQscil9KX1yZW5kZXIoKXtsZXR7aGFzRXJyb3I6ZX09dGhpcy5zdGF0ZTtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fHRoaXMucm9vdEh0bWx8fCh0aGlzLnJvb3RIdG1sPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUwsdGhpcy5odG1sQXR0cmlidXRlcz1mdW5jdGlvbihlKXtsZXQgdD17fTtmb3IobGV0IHI9MDtyPGUuYXR0cmlidXRlcy5sZW5ndGg7cisrKXtsZXQgbj1lLmF0dHJpYnV0ZXNbcl07dFtuLm5hbWVdPW4udmFsdWV9cmV0dXJuIHR9KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpLGUpPygwLGEuanN4KSgiaHRtbCIse3JlZjp0aGlzLmh0bWxSZWYsc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nOiEwLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6dGhpcy5yb290SHRtbH19KTp0aGlzLnByb3BzLmNoaWxkcmVufX1sZXQgaT1vOygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDc5NDEwOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9fSk7bGV0IG49ZS5yKDU1NTY4MiksbD1lLnIoODQzNDc2KTtlLnIoMjcxNjQ1KTtsZXQgYT1uLl8oZS5yKDI0MTYyNCkpLHU9ZS5yKDk3MjM4Myksbz1lLnIoODI2MDQpLGk9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJigwLG8uaXNCb3QpKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtmdW5jdGlvbiBjKHtjaGlsZHJlbjplLGVycm9yQ29tcG9uZW50OnQsZXJyb3JTdHlsZXM6cixlcnJvclNjcmlwdHM6bn0pe3JldHVybiBpPygwLGwuanN4KShhLmRlZmF1bHQse2NoaWxkcmVuOmV9KTooMCxsLmpzeCkodS5FcnJvckJvdW5kYXJ5LHtlcnJvckNvbXBvbmVudDp0LGVycm9yU3R5bGVzOnIsZXJyb3JTY3JpcHRzOm4sY2hpbGRyZW46ZX0pfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDg3NTUzMCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Y3JlYXRlRW1wdHlDYWNoZU5vZGU6ZnVuY3Rpb24oKXtyZXR1cm4gQX0sZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBGfX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucig1NTU2ODIpLHU9ZS5yKDE5MDgwOSksbz1lLnIoODQzNDc2KSxpPXUuXyhlLnIoMjcxNjQ1KSksYz1lLnIoODM3Mikscz1lLnIoMzg4NTQwKSxkPWUucig0NTExOTEpLGY9ZS5yKDI2MTk5NCksaD1lLnIoOTQxNTM4KSxwPWUucig3NjI2MzQpLHk9ZS5yKDM1ODQ0MiksZz1lLnIoNDI1MDE4KSxSPWUucigyMDEyNDQpLFA9ZS5yKDM4NzI1MCksXz1lLnIoNjUyODE3KSx2PWUucig3MzQ3MjcpLG09ZS5yKDE3ODM3NyksRT1lLnIoNjk5NzgxKSxiPWUucigxMjQwNjMpLFM9ZS5yKDk2ODM5MSksVD1lLnIoOTE5NDkpLE89YS5fKGUucig3OTQxMDkpKSxqPWEuXyhlLnIoMTY4MDI3KSksdz1lLnIoODk3MzY3KSxNPXt9O2Z1bmN0aW9uIEMoe2FwcFJvdXRlclN0YXRlOmV9KXtyZXR1cm4oMCxpLnVzZUluc2VydGlvbkVmZmVjdCkoKCk9PntsZXR7dHJlZTp0LHB1c2hSZWY6cixjYW5vbmljYWxVcmw6bixyZW5kZXJlZFNlYXJjaDpsfT1lLGE9ey4uLnIucHJlc2VydmVDdXN0b21IaXN0b3J5U3RhdGU/d2luZG93Lmhpc3Rvcnkuc3RhdGU6e30sX19OQTohMCxfX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFOnt0cmVlOnQscmVuZGVyZWRTZWFyY2g6bH19O3IucGVuZGluZ1B1c2gmJigwLGQuY3JlYXRlSHJlZkZyb21VcmwpKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKSE9PW4/KHIucGVuZGluZ1B1c2g9ITEsd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlKGEsIiIsbikpOndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZShhLCIiLG4pfSxbZV0pLCgwLGkudXNlRWZmZWN0KSgoKT0+eygwLFQucGluZ1Zpc2libGVMaW5rcykoZS5uZXh0VXJsLGUudHJlZSl9LFtlLm5leHRVcmwsZS50cmVlXSksbnVsbH1mdW5jdGlvbiBBKCl7cmV0dXJue2xhenlEYXRhOm51bGwscnNjOm51bGwscHJlZmV0Y2hSc2M6bnVsbCxoZWFkOm51bGwscHJlZmV0Y2hIZWFkOm51bGwscGFyYWxsZWxSb3V0ZXM6bmV3IE1hcCxsb2FkaW5nOm51bGwsbmF2aWdhdGVkQXQ6LTF9fWZ1bmN0aW9uIE4oZSl7bnVsbD09ZSYmKGU9e30pO2xldCB0PXdpbmRvdy5oaXN0b3J5LnN0YXRlLHI9dD8uX19OQTtyJiYoZS5fX05BPXIpO2xldCBuPXQ/Ll9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU7cmV0dXJuIG4mJihlLl9fUFJJVkFURV9ORVhUSlNfSU5URVJOQUxTX1RSRUU9biksZX1mdW5jdGlvbiB4KHtoZWFkQ2FjaGVOb2RlOmV9KXtsZXQgdD1udWxsIT09ZT9lLmhlYWQ6bnVsbCxyPW51bGwhPT1lP2UucHJlZmV0Y2hIZWFkOm51bGwsbj1udWxsIT09cj9yOnQ7cmV0dXJuKDAsaS51c2VEZWZlcnJlZFZhbHVlKSh0LG4pfWZ1bmN0aW9uIEwoe2FjdGlvblF1ZXVlOmUsZ2xvYmFsRXJyb3I6dCx3ZWJTb2NrZXQ6cixzdGF0aWNJbmRpY2F0b3JTdGF0ZTpufSl7bGV0IGwsYT0oMCxoLnVzZUFjdGlvblF1ZXVlKShlKSx7Y2Fub25pY2FsVXJsOnV9PWEse3NlYXJjaFBhcmFtczpkLHBhdGhuYW1lOm19PSgwLGkudXNlTWVtbykoKCk9PntsZXQgZT1uZXcgVVJMKHUsInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/Imh0dHA6Ly9uIjp3aW5kb3cubG9jYXRpb24uaHJlZik7cmV0dXJue3NlYXJjaFBhcmFtczplLnNlYXJjaFBhcmFtcyxwYXRobmFtZTooMCxfLmhhc0Jhc2VQYXRoKShlLnBhdGhuYW1lKT8oMCxQLnJlbW92ZUJhc2VQYXRoKShlLnBhdGhuYW1lKTplLnBhdGhuYW1lfX0sW3VdKTsoMCxpLnVzZUVmZmVjdCkoKCk9PntmdW5jdGlvbiBlKGUpe2UucGVyc2lzdGVkJiZ3aW5kb3cuaGlzdG9yeS5zdGF0ZT8uX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSYmKE0ucGVuZGluZ01wYVBhdGg9dm9pZCAwLCgwLGguZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24pKHt0eXBlOnMuQUNUSU9OX1JFU1RPUkUsdXJsOm5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLGhpc3RvcnlTdGF0ZTp3aW5kb3cuaGlzdG9yeS5zdGF0ZS5fX1BSSVZBVEVfTkVYVEpTX0lOVEVSTkFMU19UUkVFfSkpfXJldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLGUpLCgpPT57d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixlKX19LFtdKSwoMCxpLnVzZUVmZmVjdCkoKCk9PntmdW5jdGlvbiBlKGUpe2xldCB0PSJyZWFzb24iaW4gZT9lLnJlYXNvbjplLmVycm9yO2lmKCgwLFMuaXNSZWRpcmVjdEVycm9yKSh0KSl7ZS5wcmV2ZW50RGVmYXVsdCgpO2xldCByPSgwLGIuZ2V0VVJMRnJvbVJlZGlyZWN0RXJyb3IpKHQpOygwLGIuZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yKSh0KT09PVMuUmVkaXJlY3RUeXBlLnB1c2g/RS5wdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZS5wdXNoKHIse30pOkUucHVibGljQXBwUm91dGVySW5zdGFuY2UucmVwbGFjZShyLHt9KX19cmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVuaGFuZGxlZHJlamVjdGlvbiIsZSksKCk9Pnt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ1bmhhbmRsZWRyZWplY3Rpb24iLGUpfX0sW10pO2xldHtwdXNoUmVmOlR9PWE7aWYoVC5tcGFOYXZpZ2F0aW9uKXtpZihNLnBlbmRpbmdNcGFQYXRoIT09dSl7bGV0IGU9d2luZG93LmxvY2F0aW9uO1QucGVuZGluZ1B1c2g/ZS5hc3NpZ24odSk6ZS5yZXBsYWNlKHUpLE0ucGVuZGluZ01wYVBhdGg9dX10aHJvdyBSLnVucmVzb2x2ZWRUaGVuYWJsZX0oMCxpLnVzZUVmZmVjdCkoKCk9PntsZXQgZT13aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUuYmluZCh3aW5kb3cuaGlzdG9yeSksdD13aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUuYmluZCh3aW5kb3cuaGlzdG9yeSkscj1lPT57bGV0IHQ9d2luZG93LmxvY2F0aW9uLmhyZWYscj13aW5kb3cuaGlzdG9yeS5zdGF0ZT8uX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRTsoMCxpLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCxoLmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKSh7dHlwZTpzLkFDVElPTl9SRVNUT1JFLHVybDpuZXcgVVJMKGU/P3QsdCksaGlzdG9yeVN0YXRlOnJ9KX0pfTt3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGU9ZnVuY3Rpb24odCxuLGwpe3JldHVybiB0Py5fX05BfHx0Py5fTnx8KHQ9Tih0KSxsJiZyKGwpKSxlKHQsbixsKX0sd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlPWZ1bmN0aW9uKGUsbixsKXtyZXR1cm4gZT8uX19OQXx8ZT8uX058fChlPU4oZSksbCYmcihsKSksdChlLG4sbCl9O2xldCBuPWU9PntpZihlLnN0YXRlKXtpZighZS5zdGF0ZS5fX05BKXJldHVybiB2b2lkIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsoMCxpLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCxFLmRpc3BhdGNoVHJhdmVyc2VBY3Rpb24pKHdpbmRvdy5sb2NhdGlvbi5ocmVmLGUuc3RhdGUuX19QUklWQVRFX05FWFRKU19JTlRFUk5BTFNfVFJFRSl9KX19O3JldHVybiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicG9wc3RhdGUiLG4pLCgpPT57d2luZG93Lmhpc3RvcnkucHVzaFN0YXRlPWUsd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlPXQsd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixuKX19LFtdKTtsZXR7Y2FjaGU6aix0cmVlOkEsbmV4dFVybDpMLGZvY3VzQW5kU2Nyb2xsUmVmOkYscHJldmlvdXNOZXh0VXJsOlV9PWEsST0oMCxpLnVzZU1lbW8pKCgpPT4oMCxnLmZpbmRIZWFkSW5DYWNoZSkoaixBWzFdKSxbaixBXSksaz0oMCxpLnVzZU1lbW8pKCgpPT4oMCx2LmdldFNlbGVjdGVkUGFyYW1zKShBKSxbQV0pLEg9KDAsaS51c2VNZW1vKSgoKT0+KHtwYXJlbnRUcmVlOkEscGFyZW50Q2FjaGVOb2RlOmoscGFyZW50U2VnbWVudFBhdGg6bnVsbCxwYXJlbnRQYXJhbXM6e30sZGVidWdOYW1lQ29udGV4dDoiLyIsdXJsOnUsaXNBY3RpdmU6ITB9KSxbQSxqLHVdKSxCPSgwLGkudXNlTWVtbykoKCk9Pih7dHJlZTpBLGZvY3VzQW5kU2Nyb2xsUmVmOkYsbmV4dFVybDpMLHByZXZpb3VzTmV4dFVybDpVfSksW0EsRixMLFVdKTtpZihudWxsIT09SSl7bGV0W2UsdCxyXT1JO2w9KDAsby5qc3gpKHgse2hlYWRDYWNoZU5vZGU6ZX0sInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/cjp0KX1lbHNlIGw9bnVsbDtsZXQgVj0oMCxvLmpzeHMpKHkuUmVkaXJlY3RCb3VuZGFyeSx7Y2hpbGRyZW46W2wsKDAsby5qc3gpKHcuUm9vdExheW91dEJvdW5kYXJ5LHtjaGlsZHJlbjpqLnJzY30pLCgwLG8uanN4KShwLkFwcFJvdXRlckFubm91bmNlcix7dHJlZTpBfSldfSk7cmV0dXJuIFY9KDAsby5qc3gpKE8uZGVmYXVsdCx7ZXJyb3JDb21wb25lbnQ6dFswXSxlcnJvclN0eWxlczp0WzFdLGNoaWxkcmVuOlZ9KSwoMCxvLmpzeHMpKG8uRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxvLmpzeCkoQyx7YXBwUm91dGVyU3RhdGU6YX0pLCgwLG8uanN4KShELHt9KSwoMCxvLmpzeCkoZi5OYXZpZ2F0aW9uUHJvbWlzZXNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpudWxsLGNoaWxkcmVuOigwLG8uanN4KShmLlBhdGhQYXJhbXNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTprLGNoaWxkcmVuOigwLG8uanN4KShmLlBhdGhuYW1lQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6bSxjaGlsZHJlbjooMCxvLmpzeCkoZi5TZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpkLGNoaWxkcmVuOigwLG8uanN4KShjLkdsb2JhbExheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXIse3ZhbHVlOkIsY2hpbGRyZW46KDAsby5qc3gpKGMuQXBwUm91dGVyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6RS5wdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZSxjaGlsZHJlbjooMCxvLmpzeCkoYy5MYXlvdXRSb3V0ZXJDb250ZXh0LlByb3ZpZGVyLHt2YWx1ZTpILGNoaWxkcmVuOlZ9KX0pfSl9KX0pfSl9KV19KX1mdW5jdGlvbiBGKHthY3Rpb25RdWV1ZTplLGdsb2JhbEVycm9yU3RhdGU6dCx3ZWJTb2NrZXQ6cixzdGF0aWNJbmRpY2F0b3JTdGF0ZTpufSl7KDAsbS51c2VOYXZGYWlsdXJlSGFuZGxlcikoKTtsZXQgbD0oMCxvLmpzeCkoTCx7YWN0aW9uUXVldWU6ZSxnbG9iYWxFcnJvcjp0LHdlYlNvY2tldDpyLHN0YXRpY0luZGljYXRvclN0YXRlOm59KTtyZXR1cm4oMCxvLmpzeCkoTy5kZWZhdWx0LHtlcnJvckNvbXBvbmVudDpqLmRlZmF1bHQsY2hpbGRyZW46bH0pfWxldCBVPW5ldyBTZXQsST1uZXcgU2V0O2Z1bmN0aW9uIEQoKXtsZXRbLGVdPWkuZGVmYXVsdC51c2VTdGF0ZSgwKSx0PVUuc2l6ZTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCk9PntsZXQgcj0oKT0+ZShlPT5lKzEpO3JldHVybiBJLmFkZChyKSx0IT09VS5zaXplJiZyKCksKCk9PntJLmRlbGV0ZShyKX19LFt0LGVdKSxbLi4uVV0ubWFwKChlLHQpPT4oMCxvLmpzeCkoImxpbmsiLHtyZWw6InN0eWxlc2hlZXQiLGhyZWY6YCR7ZX1gLHByZWNlZGVuY2U6Im5leHQifSx0KSl9Z2xvYmFsVGhpcy5fTl9FX1NUWUxFX0xPQUQ9ZnVuY3Rpb24oZSl7bGV0IHQ9VS5zaXplO3JldHVybiBVLmFkZChlKSxVLnNpemUhPT10JiZJLmZvckVhY2goZT0+ZSgpKSxQcm9taXNlLnJlc29sdmUoKX0sKCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODkxNjY4LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJzZXJ2ZXJQYXRjaFJlZHVjZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzfX0pO2xldCBuPWUucig0NTExOTEpLGw9ZS5yKDkyMjcxOSksYT1lLnIoNTQ4OTE5KSx1PWUucig3NTQwNjkpLG89ZS5yKDgxMDgyNyksaT1lLnIoMzQ3NDQyKSxjPWUucig4NzU1MzApO2Z1bmN0aW9uIHMoZSx0KXtsZXR7c2VydmVyUmVzcG9uc2U6cixuYXZpZ2F0ZWRBdDpzfT10LGQ9e307aWYoZC5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT0hMSwic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuKDAsdS5oYW5kbGVFeHRlcm5hbFVybCkoZSxkLHIsZS5wdXNoUmVmLnBlbmRpbmdQdXNoKTtsZXR7ZmxpZ2h0RGF0YTpmLGNhbm9uaWNhbFVybDpoLHJlbmRlcmVkU2VhcmNoOnB9PXIseT1lLnRyZWUsZz1lLmNhY2hlO2ZvcihsZXQgdCBvZiBmKXtsZXR7c2VnbWVudFBhdGg6cix0cmVlOml9PXQsZj0oMCxsLmFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSkoWyIiLC4uLnJdLHksaSxlLmNhbm9uaWNhbFVybCk7aWYobnVsbD09PWYpcmV0dXJuIGU7aWYoKDAsYS5pc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQpKHksZikpcmV0dXJuKDAsdS5oYW5kbGVFeHRlcm5hbFVybCkoZSxkLGUuY2Fub25pY2FsVXJsLGUucHVzaFJlZi5wZW5kaW5nUHVzaCk7ZC5jYW5vbmljYWxVcmw9KDAsbi5jcmVhdGVIcmVmRnJvbVVybCkoaCk7bGV0IFI9KDAsYy5jcmVhdGVFbXB0eUNhY2hlTm9kZSkoKTsoMCxvLmFwcGx5RmxpZ2h0RGF0YSkocyxnLFIsdCksZC5wYXRjaGVkVHJlZT1mLGQucmVuZGVyZWRTZWFyY2g9cCxkLmNhY2hlPVIsZz1SLHk9Zn1yZXR1cm4oMCxpLmhhbmRsZU11dGFibGUpKGUsZCl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNzM3OTAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInJlc3RvcmVSZWR1Y2VyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTtsZXQgbj1lLnIoNDUxMTkxKSxsPWUucig3MzQ3MjcpO2Z1bmN0aW9uIGEoZSx0KXtsZXQgcixhLHt1cmw6dSxoaXN0b3J5U3RhdGU6b309dCxpPSgwLG4uY3JlYXRlSHJlZkZyb21VcmwpKHUpO28/KHI9by50cmVlLGE9by5yZW5kZXJlZFNlYXJjaCk6KHI9ZS50cmVlLGE9ZS5yZW5kZXJlZFNlYXJjaCk7bGV0IGM9ZS5jYWNoZTtyZXR1cm57Y2Fub25pY2FsVXJsOmkscmVuZGVyZWRTZWFyY2g6YSxwdXNoUmVmOntwZW5kaW5nUHVzaDohMSxtcGFOYXZpZ2F0aW9uOiExLHByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlOiEwfSxmb2N1c0FuZFNjcm9sbFJlZjplLmZvY3VzQW5kU2Nyb2xsUmVmLGNhY2hlOmMsdHJlZTpyLG5leHRVcmw6KDAsbC5leHRyYWN0UGF0aEZyb21GbGlnaHRSb3V0ZXJTdGF0ZSkocik/P3UucGF0aG5hbWUscHJldmlvdXNOZXh0VXJsOm51bGwsZGVidWdJbmZvOm51bGx9fWUucig1OTU4NzEpLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY1NDAwMywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiaGFuZGxlU2VnbWVudE1pc21hdGNoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgbj1lLnIoNzU0MDY5KTtmdW5jdGlvbiBsKGUsdCxyKXtyZXR1cm4oMCxuLmhhbmRsZUV4dGVybmFsVXJsKShlLHt9LGUuY2Fub25pY2FsVXJsLCEwKX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwyNjk4NDUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInJlZnJlc2hSZWR1Y2VyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geX19KTtsZXQgbj1lLnIoNzg3Mjg4KSxsPWUucig0NTExOTEpLGE9ZS5yKDkyMjcxOSksdT1lLnIoNTQ4OTE5KSxvPWUucig3NTQwNjkpLGk9ZS5yKDM0NzQ0MiksYz1lLnIoNjAxNzY0KSxzPWUucig4NzU1MzApLGQ9ZS5yKDY1NDAwMyksZj1lLnIoMjg0MzU2KSxoPWUucig1MTM1NzYpLHA9ZS5yKDYyMDg5Nik7ZnVuY3Rpb24geShlLHQpe2xldHtvcmlnaW46cn09dCx5PXt9LGc9ZS5jYW5vbmljYWxVcmwsUj1lLnRyZWU7eS5wcmVzZXJ2ZUN1c3RvbUhpc3RvcnlTdGF0ZT0hMTtsZXQgUD0oMCxzLmNyZWF0ZUVtcHR5Q2FjaGVOb2RlKSgpLF89KDAsZi5oYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUpKGUudHJlZSk7UC5sYXp5RGF0YT0oMCxuLmZldGNoU2VydmVyUmVzcG9uc2UpKG5ldyBVUkwoZyxyKSx7ZmxpZ2h0Um91dGVyU3RhdGU6W1JbMF0sUlsxXSxSWzJdLCJyZWZldGNoIl0sbmV4dFVybDpfP2UubmV4dFVybDpudWxsfSk7bGV0IHY9RGF0ZS5ub3coKTtyZXR1cm4gUC5sYXp5RGF0YS50aGVuKGFzeW5jIHI9PntpZigic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuKDAsby5oYW5kbGVFeHRlcm5hbFVybCkoZSx5LHIsZS5wdXNoUmVmLnBlbmRpbmdQdXNoKTtsZXR7ZmxpZ2h0RGF0YTpuLGNhbm9uaWNhbFVybDpzLHJlbmRlcmVkU2VhcmNoOmZ9PXI7Zm9yKGxldCByIG9mKFAubGF6eURhdGE9bnVsbCxuKSl7bGV0e3RyZWU6bixzZWVkRGF0YTppLGhlYWQ6bSxpc1Jvb3RSZW5kZXI6RX09cjtpZighRSlyZXR1cm4gY29uc29sZS5sb2coIlJFRlJFU0ggRkFJTEVEIiksZTtsZXQgYj0oMCxhLmFwcGx5Um91dGVyU3RhdGVQYXRjaFRvVHJlZSkoWyIiXSxSLG4sZS5jYW5vbmljYWxVcmwpO2lmKG51bGw9PT1iKXJldHVybigwLGQuaGFuZGxlU2VnbWVudE1pc21hdGNoKShlLHQsbik7aWYoKDAsdS5pc05hdmlnYXRpbmdUb05ld1Jvb3RMYXlvdXQpKFIsYikpcmV0dXJuKDAsby5oYW5kbGVFeHRlcm5hbFVybCkoZSx5LGcsZS5wdXNoUmVmLnBlbmRpbmdQdXNoKTtpZih5LmNhbm9uaWNhbFVybD0oMCxsLmNyZWF0ZUhyZWZGcm9tVXJsKShzKSxudWxsIT09aSl7bGV0IHQ9aVswXSxyPWlbMl07UC5yc2M9dCxQLnByZWZldGNoUnNjPW51bGwsUC5sb2FkaW5nPXIsKDAsYy5maWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCkodixQLHZvaWQgMCxuLGksbSksKDAscC5yZXZhbGlkYXRlRW50aXJlQ2FjaGUpKGUubmV4dFVybCxiKX1hd2FpdCAoMCxoLnJlZnJlc2hJbmFjdGl2ZVBhcmFsbGVsU2VnbWVudHMpKHtuYXZpZ2F0ZWRBdDp2LHN0YXRlOmUsdXBkYXRlZFRyZWU6Yix1cGRhdGVkQ2FjaGU6UCxpbmNsdWRlTmV4dFVybDpfLGNhbm9uaWNhbFVybDp5LmNhbm9uaWNhbFVybHx8ZS5jYW5vbmljYWxVcmx9KSx5LmNhY2hlPVAseS5wYXRjaGVkVHJlZT1iLHkucmVuZGVyZWRTZWFyY2g9ZixSPWJ9cmV0dXJuKDAsaS5oYW5kbGVNdXRhYmxlKShlLHkpfSwoKT0+ZSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNDg2NzIwLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJobXJSZWZyZXNoUmVkdWNlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksZS5yKDc4NzI4OCksZS5yKDQ1MTE5MSksZS5yKDkyMjcxOSksZS5yKDU0ODkxOSksZS5yKDc1NDA2OSksZS5yKDM0NzQ0MiksZS5yKDgxMDgyNyksZS5yKDg3NTUzMCksZS5yKDY1NDAwMyksZS5yKDI4NDM1Nik7bGV0IG49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZX07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjI3ODAxLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhc3NpZ25Mb2NhdGlvbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSk7bGV0IG49ZS5yKDQwNTU1MCk7ZnVuY3Rpb24gbChlLHQpe2lmKGUuc3RhcnRzV2l0aCgiLiIpKXtsZXQgcj10Lm9yaWdpbit0LnBhdGhuYW1lO3JldHVybiBuZXcgVVJMKChyLmVuZHNXaXRoKCIvIik/cjpyKyIvIikrZSl9cmV0dXJuIG5ldyBVUkwoKDAsbi5hZGRCYXNlUGF0aCkoZSksdC5ocmVmKX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwyMzk3NDcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2V4dHJhY3RJbmZvRnJvbVNlcnZlclJlZmVyZW5jZUlkOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LG9taXRVbnVzZWRBcmdzOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fTtmb3IodmFyIGwgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixsLHtlbnVtZXJhYmxlOiEwLGdldDpuW2xdfSk7ZnVuY3Rpb24gYShlKXtsZXQgdD1wYXJzZUludChlLnNsaWNlKDAsMiksMTYpLHI9dD4+MSY2MyxuPUFycmF5KDYpO2ZvcihsZXQgZT0wO2U8NjtlKyspe2xldCB0PXI+PjUtZSYxO25bZV09MT09PXR9cmV0dXJue3R5cGU6MT09KHQ+PjcmMSk/InVzZS1jYWNoZSI6InNlcnZlci1hY3Rpb24iLHVzZWRBcmdzOm4saGFzUmVzdEFyZ3M6MT09KDEmdCl9fWZ1bmN0aW9uIHUoZSx0KXtsZXQgcj1BcnJheShlLmxlbmd0aCk7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspKG48NiYmdC51c2VkQXJnc1tuXXx8bj49NiYmdC5oYXNSZXN0QXJncykmJihyW25dPWVbbl0pO3JldHVybiByfX0sNzQ1Nzk0LChlLHQscik9PnsidXNlIHN0cmljdCI7bGV0IG47T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJzZXJ2ZXJBY3Rpb25SZWR1Y2VyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KTtsZXQgbD1lLnIoMTMyMTIwKSxhPWUucig5MjI0NSksdT1lLnIoNjIxNzY4KSxvPWUucigyOTI4MzgpLGk9ZS5yKDIzNTMyNiksYz1lLnIoNjI3ODAxKSxzPWUucig0NTExOTEpLGQ9ZS5yKDc1NDA2OSksZj1lLnIoOTIyNzE5KSxoPWUucig1NDg5MTkpLHA9ZS5yKDM0NzQ0MikseT1lLnIoNjAxNzY0KSxnPWUucig4NzU1MzApLFI9ZS5yKDI4NDM1NiksUD1lLnIoNjU0MDAzKSxfPWUucig1MTM1NzYpLHY9ZS5yKDQ1MDU5MCksbT1lLnIoMTI0MDYzKSxFPWUucig5NjgzOTEpLGI9ZS5yKDM4NzI1MCksUz1lLnIoNjUyODE3KSxUPWUucigyMzk3NDcpLE89ZS5yKDYyMDg5Niksaj1pLmNyZWF0ZUZyb21GZXRjaDthc3luYyBmdW5jdGlvbiB3KGUsdCx7YWN0aW9uSWQ6cixhY3Rpb25BcmdzOnN9KXtsZXQgZCxmLGgscCx5PSgwLGkuY3JlYXRlVGVtcG9yYXJ5UmVmZXJlbmNlU2V0KSgpLGc9KDAsVC5leHRyYWN0SW5mb0Zyb21TZXJ2ZXJSZWZlcmVuY2VJZCkociksUj0idXNlLWNhY2hlIj09PWcudHlwZT8oMCxULm9taXRVbnVzZWRBcmdzKShzLGcpOnMsUD1hd2FpdCAoMCxpLmVuY29kZVJlcGx5KShSLHt0ZW1wb3JhcnlSZWZlcmVuY2VzOnl9KSxfPXtBY2NlcHQ6dS5SU0NfQ09OVEVOVF9UWVBFX0hFQURFUixbdS5BQ1RJT05fSEVBREVSXTpyLFt1Lk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTooMCx2LnByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QpKGUudHJlZSl9O3QmJihfW3UuTkVYVF9VUkxdPXQpO2xldCBtPWF3YWl0IGZldGNoKGUuY2Fub25pY2FsVXJsLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6Xyxib2R5OlB9KTtpZigiMSI9PT1tLmhlYWRlcnMuZ2V0KHUuTkVYVF9BQ1RJT05fTk9UX0ZPVU5EX0hFQURFUikpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBvLlVucmVjb2duaXplZEFjdGlvbkVycm9yKGBTZXJ2ZXIgQWN0aW9uICIke3J9IiB3YXMgbm90IGZvdW5kIG9uIHRoZSBzZXJ2ZXIuIApSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ZhaWxlZC10by1maW5kLXNlcnZlci1hY3Rpb25gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTcxNSIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXQgYj1tLmhlYWRlcnMuZ2V0KCJ4LWFjdGlvbi1yZWRpcmVjdCIpLFtTLE9dPWI/LnNwbGl0KCI7Iil8fFtdO3N3aXRjaChPKXtjYXNlInB1c2giOmQ9RS5SZWRpcmVjdFR5cGUucHVzaDticmVhaztjYXNlInJlcGxhY2UiOmQ9RS5SZWRpcmVjdFR5cGUucmVwbGFjZTticmVhaztkZWZhdWx0OmQ9dm9pZCAwfWxldCB3PSEhbS5oZWFkZXJzLmdldCh1Lk5FWFRfSVNfUFJFUkVOREVSX0hFQURFUik7dHJ5e2xldCBlPUpTT04ucGFyc2UobS5oZWFkZXJzLmdldCgieC1hY3Rpb24tcmV2YWxpZGF0ZWQiKXx8IltbXSwwLDBdIik7Zj17cGF0aHM6ZVswXXx8W10sdGFnOiEhZVsxXSxjb29raWU6ZVsyXX19Y2F0Y2goZSl7Zj1NfWxldCBDPVM/KDAsYy5hc3NpZ25Mb2NhdGlvbikoUyxuZXcgVVJMKGUuY2Fub25pY2FsVXJsLHdpbmRvdy5sb2NhdGlvbi5ocmVmKSk6dm9pZCAwLEE9bS5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIiksTj0hIShBJiZBLnN0YXJ0c1dpdGgodS5SU0NfQ09OVEVOVF9UWVBFX0hFQURFUikpO2lmKCFOJiYhQyl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IobS5zdGF0dXM+PTQwMCYmInRleHQvcGxhaW4iPT09QT9hd2FpdCBtLnRleHQoKToiQW4gdW5leHBlY3RlZCByZXNwb25zZSB3YXMgcmVjZWl2ZWQgZnJvbSB0aGUgc2VydmVyLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMzk0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2lmKE4pe2xldCBlPWF3YWl0IGooUHJvbWlzZS5yZXNvbHZlKG0pLHtjYWxsU2VydmVyOmwuY2FsbFNlcnZlcixmaW5kU291cmNlTWFwVVJMOmEuZmluZFNvdXJjZU1hcFVSTCx0ZW1wb3JhcnlSZWZlcmVuY2VzOnksZGVidWdDaGFubmVsOm4mJm4oXyl9KTtoPUM/dm9pZCAwOmUuYSxwPSgwLHYubm9ybWFsaXplRmxpZ2h0RGF0YSkoZS5mKX1lbHNlIGg9dm9pZCAwLHA9dm9pZCAwO3JldHVybnthY3Rpb25SZXN1bHQ6aCxhY3Rpb25GbGlnaHREYXRhOnAscmVkaXJlY3RMb2NhdGlvbjpDLHJlZGlyZWN0VHlwZTpkLHJldmFsaWRhdGVkUGFydHM6Zixpc1ByZXJlbmRlcjp3fX1sZXQgTT17cGF0aHM6W10sdGFnOiExLGNvb2tpZTohMX07ZnVuY3Rpb24gQyhlLHQpe2xldHtyZXNvbHZlOnIscmVqZWN0Om59PXQsbD17fSxhPWUudHJlZTtsLnByZXNlcnZlQ3VzdG9tSGlzdG9yeVN0YXRlPSExO2xldCB1PShlLnByZXZpb3VzTmV4dFVybHx8ZS5uZXh0VXJsKSYmKDAsUi5oYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUpKGUudHJlZSk/ZS5wcmV2aW91c05leHRVcmx8fGUubmV4dFVybDpudWxsLG89RGF0ZS5ub3coKTtyZXR1cm4gdyhlLHUsdCkudGhlbihhc3luYyh7YWN0aW9uUmVzdWx0OmksYWN0aW9uRmxpZ2h0RGF0YTpjLHJlZGlyZWN0TG9jYXRpb246UixyZWRpcmVjdFR5cGU6dixyZXZhbGlkYXRlZFBhcnRzOlR9KT0+e2xldCBqO2lmKFImJih2PT09RS5SZWRpcmVjdFR5cGUucmVwbGFjZT8oZS5wdXNoUmVmLnBlbmRpbmdQdXNoPSExLGwucGVuZGluZ1B1c2g9ITEpOihlLnB1c2hSZWYucGVuZGluZ1B1c2g9ITAsbC5wZW5kaW5nUHVzaD0hMCksbC5jYW5vbmljYWxVcmw9aj0oMCxzLmNyZWF0ZUhyZWZGcm9tVXJsKShSLCExKSksIWMpcmV0dXJuKHIoaSksUik/KDAsZC5oYW5kbGVFeHRlcm5hbFVybCkoZSxsLFIuaHJlZixlLnB1c2hSZWYucGVuZGluZ1B1c2gpOmU7aWYoInN0cmluZyI9PXR5cGVvZiBjKXJldHVybiByKGkpLCgwLGQuaGFuZGxlRXh0ZXJuYWxVcmwpKGUsbCxjLGUucHVzaFJlZi5wZW5kaW5nUHVzaCk7bGV0IHc9VC5wYXRocy5sZW5ndGg+MHx8VC50YWd8fFQuY29va2llO2ZvcihsZXQgbiBvZih3JiYodC5kaWRSZXZhbGlkYXRlPSEwKSxjKSl7bGV0e3RyZWU6YyxzZWVkRGF0YTpzLGhlYWQ6cCxpc1Jvb3RSZW5kZXI6Un09bjtpZighUilyZXR1cm4gY29uc29sZS5sb2coIlNFUlZFUiBBQ1RJT04gQVBQTFkgRkFJTEVEIikscihpKSxlO2xldCB2PSgwLGYuYXBwbHlSb3V0ZXJTdGF0ZVBhdGNoVG9UcmVlKShbIiJdLGEsYyxqfHxlLmNhbm9uaWNhbFVybCk7aWYobnVsbD09PXYpcmV0dXJuIHIoaSksKDAsUC5oYW5kbGVTZWdtZW50TWlzbWF0Y2gpKGUsdCxjKTtpZigoMCxoLmlzTmF2aWdhdGluZ1RvTmV3Um9vdExheW91dCkoYSx2KSlyZXR1cm4gcihpKSwoMCxkLmhhbmRsZUV4dGVybmFsVXJsKShlLGwsanx8ZS5jYW5vbmljYWxVcmwsZS5wdXNoUmVmLnBlbmRpbmdQdXNoKTtpZihudWxsIT09cyl7bGV0IHQ9c1swXSxyPSgwLGcuY3JlYXRlRW1wdHlDYWNoZU5vZGUpKCk7ci5yc2M9dCxyLnByZWZldGNoUnNjPW51bGwsci5sb2FkaW5nPXNbMl0sKDAseS5maWxsTGF6eUl0ZW1zVGlsbExlYWZXaXRoSGVhZCkobyxyLHZvaWQgMCxjLHMscCksbC5jYWNoZT1yLCgwLE8ucmV2YWxpZGF0ZUVudGlyZUNhY2hlKShlLm5leHRVcmwsdiksdyYmYXdhaXQgKDAsXy5yZWZyZXNoSW5hY3RpdmVQYXJhbGxlbFNlZ21lbnRzKSh7bmF2aWdhdGVkQXQ6byxzdGF0ZTplLHVwZGF0ZWRUcmVlOnYsdXBkYXRlZENhY2hlOnIsaW5jbHVkZU5leHRVcmw6ISF1LGNhbm9uaWNhbFVybDpsLmNhbm9uaWNhbFVybHx8ZS5jYW5vbmljYWxVcmx9KX1sLnBhdGNoZWRUcmVlPXYsYT12fWlmKFImJmope2xldCBlPSgwLG0uZ2V0UmVkaXJlY3RFcnJvcikoKDAsUy5oYXNCYXNlUGF0aCkoaik/KDAsYi5yZW1vdmVCYXNlUGF0aCkoaik6aix2fHxFLlJlZGlyZWN0VHlwZS5wdXNoKTtlLmhhbmRsZWQ9ITAsbihlKX1lbHNlIHIoaSk7cmV0dXJuKDAscC5oYW5kbGVNdXRhYmxlKShlLGwpfSx0PT4obih0KSxlKSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODA0OTI0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJyZWR1Y2VyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc319KTtsZXQgbj1lLnIoMzg4NTQwKSxsPWUucig3NTQwNjkpLGE9ZS5yKDg5MTY2OCksdT1lLnIoNzM3OTApLG89ZS5yKDI2OTg0NSksaT1lLnIoNDg2NzIwKSxjPWUucig3NDU3OTQpLHM9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZX06ZnVuY3Rpb24oZSx0KXtzd2l0Y2godC50eXBlKXtjYXNlIG4uQUNUSU9OX05BVklHQVRFOnJldHVybigwLGwubmF2aWdhdGVSZWR1Y2VyKShlLHQpO2Nhc2Ugbi5BQ1RJT05fU0VSVkVSX1BBVENIOnJldHVybigwLGEuc2VydmVyUGF0Y2hSZWR1Y2VyKShlLHQpO2Nhc2Ugbi5BQ1RJT05fUkVTVE9SRTpyZXR1cm4oMCx1LnJlc3RvcmVSZWR1Y2VyKShlLHQpO2Nhc2Ugbi5BQ1RJT05fUkVGUkVTSDpyZXR1cm4oMCxvLnJlZnJlc2hSZWR1Y2VyKShlLHQpO2Nhc2Ugbi5BQ1RJT05fSE1SX1JFRlJFU0g6cmV0dXJuKDAsaS5obXJSZWZyZXNoUmVkdWNlcikoZSx0KTtjYXNlIG4uQUNUSU9OX1NFUlZFUl9BQ1RJT046cmV0dXJuKDAsYy5zZXJ2ZXJBY3Rpb25SZWR1Y2VyKShlLHQpO2RlZmF1bHQ6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJVbmtub3duIGFjdGlvbiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjk1IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX07KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNDAxNDExLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJwcmVmZXRjaCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7bGV0IG49ZS5yKDY1NzYzMCksbD1lLnIoNDc3MDQ4KSxhPWUucig3Nzc3MDkpLHU9ZS5yKDUwOTM5Nik7ZnVuY3Rpb24gbyhlLHQscixvLGkpe2xldCBjPSgwLG4uY3JlYXRlUHJlZmV0Y2hVUkwpKGUpO2lmKG51bGw9PT1jKXJldHVybjtsZXQgcz0oMCxsLmNyZWF0ZUNhY2hlS2V5KShjLmhyZWYsdCk7KDAsYS5zY2hlZHVsZVByZWZldGNoVGFzaykocyxyLG8sdS5QcmVmZXRjaFByaW9yaXR5LkRlZmF1bHQsaSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sNjk5NzgxLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtjcmVhdGVNdXRhYmxlQWN0aW9uUXVldWU6ZnVuY3Rpb24oKXtyZXR1cm4gUH0sZGlzcGF0Y2hOYXZpZ2F0ZUFjdGlvbjpmdW5jdGlvbigpe3JldHVybiBtfSxkaXNwYXRjaFRyYXZlcnNlQWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIEV9LGdldEN1cnJlbnRBcHBSb3V0ZXJTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBffSxwdWJsaWNBcHBSb3V0ZXJJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiBifX07Zm9yKHZhciBsIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbCx7ZW51bWVyYWJsZTohMCxnZXQ6bltsXX0pO2xldCBhPWUucigzODg1NDApLHU9ZS5yKDgwNDkyNCksbz1lLnIoMjcxNjQ1KSxpPWUucig1NjQyNDUpLGM9ZS5yKDUwOTM5Nikscz1lLnIoNDAxNDExKSxkPWUucig5NDE1MzgpLGY9ZS5yKDQwNTU1MCksaD1lLnIoNjU3NjMwKSxwPWUucig5MTk0OSk7ZnVuY3Rpb24geShlLHQpe251bGwhPT1lLnBlbmRpbmc/KGUucGVuZGluZz1lLnBlbmRpbmcubmV4dCxudWxsIT09ZS5wZW5kaW5nJiZnKHthY3Rpb25RdWV1ZTplLGFjdGlvbjplLnBlbmRpbmcsc2V0U3RhdGU6dH0pKTplLm5lZWRzUmVmcmVzaCYmKGUubmVlZHNSZWZyZXNoPSExLGUuZGlzcGF0Y2goe3R5cGU6YS5BQ1RJT05fUkVGUkVTSCxvcmlnaW46d2luZG93LmxvY2F0aW9uLm9yaWdpbn0sdCkpfWFzeW5jIGZ1bmN0aW9uIGcoe2FjdGlvblF1ZXVlOmUsYWN0aW9uOnQsc2V0U3RhdGU6cn0pe2xldCBuPWUuc3RhdGU7ZS5wZW5kaW5nPXQ7bGV0IGw9dC5wYXlsb2FkLHU9ZS5hY3Rpb24obixsKTtmdW5jdGlvbiBvKG4pe2lmKHQuZGlzY2FyZGVkKXt0LnBheWxvYWQudHlwZT09PWEuQUNUSU9OX1NFUlZFUl9BQ1RJT04mJnQucGF5bG9hZC5kaWRSZXZhbGlkYXRlJiYoZS5uZWVkc1JlZnJlc2g9ITApLHkoZSxyKTtyZXR1cm59ZS5zdGF0ZT1uLHkoZSxyKSx0LnJlc29sdmUobil9KDAsaS5pc1RoZW5hYmxlKSh1KT91LnRoZW4obyxuPT57eShlLHIpLHQucmVqZWN0KG4pfSk6byh1KX1sZXQgUj1udWxsO2Z1bmN0aW9uIFAoZSx0KXtsZXQgcj17c3RhdGU6ZSxkaXNwYXRjaDooZSx0KT0+KGZ1bmN0aW9uKGUsdCxyKXtsZXQgbj17cmVzb2x2ZTpyLHJlamVjdDooKT0+e319O2lmKHQudHlwZSE9PWEuQUNUSU9OX1JFU1RPUkUpe2xldCBlPW5ldyBQcm9taXNlKChlLHQpPT57bj17cmVzb2x2ZTplLHJlamVjdDp0fX0pOygwLG8uc3RhcnRUcmFuc2l0aW9uKSgoKT0+e3IoZSl9KX1sZXQgbD17cGF5bG9hZDp0LG5leHQ6bnVsbCxyZXNvbHZlOm4ucmVzb2x2ZSxyZWplY3Q6bi5yZWplY3R9O251bGw9PT1lLnBlbmRpbmc/KGUubGFzdD1sLGcoe2FjdGlvblF1ZXVlOmUsYWN0aW9uOmwsc2V0U3RhdGU6cn0pKTp0LnR5cGU9PT1hLkFDVElPTl9OQVZJR0FURXx8dC50eXBlPT09YS5BQ1RJT05fUkVTVE9SRT8oZS5wZW5kaW5nLmRpc2NhcmRlZD0hMCxsLm5leHQ9ZS5wZW5kaW5nLm5leHQsZyh7YWN0aW9uUXVldWU6ZSxhY3Rpb246bCxzZXRTdGF0ZTpyfSkpOihudWxsIT09ZS5sYXN0JiYoZS5sYXN0Lm5leHQ9bCksZS5sYXN0PWwpfSkocixlLHQpLGFjdGlvbjphc3luYyhlLHQpPT4oMCx1LnJlZHVjZXIpKGUsdCkscGVuZGluZzpudWxsLGxhc3Q6bnVsbCxvblJvdXRlclRyYW5zaXRpb25TdGFydDpudWxsIT09dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQub25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQ/dC5vblJvdXRlclRyYW5zaXRpb25TdGFydDpudWxsfTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl7aWYobnVsbCE9PVIpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJJbnRlcm5hbCBOZXh0LmpzIEVycm9yOiBjcmVhdGVNdXRhYmxlQWN0aW9uUXVldWUgd2FzIGNhbGxlZCBtb3JlIHRoYW4gb25jZSIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNjI0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO1I9cn1yZXR1cm4gcn1mdW5jdGlvbiBfKCl7cmV0dXJuIG51bGwhPT1SP1Iuc3RhdGU6bnVsbH1mdW5jdGlvbiB2KCl7cmV0dXJuIG51bGwhPT1SP1Iub25Sb3V0ZXJUcmFuc2l0aW9uU3RhcnQ6bnVsbH1mdW5jdGlvbiBtKGUsdCxyLG4pe2xldCBsPW5ldyBVUkwoKDAsZi5hZGRCYXNlUGF0aCkoZSksbG9jYXRpb24uaHJlZik7KDAscC5zZXRMaW5rRm9yQ3VycmVudE5hdmlnYXRpb24pKG4pO2xldCB1PXYoKTtudWxsIT09dSYmdShlLHQpLCgwLGQuZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24pKHt0eXBlOmEuQUNUSU9OX05BVklHQVRFLHVybDpsLGlzRXh0ZXJuYWxVcmw6KDAsaC5pc0V4dGVybmFsVVJMKShsKSxsb2NhdGlvblNlYXJjaDpsb2NhdGlvbi5zZWFyY2gsc2hvdWxkU2Nyb2xsOnIsbmF2aWdhdGVUeXBlOnR9KX1mdW5jdGlvbiBFKGUsdCl7bGV0IHI9digpO251bGwhPT1yJiZyKGUsInRyYXZlcnNlIiksKDAsZC5kaXNwYXRjaEFwcFJvdXRlckFjdGlvbikoe3R5cGU6YS5BQ1RJT05fUkVTVE9SRSx1cmw6bmV3IFVSTChlKSxoaXN0b3J5U3RhdGU6dH0pfWxldCBiPXtiYWNrOigpPT53aW5kb3cuaGlzdG9yeS5iYWNrKCksZm9yd2FyZDooKT0+d2luZG93Lmhpc3RvcnkuZm9yd2FyZCgpLHByZWZldGNoOihlLHQpPT57bGV0IHIsbj1mdW5jdGlvbigpe2lmKG51bGw9PT1SKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiSW50ZXJuYWwgTmV4dC5qcyBlcnJvcjogUm91dGVyIGFjdGlvbiBkaXNwYXRjaGVkIGJlZm9yZSBpbml0aWFsaXphdGlvbi4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTY2OCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gUn0oKTtzd2l0Y2godD8ua2luZD8/YS5QcmVmZXRjaEtpbmQuQVVUTyl7Y2FzZSBhLlByZWZldGNoS2luZC5BVVRPOnI9Yy5GZXRjaFN0cmF0ZWd5LlBQUjticmVhaztjYXNlIGEuUHJlZmV0Y2hLaW5kLkZVTEw6cj1jLkZldGNoU3RyYXRlZ3kuRnVsbDticmVhaztjYXNlIGEuUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWTpyZXR1cm47ZGVmYXVsdDpyPWMuRmV0Y2hTdHJhdGVneS5QUFJ9KDAscy5wcmVmZXRjaCkoZSxuLnN0YXRlLm5leHRVcmwsbi5zdGF0ZS50cmVlLHIsdD8ub25JbnZhbGlkYXRlPz9udWxsKX0scmVwbGFjZTooZSx0KT0+eygwLG8uc3RhcnRUcmFuc2l0aW9uKSgoKT0+e20oZSwicmVwbGFjZSIsdD8uc2Nyb2xsPz8hMCxudWxsKX0pfSxwdXNoOihlLHQpPT57KDAsby5zdGFydFRyYW5zaXRpb24pKCgpPT57bShlLCJwdXNoIix0Py5zY3JvbGw/PyEwLG51bGwpfSl9LHJlZnJlc2g6KCk9PnsoMCxvLnN0YXJ0VHJhbnNpdGlvbikoKCk9PnsoMCxkLmRpc3BhdGNoQXBwUm91dGVyQWN0aW9uKSh7dHlwZTphLkFDVElPTl9SRUZSRVNILG9yaWdpbjp3aW5kb3cubG9jYXRpb24ub3JpZ2lufSl9KX0saG1yUmVmcmVzaDooKT0+e3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiaG1yUmVmcmVzaCBjYW4gb25seSBiZSB1c2VkIGluIGRldmVsb3BtZW50IG1vZGUuIFBsZWFzZSB1c2UgcmVmcmVzaCBpbnN0ZWFkLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNDg1IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX07InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5uZXh0JiYod2luZG93Lm5leHQucm91dGVyPWIpLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9XSk7"}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/8e04a9f8bf49491d.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.230Z","timestamp":1785142498230,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/8e04a9f8bf49491d.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"8e04a9f8bf49491d.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"4e9cb54895dd866ae6db83d0872e9424\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/8e04a9f8bf49491d.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::bjzbw-1785142498235-05ab272fe85b\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":36968,"size_decoded":11636,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (35218)","md5":"4e9cb54895dd866ae6db83d0872e9424","sha1":"47a75715924b3134f2a83376f7750c98de2bb024","sha256":"79b31c15cbdc8955635dd51753d2cf2e0bc6f454b8176da8937b7beca6d8ae6c","sha512":"2db30523962fe380c0b801e91c05d2a251cb7490e9905da42de38d154c0cb14101c83a11e72ad8064bb9d06dfc9f238e411819ecff38349f741de997d1263225","ssdeep":"768:1tSTBpeE/d0rGV4xksc64Jysq7vgr9lNrtRkmi0QxUP1eLc8:DSTSE/debx/c64Jysq7vgr9lNrtW0fdU","tlshash":"e1f21ac0b41871345c3b61149c9e472ce1397b02aa675435b28e8c4ef6d2fed39baf65","first_seen":"2026-07-27T06:16:09.102946Z","last_seen":"2026-07-27T08:57:45.733371Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDg0MTk0Nyx0PT57InVzZSBzdHJpY3QiO2xldCBlPSgwLHQuaSg0NzUyNTQpLmRlZmF1bHQpKCJ4IixbWyJwYXRoIix7ZDoiTTE4IDYgNiAxOCIsa2V5OiIxYmw1ZjgifV0sWyJwYXRoIix7ZDoibTYgNiAxMiAxMiIsa2V5OiJkOGJrNnYifV1dKTt0LnMoWyJkZWZhdWx0IiwoKT0+ZV0pfSw4NDY2OTYsdD0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZT10LmkoMjcxNjQ1KSxhPXQuaSgxNzQwODApO2xldCByPUFycmF5KDEyKS5maWxsKDApLG89KHt2aXNpYmxlOnQsY2xhc3NOYW1lOmF9KT0+ZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZTpbInNvbm5lci1sb2FkaW5nLXdyYXBwZXIiLGFdLmZpbHRlcihCb29sZWFuKS5qb2luKCIgIiksImRhdGEtdmlzaWJsZSI6dH0sZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic29ubmVyLXNwaW5uZXIifSxyLm1hcCgodCxhKT0+ZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIse2NsYXNzTmFtZToic29ubmVyLWxvYWRpbmctYmFyIixrZXk6YHNwaW5uZXItYmFyLSR7YX1gfSkpKSksbj1lLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjAgMjAiLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyMCIsd2lkdGg6IjIwIn0sZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTEwIDE4YTggOCAwIDEwMC0xNiA4IDggMCAwMDAgMTZ6bTMuODU3LTkuODA5YS43NS43NSAwIDAwLTEuMjE0LS44ODJsLTMuNDgzIDQuNzktMS44OC0xLjg4YS43NS43NSAwIDEwLTEuMDYgMS4wNjFsMi41IDIuNWEuNzUuNzUgMCAwMDEuMTM3LS4wODlsNC01LjV6IixjbGlwUnVsZToiZXZlbm9kZCJ9KSkscz1lLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic3ZnIix7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6ImN1cnJlbnRDb2xvciIsaGVpZ2h0OiIyMCIsd2lkdGg6IjIwIn0sZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInBhdGgiLHtmaWxsUnVsZToiZXZlbm9kZCIsZDoiTTkuNDAxIDMuMDAzYzEuMTU1LTIgNC4wNDMtMiA1LjE5NyAwbDcuMzU1IDEyLjc0OGMxLjE1NCAyLS4yOSA0LjUtMi41OTkgNC41SDQuNjQ1Yy0yLjMwOSAwLTMuNzUyLTIuNS0yLjU5OC00LjVMOS40IDMuMDAzek0xMiA4LjI1YS43NS43NSAwIDAxLjc1Ljc1djMuNzVhLjc1Ljc1IDAgMDEtMS41IDBWOWEuNzUuNzUgMCAwMS43NS0uNzV6bTAgOC4yNWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXoiLGNsaXBSdWxlOiJldmVub2RkIn0pKSxpPWUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjIwIix3aWR0aDoiMjAifSxlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixkOiJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS03LTRhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwek05IDlhLjc1Ljc1IDAgMDAwIDEuNWguMjUzYS4yNS4yNSAwIDAxLjI0NC4zMDRsLS40NTkgMi4wNjZBMS43NSAxLjc1IDAgMDAxMC43NDcgMTVIMTFhLjc1Ljc1IDAgMDAwLTEuNWgtLjI1M2EuMjUuMjUgMCAwMS0uMjQ0LS4zMDRsLjQ1OS0yLjA2NkExLjc1IDEuNzUgMCAwMDkuMjUzIDlIOXoiLGNsaXBSdWxlOiJldmVub2RkIn0pKSxsPWUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJzdmciLHt4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHZpZXdCb3g6IjAgMCAyMCAyMCIsZmlsbDoiY3VycmVudENvbG9yIixoZWlnaHQ6IjIwIix3aWR0aDoiMjAifSxlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgicGF0aCIse2ZpbGxSdWxlOiJldmVub2RkIixkOiJNMTggMTBhOCA4IDAgMTEtMTYgMCA4IDggMCAwMTE2IDB6bS04LTVhLjc1Ljc1IDAgMDEuNzUuNzV2NC41YS43NS43NSAwIDAxLTEuNSAwdi00LjVBLjc1Ljc1IDAgMDExMCA1em0wIDEwYTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyeiIsY2xpcFJ1bGU6ImV2ZW5vZGQifSkpLGQ9ZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoInN2ZyIse3htbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsd2lkdGg6IjEyIixoZWlnaHQ6IjEyIix2aWV3Qm94OiIwIDAgMjQgMjQiLGZpbGw6Im5vbmUiLHN0cm9rZToiY3VycmVudENvbG9yIixzdHJva2VXaWR0aDoiMS41IixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn0sZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImxpbmUiLHt4MToiMTgiLHkxOiI2Iix4MjoiNiIseTI6IjE4In0pLGUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJsaW5lIix7eDE6IjYiLHkxOiI2Iix4MjoiMTgiLHkyOiIxOCJ9KSksYz0xLHU9bmV3IGNsYXNze2NvbnN0cnVjdG9yKCl7dGhpcy5zdWJzY3JpYmU9dD0+KHRoaXMuc3Vic2NyaWJlcnMucHVzaCh0KSwoKT0+e2xldCBlPXRoaXMuc3Vic2NyaWJlcnMuaW5kZXhPZih0KTt0aGlzLnN1YnNjcmliZXJzLnNwbGljZShlLDEpfSksdGhpcy5wdWJsaXNoPXQ9Pnt0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goZT0+ZSh0KSl9LHRoaXMuYWRkVG9hc3Q9dD0+e3RoaXMucHVibGlzaCh0KSx0aGlzLnRvYXN0cz1bLi4udGhpcy50b2FzdHMsdF19LHRoaXMuY3JlYXRlPXQ9Pnt2YXIgZTtsZXR7bWVzc2FnZTphLC4uLnJ9PXQsbz0ibnVtYmVyIj09dHlwZW9mKG51bGw9PXQ/dm9pZCAwOnQuaWQpfHwobnVsbD09KGU9dC5pZCk/dm9pZCAwOmUubGVuZ3RoKT4wP3QuaWQ6YysrLG49dGhpcy50b2FzdHMuZmluZCh0PT50LmlkPT09bykscz12b2lkIDA9PT10LmRpc21pc3NpYmxlfHx0LmRpc21pc3NpYmxlO3JldHVybiB0aGlzLmRpc21pc3NlZFRvYXN0cy5oYXMobykmJnRoaXMuZGlzbWlzc2VkVG9hc3RzLmRlbGV0ZShvKSxuP3RoaXMudG9hc3RzPXRoaXMudG9hc3RzLm1hcChlPT5lLmlkPT09bz8odGhpcy5wdWJsaXNoKHsuLi5lLC4uLnQsaWQ6byx0aXRsZTphfSksey4uLmUsLi4udCxpZDpvLGRpc21pc3NpYmxlOnMsdGl0bGU6YX0pOmUpOnRoaXMuYWRkVG9hc3Qoe3RpdGxlOmEsLi4ucixkaXNtaXNzaWJsZTpzLGlkOm99KSxvfSx0aGlzLmRpc21pc3M9dD0+KHQ/KHRoaXMuZGlzbWlzc2VkVG9hc3RzLmFkZCh0KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PnRoaXMuc3Vic2NyaWJlcnMuZm9yRWFjaChlPT5lKHtpZDp0LGRpc21pc3M6ITB9KSkpKTp0aGlzLnRvYXN0cy5mb3JFYWNoKHQ9Pnt0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goZT0+ZSh7aWQ6dC5pZCxkaXNtaXNzOiEwfSkpfSksdCksdGhpcy5tZXNzYWdlPSh0LGUpPT50aGlzLmNyZWF0ZSh7Li4uZSxtZXNzYWdlOnR9KSx0aGlzLmVycm9yPSh0LGUpPT50aGlzLmNyZWF0ZSh7Li4uZSxtZXNzYWdlOnQsdHlwZToiZXJyb3IifSksdGhpcy5zdWNjZXNzPSh0LGUpPT50aGlzLmNyZWF0ZSh7Li4uZSx0eXBlOiJzdWNjZXNzIixtZXNzYWdlOnR9KSx0aGlzLmluZm89KHQsZSk9PnRoaXMuY3JlYXRlKHsuLi5lLHR5cGU6ImluZm8iLG1lc3NhZ2U6dH0pLHRoaXMud2FybmluZz0odCxlKT0+dGhpcy5jcmVhdGUoey4uLmUsdHlwZToid2FybmluZyIsbWVzc2FnZTp0fSksdGhpcy5sb2FkaW5nPSh0LGUpPT50aGlzLmNyZWF0ZSh7Li4uZSx0eXBlOiJsb2FkaW5nIixtZXNzYWdlOnR9KSx0aGlzLnByb21pc2U9KHQsYSk9PntsZXQgcixvO2lmKCFhKXJldHVybjt2b2lkIDAhPT1hLmxvYWRpbmcmJihvPXRoaXMuY3JlYXRlKHsuLi5hLHByb21pc2U6dCx0eXBlOiJsb2FkaW5nIixtZXNzYWdlOmEubG9hZGluZyxkZXNjcmlwdGlvbjoiZnVuY3Rpb24iIT10eXBlb2YgYS5kZXNjcmlwdGlvbj9hLmRlc2NyaXB0aW9uOnZvaWQgMH0pKTtsZXQgbj1Qcm9taXNlLnJlc29sdmUodCBpbnN0YW5jZW9mIEZ1bmN0aW9uP3QoKTp0KSxzPXZvaWQgMCE9PW8saT1uLnRoZW4oYXN5bmMgdD0+e2lmKHI9WyJyZXNvbHZlIix0XSxlLmRlZmF1bHQuaXNWYWxpZEVsZW1lbnQodCkpcz0hMSx0aGlzLmNyZWF0ZSh7aWQ6byx0eXBlOiJkZWZhdWx0IixtZXNzYWdlOnR9KTtlbHNlIGlmKGYodCkmJiF0Lm9rKXtzPSExO2xldCByPSJmdW5jdGlvbiI9PXR5cGVvZiBhLmVycm9yP2F3YWl0IGEuZXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHt0LnN0YXR1c31gKTphLmVycm9yLG49ImZ1bmN0aW9uIj09dHlwZW9mIGEuZGVzY3JpcHRpb24/YXdhaXQgYS5kZXNjcmlwdGlvbihgSFRUUCBlcnJvciEgc3RhdHVzOiAke3Quc3RhdHVzfWApOmEuZGVzY3JpcHRpb24saT0ib2JqZWN0IiE9dHlwZW9mIHJ8fGUuZGVmYXVsdC5pc1ZhbGlkRWxlbWVudChyKT97bWVzc2FnZTpyfTpyO3RoaXMuY3JlYXRlKHtpZDpvLHR5cGU6ImVycm9yIixkZXNjcmlwdGlvbjpuLC4uLml9KX1lbHNlIGlmKHQgaW5zdGFuY2VvZiBFcnJvcil7cz0hMTtsZXQgcj0iZnVuY3Rpb24iPT10eXBlb2YgYS5lcnJvcj9hd2FpdCBhLmVycm9yKHQpOmEuZXJyb3Isbj0iZnVuY3Rpb24iPT10eXBlb2YgYS5kZXNjcmlwdGlvbj9hd2FpdCBhLmRlc2NyaXB0aW9uKHQpOmEuZGVzY3JpcHRpb24saT0ib2JqZWN0IiE9dHlwZW9mIHJ8fGUuZGVmYXVsdC5pc1ZhbGlkRWxlbWVudChyKT97bWVzc2FnZTpyfTpyO3RoaXMuY3JlYXRlKHtpZDpvLHR5cGU6ImVycm9yIixkZXNjcmlwdGlvbjpuLC4uLml9KX1lbHNlIGlmKHZvaWQgMCE9PWEuc3VjY2Vzcyl7cz0hMTtsZXQgcj0iZnVuY3Rpb24iPT10eXBlb2YgYS5zdWNjZXNzP2F3YWl0IGEuc3VjY2Vzcyh0KTphLnN1Y2Nlc3Msbj0iZnVuY3Rpb24iPT10eXBlb2YgYS5kZXNjcmlwdGlvbj9hd2FpdCBhLmRlc2NyaXB0aW9uKHQpOmEuZGVzY3JpcHRpb24saT0ib2JqZWN0IiE9dHlwZW9mIHJ8fGUuZGVmYXVsdC5pc1ZhbGlkRWxlbWVudChyKT97bWVzc2FnZTpyfTpyO3RoaXMuY3JlYXRlKHtpZDpvLHR5cGU6InN1Y2Nlc3MiLGRlc2NyaXB0aW9uOm4sLi4uaX0pfX0pLmNhdGNoKGFzeW5jIHQ9PntpZihyPVsicmVqZWN0Iix0XSx2b2lkIDAhPT1hLmVycm9yKXtzPSExO2xldCByPSJmdW5jdGlvbiI9PXR5cGVvZiBhLmVycm9yP2F3YWl0IGEuZXJyb3IodCk6YS5lcnJvcixuPSJmdW5jdGlvbiI9PXR5cGVvZiBhLmRlc2NyaXB0aW9uP2F3YWl0IGEuZGVzY3JpcHRpb24odCk6YS5kZXNjcmlwdGlvbixpPSJvYmplY3QiIT10eXBlb2Ygcnx8ZS5kZWZhdWx0LmlzVmFsaWRFbGVtZW50KHIpP3ttZXNzYWdlOnJ9OnI7dGhpcy5jcmVhdGUoe2lkOm8sdHlwZToiZXJyb3IiLGRlc2NyaXB0aW9uOm4sLi4uaX0pfX0pLmZpbmFsbHkoKCk9PntzJiYodGhpcy5kaXNtaXNzKG8pLG89dm9pZCAwKSxudWxsPT1hLmZpbmFsbHl8fGEuZmluYWxseS5jYWxsKGEpfSksbD0oKT0+bmV3IFByb21pc2UoKHQsZSk9PmkudGhlbigoKT0+InJlamVjdCI9PT1yWzBdP2UoclsxXSk6dChyWzFdKSkuY2F0Y2goZSkpO3JldHVybiJzdHJpbmciIT10eXBlb2YgbyYmIm51bWJlciIhPXR5cGVvZiBvP3t1bndyYXA6bH06T2JqZWN0LmFzc2lnbihvLHt1bndyYXA6bH0pfSx0aGlzLmN1c3RvbT0odCxlKT0+e2xldCBhPShudWxsPT1lP3ZvaWQgMDplLmlkKXx8YysrO3JldHVybiB0aGlzLmNyZWF0ZSh7anN4OnQoYSksaWQ6YSwuLi5lfSksYX0sdGhpcy5nZXRBY3RpdmVUb2FzdHM9KCk9PnRoaXMudG9hc3RzLmZpbHRlcih0PT4hdGhpcy5kaXNtaXNzZWRUb2FzdHMuaGFzKHQuaWQpKSx0aGlzLnN1YnNjcmliZXJzPVtdLHRoaXMudG9hc3RzPVtdLHRoaXMuZGlzbWlzc2VkVG9hc3RzPW5ldyBTZXR9fSxmPXQ9PnQmJiJvYmplY3QiPT10eXBlb2YgdCYmIm9rImluIHQmJiJib29sZWFuIj09dHlwZW9mIHQub2smJiJzdGF0dXMiaW4gdCYmIm51bWJlciI9PXR5cGVvZiB0LnN0YXR1cyxwPU9iamVjdC5hc3NpZ24oKHQsZSk9PntsZXQgYT0obnVsbD09ZT92b2lkIDA6ZS5pZCl8fGMrKztyZXR1cm4gdS5hZGRUb2FzdCh7dGl0bGU6dCwuLi5lLGlkOmF9KSxhfSx7c3VjY2Vzczp1LnN1Y2Nlc3MsaW5mbzp1LmluZm8sd2FybmluZzp1Lndhcm5pbmcsZXJyb3I6dS5lcnJvcixjdXN0b206dS5jdXN0b20sbWVzc2FnZTp1Lm1lc3NhZ2UscHJvbWlzZTp1LnByb21pc2UsZGlzbWlzczp1LmRpc21pc3MsbG9hZGluZzp1LmxvYWRpbmd9LHtnZXRIaXN0b3J5OigpPT51LnRvYXN0cyxnZXRUb2FzdHM6KCk9PnUuZ2V0QWN0aXZlVG9hc3RzKCl9KTtmdW5jdGlvbiBtKHQpe3JldHVybiB2b2lkIDAhPT10LmxhYmVsfWZ1bmN0aW9uIGcoLi4udCl7cmV0dXJuIHQuZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKX0hZnVuY3Rpb24odCl7aWYoIXR8fCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJuO2xldCBlPWRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0sYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO2EudHlwZT0idGV4dC9jc3MiLGUuYXBwZW5kQ2hpbGQoYSksYS5zdHlsZVNoZWV0P2Euc3R5bGVTaGVldC5jc3NUZXh0PXQ6YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSl9KCJbZGF0YS1zb25uZXItdG9hc3Rlcl1bZGlyPWx0cl0saHRtbFtkaXI9bHRyXXstLXRvYXN0LWljb24tbWFyZ2luLXN0YXJ0Oi0zcHg7LS10b2FzdC1pY29uLW1hcmdpbi1lbmQ6NHB4Oy0tdG9hc3Qtc3ZnLW1hcmdpbi1zdGFydDotMXB4Oy0tdG9hc3Qtc3ZnLW1hcmdpbi1lbmQ6MHB4Oy0tdG9hc3QtYnV0dG9uLW1hcmdpbi1zdGFydDphdXRvOy0tdG9hc3QtYnV0dG9uLW1hcmdpbi1lbmQ6MDstLXRvYXN0LWNsb3NlLWJ1dHRvbi1zdGFydDowOy0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZDp1bnNldDstLXRvYXN0LWNsb3NlLWJ1dHRvbi10cmFuc2Zvcm06dHJhbnNsYXRlKC0zNSUsIC0zNSUpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkaXI9cnRsXSxodG1sW2Rpcj1ydGxdey0tdG9hc3QtaWNvbi1tYXJnaW4tc3RhcnQ6NHB4Oy0tdG9hc3QtaWNvbi1tYXJnaW4tZW5kOi0zcHg7LS10b2FzdC1zdmctbWFyZ2luLXN0YXJ0OjBweDstLXRvYXN0LXN2Zy1tYXJnaW4tZW5kOi0xcHg7LS10b2FzdC1idXR0b24tbWFyZ2luLXN0YXJ0OjA7LS10b2FzdC1idXR0b24tbWFyZ2luLWVuZDphdXRvOy0tdG9hc3QtY2xvc2UtYnV0dG9uLXN0YXJ0OnVuc2V0Oy0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZDowOy0tdG9hc3QtY2xvc2UtYnV0dG9uLXRyYW5zZm9ybTp0cmFuc2xhdGUoMzUlLCAtMzUlKX1bZGF0YS1zb25uZXItdG9hc3Rlcl17cG9zaXRpb246Zml4ZWQ7d2lkdGg6dmFyKC0td2lkdGgpO2ZvbnQtZmFtaWx5OnVpLXNhbnMtc2VyaWYsc3lzdGVtLXVpLC1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxOb3RvIFNhbnMsc2Fucy1zZXJpZixBcHBsZSBDb2xvciBFbW9qaSxTZWdvZSBVSSBFbW9qaSxTZWdvZSBVSSBTeW1ib2wsTm90byBDb2xvciBFbW9qaTstLWdyYXkxOmhzbCgwLCAwJSwgOTklKTstLWdyYXkyOmhzbCgwLCAwJSwgOTcuMyUpOy0tZ3JheTM6aHNsKDAsIDAlLCA5NS4xJSk7LS1ncmF5NDpoc2woMCwgMCUsIDkzJSk7LS1ncmF5NTpoc2woMCwgMCUsIDkwLjklKTstLWdyYXk2OmhzbCgwLCAwJSwgODguNyUpOy0tZ3JheTc6aHNsKDAsIDAlLCA4NS44JSk7LS1ncmF5ODpoc2woMCwgMCUsIDc4JSk7LS1ncmF5OTpoc2woMCwgMCUsIDU2LjElKTstLWdyYXkxMDpoc2woMCwgMCUsIDUyLjMlKTstLWdyYXkxMTpoc2woMCwgMCUsIDQzLjUlKTstLWdyYXkxMjpoc2woMCwgMCUsIDklKTstLWJvcmRlci1yYWRpdXM6OHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjA7bWFyZ2luOjA7bGlzdC1zdHlsZTpub25lO291dGxpbmU6MDt6LWluZGV4Ojk5OTk5OTk5OTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNHMgZWFzZX1AbWVkaWEgKGhvdmVyOm5vbmUpIGFuZCAocG9pbnRlcjpjb2Fyc2Upe1tkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLWxpZnRlZD10cnVlXXt0cmFuc2Zvcm06bm9uZX19W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEteC1wb3NpdGlvbj1yaWdodF17cmlnaHQ6dmFyKC0tb2Zmc2V0LXJpZ2h0KX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS14LXBvc2l0aW9uPWxlZnRde2xlZnQ6dmFyKC0tb2Zmc2V0LWxlZnQpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXgtcG9zaXRpb249Y2VudGVyXXtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS15LXBvc2l0aW9uPXRvcF17dG9wOnZhcigtLW9mZnNldC10b3ApfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXktcG9zaXRpb249Ym90dG9tXXtib3R0b206dmFyKC0tb2Zmc2V0LWJvdHRvbSl9W2RhdGEtc29ubmVyLXRvYXN0XXstLXk6dHJhbnNsYXRlWSgxMDAlKTstLWxpZnQtYW1vdW50OmNhbGModmFyKC0tbGlmdCkgKiB2YXIoLS1nYXApKTt6LWluZGV4OnZhcigtLXotaW5kZXgpO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDt0cmFuc2Zvcm06dmFyKC0teSk7dG91Y2gtYWN0aW9uOm5vbmU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjRzLG9wYWNpdHkgLjRzLGhlaWdodCAuNHMsYm94LXNoYWRvdyAuMnM7Ym94LXNpemluZzpib3JkZXItYm94O291dGxpbmU6MDtvdmVyZmxvdy13cmFwOmFueXdoZXJlfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV17cGFkZGluZzoxNnB4O2JhY2tncm91bmQ6dmFyKC0tbm9ybWFsLWJnKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLW5vcm1hbC1ib3JkZXIpO2NvbG9yOnZhcigtLW5vcm1hbC10ZXh0KTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2JveC1zaGFkb3c6MCA0cHggMTJweCByZ2JhKDAsMCwwLC4xKTt3aWR0aDp2YXIoLS13aWR0aCk7Zm9udC1zaXplOjEzcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4fVtkYXRhLXNvbm5lci10b2FzdF06Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgNHB4IDEycHggcmdiYSgwLDAsMCwuMSksMCAwIDAgMnB4IHJnYmEoMCwwLDAsLjIpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS15LXBvc2l0aW9uPXRvcF17dG9wOjA7LS15OnRyYW5zbGF0ZVkoLTEwMCUpOy0tbGlmdDoxOy0tbGlmdC1hbW91bnQ6Y2FsYygxICogdmFyKC0tZ2FwKSl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXktcG9zaXRpb249Ym90dG9tXXtib3R0b206MDstLXk6dHJhbnNsYXRlWSgxMDAlKTstLWxpZnQ6LTE7LS1saWZ0LWFtb3VudDpjYWxjKHZhcigtLWxpZnQpICogdmFyKC0tZ2FwKSl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1kZXNjcmlwdGlvbl17Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojM2YzZjNmfVtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1kZXNjcmlwdGlvbl17Y29sb3I6aW5oZXJpdH1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1zb25uZXItdGhlbWU9ZGFya10gW2RhdGEtZGVzY3JpcHRpb25de2NvbG9yOiNlOGU4ZTh9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS10aXRsZV17Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjppbmhlcml0fVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtaWNvbl17ZGlzcGxheTpmbGV4O2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7cG9zaXRpb246cmVsYXRpdmU7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3QtaWNvbi1tYXJnaW4tc3RhcnQpO21hcmdpbi1yaWdodDp2YXIoLS10b2FzdC1pY29uLW1hcmdpbi1lbmQpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1wcm9taXNlPXRydWVdIFtkYXRhLWljb25dPnN2Z3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC44KTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjthbmltYXRpb246c29ubmVyLWZhZGUtaW4gLjNzIGVhc2UgZm9yd2FyZHN9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1pY29uXT4qe2ZsZXgtc2hyaW5rOjB9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1pY29uXSBzdmd7bWFyZ2luLWxlZnQ6dmFyKC0tdG9hc3Qtc3ZnLW1hcmdpbi1zdGFydCk7bWFyZ2luLXJpZ2h0OnZhcigtLXRvYXN0LXN2Zy1tYXJnaW4tZW5kKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWNvbnRlbnRde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWJ1dHRvbl17Ym9yZGVyLXJhZGl1czo0cHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjhweDtoZWlnaHQ6MjRweDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS1ub3JtYWwtYmcpO2JhY2tncm91bmQ6dmFyKC0tbm9ybWFsLXRleHQpO21hcmdpbi1sZWZ0OnZhcigtLXRvYXN0LWJ1dHRvbi1tYXJnaW4tc3RhcnQpO21hcmdpbi1yaWdodDp2YXIoLS10b2FzdC1idXR0b24tbWFyZ2luLWVuZCk7Ym9yZGVyOm5vbmU7Zm9udC13ZWlnaHQ6NTAwO2N1cnNvcjpwb2ludGVyO291dGxpbmU6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyxib3gtc2hhZG93IC4yc31bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWJ1dHRvbl06Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgMCAwIDJweCByZ2JhKDAsMCwwLC40KX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3R5bGVkPXRydWVdIFtkYXRhLWJ1dHRvbl06Zmlyc3Qtb2YtdHlwZXttYXJnaW4tbGVmdDp2YXIoLS10b2FzdC1idXR0b24tbWFyZ2luLXN0YXJ0KTttYXJnaW4tcmlnaHQ6dmFyKC0tdG9hc3QtYnV0dG9uLW1hcmdpbi1lbmQpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtY2FuY2VsXXtjb2xvcjp2YXIoLS1ub3JtYWwtdGV4dCk7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4wOCl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtc29ubmVyLXRoZW1lPWRhcmtdIFtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtY2FuY2VsXXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjMpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtY2xvc2UtYnV0dG9uXXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OnZhcigtLXRvYXN0LWNsb3NlLWJ1dHRvbi1zdGFydCk7cmlnaHQ6dmFyKC0tdG9hc3QtY2xvc2UtYnV0dG9uLWVuZCk7dG9wOjA7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzowO2NvbG9yOnZhcigtLWdyYXkxMik7YmFja2dyb3VuZDp2YXIoLS1ub3JtYWwtYmcpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tZ3JheTQpO3RyYW5zZm9ybTp2YXIoLS10b2FzdC1jbG9zZS1idXR0b24tdHJhbnNmb3JtKTtib3JkZXItcmFkaXVzOjUwJTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjE7dHJhbnNpdGlvbjpvcGFjaXR5IC4xcyxiYWNrZ3JvdW5kIC4ycyxib3JkZXItY29sb3IgLjJzfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zdHlsZWQ9dHJ1ZV0gW2RhdGEtY2xvc2UtYnV0dG9uXTpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCA0cHggMTJweCByZ2JhKDAsMCwwLC4xKSwwIDAgMCAycHggcmdiYSgwLDAsMCwuMil9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXSBbZGF0YS1kaXNhYmxlZD10cnVlXXtjdXJzb3I6bm90LWFsbG93ZWR9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN0eWxlZD10cnVlXTpob3ZlciBbZGF0YS1jbG9zZS1idXR0b25dOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tZ3JheTIpO2JvcmRlci1jb2xvcjp2YXIoLS1ncmF5NSl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBpbmc9dHJ1ZV06OmJlZm9yZXtjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTEwMCU7cmlnaHQ6LTEwMCU7aGVpZ2h0OjEwMCU7ei1pbmRleDotMX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEteS1wb3NpdGlvbj10b3BdW2RhdGEtc3dpcGluZz10cnVlXTo6YmVmb3Jle2JvdHRvbTo1MCU7dHJhbnNmb3JtOnNjYWxlWSgzKSB0cmFuc2xhdGVZKDUwJSl9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXktcG9zaXRpb249Ym90dG9tXVtkYXRhLXN3aXBpbmc9dHJ1ZV06OmJlZm9yZXt0b3A6NTAlO3RyYW5zZm9ybTpzY2FsZVkoMykgdHJhbnNsYXRlWSgtNTAlKX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGluZz1mYWxzZV1bZGF0YS1yZW1vdmVkPXRydWVdOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3RyYW5zZm9ybTpzY2FsZVkoMil9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLWV4cGFuZGVkPXRydWVdOjphZnRlcntjb250ZW50OicnO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtoZWlnaHQ6Y2FsYyh2YXIoLS1nYXApICsgMXB4KTtib3R0b206MTAwJTt3aWR0aDoxMDAlfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1tb3VudGVkPXRydWVdey0teTp0cmFuc2xhdGVZKDApO29wYWNpdHk6MX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtZXhwYW5kZWQ9ZmFsc2VdW2RhdGEtZnJvbnQ9ZmFsc2Vdey0tc2NhbGU6dmFyKC0tdG9hc3RzLWJlZm9yZSkgKiAwLjA1ICsgMTstLXk6dHJhbnNsYXRlWShjYWxjKHZhcigtLWxpZnQtYW1vdW50KSAqIHZhcigtLXRvYXN0cy1iZWZvcmUpKSkgc2NhbGUoY2FsYygtMSAqIHZhcigtLXNjYWxlKSkpO2hlaWdodDp2YXIoLS1mcm9udC10b2FzdC1oZWlnaHQpfVtkYXRhLXNvbm5lci10b2FzdF0+Knt0cmFuc2l0aW9uOm9wYWNpdHkgLjRzfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS14LXBvc2l0aW9uPXJpZ2h0XXtyaWdodDowfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS14LXBvc2l0aW9uPWxlZnRde2xlZnQ6MH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtZXhwYW5kZWQ9ZmFsc2VdW2RhdGEtZnJvbnQ9ZmFsc2VdW2RhdGEtc3R5bGVkPXRydWVdPip7b3BhY2l0eTowfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS12aXNpYmxlPWZhbHNlXXtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtbW91bnRlZD10cnVlXVtkYXRhLWV4cGFuZGVkPXRydWVdey0teTp0cmFuc2xhdGVZKGNhbGModmFyKC0tbGlmdCkgKiB2YXIoLS1vZmZzZXQpKSk7aGVpZ2h0OnZhcigtLWluaXRpYWwtaGVpZ2h0KX1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtcmVtb3ZlZD10cnVlXVtkYXRhLWZyb250PXRydWVdW2RhdGEtc3dpcGUtb3V0PWZhbHNlXXstLXk6dHJhbnNsYXRlWShjYWxjKHZhcigtLWxpZnQpICogLTEwMCUpKTtvcGFjaXR5OjB9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9dHJ1ZV1bZGF0YS1mcm9udD1mYWxzZV1bZGF0YS1zd2lwZS1vdXQ9ZmFsc2VdW2RhdGEtZXhwYW5kZWQ9dHJ1ZV17LS15OnRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1saWZ0KSAqIHZhcigtLW9mZnNldCkgKyB2YXIoLS1saWZ0KSAqIC0xMDAlKSk7b3BhY2l0eTowfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1yZW1vdmVkPXRydWVdW2RhdGEtZnJvbnQ9ZmFsc2VdW2RhdGEtc3dpcGUtb3V0PWZhbHNlXVtkYXRhLWV4cGFuZGVkPWZhbHNlXXstLXk6dHJhbnNsYXRlWSg0MCUpO29wYWNpdHk6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMsb3BhY2l0eSAuMnN9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXJlbW92ZWQ9dHJ1ZV1bZGF0YS1mcm9udD1mYWxzZV06OmJlZm9yZXtoZWlnaHQ6Y2FsYyh2YXIoLS1pbml0aWFsLWhlaWdodCkgKyAyMCUpfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwaW5nPXRydWVde3RyYW5zZm9ybTp2YXIoLS15KSB0cmFuc2xhdGVZKHZhcigtLXN3aXBlLWFtb3VudC15LDApKSB0cmFuc2xhdGVYKHZhcigtLXN3aXBlLWFtb3VudC14LDApKTt0cmFuc2l0aW9uOm5vbmV9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlZD10cnVlXXt1c2VyLXNlbGVjdDpub25lfVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9dHJ1ZV1bZGF0YS15LXBvc2l0aW9uPWJvdHRvbV0sW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlLW91dD10cnVlXVtkYXRhLXktcG9zaXRpb249dG9wXXthbmltYXRpb24tZHVyYXRpb246LjJzO2FuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1vdXQ7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkc31bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGUtb3V0PXRydWVdW2RhdGEtc3dpcGUtZGlyZWN0aW9uPWxlZnRde2FuaW1hdGlvbi1uYW1lOnN3aXBlLW91dC1sZWZ0fVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS1zd2lwZS1vdXQ9dHJ1ZV1bZGF0YS1zd2lwZS1kaXJlY3Rpb249cmlnaHRde2FuaW1hdGlvbi1uYW1lOnN3aXBlLW91dC1yaWdodH1bZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtc3dpcGUtb3V0PXRydWVdW2RhdGEtc3dpcGUtZGlyZWN0aW9uPXVwXXthbmltYXRpb24tbmFtZTpzd2lwZS1vdXQtdXB9W2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXN3aXBlLW91dD10cnVlXVtkYXRhLXN3aXBlLWRpcmVjdGlvbj1kb3duXXthbmltYXRpb24tbmFtZTpzd2lwZS1vdXQtZG93bn1Aa2V5ZnJhbWVzIHN3aXBlLW91dC1sZWZ0e2Zyb217dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVgodmFyKC0tc3dpcGUtYW1vdW50LXgpKTtvcGFjaXR5OjF9dG97dHJhbnNmb3JtOnZhcigtLXkpIHRyYW5zbGF0ZVgoY2FsYyh2YXIoLS1zd2lwZS1hbW91bnQteCkgLSAxMDAlKSk7b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIHN3aXBlLW91dC1yaWdodHtmcm9te3RyYW5zZm9ybTp2YXIoLS15KSB0cmFuc2xhdGVYKHZhcigtLXN3aXBlLWFtb3VudC14KSk7b3BhY2l0eToxfXRve3RyYW5zZm9ybTp2YXIoLS15KSB0cmFuc2xhdGVYKGNhbGModmFyKC0tc3dpcGUtYW1vdW50LXgpICsgMTAwJSkpO29wYWNpdHk6MH19QGtleWZyYW1lcyBzd2lwZS1vdXQtdXB7ZnJvbXt0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWSh2YXIoLS1zd2lwZS1hbW91bnQteSkpO29wYWNpdHk6MX10b3t0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWShjYWxjKHZhcigtLXN3aXBlLWFtb3VudC15KSAtIDEwMCUpKTtvcGFjaXR5OjB9fUBrZXlmcmFtZXMgc3dpcGUtb3V0LWRvd257ZnJvbXt0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWSh2YXIoLS1zd2lwZS1hbW91bnQteSkpO29wYWNpdHk6MX10b3t0cmFuc2Zvcm06dmFyKC0teSkgdHJhbnNsYXRlWShjYWxjKHZhcigtLXN3aXBlLWFtb3VudC15KSArIDEwMCUpKTtvcGFjaXR5OjB9fUBtZWRpYSAobWF4LXdpZHRoOjYwMHB4KXtbZGF0YS1zb25uZXItdG9hc3Rlcl17cG9zaXRpb246Zml4ZWQ7cmlnaHQ6dmFyKC0tbW9iaWxlLW9mZnNldC1yaWdodCk7bGVmdDp2YXIoLS1tb2JpbGUtb2Zmc2V0LWxlZnQpO3dpZHRoOjEwMCV9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2Rpcj1ydGxde2xlZnQ6Y2FsYyh2YXIoLS1tb2JpbGUtb2Zmc2V0LWxlZnQpICogLTEpfVtkYXRhLXNvbm5lci10b2FzdGVyXSBbZGF0YS1zb25uZXItdG9hc3Rde2xlZnQ6MDtyaWdodDowO3dpZHRoOmNhbGMoMTAwJSAtIHZhcigtLW1vYmlsZS1vZmZzZXQtbGVmdCkgKiAyKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS14LXBvc2l0aW9uPWxlZnRde2xlZnQ6dmFyKC0tbW9iaWxlLW9mZnNldC1sZWZ0KX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS15LXBvc2l0aW9uPWJvdHRvbV17Ym90dG9tOnZhcigtLW1vYmlsZS1vZmZzZXQtYm90dG9tKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS15LXBvc2l0aW9uPXRvcF17dG9wOnZhcigtLW1vYmlsZS1vZmZzZXQtdG9wKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS14LXBvc2l0aW9uPWNlbnRlcl17bGVmdDp2YXIoLS1tb2JpbGUtb2Zmc2V0LWxlZnQpO3JpZ2h0OnZhcigtLW1vYmlsZS1vZmZzZXQtcmlnaHQpO3RyYW5zZm9ybTpub25lfX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1zb25uZXItdGhlbWU9bGlnaHRdey0tbm9ybWFsLWJnOiNmZmY7LS1ub3JtYWwtYm9yZGVyOnZhcigtLWdyYXk0KTstLW5vcm1hbC10ZXh0OnZhcigtLWdyYXkxMik7LS1zdWNjZXNzLWJnOmhzbCgxNDMsIDg1JSwgOTYlKTstLXN1Y2Nlc3MtYm9yZGVyOmhzbCgxNDUsIDkyJSwgODclKTstLXN1Y2Nlc3MtdGV4dDpoc2woMTQwLCAxMDAlLCAyNyUpOy0taW5mby1iZzpoc2woMjA4LCAxMDAlLCA5NyUpOy0taW5mby1ib3JkZXI6aHNsKDIyMSwgOTElLCA5MyUpOy0taW5mby10ZXh0OmhzbCgyMTAsIDkyJSwgNDUlKTstLXdhcm5pbmctYmc6aHNsKDQ5LCAxMDAlLCA5NyUpOy0td2FybmluZy1ib3JkZXI6aHNsKDQ5LCA5MSUsIDg0JSk7LS13YXJuaW5nLXRleHQ6aHNsKDMxLCA5MiUsIDQ1JSk7LS1lcnJvci1iZzpoc2woMzU5LCAxMDAlLCA5NyUpOy0tZXJyb3ItYm9yZGVyOmhzbCgzNTksIDEwMCUsIDk0JSk7LS1lcnJvci10ZXh0OmhzbCgzNjAsIDEwMCUsIDQ1JSl9W2RhdGEtc29ubmVyLXRvYXN0ZXJdW2RhdGEtc29ubmVyLXRoZW1lPWxpZ2h0XSBbZGF0YS1zb25uZXItdG9hc3RdW2RhdGEtaW52ZXJ0PXRydWVdey0tbm9ybWFsLWJnOiMwMDA7LS1ub3JtYWwtYm9yZGVyOmhzbCgwLCAwJSwgMjAlKTstLW5vcm1hbC10ZXh0OnZhcigtLWdyYXkxKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1zb25uZXItdGhlbWU9ZGFya10gW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLWludmVydD10cnVlXXstLW5vcm1hbC1iZzojZmZmOy0tbm9ybWFsLWJvcmRlcjp2YXIoLS1ncmF5Myk7LS1ub3JtYWwtdGV4dDp2YXIoLS1ncmF5MTIpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXNvbm5lci10aGVtZT1kYXJrXXstLW5vcm1hbC1iZzojMDAwOy0tbm9ybWFsLWJnLWhvdmVyOmhzbCgwLCAwJSwgMTIlKTstLW5vcm1hbC1ib3JkZXI6aHNsKDAsIDAlLCAyMCUpOy0tbm9ybWFsLWJvcmRlci1ob3Zlcjpoc2woMCwgMCUsIDI1JSk7LS1ub3JtYWwtdGV4dDp2YXIoLS1ncmF5MSk7LS1zdWNjZXNzLWJnOmhzbCgxNTAsIDEwMCUsIDYlKTstLXN1Y2Nlc3MtYm9yZGVyOmhzbCgxNDcsIDEwMCUsIDEyJSk7LS1zdWNjZXNzLXRleHQ6aHNsKDE1MCwgODYlLCA2NSUpOy0taW5mby1iZzpoc2woMjE1LCAxMDAlLCA2JSk7LS1pbmZvLWJvcmRlcjpoc2woMjIzLCA0MyUsIDE3JSk7LS1pbmZvLXRleHQ6aHNsKDIxNiwgODclLCA2NSUpOy0td2FybmluZy1iZzpoc2woNjQsIDEwMCUsIDYlKTstLXdhcm5pbmctYm9yZGVyOmhzbCg2MCwgMTAwJSwgOSUpOy0td2FybmluZy10ZXh0OmhzbCg0NiwgODclLCA2NSUpOy0tZXJyb3ItYmc6aHNsKDM1OCwgNzYlLCAxMCUpOy0tZXJyb3ItYm9yZGVyOmhzbCgzNTcsIDg5JSwgMTYlKTstLWVycm9yLXRleHQ6aHNsKDM1OCwgMTAwJSwgODElKX1bZGF0YS1zb25uZXItdG9hc3Rlcl1bZGF0YS1zb25uZXItdGhlbWU9ZGFya10gW2RhdGEtc29ubmVyLXRvYXN0XSBbZGF0YS1jbG9zZS1idXR0b25de2JhY2tncm91bmQ6dmFyKC0tbm9ybWFsLWJnKTtib3JkZXItY29sb3I6dmFyKC0tbm9ybWFsLWJvcmRlcik7Y29sb3I6dmFyKC0tbm9ybWFsLXRleHQpfVtkYXRhLXNvbm5lci10b2FzdGVyXVtkYXRhLXNvbm5lci10aGVtZT1kYXJrXSBbZGF0YS1zb25uZXItdG9hc3RdIFtkYXRhLWNsb3NlLWJ1dHRvbl06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1ub3JtYWwtYmctaG92ZXIpO2JvcmRlci1jb2xvcjp2YXIoLS1ub3JtYWwtYm9yZGVyLWhvdmVyKX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPXN1Y2Nlc3Nde2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MtYm9yZGVyKTtjb2xvcjp2YXIoLS1zdWNjZXNzLXRleHQpfVtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9c3VjY2Vzc10gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzLWJvcmRlcik7Y29sb3I6dmFyKC0tc3VjY2Vzcy10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWluZm9de2JhY2tncm91bmQ6dmFyKC0taW5mby1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLWluZm8tYm9yZGVyKTtjb2xvcjp2YXIoLS1pbmZvLXRleHQpfVtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9aW5mb10gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLWluZm8tYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1pbmZvLWJvcmRlcik7Y29sb3I6dmFyKC0taW5mby10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPXdhcm5pbmdde2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1iZyk7Ym9yZGVyLWNvbG9yOnZhcigtLXdhcm5pbmctYm9yZGVyKTtjb2xvcjp2YXIoLS13YXJuaW5nLXRleHQpfVtkYXRhLXJpY2gtY29sb3JzPXRydWVdW2RhdGEtc29ubmVyLXRvYXN0XVtkYXRhLXR5cGU9d2FybmluZ10gW2RhdGEtY2xvc2UtYnV0dG9uXXtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctYmcpO2JvcmRlci1jb2xvcjp2YXIoLS13YXJuaW5nLWJvcmRlcik7Y29sb3I6dmFyKC0td2FybmluZy10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWVycm9yXXtiYWNrZ3JvdW5kOnZhcigtLWVycm9yLWJnKTtib3JkZXItY29sb3I6dmFyKC0tZXJyb3ItYm9yZGVyKTtjb2xvcjp2YXIoLS1lcnJvci10ZXh0KX1bZGF0YS1yaWNoLWNvbG9ycz10cnVlXVtkYXRhLXNvbm5lci10b2FzdF1bZGF0YS10eXBlPWVycm9yXSBbZGF0YS1jbG9zZS1idXR0b25de2JhY2tncm91bmQ6dmFyKC0tZXJyb3ItYmcpO2JvcmRlci1jb2xvcjp2YXIoLS1lcnJvci1ib3JkZXIpO2NvbG9yOnZhcigtLWVycm9yLXRleHQpfS5zb25uZXItbG9hZGluZy13cmFwcGVyey0tc2l6ZToxNnB4O2hlaWdodDp2YXIoLS1zaXplKTt3aWR0aDp2YXIoLS1zaXplKTtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3otaW5kZXg6MTB9LnNvbm5lci1sb2FkaW5nLXdyYXBwZXJbZGF0YS12aXNpYmxlPWZhbHNlXXt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjthbmltYXRpb246c29ubmVyLWZhZGUtb3V0IC4ycyBlYXNlIGZvcndhcmRzfS5zb25uZXItc3Bpbm5lcntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6NTAlO2xlZnQ6NTAlO2hlaWdodDp2YXIoLS1zaXplKTt3aWR0aDp2YXIoLS1zaXplKX0uc29ubmVyLWxvYWRpbmctYmFye2FuaW1hdGlvbjpzb25uZXItc3BpbiAxLjJzIGxpbmVhciBpbmZpbml0ZTtiYWNrZ3JvdW5kOnZhcigtLWdyYXkxMSk7Ym9yZGVyLXJhZGl1czo2cHg7aGVpZ2h0OjglO2xlZnQ6LTEwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTMuOSU7d2lkdGg6MjQlfS5zb25uZXItbG9hZGluZy1iYXI6Zmlyc3QtY2hpbGR7YW5pbWF0aW9uLWRlbGF5Oi0xLjJzO3RyYW5zZm9ybTpyb3RhdGUoLjAwMDFkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCgyKXthbmltYXRpb24tZGVsYXk6LTEuMXM7dHJhbnNmb3JtOnJvdGF0ZSgzMGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDMpe2FuaW1hdGlvbi1kZWxheTotMXM7dHJhbnNmb3JtOnJvdGF0ZSg2MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDQpe2FuaW1hdGlvbi1kZWxheTotLjlzO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCg1KXthbmltYXRpb24tZGVsYXk6LS44czt0cmFuc2Zvcm06cm90YXRlKDEyMGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDYpe2FuaW1hdGlvbi1kZWxheTotLjdzO3RyYW5zZm9ybTpyb3RhdGUoMTUwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoNyl7YW5pbWF0aW9uLWRlbGF5Oi0uNnM7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uc29ubmVyLWxvYWRpbmctYmFyOm50aC1jaGlsZCg4KXthbmltYXRpb24tZGVsYXk6LS41czt0cmFuc2Zvcm06cm90YXRlKDIxMGRlZykgdHJhbnNsYXRlKDE0NiUpfS5zb25uZXItbG9hZGluZy1iYXI6bnRoLWNoaWxkKDkpe2FuaW1hdGlvbi1kZWxheTotLjRzO3RyYW5zZm9ybTpyb3RhdGUoMjQwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoMTApe2FuaW1hdGlvbi1kZWxheTotLjNzO3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoMTEpe2FuaW1hdGlvbi1kZWxheTotLjJzO3RyYW5zZm9ybTpyb3RhdGUoMzAwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LnNvbm5lci1sb2FkaW5nLWJhcjpudGgtY2hpbGQoMTIpe2FuaW1hdGlvbi1kZWxheTotLjFzO3RyYW5zZm9ybTpyb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9QGtleWZyYW1lcyBzb25uZXItZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC44KX0xMDAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc29ubmVyLWZhZGUtb3V0ezAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9MTAwJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC44KX19QGtleWZyYW1lcyBzb25uZXItc3BpbnswJXtvcGFjaXR5OjF9MTAwJXtvcGFjaXR5Oi4xNX19QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKXsuc29ubmVyLWxvYWRpbmctYmFyLFtkYXRhLXNvbm5lci10b2FzdF0sW2RhdGEtc29ubmVyLXRvYXN0XT4qe3RyYW5zaXRpb246bm9uZSFpbXBvcnRhbnQ7YW5pbWF0aW9uOm5vbmUhaW1wb3J0YW50fX0uc29ubmVyLWxvYWRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNTAlKTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzLHRyYW5zZm9ybSAuMnN9LnNvbm5lci1sb2FkZXJbZGF0YS12aXNpYmxlPWZhbHNlXXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC44KSB0cmFuc2xhdGUoLTUwJSwtNTAlKX0iKTtsZXQgaD10PT57dmFyIGEscixjLHUsZixwLGgsYix2LHksdyx4LEU7bGV0e2ludmVydDprLHRvYXN0OlMsdW5zdHlsZWQ6TixpbnRlcmFjdGluZzpULHNldEhlaWdodHM6Qyx2aXNpYmxlVG9hc3RzOk0saGVpZ2h0czpCLGluZGV4OlIsdG9hc3RzOnosZXhwYW5kZWQ6QSxyZW1vdmVUb2FzdDpqLGRlZmF1bHRSaWNoQ29sb3JzOiQsY2xvc2VCdXR0b246RCxzdHlsZTpJLGNhbmNlbEJ1dHRvblN0eWxlOlAsYWN0aW9uQnV0dG9uU3R5bGU6WSxjbGFzc05hbWU6TD0iIixkZXNjcmlwdGlvbkNsYXNzTmFtZTpVPSIiLGR1cmF0aW9uOnEscG9zaXRpb246SCxnYXA6TyxleHBhbmRCeURlZmF1bHQ6VixjbGFzc05hbWVzOlgsaWNvbnM6RixjbG9zZUJ1dHRvbkFyaWFMYWJlbDpfPSJDbG9zZSB0b2FzdCJ9PXQsW0ssUV09ZS5kZWZhdWx0LnVzZVN0YXRlKG51bGwpLFtXLEpdPWUuZGVmYXVsdC51c2VTdGF0ZShudWxsKSxbRyxaXT1lLmRlZmF1bHQudXNlU3RhdGUoITEpLFt0dCx0ZV09ZS5kZWZhdWx0LnVzZVN0YXRlKCExKSxbdGEsdHJdPWUuZGVmYXVsdC51c2VTdGF0ZSghMSksW3RvLHRuXT1lLmRlZmF1bHQudXNlU3RhdGUoITEpLFt0cyx0aV09ZS5kZWZhdWx0LnVzZVN0YXRlKCExKSxbdGwsdGRdPWUuZGVmYXVsdC51c2VTdGF0ZSgwKSxbdGMsdHVdPWUuZGVmYXVsdC51c2VTdGF0ZSgwKSx0Zj1lLmRlZmF1bHQudXNlUmVmKFMuZHVyYXRpb258fHF8fDRlMyksdHA9ZS5kZWZhdWx0LnVzZVJlZihudWxsKSx0bT1lLmRlZmF1bHQudXNlUmVmKG51bGwpLHRnPTA9PT1SLHRoPVIrMTw9TSx0Yj1TLnR5cGUsdHY9ITEhPT1TLmRpc21pc3NpYmxlLHR5PVMuY2xhc3NOYW1lfHwiIix0dz1TLmRlc2NyaXB0aW9uQ2xhc3NOYW1lfHwiIix0eD1lLmRlZmF1bHQudXNlTWVtbygoKT0+Qi5maW5kSW5kZXgodD0+dC50b2FzdElkPT09Uy5pZCl8fDAsW0IsUy5pZF0pLHRFPWUuZGVmYXVsdC51c2VNZW1vKCgpPT57dmFyIHQ7cmV0dXJuIG51bGwhPSh0PVMuY2xvc2VCdXR0b24pP3Q6RH0sW1MuY2xvc2VCdXR0b24sRF0pLHRrPWUuZGVmYXVsdC51c2VNZW1vKCgpPT5TLmR1cmF0aW9ufHxxfHw0ZTMsW1MuZHVyYXRpb24scV0pLHRTPWUuZGVmYXVsdC51c2VSZWYoMCksdE49ZS5kZWZhdWx0LnVzZVJlZigwKSx0VD1lLmRlZmF1bHQudXNlUmVmKDApLHRDPWUuZGVmYXVsdC51c2VSZWYobnVsbCksW3RNLHRCXT1ILnNwbGl0KCItIiksdFI9ZS5kZWZhdWx0LnVzZU1lbW8oKCk9PkIucmVkdWNlKCh0LGUsYSk9PmE+PXR4P3Q6dCtlLmhlaWdodCwwKSxbQix0eF0pLHR6PSgoKT0+e2xldFt0LGFdPWUuZGVmYXVsdC51c2VTdGF0ZShkb2N1bWVudC5oaWRkZW4pO3JldHVybiBlLmRlZmF1bHQudXNlRWZmZWN0KCgpPT57bGV0IHQ9KCk9PnthKGRvY3VtZW50LmhpZGRlbil9O3JldHVybiBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0KSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHQpfSxbXSksdH0pKCksdEE9Uy5pbnZlcnR8fGssdGo9ImxvYWRpbmciPT09dGI7dE4uY3VycmVudD1lLmRlZmF1bHQudXNlTWVtbygoKT0+dHgqTyt0UixbdHgsdFJdKSxlLmRlZmF1bHQudXNlRWZmZWN0KCgpPT57dGYuY3VycmVudD10a30sW3RrXSksZS5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e1ooITApfSxbXSksZS5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e2xldCB0PXRtLmN1cnJlbnQ7aWYodCl7bGV0IGU9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7cmV0dXJuIHR1KGUpLEModD0+W3t0b2FzdElkOlMuaWQsaGVpZ2h0OmUscG9zaXRpb246Uy5wb3NpdGlvbn0sLi4udF0pLCgpPT5DKHQ9PnQuZmlsdGVyKHQ9PnQudG9hc3RJZCE9PVMuaWQpKX19LFtDLFMuaWRdKSxlLmRlZmF1bHQudXNlTGF5b3V0RWZmZWN0KCgpPT57aWYoIUcpcmV0dXJuO2xldCB0PXRtLmN1cnJlbnQsZT10LnN0eWxlLmhlaWdodDt0LnN0eWxlLmhlaWdodD0iYXV0byI7bGV0IGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7dC5zdHlsZS5oZWlnaHQ9ZSx0dShhKSxDKHQ9PnQuZmluZCh0PT50LnRvYXN0SWQ9PT1TLmlkKT90Lm1hcCh0PT50LnRvYXN0SWQ9PT1TLmlkP3suLi50LGhlaWdodDphfTp0KTpbe3RvYXN0SWQ6Uy5pZCxoZWlnaHQ6YSxwb3NpdGlvbjpTLnBvc2l0aW9ufSwuLi50XSl9LFtHLFMudGl0bGUsUy5kZXNjcmlwdGlvbixDLFMuaWQsUy5qc3gsUy5hY3Rpb24sUy5jYW5jZWxdKTtsZXQgdCQ9ZS5kZWZhdWx0LnVzZUNhbGxiYWNrKCgpPT57dGUoITApLHRkKHROLmN1cnJlbnQpLEModD0+dC5maWx0ZXIodD0+dC50b2FzdElkIT09Uy5pZCkpLHNldFRpbWVvdXQoKCk9PntqKFMpfSwyMDApfSxbUyxqLEMsdE5dKTtlLmRlZmF1bHQudXNlRWZmZWN0KCgpPT57bGV0IHQ7aWYoKCFTLnByb21pc2V8fCJsb2FkaW5nIiE9PXRiKSYmUy5kdXJhdGlvbiE9PTEvMCYmImxvYWRpbmciIT09Uy50eXBlKXtpZihBfHxUfHx0eil7aWYodFQuY3VycmVudDx0Uy5jdXJyZW50KXtsZXQgdD1uZXcgRGF0ZSgpLmdldFRpbWUoKS10Uy5jdXJyZW50O3RmLmN1cnJlbnQ9dGYuY3VycmVudC10fXRULmN1cnJlbnQ9bmV3IERhdGUoKS5nZXRUaW1lKCl9ZWxzZSB0Zi5jdXJyZW50IT09MS8wJiYodFMuY3VycmVudD1uZXcgRGF0ZSgpLmdldFRpbWUoKSx0PXNldFRpbWVvdXQoKCk9PntudWxsPT1TLm9uQXV0b0Nsb3NlfHxTLm9uQXV0b0Nsb3NlLmNhbGwoUyxTKSx0JCgpfSx0Zi5jdXJyZW50KSk7cmV0dXJuKCk9PmNsZWFyVGltZW91dCh0KX19LFtBLFQsUyx0Yix0eix0JF0pLGUuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntTLmRlbGV0ZSYmKHQkKCksbnVsbD09Uy5vbkRpc21pc3N8fFMub25EaXNtaXNzLmNhbGwoUyxTKSl9LFt0JCxTLmRlbGV0ZV0pO2xldCB0RD1TLmljb258fChudWxsPT1GP3ZvaWQgMDpGW3RiXSl8fCh0PT57c3dpdGNoKHQpe2Nhc2Uic3VjY2VzcyI6cmV0dXJuIG47Y2FzZSJpbmZvIjpyZXR1cm4gaTtjYXNlIndhcm5pbmciOnJldHVybiBzO2Nhc2UiZXJyb3IiOnJldHVybiBsO2RlZmF1bHQ6cmV0dXJuIG51bGx9fSkodGIpO3JldHVybiBlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgibGkiLHt0YWJJbmRleDowLHJlZjp0bSxjbGFzc05hbWU6ZyhMLHR5LG51bGw9PVg/dm9pZCAwOlgudG9hc3QsbnVsbD09U3x8bnVsbD09KGE9Uy5jbGFzc05hbWVzKT92b2lkIDA6YS50b2FzdCxudWxsPT1YP3ZvaWQgMDpYLmRlZmF1bHQsbnVsbD09WD92b2lkIDA6WFt0Yl0sbnVsbD09U3x8bnVsbD09KHI9Uy5jbGFzc05hbWVzKT92b2lkIDA6clt0Yl0pLCJkYXRhLXNvbm5lci10b2FzdCI6IiIsImRhdGEtcmljaC1jb2xvcnMiOm51bGwhPSh5PVMucmljaENvbG9ycyk/eTokLCJkYXRhLXN0eWxlZCI6IShTLmpzeHx8Uy51bnN0eWxlZHx8TiksImRhdGEtbW91bnRlZCI6RywiZGF0YS1wcm9taXNlIjohIVMucHJvbWlzZSwiZGF0YS1zd2lwZWQiOnRzLCJkYXRhLXJlbW92ZWQiOnR0LCJkYXRhLXZpc2libGUiOnRoLCJkYXRhLXktcG9zaXRpb24iOnRNLCJkYXRhLXgtcG9zaXRpb24iOnRCLCJkYXRhLWluZGV4IjpSLCJkYXRhLWZyb250Ijp0ZywiZGF0YS1zd2lwaW5nIjp0YSwiZGF0YS1kaXNtaXNzaWJsZSI6dHYsImRhdGEtdHlwZSI6dGIsImRhdGEtaW52ZXJ0Ijp0QSwiZGF0YS1zd2lwZS1vdXQiOnRvLCJkYXRhLXN3aXBlLWRpcmVjdGlvbiI6VywiZGF0YS1leHBhbmRlZCI6ISEoQXx8ViYmRyksc3R5bGU6eyItLWluZGV4IjpSLCItLXRvYXN0cy1iZWZvcmUiOlIsIi0tei1pbmRleCI6ei5sZW5ndGgtUiwiLS1vZmZzZXQiOmAke3R0P3RsOnROLmN1cnJlbnR9cHhgLCItLWluaXRpYWwtaGVpZ2h0IjpWPyJhdXRvIjpgJHt0Y31weGAsLi4uSSwuLi5TLnN0eWxlfSxvbkRyYWdFbmQ6KCk9Pnt0cighMSksUShudWxsKSx0Qy5jdXJyZW50PW51bGx9LG9uUG9pbnRlckRvd246dD0+e3RqfHwhdHZ8fCh0cC5jdXJyZW50PW5ldyBEYXRlLHRkKHROLmN1cnJlbnQpLHQudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKHQucG9pbnRlcklkKSwiQlVUVE9OIiE9PXQudGFyZ2V0LnRhZ05hbWUmJih0cighMCksdEMuY3VycmVudD17eDp0LmNsaWVudFgseTp0LmNsaWVudFl9KSl9LG9uUG9pbnRlclVwOigpPT57dmFyIHQsZSxhLHIsbztpZih0b3x8IXR2KXJldHVybjt0Qy5jdXJyZW50PW51bGw7bGV0IG49TnVtYmVyKChudWxsPT0odD10bS5jdXJyZW50KT92b2lkIDA6dC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXN3aXBlLWFtb3VudC14IikucmVwbGFjZSgicHgiLCIiKSl8fDApLHM9TnVtYmVyKChudWxsPT0oZT10bS5jdXJyZW50KT92b2lkIDA6ZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXN3aXBlLWFtb3VudC15IikucmVwbGFjZSgicHgiLCIiKSl8fDApLGk9bmV3IERhdGUoKS5nZXRUaW1lKCktKG51bGw9PShhPXRwLmN1cnJlbnQpP3ZvaWQgMDphLmdldFRpbWUoKSksbD0ieCI9PT1LP246cyxkPU1hdGguYWJzKGwpL2k7aWYoTWF0aC5hYnMobCk+PTQ1fHxkPi4xMSl7dGQodE4uY3VycmVudCksbnVsbD09Uy5vbkRpc21pc3N8fFMub25EaXNtaXNzLmNhbGwoUyxTKSwieCI9PT1LP0oobj4wPyJyaWdodCI6ImxlZnQiKTpKKHM+MD8iZG93biI6InVwIiksdCQoKSx0bighMCk7cmV0dXJufW51bGw9PShyPXRtLmN1cnJlbnQpfHxyLnN0eWxlLnNldFByb3BlcnR5KCItLXN3aXBlLWFtb3VudC14IiwiMHB4IiksbnVsbD09KG89dG0uY3VycmVudCl8fG8uc3R5bGUuc2V0UHJvcGVydHkoIi0tc3dpcGUtYW1vdW50LXkiLCIwcHgiKSx0aSghMSksdHIoITEpLFEobnVsbCl9LG9uUG9pbnRlck1vdmU6ZT0+e3ZhciBhLHIsbyxuO2lmKCF0Qy5jdXJyZW50fHwhdHZ8fChudWxsPT0oYT13aW5kb3cuZ2V0U2VsZWN0aW9uKCkpP3ZvaWQgMDphLnRvU3RyaW5nKCkubGVuZ3RoKT4wKXJldHVybjtsZXQgcz1lLmNsaWVudFktdEMuY3VycmVudC55LGk9ZS5jbGllbnRYLXRDLmN1cnJlbnQueCxsPW51bGwhPShuPXQuc3dpcGVEaXJlY3Rpb25zKT9uOmZ1bmN0aW9uKHQpe2xldFtlLGFdPXQuc3BsaXQoIi0iKSxyPVtdO3JldHVybiBlJiZyLnB1c2goZSksYSYmci5wdXNoKGEpLHJ9KEgpOyFLJiYoTWF0aC5hYnMoaSk+MXx8TWF0aC5hYnMocyk+MSkmJlEoTWF0aC5hYnMoaSk+TWF0aC5hYnMocyk/IngiOiJ5Iik7bGV0IGQ9e3g6MCx5OjB9LGM9dD0+MS8oMS41K01hdGguYWJzKHQpLzIwKTtpZigieSI9PT1LKXtpZihsLmluY2x1ZGVzKCJ0b3AiKXx8bC5pbmNsdWRlcygiYm90dG9tIikpaWYobC5pbmNsdWRlcygidG9wIikmJnM8MHx8bC5pbmNsdWRlcygiYm90dG9tIikmJnM+MClkLnk9cztlbHNle2xldCB0PXMqYyhzKTtkLnk9TWF0aC5hYnModCk8TWF0aC5hYnMocyk/dDpzfX1lbHNlIGlmKCJ4Ij09PUsmJihsLmluY2x1ZGVzKCJsZWZ0Iil8fGwuaW5jbHVkZXMoInJpZ2h0IikpKWlmKGwuaW5jbHVkZXMoImxlZnQiKSYmaTwwfHxsLmluY2x1ZGVzKCJyaWdodCIpJiZpPjApZC54PWk7ZWxzZXtsZXQgdD1pKmMoaSk7ZC54PU1hdGguYWJzKHQpPE1hdGguYWJzKGkpP3Q6aX0oTWF0aC5hYnMoZC54KT4wfHxNYXRoLmFicyhkLnkpPjApJiZ0aSghMCksbnVsbD09KHI9dG0uY3VycmVudCl8fHIuc3R5bGUuc2V0UHJvcGVydHkoIi0tc3dpcGUtYW1vdW50LXgiLGAke2QueH1weGApLG51bGw9PShvPXRtLmN1cnJlbnQpfHxvLnN0eWxlLnNldFByb3BlcnR5KCItLXN3aXBlLWFtb3VudC15IixgJHtkLnl9cHhgKX19LHRFJiYhUy5qc3gmJiJsb2FkaW5nIiE9PXRiP2UuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJidXR0b24iLHsiYXJpYS1sYWJlbCI6XywiZGF0YS1kaXNhYmxlZCI6dGosImRhdGEtY2xvc2UtYnV0dG9uIjohMCxvbkNsaWNrOnRqfHwhdHY/KCk9Pnt9OigpPT57dCQoKSxudWxsPT1TLm9uRGlzbWlzc3x8Uy5vbkRpc21pc3MuY2FsbChTLFMpfSxjbGFzc05hbWU6ZyhudWxsPT1YP3ZvaWQgMDpYLmNsb3NlQnV0dG9uLG51bGw9PVN8fG51bGw9PShjPVMuY2xhc3NOYW1lcyk/dm9pZCAwOmMuY2xvc2VCdXR0b24pfSxudWxsIT0odz1udWxsPT1GP3ZvaWQgMDpGLmNsb3NlKT93OmQpOm51bGwsKHRifHxTLmljb258fFMucHJvbWlzZSkmJm51bGwhPT1TLmljb24mJigobnVsbD09Rj92b2lkIDA6Rlt0Yl0pIT09bnVsbHx8Uy5pY29uKT9lLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtaWNvbiI6IiIsY2xhc3NOYW1lOmcobnVsbD09WD92b2lkIDA6WC5pY29uLG51bGw9PVN8fG51bGw9PSh1PVMuY2xhc3NOYW1lcyk/dm9pZCAwOnUuaWNvbil9LFMucHJvbWlzZXx8ImxvYWRpbmciPT09Uy50eXBlJiYhUy5pY29uP1MuaWNvbnx8KChudWxsPT1GP3ZvaWQgMDpGLmxvYWRpbmcpP2UuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHtjbGFzc05hbWU6ZyhudWxsPT1YP3ZvaWQgMDpYLmxvYWRlcixudWxsPT1TfHxudWxsPT0oRT1TLmNsYXNzTmFtZXMpP3ZvaWQgMDpFLmxvYWRlciwic29ubmVyLWxvYWRlciIpLCJkYXRhLXZpc2libGUiOiJsb2FkaW5nIj09PXRifSxGLmxvYWRpbmcpOmUuZGVmYXVsdC5jcmVhdGVFbGVtZW50KG8se2NsYXNzTmFtZTpnKG51bGw9PVg/dm9pZCAwOlgubG9hZGVyLG51bGw9PVN8fG51bGw9PSh4PVMuY2xhc3NOYW1lcyk/dm9pZCAwOngubG9hZGVyKSx2aXNpYmxlOiJsb2FkaW5nIj09PXRifSkpOm51bGwsImxvYWRpbmciIT09Uy50eXBlP3REOm51bGwpOm51bGwsZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImRpdiIseyJkYXRhLWNvbnRlbnQiOiIiLGNsYXNzTmFtZTpnKG51bGw9PVg/dm9pZCAwOlguY29udGVudCxudWxsPT1TfHxudWxsPT0oZj1TLmNsYXNzTmFtZXMpP3ZvaWQgMDpmLmNvbnRlbnQpfSxlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgiZGl2Iix7ImRhdGEtdGl0bGUiOiIiLGNsYXNzTmFtZTpnKG51bGw9PVg/dm9pZCAwOlgudGl0bGUsbnVsbD09U3x8bnVsbD09KHA9Uy5jbGFzc05hbWVzKT92b2lkIDA6cC50aXRsZSl9LFMuanN4P1MuanN4OiJmdW5jdGlvbiI9PXR5cGVvZiBTLnRpdGxlP1MudGl0bGUoKTpTLnRpdGxlKSxTLmRlc2NyaXB0aW9uP2UuZGVmYXVsdC5jcmVhdGVFbGVtZW50KCJkaXYiLHsiZGF0YS1kZXNjcmlwdGlvbiI6IiIsY2xhc3NOYW1lOmcoVSx0dyxudWxsPT1YP3ZvaWQgMDpYLmRlc2NyaXB0aW9uLG51bGw9PVN8fG51bGw9PShoPVMuY2xhc3NOYW1lcyk/dm9pZCAwOmguZGVzY3JpcHRpb24pfSwiZnVuY3Rpb24iPT10eXBlb2YgUy5kZXNjcmlwdGlvbj9TLmRlc2NyaXB0aW9uKCk6Uy5kZXNjcmlwdGlvbik6bnVsbCksZS5kZWZhdWx0LmlzVmFsaWRFbGVtZW50KFMuY2FuY2VsKT9TLmNhbmNlbDpTLmNhbmNlbCYmbShTLmNhbmNlbCk/ZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJkYXRhLWJ1dHRvbiI6ITAsImRhdGEtY2FuY2VsIjohMCxzdHlsZTpTLmNhbmNlbEJ1dHRvblN0eWxlfHxQLG9uQ2xpY2s6dD0+eyFtKFMuY2FuY2VsKXx8dHYmJihudWxsPT1TLmNhbmNlbC5vbkNsaWNrfHxTLmNhbmNlbC5vbkNsaWNrLmNhbGwoUy5jYW5jZWwsdCksdCQoKSl9LGNsYXNzTmFtZTpnKG51bGw9PVg/dm9pZCAwOlguY2FuY2VsQnV0dG9uLG51bGw9PVN8fG51bGw9PShiPVMuY2xhc3NOYW1lcyk/dm9pZCAwOmIuY2FuY2VsQnV0dG9uKX0sUy5jYW5jZWwubGFiZWwpOm51bGwsZS5kZWZhdWx0LmlzVmFsaWRFbGVtZW50KFMuYWN0aW9uKT9TLmFjdGlvbjpTLmFjdGlvbiYmbShTLmFjdGlvbik/ZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIseyJkYXRhLWJ1dHRvbiI6ITAsImRhdGEtYWN0aW9uIjohMCxzdHlsZTpTLmFjdGlvbkJ1dHRvblN0eWxlfHxZLG9uQ2xpY2s6dD0+eyFtKFMuYWN0aW9uKXx8KG51bGw9PVMuYWN0aW9uLm9uQ2xpY2t8fFMuYWN0aW9uLm9uQ2xpY2suY2FsbChTLmFjdGlvbix0KSx0LmRlZmF1bHRQcmV2ZW50ZWR8fHQkKCkpfSxjbGFzc05hbWU6ZyhudWxsPT1YP3ZvaWQgMDpYLmFjdGlvbkJ1dHRvbixudWxsPT1TfHxudWxsPT0odj1TLmNsYXNzTmFtZXMpP3ZvaWQgMDp2LmFjdGlvbkJ1dHRvbil9LFMuYWN0aW9uLmxhYmVsKTpudWxsKX07ZnVuY3Rpb24gYigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHwidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50KXJldHVybiJsdHIiO2xldCB0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoImRpciIpO3JldHVybiJhdXRvIiE9PXQmJnQ/dDp3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmRpcmVjdGlvbn1sZXQgdj1lLmRlZmF1bHQuZm9yd2FyZFJlZihmdW5jdGlvbih0LHIpe2xldHtpbnZlcnQ6byxwb3NpdGlvbjpuPSJib3R0b20tcmlnaHQiLGhvdGtleTpzPVsiYWx0S2V5IiwiS2V5VCJdLGV4cGFuZDppLGNsb3NlQnV0dG9uOmwsY2xhc3NOYW1lOmQsb2Zmc2V0OmMsbW9iaWxlT2Zmc2V0OmYsdGhlbWU6cD0ibGlnaHQiLHJpY2hDb2xvcnM6bSxkdXJhdGlvbjpnLHN0eWxlOnYsdmlzaWJsZVRvYXN0czp5PTMsdG9hc3RPcHRpb25zOncsZGlyOng9YigpLGdhcDpFPTE0LGljb25zOmssY29udGFpbmVyQXJpYUxhYmVsOlM9Ik5vdGlmaWNhdGlvbnMifT10LFtOLFRdPWUuZGVmYXVsdC51c2VTdGF0ZShbXSksQz1lLmRlZmF1bHQudXNlTWVtbygoKT0+QXJyYXkuZnJvbShuZXcgU2V0KFtuXS5jb25jYXQoTi5maWx0ZXIodD0+dC5wb3NpdGlvbikubWFwKHQ9PnQucG9zaXRpb24pKSkpLFtOLG5dKSxbTSxCXT1lLmRlZmF1bHQudXNlU3RhdGUoW10pLFtSLHpdPWUuZGVmYXVsdC51c2VTdGF0ZSghMSksW0Esal09ZS5kZWZhdWx0LnVzZVN0YXRlKCExKSxbJCxEXT1lLmRlZmF1bHQudXNlU3RhdGUoInN5c3RlbSIhPT1wP3A6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSIpLm1hdGNoZXM/ImRhcmsiOiJsaWdodCIpLEk9ZS5kZWZhdWx0LnVzZVJlZihudWxsKSxQPXMuam9pbigiKyIpLnJlcGxhY2UoL0tleS9nLCIiKS5yZXBsYWNlKC9EaWdpdC9nLCIiKSxZPWUuZGVmYXVsdC51c2VSZWYobnVsbCksTD1lLmRlZmF1bHQudXNlUmVmKCExKSxVPWUuZGVmYXVsdC51c2VDYWxsYmFjayh0PT57VChlPT57dmFyIGE7cmV0dXJuKG51bGw9PShhPWUuZmluZChlPT5lLmlkPT09dC5pZCkpP3ZvaWQgMDphLmRlbGV0ZSl8fHUuZGlzbWlzcyh0LmlkKSxlLmZpbHRlcigoe2lkOmV9KT0+ZSE9PXQuaWQpfSl9LFtdKTtyZXR1cm4gZS5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+dS5zdWJzY3JpYmUodD0+e3QuZGlzbWlzcz9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9PntUKGU9PmUubWFwKGU9PmUuaWQ9PT10LmlkP3suLi5lLGRlbGV0ZTohMH06ZSkpfSk6c2V0VGltZW91dCgoKT0+e2EuZGVmYXVsdC5mbHVzaFN5bmMoKCk9PntUKGU9PntsZXQgYT1lLmZpbmRJbmRleChlPT5lLmlkPT09dC5pZCk7cmV0dXJuIC0xIT09YT9bLi4uZS5zbGljZSgwLGEpLHsuLi5lW2FdLC4uLnR9LC4uLmUuc2xpY2UoYSsxKV06W3QsLi4uZV19KX0pfSl9KSxbTl0pLGUuZGVmYXVsdC51c2VFZmZlY3QoKCk9PntpZigic3lzdGVtIiE9PXApcmV0dXJuIHZvaWQgRChwKTtpZigic3lzdGVtIj09PXAmJih3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKS5tYXRjaGVzP0QoImRhcmsiKTpEKCJsaWdodCIpKSwidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdylyZXR1cm47bGV0IHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykiKTt0cnl7dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCh7bWF0Y2hlczp0fSk9Pnt0P0QoImRhcmsiKTpEKCJsaWdodCIpfSl9Y2F0Y2goZSl7dC5hZGRMaXN0ZW5lcigoe21hdGNoZXM6dH0pPT57dHJ5e3Q/RCgiZGFyayIpOkQoImxpZ2h0Iil9Y2F0Y2godCl7Y29uc29sZS5lcnJvcih0KX19KX19LFtwXSksZS5kZWZhdWx0LnVzZUVmZmVjdCgoKT0+e04ubGVuZ3RoPD0xJiZ6KCExKX0sW05dKSxlLmRlZmF1bHQudXNlRWZmZWN0KCgpPT57bGV0IHQ9dD0+e3ZhciBlLGE7cy5ldmVyeShlPT50W2VdfHx0LmNvZGU9PT1lKSYmKHooITApLG51bGw9PShhPUkuY3VycmVudCl8fGEuZm9jdXMoKSksIkVzY2FwZSI9PT10LmNvZGUmJihkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09SS5jdXJyZW50fHwobnVsbD09KGU9SS5jdXJyZW50KT92b2lkIDA6ZS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkpJiZ6KCExKX07cmV0dXJuIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHQpLCgpPT5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix0KX0sW3NdKSxlLmRlZmF1bHQudXNlRWZmZWN0KCgpPT57aWYoSS5jdXJyZW50KXJldHVybigpPT57WS5jdXJyZW50JiYoWS5jdXJyZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksWS5jdXJyZW50PW51bGwsTC5jdXJyZW50PSExKX19LFtJLmN1cnJlbnRdKSxlLmRlZmF1bHQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIse3JlZjpyLCJhcmlhLWxhYmVsIjpgJHtTfSAke1B9YCx0YWJJbmRleDotMSwiYXJpYS1saXZlIjoicG9saXRlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyB0ZXh0IiwiYXJpYS1hdG9taWMiOiJmYWxzZSIsc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nOiEwfSxDLm1hcCgoYSxyKT0+e3ZhciBuO2xldCBzLFt1LHBdPWEuc3BsaXQoIi0iKTtyZXR1cm4gTi5sZW5ndGg/ZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoIm9sIix7a2V5OmEsZGlyOiJhdXRvIj09PXg/YigpOngsdGFiSW5kZXg6LTEscmVmOkksY2xhc3NOYW1lOmQsImRhdGEtc29ubmVyLXRvYXN0ZXIiOiEwLCJkYXRhLXNvbm5lci10aGVtZSI6JCwiZGF0YS15LXBvc2l0aW9uIjp1LCJkYXRhLXgtcG9zaXRpb24iOnAsc3R5bGU6eyItLWZyb250LXRvYXN0LWhlaWdodCI6YCR7KG51bGw9PShuPU1bMF0pP3ZvaWQgMDpuLmhlaWdodCl8fDB9cHhgLCItLXdpZHRoIjoiMzU2cHgiLCItLWdhcCI6YCR7RX1weGAsLi4udiwuLi4ocz17fSxbYyxmXS5mb3JFYWNoKCh0LGUpPT57bGV0IGE9MT09PWUscj1hPyItLW1vYmlsZS1vZmZzZXQiOiItLW9mZnNldCIsbz1hPyIxNnB4IjoiMjRweCI7ZnVuY3Rpb24gbih0KXtbInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCJdLmZvckVhY2goZT0+e3NbYCR7cn0tJHtlfWBdPSJudW1iZXIiPT10eXBlb2YgdD9gJHt0fXB4YDp0fSl9Im51bWJlciI9PXR5cGVvZiB0fHwic3RyaW5nIj09dHlwZW9mIHQ/bih0KToib2JqZWN0Ij09dHlwZW9mIHQ/WyJ0b3AiLCJyaWdodCIsImJvdHRvbSIsImxlZnQiXS5mb3JFYWNoKGU9Pnt2b2lkIDA9PT10W2VdP3NbYCR7cn0tJHtlfWBdPW86c1tgJHtyfS0ke2V9YF09Im51bWJlciI9PXR5cGVvZiB0W2VdP2Ake3RbZV19cHhgOnRbZV19KTpuKG8pfSkscyl9LG9uQmx1cjp0PT57TC5jdXJyZW50JiYhdC5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKHQucmVsYXRlZFRhcmdldCkmJihMLmN1cnJlbnQ9ITEsWS5jdXJyZW50JiYoWS5jdXJyZW50LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSksWS5jdXJyZW50PW51bGwpKX0sb25Gb2N1czp0PT57ISh0LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYiZmFsc2UiPT09dC50YXJnZXQuZGF0YXNldC5kaXNtaXNzaWJsZSkmJihMLmN1cnJlbnR8fChMLmN1cnJlbnQ9ITAsWS5jdXJyZW50PXQucmVsYXRlZFRhcmdldCkpfSxvbk1vdXNlRW50ZXI6KCk9PnooITApLG9uTW91c2VNb3ZlOigpPT56KCEwKSxvbk1vdXNlTGVhdmU6KCk9PntBfHx6KCExKX0sb25EcmFnRW5kOigpPT56KCExKSxvblBvaW50ZXJEb3duOnQ9Pnt0LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiYiZmFsc2UiPT09dC50YXJnZXQuZGF0YXNldC5kaXNtaXNzaWJsZXx8aighMCl9LG9uUG9pbnRlclVwOigpPT5qKCExKX0sTi5maWx0ZXIodD0+IXQucG9zaXRpb24mJjA9PT1yfHx0LnBvc2l0aW9uPT09YSkubWFwKChyLG4pPT57dmFyIHMsZDtyZXR1cm4gZS5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoaCx7a2V5OnIuaWQsaWNvbnM6ayxpbmRleDpuLHRvYXN0OnIsZGVmYXVsdFJpY2hDb2xvcnM6bSxkdXJhdGlvbjpudWxsIT0ocz1udWxsPT13P3ZvaWQgMDp3LmR1cmF0aW9uKT9zOmcsY2xhc3NOYW1lOm51bGw9PXc/dm9pZCAwOncuY2xhc3NOYW1lLGRlc2NyaXB0aW9uQ2xhc3NOYW1lOm51bGw9PXc/dm9pZCAwOncuZGVzY3JpcHRpb25DbGFzc05hbWUsaW52ZXJ0Om8sdmlzaWJsZVRvYXN0czp5LGNsb3NlQnV0dG9uOm51bGwhPShkPW51bGw9PXc/dm9pZCAwOncuY2xvc2VCdXR0b24pP2Q6bCxpbnRlcmFjdGluZzpBLHBvc2l0aW9uOmEsc3R5bGU6bnVsbD09dz92b2lkIDA6dy5zdHlsZSx1bnN0eWxlZDpudWxsPT13P3ZvaWQgMDp3LnVuc3R5bGVkLGNsYXNzTmFtZXM6bnVsbD09dz92b2lkIDA6dy5jbGFzc05hbWVzLGNhbmNlbEJ1dHRvblN0eWxlOm51bGw9PXc/dm9pZCAwOncuY2FuY2VsQnV0dG9uU3R5bGUsYWN0aW9uQnV0dG9uU3R5bGU6bnVsbD09dz92b2lkIDA6dy5hY3Rpb25CdXR0b25TdHlsZSxjbG9zZUJ1dHRvbkFyaWFMYWJlbDpudWxsPT13P3ZvaWQgMDp3LmNsb3NlQnV0dG9uQXJpYUxhYmVsLHJlbW92ZVRvYXN0OlUsdG9hc3RzOk4uZmlsdGVyKHQ9PnQucG9zaXRpb249PXIucG9zaXRpb24pLGhlaWdodHM6TS5maWx0ZXIodD0+dC5wb3NpdGlvbj09ci5wb3NpdGlvbiksc2V0SGVpZ2h0czpCLGV4cGFuZEJ5RGVmYXVsdDppLGdhcDpFLGV4cGFuZGVkOlIsc3dpcGVEaXJlY3Rpb25zOnQuc3dpcGVEaXJlY3Rpb25zfSl9KSk6bnVsbH0pKX0pO3QucyhbIlRvYXN0ZXIiLCgpPT52LCJ0b2FzdCIsKCk9PnBdKX0sMzc3MjcsdD0+eyJ1c2Ugc3RyaWN0Ijt2YXIgZT10LmkoODQxOTQ3KTt0LnMoWyJYIiwoKT0+ZS5kZWZhdWx0XSl9LDUxMTQ3NCx0PT57InVzZSBzdHJpY3QiO3ZhciBlPXQuaSgyNzE2NDUpLGE9ezMwMzoiTXVsdGlwbGUgYWRhcHRlciBjb250ZXh0cyBkZXRlY3RlZC4gVGhpcyBtaWdodCBoYXBwZW4gaW4gbW9ub3JlcG9zLiIsNDA0OiJudXFzIHJlcXVpcmVzIGFuIGFkYXB0ZXIgdG8gd29yayB3aXRoIHlvdXIgZnJhbWV3b3JrLiIsNDA5OiJNdWx0aXBsZSB2ZXJzaW9ucyBvZiB0aGUgbGlicmFyeSBhcmUgbG9hZGVkLiBUaGlzIG1heSBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIEN1cnJlbnRseSB1c2luZyBgJXNgLCBidXQgYCVzYCAodmlhIHRoZSAlcyBhZGFwdGVyKSB3YXMgYWJvdXQgdG8gbG9hZCBvbiB0b3AuIiw0MTQ6Ik1heCBzYWZlIFVSTCBsZW5ndGggZXhjZWVkZWQuIFNvbWUgYnJvd3NlcnMgbWF5IG5vdCBiZSBhYmxlIHRvIGFjY2VwdCB0aGlzIFVSTC4gQ29uc2lkZXIgbGltaXRpbmcgdGhlIGFtb3VudCBvZiBzdGF0ZSBzdG9yZWQgaW4gdGhlIFVSTC4iLDQyOToiVVJMIHVwZGF0ZSByYXRlLWxpbWl0ZWQgYnkgdGhlIGJyb3dzZXIuIENvbnNpZGVyIGluY3JlYXNpbmcgYHRocm90dGxlTXNgIGZvciBrZXkocykgYCVzYC4gJU8iLDUwMDoiRW1wdHkgc2VhcmNoIHBhcmFtcyBjYWNoZS4gU2VhcmNoIHBhcmFtcyBjYW4ndCBiZSBhY2Nlc3NlZCBpbiBMYXlvdXRzLiIsNTAxOiJTZWFyY2ggcGFyYW1zIGNhY2hlIGFscmVhZHkgcG9wdWxhdGVkLiBIYXZlIHlvdSBjYWxsZWQgYHBhcnNlYCB0d2ljZT8ifTtmdW5jdGlvbiByKHQpe3JldHVybmBbbnVxc10gJHthW3RdfQogIFNlZSBodHRwczovL2Vyci40N25nLmNvbS9OVVFTLSR7dH1gfWZ1bmN0aW9uIG8odCl7aWYoMD09PXQuc2l6ZSlyZXR1cm4iIjtsZXQgZT1bXTtmb3IobGV0W2Escl1vZiB0LmVudHJpZXMoKSl7bGV0IHQ9YS5yZXBsYWNlKC8jL2csIiUyMyIpLnJlcGxhY2UoLyYvZywiJTI2IikucmVwbGFjZSgvXCsvZywiJTJCIikucmVwbGFjZSgvPS9nLCIlM0QiKS5yZXBsYWNlKC9cPy9nLCIlM0YiKTtlLnB1c2goYCR7dH09JHtyLnJlcGxhY2UoLyUvZywiJTI1IikucmVwbGFjZSgvXCsvZywiJTJCIikucmVwbGFjZSgvIC9nLCIrIikucmVwbGFjZSgvIy9nLCIlMjMiKS5yZXBsYWNlKC8mL2csIiUyNiIpLnJlcGxhY2UoLyIvZywiJTIyIikucmVwbGFjZSgvJy9nLCIlMjciKS5yZXBsYWNlKC9gL2csIiU2MCIpLnJlcGxhY2UoLzwvZywiJTNDIikucmVwbGFjZSgvPi9nLCIlM0UiKS5yZXBsYWNlKC9bXHgwMC1ceDFGXS9nLHQ9PmVuY29kZVVSSUNvbXBvbmVudCh0KSl9YCl9cmV0dXJuIj8iK2Uuam9pbigiJiIpfXZhciBuPWZ1bmN0aW9uKCl7dHJ5e2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgbG9jYWxTdG9yYWdlKXJldHVybiExO2xldCB0PSJudXFzLWxvY2FsU3RvcmFnZS10ZXN0Ijtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0LHQpO2xldCBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHQpPT09dDtpZihsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0KSwhZSlyZXR1cm4hMX1jYXRjaCh0KXtyZXR1cm4gY29uc29sZS5lcnJvcigiW251cXNdOiBkZWJ1ZyBtb2RlIGlzIGRpc2FibGVkIChsb2NhbFN0b3JhZ2UgdW5hdmFpbGFibGUpLiIsdCksITF9cmV0dXJuKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZWJ1ZyIpPz8iIikuaW5jbHVkZXMoIm51cXMiKX0oKTtmdW5jdGlvbiBzKHQsLi4uZSl7aWYoIW4pcmV0dXJuO2xldCBhPWZ1bmN0aW9uKHQsLi4uZSl7cmV0dXJuIHQucmVwbGFjZSgvJVtzZmRPXS9nLHQ9PntsZXQgYT1lLnNoaWZ0KCk7cmV0dXJuIiVPIj09PXQmJmE/SlNPTi5zdHJpbmdpZnkoYSkucmVwbGFjZSgvIihbXiJdKykiOi9nLCIkMToiKTpTdHJpbmcoYSl9KX0odCwuLi5lKTtwZXJmb3JtYW5jZS5tYXJrKGEpO3RyeXtjb25zb2xlLmxvZyh0LC4uLmUpfWNhdGNoKHQpe2NvbnNvbGUubG9nKGEpfX1mdW5jdGlvbiBpKHQsLi4uZSl7biYmY29uc29sZS53YXJuKHQsLi4uZSl9dmFyIGw9KDAsZS5jcmVhdGVDb250ZXh0KSh7dXNlQWRhcHRlcigpe3Rocm93IEVycm9yKHIoNDA0KSl9fSk7ZnVuY3Rpb24gZCh0KXtyZXR1cm4oe2NoaWxkcmVuOmEsLi4ucn0pPT4oMCxlLmNyZWF0ZUVsZW1lbnQpKGwuUHJvdmlkZXIsey4uLnIsdmFsdWU6e3VzZUFkYXB0ZXI6dH19LGEpfWZ1bmN0aW9uIGMoKXtsZXQgdD0oMCxlLnVzZUNvbnRleHQpKGwpO2lmKCEoInVzZUFkYXB0ZXIiaW4gdCkpdGhyb3cgRXJyb3Iocig0MDQpKTtyZXR1cm4gdC51c2VBZGFwdGVyKCl9bC5kaXNwbGF5TmFtZT0iTnVxc0FkYXB0ZXJDb250ZXh0IixuJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5fX051cXNBZGFwdGVyQ29udGV4dCYmd2luZG93Ll9fTnVxc0FkYXB0ZXJDb250ZXh0IT09bCYmY29uc29sZS5lcnJvcihyKDMwMykpLHdpbmRvdy5fX051cXNBZGFwdGVyQ29udGV4dD1sKSx0LnMoWyJjcmVhdGVBZGFwdGVyUHJvdmlkZXIiLCgpPT5kLCJkZWJ1ZyIsKCk9PnMsImVycm9yIiwoKT0+ciwicmVuZGVyUXVlcnlTdHJpbmciLCgpPT5vLCJ1c2VBZGFwdGVyIiwoKT0+Yywid2FybiIsKCk9PmldKX1dKTs="}},"time_used":18,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":18,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/image?url=%2Fimages%2Fnewton-logo-white.png\u0026w=256\u0026q=75","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"imageset","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.257Z","timestamp":1785142498257,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/image?url=%2Fimages%2Fnewton-logo-white.png\u0026w=256\u0026q=75 HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 914549\r\ncache-control: public, max-age=0, must-revalidate\r\ncontent-disposition: attachment; filename=\"newton-logo-white.webp\"\r\ncontent-security-policy: script-src 'none'; frame-src 'none'; sandbox;\r\ncontent-type: image/webp\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\nlast-modified: Thu, 16 Jul 2026 18:52:28 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nvary: Accept\r\nx-matched-path: /images/newton-logo-white.png\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::glmvs-1785142498262-3fcd01a43df6\r\ncontent-length: 3624\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":3624,"size_decoded":4222,"mime_type":"image/webp","magic":"RIFF (little-endian) data, Web/P image","md5":"8a04ce3d1fdee88968e60b9320e0d99e","sha1":"8cada8c1d17f63212fcdd7caec8309cd50b8c406","sha256":"7176ce84ec353bbb9b2729bcadeeb5afc46240e5ba9576f51a47c3a53616c3d2","sha512":"061ed024a76c8c7e656374d6ff8eb4595b25fe435e87bbf49c2f79bd359c916ad8f91612d144ce4ae60f5da8c8bd9731a7747ebc7adf6baafbb5602134b3d479","ssdeep":"","tlshash":"4d715d70687f15ecee3ab9a0a9c8d3448611d0f94388de6de616a43ae80db4b757c550","first_seen":"2026-07-27T06:16:09.090996Z","last_seen":"2026-07-27T08:57:45.671404Z","times_seen":3,"resource_available":false,"data":"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"}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/d96012bcfc98706a.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.228Z","timestamp":1785142498228,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/d96012bcfc98706a.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"d96012bcfc98706a.js\"\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: \"a891ffca6e40b82b1913aca76e8f9d05\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/d96012bcfc98706a.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::sb2bk-1785142498232-f689aca3e645\r\ncontent-length: 283\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":283,"size_decoded":886,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with no line terminators","md5":"a891ffca6e40b82b1913aca76e8f9d05","sha1":"1ae29e59229a65b1cdafba1ba470811f51b82b2b","sha256":"514e0e3c4b197331eff40e33df70dda45b80afc04df67b8483079357f85bffb6","sha512":"e56a338a856028fe3dea000c65e6540adac71f95d880577c913f0e0ddd39aa4df7c5e78d1d22364f1c83982f9e9e81250fdcdd94f9e758ca500d2f36d7f80f4e","ssdeep":"","tlshash":"67d02b703250f8d84086e4cc8836424bf52924b262fe3895d7ae8cb16174f0c61e1a55","first_seen":"2025-09-04T08:38:12.597563Z","last_seen":"2026-07-27T12:08:19.776614Z","times_seen":3592,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDIzMzUyNSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwid2Fybk9uY2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPWU9Pnt9fV0pOw=="}},"time_used":17,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":17,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/80831ef31f509b6e.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.234Z","timestamp":1785142498234,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/80831ef31f509b6e.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"80831ef31f509b6e.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"51a61d26d5ed590ebe4e1f7702dd8037\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:35 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/80831ef31f509b6e.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::tjcl7-1785142498240-8465e60c9b60\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":433880,"size_decoded":105029,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (36265)","md5":"51a61d26d5ed590ebe4e1f7702dd8037","sha1":"1d1884d7615416226e49517ff9bee2603c54fc6d","sha256":"0b2d8a17276ce01ccb1aa5820849c1b401a092c66e34b9a7c66b44e3f1b8fcb9","sha512":"7f48f408c143cf272c486171695f43a4f5ba6006a301fb8d221f6afdf5b8171747e82ea3b4765c633c8f168f6a0c0732d9859a73234d753daff03fa3b1557cfb","ssdeep":"12288:q0XCcbHddlDHpvnlrjCt1ha8I04AuOIejyYMVWvWFNeXpgczFtS0TbmOAMrBZbzm:TejyY2FaOczFtS0TbmOAMrBZbzEsm9EG","tlshash":"25946dd677abb52607da11d620de1101e2bc0e5454ac88b4f2aed5dfb2d8c80e573f3a","first_seen":"2026-07-27T06:16:09.149262Z","last_seen":"2026-07-27T08:57:45.667748Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDk5OTcwLChlLHQscik9PnsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LmRlZmluZVByb3BlcnR5LGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzLG89T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxzPXt9LHU9e1NZTUJPTF9GT1JfUkVRX0NPTlRFWFQ6KCk9PmQsZ2V0Q29udGV4dDooKT0+Y307Zm9yKHZhciBsIGluIHUpbihzLGwse2dldDp1W2xdLGVudW1lcmFibGU6ITB9KTt0LmV4cG9ydHM9KChlLHQscixzKT0+e2lmKHQmJiJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpZm9yKGxldCB1IG9mIGEodCkpby5jYWxsKGUsdSl8fHU9PT1yfHxuKGUsdSx7Z2V0OigpPT50W3VdLGVudW1lcmFibGU6IShzPWkodCx1KSl8fHMuZW51bWVyYWJsZX0pO3JldHVybiBlfSkobih7fSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkscyk7bGV0IGQ9U3ltYm9sLmZvcigiQHZlcmNlbC9yZXF1ZXN0LWNvbnRleHQiKTtmdW5jdGlvbiBjKCl7bGV0IGU9Z2xvYmFsVGhpcztyZXR1cm4gZVtkXT8uZ2V0Py4oKT8/e319fSw4OTE3NTQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHksaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHM9e30sdT17QWNjZXNzVG9rZW5NaXNzaW5nRXJyb3I6KCk9PmQsUmVmcmVzaEFjY2Vzc1Rva2VuRmFpbGVkRXJyb3I6KCk9PmN9O2Zvcih2YXIgbCBpbiB1KW4ocyxsLHtnZXQ6dVtsXSxlbnVtZXJhYmxlOiEwfSk7dC5leHBvcnRzPSgoZSx0LHIscyk9PntpZih0JiYib2JqZWN0Ij09dHlwZW9mIHR8fCJmdW5jdGlvbiI9PXR5cGVvZiB0KWZvcihsZXQgdSBvZiBhKHQpKW8uY2FsbChlLHUpfHx1PT09cnx8bihlLHUse2dldDooKT0+dFt1XSxlbnVtZXJhYmxlOiEocz1pKHQsdSkpfHxzLmVudW1lcmFibGV9KTtyZXR1cm4gZX0pKG4oe30sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHMpO2NsYXNzIGQgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCJObyBhdXRoZW50aWNhdGlvbiBmb3VuZC4gUGxlYXNlIGxvZyBpbiB3aXRoIHRoZSBWZXJjZWwgQ0xJICh2ZXJjZWwgbG9naW4pLiIpLHRoaXMubmFtZT0iQWNjZXNzVG9rZW5NaXNzaW5nRXJyb3IifX1jbGFzcyBjIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoIkZhaWxlZCB0byByZWZyZXNoIGF1dGhlbnRpY2F0aW9uIHRva2VuLiIse2NhdXNlOmV9KSx0aGlzLm5hbWU9IlJlZnJlc2hBY2Nlc3NUb2tlbkZhaWxlZEVycm9yIn19fSw3MjUxNTAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QuZGVmaW5lUHJvcGVydHksaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsbz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHM9e30sdT17QWNjZXNzVG9rZW5NaXNzaW5nRXJyb3I6KCk9PmMuQWNjZXNzVG9rZW5NaXNzaW5nRXJyb3IsUmVmcmVzaEFjY2Vzc1Rva2VuRmFpbGVkRXJyb3I6KCk9PmMuUmVmcmVzaEFjY2Vzc1Rva2VuRmFpbGVkRXJyb3IsZ2V0Q29udGV4dDooKT0+ZC5nZXRDb250ZXh0LGdldFZlcmNlbE9pZGNUb2tlbjooKT0+cCxnZXRWZXJjZWxPaWRjVG9rZW5TeW5jOigpPT5tLGdldFZlcmNlbFRva2VuOigpPT5mfTtmb3IodmFyIGwgaW4gdSluKHMsbCx7Z2V0OnVbbF0sZW51bWVyYWJsZTohMH0pO3QuZXhwb3J0cz0oKGUsdCxyLHMpPT57aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0fHwiZnVuY3Rpb24iPT10eXBlb2YgdClmb3IobGV0IHUgb2YgYSh0KSlvLmNhbGwoZSx1KXx8dT09PXJ8fG4oZSx1LHtnZXQ6KCk9PnRbdV0sZW51bWVyYWJsZTohKHM9aSh0LHUpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9KShuKHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxzKTt2YXIgZD1lLnIoOTk5NzApLGM9ZS5yKDg5MTc1NCk7YXN5bmMgZnVuY3Rpb24gcCgpe3JldHVybiIifWZ1bmN0aW9uIG0oKXtyZXR1cm4iIn1hc3luYyBmdW5jdGlvbiBmKCl7dGhyb3cgRXJyb3IoImdldFZlcmNlbFRva2VuIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYnJvd3NlciBlbnZpcm9ubWVudHMiKX19LDU2MTg2NiwoZSx0LHIpPT57dC5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7bGV0IHI7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKGBFeHBlY3RlZCB0aGUgZmlyc3QgYXJndW1lbnQgdG8gYmUgYSBcYGZ1bmN0aW9uXGAsIGdvdCBcYCR7dHlwZW9mIGV9XGAuYCk7bGV0IG49MDtyZXR1cm4gZnVuY3Rpb24oLi4uaSl7Y2xlYXJUaW1lb3V0KHIpO2xldCBhPURhdGUubm93KCksbz10LShhLW4pO288PTA/KG49YSxlLmFwcGx5KHRoaXMsaSkpOnI9c2V0VGltZW91dCgoKT0+e249RGF0ZS5ub3coKSxlLmFwcGx5KHRoaXMsaSl9LG8pfX19LDc1NTgzOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPWUucigyNzE2NDUpLGk9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT09PXQmJigwIT09ZXx8MS9lPT0xL3QpfHxlIT1lJiZ0IT10fSxhPW4udXNlU3RhdGUsbz1uLnVzZUVmZmVjdCxzPW4udXNlTGF5b3V0RWZmZWN0LHU9bi51c2VEZWJ1Z1ZhbHVlO2Z1bmN0aW9uIGwoZSl7dmFyIHQ9ZS5nZXRTbmFwc2hvdDtlPWUudmFsdWU7dHJ5e3ZhciByPXQoKTtyZXR1cm4haShlLHIpfWNhdGNoKGUpe3JldHVybiEwfX12YXIgZD0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8dm9pZCAwPT09d2luZG93LmRvY3VtZW50fHx2b2lkIDA9PT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudD9mdW5jdGlvbihlLHQpe3JldHVybiB0KCl9OmZ1bmN0aW9uKGUsdCl7dmFyIHI9dCgpLG49YSh7aW5zdDp7dmFsdWU6cixnZXRTbmFwc2hvdDp0fX0pLGk9blswXS5pbnN0LGQ9blsxXTtyZXR1cm4gcyhmdW5jdGlvbigpe2kudmFsdWU9cixpLmdldFNuYXBzaG90PXQsbChpKSYmZCh7aW5zdDppfSl9LFtlLHIsdF0pLG8oZnVuY3Rpb24oKXtyZXR1cm4gbChpKSYmZCh7aW5zdDppfSksZShmdW5jdGlvbigpe2woaSkmJmQoe2luc3Q6aX0pfSl9LFtlXSksdShyKSxyfTtyLnVzZVN5bmNFeHRlcm5hbFN0b3JlPXZvaWQgMCE9PW4udXNlU3luY0V4dGVybmFsU3RvcmU/bi51c2VTeW5jRXh0ZXJuYWxTdG9yZTpkfSw4MDIyMzksKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0Ijt0LmV4cG9ydHM9ZS5yKDc1NTgzOCl9LDcxMTA2LGU9PnsidXNlIHN0cmljdCI7bGV0IHQ7dmFyIHIsbixpLGEsbyxzLHUsbCxkLGMscCxtLGYsaCx2LGcseSxiLF8seCwkLGssdyxJLFMsTyxqLEUsWixOLFQseixQLEEsVSxDLEQsUixNLEwsRixWLEIsSixXLHEsRyxLLFksSCxYLFEsZWUsZXQsZXIsZW49ZS5pKDg0MzQ3NiksZWk9ZS5pKDI3MTY0NSksZWE9ZS5pKDYxODU2NiksZW89ZS5pKDI0NzE2NyksZXM9ZS5pKDQ2NzAzNCksZXU9InZlcmNlbC5haS5lcnJvciIsZWw9U3ltYm9sLmZvcihldSksZWQ9Y2xhc3MgZSBleHRlbmRzKGw9RXJyb3IsdT1lbCxsKXtjb25zdHJ1Y3Rvcih7bmFtZTplLG1lc3NhZ2U6dCxjYXVzZTpyfSl7c3VwZXIodCksdGhpc1t1XT0hMCx0aGlzLm5hbWU9ZSx0aGlzLmNhdXNlPXJ9c3RhdGljIGlzSW5zdGFuY2UodCl7cmV0dXJuIGUuaGFzTWFya2VyKHQsZXUpfXN0YXRpYyBoYXNNYXJrZXIoZSx0KXtsZXQgcj1TeW1ib2wuZm9yKHQpO3JldHVybiBudWxsIT1lJiYib2JqZWN0Ij09dHlwZW9mIGUmJnIgaW4gZSYmImJvb2xlYW4iPT10eXBlb2YgZVtyXSYmITA9PT1lW3JdfX0sZWM9IkFJX0FQSUNhbGxFcnJvciIsZXA9YHZlcmNlbC5haS5lcnJvci4ke2VjfWAsZW09U3ltYm9sLmZvcihlcCksZWY9Y2xhc3MgZXh0ZW5kcyhjPWVkLGQ9ZW0sYyl7Y29uc3RydWN0b3Ioe21lc3NhZ2U6ZSx1cmw6dCxyZXF1ZXN0Qm9keVZhbHVlczpyLHN0YXR1c0NvZGU6bixyZXNwb25zZUhlYWRlcnM6aSxyZXNwb25zZUJvZHk6YSxjYXVzZTpvLGlzUmV0cnlhYmxlOnM9bnVsbCE9biYmKDQwOD09PW58fDQwOT09PW58fDQyOT09PW58fG4+PTUwMCksZGF0YTp1fSl7c3VwZXIoe25hbWU6ZWMsbWVzc2FnZTplLGNhdXNlOm99KSx0aGlzW2RdPSEwLHRoaXMudXJsPXQsdGhpcy5yZXF1ZXN0Qm9keVZhbHVlcz1yLHRoaXMuc3RhdHVzQ29kZT1uLHRoaXMucmVzcG9uc2VIZWFkZXJzPWksdGhpcy5yZXNwb25zZUJvZHk9YSx0aGlzLmlzUmV0cnlhYmxlPXMsdGhpcy5kYXRhPXV9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGVkLmhhc01hcmtlcihlLGVwKX19LGVoPSJBSV9FbXB0eVJlc3BvbnNlQm9keUVycm9yIixldj1gdmVyY2VsLmFpLmVycm9yLiR7ZWh9YCxlZz1TeW1ib2wuZm9yKGV2KSxleT1jbGFzcyBleHRlbmRzKG09ZWQscD1lZyxtKXtjb25zdHJ1Y3Rvcih7bWVzc2FnZTplPSJFbXB0eSByZXNwb25zZSBib2R5In09e30pe3N1cGVyKHtuYW1lOmVoLG1lc3NhZ2U6ZX0pLHRoaXNbcF09ITB9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGVkLmhhc01hcmtlcihlLGV2KX19O2Z1bmN0aW9uIGViKGUpe3JldHVybiBudWxsPT1lPyJ1bmtub3duIGVycm9yIjoic3RyaW5nIj09dHlwZW9mIGU/ZTplIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOkpTT04uc3RyaW5naWZ5KGUpfXZhciBlXz0iQUlfSW52YWxpZEFyZ3VtZW50RXJyb3IiLGV4PWB2ZXJjZWwuYWkuZXJyb3IuJHtlX31gLGUkPVN5bWJvbC5mb3IoZXgpLGVrPWNsYXNzIGV4dGVuZHMoaD1lZCxmPWUkLGgpe2NvbnN0cnVjdG9yKHttZXNzYWdlOmUsY2F1c2U6dCxhcmd1bWVudDpyfSl7c3VwZXIoe25hbWU6ZV8sbWVzc2FnZTplLGNhdXNlOnR9KSx0aGlzW2ZdPSEwLHRoaXMuYXJndW1lbnQ9cn1zdGF0aWMgaXNJbnN0YW5jZShlKXtyZXR1cm4gZWQuaGFzTWFya2VyKGUsZXgpfX0sZXc9U3ltYm9sLmZvcigidmVyY2VsLmFpLmVycm9yLkFJX0ludmFsaWRQcm9tcHRFcnJvciIpO1N5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9JbnZhbGlkUmVzcG9uc2VEYXRhRXJyb3IiKTt2YXIgZUk9IkFJX0pTT05QYXJzZUVycm9yIixlUz1gdmVyY2VsLmFpLmVycm9yLiR7ZUl9YCxlTz1TeW1ib2wuZm9yKGVTKSxlaj1jbGFzcyBleHRlbmRzKGc9ZWQsdj1lTyxnKXtjb25zdHJ1Y3Rvcih7dGV4dDplLGNhdXNlOnR9KXtzdXBlcih7bmFtZTplSSxtZXNzYWdlOmBKU09OIHBhcnNpbmcgZmFpbGVkOiBUZXh0OiAke2V9LgpFcnJvciBtZXNzYWdlOiAke2ViKHQpfWAsY2F1c2U6dH0pLHRoaXNbdl09ITAsdGhpcy50ZXh0PWV9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGVkLmhhc01hcmtlcihlLGVTKX19LGVFPVN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9Mb2FkQVBJS2V5RXJyb3IiKTtTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfTG9hZFNldHRpbmdFcnJvciIpO1N5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9Ob0NvbnRlbnRHZW5lcmF0ZWRFcnJvciIpO1N5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9Ob1N1Y2hNb2RlbEVycm9yIik7U3ltYm9sLmZvcigidmVyY2VsLmFpLmVycm9yLkFJX1Rvb01hbnlFbWJlZGRpbmdWYWx1ZXNGb3JDYWxsRXJyb3IiKTt2YXIgZVo9IkFJX1R5cGVWYWxpZGF0aW9uRXJyb3IiLGVOPWB2ZXJjZWwuYWkuZXJyb3IuJHtlWn1gLGVUPVN5bWJvbC5mb3IoZU4pLGV6PWNsYXNzIGUgZXh0ZW5kcyhiPWVkLHk9ZVQsYil7Y29uc3RydWN0b3Ioe3ZhbHVlOmUsY2F1c2U6dCxjb250ZXh0OnJ9KXtsZXQgbj0iVHlwZSB2YWxpZGF0aW9uIGZhaWxlZCI7aWYoKG51bGw9PXI/dm9pZCAwOnIuZmllbGQpJiYobis9YCBmb3IgJHtyLmZpZWxkfWApLChudWxsPT1yP3ZvaWQgMDpyLmVudGl0eU5hbWUpfHwobnVsbD09cj92b2lkIDA6ci5lbnRpdHlJZCkpe24rPSIgKCI7Y29uc3QgZT1bXTtyLmVudGl0eU5hbWUmJmUucHVzaChyLmVudGl0eU5hbWUpLHIuZW50aXR5SWQmJmUucHVzaChgaWQ6ICIke3IuZW50aXR5SWR9ImApLG4rPWUuam9pbigiLCAiKSxuKz0iKSJ9c3VwZXIoe25hbWU6ZVosbWVzc2FnZTpgJHtufTogVmFsdWU6ICR7SlNPTi5zdHJpbmdpZnkoZSl9LgpFcnJvciBtZXNzYWdlOiAke2ViKHQpfWAsY2F1c2U6dH0pLHRoaXNbeV09ITAsdGhpcy52YWx1ZT1lLHRoaXMuY29udGV4dD1yfXN0YXRpYyBpc0luc3RhbmNlKGUpe3JldHVybiBlZC5oYXNNYXJrZXIoZSxlTil9c3RhdGljIHdyYXAoe3ZhbHVlOnQsY2F1c2U6cixjb250ZXh0Om59KXt2YXIgaSxhLG87cmV0dXJuIGUuaXNJbnN0YW5jZShyKSYmci52YWx1ZT09PXQmJihudWxsPT0oaT1yLmNvbnRleHQpP3ZvaWQgMDppLmZpZWxkKT09PShudWxsPT1uP3ZvaWQgMDpuLmZpZWxkKSYmKG51bGw9PShhPXIuY29udGV4dCk/dm9pZCAwOmEuZW50aXR5TmFtZSk9PT0obnVsbD09bj92b2lkIDA6bi5lbnRpdHlOYW1lKSYmKG51bGw9PShvPXIuY29udGV4dCk/dm9pZCAwOm8uZW50aXR5SWQpPT09KG51bGw9PW4/dm9pZCAwOm4uZW50aXR5SWQpP3I6bmV3IGUoe3ZhbHVlOnQsY2F1c2U6cixjb250ZXh0Om59KX19LGVQPVN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9VbnN1cHBvcnRlZEZ1bmN0aW9uYWxpdHlFcnJvciIpO2xldCBlQT1PYmplY3QuZnJlZXplKHtzdGF0dXM6ImFib3J0ZWQifSk7ZnVuY3Rpb24gZVUoZSx0LHIpe2Z1bmN0aW9uIG4ocixuKXt2YXIgaTtmb3IobGV0IGEgaW4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl96b2QiLHt2YWx1ZTpyLl96b2Q/P3t9LGVudW1lcmFibGU6ITF9KSwoaT1yLl96b2QpLnRyYWl0cz8/KGkudHJhaXRzPW5ldyBTZXQpLHIuX3pvZC50cmFpdHMuYWRkKGUpLHQocixuKSxvLnByb3RvdHlwZSlhIGluIHJ8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse3ZhbHVlOm8ucHJvdG90eXBlW2FdLmJpbmQocil9KTtyLl96b2QuY29uc3RyPW8sci5fem9kLmRlZj1ufWxldCBpPXI/LlBhcmVudD8/T2JqZWN0O2NsYXNzIGEgZXh0ZW5kcyBpe31mdW5jdGlvbiBvKGUpe3ZhciB0O2xldCBpPXI/LlBhcmVudD9uZXcgYTp0aGlzO2ZvcihsZXQgciBvZihuKGksZSksKHQ9aS5fem9kKS5kZWZlcnJlZD8/KHQuZGVmZXJyZWQ9W10pLGkuX3pvZC5kZWZlcnJlZCkpcigpO3JldHVybiBpfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwibmFtZSIse3ZhbHVlOmV9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobywiaW5pdCIse3ZhbHVlOm59KSxPYmplY3QuZGVmaW5lUHJvcGVydHkobyxTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOnQ9PiEhcj8uUGFyZW50JiZ0IGluc3RhbmNlb2Ygci5QYXJlbnR8fHQ/Ll96b2Q/LnRyYWl0cz8uaGFzKGUpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIm5hbWUiLHt2YWx1ZTplfSksb31sZXQgZUM9U3ltYm9sKCJ6b2RfYnJhbmQiKTtjbGFzcyBlRCBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIkVuY291bnRlcmVkIFByb21pc2UgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlLiBVc2UgLnBhcnNlQXN5bmMoKSBpbnN0ZWFkLiIpfX1sZXQgZVI9e307ZnVuY3Rpb24gZU0oZSl7cmV0dXJuIGUmJk9iamVjdC5hc3NpZ24oZVIsZSksZVJ9ZnVuY3Rpb24gZUwoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gZUYoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gZVYoZSl7fWZ1bmN0aW9uIGVCKGUpe3Rocm93IEVycm9yKCl9ZnVuY3Rpb24gZUooZSl7fWZ1bmN0aW9uIGVXKGUpe2xldCB0PU9iamVjdC52YWx1ZXMoZSkuZmlsdGVyKGU9PiJudW1iZXIiPT10eXBlb2YgZSk7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZpbHRlcigoW2Uscl0pPT4tMT09PXQuaW5kZXhPZigrZSkpLm1hcCgoW2UsdF0pPT50KX1mdW5jdGlvbiBlcShlLHQ9InwiKXtyZXR1cm4gZS5tYXAoZT0+dG8oZSkpLmpvaW4odCl9ZnVuY3Rpb24gZUcoZSx0KXtyZXR1cm4iYmlnaW50Ij09dHlwZW9mIHQ/dC50b1N0cmluZygpOnR9ZnVuY3Rpb24gZUsoZSl7cmV0dXJue2dldCB2YWx1ZSgpe3tsZXQgdD1lKCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJ2YWx1ZSIse3ZhbHVlOnR9KSx0fX19fWZ1bmN0aW9uIGVZKGUpe3JldHVybiBudWxsPT1lfWZ1bmN0aW9uIGVIKGUpe2xldCB0PSshIWUuc3RhcnRzV2l0aCgiXiIpLHI9ZS5lbmRzV2l0aCgiJCIpP2UubGVuZ3RoLTE6ZS5sZW5ndGg7cmV0dXJuIGUuc2xpY2UodCxyKX1mdW5jdGlvbiBlWChlLHQpe2xldCByPShlLnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXXx8IiIpLmxlbmd0aCxuPSh0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKVsxXXx8IiIpLmxlbmd0aCxpPXI+bj9yOm47cmV0dXJuIE51bWJlci5wYXJzZUludChlLnRvRml4ZWQoaSkucmVwbGFjZSgiLiIsIiIpKSVOdW1iZXIucGFyc2VJbnQodC50b0ZpeGVkKGkpLnJlcGxhY2UoIi4iLCIiKSkvMTAqKml9ZnVuY3Rpb24gZVEoZSx0LHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2dldCgpe3tsZXQgbj1yKCk7cmV0dXJuIGVbdF09bixufX0sc2V0KHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnJ9KX0sY29uZmlndXJhYmxlOiEwfSl9ZnVuY3Rpb24gZTAoZSx0LHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOnIsd3JpdGFibGU6ITAsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBlMShlLHQpe3JldHVybiB0P3QucmVkdWNlKChlLHQpPT5lPy5bdF0sZSk6ZX1mdW5jdGlvbiBlNChlKXtsZXQgdD1PYmplY3Qua2V5cyhlKTtyZXR1cm4gUHJvbWlzZS5hbGwodC5tYXAodD0+ZVt0XSkpLnRoZW4oZT0+e2xldCByPXt9O2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXJbdFtuXV09ZVtuXTtyZXR1cm4gcn0pfWZ1bmN0aW9uIGU2KGU9MTApe2xldCB0PSJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIscj0iIjtmb3IobGV0IG49MDtuPGU7bisrKXIrPXRbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnQubGVuZ3RoKV07cmV0dXJuIHJ9ZnVuY3Rpb24gZTIoZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWUucyhbIiRab2RBc3luY0Vycm9yIiwoKT0+ZUQsIiRicmFuZCIsMCxlQywiJGNvbnN0cnVjdG9yIiwoKT0+ZVUsIk5FVkVSIiwwLGVBLCJjb25maWciLCgpPT5lTSwiZ2xvYmFsQ29uZmlnIiwwLGVSXSwxOTc3NTMpO2xldCBlOT1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZT9FcnJvci5jYXB0dXJlU3RhY2tUcmFjZTooLi4uZSk9Pnt9O2Z1bmN0aW9uIGU1KGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiFBcnJheS5pc0FycmF5KGUpfWxldCBlMz1lSygoKT0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3I/LnVzZXJBZ2VudD8uaW5jbHVkZXMoIkNsb3VkZmxhcmUiKSlyZXR1cm4hMTt0cnl7cmV0dXJuIEZ1bmN0aW9uKCIiKSwhMH1jYXRjaChlKXtyZXR1cm4hMX19KTtmdW5jdGlvbiBlNyhlKXtpZighMT09PWU1KGUpKXJldHVybiExO2xldCB0PWUuY29uc3RydWN0b3I7aWYodm9pZCAwPT09dClyZXR1cm4hMDtsZXQgcj10LnByb3RvdHlwZTtyZXR1cm4hMSE9PWU1KHIpJiYhMSE9PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLCJpc1Byb3RvdHlwZU9mIil9ZnVuY3Rpb24gZTgoZSl7bGV0IHQ9MDtmb3IobGV0IHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdCsrO3JldHVybiB0fWxldCB0ZT1uZXcgU2V0KFsic3RyaW5nIiwibnVtYmVyIiwic3ltYm9sIl0pLHR0PW5ldyBTZXQoWyJzdHJpbmciLCJudW1iZXIiLCJiaWdpbnQiLCJib29sZWFuIiwic3ltYm9sIiwidW5kZWZpbmVkIl0pO2Z1bmN0aW9uIHRyKGUpe3JldHVybiBlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIil9ZnVuY3Rpb24gdG4oZSx0LHIpe2xldCBuPW5ldyBlLl96b2QuY29uc3RyKHQ/P2UuX3pvZC5kZWYpO3JldHVybighdHx8cj8ucGFyZW50KSYmKG4uX3pvZC5wYXJlbnQ9ZSksbn1mdW5jdGlvbiB0aShlKXtpZighZSlyZXR1cm57fTtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJue2Vycm9yOigpPT5lfTtpZihlPy5tZXNzYWdlIT09dm9pZCAwKXtpZihlPy5lcnJvciE9PXZvaWQgMCl0aHJvdyBFcnJvcigiQ2Fubm90IHNwZWNpZnkgYm90aCBgbWVzc2FnZWAgYW5kIGBlcnJvcmAgcGFyYW1zIik7ZS5lcnJvcj1lLm1lc3NhZ2V9cmV0dXJuKGRlbGV0ZSBlLm1lc3NhZ2UsInN0cmluZyI9PXR5cGVvZiBlLmVycm9yKT97Li4uZSxlcnJvcjooKT0+ZS5lcnJvcn06ZX1mdW5jdGlvbiB0YShlKXtsZXQgdDtyZXR1cm4gbmV3IFByb3h5KHt9LHtnZXQ6KHIsbixpKT0+KHQ/Pyh0PWUoKSksUmVmbGVjdC5nZXQodCxuLGkpKSxzZXQ6KHIsbixpLGEpPT4odD8/KHQ9ZSgpKSxSZWZsZWN0LnNldCh0LG4saSxhKSksaGFzOihyLG4pPT4odD8/KHQ9ZSgpKSxSZWZsZWN0Lmhhcyh0LG4pKSxkZWxldGVQcm9wZXJ0eToocixuKT0+KHQ/Pyh0PWUoKSksUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0LG4pKSxvd25LZXlzOnI9Pih0Pz8odD1lKCkpLFJlZmxlY3Qub3duS2V5cyh0KSksZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOihyLG4pPT4odD8/KHQ9ZSgpKSxSZWZsZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pKSxkZWZpbmVQcm9wZXJ0eToocixuLGkpPT4odD8/KHQ9ZSgpKSxSZWZsZWN0LmRlZmluZVByb3BlcnR5KHQsbixpKSl9KX1mdW5jdGlvbiB0byhlKXtyZXR1cm4iYmlnaW50Ij09dHlwZW9mIGU/ZS50b1N0cmluZygpKyJuIjoic3RyaW5nIj09dHlwZW9mIGU/YCIke2V9ImA6YCR7ZX1gfWZ1bmN0aW9uIHRzKGUpe3JldHVybiBPYmplY3Qua2V5cyhlKS5maWx0ZXIodD0+Im9wdGlvbmFsIj09PWVbdF0uX3pvZC5vcHRpbiYmIm9wdGlvbmFsIj09PWVbdF0uX3pvZC5vcHRvdXQpfWxldCB0dT17c2FmZWludDpbTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIsTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJdLGludDMyOlstMHg4MDAwMDAwMCwweDdmZmZmZmZmXSx1aW50MzI6WzAsMHhmZmZmZmZmZl0sZmxvYXQzMjpbLTM0MDI4MjM0NjYzODUyODg2ZTIyLDM0MDI4MjM0NjYzODUyODg2ZTIyXSxmbG9hdDY0OlstTnVtYmVyLk1BWF9WQUxVRSxOdW1iZXIuTUFYX1ZBTFVFXX0sdGw9e2ludDY0OltCaWdJbnQoIi05MjIzMzcyMDM2ODU0Nzc1ODA4IiksQmlnSW50KCI5MjIzMzcyMDM2ODU0Nzc1ODA3IildLHVpbnQ2NDpbQmlnSW50KDApLEJpZ0ludCgiMTg0NDY3NDQwNzM3MDk1NTE2MTUiKV19O2Z1bmN0aW9uIHRkKGUsdCl7bGV0IHI9e30sbj1lLl96b2QuZGVmO2ZvcihsZXQgZSBpbiB0KXtpZighKGUgaW4gbi5zaGFwZSkpdGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCBrZXk6ICIke2V9ImApO3RbZV0mJihyW2VdPW4uc2hhcGVbZV0pfXJldHVybiB0bihlLHsuLi5lLl96b2QuZGVmLHNoYXBlOnIsY2hlY2tzOltdfSl9ZnVuY3Rpb24gdGMoZSx0KXtsZXQgcj17Li4uZS5fem9kLmRlZi5zaGFwZX0sbj1lLl96b2QuZGVmO2ZvcihsZXQgZSBpbiB0KXtpZighKGUgaW4gbi5zaGFwZSkpdGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCBrZXk6ICIke2V9ImApO3RbZV0mJmRlbGV0ZSByW2VdfXJldHVybiB0bihlLHsuLi5lLl96b2QuZGVmLHNoYXBlOnIsY2hlY2tzOltdfSl9ZnVuY3Rpb24gdHAoZSx0KXtpZighZTcodCkpdGhyb3cgRXJyb3IoIkludmFsaWQgaW5wdXQgdG8gZXh0ZW5kOiBleHBlY3RlZCBhIHBsYWluIG9iamVjdCIpO2xldCByPXsuLi5lLl96b2QuZGVmLGdldCBzaGFwZSgpe2xldCByPXsuLi5lLl96b2QuZGVmLnNoYXBlLC4uLnR9O3JldHVybiBlMCh0aGlzLCJzaGFwZSIscikscn0sY2hlY2tzOltdfTtyZXR1cm4gdG4oZSxyKX1mdW5jdGlvbiB0bShlLHQpe3JldHVybiB0bihlLHsuLi5lLl96b2QuZGVmLGdldCBzaGFwZSgpe2xldCByPXsuLi5lLl96b2QuZGVmLnNoYXBlLC4uLnQuX3pvZC5kZWYuc2hhcGV9O3JldHVybiBlMCh0aGlzLCJzaGFwZSIscikscn0sY2F0Y2hhbGw6dC5fem9kLmRlZi5jYXRjaGFsbCxjaGVja3M6W119KX1mdW5jdGlvbiB0ZihlLHQscil7bGV0IG49dC5fem9kLmRlZi5zaGFwZSxpPXsuLi5ufTtpZihyKWZvcihsZXQgdCBpbiByKXtpZighKHQgaW4gbikpdGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCBrZXk6ICIke3R9ImApO3JbdF0mJihpW3RdPWU/bmV3IGUoe3R5cGU6Im9wdGlvbmFsIixpbm5lclR5cGU6blt0XX0pOm5bdF0pfWVsc2UgZm9yKGxldCB0IGluIG4paVt0XT1lP25ldyBlKHt0eXBlOiJvcHRpb25hbCIsaW5uZXJUeXBlOm5bdF19KTpuW3RdO3JldHVybiB0bih0LHsuLi50Ll96b2QuZGVmLHNoYXBlOmksY2hlY2tzOltdfSl9ZnVuY3Rpb24gdGgoZSx0LHIpe2xldCBuPXQuX3pvZC5kZWYuc2hhcGUsaT17Li4ubn07aWYocilmb3IobGV0IHQgaW4gcil7aWYoISh0IGluIGkpKXRocm93IEVycm9yKGBVbnJlY29nbml6ZWQga2V5OiAiJHt0fSJgKTtyW3RdJiYoaVt0XT1uZXcgZSh7dHlwZToibm9ub3B0aW9uYWwiLGlubmVyVHlwZTpuW3RdfSkpfWVsc2UgZm9yKGxldCB0IGluIG4paVt0XT1uZXcgZSh7dHlwZToibm9ub3B0aW9uYWwiLGlubmVyVHlwZTpuW3RdfSk7cmV0dXJuIHRuKHQsey4uLnQuX3pvZC5kZWYsc2hhcGU6aSxjaGVja3M6W119KX1mdW5jdGlvbiB0dihlLHQ9MCl7Zm9yKGxldCByPXQ7cjxlLmlzc3Vlcy5sZW5ndGg7cisrKWlmKGUuaXNzdWVzW3JdPy5jb250aW51ZSE9PSEwKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHRnKGUsdCl7cmV0dXJuIHQubWFwKHQ9Pih0LnBhdGg/Pyh0LnBhdGg9W10pLHQucGF0aC51bnNoaWZ0KGUpLHQpKX1mdW5jdGlvbiB0eShlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZTplPy5tZXNzYWdlfWZ1bmN0aW9uIHRiKGUsdCxyKXtsZXQgbj17Li4uZSxwYXRoOmUucGF0aD8/W119O3JldHVybiBlLm1lc3NhZ2V8fChuLm1lc3NhZ2U9dHkoZS5pbnN0Py5fem9kLmRlZj8uZXJyb3I/LihlKSk/P3R5KHQ/LmVycm9yPy4oZSkpPz90eShyLmN1c3RvbUVycm9yPy4oZSkpPz90eShyLmxvY2FsZUVycm9yPy4oZSkpPz8iSW52YWxpZCBpbnB1dCIpLGRlbGV0ZSBuLmluc3QsZGVsZXRlIG4uY29udGludWUsdD8ucmVwb3J0SW5wdXR8fGRlbGV0ZSBuLmlucHV0LG59ZnVuY3Rpb24gdF8oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBTZXQ/InNldCI6ZSBpbnN0YW5jZW9mIE1hcD8ibWFwIjplIGluc3RhbmNlb2YgRmlsZT8iZmlsZSI6InVua25vd24ifWZ1bmN0aW9uIHR4KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpPyJhcnJheSI6InN0cmluZyI9PXR5cGVvZiBlPyJzdHJpbmciOiJ1bmtub3duIn1mdW5jdGlvbiB0JCguLi5lKXtsZXRbdCxyLG5dPWU7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3ttZXNzYWdlOnQsY29kZToiY3VzdG9tIixpbnB1dDpyLGluc3Q6bn06ey4uLnR9fWZ1bmN0aW9uIHRrKGUpe3JldHVybiBPYmplY3QuZW50cmllcyhlKS5maWx0ZXIoKFtlLHRdKT0+TnVtYmVyLmlzTmFOKE51bWJlci5wYXJzZUludChlLDEwKSkpLm1hcChlPT5lWzFdKX1jbGFzcyB0d3tjb25zdHJ1Y3RvciguLi5lKXt9fWUucyhbIkJJR0lOVF9GT1JNQVRfUkFOR0VTIiwwLHRsLCJDbGFzcyIsKCk9PnR3LCJOVU1CRVJfRk9STUFUX1JBTkdFUyIsMCx0dSwiYWJvcnRlZCIsKCk9PnR2LCJhbGxvd3NFdmFsIiwwLGUzLCJhc3NlcnQiLCgpPT5lSiwiYXNzZXJ0RXF1YWwiLCgpPT5lTCwiYXNzZXJ0SXMiLCgpPT5lViwiYXNzZXJ0TmV2ZXIiLCgpPT5lQiwiYXNzZXJ0Tm90RXF1YWwiLCgpPT5lRiwiYXNzaWduUHJvcCIsKCk9PmUwLCJjYWNoZWQiLCgpPT5lSywiY2FwdHVyZVN0YWNrVHJhY2UiLDAsZTksImNsZWFuRW51bSIsKCk9PnRrLCJjbGVhblJlZ2V4IiwoKT0+ZUgsImNsb25lIiwoKT0+dG4sImNyZWF0ZVRyYW5zcGFyZW50UHJveHkiLCgpPT50YSwiZGVmaW5lTGF6eSIsKCk9PmVRLCJlc2MiLCgpPT5lMiwiZXNjYXBlUmVnZXgiLCgpPT50ciwiZXh0ZW5kIiwoKT0+dHAsImZpbmFsaXplSXNzdWUiLCgpPT50YiwiZmxvYXRTYWZlUmVtYWluZGVyIiwoKT0+ZVgsImdldEVsZW1lbnRBdFBhdGgiLCgpPT5lMSwiZ2V0RW51bVZhbHVlcyIsKCk9PmVXLCJnZXRMZW5ndGhhYmxlT3JpZ2luIiwoKT0+dHgsImdldFBhcnNlZFR5cGUiLDAsZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlInVuZGVmaW5lZCI6cmV0dXJuInVuZGVmaW5lZCI7Y2FzZSJzdHJpbmciOnJldHVybiJzdHJpbmciO2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJuYW4iOiJudW1iZXIiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UiZnVuY3Rpb24iOnJldHVybiJmdW5jdGlvbiI7Y2FzZSJiaWdpbnQiOnJldHVybiJiaWdpbnQiO2Nhc2Uic3ltYm9sIjpyZXR1cm4ic3ltYm9sIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iYXJyYXkiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihlLnRoZW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRoZW4mJmUuY2F0Y2gmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNhdGNoKXJldHVybiJwcm9taXNlIjtpZigidW5kZWZpbmVkIiE9dHlwZW9mIE1hcCYmZSBpbnN0YW5jZW9mIE1hcClyZXR1cm4ibWFwIjtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmZSBpbnN0YW5jZW9mIFNldClyZXR1cm4ic2V0IjtpZigidW5kZWZpbmVkIiE9dHlwZW9mIERhdGUmJmUgaW5zdGFuY2VvZiBEYXRlKXJldHVybiJkYXRlIjtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEZpbGUmJmUgaW5zdGFuY2VvZiBGaWxlKXJldHVybiJmaWxlIjtyZXR1cm4ib2JqZWN0IjtkZWZhdWx0OnRocm93IEVycm9yKGBVbmtub3duIGRhdGEgdHlwZTogJHt0fWApfX0sImdldFNpemFibGVPcmlnaW4iLCgpPT50XywiaXNPYmplY3QiLCgpPT5lNSwiaXNQbGFpbk9iamVjdCIsKCk9PmU3LCJpc3N1ZSIsKCk9PnQkLCJqb2luVmFsdWVzIiwoKT0+ZXEsImpzb25TdHJpbmdpZnlSZXBsYWNlciIsKCk9PmVHLCJtZXJnZSIsKCk9PnRtLCJub3JtYWxpemVQYXJhbXMiLCgpPT50aSwibnVsbGlzaCIsKCk9PmVZLCJudW1LZXlzIiwoKT0+ZTgsIm9taXQiLCgpPT50Yywib3B0aW9uYWxLZXlzIiwoKT0+dHMsInBhcnRpYWwiLCgpPT50ZiwicGljayIsKCk9PnRkLCJwcmVmaXhJc3N1ZXMiLCgpPT50ZywicHJpbWl0aXZlVHlwZXMiLDAsdHQsInByb21pc2VBbGxPYmplY3QiLCgpPT5lNCwicHJvcGVydHlLZXlUeXBlcyIsMCx0ZSwicmFuZG9tU3RyaW5nIiwoKT0+ZTYsInJlcXVpcmVkIiwoKT0+dGgsInN0cmluZ2lmeVByaW1pdGl2ZSIsKCk9PnRvLCJ1bndyYXBNZXNzYWdlIiwoKT0+dHldLDkyMjE0Myk7bGV0IHRJPShlLHQpPT57ZS5uYW1lPSIkWm9kRXJyb3IiLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfem9kIix7dmFsdWU6ZS5fem9kLGVudW1lcmFibGU6ITF9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaXNzdWVzIix7dmFsdWU6dCxlbnVtZXJhYmxlOiExfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIm1lc3NhZ2UiLHtnZXQ6KCk9PkpTT04uc3RyaW5naWZ5KHQsZUcsMiksZW51bWVyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ0b1N0cmluZyIse3ZhbHVlOigpPT5lLm1lc3NhZ2UsZW51bWVyYWJsZTohMX0pfSx0Uz1lVSgiJFpvZEVycm9yIix0SSksdE89ZVUoIiRab2RFcnJvciIsdEkse1BhcmVudDpFcnJvcn0pO2Z1bmN0aW9uIHRqKGUsdD1lPT5lLm1lc3NhZ2Upe2xldCByPXt9LG49W107Zm9yKGxldCBpIG9mIGUuaXNzdWVzKWkucGF0aC5sZW5ndGg+MD8ocltpLnBhdGhbMF1dPXJbaS5wYXRoWzBdXXx8W10scltpLnBhdGhbMF1dLnB1c2godChpKSkpOm4ucHVzaCh0KGkpKTtyZXR1cm57Zm9ybUVycm9yczpuLGZpZWxkRXJyb3JzOnJ9fWZ1bmN0aW9uIHRFKGUsdCl7bGV0IHI9dHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWVzc2FnZX0sbj17X2Vycm9yczpbXX0saT1lPT57Zm9yKGxldCB0IG9mIGUuaXNzdWVzKWlmKCJpbnZhbGlkX3VuaW9uIj09PXQuY29kZSYmdC5lcnJvcnMubGVuZ3RoKXQuZXJyb3JzLm1hcChlPT5pKHtpc3N1ZXM6ZX0pKTtlbHNlIGlmKCJpbnZhbGlkX2tleSI9PT10LmNvZGUpaSh7aXNzdWVzOnQuaXNzdWVzfSk7ZWxzZSBpZigiaW52YWxpZF9lbGVtZW50Ij09PXQuY29kZSlpKHtpc3N1ZXM6dC5pc3N1ZXN9KTtlbHNlIGlmKDA9PT10LnBhdGgubGVuZ3RoKW4uX2Vycm9ycy5wdXNoKHIodCkpO2Vsc2V7bGV0IGU9bixpPTA7Zm9yKDtpPHQucGF0aC5sZW5ndGg7KXtsZXQgbj10LnBhdGhbaV07aT09PXQucGF0aC5sZW5ndGgtMT8oZVtuXT1lW25dfHx7X2Vycm9yczpbXX0sZVtuXS5fZXJyb3JzLnB1c2gocih0KSkpOmVbbl09ZVtuXXx8e19lcnJvcnM6W119LGU9ZVtuXSxpKyt9fX07cmV0dXJuIGkoZSksbn1mdW5jdGlvbiB0WihlLHQpe2xldCByPXR8fGZ1bmN0aW9uKGUpe3JldHVybiBlLm1lc3NhZ2V9LG49e2Vycm9yczpbXX0saT0oZSx0PVtdKT0+e3ZhciBhLG87Zm9yKGxldCBzIG9mIGUuaXNzdWVzKWlmKCJpbnZhbGlkX3VuaW9uIj09PXMuY29kZSYmcy5lcnJvcnMubGVuZ3RoKXMuZXJyb3JzLm1hcChlPT5pKHtpc3N1ZXM6ZX0scy5wYXRoKSk7ZWxzZSBpZigiaW52YWxpZF9rZXkiPT09cy5jb2RlKWkoe2lzc3VlczpzLmlzc3Vlc30scy5wYXRoKTtlbHNlIGlmKCJpbnZhbGlkX2VsZW1lbnQiPT09cy5jb2RlKWkoe2lzc3VlczpzLmlzc3Vlc30scy5wYXRoKTtlbHNle2xldCBlPVsuLi50LC4uLnMucGF0aF07aWYoMD09PWUubGVuZ3RoKXtuLmVycm9ycy5wdXNoKHIocykpO2NvbnRpbnVlfWxldCBpPW4sdT0wO2Zvcig7dTxlLmxlbmd0aDspe2xldCB0PWVbdV0sbj11PT09ZS5sZW5ndGgtMTsic3RyaW5nIj09dHlwZW9mIHQ/KGkucHJvcGVydGllcz8/KGkucHJvcGVydGllcz17fSksKGE9aS5wcm9wZXJ0aWVzKVt0XT8/KGFbdF09e2Vycm9yczpbXX0pLGk9aS5wcm9wZXJ0aWVzW3RdKTooaS5pdGVtcz8/KGkuaXRlbXM9W10pLChvPWkuaXRlbXMpW3RdPz8ob1t0XT17ZXJyb3JzOltdfSksaT1pLml0ZW1zW3RdKSxuJiZpLmVycm9ycy5wdXNoKHIocykpLHUrK319fTtyZXR1cm4gaShlKSxufWZ1bmN0aW9uIHROKGUpe2xldCB0PVtdO2ZvcihsZXQgciBvZiBlKSJudW1iZXIiPT10eXBlb2Ygcj90LnB1c2goYFske3J9XWApOiJzeW1ib2wiPT10eXBlb2Ygcj90LnB1c2goYFske0pTT04uc3RyaW5naWZ5KFN0cmluZyhyKSl9XWApOi9bXlx3JF0vLnRlc3Qocik/dC5wdXNoKGBbJHtKU09OLnN0cmluZ2lmeShyKX1dYCk6KHQubGVuZ3RoJiZ0LnB1c2goIi4iKSx0LnB1c2gocikpO3JldHVybiB0LmpvaW4oIiIpfWZ1bmN0aW9uIHRUKGUpe2xldCB0PVtdO2ZvcihsZXQgciBvZlsuLi5lLmlzc3Vlc10uc29ydCgoZSx0KT0+ZS5wYXRoLmxlbmd0aC10LnBhdGgubGVuZ3RoKSl0LnB1c2goYOKcliAke3IubWVzc2FnZX1gKSxyLnBhdGg/Lmxlbmd0aCYmdC5wdXNoKGAgIOKGkiBhdCAke3ROKHIucGF0aCl9YCk7cmV0dXJuIHQuam9pbigiXG4iKX1lLnMoWyIkWm9kRXJyb3IiLDAsdFMsIiRab2RSZWFsRXJyb3IiLDAsdE8sImZsYXR0ZW5FcnJvciIsKCk9PnRqLCJmb3JtYXRFcnJvciIsKCk9PnRFLCJwcmV0dGlmeUVycm9yIiwoKT0+dFQsInRvRG90UGF0aCIsKCk9PnROLCJ0cmVlaWZ5RXJyb3IiLCgpPT50Wl0sMzc0OTY5KTtsZXQgdHo9ZT0+KHQscixuLGkpPT57bGV0IGE9bj9PYmplY3QuYXNzaWduKG4se2FzeW5jOiExfSk6e2FzeW5jOiExfSxvPXQuX3pvZC5ydW4oe3ZhbHVlOnIsaXNzdWVzOltdfSxhKTtpZihvIGluc3RhbmNlb2YgUHJvbWlzZSl0aHJvdyBuZXcgZUQ7aWYoby5pc3N1ZXMubGVuZ3RoKXtsZXQgdD1uZXcoaT8uRXJyPz9lKShvLmlzc3Vlcy5tYXAoZT0+dGIoZSxhLGVNKCkpKSk7dGhyb3cgZTkodCxpPy5jYWxsZWUpLHR9cmV0dXJuIG8udmFsdWV9LHRQPXR6KHRPKSx0QT1lPT5hc3luYyh0LHIsbixpKT0+e2xldCBhPW4/T2JqZWN0LmFzc2lnbihuLHthc3luYzohMH0pOnthc3luYzohMH0sbz10Ll96b2QucnVuKHt2YWx1ZTpyLGlzc3VlczpbXX0sYSk7aWYobyBpbnN0YW5jZW9mIFByb21pc2UmJihvPWF3YWl0IG8pLG8uaXNzdWVzLmxlbmd0aCl7bGV0IHQ9bmV3KGk/LkVycj8/ZSkoby5pc3N1ZXMubWFwKGU9PnRiKGUsYSxlTSgpKSkpO3Rocm93IGU5KHQsaT8uY2FsbGVlKSx0fXJldHVybiBvLnZhbHVlfSx0VT10QSh0TyksdEM9ZT0+KHQscixuKT0+e2xldCBpPW4/ey4uLm4sYXN5bmM6ITF9Onthc3luYzohMX0sYT10Ll96b2QucnVuKHt2YWx1ZTpyLGlzc3VlczpbXX0saSk7aWYoYSBpbnN0YW5jZW9mIFByb21pc2UpdGhyb3cgbmV3IGVEO3JldHVybiBhLmlzc3Vlcy5sZW5ndGg/e3N1Y2Nlc3M6ITEsZXJyb3I6bmV3KGU/P3RTKShhLmlzc3Vlcy5tYXAoZT0+dGIoZSxpLGVNKCkpKSl9OntzdWNjZXNzOiEwLGRhdGE6YS52YWx1ZX19LHREPXRDKHRPKSx0Uj1lPT5hc3luYyh0LHIsbik9PntsZXQgaT1uP09iamVjdC5hc3NpZ24obix7YXN5bmM6ITB9KTp7YXN5bmM6ITB9LGE9dC5fem9kLnJ1bih7dmFsdWU6cixpc3N1ZXM6W119LGkpO3JldHVybiBhIGluc3RhbmNlb2YgUHJvbWlzZSYmKGE9YXdhaXQgYSksYS5pc3N1ZXMubGVuZ3RoP3tzdWNjZXNzOiExLGVycm9yOm5ldyBlKGEuaXNzdWVzLm1hcChlPT50YihlLGksZU0oKSkpKX06e3N1Y2Nlc3M6ITAsZGF0YTphLnZhbHVlfX0sdE09dFIodE8pO2UucyhbIl9wYXJzZSIsMCx0eiwiX3BhcnNlQXN5bmMiLDAsdEEsIl9zYWZlUGFyc2UiLDAsdEMsIl9zYWZlUGFyc2VBc3luYyIsMCx0UiwicGFyc2UiLDAsdFAsInBhcnNlQXN5bmMiLDAsdFUsInNhZmVQYXJzZSIsMCx0RCwic2FmZVBhcnNlQXN5bmMiLDAsdE1dLDgwMzEwOCk7bGV0IHRMPShlLHQpPT57dFMuaW5pdChlLHQpLGUubmFtZT0iWm9kRXJyb3IiLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUse2Zvcm1hdDp7dmFsdWU6dD0+dEUoZSx0KX0sZmxhdHRlbjp7dmFsdWU6dD0+dGooZSx0KX0sYWRkSXNzdWU6e3ZhbHVlOnQ9PmUuaXNzdWVzLnB1c2godCl9LGFkZElzc3Vlczp7dmFsdWU6dD0+ZS5pc3N1ZXMucHVzaCguLi50KX0saXNFbXB0eTp7Z2V0OigpPT4wPT09ZS5pc3N1ZXMubGVuZ3RofX0pfSx0Rj1lVSgiWm9kRXJyb3IiLHRMKSx0Vj1lVSgiWm9kRXJyb3IiLHRMLHtQYXJlbnQ6RXJyb3J9KTtlLnMoWyJab2RFcnJvciIsMCx0RiwiWm9kUmVhbEVycm9yIiwwLHRWXSw3ODkyODIpO2xldCB0Qj10eih0ViksdEo9dEEodFYpLHRXPXRDKHRWKSx0cT10Uih0Vik7ZS5zKFsicGFyc2UiLDAsdEIsInBhcnNlQXN5bmMiLDAsdEosInNhZmVQYXJzZSIsMCx0Vywic2FmZVBhcnNlQXN5bmMiLDAsdHFdLDEwMDM2NCk7bGV0IHRHPVN5bWJvbCgiWm9kT3V0cHV0IiksdEs9U3ltYm9sKCJab2RJbnB1dCIpO2NsYXNzIHRZe2NvbnN0cnVjdG9yKCl7dGhpcy5fbWFwPW5ldyBNYXAsdGhpcy5faWRtYXA9bmV3IE1hcH1hZGQoZSwuLi50KXtsZXQgcj10WzBdO2lmKHRoaXMuX21hcC5zZXQoZSxyKSxyJiYib2JqZWN0Ij09dHlwZW9mIHImJiJpZCJpbiByKXtpZih0aGlzLl9pZG1hcC5oYXMoci5pZCkpdGhyb3cgRXJyb3IoYElEICR7ci5pZH0gYWxyZWFkeSBleGlzdHMgaW4gdGhlIHJlZ2lzdHJ5YCk7dGhpcy5faWRtYXAuc2V0KHIuaWQsZSl9cmV0dXJuIHRoaXN9Y2xlYXIoKXtyZXR1cm4gdGhpcy5fbWFwPW5ldyBNYXAsdGhpcy5faWRtYXA9bmV3IE1hcCx0aGlzfXJlbW92ZShlKXtsZXQgdD10aGlzLl9tYXAuZ2V0KGUpO3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQmJiJpZCJpbiB0JiZ0aGlzLl9pZG1hcC5kZWxldGUodC5pZCksdGhpcy5fbWFwLmRlbGV0ZShlKSx0aGlzfWdldChlKXtsZXQgdD1lLl96b2QucGFyZW50O2lmKHQpe2xldCByPXsuLi50aGlzLmdldCh0KT8/e319O3JldHVybiBkZWxldGUgci5pZCx7Li4uciwuLi50aGlzLl9tYXAuZ2V0KGUpfX1yZXR1cm4gdGhpcy5fbWFwLmdldChlKX1oYXMoZSl7cmV0dXJuIHRoaXMuX21hcC5oYXMoZSl9fWZ1bmN0aW9uIHRIKCl7cmV0dXJuIG5ldyB0WX1sZXQgdFg9dEgoKTtlLnMoWyIkWm9kUmVnaXN0cnkiLCgpPT50WSwiJGlucHV0IiwwLHRLLCIkb3V0cHV0IiwwLHRHLCJnbG9iYWxSZWdpc3RyeSIsMCx0WCwicmVnaXN0cnkiLCgpPT50SF0sNTI1NTI3KTtjbGFzcyB0UXtjb25zdHJ1Y3RvcihlKXt0aGlzLmNvdW50ZXI9MCx0aGlzLm1ldGFkYXRhUmVnaXN0cnk9ZT8ubWV0YWRhdGE/P3RYLHRoaXMudGFyZ2V0PWU/LnRhcmdldD8/ImRyYWZ0LTIwMjAtMTIiLHRoaXMudW5yZXByZXNlbnRhYmxlPWU/LnVucmVwcmVzZW50YWJsZT8/InRocm93Iix0aGlzLm92ZXJyaWRlPWU/Lm92ZXJyaWRlPz8oKCk9Pnt9KSx0aGlzLmlvPWU/LmlvPz8ib3V0cHV0Iix0aGlzLnNlZW49bmV3IE1hcH1wcm9jZXNzKGUsdD17cGF0aDpbXSxzY2hlbWFQYXRoOltdfSl7dmFyIHI7bGV0IG49ZS5fem9kLmRlZixpPXRoaXMuc2Vlbi5nZXQoZSk7aWYoaSlyZXR1cm4gaS5jb3VudCsrLHQuc2NoZW1hUGF0aC5pbmNsdWRlcyhlKSYmKGkuY3ljbGU9dC5wYXRoKSxpLnNjaGVtYTtsZXQgYT17c2NoZW1hOnt9LGNvdW50OjEsY3ljbGU6dm9pZCAwLHBhdGg6dC5wYXRofTt0aGlzLnNlZW4uc2V0KGUsYSk7bGV0IG89ZS5fem9kLnRvSlNPTlNjaGVtYT8uKCk7aWYobylhLnNjaGVtYT1vO2Vsc2V7bGV0IHI9ey4uLnQsc2NoZW1hUGF0aDpbLi4udC5zY2hlbWFQYXRoLGVdLHBhdGg6dC5wYXRofSxpPWUuX3pvZC5wYXJlbnQ7aWYoaSlhLnJlZj1pLHRoaXMucHJvY2VzcyhpLHIpLHRoaXMuc2Vlbi5nZXQoaSkuaXNQYXJlbnQ9ITA7ZWxzZXtsZXQgdD1hLnNjaGVtYTtzd2l0Y2gobi50eXBlKXtjYXNlInN0cmluZyI6e3QudHlwZT0ic3RyaW5nIjtsZXR7bWluaW11bTpyLG1heGltdW06bixmb3JtYXQ6aSxwYXR0ZXJuczpvLGNvbnRlbnRFbmNvZGluZzpzfT1lLl96b2QuYmFnO2lmKCJudW1iZXIiPT10eXBlb2YgciYmKHQubWluTGVuZ3RoPXIpLCJudW1iZXIiPT10eXBlb2YgbiYmKHQubWF4TGVuZ3RoPW4pLGkmJih0LmZvcm1hdD0oe2d1aWQ6InV1aWQiLHVybDoidXJpIixkYXRldGltZToiZGF0ZS10aW1lIixqc29uX3N0cmluZzoianNvbi1zdHJpbmciLHJlZ2V4OiIifSlbaV0/P2ksIiI9PT10LmZvcm1hdCYmZGVsZXRlIHQuZm9ybWF0KSxzJiYodC5jb250ZW50RW5jb2Rpbmc9cyksbyYmby5zaXplPjApe2xldCBlPVsuLi5vXTsxPT09ZS5sZW5ndGg/dC5wYXR0ZXJuPWVbMF0uc291cmNlOmUubGVuZ3RoPjEmJihhLnNjaGVtYS5hbGxPZj1bLi4uZS5tYXAoZT0+KHsuLi4iZHJhZnQtNyI9PT10aGlzLnRhcmdldD97dHlwZToic3RyaW5nIn06e30scGF0dGVybjplLnNvdXJjZX0pKV0pfWJyZWFrfWNhc2UibnVtYmVyIjp7bGV0e21pbmltdW06cixtYXhpbXVtOm4sZm9ybWF0OmksbXVsdGlwbGVPZjphLGV4Y2x1c2l2ZU1heGltdW06byxleGNsdXNpdmVNaW5pbXVtOnN9PWUuX3pvZC5iYWc7InN0cmluZyI9PXR5cGVvZiBpJiZpLmluY2x1ZGVzKCJpbnQiKT90LnR5cGU9ImludGVnZXIiOnQudHlwZT0ibnVtYmVyIiwibnVtYmVyIj09dHlwZW9mIHMmJih0LmV4Y2x1c2l2ZU1pbmltdW09cyksIm51bWJlciI9PXR5cGVvZiByJiYodC5taW5pbXVtPXIsIm51bWJlciI9PXR5cGVvZiBzJiYocz49cj9kZWxldGUgdC5taW5pbXVtOmRlbGV0ZSB0LmV4Y2x1c2l2ZU1pbmltdW0pKSwibnVtYmVyIj09dHlwZW9mIG8mJih0LmV4Y2x1c2l2ZU1heGltdW09byksIm51bWJlciI9PXR5cGVvZiBuJiYodC5tYXhpbXVtPW4sIm51bWJlciI9PXR5cGVvZiBvJiYobzw9bj9kZWxldGUgdC5tYXhpbXVtOmRlbGV0ZSB0LmV4Y2x1c2l2ZU1heGltdW0pKSwibnVtYmVyIj09dHlwZW9mIGEmJih0Lm11bHRpcGxlT2Y9YSk7YnJlYWt9Y2FzZSJib29sZWFuIjpjYXNlInN1Y2Nlc3MiOnQudHlwZT0iYm9vbGVhbiI7YnJlYWs7Y2FzZSJiaWdpbnQiOmlmKCJ0aHJvdyI9PT10aGlzLnVucmVwcmVzZW50YWJsZSl0aHJvdyBFcnJvcigiQmlnSW50IGNhbm5vdCBiZSByZXByZXNlbnRlZCBpbiBKU09OIFNjaGVtYSIpO2JyZWFrO2Nhc2Uic3ltYm9sIjppZigidGhyb3ciPT09dGhpcy51bnJlcHJlc2VudGFibGUpdGhyb3cgRXJyb3IoIlN5bWJvbHMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIEpTT04gU2NoZW1hIik7YnJlYWs7Y2FzZSJudWxsIjp0LnR5cGU9Im51bGwiO2JyZWFrO2Nhc2UiYW55IjpjYXNlInVua25vd24iOmJyZWFrO2Nhc2UidW5kZWZpbmVkIjppZigidGhyb3ciPT09dGhpcy51bnJlcHJlc2VudGFibGUpdGhyb3cgRXJyb3IoIlVuZGVmaW5lZCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW4gSlNPTiBTY2hlbWEiKTticmVhaztjYXNlInZvaWQiOmlmKCJ0aHJvdyI9PT10aGlzLnVucmVwcmVzZW50YWJsZSl0aHJvdyBFcnJvcigiVm9pZCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW4gSlNPTiBTY2hlbWEiKTticmVhaztjYXNlIm5ldmVyIjp0Lm5vdD17fTticmVhaztjYXNlImRhdGUiOmlmKCJ0aHJvdyI9PT10aGlzLnVucmVwcmVzZW50YWJsZSl0aHJvdyBFcnJvcigiRGF0ZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW4gSlNPTiBTY2hlbWEiKTticmVhaztjYXNlImFycmF5Ijp7bGV0e21pbmltdW06aSxtYXhpbXVtOmF9PWUuX3pvZC5iYWc7Im51bWJlciI9PXR5cGVvZiBpJiYodC5taW5JdGVtcz1pKSwibnVtYmVyIj09dHlwZW9mIGEmJih0Lm1heEl0ZW1zPWEpLHQudHlwZT0iYXJyYXkiLHQuaXRlbXM9dGhpcy5wcm9jZXNzKG4uZWxlbWVudCx7Li4ucixwYXRoOlsuLi5yLnBhdGgsIml0ZW1zIl19KTticmVha31jYXNlIm9iamVjdCI6e3QudHlwZT0ib2JqZWN0Iix0LnByb3BlcnRpZXM9e307bGV0IGU9bi5zaGFwZTtmb3IobGV0IG4gaW4gZSl0LnByb3BlcnRpZXNbbl09dGhpcy5wcm9jZXNzKGVbbl0sey4uLnIscGF0aDpbLi4uci5wYXRoLCJwcm9wZXJ0aWVzIixuXX0pO2xldCBpPW5ldyBTZXQoWy4uLm5ldyBTZXQoT2JqZWN0LmtleXMoZSkpXS5maWx0ZXIoZT0+e2xldCB0PW4uc2hhcGVbZV0uX3pvZDtyZXR1cm4iaW5wdXQiPT09dGhpcy5pbz92b2lkIDA9PT10Lm9wdGluOnZvaWQgMD09PXQub3B0b3V0fSkpO2kuc2l6ZT4wJiYodC5yZXF1aXJlZD1BcnJheS5mcm9tKGkpKSxuLmNhdGNoYWxsPy5fem9kLmRlZi50eXBlPT09Im5ldmVyIj90LmFkZGl0aW9uYWxQcm9wZXJ0aWVzPSExOm4uY2F0Y2hhbGw/bi5jYXRjaGFsbCYmKHQuYWRkaXRpb25hbFByb3BlcnRpZXM9dGhpcy5wcm9jZXNzKG4uY2F0Y2hhbGwsey4uLnIscGF0aDpbLi4uci5wYXRoLCJhZGRpdGlvbmFsUHJvcGVydGllcyJdfSkpOiJvdXRwdXQiPT09dGhpcy5pbyYmKHQuYWRkaXRpb25hbFByb3BlcnRpZXM9ITEpO2JyZWFrfWNhc2UidW5pb24iOnQuYW55T2Y9bi5vcHRpb25zLm1hcCgoZSx0KT0+dGhpcy5wcm9jZXNzKGUsey4uLnIscGF0aDpbLi4uci5wYXRoLCJhbnlPZiIsdF19KSk7YnJlYWs7Y2FzZSJpbnRlcnNlY3Rpb24iOntsZXQgZT10aGlzLnByb2Nlc3Mobi5sZWZ0LHsuLi5yLHBhdGg6Wy4uLnIucGF0aCwiYWxsT2YiLDBdfSksaT10aGlzLnByb2Nlc3Mobi5yaWdodCx7Li4ucixwYXRoOlsuLi5yLnBhdGgsImFsbE9mIiwxXX0pLGE9ZT0+ImFsbE9mImluIGUmJjE9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGg7dC5hbGxPZj1bLi4uYShlKT9lLmFsbE9mOltlXSwuLi5hKGkpP2kuYWxsT2Y6W2ldXTticmVha31jYXNlInR1cGxlIjp7dC50eXBlPSJhcnJheSI7bGV0IGk9bi5pdGVtcy5tYXAoKGUsdCk9PnRoaXMucHJvY2VzcyhlLHsuLi5yLHBhdGg6Wy4uLnIucGF0aCwicHJlZml4SXRlbXMiLHRdfSkpO2lmKCJkcmFmdC0yMDIwLTEyIj09PXRoaXMudGFyZ2V0P3QucHJlZml4SXRlbXM9aTp0Lml0ZW1zPWksbi5yZXN0KXtsZXQgZT10aGlzLnByb2Nlc3Mobi5yZXN0LHsuLi5yLHBhdGg6Wy4uLnIucGF0aCwiaXRlbXMiXX0pOyJkcmFmdC0yMDIwLTEyIj09PXRoaXMudGFyZ2V0P3QuaXRlbXM9ZTp0LmFkZGl0aW9uYWxJdGVtcz1lfW4ucmVzdCYmKHQuaXRlbXM9dGhpcy5wcm9jZXNzKG4ucmVzdCx7Li4ucixwYXRoOlsuLi5yLnBhdGgsIml0ZW1zIl19KSk7bGV0e21pbmltdW06YSxtYXhpbXVtOm99PWUuX3pvZC5iYWc7Im51bWJlciI9PXR5cGVvZiBhJiYodC5taW5JdGVtcz1hKSwibnVtYmVyIj09dHlwZW9mIG8mJih0Lm1heEl0ZW1zPW8pO2JyZWFrfWNhc2UicmVjb3JkIjp0LnR5cGU9Im9iamVjdCIsdC5wcm9wZXJ0eU5hbWVzPXRoaXMucHJvY2VzcyhuLmtleVR5cGUsey4uLnIscGF0aDpbLi4uci5wYXRoLCJwcm9wZXJ0eU5hbWVzIl19KSx0LmFkZGl0aW9uYWxQcm9wZXJ0aWVzPXRoaXMucHJvY2VzcyhuLnZhbHVlVHlwZSx7Li4ucixwYXRoOlsuLi5yLnBhdGgsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIl19KTticmVhaztjYXNlIm1hcCI6aWYoInRocm93Ij09PXRoaXMudW5yZXByZXNlbnRhYmxlKXRocm93IEVycm9yKCJNYXAgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIEpTT04gU2NoZW1hIik7YnJlYWs7Y2FzZSJzZXQiOmlmKCJ0aHJvdyI9PT10aGlzLnVucmVwcmVzZW50YWJsZSl0aHJvdyBFcnJvcigiU2V0IGNhbm5vdCBiZSByZXByZXNlbnRlZCBpbiBKU09OIFNjaGVtYSIpO2JyZWFrO2Nhc2UiZW51bSI6e2xldCBlPWVXKG4uZW50cmllcyk7ZS5ldmVyeShlPT4ibnVtYmVyIj09dHlwZW9mIGUpJiYodC50eXBlPSJudW1iZXIiKSxlLmV2ZXJ5KGU9PiJzdHJpbmciPT10eXBlb2YgZSkmJih0LnR5cGU9InN0cmluZyIpLHQuZW51bT1lO2JyZWFrfWNhc2UibGl0ZXJhbCI6e2xldCBlPVtdO2ZvcihsZXQgdCBvZiBuLnZhbHVlcylpZih2b2lkIDA9PT10KXtpZigidGhyb3ciPT09dGhpcy51bnJlcHJlc2VudGFibGUpdGhyb3cgRXJyb3IoIkxpdGVyYWwgYHVuZGVmaW5lZGAgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIEpTT04gU2NoZW1hIil9ZWxzZSBpZigiYmlnaW50Ij09dHlwZW9mIHQpaWYoInRocm93Ij09PXRoaXMudW5yZXByZXNlbnRhYmxlKXRocm93IEVycm9yKCJCaWdJbnQgbGl0ZXJhbHMgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIEpTT04gU2NoZW1hIik7ZWxzZSBlLnB1c2goTnVtYmVyKHQpKTtlbHNlIGUucHVzaCh0KTtpZigwPT09ZS5sZW5ndGgpO2Vsc2UgaWYoMT09PWUubGVuZ3RoKXtsZXQgcj1lWzBdO3QudHlwZT1udWxsPT09cj8ibnVsbCI6dHlwZW9mIHIsdC5jb25zdD1yfWVsc2UgZS5ldmVyeShlPT4ibnVtYmVyIj09dHlwZW9mIGUpJiYodC50eXBlPSJudW1iZXIiKSxlLmV2ZXJ5KGU9PiJzdHJpbmciPT10eXBlb2YgZSkmJih0LnR5cGU9InN0cmluZyIpLGUuZXZlcnkoZT0+ImJvb2xlYW4iPT10eXBlb2YgZSkmJih0LnR5cGU9InN0cmluZyIpLGUuZXZlcnkoZT0+bnVsbD09PWUpJiYodC50eXBlPSJudWxsIiksdC5lbnVtPWU7YnJlYWt9Y2FzZSJmaWxlIjp7bGV0IHI9e3R5cGU6InN0cmluZyIsZm9ybWF0OiJiaW5hcnkiLGNvbnRlbnRFbmNvZGluZzoiYmluYXJ5In0se21pbmltdW06bixtYXhpbXVtOmksbWltZTphfT1lLl96b2QuYmFnO3ZvaWQgMCE9PW4mJihyLm1pbkxlbmd0aD1uKSx2b2lkIDAhPT1pJiYoci5tYXhMZW5ndGg9aSksYT8xPT09YS5sZW5ndGg/KHIuY29udGVudE1lZGlhVHlwZT1hWzBdLE9iamVjdC5hc3NpZ24odCxyKSk6dC5hbnlPZj1hLm1hcChlPT4oey4uLnIsY29udGVudE1lZGlhVHlwZTplfSkpOk9iamVjdC5hc3NpZ24odCxyKTticmVha31jYXNlInRyYW5zZm9ybSI6aWYoInRocm93Ij09PXRoaXMudW5yZXByZXNlbnRhYmxlKXRocm93IEVycm9yKCJUcmFuc2Zvcm1zIGNhbm5vdCBiZSByZXByZXNlbnRlZCBpbiBKU09OIFNjaGVtYSIpO2JyZWFrO2Nhc2UibnVsbGFibGUiOnQuYW55T2Y9W3RoaXMucHJvY2VzcyhuLmlubmVyVHlwZSxyKSx7dHlwZToibnVsbCJ9XTticmVhaztjYXNlIm5vbm9wdGlvbmFsIjpjYXNlInByb21pc2UiOmNhc2Uib3B0aW9uYWwiOnRoaXMucHJvY2VzcyhuLmlubmVyVHlwZSxyKSxhLnJlZj1uLmlubmVyVHlwZTticmVhaztjYXNlImRlZmF1bHQiOnRoaXMucHJvY2VzcyhuLmlubmVyVHlwZSxyKSxhLnJlZj1uLmlubmVyVHlwZSx0LmRlZmF1bHQ9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuLmRlZmF1bHRWYWx1ZSkpO2JyZWFrO2Nhc2UicHJlZmF1bHQiOnRoaXMucHJvY2VzcyhuLmlubmVyVHlwZSxyKSxhLnJlZj1uLmlubmVyVHlwZSwiaW5wdXQiPT09dGhpcy5pbyYmKHQuX3ByZWZhdWx0PUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobi5kZWZhdWx0VmFsdWUpKSk7YnJlYWs7Y2FzZSJjYXRjaCI6e2xldCBlO3RoaXMucHJvY2VzcyhuLmlubmVyVHlwZSxyKSxhLnJlZj1uLmlubmVyVHlwZTt0cnl7ZT1uLmNhdGNoVmFsdWUodm9pZCAwKX1jYXRjaHt0aHJvdyBFcnJvcigiRHluYW1pYyBjYXRjaCB2YWx1ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgaW4gSlNPTiBTY2hlbWEiKX10LmRlZmF1bHQ9ZTticmVha31jYXNlIm5hbiI6aWYoInRocm93Ij09PXRoaXMudW5yZXByZXNlbnRhYmxlKXRocm93IEVycm9yKCJOYU4gY2Fubm90IGJlIHJlcHJlc2VudGVkIGluIEpTT04gU2NoZW1hIik7YnJlYWs7Y2FzZSJ0ZW1wbGF0ZV9saXRlcmFsIjp7bGV0IHI9ZS5fem9kLnBhdHRlcm47aWYoIXIpdGhyb3cgRXJyb3IoIlBhdHRlcm4gbm90IGZvdW5kIGluIHRlbXBsYXRlIGxpdGVyYWwiKTt0LnR5cGU9InN0cmluZyIsdC5wYXR0ZXJuPXIuc291cmNlO2JyZWFrfWNhc2UicGlwZSI6e2xldCBlPSJpbnB1dCI9PT10aGlzLmlvPyJ0cmFuc2Zvcm0iPT09bi5pbi5fem9kLmRlZi50eXBlP24ub3V0Om4uaW46bi5vdXQ7dGhpcy5wcm9jZXNzKGUsciksYS5yZWY9ZTticmVha31jYXNlInJlYWRvbmx5Ijp0aGlzLnByb2Nlc3Mobi5pbm5lclR5cGUsciksYS5yZWY9bi5pbm5lclR5cGUsdC5yZWFkT25seT0hMDticmVhaztjYXNlImxhenkiOntsZXQgdD1lLl96b2QuaW5uZXJUeXBlO3RoaXMucHJvY2Vzcyh0LHIpLGEucmVmPXQ7YnJlYWt9Y2FzZSJjdXN0b20iOmlmKCJ0aHJvdyI9PT10aGlzLnVucmVwcmVzZW50YWJsZSl0aHJvdyBFcnJvcigiQ3VzdG9tIHR5cGVzIGNhbm5vdCBiZSByZXByZXNlbnRlZCBpbiBKU09OIFNjaGVtYSIpfX19bGV0IHM9dGhpcy5tZXRhZGF0YVJlZ2lzdHJ5LmdldChlKTtyZXR1cm4gcyYmT2JqZWN0LmFzc2lnbihhLnNjaGVtYSxzKSwiaW5wdXQiPT09dGhpcy5pbyYmZnVuY3Rpb24gZSh0LHIpe2xldCBuPXI/P3tzZWVuOm5ldyBTZXR9O2lmKG4uc2Vlbi5oYXModCkpcmV0dXJuITE7bi5zZWVuLmFkZCh0KTtsZXQgaT10Ll96b2QuZGVmO3N3aXRjaChpLnR5cGUpe2Nhc2Uic3RyaW5nIjpjYXNlIm51bWJlciI6Y2FzZSJiaWdpbnQiOmNhc2UiYm9vbGVhbiI6Y2FzZSJkYXRlIjpjYXNlInN5bWJvbCI6Y2FzZSJ1bmRlZmluZWQiOmNhc2UibnVsbCI6Y2FzZSJhbnkiOmNhc2UidW5rbm93biI6Y2FzZSJuZXZlciI6Y2FzZSJ2b2lkIjpjYXNlImxpdGVyYWwiOmNhc2UiZW51bSI6Y2FzZSJuYW4iOmNhc2UiZmlsZSI6Y2FzZSJ0ZW1wbGF0ZV9saXRlcmFsIjpjYXNlImN1c3RvbSI6Y2FzZSJzdWNjZXNzIjpjYXNlImNhdGNoIjpyZXR1cm4hMTtjYXNlImFycmF5IjpyZXR1cm4gZShpLmVsZW1lbnQsbik7Y2FzZSJvYmplY3QiOmZvcihsZXQgdCBpbiBpLnNoYXBlKWlmKGUoaS5zaGFwZVt0XSxuKSlyZXR1cm4hMDtyZXR1cm4hMTtjYXNlInVuaW9uIjpmb3IobGV0IHQgb2YgaS5vcHRpb25zKWlmKGUodCxuKSlyZXR1cm4hMDtyZXR1cm4hMTtjYXNlImludGVyc2VjdGlvbiI6cmV0dXJuIGUoaS5sZWZ0LG4pfHxlKGkucmlnaHQsbik7Y2FzZSJ0dXBsZSI6Zm9yKGxldCB0IG9mIGkuaXRlbXMpaWYoZSh0LG4pKXJldHVybiEwO2lmKGkucmVzdCYmZShpLnJlc3QsbikpcmV0dXJuITA7cmV0dXJuITE7Y2FzZSJyZWNvcmQiOmNhc2UibWFwIjpyZXR1cm4gZShpLmtleVR5cGUsbil8fGUoaS52YWx1ZVR5cGUsbik7Y2FzZSJzZXQiOnJldHVybiBlKGkudmFsdWVUeXBlLG4pO2Nhc2UicHJvbWlzZSI6Y2FzZSJvcHRpb25hbCI6Y2FzZSJub25vcHRpb25hbCI6Y2FzZSJudWxsYWJsZSI6Y2FzZSJyZWFkb25seSI6Y2FzZSJkZWZhdWx0IjpjYXNlInByZWZhdWx0IjpyZXR1cm4gZShpLmlubmVyVHlwZSxuKTtjYXNlImxhenkiOnJldHVybiBlKGkuZ2V0dGVyKCksbik7Y2FzZSJ0cmFuc2Zvcm0iOnJldHVybiEwO2Nhc2UicGlwZSI6cmV0dXJuIGUoaS5pbixuKXx8ZShpLm91dCxuKX10aHJvdyBFcnJvcihgVW5rbm93biBzY2hlbWEgdHlwZTogJHtpLnR5cGV9YCl9KGUpJiYoZGVsZXRlIGEuc2NoZW1hLmV4YW1wbGVzLGRlbGV0ZSBhLnNjaGVtYS5kZWZhdWx0KSwiaW5wdXQiPT09dGhpcy5pbyYmYS5zY2hlbWEuX3ByZWZhdWx0JiYoKHI9YS5zY2hlbWEpLmRlZmF1bHQ/PyhyLmRlZmF1bHQ9YS5zY2hlbWEuX3ByZWZhdWx0KSksZGVsZXRlIGEuc2NoZW1hLl9wcmVmYXVsdCx0aGlzLnNlZW4uZ2V0KGUpLnNjaGVtYX1lbWl0KGUsdCl7bGV0IHI9e2N5Y2xlczp0Py5jeWNsZXM/PyJyZWYiLHJldXNlZDp0Py5yZXVzZWQ/PyJpbmxpbmUiLGV4dGVybmFsOnQ/LmV4dGVybmFsPz92b2lkIDB9LG49dGhpcy5zZWVuLmdldChlKTtpZighbil0aHJvdyBFcnJvcigiVW5wcm9jZXNzZWQgc2NoZW1hLiBUaGlzIGlzIGEgYnVnIGluIFpvZC4iKTtsZXQgaT1lPT57bGV0IHQ9ImRyYWZ0LTIwMjAtMTIiPT09dGhpcy50YXJnZXQ/IiRkZWZzIjoiZGVmaW5pdGlvbnMiO2lmKHIuZXh0ZXJuYWwpe2xldCBuPXIuZXh0ZXJuYWwucmVnaXN0cnkuZ2V0KGVbMF0pPy5pZCxpPXIuZXh0ZXJuYWwudXJpPz8oZT0+ZSk7aWYobilyZXR1cm57cmVmOmkobil9O2xldCBhPWVbMV0uZGVmSWQ/P2VbMV0uc2NoZW1hLmlkPz9gc2NoZW1hJHt0aGlzLmNvdW50ZXIrK31gO3JldHVybiBlWzFdLmRlZklkPWEse2RlZklkOmEscmVmOmAke2koIl9fc2hhcmVkIil9Iy8ke3R9LyR7YX1gfX1pZihlWzFdPT09bilyZXR1cm57cmVmOiIjIn07bGV0IGk9YCMvJHt0fS9gLGE9ZVsxXS5zY2hlbWEuaWQ/P2BfX3NjaGVtYSR7dGhpcy5jb3VudGVyKyt9YDtyZXR1cm57ZGVmSWQ6YSxyZWY6aSthfX0sYT1lPT57aWYoZVsxXS5zY2hlbWEuJHJlZilyZXR1cm47bGV0IHQ9ZVsxXSx7cmVmOnIsZGVmSWQ6bn09aShlKTt0LmRlZj17Li4udC5zY2hlbWF9LG4mJih0LmRlZklkPW4pO2xldCBhPXQuc2NoZW1hO2ZvcihsZXQgZSBpbiBhKWRlbGV0ZSBhW2VdO2EuJHJlZj1yfTtpZigidGhyb3ciPT09ci5jeWNsZXMpZm9yKGxldCBlIG9mIHRoaXMuc2Vlbi5lbnRyaWVzKCkpe2xldCB0PWVbMV07aWYodC5jeWNsZSl0aHJvdyBFcnJvcihgQ3ljbGUgZGV0ZWN0ZWQ6ICMvJHt0LmN5Y2xlPy5qb2luKCIvIil9Lzxyb290PgoKU2V0IHRoZSBcYGN5Y2xlc1xgIHBhcmFtZXRlciB0byBcYCJyZWYiXGAgdG8gcmVzb2x2ZSBjeWNsaWNhbCBzY2hlbWFzIHdpdGggZGVmcy5gKX1mb3IobGV0IHQgb2YgdGhpcy5zZWVuLmVudHJpZXMoKSl7bGV0IG49dFsxXTtpZihlPT09dFswXSl7YSh0KTtjb250aW51ZX1pZihyLmV4dGVybmFsKXtsZXQgbj1yLmV4dGVybmFsLnJlZ2lzdHJ5LmdldCh0WzBdKT8uaWQ7aWYoZSE9PXRbMF0mJm4pe2EodCk7Y29udGludWV9fWlmKHRoaXMubWV0YWRhdGFSZWdpc3RyeS5nZXQodFswXSk/LmlkfHxuLmN5Y2xlfHxuLmNvdW50PjEmJiJyZWYiPT09ci5yZXVzZWQpe2EodCk7Y29udGludWV9fWxldCBvPShlLHQpPT57bGV0IHI9dGhpcy5zZWVuLmdldChlKSxuPXIuZGVmPz9yLnNjaGVtYSxpPXsuLi5ufTtpZihudWxsPT09ci5yZWYpcmV0dXJuO2xldCBhPXIucmVmO2lmKHIucmVmPW51bGwsYSl7byhhLHQpO2xldCBlPXRoaXMuc2Vlbi5nZXQoYSkuc2NoZW1hO2UuJHJlZiYmImRyYWZ0LTciPT09dC50YXJnZXQ/KG4uYWxsT2Y9bi5hbGxPZj8/W10sbi5hbGxPZi5wdXNoKGUpKTooT2JqZWN0LmFzc2lnbihuLGUpLE9iamVjdC5hc3NpZ24obixpKSl9ci5pc1BhcmVudHx8dGhpcy5vdmVycmlkZSh7em9kU2NoZW1hOmUsanNvblNjaGVtYTpuLHBhdGg6ci5wYXRoPz9bXX0pfTtmb3IobGV0IGUgb2ZbLi4udGhpcy5zZWVuLmVudHJpZXMoKV0ucmV2ZXJzZSgpKW8oZVswXSx7dGFyZ2V0OnRoaXMudGFyZ2V0fSk7bGV0IHM9e307aWYoImRyYWZ0LTIwMjAtMTIiPT09dGhpcy50YXJnZXQ/cy4kc2NoZW1hPSJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSI6ImRyYWZ0LTciPT09dGhpcy50YXJnZXQ/cy4kc2NoZW1hPSJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiOmNvbnNvbGUud2FybihgSW52YWxpZCB0YXJnZXQ6ICR7dGhpcy50YXJnZXR9YCksci5leHRlcm5hbD8udXJpKXtsZXQgdD1yLmV4dGVybmFsLnJlZ2lzdHJ5LmdldChlKT8uaWQ7aWYoIXQpdGhyb3cgRXJyb3IoIlNjaGVtYSBpcyBtaXNzaW5nIGFuIGBpZGAgcHJvcGVydHkiKTtzLiRpZD1yLmV4dGVybmFsLnVyaSh0KX1PYmplY3QuYXNzaWduKHMsbi5kZWYpO2xldCB1PXIuZXh0ZXJuYWw/LmRlZnM/P3t9O2ZvcihsZXQgZSBvZiB0aGlzLnNlZW4uZW50cmllcygpKXtsZXQgdD1lWzFdO3QuZGVmJiZ0LmRlZklkJiYodVt0LmRlZklkXT10LmRlZil9ci5leHRlcm5hbHx8T2JqZWN0LmtleXModSkubGVuZ3RoPjAmJigiZHJhZnQtMjAyMC0xMiI9PT10aGlzLnRhcmdldD9zLiRkZWZzPXU6cy5kZWZpbml0aW9ucz11KTt0cnl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocykpfWNhdGNoKGUpe3Rocm93IEVycm9yKCJFcnJvciBjb252ZXJ0aW5nIHNjaGVtYSB0byBKU09OLiIpfX19ZnVuY3Rpb24gdDAoZSx0KXtpZihlIGluc3RhbmNlb2YgdFkpe2xldCByPW5ldyB0USh0KSxuPXt9O2ZvcihsZXQgdCBvZiBlLl9pZG1hcC5lbnRyaWVzKCkpe2xldFtlLG5dPXQ7ci5wcm9jZXNzKG4pfWxldCBpPXt9LGE9e3JlZ2lzdHJ5OmUsdXJpOnQ/LnVyaSxkZWZzOm59O2ZvcihsZXQgbiBvZiBlLl9pZG1hcC5lbnRyaWVzKCkpe2xldFtlLG9dPW47aVtlXT1yLmVtaXQobyx7Li4udCxleHRlcm5hbDphfSl9cmV0dXJuIE9iamVjdC5rZXlzKG4pLmxlbmd0aD4wJiYoaS5fX3NoYXJlZD17WyJkcmFmdC0yMDIwLTEyIj09PXIudGFyZ2V0PyIkZGVmcyI6ImRlZmluaXRpb25zIl06bn0pLHtzY2hlbWFzOml9fWxldCByPW5ldyB0USh0KTtyZXR1cm4gci5wcm9jZXNzKGUpLHIuZW1pdChlLHQpfWUucyhbIkpTT05TY2hlbWFHZW5lcmF0b3IiLCgpPT50USwidG9KU09OU2NoZW1hIiwoKT0+dDBdLDM0OTY2KSwocj1ffHwoXz17fSkpLmFzc2VydEVxdWFsPWU9Pnt9LHIuYXNzZXJ0SXM9ZnVuY3Rpb24oZSl7fSxyLmFzc2VydE5ldmVyPWZ1bmN0aW9uKGUpe3Rocm93IEVycm9yKCl9LHIuYXJyYXlUb0VudW09ZT0+e2xldCB0PXt9O2ZvcihsZXQgciBvZiBlKXRbcl09cjtyZXR1cm4gdH0sci5nZXRWYWxpZEVudW1WYWx1ZXM9ZT0+e2xldCB0PXIub2JqZWN0S2V5cyhlKS5maWx0ZXIodD0+Im51bWJlciIhPXR5cGVvZiBlW2VbdF1dKSxuPXt9O2ZvcihsZXQgciBvZiB0KW5bcl09ZVtyXTtyZXR1cm4gci5vYmplY3RWYWx1ZXMobil9LHIub2JqZWN0VmFsdWVzPWU9PnIub2JqZWN0S2V5cyhlKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGVbdF19KSxyLm9iamVjdEtleXM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5rZXlzP2U9Pk9iamVjdC5rZXlzKGUpOmU9PntsZXQgdD1bXTtmb3IobGV0IHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmdC5wdXNoKHIpO3JldHVybiB0fSxyLmZpbmQ9KGUsdCk9Pntmb3IobGV0IHIgb2YgZSlpZih0KHIpKXJldHVybiByfSxyLmlzSW50ZWdlcj0iZnVuY3Rpb24iPT10eXBlb2YgTnVtYmVyLmlzSW50ZWdlcj9lPT5OdW1iZXIuaXNJbnRlZ2VyKGUpOmU9PiJudW1iZXIiPT10eXBlb2YgZSYmTnVtYmVyLmlzRmluaXRlKGUpJiZNYXRoLmZsb29yKGUpPT09ZSxyLmpvaW5WYWx1ZXM9ZnVuY3Rpb24oZSx0PSIgfCAiKXtyZXR1cm4gZS5tYXAoZT0+InN0cmluZyI9PXR5cGVvZiBlP2AnJHtlfSdgOmUpLmpvaW4odCl9LHIuanNvblN0cmluZ2lmeVJlcGxhY2VyPShlLHQpPT4iYmlnaW50Ij09dHlwZW9mIHQ/dC50b1N0cmluZygpOnQsKHh8fCh4PXt9KSkubWVyZ2VTaGFwZXM9KGUsdCk9Pih7Li4uZSwuLi50fSk7bGV0IHQxPV8uYXJyYXlUb0VudW0oWyJzdHJpbmciLCJuYW4iLCJudW1iZXIiLCJpbnRlZ2VyIiwiZmxvYXQiLCJib29sZWFuIiwiZGF0ZSIsImJpZ2ludCIsInN5bWJvbCIsImZ1bmN0aW9uIiwidW5kZWZpbmVkIiwibnVsbCIsImFycmF5Iiwib2JqZWN0IiwidW5rbm93biIsInByb21pc2UiLCJ2b2lkIiwibmV2ZXIiLCJtYXAiLCJzZXQiXSksdDQ9ZT0+e3N3aXRjaCh0eXBlb2YgZSl7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiB0MS51bmRlZmluZWQ7Y2FzZSJzdHJpbmciOnJldHVybiB0MS5zdHJpbmc7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/dDEubmFuOnQxLm51bWJlcjtjYXNlImJvb2xlYW4iOnJldHVybiB0MS5ib29sZWFuO2Nhc2UiZnVuY3Rpb24iOnJldHVybiB0MS5mdW5jdGlvbjtjYXNlImJpZ2ludCI6cmV0dXJuIHQxLmJpZ2ludDtjYXNlInN5bWJvbCI6cmV0dXJuIHQxLnN5bWJvbDtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDEuYXJyYXk7aWYobnVsbD09PWUpcmV0dXJuIHQxLm51bGw7aWYoZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgZS50aGVuJiZlLmNhdGNoJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jYXRjaClyZXR1cm4gdDEucHJvbWlzZTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIE1hcCYmZSBpbnN0YW5jZW9mIE1hcClyZXR1cm4gdDEubWFwO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU2V0JiZlIGluc3RhbmNlb2YgU2V0KXJldHVybiB0MS5zZXQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBEYXRlJiZlIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gdDEuZGF0ZTtyZXR1cm4gdDEub2JqZWN0O2RlZmF1bHQ6cmV0dXJuIHQxLnVua25vd259fTtlLnMoWyJab2RQYXJzZWRUeXBlIiwwLHQxLCJnZXRQYXJzZWRUeXBlIiwwLHQ0LCJvYmplY3RVdGlsIiwoKT0+eCwidXRpbCIsKCk9Pl9dLDkwNDc4Myk7bGV0IHQ2PV8uYXJyYXlUb0VudW0oWyJpbnZhbGlkX3R5cGUiLCJpbnZhbGlkX2xpdGVyYWwiLCJjdXN0b20iLCJpbnZhbGlkX3VuaW9uIiwiaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yIiwiaW52YWxpZF9lbnVtX3ZhbHVlIiwidW5yZWNvZ25pemVkX2tleXMiLCJpbnZhbGlkX2FyZ3VtZW50cyIsImludmFsaWRfcmV0dXJuX3R5cGUiLCJpbnZhbGlkX2RhdGUiLCJpbnZhbGlkX3N0cmluZyIsInRvb19zbWFsbCIsInRvb19iaWciLCJpbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlcyIsIm5vdF9tdWx0aXBsZV9vZiIsIm5vdF9maW5pdGUiXSksdDI9ZT0+SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpLnJlcGxhY2UoLyIoW14iXSspIjovZywiJDE6Iik7Y2xhc3MgdDkgZXh0ZW5kcyBFcnJvcntnZXQgZXJyb3JzKCl7cmV0dXJuIHRoaXMuaXNzdWVzfWNvbnN0cnVjdG9yKGUpe3N1cGVyKCksdGhpcy5pc3N1ZXM9W10sdGhpcy5hZGRJc3N1ZT1lPT57dGhpcy5pc3N1ZXM9Wy4uLnRoaXMuaXNzdWVzLGVdfSx0aGlzLmFkZElzc3Vlcz0oZT1bXSk9Pnt0aGlzLmlzc3Vlcz1bLi4udGhpcy5pc3N1ZXMsLi4uZV19O2NvbnN0IHQ9bmV3LnRhcmdldC5wcm90b3R5cGU7T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLHQpOnRoaXMuX19wcm90b19fPXQsdGhpcy5uYW1lPSJab2RFcnJvciIsdGhpcy5pc3N1ZXM9ZX1mb3JtYXQoZSl7bGV0IHQ9ZXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUubWVzc2FnZX0scj17X2Vycm9yczpbXX0sbj1lPT57Zm9yKGxldCBpIG9mIGUuaXNzdWVzKWlmKCJpbnZhbGlkX3VuaW9uIj09PWkuY29kZSlpLnVuaW9uRXJyb3JzLm1hcChuKTtlbHNlIGlmKCJpbnZhbGlkX3JldHVybl90eXBlIj09PWkuY29kZSluKGkucmV0dXJuVHlwZUVycm9yKTtlbHNlIGlmKCJpbnZhbGlkX2FyZ3VtZW50cyI9PT1pLmNvZGUpbihpLmFyZ3VtZW50c0Vycm9yKTtlbHNlIGlmKDA9PT1pLnBhdGgubGVuZ3RoKXIuX2Vycm9ycy5wdXNoKHQoaSkpO2Vsc2V7bGV0IGU9cixuPTA7Zm9yKDtuPGkucGF0aC5sZW5ndGg7KXtsZXQgcj1pLnBhdGhbbl07bj09PWkucGF0aC5sZW5ndGgtMT8oZVtyXT1lW3JdfHx7X2Vycm9yczpbXX0sZVtyXS5fZXJyb3JzLnB1c2godChpKSkpOmVbcl09ZVtyXXx8e19lcnJvcnM6W119LGU9ZVtyXSxuKyt9fX07cmV0dXJuIG4odGhpcykscn1zdGF0aWMgYXNzZXJ0KGUpe2lmKCEoZSBpbnN0YW5jZW9mIHQ5KSl0aHJvdyBFcnJvcihgTm90IGEgWm9kRXJyb3I6ICR7ZX1gKX10b1N0cmluZygpe3JldHVybiB0aGlzLm1lc3NhZ2V9Z2V0IG1lc3NhZ2UoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5pc3N1ZXMsXy5qc29uU3RyaW5naWZ5UmVwbGFjZXIsMil9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXMuaXNzdWVzLmxlbmd0aH1mbGF0dGVuKGU9ZT0+ZS5tZXNzYWdlKXtsZXQgdD17fSxyPVtdO2ZvcihsZXQgbiBvZiB0aGlzLmlzc3VlcylpZihuLnBhdGgubGVuZ3RoPjApe2xldCByPW4ucGF0aFswXTt0W3JdPXRbcl18fFtdLHRbcl0ucHVzaChlKG4pKX1lbHNlIHIucHVzaChlKG4pKTtyZXR1cm57Zm9ybUVycm9yczpyLGZpZWxkRXJyb3JzOnR9fWdldCBmb3JtRXJyb3JzKCl7cmV0dXJuIHRoaXMuZmxhdHRlbigpfX10OS5jcmVhdGU9ZT0+bmV3IHQ5KGUpLGUucyhbIlpvZEVycm9yIiwoKT0+dDksIlpvZElzc3VlQ29kZSIsMCx0NiwicXVvdGVsZXNzSnNvbiIsMCx0Ml0sMTY5NzkwKTtsZXQgdDU9KGUsdCk9PntsZXQgcjtzd2l0Y2goZS5jb2RlKXtjYXNlIHQ2LmludmFsaWRfdHlwZTpyPWUucmVjZWl2ZWQ9PT10MS51bmRlZmluZWQ/IlJlcXVpcmVkIjpgRXhwZWN0ZWQgJHtlLmV4cGVjdGVkfSwgcmVjZWl2ZWQgJHtlLnJlY2VpdmVkfWA7YnJlYWs7Y2FzZSB0Ni5pbnZhbGlkX2xpdGVyYWw6cj1gSW52YWxpZCBsaXRlcmFsIHZhbHVlLCBleHBlY3RlZCAke0pTT04uc3RyaW5naWZ5KGUuZXhwZWN0ZWQsXy5qc29uU3RyaW5naWZ5UmVwbGFjZXIpfWA7YnJlYWs7Y2FzZSB0Ni51bnJlY29nbml6ZWRfa2V5czpyPWBVbnJlY29nbml6ZWQga2V5KHMpIGluIG9iamVjdDogJHtfLmpvaW5WYWx1ZXMoZS5rZXlzLCIsICIpfWA7YnJlYWs7Y2FzZSB0Ni5pbnZhbGlkX3VuaW9uOnI9IkludmFsaWQgaW5wdXQiO2JyZWFrO2Nhc2UgdDYuaW52YWxpZF91bmlvbl9kaXNjcmltaW5hdG9yOnI9YEludmFsaWQgZGlzY3JpbWluYXRvciB2YWx1ZS4gRXhwZWN0ZWQgJHtfLmpvaW5WYWx1ZXMoZS5vcHRpb25zKX1gO2JyZWFrO2Nhc2UgdDYuaW52YWxpZF9lbnVtX3ZhbHVlOnI9YEludmFsaWQgZW51bSB2YWx1ZS4gRXhwZWN0ZWQgJHtfLmpvaW5WYWx1ZXMoZS5vcHRpb25zKX0sIHJlY2VpdmVkICcke2UucmVjZWl2ZWR9J2A7YnJlYWs7Y2FzZSB0Ni5pbnZhbGlkX2FyZ3VtZW50czpyPSJJbnZhbGlkIGZ1bmN0aW9uIGFyZ3VtZW50cyI7YnJlYWs7Y2FzZSB0Ni5pbnZhbGlkX3JldHVybl90eXBlOnI9IkludmFsaWQgZnVuY3Rpb24gcmV0dXJuIHR5cGUiO2JyZWFrO2Nhc2UgdDYuaW52YWxpZF9kYXRlOnI9IkludmFsaWQgZGF0ZSI7YnJlYWs7Y2FzZSB0Ni5pbnZhbGlkX3N0cmluZzoib2JqZWN0Ij09dHlwZW9mIGUudmFsaWRhdGlvbj8iaW5jbHVkZXMiaW4gZS52YWxpZGF0aW9uPyhyPWBJbnZhbGlkIGlucHV0OiBtdXN0IGluY2x1ZGUgIiR7ZS52YWxpZGF0aW9uLmluY2x1ZGVzfSJgLCJudW1iZXIiPT10eXBlb2YgZS52YWxpZGF0aW9uLnBvc2l0aW9uJiYocj1gJHtyfSBhdCBvbmUgb3IgbW9yZSBwb3NpdGlvbnMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7ZS52YWxpZGF0aW9uLnBvc2l0aW9ufWApKToic3RhcnRzV2l0aCJpbiBlLnZhbGlkYXRpb24/cj1gSW52YWxpZCBpbnB1dDogbXVzdCBzdGFydCB3aXRoICIke2UudmFsaWRhdGlvbi5zdGFydHNXaXRofSJgOiJlbmRzV2l0aCJpbiBlLnZhbGlkYXRpb24/cj1gSW52YWxpZCBpbnB1dDogbXVzdCBlbmQgd2l0aCAiJHtlLnZhbGlkYXRpb24uZW5kc1dpdGh9ImA6Xy5hc3NlcnROZXZlcihlLnZhbGlkYXRpb24pOnI9InJlZ2V4IiE9PWUudmFsaWRhdGlvbj9gSW52YWxpZCAke2UudmFsaWRhdGlvbn1gOiJJbnZhbGlkIjticmVhaztjYXNlIHQ2LnRvb19zbWFsbDpyPSJhcnJheSI9PT1lLnR5cGU/YEFycmF5IG11c3QgY29udGFpbiAke2UuZXhhY3Q/ImV4YWN0bHkiOmUuaW5jbHVzaXZlPyJhdCBsZWFzdCI6Im1vcmUgdGhhbiJ9ICR7ZS5taW5pbXVtfSBlbGVtZW50KHMpYDoic3RyaW5nIj09PWUudHlwZT9gU3RyaW5nIG11c3QgY29udGFpbiAke2UuZXhhY3Q/ImV4YWN0bHkiOmUuaW5jbHVzaXZlPyJhdCBsZWFzdCI6Im92ZXIifSAke2UubWluaW11bX0gY2hhcmFjdGVyKHMpYDoibnVtYmVyIj09PWUudHlwZXx8ImJpZ2ludCI9PT1lLnR5cGU/YE51bWJlciBtdXN0IGJlICR7ZS5leGFjdD8iZXhhY3RseSBlcXVhbCB0byAiOmUuaW5jbHVzaXZlPyJncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gIjoiZ3JlYXRlciB0aGFuICJ9JHtlLm1pbmltdW19YDoiZGF0ZSI9PT1lLnR5cGU/YERhdGUgbXVzdCBiZSAke2UuZXhhY3Q/ImV4YWN0bHkgZXF1YWwgdG8gIjplLmluY2x1c2l2ZT8iZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICI6ImdyZWF0ZXIgdGhhbiAifSR7bmV3IERhdGUoTnVtYmVyKGUubWluaW11bSkpfWA6IkludmFsaWQgaW5wdXQiO2JyZWFrO2Nhc2UgdDYudG9vX2JpZzpyPSJhcnJheSI9PT1lLnR5cGU/YEFycmF5IG11c3QgY29udGFpbiAke2UuZXhhY3Q/ImV4YWN0bHkiOmUuaW5jbHVzaXZlPyJhdCBtb3N0IjoibGVzcyB0aGFuIn0gJHtlLm1heGltdW19IGVsZW1lbnQocylgOiJzdHJpbmciPT09ZS50eXBlP2BTdHJpbmcgbXVzdCBjb250YWluICR7ZS5leGFjdD8iZXhhY3RseSI6ZS5pbmNsdXNpdmU/ImF0IG1vc3QiOiJ1bmRlciJ9ICR7ZS5tYXhpbXVtfSBjaGFyYWN0ZXIocylgOiJudW1iZXIiPT09ZS50eXBlP2BOdW1iZXIgbXVzdCBiZSAke2UuZXhhY3Q/ImV4YWN0bHkiOmUuaW5jbHVzaXZlPyJsZXNzIHRoYW4gb3IgZXF1YWwgdG8iOiJsZXNzIHRoYW4ifSAke2UubWF4aW11bX1gOiJiaWdpbnQiPT09ZS50eXBlP2BCaWdJbnQgbXVzdCBiZSAke2UuZXhhY3Q/ImV4YWN0bHkiOmUuaW5jbHVzaXZlPyJsZXNzIHRoYW4gb3IgZXF1YWwgdG8iOiJsZXNzIHRoYW4ifSAke2UubWF4aW11bX1gOiJkYXRlIj09PWUudHlwZT9gRGF0ZSBtdXN0IGJlICR7ZS5leGFjdD8iZXhhY3RseSI6ZS5pbmNsdXNpdmU/InNtYWxsZXIgdGhhbiBvciBlcXVhbCB0byI6InNtYWxsZXIgdGhhbiJ9ICR7bmV3IERhdGUoTnVtYmVyKGUubWF4aW11bSkpfWA6IkludmFsaWQgaW5wdXQiO2JyZWFrO2Nhc2UgdDYuY3VzdG9tOnI9IkludmFsaWQgaW5wdXQiO2JyZWFrO2Nhc2UgdDYuaW52YWxpZF9pbnRlcnNlY3Rpb25fdHlwZXM6cj0iSW50ZXJzZWN0aW9uIHJlc3VsdHMgY291bGQgbm90IGJlIG1lcmdlZCI7YnJlYWs7Y2FzZSB0Ni5ub3RfbXVsdGlwbGVfb2Y6cj1gTnVtYmVyIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAke2UubXVsdGlwbGVPZn1gO2JyZWFrO2Nhc2UgdDYubm90X2Zpbml0ZTpyPSJOdW1iZXIgbXVzdCBiZSBmaW5pdGUiO2JyZWFrO2RlZmF1bHQ6cj10LmRlZmF1bHRFcnJvcixfLmFzc2VydE5ldmVyKGUpfXJldHVybnttZXNzYWdlOnJ9fSx0Mz10NTtmdW5jdGlvbiB0NyhlKXt0Mz1lfWZ1bmN0aW9uIHQ4KCl7cmV0dXJuIHQzfWUucyhbImdldEVycm9yTWFwIiwoKT0+dDgsInNldEVycm9yTWFwIiwoKT0+dDddLDkzNzkwNCksKG49JHx8KCQ9e30pKS5lcnJUb09iaj1lPT4ic3RyaW5nIj09dHlwZW9mIGU/e21lc3NhZ2U6ZX06ZXx8e30sbi50b1N0cmluZz1lPT4ic3RyaW5nIj09dHlwZW9mIGU/ZTplPy5tZXNzYWdlO2xldCByZT1lPT57bGV0e2RhdGE6dCxwYXRoOnIsZXJyb3JNYXBzOm4saXNzdWVEYXRhOml9PWUsYT1bLi4uciwuLi5pLnBhdGh8fFtdXSxvPXsuLi5pLHBhdGg6YX07aWYodm9pZCAwIT09aS5tZXNzYWdlKXJldHVybnsuLi5pLHBhdGg6YSxtZXNzYWdlOmkubWVzc2FnZX07bGV0IHM9IiI7Zm9yKGxldCBlIG9mIG4uZmlsdGVyKGU9PiEhZSkuc2xpY2UoKS5yZXZlcnNlKCkpcz1lKG8se2RhdGE6dCxkZWZhdWx0RXJyb3I6c30pLm1lc3NhZ2U7cmV0dXJuey4uLmkscGF0aDphLG1lc3NhZ2U6c319LHJ0PVtdO2Z1bmN0aW9uIHJyKGUsdCl7bGV0IHI9dDMsbj1yZSh7aXNzdWVEYXRhOnQsZGF0YTplLmRhdGEscGF0aDplLnBhdGgsZXJyb3JNYXBzOltlLmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsZS5zY2hlbWFFcnJvck1hcCxyLHI9PT10NT92b2lkIDA6dDVdLmZpbHRlcihlPT4hIWUpfSk7ZS5jb21tb24uaXNzdWVzLnB1c2gobil9Y2xhc3Mgcm57Y29uc3RydWN0b3IoKXt0aGlzLnZhbHVlPSJ2YWxpZCJ9ZGlydHkoKXsidmFsaWQiPT09dGhpcy52YWx1ZSYmKHRoaXMudmFsdWU9ImRpcnR5Iil9YWJvcnQoKXsiYWJvcnRlZCIhPT10aGlzLnZhbHVlJiYodGhpcy52YWx1ZT0iYWJvcnRlZCIpfXN0YXRpYyBtZXJnZUFycmF5KGUsdCl7bGV0IHI9W107Zm9yKGxldCBuIG9mIHQpe2lmKCJhYm9ydGVkIj09PW4uc3RhdHVzKXJldHVybiByaTsiZGlydHkiPT09bi5zdGF0dXMmJmUuZGlydHkoKSxyLnB1c2gobi52YWx1ZSl9cmV0dXJue3N0YXR1czplLnZhbHVlLHZhbHVlOnJ9fXN0YXRpYyBhc3luYyBtZXJnZU9iamVjdEFzeW5jKGUsdCl7bGV0IHI9W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWF3YWl0IGUua2V5LG49YXdhaXQgZS52YWx1ZTtyLnB1c2goe2tleTp0LHZhbHVlOm59KX1yZXR1cm4gcm4ubWVyZ2VPYmplY3RTeW5jKGUscil9c3RhdGljIG1lcmdlT2JqZWN0U3luYyhlLHQpe2xldCByPXt9O2ZvcihsZXQgbiBvZiB0KXtsZXR7a2V5OnQsdmFsdWU6aX09bjtpZigiYWJvcnRlZCI9PT10LnN0YXR1c3x8ImFib3J0ZWQiPT09aS5zdGF0dXMpcmV0dXJuIHJpOyJkaXJ0eSI9PT10LnN0YXR1cyYmZS5kaXJ0eSgpLCJkaXJ0eSI9PT1pLnN0YXR1cyYmZS5kaXJ0eSgpLCJfX3Byb3RvX18iIT09dC52YWx1ZSYmKHZvaWQgMCE9PWkudmFsdWV8fG4uYWx3YXlzU2V0KSYmKHJbdC52YWx1ZV09aS52YWx1ZSl9cmV0dXJue3N0YXR1czplLnZhbHVlLHZhbHVlOnJ9fX1sZXQgcmk9T2JqZWN0LmZyZWV6ZSh7c3RhdHVzOiJhYm9ydGVkIn0pLHJhPWU9Pih7c3RhdHVzOiJkaXJ0eSIsdmFsdWU6ZX0pLHJvPWU9Pih7c3RhdHVzOiJ2YWxpZCIsdmFsdWU6ZX0pLHJzPWU9PiJhYm9ydGVkIj09PWUuc3RhdHVzLHJ1PWU9PiJkaXJ0eSI9PT1lLnN0YXR1cyxybD1lPT4idmFsaWQiPT09ZS5zdGF0dXMscmQ9ZT0+InVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlJiZlIGluc3RhbmNlb2YgUHJvbWlzZTtlLnMoWyJESVJUWSIsMCxyYSwiRU1QVFlfUEFUSCIsMCxydCwiSU5WQUxJRCIsMCxyaSwiT0siLDAscm8sIlBhcnNlU3RhdHVzIiwoKT0+cm4sImFkZElzc3VlVG9Db250ZXh0IiwoKT0+cnIsImlzQWJvcnRlZCIsMCxycywiaXNBc3luYyIsMCxyZCwiaXNEaXJ0eSIsMCxydSwiaXNWYWxpZCIsMCxybCwibWFrZUlzc3VlIiwwLHJlXSw2NjUzNTQpO2NsYXNzIHJje2NvbnN0cnVjdG9yKGUsdCxyLG4pe3RoaXMuX2NhY2hlZFBhdGg9W10sdGhpcy5wYXJlbnQ9ZSx0aGlzLmRhdGE9dCx0aGlzLl9wYXRoPXIsdGhpcy5fa2V5PW59Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fY2FjaGVkUGF0aC5sZW5ndGh8fChBcnJheS5pc0FycmF5KHRoaXMuX2tleSk/dGhpcy5fY2FjaGVkUGF0aC5wdXNoKC4uLnRoaXMuX3BhdGgsLi4udGhpcy5fa2V5KTp0aGlzLl9jYWNoZWRQYXRoLnB1c2goLi4udGhpcy5fcGF0aCx0aGlzLl9rZXkpKSx0aGlzLl9jYWNoZWRQYXRofX1sZXQgcnA9KGUsdCk9PntpZihybCh0KSlyZXR1cm57c3VjY2VzczohMCxkYXRhOnQudmFsdWV9O2lmKCFlLmNvbW1vbi5pc3N1ZXMubGVuZ3RoKXRocm93IEVycm9yKCJWYWxpZGF0aW9uIGZhaWxlZCBidXQgbm8gaXNzdWVzIGRldGVjdGVkLiIpO3JldHVybntzdWNjZXNzOiExLGdldCBlcnJvcigpe2lmKHRoaXMuX2Vycm9yKXJldHVybiB0aGlzLl9lcnJvcjtsZXQgdD1uZXcgdDkoZS5jb21tb24uaXNzdWVzKTtyZXR1cm4gdGhpcy5fZXJyb3I9dCx0aGlzLl9lcnJvcn19fTtmdW5jdGlvbiBybShlKXtpZighZSlyZXR1cm57fTtsZXR7ZXJyb3JNYXA6dCxpbnZhbGlkX3R5cGVfZXJyb3I6cixyZXF1aXJlZF9lcnJvcjpuLGRlc2NyaXB0aW9uOml9PWU7aWYodCYmKHJ8fG4pKXRocm93IEVycm9yKCdDYW5cJ3QgdXNlICJpbnZhbGlkX3R5cGVfZXJyb3IiIG9yICJyZXF1aXJlZF9lcnJvciIgaW4gY29uanVuY3Rpb24gd2l0aCBjdXN0b20gZXJyb3IgbWFwLicpO3JldHVybiB0P3tlcnJvck1hcDp0LGRlc2NyaXB0aW9uOml9OntlcnJvck1hcDoodCxpKT0+e2xldHttZXNzYWdlOmF9PWU7cmV0dXJuImludmFsaWRfZW51bV92YWx1ZSI9PT10LmNvZGU/e21lc3NhZ2U6YT8/aS5kZWZhdWx0RXJyb3J9OnZvaWQgMD09PWkuZGF0YT97bWVzc2FnZTphPz9uPz9pLmRlZmF1bHRFcnJvcn06ImludmFsaWRfdHlwZSIhPT10LmNvZGU/e21lc3NhZ2U6aS5kZWZhdWx0RXJyb3J9OnttZXNzYWdlOmE/P3I/P2kuZGVmYXVsdEVycm9yfX0sZGVzY3JpcHRpb246aX19Y2xhc3MgcmZ7Z2V0IGRlc2NyaXB0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZi5kZXNjcmlwdGlvbn1fZ2V0VHlwZShlKXtyZXR1cm4gdDQoZS5kYXRhKX1fZ2V0T3JSZXR1cm5DdHgoZSx0KXtyZXR1cm4gdHx8e2NvbW1vbjplLnBhcmVudC5jb21tb24sZGF0YTplLmRhdGEscGFyc2VkVHlwZTp0NChlLmRhdGEpLHNjaGVtYUVycm9yTWFwOnRoaXMuX2RlZi5lcnJvck1hcCxwYXRoOmUucGF0aCxwYXJlbnQ6ZS5wYXJlbnR9fV9wcm9jZXNzSW5wdXRQYXJhbXMoZSl7cmV0dXJue3N0YXR1czpuZXcgcm4sY3R4Ontjb21tb246ZS5wYXJlbnQuY29tbW9uLGRhdGE6ZS5kYXRhLHBhcnNlZFR5cGU6dDQoZS5kYXRhKSxzY2hlbWFFcnJvck1hcDp0aGlzLl9kZWYuZXJyb3JNYXAscGF0aDplLnBhdGgscGFyZW50OmUucGFyZW50fX19X3BhcnNlU3luYyhlKXtsZXQgdD10aGlzLl9wYXJzZShlKTtpZihyZCh0KSl0aHJvdyBFcnJvcigiU3luY2hyb25vdXMgcGFyc2UgZW5jb3VudGVyZWQgcHJvbWlzZS4iKTtyZXR1cm4gdH1fcGFyc2VBc3luYyhlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3BhcnNlKGUpKX1wYXJzZShlLHQpe2xldCByPXRoaXMuc2FmZVBhcnNlKGUsdCk7aWYoci5zdWNjZXNzKXJldHVybiByLmRhdGE7dGhyb3cgci5lcnJvcn1zYWZlUGFyc2UoZSx0KXtsZXQgcj17Y29tbW9uOntpc3N1ZXM6W10sYXN5bmM6dD8uYXN5bmM/PyExLGNvbnRleHR1YWxFcnJvck1hcDp0Py5lcnJvck1hcH0scGF0aDp0Py5wYXRofHxbXSxzY2hlbWFFcnJvck1hcDp0aGlzLl9kZWYuZXJyb3JNYXAscGFyZW50Om51bGwsZGF0YTplLHBhcnNlZFR5cGU6dDQoZSl9LG49dGhpcy5fcGFyc2VTeW5jKHtkYXRhOmUscGF0aDpyLnBhdGgscGFyZW50OnJ9KTtyZXR1cm4gcnAocixuKX0ifnZhbGlkYXRlIihlKXtsZXQgdD17Y29tbW9uOntpc3N1ZXM6W10sYXN5bmM6ISF0aGlzWyJ+c3RhbmRhcmQiXS5hc3luY30scGF0aDpbXSxzY2hlbWFFcnJvck1hcDp0aGlzLl9kZWYuZXJyb3JNYXAscGFyZW50Om51bGwsZGF0YTplLHBhcnNlZFR5cGU6dDQoZSl9O2lmKCF0aGlzWyJ+c3RhbmRhcmQiXS5hc3luYyl0cnl7bGV0IHI9dGhpcy5fcGFyc2VTeW5jKHtkYXRhOmUscGF0aDpbXSxwYXJlbnQ6dH0pO3JldHVybiBybChyKT97dmFsdWU6ci52YWx1ZX06e2lzc3Vlczp0LmNvbW1vbi5pc3N1ZXN9fWNhdGNoKGUpe2U/Lm1lc3NhZ2U/LnRvTG93ZXJDYXNlKCk/LmluY2x1ZGVzKCJlbmNvdW50ZXJlZCIpJiYodGhpc1sifnN0YW5kYXJkIl0uYXN5bmM9ITApLHQuY29tbW9uPXtpc3N1ZXM6W10sYXN5bmM6ITB9fXJldHVybiB0aGlzLl9wYXJzZUFzeW5jKHtkYXRhOmUscGF0aDpbXSxwYXJlbnQ6dH0pLnRoZW4oZT0+cmwoZSk/e3ZhbHVlOmUudmFsdWV9Ontpc3N1ZXM6dC5jb21tb24uaXNzdWVzfSl9YXN5bmMgcGFyc2VBc3luYyhlLHQpe2xldCByPWF3YWl0IHRoaXMuc2FmZVBhcnNlQXN5bmMoZSx0KTtpZihyLnN1Y2Nlc3MpcmV0dXJuIHIuZGF0YTt0aHJvdyByLmVycm9yfWFzeW5jIHNhZmVQYXJzZUFzeW5jKGUsdCl7bGV0IHI9e2NvbW1vbjp7aXNzdWVzOltdLGNvbnRleHR1YWxFcnJvck1hcDp0Py5lcnJvck1hcCxhc3luYzohMH0scGF0aDp0Py5wYXRofHxbXSxzY2hlbWFFcnJvck1hcDp0aGlzLl9kZWYuZXJyb3JNYXAscGFyZW50Om51bGwsZGF0YTplLHBhcnNlZFR5cGU6dDQoZSl9LG49dGhpcy5fcGFyc2Uoe2RhdGE6ZSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pO3JldHVybiBycChyLGF3YWl0IChyZChuKT9uOlByb21pc2UucmVzb2x2ZShuKSkpfXJlZmluZShlLHQpe3JldHVybiB0aGlzLl9yZWZpbmVtZW50KChyLG4pPT57bGV0IGk9ZShyKSxhPSgpPT5uLmFkZElzc3VlKHtjb2RlOnQ2LmN1c3RvbSwuLi4ic3RyaW5nIj09dHlwZW9mIHR8fHZvaWQgMD09PXQ/e21lc3NhZ2U6dH06ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dChyKTp0fSk7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlJiZpIGluc3RhbmNlb2YgUHJvbWlzZT9pLnRoZW4oZT0+ISFlfHwoYSgpLCExKSk6ISFpfHwoYSgpLCExKX0pfXJlZmluZW1lbnQoZSx0KXtyZXR1cm4gdGhpcy5fcmVmaW5lbWVudCgocixuKT0+ISFlKHIpfHwobi5hZGRJc3N1ZSgiZnVuY3Rpb24iPT10eXBlb2YgdD90KHIsbik6dCksITEpKX1fcmVmaW5lbWVudChlKXtyZXR1cm4gbmV3IHI3KHtzY2hlbWE6dGhpcyx0eXBlTmFtZTprLlpvZEVmZmVjdHMsZWZmZWN0Ont0eXBlOiJyZWZpbmVtZW50IixyZWZpbmVtZW50OmV9fSl9c3VwZXJSZWZpbmUoZSl7cmV0dXJuIHRoaXMuX3JlZmluZW1lbnQoZSl9Y29uc3RydWN0b3IoZSl7dGhpcy5zcGE9dGhpcy5zYWZlUGFyc2VBc3luYyx0aGlzLl9kZWY9ZSx0aGlzLnBhcnNlPXRoaXMucGFyc2UuYmluZCh0aGlzKSx0aGlzLnNhZmVQYXJzZT10aGlzLnNhZmVQYXJzZS5iaW5kKHRoaXMpLHRoaXMucGFyc2VBc3luYz10aGlzLnBhcnNlQXN5bmMuYmluZCh0aGlzKSx0aGlzLnNhZmVQYXJzZUFzeW5jPXRoaXMuc2FmZVBhcnNlQXN5bmMuYmluZCh0aGlzKSx0aGlzLnNwYT10aGlzLnNwYS5iaW5kKHRoaXMpLHRoaXMucmVmaW5lPXRoaXMucmVmaW5lLmJpbmQodGhpcyksdGhpcy5yZWZpbmVtZW50PXRoaXMucmVmaW5lbWVudC5iaW5kKHRoaXMpLHRoaXMuc3VwZXJSZWZpbmU9dGhpcy5zdXBlclJlZmluZS5iaW5kKHRoaXMpLHRoaXMub3B0aW9uYWw9dGhpcy5vcHRpb25hbC5iaW5kKHRoaXMpLHRoaXMubnVsbGFibGU9dGhpcy5udWxsYWJsZS5iaW5kKHRoaXMpLHRoaXMubnVsbGlzaD10aGlzLm51bGxpc2guYmluZCh0aGlzKSx0aGlzLmFycmF5PXRoaXMuYXJyYXkuYmluZCh0aGlzKSx0aGlzLnByb21pc2U9dGhpcy5wcm9taXNlLmJpbmQodGhpcyksdGhpcy5vcj10aGlzLm9yLmJpbmQodGhpcyksdGhpcy5hbmQ9dGhpcy5hbmQuYmluZCh0aGlzKSx0aGlzLnRyYW5zZm9ybT10aGlzLnRyYW5zZm9ybS5iaW5kKHRoaXMpLHRoaXMuYnJhbmQ9dGhpcy5icmFuZC5iaW5kKHRoaXMpLHRoaXMuZGVmYXVsdD10aGlzLmRlZmF1bHQuYmluZCh0aGlzKSx0aGlzLmNhdGNoPXRoaXMuY2F0Y2guYmluZCh0aGlzKSx0aGlzLmRlc2NyaWJlPXRoaXMuZGVzY3JpYmUuYmluZCh0aGlzKSx0aGlzLnBpcGU9dGhpcy5waXBlLmJpbmQodGhpcyksdGhpcy5yZWFkb25seT10aGlzLnJlYWRvbmx5LmJpbmQodGhpcyksdGhpcy5pc051bGxhYmxlPXRoaXMuaXNOdWxsYWJsZS5iaW5kKHRoaXMpLHRoaXMuaXNPcHRpb25hbD10aGlzLmlzT3B0aW9uYWwuYmluZCh0aGlzKSx0aGlzWyJ+c3RhbmRhcmQiXT17dmVyc2lvbjoxLHZlbmRvcjoiem9kIix2YWxpZGF0ZTplPT50aGlzWyJ+dmFsaWRhdGUiXShlKX19b3B0aW9uYWwoKXtyZXR1cm4gcjguY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1udWxsYWJsZSgpe3JldHVybiBuZS5jcmVhdGUodGhpcyx0aGlzLl9kZWYpfW51bGxpc2goKXtyZXR1cm4gdGhpcy5udWxsYWJsZSgpLm9wdGlvbmFsKCl9YXJyYXkoKXtyZXR1cm4gckouY3JlYXRlKHRoaXMpfXByb21pc2UoKXtyZXR1cm4gcjMuY3JlYXRlKHRoaXMsdGhpcy5fZGVmKX1vcihlKXtyZXR1cm4gcnEuY3JlYXRlKFt0aGlzLGVdLHRoaXMuX2RlZil9YW5kKGUpe3JldHVybiByWS5jcmVhdGUodGhpcyxlLHRoaXMuX2RlZil9dHJhbnNmb3JtKGUpe3JldHVybiBuZXcgcjcoey4uLnJtKHRoaXMuX2RlZiksc2NoZW1hOnRoaXMsdHlwZU5hbWU6ay5ab2RFZmZlY3RzLGVmZmVjdDp7dHlwZToidHJhbnNmb3JtIix0cmFuc2Zvcm06ZX19KX1kZWZhdWx0KGUpe3JldHVybiBuZXcgbnQoey4uLnJtKHRoaXMuX2RlZiksaW5uZXJUeXBlOnRoaXMsZGVmYXVsdFZhbHVlOiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6KCk9PmUsdHlwZU5hbWU6ay5ab2REZWZhdWx0fSl9YnJhbmQoKXtyZXR1cm4gbmV3IG5hKHt0eXBlTmFtZTprLlpvZEJyYW5kZWQsdHlwZTp0aGlzLC4uLnJtKHRoaXMuX2RlZil9KX1jYXRjaChlKXtyZXR1cm4gbmV3IG5yKHsuLi5ybSh0aGlzLl9kZWYpLGlubmVyVHlwZTp0aGlzLGNhdGNoVmFsdWU6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTooKT0+ZSx0eXBlTmFtZTprLlpvZENhdGNofSl9ZGVzY3JpYmUoZSl7cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHsuLi50aGlzLl9kZWYsZGVzY3JpcHRpb246ZX0pfXBpcGUoZSl7cmV0dXJuIG5vLmNyZWF0ZSh0aGlzLGUpfXJlYWRvbmx5KCl7cmV0dXJuIG5zLmNyZWF0ZSh0aGlzKX1pc09wdGlvbmFsKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKHZvaWQgMCkuc3VjY2Vzc31pc051bGxhYmxlKCl7cmV0dXJuIHRoaXMuc2FmZVBhcnNlKG51bGwpLnN1Y2Nlc3N9fWxldCByaD0vXmNbXlxzLV17OCx9JC9pLHJ2PS9eWzAtOWEtel0rJC8scmc9L15bMC05QS1ISktNTlAtVFYtWl17MjZ9JC9pLHJ5PS9eWzAtOWEtZkEtRl17OH1cYi1bMC05YS1mQS1GXXs0fVxiLVswLTlhLWZBLUZdezR9XGItWzAtOWEtZkEtRl17NH1cYi1bMC05YS1mQS1GXXsxMn0kL2kscmI9L15bYS16MC05Xy1dezIxfSQvaSxyXz0vXltBLVphLXowLTktX10rXC5bQS1aYS16MC05LV9dK1wuW0EtWmEtejAtOS1fXSokLyxyeD0vXlstK10/UCg/ISQpKD86KD86Wy0rXT9cZCtZKXwoPzpbLStdP1xkK1suLF1cZCtZJCkpPyg/Oig/OlstK10/XGQrTSl8KD86Wy0rXT9cZCtbLixdXGQrTSQpKT8oPzooPzpbLStdP1xkK1cpfCg/OlstK10/XGQrWy4sXVxkK1ckKSk/KD86KD86Wy0rXT9cZCtEKXwoPzpbLStdP1xkK1suLF1cZCtEJCkpPyg/OlQoPz1bXGQrLV0pKD86KD86Wy0rXT9cZCtIKXwoPzpbLStdP1xkK1suLF1cZCtIJCkpPyg/Oig/OlstK10/XGQrTSl8KD86Wy0rXT9cZCtbLixdXGQrTSQpKT8oPzpbLStdP1xkKyg/OlsuLF1cZCspP1MpPyk/PyQvLHIkPS9eKD8hXC4pKD8hLipcLlwuKShbQS1aMC05XycrXC1cLl0qKVtBLVowLTlfKy1dQChbQS1aMC05XVtBLVowLTlcLV0qXC4pK1tBLVpdezIsfSQvaSxyaz0vXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pJC8scnc9L14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwvKDNbMC0yXXxbMTJdP1swLTldKSQvLHJJPS9eKChbMC05YS1mQS1GXXsxLDR9Oil7Nyw3fVswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDd9OnwoWzAtOWEtZkEtRl17MSw0fTopezEsNn06WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsNX0oOlswLTlhLWZBLUZdezEsNH0pezEsMn18KFswLTlhLWZBLUZdezEsNH06KXsxLDR9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDN9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwzfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsMn0oOlswLTlhLWZBLUZdezEsNH0pezEsNX18WzAtOWEtZkEtRl17MSw0fTooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDZ9KXw6KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw3fXw6KXxmZTgwOig6WzAtOWEtZkEtRl17MCw0fSl7MCw0fSVbMC05YS16QS1aXXsxLH18OjooZmZmZig6MHsxLDR9KXswLDF9Oil7MCwxfSgoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pfChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fTooKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKSkkLyxyUz0vXigoWzAtOWEtZkEtRl17MSw0fTopezcsN31bMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw3fTp8KFswLTlhLWZBLUZdezEsNH06KXsxLDZ9OlswLTlhLWZBLUZdezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDV9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDJ9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw0fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwzfXwoWzAtOWEtZkEtRl17MSw0fTopezEsM30oOlswLTlhLWZBLUZdezEsNH0pezEsNH18KFswLTlhLWZBLUZdezEsNH06KXsxLDJ9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDV9fFswLTlhLWZBLUZdezEsNH06KCg6WzAtOWEtZkEtRl17MSw0fSl7MSw2fSl8OigoOlswLTlhLWZBLUZdezEsNH0pezEsN318Oil8ZmU4MDooOlswLTlhLWZBLUZdezAsNH0pezAsNH0lWzAtOWEtekEtWl17MSx9fDo6KGZmZmYoOjB7MSw0fSl7MCwxfTopezAsMX0oKDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKVwuKXszLDN9KDI1WzAtNV18KDJbMC00XXwxezAsMX1bMC05XSl7MCwxfVswLTldKXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH06KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSkpXC8oMTJbMC04XXwxWzAxXVswLTldfFsxLTldP1swLTldKSQvLHJPPS9eKFswLTlhLXpBLVorL117NH0pKigoWzAtOWEtekEtWisvXXsyfT09KXwoWzAtOWEtekEtWisvXXszfT0pKT8kLyxyaj0vXihbMC05YS16QS1aLV9dezR9KSooKFswLTlhLXpBLVotX117Mn0oPT0pPyl8KFswLTlhLXpBLVotX117M30oPSk/KSk/JC8sckU9IigoXFxkXFxkWzI0NjhdWzA0OF18XFxkXFxkWzEzNTc5XVsyNl18XFxkXFxkMFs0OF18WzAyNDY4XVswNDhdMDB8WzEzNTc5XVsyNl0wMCktMDItMjl8XFxkezR9LSgoMFsxMzU3OF18MVswMl0pLSgwWzEtOV18WzEyXVxcZHwzWzAxXSl8KDBbNDY5XXwxMSktKDBbMS05XXxbMTJdXFxkfDMwKXwoMDIpLSgwWzEtOV18MVxcZHwyWzAtOF0pKSkiLHJaPVJlZ0V4cChgXiR7ckV9JGApO2Z1bmN0aW9uIHJOKGUpe2xldCB0PSJbMC01XVxcZCI7ZS5wcmVjaXNpb24/dD1gJHt0fVxcLlxcZHske2UucHJlY2lzaW9ufX1gOm51bGw9PWUucHJlY2lzaW9uJiYodD1gJHt0fShcXC5cXGQrKT9gKTtsZXQgcj1lLnByZWNpc2lvbj8iKyI6Ij8iO3JldHVybmAoWzAxXVxcZHwyWzAtM10pOlswLTVdXFxkKDoke3R9KSR7cn1gfWZ1bmN0aW9uIHJUKGUpe2xldCB0PWAke3JFfVQke3JOKGUpfWAscj1bXTtyZXR1cm4gci5wdXNoKGUubG9jYWw/Ilo/IjoiWiIpLGUub2Zmc2V0JiZyLnB1c2goIihbKy1dXFxkezJ9Oj9cXGR7Mn0pIiksdD1gJHt0fSgke3Iuam9pbigifCIpfSlgLFJlZ0V4cChgXiR7dH0kYCl9Y2xhc3MgcnogZXh0ZW5kcyByZntfcGFyc2UoZSl7dmFyIHIsbixpLGE7bGV0IG87aWYodGhpcy5fZGVmLmNvZXJjZSYmKGUuZGF0YT1TdHJpbmcoZS5kYXRhKSksdGhpcy5fZ2V0VHlwZShlKSE9PXQxLnN0cmluZyl7bGV0IHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSk7cmV0dXJuIHJyKHQse2NvZGU6dDYuaW52YWxpZF90eXBlLGV4cGVjdGVkOnQxLnN0cmluZyxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxyaX1sZXQgcz1uZXcgcm47Zm9yKGxldCB1IG9mIHRoaXMuX2RlZi5jaGVja3MpaWYoIm1pbiI9PT11LmtpbmQpZS5kYXRhLmxlbmd0aDx1LnZhbHVlJiYocnIobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHtjb2RlOnQ2LnRvb19zbWFsbCxtaW5pbXVtOnUudmFsdWUsdHlwZToic3RyaW5nIixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoIm1heCI9PT11LmtpbmQpZS5kYXRhLmxlbmd0aD51LnZhbHVlJiYocnIobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHtjb2RlOnQ2LnRvb19iaWcsbWF4aW11bTp1LnZhbHVlLHR5cGU6InN0cmluZyIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKCJsZW5ndGgiPT09dS5raW5kKXtsZXQgdD1lLmRhdGEubGVuZ3RoPnUudmFsdWUscj1lLmRhdGEubGVuZ3RoPHUudmFsdWU7KHR8fHIpJiYobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHQ/cnIobyx7Y29kZTp0Ni50b29fYmlnLG1heGltdW06dS52YWx1ZSx0eXBlOiJzdHJpbmciLGluY2x1c2l2ZTohMCxleGFjdDohMCxtZXNzYWdlOnUubWVzc2FnZX0pOnImJnJyKG8se2NvZGU6dDYudG9vX3NtYWxsLG1pbmltdW06dS52YWx1ZSx0eXBlOiJzdHJpbmciLGluY2x1c2l2ZTohMCxleGFjdDohMCxtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSl9ZWxzZSBpZigiZW1haWwiPT09dS5raW5kKXIkLnRlc3QoZS5kYXRhKXx8KHJyKG89dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxvKSx7dmFsaWRhdGlvbjoiZW1haWwiLGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoImVtb2ppIj09PXUua2luZCl0fHwodD1SZWdFeHAoIl4oXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxwe0Vtb2ppX0NvbXBvbmVudH0pKyQiLCJ1IikpLHQudGVzdChlLmRhdGEpfHwocnIobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHt2YWxpZGF0aW9uOiJlbW9qaSIsY29kZTp0Ni5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk7ZWxzZSBpZigidXVpZCI9PT11LmtpbmQpcnkudGVzdChlLmRhdGEpfHwocnIobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHt2YWxpZGF0aW9uOiJ1dWlkIixjb2RlOnQ2LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKCJuYW5vaWQiPT09dS5raW5kKXJiLnRlc3QoZS5kYXRhKXx8KHJyKG89dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxvKSx7dmFsaWRhdGlvbjoibmFub2lkIixjb2RlOnQ2LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKCJjdWlkIj09PXUua2luZClyaC50ZXN0KGUuZGF0YSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246ImN1aWQiLGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoImN1aWQyIj09PXUua2luZClydi50ZXN0KGUuZGF0YSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246ImN1aWQyIixjb2RlOnQ2LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKTtlbHNlIGlmKCJ1bGlkIj09PXUua2luZClyZy50ZXN0KGUuZGF0YSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246InVsaWQiLGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpO2Vsc2UgaWYoInVybCI9PT11LmtpbmQpdHJ5e25ldyBVUkwoZS5kYXRhKX1jYXRjaHtycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246InVybCIsY29kZTp0Ni5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKX1lbHNlInJlZ2V4Ij09PXUua2luZD8odS5yZWdleC5sYXN0SW5kZXg9MCx1LnJlZ2V4LnRlc3QoZS5kYXRhKXx8KHJyKG89dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxvKSx7dmFsaWRhdGlvbjoicmVnZXgiLGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpKToidHJpbSI9PT11LmtpbmQ/ZS5kYXRhPWUuZGF0YS50cmltKCk6ImluY2x1ZGVzIj09PXUua2luZD9lLmRhdGEuaW5jbHVkZXModS52YWx1ZSx1LnBvc2l0aW9uKXx8KHJyKG89dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxvKSx7Y29kZTp0Ni5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOntpbmNsdWRlczp1LnZhbHVlLHBvc2l0aW9uOnUucG9zaXRpb259LG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKToidG9Mb3dlckNhc2UiPT09dS5raW5kP2UuZGF0YT1lLmRhdGEudG9Mb3dlckNhc2UoKToidG9VcHBlckNhc2UiPT09dS5raW5kP2UuZGF0YT1lLmRhdGEudG9VcHBlckNhc2UoKToic3RhcnRzV2l0aCI9PT11LmtpbmQ/ZS5kYXRhLnN0YXJ0c1dpdGgodS52YWx1ZSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse2NvZGU6dDYuaW52YWxpZF9zdHJpbmcsdmFsaWRhdGlvbjp7c3RhcnRzV2l0aDp1LnZhbHVlfSxtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk6ImVuZHNXaXRoIj09PXUua2luZD9lLmRhdGEuZW5kc1dpdGgodS52YWx1ZSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse2NvZGU6dDYuaW52YWxpZF9zdHJpbmcsdmFsaWRhdGlvbjp7ZW5kc1dpdGg6dS52YWx1ZX0sbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpOiJkYXRldGltZSI9PT11LmtpbmQ/clQodSkudGVzdChlLmRhdGEpfHwocnIobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHtjb2RlOnQ2LmludmFsaWRfc3RyaW5nLHZhbGlkYXRpb246ImRhdGV0aW1lIixtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk6ImRhdGUiPT09dS5raW5kP3JaLnRlc3QoZS5kYXRhKXx8KHJyKG89dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxvKSx7Y29kZTp0Ni5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOiJkYXRlIixtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk6InRpbWUiPT09dS5raW5kP1JlZ0V4cChgXiR7ck4odSl9JGApLnRlc3QoZS5kYXRhKXx8KHJyKG89dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSxvKSx7Y29kZTp0Ni5pbnZhbGlkX3N0cmluZyx2YWxpZGF0aW9uOiJ0aW1lIixtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk6ImR1cmF0aW9uIj09PXUua2luZD9yeC50ZXN0KGUuZGF0YSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246ImR1cmF0aW9uIixjb2RlOnQ2LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKToiaXAiPT09dS5raW5kPyhyPWUuZGF0YSwhKCgidjQiPT09KG49dS52ZXJzaW9uKXx8IW4pJiZyay50ZXN0KHIpfHwoInY2Ij09PW58fCFuKSYmckkudGVzdChyKSkmJjEmJihycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246ImlwIixjb2RlOnQ2LmludmFsaWRfc3RyaW5nLG1lc3NhZ2U6dS5tZXNzYWdlfSkscy5kaXJ0eSgpKSk6Imp3dCI9PT11LmtpbmQ/IWZ1bmN0aW9uKGUsdCl7aWYoIXJfLnRlc3QoZSkpcmV0dXJuITE7dHJ5e2xldFtyXT1lLnNwbGl0KCIuIik7aWYoIXIpcmV0dXJuITE7bGV0IG49ci5yZXBsYWNlKC8tL2csIisiKS5yZXBsYWNlKC9fL2csIi8iKS5wYWRFbmQoci5sZW5ndGgrKDQtci5sZW5ndGglNCklNCwiPSIpLGk9SlNPTi5wYXJzZShhdG9iKG4pKTtpZigib2JqZWN0IiE9dHlwZW9mIGl8fG51bGw9PT1pfHwidHlwImluIGkmJmk/LnR5cCE9PSJKV1QifHwhaS5hbGd8fHQmJmkuYWxnIT09dClyZXR1cm4hMTtyZXR1cm4hMH1jYXRjaHtyZXR1cm4hMX19KGUuZGF0YSx1LmFsZykmJihycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246Imp3dCIsY29kZTp0Ni5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk6ImNpZHIiPT09dS5raW5kPyhpPWUuZGF0YSwhKCgidjQiPT09KGE9dS52ZXJzaW9uKXx8IWEpJiZydy50ZXN0KGkpfHwoInY2Ij09PWF8fCFhKSYmclMudGVzdChpKSkmJjEmJihycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246ImNpZHIiLGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpKToiYmFzZTY0Ij09PXUua2luZD9yTy50ZXN0KGUuZGF0YSl8fChycihvPXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsbykse3ZhbGlkYXRpb246ImJhc2U2NCIsY29kZTp0Ni5pbnZhbGlkX3N0cmluZyxtZXNzYWdlOnUubWVzc2FnZX0pLHMuZGlydHkoKSk6ImJhc2U2NHVybCI9PT11LmtpbmQ/cmoudGVzdChlLmRhdGEpfHwocnIobz10aGlzLl9nZXRPclJldHVybkN0eChlLG8pLHt2YWxpZGF0aW9uOiJiYXNlNjR1cmwiLGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsbWVzc2FnZTp1Lm1lc3NhZ2V9KSxzLmRpcnR5KCkpOl8uYXNzZXJ0TmV2ZXIodSk7cmV0dXJue3N0YXR1czpzLnZhbHVlLHZhbHVlOmUuZGF0YX19X3JlZ2V4KGUsdCxyKXtyZXR1cm4gdGhpcy5yZWZpbmVtZW50KHQ9PmUudGVzdCh0KSx7dmFsaWRhdGlvbjp0LGNvZGU6dDYuaW52YWxpZF9zdHJpbmcsLi4uJC5lcnJUb09iaihyKX0pfV9hZGRDaGVjayhlKXtyZXR1cm4gbmV3IHJ6KHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLGVdfSl9ZW1haWwoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJlbWFpbCIsLi4uJC5lcnJUb09iaihlKX0pfXVybChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6InVybCIsLi4uJC5lcnJUb09iaihlKX0pfWVtb2ppKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiZW1vamkiLC4uLiQuZXJyVG9PYmooZSl9KX11dWlkKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoidXVpZCIsLi4uJC5lcnJUb09iaihlKX0pfW5hbm9pZChlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im5hbm9pZCIsLi4uJC5lcnJUb09iaihlKX0pfWN1aWQoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJjdWlkIiwuLi4kLmVyclRvT2JqKGUpfSl9Y3VpZDIoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJjdWlkMiIsLi4uJC5lcnJUb09iaihlKX0pfXVsaWQoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJ1bGlkIiwuLi4kLmVyclRvT2JqKGUpfSl9YmFzZTY0KGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiYmFzZTY0IiwuLi4kLmVyclRvT2JqKGUpfSl9YmFzZTY0dXJsKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiYmFzZTY0dXJsIiwuLi4kLmVyclRvT2JqKGUpfSl9and0KGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiand0IiwuLi4kLmVyclRvT2JqKGUpfSl9aXAoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJpcCIsLi4uJC5lcnJUb09iaihlKX0pfWNpZHIoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJjaWRyIiwuLi4kLmVyclRvT2JqKGUpfSl9ZGF0ZXRpbWUoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP3RoaXMuX2FkZENoZWNrKHtraW5kOiJkYXRldGltZSIscHJlY2lzaW9uOm51bGwsb2Zmc2V0OiExLGxvY2FsOiExLG1lc3NhZ2U6ZX0pOnRoaXMuX2FkZENoZWNrKHtraW5kOiJkYXRldGltZSIscHJlY2lzaW9uOnZvaWQgMD09PWU/LnByZWNpc2lvbj9udWxsOmU/LnByZWNpc2lvbixvZmZzZXQ6ZT8ub2Zmc2V0Pz8hMSxsb2NhbDplPy5sb2NhbD8/ITEsLi4uJC5lcnJUb09iaihlPy5tZXNzYWdlKX0pfWRhdGUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJkYXRlIixtZXNzYWdlOmV9KX10aW1lKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT90aGlzLl9hZGRDaGVjayh7a2luZDoidGltZSIscHJlY2lzaW9uOm51bGwsbWVzc2FnZTplfSk6dGhpcy5fYWRkQ2hlY2soe2tpbmQ6InRpbWUiLHByZWNpc2lvbjp2b2lkIDA9PT1lPy5wcmVjaXNpb24/bnVsbDplPy5wcmVjaXNpb24sLi4uJC5lcnJUb09iaihlPy5tZXNzYWdlKX0pfWR1cmF0aW9uKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiZHVyYXRpb24iLC4uLiQuZXJyVG9PYmooZSl9KX1yZWdleChlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoicmVnZXgiLHJlZ2V4OmUsLi4uJC5lcnJUb09iaih0KX0pfWluY2x1ZGVzKGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJpbmNsdWRlcyIsdmFsdWU6ZSxwb3NpdGlvbjp0Py5wb3NpdGlvbiwuLi4kLmVyclRvT2JqKHQ/Lm1lc3NhZ2UpfSl9c3RhcnRzV2l0aChlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoic3RhcnRzV2l0aCIsdmFsdWU6ZSwuLi4kLmVyclRvT2JqKHQpfSl9ZW5kc1dpdGgoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6ImVuZHNXaXRoIix2YWx1ZTplLC4uLiQuZXJyVG9PYmoodCl9KX1taW4oZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsdmFsdWU6ZSwuLi4kLmVyclRvT2JqKHQpfSl9bWF4KGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtYXgiLHZhbHVlOmUsLi4uJC5lcnJUb09iaih0KX0pfWxlbmd0aChlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibGVuZ3RoIix2YWx1ZTplLC4uLiQuZXJyVG9PYmoodCl9KX1ub25lbXB0eShlKXtyZXR1cm4gdGhpcy5taW4oMSwkLmVyclRvT2JqKGUpKX10cmltKCl7cmV0dXJuIG5ldyByeih7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDoidHJpbSJ9XX0pfXRvTG93ZXJDYXNlKCl7cmV0dXJuIG5ldyByeih7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyx7a2luZDoidG9Mb3dlckNhc2UifV19KX10b1VwcGVyQ2FzZSgpe3JldHVybiBuZXcgcnooey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3Mse2tpbmQ6InRvVXBwZXJDYXNlIn1dfSl9Z2V0IGlzRGF0ZXRpbWUoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT4iZGF0ZXRpbWUiPT09ZS5raW5kKX1nZXQgaXNEYXRlKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+ImRhdGUiPT09ZS5raW5kKX1nZXQgaXNUaW1lKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+InRpbWUiPT09ZS5raW5kKX1nZXQgaXNEdXJhdGlvbigpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PiJkdXJhdGlvbiI9PT1lLmtpbmQpfWdldCBpc0VtYWlsKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+ImVtYWlsIj09PWUua2luZCl9Z2V0IGlzVVJMKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+InVybCI9PT1lLmtpbmQpfWdldCBpc0Vtb2ppKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+ImVtb2ppIj09PWUua2luZCl9Z2V0IGlzVVVJRCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PiJ1dWlkIj09PWUua2luZCl9Z2V0IGlzTkFOT0lEKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+Im5hbm9pZCI9PT1lLmtpbmQpfWdldCBpc0NVSUQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT4iY3VpZCI9PT1lLmtpbmQpfWdldCBpc0NVSUQyKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+ImN1aWQyIj09PWUua2luZCl9Z2V0IGlzVUxJRCgpe3JldHVybiEhdGhpcy5fZGVmLmNoZWNrcy5maW5kKGU9PiJ1bGlkIj09PWUua2luZCl9Z2V0IGlzSVAoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT4iaXAiPT09ZS5raW5kKX1nZXQgaXNDSURSKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+ImNpZHIiPT09ZS5raW5kKX1nZXQgaXNCYXNlNjQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT4iYmFzZTY0Ij09PWUua2luZCl9Z2V0IGlzQmFzZTY0dXJsKCl7cmV0dXJuISF0aGlzLl9kZWYuY2hlY2tzLmZpbmQoZT0+ImJhc2U2NHVybCI9PT1lLmtpbmQpfWdldCBtaW5MZW5ndGgoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtaW4iPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU+ZSkmJihlPXQudmFsdWUpO3JldHVybiBlfWdldCBtYXhMZW5ndGgoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtYXgiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU8ZSkmJihlPXQudmFsdWUpO3JldHVybiBlfX1yei5jcmVhdGU9ZT0+bmV3IHJ6KHtjaGVja3M6W10sdHlwZU5hbWU6ay5ab2RTdHJpbmcsY29lcmNlOmU/LmNvZXJjZT8/ITEsLi4ucm0oZSl9KTtjbGFzcyByUCBleHRlbmRzIHJme2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm1pbj10aGlzLmd0ZSx0aGlzLm1heD10aGlzLmx0ZSx0aGlzLnN0ZXA9dGhpcy5tdWx0aXBsZU9mfV9wYXJzZShlKXtsZXQgdDtpZih0aGlzLl9kZWYuY29lcmNlJiYoZS5kYXRhPU51bWJlcihlLmRhdGEpKSx0aGlzLl9nZXRUeXBlKGUpIT09dDEubnVtYmVyKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEubnVtYmVyLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpfWxldCByPW5ldyBybjtmb3IobGV0IG4gb2YgdGhpcy5fZGVmLmNoZWNrcykiaW50Ij09PW4ua2luZD9fLmlzSW50ZWdlcihlLmRhdGEpfHwocnIodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLHtjb2RlOnQ2LmludmFsaWRfdHlwZSxleHBlY3RlZDoiaW50ZWdlciIscmVjZWl2ZWQ6ImZsb2F0IixtZXNzYWdlOm4ubWVzc2FnZX0pLHIuZGlydHkoKSk6Im1pbiI9PT1uLmtpbmQ/KG4uaW5jbHVzaXZlP2UuZGF0YTxuLnZhbHVlOmUuZGF0YTw9bi52YWx1ZSkmJihycih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCkse2NvZGU6dDYudG9vX3NtYWxsLG1pbmltdW06bi52YWx1ZSx0eXBlOiJudW1iZXIiLGluY2x1c2l2ZTpuLmluY2x1c2l2ZSxleGFjdDohMSxtZXNzYWdlOm4ubWVzc2FnZX0pLHIuZGlydHkoKSk6Im1heCI9PT1uLmtpbmQ/KG4uaW5jbHVzaXZlP2UuZGF0YT5uLnZhbHVlOmUuZGF0YT49bi52YWx1ZSkmJihycih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCkse2NvZGU6dDYudG9vX2JpZyxtYXhpbXVtOm4udmFsdWUsdHlwZToibnVtYmVyIixpbmNsdXNpdmU6bi5pbmNsdXNpdmUsZXhhY3Q6ITEsbWVzc2FnZTpuLm1lc3NhZ2V9KSxyLmRpcnR5KCkpOiJtdWx0aXBsZU9mIj09PW4ua2luZD8wIT09ZnVuY3Rpb24oZSx0KXtsZXQgcj0oZS50b1N0cmluZygpLnNwbGl0KCIuIilbMV18fCIiKS5sZW5ndGgsbj0odC50b1N0cmluZygpLnNwbGl0KCIuIilbMV18fCIiKS5sZW5ndGgsaT1yPm4/cjpuO3JldHVybiBOdW1iZXIucGFyc2VJbnQoZS50b0ZpeGVkKGkpLnJlcGxhY2UoIi4iLCIiKSklTnVtYmVyLnBhcnNlSW50KHQudG9GaXhlZChpKS5yZXBsYWNlKCIuIiwiIikpLzEwKippfShlLmRhdGEsbi52YWx1ZSkmJihycih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCkse2NvZGU6dDYubm90X211bHRpcGxlX29mLG11bHRpcGxlT2Y6bi52YWx1ZSxtZXNzYWdlOm4ubWVzc2FnZX0pLHIuZGlydHkoKSk6ImZpbml0ZSI9PT1uLmtpbmQ/TnVtYmVyLmlzRmluaXRlKGUuZGF0YSl8fChycih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCkse2NvZGU6dDYubm90X2Zpbml0ZSxtZXNzYWdlOm4ubWVzc2FnZX0pLHIuZGlydHkoKSk6Xy5hc3NlcnROZXZlcihuKTtyZXR1cm57c3RhdHVzOnIudmFsdWUsdmFsdWU6ZS5kYXRhfX1ndGUoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdCgibWluIixlLCEwLCQudG9TdHJpbmcodCkpfWd0KGUsdCl7cmV0dXJuIHRoaXMuc2V0TGltaXQoIm1pbiIsZSwhMSwkLnRvU3RyaW5nKHQpKX1sdGUoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdCgibWF4IixlLCEwLCQudG9TdHJpbmcodCkpfWx0KGUsdCl7cmV0dXJuIHRoaXMuc2V0TGltaXQoIm1heCIsZSwhMSwkLnRvU3RyaW5nKHQpKX1zZXRMaW1pdChlLHQscixuKXtyZXR1cm4gbmV3IHJQKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLHtraW5kOmUsdmFsdWU6dCxpbmNsdXNpdmU6cixtZXNzYWdlOiQudG9TdHJpbmcobil9XX0pfV9hZGRDaGVjayhlKXtyZXR1cm4gbmV3IHJQKHsuLi50aGlzLl9kZWYsY2hlY2tzOlsuLi50aGlzLl9kZWYuY2hlY2tzLGVdfSl9aW50KGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoiaW50IixtZXNzYWdlOiQudG9TdHJpbmcoZSl9KX1wb3NpdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsdmFsdWU6MCxpbmNsdXNpdmU6ITEsbWVzc2FnZTokLnRvU3RyaW5nKGUpfSl9bmVnYXRpdmUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtYXgiLHZhbHVlOjAsaW5jbHVzaXZlOiExLG1lc3NhZ2U6JC50b1N0cmluZyhlKX0pfW5vbnBvc2l0aXZlKGUpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWF4Iix2YWx1ZTowLGluY2x1c2l2ZTohMCxtZXNzYWdlOiQudG9TdHJpbmcoZSl9KX1ub25uZWdhdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsdmFsdWU6MCxpbmNsdXNpdmU6ITAsbWVzc2FnZTokLnRvU3RyaW5nKGUpfSl9bXVsdGlwbGVPZihlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibXVsdGlwbGVPZiIsdmFsdWU6ZSxtZXNzYWdlOiQudG9TdHJpbmcodCl9KX1maW5pdGUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJmaW5pdGUiLG1lc3NhZ2U6JC50b1N0cmluZyhlKX0pfXNhZmUoZSl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtaW4iLGluY2x1c2l2ZTohMCx2YWx1ZTpOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixtZXNzYWdlOiQudG9TdHJpbmcoZSl9KS5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsaW5jbHVzaXZlOiEwLHZhbHVlOk51bWJlci5NQVhfU0FGRV9JTlRFR0VSLG1lc3NhZ2U6JC50b1N0cmluZyhlKX0pfWdldCBtaW5WYWx1ZSgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpIm1pbiI9PT10LmtpbmQmJihudWxsPT09ZXx8dC52YWx1ZT5lKSYmKGU9dC52YWx1ZSk7cmV0dXJuIGV9Z2V0IG1heFZhbHVlKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcykibWF4Ij09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPGUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX1nZXQgaXNJbnQoKXtyZXR1cm4hIXRoaXMuX2RlZi5jaGVja3MuZmluZChlPT4iaW50Ij09PWUua2luZHx8Im11bHRpcGxlT2YiPT09ZS5raW5kJiZfLmlzSW50ZWdlcihlLnZhbHVlKSl9Z2V0IGlzRmluaXRlKCl7bGV0IGU9bnVsbCx0PW51bGw7Zm9yKGxldCByIG9mIHRoaXMuX2RlZi5jaGVja3MpaWYoImZpbml0ZSI9PT1yLmtpbmR8fCJpbnQiPT09ci5raW5kfHwibXVsdGlwbGVPZiI9PT1yLmtpbmQpcmV0dXJuITA7ZWxzZSJtaW4iPT09ci5raW5kPyhudWxsPT09dHx8ci52YWx1ZT50KSYmKHQ9ci52YWx1ZSk6Im1heCI9PT1yLmtpbmQmJihudWxsPT09ZXx8ci52YWx1ZTxlKSYmKGU9ci52YWx1ZSk7cmV0dXJuIE51bWJlci5pc0Zpbml0ZSh0KSYmTnVtYmVyLmlzRmluaXRlKGUpfX1yUC5jcmVhdGU9ZT0+bmV3IHJQKHtjaGVja3M6W10sdHlwZU5hbWU6ay5ab2ROdW1iZXIsY29lcmNlOmU/LmNvZXJjZXx8ITEsLi4ucm0oZSl9KTtjbGFzcyByQSBleHRlbmRzIHJme2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLm1pbj10aGlzLmd0ZSx0aGlzLm1heD10aGlzLmx0ZX1fcGFyc2UoZSl7bGV0IHQ7aWYodGhpcy5fZGVmLmNvZXJjZSl0cnl7ZS5kYXRhPUJpZ0ludChlLmRhdGEpfWNhdGNoe3JldHVybiB0aGlzLl9nZXRJbnZhbGlkSW5wdXQoZSl9aWYodGhpcy5fZ2V0VHlwZShlKSE9PXQxLmJpZ2ludClyZXR1cm4gdGhpcy5fZ2V0SW52YWxpZElucHV0KGUpO2xldCByPW5ldyBybjtmb3IobGV0IG4gb2YgdGhpcy5fZGVmLmNoZWNrcykibWluIj09PW4ua2luZD8obi5pbmNsdXNpdmU/ZS5kYXRhPG4udmFsdWU6ZS5kYXRhPD1uLnZhbHVlKSYmKHJyKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSx7Y29kZTp0Ni50b29fc21hbGwsdHlwZToiYmlnaW50IixtaW5pbXVtOm4udmFsdWUsaW5jbHVzaXZlOm4uaW5jbHVzaXZlLG1lc3NhZ2U6bi5tZXNzYWdlfSksci5kaXJ0eSgpKToibWF4Ij09PW4ua2luZD8obi5pbmNsdXNpdmU/ZS5kYXRhPm4udmFsdWU6ZS5kYXRhPj1uLnZhbHVlKSYmKHJyKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSx7Y29kZTp0Ni50b29fYmlnLHR5cGU6ImJpZ2ludCIsbWF4aW11bTpuLnZhbHVlLGluY2x1c2l2ZTpuLmluY2x1c2l2ZSxtZXNzYWdlOm4ubWVzc2FnZX0pLHIuZGlydHkoKSk6Im11bHRpcGxlT2YiPT09bi5raW5kP2UuZGF0YSVuLnZhbHVlIT09QmlnSW50KDApJiYocnIodD10aGlzLl9nZXRPclJldHVybkN0eChlLHQpLHtjb2RlOnQ2Lm5vdF9tdWx0aXBsZV9vZixtdWx0aXBsZU9mOm4udmFsdWUsbWVzc2FnZTpuLm1lc3NhZ2V9KSxyLmRpcnR5KCkpOl8uYXNzZXJ0TmV2ZXIobik7cmV0dXJue3N0YXR1czpyLnZhbHVlLHZhbHVlOmUuZGF0YX19X2dldEludmFsaWRJbnB1dChlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEuYmlnaW50LHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpfWd0ZShlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KCJtaW4iLGUsITAsJC50b1N0cmluZyh0KSl9Z3QoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdCgibWluIixlLCExLCQudG9TdHJpbmcodCkpfWx0ZShlLHQpe3JldHVybiB0aGlzLnNldExpbWl0KCJtYXgiLGUsITAsJC50b1N0cmluZyh0KSl9bHQoZSx0KXtyZXR1cm4gdGhpcy5zZXRMaW1pdCgibWF4IixlLCExLCQudG9TdHJpbmcodCkpfXNldExpbWl0KGUsdCxyLG4pe3JldHVybiBuZXcgckEoey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3Mse2tpbmQ6ZSx2YWx1ZTp0LGluY2x1c2l2ZTpyLG1lc3NhZ2U6JC50b1N0cmluZyhuKX1dfSl9X2FkZENoZWNrKGUpe3JldHVybiBuZXcgckEoey4uLnRoaXMuX2RlZixjaGVja3M6Wy4uLnRoaXMuX2RlZi5jaGVja3MsZV19KX1wb3NpdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsdmFsdWU6QmlnSW50KDApLGluY2x1c2l2ZTohMSxtZXNzYWdlOiQudG9TdHJpbmcoZSl9KX1uZWdhdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsdmFsdWU6QmlnSW50KDApLGluY2x1c2l2ZTohMSxtZXNzYWdlOiQudG9TdHJpbmcoZSl9KX1ub25wb3NpdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsdmFsdWU6QmlnSW50KDApLGluY2x1c2l2ZTohMCxtZXNzYWdlOiQudG9TdHJpbmcoZSl9KX1ub25uZWdhdGl2ZShlKXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1pbiIsdmFsdWU6QmlnSW50KDApLGluY2x1c2l2ZTohMCxtZXNzYWdlOiQudG9TdHJpbmcoZSl9KX1tdWx0aXBsZU9mKGUsdCl7cmV0dXJuIHRoaXMuX2FkZENoZWNrKHtraW5kOiJtdWx0aXBsZU9mIix2YWx1ZTplLG1lc3NhZ2U6JC50b1N0cmluZyh0KX0pfWdldCBtaW5WYWx1ZSgpe2xldCBlPW51bGw7Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi5jaGVja3MpIm1pbiI9PT10LmtpbmQmJihudWxsPT09ZXx8dC52YWx1ZT5lKSYmKGU9dC52YWx1ZSk7cmV0dXJuIGV9Z2V0IG1heFZhbHVlKCl7bGV0IGU9bnVsbDtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLmNoZWNrcykibWF4Ij09PXQua2luZCYmKG51bGw9PT1lfHx0LnZhbHVlPGUpJiYoZT10LnZhbHVlKTtyZXR1cm4gZX19ckEuY3JlYXRlPWU9Pm5ldyByQSh7Y2hlY2tzOltdLHR5cGVOYW1lOmsuWm9kQmlnSW50LGNvZXJjZTplPy5jb2VyY2U/PyExLC4uLnJtKGUpfSk7Y2xhc3MgclUgZXh0ZW5kcyByZntfcGFyc2UoZSl7aWYodGhpcy5fZGVmLmNvZXJjZSYmKGUuZGF0YT0hIWUuZGF0YSksdGhpcy5fZ2V0VHlwZShlKSE9PXQxLmJvb2xlYW4pe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybiBycih0LHtjb2RlOnQ2LmludmFsaWRfdHlwZSxleHBlY3RlZDp0MS5ib29sZWFuLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpfXJldHVybiBybyhlLmRhdGEpfX1yVS5jcmVhdGU9ZT0+bmV3IHJVKHt0eXBlTmFtZTprLlpvZEJvb2xlYW4sY29lcmNlOmU/LmNvZXJjZXx8ITEsLi4ucm0oZSl9KTtjbGFzcyByQyBleHRlbmRzIHJme19wYXJzZShlKXtsZXQgdDtpZih0aGlzLl9kZWYuY29lcmNlJiYoZS5kYXRhPW5ldyBEYXRlKGUuZGF0YSkpLHRoaXMuX2dldFR5cGUoZSkhPT10MS5kYXRlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEuZGF0ZSxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxyaX1pZihOdW1iZXIuaXNOYU4oZS5kYXRhLmdldFRpbWUoKSkpcmV0dXJuIHJyKHRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpLHtjb2RlOnQ2LmludmFsaWRfZGF0ZX0pLHJpO2xldCByPW5ldyBybjtmb3IobGV0IG4gb2YgdGhpcy5fZGVmLmNoZWNrcykibWluIj09PW4ua2luZD9lLmRhdGEuZ2V0VGltZSgpPG4udmFsdWUmJihycih0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUsdCkse2NvZGU6dDYudG9vX3NtYWxsLG1lc3NhZ2U6bi5tZXNzYWdlLGluY2x1c2l2ZTohMCxleGFjdDohMSxtaW5pbXVtOm4udmFsdWUsdHlwZToiZGF0ZSJ9KSxyLmRpcnR5KCkpOiJtYXgiPT09bi5raW5kP2UuZGF0YS5nZXRUaW1lKCk+bi52YWx1ZSYmKHJyKHQ9dGhpcy5fZ2V0T3JSZXR1cm5DdHgoZSx0KSx7Y29kZTp0Ni50b29fYmlnLG1lc3NhZ2U6bi5tZXNzYWdlLGluY2x1c2l2ZTohMCxleGFjdDohMSxtYXhpbXVtOm4udmFsdWUsdHlwZToiZGF0ZSJ9KSxyLmRpcnR5KCkpOl8uYXNzZXJ0TmV2ZXIobik7cmV0dXJue3N0YXR1czpyLnZhbHVlLHZhbHVlOm5ldyBEYXRlKGUuZGF0YS5nZXRUaW1lKCkpfX1fYWRkQ2hlY2soZSl7cmV0dXJuIG5ldyByQyh7Li4udGhpcy5fZGVmLGNoZWNrczpbLi4udGhpcy5fZGVmLmNoZWNrcyxlXX0pfW1pbihlLHQpe3JldHVybiB0aGlzLl9hZGRDaGVjayh7a2luZDoibWluIix2YWx1ZTplLmdldFRpbWUoKSxtZXNzYWdlOiQudG9TdHJpbmcodCl9KX1tYXgoZSx0KXtyZXR1cm4gdGhpcy5fYWRkQ2hlY2soe2tpbmQ6Im1heCIsdmFsdWU6ZS5nZXRUaW1lKCksbWVzc2FnZTokLnRvU3RyaW5nKHQpfSl9Z2V0IG1pbkRhdGUoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtaW4iPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU+ZSkmJihlPXQudmFsdWUpO3JldHVybiBudWxsIT1lP25ldyBEYXRlKGUpOm51bGx9Z2V0IG1heERhdGUoKXtsZXQgZT1udWxsO2ZvcihsZXQgdCBvZiB0aGlzLl9kZWYuY2hlY2tzKSJtYXgiPT09dC5raW5kJiYobnVsbD09PWV8fHQudmFsdWU8ZSkmJihlPXQudmFsdWUpO3JldHVybiBudWxsIT1lP25ldyBEYXRlKGUpOm51bGx9fXJDLmNyZWF0ZT1lPT5uZXcgckMoe2NoZWNrczpbXSxjb2VyY2U6ZT8uY29lcmNlfHwhMSx0eXBlTmFtZTprLlpvZERhdGUsLi4ucm0oZSl9KTtjbGFzcyByRCBleHRlbmRzIHJme19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dDEuc3ltYm9sKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEuc3ltYm9sLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpfXJldHVybiBybyhlLmRhdGEpfX1yRC5jcmVhdGU9ZT0+bmV3IHJEKHt0eXBlTmFtZTprLlpvZFN5bWJvbCwuLi5ybShlKX0pO2NsYXNzIHJSIGV4dGVuZHMgcmZ7X3BhcnNlKGUpe2lmKHRoaXMuX2dldFR5cGUoZSkhPT10MS51bmRlZmluZWQpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybiBycih0LHtjb2RlOnQ2LmludmFsaWRfdHlwZSxleHBlY3RlZDp0MS51bmRlZmluZWQscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSkscml9cmV0dXJuIHJvKGUuZGF0YSl9fXJSLmNyZWF0ZT1lPT5uZXcgclIoe3R5cGVOYW1lOmsuWm9kVW5kZWZpbmVkLC4uLnJtKGUpfSk7Y2xhc3Mgck0gZXh0ZW5kcyByZntfcGFyc2UoZSl7aWYodGhpcy5fZ2V0VHlwZShlKSE9PXQxLm51bGwpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybiBycih0LHtjb2RlOnQ2LmludmFsaWRfdHlwZSxleHBlY3RlZDp0MS5udWxsLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpfXJldHVybiBybyhlLmRhdGEpfX1yTS5jcmVhdGU9ZT0+bmV3IHJNKHt0eXBlTmFtZTprLlpvZE51bGwsLi4ucm0oZSl9KTtjbGFzcyByTCBleHRlbmRzIHJme2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9hbnk9ITB9X3BhcnNlKGUpe3JldHVybiBybyhlLmRhdGEpfX1yTC5jcmVhdGU9ZT0+bmV3IHJMKHt0eXBlTmFtZTprLlpvZEFueSwuLi5ybShlKX0pO2NsYXNzIHJGIGV4dGVuZHMgcmZ7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMuX3Vua25vd249ITB9X3BhcnNlKGUpe3JldHVybiBybyhlLmRhdGEpfX1yRi5jcmVhdGU9ZT0+bmV3IHJGKHt0eXBlTmFtZTprLlpvZFVua25vd24sLi4ucm0oZSl9KTtjbGFzcyByViBleHRlbmRzIHJme19wYXJzZShlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEubmV2ZXIscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSkscml9fXJWLmNyZWF0ZT1lPT5uZXcgclYoe3R5cGVOYW1lOmsuWm9kTmV2ZXIsLi4ucm0oZSl9KTtjbGFzcyByQiBleHRlbmRzIHJme19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dDEudW5kZWZpbmVkKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEudm9pZCxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxyaX1yZXR1cm4gcm8oZS5kYXRhKX19ckIuY3JlYXRlPWU9Pm5ldyByQih7dHlwZU5hbWU6ay5ab2RWb2lkLC4uLnJtKGUpfSk7Y2xhc3MgckogZXh0ZW5kcyByZntfcGFyc2UoZSl7bGV0e2N0eDp0LHN0YXR1czpyfT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSksbj10aGlzLl9kZWY7aWYodC5wYXJzZWRUeXBlIT09dDEuYXJyYXkpcmV0dXJuIHJyKHQse2NvZGU6dDYuaW52YWxpZF90eXBlLGV4cGVjdGVkOnQxLmFycmF5LHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpO2lmKG51bGwhPT1uLmV4YWN0TGVuZ3RoKXtsZXQgZT10LmRhdGEubGVuZ3RoPm4uZXhhY3RMZW5ndGgudmFsdWUsaT10LmRhdGEubGVuZ3RoPG4uZXhhY3RMZW5ndGgudmFsdWU7KGV8fGkpJiYocnIodCx7Y29kZTplP3Q2LnRvb19iaWc6dDYudG9vX3NtYWxsLG1pbmltdW06aT9uLmV4YWN0TGVuZ3RoLnZhbHVlOnZvaWQgMCxtYXhpbXVtOmU/bi5leGFjdExlbmd0aC52YWx1ZTp2b2lkIDAsdHlwZToiYXJyYXkiLGluY2x1c2l2ZTohMCxleGFjdDohMCxtZXNzYWdlOm4uZXhhY3RMZW5ndGgubWVzc2FnZX0pLHIuZGlydHkoKSl9aWYobnVsbCE9PW4ubWluTGVuZ3RoJiZ0LmRhdGEubGVuZ3RoPG4ubWluTGVuZ3RoLnZhbHVlJiYocnIodCx7Y29kZTp0Ni50b29fc21hbGwsbWluaW11bTpuLm1pbkxlbmd0aC52YWx1ZSx0eXBlOiJhcnJheSIsaW5jbHVzaXZlOiEwLGV4YWN0OiExLG1lc3NhZ2U6bi5taW5MZW5ndGgubWVzc2FnZX0pLHIuZGlydHkoKSksbnVsbCE9PW4ubWF4TGVuZ3RoJiZ0LmRhdGEubGVuZ3RoPm4ubWF4TGVuZ3RoLnZhbHVlJiYocnIodCx7Y29kZTp0Ni50b29fYmlnLG1heGltdW06bi5tYXhMZW5ndGgudmFsdWUsdHlwZToiYXJyYXkiLGluY2x1c2l2ZTohMCxleGFjdDohMSxtZXNzYWdlOm4ubWF4TGVuZ3RoLm1lc3NhZ2V9KSxyLmRpcnR5KCkpLHQuY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLmFsbChbLi4udC5kYXRhXS5tYXAoKGUscik9Pm4udHlwZS5fcGFyc2VBc3luYyhuZXcgcmModCxlLHQucGF0aCxyKSkpKS50aGVuKGU9PnJuLm1lcmdlQXJyYXkocixlKSk7bGV0IGk9Wy4uLnQuZGF0YV0ubWFwKChlLHIpPT5uLnR5cGUuX3BhcnNlU3luYyhuZXcgcmModCxlLHQucGF0aCxyKSkpO3JldHVybiBybi5tZXJnZUFycmF5KHIsaSl9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZGVmLnR5cGV9bWluKGUsdCl7cmV0dXJuIG5ldyBySih7Li4udGhpcy5fZGVmLG1pbkxlbmd0aDp7dmFsdWU6ZSxtZXNzYWdlOiQudG9TdHJpbmcodCl9fSl9bWF4KGUsdCl7cmV0dXJuIG5ldyBySih7Li4udGhpcy5fZGVmLG1heExlbmd0aDp7dmFsdWU6ZSxtZXNzYWdlOiQudG9TdHJpbmcodCl9fSl9bGVuZ3RoKGUsdCl7cmV0dXJuIG5ldyBySih7Li4udGhpcy5fZGVmLGV4YWN0TGVuZ3RoOnt2YWx1ZTplLG1lc3NhZ2U6JC50b1N0cmluZyh0KX19KX1ub25lbXB0eShlKXtyZXR1cm4gdGhpcy5taW4oMSxlKX19ckouY3JlYXRlPShlLHQpPT5uZXcgckooe3R5cGU6ZSxtaW5MZW5ndGg6bnVsbCxtYXhMZW5ndGg6bnVsbCxleGFjdExlbmd0aDpudWxsLHR5cGVOYW1lOmsuWm9kQXJyYXksLi4ucm0odCl9KTtjbGFzcyByVyBleHRlbmRzIHJme2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9jYWNoZWQ9bnVsbCx0aGlzLm5vbnN0cmljdD10aGlzLnBhc3N0aHJvdWdoLHRoaXMuYXVnbWVudD10aGlzLmV4dGVuZH1fZ2V0Q2FjaGVkKCl7aWYobnVsbCE9PXRoaXMuX2NhY2hlZClyZXR1cm4gdGhpcy5fY2FjaGVkO2xldCBlPXRoaXMuX2RlZi5zaGFwZSgpLHQ9Xy5vYmplY3RLZXlzKGUpO3JldHVybiB0aGlzLl9jYWNoZWQ9e3NoYXBlOmUsa2V5czp0fSx0aGlzLl9jYWNoZWR9X3BhcnNlKGUpe2lmKHRoaXMuX2dldFR5cGUoZSkhPT10MS5vYmplY3Qpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpO3JldHVybiBycih0LHtjb2RlOnQ2LmludmFsaWRfdHlwZSxleHBlY3RlZDp0MS5vYmplY3QscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSkscml9bGV0e3N0YXR1czp0LGN0eDpyfT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSkse3NoYXBlOm4sa2V5czppfT10aGlzLl9nZXRDYWNoZWQoKSxhPVtdO2lmKCEodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgclYmJiJzdHJpcCI9PT10aGlzLl9kZWYudW5rbm93bktleXMpKWZvcihsZXQgZSBpbiByLmRhdGEpaS5pbmNsdWRlcyhlKXx8YS5wdXNoKGUpO2xldCBvPVtdO2ZvcihsZXQgZSBvZiBpKXtsZXQgdD1uW2VdLGk9ci5kYXRhW2VdO28ucHVzaCh7a2V5OntzdGF0dXM6InZhbGlkIix2YWx1ZTplfSx2YWx1ZTp0Ll9wYXJzZShuZXcgcmMocixpLHIucGF0aCxlKSksYWx3YXlzU2V0OmUgaW4gci5kYXRhfSl9aWYodGhpcy5fZGVmLmNhdGNoYWxsIGluc3RhbmNlb2YgclYpe2xldCBlPXRoaXMuX2RlZi51bmtub3duS2V5cztpZigicGFzc3Rocm91Z2giPT09ZSlmb3IobGV0IGUgb2YgYSlvLnB1c2goe2tleTp7c3RhdHVzOiJ2YWxpZCIsdmFsdWU6ZX0sdmFsdWU6e3N0YXR1czoidmFsaWQiLHZhbHVlOnIuZGF0YVtlXX19KTtlbHNlIGlmKCJzdHJpY3QiPT09ZSlhLmxlbmd0aD4wJiYocnIocix7Y29kZTp0Ni51bnJlY29nbml6ZWRfa2V5cyxrZXlzOmF9KSx0LmRpcnR5KCkpO2Vsc2UgaWYoInN0cmlwIj09PWUpO2Vsc2UgdGhyb3cgRXJyb3IoIkludGVybmFsIFpvZE9iamVjdCBlcnJvcjogaW52YWxpZCB1bmtub3duS2V5cyB2YWx1ZS4iKX1lbHNle2xldCBlPXRoaXMuX2RlZi5jYXRjaGFsbDtmb3IobGV0IHQgb2YgYSl7bGV0IG49ci5kYXRhW3RdO28ucHVzaCh7a2V5OntzdGF0dXM6InZhbGlkIix2YWx1ZTp0fSx2YWx1ZTplLl9wYXJzZShuZXcgcmMocixuLHIucGF0aCx0KSksYWx3YXlzU2V0OnQgaW4gci5kYXRhfSl9fXJldHVybiByLmNvbW1vbi5hc3luYz9Qcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9PntsZXQgZT1bXTtmb3IobGV0IHQgb2Ygbyl7bGV0IHI9YXdhaXQgdC5rZXksbj1hd2FpdCB0LnZhbHVlO2UucHVzaCh7a2V5OnIsdmFsdWU6bixhbHdheXNTZXQ6dC5hbHdheXNTZXR9KX1yZXR1cm4gZX0pLnRoZW4oZT0+cm4ubWVyZ2VPYmplY3RTeW5jKHQsZSkpOnJuLm1lcmdlT2JqZWN0U3luYyh0LG8pfWdldCBzaGFwZSgpe3JldHVybiB0aGlzLl9kZWYuc2hhcGUoKX1zdHJpY3QoZSl7cmV0dXJuICQuZXJyVG9PYmosbmV3IHJXKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6InN0cmljdCIsLi4udm9pZCAwIT09ZT97ZXJyb3JNYXA6KHQscik9PntsZXQgbj10aGlzLl9kZWYuZXJyb3JNYXA/Lih0LHIpLm1lc3NhZ2U/P3IuZGVmYXVsdEVycm9yO3JldHVybiJ1bnJlY29nbml6ZWRfa2V5cyI9PT10LmNvZGU/e21lc3NhZ2U6JC5lcnJUb09iaihlKS5tZXNzYWdlPz9ufTp7bWVzc2FnZTpufX19Ont9fSl9c3RyaXAoKXtyZXR1cm4gbmV3IHJXKHsuLi50aGlzLl9kZWYsdW5rbm93bktleXM6InN0cmlwIn0pfXBhc3N0aHJvdWdoKCl7cmV0dXJuIG5ldyByVyh7Li4udGhpcy5fZGVmLHVua25vd25LZXlzOiJwYXNzdGhyb3VnaCJ9KX1leHRlbmQoZSl7cmV0dXJuIG5ldyByVyh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT4oey4uLnRoaXMuX2RlZi5zaGFwZSgpLC4uLmV9KX0pfW1lcmdlKGUpe3JldHVybiBuZXcgclcoe3Vua25vd25LZXlzOmUuX2RlZi51bmtub3duS2V5cyxjYXRjaGFsbDplLl9kZWYuY2F0Y2hhbGwsc2hhcGU6KCk9Pih7Li4udGhpcy5fZGVmLnNoYXBlKCksLi4uZS5fZGVmLnNoYXBlKCl9KSx0eXBlTmFtZTprLlpvZE9iamVjdH0pfXNldEtleShlLHQpe3JldHVybiB0aGlzLmF1Z21lbnQoe1tlXTp0fSl9Y2F0Y2hhbGwoZSl7cmV0dXJuIG5ldyByVyh7Li4udGhpcy5fZGVmLGNhdGNoYWxsOmV9KX1waWNrKGUpe2xldCB0PXt9O2ZvcihsZXQgciBvZiBfLm9iamVjdEtleXMoZSkpZVtyXSYmdGhpcy5zaGFwZVtyXSYmKHRbcl09dGhpcy5zaGFwZVtyXSk7cmV0dXJuIG5ldyByVyh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT50fSl9b21pdChlKXtsZXQgdD17fTtmb3IobGV0IHIgb2YgXy5vYmplY3RLZXlzKHRoaXMuc2hhcGUpKWVbcl18fCh0W3JdPXRoaXMuc2hhcGVbcl0pO3JldHVybiBuZXcgclcoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+dH0pfWRlZXBQYXJ0aWFsKCl7cmV0dXJuIGZ1bmN0aW9uIGUodCl7aWYodCBpbnN0YW5jZW9mIHJXKXtsZXQgcj17fTtmb3IobGV0IG4gaW4gdC5zaGFwZSl7bGV0IGk9dC5zaGFwZVtuXTtyW25dPXI4LmNyZWF0ZShlKGkpKX1yZXR1cm4gbmV3IHJXKHsuLi50Ll9kZWYsc2hhcGU6KCk9PnJ9KX1pZih0IGluc3RhbmNlb2YgckopcmV0dXJuIG5ldyBySih7Li4udC5fZGVmLHR5cGU6ZSh0LmVsZW1lbnQpfSk7aWYodCBpbnN0YW5jZW9mIHI4KXJldHVybiByOC5jcmVhdGUoZSh0LnVud3JhcCgpKSk7aWYodCBpbnN0YW5jZW9mIG5lKXJldHVybiBuZS5jcmVhdGUoZSh0LnVud3JhcCgpKSk7aWYodCBpbnN0YW5jZW9mIHJIKXJldHVybiBySC5jcmVhdGUodC5pdGVtcy5tYXAodD0+ZSh0KSkpO2Vsc2UgcmV0dXJuIHR9KHRoaXMpfXBhcnRpYWwoZSl7bGV0IHQ9e307Zm9yKGxldCByIG9mIF8ub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSl7bGV0IG49dGhpcy5zaGFwZVtyXTtlJiYhZVtyXT90W3JdPW46dFtyXT1uLm9wdGlvbmFsKCl9cmV0dXJuIG5ldyByVyh7Li4udGhpcy5fZGVmLHNoYXBlOigpPT50fSl9cmVxdWlyZWQoZSl7bGV0IHQ9e307Zm9yKGxldCByIG9mIF8ub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSlpZihlJiYhZVtyXSl0W3JdPXRoaXMuc2hhcGVbcl07ZWxzZXtsZXQgZT10aGlzLnNoYXBlW3JdO2Zvcig7ZSBpbnN0YW5jZW9mIHI4OyllPWUuX2RlZi5pbm5lclR5cGU7dFtyXT1lfXJldHVybiBuZXcgclcoey4uLnRoaXMuX2RlZixzaGFwZTooKT0+dH0pfWtleW9mKCl7cmV0dXJuIHIyKF8ub2JqZWN0S2V5cyh0aGlzLnNoYXBlKSl9fXJXLmNyZWF0ZT0oZSx0KT0+bmV3IHJXKHtzaGFwZTooKT0+ZSx1bmtub3duS2V5czoic3RyaXAiLGNhdGNoYWxsOnJWLmNyZWF0ZSgpLHR5cGVOYW1lOmsuWm9kT2JqZWN0LC4uLnJtKHQpfSksclcuc3RyaWN0Q3JlYXRlPShlLHQpPT5uZXcgclcoe3NoYXBlOigpPT5lLHVua25vd25LZXlzOiJzdHJpY3QiLGNhdGNoYWxsOnJWLmNyZWF0ZSgpLHR5cGVOYW1lOmsuWm9kT2JqZWN0LC4uLnJtKHQpfSksclcubGF6eWNyZWF0ZT0oZSx0KT0+bmV3IHJXKHtzaGFwZTplLHVua25vd25LZXlzOiJzdHJpcCIsY2F0Y2hhbGw6clYuY3JlYXRlKCksdHlwZU5hbWU6ay5ab2RPYmplY3QsLi4ucm0odCl9KTtjbGFzcyBycSBleHRlbmRzIHJme19wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxyPXRoaXMuX2RlZi5vcHRpb25zO2lmKHQuY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLmFsbChyLm1hcChhc3luYyBlPT57bGV0IHI9ey4uLnQsY29tbW9uOnsuLi50LmNvbW1vbixpc3N1ZXM6W119LHBhcmVudDpudWxsfTtyZXR1cm57cmVzdWx0OmF3YWl0IGUuX3BhcnNlQXN5bmMoe2RhdGE6dC5kYXRhLHBhdGg6dC5wYXRoLHBhcmVudDpyfSksY3R4OnJ9fSkpLnRoZW4oZnVuY3Rpb24oZSl7Zm9yKGxldCB0IG9mIGUpaWYoInZhbGlkIj09PXQucmVzdWx0LnN0YXR1cylyZXR1cm4gdC5yZXN1bHQ7Zm9yKGxldCByIG9mIGUpaWYoImRpcnR5Ij09PXIucmVzdWx0LnN0YXR1cylyZXR1cm4gdC5jb21tb24uaXNzdWVzLnB1c2goLi4uci5jdHguY29tbW9uLmlzc3Vlcyksci5yZXN1bHQ7bGV0IHI9ZS5tYXAoZT0+bmV3IHQ5KGUuY3R4LmNvbW1vbi5pc3N1ZXMpKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3VuaW9uLHVuaW9uRXJyb3JzOnJ9KSxyaX0pO3tsZXQgZSxuPVtdO2ZvcihsZXQgaSBvZiByKXtsZXQgcj17Li4udCxjb21tb246ey4uLnQuY29tbW9uLGlzc3VlczpbXX0scGFyZW50Om51bGx9LGE9aS5fcGFyc2VTeW5jKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6cn0pO2lmKCJ2YWxpZCI9PT1hLnN0YXR1cylyZXR1cm4gYTsiZGlydHkiIT09YS5zdGF0dXN8fGV8fChlPXtyZXN1bHQ6YSxjdHg6cn0pLHIuY29tbW9uLmlzc3Vlcy5sZW5ndGgmJm4ucHVzaChyLmNvbW1vbi5pc3N1ZXMpfWlmKGUpcmV0dXJuIHQuY29tbW9uLmlzc3Vlcy5wdXNoKC4uLmUuY3R4LmNvbW1vbi5pc3N1ZXMpLGUucmVzdWx0O2xldCBpPW4ubWFwKGU9Pm5ldyB0OShlKSk7cmV0dXJuIHJyKHQse2NvZGU6dDYuaW52YWxpZF91bmlvbix1bmlvbkVycm9yczppfSkscml9fWdldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zfX1ycS5jcmVhdGU9KGUsdCk9Pm5ldyBycSh7b3B0aW9uczplLHR5cGVOYW1lOmsuWm9kVW5pb24sLi4ucm0odCl9KTtsZXQgckc9ZT0+e2lmKGUgaW5zdGFuY2VvZiByNClyZXR1cm4gckcoZS5zY2hlbWEpO2lmKGUgaW5zdGFuY2VvZiByNylyZXR1cm4gckcoZS5pbm5lclR5cGUoKSk7aWYoZSBpbnN0YW5jZW9mIHI2KXJldHVybltlLnZhbHVlXTtpZihlIGluc3RhbmNlb2YgcjkpcmV0dXJuIGUub3B0aW9ucztpZihlIGluc3RhbmNlb2YgcjUpcmV0dXJuIF8ub2JqZWN0VmFsdWVzKGUuZW51bSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgbnQpcmV0dXJuIHJHKGUuX2RlZi5pbm5lclR5cGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHJSKXJldHVyblt2b2lkIDBdO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHJNKXJldHVybltudWxsXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiByOClyZXR1cm5bdm9pZCAwLC4uLnJHKGUudW53cmFwKCkpXTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBuZSlyZXR1cm5bbnVsbCwuLi5yRyhlLnVud3JhcCgpKV07ZWxzZSBpZihlIGluc3RhbmNlb2YgbmEpcmV0dXJuIHJHKGUudW53cmFwKCkpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIG5zKXJldHVybiByRyhlLnVud3JhcCgpKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBucilyZXR1cm4gckcoZS5fZGVmLmlubmVyVHlwZSk7ZWxzZSByZXR1cm5bXX07Y2xhc3MgcksgZXh0ZW5kcyByZntfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYodC5wYXJzZWRUeXBlIT09dDEub2JqZWN0KXJldHVybiBycih0LHtjb2RlOnQ2LmludmFsaWRfdHlwZSxleHBlY3RlZDp0MS5vYmplY3QscmVjZWl2ZWQ6dC5wYXJzZWRUeXBlfSkscmk7bGV0IHI9dGhpcy5kaXNjcmltaW5hdG9yLG49dC5kYXRhW3JdLGk9dGhpcy5vcHRpb25zTWFwLmdldChuKTtyZXR1cm4gaT90LmNvbW1vbi5hc3luYz9pLl9wYXJzZUFzeW5jKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6dH0pOmkuX3BhcnNlU3luYyh7ZGF0YTp0LmRhdGEscGF0aDp0LnBhdGgscGFyZW50OnR9KToocnIodCx7Y29kZTp0Ni5pbnZhbGlkX3VuaW9uX2Rpc2NyaW1pbmF0b3Isb3B0aW9uczpBcnJheS5mcm9tKHRoaXMub3B0aW9uc01hcC5rZXlzKCkpLHBhdGg6W3JdfSkscmkpfWdldCBkaXNjcmltaW5hdG9yKCl7cmV0dXJuIHRoaXMuX2RlZi5kaXNjcmltaW5hdG9yfWdldCBvcHRpb25zKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zfWdldCBvcHRpb25zTWFwKCl7cmV0dXJuIHRoaXMuX2RlZi5vcHRpb25zTWFwfXN0YXRpYyBjcmVhdGUoZSx0LHIpe2xldCBuPW5ldyBNYXA7Zm9yKGxldCByIG9mIHQpe2xldCB0PXJHKHIuc2hhcGVbZV0pO2lmKCF0Lmxlbmd0aCl0aHJvdyBFcnJvcihgQSBkaXNjcmltaW5hdG9yIHZhbHVlIGZvciBrZXkgXGAke2V9XGAgY291bGQgbm90IGJlIGV4dHJhY3RlZCBmcm9tIGFsbCBzY2hlbWEgb3B0aW9uc2ApO2ZvcihsZXQgaSBvZiB0KXtpZihuLmhhcyhpKSl0aHJvdyBFcnJvcihgRGlzY3JpbWluYXRvciBwcm9wZXJ0eSAke1N0cmluZyhlKX0gaGFzIGR1cGxpY2F0ZSB2YWx1ZSAke1N0cmluZyhpKX1gKTtuLnNldChpLHIpfX1yZXR1cm4gbmV3IHJLKHt0eXBlTmFtZTprLlpvZERpc2NyaW1pbmF0ZWRVbmlvbixkaXNjcmltaW5hdG9yOmUsb3B0aW9uczp0LG9wdGlvbnNNYXA6biwuLi5ybShyKX0pfX1jbGFzcyByWSBleHRlbmRzIHJme19wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4OnJ9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKSxuPShlLG4pPT57aWYocnMoZSl8fHJzKG4pKXJldHVybiByaTtsZXQgaT1mdW5jdGlvbiBlKHQscil7bGV0IG49dDQodCksaT10NChyKTtpZih0PT09cilyZXR1cm57dmFsaWQ6ITAsZGF0YTp0fTtpZihuPT09dDEub2JqZWN0JiZpPT09dDEub2JqZWN0KXtsZXQgbj1fLm9iamVjdEtleXMociksaT1fLm9iamVjdEtleXModCkuZmlsdGVyKGU9Pi0xIT09bi5pbmRleE9mKGUpKSxhPXsuLi50LC4uLnJ9O2ZvcihsZXQgbiBvZiBpKXtsZXQgaT1lKHRbbl0scltuXSk7aWYoIWkudmFsaWQpcmV0dXJue3ZhbGlkOiExfTthW25dPWkuZGF0YX1yZXR1cm57dmFsaWQ6ITAsZGF0YTphfX1pZihuPT09dDEuYXJyYXkmJmk9PT10MS5hcnJheSl7aWYodC5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm57dmFsaWQ6ITF9O2xldCBuPVtdO2ZvcihsZXQgaT0wO2k8dC5sZW5ndGg7aSsrKXtsZXQgYT1lKHRbaV0scltpXSk7aWYoIWEudmFsaWQpcmV0dXJue3ZhbGlkOiExfTtuLnB1c2goYS5kYXRhKX1yZXR1cm57dmFsaWQ6ITAsZGF0YTpufX1pZihuPT09dDEuZGF0ZSYmaT09PXQxLmRhdGUmJit0PT0rcilyZXR1cm57dmFsaWQ6ITAsZGF0YTp0fTtyZXR1cm57dmFsaWQ6ITF9fShlLnZhbHVlLG4udmFsdWUpO3JldHVybiBpLnZhbGlkPygocnUoZSl8fHJ1KG4pKSYmdC5kaXJ0eSgpLHtzdGF0dXM6dC52YWx1ZSx2YWx1ZTppLmRhdGF9KToocnIocix7Y29kZTp0Ni5pbnZhbGlkX2ludGVyc2VjdGlvbl90eXBlc30pLHJpKX07cmV0dXJuIHIuY29tbW9uLmFzeW5jP1Byb21pc2UuYWxsKFt0aGlzLl9kZWYubGVmdC5fcGFyc2VBc3luYyh7ZGF0YTpyLmRhdGEscGF0aDpyLnBhdGgscGFyZW50OnJ9KSx0aGlzLl9kZWYucmlnaHQuX3BhcnNlQXN5bmMoe2RhdGE6ci5kYXRhLHBhdGg6ci5wYXRoLHBhcmVudDpyfSldKS50aGVuKChbZSx0XSk9Pm4oZSx0KSk6bih0aGlzLl9kZWYubGVmdC5fcGFyc2VTeW5jKHtkYXRhOnIuZGF0YSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pLHRoaXMuX2RlZi5yaWdodC5fcGFyc2VTeW5jKHtkYXRhOnIuZGF0YSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pKX19clkuY3JlYXRlPShlLHQscik9Pm5ldyByWSh7bGVmdDplLHJpZ2h0OnQsdHlwZU5hbWU6ay5ab2RJbnRlcnNlY3Rpb24sLi4ucm0ocil9KTtjbGFzcyBySCBleHRlbmRzIHJme19wYXJzZShlKXtsZXR7c3RhdHVzOnQsY3R4OnJ9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtpZihyLnBhcnNlZFR5cGUhPT10MS5hcnJheSlyZXR1cm4gcnIocix7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEuYXJyYXkscmVjZWl2ZWQ6ci5wYXJzZWRUeXBlfSkscmk7aWYoci5kYXRhLmxlbmd0aDx0aGlzLl9kZWYuaXRlbXMubGVuZ3RoKXJldHVybiBycihyLHtjb2RlOnQ2LnRvb19zbWFsbCxtaW5pbXVtOnRoaXMuX2RlZi5pdGVtcy5sZW5ndGgsaW5jbHVzaXZlOiEwLGV4YWN0OiExLHR5cGU6ImFycmF5In0pLHJpOyF0aGlzLl9kZWYucmVzdCYmci5kYXRhLmxlbmd0aD50aGlzLl9kZWYuaXRlbXMubGVuZ3RoJiYocnIocix7Y29kZTp0Ni50b29fYmlnLG1heGltdW06dGhpcy5fZGVmLml0ZW1zLmxlbmd0aCxpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsdHlwZToiYXJyYXkifSksdC5kaXJ0eSgpKTtsZXQgbj1bLi4uci5kYXRhXS5tYXAoKGUsdCk9PntsZXQgbj10aGlzLl9kZWYuaXRlbXNbdF18fHRoaXMuX2RlZi5yZXN0O3JldHVybiBuP24uX3BhcnNlKG5ldyByYyhyLGUsci5wYXRoLHQpKTpudWxsfSkuZmlsdGVyKGU9PiEhZSk7cmV0dXJuIHIuY29tbW9uLmFzeW5jP1Byb21pc2UuYWxsKG4pLnRoZW4oZT0+cm4ubWVyZ2VBcnJheSh0LGUpKTpybi5tZXJnZUFycmF5KHQsbil9Z2V0IGl0ZW1zKCl7cmV0dXJuIHRoaXMuX2RlZi5pdGVtc31yZXN0KGUpe3JldHVybiBuZXcgckgoey4uLnRoaXMuX2RlZixyZXN0OmV9KX19ckguY3JlYXRlPShlLHQpPT57aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgRXJyb3IoIllvdSBtdXN0IHBhc3MgYW4gYXJyYXkgb2Ygc2NoZW1hcyB0byB6LnR1cGxlKFsgLi4uIF0pIik7cmV0dXJuIG5ldyBySCh7aXRlbXM6ZSx0eXBlTmFtZTprLlpvZFR1cGxlLHJlc3Q6bnVsbCwuLi5ybSh0KX0pfTtjbGFzcyByWCBleHRlbmRzIHJme2dldCBrZXlTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmtleVR5cGV9Z2V0IHZhbHVlU2NoZW1hKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6cn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpO2lmKHIucGFyc2VkVHlwZSE9PXQxLm9iamVjdClyZXR1cm4gcnIocix7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEub2JqZWN0LHJlY2VpdmVkOnIucGFyc2VkVHlwZX0pLHJpO2xldCBuPVtdLGk9dGhpcy5fZGVmLmtleVR5cGUsYT10aGlzLl9kZWYudmFsdWVUeXBlO2ZvcihsZXQgZSBpbiByLmRhdGEpbi5wdXNoKHtrZXk6aS5fcGFyc2UobmV3IHJjKHIsZSxyLnBhdGgsZSkpLHZhbHVlOmEuX3BhcnNlKG5ldyByYyhyLHIuZGF0YVtlXSxyLnBhdGgsZSkpLGFsd2F5c1NldDplIGluIHIuZGF0YX0pO3JldHVybiByLmNvbW1vbi5hc3luYz9ybi5tZXJnZU9iamVjdEFzeW5jKHQsbik6cm4ubWVyZ2VPYmplY3RTeW5jKHQsbil9Z2V0IGVsZW1lbnQoKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlVHlwZX1zdGF0aWMgY3JlYXRlKGUsdCxyKXtyZXR1cm4gbmV3IHJYKHQgaW5zdGFuY2VvZiByZj97a2V5VHlwZTplLHZhbHVlVHlwZTp0LHR5cGVOYW1lOmsuWm9kUmVjb3JkLC4uLnJtKHIpfTp7a2V5VHlwZTpyei5jcmVhdGUoKSx2YWx1ZVR5cGU6ZSx0eXBlTmFtZTprLlpvZFJlY29yZCwuLi5ybSh0KX0pfX1jbGFzcyByUSBleHRlbmRzIHJme2dldCBrZXlTY2hlbWEoKXtyZXR1cm4gdGhpcy5fZGVmLmtleVR5cGV9Z2V0IHZhbHVlU2NoZW1hKCl7cmV0dXJuIHRoaXMuX2RlZi52YWx1ZVR5cGV9X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6cn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpO2lmKHIucGFyc2VkVHlwZSE9PXQxLm1hcClyZXR1cm4gcnIocix7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEubWFwLHJlY2VpdmVkOnIucGFyc2VkVHlwZX0pLHJpO2xldCBuPXRoaXMuX2RlZi5rZXlUeXBlLGk9dGhpcy5fZGVmLnZhbHVlVHlwZSxhPVsuLi5yLmRhdGEuZW50cmllcygpXS5tYXAoKFtlLHRdLGEpPT4oe2tleTpuLl9wYXJzZShuZXcgcmMocixlLHIucGF0aCxbYSwia2V5Il0pKSx2YWx1ZTppLl9wYXJzZShuZXcgcmMocix0LHIucGF0aCxbYSwidmFsdWUiXSkpfSkpO2lmKHIuY29tbW9uLmFzeW5jKXtsZXQgZT1uZXcgTWFwO3JldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGFzeW5jKCk9Pntmb3IobGV0IHIgb2YgYSl7bGV0IG49YXdhaXQgci5rZXksaT1hd2FpdCByLnZhbHVlO2lmKCJhYm9ydGVkIj09PW4uc3RhdHVzfHwiYWJvcnRlZCI9PT1pLnN0YXR1cylyZXR1cm4gcmk7KCJkaXJ0eSI9PT1uLnN0YXR1c3x8ImRpcnR5Ij09PWkuc3RhdHVzKSYmdC5kaXJ0eSgpLGUuc2V0KG4udmFsdWUsaS52YWx1ZSl9cmV0dXJue3N0YXR1czp0LnZhbHVlLHZhbHVlOmV9fSl9e2xldCBlPW5ldyBNYXA7Zm9yKGxldCByIG9mIGEpe2xldCBuPXIua2V5LGk9ci52YWx1ZTtpZigiYWJvcnRlZCI9PT1uLnN0YXR1c3x8ImFib3J0ZWQiPT09aS5zdGF0dXMpcmV0dXJuIHJpOygiZGlydHkiPT09bi5zdGF0dXN8fCJkaXJ0eSI9PT1pLnN0YXR1cykmJnQuZGlydHkoKSxlLnNldChuLnZhbHVlLGkudmFsdWUpfXJldHVybntzdGF0dXM6dC52YWx1ZSx2YWx1ZTplfX19fXJRLmNyZWF0ZT0oZSx0LHIpPT5uZXcgclEoe3ZhbHVlVHlwZTp0LGtleVR5cGU6ZSx0eXBlTmFtZTprLlpvZE1hcCwuLi5ybShyKX0pO2NsYXNzIHIwIGV4dGVuZHMgcmZ7X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6cn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpO2lmKHIucGFyc2VkVHlwZSE9PXQxLnNldClyZXR1cm4gcnIocix7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEuc2V0LHJlY2VpdmVkOnIucGFyc2VkVHlwZX0pLHJpO2xldCBuPXRoaXMuX2RlZjtudWxsIT09bi5taW5TaXplJiZyLmRhdGEuc2l6ZTxuLm1pblNpemUudmFsdWUmJihycihyLHtjb2RlOnQ2LnRvb19zbWFsbCxtaW5pbXVtOm4ubWluU2l6ZS52YWx1ZSx0eXBlOiJzZXQiLGluY2x1c2l2ZTohMCxleGFjdDohMSxtZXNzYWdlOm4ubWluU2l6ZS5tZXNzYWdlfSksdC5kaXJ0eSgpKSxudWxsIT09bi5tYXhTaXplJiZyLmRhdGEuc2l6ZT5uLm1heFNpemUudmFsdWUmJihycihyLHtjb2RlOnQ2LnRvb19iaWcsbWF4aW11bTpuLm1heFNpemUudmFsdWUsdHlwZToic2V0IixpbmNsdXNpdmU6ITAsZXhhY3Q6ITEsbWVzc2FnZTpuLm1heFNpemUubWVzc2FnZX0pLHQuZGlydHkoKSk7bGV0IGk9dGhpcy5fZGVmLnZhbHVlVHlwZTtmdW5jdGlvbiBhKGUpe2xldCByPW5ldyBTZXQ7Zm9yKGxldCBuIG9mIGUpe2lmKCJhYm9ydGVkIj09PW4uc3RhdHVzKXJldHVybiByaTsiZGlydHkiPT09bi5zdGF0dXMmJnQuZGlydHkoKSxyLmFkZChuLnZhbHVlKX1yZXR1cm57c3RhdHVzOnQudmFsdWUsdmFsdWU6cn19bGV0IG89Wy4uLnIuZGF0YS52YWx1ZXMoKV0ubWFwKChlLHQpPT5pLl9wYXJzZShuZXcgcmMocixlLHIucGF0aCx0KSkpO3JldHVybiByLmNvbW1vbi5hc3luYz9Qcm9taXNlLmFsbChvKS50aGVuKGU9PmEoZSkpOmEobyl9bWluKGUsdCl7cmV0dXJuIG5ldyByMCh7Li4udGhpcy5fZGVmLG1pblNpemU6e3ZhbHVlOmUsbWVzc2FnZTokLnRvU3RyaW5nKHQpfX0pfW1heChlLHQpe3JldHVybiBuZXcgcjAoey4uLnRoaXMuX2RlZixtYXhTaXplOnt2YWx1ZTplLG1lc3NhZ2U6JC50b1N0cmluZyh0KX19KX1zaXplKGUsdCl7cmV0dXJuIHRoaXMubWluKGUsdCkubWF4KGUsdCl9bm9uZW1wdHkoZSl7cmV0dXJuIHRoaXMubWluKDEsZSl9fXIwLmNyZWF0ZT0oZSx0KT0+bmV3IHIwKHt2YWx1ZVR5cGU6ZSxtaW5TaXplOm51bGwsbWF4U2l6ZTpudWxsLHR5cGVOYW1lOmsuWm9kU2V0LC4uLnJtKHQpfSk7Y2xhc3MgcjEgZXh0ZW5kcyByZntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy52YWxpZGF0ZT10aGlzLmltcGxlbWVudH1fcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYodC5wYXJzZWRUeXBlIT09dDEuZnVuY3Rpb24pcmV0dXJuIHJyKHQse2NvZGU6dDYuaW52YWxpZF90eXBlLGV4cGVjdGVkOnQxLmZ1bmN0aW9uLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpO2Z1bmN0aW9uIHIoZSxyKXtyZXR1cm4gcmUoe2RhdGE6ZSxwYXRoOnQucGF0aCxlcnJvck1hcHM6W3QuY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcCx0LnNjaGVtYUVycm9yTWFwLHQzLHQ1XS5maWx0ZXIoZT0+ISFlKSxpc3N1ZURhdGE6e2NvZGU6dDYuaW52YWxpZF9hcmd1bWVudHMsYXJndW1lbnRzRXJyb3I6cn19KX1mdW5jdGlvbiBuKGUscil7cmV0dXJuIHJlKHtkYXRhOmUscGF0aDp0LnBhdGgsZXJyb3JNYXBzOlt0LmNvbW1vbi5jb250ZXh0dWFsRXJyb3JNYXAsdC5zY2hlbWFFcnJvck1hcCx0Myx0NV0uZmlsdGVyKGU9PiEhZSksaXNzdWVEYXRhOntjb2RlOnQ2LmludmFsaWRfcmV0dXJuX3R5cGUscmV0dXJuVHlwZUVycm9yOnJ9fSl9bGV0IGk9e2Vycm9yTWFwOnQuY29tbW9uLmNvbnRleHR1YWxFcnJvck1hcH0sYT10LmRhdGE7aWYodGhpcy5fZGVmLnJldHVybnMgaW5zdGFuY2VvZiByMyl7bGV0IGU9dGhpcztyZXR1cm4gcm8oYXN5bmMgZnVuY3Rpb24oLi4udCl7bGV0IG89bmV3IHQ5KFtdKSxzPWF3YWl0IGUuX2RlZi5hcmdzLnBhcnNlQXN5bmModCxpKS5jYXRjaChlPT57dGhyb3cgby5hZGRJc3N1ZShyKHQsZSkpLG99KSx1PWF3YWl0IFJlZmxlY3QuYXBwbHkoYSx0aGlzLHMpO3JldHVybiBhd2FpdCBlLl9kZWYucmV0dXJucy5fZGVmLnR5cGUucGFyc2VBc3luYyh1LGkpLmNhdGNoKGU9Pnt0aHJvdyBvLmFkZElzc3VlKG4odSxlKSksb30pfSl9e2xldCBlPXRoaXM7cmV0dXJuIHJvKGZ1bmN0aW9uKC4uLnQpe2xldCBvPWUuX2RlZi5hcmdzLnNhZmVQYXJzZSh0LGkpO2lmKCFvLnN1Y2Nlc3MpdGhyb3cgbmV3IHQ5KFtyKHQsby5lcnJvcildKTtsZXQgcz1SZWZsZWN0LmFwcGx5KGEsdGhpcyxvLmRhdGEpLHU9ZS5fZGVmLnJldHVybnMuc2FmZVBhcnNlKHMsaSk7aWYoIXUuc3VjY2Vzcyl0aHJvdyBuZXcgdDkoW24ocyx1LmVycm9yKV0pO3JldHVybiB1LmRhdGF9KX19cGFyYW1ldGVycygpe3JldHVybiB0aGlzLl9kZWYuYXJnc31yZXR1cm5UeXBlKCl7cmV0dXJuIHRoaXMuX2RlZi5yZXR1cm5zfWFyZ3MoLi4uZSl7cmV0dXJuIG5ldyByMSh7Li4udGhpcy5fZGVmLGFyZ3M6ckguY3JlYXRlKGUpLnJlc3QockYuY3JlYXRlKCkpfSl9cmV0dXJucyhlKXtyZXR1cm4gbmV3IHIxKHsuLi50aGlzLl9kZWYscmV0dXJuczplfSl9aW1wbGVtZW50KGUpe3JldHVybiB0aGlzLnBhcnNlKGUpfXN0cmljdEltcGxlbWVudChlKXtyZXR1cm4gdGhpcy5wYXJzZShlKX1zdGF0aWMgY3JlYXRlKGUsdCxyKXtyZXR1cm4gbmV3IHIxKHthcmdzOmV8fHJILmNyZWF0ZShbXSkucmVzdChyRi5jcmVhdGUoKSkscmV0dXJuczp0fHxyRi5jcmVhdGUoKSx0eXBlTmFtZTprLlpvZEZ1bmN0aW9uLC4uLnJtKHIpfSl9fWNsYXNzIHI0IGV4dGVuZHMgcmZ7Z2V0IHNjaGVtYSgpe3JldHVybiB0aGlzLl9kZWYuZ2V0dGVyKCl9X3BhcnNlKGUpe2xldHtjdHg6dH09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpO3JldHVybiB0aGlzLl9kZWYuZ2V0dGVyKCkuX3BhcnNlKHtkYXRhOnQuZGF0YSxwYXRoOnQucGF0aCxwYXJlbnQ6dH0pfX1yNC5jcmVhdGU9KGUsdCk9Pm5ldyByNCh7Z2V0dGVyOmUsdHlwZU5hbWU6ay5ab2RMYXp5LC4uLnJtKHQpfSk7Y2xhc3MgcjYgZXh0ZW5kcyByZntfcGFyc2UoZSl7aWYoZS5kYXRhIT09dGhpcy5fZGVmLnZhbHVlKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7cmVjZWl2ZWQ6dC5kYXRhLGNvZGU6dDYuaW52YWxpZF9saXRlcmFsLGV4cGVjdGVkOnRoaXMuX2RlZi52YWx1ZX0pLHJpfXJldHVybntzdGF0dXM6InZhbGlkIix2YWx1ZTplLmRhdGF9fWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLl9kZWYudmFsdWV9fWZ1bmN0aW9uIHIyKGUsdCl7cmV0dXJuIG5ldyByOSh7dmFsdWVzOmUsdHlwZU5hbWU6ay5ab2RFbnVtLC4uLnJtKHQpfSl9cjYuY3JlYXRlPShlLHQpPT5uZXcgcjYoe3ZhbHVlOmUsdHlwZU5hbWU6ay5ab2RMaXRlcmFsLC4uLnJtKHQpfSk7Y2xhc3MgcjkgZXh0ZW5kcyByZntfcGFyc2UoZSl7aWYoInN0cmluZyIhPXR5cGVvZiBlLmRhdGEpe2xldCB0PXRoaXMuX2dldE9yUmV0dXJuQ3R4KGUpLHI9dGhpcy5fZGVmLnZhbHVlcztyZXR1cm4gcnIodCx7ZXhwZWN0ZWQ6Xy5qb2luVmFsdWVzKHIpLHJlY2VpdmVkOnQucGFyc2VkVHlwZSxjb2RlOnQ2LmludmFsaWRfdHlwZX0pLHJpfWlmKHRoaXMuX2NhY2hlfHwodGhpcy5fY2FjaGU9bmV3IFNldCh0aGlzLl9kZWYudmFsdWVzKSksIXRoaXMuX2NhY2hlLmhhcyhlLmRhdGEpKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKSxyPXRoaXMuX2RlZi52YWx1ZXM7cmV0dXJuIHJyKHQse3JlY2VpdmVkOnQuZGF0YSxjb2RlOnQ2LmludmFsaWRfZW51bV92YWx1ZSxvcHRpb25zOnJ9KSxyaX1yZXR1cm4gcm8oZS5kYXRhKX1nZXQgb3B0aW9ucygpe3JldHVybiB0aGlzLl9kZWYudmFsdWVzfWdldCBlbnVtKCl7bGV0IGU9e307Zm9yKGxldCB0IG9mIHRoaXMuX2RlZi52YWx1ZXMpZVt0XT10O3JldHVybiBlfWdldCBWYWx1ZXMoKXtsZXQgZT17fTtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLnZhbHVlcyllW3RdPXQ7cmV0dXJuIGV9Z2V0IEVudW0oKXtsZXQgZT17fTtmb3IobGV0IHQgb2YgdGhpcy5fZGVmLnZhbHVlcyllW3RdPXQ7cmV0dXJuIGV9ZXh0cmFjdChlLHQ9dGhpcy5fZGVmKXtyZXR1cm4gcjkuY3JlYXRlKGUsey4uLnRoaXMuX2RlZiwuLi50fSl9ZXhjbHVkZShlLHQ9dGhpcy5fZGVmKXtyZXR1cm4gcjkuY3JlYXRlKHRoaXMub3B0aW9ucy5maWx0ZXIodD0+IWUuaW5jbHVkZXModCkpLHsuLi50aGlzLl9kZWYsLi4udH0pfX1yOS5jcmVhdGU9cjI7Y2xhc3MgcjUgZXh0ZW5kcyByZntfcGFyc2UoZSl7bGV0IHQ9Xy5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcykscj10aGlzLl9nZXRPclJldHVybkN0eChlKTtpZihyLnBhcnNlZFR5cGUhPT10MS5zdHJpbmcmJnIucGFyc2VkVHlwZSE9PXQxLm51bWJlcil7bGV0IGU9Xy5vYmplY3RWYWx1ZXModCk7cmV0dXJuIHJyKHIse2V4cGVjdGVkOl8uam9pblZhbHVlcyhlKSxyZWNlaXZlZDpyLnBhcnNlZFR5cGUsY29kZTp0Ni5pbnZhbGlkX3R5cGV9KSxyaX1pZih0aGlzLl9jYWNoZXx8KHRoaXMuX2NhY2hlPW5ldyBTZXQoXy5nZXRWYWxpZEVudW1WYWx1ZXModGhpcy5fZGVmLnZhbHVlcykpKSwhdGhpcy5fY2FjaGUuaGFzKGUuZGF0YSkpe2xldCBlPV8ub2JqZWN0VmFsdWVzKHQpO3JldHVybiBycihyLHtyZWNlaXZlZDpyLmRhdGEsY29kZTp0Ni5pbnZhbGlkX2VudW1fdmFsdWUsb3B0aW9uczplfSkscml9cmV0dXJuIHJvKGUuZGF0YSl9Z2V0IGVudW0oKXtyZXR1cm4gdGhpcy5fZGVmLnZhbHVlc319cjUuY3JlYXRlPShlLHQpPT5uZXcgcjUoe3ZhbHVlczplLHR5cGVOYW1lOmsuWm9kTmF0aXZlRW51bSwuLi5ybSh0KX0pO2NsYXNzIHIzIGV4dGVuZHMgcmZ7dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi50eXBlfV9wYXJzZShlKXtsZXR7Y3R4OnR9PXRoaXMuX3Byb2Nlc3NJbnB1dFBhcmFtcyhlKTtyZXR1cm4gdC5wYXJzZWRUeXBlIT09dDEucHJvbWlzZSYmITE9PT10LmNvbW1vbi5hc3luYz8ocnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEucHJvbWlzZSxyZWNlaXZlZDp0LnBhcnNlZFR5cGV9KSxyaSk6cm8oKHQucGFyc2VkVHlwZT09PXQxLnByb21pc2U/dC5kYXRhOlByb21pc2UucmVzb2x2ZSh0LmRhdGEpKS50aGVuKGU9PnRoaXMuX2RlZi50eXBlLnBhcnNlQXN5bmMoZSx7cGF0aDp0LnBhdGgsZXJyb3JNYXA6dC5jb21tb24uY29udGV4dHVhbEVycm9yTWFwfSkpKX19cjMuY3JlYXRlPShlLHQpPT5uZXcgcjMoe3R5cGU6ZSx0eXBlTmFtZTprLlpvZFByb21pc2UsLi4ucm0odCl9KTtjbGFzcyByNyBleHRlbmRzIHJme2lubmVyVHlwZSgpe3JldHVybiB0aGlzLl9kZWYuc2NoZW1hfXNvdXJjZVR5cGUoKXtyZXR1cm4gdGhpcy5fZGVmLnNjaGVtYS5fZGVmLnR5cGVOYW1lPT09ay5ab2RFZmZlY3RzP3RoaXMuX2RlZi5zY2hlbWEuc291cmNlVHlwZSgpOnRoaXMuX2RlZi5zY2hlbWF9X3BhcnNlKGUpe2xldHtzdGF0dXM6dCxjdHg6cn09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLG49dGhpcy5fZGVmLmVmZmVjdHx8bnVsbCxpPXthZGRJc3N1ZTplPT57cnIocixlKSxlLmZhdGFsP3QuYWJvcnQoKTp0LmRpcnR5KCl9LGdldCBwYXRoKCl7cmV0dXJuIHIucGF0aH19O2lmKGkuYWRkSXNzdWU9aS5hZGRJc3N1ZS5iaW5kKGkpLCJwcmVwcm9jZXNzIj09PW4udHlwZSl7bGV0IGU9bi50cmFuc2Zvcm0oci5kYXRhLGkpO2lmKHIuY29tbW9uLmFzeW5jKXJldHVybiBQcm9taXNlLnJlc29sdmUoZSkudGhlbihhc3luYyBlPT57aWYoImFib3J0ZWQiPT09dC52YWx1ZSlyZXR1cm4gcmk7bGV0IG49YXdhaXQgdGhpcy5fZGVmLnNjaGVtYS5fcGFyc2VBc3luYyh7ZGF0YTplLHBhdGg6ci5wYXRoLHBhcmVudDpyfSk7cmV0dXJuImFib3J0ZWQiPT09bi5zdGF0dXM/cmk6ImRpcnR5Ij09PW4uc3RhdHVzfHwiZGlydHkiPT09dC52YWx1ZT9yYShuLnZhbHVlKTpufSk7e2lmKCJhYm9ydGVkIj09PXQudmFsdWUpcmV0dXJuIHJpO2xldCBuPXRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7ZGF0YTplLHBhdGg6ci5wYXRoLHBhcmVudDpyfSk7cmV0dXJuImFib3J0ZWQiPT09bi5zdGF0dXM/cmk6ImRpcnR5Ij09PW4uc3RhdHVzfHwiZGlydHkiPT09dC52YWx1ZT9yYShuLnZhbHVlKTpufX1pZigicmVmaW5lbWVudCI9PT1uLnR5cGUpe2xldCBlPWU9PntsZXQgdD1uLnJlZmluZW1lbnQoZSxpKTtpZihyLmNvbW1vbi5hc3luYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpO2lmKHQgaW5zdGFuY2VvZiBQcm9taXNlKXRocm93IEVycm9yKCJBc3luYyByZWZpbmVtZW50IGVuY291bnRlcmVkIGR1cmluZyBzeW5jaHJvbm91cyBwYXJzZSBvcGVyYXRpb24uIFVzZSAucGFyc2VBc3luYyBpbnN0ZWFkLiIpO3JldHVybiBlfTtpZighMSE9PXIuY29tbW9uLmFzeW5jKXJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtkYXRhOnIuZGF0YSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pLnRoZW4ocj0+ImFib3J0ZWQiPT09ci5zdGF0dXM/cmk6KCJkaXJ0eSI9PT1yLnN0YXR1cyYmdC5kaXJ0eSgpLGUoci52YWx1ZSkudGhlbigoKT0+KHtzdGF0dXM6dC52YWx1ZSx2YWx1ZTpyLnZhbHVlfSkpKSk7e2xldCBuPXRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7ZGF0YTpyLmRhdGEscGF0aDpyLnBhdGgscGFyZW50OnJ9KTtyZXR1cm4iYWJvcnRlZCI9PT1uLnN0YXR1cz9yaTooImRpcnR5Ij09PW4uc3RhdHVzJiZ0LmRpcnR5KCksZShuLnZhbHVlKSx7c3RhdHVzOnQudmFsdWUsdmFsdWU6bi52YWx1ZX0pfX1pZigidHJhbnNmb3JtIj09PW4udHlwZSlpZighMSE9PXIuY29tbW9uLmFzeW5jKXJldHVybiB0aGlzLl9kZWYuc2NoZW1hLl9wYXJzZUFzeW5jKHtkYXRhOnIuZGF0YSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pLnRoZW4oZT0+cmwoZSk/UHJvbWlzZS5yZXNvbHZlKG4udHJhbnNmb3JtKGUudmFsdWUsaSkpLnRoZW4oZT0+KHtzdGF0dXM6dC52YWx1ZSx2YWx1ZTplfSkpOnJpKTtlbHNle2xldCBlPXRoaXMuX2RlZi5zY2hlbWEuX3BhcnNlU3luYyh7ZGF0YTpyLmRhdGEscGF0aDpyLnBhdGgscGFyZW50OnJ9KTtpZighcmwoZSkpcmV0dXJuIHJpO2xldCBhPW4udHJhbnNmb3JtKGUudmFsdWUsaSk7aWYoYSBpbnN0YW5jZW9mIFByb21pc2UpdGhyb3cgRXJyb3IoIkFzeW5jaHJvbm91cyB0cmFuc2Zvcm0gZW5jb3VudGVyZWQgZHVyaW5nIHN5bmNocm9ub3VzIHBhcnNlIG9wZXJhdGlvbi4gVXNlIC5wYXJzZUFzeW5jIGluc3RlYWQuIik7cmV0dXJue3N0YXR1czp0LnZhbHVlLHZhbHVlOmF9fV8uYXNzZXJ0TmV2ZXIobil9fXI3LmNyZWF0ZT0oZSx0LHIpPT5uZXcgcjcoe3NjaGVtYTplLHR5cGVOYW1lOmsuWm9kRWZmZWN0cyxlZmZlY3Q6dCwuLi5ybShyKX0pLHI3LmNyZWF0ZVdpdGhQcmVwcm9jZXNzPShlLHQscik9Pm5ldyByNyh7c2NoZW1hOnQsZWZmZWN0Ont0eXBlOiJwcmVwcm9jZXNzIix0cmFuc2Zvcm06ZX0sdHlwZU5hbWU6ay5ab2RFZmZlY3RzLC4uLnJtKHIpfSk7Y2xhc3MgcjggZXh0ZW5kcyByZntfcGFyc2UoZSl7cmV0dXJuIHRoaXMuX2dldFR5cGUoZSk9PT10MS51bmRlZmluZWQ/cm8odm9pZCAwKTp0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZShlKX11bndyYXAoKXtyZXR1cm4gdGhpcy5fZGVmLmlubmVyVHlwZX19cjguY3JlYXRlPShlLHQpPT5uZXcgcjgoe2lubmVyVHlwZTplLHR5cGVOYW1lOmsuWm9kT3B0aW9uYWwsLi4ucm0odCl9KTtjbGFzcyBuZSBleHRlbmRzIHJme19wYXJzZShlKXtyZXR1cm4gdGhpcy5fZ2V0VHlwZShlKT09PXQxLm51bGw/cm8obnVsbCk6dGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2UoZSl9dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fW5lLmNyZWF0ZT0oZSx0KT0+bmV3IG5lKHtpbm5lclR5cGU6ZSx0eXBlTmFtZTprLlpvZE51bGxhYmxlLC4uLnJtKHQpfSk7Y2xhc3MgbnQgZXh0ZW5kcyByZntfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSkscj10LmRhdGE7cmV0dXJuIHQucGFyc2VkVHlwZT09PXQxLnVuZGVmaW5lZCYmKHI9dGhpcy5fZGVmLmRlZmF1bHRWYWx1ZSgpKSx0aGlzLl9kZWYuaW5uZXJUeXBlLl9wYXJzZSh7ZGF0YTpyLHBhdGg6dC5wYXRoLHBhcmVudDp0fSl9cmVtb3ZlRGVmYXVsdCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX1udC5jcmVhdGU9KGUsdCk9Pm5ldyBudCh7aW5uZXJUeXBlOmUsdHlwZU5hbWU6ay5ab2REZWZhdWx0LGRlZmF1bHRWYWx1ZToiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWZhdWx0P3QuZGVmYXVsdDooKT0+dC5kZWZhdWx0LC4uLnJtKHQpfSk7Y2xhc3MgbnIgZXh0ZW5kcyByZntfcGFyc2UoZSl7bGV0e2N0eDp0fT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSkscj17Li4udCxjb21tb246ey4uLnQuY29tbW9uLGlzc3VlczpbXX19LG49dGhpcy5fZGVmLmlubmVyVHlwZS5fcGFyc2Uoe2RhdGE6ci5kYXRhLHBhdGg6ci5wYXRoLHBhcmVudDp7Li4ucn19KTtyZXR1cm4gcmQobik/bi50aGVuKGU9Pih7c3RhdHVzOiJ2YWxpZCIsdmFsdWU6InZhbGlkIj09PWUuc3RhdHVzP2UudmFsdWU6dGhpcy5fZGVmLmNhdGNoVmFsdWUoe2dldCBlcnJvcigpe3JldHVybiBuZXcgdDkoci5jb21tb24uaXNzdWVzKX0saW5wdXQ6ci5kYXRhfSl9KSk6e3N0YXR1czoidmFsaWQiLHZhbHVlOiJ2YWxpZCI9PT1uLnN0YXR1cz9uLnZhbHVlOnRoaXMuX2RlZi5jYXRjaFZhbHVlKHtnZXQgZXJyb3IoKXtyZXR1cm4gbmV3IHQ5KHIuY29tbW9uLmlzc3Vlcyl9LGlucHV0OnIuZGF0YX0pfX1yZW1vdmVDYXRjaCgpe3JldHVybiB0aGlzLl9kZWYuaW5uZXJUeXBlfX1uci5jcmVhdGU9KGUsdCk9Pm5ldyBucih7aW5uZXJUeXBlOmUsdHlwZU5hbWU6ay5ab2RDYXRjaCxjYXRjaFZhbHVlOiJmdW5jdGlvbiI9PXR5cGVvZiB0LmNhdGNoP3QuY2F0Y2g6KCk9PnQuY2F0Y2gsLi4ucm0odCl9KTtjbGFzcyBubiBleHRlbmRzIHJme19wYXJzZShlKXtpZih0aGlzLl9nZXRUeXBlKGUpIT09dDEubmFuKXtsZXQgdD10aGlzLl9nZXRPclJldHVybkN0eChlKTtyZXR1cm4gcnIodCx7Y29kZTp0Ni5pbnZhbGlkX3R5cGUsZXhwZWN0ZWQ6dDEubmFuLHJlY2VpdmVkOnQucGFyc2VkVHlwZX0pLHJpfXJldHVybntzdGF0dXM6InZhbGlkIix2YWx1ZTplLmRhdGF9fX1ubi5jcmVhdGU9ZT0+bmV3IG5uKHt0eXBlTmFtZTprLlpvZE5hTiwuLi5ybShlKX0pO2xldCBuaT1TeW1ib2woInpvZF9icmFuZCIpO2NsYXNzIG5hIGV4dGVuZHMgcmZ7X3BhcnNlKGUpe2xldHtjdHg6dH09dGhpcy5fcHJvY2Vzc0lucHV0UGFyYW1zKGUpLHI9dC5kYXRhO3JldHVybiB0aGlzLl9kZWYudHlwZS5fcGFyc2Uoe2RhdGE6cixwYXRoOnQucGF0aCxwYXJlbnQ6dH0pfXVud3JhcCgpe3JldHVybiB0aGlzLl9kZWYudHlwZX19Y2xhc3Mgbm8gZXh0ZW5kcyByZntfcGFyc2UoZSl7bGV0e3N0YXR1czp0LGN0eDpyfT10aGlzLl9wcm9jZXNzSW5wdXRQYXJhbXMoZSk7aWYoci5jb21tb24uYXN5bmMpcmV0dXJuKGFzeW5jKCk9PntsZXQgZT1hd2FpdCB0aGlzLl9kZWYuaW4uX3BhcnNlQXN5bmMoe2RhdGE6ci5kYXRhLHBhdGg6ci5wYXRoLHBhcmVudDpyfSk7cmV0dXJuImFib3J0ZWQiPT09ZS5zdGF0dXM/cmk6ImRpcnR5Ij09PWUuc3RhdHVzPyh0LmRpcnR5KCkscmEoZS52YWx1ZSkpOnRoaXMuX2RlZi5vdXQuX3BhcnNlQXN5bmMoe2RhdGE6ZS52YWx1ZSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pfSkoKTt7bGV0IGU9dGhpcy5fZGVmLmluLl9wYXJzZVN5bmMoe2RhdGE6ci5kYXRhLHBhdGg6ci5wYXRoLHBhcmVudDpyfSk7cmV0dXJuImFib3J0ZWQiPT09ZS5zdGF0dXM/cmk6ImRpcnR5Ij09PWUuc3RhdHVzPyh0LmRpcnR5KCkse3N0YXR1czoiZGlydHkiLHZhbHVlOmUudmFsdWV9KTp0aGlzLl9kZWYub3V0Ll9wYXJzZVN5bmMoe2RhdGE6ZS52YWx1ZSxwYXRoOnIucGF0aCxwYXJlbnQ6cn0pfX1zdGF0aWMgY3JlYXRlKGUsdCl7cmV0dXJuIG5ldyBubyh7aW46ZSxvdXQ6dCx0eXBlTmFtZTprLlpvZFBpcGVsaW5lfSl9fWNsYXNzIG5zIGV4dGVuZHMgcmZ7X3BhcnNlKGUpe2xldCB0PXRoaXMuX2RlZi5pbm5lclR5cGUuX3BhcnNlKGUpLHI9ZT0+KHJsKGUpJiYoZS52YWx1ZT1PYmplY3QuZnJlZXplKGUudmFsdWUpKSxlKTtyZXR1cm4gcmQodCk/dC50aGVuKGU9PnIoZSkpOnIodCl9dW53cmFwKCl7cmV0dXJuIHRoaXMuX2RlZi5pbm5lclR5cGV9fWZ1bmN0aW9uIG51KGUsdCl7bGV0IHI9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZSh0KToic3RyaW5nIj09dHlwZW9mIGU/e21lc3NhZ2U6ZX06ZTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHI/e21lc3NhZ2U6cn06cn1mdW5jdGlvbiBubChlLHQ9e30scil7cmV0dXJuIGU/ckwuY3JlYXRlKCkuc3VwZXJSZWZpbmUoKG4saSk9PntsZXQgYT1lKG4pO2lmKGEgaW5zdGFuY2VvZiBQcm9taXNlKXJldHVybiBhLnRoZW4oZT0+e2lmKCFlKXtsZXQgZT1udSh0LG4pLGE9ZS5mYXRhbD8/cj8/ITA7aS5hZGRJc3N1ZSh7Y29kZToiY3VzdG9tIiwuLi5lLGZhdGFsOmF9KX19KTtpZighYSl7bGV0IGU9bnUodCxuKSxhPWUuZmF0YWw/P3I/PyEwO2kuYWRkSXNzdWUoe2NvZGU6ImN1c3RvbSIsLi4uZSxmYXRhbDphfSl9fSk6ckwuY3JlYXRlKCl9bnMuY3JlYXRlPShlLHQpPT5uZXcgbnMoe2lubmVyVHlwZTplLHR5cGVOYW1lOmsuWm9kUmVhZG9ubHksLi4ucm0odCl9KTtsZXQgbmQ9e29iamVjdDpyVy5sYXp5Y3JlYXRlfTsoaT1rfHwoaz17fSkpLlpvZFN0cmluZz0iWm9kU3RyaW5nIixpLlpvZE51bWJlcj0iWm9kTnVtYmVyIixpLlpvZE5hTj0iWm9kTmFOIixpLlpvZEJpZ0ludD0iWm9kQmlnSW50IixpLlpvZEJvb2xlYW49IlpvZEJvb2xlYW4iLGkuWm9kRGF0ZT0iWm9kRGF0ZSIsaS5ab2RTeW1ib2w9IlpvZFN5bWJvbCIsaS5ab2RVbmRlZmluZWQ9IlpvZFVuZGVmaW5lZCIsaS5ab2ROdWxsPSJab2ROdWxsIixpLlpvZEFueT0iWm9kQW55IixpLlpvZFVua25vd249IlpvZFVua25vd24iLGkuWm9kTmV2ZXI9IlpvZE5ldmVyIixpLlpvZFZvaWQ9IlpvZFZvaWQiLGkuWm9kQXJyYXk9IlpvZEFycmF5IixpLlpvZE9iamVjdD0iWm9kT2JqZWN0IixpLlpvZFVuaW9uPSJab2RVbmlvbiIsaS5ab2REaXNjcmltaW5hdGVkVW5pb249IlpvZERpc2NyaW1pbmF0ZWRVbmlvbiIsaS5ab2RJbnRlcnNlY3Rpb249IlpvZEludGVyc2VjdGlvbiIsaS5ab2RUdXBsZT0iWm9kVHVwbGUiLGkuWm9kUmVjb3JkPSJab2RSZWNvcmQiLGkuWm9kTWFwPSJab2RNYXAiLGkuWm9kU2V0PSJab2RTZXQiLGkuWm9kRnVuY3Rpb249IlpvZEZ1bmN0aW9uIixpLlpvZExhenk9IlpvZExhenkiLGkuWm9kTGl0ZXJhbD0iWm9kTGl0ZXJhbCIsaS5ab2RFbnVtPSJab2RFbnVtIixpLlpvZEVmZmVjdHM9IlpvZEVmZmVjdHMiLGkuWm9kTmF0aXZlRW51bT0iWm9kTmF0aXZlRW51bSIsaS5ab2RPcHRpb25hbD0iWm9kT3B0aW9uYWwiLGkuWm9kTnVsbGFibGU9IlpvZE51bGxhYmxlIixpLlpvZERlZmF1bHQ9IlpvZERlZmF1bHQiLGkuWm9kQ2F0Y2g9IlpvZENhdGNoIixpLlpvZFByb21pc2U9IlpvZFByb21pc2UiLGkuWm9kQnJhbmRlZD0iWm9kQnJhbmRlZCIsaS5ab2RQaXBlbGluZT0iWm9kUGlwZWxpbmUiLGkuWm9kUmVhZG9ubHk9IlpvZFJlYWRvbmx5IjtsZXQgbmM9KGUsdD17bWVzc2FnZTpgSW5wdXQgbm90IGluc3RhbmNlIG9mICR7ZS5uYW1lfWB9KT0+bmwodD0+dCBpbnN0YW5jZW9mIGUsdCksbnA9cnouY3JlYXRlLG5tPXJQLmNyZWF0ZSxuZj1ubi5jcmVhdGUsbmg9ckEuY3JlYXRlLG52PXJVLmNyZWF0ZSxuZz1yQy5jcmVhdGUsbnk9ckQuY3JlYXRlLG5iPXJSLmNyZWF0ZSxuXz1yTS5jcmVhdGUsbng9ckwuY3JlYXRlLG4kPXJGLmNyZWF0ZSxuaz1yVi5jcmVhdGUsbnc9ckIuY3JlYXRlLG5JPXJKLmNyZWF0ZSxuUz1yVy5jcmVhdGUsbk89clcuc3RyaWN0Q3JlYXRlLG5qPXJxLmNyZWF0ZSxuRT1ySy5jcmVhdGUsblo9clkuY3JlYXRlLG5OPXJILmNyZWF0ZSxuVD1yWC5jcmVhdGUsbno9clEuY3JlYXRlLG5QPXIwLmNyZWF0ZSxuQT1yMS5jcmVhdGUsblU9cjQuY3JlYXRlLG5DPXI2LmNyZWF0ZSxuRD1yOS5jcmVhdGUsblI9cjUuY3JlYXRlLG5NPXIzLmNyZWF0ZSxuTD1yNy5jcmVhdGUsbkY9cjguY3JlYXRlLG5WPW5lLmNyZWF0ZSxuQj1yNy5jcmVhdGVXaXRoUHJlcHJvY2VzcyxuSj1uby5jcmVhdGUsblc9KCk9Pm5wKCkub3B0aW9uYWwoKSxucT0oKT0+bm0oKS5vcHRpb25hbCgpLG5HPSgpPT5udigpLm9wdGlvbmFsKCksbks9e3N0cmluZzplPT5yei5jcmVhdGUoey4uLmUsY29lcmNlOiEwfSksbnVtYmVyOmU9PnJQLmNyZWF0ZSh7Li4uZSxjb2VyY2U6ITB9KSxib29sZWFuOmU9PnJVLmNyZWF0ZSh7Li4uZSxjb2VyY2U6ITB9KSxiaWdpbnQ6ZT0+ckEuY3JlYXRlKHsuLi5lLGNvZXJjZTohMH0pLGRhdGU6ZT0+ckMuY3JlYXRlKHsuLi5lLGNvZXJjZTohMH0pfTtlLnMoWyJCUkFORCIsMCxuaSwiTkVWRVIiLDAscmksIlNjaGVtYSIsKCk9PnJmLCJab2RBbnkiLCgpPT5yTCwiWm9kQXJyYXkiLCgpPT5ySiwiWm9kQmlnSW50IiwoKT0+ckEsIlpvZEJvb2xlYW4iLCgpPT5yVSwiWm9kQnJhbmRlZCIsKCk9Pm5hLCJab2RDYXRjaCIsKCk9Pm5yLCJab2REYXRlIiwoKT0+ckMsIlpvZERlZmF1bHQiLCgpPT5udCwiWm9kRGlzY3JpbWluYXRlZFVuaW9uIiwoKT0+ckssIlpvZEVmZmVjdHMiLCgpPT5yNywiWm9kRW51bSIsKCk9PnI5LCJab2RGaXJzdFBhcnR5VHlwZUtpbmQiLCgpPT5rLCJab2RGdW5jdGlvbiIsKCk9PnIxLCJab2RJbnRlcnNlY3Rpb24iLCgpPT5yWSwiWm9kTGF6eSIsKCk9PnI0LCJab2RMaXRlcmFsIiwoKT0+cjYsIlpvZE1hcCIsKCk9PnJRLCJab2ROYU4iLCgpPT5ubiwiWm9kTmF0aXZlRW51bSIsKCk9PnI1LCJab2ROZXZlciIsKCk9PnJWLCJab2ROdWxsIiwoKT0+ck0sIlpvZE51bGxhYmxlIiwoKT0+bmUsIlpvZE51bWJlciIsKCk9PnJQLCJab2RPYmplY3QiLCgpPT5yVywiWm9kT3B0aW9uYWwiLCgpPT5yOCwiWm9kUGlwZWxpbmUiLCgpPT5ubywiWm9kUHJvbWlzZSIsKCk9PnIzLCJab2RSZWFkb25seSIsKCk9Pm5zLCJab2RSZWNvcmQiLCgpPT5yWCwiWm9kU2NoZW1hIiwoKT0+cmYsIlpvZFNldCIsKCk9PnIwLCJab2RTdHJpbmciLCgpPT5yeiwiWm9kU3ltYm9sIiwoKT0+ckQsIlpvZFRyYW5zZm9ybWVyIiwoKT0+cjcsIlpvZFR1cGxlIiwoKT0+ckgsIlpvZFR5cGUiLCgpPT5yZiwiWm9kVW5kZWZpbmVkIiwoKT0+clIsIlpvZFVuaW9uIiwoKT0+cnEsIlpvZFVua25vd24iLCgpPT5yRiwiWm9kVm9pZCIsKCk9PnJCLCJhbnkiLCgpPT5ueCwiYXJyYXkiLCgpPT5uSSwiYmlnaW50IiwoKT0+bmgsImJvb2xlYW4iLCgpPT5udiwiY29lcmNlIiwwLG5LLCJjdXN0b20iLCgpPT5ubCwiZGF0ZSIsKCk9Pm5nLCJkYXRldGltZVJlZ2V4IiwoKT0+clQsImRpc2NyaW1pbmF0ZWRVbmlvbiIsKCk9Pm5FLCJlZmZlY3QiLCgpPT5uTCwiZW51bSIsKCk9Pm5ELCJmdW5jdGlvbiIsKCk9Pm5BLCJpbnN0YW5jZW9mIiwoKT0+bmMsImludGVyc2VjdGlvbiIsKCk9Pm5aLCJsYXRlIiwwLG5kLCJsYXp5IiwoKT0+blUsImxpdGVyYWwiLCgpPT5uQywibWFwIiwoKT0+bnosIm5hbiIsKCk9Pm5mLCJuYXRpdmVFbnVtIiwoKT0+blIsIm5ldmVyIiwoKT0+bmssIm51bGwiLCgpPT5uXywibnVsbGFibGUiLCgpPT5uViwibnVtYmVyIiwoKT0+bm0sIm9iamVjdCIsKCk9Pm5TLCJvYm9vbGVhbiIsKCk9Pm5HLCJvbnVtYmVyIiwoKT0+bnEsIm9wdGlvbmFsIiwoKT0+bkYsIm9zdHJpbmciLCgpPT5uVywicGlwZWxpbmUiLCgpPT5uSiwicHJlcHJvY2VzcyIsKCk9Pm5CLCJwcm9taXNlIiwoKT0+bk0sInJlY29yZCIsKCk9Pm5ULCJzZXQiLCgpPT5uUCwic3RyaWN0T2JqZWN0IiwoKT0+bk8sInN0cmluZyIsKCk9Pm5wLCJzeW1ib2wiLCgpPT5ueSwidHJhbnNmb3JtZXIiLCgpPT5uTCwidHVwbGUiLCgpPT5uTiwidW5kZWZpbmVkIiwoKT0+bmIsInVuaW9uIiwoKT0+bmosInVua25vd24iLCgpPT5uJCwidm9pZCIsKCk9Pm53XSw5NjU2MzgpO2NsYXNzIG5ZIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlKSx0aGlzLm5hbWU9IlBhcnNlRXJyb3IiLHRoaXMudHlwZT10LnR5cGUsdGhpcy5maWVsZD10LmZpZWxkLHRoaXMudmFsdWU9dC52YWx1ZSx0aGlzLmxpbmU9dC5saW5lfX1mdW5jdGlvbiBuSChlKXt9ZnVuY3Rpb24gblgoZSx0LHIpe3JldHVybiAxMDA9PT1yJiY5Nz09PWUuY2hhckNvZGVBdCh0KzEpJiYxMTY9PT1lLmNoYXJDb2RlQXQodCsyKSYmOTc9PT1lLmNoYXJDb2RlQXQodCszKSYmNTg9PT1lLmNoYXJDb2RlQXQodCs0KX1mdW5jdGlvbiBuUShlLHQscil7cmV0dXJuIDEwMT09PXImJjExOD09PWUuY2hhckNvZGVBdCh0KzEpJiYxMDE9PT1lLmNoYXJDb2RlQXQodCsyKSYmMTEwPT09ZS5jaGFyQ29kZUF0KHQrMykmJjExNj09PWUuY2hhckNvZGVBdCh0KzQpJiY1OD09PWUuY2hhckNvZGVBdCh0KzUpfWNsYXNzIG4wIGV4dGVuZHMgVHJhbnNmb3JtU3RyZWFte2NvbnN0cnVjdG9yKHtvbkVycm9yOmUsb25SZXRyeTp0LG9uQ29tbWVudDpyfT17fSl7bGV0IG47c3VwZXIoe3N0YXJ0KGkpe249ZnVuY3Rpb24oZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKCJgY2FsbGJhY2tzYCBtdXN0IGJlIGFuIG9iamVjdCwgZ290IGEgZnVuY3Rpb24gaW5zdGVhZC4gRGlkIHlvdSBtZWFuIGB7b25FdmVudDogZm59YD8iKTtsZXR7b25FdmVudDp0PW5ILG9uRXJyb3I6cj1uSCxvblJldHJ5Om49bkgsb25Db21tZW50Oml9PWUsYT1bXSxvPSEwLHMsdT0iIixsPTAsZDtmdW5jdGlvbiBjKGUpe2xldCByPTA7aWYoLTE9PT1lLmluZGV4T2YoIlxyIikpe2xldCBuPWUuaW5kZXhPZihgCmAscik7Zm9yKDstMSE9PW47KXtpZihyPT09bil7bD4wJiZ0KHtpZDpzLGV2ZW50OmQsZGF0YTp1fSkscz12b2lkIDAsdT0iIixsPTAsZD12b2lkIDAscj1uKzEsbj1lLmluZGV4T2YoYApgLHIpO2NvbnRpbnVlfWxldCBpPWUuY2hhckNvZGVBdChyKTtpZihuWChlLHIsaSkpe2xldCBpPTMyPT09ZS5jaGFyQ29kZUF0KHIrNSk/cis2OnIrNSxhPWUuc2xpY2UoaSxuKTtpZigwPT09bCYmMTA9PT1lLmNoYXJDb2RlQXQobisxKSl7dCh7aWQ6cyxldmVudDpkLGRhdGE6YX0pLHM9dm9pZCAwLHU9IiIsZD12b2lkIDAscj1uKzIsbj1lLmluZGV4T2YoYApgLHIpO2NvbnRpbnVlfXU9MD09PWw/YTpgJHt1fQoke2F9YCxsKyt9ZWxzZSBuUShlLHIsaSk/ZD1lLnNsaWNlKDMyPT09ZS5jaGFyQ29kZUF0KHIrNik/cis3OnIrNixuKXx8dm9pZCAwOnAoZSxyLG4pO3I9bisxLG49ZS5pbmRleE9mKGAKYCxyKX1yZXR1cm4gZS5zbGljZShyKX1mb3IoO3I8ZS5sZW5ndGg7KXtsZXQgdD1lLmluZGV4T2YoIlxyIixyKSxuPWUuaW5kZXhPZihgCmAsciksaT0tMTtpZigtMSE9PXQmJi0xIT09bj9pPXQ8bj90Om46LTEhPT10P2k9dD09PWUubGVuZ3RoLTE/LTE6dDotMSE9PW4mJihpPW4pLC0xPT09aSlicmVhaztwKGUscixpKSxyPWkrMSwxMz09PWUuY2hhckNvZGVBdChyLTEpJiYxMD09PWUuY2hhckNvZGVBdChyKSYmcisrfXJldHVybiBlLnNsaWNlKHIpfWZ1bmN0aW9uIHAoZSxyLG4pe2lmKHI9PT1uKXJldHVybiB2b2lkKGw+MCYmdCh7aWQ6cyxldmVudDpkLGRhdGE6dX0pLHM9dm9pZCAwLHU9IiIsbD0wLGQ9dm9pZCAwKTtsZXQgYT1lLmNoYXJDb2RlQXQocik7aWYoblgoZSxyLGEpKXtsZXQgdD0zMj09PWUuY2hhckNvZGVBdChyKzUpP3IrNjpyKzUsaT1lLnNsaWNlKHQsbik7dT0wPT09bD9pOmAke3V9CiR7aX1gLGwrKztyZXR1cm59aWYoblEoZSxyLGEpKXtkPWUuc2xpY2UoMzI9PT1lLmNoYXJDb2RlQXQocis2KT9yKzc6cis2LG4pfHx2b2lkIDA7cmV0dXJufWlmKDEwNT09PWEmJjEwMD09PWUuY2hhckNvZGVBdChyKzEpJiY1OD09PWUuY2hhckNvZGVBdChyKzIpKXtsZXQgdD1lLnNsaWNlKDMyPT09ZS5jaGFyQ29kZUF0KHIrMyk/cis0OnIrMyxuKTtzPXQuaW5jbHVkZXMoIlwwIik/dm9pZCAwOnQ7cmV0dXJufWlmKDU4PT09YSl7aSYmaShlLnNsaWNlKHIsbikuc2xpY2UoMzI9PT1lLmNoYXJDb2RlQXQocisxKT8yOjEpKTtyZXR1cm59bGV0IG89ZS5zbGljZShyLG4pLGM9by5pbmRleE9mKCI6Iik7aWYoLTE9PT1jKXJldHVybiB2b2lkIG0obywiIixvKTtsZXQgcD1vLnNsaWNlKDAsYyksZj0zMj09PW8uY2hhckNvZGVBdChjKzEpPzI6MTttKHAsby5zbGljZShjK2YpLG8pfWZ1bmN0aW9uIG0oZSx0LGkpe3N3aXRjaChlKXtjYXNlImV2ZW50IjpkPXR8fHZvaWQgMDticmVhaztjYXNlImRhdGEiOnU9MD09PWw/dDpgJHt1fQoke3R9YCxsKys7YnJlYWs7Y2FzZSJpZCI6cz10LmluY2x1ZGVzKCJcMCIpP3ZvaWQgMDp0O2JyZWFrO2Nhc2UicmV0cnkiOi9eXGQrJC8udGVzdCh0KT9uKHBhcnNlSW50KHQsMTApKTpyKG5ldyBuWShgSW52YWxpZCBcYHJldHJ5XGAgdmFsdWU6ICIke3R9ImAse3R5cGU6ImludmFsaWQtcmV0cnkiLHZhbHVlOnQsbGluZTppfSkpO2JyZWFrO2RlZmF1bHQ6cihuZXcgblkoYFVua25vd24gZmllbGQgIiR7ZS5sZW5ndGg+MjA/YCR7ZS5zbGljZSgwLDIwKX1cdTIwMjZgOmV9ImAse3R5cGU6InVua25vd24tZmllbGQiLGZpZWxkOmUsdmFsdWU6dCxsaW5lOml9KSl9fXJldHVybntmZWVkOmZ1bmN0aW9uKGUpe2lmKG8mJihvPSExLDIzOT09PWUuY2hhckNvZGVBdCgwKSYmMTg3PT09ZS5jaGFyQ29kZUF0KDEpJiYxOTE9PT1lLmNoYXJDb2RlQXQoMikmJihlPWUuc2xpY2UoMykpKSwwPT09YS5sZW5ndGgpe2xldCB0PWMoZSk7IiIhPT10JiZhLnB1c2godCk7cmV0dXJufWlmKC0xPT09ZS5pbmRleE9mKGAKYCkmJi0xPT09ZS5pbmRleE9mKCJcciIpKXJldHVybiB2b2lkIGEucHVzaChlKTthLnB1c2goZSk7bGV0IHQ9YS5qb2luKCIiKTthLmxlbmd0aD0wO2xldCByPWModCk7IiIhPT1yJiZhLnB1c2gocil9LHJlc2V0OmZ1bmN0aW9uKGU9e30pe2lmKGUuY29uc3VtZSYmYS5sZW5ndGg+MCl7bGV0IGU9YS5qb2luKCIiKTtwKGUsMCxlLmxlbmd0aCl9bz0hMCxzPXZvaWQgMCx1PSIiLGw9MCxkPXZvaWQgMCxhLmxlbmd0aD0wfX19KHtvbkV2ZW50OmU9PntpLmVucXVldWUoZSl9LG9uRXJyb3IodCl7InRlcm1pbmF0ZSI9PT1lP2kuZXJyb3IodCk6ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUodCl9LG9uUmV0cnk6dCxvbkNvbW1lbnQ6cn0pfSx0cmFuc2Zvcm0oZSl7bi5mZWVkKGUpfX0pfX1mdW5jdGlvbiBuMSguLi5lKXtyZXR1cm4gZS5yZWR1Y2UoKGUsdCk9Pih7Li4uZSwuLi5udWxsIT10P3Q6e319KSx7fSl9ZnVuY3Rpb24gbjQoZSl7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhbLi4uZS5oZWFkZXJzXSl9dmFye2J0b2E6bjYsYXRvYjpuMn09Z2xvYmFsVGhpcztmdW5jdGlvbiBuOShlKXtsZXQgdD0iIjtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0Kz1TdHJpbmcuZnJvbUNvZGVQb2ludChlW3JdKTtyZXR1cm4gbjYodCl9dmFyIG41PSJBSV9Eb3dubG9hZEVycm9yIixuMz1gdmVyY2VsLmFpLmVycm9yLiR7bjV9YCxuNz1TeW1ib2wuZm9yKG4zKSxuOD1jbGFzcyBleHRlbmRzKEk9ZWQsdz1uNyxJKXtjb25zdHJ1Y3Rvcih7dXJsOmUsc3RhdHVzQ29kZTp0LHN0YXR1c1RleHQ6cixjYXVzZTpuLG1lc3NhZ2U6aT1udWxsPT1uP2BGYWlsZWQgdG8gZG93bmxvYWQgJHtlfTogJHt0fSAke3J9YDpgRmFpbGVkIHRvIGRvd25sb2FkICR7ZX06ICR7bn1gfSl7c3VwZXIoe25hbWU6bjUsbWVzc2FnZTppLGNhdXNlOm59KSx0aGlzW3ddPSEwLHRoaXMudXJsPWUsdGhpcy5zdGF0dXNDb2RlPXQsdGhpcy5zdGF0dXNUZXh0PXJ9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGVkLmhhc01hcmtlcihlLG4zKX19O2FzeW5jIGZ1bmN0aW9uIGllKHtyZXNwb25zZTplLHVybDp0LG1heEJ5dGVzOnI9MHg4MDAwMDAwMH0pe2xldCBuPWUuaGVhZGVycy5nZXQoImNvbnRlbnQtbGVuZ3RoIik7aWYobnVsbCE9bil7bGV0IGU9cGFyc2VJbnQobiwxMCk7aWYoIWlzTmFOKGUpJiZlPnIpdGhyb3cgbmV3IG44KHt1cmw6dCxtZXNzYWdlOmBEb3dubG9hZCBvZiAke3R9IGV4Y2VlZGVkIG1heGltdW0gc2l6ZSBvZiAke3J9IGJ5dGVzIChDb250ZW50LUxlbmd0aDogJHtlfSkuYH0pfWxldCBpPWUuYm9keTtpZihudWxsPT1pKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtsZXQgYT1pLmdldFJlYWRlcigpLG89W10scz0wO3RyeXtmb3IoOzspe2xldHtkb25lOmUsdmFsdWU6bn09YXdhaXQgYS5yZWFkKCk7aWYoZSlicmVhaztpZigocys9bi5sZW5ndGgpPnIpdGhyb3cgbmV3IG44KHt1cmw6dCxtZXNzYWdlOmBEb3dubG9hZCBvZiAke3R9IGV4Y2VlZGVkIG1heGltdW0gc2l6ZSBvZiAke3J9IGJ5dGVzLmB9KTtvLnB1c2gobil9fWZpbmFsbHl7dHJ5e2F3YWl0IGEuY2FuY2VsKCl9ZmluYWxseXthLnJlbGVhc2VMb2NrKCl9fWxldCB1PW5ldyBVaW50OEFycmF5KHMpLGw9MDtmb3IobGV0IGUgb2Ygbyl1LnNldChlLGwpLGwrPWUubGVuZ3RoO3JldHVybiB1fWZ1bmN0aW9uIGl0KGUpe2xldCB0O3RyeXt0PW5ldyBVUkwoZSl9Y2F0Y2godCl7dGhyb3cgbmV3IG44KHt1cmw6ZSxtZXNzYWdlOmBJbnZhbGlkIFVSTDogJHtlfWB9KX1pZigiZGF0YToiPT09dC5wcm90b2NvbClyZXR1cm47aWYoImh0dHA6IiE9PXQucHJvdG9jb2wmJiJodHRwczoiIT09dC5wcm90b2NvbCl0aHJvdyBuZXcgbjgoe3VybDplLG1lc3NhZ2U6YFVSTCBzY2hlbWUgbXVzdCBiZSBodHRwLCBodHRwcywgb3IgZGF0YSwgZ290ICR7dC5wcm90b2NvbH1gfSk7bGV0IHI9dC5ob3N0bmFtZTtpZighcil0aHJvdyBuZXcgbjgoe3VybDplLG1lc3NhZ2U6IlVSTCBtdXN0IGhhdmUgYSBob3N0bmFtZSJ9KTtpZigibG9jYWxob3N0Ij09PXJ8fHIuZW5kc1dpdGgoIi5sb2NhbCIpfHxyLmVuZHNXaXRoKCIubG9jYWxob3N0IikpdGhyb3cgbmV3IG44KHt1cmw6ZSxtZXNzYWdlOmBVUkwgd2l0aCBob3N0bmFtZSAke3J9IGlzIG5vdCBhbGxvd2VkYH0pO2lmKHIuc3RhcnRzV2l0aCgiWyIpJiZyLmVuZHNXaXRoKCJdIikpe2lmKGZ1bmN0aW9uKGUpe2xldCB0PWUudG9Mb3dlckNhc2UoKTtpZigiOjoxIj09PXR8fCI6OiI9PT10KXJldHVybiEwO2lmKHQuc3RhcnRzV2l0aCgiOjpmZmZmOiIpKXtsZXQgZT10LnNsaWNlKDcpO2lmKGlyKGUpKXJldHVybiBpaShlKTtsZXQgcj1lLnNwbGl0KCI6Iik7aWYoMj09PXIubGVuZ3RoKXtsZXQgZT1wYXJzZUludChyWzBdLDE2KSx0PXBhcnNlSW50KHJbMV0sMTYpO2lmKCFpc05hTihlKSYmIWlzTmFOKHQpKXJldHVybiBpaShgJHtlPj44JjI1NX0uJHsyNTUmZX0uJHt0Pj44JjI1NX0uJHsyNTUmdH1gKX19cmV0dXJuISEodC5zdGFydHNXaXRoKCJmYyIpfHx0LnN0YXJ0c1dpdGgoImZkIil8fHQuc3RhcnRzV2l0aCgiZmU4MCIpKX0oci5zbGljZSgxLC0xKSkpdGhyb3cgbmV3IG44KHt1cmw6ZSxtZXNzYWdlOmBVUkwgd2l0aCBJUHY2IGFkZHJlc3MgJHtyfSBpcyBub3QgYWxsb3dlZGB9KTtyZXR1cm59aWYoaXIocikpe2lmKGlpKHIpKXRocm93IG5ldyBuOCh7dXJsOmUsbWVzc2FnZTpgVVJMIHdpdGggSVAgYWRkcmVzcyAke3J9IGlzIG5vdCBhbGxvd2VkYH0pO3JldHVybn19ZnVuY3Rpb24gaXIoZSl7bGV0IHQ9ZS5zcGxpdCgiLiIpO3JldHVybiA0PT09dC5sZW5ndGgmJnQuZXZlcnkoZT0+e2xldCB0PU51bWJlcihlKTtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih0KSYmdD49MCYmdDw9MjU1JiZTdHJpbmcodCk9PT1lfSl9ZnVuY3Rpb24gaWkoZSl7bGV0W3Qscl09ZS5zcGxpdCgiLiIpLm1hcChOdW1iZXIpO3JldHVybiAwPT09dHx8MTA9PT10fHwxMjc9PT10fHwxNjk9PT10JiYyNTQ9PT1yfHwxNzI9PT10JiYhIShyPj0xNikmJiEhKHI8PTMxKXx8MTkyPT09dCYmMTY4PT09cn12YXIgaWE9KHtwcmVmaXg6ZSxzaXplOnQ9MTYsYWxwaGFiZXQ6cj0iMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLHNlcGFyYXRvcjpuPSItIn09e30pPT57bGV0IGk9KCk9PntsZXQgZT1yLmxlbmd0aCxuPUFycmF5KHQpO2ZvcihsZXQgaT0wO2k8dDtpKyspbltpXT1yW01hdGgucmFuZG9tKCkqZXwwXTtyZXR1cm4gbi5qb2luKCIiKX07aWYobnVsbD09ZSlyZXR1cm4gaTtpZihyLmluY2x1ZGVzKG4pKXRocm93IG5ldyBlayh7YXJndW1lbnQ6InNlcGFyYXRvciIsbWVzc2FnZTpgVGhlIHNlcGFyYXRvciAiJHtufSIgbXVzdCBub3QgYmUgcGFydCBvZiB0aGUgYWxwaGFiZXQgIiR7cn0iLmB9KTtyZXR1cm4oKT0+YCR7ZX0ke259JHtpKCl9YH0saW89aWEoKTtmdW5jdGlvbiBpcyhlKXtyZXR1cm4oZSBpbnN0YW5jZW9mIEVycm9yfHxlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uKSYmKCJBYm9ydEVycm9yIj09PWUubmFtZXx8IlJlc3BvbnNlQWJvcnRlZCI9PT1lLm5hbWV8fCJUaW1lb3V0RXJyb3IiPT09ZS5uYW1lKX12YXIgaXU9WyJmZXRjaCBmYWlsZWQiLCJmYWlsZWQgdG8gZmV0Y2giXSxpbD1bIkNvbm5lY3Rpb25SZWZ1c2VkIiwiQ29ubmVjdGlvbkNsb3NlZCIsIkZhaWxlZFRvT3BlblNvY2tldCIsIkVDT05OUkVTRVQiLCJFQ09OTlJFRlVTRUQiLCJFVElNRURPVVQiLCJFUElQRSJdO2Z1bmN0aW9uIGlkKHtlcnJvcjplLHVybDp0LHJlcXVlc3RCb2R5VmFsdWVzOnJ9KXtpZihpcyhlKSlyZXR1cm4gZTtpZihlIGluc3RhbmNlb2YgVHlwZUVycm9yJiZpdS5pbmNsdWRlcyhlLm1lc3NhZ2UudG9Mb3dlckNhc2UoKSkpe2xldCBuPWUuY2F1c2U7aWYobnVsbCE9bilyZXR1cm4gbmV3IGVmKHttZXNzYWdlOmBDYW5ub3QgY29ubmVjdCB0byBBUEk6ICR7bi5tZXNzYWdlfWAsY2F1c2U6bix1cmw6dCxyZXF1ZXN0Qm9keVZhbHVlczpyLGlzUmV0cnlhYmxlOiEwfSl9cmV0dXJuIWZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEVycm9yKSlyZXR1cm4hMTtsZXQgdD1lLmNvZGU7cmV0dXJuISEoInN0cmluZyI9PXR5cGVvZiB0JiZpbC5pbmNsdWRlcyh0KSl9KGUpP2U6bmV3IGVmKHttZXNzYWdlOmBDYW5ub3QgY29ubmVjdCB0byBBUEk6ICR7ZS5tZXNzYWdlfWAsY2F1c2U6ZSx1cmw6dCxyZXF1ZXN0Qm9keVZhbHVlczpyLGlzUmV0cnlhYmxlOiEwfSl9ZnVuY3Rpb24gaWMoZT1nbG9iYWxUaGlzKXt2YXIgdCxyLG47cmV0dXJuIGUud2luZG93PyJydW50aW1lL2Jyb3dzZXIiOihudWxsPT0odD1lLm5hdmlnYXRvcik/dm9pZCAwOnQudXNlckFnZW50KT9gcnVudGltZS8ke2UubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpfWA6KG51bGw9PShuPW51bGw9PShyPWUucHJvY2Vzcyk/dm9pZCAwOnIudmVyc2lvbnMpP3ZvaWQgMDpuLm5vZGUpP2BydW50aW1lL25vZGUuanMvJHtlLnByb2Nlc3MudmVyc2lvbi5zdWJzdHJpbmcoMCl9YDplLkVkZ2VSdW50aW1lPyJydW50aW1lL3ZlcmNlbC1lZGdlIjoicnVudGltZS91bmtub3duIn1mdW5jdGlvbiBpcChlKXtpZihudWxsPT1lKXJldHVybnt9O2xldCB0PXt9O2lmKGUgaW5zdGFuY2VvZiBIZWFkZXJzKWUuZm9yRWFjaCgoZSxyKT0+e3Rbci50b0xvd2VyQ2FzZSgpXT1lfSk7ZWxzZSBmb3IobGV0W3Isbl1vZihBcnJheS5pc0FycmF5KGUpfHwoZT1PYmplY3QuZW50cmllcyhlKSksZSkpbnVsbCE9biYmKHRbci50b0xvd2VyQ2FzZSgpXT1uKTtyZXR1cm4gdH1mdW5jdGlvbiBpbShlLC4uLnQpe2xldCByPW5ldyBIZWFkZXJzKGlwKGUpKSxuPXIuZ2V0KCJ1c2VyLWFnZW50Iil8fCIiO3JldHVybiByLnNldCgidXNlci1hZ2VudCIsW24sLi4udF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiAiKSksT2JqZWN0LmZyb21FbnRyaWVzKHIuZW50cmllcygpKX12YXIgaWg9IjQuMC4yNyIsaXY9KCk9Pmdsb2JhbFRoaXMuZmV0Y2gsaWc9YXN5bmMoe3VybDplLGhlYWRlcnM6dD17fSxzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOnIsZmFpbGVkUmVzcG9uc2VIYW5kbGVyOm4sYWJvcnRTaWduYWw6aSxmZXRjaDphPWl2KCl9KT0+e3RyeXtsZXQgbz1hd2FpdCBhKGUse21ldGhvZDoiR0VUIixoZWFkZXJzOmltKHQsYGFpLXNkay9wcm92aWRlci11dGlscy8ke2lofWAsaWMoKSksc2lnbmFsOml9KSxzPW40KG8pO2lmKCFvLm9rKXtsZXQgdDt0cnl7dD1hd2FpdCBuKHtyZXNwb25zZTpvLHVybDplLHJlcXVlc3RCb2R5VmFsdWVzOnt9fSl9Y2F0Y2godCl7aWYoaXModCl8fGVmLmlzSW5zdGFuY2UodCkpdGhyb3cgdDt0aHJvdyBuZXcgZWYoe21lc3NhZ2U6IkZhaWxlZCB0byBwcm9jZXNzIGVycm9yIHJlc3BvbnNlIixjYXVzZTp0LHN0YXR1c0NvZGU6by5zdGF0dXMsdXJsOmUscmVzcG9uc2VIZWFkZXJzOnMscmVxdWVzdEJvZHlWYWx1ZXM6e319KX10aHJvdyB0LnZhbHVlfXRyeXtyZXR1cm4gYXdhaXQgcih7cmVzcG9uc2U6byx1cmw6ZSxyZXF1ZXN0Qm9keVZhbHVlczp7fX0pfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBFcnJvciYmKGlzKHQpfHxlZi5pc0luc3RhbmNlKHQpKSl0aHJvdyB0O3Rocm93IG5ldyBlZih7bWVzc2FnZToiRmFpbGVkIHRvIHByb2Nlc3Mgc3VjY2Vzc2Z1bCByZXNwb25zZSIsY2F1c2U6dCxzdGF0dXNDb2RlOm8uc3RhdHVzLHVybDplLHJlc3BvbnNlSGVhZGVyczpzLHJlcXVlc3RCb2R5VmFsdWVzOnt9fSl9fWNhdGNoKHQpe3Rocm93IGlkKHtlcnJvcjp0LHVybDplLHJlcXVlc3RCb2R5VmFsdWVzOnt9fSl9fTtmdW5jdGlvbiBpeSh7c2V0dGluZ1ZhbHVlOmUsZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6dH0pe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT9lOm51bGwhPWV8fHZvaWQgMD09PWVvLmRlZmF1bHQ/dm9pZCAwOm51bGwhPShlPWVvLmRlZmF1bHQuZW52W3RdKSYmInN0cmluZyI9PXR5cGVvZiBlP2U6dm9pZCAwfXZhciBpYj0vIig/Ol98XFx1MDA1W0ZmXSkoPzpffFxcdTAwNVtGZl0pKD86cHxcXHUwMDcwKSg/OnJ8XFx1MDA3MikoPzpvfFxcdTAwNltGZl0pKD86dHxcXHUwMDc0KSg/Om98XFx1MDA2W0ZmXSkoPzpffFxcdTAwNVtGZl0pKD86X3xcXHUwMDVbRmZdKSJccyo6LyxpXz0vIig/OmN8XFx1MDA2MykoPzpvfFxcdTAwNltGZl0pKD86bnxcXHUwMDZbRWVdKSg/OnN8XFx1MDA3MykoPzp0fFxcdTAwNzQpKD86cnxcXHUwMDcyKSg/OnV8XFx1MDA3NSkoPzpjfFxcdTAwNjMpKD86dHxcXHUwMDc0KSg/Om98XFx1MDA2W0ZmXSkoPzpyfFxcdTAwNzIpIlxzKjovO2Z1bmN0aW9uIGl4KGUpe2xldCB0PUpTT04ucGFyc2UoZSk7cmV0dXJuIG51bGw9PT10fHwib2JqZWN0IiE9dHlwZW9mIHR8fCExPT09aWIudGVzdChlKSYmITE9PT1pXy50ZXN0KGUpP3Q6ZnVuY3Rpb24oZSl7bGV0IHQ9W2VdO2Zvcig7dC5sZW5ndGg7KXtsZXQgZT10O2ZvcihsZXQgciBvZih0PVtdLGUpKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwociwiX19wcm90b19fIil8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLCJjb25zdHJ1Y3RvciIpJiZudWxsIT09ci5jb25zdHJ1Y3RvciYmIm9iamVjdCI9PXR5cGVvZiByLmNvbnN0cnVjdG9yJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoci5jb25zdHJ1Y3RvciwicHJvdG90eXBlIikpdGhyb3cgU3ludGF4RXJyb3IoIk9iamVjdCBjb250YWlucyBmb3JiaWRkZW4gcHJvdG90eXBlIHByb3BlcnR5Iik7Zm9yKGxldCBlIGluIHIpe2xldCBuPXJbZV07biYmIm9iamVjdCI9PXR5cGVvZiBuJiZ0LnB1c2gobil9fX1yZXR1cm4gZX0odCl9ZnVuY3Rpb24gaSQoZSl7bGV0e3N0YWNrVHJhY2VMaW1pdDp0fT1FcnJvcjt0cnl7RXJyb3Iuc3RhY2tUcmFjZUxpbWl0PTB9Y2F0Y2godCl7cmV0dXJuIGl4KGUpfXRyeXtyZXR1cm4gaXgoZSl9ZmluYWxseXtFcnJvci5zdGFja1RyYWNlTGltaXQ9dH19ZnVuY3Rpb24gaWsoZSl7aWYoIm9iamVjdCI9PT1lLnR5cGV8fEFycmF5LmlzQXJyYXkoZS50eXBlKSYmZS50eXBlLmluY2x1ZGVzKCJvYmplY3QiKSl7ZS5hZGRpdGlvbmFsUHJvcGVydGllcz0hMTtsZXR7cHJvcGVydGllczp0fT1lO2lmKG51bGwhPXQpZm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHQpKXRbZV09aXcodFtlXSl9bnVsbCE9ZS5pdGVtcyYmKGUuaXRlbXM9QXJyYXkuaXNBcnJheShlLml0ZW1zKT9lLml0ZW1zLm1hcChpdyk6aXcoZS5pdGVtcykpLG51bGwhPWUuYW55T2YmJihlLmFueU9mPWUuYW55T2YubWFwKGl3KSksbnVsbCE9ZS5hbGxPZiYmKGUuYWxsT2Y9ZS5hbGxPZi5tYXAoaXcpKSxudWxsIT1lLm9uZU9mJiYoZS5vbmVPZj1lLm9uZU9mLm1hcChpdykpO2xldHtkZWZpbml0aW9uczp0fT1lO2lmKG51bGwhPXQpZm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKHQpKXRbZV09aXcodFtlXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaXcoZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZT9lOmlrKGUpfXZhciBpST1TeW1ib2woIkxldCB6b2RUb0pzb25TY2hlbWEgZGVjaWRlIG9uIHdoaWNoIHBhcnNlciB0byB1c2UiKSxpUz17bmFtZTp2b2lkIDAsJHJlZlN0cmF0ZWd5OiJyb290IixiYXNlUGF0aDpbIiMiXSxlZmZlY3RTdHJhdGVneToiaW5wdXQiLHBpcGVTdHJhdGVneToiYWxsIixkYXRlU3RyYXRlZ3k6ImZvcm1hdDpkYXRlLXRpbWUiLG1hcFN0cmF0ZWd5OiJlbnRyaWVzIixyZW1vdmVBZGRpdGlvbmFsU3RyYXRlZ3k6InBhc3N0aHJvdWdoIixhbGxvd2VkQWRkaXRpb25hbFByb3BlcnRpZXM6ITAscmVqZWN0ZWRBZGRpdGlvbmFsUHJvcGVydGllczohMSxkZWZpbml0aW9uUGF0aDoiZGVmaW5pdGlvbnMiLHN0cmljdFVuaW9uczohMSxkZWZpbml0aW9uczp7fSxlcnJvck1lc3NhZ2VzOiExLHBhdHRlcm5TdHJhdGVneToiZXNjYXBlIixhcHBseVJlZ2V4RmxhZ3M6ITEsZW1haWxTdHJhdGVneToiZm9ybWF0OmVtYWlsIixiYXNlNjRTdHJhdGVneToiY29udGVudEVuY29kaW5nOmJhc2U2NCIsbmFtZVN0cmF0ZWd5OiJyZWYifTtmdW5jdGlvbiBpTyhlLHQpe3JldHVybiBpRyhlLnR5cGUuX2RlZix0KX12YXIgaWo9dm9pZCAwLGlFPS9eW2NDXVteXHMtXXs4LH0kLyxpWj0vXlswLTlhLXpdKyQvLGlOPS9eWzAtOUEtSEpLTU5QLVRWLVpdezI2fSQvLGlUPS9eKD8hXC4pKD8hLipcLlwuKShbYS16QS1aMC05XycrXC1cLl0qKVthLXpBLVowLTlfKy1dQChbYS16QS1aMC05XVthLXpBLVowLTlcLV0qXC4pK1thLXpBLVpdezIsfSQvLGl6PSgpPT4odm9pZCAwPT09aWomJihpaj1SZWdFeHAoIl4oXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxwe0Vtb2ppX0NvbXBvbmVudH0pKyQiLCJ1IikpLGlqKSxpUD0vXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXC8oM1swLTJdfFsxMl0/WzAtOV0pJC8saUE9L14oKFswLTlhLWZBLUZdezEsNH06KXs3LDd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdezEsfXw6OihmZmZmKDowezEsNH0pezAsMX06KXswLDF9KCgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSlcLil7MywzfSgyNVswLTVdfCgyWzAtNF18MXswLDF9WzAtOV0pezAsMX1bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pXC4pezMsM30oMjVbMC01XXwoMlswLTRdfDF7MCwxfVswLTldKXswLDF9WzAtOV0pKVwvKDEyWzAtOF18MVswMV1bMC05XXxbMS05XT9bMC05XSkkLyxpVT0vXihbMC05YS16QS1aKy9dezR9KSooKFswLTlhLXpBLVorL117Mn09PSl8KFswLTlhLXpBLVorL117M309KSk/JC8saUM9L14oWzAtOWEtekEtWi1fXXs0fSkqKChbMC05YS16QS1aLV9dezJ9KD09KT8pfChbMC05YS16QS1aLV9dezN9KD0pPykpPyQvLGlEPS9eW2EtekEtWjAtOV8tXXsyMX0kLyxpUj0vXltBLVphLXowLTktX10rXC5bQS1aYS16MC05LV9dK1wuW0EtWmEtejAtOS1fXSokLztmdW5jdGlvbiBpTShlLHQpe2xldCByPXt0eXBlOiJzdHJpbmcifTtpZihlLmNoZWNrcylmb3IobGV0IG4gb2YgZS5jaGVja3Mpc3dpdGNoKG4ua2luZCl7Y2FzZSJtaW4iOnIubWluTGVuZ3RoPSJudW1iZXIiPT10eXBlb2Ygci5taW5MZW5ndGg/TWF0aC5tYXgoci5taW5MZW5ndGgsbi52YWx1ZSk6bi52YWx1ZTticmVhaztjYXNlIm1heCI6ci5tYXhMZW5ndGg9Im51bWJlciI9PXR5cGVvZiByLm1heExlbmd0aD9NYXRoLm1pbihyLm1heExlbmd0aCxuLnZhbHVlKTpuLnZhbHVlO2JyZWFrO2Nhc2UiZW1haWwiOnN3aXRjaCh0LmVtYWlsU3RyYXRlZ3kpe2Nhc2UiZm9ybWF0OmVtYWlsIjppVihyLCJlbWFpbCIsbi5tZXNzYWdlLHQpO2JyZWFrO2Nhc2UiZm9ybWF0Omlkbi1lbWFpbCI6aVYociwiaWRuLWVtYWlsIixuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJwYXR0ZXJuOnpvZCI6aUIocixpVCxuLm1lc3NhZ2UsdCl9YnJlYWs7Y2FzZSJ1cmwiOmlWKHIsInVyaSIsbi5tZXNzYWdlLHQpO2JyZWFrO2Nhc2UidXVpZCI6aVYociwidXVpZCIsbi5tZXNzYWdlLHQpO2JyZWFrO2Nhc2UicmVnZXgiOmlCKHIsbi5yZWdleCxuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJjdWlkIjppQihyLGlFLG4ubWVzc2FnZSx0KTticmVhaztjYXNlImN1aWQyIjppQihyLGlaLG4ubWVzc2FnZSx0KTticmVhaztjYXNlInN0YXJ0c1dpdGgiOmlCKHIsUmVnRXhwKGBeJHtpTChuLnZhbHVlLHQpfWApLG4ubWVzc2FnZSx0KTticmVhaztjYXNlImVuZHNXaXRoIjppQihyLFJlZ0V4cChgJHtpTChuLnZhbHVlLHQpfSRgKSxuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJkYXRldGltZSI6aVYociwiZGF0ZS10aW1lIixuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJkYXRlIjppVihyLCJkYXRlIixuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJ0aW1lIjppVihyLCJ0aW1lIixuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJkdXJhdGlvbiI6aVYociwiZHVyYXRpb24iLG4ubWVzc2FnZSx0KTticmVhaztjYXNlImxlbmd0aCI6ci5taW5MZW5ndGg9Im51bWJlciI9PXR5cGVvZiByLm1pbkxlbmd0aD9NYXRoLm1heChyLm1pbkxlbmd0aCxuLnZhbHVlKTpuLnZhbHVlLHIubWF4TGVuZ3RoPSJudW1iZXIiPT10eXBlb2Ygci5tYXhMZW5ndGg/TWF0aC5taW4oci5tYXhMZW5ndGgsbi52YWx1ZSk6bi52YWx1ZTticmVhaztjYXNlImluY2x1ZGVzIjppQihyLFJlZ0V4cChpTChuLnZhbHVlLHQpKSxuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJpcCI6InY2IiE9PW4udmVyc2lvbiYmaVYociwiaXB2NCIsbi5tZXNzYWdlLHQpLCJ2NCIhPT1uLnZlcnNpb24mJmlWKHIsImlwdjYiLG4ubWVzc2FnZSx0KTticmVhaztjYXNlImJhc2U2NHVybCI6aUIocixpQyxuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJqd3QiOmlCKHIsaVIsbi5tZXNzYWdlLHQpO2JyZWFrO2Nhc2UiY2lkciI6InY2IiE9PW4udmVyc2lvbiYmaUIocixpUCxuLm1lc3NhZ2UsdCksInY0IiE9PW4udmVyc2lvbiYmaUIocixpQSxuLm1lc3NhZ2UsdCk7YnJlYWs7Y2FzZSJlbW9qaSI6aUIocixpeigpLG4ubWVzc2FnZSx0KTticmVhaztjYXNlInVsaWQiOmlCKHIsaU4sbi5tZXNzYWdlLHQpO2JyZWFrO2Nhc2UiYmFzZTY0Ijpzd2l0Y2godC5iYXNlNjRTdHJhdGVneSl7Y2FzZSJmb3JtYXQ6YmluYXJ5IjppVihyLCJiaW5hcnkiLG4ubWVzc2FnZSx0KTticmVhaztjYXNlImNvbnRlbnRFbmNvZGluZzpiYXNlNjQiOnIuY29udGVudEVuY29kaW5nPSJiYXNlNjQiO2JyZWFrO2Nhc2UicGF0dGVybjp6b2QiOmlCKHIsaVUsbi5tZXNzYWdlLHQpfWJyZWFrO2Nhc2UibmFub2lkIjppQihyLGlELG4ubWVzc2FnZSx0KX1yZXR1cm4gcn1mdW5jdGlvbiBpTChlLHQpe3JldHVybiJlc2NhcGUiPT09dC5wYXR0ZXJuU3RyYXRlZ3k/ZnVuY3Rpb24oZSl7bGV0IHQ9IiI7Zm9yKGxldCByPTA7cjxlLmxlbmd0aDtyKyspaUYuaGFzKGVbcl0pfHwodCs9IlxcIiksdCs9ZVtyXTtyZXR1cm4gdH0oZSk6ZX12YXIgaUY9bmV3IFNldCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVlhZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ4eXowMTIzNDU2Nzg5Iik7ZnVuY3Rpb24gaVYoZSx0LHIsbil7dmFyIGk7ZS5mb3JtYXR8fChudWxsPT0oaT1lLmFueU9mKT92b2lkIDA6aS5zb21lKGU9PmUuZm9ybWF0KSk/KGUuYW55T2Z8fChlLmFueU9mPVtdKSxlLmZvcm1hdCYmKGUuYW55T2YucHVzaCh7Zm9ybWF0OmUuZm9ybWF0fSksZGVsZXRlIGUuZm9ybWF0KSxlLmFueU9mLnB1c2goe2Zvcm1hdDp0LC4uLnImJm4uZXJyb3JNZXNzYWdlcyYme2Vycm9yTWVzc2FnZTp7Zm9ybWF0OnJ9fX0pKTplLmZvcm1hdD10fWZ1bmN0aW9uIGlCKGUsdCxyLG4pe3ZhciBpO2UucGF0dGVybnx8KG51bGw9PShpPWUuYWxsT2YpP3ZvaWQgMDppLnNvbWUoZT0+ZS5wYXR0ZXJuKSk/KGUuYWxsT2Z8fChlLmFsbE9mPVtdKSxlLnBhdHRlcm4mJihlLmFsbE9mLnB1c2goe3BhdHRlcm46ZS5wYXR0ZXJufSksZGVsZXRlIGUucGF0dGVybiksZS5hbGxPZi5wdXNoKHtwYXR0ZXJuOmlKKHQsbiksLi4uciYmbi5lcnJvck1lc3NhZ2VzJiZ7ZXJyb3JNZXNzYWdlOntwYXR0ZXJuOnJ9fX0pKTplLnBhdHRlcm49aUoodCxuKX1mdW5jdGlvbiBpSihlLHQpe3ZhciByO2lmKCF0LmFwcGx5UmVnZXhGbGFnc3x8IWUuZmxhZ3MpcmV0dXJuIGUuc291cmNlO2xldCBuPXtpOmUuZmxhZ3MuaW5jbHVkZXMoImkiKSxtOmUuZmxhZ3MuaW5jbHVkZXMoIm0iKSxzOmUuZmxhZ3MuaW5jbHVkZXMoInMiKX0saT1uLmk/ZS5zb3VyY2UudG9Mb3dlckNhc2UoKTplLnNvdXJjZSxhPSIiLG89ITEscz0hMSx1PSExO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtpZihvKXthKz1pW2VdLG89ITE7Y29udGludWV9aWYobi5pKXtpZihzKXtpZihpW2VdLm1hdGNoKC9bYS16XS8pKXt1PyhhKz1pW2VdLGErPWAke2lbZS0yXX0tJHtpW2VdfWAudG9VcHBlckNhc2UoKSx1PSExKToiLSI9PT1pW2UrMV0mJihudWxsPT0ocj1pW2UrMl0pP3ZvaWQgMDpyLm1hdGNoKC9bYS16XS8pKT8oYSs9aVtlXSx1PSEwKTphKz1gJHtpW2VdfSR7aVtlXS50b1VwcGVyQ2FzZSgpfWA7Y29udGludWV9fWVsc2UgaWYoaVtlXS5tYXRjaCgvW2Etel0vKSl7YSs9YFske2lbZV19JHtpW2VdLnRvVXBwZXJDYXNlKCl9XWA7Y29udGludWV9fWlmKG4ubSl7aWYoIl4iPT09aVtlXSl7YSs9YChefCg/PD1bXHIKXSkpYDtjb250aW51ZX1lbHNlIGlmKCIkIj09PWlbZV0pe2ErPWAoJHwoPz1bXHIKXSkpYDtjb250aW51ZX19aWYobi5zJiYiLiI9PT1pW2VdKXthKz1zP2Ake2lbZV19XHIKYDpgWyR7aVtlXX1ccgpdYDtjb250aW51ZX1hKz1pW2VdLCJcXCI9PT1pW2VdP289ITA6cyYmIl0iPT09aVtlXT9zPSExOnN8fCJbIiE9PWlbZV18fChzPSEwKX10cnl7bmV3IFJlZ0V4cChhKX1jYXRjaChyKXtyZXR1cm4gY29uc29sZS53YXJuKGBDb3VsZCBub3QgY29udmVydCByZWdleCBwYXR0ZXJuIGF0ICR7dC5jdXJyZW50UGF0aC5qb2luKCIvIil9IHRvIGEgZmxhZy1pbmRlcGVuZGVudCBmb3JtISBGYWxsaW5nIGJhY2sgdG8gdGhlIGZsYWctaWdub3JhbnQgc291cmNlYCksZS5zb3VyY2V9cmV0dXJuIGF9ZnVuY3Rpb24gaVcoZSx0KXt2YXIgcixuLGksYSxvLHM7bGV0IHU9e3R5cGU6Im9iamVjdCIsYWRkaXRpb25hbFByb3BlcnRpZXM6bnVsbCE9KHI9aUcoZS52YWx1ZVR5cGUuX2RlZix7Li4udCxjdXJyZW50UGF0aDpbLi4udC5jdXJyZW50UGF0aCwiYWRkaXRpb25hbFByb3BlcnRpZXMiXX0pKT9yOnQuYWxsb3dlZEFkZGl0aW9uYWxQcm9wZXJ0aWVzfTtpZigobnVsbD09KG49ZS5rZXlUeXBlKT92b2lkIDA6bi5fZGVmLnR5cGVOYW1lKT09PWsuWm9kU3RyaW5nJiYobnVsbD09KGk9ZS5rZXlUeXBlLl9kZWYuY2hlY2tzKT92b2lkIDA6aS5sZW5ndGgpKXtsZXR7dHlwZTpyLC4uLm59PWlNKGUua2V5VHlwZS5fZGVmLHQpO3JldHVybnsuLi51LHByb3BlcnR5TmFtZXM6bn19aWYoKG51bGw9PShhPWUua2V5VHlwZSk/dm9pZCAwOmEuX2RlZi50eXBlTmFtZSk9PT1rLlpvZEVudW0pcmV0dXJuey4uLnUscHJvcGVydHlOYW1lczp7ZW51bTplLmtleVR5cGUuX2RlZi52YWx1ZXN9fTtpZigobnVsbD09KG89ZS5rZXlUeXBlKT92b2lkIDA6by5fZGVmLnR5cGVOYW1lKT09PWsuWm9kQnJhbmRlZCYmZS5rZXlUeXBlLl9kZWYudHlwZS5fZGVmLnR5cGVOYW1lPT09ay5ab2RTdHJpbmcmJihudWxsPT0ocz1lLmtleVR5cGUuX2RlZi50eXBlLl9kZWYuY2hlY2tzKT92b2lkIDA6cy5sZW5ndGgpKXtsZXR7dHlwZTpyLC4uLm59PWlPKGUua2V5VHlwZS5fZGVmLHQpO3JldHVybnsuLi51LHByb3BlcnR5TmFtZXM6bn19cmV0dXJuIHV9dmFyIGlxPXtab2RTdHJpbmc6InN0cmluZyIsWm9kTnVtYmVyOiJudW1iZXIiLFpvZEJpZ0ludDoiaW50ZWdlciIsWm9kQm9vbGVhbjoiYm9vbGVhbiIsWm9kTnVsbDoibnVsbCJ9O2Z1bmN0aW9uIGlHKGUsdCxyPSExKXt2YXIgbjtsZXQgaT10LnNlZW4uZ2V0KGUpO2lmKHQub3ZlcnJpZGUpe2xldCBhPW51bGw9PShuPXQub3ZlcnJpZGUpP3ZvaWQgMDpuLmNhbGwodCxlLHQsaSxyKTtpZihhIT09aUkpcmV0dXJuIGF9aWYoaSYmIXIpe2xldCBlPWlLKGksdCk7aWYodm9pZCAwIT09ZSlyZXR1cm4gZX1sZXQgYT17ZGVmOmUscGF0aDp0LmN1cnJlbnRQYXRoLGpzb25TY2hlbWE6dm9pZCAwfTt0LnNlZW4uc2V0KGUsYSk7bGV0IG89KChlLHQscik9Pnt2YXIgbixpLGEsbyxzLHU7c3dpdGNoKHQpe2Nhc2Ugay5ab2RTdHJpbmc6cmV0dXJuIGlNKGUscik7Y2FzZSBrLlpvZE51bWJlcjpsZXQgbD17dHlwZToibnVtYmVyIn07aWYoIWUuY2hlY2tzKXJldHVybiBsO2ZvcihsZXQgdCBvZiBlLmNoZWNrcylzd2l0Y2godC5raW5kKXtjYXNlImludCI6bC50eXBlPSJpbnRlZ2VyIjticmVhaztjYXNlIm1pbiI6dC5pbmNsdXNpdmU/bC5taW5pbXVtPXQudmFsdWU6bC5leGNsdXNpdmVNaW5pbXVtPXQudmFsdWU7YnJlYWs7Y2FzZSJtYXgiOnQuaW5jbHVzaXZlP2wubWF4aW11bT10LnZhbHVlOmwuZXhjbHVzaXZlTWF4aW11bT10LnZhbHVlO2JyZWFrO2Nhc2UibXVsdGlwbGVPZiI6bC5tdWx0aXBsZU9mPXQudmFsdWV9cmV0dXJuIGw7Y2FzZSBrLlpvZE9iamVjdDpyZXR1cm4gZnVuY3Rpb24oZSx0KXtsZXQgcj17dHlwZToib2JqZWN0Iixwcm9wZXJ0aWVzOnt9fSxuPVtdLGk9ZS5zaGFwZSgpO2ZvcihsZXQgZSBpbiBpKXtsZXQgYT1pW2VdO2lmKHZvaWQgMD09PWF8fHZvaWQgMD09PWEuX2RlZiljb250aW51ZTtsZXQgbz1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIGUuaXNPcHRpb25hbCgpfWNhdGNoKGUpe3JldHVybiEwfX0oYSkscz1pRyhhLl9kZWYsey4uLnQsY3VycmVudFBhdGg6Wy4uLnQuY3VycmVudFBhdGgsInByb3BlcnRpZXMiLGVdLHByb3BlcnR5UGF0aDpbLi4udC5jdXJyZW50UGF0aCwicHJvcGVydGllcyIsZV19KTt2b2lkIDAhPT1zJiYoci5wcm9wZXJ0aWVzW2VdPXMsb3x8bi5wdXNoKGUpKX1uLmxlbmd0aCYmKHIucmVxdWlyZWQ9bik7bGV0IGE9ZnVuY3Rpb24oZSx0KXtpZigiWm9kTmV2ZXIiIT09ZS5jYXRjaGFsbC5fZGVmLnR5cGVOYW1lKXJldHVybiBpRyhlLmNhdGNoYWxsLl9kZWYsey4uLnQsY3VycmVudFBhdGg6Wy4uLnQuY3VycmVudFBhdGgsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIl19KTtzd2l0Y2goZS51bmtub3duS2V5cyl7Y2FzZSJwYXNzdGhyb3VnaCI6cmV0dXJuIHQuYWxsb3dlZEFkZGl0aW9uYWxQcm9wZXJ0aWVzO2Nhc2Uic3RyaWN0IjpyZXR1cm4gdC5yZWplY3RlZEFkZGl0aW9uYWxQcm9wZXJ0aWVzO2Nhc2Uic3RyaXAiOnJldHVybiJzdHJpY3QiPT09dC5yZW1vdmVBZGRpdGlvbmFsU3RyYXRlZ3k/dC5hbGxvd2VkQWRkaXRpb25hbFByb3BlcnRpZXM6dC5yZWplY3RlZEFkZGl0aW9uYWxQcm9wZXJ0aWVzfX0oZSx0KTtyZXR1cm4gdm9pZCAwIT09YSYmKHIuYWRkaXRpb25hbFByb3BlcnRpZXM9YSkscn0oZSxyKTtjYXNlIGsuWm9kQmlnSW50OmxldCBkPXt0eXBlOiJpbnRlZ2VyIixmb3JtYXQ6ImludDY0In07aWYoIWUuY2hlY2tzKXJldHVybiBkO2ZvcihsZXQgdCBvZiBlLmNoZWNrcylzd2l0Y2godC5raW5kKXtjYXNlIm1pbiI6dC5pbmNsdXNpdmU/ZC5taW5pbXVtPXQudmFsdWU6ZC5leGNsdXNpdmVNaW5pbXVtPXQudmFsdWU7YnJlYWs7Y2FzZSJtYXgiOnQuaW5jbHVzaXZlP2QubWF4aW11bT10LnZhbHVlOmQuZXhjbHVzaXZlTWF4aW11bT10LnZhbHVlO2JyZWFrO2Nhc2UibXVsdGlwbGVPZiI6ZC5tdWx0aXBsZU9mPXQudmFsdWV9cmV0dXJuIGQ7Y2FzZSBrLlpvZEJvb2xlYW46cmV0dXJue3R5cGU6ImJvb2xlYW4ifTtjYXNlIGsuWm9kRGF0ZTpyZXR1cm4gZnVuY3Rpb24gZSh0LHIsbil7bGV0IGk9bnVsbCE9bj9uOnIuZGF0ZVN0cmF0ZWd5O2lmKEFycmF5LmlzQXJyYXkoaSkpcmV0dXJue2FueU9mOmkubWFwKChuLGkpPT5lKHQscixuKSl9O3N3aXRjaChpKXtjYXNlInN0cmluZyI6Y2FzZSJmb3JtYXQ6ZGF0ZS10aW1lIjpyZXR1cm57dHlwZToic3RyaW5nIixmb3JtYXQ6ImRhdGUtdGltZSJ9O2Nhc2UiZm9ybWF0OmRhdGUiOnJldHVybnt0eXBlOiJzdHJpbmciLGZvcm1hdDoiZGF0ZSJ9O2Nhc2UiaW50ZWdlciI6dmFyIGE9dDtsZXQgbz17dHlwZToiaW50ZWdlciIsZm9ybWF0OiJ1bml4LXRpbWUifTtmb3IobGV0IGUgb2YgYS5jaGVja3Mpc3dpdGNoKGUua2luZCl7Y2FzZSJtaW4iOm8ubWluaW11bT1lLnZhbHVlO2JyZWFrO2Nhc2UibWF4IjpvLm1heGltdW09ZS52YWx1ZX1yZXR1cm4gb319KGUscik7Y2FzZSBrLlpvZFVuZGVmaW5lZDpyZXR1cm57bm90Ont9fTtjYXNlIGsuWm9kTnVsbDpyZXR1cm57dHlwZToibnVsbCJ9O2Nhc2Ugay5ab2RBcnJheTpsZXQgYztyZXR1cm4gYz17dHlwZToiYXJyYXkifSwobnVsbD09KGE9ZS50eXBlKT92b2lkIDA6YS5fZGVmKSYmKG51bGw9PShzPW51bGw9PShvPWUudHlwZSk/dm9pZCAwOm8uX2RlZik/dm9pZCAwOnMudHlwZU5hbWUpIT09ay5ab2RBbnkmJihjLml0ZW1zPWlHKGUudHlwZS5fZGVmLHsuLi5yLGN1cnJlbnRQYXRoOlsuLi5yLmN1cnJlbnRQYXRoLCJpdGVtcyJdfSkpLGUubWluTGVuZ3RoJiYoYy5taW5JdGVtcz1lLm1pbkxlbmd0aC52YWx1ZSksZS5tYXhMZW5ndGgmJihjLm1heEl0ZW1zPWUubWF4TGVuZ3RoLnZhbHVlKSxlLmV4YWN0TGVuZ3RoJiYoYy5taW5JdGVtcz1lLmV4YWN0TGVuZ3RoLnZhbHVlLGMubWF4SXRlbXM9ZS5leGFjdExlbmd0aC52YWx1ZSksYztjYXNlIGsuWm9kVW5pb246Y2FzZSBrLlpvZERpc2NyaW1pbmF0ZWRVbmlvbjpsZXQgcCxtPWUub3B0aW9ucyBpbnN0YW5jZW9mIE1hcD9BcnJheS5mcm9tKGUub3B0aW9ucy52YWx1ZXMoKSk6ZS5vcHRpb25zO2lmKG0uZXZlcnkoZT0+ZS5fZGVmLnR5cGVOYW1lIGluIGlxJiYoIWUuX2RlZi5jaGVja3N8fCFlLl9kZWYuY2hlY2tzLmxlbmd0aCkpKXtsZXQgZT1tLnJlZHVjZSgoZSx0KT0+e2xldCByPWlxW3QuX2RlZi50eXBlTmFtZV07cmV0dXJuIHImJiFlLmluY2x1ZGVzKHIpP1suLi5lLHJdOmV9LFtdKTtyZXR1cm57dHlwZTplLmxlbmd0aD4xP2U6ZVswXX19aWYobS5ldmVyeShlPT4iWm9kTGl0ZXJhbCI9PT1lLl9kZWYudHlwZU5hbWUmJiFlLmRlc2NyaXB0aW9uKSl7bGV0IGU9bS5yZWR1Y2UoKGUsdCk9PntsZXQgcj10eXBlb2YgdC5fZGVmLnZhbHVlO3N3aXRjaChyKXtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmNhc2UiYm9vbGVhbiI6cmV0dXJuWy4uLmUscl07Y2FzZSJiaWdpbnQiOnJldHVyblsuLi5lLCJpbnRlZ2VyIl07Y2FzZSJvYmplY3QiOmlmKG51bGw9PT10Ll9kZWYudmFsdWUpcmV0dXJuWy4uLmUsIm51bGwiXTtkZWZhdWx0OnJldHVybiBlfX0sW10pO2lmKGUubGVuZ3RoPT09bS5sZW5ndGgpe2xldCB0PWUuZmlsdGVyKChlLHQscik9PnIuaW5kZXhPZihlKT09PXQpO3JldHVybnt0eXBlOnQubGVuZ3RoPjE/dDp0WzBdLGVudW06bS5yZWR1Y2UoKGUsdCk9PmUuaW5jbHVkZXModC5fZGVmLnZhbHVlKT9lOlsuLi5lLHQuX2RlZi52YWx1ZV0sW10pfX19ZWxzZSBpZihtLmV2ZXJ5KGU9PiJab2RFbnVtIj09PWUuX2RlZi50eXBlTmFtZSkpcmV0dXJue3R5cGU6InN0cmluZyIsZW51bTptLnJlZHVjZSgoZSx0KT0+Wy4uLmUsLi4udC5fZGVmLnZhbHVlcy5maWx0ZXIodD0+IWUuaW5jbHVkZXModCkpXSxbXSl9O3JldHVybiBuPWUsaT1yLChwPShuLm9wdGlvbnMgaW5zdGFuY2VvZiBNYXA/QXJyYXkuZnJvbShuLm9wdGlvbnMudmFsdWVzKCkpOm4ub3B0aW9ucykubWFwKChlLHQpPT5pRyhlLl9kZWYsey4uLmksY3VycmVudFBhdGg6Wy4uLmkuY3VycmVudFBhdGgsImFueU9mIixgJHt0fWBdfSkpLmZpbHRlcihlPT4hIWUmJighaS5zdHJpY3RVbmlvbnN8fCJvYmplY3QiPT10eXBlb2YgZSYmT2JqZWN0LmtleXMoZSkubGVuZ3RoPjApKSkubGVuZ3RoP3thbnlPZjpwfTp2b2lkIDA7Y2FzZSBrLlpvZEludGVyc2VjdGlvbjpsZXQgZixoO3JldHVybiBmPVtpRyhlLmxlZnQuX2RlZix7Li4ucixjdXJyZW50UGF0aDpbLi4uci5jdXJyZW50UGF0aCwiYWxsT2YiLCIwIl19KSxpRyhlLnJpZ2h0Ll9kZWYsey4uLnIsY3VycmVudFBhdGg6Wy4uLnIuY3VycmVudFBhdGgsImFsbE9mIiwiMSJdfSldLmZpbHRlcihlPT4hIWUpLGg9W10sZi5mb3JFYWNoKGU9PntpZigoISgidHlwZSJpbiBlKXx8InN0cmluZyIhPT1lLnR5cGUpJiYiYWxsT2YiaW4gZSloLnB1c2goLi4uZS5hbGxPZik7ZWxzZXtsZXQgdD1lO2lmKCJhZGRpdGlvbmFsUHJvcGVydGllcyJpbiBlJiYhMT09PWUuYWRkaXRpb25hbFByb3BlcnRpZXMpe2xldHthZGRpdGlvbmFsUHJvcGVydGllczpyLC4uLm59PWU7dD1ufWgucHVzaCh0KX19KSxoLmxlbmd0aD97YWxsT2Y6aH06dm9pZCAwO2Nhc2Ugay5ab2RUdXBsZTpyZXR1cm4gZS5yZXN0P3t0eXBlOiJhcnJheSIsbWluSXRlbXM6ZS5pdGVtcy5sZW5ndGgsaXRlbXM6ZS5pdGVtcy5tYXAoKGUsdCk9PmlHKGUuX2RlZix7Li4ucixjdXJyZW50UGF0aDpbLi4uci5jdXJyZW50UGF0aCwiaXRlbXMiLGAke3R9YF19KSkucmVkdWNlKChlLHQpPT52b2lkIDA9PT10P2U6Wy4uLmUsdF0sW10pLGFkZGl0aW9uYWxJdGVtczppRyhlLnJlc3QuX2RlZix7Li4ucixjdXJyZW50UGF0aDpbLi4uci5jdXJyZW50UGF0aCwiYWRkaXRpb25hbEl0ZW1zIl19KX06e3R5cGU6ImFycmF5IixtaW5JdGVtczplLml0ZW1zLmxlbmd0aCxtYXhJdGVtczplLml0ZW1zLmxlbmd0aCxpdGVtczplLml0ZW1zLm1hcCgoZSx0KT0+aUcoZS5fZGVmLHsuLi5yLGN1cnJlbnRQYXRoOlsuLi5yLmN1cnJlbnRQYXRoLCJpdGVtcyIsYCR7dH1gXX0pKS5yZWR1Y2UoKGUsdCk9PnZvaWQgMD09PXQ/ZTpbLi4uZSx0XSxbXSl9O2Nhc2Ugay5ab2RSZWNvcmQ6cmV0dXJuIGlXKGUscik7Y2FzZSBrLlpvZExpdGVyYWw6bGV0IHY7cmV0dXJuImJpZ2ludCIhPSh2PXR5cGVvZiBlLnZhbHVlKSYmIm51bWJlciIhPT12JiYiYm9vbGVhbiIhPT12JiYic3RyaW5nIiE9PXY/e3R5cGU6QXJyYXkuaXNBcnJheShlLnZhbHVlKT8iYXJyYXkiOiJvYmplY3QifTp7dHlwZToiYmlnaW50Ij09PXY/ImludGVnZXIiOnYsY29uc3Q6ZS52YWx1ZX07Y2FzZSBrLlpvZEVudW06cmV0dXJue3R5cGU6InN0cmluZyIsZW51bTpBcnJheS5mcm9tKGUudmFsdWVzKX07Y2FzZSBrLlpvZE5hdGl2ZUVudW06bGV0IGcseSxiO3JldHVybiBnPWUudmFsdWVzLHt0eXBlOjE9PT0oYj1BcnJheS5mcm9tKG5ldyBTZXQoKHk9T2JqZWN0LmtleXMoZS52YWx1ZXMpLmZpbHRlcihlPT4ibnVtYmVyIiE9dHlwZW9mIGdbZ1tlXV0pLm1hcChlPT5nW2VdKSkubWFwKGU9PnR5cGVvZiBlKSkpKS5sZW5ndGg/InN0cmluZyI9PT1iWzBdPyJzdHJpbmciOiJudW1iZXIiOlsic3RyaW5nIiwibnVtYmVyIl0sZW51bTp5fTtjYXNlIGsuWm9kTnVsbGFibGU6aWYoWyJab2RTdHJpbmciLCJab2ROdW1iZXIiLCJab2RCaWdJbnQiLCJab2RCb29sZWFuIiwiWm9kTnVsbCJdLmluY2x1ZGVzKGUuaW5uZXJUeXBlLl9kZWYudHlwZU5hbWUpJiYoIWUuaW5uZXJUeXBlLl9kZWYuY2hlY2tzfHwhZS5pbm5lclR5cGUuX2RlZi5jaGVja3MubGVuZ3RoKSlyZXR1cm57dHlwZTpbaXFbZS5pbm5lclR5cGUuX2RlZi50eXBlTmFtZV0sIm51bGwiXX07bGV0IF89aUcoZS5pbm5lclR5cGUuX2RlZix7Li4ucixjdXJyZW50UGF0aDpbLi4uci5jdXJyZW50UGF0aCwiYW55T2YiLCIwIl19KTtyZXR1cm4gXyYme2FueU9mOltfLHt0eXBlOiJudWxsIn1dfTtjYXNlIGsuWm9kT3B0aW9uYWw6aWYoci5jdXJyZW50UGF0aC50b1N0cmluZygpPT09KG51bGw9PSh1PXIucHJvcGVydHlQYXRoKT92b2lkIDA6dS50b1N0cmluZygpKSlyZXR1cm4gaUcoZS5pbm5lclR5cGUuX2RlZixyKTtsZXQgeD1pRyhlLmlubmVyVHlwZS5fZGVmLHsuLi5yLGN1cnJlbnRQYXRoOlsuLi5yLmN1cnJlbnRQYXRoLCJhbnlPZiIsIjEiXX0pO3JldHVybiB4P3thbnlPZjpbe25vdDp7fX0seF19Ont9O2Nhc2Ugay5ab2RNYXA6aWYoInJlY29yZCI9PT1yLm1hcFN0cmF0ZWd5KXJldHVybiBpVyhlLHIpO3JldHVybnt0eXBlOiJhcnJheSIsbWF4SXRlbXM6MTI1LGl0ZW1zOnt0eXBlOiJhcnJheSIsaXRlbXM6W2lHKGUua2V5VHlwZS5fZGVmLHsuLi5yLGN1cnJlbnRQYXRoOlsuLi5yLmN1cnJlbnRQYXRoLCJpdGVtcyIsIml0ZW1zIiwiMCJdfSl8fHt9LGlHKGUudmFsdWVUeXBlLl9kZWYsey4uLnIsY3VycmVudFBhdGg6Wy4uLnIuY3VycmVudFBhdGgsIml0ZW1zIiwiaXRlbXMiLCIxIl19KXx8e31dLG1pbkl0ZW1zOjIsbWF4SXRlbXM6Mn19O2Nhc2Ugay5ab2RTZXQ6bGV0ICQ7cmV0dXJuICQ9e3R5cGU6ImFycmF5Iix1bmlxdWVJdGVtczohMCxpdGVtczppRyhlLnZhbHVlVHlwZS5fZGVmLHsuLi5yLGN1cnJlbnRQYXRoOlsuLi5yLmN1cnJlbnRQYXRoLCJpdGVtcyJdfSl9LGUubWluU2l6ZSYmKCQubWluSXRlbXM9ZS5taW5TaXplLnZhbHVlKSxlLm1heFNpemUmJigkLm1heEl0ZW1zPWUubWF4U2l6ZS52YWx1ZSksJDtjYXNlIGsuWm9kTGF6eTpyZXR1cm4oKT0+ZS5nZXR0ZXIoKS5fZGVmO2Nhc2Ugay5ab2RQcm9taXNlOnJldHVybiBpRyhlLnR5cGUuX2RlZixyKTtjYXNlIGsuWm9kTmFOOmNhc2Ugay5ab2ROZXZlcjpyZXR1cm57bm90Ont9fTtjYXNlIGsuWm9kRWZmZWN0czpyZXR1cm4iaW5wdXQiPT09ci5lZmZlY3RTdHJhdGVneT9pRyhlLnNjaGVtYS5fZGVmLHIpOnt9O2Nhc2Ugay5ab2RBbnk6Y2FzZSBrLlpvZFVua25vd246cmV0dXJue307Y2FzZSBrLlpvZERlZmF1bHQ6cmV0dXJuey4uLmlHKGUuaW5uZXJUeXBlLl9kZWYsciksZGVmYXVsdDplLmRlZmF1bHRWYWx1ZSgpfTtjYXNlIGsuWm9kQnJhbmRlZDpyZXR1cm4gaU8oZSxyKTtjYXNlIGsuWm9kUmVhZG9ubHk6Y2FzZSBrLlpvZENhdGNoOnJldHVybiBpRyhlLmlubmVyVHlwZS5fZGVmLHIpO2Nhc2Ugay5ab2RQaXBlbGluZTppZigiaW5wdXQiPT09ci5waXBlU3RyYXRlZ3kpcmV0dXJuIGlHKGUuaW4uX2RlZixyKTtpZigib3V0cHV0Ij09PXIucGlwZVN0cmF0ZWd5KXJldHVybiBpRyhlLm91dC5fZGVmLHIpO2xldCB3PWlHKGUuaW4uX2RlZix7Li4ucixjdXJyZW50UGF0aDpbLi4uci5jdXJyZW50UGF0aCwiYWxsT2YiLCIwIl19KSxJPWlHKGUub3V0Ll9kZWYsey4uLnIsY3VycmVudFBhdGg6Wy4uLnIuY3VycmVudFBhdGgsImFsbE9mIix3PyIxIjoiMCJdfSk7cmV0dXJue2FsbE9mOlt3LEldLmZpbHRlcihlPT52b2lkIDAhPT1lKX07Y2FzZSBrLlpvZEZ1bmN0aW9uOmNhc2Ugay5ab2RWb2lkOmNhc2Ugay5ab2RTeW1ib2w6ZGVmYXVsdDpyZXR1cm59fSkoZSxlLnR5cGVOYW1lLHQpLHM9ImZ1bmN0aW9uIj09dHlwZW9mIG8/aUcobygpLHQpOm87aWYocyYmaVkoZSx0LHMpLHQucG9zdFByb2Nlc3Mpe2xldCByPXQucG9zdFByb2Nlc3MocyxlLHQpO3JldHVybiBhLmpzb25TY2hlbWE9cyxyfXJldHVybiBhLmpzb25TY2hlbWE9cyxzfXZhciBpSz0oZSx0KT0+e3N3aXRjaCh0LiRyZWZTdHJhdGVneSl7Y2FzZSJyb290IjpyZXR1cm57JHJlZjplLnBhdGguam9pbigiLyIpfTtjYXNlInJlbGF0aXZlIjpyZXR1cm57JHJlZjooKGUsdCk9PntsZXQgcj0wO2Zvcig7cjxlLmxlbmd0aCYmcjx0Lmxlbmd0aCYmZVtyXT09PXRbcl07cisrKTtyZXR1cm5bKGUubGVuZ3RoLXIpLnRvU3RyaW5nKCksLi4udC5zbGljZShyKV0uam9pbigiLyIpfSkodC5jdXJyZW50UGF0aCxlLnBhdGgpfTtjYXNlIm5vbmUiOmNhc2Uic2VlbiI6aWYoZS5wYXRoLmxlbmd0aDx0LmN1cnJlbnRQYXRoLmxlbmd0aCYmZS5wYXRoLmV2ZXJ5KChlLHIpPT50LmN1cnJlbnRQYXRoW3JdPT09ZSkpcmV0dXJuIGNvbnNvbGUud2FybihgUmVjdXJzaXZlIHJlZmVyZW5jZSBkZXRlY3RlZCBhdCAke3QuY3VycmVudFBhdGguam9pbigiLyIpfSEgRGVmYXVsdGluZyB0byBhbnlgKSx7fTtyZXR1cm4ic2VlbiI9PT10LiRyZWZTdHJhdGVneT97fTp2b2lkIDB9fSxpWT0oZSx0LHIpPT4oZS5kZXNjcmlwdGlvbiYmKHIuZGVzY3JpcHRpb249ZS5kZXNjcmlwdGlvbiksciksaUg9U3ltYm9sLmZvcigidmVyY2VsLmFpLnNjaGVtYSIpO2Z1bmN0aW9uIGlYKGUpe2xldCB0O3JldHVybigpPT4obnVsbD09dCYmKHQ9ZSgpKSx0KX1mdW5jdGlvbiBpUShlLHt2YWxpZGF0ZTp0fT17fSl7cmV0dXJue1tpSF06ITAsX3R5cGU6dm9pZCAwLGdldCBqc29uU2NoZW1hKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJihlPWUoKSksZX0sdmFsaWRhdGU6dH19ZnVuY3Rpb24gaTAoZSl7dmFyIHQ7cmV0dXJuIG51bGw9PWU/aVEoe3Byb3BlcnRpZXM6e30sYWRkaXRpb25hbFByb3BlcnRpZXM6ITF9KToib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZpSCBpbiBlJiYhMD09PWVbaUhdJiYianNvblNjaGVtYSJpbiBlJiYidmFsaWRhdGUiaW4gZT9lOiJ+c3RhbmRhcmQiaW4gZT8iem9kIj09PWVbIn5zdGFuZGFyZCJdLnZlbmRvcj9pMShlKToodD1lLGlRKCgpPT5payh0WyJ+c3RhbmRhcmQiXS5qc29uU2NoZW1hLmlucHV0KHt0YXJnZXQ6ImRyYWZ0LTA3In0pKSx7dmFsaWRhdGU6YXN5bmMgZT0+e2xldCByPWF3YWl0IHRbIn5zdGFuZGFyZCJdLnZhbGlkYXRlKGUpO3JldHVybiJ2YWx1ZSJpbiByP3tzdWNjZXNzOiEwLHZhbHVlOnIudmFsdWV9OntzdWNjZXNzOiExLGVycm9yOm5ldyBleih7dmFsdWU6ZSxjYXVzZTpyLmlzc3Vlc30pfX19KSk6ZSgpfWZ1bmN0aW9uIGkxKGUsdCl7dmFyIHIsbjtsZXQgaTtpZigiX3pvZCJpbiBlKXtsZXQgbjtyZXR1cm4gbj1udWxsIT0ocj1udWxsPT10P3ZvaWQgMDp0LnVzZVJlZmVyZW5jZXMpJiZyLGlRKCgpPT5payh0MChlLHt0YXJnZXQ6ImRyYWZ0LTciLGlvOiJpbnB1dCIscmV1c2VkOm4/InJlZiI6ImlubGluZSJ9KSkse3ZhbGlkYXRlOmFzeW5jIHQ9PntsZXQgcj1hd2FpdCB0cShlLHQpO3JldHVybiByLnN1Y2Nlc3M/e3N1Y2Nlc3M6ITAsdmFsdWU6ci5kYXRhfTp7c3VjY2VzczohMSxlcnJvcjpyLmVycm9yfX19KX1yZXR1cm4gaT1udWxsIT0obj1udWxsPT10P3ZvaWQgMDp0LnVzZVJlZmVyZW5jZXMpJiZuLGlRKCgpPT4oKGUsdCk9Pnt2YXIgcjtsZXQgbixpLGE9KGk9dm9pZCAwIT09KG49InN0cmluZyI9PXR5cGVvZiB0P3suLi5pUyxuYW1lOnR9OnsuLi5pUywuLi50fSkubmFtZT9bLi4ubi5iYXNlUGF0aCxuLmRlZmluaXRpb25QYXRoLG4ubmFtZV06bi5iYXNlUGF0aCx7Li4ubixjdXJyZW50UGF0aDppLHByb3BlcnR5UGF0aDp2b2lkIDAsc2VlbjpuZXcgTWFwKE9iamVjdC5lbnRyaWVzKG4uZGVmaW5pdGlvbnMpLm1hcCgoW2UsdF0pPT5bdC5fZGVmLHtkZWY6dC5fZGVmLHBhdGg6Wy4uLm4uYmFzZVBhdGgsbi5kZWZpbml0aW9uUGF0aCxlXSxqc29uU2NoZW1hOnZvaWQgMH1dKSl9KSxvPSJvYmplY3QiPT10eXBlb2YgdCYmdC5kZWZpbml0aW9ucz9PYmplY3QuZW50cmllcyh0LmRlZmluaXRpb25zKS5yZWR1Y2UoKGUsW3Qscl0pPT57dmFyIG47cmV0dXJuey4uLmUsW3RdOm51bGwhPShuPWlHKHIuX2RlZix7Li4uYSxjdXJyZW50UGF0aDpbLi4uYS5iYXNlUGF0aCxhLmRlZmluaXRpb25QYXRoLHRdfSwhMCkpP246e319fSx7fSk6dm9pZCAwLHM9InN0cmluZyI9PXR5cGVvZiB0P3Q6KG51bGw9PXQ/dm9pZCAwOnQubmFtZVN0cmF0ZWd5KT09PSJ0aXRsZSJ8fG51bGw9PXQ/dm9pZCAwOnQubmFtZSx1PW51bGwhPShyPWlHKGUuX2RlZix2b2lkIDA9PT1zP2E6ey4uLmEsY3VycmVudFBhdGg6Wy4uLmEuYmFzZVBhdGgsYS5kZWZpbml0aW9uUGF0aCxzXX0sITEpKT9yOnt9LGw9Im9iamVjdCI9PXR5cGVvZiB0JiZ2b2lkIDAhPT10Lm5hbWUmJiJ0aXRsZSI9PT10Lm5hbWVTdHJhdGVneT90Lm5hbWU6dm9pZCAwO3ZvaWQgMCE9PWwmJih1LnRpdGxlPWwpO2xldCBkPXZvaWQgMD09PXM/bz97Li4udSxbYS5kZWZpbml0aW9uUGF0aF06b306dTp7JHJlZjpbLi4uInJlbGF0aXZlIj09PWEuJHJlZlN0cmF0ZWd5P1tdOmEuYmFzZVBhdGgsYS5kZWZpbml0aW9uUGF0aCxzXS5qb2luKCIvIiksW2EuZGVmaW5pdGlvblBhdGhdOnsuLi5vLFtzXTp1fX07cmV0dXJuIGQuJHNjaGVtYT0iaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjIixkfSkoZSx7JHJlZlN0cmF0ZWd5Omk/InJvb3QiOiJub25lIn0pLHt2YWxpZGF0ZTphc3luYyB0PT57bGV0IHI9YXdhaXQgZS5zYWZlUGFyc2VBc3luYyh0KTtyZXR1cm4gci5zdWNjZXNzP3tzdWNjZXNzOiEwLHZhbHVlOnIuZGF0YX06e3N1Y2Nlc3M6ITEsZXJyb3I6ci5lcnJvcn19fSl9YXN5bmMgZnVuY3Rpb24gaTQoe3ZhbHVlOmUsc2NoZW1hOnQsY29udGV4dDpyfSl7bGV0IG49YXdhaXQgaTYoe3ZhbHVlOmUsc2NoZW1hOnQsY29udGV4dDpyfSk7aWYoIW4uc3VjY2Vzcyl0aHJvdyBlei53cmFwKHt2YWx1ZTplLGNhdXNlOm4uZXJyb3IsY29udGV4dDpyfSk7cmV0dXJuIG4udmFsdWV9YXN5bmMgZnVuY3Rpb24gaTYoe3ZhbHVlOmUsc2NoZW1hOnQsY29udGV4dDpyfSl7bGV0IG49aTAodCk7dHJ5e2lmKG51bGw9PW4udmFsaWRhdGUpcmV0dXJue3N1Y2Nlc3M6ITAsdmFsdWU6ZSxyYXdWYWx1ZTplfTtsZXQgdD1hd2FpdCBuLnZhbGlkYXRlKGUpO2lmKHQuc3VjY2VzcylyZXR1cm57c3VjY2VzczohMCx2YWx1ZTp0LnZhbHVlLHJhd1ZhbHVlOmV9O3JldHVybntzdWNjZXNzOiExLGVycm9yOmV6LndyYXAoe3ZhbHVlOmUsY2F1c2U6dC5lcnJvcixjb250ZXh0OnJ9KSxyYXdWYWx1ZTplfX1jYXRjaCh0KXtyZXR1cm57c3VjY2VzczohMSxlcnJvcjplei53cmFwKHt2YWx1ZTplLGNhdXNlOnQsY29udGV4dDpyfSkscmF3VmFsdWU6ZX19fWFzeW5jIGZ1bmN0aW9uIGkyKHt0ZXh0OmUsc2NoZW1hOnR9KXt0cnl7bGV0IHI9aSQoZSk7aWYobnVsbD09dClyZXR1cm4gcjtyZXR1cm4gaTQoe3ZhbHVlOnIsc2NoZW1hOnR9KX1jYXRjaCh0KXtpZihlai5pc0luc3RhbmNlKHQpfHxlei5pc0luc3RhbmNlKHQpKXRocm93IHQ7dGhyb3cgbmV3IGVqKHt0ZXh0OmUsY2F1c2U6dH0pfX1hc3luYyBmdW5jdGlvbiBpOSh7dGV4dDplLHNjaGVtYTp0fSl7dHJ5e2xldCByPWkkKGUpO2lmKG51bGw9PXQpcmV0dXJue3N1Y2Nlc3M6ITAsdmFsdWU6cixyYXdWYWx1ZTpyfTtyZXR1cm4gYXdhaXQgaTYoe3ZhbHVlOnIsc2NoZW1hOnR9KX1jYXRjaCh0KXtyZXR1cm57c3VjY2VzczohMSxlcnJvcjplai5pc0luc3RhbmNlKHQpP3Q6bmV3IGVqKHt0ZXh0OmUsY2F1c2U6dH0pLHJhd1ZhbHVlOnZvaWQgMH19fWZ1bmN0aW9uIGk1KHtzdHJlYW06ZSxzY2hlbWE6dH0pe3JldHVybiBlLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSkucGlwZVRocm91Z2gobmV3IG4wKS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKHthc3luYyB0cmFuc2Zvcm0oe2RhdGE6ZX0scil7IltET05FXSIhPT1lJiZyLmVucXVldWUoYXdhaXQgaTkoe3RleHQ6ZSxzY2hlbWE6dH0pKX19KSl9dmFyIGkzPSgpPT5nbG9iYWxUaGlzLmZldGNoLGk3PWFzeW5jKHt1cmw6ZSxoZWFkZXJzOnQsYm9keTpyLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjpuLHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6aSxhYm9ydFNpZ25hbDphLGZldGNoOm99KT0+aTgoe3VybDplLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwuLi50fSxib2R5Ontjb250ZW50OkpTT04uc3RyaW5naWZ5KHIpLHZhbHVlczpyfSxmYWlsZWRSZXNwb25zZUhhbmRsZXI6bixzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOmksYWJvcnRTaWduYWw6YSxmZXRjaDpvfSksaTg9YXN5bmMoe3VybDplLGhlYWRlcnM6dD17fSxib2R5OnIsc3VjY2Vzc2Z1bFJlc3BvbnNlSGFuZGxlcjpuLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjppLGFib3J0U2lnbmFsOmEsZmV0Y2g6bz1pMygpfSk9Pnt0cnl7bGV0IHM9YXdhaXQgbyhlLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6aW0odCxgYWktc2RrL3Byb3ZpZGVyLXV0aWxzLyR7aWh9YCxpYygpKSxib2R5OnIuY29udGVudCxzaWduYWw6YX0pLHU9bjQocyk7aWYoIXMub2spe2xldCB0O3RyeXt0PWF3YWl0IGkoe3Jlc3BvbnNlOnMsdXJsOmUscmVxdWVzdEJvZHlWYWx1ZXM6ci52YWx1ZXN9KX1jYXRjaCh0KXtpZihpcyh0KXx8ZWYuaXNJbnN0YW5jZSh0KSl0aHJvdyB0O3Rocm93IG5ldyBlZih7bWVzc2FnZToiRmFpbGVkIHRvIHByb2Nlc3MgZXJyb3IgcmVzcG9uc2UiLGNhdXNlOnQsc3RhdHVzQ29kZTpzLnN0YXR1cyx1cmw6ZSxyZXNwb25zZUhlYWRlcnM6dSxyZXF1ZXN0Qm9keVZhbHVlczpyLnZhbHVlc30pfXRocm93IHQudmFsdWV9dHJ5e3JldHVybiBhd2FpdCBuKHtyZXNwb25zZTpzLHVybDplLHJlcXVlc3RCb2R5VmFsdWVzOnIudmFsdWVzfSl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIEVycm9yJiYoaXModCl8fGVmLmlzSW5zdGFuY2UodCkpKXRocm93IHQ7dGhyb3cgbmV3IGVmKHttZXNzYWdlOiJGYWlsZWQgdG8gcHJvY2VzcyBzdWNjZXNzZnVsIHJlc3BvbnNlIixjYXVzZTp0LHN0YXR1c0NvZGU6cy5zdGF0dXMsdXJsOmUscmVzcG9uc2VIZWFkZXJzOnUscmVxdWVzdEJvZHlWYWx1ZXM6ci52YWx1ZXN9KX19Y2F0Y2godCl7dGhyb3cgaWQoe2Vycm9yOnQsdXJsOmUscmVxdWVzdEJvZHlWYWx1ZXM6ci52YWx1ZXN9KX19O2Z1bmN0aW9uIGFlKHtpZDplLGlucHV0U2NoZW1hOnQsb3V0cHV0U2NoZW1hOnIsc3VwcG9ydHNEZWZlcnJlZFJlc3VsdHM6bn0pe3JldHVybih7ZXhlY3V0ZTppLG5lZWRzQXBwcm92YWw6YSx0b01vZGVsT3V0cHV0Om8sb25JbnB1dFN0YXJ0OnMsb25JbnB1dERlbHRhOnUsb25JbnB1dEF2YWlsYWJsZTpsLC4uLmR9KT0+KHt0eXBlOiJwcm92aWRlciIsaWQ6ZSxhcmdzOmQsaW5wdXRTY2hlbWE6dCxvdXRwdXRTY2hlbWE6cixleGVjdXRlOmksbmVlZHNBcHByb3ZhbDphLHRvTW9kZWxPdXRwdXQ6byxvbklucHV0U3RhcnQ6cyxvbklucHV0RGVsdGE6dSxvbklucHV0QXZhaWxhYmxlOmwsc3VwcG9ydHNEZWZlcnJlZFJlc3VsdHM6bn0pfWFzeW5jIGZ1bmN0aW9uIGF0KGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lKCkpLFByb21pc2UucmVzb2x2ZShlKX12YXIgYXI9KHtlcnJvclNjaGVtYTplLGVycm9yVG9NZXNzYWdlOnQsaXNSZXRyeWFibGU6cn0pPT5hc3luYyh7cmVzcG9uc2U6bix1cmw6aSxyZXF1ZXN0Qm9keVZhbHVlczphfSk9PntsZXQgbz1hd2FpdCBuLnRleHQoKSxzPW40KG4pO2lmKCIiPT09by50cmltKCkpcmV0dXJue3Jlc3BvbnNlSGVhZGVyczpzLHZhbHVlOm5ldyBlZih7bWVzc2FnZTpuLnN0YXR1c1RleHQsdXJsOmkscmVxdWVzdEJvZHlWYWx1ZXM6YSxzdGF0dXNDb2RlOm4uc3RhdHVzLHJlc3BvbnNlSGVhZGVyczpzLHJlc3BvbnNlQm9keTpvLGlzUmV0cnlhYmxlOm51bGw9PXI/dm9pZCAwOnIobil9KX07dHJ5e2xldCB1PWF3YWl0IGkyKHt0ZXh0Om8sc2NoZW1hOmV9KTtyZXR1cm57cmVzcG9uc2VIZWFkZXJzOnMsdmFsdWU6bmV3IGVmKHttZXNzYWdlOnQodSksdXJsOmkscmVxdWVzdEJvZHlWYWx1ZXM6YSxzdGF0dXNDb2RlOm4uc3RhdHVzLHJlc3BvbnNlSGVhZGVyczpzLHJlc3BvbnNlQm9keTpvLGRhdGE6dSxpc1JldHJ5YWJsZTpudWxsPT1yP3ZvaWQgMDpyKG4sdSl9KX19Y2F0Y2goZSl7cmV0dXJue3Jlc3BvbnNlSGVhZGVyczpzLHZhbHVlOm5ldyBlZih7bWVzc2FnZTpuLnN0YXR1c1RleHQsdXJsOmkscmVxdWVzdEJvZHlWYWx1ZXM6YSxzdGF0dXNDb2RlOm4uc3RhdHVzLHJlc3BvbnNlSGVhZGVyczpzLHJlc3BvbnNlQm9keTpvLGlzUmV0cnlhYmxlOm51bGw9PXI/dm9pZCAwOnIobil9KX19fSxhbj1lPT5hc3luYyh7cmVzcG9uc2U6dCx1cmw6cixyZXF1ZXN0Qm9keVZhbHVlczpufSk9PntsZXQgaT1hd2FpdCB0LnRleHQoKSxhPWF3YWl0IGk5KHt0ZXh0Omksc2NoZW1hOmV9KSxvPW40KHQpO2lmKCFhLnN1Y2Nlc3MpdGhyb3cgbmV3IGVmKHttZXNzYWdlOiJJbnZhbGlkIEpTT04gcmVzcG9uc2UiLGNhdXNlOmEuZXJyb3Isc3RhdHVzQ29kZTp0LnN0YXR1cyxyZXNwb25zZUhlYWRlcnM6byxyZXNwb25zZUJvZHk6aSx1cmw6cixyZXF1ZXN0Qm9keVZhbHVlczpufSk7cmV0dXJue3Jlc3BvbnNlSGVhZGVyczpvLHZhbHVlOmEudmFsdWUscmF3VmFsdWU6YS5yYXdWYWx1ZX19O2Z1bmN0aW9uIGFpKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoiY2hhcmFjdGVycyIsdmVyYjoidG8gaGF2ZSJ9LGZpbGU6e3VuaXQ6ImJ5dGVzIix2ZXJiOiJ0byBoYXZlIn0sYXJyYXk6e3VuaXQ6Iml0ZW1zIix2ZXJiOiJ0byBoYXZlIn0sc2V0Ont1bml0OiJpdGVtcyIsdmVyYjoidG8gaGF2ZSJ9fSx0PXtyZWdleDoiaW5wdXQiLGVtYWlsOiJlbWFpbCBhZGRyZXNzIix1cmw6IlVSTCIsZW1vamk6ImVtb2ppIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJJU08gZGF0ZXRpbWUiLGRhdGU6IklTTyBkYXRlIix0aW1lOiJJU08gdGltZSIsZHVyYXRpb246IklTTyBkdXJhdGlvbiIsaXB2NDoiSVB2NCBhZGRyZXNzIixpcHY2OiJJUHY2IGFkZHJlc3MiLGNpZHJ2NDoiSVB2NCByYW5nZSIsY2lkcnY2OiJJUHY2IHJhbmdlIixiYXNlNjQ6ImJhc2U2NC1lbmNvZGVkIHN0cmluZyIsYmFzZTY0dXJsOiJiYXNlNjR1cmwtZW5jb2RlZCBzdHJpbmciLGpzb25fc3RyaW5nOiJKU09OIHN0cmluZyIsZTE2NDoiRS4xNjQgbnVtYmVyIixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoiaW5wdXQifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBJbnZhbGlkIGlucHV0OiBleHBlY3RlZCAke3IuZXhwZWN0ZWR9LCByZWNlaXZlZCAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1iZXIiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBJbnZhbGlkIGlucHV0OiBleHBlY3RlZCAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBJbnZhbGlkIG9wdGlvbjogZXhwZWN0ZWQgb25lIG9mICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVG9vIGJpZzogZXhwZWN0ZWQgJHtyLm9yaWdpbj8/InZhbHVlIn0gdG8gaGF2ZSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJlbGVtZW50cyJ9YDtyZXR1cm5gVG9vIGJpZzogZXhwZWN0ZWQgJHtyLm9yaWdpbj8/InZhbHVlIn0gdG8gYmUgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVG9vIHNtYWxsOiBleHBlY3RlZCAke3Iub3JpZ2lufSB0byBoYXZlICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmBUb28gc21hbGw6IGV4cGVjdGVkICR7ci5vcmlnaW59IHRvIGJlICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBJbnZhbGlkIHN0cmluZzogbXVzdCBzdGFydCB3aXRoICIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYEludmFsaWQgc3RyaW5nOiBtdXN0IGVuZCB3aXRoICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gSW52YWxpZCBzdHJpbmc6IG11c3QgaW5jbHVkZSAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gSW52YWxpZCBzdHJpbmc6IG11c3QgbWF0Y2ggcGF0dGVybiAke3IucGF0dGVybn1gO3JldHVybmBJbnZhbGlkICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBJbnZhbGlkIG51bWJlcjogbXVzdCBiZSBhIG11bHRpcGxlIG9mICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYFVucmVjb2duaXplZCBrZXkke3Iua2V5cy5sZW5ndGg+MT8icyI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBJbnZhbGlkIGtleSBpbiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybiJJbnZhbGlkIGlucHV0IjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYEludmFsaWQgdmFsdWUgaW4gJHtyLm9yaWdpbn1gfX0pfX1lTShhaSgpKSxlLnMoW10sMjk4ODIxKSxlLmkoMjk4ODIxKSxlLnMoW10sMjkyMTM1KSxlLmkoMjkyMTM1KSxlLmkoMTk3NzUzKSxlLmkoODAzMTA4KSxlLmkoMzc0OTY5KTtsZXQgYWE9L15bY0NdW15ccy1dezgsfSQvLGFvPS9eWzAtOWEtel0rJC8sYXM9L15bMC05QS1ISktNTlAtVFYtWmEtaGprbW5wLXR2LXpdezI2fSQvLGF1PS9eWzAtOWEtdkEtVl17MjB9JC8sYWw9L15bQS1aYS16MC05XXsyN30kLyxhZD0vXlthLXpBLVowLTlfLV17MjF9JC8sYWM9L15QKD86KFxkK1cpfCg/IS4qVykoPz1cZHxUXGQpKFxkK1kpPyhcZCtNKT8oXGQrRCk/KFQoPz1cZCkoXGQrSCk/KFxkK00pPyhcZCsoWy4sXVxkKyk/Uyk/KT8pJC8sYXA9L14oWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17NH0tWzAtOWEtZkEtRl17MTJ9KSQvLGFtPWU9PmU/UmVnRXhwKGBeKFswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LSR7ZX1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfSkkYCk6L14oWzAtOWEtZkEtRl17OH0tWzAtOWEtZkEtRl17NH0tWzEtOF1bMC05YS1mQS1GXXszfS1bODlhYkFCXVswLTlhLWZBLUZdezN9LVswLTlhLWZBLUZdezEyfXwwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDApJC8sYWY9YW0oNCksYWg9YW0oNiksYXY9YW0oNyksYWc9L14oPyFcLikoPyEuKlwuXC4pKFtBLVphLXowLTlfJytcLVwuXSopW0EtWmEtejAtOV8rLV1AKFtBLVphLXowLTldW0EtWmEtejAtOVwtXSpcLikrW0EtWmEtel17Mix9JC8sYXk9Il4oXFxwe0V4dGVuZGVkX1BpY3RvZ3JhcGhpY318XFxwe0Vtb2ppX0NvbXBvbmVudH0pKyQiO2Z1bmN0aW9uIGFiKCl7cmV0dXJuIFJlZ0V4cChheSwidSIpfWxldCBhXz0vXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSlcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pJC8sYXg9L14oKFswLTlhLWZBLUZdezEsNH06KXs3fVswLTlhLWZBLUZdezEsNH18Ojp8KFswLTlhLWZBLUZdezEsNH0pPzo6KFswLTlhLWZBLUZdezEsNH06Pyl7MCw2fSkkLyxhJD0vXigoMjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwuKXszfSgyNVswLTVdfDJbMC00XVswLTldfDFbMC05XVswLTldfFsxLTldWzAtOV18WzAtOV0pXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pJC8sYWs9L14oKFswLTlhLWZBLUZdezEsNH06KXs3fVswLTlhLWZBLUZdezEsNH18Ojp8KFswLTlhLWZBLUZdezEsNH0pPzo6KFswLTlhLWZBLUZdezEsNH06Pyl7MCw2fSlcLygxMlswLThdfDFbMDFdWzAtOV18WzEtOV0/WzAtOV0pJC8sYXc9L14kfF4oPzpbMC05YS16QS1aKy9dezR9KSooPzooPzpbMC05YS16QS1aKy9dezJ9PT0pfCg/OlswLTlhLXpBLVorL117M309KSk/JC8sYUk9L15bQS1aYS16MC05Xy1dKiQvLGFTPS9eKFthLXpBLVowLTktXStcLikqW2EtekEtWjAtOS1dKyQvLGFPPS9eXCsoPzpbMC05XSl7NiwxNH1bMC05XSQvLGFqPSIoPzooPzpcXGRcXGRbMjQ2OF1bMDQ4XXxcXGRcXGRbMTM1NzldWzI2XXxcXGRcXGQwWzQ4XXxbMDI0NjhdWzA0OF0wMHxbMTM1NzldWzI2XTAwKS0wMi0yOXxcXGR7NH0tKD86KD86MFsxMzU3OF18MVswMl0pLSg/OjBbMS05XXxbMTJdXFxkfDNbMDFdKXwoPzowWzQ2OV18MTEpLSg/OjBbMS05XXxbMTJdXFxkfDMwKXwoPzowMiktKD86MFsxLTldfDFcXGR8MlswLThdKSkpIixhRT1SZWdFeHAoYF4ke2FqfSRgKTtmdW5jdGlvbiBhWihlKXtsZXQgdD0iKD86WzAxXVxcZHwyWzAtM10pOlswLTVdXFxkIjtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUucHJlY2lzaW9uPy0xPT09ZS5wcmVjaXNpb24/YCR7dH1gOjA9PT1lLnByZWNpc2lvbj9gJHt0fTpbMC01XVxcZGA6YCR7dH06WzAtNV1cXGRcXC5cXGR7JHtlLnByZWNpc2lvbn19YDpgJHt0fSg/OjpbMC01XVxcZCg/OlxcLlxcZCspPyk/YH1mdW5jdGlvbiBhTihlKXtyZXR1cm4gUmVnRXhwKGBeJHthWihlKX0kYCl9ZnVuY3Rpb24gYVQoZSl7bGV0IHQ9YVooe3ByZWNpc2lvbjplLnByZWNpc2lvbn0pLHI9WyJaIl07ZS5sb2NhbCYmci5wdXNoKCIiKSxlLm9mZnNldCYmci5wdXNoKCIoWystXVxcZHsyfTpcXGR7Mn0pIik7bGV0IG49YCR7dH0oPzoke3Iuam9pbigifCIpfSlgO3JldHVybiBSZWdFeHAoYF4ke2FqfVQoPzoke259KSRgKX1sZXQgYXo9ZT0+e2xldCB0PWU/YFtcXHNcXFNdeyR7ZT8ubWluaW11bT8/MH0sJHtlPy5tYXhpbXVtPz8iIn19YDoiW1xcc1xcU10qIjtyZXR1cm4gUmVnRXhwKGBeJHt0fSRgKX0sYVA9L15cZCtuPyQvLGFBPS9eXGQrJC8sYVU9L14tP1xkKyg/OlwuXGQrKT8vaSxhQz0vdHJ1ZXxmYWxzZS9pLGFEPS9udWxsL2ksYVI9L3VuZGVmaW5lZC9pLGFNPS9eW15BLVpdKiQvLGFMPS9eW15hLXpdKiQvO2UucyhbIl9lbW9qaSIsMCxheSwiYmFzZTY0IiwwLGF3LCJiYXNlNjR1cmwiLDAsYUksImJpZ2ludCIsMCxhUCwiYm9vbGVhbiIsMCxhQywiYnJvd3NlckVtYWlsIiwwLC9eW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KD86XC5bYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8pKiQvLCJjaWRydjQiLDAsYSQsImNpZHJ2NiIsMCxhaywiY3VpZCIsMCxhYSwiY3VpZDIiLDAsYW8sImRhdGUiLDAsYUUsImRhdGV0aW1lIiwoKT0+YVQsImRvbWFpbiIsMCwvXihbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT9cLikrW2EtekEtWl17Mix9JC8sImR1cmF0aW9uIiwwLGFjLCJlMTY0IiwwLGFPLCJlbWFpbCIsMCxhZywiZW1vamkiLCgpPT5hYiwiZXh0ZW5kZWREdXJhdGlvbiIsMCwvXlstK10/UCg/ISQpKD86KD86Wy0rXT9cZCtZKXwoPzpbLStdP1xkK1suLF1cZCtZJCkpPyg/Oig/OlstK10/XGQrTSl8KD86Wy0rXT9cZCtbLixdXGQrTSQpKT8oPzooPzpbLStdP1xkK1cpfCg/OlstK10/XGQrWy4sXVxkK1ckKSk/KD86KD86Wy0rXT9cZCtEKXwoPzpbLStdP1xkK1suLF1cZCtEJCkpPyg/OlQoPz1bXGQrLV0pKD86KD86Wy0rXT9cZCtIKXwoPzpbLStdP1xkK1suLF1cZCtIJCkpPyg/Oig/OlstK10/XGQrTSl8KD86Wy0rXT9cZCtbLixdXGQrTSQpKT8oPzpbLStdP1xkKyg/OlsuLF1cZCspP1MpPyk/PyQvLCJndWlkIiwwLGFwLCJob3N0bmFtZSIsMCxhUywiaHRtbDVFbWFpbCIsMCwvXlthLXpBLVowLTkuISMkJSYnKisvPT9eX2B7fH1+LV0rQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokLywiaW50ZWdlciIsMCxhQSwiaXB2NCIsMCxhXywiaXB2NiIsMCxheCwia3N1aWQiLDAsYWwsImxvd2VyY2FzZSIsMCxhTSwibmFub2lkIiwwLGFkLCJudWxsIiwoKT0+YUQsIm51bWJlciIsMCxhVSwicmZjNTMyMkVtYWlsIiwwLC9eKChbXjw+KClcW1xdXFwuLDs6XHNAIl0rKFwuW148PigpXFtcXVxcLiw7OlxzQCJdKykqKXwoIi4rIikpQCgoXFtbMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XSl8KChbYS16QS1aXC0wLTldK1wuKStbYS16QS1aXXsyLH0pKSQvLCJzdHJpbmciLDAsYXosInRpbWUiLCgpPT5hTiwidWxpZCIsMCxhcywidW5kZWZpbmVkIiwoKT0+YVIsInVuaWNvZGVFbWFpbCIsMCwvXlteXHNAIl17MSw2NH1AW15cc0BdezEsMjU1fSQvdSwidXBwZXJjYXNlIiwwLGFMLCJ1dWlkIiwwLGFtLCJ1dWlkNCIsMCxhZiwidXVpZDYiLDAsYWgsInV1aWQ3IiwwLGF2LCJ4aWQiLDAsYXVdLDY4MjM1OCk7bGV0IGFGPWVVKCIkWm9kQ2hlY2siLChlLHQpPT57dmFyIHI7ZS5fem9kPz8oZS5fem9kPXt9KSxlLl96b2QuZGVmPXQsKHI9ZS5fem9kKS5vbmF0dGFjaD8/KHIub25hdHRhY2g9W10pfSksYVY9e251bWJlcjoibnVtYmVyIixiaWdpbnQ6ImJpZ2ludCIsb2JqZWN0OiJkYXRlIn0sYUI9ZVUoIiRab2RDaGVja0xlc3NUaGFuIiwoZSx0KT0+e2FGLmluaXQoZSx0KTtsZXQgcj1hVlt0eXBlb2YgdC52YWx1ZV07ZS5fem9kLm9uYXR0YWNoLnB1c2goZT0+e2xldCByPWUuX3pvZC5iYWcsbj0odC5pbmNsdXNpdmU/ci5tYXhpbXVtOnIuZXhjbHVzaXZlTWF4aW11bSk/PzEvMDt0LnZhbHVlPG4mJih0LmluY2x1c2l2ZT9yLm1heGltdW09dC52YWx1ZTpyLmV4Y2x1c2l2ZU1heGltdW09dC52YWx1ZSl9KSxlLl96b2QuY2hlY2s9bj0+eyh0LmluY2x1c2l2ZT9uLnZhbHVlPD10LnZhbHVlOm4udmFsdWU8dC52YWx1ZSl8fG4uaXNzdWVzLnB1c2goe29yaWdpbjpyLGNvZGU6InRvb19iaWciLG1heGltdW06dC52YWx1ZSxpbnB1dDpuLnZhbHVlLGluY2x1c2l2ZTp0LmluY2x1c2l2ZSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxhSj1lVSgiJFpvZENoZWNrR3JlYXRlclRoYW4iLChlLHQpPT57YUYuaW5pdChlLHQpO2xldCByPWFWW3R5cGVvZiB0LnZhbHVlXTtlLl96b2Qub25hdHRhY2gucHVzaChlPT57bGV0IHI9ZS5fem9kLmJhZyxuPSh0LmluY2x1c2l2ZT9yLm1pbmltdW06ci5leGNsdXNpdmVNaW5pbXVtKT8/LTEvMDt0LnZhbHVlPm4mJih0LmluY2x1c2l2ZT9yLm1pbmltdW09dC52YWx1ZTpyLmV4Y2x1c2l2ZU1pbmltdW09dC52YWx1ZSl9KSxlLl96b2QuY2hlY2s9bj0+eyh0LmluY2x1c2l2ZT9uLnZhbHVlPj10LnZhbHVlOm4udmFsdWU+dC52YWx1ZSl8fG4uaXNzdWVzLnB1c2goe29yaWdpbjpyLGNvZGU6InRvb19zbWFsbCIsbWluaW11bTp0LnZhbHVlLGlucHV0Om4udmFsdWUsaW5jbHVzaXZlOnQuaW5jbHVzaXZlLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX0pLGFXPWVVKCIkWm9kQ2hlY2tNdWx0aXBsZU9mIiwoZSx0KT0+e2FGLmluaXQoZSx0KSxlLl96b2Qub25hdHRhY2gucHVzaChlPT57dmFyIHI7KHI9ZS5fem9kLmJhZykubXVsdGlwbGVPZj8/KHIubXVsdGlwbGVPZj10LnZhbHVlKX0pLGUuX3pvZC5jaGVjaz1yPT57aWYodHlwZW9mIHIudmFsdWUhPXR5cGVvZiB0LnZhbHVlKXRocm93IEVycm9yKCJDYW5ub3QgbWl4IG51bWJlciBhbmQgYmlnaW50IGluIG11bHRpcGxlX29mIGNoZWNrLiIpOygiYmlnaW50Ij09dHlwZW9mIHIudmFsdWU/ci52YWx1ZSV0LnZhbHVlPT09QmlnSW50KDApOjA9PT1lWChyLnZhbHVlLHQudmFsdWUpKXx8ci5pc3N1ZXMucHVzaCh7b3JpZ2luOnR5cGVvZiByLnZhbHVlLGNvZGU6Im5vdF9tdWx0aXBsZV9vZiIsZGl2aXNvcjp0LnZhbHVlLGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSl9fSksYXE9ZVUoIiRab2RDaGVja051bWJlckZvcm1hdCIsKGUsdCk9PnthRi5pbml0KGUsdCksdC5mb3JtYXQ9dC5mb3JtYXR8fCJmbG9hdDY0IjtsZXQgcj10LmZvcm1hdD8uaW5jbHVkZXMoImludCIpLG49cj8iaW50IjoibnVtYmVyIixbaSxhXT10dVt0LmZvcm1hdF07ZS5fem9kLm9uYXR0YWNoLnB1c2goZT0+e2xldCBuPWUuX3pvZC5iYWc7bi5mb3JtYXQ9dC5mb3JtYXQsbi5taW5pbXVtPWksbi5tYXhpbXVtPWEsciYmKG4ucGF0dGVybj1hQSl9KSxlLl96b2QuY2hlY2s9bz0+e2xldCBzPW8udmFsdWU7aWYocil7aWYoIU51bWJlci5pc0ludGVnZXIocykpcmV0dXJuIHZvaWQgby5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6bixmb3JtYXQ6dC5mb3JtYXQsY29kZToiaW52YWxpZF90eXBlIixpbnB1dDpzLGluc3Q6ZX0pO2lmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihzKSlyZXR1cm4gdm9pZChzPjA/by5pc3N1ZXMucHVzaCh7aW5wdXQ6cyxjb2RlOiJ0b29fYmlnIixtYXhpbXVtOk51bWJlci5NQVhfU0FGRV9JTlRFR0VSLG5vdGU6IkludGVnZXJzIG11c3QgYmUgd2l0aGluIHRoZSBzYWZlIGludGVnZXIgcmFuZ2UuIixpbnN0OmUsb3JpZ2luOm4sY29udGludWU6IXQuYWJvcnR9KTpvLmlzc3Vlcy5wdXNoKHtpbnB1dDpzLGNvZGU6InRvb19zbWFsbCIsbWluaW11bTpOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixub3RlOiJJbnRlZ2VycyBtdXN0IGJlIHdpdGhpbiB0aGUgc2FmZSBpbnRlZ2VyIHJhbmdlLiIsaW5zdDplLG9yaWdpbjpuLGNvbnRpbnVlOiF0LmFib3J0fSkpfXM8aSYmby5pc3N1ZXMucHVzaCh7b3JpZ2luOiJudW1iZXIiLGlucHV0OnMsY29kZToidG9vX3NtYWxsIixtaW5pbXVtOmksaW5jbHVzaXZlOiEwLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pLHM+YSYmby5pc3N1ZXMucHVzaCh7b3JpZ2luOiJudW1iZXIiLGlucHV0OnMsY29kZToidG9vX2JpZyIsbWF4aW11bTphLGluc3Q6ZX0pfX0pLGFHPWVVKCIkWm9kQ2hlY2tCaWdJbnRGb3JtYXQiLChlLHQpPT57YUYuaW5pdChlLHQpO2xldFtyLG5dPXRsW3QuZm9ybWF0XTtlLl96b2Qub25hdHRhY2gucHVzaChlPT57bGV0IGk9ZS5fem9kLmJhZztpLmZvcm1hdD10LmZvcm1hdCxpLm1pbmltdW09cixpLm1heGltdW09bn0pLGUuX3pvZC5jaGVjaz1pPT57bGV0IGE9aS52YWx1ZTthPHImJmkuaXNzdWVzLnB1c2goe29yaWdpbjoiYmlnaW50IixpbnB1dDphLGNvZGU6InRvb19zbWFsbCIsbWluaW11bTpyLGluY2x1c2l2ZTohMCxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KSxhPm4mJmkuaXNzdWVzLnB1c2goe29yaWdpbjoiYmlnaW50IixpbnB1dDphLGNvZGU6InRvb19iaWciLG1heGltdW06bixpbnN0OmV9KX19KSxhSz1lVSgiJFpvZENoZWNrTWF4U2l6ZSIsKGUsdCk9Pnt2YXIgcjthRi5pbml0KGUsdCksKHI9ZS5fem9kLmRlZikud2hlbj8/KHIud2hlbj1lPT57bGV0IHQ9ZS52YWx1ZTtyZXR1cm4hZVkodCkmJnZvaWQgMCE9PXQuc2l6ZX0pLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnLm1heGltdW0/PzEvMDt0Lm1heGltdW08ciYmKGUuX3pvZC5iYWcubWF4aW11bT10Lm1heGltdW0pfSksZS5fem9kLmNoZWNrPXI9PntsZXQgbj1yLnZhbHVlO24uc2l6ZTw9dC5tYXhpbXVtfHxyLmlzc3Vlcy5wdXNoKHtvcmlnaW46dF8obiksY29kZToidG9vX2JpZyIsbWF4aW11bTp0Lm1heGltdW0saW5wdXQ6bixpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxhWT1lVSgiJFpvZENoZWNrTWluU2l6ZSIsKGUsdCk9Pnt2YXIgcjthRi5pbml0KGUsdCksKHI9ZS5fem9kLmRlZikud2hlbj8/KHIud2hlbj1lPT57bGV0IHQ9ZS52YWx1ZTtyZXR1cm4hZVkodCkmJnZvaWQgMCE9PXQuc2l6ZX0pLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnLm1pbmltdW0/Py0xLzA7dC5taW5pbXVtPnImJihlLl96b2QuYmFnLm1pbmltdW09dC5taW5pbXVtKX0pLGUuX3pvZC5jaGVjaz1yPT57bGV0IG49ci52YWx1ZTtuLnNpemU+PXQubWluaW11bXx8ci5pc3N1ZXMucHVzaCh7b3JpZ2luOnRfKG4pLGNvZGU6InRvb19zbWFsbCIsbWluaW11bTp0Lm1pbmltdW0saW5wdXQ6bixpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxhSD1lVSgiJFpvZENoZWNrU2l6ZUVxdWFscyIsKGUsdCk9Pnt2YXIgcjthRi5pbml0KGUsdCksKHI9ZS5fem9kLmRlZikud2hlbj8/KHIud2hlbj1lPT57bGV0IHQ9ZS52YWx1ZTtyZXR1cm4hZVkodCkmJnZvaWQgMCE9PXQuc2l6ZX0pLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnO3IubWluaW11bT10LnNpemUsci5tYXhpbXVtPXQuc2l6ZSxyLnNpemU9dC5zaXplfSksZS5fem9kLmNoZWNrPXI9PntsZXQgbj1yLnZhbHVlLGk9bi5zaXplO2lmKGk9PT10LnNpemUpcmV0dXJuO2xldCBhPWk+dC5zaXplO3IuaXNzdWVzLnB1c2goe29yaWdpbjp0XyhuKSwuLi5hP3tjb2RlOiJ0b29fYmlnIixtYXhpbXVtOnQuc2l6ZX06e2NvZGU6InRvb19zbWFsbCIsbWluaW11bTp0LnNpemV9LGluY2x1c2l2ZTohMCxleGFjdDohMCxpbnB1dDpyLnZhbHVlLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX0pLGFYPWVVKCIkWm9kQ2hlY2tNYXhMZW5ndGgiLChlLHQpPT57dmFyIHI7YUYuaW5pdChlLHQpLChyPWUuX3pvZC5kZWYpLndoZW4/PyhyLndoZW49ZT0+e2xldCB0PWUudmFsdWU7cmV0dXJuIWVZKHQpJiZ2b2lkIDAhPT10Lmxlbmd0aH0pLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnLm1heGltdW0/PzEvMDt0Lm1heGltdW08ciYmKGUuX3pvZC5iYWcubWF4aW11bT10Lm1heGltdW0pfSksZS5fem9kLmNoZWNrPXI9PntsZXQgbj1yLnZhbHVlO2lmKG4ubGVuZ3RoPD10Lm1heGltdW0pcmV0dXJuO2xldCBpPXR4KG4pO3IuaXNzdWVzLnB1c2goe29yaWdpbjppLGNvZGU6InRvb19iaWciLG1heGltdW06dC5tYXhpbXVtLGluY2x1c2l2ZTohMCxpbnB1dDpuLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX0pLGFRPWVVKCIkWm9kQ2hlY2tNaW5MZW5ndGgiLChlLHQpPT57dmFyIHI7YUYuaW5pdChlLHQpLChyPWUuX3pvZC5kZWYpLndoZW4/PyhyLndoZW49ZT0+e2xldCB0PWUudmFsdWU7cmV0dXJuIWVZKHQpJiZ2b2lkIDAhPT10Lmxlbmd0aH0pLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnLm1pbmltdW0/Py0xLzA7dC5taW5pbXVtPnImJihlLl96b2QuYmFnLm1pbmltdW09dC5taW5pbXVtKX0pLGUuX3pvZC5jaGVjaz1yPT57bGV0IG49ci52YWx1ZTtpZihuLmxlbmd0aD49dC5taW5pbXVtKXJldHVybjtsZXQgaT10eChuKTtyLmlzc3Vlcy5wdXNoKHtvcmlnaW46aSxjb2RlOiJ0b29fc21hbGwiLG1pbmltdW06dC5taW5pbXVtLGluY2x1c2l2ZTohMCxpbnB1dDpuLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX0pLGEwPWVVKCIkWm9kQ2hlY2tMZW5ndGhFcXVhbHMiLChlLHQpPT57dmFyIHI7YUYuaW5pdChlLHQpLChyPWUuX3pvZC5kZWYpLndoZW4/PyhyLndoZW49ZT0+e2xldCB0PWUudmFsdWU7cmV0dXJuIWVZKHQpJiZ2b2lkIDAhPT10Lmxlbmd0aH0pLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnO3IubWluaW11bT10Lmxlbmd0aCxyLm1heGltdW09dC5sZW5ndGgsci5sZW5ndGg9dC5sZW5ndGh9KSxlLl96b2QuY2hlY2s9cj0+e2xldCBuPXIudmFsdWUsaT1uLmxlbmd0aDtpZihpPT09dC5sZW5ndGgpcmV0dXJuO2xldCBhPXR4KG4pLG89aT50Lmxlbmd0aDtyLmlzc3Vlcy5wdXNoKHtvcmlnaW46YSwuLi5vP3tjb2RlOiJ0b29fYmlnIixtYXhpbXVtOnQubGVuZ3RofTp7Y29kZToidG9vX3NtYWxsIixtaW5pbXVtOnQubGVuZ3RofSxpbmNsdXNpdmU6ITAsZXhhY3Q6ITAsaW5wdXQ6ci52YWx1ZSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxhMT1lVSgiJFpvZENoZWNrU3RyaW5nRm9ybWF0IiwoZSx0KT0+e3ZhciByLG47YUYuaW5pdChlLHQpLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntsZXQgcj1lLl96b2QuYmFnO3IuZm9ybWF0PXQuZm9ybWF0LHQucGF0dGVybiYmKHIucGF0dGVybnM/PyhyLnBhdHRlcm5zPW5ldyBTZXQpLHIucGF0dGVybnMuYWRkKHQucGF0dGVybikpfSksdC5wYXR0ZXJuPyhyPWUuX3pvZCkuY2hlY2s/PyhyLmNoZWNrPXI9Pnt0LnBhdHRlcm4ubGFzdEluZGV4PTAsdC5wYXR0ZXJuLnRlc3Qoci52YWx1ZSl8fHIuaXNzdWVzLnB1c2goe29yaWdpbjoic3RyaW5nIixjb2RlOiJpbnZhbGlkX2Zvcm1hdCIsZm9ybWF0OnQuZm9ybWF0LGlucHV0OnIudmFsdWUsLi4udC5wYXR0ZXJuP3twYXR0ZXJuOnQucGF0dGVybi50b1N0cmluZygpfTp7fSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX0pOihuPWUuX3pvZCkuY2hlY2s/PyhuLmNoZWNrPSgpPT57fSl9KSxhND1lVSgiJFpvZENoZWNrUmVnZXgiLChlLHQpPT57YTEuaW5pdChlLHQpLGUuX3pvZC5jaGVjaz1yPT57dC5wYXR0ZXJuLmxhc3RJbmRleD0wLHQucGF0dGVybi50ZXN0KHIudmFsdWUpfHxyLmlzc3Vlcy5wdXNoKHtvcmlnaW46InN0cmluZyIsY29kZToiaW52YWxpZF9mb3JtYXQiLGZvcm1hdDoicmVnZXgiLGlucHV0OnIudmFsdWUscGF0dGVybjp0LnBhdHRlcm4udG9TdHJpbmcoKSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxhNj1lVSgiJFpvZENoZWNrTG93ZXJDYXNlIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hTSksYTEuaW5pdChlLHQpfSksYTI9ZVUoIiRab2RDaGVja1VwcGVyQ2FzZSIsKGUsdCk9Pnt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YUwpLGExLmluaXQoZSx0KX0pLGE5PWVVKCIkWm9kQ2hlY2tJbmNsdWRlcyIsKGUsdCk9PnthRi5pbml0KGUsdCk7bGV0IHI9dHIodC5pbmNsdWRlcyksbj1uZXcgUmVnRXhwKCJudW1iZXIiPT10eXBlb2YgdC5wb3NpdGlvbj9gXi57JHt0LnBvc2l0aW9ufX0ke3J9YDpyKTt0LnBhdHRlcm49bixlLl96b2Qub25hdHRhY2gucHVzaChlPT57bGV0IHQ9ZS5fem9kLmJhZzt0LnBhdHRlcm5zPz8odC5wYXR0ZXJucz1uZXcgU2V0KSx0LnBhdHRlcm5zLmFkZChuKX0pLGUuX3pvZC5jaGVjaz1yPT57ci52YWx1ZS5pbmNsdWRlcyh0LmluY2x1ZGVzLHQucG9zaXRpb24pfHxyLmlzc3Vlcy5wdXNoKHtvcmlnaW46InN0cmluZyIsY29kZToiaW52YWxpZF9mb3JtYXQiLGZvcm1hdDoiaW5jbHVkZXMiLGluY2x1ZGVzOnQuaW5jbHVkZXMsaW5wdXQ6ci52YWx1ZSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxhNT1lVSgiJFpvZENoZWNrU3RhcnRzV2l0aCIsKGUsdCk9PnthRi5pbml0KGUsdCk7bGV0IHI9UmVnRXhwKGBeJHt0cih0LnByZWZpeCl9LipgKTt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49ciksZS5fem9kLm9uYXR0YWNoLnB1c2goZT0+e2xldCB0PWUuX3pvZC5iYWc7dC5wYXR0ZXJucz8/KHQucGF0dGVybnM9bmV3IFNldCksdC5wYXR0ZXJucy5hZGQocil9KSxlLl96b2QuY2hlY2s9cj0+e3IudmFsdWUuc3RhcnRzV2l0aCh0LnByZWZpeCl8fHIuaXNzdWVzLnB1c2goe29yaWdpbjoic3RyaW5nIixjb2RlOiJpbnZhbGlkX2Zvcm1hdCIsZm9ybWF0OiJzdGFydHNfd2l0aCIscHJlZml4OnQucHJlZml4LGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSl9fSksYTM9ZVUoIiRab2RDaGVja0VuZHNXaXRoIiwoZSx0KT0+e2FGLmluaXQoZSx0KTtsZXQgcj1SZWdFeHAoYC4qJHt0cih0LnN1ZmZpeCl9JGApO3QucGF0dGVybj8/KHQucGF0dGVybj1yKSxlLl96b2Qub25hdHRhY2gucHVzaChlPT57bGV0IHQ9ZS5fem9kLmJhZzt0LnBhdHRlcm5zPz8odC5wYXR0ZXJucz1uZXcgU2V0KSx0LnBhdHRlcm5zLmFkZChyKX0pLGUuX3pvZC5jaGVjaz1yPT57ci52YWx1ZS5lbmRzV2l0aCh0LnN1ZmZpeCl8fHIuaXNzdWVzLnB1c2goe29yaWdpbjoic3RyaW5nIixjb2RlOiJpbnZhbGlkX2Zvcm1hdCIsZm9ybWF0OiJlbmRzX3dpdGgiLHN1ZmZpeDp0LnN1ZmZpeCxpbnB1dDpyLnZhbHVlLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX0pO2Z1bmN0aW9uIGE3KGUsdCxyKXtlLmlzc3Vlcy5sZW5ndGgmJnQuaXNzdWVzLnB1c2goLi4udGcocixlLmlzc3VlcykpfWxldCBhOD1lVSgiJFpvZENoZWNrUHJvcGVydHkiLChlLHQpPT57YUYuaW5pdChlLHQpLGUuX3pvZC5jaGVjaz1lPT57bGV0IHI9dC5zY2hlbWEuX3pvZC5ydW4oe3ZhbHVlOmUudmFsdWVbdC5wcm9wZXJ0eV0saXNzdWVzOltdfSx7fSk7aWYociBpbnN0YW5jZW9mIFByb21pc2UpcmV0dXJuIHIudGhlbihyPT5hNyhyLGUsdC5wcm9wZXJ0eSkpO2E3KHIsZSx0LnByb3BlcnR5KX19KSxvZT1lVSgiJFpvZENoZWNrTWltZVR5cGUiLChlLHQpPT57YUYuaW5pdChlLHQpO2xldCByPW5ldyBTZXQodC5taW1lKTtlLl96b2Qub25hdHRhY2gucHVzaChlPT57ZS5fem9kLmJhZy5taW1lPXQubWltZX0pLGUuX3pvZC5jaGVjaz1uPT57ci5oYXMobi52YWx1ZS50eXBlKXx8bi5pc3N1ZXMucHVzaCh7Y29kZToiaW52YWxpZF92YWx1ZSIsdmFsdWVzOnQubWltZSxpbnB1dDpuLnZhbHVlLnR5cGUsaW5zdDplfSl9fSksb3Q9ZVUoIiRab2RDaGVja092ZXJ3cml0ZSIsKGUsdCk9PnthRi5pbml0KGUsdCksZS5fem9kLmNoZWNrPWU9PntlLnZhbHVlPXQudHgoZS52YWx1ZSl9fSk7ZS5zKFsiJFpvZENoZWNrIiwwLGFGLCIkWm9kQ2hlY2tCaWdJbnRGb3JtYXQiLDAsYUcsIiRab2RDaGVja0VuZHNXaXRoIiwwLGEzLCIkWm9kQ2hlY2tHcmVhdGVyVGhhbiIsMCxhSiwiJFpvZENoZWNrSW5jbHVkZXMiLDAsYTksIiRab2RDaGVja0xlbmd0aEVxdWFscyIsMCxhMCwiJFpvZENoZWNrTGVzc1RoYW4iLDAsYUIsIiRab2RDaGVja0xvd2VyQ2FzZSIsMCxhNiwiJFpvZENoZWNrTWF4TGVuZ3RoIiwwLGFYLCIkWm9kQ2hlY2tNYXhTaXplIiwwLGFLLCIkWm9kQ2hlY2tNaW1lVHlwZSIsMCxvZSwiJFpvZENoZWNrTWluTGVuZ3RoIiwwLGFRLCIkWm9kQ2hlY2tNaW5TaXplIiwwLGFZLCIkWm9kQ2hlY2tNdWx0aXBsZU9mIiwwLGFXLCIkWm9kQ2hlY2tOdW1iZXJGb3JtYXQiLDAsYXEsIiRab2RDaGVja092ZXJ3cml0ZSIsMCxvdCwiJFpvZENoZWNrUHJvcGVydHkiLDAsYTgsIiRab2RDaGVja1JlZ2V4IiwwLGE0LCIkWm9kQ2hlY2tTaXplRXF1YWxzIiwwLGFILCIkWm9kQ2hlY2tTdGFydHNXaXRoIiwwLGE1LCIkWm9kQ2hlY2tTdHJpbmdGb3JtYXQiLDAsYTEsIiRab2RDaGVja1VwcGVyQ2FzZSIsMCxhMl0sMzU1NjA1KTtjbGFzcyBvcntjb25zdHJ1Y3RvcihlPVtdKXt0aGlzLmNvbnRlbnQ9W10sdGhpcy5pbmRlbnQ9MCx0aGlzJiYodGhpcy5hcmdzPWUpfWluZGVudGVkKGUpe3RoaXMuaW5kZW50Kz0xLGUodGhpcyksdGhpcy5pbmRlbnQtPTF9d3JpdGUoZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGUpe2UodGhpcyx7ZXhlY3V0aW9uOiJzeW5jIn0pLGUodGhpcyx7ZXhlY3V0aW9uOiJhc3luYyJ9KTtyZXR1cm59bGV0IHQ9ZS5zcGxpdCgiXG4iKS5maWx0ZXIoZT0+ZSkscj1NYXRoLm1pbiguLi50Lm1hcChlPT5lLmxlbmd0aC1lLnRyaW1TdGFydCgpLmxlbmd0aCkpO2ZvcihsZXQgZSBvZiB0Lm1hcChlPT5lLnNsaWNlKHIpKS5tYXAoZT0+IiAiLnJlcGVhdCgyKnRoaXMuaW5kZW50KStlKSl0aGlzLmNvbnRlbnQucHVzaChlKX1jb21waWxlKCl7cmV0dXJuIEZ1bmN0aW9uKC4uLnRoaXM/LmFyZ3MsWy4uLih0aGlzPy5jb250ZW50Pz9bIiJdKS5tYXAoZT0+YCAgJHtlfWApXS5qb2luKCJcbiIpKX19ZS5zKFsiRG9jIiwoKT0+b3JdLDY5ODUzMCk7bGV0IG9uPXttYWpvcjo0LG1pbm9yOjAscGF0Y2g6MH07ZS5zKFsidmVyc2lvbiIsMCxvbl0sMzk4NDc3KTtsZXQgb2k9ZVUoIiRab2RUeXBlIiwoZSx0KT0+e3ZhciByO2U/PyhlPXt9KSxlLl96b2QuZGVmPXQsZS5fem9kLmJhZz1lLl96b2QuYmFnfHx7fSxlLl96b2QudmVyc2lvbj1vbjtsZXQgbj1bLi4uZS5fem9kLmRlZi5jaGVja3M/P1tdXTtmb3IobGV0IHQgb2YoZS5fem9kLnRyYWl0cy5oYXMoIiRab2RDaGVjayIpJiZuLnVuc2hpZnQoZSksbikpZm9yKGxldCByIG9mIHQuX3pvZC5vbmF0dGFjaClyKGUpO2lmKDA9PT1uLmxlbmd0aCkocj1lLl96b2QpLmRlZmVycmVkPz8oci5kZWZlcnJlZD1bXSksZS5fem9kLmRlZmVycmVkPy5wdXNoKCgpPT57ZS5fem9kLnJ1bj1lLl96b2QucGFyc2V9KTtlbHNle2xldCB0PShlLHQscik9PntsZXQgbixpPXR2KGUpO2ZvcihsZXQgYSBvZiB0KXtpZihhLl96b2QuZGVmLndoZW4pe2lmKCFhLl96b2QuZGVmLndoZW4oZSkpY29udGludWV9ZWxzZSBpZihpKWNvbnRpbnVlO2xldCB0PWUuaXNzdWVzLmxlbmd0aCxvPWEuX3pvZC5jaGVjayhlKTtpZihvIGluc3RhbmNlb2YgUHJvbWlzZSYmcj8uYXN5bmM9PT0hMSl0aHJvdyBuZXcgZUQ7aWYobnx8byBpbnN0YW5jZW9mIFByb21pc2Upbj0obj8/UHJvbWlzZS5yZXNvbHZlKCkpLnRoZW4oYXN5bmMoKT0+e2F3YWl0IG8sZS5pc3N1ZXMubGVuZ3RoIT09dCYmKGl8fChpPXR2KGUsdCkpKX0pO2Vsc2V7aWYoZS5pc3N1ZXMubGVuZ3RoPT09dCljb250aW51ZTtpfHwoaT10dihlLHQpKX19cmV0dXJuIG4/bi50aGVuKCgpPT5lKTplfTtlLl96b2QucnVuPShyLGkpPT57bGV0IGE9ZS5fem9kLnBhcnNlKHIsaSk7aWYoYSBpbnN0YW5jZW9mIFByb21pc2Upe2lmKCExPT09aS5hc3luYyl0aHJvdyBuZXcgZUQ7cmV0dXJuIGEudGhlbihlPT50KGUsbixpKSl9cmV0dXJuIHQoYSxuLGkpfX1lWyJ+c3RhbmRhcmQiXT17dmFsaWRhdGU6dD0+e3RyeXtsZXQgcj10RChlLHQpO3JldHVybiByLnN1Y2Nlc3M/e3ZhbHVlOnIuZGF0YX06e2lzc3VlczpyLmVycm9yPy5pc3N1ZXN9fWNhdGNoKHIpe3JldHVybiB0TShlLHQpLnRoZW4oZT0+ZS5zdWNjZXNzP3t2YWx1ZTplLmRhdGF9Ontpc3N1ZXM6ZS5lcnJvcj8uaXNzdWVzfSl9fSx2ZW5kb3I6InpvZCIsdmVyc2lvbjoxfX0pLG9hPWVVKCIkWm9kU3RyaW5nIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGF0dGVybj1bLi4uZT8uX3pvZC5iYWc/LnBhdHRlcm5zPz9bXV0ucG9wKCk/P2F6KGUuX3pvZC5iYWcpLGUuX3pvZC5wYXJzZT0ocixuKT0+e2lmKHQuY29lcmNlKXRyeXtyLnZhbHVlPVN0cmluZyhyLnZhbHVlKX1jYXRjaChlKXt9cmV0dXJuInN0cmluZyI9PXR5cGVvZiByLnZhbHVlfHxyLmlzc3Vlcy5wdXNoKHtleHBlY3RlZDoic3RyaW5nIixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0OnIudmFsdWUsaW5zdDplfSkscn19KSxvbz1lVSgiJFpvZFN0cmluZ0Zvcm1hdCIsKGUsdCk9PnthMS5pbml0KGUsdCksb2EuaW5pdChlLHQpfSksb3M9ZVUoIiRab2RHVUlEIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hcCksb28uaW5pdChlLHQpfSksb3U9ZVUoIiRab2RVVUlEIiwoZSx0KT0+e2lmKHQudmVyc2lvbil7bGV0IGU9e3YxOjEsdjI6Mix2MzozLHY0OjQsdjU6NSx2Njo2LHY3Ojcsdjg6OH1bdC52ZXJzaW9uXTtpZih2b2lkIDA9PT1lKXRocm93IEVycm9yKGBJbnZhbGlkIFVVSUQgdmVyc2lvbjogIiR7dC52ZXJzaW9ufSJgKTt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YW0oZSkpfWVsc2UgdC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFtKCkpO29vLmluaXQoZSx0KX0pLG9sPWVVKCIkWm9kRW1haWwiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFnKSxvby5pbml0KGUsdCl9KSxvZD1lVSgiJFpvZFVSTCIsKGUsdCk9Pntvby5pbml0KGUsdCksZS5fem9kLmNoZWNrPXI9Pnt0cnl7bGV0IG49ci52YWx1ZSxpPW5ldyBVUkwobiksYT1pLmhyZWY7dC5ob3N0bmFtZSYmKHQuaG9zdG5hbWUubGFzdEluZGV4PTAsdC5ob3N0bmFtZS50ZXN0KGkuaG9zdG5hbWUpfHxyLmlzc3Vlcy5wdXNoKHtjb2RlOiJpbnZhbGlkX2Zvcm1hdCIsZm9ybWF0OiJ1cmwiLG5vdGU6IkludmFsaWQgaG9zdG5hbWUiLHBhdHRlcm46YVMuc291cmNlLGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSkpLHQucHJvdG9jb2wmJih0LnByb3RvY29sLmxhc3RJbmRleD0wLHQucHJvdG9jb2wudGVzdChpLnByb3RvY29sLmVuZHNXaXRoKCI6Iik/aS5wcm90b2NvbC5zbGljZSgwLC0xKTppLnByb3RvY29sKXx8ci5pc3N1ZXMucHVzaCh7Y29kZToiaW52YWxpZF9mb3JtYXQiLGZvcm1hdDoidXJsIixub3RlOiJJbnZhbGlkIHByb3RvY29sIixwYXR0ZXJuOnQucHJvdG9jb2wuc291cmNlLGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSkpLCFuLmVuZHNXaXRoKCIvIikmJmEuZW5kc1dpdGgoIi8iKT9yLnZhbHVlPWEuc2xpY2UoMCwtMSk6ci52YWx1ZT1hO3JldHVybn1jYXRjaChuKXtyLmlzc3Vlcy5wdXNoKHtjb2RlOiJpbnZhbGlkX2Zvcm1hdCIsZm9ybWF0OiJ1cmwiLGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSl9fX0pLG9jPWVVKCIkWm9kRW1vamkiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFiKCkpLG9vLmluaXQoZSx0KX0pLG9wPWVVKCIkWm9kTmFub0lEIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hZCksb28uaW5pdChlLHQpfSksb209ZVUoIiRab2RDVUlEIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hYSksb28uaW5pdChlLHQpfSksb2Y9ZVUoIiRab2RDVUlEMiIsKGUsdCk9Pnt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YW8pLG9vLmluaXQoZSx0KX0pLG9oPWVVKCIkWm9kVUxJRCIsKGUsdCk9Pnt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YXMpLG9vLmluaXQoZSx0KX0pLG92PWVVKCIkWm9kWElEIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hdSksb28uaW5pdChlLHQpfSksb2c9ZVUoIiRab2RLU1VJRCIsKGUsdCk9Pnt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YWwpLG9vLmluaXQoZSx0KX0pLG95PWVVKCIkWm9kSVNPRGF0ZVRpbWUiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFUKHQpKSxvby5pbml0KGUsdCl9KSxvYj1lVSgiJFpvZElTT0RhdGUiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFFKSxvby5pbml0KGUsdCl9KSxvXz1lVSgiJFpvZElTT1RpbWUiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFOKHQpKSxvby5pbml0KGUsdCl9KSxveD1lVSgiJFpvZElTT0R1cmF0aW9uIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hYyksb28uaW5pdChlLHQpfSksbyQ9ZVUoIiRab2RJUHY0IiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hXyksb28uaW5pdChlLHQpLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntlLl96b2QuYmFnLmZvcm1hdD0iaXB2NCJ9KX0pLG9rPWVVKCIkWm9kSVB2NiIsKGUsdCk9Pnt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YXgpLG9vLmluaXQoZSx0KSxlLl96b2Qub25hdHRhY2gucHVzaChlPT57ZS5fem9kLmJhZy5mb3JtYXQ9ImlwdjYifSksZS5fem9kLmNoZWNrPXI9Pnt0cnl7bmV3IFVSTChgaHR0cDovL1ske3IudmFsdWV9XWApfWNhdGNoe3IuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfZm9ybWF0Iixmb3JtYXQ6ImlwdjYiLGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSl9fX0pLG93PWVVKCIkWm9kQ0lEUnY0IiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hJCksb28uaW5pdChlLHQpfSksb0k9ZVUoIiRab2RDSURSdjYiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFrKSxvby5pbml0KGUsdCksZS5fem9kLmNoZWNrPXI9PntsZXRbbixpXT1yLnZhbHVlLnNwbGl0KCIvIik7dHJ5e2lmKCFpKXRocm93IEVycm9yKCk7bGV0IGU9TnVtYmVyKGkpO2lmKGAke2V9YCE9PWl8fGU8MHx8ZT4xMjgpdGhyb3cgRXJyb3IoKTtuZXcgVVJMKGBodHRwOi8vWyR7bn1dYCl9Y2F0Y2h7ci5pc3N1ZXMucHVzaCh7Y29kZToiaW52YWxpZF9mb3JtYXQiLGZvcm1hdDoiY2lkcnY2IixpbnB1dDpyLnZhbHVlLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX19KTtmdW5jdGlvbiBvUyhlKXtpZigiIj09PWUpcmV0dXJuITA7aWYoZS5sZW5ndGglNCE9MClyZXR1cm4hMTt0cnl7cmV0dXJuIGF0b2IoZSksITB9Y2F0Y2h7cmV0dXJuITF9fWxldCBvTz1lVSgiJFpvZEJhc2U2NCIsKGUsdCk9Pnt0LnBhdHRlcm4/Pyh0LnBhdHRlcm49YXcpLG9vLmluaXQoZSx0KSxlLl96b2Qub25hdHRhY2gucHVzaChlPT57ZS5fem9kLmJhZy5jb250ZW50RW5jb2Rpbmc9ImJhc2U2NCJ9KSxlLl96b2QuY2hlY2s9cj0+e29TKHIudmFsdWUpfHxyLmlzc3Vlcy5wdXNoKHtjb2RlOiJpbnZhbGlkX2Zvcm1hdCIsZm9ybWF0OiJiYXNlNjQiLGlucHV0OnIudmFsdWUsaW5zdDplLGNvbnRpbnVlOiF0LmFib3J0fSl9fSk7ZnVuY3Rpb24gb2ooZSl7aWYoIWFJLnRlc3QoZSkpcmV0dXJuITE7bGV0IHQ9ZS5yZXBsYWNlKC9bLV9dL2csZT0+Ii0iPT09ZT8iKyI6Ii8iKTtyZXR1cm4gb1ModC5wYWRFbmQoNCpNYXRoLmNlaWwodC5sZW5ndGgvNCksIj0iKSl9bGV0IG9FPWVVKCIkWm9kQmFzZTY0VVJMIiwoZSx0KT0+e3QucGF0dGVybj8/KHQucGF0dGVybj1hSSksb28uaW5pdChlLHQpLGUuX3pvZC5vbmF0dGFjaC5wdXNoKGU9PntlLl96b2QuYmFnLmNvbnRlbnRFbmNvZGluZz0iYmFzZTY0dXJsIn0pLGUuX3pvZC5jaGVjaz1yPT57b2ooci52YWx1ZSl8fHIuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfZm9ybWF0Iixmb3JtYXQ6ImJhc2U2NHVybCIsaW5wdXQ6ci52YWx1ZSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxvWj1lVSgiJFpvZEUxNjQiLChlLHQpPT57dC5wYXR0ZXJuPz8odC5wYXR0ZXJuPWFPKSxvby5pbml0KGUsdCl9KTtmdW5jdGlvbiBvTihlLHQ9bnVsbCl7dHJ5e2xldCByPWUuc3BsaXQoIi4iKTtpZigzIT09ci5sZW5ndGgpcmV0dXJuITE7bGV0W25dPXI7aWYoIW4pcmV0dXJuITE7bGV0IGk9SlNPTi5wYXJzZShhdG9iKG4pKTtpZigidHlwImluIGkmJmk/LnR5cCE9PSJKV1QifHwhaS5hbGd8fHQmJighKCJhbGciaW4gaSl8fGkuYWxnIT09dCkpcmV0dXJuITE7cmV0dXJuITB9Y2F0Y2h7cmV0dXJuITF9fWxldCBvVD1lVSgiJFpvZEpXVCIsKGUsdCk9Pntvby5pbml0KGUsdCksZS5fem9kLmNoZWNrPXI9PntvTihyLnZhbHVlLHQuYWxnKXx8ci5pc3N1ZXMucHVzaCh7Y29kZToiaW52YWxpZF9mb3JtYXQiLGZvcm1hdDoiand0IixpbnB1dDpyLnZhbHVlLGluc3Q6ZSxjb250aW51ZTohdC5hYm9ydH0pfX0pLG96PWVVKCIkWm9kQ3VzdG9tU3RyaW5nRm9ybWF0IiwoZSx0KT0+e29vLmluaXQoZSx0KSxlLl96b2QuY2hlY2s9cj0+e3QuZm4oci52YWx1ZSl8fHIuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfZm9ybWF0Iixmb3JtYXQ6dC5mb3JtYXQsaW5wdXQ6ci52YWx1ZSxpbnN0OmUsY29udGludWU6IXQuYWJvcnR9KX19KSxvUD1lVSgiJFpvZE51bWJlciIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhdHRlcm49ZS5fem9kLmJhZy5wYXR0ZXJuPz9hVSxlLl96b2QucGFyc2U9KHIsbik9PntpZih0LmNvZXJjZSl0cnl7ci52YWx1ZT1OdW1iZXIoci52YWx1ZSl9Y2F0Y2goZSl7fWxldCBpPXIudmFsdWU7aWYoIm51bWJlciI9PXR5cGVvZiBpJiYhTnVtYmVyLmlzTmFOKGkpJiZOdW1iZXIuaXNGaW5pdGUoaSkpcmV0dXJuIHI7bGV0IGE9Im51bWJlciI9PXR5cGVvZiBpP051bWJlci5pc05hTihpKT8iTmFOIjpOdW1iZXIuaXNGaW5pdGUoaSk/dm9pZCAwOiJJbmZpbml0eSI6dm9pZCAwO3JldHVybiByLmlzc3Vlcy5wdXNoKHtleHBlY3RlZDoibnVtYmVyIixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0OmksaW5zdDplLC4uLmE/e3JlY2VpdmVkOmF9Ont9fSkscn19KSxvQT1lVSgiJFpvZE51bWJlciIsKGUsdCk9PnthcS5pbml0KGUsdCksb1AuaW5pdChlLHQpfSksb1U9ZVUoIiRab2RCb29sZWFuIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGF0dGVybj1hQyxlLl96b2QucGFyc2U9KHIsbik9PntpZih0LmNvZXJjZSl0cnl7ci52YWx1ZT0hIXIudmFsdWV9Y2F0Y2goZSl7fWxldCBpPXIudmFsdWU7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgaXx8ci5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6ImJvb2xlYW4iLGNvZGU6ImludmFsaWRfdHlwZSIsaW5wdXQ6aSxpbnN0OmV9KSxyfX0pLG9DPWVVKCIkWm9kQmlnSW50IiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGF0dGVybj1hUCxlLl96b2QucGFyc2U9KHIsbik9PntpZih0LmNvZXJjZSl0cnl7ci52YWx1ZT1CaWdJbnQoci52YWx1ZSl9Y2F0Y2goZSl7fXJldHVybiJiaWdpbnQiPT10eXBlb2Ygci52YWx1ZXx8ci5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6ImJpZ2ludCIsY29kZToiaW52YWxpZF90eXBlIixpbnB1dDpyLnZhbHVlLGluc3Q6ZX0pLHJ9fSksb0Q9ZVUoIiRab2RCaWdJbnQiLChlLHQpPT57YUcuaW5pdChlLHQpLG9DLmluaXQoZSx0KX0pLG9SPWVVKCIkWm9kU3ltYm9sIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGFyc2U9KHQscik9PntsZXQgbj10LnZhbHVlO3JldHVybiJzeW1ib2wiPT10eXBlb2Ygbnx8dC5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6InN5bWJvbCIsY29kZToiaW52YWxpZF90eXBlIixpbnB1dDpuLGluc3Q6ZX0pLHR9fSksb009ZVUoIiRab2RVbmRlZmluZWQiLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXR0ZXJuPWFSLGUuX3pvZC52YWx1ZXM9bmV3IFNldChbdm9pZCAwXSksZS5fem9kLm9wdGluPSJvcHRpb25hbCIsZS5fem9kLm9wdG91dD0ib3B0aW9uYWwiLGUuX3pvZC5wYXJzZT0odCxyKT0+e2xldCBuPXQudmFsdWU7cmV0dXJuIHZvaWQgMD09PW58fHQuaXNzdWVzLnB1c2goe2V4cGVjdGVkOiJ1bmRlZmluZWQiLGNvZGU6ImludmFsaWRfdHlwZSIsaW5wdXQ6bixpbnN0OmV9KSx0fX0pLG9MPWVVKCIkWm9kTnVsbCIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhdHRlcm49YUQsZS5fem9kLnZhbHVlcz1uZXcgU2V0KFtudWxsXSksZS5fem9kLnBhcnNlPSh0LHIpPT57bGV0IG49dC52YWx1ZTtyZXR1cm4gbnVsbD09PW58fHQuaXNzdWVzLnB1c2goe2V4cGVjdGVkOiJudWxsIixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0Om4saW5zdDplfSksdH19KSxvRj1lVSgiJFpvZEFueSIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhcnNlPWU9PmV9KSxvVj1lVSgiJFpvZFVua25vd24iLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXJzZT1lPT5lfSksb0I9ZVUoIiRab2ROZXZlciIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhcnNlPSh0LHIpPT4odC5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6Im5ldmVyIixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0OnQudmFsdWUsaW5zdDplfSksdCl9KSxvSj1lVSgiJFpvZFZvaWQiLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXJzZT0odCxyKT0+e2xldCBuPXQudmFsdWU7cmV0dXJuIHZvaWQgMD09PW58fHQuaXNzdWVzLnB1c2goe2V4cGVjdGVkOiJ2b2lkIixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0Om4saW5zdDplfSksdH19KSxvVz1lVSgiJFpvZERhdGUiLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXJzZT0ocixuKT0+e2lmKHQuY29lcmNlKXRyeXtyLnZhbHVlPW5ldyBEYXRlKHIudmFsdWUpfWNhdGNoKGUpe31sZXQgaT1yLnZhbHVlLGE9aSBpbnN0YW5jZW9mIERhdGU7cmV0dXJuIGEmJiFOdW1iZXIuaXNOYU4oaS5nZXRUaW1lKCkpfHxyLmlzc3Vlcy5wdXNoKHtleHBlY3RlZDoiZGF0ZSIsY29kZToiaW52YWxpZF90eXBlIixpbnB1dDppLC4uLmE/e3JlY2VpdmVkOiJJbnZhbGlkIERhdGUifTp7fSxpbnN0OmV9KSxyfX0pO2Z1bmN0aW9uIG9xKGUsdCxyKXtlLmlzc3Vlcy5sZW5ndGgmJnQuaXNzdWVzLnB1c2goLi4udGcocixlLmlzc3VlcykpLHQudmFsdWVbcl09ZS52YWx1ZX1sZXQgb0c9ZVUoIiRab2RBcnJheSIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhcnNlPShyLG4pPT57bGV0IGk9ci52YWx1ZTtpZighQXJyYXkuaXNBcnJheShpKSlyZXR1cm4gci5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6ImFycmF5Iixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0OmksaW5zdDplfSkscjtyLnZhbHVlPUFycmF5KGkubGVuZ3RoKTtsZXQgYT1bXTtmb3IobGV0IGU9MDtlPGkubGVuZ3RoO2UrKyl7bGV0IG89aVtlXSxzPXQuZWxlbWVudC5fem9kLnJ1bih7dmFsdWU6byxpc3N1ZXM6W119LG4pO3MgaW5zdGFuY2VvZiBQcm9taXNlP2EucHVzaChzLnRoZW4odD0+b3EodCxyLGUpKSk6b3EocyxyLGUpfXJldHVybiBhLmxlbmd0aD9Qcm9taXNlLmFsbChhKS50aGVuKCgpPT5yKTpyfX0pO2Z1bmN0aW9uIG9LKGUsdCxyKXtlLmlzc3Vlcy5sZW5ndGgmJnQuaXNzdWVzLnB1c2goLi4udGcocixlLmlzc3VlcykpLHQudmFsdWVbcl09ZS52YWx1ZX1mdW5jdGlvbiBvWShlLHQscixuKXtlLmlzc3Vlcy5sZW5ndGg/dm9pZCAwPT09bltyXT9yIGluIG4/dC52YWx1ZVtyXT12b2lkIDA6dC52YWx1ZVtyXT1lLnZhbHVlOnQuaXNzdWVzLnB1c2goLi4udGcocixlLmlzc3VlcykpOnZvaWQgMD09PWUudmFsdWU/ciBpbiBuJiYodC52YWx1ZVtyXT12b2lkIDApOnQudmFsdWVbcl09ZS52YWx1ZX1sZXQgb0g9ZVUoIiRab2RPYmplY3QiLChlLHQpPT57bGV0IHIsbjtvaS5pbml0KGUsdCk7bGV0IGk9ZUsoKCk9PntsZXQgZT1PYmplY3Qua2V5cyh0LnNoYXBlKTtmb3IobGV0IHIgb2YgZSlpZighKHQuc2hhcGVbcl1pbnN0YW5jZW9mIG9pKSl0aHJvdyBFcnJvcihgSW52YWxpZCBlbGVtZW50IGF0IGtleSAiJHtyfSI6IGV4cGVjdGVkIGEgWm9kIHNjaGVtYWApO2xldCByPXRzKHQuc2hhcGUpO3JldHVybntzaGFwZTp0LnNoYXBlLGtleXM6ZSxrZXlTZXQ6bmV3IFNldChlKSxudW1LZXlzOmUubGVuZ3RoLG9wdGlvbmFsS2V5czpuZXcgU2V0KHIpfX0pO2VRKGUuX3pvZCwicHJvcFZhbHVlcyIsKCk9PntsZXQgZT10LnNoYXBlLHI9e307Zm9yKGxldCB0IGluIGUpe2xldCBuPWVbdF0uX3pvZDtpZihuLnZhbHVlcylmb3IobGV0IGUgb2Yoclt0XT8/KHJbdF09bmV3IFNldCksbi52YWx1ZXMpKXJbdF0uYWRkKGUpfXJldHVybiByfSk7bGV0IGE9IWVSLmppdGxlc3Msbz1hJiZlMy52YWx1ZSxzPXQuY2F0Y2hhbGw7ZS5fem9kLnBhcnNlPSh1LGwpPT57bj8/KG49aS52YWx1ZSk7bGV0IGQ9dS52YWx1ZTtpZighZTUoZCkpcmV0dXJuIHUuaXNzdWVzLnB1c2goe2V4cGVjdGVkOiJvYmplY3QiLGNvZGU6ImludmFsaWRfdHlwZSIsaW5wdXQ6ZCxpbnN0OmV9KSx1O2xldCBjPVtdO2lmKGEmJm8mJmw/LmFzeW5jPT09ITEmJiEwIT09bC5qaXRsZXNzKXJ8fChyPShlPT57bGV0IHQ9bmV3IG9yKFsic2hhcGUiLCJwYXlsb2FkIiwiY3R4Il0pLHI9aS52YWx1ZSxuPWU9PntsZXQgdD1lMihlKTtyZXR1cm5gc2hhcGVbJHt0fV0uX3pvZC5ydW4oeyB2YWx1ZTogaW5wdXRbJHt0fV0sIGlzc3VlczogW10gfSwgY3R4KWB9O3Qud3JpdGUoImNvbnN0IGlucHV0ID0gcGF5bG9hZC52YWx1ZTsiKTtsZXQgYT1PYmplY3QuY3JlYXRlKG51bGwpLG89MDtmb3IobGV0IGUgb2Ygci5rZXlzKWFbZV09YGtleV8ke28rK31gO2ZvcihsZXQgZSBvZih0LndyaXRlKCJjb25zdCBuZXdSZXN1bHQgPSB7fSIpLHIua2V5cykpaWYoci5vcHRpb25hbEtleXMuaGFzKGUpKXtsZXQgcj1hW2VdO3Qud3JpdGUoYGNvbnN0ICR7cn0gPSAke24oZSl9O2ApO2xldCBpPWUyKGUpO3Qud3JpdGUoYAogICAgICAgIGlmICgke3J9Lmlzc3Vlcy5sZW5ndGgpIHsKICAgICAgICAgIGlmIChpbnB1dFske2l9XSA9PT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIGlmICgke2l9IGluIGlucHV0KSB7CiAgICAgICAgICAgICAgbmV3UmVzdWx0WyR7aX1dID0gdW5kZWZpbmVkOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXlsb2FkLmlzc3VlcyA9IHBheWxvYWQuaXNzdWVzLmNvbmNhdCgKICAgICAgICAgICAgICAke3J9Lmlzc3Vlcy5tYXAoKGlzcykgPT4gKHsKICAgICAgICAgICAgICAgIC4uLmlzcywKICAgICAgICAgICAgICAgIHBhdGg6IGlzcy5wYXRoID8gWyR7aX0sIC4uLmlzcy5wYXRoXSA6IFske2l9XSwKICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKCR7cn0udmFsdWUgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgaWYgKCR7aX0gaW4gaW5wdXQpIG5ld1Jlc3VsdFske2l9XSA9IHVuZGVmaW5lZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbmV3UmVzdWx0WyR7aX1dID0gJHtyfS52YWx1ZTsKICAgICAgICB9CiAgICAgICAgYCl9ZWxzZXtsZXQgcj1hW2VdO3Qud3JpdGUoYGNvbnN0ICR7cn0gPSAke24oZSl9O2ApLHQud3JpdGUoYAogICAgICAgICAgaWYgKCR7cn0uaXNzdWVzLmxlbmd0aCkgcGF5bG9hZC5pc3N1ZXMgPSBwYXlsb2FkLmlzc3Vlcy5jb25jYXQoJHtyfS5pc3N1ZXMubWFwKGlzcyA9PiAoewogICAgICAgICAgICAuLi5pc3MsCiAgICAgICAgICAgIHBhdGg6IGlzcy5wYXRoID8gWyR7ZTIoZSl9LCAuLi5pc3MucGF0aF0gOiBbJHtlMihlKX1dCiAgICAgICAgICB9KSkpO2ApLHQud3JpdGUoYG5ld1Jlc3VsdFske2UyKGUpfV0gPSAke3J9LnZhbHVlYCl9dC53cml0ZSgicGF5bG9hZC52YWx1ZSA9IG5ld1Jlc3VsdDsiKSx0LndyaXRlKCJyZXR1cm4gcGF5bG9hZDsiKTtsZXQgcz10LmNvbXBpbGUoKTtyZXR1cm4odCxyKT0+cyhlLHQscil9KSh0LnNoYXBlKSksdT1yKHUsbCk7ZWxzZXt1LnZhbHVlPXt9O2xldCBlPW4uc2hhcGU7Zm9yKGxldCB0IG9mIG4ua2V5cyl7bGV0IHI9ZVt0XSxuPXIuX3pvZC5ydW4oe3ZhbHVlOmRbdF0saXNzdWVzOltdfSxsKSxpPSJvcHRpb25hbCI9PT1yLl96b2Qub3B0aW4mJiJvcHRpb25hbCI9PT1yLl96b2Qub3B0b3V0O24gaW5zdGFuY2VvZiBQcm9taXNlP2MucHVzaChuLnRoZW4oZT0+aT9vWShlLHUsdCxkKTpvSyhlLHUsdCkpKTppP29ZKG4sdSx0LGQpOm9LKG4sdSx0KX19aWYoIXMpcmV0dXJuIGMubGVuZ3RoP1Byb21pc2UuYWxsKGMpLnRoZW4oKCk9PnUpOnU7bGV0IHA9W10sbT1uLmtleVNldCxmPXMuX3pvZCxoPWYuZGVmLnR5cGU7Zm9yKGxldCBlIG9mIE9iamVjdC5rZXlzKGQpKXtpZihtLmhhcyhlKSljb250aW51ZTtpZigibmV2ZXIiPT09aCl7cC5wdXNoKGUpO2NvbnRpbnVlfWxldCB0PWYucnVuKHt2YWx1ZTpkW2VdLGlzc3VlczpbXX0sbCk7dCBpbnN0YW5jZW9mIFByb21pc2U/Yy5wdXNoKHQudGhlbih0PT5vSyh0LHUsZSkpKTpvSyh0LHUsZSl9cmV0dXJuKHAubGVuZ3RoJiZ1Lmlzc3Vlcy5wdXNoKHtjb2RlOiJ1bnJlY29nbml6ZWRfa2V5cyIsa2V5czpwLGlucHV0OmQsaW5zdDplfSksYy5sZW5ndGgpP1Byb21pc2UuYWxsKGMpLnRoZW4oKCk9PnUpOnV9fSk7ZnVuY3Rpb24gb1goZSx0LHIsbil7Zm9yKGxldCByIG9mIGUpaWYoMD09PXIuaXNzdWVzLmxlbmd0aClyZXR1cm4gdC52YWx1ZT1yLnZhbHVlLHQ7cmV0dXJuIHQuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfdW5pb24iLGlucHV0OnQudmFsdWUsaW5zdDpyLGVycm9yczplLm1hcChlPT5lLmlzc3Vlcy5tYXAoZT0+dGIoZSxuLGVNKCkpKSl9KSx0fWxldCBvUT1lVSgiJFpvZFVuaW9uIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlUShlLl96b2QsIm9wdGluIiwoKT0+dC5vcHRpb25zLnNvbWUoZT0+Im9wdGlvbmFsIj09PWUuX3pvZC5vcHRpbik/Im9wdGlvbmFsIjp2b2lkIDApLGVRKGUuX3pvZCwib3B0b3V0IiwoKT0+dC5vcHRpb25zLnNvbWUoZT0+Im9wdGlvbmFsIj09PWUuX3pvZC5vcHRvdXQpPyJvcHRpb25hbCI6dm9pZCAwKSxlUShlLl96b2QsInZhbHVlcyIsKCk9PntpZih0Lm9wdGlvbnMuZXZlcnkoZT0+ZS5fem9kLnZhbHVlcykpcmV0dXJuIG5ldyBTZXQodC5vcHRpb25zLmZsYXRNYXAoZT0+QXJyYXkuZnJvbShlLl96b2QudmFsdWVzKSkpfSksZVEoZS5fem9kLCJwYXR0ZXJuIiwoKT0+e2lmKHQub3B0aW9ucy5ldmVyeShlPT5lLl96b2QucGF0dGVybikpe2xldCBlPXQub3B0aW9ucy5tYXAoZT0+ZS5fem9kLnBhdHRlcm4pO3JldHVybiBSZWdFeHAoYF4oJHtlLm1hcChlPT5lSChlLnNvdXJjZSkpLmpvaW4oInwiKX0pJGApfX0pLGUuX3pvZC5wYXJzZT0ocixuKT0+e2xldCBpPSExLGE9W107Zm9yKGxldCBlIG9mIHQub3B0aW9ucyl7bGV0IHQ9ZS5fem9kLnJ1bih7dmFsdWU6ci52YWx1ZSxpc3N1ZXM6W119LG4pO2lmKHQgaW5zdGFuY2VvZiBQcm9taXNlKWEucHVzaCh0KSxpPSEwO2Vsc2V7aWYoMD09PXQuaXNzdWVzLmxlbmd0aClyZXR1cm4gdDthLnB1c2godCl9fXJldHVybiBpP1Byb21pc2UuYWxsKGEpLnRoZW4odD0+b1godCxyLGUsbikpOm9YKGEscixlLG4pfX0pLG8wPWVVKCIkWm9kRGlzY3JpbWluYXRlZFVuaW9uIiwoZSx0KT0+e29RLmluaXQoZSx0KTtsZXQgcj1lLl96b2QucGFyc2U7ZVEoZS5fem9kLCJwcm9wVmFsdWVzIiwoKT0+e2xldCBlPXt9O2ZvcihsZXQgciBvZiB0Lm9wdGlvbnMpe2xldCBuPXIuX3pvZC5wcm9wVmFsdWVzO2lmKCFufHwwPT09T2JqZWN0LmtleXMobikubGVuZ3RoKXRocm93IEVycm9yKGBJbnZhbGlkIGRpc2NyaW1pbmF0ZWQgdW5pb24gb3B0aW9uIGF0IGluZGV4ICIke3Qub3B0aW9ucy5pbmRleE9mKHIpfSJgKTtmb3IobGV0W3Qscl1vZiBPYmplY3QuZW50cmllcyhuKSlmb3IobGV0IG4gb2YoZVt0XXx8KGVbdF09bmV3IFNldCkscikpZVt0XS5hZGQobil9cmV0dXJuIGV9KTtsZXQgbj1lSygoKT0+e2xldCBlPXQub3B0aW9ucyxyPW5ldyBNYXA7Zm9yKGxldCBuIG9mIGUpe2xldCBlPW4uX3pvZC5wcm9wVmFsdWVzW3QuZGlzY3JpbWluYXRvcl07aWYoIWV8fDA9PT1lLnNpemUpdGhyb3cgRXJyb3IoYEludmFsaWQgZGlzY3JpbWluYXRlZCB1bmlvbiBvcHRpb24gYXQgaW5kZXggIiR7dC5vcHRpb25zLmluZGV4T2Yobil9ImApO2ZvcihsZXQgdCBvZiBlKXtpZihyLmhhcyh0KSl0aHJvdyBFcnJvcihgRHVwbGljYXRlIGRpc2NyaW1pbmF0b3IgdmFsdWUgIiR7U3RyaW5nKHQpfSJgKTtyLnNldCh0LG4pfX1yZXR1cm4gcn0pO2UuX3pvZC5wYXJzZT0oaSxhKT0+e2xldCBvPWkudmFsdWU7aWYoIWU1KG8pKXJldHVybiBpLmlzc3Vlcy5wdXNoKHtjb2RlOiJpbnZhbGlkX3R5cGUiLGV4cGVjdGVkOiJvYmplY3QiLGlucHV0Om8saW5zdDplfSksaTtsZXQgcz1uLnZhbHVlLmdldChvPy5bdC5kaXNjcmltaW5hdG9yXSk7cmV0dXJuIHM/cy5fem9kLnJ1bihpLGEpOnQudW5pb25GYWxsYmFjaz9yKGksYSk6KGkuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfdW5pb24iLGVycm9yczpbXSxub3RlOiJObyBtYXRjaGluZyBkaXNjcmltaW5hdG9yIixpbnB1dDpvLHBhdGg6W3QuZGlzY3JpbWluYXRvcl0saW5zdDplfSksaSl9fSksbzE9ZVUoIiRab2RJbnRlcnNlY3Rpb24iLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXJzZT0oZSxyKT0+e2xldCBuPWUudmFsdWUsaT10LmxlZnQuX3pvZC5ydW4oe3ZhbHVlOm4saXNzdWVzOltdfSxyKSxhPXQucmlnaHQuX3pvZC5ydW4oe3ZhbHVlOm4saXNzdWVzOltdfSxyKTtyZXR1cm4gaSBpbnN0YW5jZW9mIFByb21pc2V8fGEgaW5zdGFuY2VvZiBQcm9taXNlP1Byb21pc2UuYWxsKFtpLGFdKS50aGVuKChbdCxyXSk9Pm80KGUsdCxyKSk6bzQoZSxpLGEpfX0pO2Z1bmN0aW9uIG80KGUsdCxyKXtpZih0Lmlzc3Vlcy5sZW5ndGgmJmUuaXNzdWVzLnB1c2goLi4udC5pc3N1ZXMpLHIuaXNzdWVzLmxlbmd0aCYmZS5pc3N1ZXMucHVzaCguLi5yLmlzc3VlcyksdHYoZSkpcmV0dXJuIGU7bGV0IG49ZnVuY3Rpb24gZSh0LHIpe2lmKHQ9PT1yfHx0IGluc3RhbmNlb2YgRGF0ZSYmciBpbnN0YW5jZW9mIERhdGUmJit0PT0rcilyZXR1cm57dmFsaWQ6ITAsZGF0YTp0fTtpZihlNyh0KSYmZTcocikpe2xldCBuPU9iamVjdC5rZXlzKHIpLGk9T2JqZWN0LmtleXModCkuZmlsdGVyKGU9Pi0xIT09bi5pbmRleE9mKGUpKSxhPXsuLi50LC4uLnJ9O2ZvcihsZXQgbiBvZiBpKXtsZXQgaT1lKHRbbl0scltuXSk7aWYoIWkudmFsaWQpcmV0dXJue3ZhbGlkOiExLG1lcmdlRXJyb3JQYXRoOltuLC4uLmkubWVyZ2VFcnJvclBhdGhdfTthW25dPWkuZGF0YX1yZXR1cm57dmFsaWQ6ITAsZGF0YTphfX1pZihBcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KHIpKXtpZih0Lmxlbmd0aCE9PXIubGVuZ3RoKXJldHVybnt2YWxpZDohMSxtZXJnZUVycm9yUGF0aDpbXX07bGV0IG49W107Zm9yKGxldCBpPTA7aTx0Lmxlbmd0aDtpKyspe2xldCBhPWUodFtpXSxyW2ldKTtpZighYS52YWxpZClyZXR1cm57dmFsaWQ6ITEsbWVyZ2VFcnJvclBhdGg6W2ksLi4uYS5tZXJnZUVycm9yUGF0aF19O24ucHVzaChhLmRhdGEpfXJldHVybnt2YWxpZDohMCxkYXRhOm59fXJldHVybnt2YWxpZDohMSxtZXJnZUVycm9yUGF0aDpbXX19KHQudmFsdWUsci52YWx1ZSk7aWYoIW4udmFsaWQpdGhyb3cgRXJyb3IoYFVubWVyZ2FibGUgaW50ZXJzZWN0aW9uLiBFcnJvciBwYXRoOiAke0pTT04uc3RyaW5naWZ5KG4ubWVyZ2VFcnJvclBhdGgpfWApO3JldHVybiBlLnZhbHVlPW4uZGF0YSxlfWxldCBvNj1lVSgiJFpvZFR1cGxlIiwoZSx0KT0+e29pLmluaXQoZSx0KTtsZXQgcj10Lml0ZW1zLG49ci5sZW5ndGgtWy4uLnJdLnJldmVyc2UoKS5maW5kSW5kZXgoZT0+Im9wdGlvbmFsIiE9PWUuX3pvZC5vcHRpbik7ZS5fem9kLnBhcnNlPShpLGEpPT57bGV0IG89aS52YWx1ZTtpZighQXJyYXkuaXNBcnJheShvKSlyZXR1cm4gaS5pc3N1ZXMucHVzaCh7aW5wdXQ6byxpbnN0OmUsZXhwZWN0ZWQ6InR1cGxlIixjb2RlOiJpbnZhbGlkX3R5cGUifSksaTtpLnZhbHVlPVtdO2xldCBzPVtdO2lmKCF0LnJlc3Qpe2xldCB0PW8ubGVuZ3RoPnIubGVuZ3RoLGE9by5sZW5ndGg8bi0xO2lmKHR8fGEpcmV0dXJuIGkuaXNzdWVzLnB1c2goe2lucHV0Om8saW5zdDplLG9yaWdpbjoiYXJyYXkiLC4uLnQ/e2NvZGU6InRvb19iaWciLG1heGltdW06ci5sZW5ndGh9Ontjb2RlOiJ0b29fc21hbGwiLG1pbmltdW06ci5sZW5ndGh9fSksaX1sZXQgdT0tMTtmb3IobGV0IGUgb2Ygcil7aWYoKyt1Pj1vLmxlbmd0aCYmdT49biljb250aW51ZTtsZXQgdD1lLl96b2QucnVuKHt2YWx1ZTpvW3VdLGlzc3VlczpbXX0sYSk7dCBpbnN0YW5jZW9mIFByb21pc2U/cy5wdXNoKHQudGhlbihlPT5vMihlLGksdSkpKTpvMih0LGksdSl9aWYodC5yZXN0KWZvcihsZXQgZSBvZiBvLnNsaWNlKHIubGVuZ3RoKSl7dSsrO2xldCByPXQucmVzdC5fem9kLnJ1bih7dmFsdWU6ZSxpc3N1ZXM6W119LGEpO3IgaW5zdGFuY2VvZiBQcm9taXNlP3MucHVzaChyLnRoZW4oZT0+bzIoZSxpLHUpKSk6bzIocixpLHUpfXJldHVybiBzLmxlbmd0aD9Qcm9taXNlLmFsbChzKS50aGVuKCgpPT5pKTppfX0pO2Z1bmN0aW9uIG8yKGUsdCxyKXtlLmlzc3Vlcy5sZW5ndGgmJnQuaXNzdWVzLnB1c2goLi4udGcocixlLmlzc3VlcykpLHQudmFsdWVbcl09ZS52YWx1ZX1sZXQgbzk9ZVUoIiRab2RSZWNvcmQiLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXJzZT0ocixuKT0+e2xldCBpPXIudmFsdWU7aWYoIWU3KGkpKXJldHVybiByLmlzc3Vlcy5wdXNoKHtleHBlY3RlZDoicmVjb3JkIixjb2RlOiJpbnZhbGlkX3R5cGUiLGlucHV0OmksaW5zdDplfSkscjtsZXQgYT1bXTtpZih0LmtleVR5cGUuX3pvZC52YWx1ZXMpe2xldCBvLHM9dC5rZXlUeXBlLl96b2QudmFsdWVzO2ZvcihsZXQgZSBvZihyLnZhbHVlPXt9LHMpKWlmKCJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHwic3ltYm9sIj09dHlwZW9mIGUpe2xldCBvPXQudmFsdWVUeXBlLl96b2QucnVuKHt2YWx1ZTppW2VdLGlzc3VlczpbXX0sbik7byBpbnN0YW5jZW9mIFByb21pc2U/YS5wdXNoKG8udGhlbih0PT57dC5pc3N1ZXMubGVuZ3RoJiZyLmlzc3Vlcy5wdXNoKC4uLnRnKGUsdC5pc3N1ZXMpKSxyLnZhbHVlW2VdPXQudmFsdWV9KSk6KG8uaXNzdWVzLmxlbmd0aCYmci5pc3N1ZXMucHVzaCguLi50ZyhlLG8uaXNzdWVzKSksci52YWx1ZVtlXT1vLnZhbHVlKX1mb3IobGV0IGUgaW4gaSlzLmhhcyhlKXx8KG89bz8/W10pLnB1c2goZSk7byYmby5sZW5ndGg+MCYmci5pc3N1ZXMucHVzaCh7Y29kZToidW5yZWNvZ25pemVkX2tleXMiLGlucHV0OmksaW5zdDplLGtleXM6b30pfWVsc2UgZm9yKGxldCBvIG9mKHIudmFsdWU9e30sUmVmbGVjdC5vd25LZXlzKGkpKSl7aWYoIl9fcHJvdG9fXyI9PT1vKWNvbnRpbnVlO2xldCBzPXQua2V5VHlwZS5fem9kLnJ1bih7dmFsdWU6byxpc3N1ZXM6W119LG4pO2lmKHMgaW5zdGFuY2VvZiBQcm9taXNlKXRocm93IEVycm9yKCJBc3luYyBzY2hlbWFzIG5vdCBzdXBwb3J0ZWQgaW4gb2JqZWN0IGtleXMgY3VycmVudGx5Iik7aWYocy5pc3N1ZXMubGVuZ3RoKXtyLmlzc3Vlcy5wdXNoKHtvcmlnaW46InJlY29yZCIsY29kZToiaW52YWxpZF9rZXkiLGlzc3VlczpzLmlzc3Vlcy5tYXAoZT0+dGIoZSxuLGVNKCkpKSxpbnB1dDpvLHBhdGg6W29dLGluc3Q6ZX0pLHIudmFsdWVbcy52YWx1ZV09cy52YWx1ZTtjb250aW51ZX1sZXQgdT10LnZhbHVlVHlwZS5fem9kLnJ1bih7dmFsdWU6aVtvXSxpc3N1ZXM6W119LG4pO3UgaW5zdGFuY2VvZiBQcm9taXNlP2EucHVzaCh1LnRoZW4oZT0+e2UuaXNzdWVzLmxlbmd0aCYmci5pc3N1ZXMucHVzaCguLi50ZyhvLGUuaXNzdWVzKSksci52YWx1ZVtzLnZhbHVlXT1lLnZhbHVlfSkpOih1Lmlzc3Vlcy5sZW5ndGgmJnIuaXNzdWVzLnB1c2goLi4udGcobyx1Lmlzc3VlcykpLHIudmFsdWVbcy52YWx1ZV09dS52YWx1ZSl9cmV0dXJuIGEubGVuZ3RoP1Byb21pc2UuYWxsKGEpLnRoZW4oKCk9PnIpOnJ9fSksbzU9ZVUoIiRab2RNYXAiLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5wYXJzZT0ocixuKT0+e2xldCBpPXIudmFsdWU7aWYoIShpIGluc3RhbmNlb2YgTWFwKSlyZXR1cm4gci5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6Im1hcCIsY29kZToiaW52YWxpZF90eXBlIixpbnB1dDppLGluc3Q6ZX0pLHI7bGV0IGE9W107Zm9yKGxldFtvLHNdb2Yoci52YWx1ZT1uZXcgTWFwLGkpKXtsZXQgdT10LmtleVR5cGUuX3pvZC5ydW4oe3ZhbHVlOm8saXNzdWVzOltdfSxuKSxsPXQudmFsdWVUeXBlLl96b2QucnVuKHt2YWx1ZTpzLGlzc3VlczpbXX0sbik7dSBpbnN0YW5jZW9mIFByb21pc2V8fGwgaW5zdGFuY2VvZiBQcm9taXNlP2EucHVzaChQcm9taXNlLmFsbChbdSxsXSkudGhlbigoW3QsYV0pPT57bzModCxhLHIsbyxpLGUsbil9KSk6bzModSxsLHIsbyxpLGUsbil9cmV0dXJuIGEubGVuZ3RoP1Byb21pc2UuYWxsKGEpLnRoZW4oKCk9PnIpOnJ9fSk7ZnVuY3Rpb24gbzMoZSx0LHIsbixpLGEsbyl7ZS5pc3N1ZXMubGVuZ3RoJiYodGUuaGFzKHR5cGVvZiBuKT9yLmlzc3Vlcy5wdXNoKC4uLnRnKG4sZS5pc3N1ZXMpKTpyLmlzc3Vlcy5wdXNoKHtvcmlnaW46Im1hcCIsY29kZToiaW52YWxpZF9rZXkiLGlucHV0OmksaW5zdDphLGlzc3VlczplLmlzc3Vlcy5tYXAoZT0+dGIoZSxvLGVNKCkpKX0pKSx0Lmlzc3Vlcy5sZW5ndGgmJih0ZS5oYXModHlwZW9mIG4pP3IuaXNzdWVzLnB1c2goLi4udGcobix0Lmlzc3VlcykpOnIuaXNzdWVzLnB1c2goe29yaWdpbjoibWFwIixjb2RlOiJpbnZhbGlkX2VsZW1lbnQiLGlucHV0OmksaW5zdDphLGtleTpuLGlzc3Vlczp0Lmlzc3Vlcy5tYXAoZT0+dGIoZSxvLGVNKCkpKX0pKSxyLnZhbHVlLnNldChlLnZhbHVlLHQudmFsdWUpfWxldCBvNz1lVSgiJFpvZFNldCIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhcnNlPShyLG4pPT57bGV0IGk9ci52YWx1ZTtpZighKGkgaW5zdGFuY2VvZiBTZXQpKXJldHVybiByLmlzc3Vlcy5wdXNoKHtpbnB1dDppLGluc3Q6ZSxleHBlY3RlZDoic2V0Iixjb2RlOiJpbnZhbGlkX3R5cGUifSkscjtsZXQgYT1bXTtmb3IobGV0IGUgb2Yoci52YWx1ZT1uZXcgU2V0LGkpKXtsZXQgaT10LnZhbHVlVHlwZS5fem9kLnJ1bih7dmFsdWU6ZSxpc3N1ZXM6W119LG4pO2kgaW5zdGFuY2VvZiBQcm9taXNlP2EucHVzaChpLnRoZW4oZT0+bzgoZSxyKSkpOm84KGkscil9cmV0dXJuIGEubGVuZ3RoP1Byb21pc2UuYWxsKGEpLnRoZW4oKCk9PnIpOnJ9fSk7ZnVuY3Rpb24gbzgoZSx0KXtlLmlzc3Vlcy5sZW5ndGgmJnQuaXNzdWVzLnB1c2goLi4uZS5pc3N1ZXMpLHQudmFsdWUuYWRkKGUudmFsdWUpfWxldCBzZT1lVSgiJFpvZEVudW0iLChlLHQpPT57b2kuaW5pdChlLHQpO2xldCByPWVXKHQuZW50cmllcyk7ZS5fem9kLnZhbHVlcz1uZXcgU2V0KHIpLGUuX3pvZC5wYXR0ZXJuPVJlZ0V4cChgXigke3IuZmlsdGVyKGU9PnRlLmhhcyh0eXBlb2YgZSkpLm1hcChlPT4ic3RyaW5nIj09dHlwZW9mIGU/dHIoZSk6ZS50b1N0cmluZygpKS5qb2luKCJ8Iil9KSRgKSxlLl96b2QucGFyc2U9KHQsbik9PntsZXQgaT10LnZhbHVlO3JldHVybiBlLl96b2QudmFsdWVzLmhhcyhpKXx8dC5pc3N1ZXMucHVzaCh7Y29kZToiaW52YWxpZF92YWx1ZSIsdmFsdWVzOnIsaW5wdXQ6aSxpbnN0OmV9KSx0fX0pLHN0PWVVKCIkWm9kTGl0ZXJhbCIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnZhbHVlcz1uZXcgU2V0KHQudmFsdWVzKSxlLl96b2QucGF0dGVybj1SZWdFeHAoYF4oJHt0LnZhbHVlcy5tYXAoZT0+InN0cmluZyI9PXR5cGVvZiBlP3RyKGUpOmU/ZS50b1N0cmluZygpOlN0cmluZyhlKSkuam9pbigifCIpfSkkYCksZS5fem9kLnBhcnNlPShyLG4pPT57bGV0IGk9ci52YWx1ZTtyZXR1cm4gZS5fem9kLnZhbHVlcy5oYXMoaSl8fHIuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfdmFsdWUiLHZhbHVlczp0LnZhbHVlcyxpbnB1dDppLGluc3Q6ZX0pLHJ9fSksc3I9ZVUoIiRab2RGaWxlIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGFyc2U9KHQscik9PntsZXQgbj10LnZhbHVlO3JldHVybiBuIGluc3RhbmNlb2YgRmlsZXx8dC5pc3N1ZXMucHVzaCh7ZXhwZWN0ZWQ6ImZpbGUiLGNvZGU6ImludmFsaWRfdHlwZSIsaW5wdXQ6bixpbnN0OmV9KSx0fX0pLHNuPWVVKCIkWm9kVHJhbnNmb3JtIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGFyc2U9KGUscik9PntsZXQgbj10LnRyYW5zZm9ybShlLnZhbHVlLGUpO2lmKHIuYXN5bmMpcmV0dXJuKG4gaW5zdGFuY2VvZiBQcm9taXNlP246UHJvbWlzZS5yZXNvbHZlKG4pKS50aGVuKHQ9PihlLnZhbHVlPXQsZSkpO2lmKG4gaW5zdGFuY2VvZiBQcm9taXNlKXRocm93IG5ldyBlRDtyZXR1cm4gZS52YWx1ZT1uLGV9fSksc2k9ZVUoIiRab2RPcHRpb25hbCIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLm9wdGluPSJvcHRpb25hbCIsZS5fem9kLm9wdG91dD0ib3B0aW9uYWwiLGVRKGUuX3pvZCwidmFsdWVzIiwoKT0+dC5pbm5lclR5cGUuX3pvZC52YWx1ZXM/bmV3IFNldChbLi4udC5pbm5lclR5cGUuX3pvZC52YWx1ZXMsdm9pZCAwXSk6dm9pZCAwKSxlUShlLl96b2QsInBhdHRlcm4iLCgpPT57bGV0IGU9dC5pbm5lclR5cGUuX3pvZC5wYXR0ZXJuO3JldHVybiBlP1JlZ0V4cChgXigke2VIKGUuc291cmNlKX0pPyRgKTp2b2lkIDB9KSxlLl96b2QucGFyc2U9KGUscik9PiJvcHRpb25hbCI9PT10LmlubmVyVHlwZS5fem9kLm9wdGluP3QuaW5uZXJUeXBlLl96b2QucnVuKGUscik6dm9pZCAwPT09ZS52YWx1ZT9lOnQuaW5uZXJUeXBlLl96b2QucnVuKGUscil9KSxzYT1lVSgiJFpvZE51bGxhYmxlIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlUShlLl96b2QsIm9wdGluIiwoKT0+dC5pbm5lclR5cGUuX3pvZC5vcHRpbiksZVEoZS5fem9kLCJvcHRvdXQiLCgpPT50LmlubmVyVHlwZS5fem9kLm9wdG91dCksZVEoZS5fem9kLCJwYXR0ZXJuIiwoKT0+e2xldCBlPXQuaW5uZXJUeXBlLl96b2QucGF0dGVybjtyZXR1cm4gZT9SZWdFeHAoYF4oJHtlSChlLnNvdXJjZSl9fG51bGwpJGApOnZvaWQgMH0pLGVRKGUuX3pvZCwidmFsdWVzIiwoKT0+dC5pbm5lclR5cGUuX3pvZC52YWx1ZXM/bmV3IFNldChbLi4udC5pbm5lclR5cGUuX3pvZC52YWx1ZXMsbnVsbF0pOnZvaWQgMCksZS5fem9kLnBhcnNlPShlLHIpPT5udWxsPT09ZS52YWx1ZT9lOnQuaW5uZXJUeXBlLl96b2QucnVuKGUscil9KSxzbz1lVSgiJFpvZERlZmF1bHQiLChlLHQpPT57b2kuaW5pdChlLHQpLGUuX3pvZC5vcHRpbj0ib3B0aW9uYWwiLGVRKGUuX3pvZCwidmFsdWVzIiwoKT0+dC5pbm5lclR5cGUuX3pvZC52YWx1ZXMpLGUuX3pvZC5wYXJzZT0oZSxyKT0+e2lmKHZvaWQgMD09PWUudmFsdWUpcmV0dXJuIGUudmFsdWU9dC5kZWZhdWx0VmFsdWUsZTtsZXQgbj10LmlubmVyVHlwZS5fem9kLnJ1bihlLHIpO3JldHVybiBuIGluc3RhbmNlb2YgUHJvbWlzZT9uLnRoZW4oZT0+c3MoZSx0KSk6c3Mobix0KX19KTtmdW5jdGlvbiBzcyhlLHQpe3JldHVybiB2b2lkIDA9PT1lLnZhbHVlJiYoZS52YWx1ZT10LmRlZmF1bHRWYWx1ZSksZX1sZXQgc3U9ZVUoIiRab2RQcmVmYXVsdCIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLm9wdGluPSJvcHRpb25hbCIsZVEoZS5fem9kLCJ2YWx1ZXMiLCgpPT50LmlubmVyVHlwZS5fem9kLnZhbHVlcyksZS5fem9kLnBhcnNlPShlLHIpPT4odm9pZCAwPT09ZS52YWx1ZSYmKGUudmFsdWU9dC5kZWZhdWx0VmFsdWUpLHQuaW5uZXJUeXBlLl96b2QucnVuKGUscikpfSksc2w9ZVUoIiRab2ROb25PcHRpb25hbCIsKGUsdCk9PntvaS5pbml0KGUsdCksZVEoZS5fem9kLCJ2YWx1ZXMiLCgpPT57bGV0IGU9dC5pbm5lclR5cGUuX3pvZC52YWx1ZXM7cmV0dXJuIGU/bmV3IFNldChbLi4uZV0uZmlsdGVyKGU9PnZvaWQgMCE9PWUpKTp2b2lkIDB9KSxlLl96b2QucGFyc2U9KHIsbik9PntsZXQgaT10LmlubmVyVHlwZS5fem9kLnJ1bihyLG4pO3JldHVybiBpIGluc3RhbmNlb2YgUHJvbWlzZT9pLnRoZW4odD0+c2QodCxlKSk6c2QoaSxlKX19KTtmdW5jdGlvbiBzZChlLHQpe3JldHVybiBlLmlzc3Vlcy5sZW5ndGh8fHZvaWQgMCE9PWUudmFsdWV8fGUuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfdHlwZSIsZXhwZWN0ZWQ6Im5vbm9wdGlvbmFsIixpbnB1dDplLnZhbHVlLGluc3Q6dH0pLGV9bGV0IHNjPWVVKCIkWm9kU3VjY2VzcyIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLnBhcnNlPShlLHIpPT57bGV0IG49dC5pbm5lclR5cGUuX3pvZC5ydW4oZSxyKTtyZXR1cm4gbiBpbnN0YW5jZW9mIFByb21pc2U/bi50aGVuKHQ9PihlLnZhbHVlPTA9PT10Lmlzc3Vlcy5sZW5ndGgsZSkpOihlLnZhbHVlPTA9PT1uLmlzc3Vlcy5sZW5ndGgsZSl9fSksc3A9ZVUoIiRab2RDYXRjaCIsKGUsdCk9PntvaS5pbml0KGUsdCksZS5fem9kLm9wdGluPSJvcHRpb25hbCIsZVEoZS5fem9kLCJvcHRvdXQiLCgpPT50LmlubmVyVHlwZS5fem9kLm9wdG91dCksZVEoZS5fem9kLCJ2YWx1ZXMiLCgpPT50LmlubmVyVHlwZS5fem9kLnZhbHVlcyksZS5fem9kLnBhcnNlPShlLHIpPT57bGV0IG49dC5pbm5lclR5cGUuX3pvZC5ydW4oZSxyKTtyZXR1cm4gbiBpbnN0YW5jZW9mIFByb21pc2U/bi50aGVuKG49PihlLnZhbHVlPW4udmFsdWUsbi5pc3N1ZXMubGVuZ3RoJiYoZS52YWx1ZT10LmNhdGNoVmFsdWUoey4uLmUsZXJyb3I6e2lzc3VlczpuLmlzc3Vlcy5tYXAoZT0+dGIoZSxyLGVNKCkpKX0saW5wdXQ6ZS52YWx1ZX0pLGUuaXNzdWVzPVtdKSxlKSk6KGUudmFsdWU9bi52YWx1ZSxuLmlzc3Vlcy5sZW5ndGgmJihlLnZhbHVlPXQuY2F0Y2hWYWx1ZSh7Li4uZSxlcnJvcjp7aXNzdWVzOm4uaXNzdWVzLm1hcChlPT50YihlLHIsZU0oKSkpfSxpbnB1dDplLnZhbHVlfSksZS5pc3N1ZXM9W10pLGUpfX0pLHNtPWVVKCIkWm9kTmFOIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGFyc2U9KHQscik9PigibnVtYmVyIj09dHlwZW9mIHQudmFsdWUmJk51bWJlci5pc05hTih0LnZhbHVlKXx8dC5pc3N1ZXMucHVzaCh7aW5wdXQ6dC52YWx1ZSxpbnN0OmUsZXhwZWN0ZWQ6Im5hbiIsY29kZToiaW52YWxpZF90eXBlIn0pLHQpfSksc2Y9ZVUoIiRab2RQaXBlIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlUShlLl96b2QsInZhbHVlcyIsKCk9PnQuaW4uX3pvZC52YWx1ZXMpLGVRKGUuX3pvZCwib3B0aW4iLCgpPT50LmluLl96b2Qub3B0aW4pLGVRKGUuX3pvZCwib3B0b3V0IiwoKT0+dC5vdXQuX3pvZC5vcHRvdXQpLGUuX3pvZC5wYXJzZT0oZSxyKT0+e2xldCBuPXQuaW4uX3pvZC5ydW4oZSxyKTtyZXR1cm4gbiBpbnN0YW5jZW9mIFByb21pc2U/bi50aGVuKGU9PnNoKGUsdCxyKSk6c2gobix0LHIpfX0pO2Z1bmN0aW9uIHNoKGUsdCxyKXtyZXR1cm4gdHYoZSk/ZTp0Lm91dC5fem9kLnJ1bih7dmFsdWU6ZS52YWx1ZSxpc3N1ZXM6ZS5pc3N1ZXN9LHIpfWxldCBzdj1lVSgiJFpvZFJlYWRvbmx5IiwoZSx0KT0+e29pLmluaXQoZSx0KSxlUShlLl96b2QsInByb3BWYWx1ZXMiLCgpPT50LmlubmVyVHlwZS5fem9kLnByb3BWYWx1ZXMpLGVRKGUuX3pvZCwidmFsdWVzIiwoKT0+dC5pbm5lclR5cGUuX3pvZC52YWx1ZXMpLGVRKGUuX3pvZCwib3B0aW4iLCgpPT50LmlubmVyVHlwZS5fem9kLm9wdGluKSxlUShlLl96b2QsIm9wdG91dCIsKCk9PnQuaW5uZXJUeXBlLl96b2Qub3B0b3V0KSxlLl96b2QucGFyc2U9KGUscik9PntsZXQgbj10LmlubmVyVHlwZS5fem9kLnJ1bihlLHIpO3JldHVybiBuIGluc3RhbmNlb2YgUHJvbWlzZT9uLnRoZW4oc2cpOnNnKG4pfX0pO2Z1bmN0aW9uIHNnKGUpe3JldHVybiBlLnZhbHVlPU9iamVjdC5mcmVlemUoZS52YWx1ZSksZX1sZXQgc3k9ZVUoIiRab2RUZW1wbGF0ZUxpdGVyYWwiLChlLHQpPT57b2kuaW5pdChlLHQpO2xldCByPVtdO2ZvcihsZXQgZSBvZiB0LnBhcnRzKWlmKGUgaW5zdGFuY2VvZiBvaSl7aWYoIWUuX3pvZC5wYXR0ZXJuKXRocm93IEVycm9yKGBJbnZhbGlkIHRlbXBsYXRlIGxpdGVyYWwgcGFydCwgbm8gcGF0dGVybiBmb3VuZDogJHtbLi4uZS5fem9kLnRyYWl0c10uc2hpZnQoKX1gKTtsZXQgdD1lLl96b2QucGF0dGVybiBpbnN0YW5jZW9mIFJlZ0V4cD9lLl96b2QucGF0dGVybi5zb3VyY2U6ZS5fem9kLnBhdHRlcm47aWYoIXQpdGhyb3cgRXJyb3IoYEludmFsaWQgdGVtcGxhdGUgbGl0ZXJhbCBwYXJ0OiAke2UuX3pvZC50cmFpdHN9YCk7bGV0IG49KyEhdC5zdGFydHNXaXRoKCJeIiksaT10LmVuZHNXaXRoKCIkIik/dC5sZW5ndGgtMTp0Lmxlbmd0aDtyLnB1c2godC5zbGljZShuLGkpKX1lbHNlIGlmKG51bGw9PT1lfHx0dC5oYXModHlwZW9mIGUpKXIucHVzaCh0cihgJHtlfWApKTtlbHNlIHRocm93IEVycm9yKGBJbnZhbGlkIHRlbXBsYXRlIGxpdGVyYWwgcGFydDogJHtlfWApO2UuX3pvZC5wYXR0ZXJuPVJlZ0V4cChgXiR7ci5qb2luKCIiKX0kYCksZS5fem9kLnBhcnNlPSh0LHIpPT4oInN0cmluZyIhPXR5cGVvZiB0LnZhbHVlP3QuaXNzdWVzLnB1c2goe2lucHV0OnQudmFsdWUsaW5zdDplLGV4cGVjdGVkOiJ0ZW1wbGF0ZV9saXRlcmFsIixjb2RlOiJpbnZhbGlkX3R5cGUifSk6KGUuX3pvZC5wYXR0ZXJuLmxhc3RJbmRleD0wLGUuX3pvZC5wYXR0ZXJuLnRlc3QodC52YWx1ZSl8fHQuaXNzdWVzLnB1c2goe2lucHV0OnQudmFsdWUsaW5zdDplLGNvZGU6ImludmFsaWRfZm9ybWF0Iixmb3JtYXQ6InRlbXBsYXRlX2xpdGVyYWwiLHBhdHRlcm46ZS5fem9kLnBhdHRlcm4uc291cmNlfSkpLHQpfSksc2I9ZVUoIiRab2RQcm9taXNlIiwoZSx0KT0+e29pLmluaXQoZSx0KSxlLl96b2QucGFyc2U9KGUscik9PlByb21pc2UucmVzb2x2ZShlLnZhbHVlKS50aGVuKGU9PnQuaW5uZXJUeXBlLl96b2QucnVuKHt2YWx1ZTplLGlzc3VlczpbXX0scikpfSksc189ZVUoIiRab2RMYXp5IiwoZSx0KT0+e29pLmluaXQoZSx0KSxlUShlLl96b2QsImlubmVyVHlwZSIsKCk9PnQuZ2V0dGVyKCkpLGVRKGUuX3pvZCwicGF0dGVybiIsKCk9PmUuX3pvZC5pbm5lclR5cGUuX3pvZC5wYXR0ZXJuKSxlUShlLl96b2QsInByb3BWYWx1ZXMiLCgpPT5lLl96b2QuaW5uZXJUeXBlLl96b2QucHJvcFZhbHVlcyksZVEoZS5fem9kLCJvcHRpbiIsKCk9PmUuX3pvZC5pbm5lclR5cGUuX3pvZC5vcHRpbiksZVEoZS5fem9kLCJvcHRvdXQiLCgpPT5lLl96b2QuaW5uZXJUeXBlLl96b2Qub3B0b3V0KSxlLl96b2QucGFyc2U9KHQscik9PmUuX3pvZC5pbm5lclR5cGUuX3pvZC5ydW4odCxyKX0pLHN4PWVVKCIkWm9kQ3VzdG9tIiwoZSx0KT0+e2FGLmluaXQoZSx0KSxvaS5pbml0KGUsdCksZS5fem9kLnBhcnNlPShlLHQpPT5lLGUuX3pvZC5jaGVjaz1yPT57bGV0IG49ci52YWx1ZSxpPXQuZm4obik7aWYoaSBpbnN0YW5jZW9mIFByb21pc2UpcmV0dXJuIGkudGhlbih0PT5zJCh0LHIsbixlKSk7cyQoaSxyLG4sZSl9fSk7ZnVuY3Rpb24gcyQoZSx0LHIsbil7aWYoIWUpe2xldCBlPXtjb2RlOiJjdXN0b20iLGlucHV0OnIsaW5zdDpuLHBhdGg6Wy4uLm4uX3pvZC5kZWYucGF0aD8/W11dLGNvbnRpbnVlOiFuLl96b2QuZGVmLmFib3J0fTtuLl96b2QuZGVmLnBhcmFtcyYmKGUucGFyYW1zPW4uX3pvZC5kZWYucGFyYW1zKSx0Lmlzc3Vlcy5wdXNoKHQkKGUpKX19ZS5zKFsiJFpvZEFueSIsMCxvRiwiJFpvZEFycmF5IiwwLG9HLCIkWm9kQmFzZTY0IiwwLG9PLCIkWm9kQmFzZTY0VVJMIiwwLG9FLCIkWm9kQmlnSW50IiwwLG9DLCIkWm9kQmlnSW50Rm9ybWF0IiwwLG9ELCIkWm9kQm9vbGVhbiIsMCxvVSwiJFpvZENJRFJ2NCIsMCxvdywiJFpvZENJRFJ2NiIsMCxvSSwiJFpvZENVSUQiLDAsb20sIiRab2RDVUlEMiIsMCxvZiwiJFpvZENhdGNoIiwwLHNwLCIkWm9kQ3VzdG9tIiwwLHN4LCIkWm9kQ3VzdG9tU3RyaW5nRm9ybWF0IiwwLG96LCIkWm9kRGF0ZSIsMCxvVywiJFpvZERlZmF1bHQiLDAsc28sIiRab2REaXNjcmltaW5hdGVkVW5pb24iLDAsbzAsIiRab2RFMTY0IiwwLG9aLCIkWm9kRW1haWwiLDAsb2wsIiRab2RFbW9qaSIsMCxvYywiJFpvZEVudW0iLDAsc2UsIiRab2RGaWxlIiwwLHNyLCIkWm9kR1VJRCIsMCxvcywiJFpvZElQdjQiLDAsbyQsIiRab2RJUHY2IiwwLG9rLCIkWm9kSVNPRGF0ZSIsMCxvYiwiJFpvZElTT0RhdGVUaW1lIiwwLG95LCIkWm9kSVNPRHVyYXRpb24iLDAsb3gsIiRab2RJU09UaW1lIiwwLG9fLCIkWm9kSW50ZXJzZWN0aW9uIiwwLG8xLCIkWm9kSldUIiwwLG9ULCIkWm9kS1NVSUQiLDAsb2csIiRab2RMYXp5IiwwLHNfLCIkWm9kTGl0ZXJhbCIsMCxzdCwiJFpvZE1hcCIsMCxvNSwiJFpvZE5hTiIsMCxzbSwiJFpvZE5hbm9JRCIsMCxvcCwiJFpvZE5ldmVyIiwwLG9CLCIkWm9kTm9uT3B0aW9uYWwiLDAsc2wsIiRab2ROdWxsIiwwLG9MLCIkWm9kTnVsbGFibGUiLDAsc2EsIiRab2ROdW1iZXIiLDAsb1AsIiRab2ROdW1iZXJGb3JtYXQiLDAsb0EsIiRab2RPYmplY3QiLDAsb0gsIiRab2RPcHRpb25hbCIsMCxzaSwiJFpvZFBpcGUiLDAsc2YsIiRab2RQcmVmYXVsdCIsMCxzdSwiJFpvZFByb21pc2UiLDAsc2IsIiRab2RSZWFkb25seSIsMCxzdiwiJFpvZFJlY29yZCIsMCxvOSwiJFpvZFNldCIsMCxvNywiJFpvZFN0cmluZyIsMCxvYSwiJFpvZFN0cmluZ0Zvcm1hdCIsMCxvbywiJFpvZFN1Y2Nlc3MiLDAsc2MsIiRab2RTeW1ib2wiLDAsb1IsIiRab2RUZW1wbGF0ZUxpdGVyYWwiLDAsc3ksIiRab2RUcmFuc2Zvcm0iLDAsc24sIiRab2RUdXBsZSIsMCxvNiwiJFpvZFR5cGUiLDAsb2ksIiRab2RVTElEIiwwLG9oLCIkWm9kVVJMIiwwLG9kLCIkWm9kVVVJRCIsMCxvdSwiJFpvZFVuZGVmaW5lZCIsMCxvTSwiJFpvZFVuaW9uIiwwLG9RLCIkWm9kVW5rbm93biIsMCxvViwiJFpvZFZvaWQiLDAsb0osIiRab2RYSUQiLDAsb3YsImlzVmFsaWRCYXNlNjQiLCgpPT5vUywiaXNWYWxpZEJhc2U2NFVSTCIsKCk9Pm9qLCJpc1ZhbGlkSldUIiwoKT0+b05dLDY3NjA5NCksZS5pKDY3NjA5NCksZS5zKFsiJFpvZEFueSIsMCxvRiwiJFpvZEFycmF5IiwwLG9HLCIkWm9kQmFzZTY0IiwwLG9PLCIkWm9kQmFzZTY0VVJMIiwwLG9FLCIkWm9kQmlnSW50IiwwLG9DLCIkWm9kQmlnSW50Rm9ybWF0IiwwLG9ELCIkWm9kQm9vbGVhbiIsMCxvVSwiJFpvZENJRFJ2NCIsMCxvdywiJFpvZENJRFJ2NiIsMCxvSSwiJFpvZENVSUQiLDAsb20sIiRab2RDVUlEMiIsMCxvZiwiJFpvZENhdGNoIiwwLHNwLCIkWm9kQ3VzdG9tIiwwLHN4LCIkWm9kQ3VzdG9tU3RyaW5nRm9ybWF0IiwwLG96LCIkWm9kRGF0ZSIsMCxvVywiJFpvZERlZmF1bHQiLDAsc28sIiRab2REaXNjcmltaW5hdGVkVW5pb24iLDAsbzAsIiRab2RFMTY0IiwwLG9aLCIkWm9kRW1haWwiLDAsb2wsIiRab2RFbW9qaSIsMCxvYywiJFpvZEVudW0iLDAsc2UsIiRab2RGaWxlIiwwLHNyLCIkWm9kR1VJRCIsMCxvcywiJFpvZElQdjQiLDAsbyQsIiRab2RJUHY2IiwwLG9rLCIkWm9kSVNPRGF0ZSIsMCxvYiwiJFpvZElTT0RhdGVUaW1lIiwwLG95LCIkWm9kSVNPRHVyYXRpb24iLDAsb3gsIiRab2RJU09UaW1lIiwwLG9fLCIkWm9kSW50ZXJzZWN0aW9uIiwwLG8xLCIkWm9kSldUIiwwLG9ULCIkWm9kS1NVSUQiLDAsb2csIiRab2RMYXp5IiwwLHNfLCIkWm9kTGl0ZXJhbCIsMCxzdCwiJFpvZE1hcCIsMCxvNSwiJFpvZE5hTiIsMCxzbSwiJFpvZE5hbm9JRCIsMCxvcCwiJFpvZE5ldmVyIiwwLG9CLCIkWm9kTm9uT3B0aW9uYWwiLDAsc2wsIiRab2ROdWxsIiwwLG9MLCIkWm9kTnVsbGFibGUiLDAsc2EsIiRab2ROdW1iZXIiLDAsb1AsIiRab2ROdW1iZXJGb3JtYXQiLDAsb0EsIiRab2RPYmplY3QiLDAsb0gsIiRab2RPcHRpb25hbCIsMCxzaSwiJFpvZFBpcGUiLDAsc2YsIiRab2RQcmVmYXVsdCIsMCxzdSwiJFpvZFByb21pc2UiLDAsc2IsIiRab2RSZWFkb25seSIsMCxzdiwiJFpvZFJlY29yZCIsMCxvOSwiJFpvZFNldCIsMCxvNywiJFpvZFN0cmluZyIsMCxvYSwiJFpvZFN0cmluZ0Zvcm1hdCIsMCxvbywiJFpvZFN1Y2Nlc3MiLDAsc2MsIiRab2RTeW1ib2wiLDAsb1IsIiRab2RUZW1wbGF0ZUxpdGVyYWwiLDAsc3ksIiRab2RUcmFuc2Zvcm0iLDAsc24sIiRab2RUdXBsZSIsMCxvNiwiJFpvZFR5cGUiLDAsb2ksIiRab2RVTElEIiwwLG9oLCIkWm9kVVJMIiwwLG9kLCIkWm9kVVVJRCIsMCxvdSwiJFpvZFVuZGVmaW5lZCIsMCxvTSwiJFpvZFVuaW9uIiwwLG9RLCIkWm9kVW5rbm93biIsMCxvViwiJFpvZFZvaWQiLDAsb0osIiRab2RYSUQiLDAsb3YsImNsb25lIiwoKT0+dG4sImlzVmFsaWRCYXNlNjQiLCgpPT5vUywiaXNWYWxpZEJhc2U2NFVSTCIsKCk9Pm9qLCJpc1ZhbGlkSldUIiwoKT0+b05dLDUzMjk1MiksZS5pKDUzMjk1MiksZS5pKDM1NTYwNSksZS5pKDM5ODQ3Nyk7dmFyIHNrPWUuaSg5MjIxNDMpLHN3PWUuaSg2ODIzNTgpO2Z1bmN0aW9uIHNJKGUsdCxyLG4pe2xldCBpPU1hdGguYWJzKGUpLGE9aSUxMCxvPWklMTAwO3JldHVybiBvPj0xMSYmbzw9MTk/bjoxPT09YT90OmE+PTImJmE8PTQ/cjpufWZ1bmN0aW9uIHNTKGUsdCxyLG4pe2xldCBpPU1hdGguYWJzKGUpLGE9aSUxMCxvPWklMTAwO3JldHVybiBvPj0xMSYmbzw9MTk/bjoxPT09YT90OmE+PTImJmE8PTQ/cjpufWUucyhbXSw1NDMzNjUpLGUuaSg1NDMzNjUpLGUucyhbImFyIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoi2K3YsdmBIix2ZXJiOiLYo9mGINmK2K3ZiNmKIn0sZmlsZTp7dW5pdDoi2KjYp9mK2KoiLHZlcmI6Itij2YYg2YrYrdmI2YoifSxhcnJheTp7dW5pdDoi2LnZhti12LEiLHZlcmI6Itij2YYg2YrYrdmI2YoifSxzZXQ6e3VuaXQ6Iti52YbYtdixIix2ZXJiOiLYo9mGINmK2K3ZiNmKIn19LHQ9e3JlZ2V4OiLZhdiv2K7ZhCIsZW1haWw6Itio2LHZitivINil2YTZg9iq2LHZiNmG2YoiLHVybDoi2LHYp9io2LciLGVtb2ppOiLYpdmK2YXZiNis2YoiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6Itiq2KfYsdmK2K4g2YjZiNmC2Kog2KjZhdi52YrYp9ixIElTTyIsZGF0ZToi2KrYp9ix2YrYriDYqNmF2LnZitin2LEgSVNPIix0aW1lOiLZiNmC2Kog2KjZhdi52YrYp9ixIElTTyIsZHVyYXRpb246ItmF2K/YqSDYqNmF2LnZitin2LEgSVNPIixpcHY0OiLYudmG2YjYp9mGIElQdjQiLGlwdjY6Iti52YbZiNin2YYgSVB2NiIsY2lkcnY0OiLZhdiv2Ykg2LnZhtin2YjZitmGINio2LXZiti62KkgSVB2NCIsY2lkcnY2OiLZhdiv2Ykg2LnZhtin2YjZitmGINio2LXZiti62KkgSVB2NiIsYmFzZTY0OiLZhtmO2LUg2KjYqtix2YXZitiyIGJhc2U2NC1lbmNvZGVkIixiYXNlNjR1cmw6ItmG2Y7YtSDYqNiq2LHZhdmK2LIgYmFzZTY0dXJsLWVuY29kZWQiLGpzb25fc3RyaW5nOiLZhtmO2LUg2LnZhNmJINmH2YrYptipIEpTT04iLGUxNjQ6Itix2YLZhSDZh9in2KrZgSDYqNmF2LnZitin2LEgRS4xNjQiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiLZhdiv2K7ZhCJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYNmF2K/YrtmE2KfYqiDYutmK2LEg2YXZgtio2YjZhNipOiDZitmB2KrYsdi2INil2K/Yrtin2YQgJHtyLmV4cGVjdGVkfdiMINmI2YTZg9mGINiq2YUg2KXYr9iu2KfZhCAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1iZXIiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmDZhdiv2K7ZhNin2Kog2LrZitixINmF2YLYqNmI2YTYqTog2YrZgdiq2LHYtiDYpdiv2K7Yp9mEICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYNin2K7YqtmK2KfYsSDYutmK2LEg2YXZgtio2YjZhDog2YrYqtmI2YLYuSDYp9mG2KrZgtin2KEg2KPYrdivINmH2LDZhyDYp9mE2K7Zitin2LHYp9iqOiAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYCDYo9mD2KjYsSDZhdmGINin2YTZhNin2LLZhTog2YrZgdiq2LHYtiDYo9mGINiq2YPZiNmGICR7ci5vcmlnaW4/PyLYp9mE2YLZitmF2KkifSAke3R9ICR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8i2LnZhti12LEifWA7cmV0dXJuYNij2YPYqNixINmF2YYg2KfZhNmE2KfYstmFOiDZitmB2KrYsdi2INij2YYg2KrZg9mI2YYgJHtyLm9yaWdpbj8/Itin2YTZgtmK2YXYqSJ9ICR7dH0gJHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDYo9i12LrYsSDZhdmGINin2YTZhNin2LLZhTog2YrZgdiq2LHYtiDZhNmAICR7ci5vcmlnaW59INij2YYg2YrZg9mI2YYgJHt0fSAke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmDYo9i12LrYsSDZhdmGINin2YTZhNin2LLZhTog2YrZgdiq2LHYtiDZhNmAICR7ci5vcmlnaW59INij2YYg2YrZg9mI2YYgJHt0fSAke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDZhtmO2LUg2LrZitixINmF2YLYqNmI2YQ6INmK2KzYqCDYo9mGINmK2KjYr9ijINio2YAgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g2YbZjti1INi62YrYsSDZhdmC2KjZiNmEOiDZitis2Kgg2KPZhiDZitmG2KrZh9mKINio2YAgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDZhtmO2LUg2LrZitixINmF2YLYqNmI2YQ6INmK2KzYqCDYo9mGINmK2KrYttmF2ZHZjtmGICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmDZhtmO2LUg2LrZitixINmF2YLYqNmI2YQ6INmK2KzYqCDYo9mGINmK2LfYp9io2YIg2KfZhNmG2YXYtyAke3IucGF0dGVybn1gO3JldHVybmAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH0g2LrZitixINmF2YLYqNmI2YRgO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g2LHZgtmFINi62YrYsSDZhdmC2KjZiNmEOiDZitis2Kgg2KPZhiDZitmD2YjZhiDZhdmGINmF2LbYp9i52YHYp9iqICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYNmF2LnYsdmBJHtyLmtleXMubGVuZ3RoPjE/Itin2KoiOiIifSDYutix2YrYqCR7ci5rZXlzLmxlbmd0aD4xPyLYqSI6IiJ9OiAke2VxKHIua2V5cywi2IwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5g2YXYudix2YEg2LrZitixINmF2YLYqNmI2YQg2YHZiiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybiLZhdiv2K7ZhCDYutmK2LEg2YXZgtio2YjZhCI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmDZhdiv2K7ZhCDYutmK2LEg2YXZgtio2YjZhCDZgdmKICR7ci5vcmlnaW59YH19KX19LCJheiIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6InNpbXZvbCIsdmVyYjoib2xtYWzEsWTEsXIifSxmaWxlOnt1bml0OiJiYXl0Iix2ZXJiOiJvbG1hbMSxZMSxciJ9LGFycmF5Ont1bml0OiJlbGVtZW50Iix2ZXJiOiJvbG1hbMSxZMSxciJ9LHNldDp7dW5pdDoiZWxlbWVudCIsdmVyYjoib2xtYWzEsWTEsXIifX0sdD17cmVnZXg6ImlucHV0IixlbWFpbDoiZW1haWwgYWRkcmVzcyIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPIGRhdGV0aW1lIixkYXRlOiJJU08gZGF0ZSIsdGltZToiSVNPIHRpbWUiLGR1cmF0aW9uOiJJU08gZHVyYXRpb24iLGlwdjQ6IklQdjQgYWRkcmVzcyIsaXB2NjoiSVB2NiBhZGRyZXNzIixjaWRydjQ6IklQdjQgcmFuZ2UiLGNpZHJ2NjoiSVB2NiByYW5nZSIsYmFzZTY0OiJiYXNlNjQtZW5jb2RlZCBzdHJpbmciLGJhc2U2NHVybDoiYmFzZTY0dXJsLWVuY29kZWQgc3RyaW5nIixqc29uX3N0cmluZzoiSlNPTiBzdHJpbmciLGUxNjQ6IkUuMTY0IG51bWJlciIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImlucHV0In0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gWWFubMSxxZ8gZMmZecmZcjogZ1x4ZjZ6bMmZbmlsyZluICR7ci5leHBlY3RlZH0sIGRheGlsIG9sYW4gJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoibnVtYmVyIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iYXJyYXkiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5gWWFubMSxxZ8gZMmZecmZcjogZ1x4ZjZ6bMmZbmlsyZluICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYFlhbmzEscWfIHNlXHhlN2ltOiBhxZ9hxJ/EsWRha8SxbGFyZGFuIGJpcmkgb2xtYWzEsWTEsXI6ICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gXHhjN294IGJceGY2eVx4ZmNrOiBnXHhmNnpsyZluaWzJmW4gJHtyLm9yaWdpbj8/ImTJmXnJmXIifSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJlbGVtZW50In1gO3JldHVybmBceGM3b3ggYlx4ZjZ5XHhmY2s6IGdceGY2emzJmW5pbMmZbiAke3Iub3JpZ2luPz8iZMmZecmZciJ9ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFx4YzdveCBraVx4ZTdpazogZ1x4ZjZ6bMmZbmlsyZluICR7ci5vcmlnaW59ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmBceGM3b3gga2lceGU3aWs6IGdceGY2emzJmW5pbMmZbiAke3Iub3JpZ2lufSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX1gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gWWFubMSxxZ8gbcmZdG46ICIke3IucHJlZml4fSIgaWzJmSBiYcWfbGFtYWzEsWTEsXJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYFlhbmzEscWfIG3JmXRuOiAiJHtyLnN1ZmZpeH0iIGlsyZkgYml0bcmZbGlkaXJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gWWFubMSxxZ8gbcmZdG46ICIke3IuaW5jbHVkZXN9IiBkYXhpbCBvbG1hbMSxZMSxcmA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBZYW5sxLHFnyBtyZl0bjogJHtyLnBhdHRlcm59IMWfYWJsb251bmEgdXnEn3VuIG9sbWFsxLFkxLFyYDtyZXR1cm5gWWFubMSxxZ8gJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYFlhbmzEscWfIMmZZMmZZDogJHtyLmRpdmlzb3J9IGlsyZkgYlx4ZjZsXHhmY27JmSBiaWzJmW4gb2xtYWzEsWTEsXJgO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBUYW7EsW5tYXlhbiBhXHhlN2FyJHtyLmtleXMubGVuZ3RoPjE/ImxhciI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmAke3Iub3JpZ2lufSBkYXhpbGluZMmZIHlhbmzEscWfIGFceGU3YXJgO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuIllhbmzEscWfIGTJmXnJmXIiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gJHtyLm9yaWdpbn0gZGF4aWxpbmTJmSB5YW5sxLHFnyBkyZl5yZlyYDtkZWZhdWx0OnJldHVybmBZYW5sxLHFnyBkyZl5yZlyYH19KX19LCJiZSIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6e29uZToi0YHRltC80LLQsNC7IixmZXc6ItGB0ZbQvNCy0LDQu9GLIixtYW55OiLRgdGW0LzQstCw0LvQsNGeIn0sdmVyYjoi0LzQtdGG0YwifSxhcnJheTp7dW5pdDp7b25lOiLRjdC70LXQvNC10L3RgiIsZmV3OiLRjdC70LXQvNC10L3RgtGLIixtYW55OiLRjdC70LXQvNC10L3RgtCw0Z4ifSx2ZXJiOiLQvNC10YbRjCJ9LHNldDp7dW5pdDp7b25lOiLRjdC70LXQvNC10L3RgiIsZmV3OiLRjdC70LXQvNC10L3RgtGLIixtYW55OiLRjdC70LXQvNC10L3RgtCw0Z4ifSx2ZXJiOiLQvNC10YbRjCJ9LGZpbGU6e3VuaXQ6e29uZToi0LHQsNC50YIiLGZldzoi0LHQsNC50YLRiyIsbWFueToi0LHQsNC50YLQsNGeIn0sdmVyYjoi0LzQtdGG0YwifX0sdD17cmVnZXg6ItGD0LLQvtC0IixlbWFpbDoiZW1haWwg0LDQtNGA0LDRgSIsdXJsOiJVUkwiLGVtb2ppOiLRjdC80L7QtNC30ZYiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6IklTTyDQtNCw0YLQsCDRliDRh9Cw0YEiLGRhdGU6IklTTyDQtNCw0YLQsCIsdGltZToiSVNPINGH0LDRgSIsZHVyYXRpb246IklTTyDQv9GA0LDRhtGP0LPQu9Cw0YHRhtGMIixpcHY0OiJJUHY0INCw0LTRgNCw0YEiLGlwdjY6IklQdjYg0LDQtNGA0LDRgSIsY2lkcnY0OiJJUHY0INC00YvRj9C/0LDQt9C+0L0iLGNpZHJ2NjoiSVB2NiDQtNGL0Y/Qv9Cw0LfQvtC9IixiYXNlNjQ6ItGA0LDQtNC+0Log0YMg0YTQsNGA0LzQsNGG0LUgYmFzZTY0IixiYXNlNjR1cmw6ItGA0LDQtNC+0Log0YMg0YTQsNGA0LzQsNGG0LUgYmFzZTY0dXJsIixqc29uX3N0cmluZzoiSlNPTiDRgNCw0LTQvtC6IixlMTY0OiLQvdGD0LzQsNGAIEUuMTY0Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoi0YPQstC+0LQifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmDQndGP0L/RgNCw0LLRltC70YzQvdGLINGe0LLQvtC0OiDRh9Cw0LrQsNGe0YHRjyAke3IuZXhwZWN0ZWR9LCDQsNGC0YDRi9C80LDQvdCwICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6ItC70ZbQuiI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuItC80LDRgdGW0Z4iO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5g0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyDRntCy0L7QtDog0YfQsNC60LDQu9Cw0YHRjyAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmDQndGP0L/RgNCw0LLRltC70YzQvdGLINCy0LDRgNGL0Y/QvdGCOiDRh9Cw0LrQsNGe0YHRjyDQsNC00LfRltC9INC3ICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobil7bGV0IGU9c0koTnVtYmVyKHIubWF4aW11bSksbi51bml0Lm9uZSxuLnVuaXQuZmV3LG4udW5pdC5tYW55KTtyZXR1cm5g0JfQsNC90LDQtNGC0LAg0LLRj9C70ZbQutGWOiDRh9Cw0LrQsNC70LDRgdGPLCDRiNGC0L4gJHtyLm9yaWdpbj8/ItC30L3QsNGH0Y3QvdC90LUifSDQv9Cw0LLRltC90L3QsCAke24udmVyYn0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7ZX1gfXJldHVybmDQl9Cw0L3QsNC00YLQsCDQstGP0LvRltC60ZY6INGH0LDQutCw0LvQsNGB0Y8sINGI0YLQviAke3Iub3JpZ2luPz8i0LfQvdCw0YfRjdC90L3QtSJ9INC/0LDQstGW0L3QvdCwINCx0YvRhtGMICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pe2xldCBlPXNJKE51bWJlcihyLm1pbmltdW0pLG4udW5pdC5vbmUsbi51bml0LmZldyxuLnVuaXQubWFueSk7cmV0dXJuYNCX0LDQvdCw0LTRgtCwINC80LDQu9GLOiDRh9Cw0LrQsNC70LDRgdGPLCDRiNGC0L4gJHtyLm9yaWdpbn0g0L/QsNCy0ZbQvdC90LAgJHtuLnZlcmJ9ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke2V9YH1yZXR1cm5g0JfQsNC90LDQtNGC0LAg0LzQsNC70Ys6INGH0LDQutCw0LvQsNGB0Y8sINGI0YLQviAke3Iub3JpZ2lufSDQv9Cw0LLRltC90L3QsCDQsdGL0YbRjCAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX1gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyDRgNCw0LTQvtC6OiDQv9Cw0LLRltC90LXQvSDQv9Cw0YfRi9C90LDRhtGG0LAg0LcgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyDRgNCw0LTQvtC6OiDQv9Cw0LLRltC90LXQvSDQt9Cw0LrQsNC90YfQstCw0YbRhtCwINC90LAgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDQndGP0L/RgNCw0LLRltC70YzQvdGLINGA0LDQtNC+0Lo6INC/0LDQstGW0L3QtdC9INC30LzRj9GI0YfQsNGG0YwgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYNCd0Y/Qv9GA0LDQstGW0LvRjNC90Ysg0YDQsNC00L7Qujog0L/QsNCy0ZbQvdC10L0g0LDQtNC/0LDQstGP0LTQsNGG0Ywg0YjQsNCx0LvQvtC90YMgJHtyLnBhdHRlcm59YDtyZXR1cm5g0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g0J3Rj9C/0YDQsNCy0ZbQu9GM0L3RiyDQu9GW0Lo6INC/0LDQstGW0L3QtdC9INCx0YvRhtGMINC60YDQsNGC0L3Ri9C8ICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYNCd0LXRgNCw0YHQv9Cw0LfQvdCw0L3RiyAke3Iua2V5cy5sZW5ndGg+MT8i0LrQu9GO0YfRiyI6ItC60LvRjtGHIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYNCd0Y/Qv9GA0LDQstGW0LvRjNC90Ysg0LrQu9GO0Ycg0YMgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuItCd0Y/Qv9GA0LDQstGW0LvRjNC90Ysg0Z7QstC+0LQiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5g0J3Rj9C/0YDQsNCy0ZbQu9GM0L3QsNC1INC30L3QsNGH0Y3QvdC90LUg0Z4gJHtyLm9yaWdpbn1gO2RlZmF1bHQ6cmV0dXJuYNCd0Y/Qv9GA0LDQstGW0LvRjNC90Ysg0Z7QstC+0LRgfX0pfX0sImNhIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoiY2Fyw6BjdGVycyIsdmVyYjoiY29udGVuaXIifSxmaWxlOnt1bml0OiJieXRlcyIsdmVyYjoiY29udGVuaXIifSxhcnJheTp7dW5pdDoiZWxlbWVudHMiLHZlcmI6ImNvbnRlbmlyIn0sc2V0Ont1bml0OiJlbGVtZW50cyIsdmVyYjoiY29udGVuaXIifX0sdD17cmVnZXg6ImVudHJhZGEiLGVtYWlsOiJhZHJlw6dhIGVsZWN0csOybmljYSIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiZGF0YSBpIGhvcmEgSVNPIixkYXRlOiJkYXRhIElTTyIsdGltZToiaG9yYSBJU08iLGR1cmF0aW9uOiJkdXJhZGEgSVNPIixpcHY0OiJhZHJlw6dhIElQdjQiLGlwdjY6ImFkcmXDp2EgSVB2NiIsY2lkcnY0OiJyYW5nIElQdjQiLGNpZHJ2NjoicmFuZyBJUHY2IixiYXNlNjQ6ImNhZGVuYSBjb2RpZmljYWRhIGVuIGJhc2U2NCIsYmFzZTY0dXJsOiJjYWRlbmEgY29kaWZpY2FkYSBlbiBiYXNlNjR1cmwiLGpzb25fc3RyaW5nOiJjYWRlbmEgSlNPTiIsZTE2NDoibsO6bWVybyBFLjE2NCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImVudHJhZGEifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBUaXB1cyBpbnZceGUwbGlkOiBzJ2VzcGVyYXZhICR7ci5leHBlY3RlZH0sIHMnaGEgcmVidXQgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoibnVtYmVyIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iYXJyYXkiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5gVmFsb3IgaW52XHhlMGxpZDogcydlc3BlcmF2YSAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBPcGNpXHhmMyBpbnZceGUwbGlkYTogcydlc3BlcmF2YSB1bmEgZGUgJHtlcShyLnZhbHVlcywiIG8gIil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iY29tIGEgbcOgeGltIjoibWVueXMgZGUiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gTWFzc2EgZ3Jhbjogcydlc3BlcmF2YSBxdWUgJHtyLm9yaWdpbj8/ImVsIHZhbG9yIn0gY29udGluZ3VceGU5cyAke3R9ICR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudHMifWA7cmV0dXJuYE1hc3NhIGdyYW46IHMnZXNwZXJhdmEgcXVlICR7ci5vcmlnaW4/PyJlbCB2YWxvciJ9IGZvcyAke3R9ICR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyJjb20gYSBtw61uaW0iOiJtw6lzIGRlIixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYE1hc3NhIHBldGl0OiBzJ2VzcGVyYXZhIHF1ZSAke3Iub3JpZ2lufSBjb250aW5ndVx4ZTlzICR7dH0gJHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gTWFzc2EgcGV0aXQ6IHMnZXNwZXJhdmEgcXVlICR7ci5vcmlnaW59IGZvcyAke3R9ICR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYEZvcm1hdCBpbnZceGUwbGlkOiBoYSBkZSBjb21lblx4ZTdhciBhbWIgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gRm9ybWF0IGludlx4ZTBsaWQ6IGhhIGQnYWNhYmFyIGFtYiAiJHtyLnN1ZmZpeH0iYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYEZvcm1hdCBpbnZceGUwbGlkOiBoYSBkJ2luY2xvdXJlICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBGb3JtYXQgaW52XHhlMGxpZDogaGEgZGUgY29pbmNpZGlyIGFtYiBlbCBwYXRyXHhmMyAke3IucGF0dGVybn1gO3JldHVybmBGb3JtYXQgaW52XHhlMGxpZCBwZXIgYSAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gTlx4ZmFtZXJvIGludlx4ZTBsaWQ6IGhhIGRlIHNlciBtXHhmYWx0aXBsZSBkZSAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBDbGF1JHtyLmtleXMubGVuZ3RoPjE/InMiOiIifSBubyByZWNvbmVndWRhJHtyLmtleXMubGVuZ3RoPjE/InMiOiIifTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5gQ2xhdSBpbnZceGUwbGlkYSBhICR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiJFbnRyYWRhIGludsOgbGlkYSI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmBFbGVtZW50IGludlx4ZTBsaWQgYSAke3Iub3JpZ2lufWA7ZGVmYXVsdDpyZXR1cm5gRW50cmFkYSBpbnZceGUwbGlkYWB9fSl9fSwiY3MiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiJ6bmFrxa8iLHZlcmI6Im3DrXQifSxmaWxlOnt1bml0OiJiYWp0xa8iLHZlcmI6Im3DrXQifSxhcnJheTp7dW5pdDoicHJ2a8WvIix2ZXJiOiJtw610In0sc2V0Ont1bml0OiJwcnZrxa8iLHZlcmI6Im3DrXQifX0sdD17cmVnZXg6InJlZ3Vsw6FybsOtIHbDvXJheiIsZW1haWw6ImUtbWFpbG92w6EgYWRyZXNhIix1cmw6IlVSTCIsZW1vamk6ImVtb2ppIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJkYXR1bSBhIMSNYXMgdmUgZm9ybcOhdHUgSVNPIixkYXRlOiJkYXR1bSB2ZSBmb3Jtw6F0dSBJU08iLHRpbWU6IsSNYXMgdmUgZm9ybcOhdHUgSVNPIixkdXJhdGlvbjoiZG9iYSB0cnbDoW7DrSBJU08iLGlwdjQ6IklQdjQgYWRyZXNhIixpcHY2OiJJUHY2IGFkcmVzYSIsY2lkcnY0OiJyb3pzYWggSVB2NCIsY2lkcnY2OiJyb3pzYWggSVB2NiIsYmFzZTY0OiLFmWV0xJt6ZWMgemFrw7Nkb3ZhbsO9IHZlIGZvcm3DoXR1IGJhc2U2NCIsYmFzZTY0dXJsOiLFmWV0xJt6ZWMgemFrw7Nkb3ZhbsO9IHZlIGZvcm3DoXR1IGJhc2U2NHVybCIsanNvbl9zdHJpbmc6IsWZZXTEm3plYyB2ZSBmb3Jtw6F0dSBKU09OIixlMTY0OiLEjcOtc2xvIEUuMTY0Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoidnN0dXAifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBOZXBsYXRuXHhmZCB2c3R1cDogb8SNZWtceGUxdlx4ZTFubyAke3IuZXhwZWN0ZWR9LCBvYmRyxb5lbm8gJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoixI3DrXNsbyI7Y2FzZSJzdHJpbmciOnJldHVybiLFmWV0xJt6ZWMiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UiYmlnaW50IjpyZXR1cm4iYmlnaW50IjtjYXNlImZ1bmN0aW9uIjpyZXR1cm4iZnVua2NlIjtjYXNlInN5bWJvbCI6cmV0dXJuInN5bWJvbCI7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJwb2xlIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYE5lcGxhdG5ceGZkIHZzdHVwOiBvxI1la1x4ZTF2XHhlMW5vICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYE5lcGxhdG5ceGUxIG1vxb5ub3N0OiBvxI1la1x4ZTF2XHhlMW5hIGplZG5hIHogaG9kbm90ICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gSG9kbm90YSBqZSBwxZlceGVkbGnFoSB2ZWxrXHhlMTogJHtyLm9yaWdpbj8/ImhvZG5vdGEifSBtdXNceGVkIG1ceGVkdCAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJwcnZrxa8ifWA7cmV0dXJuYEhvZG5vdGEgamUgcMWZXHhlZGxpxaEgdmVsa1x4ZTE6ICR7ci5vcmlnaW4/PyJob2Rub3RhIn0gbXVzXHhlZCBiXHhmZHQgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gSG9kbm90YSBqZSBwxZlceGVkbGnFoSBtYWxceGUxOiAke3Iub3JpZ2luPz8iaG9kbm90YSJ9IG11c1x4ZWQgbVx4ZWR0ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdD8/InBydmvFryJ9YDtyZXR1cm5gSG9kbm90YSBqZSBwxZlceGVkbGnFoSBtYWxceGUxOiAke3Iub3JpZ2luPz8iaG9kbm90YSJ9IG11c1x4ZWQgYlx4ZmR0ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBOZXBsYXRuXHhmZCDFmWV0xJt6ZWM6IG11c1x4ZWQgemHEjVx4ZWRuYXQgbmEgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gTmVwbGF0blx4ZmQgxZlldMSbemVjOiBtdXNceGVkIGtvbsSNaXQgbmEgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBOZXBsYXRuXHhmZCDFmWV0xJt6ZWM6IG11c1x4ZWQgb2JzYWhvdmF0ICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBOZXBsYXRuXHhmZCDFmWV0xJt6ZWM6IG11c1x4ZWQgb2Rwb3ZceGVkZGF0IHZ6b3J1ICR7ci5wYXR0ZXJufWA7cmV0dXJuYE5lcGxhdG5ceGZkIGZvcm1ceGUxdCAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gTmVwbGF0blx4ZTkgxI1ceGVkc2xvOiBtdXNceGVkIGJceGZkdCBuXHhlMXNvYmtlbSAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBOZXpuXHhlMW1ceGU5IGtsXHhlZMSNZTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5gTmVwbGF0blx4ZmQga2xceGVkxI0gdiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4iTmVwbGF0bsO9IHZzdHVwIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYE5lcGxhdG5ceGUxIGhvZG5vdGEgdiAke3Iub3JpZ2lufWA7ZGVmYXVsdDpyZXR1cm5gTmVwbGF0blx4ZmQgdnN0dXBgfX0pfX0sImRlIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoiWmVpY2hlbiIsdmVyYjoienUgaGFiZW4ifSxmaWxlOnt1bml0OiJCeXRlcyIsdmVyYjoienUgaGFiZW4ifSxhcnJheTp7dW5pdDoiRWxlbWVudGUiLHZlcmI6Inp1IGhhYmVuIn0sc2V0Ont1bml0OiJFbGVtZW50ZSIsdmVyYjoienUgaGFiZW4ifX0sdD17cmVnZXg6IkVpbmdhYmUiLGVtYWlsOiJFLU1haWwtQWRyZXNzZSIsdXJsOiJVUkwiLGVtb2ppOiJFbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPLURhdHVtIHVuZCAtVWhyemVpdCIsZGF0ZToiSVNPLURhdHVtIix0aW1lOiJJU08tVWhyemVpdCIsZHVyYXRpb246IklTTy1EYXVlciIsaXB2NDoiSVB2NC1BZHJlc3NlIixpcHY2OiJJUHY2LUFkcmVzc2UiLGNpZHJ2NDoiSVB2NC1CZXJlaWNoIixjaWRydjY6IklQdjYtQmVyZWljaCIsYmFzZTY0OiJCYXNlNjQtY29kaWVydGVyIFN0cmluZyIsYmFzZTY0dXJsOiJCYXNlNjQtVVJMLWNvZGllcnRlciBTdHJpbmciLGpzb25fc3RyaW5nOiJKU09OLVN0cmluZyIsZTE2NDoiRS4xNjQtTnVtbWVyIixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoiRWluZ2FiZSJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYFVuZ1x4ZmNsdGlnZSBFaW5nYWJlOiBlcndhcnRldCAke3IuZXhwZWN0ZWR9LCBlcmhhbHRlbiAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJaYWhsIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iQXJyYXkiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5gVW5nXHhmY2x0aWdlIEVpbmdhYmU6IGVyd2FydGV0ICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYFVuZ1x4ZmNsdGlnZSBPcHRpb246IGVyd2FydGV0IGVpbmUgdm9uICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gWnUgZ3JvXHhkZjogZXJ3YXJ0ZXQsIGRhc3MgJHtyLm9yaWdpbj8/IldlcnQifSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJFbGVtZW50ZSJ9IGhhdGA7cmV0dXJuYFp1IGdyb1x4ZGY6IGVyd2FydGV0LCBkYXNzICR7ci5vcmlnaW4/PyJXZXJ0In0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9IGlzdGB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFp1IGtsZWluOiBlcndhcnRldCwgZGFzcyAke3Iub3JpZ2lufSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9IGhhdGA7cmV0dXJuYFp1IGtsZWluOiBlcndhcnRldCwgZGFzcyAke3Iub3JpZ2lufSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gaXN0YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYFVuZ1x4ZmNsdGlnZXIgU3RyaW5nOiBtdXNzIG1pdCAiJHtyLnByZWZpeH0iIGJlZ2lubmVuYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBVbmdceGZjbHRpZ2VyIFN0cmluZzogbXVzcyBtaXQgIiR7ci5zdWZmaXh9IiBlbmRlbmA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBVbmdceGZjbHRpZ2VyIFN0cmluZzogbXVzcyAiJHtyLmluY2x1ZGVzfSIgZW50aGFsdGVuYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYFVuZ1x4ZmNsdGlnZXIgU3RyaW5nOiBtdXNzIGRlbSBNdXN0ZXIgJHtyLnBhdHRlcm59IGVudHNwcmVjaGVuYDtyZXR1cm5gVW5nXHhmY2x0aWc6ICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBVbmdceGZjbHRpZ2UgWmFobDogbXVzcyBlaW4gVmllbGZhY2hlcyB2b24gJHtyLmRpdmlzb3J9IHNlaW5gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmAke3Iua2V5cy5sZW5ndGg+MT8iVW5iZWthbm50ZSBTY2hsw7xzc2VsIjoiVW5iZWthbm50ZXIgU2NobMO8c3NlbCJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBVbmdceGZjbHRpZ2VyIFNjaGxceGZjc3NlbCBpbiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4iVW5nw7xsdGlnZSBFaW5nYWJlIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYFVuZ1x4ZmNsdGlnZXIgV2VydCBpbiAke3Iub3JpZ2lufWA7ZGVmYXVsdDpyZXR1cm5gVW5nXHhmY2x0aWdlIEVpbmdhYmVgfX0pfX0sImVuIiwwLGFpLCJlbyIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6ImthcmFrdHJvam4iLHZlcmI6ImhhdmkifSxmaWxlOnt1bml0OiJiYWp0b2puIix2ZXJiOiJoYXZpIn0sYXJyYXk6e3VuaXQ6ImVsZW1lbnRvam4iLHZlcmI6ImhhdmkifSxzZXQ6e3VuaXQ6ImVsZW1lbnRvam4iLHZlcmI6ImhhdmkifX0sdD17cmVnZXg6ImVuaWdvIixlbWFpbDoicmV0YWRyZXNvIix1cmw6IlVSTCIsZW1vamk6ImVtb8SdaW8iLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6IklTTy1kYXRvdGVtcG8iLGRhdGU6IklTTy1kYXRvIix0aW1lOiJJU08tdGVtcG8iLGR1cmF0aW9uOiJJU08tZGHFrXJvIixpcHY0OiJJUHY0LWFkcmVzbyIsaXB2NjoiSVB2Ni1hZHJlc28iLGNpZHJ2NDoiSVB2NC1yYW5nbyIsY2lkcnY2OiJJUHY2LXJhbmdvIixiYXNlNjQ6IjY0LXVtZSBrb2RpdGEga2FyYWt0cmFybyIsYmFzZTY0dXJsOiJVUkwtNjQtdW1lIGtvZGl0YSBrYXJha3RyYXJvIixqc29uX3N0cmluZzoiSlNPTi1rYXJha3RyYXJvIixlMTY0OiJFLjE2NC1ub21icm8iLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiJlbmlnbyJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYE5ldmFsaWRhIGVuaWdvOiBhdGVuZGnEnWlzICR7ci5leHBlY3RlZH0sIHJpY2V2acSdaXMgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoibm9tYnJvIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4idGFiZWxvIjtpZihudWxsPT09ZSlyZXR1cm4ic2VudmFsb3JhIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5gTmV2YWxpZGEgZW5pZ286IGF0ZW5kacSdaXMgJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5gTmV2YWxpZGEgb3BjaW86IGF0ZW5kacSdaXMgdW51IGVsICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVHJvIGdyYW5kYTogYXRlbmRpxJ1pcyBrZSAke3Iub3JpZ2luPz8idmFsb3JvIn0gaGF2dSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJlbGVtZW50b2puIn1gO3JldHVybmBUcm8gZ3JhbmRhOiBhdGVuZGnEnWlzIGtlICR7ci5vcmlnaW4/PyJ2YWxvcm8ifSBoYXZ1ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRybyBtYWxncmFuZGE6IGF0ZW5kacSdaXMga2UgJHtyLm9yaWdpbn0gaGF2dSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gVHJvIG1hbGdyYW5kYTogYXRlbmRpxJ1pcyBrZSAke3Iub3JpZ2lufSBlc3R1ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBOZXZhbGlkYSBrYXJha3RyYXJvOiBkZXZhcyBrb21lbmNpxJ1pIHBlciAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBOZXZhbGlkYSBrYXJha3RyYXJvOiBkZXZhcyBmaW5pxJ1pIHBlciAiJHtyLnN1ZmZpeH0iYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYE5ldmFsaWRhIGthcmFrdHJhcm86IGRldmFzIGlua2x1eml2aSAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gTmV2YWxpZGEga2FyYWt0cmFybzogZGV2YXMga29uZ3J1aSBrdW4gbGEgbW9kZWxvICR7ci5wYXR0ZXJufWA7cmV0dXJuYE5ldmFsaWRhICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBOZXZhbGlkYSBub21icm86IGRldmFzIGVzdGkgb2JsbyBkZSAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBOZWtvbmF0YSR7ci5rZXlzLmxlbmd0aD4xPyJqIjoiIn0gxZ1sb3NpbG8ke3Iua2V5cy5sZW5ndGg+MT8iaiI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBOZXZhbGlkYSDFnWxvc2lsbyBlbiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybiJOZXZhbGlkYSBlbmlnbyI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmBOZXZhbGlkYSB2YWxvcm8gZW4gJHtyLm9yaWdpbn1gfX0pfX0sImVzIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoiY2FyYWN0ZXJlcyIsdmVyYjoidGVuZXIifSxmaWxlOnt1bml0OiJieXRlcyIsdmVyYjoidGVuZXIifSxhcnJheTp7dW5pdDoiZWxlbWVudG9zIix2ZXJiOiJ0ZW5lciJ9LHNldDp7dW5pdDoiZWxlbWVudG9zIix2ZXJiOiJ0ZW5lciJ9fSx0PXtyZWdleDoiZW50cmFkYSIsZW1haWw6ImRpcmVjY2nDs24gZGUgY29ycmVvIGVsZWN0csOzbmljbyIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiZmVjaGEgeSBob3JhIElTTyIsZGF0ZToiZmVjaGEgSVNPIix0aW1lOiJob3JhIElTTyIsZHVyYXRpb246ImR1cmFjacOzbiBJU08iLGlwdjQ6ImRpcmVjY2nDs24gSVB2NCIsaXB2NjoiZGlyZWNjacOzbiBJUHY2IixjaWRydjQ6InJhbmdvIElQdjQiLGNpZHJ2NjoicmFuZ28gSVB2NiIsYmFzZTY0OiJjYWRlbmEgY29kaWZpY2FkYSBlbiBiYXNlNjQiLGJhc2U2NHVybDoiVVJMIGNvZGlmaWNhZGEgZW4gYmFzZTY0Iixqc29uX3N0cmluZzoiY2FkZW5hIEpTT04iLGUxNjQ6Im7Dum1lcm8gRS4xNjQiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiJlbnRyYWRhIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gRW50cmFkYSBpbnZceGUxbGlkYTogc2UgZXNwZXJhYmEgJHtyLmV4cGVjdGVkfSwgcmVjaWJpZG8gJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoibsO6bWVybyI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuImFycmVnbG8iO2lmKG51bGw9PT1lKXJldHVybiJudWxvIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5gRW50cmFkYSBpbnZceGUxbGlkYTogc2UgZXNwZXJhYmEgJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5gT3BjaVx4ZjNuIGludlx4ZTFsaWRhOiBzZSBlc3BlcmFiYSB1bmEgZGUgJHtlcShyLnZhbHVlcywifCIpfWA7Y2FzZSJ0b29fYmlnIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ijw9IjoiPCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBEZW1hc2lhZG8gZ3JhbmRlOiBzZSBlc3BlcmFiYSBxdWUgJHtyLm9yaWdpbj8/InZhbG9yIn0gdHV2aWVyYSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJlbGVtZW50b3MifWA7cmV0dXJuYERlbWFzaWFkbyBncmFuZGU6IHNlIGVzcGVyYWJhIHF1ZSAke3Iub3JpZ2luPz8idmFsb3IifSBmdWVyYSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBEZW1hc2lhZG8gcGVxdWVceGYxbzogc2UgZXNwZXJhYmEgcXVlICR7ci5vcmlnaW59IHR1dmllcmEgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYERlbWFzaWFkbyBwZXF1ZVx4ZjFvOiBzZSBlc3BlcmFiYSBxdWUgJHtyLm9yaWdpbn0gZnVlcmEgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYENhZGVuYSBpbnZceGUxbGlkYTogZGViZSBjb21lbnphciBjb24gIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gQ2FkZW5hIGludlx4ZTFsaWRhOiBkZWJlIHRlcm1pbmFyIGVuICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gQ2FkZW5hIGludlx4ZTFsaWRhOiBkZWJlIGluY2x1aXIgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYENhZGVuYSBpbnZceGUxbGlkYTogZGViZSBjb2luY2lkaXIgY29uIGVsIHBhdHJceGYzbiAke3IucGF0dGVybn1gO3JldHVybmBJbnZceGUxbGlkbyAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gTlx4ZmFtZXJvIGludlx4ZTFsaWRvOiBkZWJlIHNlciBtXHhmYWx0aXBsbyBkZSAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBMbGF2ZSR7ci5rZXlzLmxlbmd0aD4xPyJzIjoiIn0gZGVzY29ub2NpZGEke3Iua2V5cy5sZW5ndGg+MT8icyI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBMbGF2ZSBpbnZceGUxbGlkYSBlbiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4iRW50cmFkYSBpbnbDoWxpZGEiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gVmFsb3IgaW52XHhlMWxpZG8gZW4gJHtyLm9yaWdpbn1gO2RlZmF1bHQ6cmV0dXJuYEVudHJhZGEgaW52XHhlMWxpZGFgfX0pfX0sImZhIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoi2qnYp9ix2Kfaqdiq2LEiLHZlcmI6Itiv2KfYtNiq2Ycg2KjYp9i02K8ifSxmaWxlOnt1bml0OiLYqNin24zYqiIsdmVyYjoi2K/Yp9i02KrZhyDYqNin2LTYryJ9LGFycmF5Ont1bml0OiLYotuM2KrZhSIsdmVyYjoi2K/Yp9i02KrZhyDYqNin2LTYryJ9LHNldDp7dW5pdDoi2KLbjNiq2YUiLHZlcmI6Itiv2KfYtNiq2Ycg2KjYp9i02K8ifX0sdD17cmVnZXg6ItmI2LHZiNiv24wiLGVtYWlsOiLYotiv2LHYsyDYp9uM2YXbjNmEIix1cmw6IlVSTCIsZW1vamk6Itin24zZhdmI2KzbjCIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToi2KrYp9ix24zYriDZiCDYstmF2KfZhiDYp9uM2LLZiCIsZGF0ZToi2KrYp9ix24zYriDYp9uM2LLZiCIsdGltZToi2LLZhdin2YYg2KfbjNiy2YgiLGR1cmF0aW9uOiLZhdiv2Kog2LLZhdin2YYg2KfbjNiy2YgiLGlwdjQ6IklQdjQg2KLYr9ix2LMiLGlwdjY6IklQdjYg2KLYr9ix2LMiLGNpZHJ2NDoiSVB2NCDYr9in2YXZhtmHIixjaWRydjY6IklQdjYg2K/Yp9mF2YbZhyIsYmFzZTY0OiJiYXNlNjQtZW5jb2RlZCDYsdi02KrZhyIsYmFzZTY0dXJsOiJiYXNlNjR1cmwtZW5jb2RlZCDYsdi02KrZhyIsanNvbl9zdHJpbmc6IkpTT04g2LHYtNiq2YciLGUxNjQ6IkUuMTY0INi52K/YryIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ItmI2LHZiNiv24wifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmDZiNix2YjYr9uMINmG2KfZhdi52KrYqNixOiDZhduM4oCM2KjYp9uM2LPYqiAke3IuZXhwZWN0ZWR9INmF24zigIzYqNmI2K/YjCAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiLYudiv2K8iO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiLYotix2KfbjNmHIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9INiv2LHbjNin2YHYqiDYtNivYDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYNmI2LHZiNiv24wg2YbYp9mF2LnYqtio2LE6INmF24zigIzYqNin24zYs9iqICR7dG8oci52YWx1ZXNbMF0pfSDZhduM4oCM2KjZiNivYDtyZXR1cm5g2q/YstuM2YbZhyDZhtin2YXYudiq2KjYsTog2YXbjOKAjNio2KfbjNiz2Kog24zaqduMINin2LIgJHtlcShyLnZhbHVlcywifCIpfSDZhduM4oCM2KjZiNivYDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYNiu24zZhNuMINio2LLYsdqvOiAke3Iub3JpZ2luPz8i2YXZgtiv2KfYsSJ9INio2KfbjNivICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/Iti52YbYtdixIn0g2KjYp9i02K9gO3JldHVybmDYrtuM2YTbjCDYqNiy2LHarzogJHtyLm9yaWdpbj8/ItmF2YLYr9in2LEifSDYqNin24zYryAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0g2KjYp9i02K9gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDYrtuM2YTbjCDaqdmI2obaqTogJHtyLm9yaWdpbn0g2KjYp9uM2K8gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fSDYqNin2LTYr2A7cmV0dXJuYNiu24zZhNuMINqp2YjahtqpOiAke3Iub3JpZ2lufSDYqNin24zYryAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0g2KjYp9i02K9gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g2LHYtNiq2Ycg2YbYp9mF2LnYqtio2LE6INio2KfbjNivINio2KcgIiR7ci5wcmVmaXh9IiDYtNix2YjYuSDYtNmI2K9gO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYNix2LTYqtmHINmG2KfZhdi52KrYqNixOiDYqNin24zYryDYqNinICIke3Iuc3VmZml4fSIg2KrZhdin2YUg2LTZiNivYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYNix2LTYqtmHINmG2KfZhdi52KrYqNixOiDYqNin24zYryDYtNin2YXZhCAiJHtyLmluY2x1ZGVzfSIg2KjYp9i02K9gO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5g2LHYtNiq2Ycg2YbYp9mF2LnYqtio2LE6INio2KfbjNivINio2Kcg2KfZhNqv2YjbjCAke3IucGF0dGVybn0g2YXYt9in2KjZgtiqINiv2KfYtNiq2Ycg2KjYp9i02K9gO3JldHVybmAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH0g2YbYp9mF2LnYqtio2LFgO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g2LnYr9ivINmG2KfZhdi52KrYqNixOiDYqNin24zYryDZhdi22LHYqCAke3IuZGl2aXNvcn0g2KjYp9i02K9gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmDaqdmE24zYryR7ci5rZXlzLmxlbmd0aD4xPyLZh9in24wiOiIifSDZhtin2LTZhtin2LM6ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYNqp2YTbjNivINmG2KfYtNmG2KfYsyDYr9ixICR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOmRlZmF1bHQ6cmV0dXJuYNmI2LHZiNiv24wg2YbYp9mF2LnYqtio2LFgO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5g2YXZgtiv2KfYsSDZhtin2YXYudiq2KjYsSDYr9ixICR7ci5vcmlnaW59YH19KX19LCJmaSIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6Im1lcmtracOkIixzdWJqZWN0OiJtZXJra2lqb25vbiJ9LGZpbGU6e3VuaXQ6InRhdnVhIixzdWJqZWN0OiJ0aWVkb3N0b24ifSxhcnJheTp7dW5pdDoiYWxraW90YSIsc3ViamVjdDoibGlzdGFuIn0sc2V0Ont1bml0OiJhbGtpb3RhIixzdWJqZWN0OiJqb3Vrb24ifSxudW1iZXI6e3VuaXQ6IiIsc3ViamVjdDoibHV2dW4ifSxiaWdpbnQ6e3VuaXQ6IiIsc3ViamVjdDoic3V1cmVuIGtva29uYWlzbHV2dW4ifSxpbnQ6e3VuaXQ6IiIsc3ViamVjdDoia29rb25haXNsdXZ1biJ9LGRhdGU6e3VuaXQ6IiIsc3ViamVjdDoicMOkaXbDpG3DpMOkcsOkbiJ9fSx0PXtyZWdleDoic8Okw6RubsO2bGxpbmVuIGxhdXNla2UiLGVtYWlsOiJzw6Roa8O2cG9zdGlvc29pdGUiLHVybDoiVVJMLW9zb2l0ZSIsZW1vamk6ImVtb2ppIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJJU08tYWlrYWxlaW1hIixkYXRlOiJJU08tcMOkaXbDpG3DpMOkcsOkIix0aW1lOiJJU08tYWlrYSIsZHVyYXRpb246IklTTy1rZXN0byIsaXB2NDoiSVB2NC1vc29pdGUiLGlwdjY6IklQdjYtb3NvaXRlIixjaWRydjQ6IklQdjQtYWx1ZSIsY2lkcnY2OiJJUHY2LWFsdWUiLGJhc2U2NDoiYmFzZTY0LWtvb2RhdHR1IG1lcmtraWpvbm8iLGJhc2U2NHVybDoiYmFzZTY0dXJsLWtvb2RhdHR1IG1lcmtraWpvbm8iLGpzb25fc3RyaW5nOiJKU09OLW1lcmtraWpvbm8iLGUxNjQ6IkUuMTY0LWx1a3UiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiJ0ZW1wbGFhdHRpbWVya2tpam9ubyJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYFZpcmhlZWxsaW5lbiB0eXlwcGk6IG9kb3RldHRpaW4gJHtyLmV4cGVjdGVkfSwgb2xpICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Im51bWJlciI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuImFycmF5IjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYFZpcmhlZWxsaW5lbiBzeVx4ZjZ0ZTogdFx4ZTR5dHl5IG9sbGEgJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5gVmlyaGVlbGxpbmVuIHZhbGludGE6IHRceGU0eXR5eSBvbGxhIHlrc2kgc2V1cmFhdmlzdGE6ICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gTGlpYW4gc3V1cmk6ICR7bi5zdWJqZWN0fSB0XHhlNHl0eXkgb2xsYSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YC50cmltKCk7cmV0dXJuYExpaWFuIHN1dXJpOiBhcnZvbiB0XHhlNHl0eXkgb2xsYSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBMaWlhbiBwaWVuaTogJHtuLnN1YmplY3R9IHRceGU0eXR5eSBvbGxhICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gLnRyaW0oKTtyZXR1cm5gTGlpYW4gcGllbmk6IGFydm9uIHRceGU0eXR5eSBvbGxhICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBWaXJoZWVsbGluZW4gc3lceGY2dGU6IHRceGU0eXR5eSBhbGthYSAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBWaXJoZWVsbGluZW4gc3lceGY2dGU6IHRceGU0eXR5eSBsb3BwdWEgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBWaXJoZWVsbGluZW4gc3lceGY2dGU6IHRceGU0eXR5eSBzaXNceGU0bHRceGU0XHhlNCAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gVmlyaGVlbGxpbmVuIHN5XHhmNnRlOiB0XHhlNHl0eXkgdmFzdGF0YSBzXHhlNFx4ZTRublx4ZjZsbGlzdFx4ZTQgbGF1c2VrZXR0YSAke3IucGF0dGVybn1gO3JldHVybmBWaXJoZWVsbGluZW4gJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYFZpcmhlZWxsaW5lbiBsdWt1OiB0XHhlNHl0eXkgb2xsYSBsdXZ1biAke3IuZGl2aXNvcn0gbW9uaWtlcnRhYDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gJHtyLmtleXMubGVuZ3RoPjE/IlR1bnRlbWF0dG9tYXQgYXZhaW1ldCI6IlR1bnRlbWF0b24gYXZhaW4ifTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm4iVmlyaGVlbGxpbmVuIGF2YWluIHRpZXR1ZWVzc2EiO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuIlZpcmhlZWxsaW5lbiB1bmlvbmkiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm4iVmlyaGVlbGxpbmVuIGFydm8gam91a29zc2EiO2RlZmF1bHQ6cmV0dXJuYFZpcmhlZWxsaW5lbiBzeVx4ZjZ0ZWB9fSl9fSwiZnIiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiJjYXJhY3TDqHJlcyIsdmVyYjoiYXZvaXIifSxmaWxlOnt1bml0OiJvY3RldHMiLHZlcmI6ImF2b2lyIn0sYXJyYXk6e3VuaXQ6IsOpbMOpbWVudHMiLHZlcmI6ImF2b2lyIn0sc2V0Ont1bml0OiLDqWzDqW1lbnRzIix2ZXJiOiJhdm9pciJ9fSx0PXtyZWdleDoiZW50csOpZSIsZW1haWw6ImFkcmVzc2UgZS1tYWlsIix1cmw6IlVSTCIsZW1vamk6ImVtb2ppIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJkYXRlIGV0IGhldXJlIElTTyIsZGF0ZToiZGF0ZSBJU08iLHRpbWU6ImhldXJlIElTTyIsZHVyYXRpb246ImR1csOpZSBJU08iLGlwdjQ6ImFkcmVzc2UgSVB2NCIsaXB2NjoiYWRyZXNzZSBJUHY2IixjaWRydjQ6InBsYWdlIElQdjQiLGNpZHJ2NjoicGxhZ2UgSVB2NiIsYmFzZTY0OiJjaGHDrm5lIGVuY29kw6llIGVuIGJhc2U2NCIsYmFzZTY0dXJsOiJjaGHDrm5lIGVuY29kw6llIGVuIGJhc2U2NHVybCIsanNvbl9zdHJpbmc6ImNoYcOubmUgSlNPTiIsZTE2NDoibnVtw6lybyBFLjE2NCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImVudHLDqWUifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBFbnRyXHhlOWUgaW52YWxpZGUgOiAke3IuZXhwZWN0ZWR9IGF0dGVuZHUsICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Im5vbWJyZSI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuInRhYmxlYXUiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX0gcmVceGU3dWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBFbnRyXHhlOWUgaW52YWxpZGUgOiAke3RvKHIudmFsdWVzWzBdKX0gYXR0ZW5kdWA7cmV0dXJuYE9wdGlvbiBpbnZhbGlkZSA6IHVuZSB2YWxldXIgcGFybWkgJHtlcShyLnZhbHVlcywifCIpfSBhdHRlbmR1ZWA7Y2FzZSJ0b29fYmlnIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ijw9IjoiPCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBUcm9wIGdyYW5kIDogJHtyLm9yaWdpbj8/InZhbGV1ciJ9IGRvaXQgJHtuLnZlcmJ9ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/IsOpbMOpbWVudChzKSJ9YDtyZXR1cm5gVHJvcCBncmFuZCA6ICR7ci5vcmlnaW4/PyJ2YWxldXIifSBkb2l0IFx4ZWF0cmUgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVHJvcCBwZXRpdCA6ICR7ci5vcmlnaW59IGRvaXQgJHtuLnZlcmJ9ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmBUcm9wIHBldGl0IDogJHtyLm9yaWdpbn0gZG9pdCBceGVhdHJlICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBDaGFceGVlbmUgaW52YWxpZGUgOiBkb2l0IGNvbW1lbmNlciBwYXIgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gQ2hhXHhlZW5lIGludmFsaWRlIDogZG9pdCBzZSB0ZXJtaW5lciBwYXIgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBDaGFceGVlbmUgaW52YWxpZGUgOiBkb2l0IGluY2x1cmUgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYENoYVx4ZWVuZSBpbnZhbGlkZSA6IGRvaXQgY29ycmVzcG9uZHJlIGF1IG1vZFx4ZThsZSAke3IucGF0dGVybn1gO3JldHVybmAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH0gaW52YWxpZGVgO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gTm9tYnJlIGludmFsaWRlIDogZG9pdCBceGVhdHJlIHVuIG11bHRpcGxlIGRlICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYENsXHhlOSR7ci5rZXlzLmxlbmd0aD4xPyJzIjoiIn0gbm9uIHJlY29ubnVlJHtyLmtleXMubGVuZ3RoPjE/InMiOiIifSA6ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYENsXHhlOSBpbnZhbGlkZSBkYW5zICR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiJFbnRyw6llIGludmFsaWRlIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYFZhbGV1ciBpbnZhbGlkZSBkYW5zICR7ci5vcmlnaW59YDtkZWZhdWx0OnJldHVybmBFbnRyXHhlOWUgaW52YWxpZGVgfX0pfX0sImZyQ0EiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiJjYXJhY3TDqHJlcyIsdmVyYjoiYXZvaXIifSxmaWxlOnt1bml0OiJvY3RldHMiLHZlcmI6ImF2b2lyIn0sYXJyYXk6e3VuaXQ6IsOpbMOpbWVudHMiLHZlcmI6ImF2b2lyIn0sc2V0Ont1bml0OiLDqWzDqW1lbnRzIix2ZXJiOiJhdm9pciJ9fSx0PXtyZWdleDoiZW50csOpZSIsZW1haWw6ImFkcmVzc2UgY291cnJpZWwiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6ImRhdGUtaGV1cmUgSVNPIixkYXRlOiJkYXRlIElTTyIsdGltZToiaGV1cmUgSVNPIixkdXJhdGlvbjoiZHVyw6llIElTTyIsaXB2NDoiYWRyZXNzZSBJUHY0IixpcHY2OiJhZHJlc3NlIElQdjYiLGNpZHJ2NDoicGxhZ2UgSVB2NCIsY2lkcnY2OiJwbGFnZSBJUHY2IixiYXNlNjQ6ImNoYcOubmUgZW5jb2TDqWUgZW4gYmFzZTY0IixiYXNlNjR1cmw6ImNoYcOubmUgZW5jb2TDqWUgZW4gYmFzZTY0dXJsIixqc29uX3N0cmluZzoiY2hhw65uZSBKU09OIixlMTY0OiJudW3DqXJvIEUuMTY0Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoiZW50csOpZSJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYEVudHJceGU5ZSBpbnZhbGlkZSA6IGF0dGVuZHUgJHtyLmV4cGVjdGVkfSwgcmVceGU3dSAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1iZXIiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBFbnRyXHhlOWUgaW52YWxpZGUgOiBhdHRlbmR1ICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYE9wdGlvbiBpbnZhbGlkZSA6IGF0dGVuZHUgbCd1bmUgZGVzIHZhbGV1cnMgc3VpdmFudGVzICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyLiiaQiOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRyb3AgZ3JhbmQgOiBhdHRlbmR1IHF1ZSAke3Iub3JpZ2luPz8ibGEgdmFsZXVyIn0gYWl0ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmBUcm9wIGdyYW5kIDogYXR0ZW5kdSBxdWUgJHtyLm9yaWdpbj8/ImxhIHZhbGV1ciJ9IHNvaXQgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyLiiaUiOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRyb3AgcGV0aXQgOiBhdHRlbmR1IHF1ZSAke3Iub3JpZ2lufSBhaXQgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYFRyb3AgcGV0aXQgOiBhdHRlbmR1IHF1ZSAke3Iub3JpZ2lufSBzb2l0ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBDaGFceGVlbmUgaW52YWxpZGUgOiBkb2l0IGNvbW1lbmNlciBwYXIgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gQ2hhXHhlZW5lIGludmFsaWRlIDogZG9pdCBzZSB0ZXJtaW5lciBwYXIgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBDaGFceGVlbmUgaW52YWxpZGUgOiBkb2l0IGluY2x1cmUgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYENoYVx4ZWVuZSBpbnZhbGlkZSA6IGRvaXQgY29ycmVzcG9uZHJlIGF1IG1vdGlmICR7ci5wYXR0ZXJufWA7cmV0dXJuYCR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fSBpbnZhbGlkZWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBOb21icmUgaW52YWxpZGUgOiBkb2l0IFx4ZWF0cmUgdW4gbXVsdGlwbGUgZGUgJHtyLmRpdmlzb3J9YDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gQ2xceGU5JHtyLmtleXMubGVuZ3RoPjE/InMiOiIifSBub24gcmVjb25udWUke3Iua2V5cy5sZW5ndGg+MT8icyI6IiJ9IDogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5gQ2xceGU5IGludmFsaWRlIGRhbnMgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuIkVudHLDqWUgaW52YWxpZGUiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gVmFsZXVyIGludmFsaWRlIGRhbnMgJHtyLm9yaWdpbn1gO2RlZmF1bHQ6cmV0dXJuYEVudHJceGU5ZSBpbnZhbGlkZWB9fSl9fSwiaGUiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLXkNeV16rXmdeV16oiLHZlcmI6Itec15vXnNeV15wifSxmaWxlOnt1bml0OiLXkdeZ15nXmNeZ150iLHZlcmI6Itec15vXnNeV15wifSxhcnJheTp7dW5pdDoi16TXqNeZ15jXmdedIix2ZXJiOiLXnNeb15zXldecIn0sc2V0Ont1bml0OiLXpNeo15nXmNeZ150iLHZlcmI6Itec15vXnNeV15wifX0sdD17cmVnZXg6Iten15zXmCIsZW1haWw6Iteb16rXldeR16og15DXmdee15nXmdecIix1cmw6Iteb16rXldeR16og16jXqdeqIixlbW9qaToi15DXmdee15XXkifXmSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToi16rXkNeo15nXmiDXldeW157XnyBJU08iLGRhdGU6Iteq15DXqNeZ15ogSVNPIix0aW1lOiLXltee158gSVNPIixkdXJhdGlvbjoi157XqdeaINeW157XnyBJU08iLGlwdjQ6Iteb16rXldeR16ogSVB2NCIsaXB2Njoi15vXqteV15HXqiBJUHY2IixjaWRydjQ6IteY15XXldeXIElQdjQiLGNpZHJ2Njoi15jXldeV15cgSVB2NiIsYmFzZTY0OiLXnteX16jXldeW16og15HXkdeh15nXoSA2NCIsYmFzZTY0dXJsOiLXnteX16jXldeW16og15HXkdeh15nXoSA2NCDXnNeb16rXldeR15XXqiDXqNep16oiLGpzb25fc3RyaW5nOiLXnteX16jXldeW16ogSlNPTiIsZTE2NDoi157Xodek16ggRS4xNjQiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiLXp9ec15gifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmDXp9ec15gg15zXkCDXqten15nXnzog16bXqNeZ15ogJHtyLmV4cGVjdGVkfSwg15TXqten15HXnCAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1iZXIiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmDXp9ec15gg15zXkCDXqten15nXnzog16bXqNeZ15ogJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5g16fXnNeYINec15Ag16rXp9eZ1586INem16jXmdeaINeQ15fXqiDXnteU15DXpNep16jXldeZ15XXqiAgJHtlcShyLnZhbHVlcywifCIpfWA7Y2FzZSJ0b29fYmlnIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ijw9IjoiPCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDXkteT15XXnCDXnteT15k6ICR7ci5vcmlnaW4/PyJ2YWx1ZSJ9INem16jXmdeaINec15TXmdeV16ogJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudHMifWA7cmV0dXJuYNeS15PXldecINee15PXmTogJHtyLm9yaWdpbj8/InZhbHVlIn0g16bXqNeZ15og15zXlNeZ15XXqiAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDXp9eY158g157Xk9eZOiAke3Iub3JpZ2lufSDXpteo15nXmiDXnNeU15nXldeqICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmDXp9eY158g157Xk9eZOiAke3Iub3JpZ2lufSDXpteo15nXmiDXnNeU15nXldeqICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDXnteX16jXldeW16og15zXkCDXqten15nXoNeUOiDXl9eZ15nXkdeqINec15TXqteX15nXnCDXkSIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYNee15fXqNeV15bXqiDXnNeQINeq16fXmdeg15Q6INeX15nXmdeR16og15zXlNeh16rXmdeZ150g15EgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDXnteX16jXldeW16og15zXkCDXqten15nXoNeUOiDXl9eZ15nXkdeqINec15vXnNeV15wgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYNee15fXqNeV15bXqiDXnNeQINeq16fXmdeg15Q6INeX15nXmdeR16og15zXlNeq15DXmdedINec16rXkdeg15nXqiAke3IucGF0dGVybn1gO3JldHVybmAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH0g15zXkCDXqten15nXn2A7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmDXnteh16TXqCDXnNeQINeq16fXmdefOiDXl9eZ15nXkSDXnNeU15nXldeqINee15vXpNec15Qg16nXnCAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmDXntek16rXlyR7ci5rZXlzLmxlbmd0aD4xPyLXldeqIjoiIn0g15zXkCDXnteW15XXlCR7ci5rZXlzLmxlbmd0aD4xPyLXmdedIjoi15QifTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5g157XpNeq15cg15zXkCDXqten15nXnyDXkSR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiLXp9ec15gg15zXkCDXqten15nXnyI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmDXoteo15og15zXkCDXqten15nXnyDXkSR7ci5vcmlnaW59YDtkZWZhdWx0OnJldHVybmDXp9ec15gg15zXkCDXqten15nXn2B9fSl9fSwiaHUiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiJrYXJha3RlciIsdmVyYjoibGVneWVuIn0sZmlsZTp7dW5pdDoiYnl0ZSIsdmVyYjoibGVneWVuIn0sYXJyYXk6e3VuaXQ6ImVsZW0iLHZlcmI6ImxlZ3llbiJ9LHNldDp7dW5pdDoiZWxlbSIsdmVyYjoibGVneWVuIn19LHQ9e3JlZ2V4OiJiZW1lbmV0IixlbWFpbDoiZW1haWwgY8OtbSIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPIGlkxZFiw6lseWVnIixkYXRlOiJJU08gZMOhdHVtIix0aW1lOiJJU08gaWTFkSIsZHVyYXRpb246IklTTyBpZMWRaW50ZXJ2YWxsdW0iLGlwdjQ6IklQdjQgY8OtbSIsaXB2NjoiSVB2NiBjw61tIixjaWRydjQ6IklQdjQgdGFydG9tw6FueSIsY2lkcnY2OiJJUHY2IHRhcnRvbcOhbnkiLGJhc2U2NDoiYmFzZTY0LWvDs2RvbHQgc3RyaW5nIixiYXNlNjR1cmw6ImJhc2U2NHVybC1rw7Nkb2x0IHN0cmluZyIsanNvbl9zdHJpbmc6IkpTT04gc3RyaW5nIixlMTY0OiJFLjE2NCBzesOhbSIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImJlbWVuZXQifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBceGM5cnZceGU5bnl0ZWxlbiBiZW1lbmV0OiBhIHZceGUxcnQgXHhlOXJ0XHhlOWsgJHtyLmV4cGVjdGVkfSwgYSBrYXBvdHQgXHhlOXJ0XHhlOWsgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoic3rDoW0iO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJ0w7ZtYiI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBceGM5cnZceGU5bnl0ZWxlbiBiZW1lbmV0OiBhIHZceGUxcnQgXHhlOXJ0XHhlOWsgJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5gXHhjOXJ2XHhlOW55dGVsZW4gb3BjaVx4ZjM6IHZhbGFtZWx5aWsgXHhlOXJ0XHhlOWsgdlx4ZTFydCAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRceGZhbCBuYWd5OiAke3Iub3JpZ2luPz8iw6lydMOpayJ9IG1ceGU5cmV0ZSB0XHhmYWwgbmFneSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJlbGVtIn1gO3JldHVybmBUXHhmYWwgbmFneTogYSBiZW1lbmV0aSBceGU5cnRceGU5ayAke3Iub3JpZ2luPz8iw6lydMOpayJ9IHRceGZhbCBuYWd5OiAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBUXHhmYWwga2ljc2k6IGEgYmVtZW5ldGkgXHhlOXJ0XHhlOWsgJHtyLm9yaWdpbn0gbVx4ZTlyZXRlIHRceGZhbCBraWNzaSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gVFx4ZmFsIGtpY3NpOiBhIGJlbWVuZXRpIFx4ZTlydFx4ZTlrICR7ci5vcmlnaW59IHRceGZhbCBraWNzaSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX1gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gXHhjOXJ2XHhlOW55dGVsZW4gc3RyaW5nOiAiJHtyLnByZWZpeH0iIFx4ZTlydFx4ZTlra2VsIGtlbGwga2V6ZMWRZG5pZWA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gXHhjOXJ2XHhlOW55dGVsZW4gc3RyaW5nOiAiJHtyLnN1ZmZpeH0iIFx4ZTlydFx4ZTlra2VsIGtlbGwgdlx4ZTlnesWRZG5pZWA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBceGM5cnZceGU5bnl0ZWxlbiBzdHJpbmc6ICIke3IuaW5jbHVkZXN9IiBceGU5cnRceGU5a2V0IGtlbGwgdGFydGFsbWF6bmlhYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYFx4Yzlydlx4ZTlueXRlbGVuIHN0cmluZzogJHtyLnBhdHRlcm59IG1pbnRceGUxbmFrIGtlbGwgbWVnZmVsZWxuaWVgO3JldHVybmBceGM5cnZceGU5bnl0ZWxlbiAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gXHhjOXJ2XHhlOW55dGVsZW4gc3pceGUxbTogJHtyLmRpdmlzb3J9IHRceGY2YmJzelx4ZjZyXHhmNnNceGU5bmVrIGtlbGwgbGVubmllYDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gSXNtZXJldGxlbiBrdWxjcyR7ci5rZXlzLmxlbmd0aD4xPyJzIjoiIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYFx4Yzlydlx4ZTlueXRlbGVuIGt1bGNzICR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiLDiXJ2w6lueXRlbGVuIGJlbWVuZXQiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gXHhjOXJ2XHhlOW55dGVsZW4gXHhlOXJ0XHhlOWs6ICR7ci5vcmlnaW59YDtkZWZhdWx0OnJldHVybmBceGM5cnZceGU5bnl0ZWxlbiBiZW1lbmV0YH19KX19LCJpZCIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6ImthcmFrdGVyIix2ZXJiOiJtZW1pbGlraSJ9LGZpbGU6e3VuaXQ6ImJ5dGUiLHZlcmI6Im1lbWlsaWtpIn0sYXJyYXk6e3VuaXQ6Iml0ZW0iLHZlcmI6Im1lbWlsaWtpIn0sc2V0Ont1bml0OiJpdGVtIix2ZXJiOiJtZW1pbGlraSJ9fSx0PXtyZWdleDoiaW5wdXQiLGVtYWlsOiJhbGFtYXQgZW1haWwiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6InRhbmdnYWwgZGFuIHdha3R1IGZvcm1hdCBJU08iLGRhdGU6InRhbmdnYWwgZm9ybWF0IElTTyIsdGltZToiamFtIGZvcm1hdCBJU08iLGR1cmF0aW9uOiJkdXJhc2kgZm9ybWF0IElTTyIsaXB2NDoiYWxhbWF0IElQdjQiLGlwdjY6ImFsYW1hdCBJUHY2IixjaWRydjQ6InJlbnRhbmcgYWxhbWF0IElQdjQiLGNpZHJ2NjoicmVudGFuZyBhbGFtYXQgSVB2NiIsYmFzZTY0OiJzdHJpbmcgZGVuZ2FuIGVua29kZSBiYXNlNjQiLGJhc2U2NHVybDoic3RyaW5nIGRlbmdhbiBlbmtvZGUgYmFzZTY0dXJsIixqc29uX3N0cmluZzoic3RyaW5nIEpTT04iLGUxNjQ6ImFuZ2thIEUuMTY0Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoiaW5wdXQifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBJbnB1dCB0aWRhayB2YWxpZDogZGloYXJhcGthbiAke3IuZXhwZWN0ZWR9LCBkaXRlcmltYSAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1iZXIiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBJbnB1dCB0aWRhayB2YWxpZDogZGloYXJhcGthbiAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBQaWxpaGFuIHRpZGFrIHZhbGlkOiBkaWhhcmFwa2FuIHNhbGFoIHNhdHUgZGFyaSAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRlcmxhbHUgYmVzYXI6IGRpaGFyYXBrYW4gJHtyLm9yaWdpbj8/InZhbHVlIn0gbWVtaWxpa2kgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVuIn1gO3JldHVybmBUZXJsYWx1IGJlc2FyOiBkaWhhcmFwa2FuICR7ci5vcmlnaW4/PyJ2YWx1ZSJ9IG1lbmphZGkgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVGVybGFsdSBrZWNpbDogZGloYXJhcGthbiAke3Iub3JpZ2lufSBtZW1pbGlraSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gVGVybGFsdSBrZWNpbDogZGloYXJhcGthbiAke3Iub3JpZ2lufSBtZW5qYWRpICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBTdHJpbmcgdGlkYWsgdmFsaWQ6IGhhcnVzIGRpbXVsYWkgZGVuZ2FuICIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYFN0cmluZyB0aWRhayB2YWxpZDogaGFydXMgYmVyYWtoaXIgZGVuZ2FuICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gU3RyaW5nIHRpZGFrIHZhbGlkOiBoYXJ1cyBtZW55ZXJ0YWthbiAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gU3RyaW5nIHRpZGFrIHZhbGlkOiBoYXJ1cyBzZXN1YWkgcG9sYSAke3IucGF0dGVybn1gO3JldHVybmAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH0gdGlkYWsgdmFsaWRgO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gQW5na2EgdGlkYWsgdmFsaWQ6IGhhcnVzIGtlbGlwYXRhbiBkYXJpICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYEt1bmNpIHRpZGFrIGRpa2VuYWxpICR7ci5rZXlzLmxlbmd0aD4xPyJzIjoiIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYEt1bmNpIHRpZGFrIHZhbGlkIGRpICR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOmRlZmF1bHQ6cmV0dXJuIklucHV0IHRpZGFrIHZhbGlkIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYE5pbGFpIHRpZGFrIHZhbGlkIGRpICR7ci5vcmlnaW59YH19KX19LCJpdCIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6ImNhcmF0dGVyaSIsdmVyYjoiYXZlcmUifSxmaWxlOnt1bml0OiJieXRlIix2ZXJiOiJhdmVyZSJ9LGFycmF5Ont1bml0OiJlbGVtZW50aSIsdmVyYjoiYXZlcmUifSxzZXQ6e3VuaXQ6ImVsZW1lbnRpIix2ZXJiOiJhdmVyZSJ9fSx0PXtyZWdleDoiaW5wdXQiLGVtYWlsOiJpbmRpcml6em8gZW1haWwiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6ImRhdGEgZSBvcmEgSVNPIixkYXRlOiJkYXRhIElTTyIsdGltZToib3JhIElTTyIsZHVyYXRpb246ImR1cmF0YSBJU08iLGlwdjQ6ImluZGlyaXp6byBJUHY0IixpcHY2OiJpbmRpcml6em8gSVB2NiIsY2lkcnY0OiJpbnRlcnZhbGxvIElQdjQiLGNpZHJ2NjoiaW50ZXJ2YWxsbyBJUHY2IixiYXNlNjQ6InN0cmluZ2EgY29kaWZpY2F0YSBpbiBiYXNlNjQiLGJhc2U2NHVybDoiVVJMIGNvZGlmaWNhdGEgaW4gYmFzZTY0Iixqc29uX3N0cmluZzoic3RyaW5nYSBKU09OIixlMTY0OiJudW1lcm8gRS4xNjQiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiJpbnB1dCJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYElucHV0IG5vbiB2YWxpZG86IGF0dGVzbyAke3IuZXhwZWN0ZWR9LCByaWNldnV0byAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1lcm8iO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJ2ZXR0b3JlIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYElucHV0IG5vbiB2YWxpZG86IGF0dGVzbyAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBPcHppb25lIG5vbiB2YWxpZGE6IGF0dGVzbyB1bm8gdHJhICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVHJvcHBvIGdyYW5kZTogJHtyLm9yaWdpbj8/InZhbG9yZSJ9IGRldmUgYXZlcmUgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudGkifWA7cmV0dXJuYFRyb3BwbyBncmFuZGU6ICR7ci5vcmlnaW4/PyJ2YWxvcmUifSBkZXZlIGVzc2VyZSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBUcm9wcG8gcGljY29sbzogJHtyLm9yaWdpbn0gZGV2ZSBhdmVyZSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gVHJvcHBvIHBpY2NvbG86ICR7ci5vcmlnaW59IGRldmUgZXNzZXJlICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBTdHJpbmdhIG5vbiB2YWxpZGE6IGRldmUgaW5pemlhcmUgY29uICIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYFN0cmluZ2Egbm9uIHZhbGlkYTogZGV2ZSB0ZXJtaW5hcmUgY29uICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gU3RyaW5nYSBub24gdmFsaWRhOiBkZXZlIGluY2x1ZGVyZSAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gU3RyaW5nYSBub24gdmFsaWRhOiBkZXZlIGNvcnJpc3BvbmRlcmUgYWwgcGF0dGVybiAke3IucGF0dGVybn1gO3JldHVybmBJbnZhbGlkICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBOdW1lcm8gbm9uIHZhbGlkbzogZGV2ZSBlc3NlcmUgdW4gbXVsdGlwbG8gZGkgJHtyLmRpdmlzb3J9YDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gQ2hpYXYke3Iua2V5cy5sZW5ndGg+MT8iaSI6ImUifSBub24gcmljb25vc2NpdXQke3Iua2V5cy5sZW5ndGg+MT8iZSI6ImEifTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5gQ2hpYXZlIG5vbiB2YWxpZGEgaW4gJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6ZGVmYXVsdDpyZXR1cm4iSW5wdXQgbm9uIHZhbGlkbyI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmBWYWxvcmUgbm9uIHZhbGlkbyBpbiAke3Iub3JpZ2lufWB9fSl9fSwiamEiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLmloflrZciLHZlcmI6IuOBp+OBguOCiyJ9LGZpbGU6e3VuaXQ6IuODkOOCpOODiCIsdmVyYjoi44Gn44GC44KLIn0sYXJyYXk6e3VuaXQ6Iuimgee0oCIsdmVyYjoi44Gn44GC44KLIn0sc2V0Ont1bml0OiLopoHntKAiLHZlcmI6IuOBp+OBguOCiyJ9fSx0PXtyZWdleDoi5YWl5Yqb5YCkIixlbWFpbDoi44Oh44O844Or44Ki44OJ44Os44K5Iix1cmw6IlVSTCIsZW1vamk6Iue1teaWh+WtlyIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNP5pel5pmCIixkYXRlOiJJU0/ml6Xku5giLHRpbWU6IklTT+aZguWIuyIsZHVyYXRpb246IklTT+acn+mWkyIsaXB2NDoiSVB2NOOCouODieODrOOCuSIsaXB2NjoiSVB2NuOCouODieODrOOCuSIsY2lkcnY0OiJJUHY056+E5ZuyIixjaWRydjY6IklQdjbnr4Tlm7IiLGJhc2U2NDoiYmFzZTY044Ko44Oz44Kz44O844OJ5paH5a2X5YiXIixiYXNlNjR1cmw6ImJhc2U2NHVybOOCqOODs+OCs+ODvOODieaWh+Wtl+WIlyIsanNvbl9zdHJpbmc6IkpTT07mloflrZfliJciLGUxNjQ6IkUuMTY055Wq5Y+3Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoi5YWl5Yqb5YCkIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5g54Sh5Yq544Gq5YWl5YqbOiAke3IuZXhwZWN0ZWR944GM5pyf5b6F44GV44KM44G+44GX44Gf44GM44CBJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoi5pWw5YCkIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4i6YWN5YiXIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl944GM5YWl5Yqb44GV44KM44G+44GX44GfYDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYOeEoeWKueOBquWFpeWKmzogJHt0byhyLnZhbHVlc1swXSl944GM5pyf5b6F44GV44KM44G+44GX44GfYDtyZXR1cm5g54Sh5Yq544Gq6YG45oqeOiAke2VxKHIudmFsdWVzLCLjgIEiKX3jga7jgYTjgZrjgozjgYvjgafjgYLjgovlv4XopoHjgYzjgYLjgorjgb7jgZlgO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyLku6XkuIvjgafjgYLjgosiOiLjgojjgorlsI/jgZXjgYQiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g5aSn44GN44GZ44GO44KL5YCkOiAke3Iub3JpZ2luPz8i5YCkIn3jga8ke3IubWF4aW11bS50b1N0cmluZygpfSR7bi51bml0Pz8i6KaB57SgIn0ke3R95b+F6KaB44GM44GC44KK44G+44GZYDtyZXR1cm5g5aSn44GN44GZ44GO44KL5YCkOiAke3Iub3JpZ2luPz8i5YCkIn3jga8ke3IubWF4aW11bS50b1N0cmluZygpfSR7dH3lv4XopoHjgYzjgYLjgorjgb7jgZlgfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/IuS7peS4iuOBp+OBguOCiyI6IuOCiOOCiuWkp+OBjeOBhCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDlsI/jgZXjgZnjgY7jgovlgKQ6ICR7ci5vcmlnaW5944GvJHtyLm1pbmltdW0udG9TdHJpbmcoKX0ke24udW5pdH0ke3R95b+F6KaB44GM44GC44KK44G+44GZYDtyZXR1cm5g5bCP44GV44GZ44GO44KL5YCkOiAke3Iub3JpZ2lufeOBryR7ci5taW5pbXVtLnRvU3RyaW5nKCl9JHt0feW/heimgeOBjOOBguOCiuOBvuOBmWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDnhKHlirnjgarmloflrZfliJc6ICIke3IucHJlZml4fSLjgaflp4vjgb7jgovlv4XopoHjgYzjgYLjgorjgb7jgZlgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYOeEoeWKueOBquaWh+Wtl+WIlzogIiR7ci5zdWZmaXh9IuOBp+e1guOCj+OCi+W/heimgeOBjOOBguOCiuOBvuOBmWA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDnhKHlirnjgarmloflrZfliJc6ICIke3IuaW5jbHVkZXN9IuOCkuWQq+OCgOW/heimgeOBjOOBguOCiuOBvuOBmWA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmDnhKHlirnjgarmloflrZfliJc6IOODkeOCv+ODvOODsyR7ci5wYXR0ZXJufeOBq+S4gOiHtOOBmeOCi+W/heimgeOBjOOBguOCiuOBvuOBmWA7cmV0dXJuYOeEoeWKueOBqiR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmDnhKHlirnjgarmlbDlgKQ6ICR7ci5kaXZpc29yfeOBruWAjeaVsOOBp+OBguOCi+W/heimgeOBjOOBguOCiuOBvuOBmWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYOiqjeitmOOBleOCjOOBpuOBhOOBquOBhOOCreODvCR7ci5rZXlzLmxlbmd0aD4xPyLnvqQiOiIifTogJHtlcShyLmtleXMsIuOAgSIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYCR7ci5vcmlnaW595YaF44Gu54Sh5Yq544Gq44Kt44O8YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiLnhKHlirnjgarlhaXlipsiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gJHtyLm9yaWdpbn3lhoXjga7nhKHlirnjgarlgKRgO2RlZmF1bHQ6cmV0dXJuYOeEoeWKueOBquWFpeWKm2B9fSl9fSwia2giLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLhno/hnr3hnqLhnoDhn5Lhnp/hnpoiLHZlcmI6IuGeguGeveGemuGemOGetuGekyJ9LGZpbGU6e3VuaXQ6IuGelOGfgyIsdmVyYjoi4Z6C4Z694Z6a4Z6Y4Z624Z6TIn0sYXJyYXk6e3VuaXQ6IuGekuGetuGej+GeuyIsdmVyYjoi4Z6C4Z694Z6a4Z6Y4Z624Z6TIn0sc2V0Ont1bml0OiLhnpLhnrbhno/hnrsiLHZlcmI6IuGeguGeveGemuGemOGetuGekyJ9fSx0PXtyZWdleDoi4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4Z6U4Z6J4Z+S4Z6F4Z684Z6bIixlbWFpbDoi4Z6i4Z624Z6f4Z6Z4Z6K4Z+S4Z6L4Z624Z6T4Z6i4Z+K4Z644Z6Y4Z+C4Z6bIix1cmw6IlVSTCIsZW1vamk6IuGen+GeieGfkuGeieGetuGeouGetuGemuGemOGfkuGemOGejuGfjSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToi4Z6A4Z624Z6b4Z6U4Z6a4Z634Z6F4Z+S4Z6G4Z+B4Z6RIOGek+Get+GehOGemOGfieGfhOGehCBJU08iLGRhdGU6IuGegOGetuGem+GelOGemuGet+GeheGfkuGehuGfgeGekSBJU08iLHRpbWU6IuGemOGfieGfhOGehCBJU08iLGR1cmF0aW9uOiLhnprhnpnhn4jhnpbhn4HhnpsgSVNPIixpcHY0OiLhnqLhnrbhnp/hnpnhnorhn5LhnovhnrbhnpMgSVB2NCIsaXB2Njoi4Z6i4Z624Z6f4Z6Z4Z6K4Z+S4Z6L4Z624Z6TIElQdjYiLGNpZHJ2NDoi4Z6K4Z+C4Z6T4Z6i4Z624Z6f4Z6Z4Z6K4Z+S4Z6L4Z624Z6TIElQdjQiLGNpZHJ2Njoi4Z6K4Z+C4Z6T4Z6i4Z624Z6f4Z6Z4Z6K4Z+S4Z6L4Z624Z6TIElQdjYiLGJhc2U2NDoi4Z6B4Z+S4Z6f4Z+C4Z6i4Z6A4Z+S4Z6f4Z6a4Z6i4Z+K4Z634Z6A4Z684Z6KIGJhc2U2NCIsYmFzZTY0dXJsOiLhnoHhn5Lhnp/hn4LhnqLhnoDhn5Lhnp/hnprhnqLhn4rhnrfhnoDhnrzhnoogYmFzZTY0dXJsIixqc29uX3N0cmluZzoi4Z6B4Z+S4Z6f4Z+C4Z6i4Z6A4Z+S4Z6f4Z6aIEpTT04iLGUxNjQ6IuGem+GfgeGegSBFLjE2NCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6IuGekeGet+Gek+GfkuGek+Gek+GfkOGemeGelOGeieGfkuGeheGevOGemyJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYOGekeGet+Gek+GfkuGek+Gek+GfkOGemeGelOGeieGfkuGeheGevOGem+GemOGet+Gek+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGfliDhno/hn5LhnprhnrzhnpzhnoDhnrbhnpogJHtyLmV4cGVjdGVkfSDhnpThn4nhnrvhnpPhn5Lhno/hn4LhnpHhnpHhnr3hnpvhnpThnrbhnpMgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8i4Z6Y4Z634Z6T4Z6Y4Z+C4Z6T4Z6H4Z624Z6b4Z+B4Z6BIChOYU4pIjoi4Z6b4Z+B4Z6BIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4i4Z6i4Z624Z6a4Z+BIChBcnJheSkiO2lmKG51bGw9PT1lKXJldHVybiLhnoLhn5LhnpjhnrbhnpPhno/hnpjhn5Lhnpvhn4MgKG51bGwpIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5g4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4Z6U4Z6J4Z+S4Z6F4Z684Z6b4Z6Y4Z634Z6T4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+WIOGej+GfkuGemuGevOGenOGegOGetuGemiAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmDhnofhnpjhn5Lhnprhnr7hnp/hnpjhnrfhnpPhno/hn5Lhnprhnrnhnpjhno/hn5Lhnprhnrzhnpzhn5Yg4Z6P4Z+S4Z6a4Z684Z6c4Z6H4Z624Z6Y4Z694Z6Z4Z6A4Z+S4Z6T4Z674Z6E4Z6F4Z+G4Z6O4Z+E4Z6YICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g4Z6S4Z+G4Z6W4Z+B4Z6A4Z+WIOGej+GfkuGemuGevOGenOGegOGetuGemiAke3Iub3JpZ2luPz8i4Z6P4Z6Y4Z+S4Z6b4Z+DIn0gJHt0fSAke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/IuGekuGetuGej+GeuyJ9YDtyZXR1cm5g4Z6S4Z+G4Z6W4Z+B4Z6A4Z+WIOGej+GfkuGemuGevOGenOGegOGetuGemiAke3Iub3JpZ2luPz8i4Z6P4Z6Y4Z+S4Z6b4Z+DIn0gJHt0fSAke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYOGej+GevOGeheGeluGfgeGegOGfliDhno/hn5LhnprhnrzhnpzhnoDhnrbhnpogJHtyLm9yaWdpbn0gJHt0fSAke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmDhno/hnrzhnoXhnpbhn4HhnoDhn5Yg4Z6P4Z+S4Z6a4Z684Z6c4Z6A4Z624Z6aICR7ci5vcmlnaW59ICR7dH0gJHtyLm1pbmltdW0udG9TdHJpbmcoKX1gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g4Z6B4Z+S4Z6f4Z+C4Z6i4Z6A4Z+S4Z6f4Z6a4Z6Y4Z634Z6T4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+WIOGej+GfkuGemuGevOGenOGeheGetuGelOGfi+GeleGfkuGej+GevuGemOGeiuGfhOGemSAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmDhnoHhn5Lhnp/hn4LhnqLhnoDhn5Lhnp/hnprhnpjhnrfhnpPhno/hn5Lhnprhnrnhnpjhno/hn5Lhnprhnrzhnpzhn5Yg4Z6P4Z+S4Z6a4Z684Z6c4Z6U4Z6J4Z+S4Z6F4Z6U4Z+L4Z6K4Z+E4Z6ZICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5g4Z6B4Z+S4Z6f4Z+C4Z6i4Z6A4Z+S4Z6f4Z6a4Z6Y4Z634Z6T4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+WIOGej+GfkuGemuGevOGenOGemOGetuGekyAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5g4Z6B4Z+S4Z6f4Z+C4Z6i4Z6A4Z+S4Z6f4Z6a4Z6Y4Z634Z6T4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z+WIOGej+GfkuGemuGevOGenOGej+GfguGeleGfkuGeguGevOGeleGfkuGeguGehOGek+GeueGehOGekeGemOGfkuGemuGehOGfi+GeiuGfguGem+GelOGetuGek+GegOGfhuGejuGej+GfiyAke3IucGF0dGVybn1gO3JldHVybmDhnpjhnrfhnpPhno/hn5Lhnprhnrnhnpjhno/hn5Lhnprhnrzhnpzhn5YgJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYOGem+GfgeGegeGemOGet+Gek+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGfliDhno/hn5Lhnprhnrzhnpzhno/hn4LhnofhnrbhnpbhnqDhnrvhnoLhnrvhno7hnpPhn4MgJHtyLmRpdmlzb3J9YDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5g4Z6a4Z6A4Z6D4Z6+4Z6J4Z6f4Z+E4Z6Y4Z634Z6T4Z6f4Z+S4Z6C4Z624Z6b4Z+L4Z+WICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYOGen+GfhOGemOGet+Gek+Gej+GfkuGemuGeueGemOGej+GfkuGemuGevOGenOGek+GfheGegOGfkuGek+Geu+GehCAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybmDhnpHhnrfhnpPhn5LhnpPhnpPhn5DhnpnhnpjhnrfhnpPhno/hn5Lhnprhnrnhnpjhno/hn5LhnprhnrzhnpxgO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5g4Z6R4Z634Z6T4Z+S4Z6T4Z6T4Z+Q4Z6Z4Z6Y4Z634Z6T4Z6P4Z+S4Z6a4Z654Z6Y4Z6P4Z+S4Z6a4Z684Z6c4Z6T4Z+F4Z6A4Z+S4Z6T4Z674Z6EICR7ci5vcmlnaW59YH19KX19LCJrbyIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6IuusuOyekCIsdmVyYjoidG8gaGF2ZSJ9LGZpbGU6e3VuaXQ6IuuwlOydtO2KuCIsdmVyYjoidG8gaGF2ZSJ9LGFycmF5Ont1bml0OiLqsJwiLHZlcmI6InRvIGhhdmUifSxzZXQ6e3VuaXQ6IuqwnCIsdmVyYjoidG8gaGF2ZSJ9fSx0PXtyZWdleDoi7J6F66ClIixlbWFpbDoi7J2066mU7J28IOyjvOyGjCIsdXJsOiJVUkwiLGVtb2ppOiLsnbTrqqjsp4AiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6IklTTyDrgqDsp5zsi5zqsIQiLGRhdGU6IklTTyDrgqDsp5wiLHRpbWU6IklTTyDsi5zqsIQiLGR1cmF0aW9uOiJJU08g6riw6rCEIixpcHY0OiJJUHY0IOyjvOyGjCIsaXB2NjoiSVB2NiDso7zshowiLGNpZHJ2NDoiSVB2NCDrspTsnIQiLGNpZHJ2NjoiSVB2NiDrspTsnIQiLGJhc2U2NDoiYmFzZTY0IOyduOy9lOuUqSDrrLjsnpDsl7QiLGJhc2U2NHVybDoiYmFzZTY0dXJsIOyduOy9lOuUqSDrrLjsnpDsl7QiLGpzb25fc3RyaW5nOiJKU09OIOusuOyekOyXtCIsZTE2NDoiRS4xNjQg67KI7Zi4Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoi7J6F66ClIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5g7J6Y66q765CcIOyeheugpTog7JiI7IOBIO2DgOyeheydgCAke3IuZXhwZWN0ZWR9LCDrsJvsnYAg7YOA7J6F7J2AICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Im51bWJlciI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuImFycmF5IjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl97J6F64uI64ukYDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYOyemOuqu+uQnCDsnoXroKU6IOqwkuydgCAke3RvKHIudmFsdWVzWzBdKX0g7J207Ja07JW8IO2VqeuLiOuLpGA7cmV0dXJuYOyemOuqu+uQnCDsmLXshZg6ICR7ZXEoci52YWx1ZXMsIuuYkOuKlCAiKX0g7KSRIO2VmOuCmOyXrOyVvCDtlanri4jri6RgO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyLsnbTtlZgiOiLrr7jrp4wiLG49IuuvuOunjCI9PT10PyLsnbTslrTslbwg7ZWp64uI64ukIjoi7Jes7JW8IO2VqeuLiOuLpCIsaT1lW3Iub3JpZ2luXT8/bnVsbCxhPWk/LnVuaXQ/PyLsmpTshowiO2lmKGkpcmV0dXJuYCR7ci5vcmlnaW4/PyLqsJIifeydtCDrhIjrrLQg7YG964uI64ukOiAke3IubWF4aW11bS50b1N0cmluZygpfSR7YX0gJHt0fSR7bn1gO3JldHVybmAke3Iub3JpZ2luPz8i6rCSIn3snbQg64SI66y0IO2BveuLiOuLpDogJHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHt0fSR7bn1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/IuydtOyDgSI6Iuy0iOqzvCIsbj0i7J207IOBIj09PXQ/IuydtOyWtOyVvCDtlanri4jri6QiOiLsl6zslbwg7ZWp64uI64ukIixpPWVbci5vcmlnaW5dPz9udWxsLGE9aT8udW5pdD8/IuyalOyGjCI7aWYoaSlyZXR1cm5gJHtyLm9yaWdpbj8/IuqwkiJ97J20IOuEiOustCDsnpHsirXri4jri6Q6ICR7ci5taW5pbXVtLnRvU3RyaW5nKCl9JHthfSAke3R9JHtufWA7cmV0dXJuYCR7ci5vcmlnaW4/PyLqsJIifeydtCDrhIjrrLQg7J6R7Iq164uI64ukOiAke3IubWluaW11bS50b1N0cmluZygpfSAke3R9JHtufWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDsnpjrqrvrkJwg66y47J6Q7Je0OiAiJHtyLnByZWZpeH0iKOycvCnroZwg7Iuc7J6R7ZW07JW8IO2VqeuLiOuLpGA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g7J6Y66q765CcIOusuOyekOyXtDogIiR7ci5zdWZmaXh9IijsnLwp66GcIOuBneuCmOyVvCDtlanri4jri6RgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5g7J6Y66q765CcIOusuOyekOyXtDogIiR7ci5pbmNsdWRlc30i7J2EKOulvCkg7Y+s7ZWo7ZW07JW8IO2VqeuLiOuLpGA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmDsnpjrqrvrkJwg66y47J6Q7Je0OiDsoJXqt5zsi50gJHtyLnBhdHRlcm59IO2MqO2EtOqzvCDsnbzsuZjtlbTslbwg7ZWp64uI64ukYDtyZXR1cm5g7J6Y66q765CcICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmDsnpjrqrvrkJwg7Iir7J6QOiAke3IuZGl2aXNvcn3snZgg67Cw7IiY7Jes7JW8IO2VqeuLiOuLpGA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYOyduOyLne2VoCDsiJgg7JeG64qUIO2CpDogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5g7J6Y66q765CcIO2CpDogJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6ZGVmYXVsdDpyZXR1cm5g7J6Y66q765CcIOyeheugpWA7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmDsnpjrqrvrkJwg6rCSOiAke3Iub3JpZ2lufWB9fSl9fSwibWsiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLQt9C90LDRhtC4Iix2ZXJiOiLQtNCwINC40LzQsNCw0YIifSxmaWxlOnt1bml0OiLQsdCw0ZjRgtC4Iix2ZXJiOiLQtNCwINC40LzQsNCw0YIifSxhcnJheTp7dW5pdDoi0YHRgtCw0LLQutC4Iix2ZXJiOiLQtNCwINC40LzQsNCw0YIifSxzZXQ6e3VuaXQ6ItGB0YLQsNCy0LrQuCIsdmVyYjoi0LTQsCDQuNC80LDQsNGCIn19LHQ9e3JlZ2V4OiLQstC90LXRgSIsZW1haWw6ItCw0LTRgNC10YHQsCDQvdCwINC1LdC/0L7RiNGC0LAiLHVybDoiVVJMIixlbW9qaToi0LXQvNC+0Z/QuCIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPINC00LDRgtGD0Lwg0Lgg0LLRgNC10LzQtSIsZGF0ZToiSVNPINC00LDRgtGD0LwiLHRpbWU6IklTTyDQstGA0LXQvNC1IixkdXJhdGlvbjoiSVNPINCy0YDQtdC80LXRgtGA0LDQtdGa0LUiLGlwdjQ6IklQdjQg0LDQtNGA0LXRgdCwIixpcHY2OiJJUHY2INCw0LTRgNC10YHQsCIsY2lkcnY0OiJJUHY0INC+0L/RgdC10LMiLGNpZHJ2NjoiSVB2NiDQvtC/0YHQtdCzIixiYXNlNjQ6ImJhc2U2NC3QtdC90LrQvtC00LjRgNCw0L3QsCDQvdC40LfQsCIsYmFzZTY0dXJsOiJiYXNlNjR1cmwt0LXQvdC60L7QtNC40YDQsNC90LAg0L3QuNC30LAiLGpzb25fc3RyaW5nOiJKU09OINC90LjQt9CwIixlMTY0OiJFLjE2NCDQsdGA0L7RmCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ItCy0L3QtdGBIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5g0JPRgNC10YjQtdC9INCy0L3QtdGBOiDRgdC1INC+0YfQtdC60YPQstCwICR7ci5leHBlY3RlZH0sINC/0YDQuNC80LXQvdC+ICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6ItCx0YDQvtGYIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4i0L3QuNC30LAiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5gSW52YWxpZCBpbnB1dDogZXhwZWN0ZWQgJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5g0JPRgNC10YjQsNC90LAg0L7Qv9GG0LjRmNCwOiDRgdC1INC+0YfQtdC60YPQstCwINC10LTQvdCwICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g0J/RgNC10LzQvdC+0LPRgyDQs9C+0LvQtdC8OiDRgdC1INC+0YfQtdC60YPQstCwICR7ci5vcmlnaW4/PyLQstGA0LXQtNC90L7RgdGC0LAifSDQtNCwINC40LzQsCAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyLQtdC70LXQvNC10L3RgtC4In1gO3JldHVybmDQn9GA0LXQvNC90L7Qs9GDINCz0L7Qu9C10Lw6INGB0LUg0L7Rh9C10LrRg9Cy0LAgJHtyLm9yaWdpbj8/ItCy0YDQtdC00L3QvtGB0YLQsCJ9INC00LAg0LHQuNC00LUgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g0J/RgNC10LzQvdC+0LPRgyDQvNCw0Ls6INGB0LUg0L7Rh9C10LrRg9Cy0LAgJHtyLm9yaWdpbn0g0LTQsCDQuNC80LAgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYNCf0YDQtdC80L3QvtCz0YMg0LzQsNC7OiDRgdC1INC+0YfQtdC60YPQstCwICR7ci5vcmlnaW59INC00LAg0LHQuNC00LUgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYNCd0LXQstCw0LbQtdGH0LrQsCDQvdC40LfQsDog0LzQvtGA0LAg0LTQsCDQt9Cw0L/QvtGH0L3Rg9Cy0LAg0YHQviAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmDQndC10LLQsNC20LXRh9C60LAg0L3QuNC30LA6INC80L7RgNCwINC00LAg0LfQsNCy0YDRiNGD0LLQsCDRgdC+ICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5g0J3QtdCy0LDQttC10YfQutCwINC90LjQt9CwOiDQvNC+0YDQsCDQtNCwINCy0LrQu9GD0YfRg9Cy0LAgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYNCd0LXQstCw0LbQtdGH0LrQsCDQvdC40LfQsDog0LzQvtGA0LAg0LTQsCDQvtC00LPQvtCw0YDQsCDQvdCwINC/0LDRgtC10YDQvdC+0YIgJHtyLnBhdHRlcm59YDtyZXR1cm5gSW52YWxpZCAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g0JPRgNC10YjQtdC9INCx0YDQvtGYOiDQvNC+0YDQsCDQtNCwINCx0LjQtNC1INC00LXQu9C40LIg0YHQviAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmAke3Iua2V5cy5sZW5ndGg+MT8i0J3QtdC/0YDQtdC/0L7Qt9C90LDQtdC90Lgg0LrQu9GD0YfQtdCy0LgiOiLQndC10L/RgNC10L/QvtC30L3QsNC10L0g0LrQu9GD0YcifTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5g0JPRgNC10YjQtdC9INC60LvRg9GHINCy0L4gJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuItCT0YDQtdGI0LXQvSDQstC90LXRgSI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmDQk9GA0LXRiNC90LAg0LLRgNC10LTQvdC+0YHRgiDQstC+ICR7ci5vcmlnaW59YDtkZWZhdWx0OnJldHVybmDQk9GA0LXRiNC10L0g0LLQvdC10YFgfX0pfX0sIm1zIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoiYWtzYXJhIix2ZXJiOiJtZW1wdW55YWkifSxmaWxlOnt1bml0OiJiYWl0Iix2ZXJiOiJtZW1wdW55YWkifSxhcnJheTp7dW5pdDoiZWxlbWVuIix2ZXJiOiJtZW1wdW55YWkifSxzZXQ6e3VuaXQ6ImVsZW1lbiIsdmVyYjoibWVtcHVueWFpIn19LHQ9e3JlZ2V4OiJpbnB1dCIsZW1haWw6ImFsYW1hdCBlLW1lbCIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToidGFyaWtoIG1hc2EgSVNPIixkYXRlOiJ0YXJpa2ggSVNPIix0aW1lOiJtYXNhIElTTyIsZHVyYXRpb246InRlbXBvaCBJU08iLGlwdjQ6ImFsYW1hdCBJUHY0IixpcHY2OiJhbGFtYXQgSVB2NiIsY2lkcnY0OiJqdWxhdCBJUHY0IixjaWRydjY6Imp1bGF0IElQdjYiLGJhc2U2NDoic3RyaW5nIGRpa29ka2FuIGJhc2U2NCIsYmFzZTY0dXJsOiJzdHJpbmcgZGlrb2RrYW4gYmFzZTY0dXJsIixqc29uX3N0cmluZzoic3RyaW5nIEpTT04iLGUxNjQ6Im5vbWJvciBFLjE2NCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImlucHV0In0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gSW5wdXQgdGlkYWsgc2FoOiBkaWphbmdrYSAke3IuZXhwZWN0ZWR9LCBkaXRlcmltYSAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJub21ib3IiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBJbnB1dCB0aWRhayBzYWg6IGRpamFuZ2thICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYFBpbGloYW4gdGlkYWsgc2FoOiBkaWphbmdrYSBzYWxhaCBzYXR1IGRhcmlwYWRhICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gVGVybGFsdSBiZXNhcjogZGlqYW5na2EgJHtyLm9yaWdpbj8/Im5pbGFpIn0gJHtuLnZlcmJ9ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/ImVsZW1lbiJ9YDtyZXR1cm5gVGVybGFsdSBiZXNhcjogZGlqYW5na2EgJHtyLm9yaWdpbj8/Im5pbGFpIn0gYWRhbGFoICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRlcmxhbHUga2VjaWw6IGRpamFuZ2thICR7ci5vcmlnaW59ICR7bi52ZXJifSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gVGVybGFsdSBrZWNpbDogZGlqYW5na2EgJHtyLm9yaWdpbn0gYWRhbGFoICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBTdHJpbmcgdGlkYWsgc2FoOiBtZXN0aSBiZXJtdWxhIGRlbmdhbiAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBTdHJpbmcgdGlkYWsgc2FoOiBtZXN0aSBiZXJha2hpciBkZW5nYW4gIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBTdHJpbmcgdGlkYWsgc2FoOiBtZXN0aSBtZW5nYW5kdW5naSAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gU3RyaW5nIHRpZGFrIHNhaDogbWVzdGkgc2VwYWRhbiBkZW5nYW4gY29yYWsgJHtyLnBhdHRlcm59YDtyZXR1cm5gJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9IHRpZGFrIHNhaGA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBOb21ib3IgdGlkYWsgc2FoOiBwZXJsdSBnYW5kYWFuICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYEt1bmNpIHRpZGFrIGRpa2VuYWxpOiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBLdW5jaSB0aWRhayBzYWggZGFsYW0gJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6ZGVmYXVsdDpyZXR1cm4iSW5wdXQgdGlkYWsgc2FoIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYE5pbGFpIHRpZGFrIHNhaCBkYWxhbSAke3Iub3JpZ2lufWB9fSl9fSwibmwiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiJ0ZWtlbnMifSxmaWxlOnt1bml0OiJieXRlcyJ9LGFycmF5Ont1bml0OiJlbGVtZW50ZW4ifSxzZXQ6e3VuaXQ6ImVsZW1lbnRlbiJ9fSx0PXtyZWdleDoiaW52b2VyIixlbWFpbDoiZW1haWxhZHJlcyIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPIGRhdHVtIGVuIHRpamQiLGRhdGU6IklTTyBkYXR1bSIsdGltZToiSVNPIHRpamQiLGR1cmF0aW9uOiJJU08gZHV1ciIsaXB2NDoiSVB2NC1hZHJlcyIsaXB2NjoiSVB2Ni1hZHJlcyIsY2lkcnY0OiJJUHY0LWJlcmVpayIsY2lkcnY2OiJJUHY2LWJlcmVpayIsYmFzZTY0OiJiYXNlNjQtZ2Vjb2RlZXJkZSB0ZWtzdCIsYmFzZTY0dXJsOiJiYXNlNjQgVVJMLWdlY29kZWVyZGUgdGVrc3QiLGpzb25fc3RyaW5nOiJKU09OIHN0cmluZyIsZTE2NDoiRS4xNjQtbnVtbWVyIixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoiaW52b2VyIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gT25nZWxkaWdlIGludm9lcjogdmVyd2FjaHQgJHtyLmV4cGVjdGVkfSwgb250dmluZyAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJnZXRhbCI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuImFycmF5IjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYE9uZ2VsZGlnZSBpbnZvZXI6IHZlcndhY2h0ICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYE9uZ2VsZGlnZSBvcHRpZTogdmVyd2FjaHQgXHhlOVx4ZTluIHZhbiAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRlIGxhbmc6IHZlcndhY2h0IGRhdCAke3Iub3JpZ2luPz8id2FhcmRlIn0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudGVuIn0gYmV2YXRgO3JldHVybmBUZSBsYW5nOiB2ZXJ3YWNodCBkYXQgJHtyLm9yaWdpbj8/IndhYXJkZSJ9ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSBpc2B9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFRlIGtvcnQ6IHZlcndhY2h0IGRhdCAke3Iub3JpZ2lufSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9IGJldmF0YDtyZXR1cm5gVGUga29ydDogdmVyd2FjaHQgZGF0ICR7ci5vcmlnaW59ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSBpc2B9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBPbmdlbGRpZ2UgdGVrc3Q6IG1vZXQgbWV0ICIke3IucHJlZml4fSIgYmVnaW5uZW5gO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYE9uZ2VsZGlnZSB0ZWtzdDogbW9ldCBvcCAiJHtyLnN1ZmZpeH0iIGVpbmRpZ2VuYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYE9uZ2VsZGlnZSB0ZWtzdDogbW9ldCAiJHtyLmluY2x1ZGVzfSIgYmV2YXR0ZW5gO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gT25nZWxkaWdlIHRla3N0OiBtb2V0IG92ZXJlZW5rb21lbiBtZXQgcGF0cm9vbiAke3IucGF0dGVybn1gO3JldHVybmBPbmdlbGRpZzogJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYE9uZ2VsZGlnIGdldGFsOiBtb2V0IGVlbiB2ZWVsdm91ZCB2YW4gJHtyLmRpdmlzb3J9IHppam5gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBPbmJla2VuZGUga2V5JHtyLmtleXMubGVuZ3RoPjE/InMiOiIifTogJHtlcShyLmtleXMsIiwgIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5gT25nZWxkaWdlIGtleSBpbiAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybiJPbmdlbGRpZ2UgaW52b2VyIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYE9uZ2VsZGlnZSB3YWFyZGUgaW4gJHtyLm9yaWdpbn1gfX0pfX0sIm5vIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoidGVnbiIsdmVyYjoiw6UgaGEifSxmaWxlOnt1bml0OiJieXRlcyIsdmVyYjoiw6UgaGEifSxhcnJheTp7dW5pdDoiZWxlbWVudGVyIix2ZXJiOiLDpSBpbm5laG9sZGUifSxzZXQ6e3VuaXQ6ImVsZW1lbnRlciIsdmVyYjoiw6UgaW5uZWhvbGRlIn19LHQ9e3JlZ2V4OiJpbnB1dCIsZW1haWw6ImUtcG9zdGFkcmVzc2UiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6IklTTyBkYXRvLSBvZyBrbG9ra2VzbGV0dCIsZGF0ZToiSVNPLWRhdG8iLHRpbWU6IklTTy1rbG9ra2VzbGV0dCIsZHVyYXRpb246IklTTy12YXJpZ2hldCIsaXB2NDoiSVB2NC1vbXLDpWRlIixpcHY2OiJJUHY2LW9tcsOlZGUiLGNpZHJ2NDoiSVB2NC1zcGVrdGVyIixjaWRydjY6IklQdjYtc3Bla3RlciIsYmFzZTY0OiJiYXNlNjQtZW5rb2RldCBzdHJlbmciLGJhc2U2NHVybDoiYmFzZTY0dXJsLWVua29kZXQgc3RyZW5nIixqc29uX3N0cmluZzoiSlNPTi1zdHJlbmciLGUxNjQ6IkUuMTY0LW51bW1lciIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImlucHV0In0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gVWd5bGRpZyBpbnB1dDogZm9ydmVudGV0ICR7ci5leHBlY3RlZH0sIGZpa2sgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoidGFsbCI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuImxpc3RlIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYFVneWxkaWcgdmVyZGk6IGZvcnZlbnRldCAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBVZ3lsZGlnIHZhbGc6IGZvcnZlbnRldCBlbiBhdiAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYEZvciBzdG9yKHQpOiBmb3J2ZW50ZXQgJHtyLm9yaWdpbj8/InZhbHVlIn0gdGlsIFx4ZTUgaGEgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudGVyIn1gO3JldHVybmBGb3Igc3Rvcih0KTogZm9ydmVudGV0ICR7ci5vcmlnaW4/PyJ2YWx1ZSJ9IHRpbCBceGU1IGhhICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYEZvciBsaXRlKG4pOiBmb3J2ZW50ZXQgJHtyLm9yaWdpbn0gdGlsIFx4ZTUgaGEgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYEZvciBsaXRlKG4pOiBmb3J2ZW50ZXQgJHtyLm9yaWdpbn0gdGlsIFx4ZTUgaGEgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYFVneWxkaWcgc3RyZW5nOiBtXHhlNSBzdGFydGUgbWVkICIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYFVneWxkaWcgc3RyZW5nOiBtXHhlNSBlbmRlIG1lZCAiJHtyLnN1ZmZpeH0iYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYFVneWxkaWcgc3RyZW5nOiBtXHhlNSBpbm5laG9sZGUgIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYFVneWxkaWcgc3RyZW5nOiBtXHhlNSBtYXRjaGUgbVx4Zjhuc3RlcmV0ICR7ci5wYXR0ZXJufWA7cmV0dXJuYFVneWxkaWcgJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYFVneWxkaWcgdGFsbDogbVx4ZTUgdlx4ZTZyZSBldCBtdWx0aXBsdW0gYXYgJHtyLmRpdmlzb3J9YDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gJHtyLmtleXMubGVuZ3RoPjE/IlVramVudGUgbsO4a2xlciI6IlVramVudCBuw7hra2VsIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYFVneWxkaWcgblx4Zjhra2VsIGkgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6ZGVmYXVsdDpyZXR1cm4iVWd5bGRpZyBpbnB1dCI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmBVZ3lsZGlnIHZlcmRpIGkgJHtyLm9yaWdpbn1gfX0pfX0sIm90YSIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6ImhhcmYiLHZlcmI6Im9sbWFsxLFkxLFyIn0sZmlsZTp7dW5pdDoiYmF5dCIsdmVyYjoib2xtYWzEsWTEsXIifSxhcnJheTp7dW5pdDoidW5zdXIiLHZlcmI6Im9sbWFsxLFkxLFyIn0sc2V0Ont1bml0OiJ1bnN1ciIsdmVyYjoib2xtYWzEsWTEsXIifX0sdD17cmVnZXg6ImdpcmVuIixlbWFpbDoiZXBvc3RhZ8OiaCIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPIGhlbmfDom3EsSIsZGF0ZToiSVNPIHRhcmloaSIsdGltZToiSVNPIHphbWFuxLEiLGR1cmF0aW9uOiJJU08gbcO8ZGRldGkiLGlwdjQ6IklQdjQgbmnFn8OibsSxIixpcHY2OiJJUHY2IG5pxZ/Dom7EsSIsY2lkcnY0OiJJUHY0IG1lbnppbGkiLGNpZHJ2NjoiSVB2NiBtZW56aWxpIixiYXNlNjQ6ImJhc2U2NC3Fn2lmcmVsaSBtZXRpbiIsYmFzZTY0dXJsOiJiYXNlNjR1cmwtxZ9pZnJlbGkgbWV0aW4iLGpzb25fc3RyaW5nOiJKU09OIG1ldGluIixlMTY0OiJFLjE2NCBzYXnEsXPEsSIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImdpcmVuIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gRlx4ZTJzaXQgZ2lyZW46IHVtdWxhbiAke3IuZXhwZWN0ZWR9LCBhbMSxbmFuICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Im51bWFyYSI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuInNhZiI7aWYobnVsbD09PWUpcmV0dXJuImdheWIiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBGXHhlMnNpdCBnaXJlbjogdW11bGFuICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYEZceGUyc2l0IHRlcmNpaDogbVx4ZmJ0ZWJlcmxlciAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYEZhemxhIGJceGZjeVx4ZmNrOiAke3Iub3JpZ2luPz8idmFsdWUifSwgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudHMifSBzYWhpcCBvbG1hbMSxeWTEsS5gO3JldHVybmBGYXpsYSBiXHhmY3lceGZjazogJHtyLm9yaWdpbj8/InZhbHVlIn0sICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSBvbG1hbMSxeWTEsS5gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBGYXpsYSBrXHhmY1x4ZTdceGZjazogJHtyLm9yaWdpbn0sICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH0gc2FoaXAgb2xtYWzEsXlkxLEuYDtyZXR1cm5gRmF6bGEga1x4ZmNceGU3XHhmY2s6ICR7ci5vcmlnaW59LCAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gb2xtYWzEsXlkxLEuYH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYEZceGUyc2l0IG1ldGluOiAiJHtyLnByZWZpeH0iIGlsZSBiYcWfbGFtYWzEsS5gO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYEZceGUyc2l0IG1ldGluOiAiJHtyLnN1ZmZpeH0iIGlsZSBiaXRtZWxpLmA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBGXHhlMnNpdCBtZXRpbjogIiR7ci5pbmNsdWRlc30iIGlodGl2XHhlMiBldG1lbGkuYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYEZceGUyc2l0IG1ldGluOiAke3IucGF0dGVybn0gbmFrxZ/EsW5hIHV5bWFsxLEuYDtyZXR1cm5gRlx4ZTJzaXQgJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYEZceGUyc2l0IHNhecSxOiAke3IuZGl2aXNvcn0ga2F0xLEgb2xtYWzEsXlkxLEuYDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gVGFuxLFubWF5YW4gYW5haHRhciAke3Iua2V5cy5sZW5ndGg+MT8icyI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmAke3Iub3JpZ2lufSBpXHhlN2luIHRhbsSxbm1heWFuIGFuYWh0YXIgdmFyLmA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4iR2lyZW4gdGFuxLFuYW1hZMSxLiI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmAke3Iub3JpZ2lufSBpXHhlN2luIHRhbsSxbm1heWFuIGvEsXltZXQgdmFyLmA7ZGVmYXVsdDpyZXR1cm5gS8SxeW1ldCB0YW7EsW5hbWFkxLEuYH19KX19LCJwbCIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6InpuYWvDs3ciLHZlcmI6Im1pZcSHIn0sZmlsZTp7dW5pdDoiYmFqdMOzdyIsdmVyYjoibWllxIcifSxhcnJheTp7dW5pdDoiZWxlbWVudMOzdyIsdmVyYjoibWllxIcifSxzZXQ6e3VuaXQ6ImVsZW1lbnTDs3ciLHZlcmI6Im1pZcSHIn19LHQ9e3JlZ2V4OiJ3eXJhxbxlbmllIixlbWFpbDoiYWRyZXMgZW1haWwiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6ImRhdGEgaSBnb2R6aW5hIHcgZm9ybWFjaWUgSVNPIixkYXRlOiJkYXRhIHcgZm9ybWFjaWUgSVNPIix0aW1lOiJnb2R6aW5hIHcgZm9ybWFjaWUgSVNPIixkdXJhdGlvbjoiY3phcyB0cndhbmlhIElTTyIsaXB2NDoiYWRyZXMgSVB2NCIsaXB2NjoiYWRyZXMgSVB2NiIsY2lkcnY0OiJ6YWtyZXMgSVB2NCIsY2lkcnY2OiJ6YWtyZXMgSVB2NiIsYmFzZTY0OiJjacSFZyB6bmFrw7N3IHpha29kb3dhbnkgdyBmb3JtYWNpZSBiYXNlNjQiLGJhc2U2NHVybDoiY2nEhWcgem5ha8OzdyB6YWtvZG93YW55IHcgZm9ybWFjaWUgYmFzZTY0dXJsIixqc29uX3N0cmluZzoiY2nEhWcgem5ha8OzdyB3IGZvcm1hY2llIEpTT04iLGUxNjQ6ImxpY3piYSBFLjE2NCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6IndlasWbY2llIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gTmllcHJhd2lkxYJvd2UgZGFuZSB3ZWrFm2Npb3dlOiBvY3pla2l3YW5vICR7ci5leHBlY3RlZH0sIG90cnp5bWFubyAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJsaWN6YmEiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJ0YWJsaWNhIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYE5pZXByYXdpZMWCb3dlIGRhbmUgd2VqxZtjaW93ZTogb2N6ZWtpd2FubyAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBOaWVwcmF3aWTFgm93YSBvcGNqYTogb2N6ZWtpd2FubyBqZWRuZWogeiB3YXJ0b8WbY2kgJHtlcShyLnZhbHVlcywifCIpfWA7Y2FzZSJ0b29fYmlnIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ijw9IjoiPCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBaYSBkdcW8YSB3YXJ0b8WbxIc6IG9jemVraXdhbm8sIMW8ZSAke3Iub3JpZ2luPz8id2FydG/Fm8SHIn0gYsSZZHppZSBtaWXEhyAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyJlbGVtZW50w7N3In1gO3JldHVybmBaYnl0IGR1xbwoeS9hL2UpOiBvY3pla2l3YW5vLCDFvGUgJHtyLm9yaWdpbj8/IndhcnRvxZvEhyJ9IGLEmWR6aWUgd3lub3NpxIcgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gWmEgbWHFgmEgd2FydG/Fm8SHOiBvY3pla2l3YW5vLCDFvGUgJHtyLm9yaWdpbj8/IndhcnRvxZvEhyJ9IGLEmWR6aWUgbWllxIcgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudMOzdyJ9YDtyZXR1cm5gWmJ5dCBtYcWCKHkvYS9lKTogb2N6ZWtpd2FubywgxbxlICR7ci5vcmlnaW4/PyJ3YXJ0b8WbxIcifSBixJlkemllIHd5bm9zacSHICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBOaWVwcmF3aWTFgm93eSBjacSFZyB6bmFrXHhmM3c6IG11c2kgemFjenluYcSHIHNpxJkgb2QgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gTmllcHJhd2lkxYJvd3kgY2nEhWcgem5ha1x4ZjN3OiBtdXNpIGtvxYRjennEhyBzacSZIG5hICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gTmllcHJhd2lkxYJvd3kgY2nEhWcgem5ha1x4ZjN3OiBtdXNpIHphd2llcmHEhyAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gTmllcHJhd2lkxYJvd3kgY2nEhWcgem5ha1x4ZjN3OiBtdXNpIG9kcG93aWFkYcSHIHd6b3Jjb3dpICR7ci5wYXR0ZXJufWA7cmV0dXJuYE5pZXByYXdpZMWCb3coeS9hL2UpICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBOaWVwcmF3aWTFgm93YSBsaWN6YmE6IG11c2kgYnnEhyB3aWVsb2tyb3Rub8WbY2nEhSAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBOaWVyb3pwb3puYW5lIGtsdWN6ZSR7ci5rZXlzLmxlbmd0aD4xPyJzIjoiIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYE5pZXByYXdpZMWCb3d5IGtsdWN6IHcgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuIk5pZXByYXdpZMWCb3dlIGRhbmUgd2VqxZtjaW93ZSI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmBOaWVwcmF3aWTFgm93YSB3YXJ0b8WbxIcgdyAke3Iub3JpZ2lufWA7ZGVmYXVsdDpyZXR1cm5gTmllcHJhd2lkxYJvd2UgZGFuZSB3ZWrFm2Npb3dlYH19KX19LCJwcyIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6Itiq2YjaqdmKIix2ZXJiOiLZiNmE2LHZiiJ9LGZpbGU6e3VuaXQ6Itio2KfbjNm82LMiLHZlcmI6ItmI2YTYsdmKIn0sYXJyYXk6e3VuaXQ6Itiq2YjaqdmKIix2ZXJiOiLZiNmE2LHZiiJ9LHNldDp7dW5pdDoi2KrZiNqp2YoiLHZlcmI6ItmI2YTYsdmKIn19LHQ9e3JlZ2V4OiLZiNix2YjYr9mKIixlbWFpbDoi2KjYsduM2prZhtin2YTbjNqpIix1cmw6ItuM2Ygg2KLYsSDYp9mEIixlbW9qaToi2KfbjNmF2YjYrNmKIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiLZhtuM2bzZhyDYp9mIINmI2K7YqiIsZGF0ZToi2YbbkNm82YciLHRpbWU6ItmI2K7YqiIsZHVyYXRpb246ItmF2YjYr9mHIixpcHY0OiLYryBJUHY0INm+2KrZhyIsaXB2Njoi2K8gSVB2NiDZvtiq2YciLGNpZHJ2NDoi2K8gSVB2NCDYs9in2K3ZhyIsY2lkcnY2OiLYryBJUHY2INiz2KfYrdmHIixiYXNlNjQ6ImJhc2U2NC1lbmNvZGVkINmF2KrZhiIsYmFzZTY0dXJsOiJiYXNlNjR1cmwtZW5jb2RlZCDZhdiq2YYiLGpzb25fc3RyaW5nOiJKU09OINmF2KrZhiIsZTE2NDoi2K8gRS4xNjQg2LTZhduQ2LHZhyIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ItmI2LHZiNiv2YoifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmDZhtin2LPZhSDZiNix2YjYr9mKOiDYqNin24zYryAke3IuZXhwZWN0ZWR9INmI2KfbjCwg2YXaq9ixICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Iti52K/YryI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuItin2LHbkCI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfSDYqtix2YTYp9iz2Ycg2LTZiGA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmDZhtin2LPZhSDZiNix2YjYr9mKOiDYqNin24zYryAke3RvKHIudmFsdWVzWzBdKX0g2YjYp9uMYDtyZXR1cm5g2YbYp9iz2YUg2KfZhtiq2K7Yp9ioOiDYqNin24zYryDbjNmIINmE2YcgJHtlcShyLnZhbHVlcywifCIpfSDahdiu2Ycg2YjYp9uMYDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYNqJ24zYsSDZhNmI24w6ICR7ci5vcmlnaW4/PyLYp9ix2LLamtiqIn0g2KjYp9uM2K8gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8i2LnZhti12LHZiNmG2YcifSDZiNmE2LHZimA7cmV0dXJuYNqJ24zYsSDZhNmI24w6ICR7ci5vcmlnaW4/PyLYp9ix2LLamtiqIn0g2KjYp9uM2K8gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9INmI2YpgfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDaiduM2LEg2qnZiNqG2YbbjDogJHtyLm9yaWdpbn0g2KjYp9uM2K8gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fSDZiNmE2LHZimA7cmV0dXJuYNqJ24zYsSDaqdmI2obZhtuMOiAke3Iub3JpZ2lufSDYqNin24zYryAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0g2YjZimB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDZhtin2LPZhSDZhdiq2YY6INio2KfbjNivINivICIke3IucHJlZml4fSIg2LPYsdmHINm+24zZhCDYtNmKYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmDZhtin2LPZhSDZhdiq2YY6INio2KfbjNivINivICIke3Iuc3VmZml4fSIg2LPYsdmHINm+2KfbjCDYqtmHINmI2LHYs9mK2pbZimA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDZhtin2LPZhSDZhdiq2YY6INio2KfbjNivICIke3IuaW5jbHVkZXN9IiDZiNmE2LHZimA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmDZhtin2LPZhSDZhdiq2YY6INio2KfbjNivINivICR7ci5wYXR0ZXJufSDYs9ix2Ycg2YXYt9in2KjZgtiqINmI2YTYsdmKYDtyZXR1cm5gJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9INmG2KfYs9mFINiv24xgO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g2YbYp9iz2YUg2LnYr9ivOiDYqNin24zYryDYryAke3IuZGl2aXNvcn0g2YXYttix2Kgg2YjZimA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYNmG2KfYs9mFICR7ci5rZXlzLmxlbmd0aD4xPyLaqdmE24zaidmI2YbZhyI6Itqp2YTbjNqJIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYNmG2KfYs9mFINqp2YTbjNqJINm+2YcgJHtyLm9yaWdpbn0g2qnbkGA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybmDZhtin2LPZhdmHINmI2LHZiNiv2YpgO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5g2YbYp9iz2YUg2LnZhti12LEg2b7ZhyAke3Iub3JpZ2lufSDaqduQYH19KX19LCJwdCIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6ImNhcmFjdGVyZXMiLHZlcmI6InRlciJ9LGZpbGU6e3VuaXQ6ImJ5dGVzIix2ZXJiOiJ0ZXIifSxhcnJheTp7dW5pdDoiaXRlbnMiLHZlcmI6InRlciJ9LHNldDp7dW5pdDoiaXRlbnMiLHZlcmI6InRlciJ9fSx0PXtyZWdleDoicGFkcsOjbyIsZW1haWw6ImVuZGVyZcOnbyBkZSBlLW1haWwiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6ImRhdGEgZSBob3JhIElTTyIsZGF0ZToiZGF0YSBJU08iLHRpbWU6ImhvcmEgSVNPIixkdXJhdGlvbjoiZHVyYcOnw6NvIElTTyIsaXB2NDoiZW5kZXJlw6dvIElQdjQiLGlwdjY6ImVuZGVyZcOnbyBJUHY2IixjaWRydjQ6ImZhaXhhIGRlIElQdjQiLGNpZHJ2NjoiZmFpeGEgZGUgSVB2NiIsYmFzZTY0OiJ0ZXh0byBjb2RpZmljYWRvIGVtIGJhc2U2NCIsYmFzZTY0dXJsOiJVUkwgY29kaWZpY2FkYSBlbSBiYXNlNjQiLGpzb25fc3RyaW5nOiJ0ZXh0byBKU09OIixlMTY0OiJuw7ptZXJvIEUuMTY0Iixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoiZW50cmFkYSJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYFRpcG8gaW52XHhlMWxpZG86IGVzcGVyYWRvICR7ci5leHBlY3RlZH0sIHJlY2ViaWRvICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Im7Dum1lcm8iO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bG8iO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBFbnRyYWRhIGludlx4ZTFsaWRhOiBlc3BlcmFkbyAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmBPcFx4ZTdceGUzbyBpbnZceGUxbGlkYTogZXNwZXJhZGEgdW1hIGRhcyAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYE11aXRvIGdyYW5kZTogZXNwZXJhZG8gcXVlICR7ci5vcmlnaW4/PyJ2YWxvciJ9IHRpdmVzc2UgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudG9zIn1gO3JldHVybmBNdWl0byBncmFuZGU6IGVzcGVyYWRvIHF1ZSAke3Iub3JpZ2luPz8idmFsb3IifSBmb3NzZSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBNdWl0byBwZXF1ZW5vOiBlc3BlcmFkbyBxdWUgJHtyLm9yaWdpbn0gdGl2ZXNzZSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gTXVpdG8gcGVxdWVubzogZXNwZXJhZG8gcXVlICR7ci5vcmlnaW59IGZvc3NlICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBUZXh0byBpbnZceGUxbGlkbzogZGV2ZSBjb21lXHhlN2FyIGNvbSAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBUZXh0byBpbnZceGUxbGlkbzogZGV2ZSB0ZXJtaW5hciBjb20gIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBUZXh0byBpbnZceGUxbGlkbzogZGV2ZSBpbmNsdWlyICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBUZXh0byBpbnZceGUxbGlkbzogZGV2ZSBjb3JyZXNwb25kZXIgYW8gcGFkclx4ZTNvICR7ci5wYXR0ZXJufWA7cmV0dXJuYCR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fSBpbnZceGUxbGlkb2A7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmBOXHhmYW1lcm8gaW52XHhlMWxpZG86IGRldmUgc2VyIG1ceGZhbHRpcGxvIGRlICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYENoYXZlJHtyLmtleXMubGVuZ3RoPjE/InMiOiIifSBkZXNjb25oZWNpZGEke3Iua2V5cy5sZW5ndGg+MT8icyI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBDaGF2ZSBpbnZceGUxbGlkYSBlbSAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4iRW50cmFkYSBpbnbDoWxpZGEiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gVmFsb3IgaW52XHhlMWxpZG8gZW0gJHtyLm9yaWdpbn1gO2RlZmF1bHQ6cmV0dXJuYENhbXBvIGludlx4ZTFsaWRvYH19KX19LCJydSIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6e29uZToi0YHQuNC80LLQvtC7IixmZXc6ItGB0LjQvNCy0L7Qu9CwIixtYW55OiLRgdC40LzQstC+0LvQvtCyIn0sdmVyYjoi0LjQvNC10YLRjCJ9LGZpbGU6e3VuaXQ6e29uZToi0LHQsNC50YIiLGZldzoi0LHQsNC50YLQsCIsbWFueToi0LHQsNC50YIifSx2ZXJiOiLQuNC80LXRgtGMIn0sYXJyYXk6e3VuaXQ6e29uZToi0Y3Qu9C10LzQtdC90YIiLGZldzoi0Y3Qu9C10LzQtdC90YLQsCIsbWFueToi0Y3Qu9C10LzQtdC90YLQvtCyIn0sdmVyYjoi0LjQvNC10YLRjCJ9LHNldDp7dW5pdDp7b25lOiLRjdC70LXQvNC10L3RgiIsZmV3OiLRjdC70LXQvNC10L3RgtCwIixtYW55OiLRjdC70LXQvNC10L3RgtC+0LIifSx2ZXJiOiLQuNC80LXRgtGMIn19LHQ9e3JlZ2V4OiLQstCy0L7QtCIsZW1haWw6ImVtYWlsINCw0LTRgNC10YEiLHVybDoiVVJMIixlbW9qaToi0Y3QvNC+0LTQt9C4Iix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJJU08g0LTQsNGC0LAg0Lgg0LLRgNC10LzRjyIsZGF0ZToiSVNPINC00LDRgtCwIix0aW1lOiJJU08g0LLRgNC10LzRjyIsZHVyYXRpb246IklTTyDQtNC70LjRgtC10LvRjNC90L7RgdGC0YwiLGlwdjQ6IklQdjQg0LDQtNGA0LXRgSIsaXB2NjoiSVB2NiDQsNC00YDQtdGBIixjaWRydjQ6IklQdjQg0LTQuNCw0L/QsNC30L7QvSIsY2lkcnY2OiJJUHY2INC00LjQsNC/0LDQt9C+0L0iLGJhc2U2NDoi0YHRgtGA0L7QutCwINCyINGE0L7RgNC80LDRgtC1IGJhc2U2NCIsYmFzZTY0dXJsOiLRgdGC0YDQvtC60LAg0LIg0YTQvtGA0LzQsNGC0LUgYmFzZTY0dXJsIixqc29uX3N0cmluZzoiSlNPTiDRgdGC0YDQvtC60LAiLGUxNjQ6ItC90L7QvNC10YAgRS4xNjQiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiLQstCy0L7QtCJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYNCd0LXQstC10YDQvdGL0Lkg0LLQstC+0LQ6INC+0LbQuNC00LDQu9C+0YHRjCAke3IuZXhwZWN0ZWR9LCDQv9C+0LvRg9GH0LXQvdC+ICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6ItGH0LjRgdC70L4iO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiLQvNCw0YHRgdC40LIiO2lmKG51bGw9PT1lKXJldHVybiJudWxsIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5g0J3QtdCy0LXRgNC90YvQuSDQstCy0L7QtDog0L7QttC40LTQsNC70L7RgdGMICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYNCd0LXQstC10YDQvdGL0Lkg0LLQsNGA0LjQsNC90YI6INC+0LbQuNC00LDQu9C+0YHRjCDQvtC00L3QviDQuNC3ICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobil7bGV0IGU9c1MoTnVtYmVyKHIubWF4aW11bSksbi51bml0Lm9uZSxuLnVuaXQuZmV3LG4udW5pdC5tYW55KTtyZXR1cm5g0KHQu9C40YjQutC+0Lwg0LHQvtC70YzRiNC+0LUg0LfQvdCw0YfQtdC90LjQtTog0L7QttC40LTQsNC70L7RgdGMLCDRh9GC0L4gJHtyLm9yaWdpbj8/ItC30L3QsNGH0LXQvdC40LUifSDQsdGD0LTQtdGCINC40LzQtdGC0YwgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7ZX1gfXJldHVybmDQodC70LjRiNC60L7QvCDQsdC+0LvRjNGI0L7QtSDQt9C90LDRh9C10L3QuNC1OiDQvtC20LjQtNCw0LvQvtGB0YwsINGH0YLQviAke3Iub3JpZ2luPz8i0LfQvdCw0YfQtdC90LjQtSJ9INCx0YPQtNC10YIgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobil7bGV0IGU9c1MoTnVtYmVyKHIubWluaW11bSksbi51bml0Lm9uZSxuLnVuaXQuZmV3LG4udW5pdC5tYW55KTtyZXR1cm5g0KHQu9C40YjQutC+0Lwg0LzQsNC70LXQvdGM0LrQvtC1INC30L3QsNGH0LXQvdC40LU6INC+0LbQuNC00LDQu9C+0YHRjCwg0YfRgtC+ICR7ci5vcmlnaW59INCx0YPQtNC10YIg0LjQvNC10YLRjCAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtlfWB9cmV0dXJuYNCh0LvQuNGI0LrQvtC8INC80LDQu9C10L3RjNC60L7QtSDQt9C90LDRh9C10L3QuNC1OiDQvtC20LjQtNCw0LvQvtGB0YwsINGH0YLQviAke3Iub3JpZ2lufSDQsdGD0LTQtdGCICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDQndC10LLQtdGA0L3QsNGPINGB0YLRgNC+0LrQsDog0LTQvtC70LbQvdCwINC90LDRh9C40L3QsNGC0YzRgdGPINGBICIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYNCd0LXQstC10YDQvdCw0Y8g0YHRgtGA0L7QutCwOiDQtNC+0LvQttC90LAg0LfQsNC60LDQvdGH0LjQstCw0YLRjNGB0Y8g0L3QsCAiJHtyLnN1ZmZpeH0iYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYNCd0LXQstC10YDQvdCw0Y8g0YHRgtGA0L7QutCwOiDQtNC+0LvQttC90LAg0YHQvtC00LXRgNC20LDRgtGMICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmDQndC10LLQtdGA0L3QsNGPINGB0YLRgNC+0LrQsDog0LTQvtC70LbQvdCwINGB0L7QvtGC0LLQtdGC0YHRgtCy0L7QstCw0YLRjCDRiNCw0LHQu9C+0L3RgyAke3IucGF0dGVybn1gO3JldHVybmDQndC10LLQtdGA0L3Ri9C5ICR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmDQndC10LLQtdGA0L3QvtC1INGH0LjRgdC70L46INC00L7Qu9C20L3QviDQsdGL0YLRjCDQutGA0LDRgtC90YvQvCAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmDQndC10YDQsNGB0L/QvtC30L3QsNC90L0ke3Iua2V5cy5sZW5ndGg+MT8i0YvQtSI6ItGL0LkifSDQutC70Y7RhyR7ci5rZXlzLmxlbmd0aD4xPyLQuCI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmDQndC10LLQtdGA0L3Ri9C5INC60LvRjtGHINCyICR7ci5vcmlnaW59YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiLQndC10LLQtdGA0L3Ri9C1INCy0YXQvtC00L3Ri9C1INC00LDQvdC90YvQtSI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmDQndC10LLQtdGA0L3QvtC1INC30L3QsNGH0LXQvdC40LUg0LIgJHtyLm9yaWdpbn1gO2RlZmF1bHQ6cmV0dXJuYNCd0LXQstC10YDQvdGL0LUg0LLRhdC+0LTQvdGL0LUg0LTQsNC90L3Ri9C1YH19KX19LCJzbCIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6InpuYWtvdiIsdmVyYjoiaW1ldGkifSxmaWxlOnt1bml0OiJiYWp0b3YiLHZlcmI6ImltZXRpIn0sYXJyYXk6e3VuaXQ6ImVsZW1lbnRvdiIsdmVyYjoiaW1ldGkifSxzZXQ6e3VuaXQ6ImVsZW1lbnRvdiIsdmVyYjoiaW1ldGkifX0sdD17cmVnZXg6InZub3MiLGVtYWlsOiJlLXBvxaF0bmkgbmFzbG92Iix1cmw6IlVSTCIsZW1vamk6ImVtb2ppIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJJU08gZGF0dW0gaW4gxI1hcyIsZGF0ZToiSVNPIGRhdHVtIix0aW1lOiJJU08gxI1hcyIsZHVyYXRpb246IklTTyB0cmFqYW5qZSIsaXB2NDoiSVB2NCBuYXNsb3YiLGlwdjY6IklQdjYgbmFzbG92IixjaWRydjQ6Im9ic2VnIElQdjQiLGNpZHJ2Njoib2JzZWcgSVB2NiIsYmFzZTY0OiJiYXNlNjQga29kaXJhbiBuaXoiLGJhc2U2NHVybDoiYmFzZTY0dXJsIGtvZGlyYW4gbml6Iixqc29uX3N0cmluZzoiSlNPTiBuaXoiLGUxNjQ6IkUuMTY0IMWhdGV2aWxrYSIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6InZub3MifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBOZXZlbGphdmVuIHZub3M6IHByacSNYWtvdmFubyAke3IuZXhwZWN0ZWR9LCBwcmVqZXRvICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6IsWhdGV2aWxvIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4idGFiZWxhIjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYE5ldmVsamF2ZW4gdm5vczogcHJpxI1ha292YW5vICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYE5ldmVsamF2bmEgbW/Fvm5vc3Q6IHByacSNYWtvdmFubyBlbm8gaXptZWQgJHtlcShyLnZhbHVlcywifCIpfWA7Y2FzZSJ0b29fYmlnIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ijw9IjoiPCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBQcmV2ZWxpa286IHByacSNYWtvdmFubywgZGEgYm8gJHtyLm9yaWdpbj8/InZyZWRub3N0In0gaW1lbG8gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iZWxlbWVudG92In1gO3JldHVybmBQcmV2ZWxpa286IHByacSNYWtvdmFubywgZGEgYm8gJHtyLm9yaWdpbj8/InZyZWRub3N0In0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gUHJlbWFqaG5vOiBwcmnEjWFrb3Zhbm8sIGRhIGJvICR7ci5vcmlnaW59IGltZWxvICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmBQcmVtYWpobm86IHByacSNYWtvdmFubywgZGEgYm8gJHtyLm9yaWdpbn0gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYE5ldmVsamF2ZW4gbml6OiBtb3JhIHNlIHphxI1ldGkgeiAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBOZXZlbGphdmVuIG5pejogbW9yYSBzZSBrb27EjWF0aSB6ICIke3Iuc3VmZml4fSJgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gTmV2ZWxqYXZlbiBuaXo6IG1vcmEgdnNlYm92YXRpICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBOZXZlbGphdmVuIG5pejogbW9yYSB1c3RyZXphdGkgdnpvcmN1ICR7ci5wYXR0ZXJufWA7cmV0dXJuYE5ldmVsamF2ZW4gJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYE5ldmVsamF2bm8gxaF0ZXZpbG86IG1vcmEgYml0aSB2ZcSNa3JhdG5payAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBOZXByZXBvem5hbiR7ci5rZXlzLmxlbmd0aD4xPyJpIGtsanXEjWkiOiIga2xqdcSNIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYE5ldmVsamF2ZW4ga2xqdcSNIHYgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6ZGVmYXVsdDpyZXR1cm4iTmV2ZWxqYXZlbiB2bm9zIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYE5ldmVsamF2bmEgdnJlZG5vc3QgdiAke3Iub3JpZ2lufWB9fSl9fSwic3YiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiJ0ZWNrZW4iLHZlcmI6ImF0dCBoYSJ9LGZpbGU6e3VuaXQ6ImJ5dGVzIix2ZXJiOiJhdHQgaGEifSxhcnJheTp7dW5pdDoib2JqZWt0Iix2ZXJiOiJhdHQgaW5uZWjDpWxsYSJ9LHNldDp7dW5pdDoib2JqZWt0Iix2ZXJiOiJhdHQgaW5uZWjDpWxsYSJ9fSx0PXtyZWdleDoicmVndWxqw6RydCB1dHRyeWNrIixlbWFpbDoiZS1wb3N0YWRyZXNzIix1cmw6IlVSTCIsZW1vamk6ImVtb2ppIix1dWlkOiJVVUlEIix1dWlkdjQ6IlVVSUR2NCIsdXVpZHY2OiJVVUlEdjYiLG5hbm9pZDoibmFub2lkIixndWlkOiJHVUlEIixjdWlkOiJjdWlkIixjdWlkMjoiY3VpZDIiLHVsaWQ6IlVMSUQiLHhpZDoiWElEIixrc3VpZDoiS1NVSUQiLGRhdGV0aW1lOiJJU08tZGF0dW0gb2NoIHRpZCIsZGF0ZToiSVNPLWRhdHVtIix0aW1lOiJJU08tdGlkIixkdXJhdGlvbjoiSVNPLXZhcmFrdGlnaGV0IixpcHY0OiJJUHY0LWludGVydmFsbCIsaXB2NjoiSVB2Ni1pbnRlcnZhbGwiLGNpZHJ2NDoiSVB2NC1zcGVrdHJ1bSIsY2lkcnY2OiJJUHY2LXNwZWt0cnVtIixiYXNlNjQ6ImJhc2U2NC1rb2RhZCBzdHLDpG5nIixiYXNlNjR1cmw6ImJhc2U2NHVybC1rb2RhZCBzdHLDpG5nIixqc29uX3N0cmluZzoiSlNPTi1zdHLDpG5nIixlMTY0OiJFLjE2NC1udW1tZXIiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiJtYWxsLWxpdGVyYWwifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmBPZ2lsdGlnIGlubWF0bmluZzogZlx4ZjZydlx4ZTRudGF0ICR7ci5leHBlY3RlZH0sIGZpY2sgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoiYW50YWwiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJsaXN0YSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBPZ2lsdGlnIGlubWF0bmluZzogZlx4ZjZydlx4ZTRudGF0ICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYE9naWx0aWd0IHZhbDogZlx4ZjZydlx4ZTRudGFkZSBlbiBhdiAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYEZceGY2ciBzdG9yKHQpOiBmXHhmNnJ2XHhlNG50YWRlICR7ci5vcmlnaW4/PyJ2w6RyZGV0In0gYXR0IGhhICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/ImVsZW1lbnQifWA7cmV0dXJuYEZceGY2ciBzdG9yKHQpOiBmXHhmNnJ2XHhlNG50YXQgJHtyLm9yaWdpbj8/InbDpHJkZXQifSBhdHQgaGEgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gRlx4ZjZyIGxpdGUodCk6IGZceGY2cnZceGU0bnRhZGUgJHtyLm9yaWdpbj8/InbDpHJkZXQifSBhdHQgaGEgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYEZceGY2ciBsaXRlKHQpOiBmXHhmNnJ2XHhlNG50YWRlICR7ci5vcmlnaW4/PyJ2w6RyZGV0In0gYXR0IGhhICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmBPZ2lsdGlnIHN0clx4ZTRuZzogbVx4ZTVzdGUgYlx4ZjZyamEgbWVkICIke3IucHJlZml4fSJgO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYE9naWx0aWcgc3RyXHhlNG5nOiBtXHhlNXN0ZSBzbHV0YSBtZWQgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmBPZ2lsdGlnIHN0clx4ZTRuZzogbVx4ZTVzdGUgaW5uZWhceGU1bGxhICIke3IuaW5jbHVkZXN9ImA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBPZ2lsdGlnIHN0clx4ZTRuZzogbVx4ZTVzdGUgbWF0Y2hhIG1ceGY2bnN0cmV0ICIke3IucGF0dGVybn0iYDtyZXR1cm5gT2dpbHRpZyh0KSAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gT2dpbHRpZ3QgdGFsOiBtXHhlNXN0ZSB2YXJhIGVuIG11bHRpcGVsIGF2ICR7ci5kaXZpc29yfWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYCR7ci5rZXlzLmxlbmd0aD4xPyJPa8OkbmRhIG55Y2tsYXIiOiJPa8OkbmQgbnlja2VsIn06ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYE9naWx0aWcgbnlja2VsIGkgJHtyLm9yaWdpbj8/InbDpHJkZXQifWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpkZWZhdWx0OnJldHVybiJPZ2lsdGlnIGlucHV0IjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYE9naWx0aWd0IHZceGU0cmRlIGkgJHtyLm9yaWdpbj8/InbDpHJkZXQifWB9fSl9fSwidGEiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLgro7grrTgr4HgrqTgr43grqTgr4HgrpXgr43grpXgrrPgr40iLHZlcmI6IuCuleCviuCuo+CvjeCun+Cuv+CusOCvgeCuleCvjeCulSDgrrXgr4fgrqPgr43grp/gr4Hgrq7gr40ifSxmaWxlOnt1bml0OiLgrqrgr4jgrp/gr43grp/gr4HgrpXgrrPgr40iLHZlcmI6IuCuleCviuCuo+CvjeCun+Cuv+CusOCvgeCuleCvjeCulSDgrrXgr4fgrqPgr43grp/gr4Hgrq7gr40ifSxhcnJheTp7dW5pdDoi4K6J4K6x4K+B4K6q4K+N4K6q4K+B4K6V4K6z4K+NIix2ZXJiOiLgrpXgr4rgrqPgr43grp/grr/grrDgr4HgrpXgr43grpUg4K614K+H4K6j4K+N4K6f4K+B4K6u4K+NIn0sc2V0Ont1bml0OiLgrongrrHgr4Hgrqrgr43grqrgr4HgrpXgrrPgr40iLHZlcmI6IuCuleCviuCuo+CvjeCun+Cuv+CusOCvgeCuleCvjeCulSDgrrXgr4fgrqPgr43grp/gr4Hgrq7gr40ifX0sdD17cmVnZXg6IuCuieCus+CvjeCus+CvgOCun+CvgSIsZW1haWw6IuCuruCuv+CuqeCvjeCuqeCunuCvjeCumuCusuCvjSDgrq7gr4HgrpXgrrXgrrDgrr8iLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6IklTTyDgrqTgr4fgrqTgrr8g4K6o4K+H4K6w4K6u4K+NIixkYXRlOiJJU08g4K6k4K+H4K6k4K6/Iix0aW1lOiJJU08g4K6o4K+H4K6w4K6u4K+NIixkdXJhdGlvbjoiSVNPIOCuleCuvuCusiDgroXgrrPgrrXgr4EiLGlwdjQ6IklQdjQg4K6u4K+B4K6V4K614K6w4K6/IixpcHY2OiJJUHY2IOCuruCvgeCuleCuteCusOCuvyIsY2lkcnY0OiJJUHY0IOCuteCusOCuruCvjeCuquCvgSIsY2lkcnY2OiJJUHY2IOCuteCusOCuruCvjeCuquCvgSIsYmFzZTY0OiJiYXNlNjQtZW5jb2RlZCDgrprgrrDgrq7gr40iLGJhc2U2NHVybDoiYmFzZTY0dXJsLWVuY29kZWQg4K6a4K6w4K6u4K+NIixqc29uX3N0cmluZzoiSlNPTiDgrprgrrDgrq7gr40iLGUxNjQ6IkUuMTY0IOCujuCuo+CvjSIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6ImlucHV0In0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5g4K6k4K614K6x4K6+4K6pIOCuieCus+CvjeCus+CvgOCun+CvgTog4K6O4K6k4K6/4K6w4K+N4K6q4K6+4K6w4K+N4K6V4K+N4K6V4K6q4K+N4K6q4K6f4K+N4K6f4K6k4K+BICR7ci5leHBlY3RlZH0sIOCuquCvhuCuseCuquCvjeCuquCun+CvjeCun+CupOCvgSAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyLgro7grqPgr40g4K6F4K6y4K+N4K6y4K6+4K6k4K6k4K+BIjoi4K6O4K6j4K+NIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4i4K6F4K6j4K6/IjtpZihudWxsPT09ZSlyZXR1cm4i4K614K+G4K6x4K+B4K6u4K+IIjtpZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkhPT1PYmplY3QucHJvdG90eXBlJiZlLmNvbnN0cnVjdG9yKXJldHVybiBlLmNvbnN0cnVjdG9yLm5hbWV9cmV0dXJuIHR9KShyLmlucHV0KX1gO2Nhc2UiaW52YWxpZF92YWx1ZSI6aWYoMT09PXIudmFsdWVzLmxlbmd0aClyZXR1cm5g4K6k4K614K6x4K6+4K6pIOCuieCus+CvjeCus+CvgOCun+CvgTog4K6O4K6k4K6/4K6w4K+N4K6q4K6+4K6w4K+N4K6V4K+N4K6V4K6q4K+N4K6q4K6f4K+N4K6f4K6k4K+BICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYOCupOCuteCuseCuvuCuqSDgrrXgrr/grrDgr4Hgrqrgr43grqrgrq7gr406IOCujuCupOCuv+CusOCvjeCuquCuvuCusOCvjeCuleCvjeCuleCuquCvjeCuquCun+CvjeCun+CupOCvgSAke2VxKHIudmFsdWVzLCJ8Iil9IOCuh+CusuCvjSDgrpLgrqngr43grrHgr4FgO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g4K6u4K6/4K6VIOCuquCvhuCusOCuv+Cur+CupOCvgTog4K6O4K6k4K6/4K6w4K+N4K6q4K6+4K6w4K+N4K6V4K+N4K6V4K6q4K+N4K6q4K6f4K+N4K6f4K6k4K+BICR7ci5vcmlnaW4/PyLgrq7grqTgrr/grqrgr43grqrgr4EifSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyLgrongrrHgr4Hgrqrgr43grqrgr4HgrpXgrrPgr40ifSDgrobgrpUg4K6H4K6w4K+B4K6V4K+N4K6VIOCuteCvh+Cuo+CvjeCun+CvgeCuruCvjWA7cmV0dXJuYOCuruCuv+CulSDgrqrgr4bgrrDgrr/grq/grqTgr4E6IOCujuCupOCuv+CusOCvjeCuquCuvuCusOCvjeCuleCvjeCuleCuquCvjeCuquCun+CvjeCun+CupOCvgSAke3Iub3JpZ2luPz8i4K6u4K6k4K6/4K6q4K+N4K6q4K+BIn0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9IOCuhuCulSDgrofgrrDgr4HgrpXgr43grpUg4K614K+H4K6j4K+N4K6f4K+B4K6u4K+NYH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g4K6u4K6/4K6V4K6a4K+NIOCumuCuv+CuseCuv+Cur+CupOCvgTog4K6O4K6k4K6/4K6w4K+N4K6q4K6+4K6w4K+N4K6V4K+N4K6V4K6q4K+N4K6q4K6f4K+N4K6f4K6k4K+BICR7ci5vcmlnaW59ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH0g4K6G4K6VIOCuh+CusOCvgeCuleCvjeCulSDgrrXgr4fgrqPgr43grp/gr4Hgrq7gr41gO3JldHVybmDgrq7grr/grpXgrprgr40g4K6a4K6/4K6x4K6/4K6v4K6k4K+BOiDgro7grqTgrr/grrDgr43grqrgrr7grrDgr43grpXgr43grpXgrqrgr43grqrgrp/gr43grp/grqTgr4EgJHtyLm9yaWdpbn0gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9IOCuhuCulSDgrofgrrDgr4HgrpXgr43grpUg4K614K+H4K6j4K+N4K6f4K+B4K6u4K+NYH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYOCupOCuteCuseCuvuCuqSDgrprgrrDgrq7gr406ICIke3IucHJlZml4fSIg4K6H4K6y4K+NIOCupOCviuCun+CumeCvjeCulSDgrrXgr4fgrqPgr43grp/gr4Hgrq7gr41gO2lmKCJlbmRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYOCupOCuteCuseCuvuCuqSDgrprgrrDgrq7gr406ICIke3Iuc3VmZml4fSIg4K6H4K6y4K+NIOCuruCvgeCun+Cuv+CuteCun+CviOCuryDgrrXgr4fgrqPgr43grp/gr4Hgrq7gr41gO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5g4K6k4K614K6x4K6+4K6pIOCumuCusOCuruCvjTogIiR7ci5pbmNsdWRlc30iIOCukCDgrongrrPgr43grrPgrp/grpXgr43grpUg4K614K+H4K6j4K+N4K6f4K+B4K6u4K+NYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYOCupOCuteCuseCuvuCuqSDgrprgrrDgrq7gr406ICR7ci5wYXR0ZXJufSDgrq7gr4HgrrHgr4jgrqrgrr7grp/gr43grp/gr4Hgrp/grqngr40g4K6q4K+K4K6w4K+B4K6o4K+N4K6kIOCuteCvh+Cuo+CvjeCun+CvgeCuruCvjWA7cmV0dXJuYOCupOCuteCuseCuvuCuqSAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g4K6k4K614K6x4K6+4K6pIOCujuCuo+CvjTogJHtyLmRpdmlzb3J9IOCuh+CuqeCvjSDgrqrgrrLgrq7grr7grpUg4K6H4K6w4K+B4K6V4K+N4K6VIOCuteCvh+Cuo+CvjeCun+CvgeCuruCvjWA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYOCuheCun+CviOCur+CuvuCus+CuruCvjSDgrqTgr4bgrrDgrr/grq/grr7grqQg4K614K6/4K6a4K+IJHtyLmtleXMubGVuZ3RoPjE/IuCuleCus+CvjSI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmAke3Iub3JpZ2lufSDgrofgrrLgr40g4K6k4K614K6x4K6+4K6pIOCuteCuv+CumuCviGA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4i4K6k4K614K6x4K6+4K6pIOCuieCus+CvjeCus+CvgOCun+CvgSI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmAke3Iub3JpZ2lufSDgrofgrrLgr40g4K6k4K614K6x4K6+4K6pIOCuruCupOCuv+CuquCvjeCuquCvgWA7ZGVmYXVsdDpyZXR1cm5g4K6k4K614K6x4K6+4K6pIOCuieCus+CvjeCus+CvgOCun+CvgWB9fSl9fSwidGgiLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLguJXguLHguKfguK3guLHguIHguKnguKMiLHZlcmI6IuC4hOC4p+C4o+C4oeC4tSJ9LGZpbGU6e3VuaXQ6IuC5hOC4muC4leC5jCIsdmVyYjoi4LiE4Lin4Lij4Lih4Li1In0sYXJyYXk6e3VuaXQ6IuC4o+C4suC4ouC4geC4suC4oyIsdmVyYjoi4LiE4Lin4Lij4Lih4Li1In0sc2V0Ont1bml0OiLguKPguLLguKLguIHguLLguKMiLHZlcmI6IuC4hOC4p+C4o+C4oeC4tSJ9fSx0PXtyZWdleDoi4LiC4LmJ4Lit4Lih4Li54Lil4LiX4Li14LmI4Lib4LmJ4Lit4LiZIixlbWFpbDoi4LiX4Li14LmI4Lit4Lii4Li54LmI4Lit4Li14LmA4Lih4LilIix1cmw6IlVSTCIsZW1vamk6IuC4reC4tOC5guC4oeC4iOC4tCIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToi4Lin4Lix4LiZ4LiX4Li14LmI4LmA4Lin4Lil4Liy4LmB4Lia4LiaIElTTyIsZGF0ZToi4Lin4Lix4LiZ4LiX4Li14LmI4LmB4Lia4LiaIElTTyIsdGltZToi4LmA4Lin4Lil4Liy4LmB4Lia4LiaIElTTyIsZHVyYXRpb246IuC4iuC5iOC4p+C4h+C5gOC4p+C4peC4suC5geC4muC4miBJU08iLGlwdjQ6IuC4l+C4teC5iOC4reC4ouC4ueC5iCBJUHY0IixpcHY2OiLguJfguLXguYjguK3guKLguLnguYggSVB2NiIsY2lkcnY0OiLguIrguYjguKfguIcgSVAg4LmB4Lia4LiaIElQdjQiLGNpZHJ2Njoi4LiK4LmI4Lin4LiHIElQIOC5geC4muC4miBJUHY2IixiYXNlNjQ6IuC4guC5ieC4reC4hOC4p+C4suC4oeC5geC4muC4miBCYXNlNjQiLGJhc2U2NHVybDoi4LiC4LmJ4Lit4LiE4Lin4Liy4Lih4LmB4Lia4LiaIEJhc2U2NCDguKrguLPguKvguKPguLHguJogVVJMIixqc29uX3N0cmluZzoi4LiC4LmJ4Lit4LiE4Lin4Liy4Lih4LmB4Lia4LiaIEpTT04iLGUxNjQ6IuC5gOC4muC4reC4o+C5jOC5guC4l+C4o+C4qOC4seC4nuC4l+C5jOC4o+C4sOC4q+C4p+C5iOC4suC4h+C4m+C4o+C4sOC5gOC4l+C4qCAoRS4xNjQpIixqd3Q6IuC5guC4l+C5gOC4hOC4mSBKV1QiLHRlbXBsYXRlX2xpdGVyYWw6IuC4guC5ieC4reC4oeC4ueC4peC4l+C4teC5iOC4m+C5ieC4reC4mSJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYOC4m+C4o+C4sOC5gOC4oOC4l+C4guC5ieC4reC4oeC4ueC4peC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hzog4LiE4Lin4Lij4LmA4Lib4LmH4LiZICR7ci5leHBlY3RlZH0g4LmB4LiV4LmI4LmE4LiU4LmJ4Lij4Lix4LiaICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/IuC5hOC4oeC5iOC5g+C4iuC5iOC4leC4seC4p+C5gOC4peC4giAoTmFOKSI6IuC4leC4seC4p+C5gOC4peC4giI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIuC4reC4suC4o+C5jOC5gOC4o+C4ouC5jCAoQXJyYXkpIjtpZihudWxsPT09ZSlyZXR1cm4i4LmE4Lih4LmI4Lih4Li14LiE4LmI4LiyIChudWxsKSI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYOC4hOC5iOC4suC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hzog4LiE4Lin4Lij4LmA4Lib4LmH4LiZICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYOC4leC4seC4p+C5gOC4peC4t+C4reC4geC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hzog4LiE4Lin4Lij4LmA4Lib4LmH4LiZ4Lir4LiZ4Li24LmI4LiH4LmD4LiZICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyLguYTguKHguYjguYDguIHguLTguJkiOiLguJnguYnguK3guKLguIHguKfguYjguLIiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g4LmA4LiB4Li04LiZ4LiB4Liz4Lir4LiZ4LiUOiAke3Iub3JpZ2luPz8i4LiE4LmI4LiyIn0g4LiE4Lin4Lij4Lih4Li1JHt0fSAke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/IuC4o+C4suC4ouC4geC4suC4oyJ9YDtyZXR1cm5g4LmA4LiB4Li04LiZ4LiB4Liz4Lir4LiZ4LiUOiAke3Iub3JpZ2luPz8i4LiE4LmI4LiyIn0g4LiE4Lin4Lij4Lih4Li1JHt0fSAke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8i4Lit4Lii4LmI4Liy4LiH4LiZ4LmJ4Lit4LiiIjoi4Lih4Liy4LiB4LiB4Lin4LmI4LiyIixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYOC4meC5ieC4reC4ouC4geC4p+C5iOC4suC4geC4s+C4q+C4meC4lDogJHtyLm9yaWdpbn0g4LiE4Lin4Lij4Lih4Li1JHt0fSAke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmDguJnguYnguK3guKLguIHguKfguYjguLLguIHguLPguKvguJnguJQ6ICR7ci5vcmlnaW59IOC4hOC4p+C4o+C4oeC4tSR7dH0gJHtyLm1pbmltdW0udG9TdHJpbmcoKX1gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g4Lij4Li54Lib4LmB4Lia4Lia4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHOiDguILguYnguK3guITguKfguLLguKHguJXguYnguK3guIfguILguLbguYnguJnguJXguYnguJnguJTguYnguKfguKIgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g4Lij4Li54Lib4LmB4Lia4Lia4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHOiDguILguYnguK3guITguKfguLLguKHguJXguYnguK3guIfguKXguIfguJfguYnguLLguKLguJTguYnguKfguKIgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDguKPguLnguJvguYHguJrguJrguYTguKHguYjguJbguLnguIHguJXguYnguK3guIc6IOC4guC5ieC4reC4hOC4p+C4suC4oeC4leC5ieC4reC4h+C4oeC4tSAiJHtyLmluY2x1ZGVzfSIg4Lit4Lii4Li54LmI4LmD4LiZ4LiC4LmJ4Lit4LiE4Lin4Liy4LihYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYOC4o+C4ueC4m+C5geC4muC4muC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hzog4LiV4LmJ4Lit4LiH4LiV4Lij4LiH4LiB4Lix4Lia4Lij4Li54Lib4LmB4Lia4Lia4LiX4Li14LmI4LiB4Liz4Lir4LiZ4LiUICR7ci5wYXR0ZXJufWA7cmV0dXJuYOC4o+C4ueC4m+C5geC4muC4muC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hzogJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYOC4leC4seC4p+C5gOC4peC4guC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4hzog4LiV4LmJ4Lit4LiH4LmA4Lib4LmH4LiZ4LiI4Liz4LiZ4Lin4LiZ4LiX4Li14LmI4Lir4Liy4Lij4LiU4LmJ4Lin4LiiICR7ci5kaXZpc29yfSDguYTguJTguYnguKXguIfguJXguLHguKdgO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmDguJ7guJrguITguLXguKLguYzguJfguLXguYjguYTguKHguYjguKPguLnguYnguIjguLHguIE6ICR7ZXEoci5rZXlzLCIsICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYOC4hOC4teC4ouC5jOC5hOC4oeC5iOC4luC4ueC4geC4leC5ieC4reC4h+C5g+C4mSAke3Iub3JpZ2lufWA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4i4LiC4LmJ4Lit4Lih4Li54Lil4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiHOiDguYTguKHguYjguJXguKPguIfguIHguLHguJrguKPguLnguJvguYHguJrguJrguKLguLnguYDguJnguLXguKLguJnguJfguLXguYjguIHguLPguKvguJnguJTguYTguKfguYkiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5g4LiC4LmJ4Lit4Lih4Li54Lil4LmE4Lih4LmI4LiW4Li54LiB4LiV4LmJ4Lit4LiH4LmD4LiZICR7ci5vcmlnaW59YDtkZWZhdWx0OnJldHVybmDguILguYnguK3guKHguLnguKXguYTguKHguYjguJbguLnguIHguJXguYnguK3guIdgfX0pfX0sInRyIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoia2FyYWt0ZXIiLHZlcmI6Im9sbWFsxLEifSxmaWxlOnt1bml0OiJiYXl0Iix2ZXJiOiJvbG1hbMSxIn0sYXJyYXk6e3VuaXQ6IsO2xJ9lIix2ZXJiOiJvbG1hbMSxIn0sc2V0Ont1bml0OiLDtsSfZSIsdmVyYjoib2xtYWzEsSJ9fSx0PXtyZWdleDoiZ2lyZGkiLGVtYWlsOiJlLXBvc3RhIGFkcmVzaSIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNPIHRhcmloIHZlIHNhYXQiLGRhdGU6IklTTyB0YXJpaCIsdGltZToiSVNPIHNhYXQiLGR1cmF0aW9uOiJJU08gc8O8cmUiLGlwdjQ6IklQdjQgYWRyZXNpIixpcHY2OiJJUHY2IGFkcmVzaSIsY2lkcnY0OiJJUHY0IGFyYWzEscSfxLEiLGNpZHJ2NjoiSVB2NiBhcmFsxLHEn8SxIixiYXNlNjQ6ImJhc2U2NCBpbGUgxZ9pZnJlbGVubWnFnyBtZXRpbiIsYmFzZTY0dXJsOiJiYXNlNjR1cmwgaWxlIMWfaWZyZWxlbm1pxZ8gbWV0aW4iLGpzb25fc3RyaW5nOiJKU09OIGRpemVzaSIsZTE2NDoiRS4xNjQgc2F5xLFzxLEiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiLFnmFibG9uIGRpemVzaSJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYEdlXHhlN2Vyc2l6IGRlxJ9lcjogYmVrbGVuZW4gJHtyLmV4cGVjdGVkfSwgYWzEsW5hbiAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiJudW1iZXIiO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiJhcnJheSI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmBHZVx4ZTdlcnNpeiBkZcSfZXI6IGJla2xlbmVuICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYEdlXHhlN2Vyc2l6IHNlXHhlN2VuZWs6IGHFn2HEn8SxZGFraWxlcmRlbiBiaXJpIG9sbWFsxLE6ICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5gXHhjN29rIGJceGZjeVx4ZmNrOiBiZWtsZW5lbiAke3Iub3JpZ2luPz8iZGXEn2VyIn0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8iw7bEn2UifWA7cmV0dXJuYFx4YzdvayBiXHhmY3lceGZjazogYmVrbGVuZW4gJHtyLm9yaWdpbj8/ImRlxJ9lciJ9ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFx4YzdvayBrXHhmY1x4ZTdceGZjazogYmVrbGVuZW4gJHtyLm9yaWdpbn0gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYFx4YzdvayBrXHhmY1x4ZTdceGZjazogYmVrbGVuZW4gJHtyLm9yaWdpbn0gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYEdlXHhlN2Vyc2l6IG1ldGluOiAiJHtyLnByZWZpeH0iIGlsZSBiYcWfbGFtYWzEsWA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gR2VceGU3ZXJzaXogbWV0aW46ICIke3Iuc3VmZml4fSIgaWxlIGJpdG1lbGlgO2lmKCJpbmNsdWRlcyI9PT1yLmZvcm1hdClyZXR1cm5gR2VceGU3ZXJzaXogbWV0aW46ICIke3IuaW5jbHVkZXN9IiBpXHhlN2VybWVsaWA7aWYoInJlZ2V4Ij09PXIuZm9ybWF0KXJldHVybmBHZVx4ZTdlcnNpeiBtZXRpbjogJHtyLnBhdHRlcm59IGRlc2VuaW5lIHV5bWFsxLFgO3JldHVybmBHZVx4ZTdlcnNpeiAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5gR2VceGU3ZXJzaXogc2F5xLE6ICR7ci5kaXZpc29yfSBpbGUgdGFtIGJceGY2bFx4ZmNuZWJpbG1lbGlgO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmBUYW7EsW5tYXlhbiBhbmFodGFyJHtyLmtleXMubGVuZ3RoPjE/ImxhciI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmAke3Iub3JpZ2lufSBpXHhlN2luZGUgZ2VceGU3ZXJzaXogYW5haHRhcmA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4iR2XDp2Vyc2l6IGRlxJ9lciI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmAke3Iub3JpZ2lufSBpXHhlN2luZGUgZ2VceGU3ZXJzaXogZGXEn2VyYDtkZWZhdWx0OnJldHVybmBHZVx4ZTdlcnNpeiBkZcSfZXJgfX0pfX0sInVhIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoi0YHQuNC80LLQvtC70ZbQsiIsdmVyYjoi0LzQsNGC0LjQvNC1In0sZmlsZTp7dW5pdDoi0LHQsNC50YLRltCyIix2ZXJiOiLQvNCw0YLQuNC80LUifSxhcnJheTp7dW5pdDoi0LXQu9C10LzQtdC90YLRltCyIix2ZXJiOiLQvNCw0YLQuNC80LUifSxzZXQ6e3VuaXQ6ItC10LvQtdC80LXQvdGC0ZbQsiIsdmVyYjoi0LzQsNGC0LjQvNC1In19LHQ9e3JlZ2V4OiLQstGF0ZbQtNC90ZYg0LTQsNC90ZYiLGVtYWlsOiLQsNC00YDQtdGB0LAg0LXQu9C10LrRgtGA0L7QvdC90L7RlyDQv9C+0YjRgtC4Iix1cmw6IlVSTCIsZW1vamk6ItC10LzQvtC00LfRliIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToi0LTQsNGC0LAg0YLQsCDRh9Cw0YEgSVNPIixkYXRlOiLQtNCw0YLQsCBJU08iLHRpbWU6ItGH0LDRgSBJU08iLGR1cmF0aW9uOiLRgtGA0LjQstCw0LvRltGB0YLRjCBJU08iLGlwdjQ6ItCw0LTRgNC10YHQsCBJUHY0IixpcHY2OiLQsNC00YDQtdGB0LAgSVB2NiIsY2lkcnY0OiLQtNGW0LDQv9Cw0LfQvtC9IElQdjQiLGNpZHJ2Njoi0LTRltCw0L/QsNC30L7QvSBJUHY2IixiYXNlNjQ6ItGA0Y/QtNC+0Log0YMg0LrQvtC00YPQstCw0L3QvdGWIGJhc2U2NCIsYmFzZTY0dXJsOiLRgNGP0LTQvtC6INGDINC60L7QtNGD0LLQsNC90L3RliBiYXNlNjR1cmwiLGpzb25fc3RyaW5nOiLRgNGP0LTQvtC6IEpTT04iLGUxNjQ6ItC90L7QvNC10YAgRS4xNjQiLGp3dDoiSldUIix0ZW1wbGF0ZV9saXRlcmFsOiLQstGF0ZbQtNC90ZYg0LTQsNC90ZYifSxyPT57c3dpdGNoKHIuY29kZSl7Y2FzZSJpbnZhbGlkX3R5cGUiOnJldHVybmDQndC10L/RgNCw0LLQuNC70YzQvdGWINCy0YXRltC00L3RliDQtNCw0L3Rljog0L7Rh9GW0LrRg9GU0YLRjNGB0Y8gJHtyLmV4cGVjdGVkfSwg0L7RgtGA0LjQvNCw0L3QviAkeyhlPT57bGV0IHQ9dHlwZW9mIGU7c3dpdGNoKHQpe2Nhc2UibnVtYmVyIjpyZXR1cm4gTnVtYmVyLmlzTmFOKGUpPyJOYU4iOiLRh9C40YHQu9C+IjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4i0LzQsNGB0LjQsiI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmDQndC10L/RgNCw0LLQuNC70YzQvdGWINCy0YXRltC00L3RliDQtNCw0L3Rljog0L7Rh9GW0LrRg9GU0YLRjNGB0Y8gJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5g0J3QtdC/0YDQsNCy0LjQu9GM0L3QsCDQvtC/0YbRltGPOiDQvtGH0ZbQutGD0ZTRgtGM0YHRjyDQvtC00L3QtSDQtyAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYNCX0LDQvdCw0LTRgtC+INCy0LXQu9C40LrQtTog0L7Rh9GW0LrRg9GU0YLRjNGB0Y8sINGJ0L4gJHtyLm9yaWdpbj8/ItC30L3QsNGH0LXQvdC90Y8ifSAke24udmVyYn0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8i0LXQu9C10LzQtdC90YLRltCyIn1gO3JldHVybmDQl9Cw0L3QsNC00YLQviDQstC10LvQuNC60LU6INC+0YfRltC60YPRlNGC0YzRgdGPLCDRidC+ICR7ci5vcmlnaW4/PyLQt9C90LDRh9C10L3QvdGPIn0g0LHRg9C00LUgJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g0JfQsNC90LDQtNGC0L4g0LzQsNC70LU6INC+0YfRltC60YPRlNGC0YzRgdGPLCDRidC+ICR7ci5vcmlnaW59ICR7bi52ZXJifSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5g0JfQsNC90LDQtNGC0L4g0LzQsNC70LU6INC+0YfRltC60YPRlNGC0YzRgdGPLCDRidC+ICR7ci5vcmlnaW59INCx0YPQtNC1ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfWB9Y2FzZSJpbnZhbGlkX2Zvcm1hdCI6aWYoInN0YXJ0c193aXRoIj09PXIuZm9ybWF0KXJldHVybmDQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YDRj9C00L7Qujog0L/QvtCy0LjQvdC10L0g0L/QvtGH0LjQvdCw0YLQuNGB0Y8g0LcgIiR7ci5wcmVmaXh9ImA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g0J3QtdC/0YDQsNCy0LjQu9GM0L3QuNC5INGA0Y/QtNC+0Lo6INC/0L7QstC40L3QtdC9INC30LDQutGW0L3Rh9GD0LLQsNGC0LjRgdGPINC90LAgIiR7ci5zdWZmaXh9ImA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0YDRj9C00L7Qujog0L/QvtCy0LjQvdC10L0g0LzRltGB0YLQuNGC0LggIiR7ci5pbmNsdWRlc30iYDtpZigicmVnZXgiPT09ci5mb3JtYXQpcmV0dXJuYNCd0LXQv9GA0LDQstC40LvRjNC90LjQuSDRgNGP0LTQvtC6OiDQv9C+0LLQuNC90LXQvSDQstGW0LTQv9C+0LLRltC00LDRgtC4INGI0LDQsdC70L7QvdGDICR7ci5wYXR0ZXJufWA7cmV0dXJuYNCd0LXQv9GA0LDQstC40LvRjNC90LjQuSAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g0J3QtdC/0YDQsNCy0LjQu9GM0L3QtSDRh9C40YHQu9C+OiDQv9C+0LLQuNC90L3QviDQsdGD0YLQuCDQutGA0LDRgtC90LjQvCAke3IuZGl2aXNvcn1gO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmDQndC10YDQvtC30L/RltC30L3QsNC90LjQuSDQutC70Y7RhyR7ci5rZXlzLmxlbmd0aD4xPyLRliI6IiJ9OiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmDQndC10L/RgNCw0LLQuNC70YzQvdC40Lkg0LrQu9GO0Ycg0YMgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuItCd0LXQv9GA0LDQstC40LvRjNC90ZYg0LLRhdGW0LTQvdGWINC00LDQvdGWIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYNCd0LXQv9GA0LDQstC40LvRjNC90LUg0LfQvdCw0YfQtdC90L3RjyDRgyAke3Iub3JpZ2lufWA7ZGVmYXVsdDpyZXR1cm5g0J3QtdC/0YDQsNCy0LjQu9GM0L3RliDQstGF0ZbQtNC90ZYg0LTQsNC90ZZgfX0pfX0sInVyIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoi2K3YsdmI2YEiLHZlcmI6ItuB2YjZhtinIn0sZmlsZTp7dW5pdDoi2KjYp9im2bnYsyIsdmVyYjoi24HZiNmG2KcifSxhcnJheTp7dW5pdDoi2KLYptm52YXYsiIsdmVyYjoi24HZiNmG2KcifSxzZXQ6e3VuaXQ6Itii2KbZudmF2LIiLHZlcmI6ItuB2YjZhtinIn19LHQ9e3JlZ2V4OiLYp9mGINm+2bkiLGVtYWlsOiLYp9uMINmF24zZhCDYp9uM2ojYsduM2LMiLHVybDoi24zZiCDYotixINin24zZhCIsZW1vamk6Itin24zZhdmI2KzbjCIsdXVpZDoi24zZiCDbjNmIINii2KbbjCDaiNuMIix1dWlkdjQ6ItuM2Ygg24zZiCDYotim24wg2ojbjCDZiNuMIDQiLHV1aWR2Njoi24zZiCDbjNmIINii2KbbjCDaiNuMINmI24wgNiIsbmFub2lkOiLZhtuM2YbZiCDYotim24wg2ojbjCIsZ3VpZDoi2KzbjCDbjNmIINii2KbbjCDaiNuMIixjdWlkOiLYs9uMINuM2Ygg2KLYptuMINqI24wiLGN1aWQyOiLYs9uMINuM2Ygg2KLYptuMINqI24wgMiIsdWxpZDoi24zZiCDYp9uM2YQg2KLYptuMINqI24wiLHhpZDoi2KfbjNqp2LMg2KLYptuMINqI24wiLGtzdWlkOiLaqduSINin24zYsyDbjNmIINii2KbbjCDaiNuMIixkYXRldGltZToi2KLYptuMINin24zYsyDYp9mIINqI24zZuSDZudin2KbZhSIsZGF0ZToi2KLYptuMINin24zYsyDYp9mIINiq2KfYsduM2K4iLHRpbWU6Itii2KbbjCDYp9uM2LMg2KfZiCDZiNmC2KoiLGR1cmF0aW9uOiLYotim24wg2KfbjNizINin2Ygg2YXYr9iqIixpcHY0OiLYotim24wg2b7bjCDZiNuMIDQg2KfbjNqI2LHbjNizIixpcHY2OiLYotim24wg2b7bjCDZiNuMIDYg2KfbjNqI2LHbjNizIixjaWRydjQ6Itii2KbbjCDZvtuMINmI24wgNCDYsduM2YbYrCIsY2lkcnY2OiLYotim24wg2b7bjCDZiNuMIDYg2LHbjNmG2KwiLGJhc2U2NDoi2KjbjNizIDY0INin2YYg2qnZiNqI2ogg2LPZudix2YbaryIsYmFzZTY0dXJsOiLYqNuM2LMgNjQg24zZiCDYotixINin24zZhCDYp9mGINqp2YjaiNqIINiz2bnYsdmG2q8iLGpzb25fc3RyaW5nOiLYrNuSINin24zYsyDYp9mIINin24zZhiDYs9m52LHZhtqvIixlMTY0OiLYp9uMIDE2NCDZhtmF2KjYsSIsand0OiLYrNuSINqI2KjZhNuM2Ygg2bnbjCIsdGVtcGxhdGVfbGl0ZXJhbDoi2KfZhiDZvtm5In0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5g2LrZhNi3INin2YYg2b7ZuTogJHtyLmV4cGVjdGVkfSDZhdiq2YjZgti5INiq2r7Yp9iMICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6ItmG2YXYqNixIjtjYXNlIm9iamVjdCI6aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4i2KLYsduSIjtpZihudWxsPT09ZSlyZXR1cm4i2YbZhCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9INmF2YjYtdmI2YQg24HZiNinYDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYNi62YTYtyDYp9mGINm+2bk6ICR7dG8oci52YWx1ZXNbMF0pfSDZhdiq2YjZgti5INiq2r7Yp2A7cmV0dXJuYNi62YTYtyDYotm+2LTZhjogJHtlcShyLnZhbHVlcywifCIpfSDZhduM2rog2LPbkiDYp9uM2qkg2YXYqtmI2YLYuSDYqtq+2KdgO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g2KjbgdiqINio2pHYpzogJHtyLm9yaWdpbj8/ItmI24zZhNuM2YgifSDaqduSICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfSAke24udW5pdD8/Iti52YbYp9i12LEifSDbgdmI2YbbkiDZhdiq2YjZgti5INiq2r7bkmA7cmV0dXJuYNio24HYqiDYqNqR2Kc6ICR7ci5vcmlnaW4/PyLZiNuM2YTbjNmIIn0g2qnYpyAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0g24HZiNmG2Kcg2YXYqtmI2YLYuSDYqtq+2KdgfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDYqNuB2Kog2obavtmI2bnYpzogJHtyLm9yaWdpbn0g2qnbkiAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9INuB2YjZhtuSINmF2KrZiNmC2Lkg2KravtuSYDtyZXR1cm5g2KjbgdiqINqG2r7ZiNm52Kc6ICR7ci5vcmlnaW59INqp2KcgJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9INuB2YjZhtinINmF2KrZiNmC2Lkg2KravtinYH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYNi62YTYtyDYs9m52LHZhtqvOiAiJHtyLnByZWZpeH0iINiz25Ig2LTYsdmI2Lkg24HZiNmG2Kcg2obYp9uB24zbkmA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g2LrZhNi3INiz2bnYsdmG2q86ICIke3Iuc3VmZml4fSIg2b7YsSDYrtiq2YUg24HZiNmG2Kcg2obYp9uB24zbkmA7aWYoImluY2x1ZGVzIj09PXIuZm9ybWF0KXJldHVybmDYutmE2Lcg2LPZudix2YbarzogIiR7ci5pbmNsdWRlc30iINi02KfZhdmEINuB2YjZhtinINqG2KfbgduM25JgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5g2LrZhNi3INiz2bnYsdmG2q86INm+24zZudix2YYgJHtyLnBhdHRlcm59INiz25Ig2YXbjNqGINuB2YjZhtinINqG2KfbgduM25JgO3JldHVybmDYutmE2LcgJHt0W3IuZm9ybWF0XT8/ci5mb3JtYXR9YDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYNi62YTYtyDZhtmF2KjYsTogJHtyLmRpdmlzb3J9INqp2Kcg2YXYttin2LnZgSDbgdmI2YbYpyDahtin24HbjNuSYDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5g2LrbjNixINiq2LPZhNuM2YUg2LTYr9uBINqp24wke3Iua2V5cy5sZW5ndGg+MT8i2LIiOiIifTogJHtlcShyLmtleXMsItiMICIpfWA7Y2FzZSJpbnZhbGlkX2tleSI6cmV0dXJuYCR7ci5vcmlnaW59INmF24zauiDYutmE2Lcg2qnbjGA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4i2LrZhNi3INin2YYg2b7ZuSI7Y2FzZSJpbnZhbGlkX2VsZW1lbnQiOnJldHVybmAke3Iub3JpZ2lufSDZhduM2rog2LrZhNi3INmI24zZhNuM2YhgO2RlZmF1bHQ6cmV0dXJuYNi62YTYtyDYp9mGINm+2blgfX0pfX0sInZpIiwwLGZ1bmN0aW9uKCl7bGV0IGUsdDtyZXR1cm57bG9jYWxlRXJyb3I6KGU9e3N0cmluZzp7dW5pdDoia8O9IHThu7EiLHZlcmI6ImPDsyJ9LGZpbGU6e3VuaXQ6ImJ5dGUiLHZlcmI6ImPDsyJ9LGFycmF5Ont1bml0OiJwaOG6p24gdOG7rSIsdmVyYjoiY8OzIn0sc2V0Ont1bml0OiJwaOG6p24gdOG7rSIsdmVyYjoiY8OzIn19LHQ9e3JlZ2V4OiLEkeG6p3UgdsOgbyIsZW1haWw6IsSR4buLYSBjaOG7iSBlbWFpbCIsdXJsOiJVUkwiLGVtb2ppOiJlbW9qaSIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToibmfDoHkgZ2nhu50gSVNPIixkYXRlOiJuZ8OgeSBJU08iLHRpbWU6Imdp4budIElTTyIsZHVyYXRpb246Imtob+G6o25nIHRo4budaSBnaWFuIElTTyIsaXB2NDoixJHhu4thIGNo4buJIElQdjQiLGlwdjY6IsSR4buLYSBjaOG7iSBJUHY2IixjaWRydjQ6ImThuqNpIElQdjQiLGNpZHJ2NjoiZOG6o2kgSVB2NiIsYmFzZTY0OiJjaHXhu5dpIG3DoyBow7NhIGJhc2U2NCIsYmFzZTY0dXJsOiJjaHXhu5dpIG3DoyBow7NhIGJhc2U2NHVybCIsanNvbl9zdHJpbmc6ImNodeG7l2kgSlNPTiIsZTE2NDoic+G7kSBFLjE2NCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6IsSR4bqndSB2w6BvIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5gxJDhuqd1IHZceGUwbyBraFx4ZjRuZyBo4bujcCBs4buHOiBtb25nIMSR4bujaSAke3IuZXhwZWN0ZWR9LCBuaOG6rW4gxJHGsOG7o2MgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8iTmFOIjoic+G7kSI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIm3huqNuZyI7aWYobnVsbD09PWUpcmV0dXJuIm51bGwiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmDEkOG6p3Ugdlx4ZTBvIGtoXHhmNG5nIGjhu6NwIGzhu4c6IG1vbmcgxJHhu6NpICR7dG8oci52YWx1ZXNbMF0pfWA7cmV0dXJuYFRceGY5eSBjaOG7jW4ga2hceGY0bmcgaOG7o3AgbOG7hzogbW9uZyDEkeG7o2kgbeG7mXQgdHJvbmcgY1x4ZTFjIGdpXHhlMSB0cuG7iyAke2VxKHIudmFsdWVzLCJ8Iil9YDtjYXNlInRvb19iaWciOntsZXQgdD1yLmluY2x1c2l2ZT8iPD0iOiI8IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYFF1XHhlMSBs4bubbjogbW9uZyDEkeG7o2kgJHtyLm9yaWdpbj8/Imdpw6EgdHLhu4sifSAke24udmVyYn0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0Pz8icGjhuqduIHThu60ifWA7cmV0dXJuYFF1XHhlMSBs4bubbjogbW9uZyDEkeG7o2kgJHtyLm9yaWdpbj8/Imdpw6EgdHLhu4sifSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX1gfWNhc2UidG9vX3NtYWxsIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ij49IjoiPiIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmBRdVx4ZTEgbmjhu486IG1vbmcgxJHhu6NpICR7ci5vcmlnaW59ICR7bi52ZXJifSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXR9YDtyZXR1cm5gUXVceGUxIG5o4buPOiBtb25nIMSR4bujaSAke3Iub3JpZ2lufSAke3R9JHtyLm1pbmltdW0udG9TdHJpbmcoKX1gfWNhc2UiaW52YWxpZF9mb3JtYXQiOmlmKCJzdGFydHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5gQ2h14buXaSBraFx4ZjRuZyBo4bujcCBs4buHOiBwaOG6o2kgYuG6r3QgxJHhuqd1IGLhurFuZyAiJHtyLnByZWZpeH0iYDtpZigiZW5kc193aXRoIj09PXIuZm9ybWF0KXJldHVybmBDaHXhu5dpIGtoXHhmNG5nIGjhu6NwIGzhu4c6IHBo4bqjaSBr4bq/dCB0aFx4ZmFjIGLhurFuZyAiJHtyLnN1ZmZpeH0iYDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYENodeG7l2kga2hceGY0bmcgaOG7o3AgbOG7hzogcGjhuqNpIGJhbyBn4buTbSAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5gQ2h14buXaSBraFx4ZjRuZyBo4bujcCBs4buHOiBwaOG6o2kga2jhu5twIHbhu5tpIG3huqt1ICR7ci5wYXR0ZXJufWA7cmV0dXJuYCR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fSBraFx4ZjRuZyBo4bujcCBs4buHYDtjYXNlIm5vdF9tdWx0aXBsZV9vZiI6cmV0dXJuYFPhu5Ega2hceGY0bmcgaOG7o3AgbOG7hzogcGjhuqNpIGxceGUwIGLhu5lpIHPhu5EgY+G7p2EgJHtyLmRpdmlzb3J9YDtjYXNlInVucmVjb2duaXplZF9rZXlzIjpyZXR1cm5gS2hceGYzYSBraFx4ZjRuZyDEkcaw4bujYyBuaOG6rW4gZOG6oW5nOiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmBLaFx4ZjNhIGtoXHhmNG5nIGjhu6NwIGzhu4cgdHJvbmcgJHtyLm9yaWdpbn1gO2Nhc2UiaW52YWxpZF91bmlvbiI6cmV0dXJuIsSQ4bqndSB2w6BvIGtow7RuZyBo4bujcCBs4buHIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYEdpXHhlMSB0cuG7iyBraFx4ZjRuZyBo4bujcCBs4buHIHRyb25nICR7ci5vcmlnaW59YDtkZWZhdWx0OnJldHVybmDEkOG6p3Ugdlx4ZTBvIGtoXHhmNG5nIGjhu6NwIGzhu4dgfX0pfX0sInpoQ04iLDAsZnVuY3Rpb24oKXtsZXQgZSx0O3JldHVybntsb2NhbGVFcnJvcjooZT17c3RyaW5nOnt1bml0OiLlrZfnrKYiLHZlcmI6IuWMheWQqyJ9LGZpbGU6e3VuaXQ6IuWtl+iKgiIsdmVyYjoi5YyF5ZCrIn0sYXJyYXk6e3VuaXQ6IumhuSIsdmVyYjoi5YyF5ZCrIn0sc2V0Ont1bml0OiLpobkiLHZlcmI6IuWMheWQqyJ9fSx0PXtyZWdleDoi6L6T5YWlIixlbWFpbDoi55S15a2Q6YKu5Lu2Iix1cmw6IlVSTCIsZW1vamk6IuihqOaDheespuWPtyIsdXVpZDoiVVVJRCIsdXVpZHY0OiJVVUlEdjQiLHV1aWR2NjoiVVVJRHY2IixuYW5vaWQ6Im5hbm9pZCIsZ3VpZDoiR1VJRCIsY3VpZDoiY3VpZCIsY3VpZDI6ImN1aWQyIix1bGlkOiJVTElEIix4aWQ6IlhJRCIsa3N1aWQ6IktTVUlEIixkYXRldGltZToiSVNP5pel5pyf5pe26Ze0IixkYXRlOiJJU0/ml6XmnJ8iLHRpbWU6IklTT+aXtumXtCIsZHVyYXRpb246IklTT+aXtumVvyIsaXB2NDoiSVB2NOWcsOWdgCIsaXB2NjoiSVB2NuWcsOWdgCIsY2lkcnY0OiJJUHY0572R5q61IixjaWRydjY6IklQdjbnvZHmrrUiLGJhc2U2NDoiYmFzZTY057yW56CB5a2X56ym5LiyIixiYXNlNjR1cmw6ImJhc2U2NHVybOe8lueggeWtl+espuS4siIsanNvbl9zdHJpbmc6IkpTT07lrZfnrKbkuLIiLGUxNjQ6IkUuMTY05Y+356CBIixqd3Q6IkpXVCIsdGVtcGxhdGVfbGl0ZXJhbDoi6L6T5YWlIn0scj0+e3N3aXRjaChyLmNvZGUpe2Nhc2UiaW52YWxpZF90eXBlIjpyZXR1cm5g5peg5pWI6L6T5YWl77ya5pyf5pybICR7ci5leHBlY3RlZH3vvIzlrp7pmYXmjqXmlLYgJHsoZT0+e2xldCB0PXR5cGVvZiBlO3N3aXRjaCh0KXtjYXNlIm51bWJlciI6cmV0dXJuIE51bWJlci5pc05hTihlKT8i6Z2e5pWw5a2XKE5hTikiOiLmlbDlrZciO2Nhc2Uib2JqZWN0IjppZihBcnJheS5pc0FycmF5KGUpKXJldHVybiLmlbDnu4QiO2lmKG51bGw9PT1lKXJldHVybiLnqbrlgLwobnVsbCkiO2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSE9PU9iamVjdC5wcm90b3R5cGUmJmUuY29uc3RydWN0b3IpcmV0dXJuIGUuY29uc3RydWN0b3IubmFtZX1yZXR1cm4gdH0pKHIuaW5wdXQpfWA7Y2FzZSJpbnZhbGlkX3ZhbHVlIjppZigxPT09ci52YWx1ZXMubGVuZ3RoKXJldHVybmDml6DmlYjovpPlhaXvvJrmnJ/mnJsgJHt0byhyLnZhbHVlc1swXSl9YDtyZXR1cm5g5peg5pWI6YCJ6aG577ya5pyf5pyb5Lul5LiL5LmL5LiAICR7ZXEoci52YWx1ZXMsInwiKX1gO2Nhc2UidG9vX2JpZyI6e2xldCB0PXIuaW5jbHVzaXZlPyI8PSI6IjwiLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g5pWw5YC86L+H5aSn77ya5pyf5pybICR7ci5vcmlnaW4/PyLlgLwifSAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyLkuKrlhYPntKAifWA7cmV0dXJuYOaVsOWAvOi/h+Wkp++8muacn+acmyAke3Iub3JpZ2luPz8i5YC8In0gJHt0fSR7ci5tYXhpbXVtLnRvU3RyaW5nKCl9YH1jYXNlInRvb19zbWFsbCI6e2xldCB0PXIuaW5jbHVzaXZlPyI+PSI6Ij4iLG49ZVtyLm9yaWdpbl0/P251bGw7aWYobilyZXR1cm5g5pWw5YC86L+H5bCP77ya5pyf5pybICR7ci5vcmlnaW59ICR7dH0ke3IubWluaW11bS50b1N0cmluZygpfSAke24udW5pdH1gO3JldHVybmDmlbDlgLzov4flsI/vvJrmnJ/mnJsgJHtyLm9yaWdpbn0gJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYOaXoOaViOWtl+espuS4su+8muW/hemhu+S7pSAiJHtyLnByZWZpeH0iIOW8gOWktGA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g5peg5pWI5a2X56ym5Liy77ya5b+F6aG75LulICIke3Iuc3VmZml4fSIg57uT5bC+YDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYOaXoOaViOWtl+espuS4su+8muW/hemhu+WMheWQqyAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5g5peg5pWI5a2X56ym5Liy77ya5b+F6aG75ruh6Laz5q2j5YiZ6KGo6L6+5byPICR7ci5wYXR0ZXJufWA7cmV0dXJuYOaXoOaViCR7dFtyLmZvcm1hdF0/P3IuZm9ybWF0fWA7Y2FzZSJub3RfbXVsdGlwbGVfb2YiOnJldHVybmDml6DmlYjmlbDlrZfvvJrlv4XpobvmmK8gJHtyLmRpdmlzb3J9IOeahOWAjeaVsGA7Y2FzZSJ1bnJlY29nbml6ZWRfa2V5cyI6cmV0dXJuYOWHuueOsOacquefpeeahOmUrihrZXkpOiAke2VxKHIua2V5cywiLCAiKX1gO2Nhc2UiaW52YWxpZF9rZXkiOnJldHVybmAke3Iub3JpZ2lufSDkuK3nmoTplK4oa2V5KeaXoOaViGA7Y2FzZSJpbnZhbGlkX3VuaW9uIjpyZXR1cm4i5peg5pWI6L6T5YWlIjtjYXNlImludmFsaWRfZWxlbWVudCI6cmV0dXJuYCR7ci5vcmlnaW59IOS4reWMheWQq+aXoOaViOWAvCh2YWx1ZSlgO2RlZmF1bHQ6cmV0dXJuYOaXoOaViOi+k+WFpWB9fSl9fSwiemhUVyIsMCxmdW5jdGlvbigpe2xldCBlLHQ7cmV0dXJue2xvY2FsZUVycm9yOihlPXtzdHJpbmc6e3VuaXQ6IuWtl+WFgyIsdmVyYjoi5pOB5pyJIn0sZmlsZTp7dW5pdDoi5L2N5YWD57WEIix2ZXJiOiLmk4HmnIkifSxhcnJheTp7dW5pdDoi6aCF55uuIix2ZXJiOiLmk4HmnIkifSxzZXQ6e3VuaXQ6IumgheebriIsdmVyYjoi5pOB5pyJIn19LHQ9e3JlZ2V4OiLovLjlhaUiLGVtYWlsOiLpg7Xku7blnLDlnYAiLHVybDoiVVJMIixlbW9qaToiZW1vamkiLHV1aWQ6IlVVSUQiLHV1aWR2NDoiVVVJRHY0Iix1dWlkdjY6IlVVSUR2NiIsbmFub2lkOiJuYW5vaWQiLGd1aWQ6IkdVSUQiLGN1aWQ6ImN1aWQiLGN1aWQyOiJjdWlkMiIsdWxpZDoiVUxJRCIseGlkOiJYSUQiLGtzdWlkOiJLU1VJRCIsZGF0ZXRpbWU6IklTTyDml6XmnJ/mmYLplpMiLGRhdGU6IklTTyDml6XmnJ8iLHRpbWU6IklTTyDmmYLplpMiLGR1cmF0aW9uOiJJU08g5pyf6ZaTIixpcHY0OiJJUHY0IOS9jeWdgCIsaXB2NjoiSVB2NiDkvY3lnYAiLGNpZHJ2NDoiSVB2NCDnr4TlnI0iLGNpZHJ2NjoiSVB2NiDnr4TlnI0iLGJhc2U2NDoiYmFzZTY0IOe3qOeivOWtl+S4siIsYmFzZTY0dXJsOiJiYXNlNjR1cmwg57eo56K85a2X5LiyIixqc29uX3N0cmluZzoiSlNPTiDlrZfkuLIiLGUxNjQ6IkUuMTY0IOaVuOWAvCIsand0OiJKV1QiLHRlbXBsYXRlX2xpdGVyYWw6Iui8uOWFpSJ9LHI9Pntzd2l0Y2goci5jb2RlKXtjYXNlImludmFsaWRfdHlwZSI6cmV0dXJuYOeEoeaViOeahOi8uOWFpeWAvO+8mumgkOacn+eCuiAke3IuZXhwZWN0ZWR977yM5L2G5pS25YiwICR7KGU9PntsZXQgdD10eXBlb2YgZTtzd2l0Y2godCl7Y2FzZSJudW1iZXIiOnJldHVybiBOdW1iZXIuaXNOYU4oZSk/Ik5hTiI6Im51bWJlciI7Y2FzZSJvYmplY3QiOmlmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuImFycmF5IjtpZihudWxsPT09ZSlyZXR1cm4ibnVsbCI7aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpIT09T2JqZWN0LnByb3RvdHlwZSYmZS5jb25zdHJ1Y3RvcilyZXR1cm4gZS5jb25zdHJ1Y3Rvci5uYW1lfXJldHVybiB0fSkoci5pbnB1dCl9YDtjYXNlImludmFsaWRfdmFsdWUiOmlmKDE9PT1yLnZhbHVlcy5sZW5ndGgpcmV0dXJuYOeEoeaViOeahOi8uOWFpeWAvO+8mumgkOacn+eCuiAke3RvKHIudmFsdWVzWzBdKX1gO3JldHVybmDnhKHmlYjnmoTpgbjpoIXvvJrpoJDmnJ/ngrrku6XkuIvlhbbkuK3kuYvkuIAgJHtlcShyLnZhbHVlcywifCIpfWA7Y2FzZSJ0b29fYmlnIjp7bGV0IHQ9ci5pbmNsdXNpdmU/Ijw9IjoiPCIsbj1lW3Iub3JpZ2luXT8/bnVsbDtpZihuKXJldHVybmDmlbjlgLzpgY7lpKfvvJrpoJDmnJ8gJHtyLm9yaWdpbj8/IuWAvCJ9IOaHieeCuiAke3R9JHtyLm1heGltdW0udG9TdHJpbmcoKX0gJHtuLnVuaXQ/PyLlgIvlhYPntKAifWA7cmV0dXJuYOaVuOWAvOmBjuWkp++8mumgkOacnyAke3Iub3JpZ2luPz8i5YC8In0g5oeJ54K6ICR7dH0ke3IubWF4aW11bS50b1N0cmluZygpfWB9Y2FzZSJ0b29fc21hbGwiOntsZXQgdD1yLmluY2x1c2l2ZT8iPj0iOiI+IixuPWVbci5vcmlnaW5dPz9udWxsO2lmKG4pcmV0dXJuYOaVuOWAvOmBjuWwj++8mumgkOacnyAke3Iub3JpZ2lufSDmh4nngrogJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9ICR7bi51bml0fWA7cmV0dXJuYOaVuOWAvOmBjuWwj++8mumgkOacnyAke3Iub3JpZ2lufSDmh4nngrogJHt0fSR7ci5taW5pbXVtLnRvU3RyaW5nKCl9YH1jYXNlImludmFsaWRfZm9ybWF0IjppZigic3RhcnRzX3dpdGgiPT09ci5mb3JtYXQpcmV0dXJuYOeEoeaViOeahOWtl+S4su+8muW/hemgiOS7pSAiJHtyLnByZWZpeH0iIOmWi+mgrWA7aWYoImVuZHNfd2l0aCI9PT1yLmZvcm1hdClyZXR1cm5g54Sh5pWI55qE5a2X5Liy77ya5b+F6aCI5LulICIke3Iuc3VmZml4fSIg57WQ5bC+YDtpZigiaW5jbHVkZXMiPT09ci5mb3JtYXQpcmV0dXJuYOeEoeaViOeahOWtl+S4su+8muW/hemgiOWMheWQqyAiJHtyLmluY2x1ZGVzfSJgO2lmKCJyZWdleCI9PT1yLmZvcm1hdClyZXR1cm5g54Sh5pWI55qE5a2X5Liy77ya5b+F6aCI56ym5ZCI5qC85byPICR7ci5wYXR0ZXJufWA7cmV0dXJuYOeEoeaViOeahCAke3Rbci5mb3JtYXRdPz9yLmZvcm1hdH1gO2Nhc2Uibm90X211bHRpcGxlX29mIjpyZXR1cm5g54Sh5pWI55qE5pW45a2X77ya5b+F6aCI54K6ICR7ci5kaXZpc29yfSDnmoTlgI3mlbhgO2Nhc2UidW5yZWNvZ25pemVkX2tleXMiOnJldHVybmDnhKHms5XorZjliKXnmoTpjbXlgLwke3Iua2V5cy5sZW5ndGg+MT8i5YCRIjoiIn3vvJoke2VxKHIua2V5cywi44CBIil9YDtjYXNlImludmFsaWRfa2V5IjpyZXR1cm5gJHtyLm9yaWdpbn0g5Lit5pyJ54Sh5pWI55qE6Y215YC8YDtjYXNlImludmFsaWRfdW5pb24iOnJldHVybiLnhKHmlYjnmoTovLjlhaXlgLwiO2Nhc2UiaW52YWxpZF9lbGVtZW50IjpyZXR1cm5gJHtyLm9yaWdpbn0g5Lit5pyJ54Sh5pWI55qE5YC8YDtkZWZhdWx0OnJldHVybmDnhKHmlYjnmoTovLjlhaXlgLxgfX0pfX1dLDU1NDU4MCk7dmFyIHNPPWUuaSg1NTQ1ODApO2Z1bmN0aW9uIHNqKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc0UoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsY29lcmNlOiEwLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc1ooZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJlbWFpbCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc04oZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJndWlkIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzVChlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6InV1aWQiLGNoZWNrOiJzdHJpbmdfZm9ybWF0IixhYm9ydDohMSwuLi50aSh0KX0pfWZ1bmN0aW9uIHN6KGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXVpZCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLHZlcnNpb246InY0IiwuLi50aSh0KX0pfWZ1bmN0aW9uIHNQKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXVpZCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLHZlcnNpb246InY2IiwuLi50aSh0KX0pfWZ1bmN0aW9uIHNBKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXVpZCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLHZlcnNpb246InY3IiwuLi50aSh0KX0pfWZ1bmN0aW9uIHNVKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXJsIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzQyhlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6ImVtb2ppIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzRChlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6Im5hbm9pZCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc1IoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJjdWlkIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzTShlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6ImN1aWQyIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzTChlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6InVsaWQiLGNoZWNrOiJzdHJpbmdfZm9ybWF0IixhYm9ydDohMSwuLi50aSh0KX0pfWZ1bmN0aW9uIHNGKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoieGlkIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzVihlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6ImtzdWlkIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzQihlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6ImlwdjQiLGNoZWNrOiJzdHJpbmdfZm9ybWF0IixhYm9ydDohMSwuLi50aSh0KX0pfWZ1bmN0aW9uIHNKKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoiaXB2NiIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc1coZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJjaWRydjQiLGNoZWNrOiJzdHJpbmdfZm9ybWF0IixhYm9ydDohMSwuLi50aSh0KX0pfWZ1bmN0aW9uIHNxKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoiY2lkcnY2IixjaGVjazoic3RyaW5nX2Zvcm1hdCIsYWJvcnQ6ITEsLi4udGkodCl9KX1mdW5jdGlvbiBzRyhlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6ImJhc2U2NCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc0soZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJiYXNlNjR1cmwiLGNoZWNrOiJzdHJpbmdfZm9ybWF0IixhYm9ydDohMSwuLi50aSh0KX0pfWZ1bmN0aW9uIHNZKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoiZTE2NCIsY2hlY2s6InN0cmluZ19mb3JtYXQiLGFib3J0OiExLC4uLnRpKHQpfSl9ZnVuY3Rpb24gc0goZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJqd3QiLGNoZWNrOiJzdHJpbmdfZm9ybWF0IixhYm9ydDohMSwuLi50aSh0KX0pfWUuaSg1MjU1MjcpLGUuaSg2OTg1MzApO2xldCBzWD17QW55Om51bGwsTWludXRlOi0xLFNlY29uZDowLE1pbGxpc2Vjb25kOjMsTWljcm9zZWNvbmQ6Nn07ZnVuY3Rpb24gc1EoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJkYXRldGltZSIsY2hlY2s6InN0cmluZ19mb3JtYXQiLG9mZnNldDohMSxsb2NhbDohMSxwcmVjaXNpb246bnVsbCwuLi50aSh0KX0pfWZ1bmN0aW9uIHMwKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJzdHJpbmciLGZvcm1hdDoiZGF0ZSIsY2hlY2s6InN0cmluZ19mb3JtYXQiLC4uLnRpKHQpfSl9ZnVuY3Rpb24gczEoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN0cmluZyIsZm9ybWF0OiJ0aW1lIixjaGVjazoic3RyaW5nX2Zvcm1hdCIscHJlY2lzaW9uOm51bGwsLi4udGkodCl9KX1mdW5jdGlvbiBzNChlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3RyaW5nIixmb3JtYXQ6ImR1cmF0aW9uIixjaGVjazoic3RyaW5nX2Zvcm1hdCIsLi4udGkodCl9KX1mdW5jdGlvbiBzNihlLHQpe3JldHVybiBuZXcgZSh7dHlwZToibnVtYmVyIixjaGVja3M6W10sLi4udGkodCl9KX1mdW5jdGlvbiBzMihlLHQpe3JldHVybiBuZXcgZSh7dHlwZToibnVtYmVyIixjb2VyY2U6ITAsY2hlY2tzOltdLC4uLnRpKHQpfSl9ZnVuY3Rpb24gczkoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6Im51bWJlciIsY2hlY2s6Im51bWJlcl9mb3JtYXQiLGFib3J0OiExLGZvcm1hdDoic2FmZWludCIsLi4udGkodCl9KX1mdW5jdGlvbiBzNShlLHQpe3JldHVybiBuZXcgZSh7dHlwZToibnVtYmVyIixjaGVjazoibnVtYmVyX2Zvcm1hdCIsYWJvcnQ6ITEsZm9ybWF0OiJmbG9hdDMyIiwuLi50aSh0KX0pfWZ1bmN0aW9uIHMzKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJudW1iZXIiLGNoZWNrOiJudW1iZXJfZm9ybWF0IixhYm9ydDohMSxmb3JtYXQ6ImZsb2F0NjQiLC4uLnRpKHQpfSl9ZnVuY3Rpb24gczcoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6Im51bWJlciIsY2hlY2s6Im51bWJlcl9mb3JtYXQiLGFib3J0OiExLGZvcm1hdDoiaW50MzIiLC4uLnRpKHQpfSl9ZnVuY3Rpb24gczgoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6Im51bWJlciIsY2hlY2s6Im51bWJlcl9mb3JtYXQiLGFib3J0OiExLGZvcm1hdDoidWludDMyIiwuLi50aSh0KX0pfWZ1bmN0aW9uIHVlKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJib29sZWFuIiwuLi50aSh0KX0pfWZ1bmN0aW9uIHV0KGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJib29sZWFuIixjb2VyY2U6ITAsLi4udGkodCl9KX1mdW5jdGlvbiB1cihlLHQpe3JldHVybiBuZXcgZSh7dHlwZToiYmlnaW50IiwuLi50aSh0KX0pfWZ1bmN0aW9uIHVuKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJiaWdpbnQiLGNvZXJjZTohMCwuLi50aSh0KX0pfWZ1bmN0aW9uIHVpKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJiaWdpbnQiLGNoZWNrOiJiaWdpbnRfZm9ybWF0IixhYm9ydDohMSxmb3JtYXQ6ImludDY0IiwuLi50aSh0KX0pfWZ1bmN0aW9uIHVhKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJiaWdpbnQiLGNoZWNrOiJiaWdpbnRfZm9ybWF0IixhYm9ydDohMSxmb3JtYXQ6InVpbnQ2NCIsLi4udGkodCl9KX1mdW5jdGlvbiB1byhlLHQpe3JldHVybiBuZXcgZSh7dHlwZToic3ltYm9sIiwuLi50aSh0KX0pfWZ1bmN0aW9uIHVzKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJ1bmRlZmluZWQiLC4uLnRpKHQpfSl9ZnVuY3Rpb24gdXUoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6Im51bGwiLC4uLnRpKHQpfSl9ZnVuY3Rpb24gdWwoZSl7cmV0dXJuIG5ldyBlKHt0eXBlOiJhbnkifSl9ZnVuY3Rpb24gdWQoZSl7cmV0dXJuIG5ldyBlKHt0eXBlOiJ1bmtub3duIn0pfWZ1bmN0aW9uIHVjKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJuZXZlciIsLi4udGkodCl9KX1mdW5jdGlvbiB1cChlLHQpe3JldHVybiBuZXcgZSh7dHlwZToidm9pZCIsLi4udGkodCl9KX1mdW5jdGlvbiB1bShlLHQpe3JldHVybiBuZXcgZSh7dHlwZToiZGF0ZSIsLi4udGkodCl9KX1mdW5jdGlvbiB1ZihlLHQpe3JldHVybiBuZXcgZSh7dHlwZToiZGF0ZSIsY29lcmNlOiEwLC4uLnRpKHQpfSl9ZnVuY3Rpb24gdWgoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6Im5hbiIsLi4udGkodCl9KX1mdW5jdGlvbiB1dihlLHQpe3JldHVybiBuZXcgYUIoe2NoZWNrOiJsZXNzX3RoYW4iLC4uLnRpKHQpLHZhbHVlOmUsaW5jbHVzaXZlOiExfSl9ZnVuY3Rpb24gdWcoZSx0KXtyZXR1cm4gbmV3IGFCKHtjaGVjazoibGVzc190aGFuIiwuLi50aSh0KSx2YWx1ZTplLGluY2x1c2l2ZTohMH0pfWZ1bmN0aW9uIHV5KGUsdCl7cmV0dXJuIG5ldyBhSih7Y2hlY2s6ImdyZWF0ZXJfdGhhbiIsLi4udGkodCksdmFsdWU6ZSxpbmNsdXNpdmU6ITF9KX1mdW5jdGlvbiB1YihlLHQpe3JldHVybiBuZXcgYUooe2NoZWNrOiJncmVhdGVyX3RoYW4iLC4uLnRpKHQpLHZhbHVlOmUsaW5jbHVzaXZlOiEwfSl9ZnVuY3Rpb24gdV8oZSl7cmV0dXJuIHV5KDAsZSl9ZnVuY3Rpb24gdXgoZSl7cmV0dXJuIHV2KDAsZSl9ZnVuY3Rpb24gdSQoZSl7cmV0dXJuIHVnKDAsZSl9ZnVuY3Rpb24gdWsoZSl7cmV0dXJuIHViKDAsZSl9ZnVuY3Rpb24gdXcoZSx0KXtyZXR1cm4gbmV3IGFXKHtjaGVjazoibXVsdGlwbGVfb2YiLC4uLnRpKHQpLHZhbHVlOmV9KX1mdW5jdGlvbiB1SShlLHQpe3JldHVybiBuZXcgYUsoe2NoZWNrOiJtYXhfc2l6ZSIsLi4udGkodCksbWF4aW11bTplfSl9ZnVuY3Rpb24gdVMoZSx0KXtyZXR1cm4gbmV3IGFZKHtjaGVjazoibWluX3NpemUiLC4uLnRpKHQpLG1pbmltdW06ZX0pfWZ1bmN0aW9uIHVPKGUsdCl7cmV0dXJuIG5ldyBhSCh7Y2hlY2s6InNpemVfZXF1YWxzIiwuLi50aSh0KSxzaXplOmV9KX1mdW5jdGlvbiB1aihlLHQpe3JldHVybiBuZXcgYVgoe2NoZWNrOiJtYXhfbGVuZ3RoIiwuLi50aSh0KSxtYXhpbXVtOmV9KX1mdW5jdGlvbiB1RShlLHQpe3JldHVybiBuZXcgYVEoe2NoZWNrOiJtaW5fbGVuZ3RoIiwuLi50aSh0KSxtaW5pbXVtOmV9KX1mdW5jdGlvbiB1WihlLHQpe3JldHVybiBuZXcgYTAoe2NoZWNrOiJsZW5ndGhfZXF1YWxzIiwuLi50aSh0KSxsZW5ndGg6ZX0pfWZ1bmN0aW9uIHVOKGUsdCl7cmV0dXJuIG5ldyBhNCh7Y2hlY2s6InN0cmluZ19mb3JtYXQiLGZvcm1hdDoicmVnZXgiLC4uLnRpKHQpLHBhdHRlcm46ZX0pfWZ1bmN0aW9uIHVUKGUpe3JldHVybiBuZXcgYTYoe2NoZWNrOiJzdHJpbmdfZm9ybWF0Iixmb3JtYXQ6Imxvd2VyY2FzZSIsLi4udGkoZSl9KX1mdW5jdGlvbiB1eihlKXtyZXR1cm4gbmV3IGEyKHtjaGVjazoic3RyaW5nX2Zvcm1hdCIsZm9ybWF0OiJ1cHBlcmNhc2UiLC4uLnRpKGUpfSl9ZnVuY3Rpb24gdVAoZSx0KXtyZXR1cm4gbmV3IGE5KHtjaGVjazoic3RyaW5nX2Zvcm1hdCIsZm9ybWF0OiJpbmNsdWRlcyIsLi4udGkodCksaW5jbHVkZXM6ZX0pfWZ1bmN0aW9uIHVBKGUsdCl7cmV0dXJuIG5ldyBhNSh7Y2hlY2s6InN0cmluZ19mb3JtYXQiLGZvcm1hdDoic3RhcnRzX3dpdGgiLC4uLnRpKHQpLHByZWZpeDplfSl9ZnVuY3Rpb24gdVUoZSx0KXtyZXR1cm4gbmV3IGEzKHtjaGVjazoic3RyaW5nX2Zvcm1hdCIsZm9ybWF0OiJlbmRzX3dpdGgiLC4uLnRpKHQpLHN1ZmZpeDplfSl9ZnVuY3Rpb24gdUMoZSx0LHIpe3JldHVybiBuZXcgYTgoe2NoZWNrOiJwcm9wZXJ0eSIscHJvcGVydHk6ZSxzY2hlbWE6dCwuLi50aShyKX0pfWZ1bmN0aW9uIHVEKGUsdCl7cmV0dXJuIG5ldyBvZSh7Y2hlY2s6Im1pbWVfdHlwZSIsbWltZTplLC4uLnRpKHQpfSl9ZnVuY3Rpb24gdVIoZSl7cmV0dXJuIG5ldyBvdCh7Y2hlY2s6Im92ZXJ3cml0ZSIsdHg6ZX0pfWZ1bmN0aW9uIHVNKGUpe3JldHVybiB1Uih0PT50Lm5vcm1hbGl6ZShlKSl9ZnVuY3Rpb24gdUwoKXtyZXR1cm4gdVIoZT0+ZS50cmltKCkpfWZ1bmN0aW9uIHVGKCl7cmV0dXJuIHVSKGU9PmUudG9Mb3dlckNhc2UoKSl9ZnVuY3Rpb24gdVYoKXtyZXR1cm4gdVIoZT0+ZS50b1VwcGVyQ2FzZSgpKX1mdW5jdGlvbiB1QihlLHQscil7cmV0dXJuIG5ldyBlKHt0eXBlOiJhcnJheSIsZWxlbWVudDp0LC4uLnRpKHIpfSl9ZnVuY3Rpb24gdUooZSx0LHIpe3JldHVybiBuZXcgZSh7dHlwZToidW5pb24iLG9wdGlvbnM6dCwuLi50aShyKX0pfWZ1bmN0aW9uIHVXKGUsdCxyLG4pe3JldHVybiBuZXcgZSh7dHlwZToidW5pb24iLG9wdGlvbnM6cixkaXNjcmltaW5hdG9yOnQsLi4udGkobil9KX1mdW5jdGlvbiB1cShlLHQscil7cmV0dXJuIG5ldyBlKHt0eXBlOiJpbnRlcnNlY3Rpb24iLGxlZnQ6dCxyaWdodDpyfSl9ZnVuY3Rpb24gdUcoZSx0LHIsbil7bGV0IGk9ciBpbnN0YW5jZW9mIG9pLGE9aT9uOnI7cmV0dXJuIG5ldyBlKHt0eXBlOiJ0dXBsZSIsaXRlbXM6dCxyZXN0Omk/cjpudWxsLC4uLnRpKGEpfSl9ZnVuY3Rpb24gdUsoZSx0LHIsbil7cmV0dXJuIG5ldyBlKHt0eXBlOiJyZWNvcmQiLGtleVR5cGU6dCx2YWx1ZVR5cGU6ciwuLi50aShuKX0pfWZ1bmN0aW9uIHVZKGUsdCxyLG4pe3JldHVybiBuZXcgZSh7dHlwZToibWFwIixrZXlUeXBlOnQsdmFsdWVUeXBlOnIsLi4udGkobil9KX1mdW5jdGlvbiB1SChlLHQscil7cmV0dXJuIG5ldyBlKHt0eXBlOiJzZXQiLHZhbHVlVHlwZTp0LC4uLnRpKHIpfSl9ZnVuY3Rpb24gdVgoZSx0LHIpe3JldHVybiBuZXcgZSh7dHlwZToiZW51bSIsZW50cmllczpBcnJheS5pc0FycmF5KHQpP09iamVjdC5mcm9tRW50cmllcyh0Lm1hcChlPT5bZSxlXSkpOnQsLi4udGkocil9KX1mdW5jdGlvbiB1UShlLHQscil7cmV0dXJuIG5ldyBlKHt0eXBlOiJlbnVtIixlbnRyaWVzOnQsLi4udGkocil9KX1mdW5jdGlvbiB1MChlLHQscil7cmV0dXJuIG5ldyBlKHt0eXBlOiJsaXRlcmFsIix2YWx1ZXM6QXJyYXkuaXNBcnJheSh0KT90Olt0XSwuLi50aShyKX0pfWZ1bmN0aW9uIHUxKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJmaWxlIiwuLi50aSh0KX0pfWZ1bmN0aW9uIHU0KGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJ0cmFuc2Zvcm0iLHRyYW5zZm9ybTp0fSl9ZnVuY3Rpb24gdTYoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6Im9wdGlvbmFsIixpbm5lclR5cGU6dH0pfWZ1bmN0aW9uIHUyKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJudWxsYWJsZSIsaW5uZXJUeXBlOnR9KX1mdW5jdGlvbiB1OShlLHQscil7cmV0dXJuIG5ldyBlKHt0eXBlOiJkZWZhdWx0Iixpbm5lclR5cGU6dCxnZXQgZGVmYXVsdFZhbHVlKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHI/cigpOnJ9fSl9ZnVuY3Rpb24gdTUoZSx0LHIpe3JldHVybiBuZXcgZSh7dHlwZToibm9ub3B0aW9uYWwiLGlubmVyVHlwZTp0LC4uLnRpKHIpfSl9ZnVuY3Rpb24gdTMoZSx0KXtyZXR1cm4gbmV3IGUoe3R5cGU6InN1Y2Nlc3MiLGlubmVyVHlwZTp0fSl9ZnVuY3Rpb24gdTcoZSx0LHIpe3JldHVybiBuZXcgZSh7dHlwZToiY2F0Y2giLGlubmVyVHlwZTp0LGNhdGNoVmFsdWU6ImZ1bmN0aW9uIj09dHlwZW9mIHI/cjooKT0+cn0pfWZ1bmN0aW9uIHU4KGUsdCxyKXtyZXR1cm4gbmV3IGUoe3R5cGU6InBpcGUiLGluOnQsb3V0OnJ9KX1mdW5jdGlvbiBsZShlLHQpe3JldHVybiBuZXcgZSh7dHlwZToicmVhZG9ubHkiLGlubmVyVHlwZTp0fSl9ZnVuY3Rpb24gbHQoZSx0LHIpe3JldHVybiBuZXcgZSh7dHlwZToidGVtcGxhdGVfbGl0ZXJhbCIscGFydHM6dCwuLi50aShyKX0pfWZ1bmN0aW9uIGxyKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJsYXp5IixnZXR0ZXI6dH0pfWZ1bmN0aW9uIGxuKGUsdCl7cmV0dXJuIG5ldyBlKHt0eXBlOiJwcm9taXNlIixpbm5lclR5cGU6dH0pfWZ1bmN0aW9uIGxpKGUsdCxyKXtsZXQgbj10aShyKTtyZXR1cm4gbi5hYm9ydD8/KG4uYWJvcnQ9ITApLG5ldyBlKHt0eXBlOiJjdXN0b20iLGNoZWNrOiJjdXN0b20iLGZuOnQsLi4ubn0pfWZ1bmN0aW9uIGxhKGUsdCxyKXtyZXR1cm4gbmV3IGUoe3R5cGU6ImN1c3RvbSIsY2hlY2s6ImN1c3RvbSIsZm46dCwuLi50aShyKX0pfWZ1bmN0aW9uIGxvKGUsdCl7bGV0IHI9dGkodCksbj1yLnRydXRoeT8/WyJ0cnVlIiwiMSIsInllcyIsIm9uIiwieSIsImVuYWJsZWQiXSxpPXIuZmFsc3k/P1siZmFsc2UiLCIwIiwibm8iLCJvZmYiLCJuIiwiZGlzYWJsZWQiXTsic2Vuc2l0aXZlIiE9PXIuY2FzZSYmKG49bi5tYXAoZT0+InN0cmluZyI9PXR5cGVvZiBlP2UudG9Mb3dlckNhc2UoKTplKSxpPWkubWFwKGU9PiJzdHJpbmciPT10eXBlb2YgZT9lLnRvTG93ZXJDYXNlKCk6ZSkpO2xldCBhPW5ldyBTZXQobiksbz1uZXcgU2V0KGkpLHM9ZS5QaXBlPz9zZix1PWUuQm9vbGVhbj8/b1UsbD1lLlN0cmluZz8/b2EsZD1uZXcoZS5UcmFuc2Zvcm0/P3NuKSh7dHlwZToidHJhbnNmb3JtIix0cmFuc2Zvcm06KGUsdCk9PntsZXQgbj1lO3JldHVybiJzZW5zaXRpdmUiIT09ci5jYXNlJiYobj1uLnRvTG93ZXJDYXNlKCkpLCEhYS5oYXMobil8fCFvLmhhcyhuKSYmKHQuaXNzdWVzLnB1c2goe2NvZGU6ImludmFsaWRfdmFsdWUiLGV4cGVjdGVkOiJzdHJpbmdib29sIix2YWx1ZXM6Wy4uLmEsLi4ub10saW5wdXQ6dC52YWx1ZSxpbnN0OmR9KSx7fSl9LGVycm9yOnIuZXJyb3J9KSxjPW5ldyBzKHt0eXBlOiJwaXBlIixpbjpuZXcgbCh7dHlwZToic3RyaW5nIixlcnJvcjpyLmVycm9yfSksb3V0OmQsZXJyb3I6ci5lcnJvcn0pO3JldHVybiBuZXcgcyh7dHlwZToicGlwZSIsaW46YyxvdXQ6bmV3IHUoe3R5cGU6ImJvb2xlYW4iLGVycm9yOnIuZXJyb3J9KSxlcnJvcjpyLmVycm9yfSl9ZnVuY3Rpb24gbHMoZSx0LHIsbj17fSl7bGV0IGk9dGkobiksYT17Li4udGkobiksY2hlY2s6InN0cmluZ19mb3JtYXQiLHR5cGU6InN0cmluZyIsZm9ybWF0OnQsZm46ImZ1bmN0aW9uIj09dHlwZW9mIHI/cjplPT5yLnRlc3QoZSksLi4uaX07cmV0dXJuIHIgaW5zdGFuY2VvZiBSZWdFeHAmJihhLnBhdHRlcm49ciksbmV3IGUoYSl9ZS5zKFsiVGltZVByZWNpc2lvbiIsMCxzWCwiX2FueSIsKCk9PnVsLCJfYXJyYXkiLCgpPT51QiwiX2Jhc2U2NCIsKCk9PnNHLCJfYmFzZTY0dXJsIiwoKT0+c0ssIl9iaWdpbnQiLCgpPT51ciwiX2Jvb2xlYW4iLCgpPT51ZSwiX2NhdGNoIiwoKT0+dTcsIl9jaWRydjQiLCgpPT5zVywiX2NpZHJ2NiIsKCk9PnNxLCJfY29lcmNlZEJpZ2ludCIsKCk9PnVuLCJfY29lcmNlZEJvb2xlYW4iLCgpPT51dCwiX2NvZXJjZWREYXRlIiwoKT0+dWYsIl9jb2VyY2VkTnVtYmVyIiwoKT0+czIsIl9jb2VyY2VkU3RyaW5nIiwoKT0+c0UsIl9jdWlkIiwoKT0+c1IsIl9jdWlkMiIsKCk9PnNNLCJfY3VzdG9tIiwoKT0+bGksIl9kYXRlIiwoKT0+dW0sIl9kZWZhdWx0IiwoKT0+dTksIl9kaXNjcmltaW5hdGVkVW5pb24iLCgpPT51VywiX2UxNjQiLCgpPT5zWSwiX2VtYWlsIiwoKT0+c1osIl9lbW9qaSIsKCk9PnNDLCJfZW5kc1dpdGgiLCgpPT51VSwiX2VudW0iLCgpPT51WCwiX2ZpbGUiLCgpPT51MSwiX2Zsb2F0MzIiLCgpPT5zNSwiX2Zsb2F0NjQiLCgpPT5zMywiX2d0IiwoKT0+dXksIl9ndGUiLCgpPT51YiwiX2d1aWQiLCgpPT5zTiwiX2luY2x1ZGVzIiwoKT0+dVAsIl9pbnQiLCgpPT5zOSwiX2ludDMyIiwoKT0+czcsIl9pbnQ2NCIsKCk9PnVpLCJfaW50ZXJzZWN0aW9uIiwoKT0+dXEsIl9pcHY0IiwoKT0+c0IsIl9pcHY2IiwoKT0+c0osIl9pc29EYXRlIiwoKT0+czAsIl9pc29EYXRlVGltZSIsKCk9PnNRLCJfaXNvRHVyYXRpb24iLCgpPT5zNCwiX2lzb1RpbWUiLCgpPT5zMSwiX2p3dCIsKCk9PnNILCJfa3N1aWQiLCgpPT5zViwiX2xhenkiLCgpPT5sciwiX2xlbmd0aCIsKCk9PnVaLCJfbGl0ZXJhbCIsKCk9PnUwLCJfbG93ZXJjYXNlIiwoKT0+dVQsIl9sdCIsKCk9PnV2LCJfbHRlIiwoKT0+dWcsIl9tYXAiLCgpPT51WSwiX21heCIsKCk9PnVnLCJfbWF4TGVuZ3RoIiwoKT0+dWosIl9tYXhTaXplIiwoKT0+dUksIl9taW1lIiwoKT0+dUQsIl9taW4iLCgpPT51YiwiX21pbkxlbmd0aCIsKCk9PnVFLCJfbWluU2l6ZSIsKCk9PnVTLCJfbXVsdGlwbGVPZiIsKCk9PnV3LCJfbmFuIiwoKT0+dWgsIl9uYW5vaWQiLCgpPT5zRCwiX25hdGl2ZUVudW0iLCgpPT51USwiX25lZ2F0aXZlIiwoKT0+dXgsIl9uZXZlciIsKCk9PnVjLCJfbm9ubmVnYXRpdmUiLCgpPT51aywiX25vbm9wdGlvbmFsIiwoKT0+dTUsIl9ub25wb3NpdGl2ZSIsKCk9PnUkLCJfbm9ybWFsaXplIiwoKT0+dU0sIl9udWxsIiwoKT0+dXUsIl9udWxsYWJsZSIsKCk9PnUyLCJfbnVtYmVyIiwoKT0+czYsIl9vcHRpb25hbCIsKCk9PnU2LCJfb3ZlcndyaXRlIiwoKT0+dVIsIl9waXBlIiwoKT0+dTgsIl9wb3NpdGl2ZSIsKCk9PnVfLCJfcHJvbWlzZSIsKCk9PmxuLCJfcHJvcGVydHkiLCgpPT51QywiX3JlYWRvbmx5IiwoKT0+bGUsIl9yZWNvcmQiLCgpPT51SywiX3JlZmluZSIsKCk9PmxhLCJfcmVnZXgiLCgpPT51TiwiX3NldCIsKCk9PnVILCJfc2l6ZSIsKCk9PnVPLCJfc3RhcnRzV2l0aCIsKCk9PnVBLCJfc3RyaW5nIiwoKT0+c2osIl9zdHJpbmdGb3JtYXQiLCgpPT5scywiX3N0cmluZ2Jvb2wiLCgpPT5sbywiX3N1Y2Nlc3MiLCgpPT51MywiX3N5bWJvbCIsKCk9PnVvLCJfdGVtcGxhdGVMaXRlcmFsIiwoKT0+bHQsIl90b0xvd2VyQ2FzZSIsKCk9PnVGLCJfdG9VcHBlckNhc2UiLCgpPT51ViwiX3RyYW5zZm9ybSIsKCk9PnU0LCJfdHJpbSIsKCk9PnVMLCJfdHVwbGUiLCgpPT51RywiX3VpbnQzMiIsKCk9PnM4LCJfdWludDY0IiwoKT0+dWEsIl91bGlkIiwoKT0+c0wsIl91bmRlZmluZWQiLCgpPT51cywiX3VuaW9uIiwoKT0+dUosIl91bmtub3duIiwoKT0+dWQsIl91cHBlcmNhc2UiLCgpPT51eiwiX3VybCIsKCk9PnNVLCJfdXVpZCIsKCk9PnNULCJfdXVpZHY0IiwoKT0+c3osIl91dWlkdjYiLCgpPT5zUCwiX3V1aWR2NyIsKCk9PnNBLCJfdm9pZCIsKCk9PnVwLCJfeGlkIiwoKT0+c0ZdLDY1MDIxNSk7Y2xhc3MgbHV7Y29uc3RydWN0b3IoZSl7dGhpcy5fZGVmPWUsdGhpcy5kZWY9ZX1pbXBsZW1lbnQoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgRXJyb3IoImltcGxlbWVudCgpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBmdW5jdGlvbiIpO2xldCB0PSguLi5yKT0+e2xldCBuPXRoaXMuX2RlZi5pbnB1dD90UCh0aGlzLl9kZWYuaW5wdXQscix2b2lkIDAse2NhbGxlZTp0fSk6cjtpZighQXJyYXkuaXNBcnJheShuKSl0aHJvdyBFcnJvcigiSW52YWxpZCBhcmd1bWVudHMgc2NoZW1hOiBub3QgYW4gYXJyYXkgb3IgdHVwbGUgc2NoZW1hLiIpO2xldCBpPWUoLi4ubik7cmV0dXJuIHRoaXMuX2RlZi5vdXRwdXQ/dFAodGhpcy5fZGVmLm91dHB1dCxpLHZvaWQgMCx7Y2FsbGVlOnR9KTppfTtyZXR1cm4gdH1pbXBsZW1lbnRBc3luYyhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBFcnJvcigiaW1wbGVtZW50KCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIGZ1bmN0aW9uIik7bGV0IHQ9YXN5bmMoLi4ucik9PntsZXQgbj10aGlzLl9kZWYuaW5wdXQ/YXdhaXQgdFUodGhpcy5fZGVmLmlucHV0LHIsdm9pZCAwLHtjYWxsZWU6dH0pOnI7aWYoIUFycmF5LmlzQXJyYXkobikpdGhyb3cgRXJyb3IoIkludmFsaWQgYXJndW1lbnRzIHNjaGVtYTogbm90IGFuIGFycmF5IG9yIHR1cGxlIHNjaGVtYS4iKTtsZXQgaT1hd2FpdCBlKC4uLm4pO3JldHVybiB0aGlzLl9kZWYub3V0cHV0P3RVKHRoaXMuX2RlZi5vdXRwdXQsaSx2b2lkIDAse2NhbGxlZTp0fSk6aX07cmV0dXJuIHR9aW5wdXQoLi4uZSl7bGV0IHQ9dGhpcy5jb25zdHJ1Y3RvcjtyZXR1cm4gbmV3IHQoQXJyYXkuaXNBcnJheShlWzBdKT97dHlwZToiZnVuY3Rpb24iLGlucHV0Om5ldyBvNih7dHlwZToidHVwbGUiLGl0ZW1zOmVbMF0scmVzdDplWzFdfSksb3V0cHV0OnRoaXMuX2RlZi5vdXRwdXR9Ont0eXBlOiJmdW5jdGlvbiIsaW5wdXQ6ZVswXSxvdXRwdXQ6dGhpcy5fZGVmLm91dHB1dH0pfW91dHB1dChlKXtyZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3Ioe3R5cGU6ImZ1bmN0aW9uIixpbnB1dDp0aGlzLl9kZWYuaW5wdXQsb3V0cHV0OmV9KX19ZnVuY3Rpb24gbGwoZSl7cmV0dXJuIG5ldyBsdSh7dHlwZToiZnVuY3Rpb24iLGlucHV0OkFycmF5LmlzQXJyYXkoZT8uaW5wdXQpP3VHKG82LGU/LmlucHV0KTplPy5pbnB1dD8/dUIob0csdWQob1YpKSxvdXRwdXQ6ZT8ub3V0cHV0Pz91ZChvVil9KX1lLnMoWyIkWm9kRnVuY3Rpb24iLCgpPT5sdSwiZnVuY3Rpb24iLCgpPT5sbF0sNTIzNDk3KSxlLmkoNTIzNDk3KSxlLmkoNjUwMjE1KSxlLmkoMzQ5NjYpLGUucyhbXSw4MTgyNDkpO3ZhciBsZD1lLmkoODE4MjQ5KTtlLnMoWyIkWm9kQW55IiwwLG9GLCIkWm9kQXJyYXkiLDAsb0csIiRab2RBc3luY0Vycm9yIiwoKT0+ZUQsIiRab2RCYXNlNjQiLDAsb08sIiRab2RCYXNlNjRVUkwiLDAsb0UsIiRab2RCaWdJbnQiLDAsb0MsIiRab2RCaWdJbnRGb3JtYXQiLDAsb0QsIiRab2RCb29sZWFuIiwwLG9VLCIkWm9kQ0lEUnY0IiwwLG93LCIkWm9kQ0lEUnY2IiwwLG9JLCIkWm9kQ1VJRCIsMCxvbSwiJFpvZENVSUQyIiwwLG9mLCIkWm9kQ2F0Y2giLDAsc3AsIiRab2RDaGVjayIsMCxhRiwiJFpvZENoZWNrQmlnSW50Rm9ybWF0IiwwLGFHLCIkWm9kQ2hlY2tFbmRzV2l0aCIsMCxhMywiJFpvZENoZWNrR3JlYXRlclRoYW4iLDAsYUosIiRab2RDaGVja0luY2x1ZGVzIiwwLGE5LCIkWm9kQ2hlY2tMZW5ndGhFcXVhbHMiLDAsYTAsIiRab2RDaGVja0xlc3NUaGFuIiwwLGFCLCIkWm9kQ2hlY2tMb3dlckNhc2UiLDAsYTYsIiRab2RDaGVja01heExlbmd0aCIsMCxhWCwiJFpvZENoZWNrTWF4U2l6ZSIsMCxhSywiJFpvZENoZWNrTWltZVR5cGUiLDAsb2UsIiRab2RDaGVja01pbkxlbmd0aCIsMCxhUSwiJFpvZENoZWNrTWluU2l6ZSIsMCxhWSwiJFpvZENoZWNrTXVsdGlwbGVPZiIsMCxhVywiJFpvZENoZWNrTnVtYmVyRm9ybWF0IiwwLGFxLCIkWm9kQ2hlY2tPdmVyd3JpdGUiLDAsb3QsIiRab2RDaGVja1Byb3BlcnR5IiwwLGE4LCIkWm9kQ2hlY2tSZWdleCIsMCxhNCwiJFpvZENoZWNrU2l6ZUVxdWFscyIsMCxhSCwiJFpvZENoZWNrU3RhcnRzV2l0aCIsMCxhNSwiJFpvZENoZWNrU3RyaW5nRm9ybWF0IiwwLGExLCIkWm9kQ2hlY2tVcHBlckNhc2UiLDAsYTIsIiRab2RDdXN0b20iLDAsc3gsIiRab2RDdXN0b21TdHJpbmdGb3JtYXQiLDAsb3osIiRab2REYXRlIiwwLG9XLCIkWm9kRGVmYXVsdCIsMCxzbywiJFpvZERpc2NyaW1pbmF0ZWRVbmlvbiIsMCxvMCwiJFpvZEUxNjQiLDAsb1osIiRab2RFbWFpbCIsMCxvbCwiJFpvZEVtb2ppIiwwLG9jLCIkWm9kRW51bSIsMCxzZSwiJFpvZEVycm9yIiwwLHRTLCIkWm9kRmlsZSIsMCxzciwiJFpvZEZ1bmN0aW9uIiwoKT0+bHUsIiRab2RHVUlEIiwwLG9zLCIkWm9kSVB2NCIsMCxvJCwiJFpvZElQdjYiLDAsb2ssIiRab2RJU09EYXRlIiwwLG9iLCIkWm9kSVNPRGF0ZVRpbWUiLDAsb3ksIiRab2RJU09EdXJhdGlvbiIsMCxveCwiJFpvZElTT1RpbWUiLDAsb18sIiRab2RJbnRlcnNlY3Rpb24iLDAsbzEsIiRab2RKV1QiLDAsb1QsIiRab2RLU1VJRCIsMCxvZywiJFpvZExhenkiLDAsc18sIiRab2RMaXRlcmFsIiwwLHN0LCIkWm9kTWFwIiwwLG81LCIkWm9kTmFOIiwwLHNtLCIkWm9kTmFub0lEIiwwLG9wLCIkWm9kTmV2ZXIiLDAsb0IsIiRab2ROb25PcHRpb25hbCIsMCxzbCwiJFpvZE51bGwiLDAsb0wsIiRab2ROdWxsYWJsZSIsMCxzYSwiJFpvZE51bWJlciIsMCxvUCwiJFpvZE51bWJlckZvcm1hdCIsMCxvQSwiJFpvZE9iamVjdCIsMCxvSCwiJFpvZE9wdGlvbmFsIiwwLHNpLCIkWm9kUGlwZSIsMCxzZiwiJFpvZFByZWZhdWx0IiwwLHN1LCIkWm9kUHJvbWlzZSIsMCxzYiwiJFpvZFJlYWRvbmx5IiwwLHN2LCIkWm9kUmVhbEVycm9yIiwwLHRPLCIkWm9kUmVjb3JkIiwwLG85LCIkWm9kUmVnaXN0cnkiLCgpPT50WSwiJFpvZFNldCIsMCxvNywiJFpvZFN0cmluZyIsMCxvYSwiJFpvZFN0cmluZ0Zvcm1hdCIsMCxvbywiJFpvZFN1Y2Nlc3MiLDAsc2MsIiRab2RTeW1ib2wiLDAsb1IsIiRab2RUZW1wbGF0ZUxpdGVyYWwiLDAsc3ksIiRab2RUcmFuc2Zvcm0iLDAsc24sIiRab2RUdXBsZSIsMCxvNiwiJFpvZFR5cGUiLDAsb2ksIiRab2RVTElEIiwwLG9oLCIkWm9kVVJMIiwwLG9kLCIkWm9kVVVJRCIsMCxvdSwiJFpvZFVuZGVmaW5lZCIsMCxvTSwiJFpvZFVuaW9uIiwwLG9RLCIkWm9kVW5rbm93biIsMCxvViwiJFpvZFZvaWQiLDAsb0osIiRab2RYSUQiLDAsb3YsIiRicmFuZCIsMCxlQywiJGNvbnN0cnVjdG9yIiwoKT0+ZVUsIiRpbnB1dCIsMCx0SywiJG91dHB1dCIsMCx0RywiRG9jIiwoKT0+b3IsIkpTT05TY2hlbWEiLDAsbGQsIkpTT05TY2hlbWFHZW5lcmF0b3IiLCgpPT50USwiTkVWRVIiLDAsZUEsIlRpbWVQcmVjaXNpb24iLDAsc1gsIl9hbnkiLCgpPT51bCwiX2FycmF5IiwoKT0+dUIsIl9iYXNlNjQiLCgpPT5zRywiX2Jhc2U2NHVybCIsKCk9PnNLLCJfYmlnaW50IiwoKT0+dXIsIl9ib29sZWFuIiwoKT0+dWUsIl9jYXRjaCIsKCk9PnU3LCJfY2lkcnY0IiwoKT0+c1csIl9jaWRydjYiLCgpPT5zcSwiX2NvZXJjZWRCaWdpbnQiLCgpPT51biwiX2NvZXJjZWRCb29sZWFuIiwoKT0+dXQsIl9jb2VyY2VkRGF0ZSIsKCk9PnVmLCJfY29lcmNlZE51bWJlciIsKCk9PnMyLCJfY29lcmNlZFN0cmluZyIsKCk9PnNFLCJfY3VpZCIsKCk9PnNSLCJfY3VpZDIiLCgpPT5zTSwiX2N1c3RvbSIsKCk9PmxpLCJfZGF0ZSIsKCk9PnVtLCJfZGVmYXVsdCIsKCk9PnU5LCJfZGlzY3JpbWluYXRlZFVuaW9uIiwoKT0+dVcsIl9lMTY0IiwoKT0+c1ksIl9lbWFpbCIsKCk9PnNaLCJfZW1vamkiLCgpPT5zQywiX2VuZHNXaXRoIiwoKT0+dVUsIl9lbnVtIiwoKT0+dVgsIl9maWxlIiwoKT0+dTEsIl9mbG9hdDMyIiwoKT0+czUsIl9mbG9hdDY0IiwoKT0+czMsIl9ndCIsKCk9PnV5LCJfZ3RlIiwoKT0+dWIsIl9ndWlkIiwoKT0+c04sIl9pbmNsdWRlcyIsKCk9PnVQLCJfaW50IiwoKT0+czksIl9pbnQzMiIsKCk9PnM3LCJfaW50NjQiLCgpPT51aSwiX2ludGVyc2VjdGlvbiIsKCk9PnVxLCJfaXB2NCIsKCk9PnNCLCJfaXB2NiIsKCk9PnNKLCJfaXNvRGF0ZSIsKCk9PnMwLCJfaXNvRGF0ZVRpbWUiLCgpPT5zUSwiX2lzb0R1cmF0aW9uIiwoKT0+czQsIl9pc29UaW1lIiwoKT0+czEsIl9qd3QiLCgpPT5zSCwiX2tzdWlkIiwoKT0+c1YsIl9sYXp5IiwoKT0+bHIsIl9sZW5ndGgiLCgpPT51WiwiX2xpdGVyYWwiLCgpPT51MCwiX2xvd2VyY2FzZSIsKCk9PnVULCJfbHQiLCgpPT51diwiX2x0ZSIsKCk9PnVnLCJfbWFwIiwoKT0+dVksIl9tYXgiLCgpPT51ZywiX21heExlbmd0aCIsKCk9PnVqLCJfbWF4U2l6ZSIsKCk9PnVJLCJfbWltZSIsKCk9PnVELCJfbWluIiwoKT0+dWIsIl9taW5MZW5ndGgiLCgpPT51RSwiX21pblNpemUiLCgpPT51UywiX211bHRpcGxlT2YiLCgpPT51dywiX25hbiIsKCk9PnVoLCJfbmFub2lkIiwoKT0+c0QsIl9uYXRpdmVFbnVtIiwoKT0+dVEsIl9uZWdhdGl2ZSIsKCk9PnV4LCJfbmV2ZXIiLCgpPT51YywiX25vbm5lZ2F0aXZlIiwoKT0+dWssIl9ub25vcHRpb25hbCIsKCk9PnU1LCJfbm9ucG9zaXRpdmUiLCgpPT51JCwiX25vcm1hbGl6ZSIsKCk9PnVNLCJfbnVsbCIsKCk9PnV1LCJfbnVsbGFibGUiLCgpPT51MiwiX251bWJlciIsKCk9PnM2LCJfb3B0aW9uYWwiLCgpPT51NiwiX292ZXJ3cml0ZSIsKCk9PnVSLCJfcGFyc2UiLDAsdHosIl9wYXJzZUFzeW5jIiwwLHRBLCJfcGlwZSIsKCk9PnU4LCJfcG9zaXRpdmUiLCgpPT51XywiX3Byb21pc2UiLCgpPT5sbiwiX3Byb3BlcnR5IiwoKT0+dUMsIl9yZWFkb25seSIsKCk9PmxlLCJfcmVjb3JkIiwoKT0+dUssIl9yZWZpbmUiLCgpPT5sYSwiX3JlZ2V4IiwoKT0+dU4sIl9zYWZlUGFyc2UiLDAsdEMsIl9zYWZlUGFyc2VBc3luYyIsMCx0UiwiX3NldCIsKCk9PnVILCJfc2l6ZSIsKCk9PnVPLCJfc3RhcnRzV2l0aCIsKCk9PnVBLCJfc3RyaW5nIiwoKT0+c2osIl9zdHJpbmdGb3JtYXQiLCgpPT5scywiX3N0cmluZ2Jvb2wiLCgpPT5sbywiX3N1Y2Nlc3MiLCgpPT51MywiX3N5bWJvbCIsKCk9PnVvLCJfdGVtcGxhdGVMaXRlcmFsIiwoKT0+bHQsIl90b0xvd2VyQ2FzZSIsKCk9PnVGLCJfdG9VcHBlckNhc2UiLCgpPT51ViwiX3RyYW5zZm9ybSIsKCk9PnU0LCJfdHJpbSIsKCk9PnVMLCJfdHVwbGUiLCgpPT51RywiX3VpbnQzMiIsKCk9PnM4LCJfdWludDY0IiwoKT0+dWEsIl91bGlkIiwoKT0+c0wsIl91bmRlZmluZWQiLCgpPT51cywiX3VuaW9uIiwoKT0+dUosIl91bmtub3duIiwoKT0+dWQsIl91cHBlcmNhc2UiLCgpPT51eiwiX3VybCIsKCk9PnNVLCJfdXVpZCIsKCk9PnNULCJfdXVpZHY0IiwoKT0+c3osIl91dWlkdjYiLCgpPT5zUCwiX3V1aWR2NyIsKCk9PnNBLCJfdm9pZCIsKCk9PnVwLCJfeGlkIiwoKT0+c0YsImNsb25lIiwoKT0+dG4sImNvbmZpZyIsKCk9PmVNLCJmbGF0dGVuRXJyb3IiLCgpPT50aiwiZm9ybWF0RXJyb3IiLCgpPT50RSwiZnVuY3Rpb24iLCgpPT5sbCwiZ2xvYmFsQ29uZmlnIiwwLGVSLCJnbG9iYWxSZWdpc3RyeSIsMCx0WCwiaXNWYWxpZEJhc2U2NCIsKCk9Pm9TLCJpc1ZhbGlkQmFzZTY0VVJMIiwoKT0+b2osImlzVmFsaWRKV1QiLCgpPT5vTiwibG9jYWxlcyIsMCxzTywicGFyc2UiLDAsdFAsInBhcnNlQXN5bmMiLDAsdFUsInByZXR0aWZ5RXJyb3IiLCgpPT50VCwicmVnZXhlcyIsMCxzdywicmVnaXN0cnkiLCgpPT50SCwic2FmZVBhcnNlIiwwLHRELCJzYWZlUGFyc2VBc3luYyIsMCx0TSwidG9Eb3RQYXRoIiwoKT0+dE4sInRvSlNPTlNjaGVtYSIsKCk9PnQwLCJ0cmVlaWZ5RXJyb3IiLCgpPT50WiwidXRpbCIsMCxzaywidmVyc2lvbiIsMCxvbl0sNzEyNzE3KTt2YXIgbGM9ZS5pKDcxMjcxNyk7ZS5zKFsiWm9kQW55IiwoKT0+ZFMsIlpvZEFycmF5IiwoKT0+ZFUsIlpvZEJhc2U2NCIsKCk9PmwyLCJab2RCYXNlNjRVUkwiLCgpPT5sNSwiWm9kQmlnSW50IiwoKT0+ZGgsIlpvZEJpZ0ludEZvcm1hdCIsKCk9PmRnLCJab2RCb29sZWFuIiwoKT0+ZG0sIlpvZENJRFJ2NCIsKCk9PmwwLCJab2RDSURSdjYiLCgpPT5sNCwiWm9kQ1VJRCIsKCk9PmxNLCJab2RDVUlEMiIsKCk9PmxGLCJab2RDYXRjaCIsKCk9PmN2LCJab2RDdXN0b20iLCgpPT5jWiwiWm9kQ3VzdG9tU3RyaW5nRm9ybWF0IiwoKT0+ZHIsIlpvZERhdGUiLCgpPT5kUCwiWm9kRGVmYXVsdCIsKCk9PmN1LCJab2REaXNjcmltaW5hdGVkVW5pb24iLCgpPT5kSiwiWm9kRTE2NCIsKCk9Pmw3LCJab2RFbWFpbCIsKCk9PmxJLCJab2RFbW9qaSIsKCk9PmxVLCJab2RFbnVtIiwoKT0+ZDIsIlpvZEZpbGUiLCgpPT5kOCwiWm9kR1VJRCIsKCk9PmxPLCJab2RJUHY0IiwoKT0+bFksIlpvZElQdjYiLCgpPT5sWCwiWm9kSW50ZXJzZWN0aW9uIiwoKT0+ZHEsIlpvZEpXVCIsKCk9PmRlLCJab2RLU1VJRCIsKCk9PmxHLCJab2RMYXp5IiwoKT0+Y1MsIlpvZExpdGVyYWwiLCgpPT5kMywiWm9kTWFwIiwoKT0+ZDAsIlpvZE5hTiIsKCk9PmN5LCJab2ROYW5vSUQiLCgpPT5sRCwiWm9kTmV2ZXIiLCgpPT5kWiwiWm9kTm9uT3B0aW9uYWwiLCgpPT5jcCwiWm9kTnVsbCIsKCk9PmR3LCJab2ROdWxsYWJsZSIsKCk9PmNhLCJab2ROdW1iZXIiLCgpPT5kaSwiWm9kTnVtYmVyRm9ybWF0IiwoKT0+ZHMsIlpvZE9iamVjdCIsKCk9PmRSLCJab2RPcHRpb25hbCIsKCk9PmNuLCJab2RQaXBlIiwoKT0+Y18sIlpvZFByZWZhdWx0IiwoKT0+Y2QsIlpvZFByb21pc2UiLCgpPT5jaiwiWm9kUmVhZG9ubHkiLCgpPT5jJCwiWm9kUmVjb3JkIiwoKT0+ZEgsIlpvZFNldCIsKCk9PmQ0LCJab2RTdHJpbmciLCgpPT5sJCwiWm9kU3RyaW5nRm9ybWF0IiwoKT0+bHcsIlpvZFN1Y2Nlc3MiLCgpPT5jZiwiWm9kU3ltYm9sIiwoKT0+ZF8sIlpvZFRlbXBsYXRlTGl0ZXJhbCIsKCk9PmN3LCJab2RUcmFuc2Zvcm0iLCgpPT5jdCwiWm9kVHVwbGUiLCgpPT5kSywiWm9kVHlwZSIsKCk9PmxfLCJab2RVTElEIiwoKT0+bEIsIlpvZFVSTCIsKCk9PmxQLCJab2RVVUlEIiwoKT0+bEUsIlpvZFVuZGVmaW5lZCIsKCk9PmQkLCJab2RVbmlvbiIsKCk9PmRWLCJab2RVbmtub3duIiwoKT0+ZGosIlpvZFZvaWQiLCgpPT5kVCwiWm9kWElEIiwoKT0+bFcsIl9ab2RTdHJpbmciLCgpPT5seCwiX2RlZmF1bHQiLCgpPT5jbCwiYW55IiwoKT0+ZE8sImFycmF5IiwoKT0+ZEMsImJhc2U2NCIsKCk9Pmw5LCJiYXNlNjR1cmwiLCgpPT5sMywiYmlnaW50IiwoKT0+ZHYsImJvb2xlYW4iLCgpPT5kZiwiY2F0Y2giLCgpPT5jZywiY2hlY2siLCgpPT5jTiwiY2lkcnY0IiwoKT0+bDEsImNpZHJ2NiIsKCk9Pmw2LCJjdWlkIiwoKT0+bEwsImN1aWQyIiwoKT0+bFYsImN1c3RvbSIsKCk9PmNULCJkYXRlIiwoKT0+ZEEsImRpc2NyaW1pbmF0ZWRVbmlvbiIsKCk9PmRXLCJlMTY0IiwoKT0+bDgsImVtYWlsIiwoKT0+bFMsImVtb2ppIiwoKT0+bEMsImVudW0iLCgpPT5kOSwiZmlsZSIsKCk9PmNlLCJmbG9hdDMyIiwoKT0+ZGwsImZsb2F0NjQiLCgpPT5kZCwiZ3VpZCIsKCk9PmxqLCJpbnN0YW5jZW9mIiwoKT0+Y0EsImludCIsKCk9PmR1LCJpbnQzMiIsKCk9PmRjLCJpbnQ2NCIsKCk9PmR5LCJpbnRlcnNlY3Rpb24iLCgpPT5kRywiaXB2NCIsKCk9PmxILCJpcHY2IiwoKT0+bFEsImpzb24iLCgpPT5jQywiand0IiwoKT0+ZHQsImtleW9mIiwoKT0+ZEQsImtzdWlkIiwoKT0+bEssImxhenkiLCgpPT5jTywibGl0ZXJhbCIsKCk9PmQ3LCJsb29zZU9iamVjdCIsKCk9PmRGLCJtYXAiLCgpPT5kMSwibmFuIiwoKT0+Y2IsIm5hbm9pZCIsKCk9PmxSLCJuYXRpdmVFbnVtIiwoKT0+ZDUsIm5ldmVyIiwoKT0+ZE4sIm5vbm9wdGlvbmFsIiwoKT0+Y20sIm51bGwiLCgpPT5kSSwibnVsbGFibGUiLCgpPT5jbywibnVsbGlzaCIsKCk9PmNzLCJudW1iZXIiLCgpPT5kYSwib2JqZWN0IiwoKT0+ZE0sIm9wdGlvbmFsIiwoKT0+Y2ksInBhcnRpYWxSZWNvcmQiLCgpPT5kUSwicGlwZSIsKCk9PmN4LCJwcmVmYXVsdCIsKCk9PmNjLCJwcmVwcm9jZXNzIiwoKT0+Y0QsInByb21pc2UiLCgpPT5jRSwicmVhZG9ubHkiLCgpPT5jaywicmVjb3JkIiwoKT0+ZFgsInJlZmluZSIsKCk9PmN6LCJzZXQiLCgpPT5kNiwic3RyaWN0T2JqZWN0IiwoKT0+ZEwsInN0cmluZyIsKCk9PmxrLCJzdHJpbmdGb3JtYXQiLCgpPT5kbiwic3RyaW5nYm9vbCIsKCk9PmNVLCJzdWNjZXNzIiwoKT0+Y2gsInN1cGVyUmVmaW5lIiwoKT0+Y1AsInN5bWJvbCIsKCk9PmR4LCJ0ZW1wbGF0ZUxpdGVyYWwiLCgpPT5jSSwidHJhbnNmb3JtIiwoKT0+Y3IsInR1cGxlIiwoKT0+ZFksInVpbnQzMiIsKCk9PmRwLCJ1aW50NjQiLCgpPT5kYiwidWxpZCIsKCk9PmxKLCJ1bmRlZmluZWQiLCgpPT5kaywidW5pb24iLCgpPT5kQiwidW5rbm93biIsKCk9PmRFLCJ1cmwiLCgpPT5sQSwidXVpZCIsKCk9PmxaLCJ1dWlkdjQiLCgpPT5sTiwidXVpZHY2IiwoKT0+bFQsInV1aWR2NyIsKCk9Pmx6LCJ2b2lkIiwoKT0+ZHosInhpZCIsKCk9PmxxXSwzNjIyMDEpO2UucyhbIlpvZElTT0RhdGUiLCgpPT5sZiwiWm9kSVNPRGF0ZVRpbWUiLCgpPT5scCwiWm9kSVNPRHVyYXRpb24iLCgpPT5seSwiWm9kSVNPVGltZSIsKCk9Pmx2LCJkYXRlIiwoKT0+bGgsImRhdGV0aW1lIiwoKT0+bG0sImR1cmF0aW9uIiwoKT0+bGIsInRpbWUiLCgpPT5sZ10sNDk3MzIpO2xldCBscD1lVSgiWm9kSVNPRGF0ZVRpbWUiLChlLHQpPT57b3kuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxtKGUpe3JldHVybiBzUShscCxlKX1sZXQgbGY9ZVUoIlpvZElTT0RhdGUiLChlLHQpPT57b2IuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxoKGUpe3JldHVybiBzMChsZixlKX1sZXQgbHY9ZVUoIlpvZElTT1RpbWUiLChlLHQpPT57b18uaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxnKGUpe3JldHVybiBzMShsdixlKX1sZXQgbHk9ZVUoIlpvZElTT0R1cmF0aW9uIiwoZSx0KT0+e294LmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsYihlKXtyZXR1cm4gczQobHksZSl9bGV0IGxfPWVVKCJab2RUeXBlIiwoZSx0KT0+KG9pLmluaXQoZSx0KSxlLmRlZj10LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfZGVmIix7dmFsdWU6dH0pLGUuY2hlY2s9KC4uLnIpPT5lLmNsb25lKHsuLi50LGNoZWNrczpbLi4udC5jaGVja3M/P1tdLC4uLnIubWFwKGU9PiJmdW5jdGlvbiI9PXR5cGVvZiBlP3tfem9kOntjaGVjazplLGRlZjp7Y2hlY2s6ImN1c3RvbSJ9LG9uYXR0YWNoOltdfX06ZSldfSksZS5jbG9uZT0odCxyKT0+dG4oZSx0LHIpLGUuYnJhbmQ9KCk9PmUsZS5yZWdpc3Rlcj0odCxyKT0+KHQuYWRkKGUsciksZSksZS5wYXJzZT0odCxyKT0+dEIoZSx0LHIse2NhbGxlZTplLnBhcnNlfSksZS5zYWZlUGFyc2U9KHQscik9PnRXKGUsdCxyKSxlLnBhcnNlQXN5bmM9YXN5bmModCxyKT0+dEooZSx0LHIse2NhbGxlZTplLnBhcnNlQXN5bmN9KSxlLnNhZmVQYXJzZUFzeW5jPWFzeW5jKHQscik9PnRxKGUsdCxyKSxlLnNwYT1lLnNhZmVQYXJzZUFzeW5jLGUucmVmaW5lPSh0LHIpPT5lLmNoZWNrKGN6KHQscikpLGUuc3VwZXJSZWZpbmU9dD0+ZS5jaGVjayhjUCh0KSksZS5vdmVyd3JpdGU9dD0+ZS5jaGVjayh1Uih0KSksZS5vcHRpb25hbD0oKT0+Y2koZSksZS5udWxsYWJsZT0oKT0+Y28oZSksZS5udWxsaXNoPSgpPT5jaShjbyhlKSksZS5ub25vcHRpb25hbD10PT5jbShlLHQpLGUuYXJyYXk9KCk9PmRDKGUpLGUub3I9dD0+ZEIoW2UsdF0pLGUuYW5kPXQ9PmRHKGUsdCksZS50cmFuc2Zvcm09dD0+Y3goZSxjcih0KSksZS5kZWZhdWx0PXQ9PmNsKGUsdCksZS5wcmVmYXVsdD10PT5jYyhlLHQpLGUuY2F0Y2g9dD0+Y2coZSx0KSxlLnBpcGU9dD0+Y3goZSx0KSxlLnJlYWRvbmx5PSgpPT5jayhlKSxlLmRlc2NyaWJlPXQ9PntsZXQgcj1lLmNsb25lKCk7cmV0dXJuIHRYLmFkZChyLHtkZXNjcmlwdGlvbjp0fSkscn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImRlc2NyaXB0aW9uIix7Z2V0OigpPT50WC5nZXQoZSk/LmRlc2NyaXB0aW9uLGNvbmZpZ3VyYWJsZTohMH0pLGUubWV0YT0oLi4udCk9PntpZigwPT09dC5sZW5ndGgpcmV0dXJuIHRYLmdldChlKTtsZXQgcj1lLmNsb25lKCk7cmV0dXJuIHRYLmFkZChyLHRbMF0pLHJ9LGUuaXNPcHRpb25hbD0oKT0+ZS5zYWZlUGFyc2Uodm9pZCAwKS5zdWNjZXNzLGUuaXNOdWxsYWJsZT0oKT0+ZS5zYWZlUGFyc2UobnVsbCkuc3VjY2VzcyxlKSksbHg9ZVUoIl9ab2RTdHJpbmciLChlLHQpPT57b2EuaW5pdChlLHQpLGxfLmluaXQoZSx0KTtsZXQgcj1lLl96b2QuYmFnO2UuZm9ybWF0PXIuZm9ybWF0Pz9udWxsLGUubWluTGVuZ3RoPXIubWluaW11bT8/bnVsbCxlLm1heExlbmd0aD1yLm1heGltdW0/P251bGwsZS5yZWdleD0oLi4udCk9PmUuY2hlY2sodU4oLi4udCkpLGUuaW5jbHVkZXM9KC4uLnQpPT5lLmNoZWNrKHVQKC4uLnQpKSxlLnN0YXJ0c1dpdGg9KC4uLnQpPT5lLmNoZWNrKHVBKC4uLnQpKSxlLmVuZHNXaXRoPSguLi50KT0+ZS5jaGVjayh1VSguLi50KSksZS5taW49KC4uLnQpPT5lLmNoZWNrKHVFKC4uLnQpKSxlLm1heD0oLi4udCk9PmUuY2hlY2sodWooLi4udCkpLGUubGVuZ3RoPSguLi50KT0+ZS5jaGVjayh1WiguLi50KSksZS5ub25lbXB0eT0oLi4udCk9PmUuY2hlY2sodUUoMSwuLi50KSksZS5sb3dlcmNhc2U9dD0+ZS5jaGVjayh1VCh0KSksZS51cHBlcmNhc2U9dD0+ZS5jaGVjayh1eih0KSksZS50cmltPSgpPT5lLmNoZWNrKHVMKCkpLGUubm9ybWFsaXplPSguLi50KT0+ZS5jaGVjayh1TSguLi50KSksZS50b0xvd2VyQ2FzZT0oKT0+ZS5jaGVjayh1RigpKSxlLnRvVXBwZXJDYXNlPSgpPT5lLmNoZWNrKHVWKCkpfSksbCQ9ZVUoIlpvZFN0cmluZyIsKGUsdCk9PntvYS5pbml0KGUsdCksbHguaW5pdChlLHQpLGUuZW1haWw9dD0+ZS5jaGVjayhzWihsSSx0KSksZS51cmw9dD0+ZS5jaGVjayhzVShsUCx0KSksZS5qd3Q9dD0+ZS5jaGVjayhzSChkZSx0KSksZS5lbW9qaT10PT5lLmNoZWNrKHNDKGxVLHQpKSxlLmd1aWQ9dD0+ZS5jaGVjayhzTihsTyx0KSksZS51dWlkPXQ9PmUuY2hlY2soc1QobEUsdCkpLGUudXVpZHY0PXQ9PmUuY2hlY2soc3oobEUsdCkpLGUudXVpZHY2PXQ9PmUuY2hlY2soc1AobEUsdCkpLGUudXVpZHY3PXQ9PmUuY2hlY2soc0EobEUsdCkpLGUubmFub2lkPXQ9PmUuY2hlY2soc0QobEQsdCkpLGUuZ3VpZD10PT5lLmNoZWNrKHNOKGxPLHQpKSxlLmN1aWQ9dD0+ZS5jaGVjayhzUihsTSx0KSksZS5jdWlkMj10PT5lLmNoZWNrKHNNKGxGLHQpKSxlLnVsaWQ9dD0+ZS5jaGVjayhzTChsQix0KSksZS5iYXNlNjQ9dD0+ZS5jaGVjayhzRyhsMix0KSksZS5iYXNlNjR1cmw9dD0+ZS5jaGVjayhzSyhsNSx0KSksZS54aWQ9dD0+ZS5jaGVjayhzRihsVyx0KSksZS5rc3VpZD10PT5lLmNoZWNrKHNWKGxHLHQpKSxlLmlwdjQ9dD0+ZS5jaGVjayhzQihsWSx0KSksZS5pcHY2PXQ9PmUuY2hlY2soc0oobFgsdCkpLGUuY2lkcnY0PXQ9PmUuY2hlY2soc1cobDAsdCkpLGUuY2lkcnY2PXQ9PmUuY2hlY2soc3EobDQsdCkpLGUuZTE2ND10PT5lLmNoZWNrKHNZKGw3LHQpKSxlLmRhdGV0aW1lPXQ9PmUuY2hlY2sobG0odCkpLGUuZGF0ZT10PT5lLmNoZWNrKGxoKHQpKSxlLnRpbWU9dD0+ZS5jaGVjayhsZyh0KSksZS5kdXJhdGlvbj10PT5lLmNoZWNrKGxiKHQpKX0pO2Z1bmN0aW9uIGxrKGUpe3JldHVybiBzaihsJCxlKX1sZXQgbHc9ZVUoIlpvZFN0cmluZ0Zvcm1hdCIsKGUsdCk9Pntvby5pbml0KGUsdCksbHguaW5pdChlLHQpfSksbEk9ZVUoIlpvZEVtYWlsIiwoZSx0KT0+e29sLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsUyhlKXtyZXR1cm4gc1oobEksZSl9bGV0IGxPPWVVKCJab2RHVUlEIiwoZSx0KT0+e29zLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsaihlKXtyZXR1cm4gc04obE8sZSl9bGV0IGxFPWVVKCJab2RVVUlEIiwoZSx0KT0+e291LmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsWihlKXtyZXR1cm4gc1QobEUsZSl9ZnVuY3Rpb24gbE4oZSl7cmV0dXJuIHN6KGxFLGUpfWZ1bmN0aW9uIGxUKGUpe3JldHVybiBzUChsRSxlKX1mdW5jdGlvbiBseihlKXtyZXR1cm4gc0EobEUsZSl9bGV0IGxQPWVVKCJab2RVUkwiLChlLHQpPT57b2QuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxBKGUpe3JldHVybiBzVShsUCxlKX1sZXQgbFU9ZVUoIlpvZEVtb2ppIiwoZSx0KT0+e29jLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsQyhlKXtyZXR1cm4gc0MobFUsZSl9bGV0IGxEPWVVKCJab2ROYW5vSUQiLChlLHQpPT57b3AuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxSKGUpe3JldHVybiBzRChsRCxlKX1sZXQgbE09ZVUoIlpvZENVSUQiLChlLHQpPT57b20uaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxMKGUpe3JldHVybiBzUihsTSxlKX1sZXQgbEY9ZVUoIlpvZENVSUQyIiwoZSx0KT0+e29mLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsVihlKXtyZXR1cm4gc00obEYsZSl9bGV0IGxCPWVVKCJab2RVTElEIiwoZSx0KT0+e29oLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsSihlKXtyZXR1cm4gc0wobEIsZSl9bGV0IGxXPWVVKCJab2RYSUQiLChlLHQpPT57b3YuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGxxKGUpe3JldHVybiBzRihsVyxlKX1sZXQgbEc9ZVUoIlpvZEtTVUlEIiwoZSx0KT0+e29nLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsSyhlKXtyZXR1cm4gc1YobEcsZSl9bGV0IGxZPWVVKCJab2RJUHY0IiwoZSx0KT0+e28kLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsSChlKXtyZXR1cm4gc0IobFksZSl9bGV0IGxYPWVVKCJab2RJUHY2IiwoZSx0KT0+e29rLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsUShlKXtyZXR1cm4gc0oobFgsZSl9bGV0IGwwPWVVKCJab2RDSURSdjQiLChlLHQpPT57b3cuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGwxKGUpe3JldHVybiBzVyhsMCxlKX1sZXQgbDQ9ZVUoIlpvZENJRFJ2NiIsKGUsdCk9PntvSS5pbml0KGUsdCksbHcuaW5pdChlLHQpfSk7ZnVuY3Rpb24gbDYoZSl7cmV0dXJuIHNxKGw0LGUpfWxldCBsMj1lVSgiWm9kQmFzZTY0IiwoZSx0KT0+e29PLmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBsOShlKXtyZXR1cm4gc0cobDIsZSl9bGV0IGw1PWVVKCJab2RCYXNlNjRVUkwiLChlLHQpPT57b0UuaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGwzKGUpe3JldHVybiBzSyhsNSxlKX1sZXQgbDc9ZVUoIlpvZEUxNjQiLChlLHQpPT57b1ouaW5pdChlLHQpLGx3LmluaXQoZSx0KX0pO2Z1bmN0aW9uIGw4KGUpe3JldHVybiBzWShsNyxlKX1sZXQgZGU9ZVUoIlpvZEpXVCIsKGUsdCk9PntvVC5pbml0KGUsdCksbHcuaW5pdChlLHQpfSk7ZnVuY3Rpb24gZHQoZSl7cmV0dXJuIHNIKGRlLGUpfWxldCBkcj1lVSgiWm9kQ3VzdG9tU3RyaW5nRm9ybWF0IiwoZSx0KT0+e296LmluaXQoZSx0KSxsdy5pbml0KGUsdCl9KTtmdW5jdGlvbiBkbihlLHQscj17fSl7cmV0dXJuIGxzKGRyLGUsdCxyKX1sZXQgZGk9ZVUoIlpvZE51bWJlciIsKGUsdCk9PntvUC5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUuZ3Q9KHQscik9PmUuY2hlY2sodXkodCxyKSksZS5ndGU9KHQscik9PmUuY2hlY2sodWIodCxyKSksZS5taW49KHQscik9PmUuY2hlY2sodWIodCxyKSksZS5sdD0odCxyKT0+ZS5jaGVjayh1dih0LHIpKSxlLmx0ZT0odCxyKT0+ZS5jaGVjayh1Zyh0LHIpKSxlLm1heD0odCxyKT0+ZS5jaGVjayh1Zyh0LHIpKSxlLmludD10PT5lLmNoZWNrKGR1KHQpKSxlLnNhZmU9dD0+ZS5jaGVjayhkdSh0KSksZS5wb3NpdGl2ZT10PT5lLmNoZWNrKHV5KDAsdCkpLGUubm9ubmVnYXRpdmU9dD0+ZS5jaGVjayh1YigwLHQpKSxlLm5lZ2F0aXZlPXQ9PmUuY2hlY2sodXYoMCx0KSksZS5ub25wb3NpdGl2ZT10PT5lLmNoZWNrKHVnKDAsdCkpLGUubXVsdGlwbGVPZj0odCxyKT0+ZS5jaGVjayh1dyh0LHIpKSxlLnN0ZXA9KHQscik9PmUuY2hlY2sodXcodCxyKSksZS5maW5pdGU9KCk9PmU7bGV0IHI9ZS5fem9kLmJhZztlLm1pblZhbHVlPU1hdGgubWF4KHIubWluaW11bT8/LTEvMCxyLmV4Y2x1c2l2ZU1pbmltdW0/Py0xLzApPz9udWxsLGUubWF4VmFsdWU9TWF0aC5taW4oci5tYXhpbXVtPz8xLzAsci5leGNsdXNpdmVNYXhpbXVtPz8xLzApPz9udWxsLGUuaXNJbnQ9KHIuZm9ybWF0Pz8iIikuaW5jbHVkZXMoImludCIpfHxOdW1iZXIuaXNTYWZlSW50ZWdlcihyLm11bHRpcGxlT2Y/Py41KSxlLmlzRmluaXRlPSEwLGUuZm9ybWF0PXIuZm9ybWF0Pz9udWxsfSk7ZnVuY3Rpb24gZGEoZSl7cmV0dXJuIHM2KGRpLGUpfWxldCBkcz1lVSgiWm9kTnVtYmVyRm9ybWF0IiwoZSx0KT0+e29BLmluaXQoZSx0KSxkaS5pbml0KGUsdCl9KTtmdW5jdGlvbiBkdShlKXtyZXR1cm4gczkoZHMsZSl9ZnVuY3Rpb24gZGwoZSl7cmV0dXJuIHM1KGRzLGUpfWZ1bmN0aW9uIGRkKGUpe3JldHVybiBzMyhkcyxlKX1mdW5jdGlvbiBkYyhlKXtyZXR1cm4gczcoZHMsZSl9ZnVuY3Rpb24gZHAoZSl7cmV0dXJuIHM4KGRzLGUpfWxldCBkbT1lVSgiWm9kQm9vbGVhbiIsKGUsdCk9PntvVS5pbml0KGUsdCksbF8uaW5pdChlLHQpfSk7ZnVuY3Rpb24gZGYoZSl7cmV0dXJuIHVlKGRtLGUpfWxldCBkaD1lVSgiWm9kQmlnSW50IiwoZSx0KT0+e29DLmluaXQoZSx0KSxsXy5pbml0KGUsdCksZS5ndGU9KHQscik9PmUuY2hlY2sodWIodCxyKSksZS5taW49KHQscik9PmUuY2hlY2sodWIodCxyKSksZS5ndD0odCxyKT0+ZS5jaGVjayh1eSh0LHIpKSxlLmd0ZT0odCxyKT0+ZS5jaGVjayh1Yih0LHIpKSxlLm1pbj0odCxyKT0+ZS5jaGVjayh1Yih0LHIpKSxlLmx0PSh0LHIpPT5lLmNoZWNrKHV2KHQscikpLGUubHRlPSh0LHIpPT5lLmNoZWNrKHVnKHQscikpLGUubWF4PSh0LHIpPT5lLmNoZWNrKHVnKHQscikpLGUucG9zaXRpdmU9dD0+ZS5jaGVjayh1eShCaWdJbnQoMCksdCkpLGUubmVnYXRpdmU9dD0+ZS5jaGVjayh1dihCaWdJbnQoMCksdCkpLGUubm9ucG9zaXRpdmU9dD0+ZS5jaGVjayh1ZyhCaWdJbnQoMCksdCkpLGUubm9ubmVnYXRpdmU9dD0+ZS5jaGVjayh1YihCaWdJbnQoMCksdCkpLGUubXVsdGlwbGVPZj0odCxyKT0+ZS5jaGVjayh1dyh0LHIpKTtsZXQgcj1lLl96b2QuYmFnO2UubWluVmFsdWU9ci5taW5pbXVtPz9udWxsLGUubWF4VmFsdWU9ci5tYXhpbXVtPz9udWxsLGUuZm9ybWF0PXIuZm9ybWF0Pz9udWxsfSk7ZnVuY3Rpb24gZHYoZSl7cmV0dXJuIHVyKGRoLGUpfWxldCBkZz1lVSgiWm9kQmlnSW50Rm9ybWF0IiwoZSx0KT0+e29ELmluaXQoZSx0KSxkaC5pbml0KGUsdCl9KTtmdW5jdGlvbiBkeShlKXtyZXR1cm4gdWkoZGcsZSl9ZnVuY3Rpb24gZGIoZSl7cmV0dXJuIHVhKGRnLGUpfWxldCBkXz1lVSgiWm9kU3ltYm9sIiwoZSx0KT0+e29SLmluaXQoZSx0KSxsXy5pbml0KGUsdCl9KTtmdW5jdGlvbiBkeChlKXtyZXR1cm4gdW8oZF8sZSl9bGV0IGQkPWVVKCJab2RVbmRlZmluZWQiLChlLHQpPT57b00uaW5pdChlLHQpLGxfLmluaXQoZSx0KX0pO2Z1bmN0aW9uIGRrKGUpe3JldHVybiB1cyhkJCxlKX1sZXQgZHc9ZVUoIlpvZE51bGwiLChlLHQpPT57b0wuaW5pdChlLHQpLGxfLmluaXQoZSx0KX0pO2Z1bmN0aW9uIGRJKGUpe3JldHVybiB1dShkdyxlKX1sZXQgZFM9ZVUoIlpvZEFueSIsKGUsdCk9PntvRi5pbml0KGUsdCksbF8uaW5pdChlLHQpfSk7ZnVuY3Rpb24gZE8oKXtyZXR1cm4gdWwoZFMpfWxldCBkaj1lVSgiWm9kVW5rbm93biIsKGUsdCk9PntvVi5pbml0KGUsdCksbF8uaW5pdChlLHQpfSk7ZnVuY3Rpb24gZEUoKXtyZXR1cm4gdWQoZGopfWxldCBkWj1lVSgiWm9kTmV2ZXIiLChlLHQpPT57b0IuaW5pdChlLHQpLGxfLmluaXQoZSx0KX0pO2Z1bmN0aW9uIGROKGUpe3JldHVybiB1YyhkWixlKX1sZXQgZFQ9ZVUoIlpvZFZvaWQiLChlLHQpPT57b0ouaW5pdChlLHQpLGxfLmluaXQoZSx0KX0pO2Z1bmN0aW9uIGR6KGUpe3JldHVybiB1cChkVCxlKX1sZXQgZFA9ZVUoIlpvZERhdGUiLChlLHQpPT57b1cuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLm1pbj0odCxyKT0+ZS5jaGVjayh1Yih0LHIpKSxlLm1heD0odCxyKT0+ZS5jaGVjayh1Zyh0LHIpKTtsZXQgcj1lLl96b2QuYmFnO2UubWluRGF0ZT1yLm1pbmltdW0/bmV3IERhdGUoci5taW5pbXVtKTpudWxsLGUubWF4RGF0ZT1yLm1heGltdW0/bmV3IERhdGUoci5tYXhpbXVtKTpudWxsfSk7ZnVuY3Rpb24gZEEoZSl7cmV0dXJuIHVtKGRQLGUpfWxldCBkVT1lVSgiWm9kQXJyYXkiLChlLHQpPT57b0cuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLmVsZW1lbnQ9dC5lbGVtZW50LGUubWluPSh0LHIpPT5lLmNoZWNrKHVFKHQscikpLGUubm9uZW1wdHk9dD0+ZS5jaGVjayh1RSgxLHQpKSxlLm1heD0odCxyKT0+ZS5jaGVjayh1aih0LHIpKSxlLmxlbmd0aD0odCxyKT0+ZS5jaGVjayh1Wih0LHIpKSxlLnVud3JhcD0oKT0+ZS5lbGVtZW50fSk7ZnVuY3Rpb24gZEMoZSx0KXtyZXR1cm4gdUIoZFUsZSx0KX1mdW5jdGlvbiBkRChlKXtyZXR1cm4gZDcoT2JqZWN0LmtleXMoZS5fem9kLmRlZi5zaGFwZSkpfWxldCBkUj1lVSgiWm9kT2JqZWN0IiwoZSx0KT0+e29ILmluaXQoZSx0KSxsXy5pbml0KGUsdCksc2suZGVmaW5lTGF6eShlLCJzaGFwZSIsKCk9PnQuc2hhcGUpLGUua2V5b2Y9KCk9PmQ5KE9iamVjdC5rZXlzKGUuX3pvZC5kZWYuc2hhcGUpKSxlLmNhdGNoYWxsPXQ9PmUuY2xvbmUoey4uLmUuX3pvZC5kZWYsY2F0Y2hhbGw6dH0pLGUucGFzc3Rocm91Z2g9KCk9PmUuY2xvbmUoey4uLmUuX3pvZC5kZWYsY2F0Y2hhbGw6ZEUoKX0pLGUubG9vc2U9KCk9PmUuY2xvbmUoey4uLmUuX3pvZC5kZWYsY2F0Y2hhbGw6ZEUoKX0pLGUuc3RyaWN0PSgpPT5lLmNsb25lKHsuLi5lLl96b2QuZGVmLGNhdGNoYWxsOmROKCl9KSxlLnN0cmlwPSgpPT5lLmNsb25lKHsuLi5lLl96b2QuZGVmLGNhdGNoYWxsOnZvaWQgMH0pLGUuZXh0ZW5kPXQ9PnNrLmV4dGVuZChlLHQpLGUubWVyZ2U9dD0+c2subWVyZ2UoZSx0KSxlLnBpY2s9dD0+c2sucGljayhlLHQpLGUub21pdD10PT5zay5vbWl0KGUsdCksZS5wYXJ0aWFsPSguLi50KT0+c2sucGFydGlhbChjbixlLHRbMF0pLGUucmVxdWlyZWQ9KC4uLnQpPT5zay5yZXF1aXJlZChjcCxlLHRbMF0pfSk7ZnVuY3Rpb24gZE0oZSx0KXtyZXR1cm4gbmV3IGRSKHt0eXBlOiJvYmplY3QiLGdldCBzaGFwZSgpe3JldHVybiBzay5hc3NpZ25Qcm9wKHRoaXMsInNoYXBlIix7Li4uZX0pLHRoaXMuc2hhcGV9LC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWZ1bmN0aW9uIGRMKGUsdCl7cmV0dXJuIG5ldyBkUih7dHlwZToib2JqZWN0IixnZXQgc2hhcGUoKXtyZXR1cm4gc2suYXNzaWduUHJvcCh0aGlzLCJzaGFwZSIsey4uLmV9KSx0aGlzLnNoYXBlfSxjYXRjaGFsbDpkTigpLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWZ1bmN0aW9uIGRGKGUsdCl7cmV0dXJuIG5ldyBkUih7dHlwZToib2JqZWN0IixnZXQgc2hhcGUoKXtyZXR1cm4gc2suYXNzaWduUHJvcCh0aGlzLCJzaGFwZSIsey4uLmV9KSx0aGlzLnNoYXBlfSxjYXRjaGFsbDpkRSgpLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWxldCBkVj1lVSgiWm9kVW5pb24iLChlLHQpPT57b1EuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLm9wdGlvbnM9dC5vcHRpb25zfSk7ZnVuY3Rpb24gZEIoZSx0KXtyZXR1cm4gbmV3IGRWKHt0eXBlOiJ1bmlvbiIsb3B0aW9uczplLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWxldCBkSj1lVSgiWm9kRGlzY3JpbWluYXRlZFVuaW9uIiwoZSx0KT0+e2RWLmluaXQoZSx0KSxvMC5pbml0KGUsdCl9KTtmdW5jdGlvbiBkVyhlLHQscil7cmV0dXJuIG5ldyBkSih7dHlwZToidW5pb24iLG9wdGlvbnM6dCxkaXNjcmltaW5hdG9yOmUsLi4uc2subm9ybWFsaXplUGFyYW1zKHIpfSl9bGV0IGRxPWVVKCJab2RJbnRlcnNlY3Rpb24iLChlLHQpPT57bzEuaW5pdChlLHQpLGxfLmluaXQoZSx0KX0pO2Z1bmN0aW9uIGRHKGUsdCl7cmV0dXJuIG5ldyBkcSh7dHlwZToiaW50ZXJzZWN0aW9uIixsZWZ0OmUscmlnaHQ6dH0pfWxldCBkSz1lVSgiWm9kVHVwbGUiLChlLHQpPT57bzYuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLnJlc3Q9dD0+ZS5jbG9uZSh7Li4uZS5fem9kLmRlZixyZXN0OnR9KX0pO2Z1bmN0aW9uIGRZKGUsdCxyKXtsZXQgbj10IGluc3RhbmNlb2Ygb2ksaT1uP3I6dDtyZXR1cm4gbmV3IGRLKHt0eXBlOiJ0dXBsZSIsaXRlbXM6ZSxyZXN0Om4/dDpudWxsLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyhpKX0pfWxldCBkSD1lVSgiWm9kUmVjb3JkIiwoZSx0KT0+e285LmluaXQoZSx0KSxsXy5pbml0KGUsdCksZS5rZXlUeXBlPXQua2V5VHlwZSxlLnZhbHVlVHlwZT10LnZhbHVlVHlwZX0pO2Z1bmN0aW9uIGRYKGUsdCxyKXtyZXR1cm4gbmV3IGRIKHt0eXBlOiJyZWNvcmQiLGtleVR5cGU6ZSx2YWx1ZVR5cGU6dCwuLi5zay5ub3JtYWxpemVQYXJhbXMocil9KX1mdW5jdGlvbiBkUShlLHQscil7cmV0dXJuIG5ldyBkSCh7dHlwZToicmVjb3JkIixrZXlUeXBlOmRCKFtlLGROKCldKSx2YWx1ZVR5cGU6dCwuLi5zay5ub3JtYWxpemVQYXJhbXMocil9KX1sZXQgZDA9ZVUoIlpvZE1hcCIsKGUsdCk9PntvNS5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUua2V5VHlwZT10LmtleVR5cGUsZS52YWx1ZVR5cGU9dC52YWx1ZVR5cGV9KTtmdW5jdGlvbiBkMShlLHQscil7cmV0dXJuIG5ldyBkMCh7dHlwZToibWFwIixrZXlUeXBlOmUsdmFsdWVUeXBlOnQsLi4uc2subm9ybWFsaXplUGFyYW1zKHIpfSl9bGV0IGQ0PWVVKCJab2RTZXQiLChlLHQpPT57bzcuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLm1pbj0oLi4udCk9PmUuY2hlY2sodVMoLi4udCkpLGUubm9uZW1wdHk9dD0+ZS5jaGVjayh1UygxLHQpKSxlLm1heD0oLi4udCk9PmUuY2hlY2sodUkoLi4udCkpLGUuc2l6ZT0oLi4udCk9PmUuY2hlY2sodU8oLi4udCkpfSk7ZnVuY3Rpb24gZDYoZSx0KXtyZXR1cm4gbmV3IGQ0KHt0eXBlOiJzZXQiLHZhbHVlVHlwZTplLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWxldCBkMj1lVSgiWm9kRW51bSIsKGUsdCk9PntzZS5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUuZW51bT10LmVudHJpZXMsZS5vcHRpb25zPU9iamVjdC52YWx1ZXModC5lbnRyaWVzKTtsZXQgcj1uZXcgU2V0KE9iamVjdC5rZXlzKHQuZW50cmllcykpO2UuZXh0cmFjdD0oZSxuKT0+e2xldCBpPXt9O2ZvcihsZXQgbiBvZiBlKWlmKHIuaGFzKG4pKWlbbl09dC5lbnRyaWVzW25dO2Vsc2UgdGhyb3cgRXJyb3IoYEtleSAke259IG5vdCBmb3VuZCBpbiBlbnVtYCk7cmV0dXJuIG5ldyBkMih7Li4udCxjaGVja3M6W10sLi4uc2subm9ybWFsaXplUGFyYW1zKG4pLGVudHJpZXM6aX0pfSxlLmV4Y2x1ZGU9KGUsbik9PntsZXQgaT17Li4udC5lbnRyaWVzfTtmb3IobGV0IHQgb2YgZSlpZihyLmhhcyh0KSlkZWxldGUgaVt0XTtlbHNlIHRocm93IEVycm9yKGBLZXkgJHt0fSBub3QgZm91bmQgaW4gZW51bWApO3JldHVybiBuZXcgZDIoey4uLnQsY2hlY2tzOltdLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyhuKSxlbnRyaWVzOml9KX19KTtmdW5jdGlvbiBkOShlLHQpe3JldHVybiBuZXcgZDIoe3R5cGU6ImVudW0iLGVudHJpZXM6QXJyYXkuaXNBcnJheShlKT9PYmplY3QuZnJvbUVudHJpZXMoZS5tYXAoZT0+W2UsZV0pKTplLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWZ1bmN0aW9uIGQ1KGUsdCl7cmV0dXJuIG5ldyBkMih7dHlwZToiZW51bSIsZW50cmllczplLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWxldCBkMz1lVSgiWm9kTGl0ZXJhbCIsKGUsdCk9PntzdC5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUudmFsdWVzPW5ldyBTZXQodC52YWx1ZXMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJ2YWx1ZSIse2dldCgpe2lmKHQudmFsdWVzLmxlbmd0aD4xKXRocm93IEVycm9yKCJUaGlzIHNjaGVtYSBjb250YWlucyBtdWx0aXBsZSB2YWxpZCBsaXRlcmFsIHZhbHVlcy4gVXNlIGAudmFsdWVzYCBpbnN0ZWFkLiIpO3JldHVybiB0LnZhbHVlc1swXX19KX0pO2Z1bmN0aW9uIGQ3KGUsdCl7cmV0dXJuIG5ldyBkMyh7dHlwZToibGl0ZXJhbCIsdmFsdWVzOkFycmF5LmlzQXJyYXkoZSk/ZTpbZV0sLi4uc2subm9ybWFsaXplUGFyYW1zKHQpfSl9bGV0IGQ4PWVVKCJab2RGaWxlIiwoZSx0KT0+e3NyLmluaXQoZSx0KSxsXy5pbml0KGUsdCksZS5taW49KHQscik9PmUuY2hlY2sodVModCxyKSksZS5tYXg9KHQscik9PmUuY2hlY2sodUkodCxyKSksZS5taW1lPSh0LHIpPT5lLmNoZWNrKHVEKEFycmF5LmlzQXJyYXkodCk/dDpbdF0scikpfSk7ZnVuY3Rpb24gY2UoZSl7cmV0dXJuIHUxKGQ4LGUpfWxldCBjdD1lVSgiWm9kVHJhbnNmb3JtIiwoZSx0KT0+e3NuLmluaXQoZSx0KSxsXy5pbml0KGUsdCksZS5fem9kLnBhcnNlPShyLG4pPT57ci5hZGRJc3N1ZT1uPT57InN0cmluZyI9PXR5cGVvZiBuP3IuaXNzdWVzLnB1c2goc2suaXNzdWUobixyLnZhbHVlLHQpKToobi5mYXRhbCYmKG4uY29udGludWU9ITEpLG4uY29kZT8/KG4uY29kZT0iY3VzdG9tIiksbi5pbnB1dD8/KG4uaW5wdXQ9ci52YWx1ZSksbi5pbnN0Pz8obi5pbnN0PWUpLG4uY29udGludWU/PyhuLmNvbnRpbnVlPSEwKSxyLmlzc3Vlcy5wdXNoKHNrLmlzc3VlKG4pKSl9O2xldCBpPXQudHJhbnNmb3JtKHIudmFsdWUscik7cmV0dXJuIGkgaW5zdGFuY2VvZiBQcm9taXNlP2kudGhlbihlPT4oci52YWx1ZT1lLHIpKTooci52YWx1ZT1pLHIpfX0pO2Z1bmN0aW9uIGNyKGUpe3JldHVybiBuZXcgY3Qoe3R5cGU6InRyYW5zZm9ybSIsdHJhbnNmb3JtOmV9KX1sZXQgY249ZVUoIlpvZE9wdGlvbmFsIiwoZSx0KT0+e3NpLmluaXQoZSx0KSxsXy5pbml0KGUsdCksZS51bndyYXA9KCk9PmUuX3pvZC5kZWYuaW5uZXJUeXBlfSk7ZnVuY3Rpb24gY2koZSl7cmV0dXJuIG5ldyBjbih7dHlwZToib3B0aW9uYWwiLGlubmVyVHlwZTplfSl9bGV0IGNhPWVVKCJab2ROdWxsYWJsZSIsKGUsdCk9PntzYS5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUudW53cmFwPSgpPT5lLl96b2QuZGVmLmlubmVyVHlwZX0pO2Z1bmN0aW9uIGNvKGUpe3JldHVybiBuZXcgY2Eoe3R5cGU6Im51bGxhYmxlIixpbm5lclR5cGU6ZX0pfWZ1bmN0aW9uIGNzKGUpe3JldHVybiBjaShjbyhlKSl9bGV0IGN1PWVVKCJab2REZWZhdWx0IiwoZSx0KT0+e3NvLmluaXQoZSx0KSxsXy5pbml0KGUsdCksZS51bndyYXA9KCk9PmUuX3pvZC5kZWYuaW5uZXJUeXBlLGUucmVtb3ZlRGVmYXVsdD1lLnVud3JhcH0pO2Z1bmN0aW9uIGNsKGUsdCl7cmV0dXJuIG5ldyBjdSh7dHlwZToiZGVmYXVsdCIsaW5uZXJUeXBlOmUsZ2V0IGRlZmF1bHRWYWx1ZSgpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3QoKTp0fX0pfWxldCBjZD1lVSgiWm9kUHJlZmF1bHQiLChlLHQpPT57c3UuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLnVud3JhcD0oKT0+ZS5fem9kLmRlZi5pbm5lclR5cGV9KTtmdW5jdGlvbiBjYyhlLHQpe3JldHVybiBuZXcgY2Qoe3R5cGU6InByZWZhdWx0Iixpbm5lclR5cGU6ZSxnZXQgZGVmYXVsdFZhbHVlKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/dCgpOnR9fSl9bGV0IGNwPWVVKCJab2ROb25PcHRpb25hbCIsKGUsdCk9PntzbC5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUudW53cmFwPSgpPT5lLl96b2QuZGVmLmlubmVyVHlwZX0pO2Z1bmN0aW9uIGNtKGUsdCl7cmV0dXJuIG5ldyBjcCh7dHlwZToibm9ub3B0aW9uYWwiLGlubmVyVHlwZTplLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWxldCBjZj1lVSgiWm9kU3VjY2VzcyIsKGUsdCk9PntzYy5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUudW53cmFwPSgpPT5lLl96b2QuZGVmLmlubmVyVHlwZX0pO2Z1bmN0aW9uIGNoKGUpe3JldHVybiBuZXcgY2Yoe3R5cGU6InN1Y2Nlc3MiLGlubmVyVHlwZTplfSl9bGV0IGN2PWVVKCJab2RDYXRjaCIsKGUsdCk9PntzcC5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUudW53cmFwPSgpPT5lLl96b2QuZGVmLmlubmVyVHlwZSxlLnJlbW92ZUNhdGNoPWUudW53cmFwfSk7ZnVuY3Rpb24gY2coZSx0KXtyZXR1cm4gbmV3IGN2KHt0eXBlOiJjYXRjaCIsaW5uZXJUeXBlOmUsY2F0Y2hWYWx1ZToiZnVuY3Rpb24iPT10eXBlb2YgdD90OigpPT50fSl9bGV0IGN5PWVVKCJab2ROYU4iLChlLHQpPT57c20uaW5pdChlLHQpLGxfLmluaXQoZSx0KX0pO2Z1bmN0aW9uIGNiKGUpe3JldHVybiB1aChjeSxlKX1sZXQgY189ZVUoIlpvZFBpcGUiLChlLHQpPT57c2YuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLmluPXQuaW4sZS5vdXQ9dC5vdXR9KTtmdW5jdGlvbiBjeChlLHQpe3JldHVybiBuZXcgY18oe3R5cGU6InBpcGUiLGluOmUsb3V0OnR9KX1sZXQgYyQ9ZVUoIlpvZFJlYWRvbmx5IiwoZSx0KT0+e3N2LmluaXQoZSx0KSxsXy5pbml0KGUsdCl9KTtmdW5jdGlvbiBjayhlKXtyZXR1cm4gbmV3IGMkKHt0eXBlOiJyZWFkb25seSIsaW5uZXJUeXBlOmV9KX1sZXQgY3c9ZVUoIlpvZFRlbXBsYXRlTGl0ZXJhbCIsKGUsdCk9PntzeS5pbml0KGUsdCksbF8uaW5pdChlLHQpfSk7ZnVuY3Rpb24gY0koZSx0KXtyZXR1cm4gbmV3IGN3KHt0eXBlOiJ0ZW1wbGF0ZV9saXRlcmFsIixwYXJ0czplLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pfWxldCBjUz1lVSgiWm9kTGF6eSIsKGUsdCk9PntzXy5pbml0KGUsdCksbF8uaW5pdChlLHQpLGUudW53cmFwPSgpPT5lLl96b2QuZGVmLmdldHRlcigpfSk7ZnVuY3Rpb24gY08oZSl7cmV0dXJuIG5ldyBjUyh7dHlwZToibGF6eSIsZ2V0dGVyOmV9KX1sZXQgY2o9ZVUoIlpvZFByb21pc2UiLChlLHQpPT57c2IuaW5pdChlLHQpLGxfLmluaXQoZSx0KSxlLnVud3JhcD0oKT0+ZS5fem9kLmRlZi5pbm5lclR5cGV9KTtmdW5jdGlvbiBjRShlKXtyZXR1cm4gbmV3IGNqKHt0eXBlOiJwcm9taXNlIixpbm5lclR5cGU6ZX0pfWxldCBjWj1lVSgiWm9kQ3VzdG9tIiwoZSx0KT0+e3N4LmluaXQoZSx0KSxsXy5pbml0KGUsdCl9KTtmdW5jdGlvbiBjTihlKXtsZXQgdD1uZXcgYUYoe2NoZWNrOiJjdXN0b20ifSk7cmV0dXJuIHQuX3pvZC5jaGVjaz1lLHR9ZnVuY3Rpb24gY1QoZSx0KXtyZXR1cm4gbGkoY1osZT8/KCgpPT4hMCksdCl9ZnVuY3Rpb24gY3ooZSx0PXt9KXtyZXR1cm4gbGEoY1osZSx0KX1mdW5jdGlvbiBjUChlKXtsZXQgdD1jTihyPT4oci5hZGRJc3N1ZT1lPT57InN0cmluZyI9PXR5cGVvZiBlP3IuaXNzdWVzLnB1c2goc2suaXNzdWUoZSxyLnZhbHVlLHQuX3pvZC5kZWYpKTooZS5mYXRhbCYmKGUuY29udGludWU9ITEpLGUuY29kZT8/KGUuY29kZT0iY3VzdG9tIiksZS5pbnB1dD8/KGUuaW5wdXQ9ci52YWx1ZSksZS5pbnN0Pz8oZS5pbnN0PXQpLGUuY29udGludWU/PyhlLmNvbnRpbnVlPSF0Ll96b2QuZGVmLmFib3J0KSxyLmlzc3Vlcy5wdXNoKHNrLmlzc3VlKGUpKSl9LGUoci52YWx1ZSxyKSkpO3JldHVybiB0fWZ1bmN0aW9uIGNBKGUsdD17ZXJyb3I6YElucHV0IG5vdCBpbnN0YW5jZSBvZiAke2UubmFtZX1gfSl7bGV0IHI9bmV3IGNaKHt0eXBlOiJjdXN0b20iLGNoZWNrOiJjdXN0b20iLGZuOnQ9PnQgaW5zdGFuY2VvZiBlLGFib3J0OiEwLC4uLnNrLm5vcm1hbGl6ZVBhcmFtcyh0KX0pO3JldHVybiByLl96b2QuYmFnLkNsYXNzPWUscn1sZXQgY1U9KC4uLmUpPT5sbyh7UGlwZTpjXyxCb29sZWFuOmRtLFN0cmluZzpsJCxUcmFuc2Zvcm06Y3R9LC4uLmUpO2Z1bmN0aW9uIGNDKGUpe2xldCB0PWNPKCgpPT5kQihbbGsoZSksZGEoKSxkZigpLGRJKCksZEModCksZFgobGsoKSx0KV0pKTtyZXR1cm4gdH1mdW5jdGlvbiBjRChlLHQpe3JldHVybiBjeChjcihlKSx0KX1lLmkoMzYyMjAxKSxlLnMoW10sMzQyMzMyKSxlLmkoMzQyMzMyKSxlLnMoWyJlbmRzV2l0aCIsKCk9PnVVLCJndCIsKCk9PnV5LCJndGUiLCgpPT51YiwiaW5jbHVkZXMiLCgpPT51UCwibGVuZ3RoIiwoKT0+dVosImxvd2VyY2FzZSIsKCk9PnVULCJsdCIsKCk9PnV2LCJsdGUiLCgpPT51ZywibWF4TGVuZ3RoIiwoKT0+dWosIm1heFNpemUiLCgpPT51SSwibWltZSIsKCk9PnVELCJtaW5MZW5ndGgiLCgpPT51RSwibWluU2l6ZSIsKCk9PnVTLCJtdWx0aXBsZU9mIiwoKT0+dXcsIm5lZ2F0aXZlIiwoKT0+dXgsIm5vbm5lZ2F0aXZlIiwoKT0+dWssIm5vbnBvc2l0aXZlIiwoKT0+dSQsIm5vcm1hbGl6ZSIsKCk9PnVNLCJvdmVyd3JpdGUiLCgpPT51UiwicG9zaXRpdmUiLCgpPT51XywicHJvcGVydHkiLCgpPT51QywicmVnZXgiLCgpPT51Tiwic2l6ZSIsKCk9PnVPLCJzdGFydHNXaXRoIiwoKT0+dUEsInRvTG93ZXJDYXNlIiwoKT0+dUYsInRvVXBwZXJDYXNlIiwoKT0+dVYsInRyaW0iLCgpPT51TCwidXBwZXJjYXNlIiwoKT0+dXpdLDQzMDQyMSksZS5pKDQzMDQyMSksZS5pKDc4OTI4MiksZS5pKDEwMDM2NCk7bGV0IGNSPXtpbnZhbGlkX3R5cGU6ImludmFsaWRfdHlwZSIsdG9vX2JpZzoidG9vX2JpZyIsdG9vX3NtYWxsOiJ0b29fc21hbGwiLGludmFsaWRfZm9ybWF0OiJpbnZhbGlkX2Zvcm1hdCIsbm90X211bHRpcGxlX29mOiJub3RfbXVsdGlwbGVfb2YiLHVucmVjb2duaXplZF9rZXlzOiJ1bnJlY29nbml6ZWRfa2V5cyIsaW52YWxpZF91bmlvbjoiaW52YWxpZF91bmlvbiIsaW52YWxpZF9rZXk6ImludmFsaWRfa2V5IixpbnZhbGlkX2VsZW1lbnQ6ImludmFsaWRfZWxlbWVudCIsaW52YWxpZF92YWx1ZToiaW52YWxpZF92YWx1ZSIsY3VzdG9tOiJjdXN0b20ifTtmdW5jdGlvbiBjTShlKXtlTSh7Y3VzdG9tRXJyb3I6ZX0pfWZ1bmN0aW9uIGNMKCl7cmV0dXJuIGVNKCkuY3VzdG9tRXJyb3J9ZS5zKFsiWm9kSXNzdWVDb2RlIiwwLGNSLCJnZXRFcnJvck1hcCIsKCk9PmNMLCJzZXRFcnJvck1hcCIsKCk9PmNNXSwzMDYwMzQpLGUuaSgzMDYwMzQpLGUucyhbIiRicmFuZCIsMCxlQywiWm9kSXNzdWVDb2RlIiwwLGNSLCJjb25maWciLCgpPT5lTSwiZ2V0RXJyb3JNYXAiLCgpPT5jTCwic2V0RXJyb3JNYXAiLCgpPT5jTV0sNDU4ODI5KSxlLmkoNDU4ODI5KTt2YXIgY0Y9ZS5pKDQ5NzMyKTtmdW5jdGlvbiBjVihlKXtyZXR1cm4gc0UobCQsZSl9ZnVuY3Rpb24gY0IoZSl7cmV0dXJuIHMyKGRpLGUpfWZ1bmN0aW9uIGNKKGUpe3JldHVybiB1dChkbSxlKX1mdW5jdGlvbiBjVyhlKXtyZXR1cm4gdW4oZGgsZSl9ZnVuY3Rpb24gY3EoZSl7cmV0dXJuIHVmKGRQLGUpfWUucyhbImJpZ2ludCIsKCk9PmNXLCJib29sZWFuIiwoKT0+Y0osImRhdGUiLCgpPT5jcSwibnVtYmVyIiwoKT0+Y0IsInN0cmluZyIsKCk9PmNWXSwzMTM2NTcpO3ZhciBjRz1lLmkoMzEzNjU3KTtlLnMoWyIkYnJhbmQiLDAsZUMsIiRpbnB1dCIsMCx0SywiJG91dHB1dCIsMCx0RywiTkVWRVIiLDAsZUEsIlRpbWVQcmVjaXNpb24iLDAsc1gsIlpvZEFueSIsMCxkUywiWm9kQXJyYXkiLDAsZFUsIlpvZEJhc2U2NCIsMCxsMiwiWm9kQmFzZTY0VVJMIiwwLGw1LCJab2RCaWdJbnQiLDAsZGgsIlpvZEJpZ0ludEZvcm1hdCIsMCxkZywiWm9kQm9vbGVhbiIsMCxkbSwiWm9kQ0lEUnY0IiwwLGwwLCJab2RDSURSdjYiLDAsbDQsIlpvZENVSUQiLDAsbE0sIlpvZENVSUQyIiwwLGxGLCJab2RDYXRjaCIsMCxjdiwiWm9kQ3VzdG9tIiwwLGNaLCJab2RDdXN0b21TdHJpbmdGb3JtYXQiLDAsZHIsIlpvZERhdGUiLDAsZFAsIlpvZERlZmF1bHQiLDAsY3UsIlpvZERpc2NyaW1pbmF0ZWRVbmlvbiIsMCxkSiwiWm9kRTE2NCIsMCxsNywiWm9kRW1haWwiLDAsbEksIlpvZEVtb2ppIiwwLGxVLCJab2RFbnVtIiwwLGQyLCJab2RFcnJvciIsMCx0RiwiWm9kRmlsZSIsMCxkOCwiWm9kR1VJRCIsMCxsTywiWm9kSVB2NCIsMCxsWSwiWm9kSVB2NiIsMCxsWCwiWm9kSVNPRGF0ZSIsMCxsZiwiWm9kSVNPRGF0ZVRpbWUiLDAsbHAsIlpvZElTT0R1cmF0aW9uIiwwLGx5LCJab2RJU09UaW1lIiwwLGx2LCJab2RJbnRlcnNlY3Rpb24iLDAsZHEsIlpvZElzc3VlQ29kZSIsMCxjUiwiWm9kSldUIiwwLGRlLCJab2RLU1VJRCIsMCxsRywiWm9kTGF6eSIsMCxjUywiWm9kTGl0ZXJhbCIsMCxkMywiWm9kTWFwIiwwLGQwLCJab2ROYU4iLDAsY3ksIlpvZE5hbm9JRCIsMCxsRCwiWm9kTmV2ZXIiLDAsZFosIlpvZE5vbk9wdGlvbmFsIiwwLGNwLCJab2ROdWxsIiwwLGR3LCJab2ROdWxsYWJsZSIsMCxjYSwiWm9kTnVtYmVyIiwwLGRpLCJab2ROdW1iZXJGb3JtYXQiLDAsZHMsIlpvZE9iamVjdCIsMCxkUiwiWm9kT3B0aW9uYWwiLDAsY24sIlpvZFBpcGUiLDAsY18sIlpvZFByZWZhdWx0IiwwLGNkLCJab2RQcm9taXNlIiwwLGNqLCJab2RSZWFkb25seSIsMCxjJCwiWm9kUmVhbEVycm9yIiwwLHRWLCJab2RSZWNvcmQiLDAsZEgsIlpvZFNldCIsMCxkNCwiWm9kU3RyaW5nIiwwLGwkLCJab2RTdHJpbmdGb3JtYXQiLDAsbHcsIlpvZFN1Y2Nlc3MiLDAsY2YsIlpvZFN5bWJvbCIsMCxkXywiWm9kVGVtcGxhdGVMaXRlcmFsIiwwLGN3LCJab2RUcmFuc2Zvcm0iLDAsY3QsIlpvZFR1cGxlIiwwLGRLLCJab2RUeXBlIiwwLGxfLCJab2RVTElEIiwwLGxCLCJab2RVUkwiLDAsbFAsIlpvZFVVSUQiLDAsbEUsIlpvZFVuZGVmaW5lZCIsMCxkJCwiWm9kVW5pb24iLDAsZFYsIlpvZFVua25vd24iLDAsZGosIlpvZFZvaWQiLDAsZFQsIlpvZFhJRCIsMCxsVywiX1pvZFN0cmluZyIsMCxseCwiX2RlZmF1bHQiLCgpPT5jbCwiYW55IiwoKT0+ZE8sImFycmF5IiwoKT0+ZEMsImJhc2U2NCIsKCk9Pmw5LCJiYXNlNjR1cmwiLCgpPT5sMywiYmlnaW50IiwoKT0+ZHYsImJvb2xlYW4iLCgpPT5kZiwiY2F0Y2giLCgpPT5jZywiY2hlY2siLCgpPT5jTiwiY2lkcnY0IiwoKT0+bDEsImNpZHJ2NiIsKCk9Pmw2LCJjbG9uZSIsKCk9PnRuLCJjb2VyY2UiLDAsY0csImNvbmZpZyIsKCk9PmVNLCJjb3JlIiwwLGxjLCJjdWlkIiwoKT0+bEwsImN1aWQyIiwoKT0+bFYsImN1c3RvbSIsKCk9PmNULCJkYXRlIiwoKT0+ZEEsImRpc2NyaW1pbmF0ZWRVbmlvbiIsKCk9PmRXLCJlMTY0IiwoKT0+bDgsImVtYWlsIiwoKT0+bFMsImVtb2ppIiwoKT0+bEMsImVuZHNXaXRoIiwoKT0+dVUsImVudW0iLCgpPT5kOSwiZmlsZSIsKCk9PmNlLCJmbGF0dGVuRXJyb3IiLCgpPT50aiwiZmxvYXQzMiIsKCk9PmRsLCJmbG9hdDY0IiwoKT0+ZGQsImZvcm1hdEVycm9yIiwoKT0+dEUsImZ1bmN0aW9uIiwoKT0+bGwsImdldEVycm9yTWFwIiwoKT0+Y0wsImdsb2JhbFJlZ2lzdHJ5IiwwLHRYLCJndCIsKCk9PnV5LCJndGUiLCgpPT51YiwiZ3VpZCIsKCk9PmxqLCJpbmNsdWRlcyIsKCk9PnVQLCJpbnN0YW5jZW9mIiwoKT0+Y0EsImludCIsKCk9PmR1LCJpbnQzMiIsKCk9PmRjLCJpbnQ2NCIsKCk9PmR5LCJpbnRlcnNlY3Rpb24iLCgpPT5kRywiaXB2NCIsKCk9PmxILCJpcHY2IiwoKT0+bFEsImlzbyIsMCxjRiwianNvbiIsKCk9PmNDLCJqd3QiLCgpPT5kdCwia2V5b2YiLCgpPT5kRCwia3N1aWQiLCgpPT5sSywibGF6eSIsKCk9PmNPLCJsZW5ndGgiLCgpPT51WiwibGl0ZXJhbCIsKCk9PmQ3LCJsb2NhbGVzIiwwLHNPLCJsb29zZU9iamVjdCIsKCk9PmRGLCJsb3dlcmNhc2UiLCgpPT51VCwibHQiLCgpPT51diwibHRlIiwoKT0+dWcsIm1hcCIsKCk9PmQxLCJtYXhMZW5ndGgiLCgpPT51aiwibWF4U2l6ZSIsKCk9PnVJLCJtaW1lIiwoKT0+dUQsIm1pbkxlbmd0aCIsKCk9PnVFLCJtaW5TaXplIiwoKT0+dVMsIm11bHRpcGxlT2YiLCgpPT51dywibmFuIiwoKT0+Y2IsIm5hbm9pZCIsKCk9PmxSLCJuYXRpdmVFbnVtIiwoKT0+ZDUsIm5lZ2F0aXZlIiwoKT0+dXgsIm5ldmVyIiwoKT0+ZE4sIm5vbm5lZ2F0aXZlIiwoKT0+dWssIm5vbm9wdGlvbmFsIiwoKT0+Y20sIm5vbnBvc2l0aXZlIiwoKT0+dSQsIm5vcm1hbGl6ZSIsKCk9PnVNLCJudWxsIiwoKT0+ZEksIm51bGxhYmxlIiwoKT0+Y28sIm51bGxpc2giLCgpPT5jcywibnVtYmVyIiwoKT0+ZGEsIm9iamVjdCIsKCk9PmRNLCJvcHRpb25hbCIsKCk9PmNpLCJvdmVyd3JpdGUiLCgpPT51UiwicGFyc2UiLDAsdEIsInBhcnNlQXN5bmMiLDAsdEosInBhcnRpYWxSZWNvcmQiLCgpPT5kUSwicGlwZSIsKCk9PmN4LCJwb3NpdGl2ZSIsKCk9PnVfLCJwcmVmYXVsdCIsKCk9PmNjLCJwcmVwcm9jZXNzIiwoKT0+Y0QsInByZXR0aWZ5RXJyb3IiLCgpPT50VCwicHJvbWlzZSIsKCk9PmNFLCJwcm9wZXJ0eSIsKCk9PnVDLCJyZWFkb25seSIsKCk9PmNrLCJyZWNvcmQiLCgpPT5kWCwicmVmaW5lIiwoKT0+Y3osInJlZ2V4IiwoKT0+dU4sInJlZ2V4ZXMiLCgpPT5zdywicmVnaXN0cnkiLCgpPT50SCwic2FmZVBhcnNlIiwwLHRXLCJzYWZlUGFyc2VBc3luYyIsMCx0cSwic2V0IiwoKT0+ZDYsInNldEVycm9yTWFwIiwoKT0+Y00sInNpemUiLCgpPT51Tywic3RhcnRzV2l0aCIsKCk9PnVBLCJzdHJpY3RPYmplY3QiLCgpPT5kTCwic3RyaW5nIiwoKT0+bGssInN0cmluZ0Zvcm1hdCIsKCk9PmRuLCJzdHJpbmdib29sIiwwLGNVLCJzdWNjZXNzIiwoKT0+Y2gsInN1cGVyUmVmaW5lIiwoKT0+Y1AsInN5bWJvbCIsKCk9PmR4LCJ0ZW1wbGF0ZUxpdGVyYWwiLCgpPT5jSSwidG9KU09OU2NoZW1hIiwoKT0+dDAsInRvTG93ZXJDYXNlIiwoKT0+dUYsInRvVXBwZXJDYXNlIiwoKT0+dVYsInRyYW5zZm9ybSIsKCk9PmNyLCJ0cmVlaWZ5RXJyb3IiLCgpPT50WiwidHJpbSIsKCk9PnVMLCJ0dXBsZSIsKCk9PmRZLCJ1aW50MzIiLCgpPT5kcCwidWludDY0IiwoKT0+ZGIsInVsaWQiLCgpPT5sSiwidW5kZWZpbmVkIiwoKT0+ZGssInVuaW9uIiwoKT0+ZEIsInVua25vd24iLCgpPT5kRSwidXBwZXJjYXNlIiwoKT0+dXosInVybCIsKCk9PmxBLCJ1dWlkIiwoKT0+bFosInV1aWR2NCIsKCk9PmxOLCJ1dWlkdjYiLCgpPT5sVCwidXVpZHY3IiwoKT0+bHosInZvaWQiLCgpPT5keiwieGlkIiwoKT0+bHFdLDcyMjIxOSk7dmFyIGNLPWUuaSg3MjIyMTkpLGNLPWNLO2UucyhbXSwzODU3MCksZS5pKDM4NTcwKSxlLmkoOTM3OTA0KSxlLnMoWyJkZWZhdWx0RXJyb3JNYXAiLDAsdDUsImdldEVycm9yTWFwIiwoKT0+dDgsInNldEVycm9yTWFwIiwoKT0+dDddLDI3NzI5MCksZS5pKDI3NzI5MCksZS5pKDY2NTM1NCksZS5zKFtdLDUyNzQwNCksZS5pKDUyNzQwNCksZS5pKDkwNDc4MyksZS5pKDk2NTYzOCksZS5pKDE2OTc5MCksZS5zKFsiQlJBTkQiLDAsbmksIkRJUlRZIiwwLHJhLCJFTVBUWV9QQVRIIiwwLHJ0LCJJTlZBTElEIiwwLHJpLCJORVZFUiIsMCxyaSwiT0siLDAscm8sIlBhcnNlU3RhdHVzIiwoKT0+cm4sIlNjaGVtYSIsKCk9PnJmLCJab2RBbnkiLCgpPT5yTCwiWm9kQXJyYXkiLCgpPT5ySiwiWm9kQmlnSW50IiwoKT0+ckEsIlpvZEJvb2xlYW4iLCgpPT5yVSwiWm9kQnJhbmRlZCIsKCk9Pm5hLCJab2RDYXRjaCIsKCk9Pm5yLCJab2REYXRlIiwoKT0+ckMsIlpvZERlZmF1bHQiLCgpPT5udCwiWm9kRGlzY3JpbWluYXRlZFVuaW9uIiwoKT0+ckssIlpvZEVmZmVjdHMiLCgpPT5yNywiWm9kRW51bSIsKCk9PnI5LCJab2RFcnJvciIsKCk9PnQ5LCJab2RGaXJzdFBhcnR5VHlwZUtpbmQiLCgpPT5rLCJab2RGdW5jdGlvbiIsKCk9PnIxLCJab2RJbnRlcnNlY3Rpb24iLCgpPT5yWSwiWm9kSXNzdWVDb2RlIiwwLHQ2LCJab2RMYXp5IiwoKT0+cjQsIlpvZExpdGVyYWwiLCgpPT5yNiwiWm9kTWFwIiwoKT0+clEsIlpvZE5hTiIsKCk9Pm5uLCJab2ROYXRpdmVFbnVtIiwoKT0+cjUsIlpvZE5ldmVyIiwoKT0+clYsIlpvZE51bGwiLCgpPT5yTSwiWm9kTnVsbGFibGUiLCgpPT5uZSwiWm9kTnVtYmVyIiwoKT0+clAsIlpvZE9iamVjdCIsKCk9PnJXLCJab2RPcHRpb25hbCIsKCk9PnI4LCJab2RQYXJzZWRUeXBlIiwwLHQxLCJab2RQaXBlbGluZSIsKCk9Pm5vLCJab2RQcm9taXNlIiwoKT0+cjMsIlpvZFJlYWRvbmx5IiwoKT0+bnMsIlpvZFJlY29yZCIsKCk9PnJYLCJab2RTY2hlbWEiLCgpPT5yZiwiWm9kU2V0IiwoKT0+cjAsIlpvZFN0cmluZyIsKCk9PnJ6LCJab2RTeW1ib2wiLCgpPT5yRCwiWm9kVHJhbnNmb3JtZXIiLCgpPT5yNywiWm9kVHVwbGUiLCgpPT5ySCwiWm9kVHlwZSIsKCk9PnJmLCJab2RVbmRlZmluZWQiLCgpPT5yUiwiWm9kVW5pb24iLCgpPT5ycSwiWm9kVW5rbm93biIsKCk9PnJGLCJab2RWb2lkIiwoKT0+ckIsImFkZElzc3VlVG9Db250ZXh0IiwoKT0+cnIsImFueSIsKCk9Pm54LCJhcnJheSIsKCk9Pm5JLCJiaWdpbnQiLCgpPT5uaCwiYm9vbGVhbiIsKCk9Pm52LCJjb2VyY2UiLDAsbkssImN1c3RvbSIsKCk9Pm5sLCJkYXRlIiwoKT0+bmcsImRhdGV0aW1lUmVnZXgiLCgpPT5yVCwiZGVmYXVsdEVycm9yTWFwIiwwLHQ1LCJkaXNjcmltaW5hdGVkVW5pb24iLCgpPT5uRSwiZWZmZWN0IiwoKT0+bkwsImVudW0iLCgpPT5uRCwiZnVuY3Rpb24iLCgpPT5uQSwiZ2V0RXJyb3JNYXAiLCgpPT50OCwiZ2V0UGFyc2VkVHlwZSIsMCx0NCwiaW5zdGFuY2VvZiIsKCk9Pm5jLCJpbnRlcnNlY3Rpb24iLCgpPT5uWiwiaXNBYm9ydGVkIiwwLHJzLCJpc0FzeW5jIiwwLHJkLCJpc0RpcnR5IiwwLHJ1LCJpc1ZhbGlkIiwwLHJsLCJsYXRlIiwwLG5kLCJsYXp5IiwoKT0+blUsImxpdGVyYWwiLCgpPT5uQywibWFrZUlzc3VlIiwwLHJlLCJtYXAiLCgpPT5ueiwibmFuIiwoKT0+bmYsIm5hdGl2ZUVudW0iLCgpPT5uUiwibmV2ZXIiLCgpPT5uaywibnVsbCIsKCk9Pm5fLCJudWxsYWJsZSIsKCk9Pm5WLCJudW1iZXIiLCgpPT5ubSwib2JqZWN0IiwoKT0+blMsIm9iamVjdFV0aWwiLCgpPT54LCJvYm9vbGVhbiIsKCk9Pm5HLCJvbnVtYmVyIiwoKT0+bnEsIm9wdGlvbmFsIiwoKT0+bkYsIm9zdHJpbmciLCgpPT5uVywicGlwZWxpbmUiLCgpPT5uSiwicHJlcHJvY2VzcyIsKCk9Pm5CLCJwcm9taXNlIiwoKT0+bk0sInF1b3RlbGVzc0pzb24iLDAsdDIsInJlY29yZCIsKCk9Pm5ULCJzZXQiLCgpPT5uUCwic2V0RXJyb3JNYXAiLCgpPT50Nywic3RyaWN0T2JqZWN0IiwoKT0+bk8sInN0cmluZyIsKCk9Pm5wLCJzeW1ib2wiLCgpPT5ueSwidHJhbnNmb3JtZXIiLCgpPT5uTCwidHVwbGUiLCgpPT5uTiwidW5kZWZpbmVkIiwoKT0+bmIsInVuaW9uIiwoKT0+bmosInVua25vd24iLCgpPT5uJCwidXRpbCIsKCk9Pl8sInZvaWQiLCgpPT5ud10sNzg4Njg1KTt2YXIgY1k9ZS5pKDc4ODY4NSksY1k9Y1ksY0g9ZS5pKDcyNTE1MCksY1g9U3ltYm9sLmZvcigidmVyY2VsLmFpLmdhdGV3YXkuZXJyb3IiKSxjUT1jbGFzcyBlIGV4dGVuZHMoTz1FcnJvcixTPWNYLE8pe2NvbnN0cnVjdG9yKHttZXNzYWdlOmUsc3RhdHVzQ29kZTp0PTUwMCxjYXVzZTpyLGdlbmVyYXRpb25JZDpuLGlzUmV0cnlhYmxlOmk9bnVsbCE9dCYmKDQwOD09PXR8fDQwOT09PXR8fDQyOT09PXR8fHQ+PTUwMCl9KXtzdXBlcihuP2Ake2V9IFske259XWA6ZSksdGhpc1tTXT0hMCx0aGlzLnN0YXR1c0NvZGU9dCx0aGlzLmNhdXNlPXIsdGhpcy5nZW5lcmF0aW9uSWQ9bix0aGlzLmlzUmV0cnlhYmxlPWl9c3RhdGljIGlzSW5zdGFuY2UodCl7cmV0dXJuIGUuaGFzTWFya2VyKHQpfXN0YXRpYyBoYXNNYXJrZXIoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmY1ggaW4gZSYmITA9PT1lW2NYXX19LGMwPSJHYXRld2F5QXV0aGVudGljYXRpb25FcnJvciIsYzE9U3ltYm9sLmZvcihgdmVyY2VsLmFpLmdhdGV3YXkuZXJyb3IuJHtjMH1gKSxjND1jbGFzcyBlIGV4dGVuZHMoRT1jUSxqPWMxLEUpe2NvbnN0cnVjdG9yKHttZXNzYWdlOmU9IkF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsc3RhdHVzQ29kZTp0PTQwMSxjYXVzZTpyLGdlbmVyYXRpb25JZDpufT17fSl7c3VwZXIoe21lc3NhZ2U6ZSxzdGF0dXNDb2RlOnQsY2F1c2U6cixnZW5lcmF0aW9uSWQ6bn0pLHRoaXNbal09ITAsdGhpcy5uYW1lPWMwLHRoaXMudHlwZT0iYXV0aGVudGljYXRpb25fZXJyb3IifXN0YXRpYyBpc0luc3RhbmNlKGUpe3JldHVybiBjUS5oYXNNYXJrZXIoZSkmJmMxIGluIGV9c3RhdGljIGNyZWF0ZUNvbnRleHR1YWxFcnJvcih7YXBpS2V5UHJvdmlkZWQ6dCxvaWRjVG9rZW5Qcm92aWRlZDpyLG1lc3NhZ2U6bj0iQXV0aGVudGljYXRpb24gZmFpbGVkIixzdGF0dXNDb2RlOmk9NDAxLGNhdXNlOmEsZ2VuZXJhdGlvbklkOm99KXtyZXR1cm4gbmV3IGUoe21lc3NhZ2U6dD9gQUkgR2F0ZXdheSBhdXRoZW50aWNhdGlvbiBmYWlsZWQ6IEludmFsaWQgQVBJIGtleS4KCkNyZWF0ZSBhIG5ldyBBUEkga2V5OiBodHRwczovL3ZlcmNlbC5jb20vZD90bz0lMkYlNUJ0ZWFtJTVEJTJGJTdFJTJGYWklMkZhcGkta2V5cwoKUHJvdmlkZSB2aWEgJ2FwaUtleScgb3B0aW9uIG9yICdBSV9HQVRFV0FZX0FQSV9LRVknIGVudmlyb25tZW50IHZhcmlhYmxlLmA6cj9gQUkgR2F0ZXdheSBhdXRoZW50aWNhdGlvbiBmYWlsZWQ6IEludmFsaWQgT0lEQyB0b2tlbi4KClJ1biAnbnB4IHZlcmNlbCBsaW5rJyB0byBsaW5rIHlvdXIgcHJvamVjdCwgdGhlbiAndmMgZW52IHB1bGwnIHRvIGZldGNoIHRoZSB0b2tlbi4KCkFsdGVybmF0aXZlbHksIHVzZSBhbiBBUEkga2V5OiBodHRwczovL3ZlcmNlbC5jb20vZD90bz0lMkYlNUJ0ZWFtJTVEJTJGJTdFJTJGYWklMkZhcGkta2V5c2A6YEFJIEdhdGV3YXkgYXV0aGVudGljYXRpb24gZmFpbGVkOiBObyBhdXRoZW50aWNhdGlvbiBwcm92aWRlZC4KCk9wdGlvbiAxIC0gQVBJIGtleToKQ3JlYXRlIGFuIEFQSSBrZXk6IGh0dHBzOi8vdmVyY2VsLmNvbS9kP3RvPSUyRiU1QnRlYW0lNUQlMkYlN0UlMkZhaSUyRmFwaS1rZXlzClByb3ZpZGUgdmlhICdhcGlLZXknIG9wdGlvbiBvciAnQUlfR0FURVdBWV9BUElfS0VZJyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCk9wdGlvbiAyIC0gT0lEQyB0b2tlbjoKUnVuICducHggdmVyY2VsIGxpbmsnIHRvIGxpbmsgeW91ciBwcm9qZWN0LCB0aGVuICd2YyBlbnYgcHVsbCcgdG8gZmV0Y2ggdGhlIHRva2VuLmAsc3RhdHVzQ29kZTppLGNhdXNlOmEsZ2VuZXJhdGlvbklkOm99KX19LGM2PSJHYXRld2F5SW52YWxpZFJlcXVlc3RFcnJvciIsYzI9U3ltYm9sLmZvcihgdmVyY2VsLmFpLmdhdGV3YXkuZXJyb3IuJHtjNn1gKSxjOT1jbGFzcyBleHRlbmRzKE49Y1EsWj1jMixOKXtjb25zdHJ1Y3Rvcih7bWVzc2FnZTplPSJJbnZhbGlkIHJlcXVlc3QiLHN0YXR1c0NvZGU6dD00MDAsY2F1c2U6cixnZW5lcmF0aW9uSWQ6bn09e30pe3N1cGVyKHttZXNzYWdlOmUsc3RhdHVzQ29kZTp0LGNhdXNlOnIsZ2VuZXJhdGlvbklkOm59KSx0aGlzW1pdPSEwLHRoaXMubmFtZT1jNix0aGlzLnR5cGU9ImludmFsaWRfcmVxdWVzdF9lcnJvciJ9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGNRLmhhc01hcmtlcihlKSYmYzIgaW4gZX19LGM1PSJHYXRld2F5UmF0ZUxpbWl0RXJyb3IiLGMzPVN5bWJvbC5mb3IoYHZlcmNlbC5haS5nYXRld2F5LmVycm9yLiR7YzV9YCksYzc9Y2xhc3MgZXh0ZW5kcyh6PWNRLFQ9YzMseil7Y29uc3RydWN0b3Ioe21lc3NhZ2U6ZT0iUmF0ZSBsaW1pdCBleGNlZWRlZCIsc3RhdHVzQ29kZTp0PTQyOSxjYXVzZTpyLGdlbmVyYXRpb25JZDpufT17fSl7c3VwZXIoe21lc3NhZ2U6ZSxzdGF0dXNDb2RlOnQsY2F1c2U6cixnZW5lcmF0aW9uSWQ6bn0pLHRoaXNbVF09ITAsdGhpcy5uYW1lPWM1LHRoaXMudHlwZT0icmF0ZV9saW1pdF9leGNlZWRlZCJ9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGNRLmhhc01hcmtlcihlKSYmYzMgaW4gZX19LGM4PSJHYXRld2F5TW9kZWxOb3RGb3VuZEVycm9yIixwZT1TeW1ib2wuZm9yKGB2ZXJjZWwuYWkuZ2F0ZXdheS5lcnJvci4ke2M4fWApLHB0PWlYKCgpPT5pMShjSy5vYmplY3Qoe21vZGVsSWQ6Y0suc3RyaW5nKCl9KSkpLHByPWNsYXNzIGV4dGVuZHMoQT1jUSxQPXBlLEEpe2NvbnN0cnVjdG9yKHttZXNzYWdlOmU9Ik1vZGVsIG5vdCBmb3VuZCIsc3RhdHVzQ29kZTp0PTQwNCxtb2RlbElkOnIsY2F1c2U6bixnZW5lcmF0aW9uSWQ6aX09e30pe3N1cGVyKHttZXNzYWdlOmUsc3RhdHVzQ29kZTp0LGNhdXNlOm4sZ2VuZXJhdGlvbklkOml9KSx0aGlzW1BdPSEwLHRoaXMubmFtZT1jOCx0aGlzLnR5cGU9Im1vZGVsX25vdF9mb3VuZCIsdGhpcy5tb2RlbElkPXJ9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGNRLmhhc01hcmtlcihlKSYmcGUgaW4gZX19LHBuPSJHYXRld2F5SW50ZXJuYWxTZXJ2ZXJFcnJvciIscGk9U3ltYm9sLmZvcihgdmVyY2VsLmFpLmdhdGV3YXkuZXJyb3IuJHtwbn1gKSxwYT1jbGFzcyBleHRlbmRzKEM9Y1EsVT1waSxDKXtjb25zdHJ1Y3Rvcih7bWVzc2FnZTplPSJJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IiLHN0YXR1c0NvZGU6dD01MDAsY2F1c2U6cixnZW5lcmF0aW9uSWQ6bn09e30pe3N1cGVyKHttZXNzYWdlOmUsc3RhdHVzQ29kZTp0LGNhdXNlOnIsZ2VuZXJhdGlvbklkOm59KSx0aGlzW1VdPSEwLHRoaXMubmFtZT1wbix0aGlzLnR5cGU9ImludGVybmFsX3NlcnZlcl9lcnJvciJ9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGNRLmhhc01hcmtlcihlKSYmcGkgaW4gZX19LHBvPSJHYXRld2F5UmVzcG9uc2VFcnJvciIscHM9U3ltYm9sLmZvcihgdmVyY2VsLmFpLmdhdGV3YXkuZXJyb3IuJHtwb31gKSxwdT1jbGFzcyBleHRlbmRzKFI9Y1EsRD1wcyxSKXtjb25zdHJ1Y3Rvcih7bWVzc2FnZTplPSJJbnZhbGlkIHJlc3BvbnNlIGZyb20gR2F0ZXdheSIsc3RhdHVzQ29kZTp0PTUwMixyZXNwb25zZTpyLHZhbGlkYXRpb25FcnJvcjpuLGNhdXNlOmksZ2VuZXJhdGlvbklkOmF9PXt9KXtzdXBlcih7bWVzc2FnZTplLHN0YXR1c0NvZGU6dCxjYXVzZTppLGdlbmVyYXRpb25JZDphfSksdGhpc1tEXT0hMCx0aGlzLm5hbWU9cG8sdGhpcy50eXBlPSJyZXNwb25zZV9lcnJvciIsdGhpcy5yZXNwb25zZT1yLHRoaXMudmFsaWRhdGlvbkVycm9yPW59c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGNRLmhhc01hcmtlcihlKSYmcHMgaW4gZX19O2FzeW5jIGZ1bmN0aW9uIHBsKHtyZXNwb25zZTplLHN0YXR1c0NvZGU6dCxkZWZhdWx0TWVzc2FnZTpyPSJHYXRld2F5IHJlcXVlc3QgZmFpbGVkIixjYXVzZTpuLGF1dGhNZXRob2Q6aX0pe3ZhciBhO2xldCBvPWF3YWl0IGk2KHt2YWx1ZTplLHNjaGVtYTpwZH0pO2lmKCFvLnN1Y2Nlc3Mpe2xldCBpPSJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJnZW5lcmF0aW9uSWQiaW4gZT9lLmdlbmVyYXRpb25JZDp2b2lkIDA7cmV0dXJuIG5ldyBwdSh7bWVzc2FnZTpgSW52YWxpZCBlcnJvciByZXNwb25zZSBmb3JtYXQ6ICR7cn1gLHN0YXR1c0NvZGU6dCxyZXNwb25zZTplLHZhbGlkYXRpb25FcnJvcjpvLmVycm9yLGNhdXNlOm4sZ2VuZXJhdGlvbklkOml9KX1sZXQgcz1vLnZhbHVlLHU9cy5lcnJvci50eXBlLGw9cy5lcnJvci5tZXNzYWdlLGQ9bnVsbCE9KGE9cy5nZW5lcmF0aW9uSWQpP2E6dm9pZCAwO3N3aXRjaCh1KXtjYXNlImF1dGhlbnRpY2F0aW9uX2Vycm9yIjpyZXR1cm4gYzQuY3JlYXRlQ29udGV4dHVhbEVycm9yKHthcGlLZXlQcm92aWRlZDoiYXBpLWtleSI9PT1pLG9pZGNUb2tlblByb3ZpZGVkOiJvaWRjIj09PWksc3RhdHVzQ29kZTp0LGNhdXNlOm4sZ2VuZXJhdGlvbklkOmR9KTtjYXNlImludmFsaWRfcmVxdWVzdF9lcnJvciI6cmV0dXJuIG5ldyBjOSh7bWVzc2FnZTpsLHN0YXR1c0NvZGU6dCxjYXVzZTpuLGdlbmVyYXRpb25JZDpkfSk7Y2FzZSJyYXRlX2xpbWl0X2V4Y2VlZGVkIjpyZXR1cm4gbmV3IGM3KHttZXNzYWdlOmwsc3RhdHVzQ29kZTp0LGNhdXNlOm4sZ2VuZXJhdGlvbklkOmR9KTtjYXNlIm1vZGVsX25vdF9mb3VuZCI6e2xldCBlPWF3YWl0IGk2KHt2YWx1ZTpzLmVycm9yLnBhcmFtLHNjaGVtYTpwdH0pO3JldHVybiBuZXcgcHIoe21lc3NhZ2U6bCxzdGF0dXNDb2RlOnQsbW9kZWxJZDplLnN1Y2Nlc3M/ZS52YWx1ZS5tb2RlbElkOnZvaWQgMCxjYXVzZTpuLGdlbmVyYXRpb25JZDpkfSl9ZGVmYXVsdDpyZXR1cm4gbmV3IHBhKHttZXNzYWdlOmwsc3RhdHVzQ29kZTp0LGNhdXNlOm4sZ2VuZXJhdGlvbklkOmR9KX19dmFyIHBkPWlYKCgpPT5pMShjSy5vYmplY3Qoe2Vycm9yOmNLLm9iamVjdCh7bWVzc2FnZTpjSy5zdHJpbmcoKSx0eXBlOmNLLnN0cmluZygpLm51bGxpc2goKSxwYXJhbTpjSy51bmtub3duKCkubnVsbGlzaCgpLGNvZGU6Y0sudW5pb24oW2NLLnN0cmluZygpLGNLLm51bWJlcigpXSkubnVsbGlzaCgpfSksZ2VuZXJhdGlvbklkOmNLLnN0cmluZygpLm51bGxpc2goKX0pKSkscGM9IkdhdGV3YXlUaW1lb3V0RXJyb3IiLHBwPVN5bWJvbC5mb3IoYHZlcmNlbC5haS5nYXRld2F5LmVycm9yLiR7cGN9YCkscG09Y2xhc3MgZSBleHRlbmRzKEw9Y1EsTT1wcCxMKXtjb25zdHJ1Y3Rvcih7bWVzc2FnZTplPSJSZXF1ZXN0IHRpbWVkIG91dCIsc3RhdHVzQ29kZTp0PTQwOCxjYXVzZTpyLGdlbmVyYXRpb25JZDpufT17fSl7c3VwZXIoe21lc3NhZ2U6ZSxzdGF0dXNDb2RlOnQsY2F1c2U6cixnZW5lcmF0aW9uSWQ6bn0pLHRoaXNbTV09ITAsdGhpcy5uYW1lPXBjLHRoaXMudHlwZT0idGltZW91dF9lcnJvciJ9c3RhdGljIGlzSW5zdGFuY2UoZSl7cmV0dXJuIGNRLmhhc01hcmtlcihlKSYmcHAgaW4gZX1zdGF0aWMgY3JlYXRlVGltZW91dEVycm9yKHtvcmlnaW5hbE1lc3NhZ2U6dCxzdGF0dXNDb2RlOnI9NDA4LGNhdXNlOm4sZ2VuZXJhdGlvbklkOml9KXtyZXR1cm4gbmV3IGUoe21lc3NhZ2U6YEdhdGV3YXkgcmVxdWVzdCB0aW1lZCBvdXQ6ICR7dH0KCiAgICBUaGlzIGlzIGEgY2xpZW50LXNpZGUgdGltZW91dC4gVG8gcmVzb2x2ZSB0aGlzLCBpbmNyZWFzZSB5b3VyIHRpbWVvdXQgY29uZmlndXJhdGlvbjogaHR0cHM6Ly92ZXJjZWwuY29tL2RvY3MvYWktZ2F0ZXdheS9jYXBhYmlsaXRpZXMvdmlkZW8tZ2VuZXJhdGlvbiNleHRlbmRpbmctdGltZW91dHMtZm9yLW5vZGUuanNgLHN0YXR1c0NvZGU6cixjYXVzZTpuLGdlbmVyYXRpb25JZDppfSl9fTtmdW5jdGlvbiBwZihlKXtpZighKGUgaW5zdGFuY2VvZiBFcnJvcikpcmV0dXJuITE7bGV0IHQ9ZS5jb2RlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmWyJVTkRfRVJSX0hFQURFUlNfVElNRU9VVCIsIlVORF9FUlJfQk9EWV9USU1FT1VUIiwiVU5EX0VSUl9DT05ORUNUX1RJTUVPVVQiXS5pbmNsdWRlcyh0KX1hc3luYyBmdW5jdGlvbiBwaChlLHQpe3ZhciByO3JldHVybiBjUS5pc0luc3RhbmNlKGUpP2U6cGYoZSk/cG0uY3JlYXRlVGltZW91dEVycm9yKHtvcmlnaW5hbE1lc3NhZ2U6ZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZToiVW5rbm93biBlcnJvciIsY2F1c2U6ZX0pOmVmLmlzSW5zdGFuY2UoZSk/ZS5jYXVzZSYmcGYoZS5jYXVzZSk/cG0uY3JlYXRlVGltZW91dEVycm9yKHtvcmlnaW5hbE1lc3NhZ2U6ZS5tZXNzYWdlLGNhdXNlOmV9KTphd2FpdCBwbCh7cmVzcG9uc2U6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09ZS5kYXRhKXJldHVybiBlLmRhdGE7aWYobnVsbCE9ZS5yZXNwb25zZUJvZHkpdHJ5e3JldHVybiBKU09OLnBhcnNlKGUucmVzcG9uc2VCb2R5KX1jYXRjaCh0KXtyZXR1cm4gZS5yZXNwb25zZUJvZHl9cmV0dXJue319KGUpLHN0YXR1c0NvZGU6bnVsbCE9KHI9ZS5zdGF0dXNDb2RlKT9yOjUwMCxkZWZhdWx0TWVzc2FnZToiR2F0ZXdheSByZXF1ZXN0IGZhaWxlZCIsY2F1c2U6ZSxhdXRoTWV0aG9kOnR9KTphd2FpdCBwbCh7cmVzcG9uc2U6e30sc3RhdHVzQ29kZTo1MDAsZGVmYXVsdE1lc3NhZ2U6ZSBpbnN0YW5jZW9mIEVycm9yP2BHYXRld2F5IHJlcXVlc3QgZmFpbGVkOiAke2UubWVzc2FnZX1gOiJVbmtub3duIEdhdGV3YXkgZXJyb3IiLGNhdXNlOmUsYXV0aE1ldGhvZDp0fSl9dmFyIHB2PSJhaS1nYXRld2F5LWF1dGgtbWV0aG9kIjthc3luYyBmdW5jdGlvbiBwZyhlKXtsZXQgdD1hd2FpdCBpNih7dmFsdWU6ZVtwdl0sc2NoZW1hOnB5fSk7cmV0dXJuIHQuc3VjY2Vzcz90LnZhbHVlOnZvaWQgMH12YXIgcHk9aVgoKCk9PmkxKGNLLnVuaW9uKFtjSy5saXRlcmFsKCJhcGkta2V5IiksY0subGl0ZXJhbCgib2lkYyIpXSkpKSxwYj1bImVtYmVkZGluZyIsImltYWdlIiwibGFuZ3VhZ2UiLCJyZXJhbmtpbmciLCJ2aWRlbyJdLHBfPWNsYXNze2NvbnN0cnVjdG9yKGUpe3RoaXMuY29uZmlnPWV9YXN5bmMgZ2V0QXZhaWxhYmxlTW9kZWxzKCl7dHJ5e2xldHt2YWx1ZTplfT1hd2FpdCBpZyh7dXJsOmAke3RoaXMuY29uZmlnLmJhc2VVUkx9L2NvbmZpZ2AsaGVhZGVyczphd2FpdCBhdCh0aGlzLmNvbmZpZy5oZWFkZXJzKCkpLHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6YW4ocHgpLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjphcih7ZXJyb3JTY2hlbWE6Y0suYW55KCksZXJyb3JUb01lc3NhZ2U6ZT0+ZX0pLGZldGNoOnRoaXMuY29uZmlnLmZldGNofSk7cmV0dXJuIGV9Y2F0Y2goZSl7dGhyb3cgYXdhaXQgcGgoZSl9fWFzeW5jIGdldENyZWRpdHMoKXt0cnl7bGV0IGU9bmV3IFVSTCh0aGlzLmNvbmZpZy5iYXNlVVJMKSx7dmFsdWU6dH09YXdhaXQgaWcoe3VybDpgJHtlLm9yaWdpbn0vdjEvY3JlZGl0c2AsaGVhZGVyczphd2FpdCBhdCh0aGlzLmNvbmZpZy5oZWFkZXJzKCkpLHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6YW4ocCQpLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjphcih7ZXJyb3JTY2hlbWE6Y0suYW55KCksZXJyb3JUb01lc3NhZ2U6ZT0+ZX0pLGZldGNoOnRoaXMuY29uZmlnLmZldGNofSk7cmV0dXJuIHR9Y2F0Y2goZSl7dGhyb3cgYXdhaXQgcGgoZSl9fX0scHg9aVgoKCk9PmkxKGNLLm9iamVjdCh7bW9kZWxzOmNLLmFycmF5KGNLLm9iamVjdCh7aWQ6Y0suc3RyaW5nKCksbmFtZTpjSy5zdHJpbmcoKSxkZXNjcmlwdGlvbjpjSy5zdHJpbmcoKS5udWxsaXNoKCkscHJpY2luZzpjSy5vYmplY3Qoe2lucHV0OmNLLnN0cmluZygpLG91dHB1dDpjSy5zdHJpbmcoKSxpbnB1dF9jYWNoZV9yZWFkOmNLLnN0cmluZygpLm51bGxpc2goKSxpbnB1dF9jYWNoZV93cml0ZTpjSy5zdHJpbmcoKS5udWxsaXNoKCl9KS50cmFuc2Zvcm0oKHtpbnB1dDplLG91dHB1dDp0LGlucHV0X2NhY2hlX3JlYWQ6cixpbnB1dF9jYWNoZV93cml0ZTpufSk9Pih7aW5wdXQ6ZSxvdXRwdXQ6dCwuLi5yP3tjYWNoZWRJbnB1dFRva2VuczpyfTp7fSwuLi5uP3tjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6bn06e319KSkubnVsbGlzaCgpLHNwZWNpZmljYXRpb246Y0sub2JqZWN0KHtzcGVjaWZpY2F0aW9uVmVyc2lvbjpjSy5saXRlcmFsKCJ2MyIpLHByb3ZpZGVyOmNLLnN0cmluZygpLG1vZGVsSWQ6Y0suc3RyaW5nKCl9KSxtb2RlbFR5cGU6Y0suc3RyaW5nKCkubnVsbGlzaCgpfSkpLnRyYW5zZm9ybShlPT5lLmZpbHRlcihlPT5udWxsPT1lLm1vZGVsVHlwZXx8cGIuaW5jbHVkZXMoZS5tb2RlbFR5cGUpKSl9KSkpLHAkPWlYKCgpPT5pMShjSy5vYmplY3Qoe2JhbGFuY2U6Y0suc3RyaW5nKCksdG90YWxfdXNlZDpjSy5zdHJpbmcoKX0pLnRyYW5zZm9ybSgoe2JhbGFuY2U6ZSx0b3RhbF91c2VkOnR9KT0+KHtiYWxhbmNlOmUsdG90YWxVc2VkOnR9KSkpKSxwaz1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbmZpZz1lfWFzeW5jIGdldFNwZW5kUmVwb3J0KGUpe3RyeXtsZXQgdD1uZXcgVVJMKHRoaXMuY29uZmlnLmJhc2VVUkwpLHI9bmV3IFVSTFNlYXJjaFBhcmFtcztyLnNldCgic3RhcnRfZGF0ZSIsZS5zdGFydERhdGUpLHIuc2V0KCJlbmRfZGF0ZSIsZS5lbmREYXRlKSxlLmdyb3VwQnkmJnIuc2V0KCJncm91cF9ieSIsZS5ncm91cEJ5KSxlLmRhdGVQYXJ0JiZyLnNldCgiZGF0ZV9wYXJ0IixlLmRhdGVQYXJ0KSxlLnVzZXJJZCYmci5zZXQoInVzZXJfaWQiLGUudXNlcklkKSxlLm1vZGVsJiZyLnNldCgibW9kZWwiLGUubW9kZWwpLGUucHJvdmlkZXImJnIuc2V0KCJwcm92aWRlciIsZS5wcm92aWRlciksZS5jcmVkZW50aWFsVHlwZSYmci5zZXQoImNyZWRlbnRpYWxfdHlwZSIsZS5jcmVkZW50aWFsVHlwZSksZS50YWdzJiZlLnRhZ3MubGVuZ3RoPjAmJnIuc2V0KCJ0YWdzIixlLnRhZ3Muam9pbigiLCIpKTtsZXR7dmFsdWU6bn09YXdhaXQgaWcoe3VybDpgJHt0Lm9yaWdpbn0vdjEvcmVwb3J0PyR7ci50b1N0cmluZygpfWAsaGVhZGVyczphd2FpdCBhdCh0aGlzLmNvbmZpZy5oZWFkZXJzKCkpLHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6YW4ocHcpLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjphcih7ZXJyb3JTY2hlbWE6Y0suYW55KCksZXJyb3JUb01lc3NhZ2U6ZT0+ZX0pLGZldGNoOnRoaXMuY29uZmlnLmZldGNofSk7cmV0dXJuIG59Y2F0Y2goZSl7dGhyb3cgYXdhaXQgcGgoZSl9fX0scHc9aVgoKCk9PmkxKGNLLm9iamVjdCh7cmVzdWx0czpjSy5hcnJheShjSy5vYmplY3Qoe2RheTpjSy5zdHJpbmcoKS5vcHRpb25hbCgpLGhvdXI6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSx1c2VyOmNLLnN0cmluZygpLm9wdGlvbmFsKCksbW9kZWw6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSx0YWc6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxwcm92aWRlcjpjSy5zdHJpbmcoKS5vcHRpb25hbCgpLGNyZWRlbnRpYWxfdHlwZTpjSy5lbnVtKFsiYnlvayIsInN5c3RlbSJdKS5vcHRpb25hbCgpLHRvdGFsX2Nvc3Q6Y0subnVtYmVyKCksbWFya2V0X2Nvc3Q6Y0subnVtYmVyKCkub3B0aW9uYWwoKSxpbnB1dF90b2tlbnM6Y0subnVtYmVyKCkub3B0aW9uYWwoKSxvdXRwdXRfdG9rZW5zOmNLLm51bWJlcigpLm9wdGlvbmFsKCksY2FjaGVkX2lucHV0X3Rva2VuczpjSy5udW1iZXIoKS5vcHRpb25hbCgpLGNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VuczpjSy5udW1iZXIoKS5vcHRpb25hbCgpLHJlYXNvbmluZ190b2tlbnM6Y0subnVtYmVyKCkub3B0aW9uYWwoKSxyZXF1ZXN0X2NvdW50OmNLLm51bWJlcigpLm9wdGlvbmFsKCl9KS50cmFuc2Zvcm0oKHtjcmVkZW50aWFsX3R5cGU6ZSx0b3RhbF9jb3N0OnQsbWFya2V0X2Nvc3Q6cixpbnB1dF90b2tlbnM6bixvdXRwdXRfdG9rZW5zOmksY2FjaGVkX2lucHV0X3Rva2VuczphLGNhY2hlX2NyZWF0aW9uX2lucHV0X3Rva2VuczpvLHJlYXNvbmluZ190b2tlbnM6cyxyZXF1ZXN0X2NvdW50OnUsLi4ubH0pPT4oey4uLmwsLi4udm9pZCAwIT09ZT97Y3JlZGVudGlhbFR5cGU6ZX06e30sdG90YWxDb3N0OnQsLi4udm9pZCAwIT09cj97bWFya2V0Q29zdDpyfTp7fSwuLi52b2lkIDAhPT1uP3tpbnB1dFRva2VuczpufTp7fSwuLi52b2lkIDAhPT1pP3tvdXRwdXRUb2tlbnM6aX06e30sLi4udm9pZCAwIT09YT97Y2FjaGVkSW5wdXRUb2tlbnM6YX06e30sLi4udm9pZCAwIT09bz97Y2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOm99Ont9LC4uLnZvaWQgMCE9PXM/e3JlYXNvbmluZ1Rva2VuczpzfTp7fSwuLi52b2lkIDAhPT11P3tyZXF1ZXN0Q291bnQ6dX06e319KSkpfSkpKSxwST1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmNvbmZpZz1lfWFzeW5jIGdldEdlbmVyYXRpb25JbmZvKGUpe3RyeXtsZXQgdD1uZXcgVVJMKHRoaXMuY29uZmlnLmJhc2VVUkwpLHt2YWx1ZTpyfT1hd2FpdCBpZyh7dXJsOmAke3Qub3JpZ2lufS92MS9nZW5lcmF0aW9uP2lkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGUuaWQpfWAsaGVhZGVyczphd2FpdCBhdCh0aGlzLmNvbmZpZy5oZWFkZXJzKCkpLHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6YW4ocFMpLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjphcih7ZXJyb3JTY2hlbWE6Y0suYW55KCksZXJyb3JUb01lc3NhZ2U6ZT0+ZX0pLGZldGNoOnRoaXMuY29uZmlnLmZldGNofSk7cmV0dXJuIHJ9Y2F0Y2goZSl7dGhyb3cgYXdhaXQgcGgoZSl9fX0scFM9aVgoKCk9PmkxKGNLLm9iamVjdCh7ZGF0YTpjSy5vYmplY3Qoe2lkOmNLLnN0cmluZygpLHRvdGFsX2Nvc3Q6Y0subnVtYmVyKCksdXBzdHJlYW1faW5mZXJlbmNlX2Nvc3Q6Y0subnVtYmVyKCksdXNhZ2U6Y0subnVtYmVyKCksY3JlYXRlZF9hdDpjSy5zdHJpbmcoKSxtb2RlbDpjSy5zdHJpbmcoKSxpc19ieW9rOmNLLmJvb2xlYW4oKSxwcm92aWRlcl9uYW1lOmNLLnN0cmluZygpLHN0cmVhbWVkOmNLLmJvb2xlYW4oKSxmaW5pc2hfcmVhc29uOmNLLnN0cmluZygpLGxhdGVuY3k6Y0subnVtYmVyKCksZ2VuZXJhdGlvbl90aW1lOmNLLm51bWJlcigpLG5hdGl2ZV90b2tlbnNfcHJvbXB0OmNLLm51bWJlcigpLG5hdGl2ZV90b2tlbnNfY29tcGxldGlvbjpjSy5udW1iZXIoKSxuYXRpdmVfdG9rZW5zX3JlYXNvbmluZzpjSy5udW1iZXIoKSxuYXRpdmVfdG9rZW5zX2NhY2hlZDpjSy5udW1iZXIoKSxuYXRpdmVfdG9rZW5zX2NhY2hlX2NyZWF0aW9uOmNLLm51bWJlcigpLGJpbGxhYmxlX3dlYl9zZWFyY2hfY2FsbHM6Y0subnVtYmVyKCl9KS50cmFuc2Zvcm0oKHt0b3RhbF9jb3N0OmUsdXBzdHJlYW1faW5mZXJlbmNlX2Nvc3Q6dCxjcmVhdGVkX2F0OnIsaXNfYnlvazpuLHByb3ZpZGVyX25hbWU6aSxmaW5pc2hfcmVhc29uOmEsZ2VuZXJhdGlvbl90aW1lOm8sbmF0aXZlX3Rva2Vuc19wcm9tcHQ6cyxuYXRpdmVfdG9rZW5zX2NvbXBsZXRpb246dSxuYXRpdmVfdG9rZW5zX3JlYXNvbmluZzpsLG5hdGl2ZV90b2tlbnNfY2FjaGVkOmQsbmF0aXZlX3Rva2Vuc19jYWNoZV9jcmVhdGlvbjpjLGJpbGxhYmxlX3dlYl9zZWFyY2hfY2FsbHM6cCwuLi5tfSk9Pih7Li4ubSx0b3RhbENvc3Q6ZSx1cHN0cmVhbUluZmVyZW5jZUNvc3Q6dCxjcmVhdGVkQXQ6cixpc0J5b2s6bixwcm92aWRlck5hbWU6aSxmaW5pc2hSZWFzb246YSxnZW5lcmF0aW9uVGltZTpvLHByb21wdFRva2VuczpzLGNvbXBsZXRpb25Ub2tlbnM6dSxyZWFzb25pbmdUb2tlbnM6bCxjYWNoZWRUb2tlbnM6ZCxjYWNoZUNyZWF0aW9uVG9rZW5zOmMsYmlsbGFibGVXZWJTZWFyY2hDYWxsczpwfSkpfSkudHJhbnNmb3JtKCh7ZGF0YTplfSk9PmUpKSkscE89Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLm1vZGVsSWQ9ZSx0aGlzLmNvbmZpZz10LHRoaXMuc3BlY2lmaWNhdGlvblZlcnNpb249InYzIix0aGlzLnN1cHBvcnRlZFVybHM9eyIqLyoiOlsvLiovXX19Z2V0IHByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuY29uZmlnLnByb3ZpZGVyfWFzeW5jIGdldEFyZ3MoZSl7bGV0e2Fib3J0U2lnbmFsOnQsLi4ucn09ZTtyZXR1cm57YXJnczp0aGlzLm1heWJlRW5jb2RlRmlsZVBhcnRzKHIpLHdhcm5pbmdzOltdfX1hc3luYyBkb0dlbmVyYXRlKGUpe2xldHthcmdzOnQsd2FybmluZ3M6cn09YXdhaXQgdGhpcy5nZXRBcmdzKGUpLHthYm9ydFNpZ25hbDpufT1lLGk9YXdhaXQgYXQodGhpcy5jb25maWcuaGVhZGVycygpKTt0cnl7bGV0e3Jlc3BvbnNlSGVhZGVyczphLHZhbHVlOm8scmF3VmFsdWU6c309YXdhaXQgaTcoe3VybDp0aGlzLmdldFVybCgpLGhlYWRlcnM6bjEoaSxlLmhlYWRlcnMsdGhpcy5nZXRNb2RlbENvbmZpZ0hlYWRlcnModGhpcy5tb2RlbElkLCExKSxhd2FpdCBhdCh0aGlzLmNvbmZpZy5vMTF5SGVhZGVycykpLGJvZHk6dCxzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOmFuKGNLLmFueSgpKSxmYWlsZWRSZXNwb25zZUhhbmRsZXI6YXIoe2Vycm9yU2NoZW1hOmNLLmFueSgpLGVycm9yVG9NZXNzYWdlOmU9PmV9KSwuLi5uJiZ7YWJvcnRTaWduYWw6bn0sZmV0Y2g6dGhpcy5jb25maWcuZmV0Y2h9KTtyZXR1cm57Li4ubyxyZXF1ZXN0Ontib2R5OnR9LHJlc3BvbnNlOntoZWFkZXJzOmEsYm9keTpzfSx3YXJuaW5nczpyfX1jYXRjaChlKXt0aHJvdyBhd2FpdCBwaChlLGF3YWl0IHBnKGkpKX19YXN5bmMgZG9TdHJlYW0oZSl7bGV0e2FyZ3M6dCx3YXJuaW5nczpyfT1hd2FpdCB0aGlzLmdldEFyZ3MoZSkse2Fib3J0U2lnbmFsOm59PWUsaT1hd2FpdCBhdCh0aGlzLmNvbmZpZy5oZWFkZXJzKCkpO3RyeXtsZXQgYSx7dmFsdWU6byxyZXNwb25zZUhlYWRlcnM6c309YXdhaXQgaTcoe3VybDp0aGlzLmdldFVybCgpLGhlYWRlcnM6bjEoaSxlLmhlYWRlcnMsdGhpcy5nZXRNb2RlbENvbmZpZ0hlYWRlcnModGhpcy5tb2RlbElkLCEwKSxhd2FpdCBhdCh0aGlzLmNvbmZpZy5vMTF5SGVhZGVycykpLGJvZHk6dCxzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOihhPWNLLmFueSgpLGFzeW5jKHtyZXNwb25zZTplfSk9PntsZXQgdD1uNChlKTtpZihudWxsPT1lLmJvZHkpdGhyb3cgbmV3IGV5KHt9KTtyZXR1cm57cmVzcG9uc2VIZWFkZXJzOnQsdmFsdWU6aTUoe3N0cmVhbTplLmJvZHksc2NoZW1hOmF9KX19KSxmYWlsZWRSZXNwb25zZUhhbmRsZXI6YXIoe2Vycm9yU2NoZW1hOmNLLmFueSgpLGVycm9yVG9NZXNzYWdlOmU9PmV9KSwuLi5uJiZ7YWJvcnRTaWduYWw6bn0sZmV0Y2g6dGhpcy5jb25maWcuZmV0Y2h9KTtyZXR1cm57c3RyZWFtOm8ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSh7c3RhcnQoZSl7ci5sZW5ndGg+MCYmZS5lbnF1ZXVlKHt0eXBlOiJzdHJlYW0tc3RhcnQiLHdhcm5pbmdzOnJ9KX0sdHJhbnNmb3JtKHQscil7aWYodC5zdWNjZXNzKXtsZXQgbj10LnZhbHVlOygicmF3IiE9PW4udHlwZXx8ZS5pbmNsdWRlUmF3Q2h1bmtzKSYmKCJyZXNwb25zZS1tZXRhZGF0YSI9PT1uLnR5cGUmJm4udGltZXN0YW1wJiYic3RyaW5nIj09dHlwZW9mIG4udGltZXN0YW1wJiYobi50aW1lc3RhbXA9bmV3IERhdGUobi50aW1lc3RhbXApKSxyLmVucXVldWUobikpfWVsc2Ugci5lcnJvcih0LmVycm9yKX19KSkscmVxdWVzdDp7Ym9keTp0fSxyZXNwb25zZTp7aGVhZGVyczpzfX19Y2F0Y2goZSl7dGhyb3cgYXdhaXQgcGgoZSxhd2FpdCBwZyhpKSl9fWlzRmlsZVBhcnQoZSl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmInR5cGUiaW4gZSYmImZpbGUiPT09ZS50eXBlfW1heWJlRW5jb2RlRmlsZVBhcnRzKGUpe2ZvcihsZXQgdCBvZiBlLnByb21wdClmb3IobGV0IGUgb2YgdC5jb250ZW50KWlmKHRoaXMuaXNGaWxlUGFydChlKSYmZS5kYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSl7bGV0IHQ9VWludDhBcnJheS5mcm9tKGUuZGF0YSkscj1lcy5CdWZmZXIuZnJvbSh0KS50b1N0cmluZygiYmFzZTY0Iik7ZS5kYXRhPW5ldyBVUkwoYGRhdGE6JHtlLm1lZGlhVHlwZXx8ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSJ9O2Jhc2U2NCwke3J9YCl9cmV0dXJuIGV9Z2V0VXJsKCl7cmV0dXJuYCR7dGhpcy5jb25maWcuYmFzZVVSTH0vbGFuZ3VhZ2UtbW9kZWxgfWdldE1vZGVsQ29uZmlnSGVhZGVycyhlLHQpe3JldHVybnsiYWktbGFuZ3VhZ2UtbW9kZWwtc3BlY2lmaWNhdGlvbi12ZXJzaW9uIjoiMyIsImFpLWxhbmd1YWdlLW1vZGVsLWlkIjplLCJhaS1sYW5ndWFnZS1tb2RlbC1zdHJlYW1pbmciOlN0cmluZyh0KX19fSxwaj1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMubW9kZWxJZD1lLHRoaXMuY29uZmlnPXQsdGhpcy5zcGVjaWZpY2F0aW9uVmVyc2lvbj0idjMiLHRoaXMubWF4RW1iZWRkaW5nc1BlckNhbGw9MjA0OCx0aGlzLnN1cHBvcnRzUGFyYWxsZWxDYWxscz0hMH1nZXQgcHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5jb25maWcucHJvdmlkZXJ9YXN5bmMgZG9FbWJlZCh7dmFsdWVzOmUsaGVhZGVyczp0LGFib3J0U2lnbmFsOnIscHJvdmlkZXJPcHRpb25zOm59KXt2YXIgaTtsZXQgYT1hd2FpdCBhdCh0aGlzLmNvbmZpZy5oZWFkZXJzKCkpO3RyeXtsZXR7cmVzcG9uc2VIZWFkZXJzOm8sdmFsdWU6cyxyYXdWYWx1ZTp1fT1hd2FpdCBpNyh7dXJsOnRoaXMuZ2V0VXJsKCksaGVhZGVyczpuMShhLG51bGwhPXQ/dDp7fSx0aGlzLmdldE1vZGVsQ29uZmlnSGVhZGVycygpLGF3YWl0IGF0KHRoaXMuY29uZmlnLm8xMXlIZWFkZXJzKSksYm9keTp7dmFsdWVzOmUsLi4ubj97cHJvdmlkZXJPcHRpb25zOm59Ont9fSxzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOmFuKHBFKSxmYWlsZWRSZXNwb25zZUhhbmRsZXI6YXIoe2Vycm9yU2NoZW1hOmNLLmFueSgpLGVycm9yVG9NZXNzYWdlOmU9PmV9KSwuLi5yJiZ7YWJvcnRTaWduYWw6cn0sZmV0Y2g6dGhpcy5jb25maWcuZmV0Y2h9KTtyZXR1cm57ZW1iZWRkaW5nczpzLmVtYmVkZGluZ3MsdXNhZ2U6bnVsbCE9KGk9cy51c2FnZSk/aTp2b2lkIDAscHJvdmlkZXJNZXRhZGF0YTpzLnByb3ZpZGVyTWV0YWRhdGEscmVzcG9uc2U6e2hlYWRlcnM6byxib2R5OnV9LHdhcm5pbmdzOltdfX1jYXRjaChlKXt0aHJvdyBhd2FpdCBwaChlLGF3YWl0IHBnKGEpKX19Z2V0VXJsKCl7cmV0dXJuYCR7dGhpcy5jb25maWcuYmFzZVVSTH0vZW1iZWRkaW5nLW1vZGVsYH1nZXRNb2RlbENvbmZpZ0hlYWRlcnMoKXtyZXR1cm57ImFpLWVtYmVkZGluZy1tb2RlbC1zcGVjaWZpY2F0aW9uLXZlcnNpb24iOiIzIiwiYWktbW9kZWwtaWQiOnRoaXMubW9kZWxJZH19fSxwRT1pWCgoKT0+aTEoY0sub2JqZWN0KHtlbWJlZGRpbmdzOmNLLmFycmF5KGNLLmFycmF5KGNLLm51bWJlcigpKSksdXNhZ2U6Y0sub2JqZWN0KHt0b2tlbnM6Y0subnVtYmVyKCl9KS5udWxsaXNoKCkscHJvdmlkZXJNZXRhZGF0YTpjSy5yZWNvcmQoY0suc3RyaW5nKCksY0sucmVjb3JkKGNLLnN0cmluZygpLGNLLnVua25vd24oKSkpLm9wdGlvbmFsKCl9KSkpLHBaPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5tb2RlbElkPWUsdGhpcy5jb25maWc9dCx0aGlzLnNwZWNpZmljYXRpb25WZXJzaW9uPSJ2MyIsdGhpcy5tYXhJbWFnZXNQZXJDYWxsPU51bWJlci5NQVhfU0FGRV9JTlRFR0VSfWdldCBwcm92aWRlcigpe3JldHVybiB0aGlzLmNvbmZpZy5wcm92aWRlcn1hc3luYyBkb0dlbmVyYXRlKHtwcm9tcHQ6ZSxuOnQsc2l6ZTpyLGFzcGVjdFJhdGlvOm4sc2VlZDppLGZpbGVzOmEsbWFzazpvLHByb3ZpZGVyT3B0aW9uczpzLGhlYWRlcnM6dSxhYm9ydFNpZ25hbDpsfSl7dmFyIGQsYyxwLG07bGV0IGY9YXdhaXQgYXQodGhpcy5jb25maWcuaGVhZGVycygpKTt0cnl7bGV0e3Jlc3BvbnNlSGVhZGVyczpoLHZhbHVlOnYscmF3VmFsdWU6Z309YXdhaXQgaTcoe3VybDp0aGlzLmdldFVybCgpLGhlYWRlcnM6bjEoZixudWxsIT11P3U6e30sdGhpcy5nZXRNb2RlbENvbmZpZ0hlYWRlcnMoKSxhd2FpdCBhdCh0aGlzLmNvbmZpZy5vMTF5SGVhZGVycykpLGJvZHk6e3Byb21wdDplLG46dCwuLi5yJiZ7c2l6ZTpyfSwuLi5uJiZ7YXNwZWN0UmF0aW86bn0sLi4uaSYme3NlZWQ6aX0sLi4ucyYme3Byb3ZpZGVyT3B0aW9uczpzfSwuLi5hJiZ7ZmlsZXM6YS5tYXAoZT0+cE4oZSkpfSwuLi5vJiZ7bWFzazpwTihvKX19LHN1Y2Nlc3NmdWxSZXNwb25zZUhhbmRsZXI6YW4ocEEpLGZhaWxlZFJlc3BvbnNlSGFuZGxlcjphcih7ZXJyb3JTY2hlbWE6Y0suYW55KCksZXJyb3JUb01lc3NhZ2U6ZT0+ZX0pLC4uLmwmJnthYm9ydFNpZ25hbDpsfSxmZXRjaDp0aGlzLmNvbmZpZy5mZXRjaH0pO3JldHVybntpbWFnZXM6di5pbWFnZXMsd2FybmluZ3M6bnVsbCE9KGQ9di53YXJuaW5ncyk/ZDpbXSxwcm92aWRlck1ldGFkYXRhOnYucHJvdmlkZXJNZXRhZGF0YSxyZXNwb25zZTp7dGltZXN0YW1wOm5ldyBEYXRlLG1vZGVsSWQ6dGhpcy5tb2RlbElkLGhlYWRlcnM6aH0sLi4ubnVsbCE9di51c2FnZSYme3VzYWdlOntpbnB1dFRva2VuczpudWxsIT0oYz12LnVzYWdlLmlucHV0VG9rZW5zKT9jOnZvaWQgMCxvdXRwdXRUb2tlbnM6bnVsbCE9KHA9di51c2FnZS5vdXRwdXRUb2tlbnMpP3A6dm9pZCAwLHRvdGFsVG9rZW5zOm51bGwhPShtPXYudXNhZ2UudG90YWxUb2tlbnMpP206dm9pZCAwfX19fWNhdGNoKGUpe3Rocm93IGF3YWl0IHBoKGUsYXdhaXQgcGcoZikpfX1nZXRVcmwoKXtyZXR1cm5gJHt0aGlzLmNvbmZpZy5iYXNlVVJMfS9pbWFnZS1tb2RlbGB9Z2V0TW9kZWxDb25maWdIZWFkZXJzKCl7cmV0dXJueyJhaS1pbWFnZS1tb2RlbC1zcGVjaWZpY2F0aW9uLXZlcnNpb24iOiIzIiwiYWktbW9kZWwtaWQiOnRoaXMubW9kZWxJZH19fTtmdW5jdGlvbiBwTihlKXtyZXR1cm4iZmlsZSI9PT1lLnR5cGUmJmUuZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/ey4uLmUsZGF0YTpuOShlLmRhdGEpfTplfXZhciBwVD1jSy5vYmplY3Qoe2ltYWdlczpjSy5hcnJheShjSy51bmtub3duKCkpLm9wdGlvbmFsKCl9KS5jYXRjaGFsbChjSy51bmtub3duKCkpLHB6PWNLLmRpc2NyaW1pbmF0ZWRVbmlvbigidHlwZSIsW2NLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ1bnN1cHBvcnRlZCIpLGZlYXR1cmU6Y0suc3RyaW5nKCksZGV0YWlsczpjSy5zdHJpbmcoKS5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImNvbXBhdGliaWxpdHkiKSxmZWF0dXJlOmNLLnN0cmluZygpLGRldGFpbHM6Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJvdGhlciIpLG1lc3NhZ2U6Y0suc3RyaW5nKCl9KV0pLHBQPWNLLm9iamVjdCh7aW5wdXRUb2tlbnM6Y0subnVtYmVyKCkubnVsbGlzaCgpLG91dHB1dFRva2VuczpjSy5udW1iZXIoKS5udWxsaXNoKCksdG90YWxUb2tlbnM6Y0subnVtYmVyKCkubnVsbGlzaCgpfSkscEE9Y0sub2JqZWN0KHtpbWFnZXM6Y0suYXJyYXkoY0suc3RyaW5nKCkpLHdhcm5pbmdzOmNLLmFycmF5KHB6KS5vcHRpb25hbCgpLHByb3ZpZGVyTWV0YWRhdGE6Y0sucmVjb3JkKGNLLnN0cmluZygpLHBUKS5vcHRpb25hbCgpLHVzYWdlOnBQLm9wdGlvbmFsKCl9KSxwVT1jbGFzc3tjb25zdHJ1Y3RvcihlLHQpe3RoaXMubW9kZWxJZD1lLHRoaXMuY29uZmlnPXQsdGhpcy5zcGVjaWZpY2F0aW9uVmVyc2lvbj0idjMiLHRoaXMubWF4VmlkZW9zUGVyQ2FsbD1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1nZXQgcHJvdmlkZXIoKXtyZXR1cm4gdGhpcy5jb25maWcucHJvdmlkZXJ9YXN5bmMgZG9HZW5lcmF0ZSh7cHJvbXB0OmUsbjp0LGFzcGVjdFJhdGlvOnIscmVzb2x1dGlvbjpuLGR1cmF0aW9uOmksZnBzOmEsc2VlZDpvLGltYWdlOnMscHJvdmlkZXJPcHRpb25zOnUsaGVhZGVyczpsLGFib3J0U2lnbmFsOmR9KXt2YXIgYyxwO2xldCBtPWF3YWl0IGF0KHRoaXMuY29uZmlnLmhlYWRlcnMoKSk7dHJ5e2xldHtyZXNwb25zZUhlYWRlcnM6Zix2YWx1ZTpofT1hd2FpdCBpNyh7dXJsOnRoaXMuZ2V0VXJsKCksaGVhZGVyczpuMShtLG51bGwhPWw/bDp7fSx0aGlzLmdldE1vZGVsQ29uZmlnSGVhZGVycygpLGF3YWl0IGF0KHRoaXMuY29uZmlnLm8xMXlIZWFkZXJzKSx7YWNjZXB0OiJ0ZXh0L2V2ZW50LXN0cmVhbSJ9KSxib2R5Ontwcm9tcHQ6ZSxuOnQsLi4uciYme2FzcGVjdFJhdGlvOnJ9LC4uLm4mJntyZXNvbHV0aW9uOm59LC4uLmkmJntkdXJhdGlvbjppfSwuLi5hJiZ7ZnBzOmF9LC4uLm8mJntzZWVkOm99LC4uLnUmJntwcm92aWRlck9wdGlvbnM6dX0sLi4ucyYme2ltYWdlOihwPXMsImZpbGUiPT09cC50eXBlJiZwLmRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5P3suLi5wLGRhdGE6bjkocC5kYXRhKX06cCl9fSxzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOmFzeW5jKHtyZXNwb25zZTplLHVybDp0LHJlcXVlc3RCb2R5VmFsdWVzOnJ9KT0+e2lmKG51bGw9PWUuYm9keSl0aHJvdyBuZXcgZWYoe21lc3NhZ2U6IlNTRSByZXNwb25zZSBib2R5IGlzIGVtcHR5Iix1cmw6dCxyZXF1ZXN0Qm9keVZhbHVlczpyLHN0YXR1c0NvZGU6ZS5zdGF0dXN9KTtsZXQgbj1pNSh7c3RyZWFtOmUuYm9keSxzY2hlbWE6cE19KS5nZXRSZWFkZXIoKSx7ZG9uZTppLHZhbHVlOmF9PWF3YWl0IG4ucmVhZCgpO2lmKG4ucmVsZWFzZUxvY2soKSxpfHwhYSl0aHJvdyBuZXcgZWYoe21lc3NhZ2U6IlNTRSBzdHJlYW0gZW5kZWQgd2l0aG91dCBhIGRhdGEgZXZlbnQiLHVybDp0LHJlcXVlc3RCb2R5VmFsdWVzOnIsc3RhdHVzQ29kZTplLnN0YXR1c30pO2lmKCFhLnN1Y2Nlc3MpdGhyb3cgbmV3IGVmKHttZXNzYWdlOiJGYWlsZWQgdG8gcGFyc2UgdmlkZW8gU1NFIGV2ZW50IixjYXVzZTphLmVycm9yLHVybDp0LHJlcXVlc3RCb2R5VmFsdWVzOnIsc3RhdHVzQ29kZTplLnN0YXR1c30pO2xldCBvPWEudmFsdWU7aWYoImVycm9yIj09PW8udHlwZSl0aHJvdyBuZXcgZWYoe21lc3NhZ2U6by5tZXNzYWdlLHN0YXR1c0NvZGU6by5zdGF0dXNDb2RlLHVybDp0LHJlcXVlc3RCb2R5VmFsdWVzOnIscmVzcG9uc2VIZWFkZXJzOk9iamVjdC5mcm9tRW50cmllcyhbLi4uZS5oZWFkZXJzXSkscmVzcG9uc2VCb2R5OkpTT04uc3RyaW5naWZ5KG8pLGRhdGE6e2Vycm9yOnttZXNzYWdlOm8ubWVzc2FnZSx0eXBlOm8uZXJyb3JUeXBlLHBhcmFtOm8ucGFyYW19fX0pO3JldHVybnt2YWx1ZTp7dmlkZW9zOm8udmlkZW9zLHdhcm5pbmdzOm8ud2FybmluZ3MscHJvdmlkZXJNZXRhZGF0YTpvLnByb3ZpZGVyTWV0YWRhdGF9LHJlc3BvbnNlSGVhZGVyczpPYmplY3QuZnJvbUVudHJpZXMoWy4uLmUuaGVhZGVyc10pfX0sZmFpbGVkUmVzcG9uc2VIYW5kbGVyOmFyKHtlcnJvclNjaGVtYTpjSy5hbnkoKSxlcnJvclRvTWVzc2FnZTplPT5lfSksLi4uZCYme2Fib3J0U2lnbmFsOmR9LGZldGNoOnRoaXMuY29uZmlnLmZldGNofSk7cmV0dXJue3ZpZGVvczpoLnZpZGVvcyx3YXJuaW5nczpudWxsIT0oYz1oLndhcm5pbmdzKT9jOltdLHByb3ZpZGVyTWV0YWRhdGE6aC5wcm92aWRlck1ldGFkYXRhLHJlc3BvbnNlOnt0aW1lc3RhbXA6bmV3IERhdGUsbW9kZWxJZDp0aGlzLm1vZGVsSWQsaGVhZGVyczpmfX19Y2F0Y2goZSl7dGhyb3cgYXdhaXQgcGgoZSxhd2FpdCBwZyhtKSl9fWdldFVybCgpe3JldHVybmAke3RoaXMuY29uZmlnLmJhc2VVUkx9L3ZpZGVvLW1vZGVsYH1nZXRNb2RlbENvbmZpZ0hlYWRlcnMoKXtyZXR1cm57ImFpLXZpZGVvLW1vZGVsLXNwZWNpZmljYXRpb24tdmVyc2lvbiI6IjMiLCJhaS1tb2RlbC1pZCI6dGhpcy5tb2RlbElkfX19LHBDPWNLLm9iamVjdCh7dmlkZW9zOmNLLmFycmF5KGNLLnVua25vd24oKSkub3B0aW9uYWwoKX0pLmNhdGNoYWxsKGNLLnVua25vd24oKSkscEQ9Y0sudW5pb24oW2NLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ1cmwiKSx1cmw6Y0suc3RyaW5nKCksbWVkaWFUeXBlOmNLLnN0cmluZygpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImJhc2U2NCIpLGRhdGE6Y0suc3RyaW5nKCksbWVkaWFUeXBlOmNLLnN0cmluZygpfSldKSxwUj1jSy5kaXNjcmltaW5hdGVkVW5pb24oInR5cGUiLFtjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidW5zdXBwb3J0ZWQiKSxmZWF0dXJlOmNLLnN0cmluZygpLGRldGFpbHM6Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJjb21wYXRpYmlsaXR5IiksZmVhdHVyZTpjSy5zdHJpbmcoKSxkZXRhaWxzOmNLLnN0cmluZygpLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgib3RoZXIiKSxtZXNzYWdlOmNLLnN0cmluZygpfSldKSxwTT1jSy5kaXNjcmltaW5hdGVkVW5pb24oInR5cGUiLFtjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgicmVzdWx0IiksdmlkZW9zOmNLLmFycmF5KHBEKSx3YXJuaW5nczpjSy5hcnJheShwUikub3B0aW9uYWwoKSxwcm92aWRlck1ldGFkYXRhOmNLLnJlY29yZChjSy5zdHJpbmcoKSxwQykub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJlcnJvciIpLG1lc3NhZ2U6Y0suc3RyaW5nKCksZXJyb3JUeXBlOmNLLnN0cmluZygpLHN0YXR1c0NvZGU6Y0subnVtYmVyKCkscGFyYW06Y0sudW5rbm93bigpLm51bGxhYmxlKCl9KV0pLHBMPWNsYXNze2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5tb2RlbElkPWUsdGhpcy5jb25maWc9dCx0aGlzLnNwZWNpZmljYXRpb25WZXJzaW9uPSJ2MyJ9Z2V0IHByb3ZpZGVyKCl7cmV0dXJuIHRoaXMuY29uZmlnLnByb3ZpZGVyfWFzeW5jIGRvUmVyYW5rKHtkb2N1bWVudHM6ZSxxdWVyeTp0LHRvcE46cixoZWFkZXJzOm4sYWJvcnRTaWduYWw6aSxwcm92aWRlck9wdGlvbnM6YX0pe2xldCBvPWF3YWl0IGF0KHRoaXMuY29uZmlnLmhlYWRlcnMoKSk7dHJ5e2xldHtyZXNwb25zZUhlYWRlcnM6cyx2YWx1ZTp1LHJhd1ZhbHVlOmx9PWF3YWl0IGk3KHt1cmw6dGhpcy5nZXRVcmwoKSxoZWFkZXJzOm4xKG8sbnVsbCE9bj9uOnt9LHRoaXMuZ2V0TW9kZWxDb25maWdIZWFkZXJzKCksYXdhaXQgYXQodGhpcy5jb25maWcubzExeUhlYWRlcnMpKSxib2R5Ontkb2N1bWVudHM6ZSxxdWVyeTp0LC4uLm51bGwhPXI/e3RvcE46cn06e30sLi4uYT97cHJvdmlkZXJPcHRpb25zOmF9Ont9fSxzdWNjZXNzZnVsUmVzcG9uc2VIYW5kbGVyOmFuKHBGKSxmYWlsZWRSZXNwb25zZUhhbmRsZXI6YXIoe2Vycm9yU2NoZW1hOmNLLmFueSgpLGVycm9yVG9NZXNzYWdlOmU9PmV9KSwuLi5pJiZ7YWJvcnRTaWduYWw6aX0sZmV0Y2g6dGhpcy5jb25maWcuZmV0Y2h9KTtyZXR1cm57cmFua2luZzp1LnJhbmtpbmcscHJvdmlkZXJNZXRhZGF0YTp1LnByb3ZpZGVyTWV0YWRhdGEscmVzcG9uc2U6e2hlYWRlcnM6cyxib2R5Omx9LHdhcm5pbmdzOltdfX1jYXRjaChlKXt0aHJvdyBhd2FpdCBwaChlLGF3YWl0IHBnKG8pKX19Z2V0VXJsKCl7cmV0dXJuYCR7dGhpcy5jb25maWcuYmFzZVVSTH0vcmVyYW5raW5nLW1vZGVsYH1nZXRNb2RlbENvbmZpZ0hlYWRlcnMoKXtyZXR1cm57ImFpLXJlcmFua2luZy1tb2RlbC1zcGVjaWZpY2F0aW9uLXZlcnNpb24iOiIzIiwiYWktbW9kZWwtaWQiOnRoaXMubW9kZWxJZH19fSxwRj1pWCgoKT0+aTEoY0sub2JqZWN0KHtyYW5raW5nOmNLLmFycmF5KGNLLm9iamVjdCh7aW5kZXg6Y0subnVtYmVyKCkscmVsZXZhbmNlU2NvcmU6Y0subnVtYmVyKCl9KSkscHJvdmlkZXJNZXRhZGF0YTpjSy5yZWNvcmQoY0suc3RyaW5nKCksY0sucmVjb3JkKGNLLnN0cmluZygpLGNLLnVua25vd24oKSkpLm9wdGlvbmFsKCl9KSkpLHBWPWFlKHtpZDoiZ2F0ZXdheS5wYXJhbGxlbF9zZWFyY2giLGlucHV0U2NoZW1hOmlYKCgpPT5pMShjWS5vYmplY3Qoe29iamVjdGl2ZTpjWS5zdHJpbmcoKS5kZXNjcmliZSgiTmF0dXJhbC1sYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB0aGUgd2ViIHJlc2VhcmNoIGdvYWwsIGluY2x1ZGluZyBzb3VyY2Ugb3IgZnJlc2huZXNzIGd1aWRhbmNlIGFuZCBicm9hZGVyIGNvbnRleHQgZnJvbSB0aGUgdGFzay4gTWF4aW11bSA1MDAwIGNoYXJhY3RlcnMuIiksc2VhcmNoX3F1ZXJpZXM6Y1kuYXJyYXkoY1kuc3RyaW5nKCkpLm9wdGlvbmFsKCkuZGVzY3JpYmUoIk9wdGlvbmFsIHNlYXJjaCBxdWVyaWVzIHRvIHN1cHBsZW1lbnQgdGhlIG9iamVjdGl2ZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycyBwZXIgcXVlcnkuIiksbW9kZTpjWS5lbnVtKFsib25lLXNob3QiLCJhZ2VudGljIl0pLm9wdGlvbmFsKCkuZGVzY3JpYmUoJ01vZGUgcHJlc2V0OiAib25lLXNob3QiIGZvciBjb21wcmVoZW5zaXZlIHJlc3VsdHMgd2l0aCBsb25nZXIgZXhjZXJwdHMgKGRlZmF1bHQpLCAiYWdlbnRpYyIgZm9yIGNvbmNpc2UsIHRva2VuLWVmZmljaWVudCByZXN1bHRzIGZvciBtdWx0aS1zdGVwIHdvcmtmbG93cy4nKSxtYXhfcmVzdWx0czpjWS5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHRvIHJldHVybiAoMS0yMCkuIERlZmF1bHRzIHRvIDEwIGlmIG5vdCBzcGVjaWZpZWQuIiksc291cmNlX3BvbGljeTpjWS5vYmplY3Qoe2luY2x1ZGVfZG9tYWluczpjWS5hcnJheShjWS5zdHJpbmcoKSkub3B0aW9uYWwoKS5kZXNjcmliZSgiTGlzdCBvZiBkb21haW5zIHRvIGluY2x1ZGUgaW4gc2VhcmNoIHJlc3VsdHMuIiksZXhjbHVkZV9kb21haW5zOmNZLmFycmF5KGNZLnN0cmluZygpKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJMaXN0IG9mIGRvbWFpbnMgdG8gZXhjbHVkZSBmcm9tIHNlYXJjaCByZXN1bHRzLiIpLGFmdGVyX2RhdGU6Y1kuc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiT25seSBpbmNsdWRlIHJlc3VsdHMgcHVibGlzaGVkIGFmdGVyIHRoaXMgZGF0ZSAoSVNPIDg2MDEgZm9ybWF0KS4iKX0pLm9wdGlvbmFsKCkuZGVzY3JpYmUoIlNvdXJjZSBwb2xpY3kgZm9yIGNvbnRyb2xsaW5nIHdoaWNoIGRvbWFpbnMgdG8gaW5jbHVkZS9leGNsdWRlIGFuZCBmcmVzaG5lc3MuIiksZXhjZXJwdHM6Y1kub2JqZWN0KHttYXhfY2hhcnNfcGVyX3Jlc3VsdDpjWS5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJNYXhpbXVtIGNoYXJhY3RlcnMgcGVyIHJlc3VsdC4iKSxtYXhfY2hhcnNfdG90YWw6Y1kubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiTWF4aW11bSB0b3RhbCBjaGFyYWN0ZXJzIGFjcm9zcyBhbGwgcmVzdWx0cy4iKX0pLm9wdGlvbmFsKCkuZGVzY3JpYmUoIkV4Y2VycHQgY29uZmlndXJhdGlvbiBmb3IgY29udHJvbGxpbmcgcmVzdWx0IGxlbmd0aC4iKSxmZXRjaF9wb2xpY3k6Y1kub2JqZWN0KHttYXhfYWdlX3NlY29uZHM6Y1kubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiTWF4aW11bSBhZ2UgaW4gc2Vjb25kcyBmb3IgY2FjaGVkIGNvbnRlbnQuIFNldCB0byAwIHRvIGFsd2F5cyBmZXRjaCBmcmVzaCBjb250ZW50LiIpfSkub3B0aW9uYWwoKS5kZXNjcmliZSgiRmV0Y2ggcG9saWN5IGZvciBjb250cm9sbGluZyBjb250ZW50IGZyZXNobmVzcy4iKX0pKSksb3V0cHV0U2NoZW1hOmlYKCgpPT5pMShjWS51bmlvbihbY1kub2JqZWN0KHtzZWFyY2hJZDpjWS5zdHJpbmcoKSxyZXN1bHRzOmNZLmFycmF5KGNZLm9iamVjdCh7dXJsOmNZLnN0cmluZygpLHRpdGxlOmNZLnN0cmluZygpLGV4Y2VycHQ6Y1kuc3RyaW5nKCkscHVibGlzaERhdGU6Y1kuc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLHJlbGV2YW5jZVNjb3JlOmNZLm51bWJlcigpLm9wdGlvbmFsKCl9KSl9KSxjWS5vYmplY3Qoe2Vycm9yOmNZLmVudW0oWyJhcGlfZXJyb3IiLCJyYXRlX2xpbWl0IiwidGltZW91dCIsImludmFsaWRfaW5wdXQiLCJjb25maWd1cmF0aW9uX2Vycm9yIiwidW5rbm93biJdKSxzdGF0dXNDb2RlOmNZLm51bWJlcigpLm9wdGlvbmFsKCksbWVzc2FnZTpjWS5zdHJpbmcoKX0pXSkpKX0pLHBCPWFlKHtpZDoiZ2F0ZXdheS5wZXJwbGV4aXR5X3NlYXJjaCIsaW5wdXRTY2hlbWE6aVgoKCk9PmkxKGNZLm9iamVjdCh7cXVlcnk6Y1kudW5pb24oW2NZLnN0cmluZygpLGNZLmFycmF5KGNZLnN0cmluZygpKV0pLmRlc2NyaWJlKCJTZWFyY2ggcXVlcnkgKHN0cmluZykgb3IgbXVsdGlwbGUgcXVlcmllcyAoYXJyYXkgb2YgdXAgdG8gNSBzdHJpbmdzKS4gTXVsdGktcXVlcnkgc2VhcmNoZXMgcmV0dXJuIGNvbWJpbmVkIHJlc3VsdHMgZnJvbSBhbGwgcXVlcmllcy4iKSxtYXhfcmVzdWx0czpjWS5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJNYXhpbXVtIG51bWJlciBvZiBzZWFyY2ggcmVzdWx0cyB0byByZXR1cm4gKDEtMjAsIGRlZmF1bHQ6IDEwKSIpLG1heF90b2tlbnNfcGVyX3BhZ2U6Y1kubnVtYmVyKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiTWF4aW11bSBudW1iZXIgb2YgdG9rZW5zIHRvIGV4dHJhY3QgcGVyIHNlYXJjaCByZXN1bHQgcGFnZSAoMjU2LTIwNDgsIGRlZmF1bHQ6IDIwNDgpIiksbWF4X3Rva2VuczpjWS5udW1iZXIoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJNYXhpbXVtIHRvdGFsIHRva2VucyBhY3Jvc3MgYWxsIHNlYXJjaCByZXN1bHRzIChkZWZhdWx0OiAyNTAwMCwgbWF4OiAxMDAwMDAwKSIpLGNvdW50cnk6Y1kuc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiVHdvLWxldHRlciBJU08gMzE2Ni0xIGFscGhhLTIgY291bnRyeSBjb2RlIGZvciByZWdpb25hbCBzZWFyY2ggcmVzdWx0cyAoZS5nLiwgJ1VTJywgJ0dCJywgJ0ZSJykiKSxzZWFyY2hfZG9tYWluX2ZpbHRlcjpjWS5hcnJheShjWS5zdHJpbmcoKSkub3B0aW9uYWwoKS5kZXNjcmliZSgiTGlzdCBvZiBkb21haW5zIHRvIGluY2x1ZGUgb3IgZXhjbHVkZSBmcm9tIHNlYXJjaCByZXN1bHRzIChtYXggMjApLiBUbyBpbmNsdWRlOiBbJ25hdHVyZS5jb20nLCAnc2NpZW5jZS5vcmcnXS4gVG8gZXhjbHVkZTogWyctZXhhbXBsZS5jb20nLCAnLXNwYW0ubmV0J10iKSxzZWFyY2hfbGFuZ3VhZ2VfZmlsdGVyOmNZLmFycmF5KGNZLnN0cmluZygpKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJMaXN0IG9mIElTTyA2MzktMSBsYW5ndWFnZSBjb2RlcyB0byBmaWx0ZXIgcmVzdWx0cyAobWF4IDEwLCBsb3dlcmNhc2UpLiBFeGFtcGxlczogWydlbicsICdmcicsICdkZSddIiksc2VhcmNoX2FmdGVyX2RhdGU6Y1kuc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiSW5jbHVkZSBvbmx5IHJlc3VsdHMgcHVibGlzaGVkIGFmdGVyIHRoaXMgZGF0ZS4gRm9ybWF0OiAnTU0vREQvWVlZWScgKGUuZy4sICczLzEvMjAyNScpLiBDYW5ub3QgYmUgdXNlZCB3aXRoIHNlYXJjaF9yZWNlbmN5X2ZpbHRlci4iKSxzZWFyY2hfYmVmb3JlX2RhdGU6Y1kuc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiSW5jbHVkZSBvbmx5IHJlc3VsdHMgcHVibGlzaGVkIGJlZm9yZSB0aGlzIGRhdGUuIEZvcm1hdDogJ01NL0REL1lZWVknIChlLmcuLCAnMy8xNS8yMDI1JykuIENhbm5vdCBiZSB1c2VkIHdpdGggc2VhcmNoX3JlY2VuY3lfZmlsdGVyLiIpLGxhc3RfdXBkYXRlZF9hZnRlcl9maWx0ZXI6Y1kuc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZSgiSW5jbHVkZSBvbmx5IHJlc3VsdHMgbGFzdCB1cGRhdGVkIGFmdGVyIHRoaXMgZGF0ZS4gRm9ybWF0OiAnTU0vREQvWVlZWScgKGUuZy4sICczLzEvMjAyNScpLiBDYW5ub3QgYmUgdXNlZCB3aXRoIHNlYXJjaF9yZWNlbmN5X2ZpbHRlci4iKSxsYXN0X3VwZGF0ZWRfYmVmb3JlX2ZpbHRlcjpjWS5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKCJJbmNsdWRlIG9ubHkgcmVzdWx0cyBsYXN0IHVwZGF0ZWQgYmVmb3JlIHRoaXMgZGF0ZS4gRm9ybWF0OiAnTU0vREQvWVlZWScgKGUuZy4sICczLzE1LzIwMjUnKS4gQ2Fubm90IGJlIHVzZWQgd2l0aCBzZWFyY2hfcmVjZW5jeV9maWx0ZXIuIiksc2VhcmNoX3JlY2VuY3lfZmlsdGVyOmNZLmVudW0oWyJkYXkiLCJ3ZWVrIiwibW9udGgiLCJ5ZWFyIl0pLm9wdGlvbmFsKCkuZGVzY3JpYmUoIkZpbHRlciByZXN1bHRzIGJ5IHJlbGF0aXZlIHRpbWUgcGVyaW9kLiBDYW5ub3QgYmUgdXNlZCB3aXRoIHNlYXJjaF9hZnRlcl9kYXRlIG9yIHNlYXJjaF9iZWZvcmVfZGF0ZS4iKX0pKSksb3V0cHV0U2NoZW1hOmlYKCgpPT5pMShjWS51bmlvbihbY1kub2JqZWN0KHtyZXN1bHRzOmNZLmFycmF5KGNZLm9iamVjdCh7dGl0bGU6Y1kuc3RyaW5nKCksdXJsOmNZLnN0cmluZygpLHNuaXBwZXQ6Y1kuc3RyaW5nKCksZGF0ZTpjWS5zdHJpbmcoKS5vcHRpb25hbCgpLGxhc3RVcGRhdGVkOmNZLnN0cmluZygpLm9wdGlvbmFsKCl9KSksaWQ6Y1kuc3RyaW5nKCl9KSxjWS5vYmplY3Qoe2Vycm9yOmNZLmVudW0oWyJhcGlfZXJyb3IiLCJyYXRlX2xpbWl0IiwidGltZW91dCIsImludmFsaWRfaW5wdXQiLCJ1bmtub3duIl0pLHN0YXR1c0NvZGU6Y1kubnVtYmVyKCkub3B0aW9uYWwoKSxtZXNzYWdlOmNZLnN0cmluZygpfSldKSkpfSkscEo9e3BhcmFsbGVsU2VhcmNoOihlPXt9KT0+cFYoZSkscGVycGxleGl0eVNlYXJjaDooZT17fSk9PnBCKGUpfTthc3luYyBmdW5jdGlvbiBwVygpe3ZhciBlO3JldHVybiBudWxsPT0oZT0oMCxjSC5nZXRDb250ZXh0KSgpLmhlYWRlcnMpP3ZvaWQgMDplWyJ4LXZlcmNlbC1pZCJdfWFzeW5jIGZ1bmN0aW9uIHBxKGUpe2xldCB0PWl5KHtzZXR0aW5nVmFsdWU6ZS5hcGlLZXksZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IkFJX0dBVEVXQVlfQVBJX0tFWSJ9KTtyZXR1cm4gdD97dG9rZW46dCxhdXRoTWV0aG9kOiJhcGkta2V5In06e3Rva2VuOmF3YWl0ICgwLGNILmdldFZlcmNlbE9pZGNUb2tlbikoKSxhdXRoTWV0aG9kOiJvaWRjIn19IWZ1bmN0aW9uKGU9e30pe3ZhciB0LHIsbjtsZXQgaT1udWxsLGE9bnVsbCxvPW51bGwhPSh0PWUubWV0YWRhdGFDYWNoZVJlZnJlc2hNaWxsaXMpP3Q6M2U1LHM9MCx1PW51bGwhPShyPW51bGw9PShuPWUuYmFzZVVSTCk/dm9pZCAwOm4ucmVwbGFjZSgvXC8kLywiIikpP3I6Imh0dHBzOi8vYWktZ2F0ZXdheS52ZXJjZWwuc2gvdjMvYWkiLGw9YXN5bmMoKT0+e3RyeXtsZXQgdD1hd2FpdCBwcShlKTtyZXR1cm4gaW0oe0F1dGhvcml6YXRpb246YEJlYXJlciAke3QudG9rZW59YCwiYWktZ2F0ZXdheS1wcm90b2NvbC12ZXJzaW9uIjoiMC4wLjEiLFtwdl06dC5hdXRoTWV0aG9kLC4uLmUuaGVhZGVyc30sImFpLXNkay9nYXRld2F5LzMuMC4xMjEiKX1jYXRjaChlKXt0aHJvdyBjNC5jcmVhdGVDb250ZXh0dWFsRXJyb3Ioe2FwaUtleVByb3ZpZGVkOiExLG9pZGNUb2tlblByb3ZpZGVkOiExLHN0YXR1c0NvZGU6NDAxLGNhdXNlOmV9KX19LGQ9KCk9PntsZXQgZT1peSh7c2V0dGluZ1ZhbHVlOnZvaWQgMCxlbnZpcm9ubWVudFZhcmlhYmxlTmFtZToiVkVSQ0VMX0RFUExPWU1FTlRfSUQifSksdD1peSh7c2V0dGluZ1ZhbHVlOnZvaWQgMCxlbnZpcm9ubWVudFZhcmlhYmxlTmFtZToiVkVSQ0VMX0VOViJ9KSxyPWl5KHtzZXR0aW5nVmFsdWU6dm9pZCAwLGVudmlyb25tZW50VmFyaWFibGVOYW1lOiJWRVJDRUxfUkVHSU9OIn0pLG49aXkoe3NldHRpbmdWYWx1ZTp2b2lkIDAsZW52aXJvbm1lbnRWYXJpYWJsZU5hbWU6IlZFUkNFTF9QUk9KRUNUX0lEIn0pO3JldHVybiBhc3luYygpPT57bGV0IGk9YXdhaXQgcFcoKTtyZXR1cm57Li4uZSYmeyJhaS1vMTF5LWRlcGxveW1lbnQtaWQiOmV9LC4uLnQmJnsiYWktbzExeS1lbnZpcm9ubWVudCI6dH0sLi4uciYmeyJhaS1vMTF5LXJlZ2lvbiI6cn0sLi4uaSYmeyJhaS1vMTF5LXJlcXVlc3QtaWQiOml9LC4uLm4mJnsiYWktbzExeS1wcm9qZWN0LWlkIjpufX19fSxjPXQ9Pm5ldyBwTyh0LHtwcm92aWRlcjoiZ2F0ZXdheSIsYmFzZVVSTDp1LGhlYWRlcnM6bCxmZXRjaDplLmZldGNoLG8xMXlIZWFkZXJzOmQoKX0pLHA9YXN5bmMoKT0+e3ZhciB0LHIsbjtsZXQgZD1udWxsIT0obj1udWxsPT0ocj1udWxsPT0odD1lLl9pbnRlcm5hbCk/dm9pZCAwOnQuY3VycmVudERhdGUpP3ZvaWQgMDpyLmNhbGwodCkuZ2V0VGltZSgpKT9uOkRhdGUubm93KCk7cmV0dXJuKCFpfHxkLXM+bykmJihzPWQsaT1uZXcgcF8oe2Jhc2VVUkw6dSxoZWFkZXJzOmwsZmV0Y2g6ZS5mZXRjaH0pLmdldEF2YWlsYWJsZU1vZGVscygpLnRoZW4oZT0+KGE9ZSxlKSkuY2F0Y2goYXN5bmMgZT0+e3Rocm93IGF3YWl0IHBoKGUsYXdhaXQgcGcoYXdhaXQgbCgpKSl9KSksYT9Qcm9taXNlLnJlc29sdmUoYSk6aX0sbT1hc3luYygpPT5uZXcgcF8oe2Jhc2VVUkw6dSxoZWFkZXJzOmwsZmV0Y2g6ZS5mZXRjaH0pLmdldENyZWRpdHMoKS5jYXRjaChhc3luYyBlPT57dGhyb3cgYXdhaXQgcGgoZSxhd2FpdCBwZyhhd2FpdCBsKCkpKX0pLGY9YXN5bmMgdD0+bmV3IHBrKHtiYXNlVVJMOnUsaGVhZGVyczpsLGZldGNoOmUuZmV0Y2h9KS5nZXRTcGVuZFJlcG9ydCh0KS5jYXRjaChhc3luYyBlPT57dGhyb3cgYXdhaXQgcGgoZSxhd2FpdCBwZyhhd2FpdCBsKCkpKX0pLGg9YXN5bmMgdD0+bmV3IHBJKHtiYXNlVVJMOnUsaGVhZGVyczpsLGZldGNoOmUuZmV0Y2h9KS5nZXRHZW5lcmF0aW9uSW5mbyh0KS5jYXRjaChhc3luYyBlPT57dGhyb3cgYXdhaXQgcGgoZSxhd2FpdCBwZyhhd2FpdCBsKCkpKX0pLHY9ZnVuY3Rpb24oZSl7aWYobmV3LnRhcmdldCl0aHJvdyBFcnJvcigiVGhlIEdhdGV3YXkgUHJvdmlkZXIgbW9kZWwgZnVuY3Rpb24gY2Fubm90IGJlIGNhbGxlZCB3aXRoIHRoZSBuZXcga2V5d29yZC4iKTtyZXR1cm4gYyhlKX07di5zcGVjaWZpY2F0aW9uVmVyc2lvbj0idjMiLHYuZ2V0QXZhaWxhYmxlTW9kZWxzPXAsdi5nZXRDcmVkaXRzPW0sdi5nZXRTcGVuZFJlcG9ydD1mLHYuZ2V0R2VuZXJhdGlvbkluZm89aCx2LmltYWdlTW9kZWw9dD0+bmV3IHBaKHQse3Byb3ZpZGVyOiJnYXRld2F5IixiYXNlVVJMOnUsaGVhZGVyczpsLGZldGNoOmUuZmV0Y2gsbzExeUhlYWRlcnM6ZCgpfSksdi5sYW5ndWFnZU1vZGVsPWM7bGV0IGc9dD0+bmV3IHBqKHQse3Byb3ZpZGVyOiJnYXRld2F5IixiYXNlVVJMOnUsaGVhZGVyczpsLGZldGNoOmUuZmV0Y2gsbzExeUhlYWRlcnM6ZCgpfSk7di5lbWJlZGRpbmdNb2RlbD1nLHYudGV4dEVtYmVkZGluZ01vZGVsPWcsdi52aWRlb01vZGVsPXQ9Pm5ldyBwVSh0LHtwcm92aWRlcjoiZ2F0ZXdheSIsYmFzZVVSTDp1LGhlYWRlcnM6bCxmZXRjaDplLmZldGNoLG8xMXlIZWFkZXJzOmQoKX0pO2xldCB5PXQ9Pm5ldyBwTCh0LHtwcm92aWRlcjoiZ2F0ZXdheSIsYmFzZVVSTDp1LGhlYWRlcnM6bCxmZXRjaDplLmZldGNoLG8xMXlIZWFkZXJzOmQoKX0pO3YucmVyYW5raW5nTW9kZWw9eSx2LnJlcmFua2luZz15LHYuY2hhdD12Lmxhbmd1YWdlTW9kZWwsdi5lbWJlZGRpbmc9di5lbWJlZGRpbmdNb2RlbCx2LmltYWdlPXYuaW1hZ2VNb2RlbCx2LnZpZGVvPXYudmlkZW9Nb2RlbCx2LnRvb2xzPXBKfSgpO3ZhciBjSz1jSyxwRz0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczoib2JqZWN0Ij09dHlwZW9mIHNlbGY/c2VsZjoib2JqZWN0Ij09dHlwZW9mIHdpbmRvdz93aW5kb3c6ZS5nLHBLPSIxLjkuMCIscFk9L14oXGQrKVwuKFxkKylcLihcZCspKC0oLispKT8kLyxwSD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgU2V0KFtlXSkscj1uZXcgU2V0LG49ZS5tYXRjaChwWSk7aWYoIW4pcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuITF9O3ZhciBpPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKG51bGwhPWkucHJlcmVsZWFzZSlyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1lfTtmdW5jdGlvbiBhKGUpe3JldHVybiByLmFkZChlKSwhMX1yZXR1cm4gZnVuY3Rpb24oZSl7aWYodC5oYXMoZSkpcmV0dXJuITA7aWYoci5oYXMoZSkpcmV0dXJuITE7dmFyIG49ZS5tYXRjaChwWSk7aWYoIW4pcmV0dXJuIGEoZSk7dmFyIG89e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYobnVsbCE9by5wcmVyZWxlYXNlfHxpLm1ham9yIT09by5tYWpvcilyZXR1cm4gYShlKTtpZigwPT09aS5tYWpvcilyZXR1cm4gaS5taW5vcj09PW8ubWlub3ImJmkucGF0Y2g8PW8ucGF0Y2g/KHQuYWRkKGUpLCEwKTphKGUpO3JldHVybiBpLm1pbm9yPD1vLm1pbm9yPyh0LmFkZChlKSwhMCk6YShlKX19KHBLKSxwWD1TeW1ib2wuZm9yKCJvcGVudGVsZW1ldHJ5LmpzLmFwaS4iK3BLLnNwbGl0KCIuIilbMF0pO2Z1bmN0aW9uIHBRKGUsdCxyLG4pe3ZvaWQgMD09PW4mJihuPSExKTt2YXIgaSxhPXBHW3BYXT1udWxsIT0oaT1wR1twWF0pP2k6e3ZlcnNpb246cEt9O2lmKCFuJiZhW2VdKXt2YXIgbz1FcnJvcigiQG9wZW50ZWxlbWV0cnkvYXBpOiBBdHRlbXB0ZWQgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBvZiBBUEk6ICIrZSk7cmV0dXJuIHIuZXJyb3Ioby5zdGFja3x8by5tZXNzYWdlKSwhMX1pZihhLnZlcnNpb24hPT1wSyl7dmFyIG89RXJyb3IoIkBvcGVudGVsZW1ldHJ5L2FwaTogUmVnaXN0cmF0aW9uIG9mIHZlcnNpb24gdiIrYS52ZXJzaW9uKyIgZm9yICIrZSsiIGRvZXMgbm90IG1hdGNoIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBBUEkgdiIrcEspO3JldHVybiByLmVycm9yKG8uc3RhY2t8fG8ubWVzc2FnZSksITF9cmV0dXJuIGFbZV09dCxyLmRlYnVnKCJAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdGVyZWQgYSBnbG9iYWwgZm9yICIrZSsiIHYiK3BLKyIuIiksITB9ZnVuY3Rpb24gcDAoZSl7dmFyIHQscixuPW51bGw9PSh0PXBHW3BYXSk/dm9pZCAwOnQudmVyc2lvbjtpZihuJiZwSChuKSlyZXR1cm4gbnVsbD09KHI9cEdbcFhdKT92b2lkIDA6cltlXX1mdW5jdGlvbiBwMShlLHQpe3QuZGVidWcoIkBvcGVudGVsZW1ldHJ5L2FwaTogVW5yZWdpc3RlcmluZyBhIGdsb2JhbCBmb3IgIitlKyIgdiIrcEsrIi4iKTt2YXIgcj1wR1twWF07ciYmZGVsZXRlIHJbZV19dmFyIHA0PW5ldyBmdW5jdGlvbiBlKHQpe3ZhciByPXRoaXM7ci5fY3VycmVudENvbnRleHQ9dD9uZXcgTWFwKHQpOm5ldyBNYXAsci5nZXRWYWx1ZT1mdW5jdGlvbihlKXtyZXR1cm4gci5fY3VycmVudENvbnRleHQuZ2V0KGUpfSxyLnNldFZhbHVlPWZ1bmN0aW9uKHQsbil7dmFyIGk9bmV3IGUoci5fY3VycmVudENvbnRleHQpO3JldHVybiBpLl9jdXJyZW50Q29udGV4dC5zZXQodCxuKSxpfSxyLmRlbGV0ZVZhbHVlPWZ1bmN0aW9uKHQpe3ZhciBuPW5ldyBlKHIuX2N1cnJlbnRDb250ZXh0KTtyZXR1cm4gbi5fY3VycmVudENvbnRleHQuZGVsZXRlKHQpLG59fSxwNj1mdW5jdGlvbihlLHQpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighcilyZXR1cm4gZTt2YXIgbixpLGE9ci5jYWxsKGUpLG89W107dHJ5e2Zvcig7KHZvaWQgMD09PXR8fHQtLSA+MCkmJiEobj1hLm5leHQoKSkuZG9uZTspby5wdXNoKG4udmFsdWUpfWNhdGNoKGUpe2k9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e24mJiFuLmRvbmUmJihyPWEucmV0dXJuKSYmci5jYWxsKGEpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gb30scDI9ZnVuY3Rpb24oZSx0LHIpe2lmKHJ8fDI9PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciBuLGk9MCxhPXQubGVuZ3RoO2k8YTtpKyspIW4mJmkgaW4gdHx8KG58fChuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxpKSksbltpXT10W2ldKTtyZXR1cm4gZS5jb25jYXQobnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfSxwOT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmFjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBwNH0sZS5wcm90b3R5cGUud2l0aD1mdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPVtdLGk9MztpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKW5baS0zXT1hcmd1bWVudHNbaV07cmV0dXJuIHQuY2FsbC5hcHBseSh0LHAyKFtyXSxwNihuKSwhMSkpfSxlLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHR9LGUucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGV9KCkscDU9ZnVuY3Rpb24oZSx0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIGU7dmFyIG4saSxhPXIuY2FsbChlKSxvPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKG49YS5uZXh0KCkpLmRvbmU7KW8ucHVzaChuLnZhbHVlKX1jYXRjaChlKXtpPXtlcnJvcjplfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIG99LHAzPWZ1bmN0aW9uKGUsdCxyKXtpZihyfHwyPT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgbixpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKSFuJiZpIGluIHR8fChufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDAsaSkpLG5baV09dFtpXSk7cmV0dXJuIGUuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0scDc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMuX25hbWVzcGFjZT1lLm5hbWVzcGFjZXx8IkRpYWdDb21wb25lbnRMb2dnZXIifXJldHVybiBlLnByb3RvdHlwZS5kZWJ1Zz1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gcDgoImRlYnVnIix0aGlzLl9uYW1lc3BhY2UsZSl9LGUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWVbdF09YXJndW1lbnRzW3RdO3JldHVybiBwOCgiZXJyb3IiLHRoaXMuX25hbWVzcGFjZSxlKX0sZS5wcm90b3R5cGUuaW5mbz1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gcDgoImluZm8iLHRoaXMuX25hbWVzcGFjZSxlKX0sZS5wcm90b3R5cGUud2Fybj1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gcDgoIndhcm4iLHRoaXMuX25hbWVzcGFjZSxlKX0sZS5wcm90b3R5cGUudmVyYm9zZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1bXSx0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllW3RdPWFyZ3VtZW50c1t0XTtyZXR1cm4gcDgoInZlcmJvc2UiLHRoaXMuX25hbWVzcGFjZSxlKX0sZX0oKTtmdW5jdGlvbiBwOChlLHQscil7dmFyIG49cDAoImRpYWciKTtpZihuKXJldHVybiByLnVuc2hpZnQodCksbltlXS5hcHBseShuLHAzKFtdLHA1KHIpLCExKSl9KGE9Rnx8KEY9e30pKVthLk5PTkU9MF09Ik5PTkUiLGFbYS5FUlJPUj0zMF09IkVSUk9SIixhW2EuV0FSTj01MF09IldBUk4iLGFbYS5JTkZPPTYwXT0iSU5GTyIsYVthLkRFQlVHPTcwXT0iREVCVUciLGFbYS5WRVJCT1NFPTgwXT0iVkVSQk9TRSIsYVthLkFMTD05OTk5XT0iQUxMIjt2YXIgbWU9ZnVuY3Rpb24oZSx0KXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl07aWYoIXIpcmV0dXJuIGU7dmFyIG4saSxhPXIuY2FsbChlKSxvPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT10fHx0LS0gPjApJiYhKG49YS5uZXh0KCkpLmRvbmU7KW8ucHVzaChuLnZhbHVlKX1jYXRjaChlKXtpPXtlcnJvcjplfX1maW5hbGx5e3RyeXtuJiYhbi5kb25lJiYocj1hLnJldHVybikmJnIuY2FsbChhKX1maW5hbGx5e2lmKGkpdGhyb3cgaS5lcnJvcn19cmV0dXJuIG99LG10PWZ1bmN0aW9uKGUsdCxyKXtpZihyfHwyPT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgbixpPTAsYT10Lmxlbmd0aDtpPGE7aSsrKSFuJiZpIGluIHR8fChufHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0LDAsaSkpLG5baV09dFtpXSk7cmV0dXJuIGUuY29uY2F0KG58fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0sbXI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10scj0wO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspdFtyXT1hcmd1bWVudHNbcl07dmFyIG49cDAoImRpYWciKTtpZihuKXJldHVybiBuW2VdLmFwcGx5KG4sbXQoW10sbWUodCksITEpKX19dmFyIHQ9dGhpczt0LnNldExvZ2dlcj1mdW5jdGlvbihlLHIpe2lmKHZvaWQgMD09PXImJihyPXtsb2dMZXZlbDpGLklORk99KSxlPT09dCl7dmFyIG4saSxhLG89RXJyb3IoIkNhbm5vdCB1c2UgZGlhZyBhcyB0aGUgbG9nZ2VyIGZvciBpdHNlbGYuIFBsZWFzZSB1c2UgYSBEaWFnTG9nZ2VyIGltcGxlbWVudGF0aW9uIGxpa2UgQ29uc29sZURpYWdMb2dnZXIgb3IgYSBjdXN0b20gaW1wbGVtZW50YXRpb24iKTtyZXR1cm4gdC5lcnJvcihudWxsIT0obj1vLnN0YWNrKT9uOm8ubWVzc2FnZSksITF9Im51bWJlciI9PXR5cGVvZiByJiYocj17bG9nTGV2ZWw6cn0pO3ZhciBzPXAwKCJkaWFnIiksdT1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIocixuKXt2YXIgaT10W3JdO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBpJiZlPj1uP2kuYmluZCh0KTpmdW5jdGlvbigpe319cmV0dXJuIGU8Ri5OT05FP2U9Ri5OT05FOmU+Ri5BTEwmJihlPUYuQUxMKSx0PXR8fHt9LHtlcnJvcjpyKCJlcnJvciIsRi5FUlJPUiksd2FybjpyKCJ3YXJuIixGLldBUk4pLGluZm86cigiaW5mbyIsRi5JTkZPKSxkZWJ1ZzpyKCJkZWJ1ZyIsRi5ERUJVRyksdmVyYm9zZTpyKCJ2ZXJib3NlIixGLlZFUkJPU0UpfX0obnVsbCE9KGk9ci5sb2dMZXZlbCk/aTpGLklORk8sZSk7aWYocyYmIXIuc3VwcHJlc3NPdmVycmlkZU1lc3NhZ2Upe3ZhciBsPW51bGwhPShhPUVycm9yKCkuc3RhY2spP2E6IjxmYWlsZWQgdG8gZ2VuZXJhdGUgc3RhY2t0cmFjZT4iO3Mud2FybigiQ3VycmVudCBsb2dnZXIgd2lsbCBiZSBvdmVyd3JpdHRlbiBmcm9tICIrbCksdS53YXJuKCJDdXJyZW50IGxvZ2dlciB3aWxsIG92ZXJ3cml0ZSBvbmUgYWxyZWFkeSByZWdpc3RlcmVkIGZyb20gIitsKX1yZXR1cm4gcFEoImRpYWciLHUsdCwhMCl9LHQuZGlzYWJsZT1mdW5jdGlvbigpe3AxKCJkaWFnIix0KX0sdC5jcmVhdGVDb21wb25lbnRMb2dnZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBwNyhlKX0sdC52ZXJib3NlPWUoInZlcmJvc2UiKSx0LmRlYnVnPWUoImRlYnVnIiksdC5pbmZvPWUoImluZm8iKSx0Lndhcm49ZSgid2FybiIpLHQuZXJyb3I9ZSgiZXJyb3IiKX1yZXR1cm4gZS5pbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbnN0YW5jZXx8KHRoaXMuX2luc3RhbmNlPW5ldyBlKSx0aGlzLl9pbnN0YW5jZX0sZX0oKSxtbj1mdW5jdGlvbihlLHQpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXTtpZighcilyZXR1cm4gZTt2YXIgbixpLGE9ci5jYWxsKGUpLG89W107dHJ5e2Zvcig7KHZvaWQgMD09PXR8fHQtLSA+MCkmJiEobj1hLm5leHQoKSkuZG9uZTspby5wdXNoKG4udmFsdWUpfWNhdGNoKGUpe2k9e2Vycm9yOmV9fWZpbmFsbHl7dHJ5e24mJiFuLmRvbmUmJihyPWEucmV0dXJuKSYmci5jYWxsKGEpfWZpbmFsbHl7aWYoaSl0aHJvdyBpLmVycm9yfX1yZXR1cm4gb30sbWk9ZnVuY3Rpb24oZSx0LHIpe2lmKHJ8fDI9PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciBuLGk9MCxhPXQubGVuZ3RoO2k8YTtpKyspIW4mJmkgaW4gdHx8KG58fChuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQsMCxpKSksbltpXT10W2ldKTtyZXR1cm4gZS5jb25jYXQobnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCkpfSxtYT0iY29udGV4dCIsbW89bmV3IHA5LG1zPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbnN0YW5jZXx8KHRoaXMuX2luc3RhbmNlPW5ldyBlKSx0aGlzLl9pbnN0YW5jZX0sZS5wcm90b3R5cGUuc2V0R2xvYmFsQ29udGV4dE1hbmFnZXI9ZnVuY3Rpb24oZSl7cmV0dXJuIHBRKG1hLGUsbXIuaW5zdGFuY2UoKSl9LGUucHJvdG90eXBlLmFjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmFjdGl2ZSgpfSxlLnByb3RvdHlwZS53aXRoPWZ1bmN0aW9uKGUsdCxyKXtmb3IodmFyIG4saT1bXSxhPTM7YTxhcmd1bWVudHMubGVuZ3RoO2ErKylpW2EtM109YXJndW1lbnRzW2FdO3JldHVybihuPXRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkpLndpdGguYXBwbHkobixtaShbZSx0LHJdLG1uKGkpLCExKSl9LGUucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5iaW5kKGUsdCl9LGUucHJvdG90eXBlLl9nZXRDb250ZXh0TWFuYWdlcj1mdW5jdGlvbigpe3JldHVybiBwMChtYSl8fG1vfSxlLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5kaXNhYmxlKCkscDEobWEsbXIuaW5zdGFuY2UoKSl9LGV9KCk7KG89Vnx8KFY9e30pKVtvLk5PTkU9MF09Ik5PTkUiLG9bby5TQU1QTEVEPTFdPSJTQU1QTEVEIjt2YXIgbXU9IjAwMDAwMDAwMDAwMDAwMDAiLG1sPSIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsbWQ9e3RyYWNlSWQ6bWwsc3BhbklkOm11LHRyYWNlRmxhZ3M6Vi5OT05FfSxtYz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dm9pZCAwPT09ZSYmKGU9bWQpLHRoaXMuX3NwYW5Db250ZXh0PWV9cmV0dXJuIGUucHJvdG90eXBlLnNwYW5Db250ZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NwYW5Db250ZXh0fSxlLnByb3RvdHlwZS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuc2V0QXR0cmlidXRlcz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuYWRkRXZlbnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuYWRkTGluaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuYWRkTGlua3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXN9LGUucHJvdG90eXBlLnNldFN0YXR1cz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUudXBkYXRlTmFtZT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpc30sZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGUpe30sZS5wcm90b3R5cGUuaXNSZWNvcmRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUucmVjb3JkRXhjZXB0aW9uPWZ1bmN0aW9uKGUsdCl7fSxlfSgpLG1wPVN5bWJvbC5mb3IoIk9wZW5UZWxlbWV0cnkgQ29udGV4dCBLZXkgU1BBTiIpO2Z1bmN0aW9uIG1tKGUpe3JldHVybiBlLmdldFZhbHVlKG1wKXx8dm9pZCAwfWZ1bmN0aW9uIG1mKCl7cmV0dXJuIG1tKG1zLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfWZ1bmN0aW9uIG1oKGUsdCl7cmV0dXJuIGUuc2V0VmFsdWUobXAsdCl9ZnVuY3Rpb24gbXYoZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUobXApfWZ1bmN0aW9uIG1nKGUsdCl7cmV0dXJuIG1oKGUsbmV3IG1jKHQpKX1mdW5jdGlvbiBteShlKXt2YXIgdDtyZXR1cm4gbnVsbD09KHQ9bW0oZSkpP3ZvaWQgMDp0LnNwYW5Db250ZXh0KCl9dmFyIG1iPS9eKFswLTlhLWZdezMyfSkkL2ksbV89L15bMC05YS1mXXsxNn0kL2k7ZnVuY3Rpb24gbXgoZSl7dmFyIHQscjtyZXR1cm4gdD1lLnRyYWNlSWQsbWIudGVzdCh0KSYmdCE9PW1sJiYocj1lLnNwYW5JZCxtXy50ZXN0KHIpJiZyIT09bXUpfWZ1bmN0aW9uIG0kKGUpe3JldHVybiBuZXcgbWMoZSl9dmFyIG1rPW1zLmdldEluc3RhbmNlKCksbXc9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7fXJldHVybiBlLnByb3RvdHlwZS5zdGFydFNwYW49ZnVuY3Rpb24oZSx0LHIpe2lmKHZvaWQgMD09PXImJihyPW1rLmFjdGl2ZSgpKSxudWxsPT10P3ZvaWQgMDp0LnJvb3QpcmV0dXJuIG5ldyBtYzt2YXIgbixpPXImJm15KHIpO3JldHVybiJvYmplY3QiPT10eXBlb2Yobj1pKSYmInN0cmluZyI9PXR5cGVvZiBuLnNwYW5JZCYmInN0cmluZyI9PXR5cGVvZiBuLnRyYWNlSWQmJiJudW1iZXIiPT10eXBlb2Ygbi50cmFjZUZsYWdzJiZteChpKT9uZXcgbWMoaSk6bmV3IG1jfSxlLnByb3RvdHlwZS5zdGFydEFjdGl2ZVNwYW49ZnVuY3Rpb24oZSx0LHIsbil7aWYoIShhcmd1bWVudHMubGVuZ3RoPDIpKXsyPT1hcmd1bWVudHMubGVuZ3RoP289dDozPT1hcmd1bWVudHMubGVuZ3RoPyhpPXQsbz1yKTooaT10LGE9cixvPW4pO3ZhciBpLGEsbyxzPW51bGwhPWE/YTptay5hY3RpdmUoKSx1PXRoaXMuc3RhcnRTcGFuKGUsaSxzKSxsPW1oKHMsdSk7cmV0dXJuIG1rLndpdGgobCxvLHZvaWQgMCx1KX19LGV9KCksbUk9bmV3IG13LG1TPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQscixuKXt0aGlzLl9wcm92aWRlcj1lLHRoaXMubmFtZT10LHRoaXMudmVyc2lvbj1yLHRoaXMub3B0aW9ucz1ufXJldHVybiBlLnByb3RvdHlwZS5zdGFydFNwYW49ZnVuY3Rpb24oZSx0LHIpe3JldHVybiB0aGlzLl9nZXRUcmFjZXIoKS5zdGFydFNwYW4oZSx0LHIpfSxlLnByb3RvdHlwZS5zdGFydEFjdGl2ZVNwYW49ZnVuY3Rpb24oZSx0LHIsbil7dmFyIGk9dGhpcy5fZ2V0VHJhY2VyKCk7cmV0dXJuIFJlZmxlY3QuYXBwbHkoaS5zdGFydEFjdGl2ZVNwYW4saSxhcmd1bWVudHMpfSxlLnByb3RvdHlwZS5fZ2V0VHJhY2VyPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVsZWdhdGUpcmV0dXJuIHRoaXMuX2RlbGVnYXRlO3ZhciBlPXRoaXMuX3Byb3ZpZGVyLmdldERlbGVnYXRlVHJhY2VyKHRoaXMubmFtZSx0aGlzLnZlcnNpb24sdGhpcy5vcHRpb25zKTtyZXR1cm4gZT8odGhpcy5fZGVsZWdhdGU9ZSx0aGlzLl9kZWxlZ2F0ZSk6bUl9LGV9KCksbU89bmV3KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4gZS5wcm90b3R5cGUuZ2V0VHJhY2VyPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gbmV3IG13fSxlfSgpKSxtaj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIGUucHJvdG90eXBlLmdldFRyYWNlcj1mdW5jdGlvbihlLHQscil7dmFyIG47cmV0dXJuIG51bGwhPShuPXRoaXMuZ2V0RGVsZWdhdGVUcmFjZXIoZSx0LHIpKT9uOm5ldyBtUyh0aGlzLGUsdCxyKX0sZS5wcm90b3R5cGUuZ2V0RGVsZWdhdGU9ZnVuY3Rpb24oKXt2YXIgZTtyZXR1cm4gbnVsbCE9KGU9dGhpcy5fZGVsZWdhdGUpP2U6bU99LGUucHJvdG90eXBlLnNldERlbGVnYXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2RlbGVnYXRlPWV9LGUucHJvdG90eXBlLmdldERlbGVnYXRlVHJhY2VyPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbjtyZXR1cm4gbnVsbD09KG49dGhpcy5fZGVsZWdhdGUpP3ZvaWQgMDpuLmdldFRyYWNlcihlLHQscil9LGV9KCksbUU9InRyYWNlIjsoZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgbWosdGhpcy53cmFwU3BhbkNvbnRleHQ9bSQsdGhpcy5pc1NwYW5Db250ZXh0VmFsaWQ9bXgsdGhpcy5kZWxldGVTcGFuPW12LHRoaXMuZ2V0U3Bhbj1tbSx0aGlzLmdldEFjdGl2ZVNwYW49bWYsdGhpcy5nZXRTcGFuQ29udGV4dD1teSx0aGlzLnNldFNwYW49bWgsdGhpcy5zZXRTcGFuQ29udGV4dD1tZ31yZXR1cm4gZS5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9pbnN0YW5jZXx8KHRoaXMuX2luc3RhbmNlPW5ldyBlKSx0aGlzLl9pbnN0YW5jZX0sZS5wcm90b3R5cGUuc2V0R2xvYmFsVHJhY2VyUHJvdmlkZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9cFEobUUsdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcixtci5pbnN0YW5jZSgpKTtyZXR1cm4gdCYmdGhpcy5fcHJveHlUcmFjZXJQcm92aWRlci5zZXREZWxlZ2F0ZShlKSx0fSxlLnByb3RvdHlwZS5nZXRUcmFjZXJQcm92aWRlcj1mdW5jdGlvbigpe3JldHVybiBwMChtRSl8fHRoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXJ9LGUucHJvdG90eXBlLmdldFRyYWNlcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLmdldFRyYWNlclByb3ZpZGVyKCkuZ2V0VHJhY2VyKGUsdCl9LGUucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXtwMShtRSxtci5pbnN0YW5jZSgpKSx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyPW5ldyBtan0sZX0pKCkuZ2V0SW5zdGFuY2UoKSwocz1CfHwoQj17fSkpW3MuVU5TRVQ9MF09IlVOU0VUIixzW3MuT0s9MV09Ik9LIixzW3MuRVJST1I9Ml09IkVSUk9SIixtcy5nZXRJbnN0YW5jZSgpO3ZhciBtWj1PYmplY3QuZGVmaW5lUHJvcGVydHksbU49KFN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9JbnZhbGlkQXJndW1lbnRFcnJvciIpLFN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9JbnZhbGlkU3RyZWFtUGFydEVycm9yIiksU3ltYm9sLmZvcigidmVyY2VsLmFpLmVycm9yLkFJX0ludmFsaWRUb29sQXBwcm92YWxFcnJvciIpLFN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9JbnZhbGlkVG9vbElucHV0RXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfVG9vbENhbGxOb3RGb3VuZEZvckFwcHJvdmFsRXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfTWlzc2luZ1Rvb2xSZXN1bHRzRXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfTm9JbWFnZUdlbmVyYXRlZEVycm9yIiksIkFJX05vT2JqZWN0R2VuZXJhdGVkRXJyb3IiKSxtVD1gdmVyY2VsLmFpLmVycm9yLiR7bU59YCxtej1TeW1ib2wuZm9yKG1UKSxtUD1jbGFzcyBleHRlbmRzIGVke2NvbnN0cnVjdG9yKHttZXNzYWdlOmU9Ik5vIG9iamVjdCBnZW5lcmF0ZWQuIixjYXVzZTp0LHRleHQ6cixyZXNwb25zZTpuLHVzYWdlOmksZmluaXNoUmVhc29uOmF9KXtzdXBlcih7bmFtZTptTixtZXNzYWdlOmUsY2F1c2U6dH0pLHRoaXNbSl09ITAsdGhpcy50ZXh0PXIsdGhpcy5yZXNwb25zZT1uLHRoaXMudXNhZ2U9aSx0aGlzLmZpbmlzaFJlYXNvbj1hfXN0YXRpYyBpc0luc3RhbmNlKGUpe3JldHVybiBlZC5oYXNNYXJrZXIoZSxtVCl9fTtKPW16LFN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9Ob091dHB1dEdlbmVyYXRlZEVycm9yIiksU3ltYm9sLmZvcigidmVyY2VsLmFpLmVycm9yLkFJX05vU3BlZWNoR2VuZXJhdGVkRXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfTm9UcmFuc2NyaXB0R2VuZXJhdGVkRXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfTm9WaWRlb0dlbmVyYXRlZEVycm9yIiksU3ltYm9sLmZvcigidmVyY2VsLmFpLmVycm9yLkFJX05vU3VjaFRvb2xFcnJvciIpLFN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9Ub29sQ2FsbFJlcGFpckVycm9yIik7dmFyIG1BPSJBSV9VSU1lc3NhZ2VTdHJlYW1FcnJvciIsbVU9YHZlcmNlbC5haS5lcnJvci4ke21BfWAsbUM9U3ltYm9sLmZvcihtVSksbUQ9Y2xhc3MgZXh0ZW5kcyBlZHtjb25zdHJ1Y3Rvcih7Y2h1bmtUeXBlOmUsY2h1bmtJZDp0LG1lc3NhZ2U6cn0pe3N1cGVyKHtuYW1lOm1BLG1lc3NhZ2U6cn0pLHRoaXNbV109ITAsdGhpcy5jaHVua1R5cGU9ZSx0aGlzLmNodW5rSWQ9dH1zdGF0aWMgaXNJbnN0YW5jZShlKXtyZXR1cm4gZWQuaGFzTWFya2VyKGUsbVUpfX07Vz1tQyxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfSW52YWxpZERhdGFDb250ZW50RXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfSW52YWxpZE1lc3NhZ2VSb2xlRXJyb3IiKSxTeW1ib2wuZm9yKCJ2ZXJjZWwuYWkuZXJyb3IuQUlfTWVzc2FnZUNvbnZlcnNpb25FcnJvciIpLFN5bWJvbC5mb3IoInZlcmNlbC5haS5lcnJvci5BSV9SZXRyeUVycm9yIik7dmFyIG1SPWFzeW5jKHt1cmw6ZSxtYXhCeXRlczp0LGFib3J0U2lnbmFsOnJ9KT0+e3ZhciBuO2xldCBpPWUudG9TdHJpbmcoKTtpdChpKTt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goaSx7aGVhZGVyczppbSh7fSwiYWktc2RrLzYuMC4xOTMiLGljKCkpLHNpZ25hbDpyfSk7aWYoZS5yZWRpcmVjdGVkJiZpdChlLnVybCksIWUub2spdGhyb3cgbmV3IG44KHt1cmw6aSxzdGF0dXNDb2RlOmUuc3RhdHVzLHN0YXR1c1RleHQ6ZS5zdGF0dXNUZXh0fSk7cmV0dXJue2RhdGE6YXdhaXQgaWUoe3Jlc3BvbnNlOmUsdXJsOmksbWF4Qnl0ZXM6bnVsbCE9dD90OjB4ODAwMDAwMDB9KSxtZWRpYVR5cGU6bnVsbCE9KG49ZS5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIikpP246dm9pZCAwfX1jYXRjaChlKXtpZihuOC5pc0luc3RhbmNlKGUpKXRocm93IGU7dGhyb3cgbmV3IG44KHt1cmw6aSxjYXVzZTplfSl9fSxtTT1jSy51bmlvbihbY0suc3RyaW5nKCksY0suaW5zdGFuY2VvZihVaW50OEFycmF5KSxjSy5pbnN0YW5jZW9mKEFycmF5QnVmZmVyKSxjSy5jdXN0b20oZT0+e3ZhciB0LHI7cmV0dXJuIG51bGwhPShyPW51bGw9PSh0PWdsb2JhbFRoaXMuQnVmZmVyKT92b2lkIDA6dC5pc0J1ZmZlcihlKSkmJnJ9LHttZXNzYWdlOiJNdXN0IGJlIGEgQnVmZmVyIn0pXSksbUw9Y0subGF6eSgoKT0+Y0sudW5pb24oW2NLLm51bGwoKSxjSy5zdHJpbmcoKSxjSy5udW1iZXIoKSxjSy5ib29sZWFuKCksY0sucmVjb3JkKGNLLnN0cmluZygpLG1MLm9wdGlvbmFsKCkpLGNLLmFycmF5KG1MKV0pKSxtRj1jSy5yZWNvcmQoY0suc3RyaW5nKCksY0sucmVjb3JkKGNLLnN0cmluZygpLG1MLm9wdGlvbmFsKCkpKSxtVj1jSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidGV4dCIpLHRleHQ6Y0suc3RyaW5nKCkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxtQj1jSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiaW1hZ2UiKSxpbWFnZTpjSy51bmlvbihbbU0sY0suaW5zdGFuY2VvZihVUkwpXSksbWVkaWFUeXBlOmNLLnN0cmluZygpLm9wdGlvbmFsKCkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxtSj1jSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiZmlsZSIpLGRhdGE6Y0sudW5pb24oW21NLGNLLmluc3RhbmNlb2YoVVJMKV0pLGZpbGVuYW1lOmNLLnN0cmluZygpLm9wdGlvbmFsKCksbWVkaWFUeXBlOmNLLnN0cmluZygpLHByb3ZpZGVyT3B0aW9uczptRi5vcHRpb25hbCgpfSksbVc9Y0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInJlYXNvbmluZyIpLHRleHQ6Y0suc3RyaW5nKCkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxtcT1jSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidG9vbC1jYWxsIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTmFtZTpjSy5zdHJpbmcoKSxpbnB1dDpjSy51bmtub3duKCkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCkscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKX0pLG1HPWNLLmRpc2NyaW1pbmF0ZWRVbmlvbigidHlwZSIsW2NLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ0ZXh0IiksdmFsdWU6Y0suc3RyaW5nKCkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgianNvbiIpLHZhbHVlOm1MLHByb3ZpZGVyT3B0aW9uczptRi5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImV4ZWN1dGlvbi1kZW5pZWQiKSxyZWFzb246Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxwcm92aWRlck9wdGlvbnM6bUYub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJlcnJvci10ZXh0IiksdmFsdWU6Y0suc3RyaW5nKCkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiZXJyb3ItanNvbiIpLHZhbHVlOm1MLHByb3ZpZGVyT3B0aW9uczptRi5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImNvbnRlbnQiKSx2YWx1ZTpjSy5hcnJheShjSy51bmlvbihbY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRleHQiKSx0ZXh0OmNLLnN0cmluZygpLHByb3ZpZGVyT3B0aW9uczptRi5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoIm1lZGlhIiksZGF0YTpjSy5zdHJpbmcoKSxtZWRpYVR5cGU6Y0suc3RyaW5nKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiZmlsZS1kYXRhIiksZGF0YTpjSy5zdHJpbmcoKSxtZWRpYVR5cGU6Y0suc3RyaW5nKCksZmlsZW5hbWU6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxwcm92aWRlck9wdGlvbnM6bUYub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJmaWxlLXVybCIpLHVybDpjSy5zdHJpbmcoKSxwcm92aWRlck9wdGlvbnM6bUYub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJmaWxlLWlkIiksZmlsZUlkOmNLLnVuaW9uKFtjSy5zdHJpbmcoKSxjSy5yZWNvcmQoY0suc3RyaW5nKCksY0suc3RyaW5nKCkpXSkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiaW1hZ2UtZGF0YSIpLGRhdGE6Y0suc3RyaW5nKCksbWVkaWFUeXBlOmNLLnN0cmluZygpLHByb3ZpZGVyT3B0aW9uczptRi5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImltYWdlLXVybCIpLHVybDpjSy5zdHJpbmcoKSxwcm92aWRlck9wdGlvbnM6bUYub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJpbWFnZS1maWxlLWlkIiksZmlsZUlkOmNLLnVuaW9uKFtjSy5zdHJpbmcoKSxjSy5yZWNvcmQoY0suc3RyaW5nKCksY0suc3RyaW5nKCkpXSkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiY3VzdG9tIikscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KV0pKX0pXSksbUs9Y0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRvb2wtcmVzdWx0IiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTmFtZTpjSy5zdHJpbmcoKSxvdXRwdXQ6bUcscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KSxtWT1jSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidG9vbC1hcHByb3ZhbC1yZXF1ZXN0IiksYXBwcm92YWxJZDpjSy5zdHJpbmcoKSx0b29sQ2FsbElkOmNLLnN0cmluZygpfSksbUg9Y0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRvb2wtYXBwcm92YWwtcmVzcG9uc2UiKSxhcHByb3ZhbElkOmNLLnN0cmluZygpLGFwcHJvdmVkOmNLLmJvb2xlYW4oKSxyZWFzb246Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLG1YPWNLLm9iamVjdCh7cm9sZTpjSy5saXRlcmFsKCJzeXN0ZW0iKSxjb250ZW50OmNLLnN0cmluZygpLHByb3ZpZGVyT3B0aW9uczptRi5vcHRpb25hbCgpfSksbVE9Y0sub2JqZWN0KHtyb2xlOmNLLmxpdGVyYWwoInVzZXIiKSxjb250ZW50OmNLLnVuaW9uKFtjSy5zdHJpbmcoKSxjSy5hcnJheShjSy51bmlvbihbbVYsbUIsbUpdKSldKSxwcm92aWRlck9wdGlvbnM6bUYub3B0aW9uYWwoKX0pLG0wPWNLLm9iamVjdCh7cm9sZTpjSy5saXRlcmFsKCJhc3Npc3RhbnQiKSxjb250ZW50OmNLLnVuaW9uKFtjSy5zdHJpbmcoKSxjSy5hcnJheShjSy51bmlvbihbbVYsbUosbVcsbXEsbUssbVldKSldKSxwcm92aWRlck9wdGlvbnM6bUYub3B0aW9uYWwoKX0pLG0xPWNLLm9iamVjdCh7cm9sZTpjSy5saXRlcmFsKCJ0b29sIiksY29udGVudDpjSy5hcnJheShjSy51bmlvbihbbUssbUhdKSkscHJvdmlkZXJPcHRpb25zOm1GLm9wdGlvbmFsKCl9KTtjSy51bmlvbihbbVgsbVEsbTAsbTFdKTt2YXIgbTQ9e30sbTY9e2FycmF5OigpPT5tNyxjaG9pY2U6KCk9Pm04LGpzb246KCk9PmZlLG9iamVjdDooKT0+bTMsdGV4dDooKT0+bTV9O2Zvcih2YXIgbTIgaW4gbTYpbVoobTQsbTIse2dldDptNlttMl0sZW51bWVyYWJsZTohMH0pO2FzeW5jIGZ1bmN0aW9uIG05KGUpe2lmKHZvaWQgMD09PWUpcmV0dXJue3ZhbHVlOnZvaWQgMCxzdGF0ZToidW5kZWZpbmVkLWlucHV0In07bGV0IHQ9YXdhaXQgaTkoe3RleHQ6ZX0pO3JldHVybiB0LnN1Y2Nlc3M/e3ZhbHVlOnQudmFsdWUsc3RhdGU6InN1Y2Nlc3NmdWwtcGFyc2UifToodD1hd2FpdCBpOSh7dGV4dDpmdW5jdGlvbihlKXtsZXQgdD1bIlJPT1QiXSxyPS0xLG49bnVsbDtmdW5jdGlvbiBpKGUsaSxhKXtzd2l0Y2goZSl7Y2FzZSciJzpyPWksdC5wb3AoKSx0LnB1c2goYSksdC5wdXNoKCJJTlNJREVfU1RSSU5HIik7YnJlYWs7Y2FzZSJmIjpjYXNlInQiOmNhc2UibiI6cj1pLG49aSx0LnBvcCgpLHQucHVzaChhKSx0LnB1c2goIklOU0lERV9MSVRFUkFMIik7YnJlYWs7Y2FzZSItIjp0LnBvcCgpLHQucHVzaChhKSx0LnB1c2goIklOU0lERV9OVU1CRVIiKTticmVhaztjYXNlIjAiOmNhc2UiMSI6Y2FzZSIyIjpjYXNlIjMiOmNhc2UiNCI6Y2FzZSI1IjpjYXNlIjYiOmNhc2UiNyI6Y2FzZSI4IjpjYXNlIjkiOnI9aSx0LnBvcCgpLHQucHVzaChhKSx0LnB1c2goIklOU0lERV9OVU1CRVIiKTticmVhaztjYXNlInsiOnI9aSx0LnBvcCgpLHQucHVzaChhKSx0LnB1c2goIklOU0lERV9PQkpFQ1RfU1RBUlQiKTticmVhaztjYXNlIlsiOnI9aSx0LnBvcCgpLHQucHVzaChhKSx0LnB1c2goIklOU0lERV9BUlJBWV9TVEFSVCIpfX1mdW5jdGlvbiBhKGUsbil7c3dpdGNoKGUpe2Nhc2UiLCI6dC5wb3AoKSx0LnB1c2goIklOU0lERV9PQkpFQ1RfQUZURVJfQ09NTUEiKTticmVhaztjYXNlIn0iOnI9bix0LnBvcCgpfX1mdW5jdGlvbiBvKGUsbil7c3dpdGNoKGUpe2Nhc2UiLCI6dC5wb3AoKSx0LnB1c2goIklOU0lERV9BUlJBWV9BRlRFUl9DT01NQSIpO2JyZWFrO2Nhc2UiXSI6cj1uLHQucG9wKCl9fWZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cysrKXtsZXQgdT1lW3NdO3N3aXRjaCh0W3QubGVuZ3RoLTFdKXtjYXNlIlJPT1QiOmkodSxzLCJGSU5JU0giKTticmVhaztjYXNlIklOU0lERV9PQkpFQ1RfU1RBUlQiOnN3aXRjaCh1KXtjYXNlJyInOnQucG9wKCksdC5wdXNoKCJJTlNJREVfT0JKRUNUX0tFWSIpO2JyZWFrO2Nhc2UifSI6cj1zLHQucG9wKCl9YnJlYWs7Y2FzZSJJTlNJREVfT0JKRUNUX0FGVEVSX0NPTU1BIjonIic9PT11JiYodC5wb3AoKSx0LnB1c2goIklOU0lERV9PQkpFQ1RfS0VZIikpO2JyZWFrO2Nhc2UiSU5TSURFX09CSkVDVF9LRVkiOiciJz09PXUmJih0LnBvcCgpLHQucHVzaCgiSU5TSURFX09CSkVDVF9BRlRFUl9LRVkiKSk7YnJlYWs7Y2FzZSJJTlNJREVfT0JKRUNUX0FGVEVSX0tFWSI6IjoiPT09dSYmKHQucG9wKCksdC5wdXNoKCJJTlNJREVfT0JKRUNUX0JFRk9SRV9WQUxVRSIpKTticmVhaztjYXNlIklOU0lERV9PQkpFQ1RfQkVGT1JFX1ZBTFVFIjppKHUscywiSU5TSURFX09CSkVDVF9BRlRFUl9WQUxVRSIpO2JyZWFrO2Nhc2UiSU5TSURFX09CSkVDVF9BRlRFUl9WQUxVRSI6YSh1LHMpO2JyZWFrO2Nhc2UiSU5TSURFX1NUUklORyI6c3dpdGNoKHUpe2Nhc2UnIic6dC5wb3AoKSxyPXM7YnJlYWs7Y2FzZSJcXCI6dC5wdXNoKCJJTlNJREVfU1RSSU5HX0VTQ0FQRSIpO2JyZWFrO2RlZmF1bHQ6cj1zfWJyZWFrO2Nhc2UiSU5TSURFX0FSUkFZX1NUQVJUIjoiXSI9PT11PyhyPXMsdC5wb3AoKSk6KHI9cyxpKHUscywiSU5TSURFX0FSUkFZX0FGVEVSX1ZBTFVFIikpO2JyZWFrO2Nhc2UiSU5TSURFX0FSUkFZX0FGVEVSX1ZBTFVFIjpzd2l0Y2godSl7Y2FzZSIsIjp0LnBvcCgpLHQucHVzaCgiSU5TSURFX0FSUkFZX0FGVEVSX0NPTU1BIik7YnJlYWs7Y2FzZSJdIjpyPXMsdC5wb3AoKTticmVhaztkZWZhdWx0OnI9c31icmVhaztjYXNlIklOU0lERV9BUlJBWV9BRlRFUl9DT01NQSI6aSh1LHMsIklOU0lERV9BUlJBWV9BRlRFUl9WQUxVRSIpO2JyZWFrO2Nhc2UiSU5TSURFX1NUUklOR19FU0NBUEUiOnQucG9wKCkscj1zO2JyZWFrO2Nhc2UiSU5TSURFX05VTUJFUiI6c3dpdGNoKHUpe2Nhc2UiMCI6Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6cj1zO2JyZWFrO2Nhc2UiZSI6Y2FzZSJFIjpjYXNlIi0iOmNhc2UiLiI6YnJlYWs7Y2FzZSIsIjp0LnBvcCgpLCJJTlNJREVfQVJSQVlfQUZURVJfVkFMVUUiPT09dFt0Lmxlbmd0aC0xXSYmbyh1LHMpLCJJTlNJREVfT0JKRUNUX0FGVEVSX1ZBTFVFIj09PXRbdC5sZW5ndGgtMV0mJmEodSxzKTticmVhaztjYXNlIn0iOnQucG9wKCksIklOU0lERV9PQkpFQ1RfQUZURVJfVkFMVUUiPT09dFt0Lmxlbmd0aC0xXSYmYSh1LHMpO2JyZWFrO2Nhc2UiXSI6dC5wb3AoKSwiSU5TSURFX0FSUkFZX0FGVEVSX1ZBTFVFIj09PXRbdC5sZW5ndGgtMV0mJm8odSxzKTticmVhaztkZWZhdWx0OnQucG9wKCl9YnJlYWs7Y2FzZSJJTlNJREVfTElURVJBTCI6e2xldCBpPWUuc3Vic3RyaW5nKG4scysxKTsiZmFsc2UiLnN0YXJ0c1dpdGgoaSl8fCJ0cnVlIi5zdGFydHNXaXRoKGkpfHwibnVsbCIuc3RhcnRzV2l0aChpKT9yPXM6KHQucG9wKCksIklOU0lERV9PQkpFQ1RfQUZURVJfVkFMVUUiPT09dFt0Lmxlbmd0aC0xXT9hKHUscyk6IklOU0lERV9BUlJBWV9BRlRFUl9WQUxVRSI9PT10W3QubGVuZ3RoLTFdJiZvKHUscykpfX19bGV0IHM9ZS5zbGljZSgwLHIrMSk7Zm9yKGxldCByPXQubGVuZ3RoLTE7cj49MDtyLS0pc3dpdGNoKHRbcl0pe2Nhc2UiSU5TSURFX1NUUklORyI6cys9JyInO2JyZWFrO2Nhc2UiSU5TSURFX09CSkVDVF9LRVkiOmNhc2UiSU5TSURFX09CSkVDVF9BRlRFUl9LRVkiOmNhc2UiSU5TSURFX09CSkVDVF9BRlRFUl9DT01NQSI6Y2FzZSJJTlNJREVfT0JKRUNUX1NUQVJUIjpjYXNlIklOU0lERV9PQkpFQ1RfQkVGT1JFX1ZBTFVFIjpjYXNlIklOU0lERV9PQkpFQ1RfQUZURVJfVkFMVUUiOnMrPSJ9IjticmVhaztjYXNlIklOU0lERV9BUlJBWV9TVEFSVCI6Y2FzZSJJTlNJREVfQVJSQVlfQUZURVJfQ09NTUEiOmNhc2UiSU5TSURFX0FSUkFZX0FGVEVSX1ZBTFVFIjpzKz0iXSI7YnJlYWs7Y2FzZSJJTlNJREVfTElURVJBTCI6e2xldCB0PWUuc3Vic3RyaW5nKG4sZS5sZW5ndGgpOyJ0cnVlIi5zdGFydHNXaXRoKHQpP3MrPSJ0cnVlIi5zbGljZSh0Lmxlbmd0aCk6ImZhbHNlIi5zdGFydHNXaXRoKHQpP3MrPSJmYWxzZSIuc2xpY2UodC5sZW5ndGgpOiJudWxsIi5zdGFydHNXaXRoKHQpJiYocys9Im51bGwiLnNsaWNlKHQubGVuZ3RoKSl9fXJldHVybiBzfShlKX0pKS5zdWNjZXNzP3t2YWx1ZTp0LnZhbHVlLHN0YXRlOiJyZXBhaXJlZC1wYXJzZSJ9Ont2YWx1ZTp2b2lkIDAsc3RhdGU6ImZhaWxlZC1wYXJzZSJ9fXZhciBtNT0oKT0+KHtuYW1lOiJ0ZXh0IixyZXNwb25zZUZvcm1hdDpQcm9taXNlLnJlc29sdmUoe3R5cGU6InRleHQifSkscGFyc2VDb21wbGV0ZU91dHB1dDphc3luYyh7dGV4dDplfSk9PmUscGFyc2VQYXJ0aWFsT3V0cHV0OmFzeW5jKHt0ZXh0OmV9KT0+KHtwYXJ0aWFsOmV9KSxjcmVhdGVFbGVtZW50U3RyZWFtVHJhbnNmb3JtKCl7fX0pLG0zPSh7c2NoZW1hOmUsbmFtZTp0LGRlc2NyaXB0aW9uOnJ9KT0+e2xldCBuPWkwKGUpO3JldHVybntuYW1lOiJvYmplY3QiLHJlc3BvbnNlRm9ybWF0OmF0KG4uanNvblNjaGVtYSkudGhlbihlPT4oe3R5cGU6Impzb24iLHNjaGVtYTplLC4uLm51bGwhPXQmJntuYW1lOnR9LC4uLm51bGwhPXImJntkZXNjcmlwdGlvbjpyfX0pKSxhc3luYyBwYXJzZUNvbXBsZXRlT3V0cHV0KHt0ZXh0OmV9LHQpe2xldCByPWF3YWl0IGk5KHt0ZXh0OmV9KTtpZighci5zdWNjZXNzKXRocm93IG5ldyBtUCh7bWVzc2FnZToiTm8gb2JqZWN0IGdlbmVyYXRlZDogY291bGQgbm90IHBhcnNlIHRoZSByZXNwb25zZS4iLGNhdXNlOnIuZXJyb3IsdGV4dDplLHJlc3BvbnNlOnQucmVzcG9uc2UsdXNhZ2U6dC51c2FnZSxmaW5pc2hSZWFzb246dC5maW5pc2hSZWFzb259KTtsZXQgaT1hd2FpdCBpNih7dmFsdWU6ci52YWx1ZSxzY2hlbWE6bn0pO2lmKCFpLnN1Y2Nlc3MpdGhyb3cgbmV3IG1QKHttZXNzYWdlOiJObyBvYmplY3QgZ2VuZXJhdGVkOiByZXNwb25zZSBkaWQgbm90IG1hdGNoIHNjaGVtYS4iLGNhdXNlOmkuZXJyb3IsdGV4dDplLHJlc3BvbnNlOnQucmVzcG9uc2UsdXNhZ2U6dC51c2FnZSxmaW5pc2hSZWFzb246dC5maW5pc2hSZWFzb259KTtyZXR1cm4gaS52YWx1ZX0sYXN5bmMgcGFyc2VQYXJ0aWFsT3V0cHV0KHt0ZXh0OmV9KXtsZXQgdD1hd2FpdCBtOShlKTtzd2l0Y2godC5zdGF0ZSl7Y2FzZSJmYWlsZWQtcGFyc2UiOmNhc2UidW5kZWZpbmVkLWlucHV0IjpyZXR1cm47Y2FzZSJyZXBhaXJlZC1wYXJzZSI6Y2FzZSJzdWNjZXNzZnVsLXBhcnNlIjpyZXR1cm57cGFydGlhbDp0LnZhbHVlfX19LGNyZWF0ZUVsZW1lbnRTdHJlYW1UcmFuc2Zvcm0oKXt9fX0sbTc9KHtlbGVtZW50OmUsbmFtZTp0LGRlc2NyaXB0aW9uOnJ9KT0+e2xldCBuPWkwKGUpO3JldHVybntuYW1lOiJhcnJheSIscmVzcG9uc2VGb3JtYXQ6YXQobi5qc29uU2NoZW1hKS50aGVuKGU9PntsZXR7JHNjaGVtYTpuLC4uLml9PWU7cmV0dXJue3R5cGU6Impzb24iLHNjaGVtYTp7JHNjaGVtYToiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjIix0eXBlOiJvYmplY3QiLHByb3BlcnRpZXM6e2VsZW1lbnRzOnt0eXBlOiJhcnJheSIsaXRlbXM6aX19LHJlcXVpcmVkOlsiZWxlbWVudHMiXSxhZGRpdGlvbmFsUHJvcGVydGllczohMX0sLi4ubnVsbCE9dCYme25hbWU6dH0sLi4ubnVsbCE9ciYme2Rlc2NyaXB0aW9uOnJ9fX0pLGFzeW5jIHBhcnNlQ29tcGxldGVPdXRwdXQoe3RleHQ6ZX0sdCl7bGV0IHI9YXdhaXQgaTkoe3RleHQ6ZX0pO2lmKCFyLnN1Y2Nlc3MpdGhyb3cgbmV3IG1QKHttZXNzYWdlOiJObyBvYmplY3QgZ2VuZXJhdGVkOiBjb3VsZCBub3QgcGFyc2UgdGhlIHJlc3BvbnNlLiIsY2F1c2U6ci5lcnJvcix0ZXh0OmUscmVzcG9uc2U6dC5yZXNwb25zZSx1c2FnZTp0LnVzYWdlLGZpbmlzaFJlYXNvbjp0LmZpbmlzaFJlYXNvbn0pO2xldCBpPXIudmFsdWU7aWYobnVsbD09aXx8Im9iamVjdCIhPXR5cGVvZiBpfHwhKCJlbGVtZW50cyJpbiBpKXx8IUFycmF5LmlzQXJyYXkoaS5lbGVtZW50cykpdGhyb3cgbmV3IG1QKHttZXNzYWdlOiJObyBvYmplY3QgZ2VuZXJhdGVkOiByZXNwb25zZSBkaWQgbm90IG1hdGNoIHNjaGVtYS4iLGNhdXNlOm5ldyBleih7dmFsdWU6aSxjYXVzZToicmVzcG9uc2UgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBhbiBlbGVtZW50cyBhcnJheSJ9KSx0ZXh0OmUscmVzcG9uc2U6dC5yZXNwb25zZSx1c2FnZTp0LnVzYWdlLGZpbmlzaFJlYXNvbjp0LmZpbmlzaFJlYXNvbn0pO2ZvcihsZXQgciBvZiBpLmVsZW1lbnRzKXtsZXQgaT1hd2FpdCBpNih7dmFsdWU6cixzY2hlbWE6bn0pO2lmKCFpLnN1Y2Nlc3MpdGhyb3cgbmV3IG1QKHttZXNzYWdlOiJObyBvYmplY3QgZ2VuZXJhdGVkOiByZXNwb25zZSBkaWQgbm90IG1hdGNoIHNjaGVtYS4iLGNhdXNlOmkuZXJyb3IsdGV4dDplLHJlc3BvbnNlOnQucmVzcG9uc2UsdXNhZ2U6dC51c2FnZSxmaW5pc2hSZWFzb246dC5maW5pc2hSZWFzb259KX1yZXR1cm4gaS5lbGVtZW50c30sYXN5bmMgcGFyc2VQYXJ0aWFsT3V0cHV0KHt0ZXh0OmV9KXtsZXQgdD1hd2FpdCBtOShlKTtzd2l0Y2godC5zdGF0ZSl7Y2FzZSJmYWlsZWQtcGFyc2UiOmNhc2UidW5kZWZpbmVkLWlucHV0IjpyZXR1cm47Y2FzZSJyZXBhaXJlZC1wYXJzZSI6Y2FzZSJzdWNjZXNzZnVsLXBhcnNlIjp7bGV0IGU9dC52YWx1ZTtpZihudWxsPT1lfHwib2JqZWN0IiE9dHlwZW9mIGV8fCEoImVsZW1lbnRzImluIGUpfHwhQXJyYXkuaXNBcnJheShlLmVsZW1lbnRzKSlyZXR1cm47bGV0IHI9InJlcGFpcmVkLXBhcnNlIj09PXQuc3RhdGUmJmUuZWxlbWVudHMubGVuZ3RoPjA/ZS5lbGVtZW50cy5zbGljZSgwLC0xKTplLmVsZW1lbnRzLGk9W107Zm9yKGxldCBlIG9mIHIpe2xldCB0PWF3YWl0IGk2KHt2YWx1ZTplLHNjaGVtYTpufSk7dC5zdWNjZXNzJiZpLnB1c2godC52YWx1ZSl9cmV0dXJue3BhcnRpYWw6aX19fX0sY3JlYXRlRWxlbWVudFN0cmVhbVRyYW5zZm9ybSgpe2xldCBlPTA7cmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW0oe3RyYW5zZm9ybSh7cGFydGlhbE91dHB1dDp0fSxyKXtpZihudWxsIT10KWZvcig7ZTx0Lmxlbmd0aDtlKyspci5lbnF1ZXVlKHRbZV0pfX0pfX19LG04PSh7b3B0aW9uczplLG5hbWU6dCxkZXNjcmlwdGlvbjpyfSk9Pih7bmFtZToiY2hvaWNlIixyZXNwb25zZUZvcm1hdDpQcm9taXNlLnJlc29sdmUoe3R5cGU6Impzb24iLHNjaGVtYTp7JHNjaGVtYToiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjIix0eXBlOiJvYmplY3QiLHByb3BlcnRpZXM6e3Jlc3VsdDp7dHlwZToic3RyaW5nIixlbnVtOmV9fSxyZXF1aXJlZDpbInJlc3VsdCJdLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiExfSwuLi5udWxsIT10JiZ7bmFtZTp0fSwuLi5udWxsIT1yJiZ7ZGVzY3JpcHRpb246cn19KSxhc3luYyBwYXJzZUNvbXBsZXRlT3V0cHV0KHt0ZXh0OnR9LHIpe2xldCBuPWF3YWl0IGk5KHt0ZXh0OnR9KTtpZighbi5zdWNjZXNzKXRocm93IG5ldyBtUCh7bWVzc2FnZToiTm8gb2JqZWN0IGdlbmVyYXRlZDogY291bGQgbm90IHBhcnNlIHRoZSByZXNwb25zZS4iLGNhdXNlOm4uZXJyb3IsdGV4dDp0LHJlc3BvbnNlOnIucmVzcG9uc2UsdXNhZ2U6ci51c2FnZSxmaW5pc2hSZWFzb246ci5maW5pc2hSZWFzb259KTtsZXQgaT1uLnZhbHVlO2lmKG51bGw9PWl8fCJvYmplY3QiIT10eXBlb2YgaXx8ISgicmVzdWx0ImluIGkpfHwic3RyaW5nIiE9dHlwZW9mIGkucmVzdWx0fHwhZS5pbmNsdWRlcyhpLnJlc3VsdCkpdGhyb3cgbmV3IG1QKHttZXNzYWdlOiJObyBvYmplY3QgZ2VuZXJhdGVkOiByZXNwb25zZSBkaWQgbm90IG1hdGNoIHNjaGVtYS4iLGNhdXNlOm5ldyBleih7dmFsdWU6aSxjYXVzZToicmVzcG9uc2UgbXVzdCBiZSBhbiBvYmplY3QgdGhhdCBjb250YWlucyBhIGNob2ljZSB2YWx1ZS4ifSksdGV4dDp0LHJlc3BvbnNlOnIucmVzcG9uc2UsdXNhZ2U6ci51c2FnZSxmaW5pc2hSZWFzb246ci5maW5pc2hSZWFzb259KTtyZXR1cm4gaS5yZXN1bHR9LGFzeW5jIHBhcnNlUGFydGlhbE91dHB1dCh7dGV4dDp0fSl7bGV0IHI9YXdhaXQgbTkodCk7c3dpdGNoKHIuc3RhdGUpe2Nhc2UiZmFpbGVkLXBhcnNlIjpjYXNlInVuZGVmaW5lZC1pbnB1dCI6cmV0dXJuO2Nhc2UicmVwYWlyZWQtcGFyc2UiOmNhc2Uic3VjY2Vzc2Z1bC1wYXJzZSI6e2xldCB0PXIudmFsdWU7aWYobnVsbD09dHx8Im9iamVjdCIhPXR5cGVvZiB0fHwhKCJyZXN1bHQiaW4gdCl8fCJzdHJpbmciIT10eXBlb2YgdC5yZXN1bHQpcmV0dXJuO2xldCBuPWUuZmlsdGVyKGU9PmUuc3RhcnRzV2l0aCh0LnJlc3VsdCkpO2lmKCJzdWNjZXNzZnVsLXBhcnNlIj09PXIuc3RhdGUpcmV0dXJuIG4uaW5jbHVkZXModC5yZXN1bHQpP3twYXJ0aWFsOnQucmVzdWx0fTp2b2lkIDA7cmV0dXJuIDE9PT1uLmxlbmd0aD97cGFydGlhbDpuWzBdfTp2b2lkIDB9fX0sY3JlYXRlRWxlbWVudFN0cmVhbVRyYW5zZm9ybSgpe319KSxmZT0oe25hbWU6ZSxkZXNjcmlwdGlvbjp0fT17fSk9Pih7bmFtZToianNvbiIscmVzcG9uc2VGb3JtYXQ6UHJvbWlzZS5yZXNvbHZlKHt0eXBlOiJqc29uIiwuLi5udWxsIT1lJiZ7bmFtZTplfSwuLi5udWxsIT10JiZ7ZGVzY3JpcHRpb246dH19KSxhc3luYyBwYXJzZUNvbXBsZXRlT3V0cHV0KHt0ZXh0OmV9LHQpe2xldCByPWF3YWl0IGk5KHt0ZXh0OmV9KTtpZighci5zdWNjZXNzKXRocm93IG5ldyBtUCh7bWVzc2FnZToiTm8gb2JqZWN0IGdlbmVyYXRlZDogY291bGQgbm90IHBhcnNlIHRoZSByZXNwb25zZS4iLGNhdXNlOnIuZXJyb3IsdGV4dDplLHJlc3BvbnNlOnQucmVzcG9uc2UsdXNhZ2U6dC51c2FnZSxmaW5pc2hSZWFzb246dC5maW5pc2hSZWFzb259KTtyZXR1cm4gci52YWx1ZX0sYXN5bmMgcGFyc2VQYXJ0aWFsT3V0cHV0KHt0ZXh0OmV9KXtsZXQgdD1hd2FpdCBtOShlKTtzd2l0Y2godC5zdGF0ZSl7Y2FzZSJmYWlsZWQtcGFyc2UiOmNhc2UidW5kZWZpbmVkLWlucHV0IjpyZXR1cm47Y2FzZSJyZXBhaXJlZC1wYXJzZSI6Y2FzZSJzdWNjZXNzZnVsLXBhcnNlIjpyZXR1cm4gdm9pZCAwPT09dC52YWx1ZT92b2lkIDA6e3BhcnRpYWw6dC52YWx1ZX19fSxjcmVhdGVFbGVtZW50U3RyZWFtVHJhbnNmb3JtKCl7fX0pO2lhKHtwcmVmaXg6ImFpdHh0IixzaXplOjI0fSksVHJhbnNmb3JtU3RyZWFtO3ZhciBmdD1jSy5yZWNvcmQoY0suc3RyaW5nKCksbUwub3B0aW9uYWwoKSksZnI9aVgoKCk9PmkxKGNLLnVuaW9uKFtjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidGV4dC1zdGFydCIpLGlkOmNLLnN0cmluZygpLHByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ0ZXh0LWRlbHRhIiksaWQ6Y0suc3RyaW5nKCksZGVsdGE6Y0suc3RyaW5nKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRleHQtZW5kIiksaWQ6Y0suc3RyaW5nKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImVycm9yIiksZXJyb3JUZXh0OmNLLnN0cmluZygpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRvb2wtaW5wdXQtc3RhcnQiKSx0b29sQ2FsbElkOmNLLnN0cmluZygpLHRvb2xOYW1lOmNLLnN0cmluZygpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLHRvb2xNZXRhZGF0YTpmdC5vcHRpb25hbCgpLGR5bmFtaWM6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksdGl0bGU6Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ0b29sLWlucHV0LWRlbHRhIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSxpbnB1dFRleHREZWx0YTpjSy5zdHJpbmcoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ0b29sLWlucHV0LWF2YWlsYWJsZSIpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE5hbWU6Y0suc3RyaW5nKCksaW5wdXQ6Y0sudW5rbm93bigpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLHRvb2xNZXRhZGF0YTpmdC5vcHRpb25hbCgpLGR5bmFtaWM6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksdGl0bGU6Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ0b29sLWlucHV0LWVycm9yIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTmFtZTpjSy5zdHJpbmcoKSxpbnB1dDpjSy51bmtub3duKCkscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxwcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCksdG9vbE1ldGFkYXRhOmZ0Lm9wdGlvbmFsKCksZHluYW1pYzpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxlcnJvclRleHQ6Y0suc3RyaW5nKCksdGl0bGU6Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJ0b29sLWFwcHJvdmFsLXJlcXVlc3QiKSxhcHByb3ZhbElkOmNLLnN0cmluZygpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCl9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidG9vbC1vdXRwdXQtYXZhaWxhYmxlIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSxvdXRwdXQ6Y0sudW5rbm93bigpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLHRvb2xNZXRhZGF0YTpmdC5vcHRpb25hbCgpLGR5bmFtaWM6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCkscHJlbGltaW5hcnk6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCl9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgidG9vbC1vdXRwdXQtZXJyb3IiKSx0b29sQ2FsbElkOmNLLnN0cmluZygpLGVycm9yVGV4dDpjSy5zdHJpbmcoKSxwcm92aWRlckV4ZWN1dGVkOmNLLmJvb2xlYW4oKS5vcHRpb25hbCgpLHByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKSx0b29sTWV0YWRhdGE6ZnQub3B0aW9uYWwoKSxkeW5hbWljOmNLLmJvb2xlYW4oKS5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRvb2wtb3V0cHV0LWRlbmllZCIpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCl9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgicmVhc29uaW5nLXN0YXJ0IiksaWQ6Y0suc3RyaW5nKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInJlYXNvbmluZy1kZWx0YSIpLGlkOmNLLnN0cmluZygpLGRlbHRhOmNLLnN0cmluZygpLHByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJyZWFzb25pbmctZW5kIiksaWQ6Y0suc3RyaW5nKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInNvdXJjZS11cmwiKSxzb3VyY2VJZDpjSy5zdHJpbmcoKSx1cmw6Y0suc3RyaW5nKCksdGl0bGU6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxwcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCl9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgic291cmNlLWRvY3VtZW50Iiksc291cmNlSWQ6Y0suc3RyaW5nKCksbWVkaWFUeXBlOmNLLnN0cmluZygpLHRpdGxlOmNLLnN0cmluZygpLGZpbGVuYW1lOmNLLnN0cmluZygpLm9wdGlvbmFsKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImZpbGUiKSx1cmw6Y0suc3RyaW5nKCksbWVkaWFUeXBlOmNLLnN0cmluZygpLHByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5jdXN0b20oZT0+InN0cmluZyI9PXR5cGVvZiBlJiZlLnN0YXJ0c1dpdGgoImRhdGEtIikse21lc3NhZ2U6J1R5cGUgbXVzdCBzdGFydCB3aXRoICJkYXRhLSInfSksaWQ6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxkYXRhOmNLLnVua25vd24oKSx0cmFuc2llbnQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCl9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgic3RhcnQtc3RlcCIpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImZpbmlzaC1zdGVwIil9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgic3RhcnQiKSxtZXNzYWdlSWQ6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxtZXNzYWdlTWV0YWRhdGE6Y0sudW5rbm93bigpLm9wdGlvbmFsKCl9KSxjSy5zdHJpY3RPYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiZmluaXNoIiksZmluaXNoUmVhc29uOmNLLmVudW0oWyJzdG9wIiwibGVuZ3RoIiwiY29udGVudC1maWx0ZXIiLCJ0b29sLWNhbGxzIiwiZXJyb3IiLCJvdGhlciJdKS5vcHRpb25hbCgpLG1lc3NhZ2VNZXRhZGF0YTpjSy51bmtub3duKCkub3B0aW9uYWwoKX0pLGNLLnN0cmljdE9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJhYm9ydCIpLHJlYXNvbjpjSy5zdHJpbmcoKS5vcHRpb25hbCgpfSksY0suc3RyaWN0T2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoIm1lc3NhZ2UtbWV0YWRhdGEiKSxtZXNzYWdlTWV0YWRhdGE6Y0sudW5rbm93bigpfSldKSkpO2Z1bmN0aW9uIGZuKGUpe3JldHVybiBlLnR5cGUuc3RhcnRzV2l0aCgidG9vbC0iKX1mdW5jdGlvbiBmaShlKXtyZXR1cm4gZm4oZSl8fCJkeW5hbWljLXRvb2wiPT09ZS50eXBlfWZ1bmN0aW9uIGZhKGUpe3JldHVybiBlLnR5cGUuc3BsaXQoIi0iKS5zbGljZSgxKS5qb2luKCItIil9YXN5bmMgZnVuY3Rpb24gZm8oe3N0cmVhbTplLG9uRXJyb3I6dH0pe2xldCByPWUuZ2V0UmVhZGVyKCk7dHJ5e2Zvcig7Oyl7bGV0e2RvbmU6ZX09YXdhaXQgci5yZWFkKCk7aWYoZSlicmVha319Y2F0Y2goZSl7bnVsbD09dHx8dChlKX1maW5hbGx5e3IucmVsZWFzZUxvY2soKX19aWEoe3ByZWZpeDoiYWl0eHQiLHNpemU6MjR9KTt2YXIgZnM9Y0sucmVjb3JkKGNLLnN0cmluZygpLG1MLm9wdGlvbmFsKCkpO2Z1bmN0aW9uIGZ1KGUpe3JldHVybih7dXJsOnQsYWJvcnRTaWduYWw6cn0pPT5tUih7dXJsOnQsbWF4Qnl0ZXM6bnVsbD09ZT92b2lkIDA6ZS5tYXhCeXRlcyxhYm9ydFNpZ25hbDpyfSl9aVgoKCk9PmkxKGNLLmFycmF5KGNLLm9iamVjdCh7aWQ6Y0suc3RyaW5nKCkscm9sZTpjSy5lbnVtKFsic3lzdGVtIiwidXNlciIsImFzc2lzdGFudCJdKSxtZXRhZGF0YTpjSy51bmtub3duKCkub3B0aW9uYWwoKSxwYXJ0czpjSy5hcnJheShjSy51bmlvbihbY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInRleHQiKSx0ZXh0OmNLLnN0cmluZygpLHN0YXRlOmNLLmVudW0oWyJzdHJlYW1pbmciLCJkb25lIl0pLm9wdGlvbmFsKCkscHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoInJlYXNvbmluZyIpLHRleHQ6Y0suc3RyaW5nKCksc3RhdGU6Y0suZW51bShbInN0cmVhbWluZyIsImRvbmUiXSkub3B0aW9uYWwoKSxwcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgic291cmNlLXVybCIpLHNvdXJjZUlkOmNLLnN0cmluZygpLHVybDpjSy5zdHJpbmcoKSx0aXRsZTpjSy5zdHJpbmcoKS5vcHRpb25hbCgpLHByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJzb3VyY2UtZG9jdW1lbnQiKSxzb3VyY2VJZDpjSy5zdHJpbmcoKSxtZWRpYVR5cGU6Y0suc3RyaW5nKCksdGl0bGU6Y0suc3RyaW5nKCksZmlsZW5hbWU6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxwcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiZmlsZSIpLG1lZGlhVHlwZTpjSy5zdHJpbmcoKSxmaWxlbmFtZTpjSy5zdHJpbmcoKS5vcHRpb25hbCgpLHVybDpjSy5zdHJpbmcoKSxwcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgic3RlcC1zdGFydCIpfSksY0sub2JqZWN0KHt0eXBlOmNLLnN0cmluZygpLnN0YXJ0c1dpdGgoImRhdGEtIiksaWQ6Y0suc3RyaW5nKCkub3B0aW9uYWwoKSxkYXRhOmNLLnVua25vd24oKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJkeW5hbWljLXRvb2wiKSx0b29sTmFtZTpjSy5zdHJpbmcoKSx0b29sQ2FsbElkOmNLLnN0cmluZygpLHRvb2xNZXRhZGF0YTpmcy5vcHRpb25hbCgpLHN0YXRlOmNLLmxpdGVyYWwoImlucHV0LXN0cmVhbWluZyIpLGlucHV0OmNLLnVua25vd24oKS5vcHRpb25hbCgpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksY2FsbFByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKSxvdXRwdXQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGVycm9yVGV4dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksYXBwcm92YWw6Y0submV2ZXIoKS5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImR5bmFtaWMtdG9vbCIpLHRvb2xOYW1lOmNLLnN0cmluZygpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE1ldGFkYXRhOmZzLm9wdGlvbmFsKCksc3RhdGU6Y0subGl0ZXJhbCgiaW5wdXQtYXZhaWxhYmxlIiksaW5wdXQ6Y0sudW5rbm93bigpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksb3V0cHV0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxlcnJvclRleHQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCksYXBwcm92YWw6Y0submV2ZXIoKS5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImR5bmFtaWMtdG9vbCIpLHRvb2xOYW1lOmNLLnN0cmluZygpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE1ldGFkYXRhOmZzLm9wdGlvbmFsKCksc3RhdGU6Y0subGl0ZXJhbCgiYXBwcm92YWwtcmVxdWVzdGVkIiksaW5wdXQ6Y0sudW5rbm93bigpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksb3V0cHV0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxlcnJvclRleHQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCksYXBwcm92YWw6Y0sub2JqZWN0KHtpZDpjSy5zdHJpbmcoKSxhcHByb3ZlZDpjSy5uZXZlcigpLm9wdGlvbmFsKCkscmVhc29uOmNLLm5ldmVyKCkub3B0aW9uYWwoKX0pfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImR5bmFtaWMtdG9vbCIpLHRvb2xOYW1lOmNLLnN0cmluZygpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE1ldGFkYXRhOmZzLm9wdGlvbmFsKCksc3RhdGU6Y0subGl0ZXJhbCgiYXBwcm92YWwtcmVzcG9uZGVkIiksaW5wdXQ6Y0sudW5rbm93bigpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksb3V0cHV0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxlcnJvclRleHQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCksYXBwcm92YWw6Y0sub2JqZWN0KHtpZDpjSy5zdHJpbmcoKSxhcHByb3ZlZDpjSy5ib29sZWFuKCkscmVhc29uOmNLLnN0cmluZygpLm9wdGlvbmFsKCl9KX0pLGNLLm9iamVjdCh7dHlwZTpjSy5saXRlcmFsKCJkeW5hbWljLXRvb2wiKSx0b29sTmFtZTpjSy5zdHJpbmcoKSx0b29sQ2FsbElkOmNLLnN0cmluZygpLHRvb2xNZXRhZGF0YTpmcy5vcHRpb25hbCgpLHN0YXRlOmNLLmxpdGVyYWwoIm91dHB1dC1hdmFpbGFibGUiKSxpbnB1dDpjSy51bmtub3duKCkscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxvdXRwdXQ6Y0sudW5rbm93bigpLGVycm9yVGV4dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksY2FsbFByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKSxyZXN1bHRQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCkscHJlbGltaW5hcnk6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksYXBwcm92YWw6Y0sub2JqZWN0KHtpZDpjSy5zdHJpbmcoKSxhcHByb3ZlZDpjSy5saXRlcmFsKCEwKSxyZWFzb246Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0subGl0ZXJhbCgiZHluYW1pYy10b29sIiksdG9vbE5hbWU6Y0suc3RyaW5nKCksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTWV0YWRhdGE6ZnMub3B0aW9uYWwoKSxzdGF0ZTpjSy5saXRlcmFsKCJvdXRwdXQtZXJyb3IiKSxpbnB1dDpjSy51bmtub3duKCkub3B0aW9uYWwoKSxyYXdJbnB1dDpjSy51bmtub3duKCkub3B0aW9uYWwoKSxwcm92aWRlckV4ZWN1dGVkOmNLLmJvb2xlYW4oKS5vcHRpb25hbCgpLG91dHB1dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksZXJyb3JUZXh0OmNLLnN0cmluZygpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCkscmVzdWx0UHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLGFwcHJvdmFsOmNLLm9iamVjdCh7aWQ6Y0suc3RyaW5nKCksYXBwcm92ZWQ6Y0subGl0ZXJhbCghMCkscmVhc29uOmNLLnN0cmluZygpLm9wdGlvbmFsKCl9KS5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLmxpdGVyYWwoImR5bmFtaWMtdG9vbCIpLHRvb2xOYW1lOmNLLnN0cmluZygpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE1ldGFkYXRhOmZzLm9wdGlvbmFsKCksc3RhdGU6Y0subGl0ZXJhbCgib3V0cHV0LWRlbmllZCIpLGlucHV0OmNLLnVua25vd24oKSxwcm92aWRlckV4ZWN1dGVkOmNLLmJvb2xlYW4oKS5vcHRpb25hbCgpLG91dHB1dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksZXJyb3JUZXh0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxjYWxsUHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLGFwcHJvdmFsOmNLLm9iamVjdCh7aWQ6Y0suc3RyaW5nKCksYXBwcm92ZWQ6Y0subGl0ZXJhbCghMSkscmVhc29uOmNLLnN0cmluZygpLm9wdGlvbmFsKCl9KX0pLGNLLm9iamVjdCh7dHlwZTpjSy5zdHJpbmcoKS5zdGFydHNXaXRoKCJ0b29sLSIpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE1ldGFkYXRhOmZzLm9wdGlvbmFsKCksc3RhdGU6Y0subGl0ZXJhbCgiaW5wdXQtc3RyZWFtaW5nIikscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxjYWxsUHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLGlucHV0OmNLLnVua25vd24oKS5vcHRpb25hbCgpLG91dHB1dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksZXJyb3JUZXh0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxhcHByb3ZhbDpjSy5uZXZlcigpLm9wdGlvbmFsKCl9KSxjSy5vYmplY3Qoe3R5cGU6Y0suc3RyaW5nKCkuc3RhcnRzV2l0aCgidG9vbC0iKSx0b29sQ2FsbElkOmNLLnN0cmluZygpLHRvb2xNZXRhZGF0YTpmcy5vcHRpb25hbCgpLHN0YXRlOmNLLmxpdGVyYWwoImlucHV0LWF2YWlsYWJsZSIpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksaW5wdXQ6Y0sudW5rbm93bigpLG91dHB1dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksZXJyb3JUZXh0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxjYWxsUHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLGFwcHJvdmFsOmNLLm5ldmVyKCkub3B0aW9uYWwoKX0pLGNLLm9iamVjdCh7dHlwZTpjSy5zdHJpbmcoKS5zdGFydHNXaXRoKCJ0b29sLSIpLHRvb2xDYWxsSWQ6Y0suc3RyaW5nKCksdG9vbE1ldGFkYXRhOmZzLm9wdGlvbmFsKCksc3RhdGU6Y0subGl0ZXJhbCgiYXBwcm92YWwtcmVxdWVzdGVkIiksaW5wdXQ6Y0sudW5rbm93bigpLHByb3ZpZGVyRXhlY3V0ZWQ6Y0suYm9vbGVhbigpLm9wdGlvbmFsKCksb3V0cHV0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxlcnJvclRleHQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCksYXBwcm92YWw6Y0sub2JqZWN0KHtpZDpjSy5zdHJpbmcoKSxhcHByb3ZlZDpjSy5uZXZlcigpLm9wdGlvbmFsKCkscmVhc29uOmNLLm5ldmVyKCkub3B0aW9uYWwoKX0pfSksY0sub2JqZWN0KHt0eXBlOmNLLnN0cmluZygpLnN0YXJ0c1dpdGgoInRvb2wtIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTWV0YWRhdGE6ZnMub3B0aW9uYWwoKSxzdGF0ZTpjSy5saXRlcmFsKCJhcHByb3ZhbC1yZXNwb25kZWQiKSxpbnB1dDpjSy51bmtub3duKCkscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxvdXRwdXQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGVycm9yVGV4dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksY2FsbFByb3ZpZGVyTWV0YWRhdGE6bUYub3B0aW9uYWwoKSxhcHByb3ZhbDpjSy5vYmplY3Qoe2lkOmNLLnN0cmluZygpLGFwcHJvdmVkOmNLLmJvb2xlYW4oKSxyZWFzb246Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pfSksY0sub2JqZWN0KHt0eXBlOmNLLnN0cmluZygpLnN0YXJ0c1dpdGgoInRvb2wtIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTWV0YWRhdGE6ZnMub3B0aW9uYWwoKSxzdGF0ZTpjSy5saXRlcmFsKCJvdXRwdXQtYXZhaWxhYmxlIikscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxpbnB1dDpjSy51bmtub3duKCksb3V0cHV0OmNLLnVua25vd24oKSxlcnJvclRleHQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCkscmVzdWx0UHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLHByZWxpbWluYXJ5OmNLLmJvb2xlYW4oKS5vcHRpb25hbCgpLGFwcHJvdmFsOmNLLm9iamVjdCh7aWQ6Y0suc3RyaW5nKCksYXBwcm92ZWQ6Y0subGl0ZXJhbCghMCkscmVhc29uOmNLLnN0cmluZygpLm9wdGlvbmFsKCl9KS5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLnN0cmluZygpLnN0YXJ0c1dpdGgoInRvb2wtIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTWV0YWRhdGE6ZnMub3B0aW9uYWwoKSxzdGF0ZTpjSy5saXRlcmFsKCJvdXRwdXQtZXJyb3IiKSxwcm92aWRlckV4ZWN1dGVkOmNLLmJvb2xlYW4oKS5vcHRpb25hbCgpLGlucHV0OmNLLnVua25vd24oKS5vcHRpb25hbCgpLHJhd0lucHV0OmNLLnVua25vd24oKS5vcHRpb25hbCgpLG91dHB1dDpjSy5uZXZlcigpLm9wdGlvbmFsKCksZXJyb3JUZXh0OmNLLnN0cmluZygpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCkscmVzdWx0UHJvdmlkZXJNZXRhZGF0YTptRi5vcHRpb25hbCgpLGFwcHJvdmFsOmNLLm9iamVjdCh7aWQ6Y0suc3RyaW5nKCksYXBwcm92ZWQ6Y0subGl0ZXJhbCghMCkscmVhc29uOmNLLnN0cmluZygpLm9wdGlvbmFsKCl9KS5vcHRpb25hbCgpfSksY0sub2JqZWN0KHt0eXBlOmNLLnN0cmluZygpLnN0YXJ0c1dpdGgoInRvb2wtIiksdG9vbENhbGxJZDpjSy5zdHJpbmcoKSx0b29sTWV0YWRhdGE6ZnMub3B0aW9uYWwoKSxzdGF0ZTpjSy5saXRlcmFsKCJvdXRwdXQtZGVuaWVkIikscHJvdmlkZXJFeGVjdXRlZDpjSy5ib29sZWFuKCkub3B0aW9uYWwoKSxpbnB1dDpjSy51bmtub3duKCksb3V0cHV0OmNLLm5ldmVyKCkub3B0aW9uYWwoKSxlcnJvclRleHQ6Y0submV2ZXIoKS5vcHRpb25hbCgpLGNhbGxQcm92aWRlck1ldGFkYXRhOm1GLm9wdGlvbmFsKCksYXBwcm92YWw6Y0sub2JqZWN0KHtpZDpjSy5zdHJpbmcoKSxhcHByb3ZlZDpjSy5saXRlcmFsKCExKSxyZWFzb246Y0suc3RyaW5nKCkub3B0aW9uYWwoKX0pfSldKSkubm9uZW1wdHkoIk1lc3NhZ2UgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBwYXJ0Iil9KSkubm9uZW1wdHkoIk1lc3NhZ2VzIGFycmF5IG11c3Qgbm90IGJlIGVtcHR5IikpKSxpYSh7cHJlZml4OiJhaW9iaiIsc2l6ZToyNH0pO3ZhciBmbD1jbGFzc3tjb25zdHJ1Y3Rvcigpe3RoaXMucXVldWU9W10sdGhpcy5pc1Byb2Nlc3Npbmc9ITF9YXN5bmMgcHJvY2Vzc1F1ZXVlKCl7aWYoIXRoaXMuaXNQcm9jZXNzaW5nKXtmb3IodGhpcy5pc1Byb2Nlc3Npbmc9ITA7dGhpcy5xdWV1ZS5sZW5ndGg+MDspYXdhaXQgdGhpcy5xdWV1ZVswXSgpLHRoaXMucXVldWUuc2hpZnQoKTt0aGlzLmlzUHJvY2Vzc2luZz0hMX19YXN5bmMgcnVuKGUpe3JldHVybiBuZXcgUHJvbWlzZSgodCxyKT0+e3RoaXMucXVldWUucHVzaChhc3luYygpPT57dHJ5e2F3YWl0IGUoKSx0KCl9Y2F0Y2goZSl7cihlKX19KSx0aGlzLnByb2Nlc3NRdWV1ZSgpfSl9fTthc3luYyBmdW5jdGlvbiBmZChlKXtpZihudWxsPT1lKXJldHVybltdO2lmKCFnbG9iYWxUaGlzLkZpbGVMaXN0fHwhKGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkZpbGVMaXN0KSl0aHJvdyBFcnJvcigiRmlsZUxpc3QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCIpO3JldHVybiBQcm9taXNlLmFsbChBcnJheS5mcm9tKGUpLm1hcChhc3luYyBlPT57bGV0e25hbWU6dCx0eXBlOnJ9PWU7cmV0dXJue3R5cGU6ImZpbGUiLG1lZGlhVHlwZTpyLGZpbGVuYW1lOnQsdXJsOmF3YWl0IG5ldyBQcm9taXNlKCh0LHIpPT57bGV0IG49bmV3IEZpbGVSZWFkZXI7bi5vbmxvYWQ9ZT0+e3ZhciByO3QobnVsbD09KHI9ZS50YXJnZXQpP3ZvaWQgMDpyLnJlc3VsdCl9LG4ub25lcnJvcj1lPT5yKGUpLG4ucmVhZEFzRGF0YVVSTChlKX0pfX0pKX1pYSh7cHJlZml4OiJhaW9iaiIsc2l6ZToyNH0pLGZ1KCksU3ltYm9sLmZvcigidmVyY2VsLmFpLmVycm9yLkFJX05vU3VjaFByb3ZpZGVyRXJyb3IiKSxmdSgpO3ZhciBmYz1jbGFzc3tjb25zdHJ1Y3Rvcih7YXBpOmU9Ii9hcGkvY2hhdCIsY3JlZGVudGlhbHM6dCxoZWFkZXJzOnIsYm9keTpuLGZldGNoOmkscHJlcGFyZVNlbmRNZXNzYWdlc1JlcXVlc3Q6YSxwcmVwYXJlUmVjb25uZWN0VG9TdHJlYW1SZXF1ZXN0Om99KXt0aGlzLmFwaT1lLHRoaXMuY3JlZGVudGlhbHM9dCx0aGlzLmhlYWRlcnM9cix0aGlzLmJvZHk9bix0aGlzLmZldGNoPWksdGhpcy5wcmVwYXJlU2VuZE1lc3NhZ2VzUmVxdWVzdD1hLHRoaXMucHJlcGFyZVJlY29ubmVjdFRvU3RyZWFtUmVxdWVzdD1vfWFzeW5jIHNlbmRNZXNzYWdlcyh7YWJvcnRTaWduYWw6ZSwuLi50fSl7dmFyIHIsbixpLGEsbztsZXQgcz1hd2FpdCBhdCh0aGlzLmJvZHkpLHU9YXdhaXQgYXQodGhpcy5oZWFkZXJzKSxsPWF3YWl0IGF0KHRoaXMuY3JlZGVudGlhbHMpLGQ9ey4uLmlwKHUpLC4uLmlwKHQuaGVhZGVycyl9LGM9YXdhaXQgKG51bGw9PShyPXRoaXMucHJlcGFyZVNlbmRNZXNzYWdlc1JlcXVlc3QpP3ZvaWQgMDpyLmNhbGwodGhpcyx7YXBpOnRoaXMuYXBpLGlkOnQuY2hhdElkLG1lc3NhZ2VzOnQubWVzc2FnZXMsYm9keTp7Li4ucywuLi50LmJvZHl9LGhlYWRlcnM6ZCxjcmVkZW50aWFsczpsLHJlcXVlc3RNZXRhZGF0YTp0Lm1ldGFkYXRhLHRyaWdnZXI6dC50cmlnZ2VyLG1lc3NhZ2VJZDp0Lm1lc3NhZ2VJZH0pKSxwPW51bGwhPShuPW51bGw9PWM/dm9pZCAwOmMuYXBpKT9uOnRoaXMuYXBpLG09KG51bGw9PWM/dm9pZCAwOmMuaGVhZGVycykhPT12b2lkIDA/aXAoYy5oZWFkZXJzKTpkLGY9KG51bGw9PWM/dm9pZCAwOmMuYm9keSkhPT12b2lkIDA/Yy5ib2R5OnsuLi5zLC4uLnQuYm9keSxpZDp0LmNoYXRJZCxtZXNzYWdlczp0Lm1lc3NhZ2VzLHRyaWdnZXI6dC50cmlnZ2VyLG1lc3NhZ2VJZDp0Lm1lc3NhZ2VJZH0saD1udWxsIT0oaT1udWxsPT1jP3ZvaWQgMDpjLmNyZWRlbnRpYWxzKT9pOmwsdj1udWxsIT0oYT10aGlzLmZldGNoKT9hOmdsb2JhbFRoaXMuZmV0Y2gsZz1hd2FpdCB2KHAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24iLC4uLm19LGJvZHk6SlNPTi5zdHJpbmdpZnkoZiksY3JlZGVudGlhbHM6aCxzaWduYWw6ZX0pO2lmKCFnLm9rKXRocm93IEVycm9yKG51bGwhPShvPWF3YWl0IGcudGV4dCgpKT9vOiJGYWlsZWQgdG8gZmV0Y2ggdGhlIGNoYXQgcmVzcG9uc2UuIik7aWYoIWcuYm9keSl0aHJvdyBFcnJvcigiVGhlIHJlc3BvbnNlIGJvZHkgaXMgZW1wdHkuIik7cmV0dXJuIHRoaXMucHJvY2Vzc1Jlc3BvbnNlU3RyZWFtKGcuYm9keSl9YXN5bmMgcmVjb25uZWN0VG9TdHJlYW0oZSl7dmFyIHQscixuLGksYTtsZXQgbz1hd2FpdCBhdCh0aGlzLmJvZHkpLHM9YXdhaXQgYXQodGhpcy5oZWFkZXJzKSx1PWF3YWl0IGF0KHRoaXMuY3JlZGVudGlhbHMpLGw9ey4uLmlwKHMpLC4uLmlwKGUuaGVhZGVycyl9LGQ9YXdhaXQgKG51bGw9PSh0PXRoaXMucHJlcGFyZVJlY29ubmVjdFRvU3RyZWFtUmVxdWVzdCk/dm9pZCAwOnQuY2FsbCh0aGlzLHthcGk6dGhpcy5hcGksaWQ6ZS5jaGF0SWQsYm9keTp7Li4ubywuLi5lLmJvZHl9LGhlYWRlcnM6bCxjcmVkZW50aWFsczp1LHJlcXVlc3RNZXRhZGF0YTplLm1ldGFkYXRhfSkpLGM9bnVsbCE9KHI9bnVsbD09ZD92b2lkIDA6ZC5hcGkpP3I6YCR7dGhpcy5hcGl9LyR7ZS5jaGF0SWR9L3N0cmVhbWAscD0obnVsbD09ZD92b2lkIDA6ZC5oZWFkZXJzKSE9PXZvaWQgMD9pcChkLmhlYWRlcnMpOmwsbT1udWxsIT0obj1udWxsPT1kP3ZvaWQgMDpkLmNyZWRlbnRpYWxzKT9uOnUsZj1udWxsIT0oaT10aGlzLmZldGNoKT9pOmdsb2JhbFRoaXMuZmV0Y2gsaD1hd2FpdCBmKGMse21ldGhvZDoiR0VUIixoZWFkZXJzOnAsY3JlZGVudGlhbHM6bX0pO2lmKDIwND09PWguc3RhdHVzKXJldHVybiBudWxsO2lmKCFoLm9rKXRocm93IEVycm9yKG51bGwhPShhPWF3YWl0IGgudGV4dCgpKT9hOiJGYWlsZWQgdG8gZmV0Y2ggdGhlIGNoYXQgcmVzcG9uc2UuIik7aWYoIWguYm9keSl0aHJvdyBFcnJvcigiVGhlIHJlc3BvbnNlIGJvZHkgaXMgZW1wdHkuIik7cmV0dXJuIHRoaXMucHJvY2Vzc1Jlc3BvbnNlU3RyZWFtKGguYm9keSl9fSxmcD1jbGFzcyBleHRlbmRzIGZje2NvbnN0cnVjdG9yKGU9e30pe3N1cGVyKGUpfXByb2Nlc3NSZXNwb25zZVN0cmVhbShlKXtyZXR1cm4gaTUoe3N0cmVhbTplLHNjaGVtYTpmcn0pLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW0oe2FzeW5jIHRyYW5zZm9ybShlLHQpe2lmKCFlLnN1Y2Nlc3MpdGhyb3cgZS5lcnJvcjt0LmVucXVldWUoZS52YWx1ZSl9fSkpfX0sZm09Y2xhc3N7Y29uc3RydWN0b3Ioe2dlbmVyYXRlSWQ6ZT1pbyxpZDp0PWUoKSx0cmFuc3BvcnQ6cj1uZXcgZnAsbWVzc2FnZU1ldGFkYXRhU2NoZW1hOm4sZGF0YVBhcnRTY2hlbWFzOmksc3RhdGU6YSxvbkVycm9yOm8sb25Ub29sQ2FsbDpzLG9uRmluaXNoOnUsb25EYXRhOmwsc2VuZEF1dG9tYXRpY2FsbHlXaGVuOmR9KXt0aGlzLmFjdGl2ZVJlc3BvbnNlPXZvaWQgMCx0aGlzLmpvYkV4ZWN1dG9yPW5ldyBmbCx0aGlzLnNlbmRNZXNzYWdlPWFzeW5jKGUsdCk9Pnt2YXIgcixuLGksYTtsZXQgbztpZihudWxsPT1lKXJldHVybiB2b2lkIGF3YWl0IHRoaXMubWFrZVJlcXVlc3Qoe3RyaWdnZXI6InN1Ym1pdC1tZXNzYWdlIixtZXNzYWdlSWQ6bnVsbD09KHI9dGhpcy5sYXN0TWVzc2FnZSk/dm9pZCAwOnIuaWQsLi4udH0pO2lmKG89InRleHQiaW4gZXx8ImZpbGVzImluIGU/e3BhcnRzOlsuLi5BcnJheS5pc0FycmF5KGUuZmlsZXMpP2UuZmlsZXM6YXdhaXQgZmQoZS5maWxlcyksLi4uInRleHQiaW4gZSYmbnVsbCE9ZS50ZXh0P1t7dHlwZToidGV4dCIsdGV4dDplLnRleHR9XTpbXV19OmUsbnVsbCE9ZS5tZXNzYWdlSWQpe2xldCB0PXRoaXMuc3RhdGUubWVzc2FnZXMuZmluZEluZGV4KHQ9PnQuaWQ9PT1lLm1lc3NhZ2VJZCk7aWYoLTE9PT10KXRocm93IEVycm9yKGBtZXNzYWdlIHdpdGggaWQgJHtlLm1lc3NhZ2VJZH0gbm90IGZvdW5kYCk7aWYoInVzZXIiIT09dGhpcy5zdGF0ZS5tZXNzYWdlc1t0XS5yb2xlKXRocm93IEVycm9yKGBtZXNzYWdlIHdpdGggaWQgJHtlLm1lc3NhZ2VJZH0gaXMgbm90IGEgdXNlciBtZXNzYWdlYCk7dGhpcy5zdGF0ZS5tZXNzYWdlcz10aGlzLnN0YXRlLm1lc3NhZ2VzLnNsaWNlKDAsdCsxKSx0aGlzLnN0YXRlLnJlcGxhY2VNZXNzYWdlKHQsey4uLm8saWQ6ZS5tZXNzYWdlSWQscm9sZTpudWxsIT0obj1vLnJvbGUpP246InVzZXIiLG1ldGFkYXRhOmUubWV0YWRhdGF9KX1lbHNlIHRoaXMuc3RhdGUucHVzaE1lc3NhZ2Uoey4uLm8saWQ6bnVsbCE9KGk9by5pZCk/aTp0aGlzLmdlbmVyYXRlSWQoKSxyb2xlOm51bGwhPShhPW8ucm9sZSk/YToidXNlciIsbWV0YWRhdGE6ZS5tZXRhZGF0YX0pO2F3YWl0IHRoaXMubWFrZVJlcXVlc3Qoe3RyaWdnZXI6InN1Ym1pdC1tZXNzYWdlIixtZXNzYWdlSWQ6ZS5tZXNzYWdlSWQsLi4udH0pfSx0aGlzLnJlZ2VuZXJhdGU9YXN5bmMoe21lc3NhZ2VJZDplLC4uLnR9PXt9KT0+e2xldCByPW51bGw9PWU/dGhpcy5zdGF0ZS5tZXNzYWdlcy5sZW5ndGgtMTp0aGlzLnN0YXRlLm1lc3NhZ2VzLmZpbmRJbmRleCh0PT50LmlkPT09ZSk7aWYoLTE9PT1yKXRocm93IEVycm9yKGBtZXNzYWdlICR7ZX0gbm90IGZvdW5kYCk7dGhpcy5zdGF0ZS5tZXNzYWdlcz10aGlzLnN0YXRlLm1lc3NhZ2VzLnNsaWNlKDAsImFzc2lzdGFudCI9PT10aGlzLm1lc3NhZ2VzW3JdLnJvbGU/cjpyKzEpLGF3YWl0IHRoaXMubWFrZVJlcXVlc3Qoe3RyaWdnZXI6InJlZ2VuZXJhdGUtbWVzc2FnZSIsbWVzc2FnZUlkOmUsLi4udH0pfSx0aGlzLnJlc3VtZVN0cmVhbT1hc3luYyhlPXt9KT0+e2F3YWl0IHRoaXMubWFrZVJlcXVlc3Qoe3RyaWdnZXI6InJlc3VtZS1zdHJlYW0iLC4uLmV9KX0sdGhpcy5jbGVhckVycm9yPSgpPT57ImVycm9yIj09PXRoaXMuc3RhdHVzJiYodGhpcy5zdGF0ZS5lcnJvcj12b2lkIDAsdGhpcy5zZXRTdGF0dXMoe3N0YXR1czoicmVhZHkifSkpfSx0aGlzLmFkZFRvb2xBcHByb3ZhbFJlc3BvbnNlPWFzeW5jKHtpZDplLGFwcHJvdmVkOnQscmVhc29uOnIsb3B0aW9uczpufSk9PnRoaXMuam9iRXhlY3V0b3IucnVuKGFzeW5jKCk9PntsZXQgaT10aGlzLnN0YXRlLm1lc3NhZ2VzLGE9aVtpLmxlbmd0aC0xXSxvPW49PmZpKG4pJiYiYXBwcm92YWwtcmVxdWVzdGVkIj09PW4uc3RhdGUmJm4uYXBwcm92YWwuaWQ9PT1lP3suLi5uLHN0YXRlOiJhcHByb3ZhbC1yZXNwb25kZWQiLGFwcHJvdmFsOntpZDplLGFwcHJvdmVkOnQscmVhc29uOnJ9fTpuO3RoaXMuc3RhdGUucmVwbGFjZU1lc3NhZ2UoaS5sZW5ndGgtMSx7Li4uYSxwYXJ0czphLnBhcnRzLm1hcChvKX0pLHRoaXMuYWN0aXZlUmVzcG9uc2UmJih0aGlzLmFjdGl2ZVJlc3BvbnNlLnN0YXRlLm1lc3NhZ2UucGFydHM9dGhpcy5hY3RpdmVSZXNwb25zZS5zdGF0ZS5tZXNzYWdlLnBhcnRzLm1hcChvKSksInN0cmVhbWluZyIhPT10aGlzLnN0YXR1cyYmInN1Ym1pdHRlZCIhPT10aGlzLnN0YXR1cyYmdGhpcy5zZW5kQXV0b21hdGljYWxseVdoZW4mJnRoaXMuc2hvdWxkU2VuZEF1dG9tYXRpY2FsbHkoKS50aGVuKGU9Pnt2YXIgdDtlJiZ0aGlzLm1ha2VSZXF1ZXN0KHt0cmlnZ2VyOiJzdWJtaXQtbWVzc2FnZSIsbWVzc2FnZUlkOm51bGw9PSh0PXRoaXMubGFzdE1lc3NhZ2UpP3ZvaWQgMDp0LmlkLC4uLm59KX0pfSksdGhpcy5hZGRUb29sT3V0cHV0PWFzeW5jKHtzdGF0ZTplPSJvdXRwdXQtYXZhaWxhYmxlIix0b29sQ2FsbElkOnQsb3V0cHV0OnIsZXJyb3JUZXh0Om4sb3B0aW9uczppfSk9PnRoaXMuam9iRXhlY3V0b3IucnVuKGFzeW5jKCk9PntsZXQgYT10aGlzLnN0YXRlLm1lc3NhZ2VzLG89YVthLmxlbmd0aC0xXSxzPWk9PmZpKGkpJiZpLnRvb2xDYWxsSWQ9PT10P3suLi5pLHN0YXRlOmUsb3V0cHV0OnIsZXJyb3JUZXh0Om59Omk7dGhpcy5zdGF0ZS5yZXBsYWNlTWVzc2FnZShhLmxlbmd0aC0xLHsuLi5vLHBhcnRzOm8ucGFydHMubWFwKHMpfSksdGhpcy5hY3RpdmVSZXNwb25zZSYmKHRoaXMuYWN0aXZlUmVzcG9uc2Uuc3RhdGUubWVzc2FnZS5wYXJ0cz10aGlzLmFjdGl2ZVJlc3BvbnNlLnN0YXRlLm1lc3NhZ2UucGFydHMubWFwKHMpKSwic3RyZWFtaW5nIiE9PXRoaXMuc3RhdHVzJiYic3VibWl0dGVkIiE9PXRoaXMuc3RhdHVzJiZ0aGlzLnNlbmRBdXRvbWF0aWNhbGx5V2hlbiYmdGhpcy5zaG91bGRTZW5kQXV0b21hdGljYWxseSgpLnRoZW4oZT0+e3ZhciB0O2UmJnRoaXMubWFrZVJlcXVlc3Qoe3RyaWdnZXI6InN1Ym1pdC1tZXNzYWdlIixtZXNzYWdlSWQ6bnVsbD09KHQ9dGhpcy5sYXN0TWVzc2FnZSk/dm9pZCAwOnQuaWQsLi4uaX0pfSl9KSx0aGlzLmFkZFRvb2xSZXN1bHQ9dGhpcy5hZGRUb29sT3V0cHV0LHRoaXMuc3RvcD1hc3luYygpPT57dmFyIGU7KCJzdHJlYW1pbmciPT09dGhpcy5zdGF0dXN8fCJzdWJtaXR0ZWQiPT09dGhpcy5zdGF0dXMpJiYobnVsbD09KGU9dGhpcy5hY3RpdmVSZXNwb25zZSk/dm9pZCAwOmUuYWJvcnRDb250cm9sbGVyKSYmdGhpcy5hY3RpdmVSZXNwb25zZS5hYm9ydENvbnRyb2xsZXIuYWJvcnQoKX0sdGhpcy5pZD10LHRoaXMudHJhbnNwb3J0PXIsdGhpcy5nZW5lcmF0ZUlkPWUsdGhpcy5tZXNzYWdlTWV0YWRhdGFTY2hlbWE9bix0aGlzLmRhdGFQYXJ0U2NoZW1hcz1pLHRoaXMuc3RhdGU9YSx0aGlzLm9uRXJyb3I9byx0aGlzLm9uVG9vbENhbGw9cyx0aGlzLm9uRmluaXNoPXUsdGhpcy5vbkRhdGE9bCx0aGlzLnNlbmRBdXRvbWF0aWNhbGx5V2hlbj1kfWdldCBzdGF0dXMoKXtyZXR1cm4gdGhpcy5zdGF0ZS5zdGF0dXN9c2V0U3RhdHVzKHtzdGF0dXM6ZSxlcnJvcjp0fSl7dGhpcy5zdGF0dXMhPT1lJiYodGhpcy5zdGF0ZS5zdGF0dXM9ZSx0aGlzLnN0YXRlLmVycm9yPXQpfWdldCBlcnJvcigpe3JldHVybiB0aGlzLnN0YXRlLmVycm9yfWdldCBtZXNzYWdlcygpe3JldHVybiB0aGlzLnN0YXRlLm1lc3NhZ2VzfWdldCBsYXN0TWVzc2FnZSgpe3JldHVybiB0aGlzLnN0YXRlLm1lc3NhZ2VzW3RoaXMuc3RhdGUubWVzc2FnZXMubGVuZ3RoLTFdfXNldCBtZXNzYWdlcyhlKXt0aGlzLnN0YXRlLm1lc3NhZ2VzPWV9YXN5bmMgc2hvdWxkU2VuZEF1dG9tYXRpY2FsbHkoKXtpZighdGhpcy5zZW5kQXV0b21hdGljYWxseVdoZW4pcmV0dXJuITE7bGV0IGU9dGhpcy5zZW5kQXV0b21hdGljYWxseVdoZW4oe21lc3NhZ2VzOnRoaXMuc3RhdGUubWVzc2FnZXN9KTtyZXR1cm4gZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYidGhlbiJpbiBlP2F3YWl0IGU6ZX1hc3luYyBtYWtlUmVxdWVzdCh7dHJpZ2dlcjplLG1ldGFkYXRhOnQsaGVhZGVyczpyLGJvZHk6bixtZXNzYWdlSWQ6aX0pe3ZhciBhLG8scztsZXQgdTtpZigicmVzdW1lLXN0cmVhbSI9PT1lKXRyeXtsZXQgZT1hd2FpdCB0aGlzLnRyYW5zcG9ydC5yZWNvbm5lY3RUb1N0cmVhbSh7Y2hhdElkOnRoaXMuaWQsbWV0YWRhdGE6dCxoZWFkZXJzOnIsYm9keTpufSk7aWYobnVsbD09ZSlyZXR1cm47dT1lfWNhdGNoKGUpe3RoaXMub25FcnJvciYmZSBpbnN0YW5jZW9mIEVycm9yJiZ0aGlzLm9uRXJyb3IoZSksdGhpcy5zZXRTdGF0dXMoe3N0YXR1czoiZXJyb3IiLGVycm9yOmV9KTtyZXR1cm59dGhpcy5zZXRTdGF0dXMoe3N0YXR1czoic3VibWl0dGVkIixlcnJvcjp2b2lkIDB9KTtsZXQgbD10aGlzLmxhc3RNZXNzYWdlLGQ9ITEsYz0hMSxwPSExO3RyeXtsZXQgYSxvPXtzdGF0ZTpmdW5jdGlvbih7bGFzdE1lc3NhZ2U6ZSxtZXNzYWdlSWQ6dH0pe3JldHVybnttZXNzYWdlOihudWxsPT1lP3ZvaWQgMDplLnJvbGUpPT09ImFzc2lzdGFudCI/ZTp7aWQ6dCxtZXRhZGF0YTp2b2lkIDAscm9sZToiYXNzaXN0YW50IixwYXJ0czpbXX0sYWN0aXZlVGV4dFBhcnRzOnt9LGFjdGl2ZVJlYXNvbmluZ1BhcnRzOnt9LHBhcnRpYWxUb29sQ2FsbHM6e319fSh7bGFzdE1lc3NhZ2U6dGhpcy5zdGF0ZS5zbmFwc2hvdChsKSxtZXNzYWdlSWQ6dGhpcy5nZW5lcmF0ZUlkKCl9KSxhYm9ydENvbnRyb2xsZXI6bmV3IEFib3J0Q29udHJvbGxlcn07by5hYm9ydENvbnRyb2xsZXIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKT0+e2Q9ITB9KSx0aGlzLmFjdGl2ZVJlc3BvbnNlPW8sYT0icmVzdW1lLXN0cmVhbSI9PT1lP3U6YXdhaXQgdGhpcy50cmFuc3BvcnQuc2VuZE1lc3NhZ2VzKHtjaGF0SWQ6dGhpcy5pZCxtZXNzYWdlczp0aGlzLnN0YXRlLm1lc3NhZ2VzLGFib3J0U2lnbmFsOm8uYWJvcnRDb250cm9sbGVyLnNpZ25hbCxtZXRhZGF0YTp0LGhlYWRlcnM6cixib2R5Om4sdHJpZ2dlcjplLG1lc3NhZ2VJZDppfSk7bGV0IHM9ZT0+dGhpcy5qb2JFeGVjdXRvci5ydW4oKCk9PmUoe3N0YXRlOm8uc3RhdGUsd3JpdGU6KCk9Pnt2YXIgZTt0aGlzLnNldFN0YXR1cyh7c3RhdHVzOiJzdHJlYW1pbmcifSksby5zdGF0ZS5tZXNzYWdlLmlkPT09KG51bGw9PShlPXRoaXMubGFzdE1lc3NhZ2UpP3ZvaWQgMDplLmlkKT90aGlzLnN0YXRlLnJlcGxhY2VNZXNzYWdlKHRoaXMuc3RhdGUubWVzc2FnZXMubGVuZ3RoLTEsby5zdGF0ZS5tZXNzYWdlKTp0aGlzLnN0YXRlLnB1c2hNZXNzYWdlKG8uc3RhdGUubWVzc2FnZSl9fSkpO2F3YWl0IGZvKHtzdHJlYW06ZnVuY3Rpb24oe3N0cmVhbTplLG1lc3NhZ2VNZXRhZGF0YVNjaGVtYTp0LGRhdGFQYXJ0U2NoZW1hczpyLHJ1blVwZGF0ZU1lc3NhZ2VKb2I6bixvbkVycm9yOmksb25Ub29sQ2FsbDphLG9uRGF0YTpvfSl7cmV0dXJuIGUucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSh7YXN5bmMgdHJhbnNmb3JtKGUscyl7YXdhaXQgbihhc3luYyh7c3RhdGU6bix3cml0ZTp1fSk9Pnt2YXIgbCxkLGMscDtmdW5jdGlvbiBtKGUpe2xldCB0PW4ubWVzc2FnZS5wYXJ0cy5maWx0ZXIoZmkpLmZpbmQodD0+dC50b29sQ2FsbElkPT09ZSk7aWYobnVsbD09dCl0aHJvdyBuZXcgbUQoe2NodW5rVHlwZToidG9vbC1pbnZvY2F0aW9uIixjaHVua0lkOmUsbWVzc2FnZTpgTm8gdG9vbCBpbnZvY2F0aW9uIGZvdW5kIGZvciB0b29sIGNhbGwgSUQgIiR7ZX0iLmB9KTtyZXR1cm4gdH1mdW5jdGlvbiBmKGUpe3ZhciB0O2xldCByPW4ubWVzc2FnZS5wYXJ0cy5maW5kKHQ9PmZuKHQpJiZ0LnRvb2xDYWxsSWQ9PT1lLnRvb2xDYWxsSWQpO2lmKG51bGwhPXIpe3Iuc3RhdGU9ZS5zdGF0ZSxyLmlucHV0PWUuaW5wdXQsci5vdXRwdXQ9ZS5vdXRwdXQsci5lcnJvclRleHQ9ZS5lcnJvclRleHQsci5yYXdJbnB1dD1lLnJhd0lucHV0LHIucHJlbGltaW5hcnk9ZS5wcmVsaW1pbmFyeSx2b2lkIDAhPT1lLnRpdGxlJiYoci50aXRsZT1lLnRpdGxlKSx2b2lkIDAhPT1lLnRvb2xNZXRhZGF0YSYmKHIudG9vbE1ldGFkYXRhPWUudG9vbE1ldGFkYXRhKSxyLnByb3ZpZGVyRXhlY3V0ZWQ9bnVsbCE9KHQ9ZS5wcm92aWRlckV4ZWN1dGVkKT90OnIucHJvdmlkZXJFeGVjdXRlZDtsZXQgbj1lLnByb3ZpZGVyTWV0YWRhdGE7bnVsbCE9biYmKCJvdXRwdXQtYXZhaWxhYmxlIj09PWUuc3RhdGV8fCJvdXRwdXQtZXJyb3IiPT09ZS5zdGF0ZT9yLnJlc3VsdFByb3ZpZGVyTWV0YWRhdGE9bjpyLmNhbGxQcm92aWRlck1ldGFkYXRhPW4pfWVsc2Ugbi5tZXNzYWdlLnBhcnRzLnB1c2goe3R5cGU6YHRvb2wtJHtlLnRvb2xOYW1lfWAsdG9vbENhbGxJZDplLnRvb2xDYWxsSWQsc3RhdGU6ZS5zdGF0ZSx0aXRsZTplLnRpdGxlLC4uLnZvaWQgMCE9PWUudG9vbE1ldGFkYXRhP3t0b29sTWV0YWRhdGE6ZS50b29sTWV0YWRhdGF9Ont9LGlucHV0OmUuaW5wdXQsb3V0cHV0OmUub3V0cHV0LHJhd0lucHV0OmUucmF3SW5wdXQsZXJyb3JUZXh0OmUuZXJyb3JUZXh0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByZWxpbWluYXJ5OmUucHJlbGltaW5hcnksLi4ubnVsbCE9ZS5wcm92aWRlck1ldGFkYXRhJiYoIm91dHB1dC1hdmFpbGFibGUiPT09ZS5zdGF0ZXx8Im91dHB1dC1lcnJvciI9PT1lLnN0YXRlKT97cmVzdWx0UHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGF9Ont9LC4uLm51bGwhPWUucHJvdmlkZXJNZXRhZGF0YSYmIm91dHB1dC1hdmFpbGFibGUiIT09ZS5zdGF0ZSYmIm91dHB1dC1lcnJvciIhPT1lLnN0YXRlP3tjYWxsUHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGF9Ont9fSl9ZnVuY3Rpb24gaChlKXt2YXIgdCxyO2xldCBpPW4ubWVzc2FnZS5wYXJ0cy5maW5kKHQ9PiJkeW5hbWljLXRvb2wiPT09dC50eXBlJiZ0LnRvb2xDYWxsSWQ9PT1lLnRvb2xDYWxsSWQpO2lmKG51bGwhPWkpe2kuc3RhdGU9ZS5zdGF0ZSxpLnRvb2xOYW1lPWUudG9vbE5hbWUsaS5pbnB1dD1lLmlucHV0LGkub3V0cHV0PWUub3V0cHV0LGkuZXJyb3JUZXh0PWUuZXJyb3JUZXh0LGkucmF3SW5wdXQ9bnVsbCE9KHQ9ZS5yYXdJbnB1dCk/dDppLnJhd0lucHV0LGkucHJlbGltaW5hcnk9ZS5wcmVsaW1pbmFyeSx2b2lkIDAhPT1lLnRpdGxlJiYoaS50aXRsZT1lLnRpdGxlKSx2b2lkIDAhPT1lLnRvb2xNZXRhZGF0YSYmKGkudG9vbE1ldGFkYXRhPWUudG9vbE1ldGFkYXRhKSxpLnByb3ZpZGVyRXhlY3V0ZWQ9bnVsbCE9KHI9ZS5wcm92aWRlckV4ZWN1dGVkKT9yOmkucHJvdmlkZXJFeGVjdXRlZDtsZXQgbj1lLnByb3ZpZGVyTWV0YWRhdGE7bnVsbCE9biYmKCJvdXRwdXQtYXZhaWxhYmxlIj09PWUuc3RhdGV8fCJvdXRwdXQtZXJyb3IiPT09ZS5zdGF0ZT9pLnJlc3VsdFByb3ZpZGVyTWV0YWRhdGE9bjppLmNhbGxQcm92aWRlck1ldGFkYXRhPW4pfWVsc2Ugbi5tZXNzYWdlLnBhcnRzLnB1c2goe3R5cGU6ImR5bmFtaWMtdG9vbCIsdG9vbE5hbWU6ZS50b29sTmFtZSx0b29sQ2FsbElkOmUudG9vbENhbGxJZCxzdGF0ZTplLnN0YXRlLGlucHV0OmUuaW5wdXQsb3V0cHV0OmUub3V0cHV0LGVycm9yVGV4dDplLmVycm9yVGV4dCxwcmVsaW1pbmFyeTplLnByZWxpbWluYXJ5LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHRpdGxlOmUudGl0bGUsLi4udm9pZCAwIT09ZS50b29sTWV0YWRhdGE/e3Rvb2xNZXRhZGF0YTplLnRvb2xNZXRhZGF0YX06e30sLi4ubnVsbCE9ZS5wcm92aWRlck1ldGFkYXRhJiYoIm91dHB1dC1hdmFpbGFibGUiPT09ZS5zdGF0ZXx8Im91dHB1dC1lcnJvciI9PT1lLnN0YXRlKT97cmVzdWx0UHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGF9Ont9LC4uLm51bGwhPWUucHJvdmlkZXJNZXRhZGF0YSYmIm91dHB1dC1hdmFpbGFibGUiIT09ZS5zdGF0ZSYmIm91dHB1dC1lcnJvciIhPT1lLnN0YXRlP3tjYWxsUHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGF9Ont9fSl9YXN5bmMgZnVuY3Rpb24gdihlKXtpZihudWxsIT1lKXtsZXQgcj1udWxsIT1uLm1lc3NhZ2UubWV0YWRhdGE/ZnVuY3Rpb24gZSh0LHIpe2lmKHZvaWQgMD09PXQmJnZvaWQgMD09PXIpcmV0dXJuO2lmKHZvaWQgMD09PXQpcmV0dXJuIHI7aWYodm9pZCAwPT09cilyZXR1cm4gdDtsZXQgbj17Li4udH07Zm9yKGxldCBpIGluIHIpaWYoIl9fcHJvdG9fXyIhPT1pJiYiY29uc3RydWN0b3IiIT09aSYmInByb3RvdHlwZSIhPT1pJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixpKSl7bGV0IGE9cltpXTtpZih2b2lkIDA9PT1hKWNvbnRpbnVlO2xldCBvPWkgaW4gdD90W2ldOnZvaWQgMCxzPW51bGwhPT1hJiYib2JqZWN0Ij09dHlwZW9mIGEmJiFBcnJheS5pc0FycmF5KGEpJiYhKGEgaW5zdGFuY2VvZiBEYXRlKSYmIShhIGluc3RhbmNlb2YgUmVnRXhwKSx1PW51bGwhPW8mJiJvYmplY3QiPT10eXBlb2YgbyYmIUFycmF5LmlzQXJyYXkobykmJiEobyBpbnN0YW5jZW9mIERhdGUpJiYhKG8gaW5zdGFuY2VvZiBSZWdFeHApO3MmJnU/bltpXT1lKG8sYSk6bltpXT1hfXJldHVybiBufShuLm1lc3NhZ2UubWV0YWRhdGEsZSk6ZTtudWxsIT10JiZhd2FpdCBpNCh7dmFsdWU6cixzY2hlbWE6dCxjb250ZXh0OntmaWVsZDoibWVzc2FnZS5tZXRhZGF0YSIsZW50aXR5SWQ6bi5tZXNzYWdlLmlkfX0pLG4ubWVzc2FnZS5tZXRhZGF0YT1yfX1zd2l0Y2goZS50eXBlKXtjYXNlInRleHQtc3RhcnQiOntsZXQgdD17dHlwZToidGV4dCIsdGV4dDoiIixwcm92aWRlck1ldGFkYXRhOmUucHJvdmlkZXJNZXRhZGF0YSxzdGF0ZToic3RyZWFtaW5nIn07bi5hY3RpdmVUZXh0UGFydHNbZS5pZF09dCxuLm1lc3NhZ2UucGFydHMucHVzaCh0KSx1KCk7YnJlYWt9Y2FzZSJ0ZXh0LWRlbHRhIjp7bGV0IHQ9bi5hY3RpdmVUZXh0UGFydHNbZS5pZF07aWYobnVsbD09dCl0aHJvdyBuZXcgbUQoe2NodW5rVHlwZToidGV4dC1kZWx0YSIsY2h1bmtJZDplLmlkLG1lc3NhZ2U6YFJlY2VpdmVkIHRleHQtZGVsdGEgZm9yIG1pc3NpbmcgdGV4dCBwYXJ0IHdpdGggSUQgIiR7ZS5pZH0iLiBFbnN1cmUgYSAidGV4dC1zdGFydCIgY2h1bmsgaXMgc2VudCBiZWZvcmUgYW55ICJ0ZXh0LWRlbHRhIiBjaHVua3MuYH0pO3QudGV4dCs9ZS5kZWx0YSx0LnByb3ZpZGVyTWV0YWRhdGE9bnVsbCE9KGw9ZS5wcm92aWRlck1ldGFkYXRhKT9sOnQucHJvdmlkZXJNZXRhZGF0YSx1KCk7YnJlYWt9Y2FzZSJ0ZXh0LWVuZCI6e2xldCB0PW4uYWN0aXZlVGV4dFBhcnRzW2UuaWRdO2lmKG51bGw9PXQpdGhyb3cgbmV3IG1EKHtjaHVua1R5cGU6InRleHQtZW5kIixjaHVua0lkOmUuaWQsbWVzc2FnZTpgUmVjZWl2ZWQgdGV4dC1lbmQgZm9yIG1pc3NpbmcgdGV4dCBwYXJ0IHdpdGggSUQgIiR7ZS5pZH0iLiBFbnN1cmUgYSAidGV4dC1zdGFydCIgY2h1bmsgaXMgc2VudCBiZWZvcmUgYW55ICJ0ZXh0LWVuZCIgY2h1bmtzLmB9KTt0LnN0YXRlPSJkb25lIix0LnByb3ZpZGVyTWV0YWRhdGE9bnVsbCE9KGQ9ZS5wcm92aWRlck1ldGFkYXRhKT9kOnQucHJvdmlkZXJNZXRhZGF0YSxkZWxldGUgbi5hY3RpdmVUZXh0UGFydHNbZS5pZF0sdSgpO2JyZWFrfWNhc2UicmVhc29uaW5nLXN0YXJ0Ijp7bGV0IHQ9e3R5cGU6InJlYXNvbmluZyIsdGV4dDoiIixwcm92aWRlck1ldGFkYXRhOmUucHJvdmlkZXJNZXRhZGF0YSxzdGF0ZToic3RyZWFtaW5nIn07bi5hY3RpdmVSZWFzb25pbmdQYXJ0c1tlLmlkXT10LG4ubWVzc2FnZS5wYXJ0cy5wdXNoKHQpLHUoKTticmVha31jYXNlInJlYXNvbmluZy1kZWx0YSI6e2xldCB0PW4uYWN0aXZlUmVhc29uaW5nUGFydHNbZS5pZF07aWYobnVsbD09dCl0aHJvdyBuZXcgbUQoe2NodW5rVHlwZToicmVhc29uaW5nLWRlbHRhIixjaHVua0lkOmUuaWQsbWVzc2FnZTpgUmVjZWl2ZWQgcmVhc29uaW5nLWRlbHRhIGZvciBtaXNzaW5nIHJlYXNvbmluZyBwYXJ0IHdpdGggSUQgIiR7ZS5pZH0iLiBFbnN1cmUgYSAicmVhc29uaW5nLXN0YXJ0IiBjaHVuayBpcyBzZW50IGJlZm9yZSBhbnkgInJlYXNvbmluZy1kZWx0YSIgY2h1bmtzLmB9KTt0LnRleHQrPWUuZGVsdGEsdC5wcm92aWRlck1ldGFkYXRhPW51bGwhPShjPWUucHJvdmlkZXJNZXRhZGF0YSk/Yzp0LnByb3ZpZGVyTWV0YWRhdGEsdSgpO2JyZWFrfWNhc2UicmVhc29uaW5nLWVuZCI6e2xldCB0PW4uYWN0aXZlUmVhc29uaW5nUGFydHNbZS5pZF07aWYobnVsbD09dCl0aHJvdyBuZXcgbUQoe2NodW5rVHlwZToicmVhc29uaW5nLWVuZCIsY2h1bmtJZDplLmlkLG1lc3NhZ2U6YFJlY2VpdmVkIHJlYXNvbmluZy1lbmQgZm9yIG1pc3NpbmcgcmVhc29uaW5nIHBhcnQgd2l0aCBJRCAiJHtlLmlkfSIuIEVuc3VyZSBhICJyZWFzb25pbmctc3RhcnQiIGNodW5rIGlzIHNlbnQgYmVmb3JlIGFueSAicmVhc29uaW5nLWVuZCIgY2h1bmtzLmB9KTt0LnByb3ZpZGVyTWV0YWRhdGE9bnVsbCE9KHA9ZS5wcm92aWRlck1ldGFkYXRhKT9wOnQucHJvdmlkZXJNZXRhZGF0YSx0LnN0YXRlPSJkb25lIixkZWxldGUgbi5hY3RpdmVSZWFzb25pbmdQYXJ0c1tlLmlkXSx1KCk7YnJlYWt9Y2FzZSJmaWxlIjpuLm1lc3NhZ2UucGFydHMucHVzaCh7dHlwZToiZmlsZSIsbWVkaWFUeXBlOmUubWVkaWFUeXBlLHVybDplLnVybCwuLi5udWxsIT1lLnByb3ZpZGVyTWV0YWRhdGE/e3Byb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhfTp7fX0pLHUoKTticmVhaztjYXNlInNvdXJjZS11cmwiOm4ubWVzc2FnZS5wYXJ0cy5wdXNoKHt0eXBlOiJzb3VyY2UtdXJsIixzb3VyY2VJZDplLnNvdXJjZUlkLHVybDplLnVybCx0aXRsZTplLnRpdGxlLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhfSksdSgpO2JyZWFrO2Nhc2Uic291cmNlLWRvY3VtZW50IjpuLm1lc3NhZ2UucGFydHMucHVzaCh7dHlwZToic291cmNlLWRvY3VtZW50Iixzb3VyY2VJZDplLnNvdXJjZUlkLG1lZGlhVHlwZTplLm1lZGlhVHlwZSx0aXRsZTplLnRpdGxlLGZpbGVuYW1lOmUuZmlsZW5hbWUscHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGF9KSx1KCk7YnJlYWs7Y2FzZSJ0b29sLWlucHV0LXN0YXJ0Ijp7bGV0IHQ9bi5tZXNzYWdlLnBhcnRzLmZpbHRlcihmbik7bi5wYXJ0aWFsVG9vbENhbGxzW2UudG9vbENhbGxJZF09e3RleHQ6IiIsdG9vbE5hbWU6ZS50b29sTmFtZSxpbmRleDp0Lmxlbmd0aCxkeW5hbWljOmUuZHluYW1pYyx0aXRsZTplLnRpdGxlLHRvb2xNZXRhZGF0YTplLnRvb2xNZXRhZGF0YX0sZS5keW5hbWljP2goe3Rvb2xDYWxsSWQ6ZS50b29sQ2FsbElkLHRvb2xOYW1lOmUudG9vbE5hbWUsc3RhdGU6ImlucHV0LXN0cmVhbWluZyIsaW5wdXQ6dm9pZCAwLHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHRpdGxlOmUudGl0bGUsdG9vbE1ldGFkYXRhOmUudG9vbE1ldGFkYXRhLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhfSk6Zih7dG9vbENhbGxJZDplLnRvb2xDYWxsSWQsdG9vbE5hbWU6ZS50b29sTmFtZSxzdGF0ZToiaW5wdXQtc3RyZWFtaW5nIixpbnB1dDp2b2lkIDAscHJvdmlkZXJFeGVjdXRlZDplLnByb3ZpZGVyRXhlY3V0ZWQsdGl0bGU6ZS50aXRsZSx0b29sTWV0YWRhdGE6ZS50b29sTWV0YWRhdGEscHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGF9KSx1KCk7YnJlYWt9Y2FzZSJ0b29sLWlucHV0LWRlbHRhIjp7bGV0IHQ9bi5wYXJ0aWFsVG9vbENhbGxzW2UudG9vbENhbGxJZF07aWYobnVsbD09dCl0aHJvdyBuZXcgbUQoe2NodW5rVHlwZToidG9vbC1pbnB1dC1kZWx0YSIsY2h1bmtJZDplLnRvb2xDYWxsSWQsbWVzc2FnZTpgUmVjZWl2ZWQgdG9vbC1pbnB1dC1kZWx0YSBmb3IgbWlzc2luZyB0b29sIGNhbGwgd2l0aCBJRCAiJHtlLnRvb2xDYWxsSWR9Ii4gRW5zdXJlIGEgInRvb2wtaW5wdXQtc3RhcnQiIGNodW5rIGlzIHNlbnQgYmVmb3JlIGFueSAidG9vbC1pbnB1dC1kZWx0YSIgY2h1bmtzLmB9KTt0LnRleHQrPWUuaW5wdXRUZXh0RGVsdGE7bGV0e3ZhbHVlOnJ9PWF3YWl0IG05KHQudGV4dCk7dC5keW5hbWljP2goe3Rvb2xDYWxsSWQ6ZS50b29sQ2FsbElkLHRvb2xOYW1lOnQudG9vbE5hbWUsc3RhdGU6ImlucHV0LXN0cmVhbWluZyIsaW5wdXQ6cix0aXRsZTp0LnRpdGxlLHRvb2xNZXRhZGF0YTp0LnRvb2xNZXRhZGF0YX0pOmYoe3Rvb2xDYWxsSWQ6ZS50b29sQ2FsbElkLHRvb2xOYW1lOnQudG9vbE5hbWUsc3RhdGU6ImlucHV0LXN0cmVhbWluZyIsaW5wdXQ6cix0aXRsZTp0LnRpdGxlLHRvb2xNZXRhZGF0YTp0LnRvb2xNZXRhZGF0YX0pLHUoKTticmVha31jYXNlInRvb2wtaW5wdXQtYXZhaWxhYmxlIjplLmR5bmFtaWM/aCh7dG9vbENhbGxJZDplLnRvb2xDYWxsSWQsdG9vbE5hbWU6ZS50b29sTmFtZSxzdGF0ZToiaW5wdXQtYXZhaWxhYmxlIixpbnB1dDplLmlucHV0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhLHRpdGxlOmUudGl0bGUsdG9vbE1ldGFkYXRhOmUudG9vbE1ldGFkYXRhfSk6Zih7dG9vbENhbGxJZDplLnRvb2xDYWxsSWQsdG9vbE5hbWU6ZS50b29sTmFtZSxzdGF0ZToiaW5wdXQtYXZhaWxhYmxlIixpbnB1dDplLmlucHV0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhLHRpdGxlOmUudGl0bGUsdG9vbE1ldGFkYXRhOmUudG9vbE1ldGFkYXRhfSksdSgpLGEmJiFlLnByb3ZpZGVyRXhlY3V0ZWQmJmF3YWl0IGEoe3Rvb2xDYWxsOmV9KTticmVhaztjYXNlInRvb2wtaW5wdXQtZXJyb3IiOntsZXQgdD1uLm1lc3NhZ2UucGFydHMuZmlsdGVyKGZpKS5maW5kKHQ9PnQudG9vbENhbGxJZD09PWUudG9vbENhbGxJZCk7KG51bGwhPXQ/ImR5bmFtaWMtdG9vbCI9PT10LnR5cGU6ZS5keW5hbWljKT9oKHt0b29sQ2FsbElkOmUudG9vbENhbGxJZCx0b29sTmFtZTplLnRvb2xOYW1lLHN0YXRlOiJvdXRwdXQtZXJyb3IiLGlucHV0OmUuaW5wdXQsZXJyb3JUZXh0OmUuZXJyb3JUZXh0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhLHRvb2xNZXRhZGF0YTplLnRvb2xNZXRhZGF0YX0pOmYoe3Rvb2xDYWxsSWQ6ZS50b29sQ2FsbElkLHRvb2xOYW1lOmUudG9vbE5hbWUsc3RhdGU6Im91dHB1dC1lcnJvciIsaW5wdXQ6dm9pZCAwLHJhd0lucHV0OmUuaW5wdXQsZXJyb3JUZXh0OmUuZXJyb3JUZXh0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhLHRvb2xNZXRhZGF0YTplLnRvb2xNZXRhZGF0YX0pLHUoKTticmVha31jYXNlInRvb2wtYXBwcm92YWwtcmVxdWVzdCI6e2xldCB0PW0oZS50b29sQ2FsbElkKTt0LnN0YXRlPSJhcHByb3ZhbC1yZXF1ZXN0ZWQiLHQuYXBwcm92YWw9e2lkOmUuYXBwcm92YWxJZH0sdSgpO2JyZWFrfWNhc2UidG9vbC1vdXRwdXQtZGVuaWVkIjptKGUudG9vbENhbGxJZCkuc3RhdGU9Im91dHB1dC1kZW5pZWQiLHUoKTticmVhaztjYXNlInRvb2wtb3V0cHV0LWF2YWlsYWJsZSI6e2xldCB0PW0oZS50b29sQ2FsbElkKTsiZHluYW1pYy10b29sIj09PXQudHlwZT9oKHt0b29sQ2FsbElkOmUudG9vbENhbGxJZCx0b29sTmFtZTp0LnRvb2xOYW1lLHN0YXRlOiJvdXRwdXQtYXZhaWxhYmxlIixpbnB1dDp0LmlucHV0LG91dHB1dDplLm91dHB1dCxwcmVsaW1pbmFyeTplLnByZWxpbWluYXJ5LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhLHRpdGxlOnQudGl0bGUsdG9vbE1ldGFkYXRhOnQudG9vbE1ldGFkYXRhfSk6Zih7dG9vbENhbGxJZDplLnRvb2xDYWxsSWQsdG9vbE5hbWU6ZmEodCksc3RhdGU6Im91dHB1dC1hdmFpbGFibGUiLGlucHV0OnQuaW5wdXQsb3V0cHV0OmUub3V0cHV0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByZWxpbWluYXJ5OmUucHJlbGltaW5hcnkscHJvdmlkZXJNZXRhZGF0YTplLnByb3ZpZGVyTWV0YWRhdGEsdGl0bGU6dC50aXRsZSx0b29sTWV0YWRhdGE6dC50b29sTWV0YWRhdGF9KSx1KCk7YnJlYWt9Y2FzZSJ0b29sLW91dHB1dC1lcnJvciI6e2xldCB0PW0oZS50b29sQ2FsbElkKTsiZHluYW1pYy10b29sIj09PXQudHlwZT9oKHt0b29sQ2FsbElkOmUudG9vbENhbGxJZCx0b29sTmFtZTp0LnRvb2xOYW1lLHN0YXRlOiJvdXRwdXQtZXJyb3IiLGlucHV0OnQuaW5wdXQsZXJyb3JUZXh0OmUuZXJyb3JUZXh0LHByb3ZpZGVyRXhlY3V0ZWQ6ZS5wcm92aWRlckV4ZWN1dGVkLHByb3ZpZGVyTWV0YWRhdGE6ZS5wcm92aWRlck1ldGFkYXRhLHRpdGxlOnQudGl0bGUsdG9vbE1ldGFkYXRhOnQudG9vbE1ldGFkYXRhfSk6Zih7dG9vbENhbGxJZDplLnRvb2xDYWxsSWQsdG9vbE5hbWU6ZmEodCksc3RhdGU6Im91dHB1dC1lcnJvciIsaW5wdXQ6dC5pbnB1dCxyYXdJbnB1dDp0LnJhd0lucHV0LGVycm9yVGV4dDplLmVycm9yVGV4dCxwcm92aWRlckV4ZWN1dGVkOmUucHJvdmlkZXJFeGVjdXRlZCxwcm92aWRlck1ldGFkYXRhOmUucHJvdmlkZXJNZXRhZGF0YSx0aXRsZTp0LnRpdGxlLHRvb2xNZXRhZGF0YTp0LnRvb2xNZXRhZGF0YX0pLHUoKTticmVha31jYXNlInN0YXJ0LXN0ZXAiOm4ubWVzc2FnZS5wYXJ0cy5wdXNoKHt0eXBlOiJzdGVwLXN0YXJ0In0pO2JyZWFrO2Nhc2UiZmluaXNoLXN0ZXAiOm4uYWN0aXZlVGV4dFBhcnRzPXt9LG4uYWN0aXZlUmVhc29uaW5nUGFydHM9e307YnJlYWs7Y2FzZSJzdGFydCI6bnVsbCE9ZS5tZXNzYWdlSWQmJihuLm1lc3NhZ2UuaWQ9ZS5tZXNzYWdlSWQpLGF3YWl0IHYoZS5tZXNzYWdlTWV0YWRhdGEpLChudWxsIT1lLm1lc3NhZ2VJZHx8bnVsbCE9ZS5tZXNzYWdlTWV0YWRhdGEpJiZ1KCk7YnJlYWs7Y2FzZSJmaW5pc2giOm51bGwhPWUuZmluaXNoUmVhc29uJiYobi5maW5pc2hSZWFzb249ZS5maW5pc2hSZWFzb24pLGF3YWl0IHYoZS5tZXNzYWdlTWV0YWRhdGEpLG51bGwhPWUubWVzc2FnZU1ldGFkYXRhJiZ1KCk7YnJlYWs7Y2FzZSJtZXNzYWdlLW1ldGFkYXRhIjphd2FpdCB2KGUubWVzc2FnZU1ldGFkYXRhKSxudWxsIT1lLm1lc3NhZ2VNZXRhZGF0YSYmdSgpO2JyZWFrO2Nhc2UiZXJyb3IiOm51bGw9PWl8fGkoRXJyb3IoZS5lcnJvclRleHQpKTticmVhaztkZWZhdWx0OmlmKGUudHlwZS5zdGFydHNXaXRoKCJkYXRhLSIpKXtpZigobnVsbD09cj92b2lkIDA6cltlLnR5cGVdKSE9bnVsbCl7bGV0IHQ9bi5tZXNzYWdlLnBhcnRzLmZpbmRJbmRleCh0PT4iaWQiaW4gdCYmImRhdGEiaW4gdCYmdC5pZD09PWUuaWQmJnQudHlwZT09PWUudHlwZSksaT10Pj0wP3Q6bi5tZXNzYWdlLnBhcnRzLmxlbmd0aDthd2FpdCBpNCh7dmFsdWU6ZS5kYXRhLHNjaGVtYTpyW2UudHlwZV0sY29udGV4dDp7ZmllbGQ6YG1lc3NhZ2UucGFydHNbJHtpfV0uZGF0YWAsZW50aXR5TmFtZTplLnR5cGUsZW50aXR5SWQ6ZS5pZH19KX1pZihlLnRyYW5zaWVudCl7bnVsbD09b3x8byhlKTticmVha31sZXQgdD1udWxsIT1lLmlkP24ubWVzc2FnZS5wYXJ0cy5maW5kKHQ9PmUudHlwZT09PXQudHlwZSYmZS5pZD09PXQuaWQpOnZvaWQgMDtudWxsIT10P3QuZGF0YT1lLmRhdGE6bi5tZXNzYWdlLnBhcnRzLnB1c2goZSksbnVsbD09b3x8byhlKSx1KCl9fXMuZW5xdWV1ZShlKX0pfX0pKX0oe3N0cmVhbTphLG9uVG9vbENhbGw6dGhpcy5vblRvb2xDYWxsLG9uRGF0YTp0aGlzLm9uRGF0YSxtZXNzYWdlTWV0YWRhdGFTY2hlbWE6dGhpcy5tZXNzYWdlTWV0YWRhdGFTY2hlbWEsZGF0YVBhcnRTY2hlbWFzOnRoaXMuZGF0YVBhcnRTY2hlbWFzLHJ1blVwZGF0ZU1lc3NhZ2VKb2I6cyxvbkVycm9yOmU9Pnt0aHJvdyBlfX0pLG9uRXJyb3I6ZT0+e3Rocm93IGV9fSksdGhpcy5zZXRTdGF0dXMoe3N0YXR1czoicmVhZHkifSl9Y2F0Y2goZSl7aWYoZHx8IkFib3J0RXJyb3IiPT09ZS5uYW1lKXJldHVybiBkPSEwLHRoaXMuc2V0U3RhdHVzKHtzdGF0dXM6InJlYWR5In0pLG51bGw7cD0hMCxlIGluc3RhbmNlb2YgVHlwZUVycm9yJiYoZS5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImZldGNoIil8fGUubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJuZXR3b3JrIikpJiYoYz0hMCksdGhpcy5vbkVycm9yJiZlIGluc3RhbmNlb2YgRXJyb3ImJnRoaXMub25FcnJvcihlKSx0aGlzLnNldFN0YXR1cyh7c3RhdHVzOiJlcnJvciIsZXJyb3I6ZX0pfWZpbmFsbHl7dHJ5e251bGw9PShvPXRoaXMub25GaW5pc2gpfHxvLmNhbGwodGhpcyx7bWVzc2FnZTp0aGlzLmFjdGl2ZVJlc3BvbnNlLnN0YXRlLm1lc3NhZ2UsbWVzc2FnZXM6dGhpcy5zdGF0ZS5tZXNzYWdlcyxpc0Fib3J0OmQsaXNEaXNjb25uZWN0OmMsaXNFcnJvcjpwLGZpbmlzaFJlYXNvbjpudWxsPT0oYT10aGlzLmFjdGl2ZVJlc3BvbnNlKT92b2lkIDA6YS5zdGF0ZS5maW5pc2hSZWFzb259KX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfXRoaXMuYWN0aXZlUmVzcG9uc2U9dm9pZCAwfSFwJiZhd2FpdCB0aGlzLnNob3VsZFNlbmRBdXRvbWF0aWNhbGx5KCkmJmF3YWl0IHRoaXMubWFrZVJlcXVlc3Qoe3RyaWdnZXI6InN1Ym1pdC1tZXNzYWdlIixtZXNzYWdlSWQ6bnVsbD09KHM9dGhpcy5sYXN0TWVzc2FnZSk/dm9pZCAwOnMuaWQsbWV0YWRhdGE6dCxoZWFkZXJzOnIsYm9keTpufSl9fSxmZj1lLmkoNTYxODY2KSxmaD1lLmkoODAyMjM5KTtlLnMoWyJFUlJPUl9SRVZBTElEQVRFX0VWRU5UIiwoKT0+MywiRk9DVVNfRVZFTlQiLCgpPT4wLCJNVVRBVEVfRVZFTlQiLCgpPT4yLCJSRUNPTk5FQ1RfRVZFTlQiLCgpPT4xXSwyMTE2NzEpO3ZhciBmdj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2xldCBmZz1uZXcgV2Vha01hcCxmeT0oKT0+e30sZmI9ZnkoKSxmXz1PYmplY3QsZng9ZT0+ZT09PWZiLGYkPShlLHQpPT4oey4uLmUsLi4udH0pLGZrPXt9LGZ3PXt9LGZJPSJ1bmRlZmluZWQiLGZTPXR5cGVvZiB3aW5kb3chPWZJLGZPPXR5cGVvZiBkb2N1bWVudCE9ZkksZmo9ZlMmJiJEZW5vImluIHdpbmRvdyxmRT0oZSx0KT0+e2xldCByPWZnLmdldChlKTtyZXR1cm5bKCk9PiFmeCh0KSYmZS5nZXQodCl8fGZrLG49PntpZighZngodCkpe2xldCBpPWUuZ2V0KHQpO3QgaW4gZnd8fChmd1t0XT1pKSxyWzVdKHQsZiQoaSxuKSxpfHxmayl9fSxyWzZdLCgpPT4hZngodCkmJnQgaW4gZnc/ZndbdF06IWZ4KHQpJiZlLmdldCh0KXx8ZmtdfSxmWj0hMCxbZk4sZlRdPWZTJiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcj9bd2luZG93LmFkZEV2ZW50TGlzdGVuZXIuYmluZCh3aW5kb3cpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyLmJpbmQod2luZG93KV06W2Z5LGZ5XSxmej17aW5pdEZvY3VzOmU9PihmTyYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSksZk4oImZvY3VzIixlKSwoKT0+e2ZPJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixlKSxmVCgiZm9jdXMiLGUpfSksaW5pdFJlY29ubmVjdDplPT57bGV0IHQ9KCk9PntmWj0hMCxlKCl9LHI9KCk9PntmWj0hMX07cmV0dXJuIGZOKCJvbmxpbmUiLHQpLGZOKCJvZmZsaW5lIixyKSwoKT0+e2ZUKCJvbmxpbmUiLHQpLGZUKCJvZmZsaW5lIixyKX19fSxmUD0hZWkuZGVmYXVsdC51c2VJZCxmQT0hZlN8fGZqLGZVPWZBP2VpLnVzZUVmZmVjdDplaS51c2VMYXlvdXRFZmZlY3QsZkM9InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5jb25uZWN0aW9uLGZEPSFmQSYmZkMmJihbInNsb3ctMmciLCIyZyJdLmluY2x1ZGVzKGZDLmVmZmVjdGl2ZVR5cGUpfHxmQy5zYXZlRGF0YSksZlI9bmV3IFdlYWtNYXAsZk09KGUsdCk9PmU9PT1gW29iamVjdCAke3R9XWAsZkw9MCxmRj1lPT57bGV0IHQscixuPXR5cGVvZiBlLGk9Zl8ucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksYT1mTShpLCJEYXRlIiksbz1mTShpLCJSZWdFeHAiKSxzPWZNKGksIk9iamVjdCIpO2lmKGZfKGUpIT09ZXx8YXx8byl0PWE/ZS50b0pTT04oKToic3ltYm9sIj09bj9lLnRvU3RyaW5nKCk6InN0cmluZyI9PW4/SlNPTi5zdHJpbmdpZnkoZSk6IiIrZTtlbHNle2lmKHQ9ZlIuZ2V0KGUpKXJldHVybiB0O2lmKHQ9KytmTCsifiIsZlIuc2V0KGUsdCksQXJyYXkuaXNBcnJheShlKSl7Zm9yKHI9MCx0PSJAIjtyPGUubGVuZ3RoO3IrKyl0Kz1mRihlW3JdKSsiLCI7ZlIuc2V0KGUsdCl9aWYocyl7dD0iIyI7bGV0IG49Zl8ua2V5cyhlKS5zb3J0KCk7Zm9yKDshZngocj1uLnBvcCgpKTspZngoZVtyXSl8fCh0Kz1yKyI6IitmRihlW3JdKSsiLCIpO2ZSLnNldChlLHQpfX1yZXR1cm4gdH0sZlY9ZT0+e2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKXRyeXtlPWUoKX1jYXRjaCh0KXtlPSIifWxldCB0PWU7cmV0dXJuW2U9InN0cmluZyI9PXR5cGVvZiBlP2U6KEFycmF5LmlzQXJyYXkoZSk/ZS5sZW5ndGg6ZSk/ZkYoZSk6IiIsdF19LGZCPTAsZko9KCk9PisrZkI7YXN5bmMgZnVuY3Rpb24gZlcoLi4uZSl7bGV0W3QscixuLGldPWUsYT1mJCh7cG9wdWxhdGVDYWNoZTohMCx0aHJvd09uRXJyb3I6ITB9LCJib29sZWFuIj09dHlwZW9mIGk/e3JldmFsaWRhdGU6aX06aXx8e30pLG89YS5wb3B1bGF0ZUNhY2hlLHM9YS5yb2xsYmFja09uRXJyb3IsdT1hLm9wdGltaXN0aWNEYXRhLGw9YS50aHJvd09uRXJyb3I7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpe2xldCBlPVtdO2ZvcihsZXQgbiBvZiB0LmtleXMoKSkhL15cJChpbmZ8c3ViKVwkLy50ZXN0KG4pJiZyKHQuZ2V0KG4pLl9rKSYmZS5wdXNoKG4pO3JldHVybiBQcm9taXNlLmFsbChlLm1hcChkKSl9cmV0dXJuIGQocik7YXN5bmMgZnVuY3Rpb24gZChyKXtsZXQgaSxbZF09ZlYocik7aWYoIWQpcmV0dXJuO2xldFtjLHBdPWZFKHQsZCksW20sZixoLHZdPWZnLmdldCh0KSxnPSgpPT57bGV0IGU9bVtkXTtyZXR1cm4oImZ1bmN0aW9uIj09dHlwZW9mIGEucmV2YWxpZGF0ZT9hLnJldmFsaWRhdGUoYygpLmRhdGEscik6ITEhPT1hLnJldmFsaWRhdGUpJiYoZGVsZXRlIGhbZF0sZGVsZXRlIHZbZF0sZSYmZVswXSk/ZVswXSgyKS50aGVuKCgpPT5jKCkuZGF0YSk6YygpLmRhdGF9O2lmKGUubGVuZ3RoPDMpcmV0dXJuIGcoKTtsZXQgeT1uLGI9ITEsXz1mSigpO2ZbZF09W18sMF07bGV0IHg9IWZ4KHUpLCQ9YygpLGs9JC5kYXRhLHc9JC5fYyxJPWZ4KHcpP2s6dztpZih4JiZwKHtkYXRhOnU9ImZ1bmN0aW9uIj09dHlwZW9mIHU/dShJLGspOnUsX2M6SX0pLCJmdW5jdGlvbiI9PXR5cGVvZiB5KXRyeXt5PXkoSSl9Y2F0Y2goZSl7aT1lLGI9ITB9aWYoeSYmImZ1bmN0aW9uIj09dHlwZW9mIHkudGhlbil7bGV0IGU7aWYoeT1hd2FpdCB5LmNhdGNoKGU9PntpPWUsYj0hMH0pLF8hPT1mW2RdWzBdKXtpZihiKXRocm93IGk7cmV0dXJuIHl9YiYmeCYmKGU9aSwiZnVuY3Rpb24iPT10eXBlb2Ygcz9zKGUpOiExIT09cykmJihvPSEwLHAoe2RhdGE6SSxfYzpmYn0pKX1pZihvJiYhYiYmKCJmdW5jdGlvbiI9PXR5cGVvZiBvP3Aoe2RhdGE6byh5LEkpLGVycm9yOmZiLF9jOmZifSk6cCh7ZGF0YTp5LGVycm9yOmZiLF9jOmZifSkpLGZbZF1bMV09ZkooKSxQcm9taXNlLnJlc29sdmUoZygpKS50aGVuKCgpPT57cCh7X2M6ZmJ9KX0pLGIpe2lmKGwpdGhyb3cgaTtyZXR1cm59cmV0dXJuIHl9fWxldCBmcT0oZSx0KT0+e2ZvcihsZXQgciBpbiBlKWVbcl1bMF0mJmVbcl1bMF0odCl9LGZHPShlLHQpPT57aWYoIWZnLmhhcyhlKSl7bGV0IHI9ZiQoZnosdCksbj1PYmplY3QuY3JlYXRlKG51bGwpLGk9ZlcuYmluZChmYixlKSxhPWZ5LG89T2JqZWN0LmNyZWF0ZShudWxsKSxzPShlLHQpPT57bGV0IHI9b1tlXXx8W107cmV0dXJuIG9bZV09cixyLnB1c2godCksKCk9PnIuc3BsaWNlKHIuaW5kZXhPZih0KSwxKX0sdT0odCxyLG4pPT57ZS5zZXQodCxyKTtsZXQgaT1vW3RdO2lmKGkpZm9yKGxldCBlIG9mIGkpZShyLG4pfSxsPSgpPT57aWYoIWZnLmhhcyhlKSYmKGZnLnNldChlLFtuLE9iamVjdC5jcmVhdGUobnVsbCksT2JqZWN0LmNyZWF0ZShudWxsKSxPYmplY3QuY3JlYXRlKG51bGwpLGksdSxzXSksIWZBKSl7bGV0IHQ9ci5pbml0Rm9jdXMoc2V0VGltZW91dC5iaW5kKGZiLGZxLmJpbmQoZmIsbiwwKSkpLGk9ci5pbml0UmVjb25uZWN0KHNldFRpbWVvdXQuYmluZChmYixmcS5iaW5kKGZiLG4sMSkpKTthPSgpPT57dCYmdCgpLGkmJmkoKSxmZy5kZWxldGUoZSl9fX07cmV0dXJuIGwoKSxbZSxpLGwsYV19cmV0dXJuW2UsZmcuZ2V0KGUpWzRdXX0sW2ZLLGZZXT1mRyhuZXcgTWFwKSxmSD1mJCh7b25Mb2FkaW5nU2xvdzpmeSxvblN1Y2Nlc3M6Znksb25FcnJvcjpmeSxvbkVycm9yUmV0cnk6KGUsdCxyLG4saSk9PntsZXQgYT1yLmVycm9yUmV0cnlDb3VudCxvPWkucmV0cnlDb3VudCxzPX5+KChNYXRoLnJhbmRvbSgpKy41KSooMTw8KG88OD9vOjgpKSkqci5lcnJvclJldHJ5SW50ZXJ2YWw7KGZ4KGEpfHwhKG8+YSkpJiZzZXRUaW1lb3V0KG4scyxpKX0sb25EaXNjYXJkZWQ6ZnkscmV2YWxpZGF0ZU9uRm9jdXM6ITAscmV2YWxpZGF0ZU9uUmVjb25uZWN0OiEwLHJldmFsaWRhdGVJZlN0YWxlOiEwLHNob3VsZFJldHJ5T25FcnJvcjohMCxlcnJvclJldHJ5SW50ZXJ2YWw6ZkQ/MWU0OjVlMyxmb2N1c1Rocm90dGxlSW50ZXJ2YWw6NWUzLGRlZHVwaW5nSW50ZXJ2YWw6MmUzLGxvYWRpbmdUaW1lb3V0OmZEPzVlMzozZTMsY29tcGFyZTpmdW5jdGlvbiBlKHQscil7dmFyIG4saTtpZih0PT09cilyZXR1cm4hMDtpZih0JiZyJiYobj10LmNvbnN0cnVjdG9yKT09PXIuY29uc3RydWN0b3Ipe2lmKG49PT1EYXRlKXJldHVybiB0LmdldFRpbWUoKT09PXIuZ2V0VGltZSgpO2lmKG49PT1SZWdFeHApcmV0dXJuIHQudG9TdHJpbmcoKT09PXIudG9TdHJpbmcoKTtpZihuPT09QXJyYXkpe2lmKChpPXQubGVuZ3RoKT09PXIubGVuZ3RoKWZvcig7aS0tJiZlKHRbaV0scltpXSk7KTtyZXR1cm4gLTE9PT1pfWlmKCFufHwib2JqZWN0Ij09dHlwZW9mIHQpe2ZvcihuIGluIGk9MCx0KWlmKGZ2LmNhbGwodCxuKSYmKytpJiYhZnYuY2FsbChyLG4pfHwhKG4gaW4gcil8fCFlKHRbbl0scltuXSkpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PWl9fXJldHVybiB0IT10JiZyIT1yfSxpc1BhdXNlZDooKT0+ITEsY2FjaGU6ZkssbXV0YXRlOmZZLGZhbGxiYWNrOnt9fSx7aXNPbmxpbmU6KCk9PmZaLGlzVmlzaWJsZTooKT0+e2xldCBlPWZPJiZkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU7cmV0dXJuIGZ4KGUpfHwiaGlkZGVuIiE9PWV9fSksZlg9KDAsZWkuY3JlYXRlQ29udGV4dCkoe30pO2UuaSgyMTE2NzEpO2xldCBmUT1mUyYmd2luZG93Ll9fU1dSX0RFVlRPT0xTX1VTRV9fOyhmUT93aW5kb3cuX19TV1JfREVWVE9PTFNfVVNFX186W10pLmNvbmNhdChlPT4odCxyLG4pPT57bGV0IGk9ciYmKCguLi5lKT0+e2xldFtuXT1mVih0KSxbLCwsaV09ZmcuZ2V0KGZLKTtpZihuLnN0YXJ0c1dpdGgoIiRpbmYkIikpcmV0dXJuIHIoLi4uZSk7bGV0IGE9aVtuXTtyZXR1cm4gZngoYSk/ciguLi5lKTooZGVsZXRlIGlbbl0sYSl9KTtyZXR1cm4gZSh0LGksbil9KSxmUSYmKHdpbmRvdy5fX1NXUl9ERVZUT09MU19SRUFDVF9fPWVpLmRlZmF1bHQpO2xldCBmMD0oKT0+e30sZjE9ZjAoKSxmND0obmV3IFdlYWtNYXAsZWkuZGVmYXVsdC51c2V8fChlPT57c3dpdGNoKGUuc3RhdHVzKXtjYXNlInBlbmRpbmciOnRocm93IGU7Y2FzZSJmdWxmaWxsZWQiOnJldHVybiBlLnZhbHVlO2Nhc2UicmVqZWN0ZWQiOnRocm93IGUucmVhc29uO2RlZmF1bHQ6dGhyb3cgZS5zdGF0dXM9InBlbmRpbmciLGUudGhlbih0PT57ZS5zdGF0dXM9ImZ1bGZpbGxlZCIsZS52YWx1ZT10fSx0PT57ZS5zdGF0dXM9InJlamVjdGVkIixlLnJlYXNvbj10fSksZX19KSksZjY9e2RlZHVwZTohMH0sZjI9UHJvbWlzZS5yZXNvbHZlKGZiKTtmXy5kZWZpbmVQcm9wZXJ0eShlPT57bGV0e3ZhbHVlOnR9PWUscj0oMCxlaS51c2VDb250ZXh0KShmWCksbj0iZnVuY3Rpb24iPT10eXBlb2YgdCxpPSgwLGVpLnVzZU1lbW8pKCgpPT5uP3Qocik6dCxbbixyLHRdKSxhPSgwLGVpLnVzZU1lbW8pKCgpPT5uP2k6KChlLHQpPT57bGV0IHI9ZiQoZSx0KTtpZih0KXtsZXR7dXNlOm4sZmFsbGJhY2s6aX09ZSx7dXNlOmEsZmFsbGJhY2s6b309dDtuJiZhJiYoci51c2U9bi5jb25jYXQoYSkpLGkmJm8mJihyLmZhbGxiYWNrPWYkKGksbykpfXJldHVybiByfSkocixpKSxbbixyLGldKSxvPWkmJmkucHJvdmlkZXIscz0oMCxlaS51c2VSZWYpKGZiKTtvJiYhcy5jdXJyZW50JiYocy5jdXJyZW50PWZHKG8oYS5jYWNoZXx8ZkspLGkpKTtsZXQgdT1zLmN1cnJlbnQ7cmV0dXJuIHUmJihhLmNhY2hlPXVbMF0sYS5tdXRhdGU9dVsxXSksZlUoKCk9PntpZih1KXJldHVybiB1WzJdJiZ1WzJdKCksdVszXX0sW10pLCgwLGVpLmNyZWF0ZUVsZW1lbnQpKGZYLlByb3ZpZGVyLGYkKGUse3ZhbHVlOmF9KSl9LCJkZWZhdWx0VmFsdWUiLHt2YWx1ZTpmSH0pO3ZhciBmOT0oZSx0LHIpPT57aWYoIXQuaGFzKGUpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90ICIrcil9LGY1PShlLHQscik9PihmOShlLHQsInJlYWQgZnJvbSBwcml2YXRlIGZpZWxkIikscj9yLmNhbGwoZSk6dC5nZXQoZSkpLGYzPShlLHQscik9PntpZih0LmhhcyhlKSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBhZGQgdGhlIHNhbWUgcHJpdmF0ZSBtZW1iZXIgbW9yZSB0aGFuIG9uY2UiKTt0IGluc3RhbmNlb2YgV2Vha1NldD90LmFkZChlKTp0LnNldChlLHIpfSxmNz0oZSx0LHIsbik9PihmOShlLHQsIndyaXRlIHRvIHByaXZhdGUgZmllbGQiKSxuP24uY2FsbChlLHIpOnQuc2V0KGUsciksciksZjg9Y2xhc3N7Y29uc3RydWN0b3IoZT1bXSl7ZjModGhpcyxxLHZvaWQgMCksZjModGhpcyxHLCJyZWFkeSIpLGYzKHRoaXMsSyx2b2lkIDApLGYzKHRoaXMsWSxuZXcgU2V0KSxmMyh0aGlzLEgsbmV3IFNldCksZjModGhpcyxYLG5ldyBTZXQpLHRoaXMucHVzaE1lc3NhZ2U9ZT0+e2Y3KHRoaXMscSxmNSh0aGlzLHEpLmNvbmNhdChlKSksZjUodGhpcyxRKS5jYWxsKHRoaXMpfSx0aGlzLnBvcE1lc3NhZ2U9KCk9PntmNyh0aGlzLHEsZjUodGhpcyxxKS5zbGljZSgwLC0xKSksZjUodGhpcyxRKS5jYWxsKHRoaXMpfSx0aGlzLnJlcGxhY2VNZXNzYWdlPShlLHQpPT57ZjcodGhpcyxxLFsuLi5mNSh0aGlzLHEpLnNsaWNlKDAsZSksdGhpcy5zbmFwc2hvdCh0KSwuLi5mNSh0aGlzLHEpLnNsaWNlKGUrMSldKSxmNSh0aGlzLFEpLmNhbGwodGhpcyl9LHRoaXMuc25hcHNob3Q9ZT0+c3RydWN0dXJlZENsb25lKGUpLHRoaXNbIn5yZWdpc3Rlck1lc3NhZ2VzQ2FsbGJhY2siXT0oZSx0KT0+e2xldCByPXQ/bnVsbCE9dD8oMCxmZi5kZWZhdWx0KShlLHQpOmU6ZTtyZXR1cm4gZjUodGhpcyxZKS5hZGQociksKCk9PntmNSh0aGlzLFkpLmRlbGV0ZShyKX19LHRoaXNbIn5yZWdpc3RlclN0YXR1c0NhbGxiYWNrIl09ZT0+KGY1KHRoaXMsSCkuYWRkKGUpLCgpPT57ZjUodGhpcyxIKS5kZWxldGUoZSl9KSx0aGlzWyJ+cmVnaXN0ZXJFcnJvckNhbGxiYWNrIl09ZT0+KGY1KHRoaXMsWCkuYWRkKGUpLCgpPT57ZjUodGhpcyxYKS5kZWxldGUoZSl9KSxmMyh0aGlzLFEsKCk9PntmNSh0aGlzLFkpLmZvckVhY2goZT0+ZSgpKX0pLGYzKHRoaXMsZWUsKCk9PntmNSh0aGlzLEgpLmZvckVhY2goZT0+ZSgpKX0pLGYzKHRoaXMsZXQsKCk9PntmNSh0aGlzLFgpLmZvckVhY2goZT0+ZSgpKX0pLGY3KHRoaXMscSxlKX1nZXQgc3RhdHVzKCl7cmV0dXJuIGY1KHRoaXMsRyl9c2V0IHN0YXR1cyhlKXtmNyh0aGlzLEcsZSksZjUodGhpcyxlZSkuY2FsbCh0aGlzKX1nZXQgZXJyb3IoKXtyZXR1cm4gZjUodGhpcyxLKX1zZXQgZXJyb3IoZSl7ZjcodGhpcyxLLGUpLGY1KHRoaXMsZXQpLmNhbGwodGhpcyl9Z2V0IG1lc3NhZ2VzKCl7cmV0dXJuIGY1KHRoaXMscSl9c2V0IG1lc3NhZ2VzKGUpe2Y3KHRoaXMscSxbLi4uZV0pLGY1KHRoaXMsUSkuY2FsbCh0aGlzKX19O3E9bmV3IFdlYWtNYXAsRz1uZXcgV2Vha01hcCxLPW5ldyBXZWFrTWFwLFk9bmV3IFdlYWtNYXAsSD1uZXcgV2Vha01hcCxYPW5ldyBXZWFrTWFwLFE9bmV3IFdlYWtNYXAsZWU9bmV3IFdlYWtNYXAsZXQ9bmV3IFdlYWtNYXA7dmFyIGhlPWNsYXNzIGV4dGVuZHMgZm17Y29uc3RydWN0b3Ioe21lc3NhZ2VzOmUsLi4udH0pe2NvbnN0IHI9bmV3IGY4KGUpO3N1cGVyKHsuLi50LHN0YXRlOnJ9KSxmMyh0aGlzLGVyLHZvaWQgMCksdGhpc1sifnJlZ2lzdGVyTWVzc2FnZXNDYWxsYmFjayJdPShlLHQpPT5mNSh0aGlzLGVyKVsifnJlZ2lzdGVyTWVzc2FnZXNDYWxsYmFjayJdKGUsdCksdGhpc1sifnJlZ2lzdGVyU3RhdHVzQ2FsbGJhY2siXT1lPT5mNSh0aGlzLGVyKVsifnJlZ2lzdGVyU3RhdHVzQ2FsbGJhY2siXShlKSx0aGlzWyJ+cmVnaXN0ZXJFcnJvckNhbGxiYWNrIl09ZT0+ZjUodGhpcyxlcilbIn5yZWdpc3RlckVycm9yQ2FsbGJhY2siXShlKSxmNyh0aGlzLGVyLHIpfX07ZXI9bmV3IFdlYWtNYXA7dmFyIGh0PWUuaSg0NzUyNTQpO2xldCBocj0oMCxodC5kZWZhdWx0KSgicGFwZXJjbGlwIixbWyJwYXRoIix7ZDoiTTEzLjIzNCAyMC4yNTIgMjEgMTIuMyIsa2V5OiIxY2JyazkifV0sWyJwYXRoIix7ZDoibTE2IDYtOC40MTQgOC41ODZhMiAyIDAgMCAwIDAgMi44MjggMiAyIDAgMCAwIDIuODI4IDBsOC40MTQtOC41ODZhNCA0IDAgMCAwIDAtNS42NTYgNCA0IDAgMCAwLTUuNjU2IDBsLTguNDE1IDguNTg1YTYgNiAwIDEgMCA4LjQ4NiA4LjQ4NiIsa2V5OiIxcGt0czYifV1dKTtmdW5jdGlvbiBobih7c3RhdHVzOmV9KXtsZXQgdCxbcixuXT0oMCxlaS51c2VTdGF0ZSkoITEpLFtpLGFdPSgwLGVpLnVzZVN0YXRlKSgwKSxvPSgwLGVpLnVzZVJlZikobnVsbCkscz0iZG9uZSIhPT1lLnN0YXRlOygwLGVpLnVzZUVmZmVjdCkoKCk9PntpZighcylyZXR1cm47bnVsbD09PW8uY3VycmVudCYmKG8uY3VycmVudD1EYXRlLm5vdygpKTtsZXQgZT0oKT0+YShNYXRoLm1heCgwLE1hdGgucm91bmQoKERhdGUubm93KCktby5jdXJyZW50KS8xZTMpKSk7ZSgpO2xldCB0PXNldEludGVydmFsKGUsMWUzKTtyZXR1cm4oKT0+Y2xlYXJJbnRlcnZhbCh0KX0sW3NdKTtsZXR7Z2x5cGg6dSx0b25lOmwsbGFiZWw6ZH09ZnVuY3Rpb24oZSl7aWYoImRvbmUiIT09ZS5zdGF0ZSlyZXR1cm57Z2x5cGg6IuKXjyIsdG9uZToidGV4dC1icmFuZC10ZXh0LW11dGVkIixsYWJlbDoiIn07c3dpdGNoKGUucmVzdWx0U3RhdHVzKXtjYXNlIm5vdF9mb3VuZCI6cmV0dXJue2dseXBoOiLiiIUiLHRvbmU6InRleHQtc3RhdHVzLXdhcm5pbmciLGxhYmVsOiJub3QgZm91bmQifTtjYXNlImVycm9yIjpyZXR1cm57Z2x5cGg6IuKclSIsdG9uZToidGV4dC1zdGF0dXMtbmVnYXRpdmUiLGxhYmVsOmUucmVzdWx0P2BlcnJvciBceGI3ICR7ZS5yZXN1bHR9YDoiZXJyb3IifTtkZWZhdWx0OnJldHVybntnbHlwaDoi4pyTIix0b25lOiJ0ZXh0LXN0YXR1cy1wb3NpdGl2ZSIsbGFiZWw6ImRvbmUifX19KGUpLGM9ZS5uYW1lPz8idG9vbCIscD1zPyh0PU1hdGguZmxvb3IoaS82MCksYCR7dH06JHtTdHJpbmcoaSU2MCkucGFkU3RhcnQoMiwiMCIpfWApOmQsbT0hIShlLmFyZ3N8fGUucmVzdWx0KTtyZXR1cm4oMCxlbi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJteS0xIHJvdW5kZWQgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgYmctYnJhbmQtY2FyZCB0ZXh0LXhzIixjaGlsZHJlbjpbKDAsZW4uanN4cykoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+bihlPT4hZSksY2xhc3NOYW1lOiJmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtMiBweS0xIHRleHQtbGVmdCB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQiLGNoaWxkcmVuOlsoMCxlbi5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOmBzaHJpbmstMCAke2x9ICR7cz8iYW5pbWF0ZS1wdWxzZSI6IiJ9YCxjaGlsZHJlbjp1fSksKDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZToic2hyaW5rLTAgZm9udC1tb25vIHRleHQtYnJhbmQtdGV4dCIsY2hpbGRyZW46Y30pLGUuYXJncyYmKDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZToibWluLXctMCB0cnVuY2F0ZSBmb250LW1vbm8gdGV4dC1icmFuZC10ZXh0LW11dGVkLzcwIixjaGlsZHJlbjplLmFyZ3N9KSwoMCxlbi5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOmBtbC1hdXRvIHNocmluay0wIHRhYnVsYXItbnVtcyAke3M/InRleHQtYnJhbmQtdGV4dC1tdXRlZCI6bH1gLGNoaWxkcmVuOnB9KV19KSxyJiYoMCxlbi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJzcGFjZS15LTAuNSBib3JkZXItdCBib3JkZXItYnJhbmQtYm9yZGVyIHB4LTIgcHktMSBmb250LW1vbm8gdGV4dC1bMTFweF0gdGV4dC1icmFuZC10ZXh0LW11dGVkIixjaGlsZHJlbjpbZS5hcmdzJiYoMCxlbi5qc3hzKSgiZGl2Iix7Y2hpbGRyZW46WyJhcmdzOiAiLGUuYXJnc119KSxlLnJlc3VsdCYmKDAsZW4uanN4cykoImRpdiIse2NoaWxkcmVuOltlLnJlc3VsdFN0YXR1cz8/InJlc3VsdCIsIjogIixlLnJlc3VsdF19KSwhbSYmKDAsZW4uanN4cykoImRpdiIse2NoaWxkcmVuOltjLCIg4oCUICIscz8icnVubmluZyI6ZHx8ImRvbmUiXX0pXX0pXX0pfWZ1bmN0aW9uIGhpKHtpdGVtczplfSl7bGV0IHQsW3Isbl09KDAsZWkudXNlU3RhdGUpKCExKSxpPWUuc29tZShlPT4iZG9uZSIhPT1lLnN0YXRlKSxbYSxvXT0oMCxlaS51c2VTdGF0ZSkoKCk9PkRhdGUubm93KCkpOygwLGVpLnVzZUVmZmVjdCkoKCk9PntpZighaSlyZXR1cm47bGV0IGU9c2V0SW50ZXJ2YWwoKCk9Pm8oRGF0ZS5ub3coKSksMWUzKTtyZXR1cm4oKT0+Y2xlYXJJbnRlcnZhbChlKX0sW2ldKTtsZXQgcz1NYXRoLm1pbiguLi5lLm1hcChlPT5lLnN0YXJ0ZWRBdD8/MS8wKSksdT1NYXRoLm1heCguLi5lLm1hcChlPT5lLmNvbXBsZXRlZEF0Pz8wKSksbD1OdW1iZXIuaXNGaW5pdGUocyk/KHQ9TWF0aC5tYXgoMCxNYXRoLnJvdW5kKCgoaXx8IXU/YTp1KS1zKS8xZTMpKSk8NjA/YCR7dH1zYDpgJHtNYXRoLmZsb29yKHQvNjApfW0gJHt0JTYwfXNgOm51bGwsZD1bLi4ubmV3IFNldChlLm1hcChlPT5lLm5hbWU/PyJ0b29sIikpXSxjPWQuc2xpY2UoMCwzKS5qb2luKCIsICIpKyhkLmxlbmd0aD4zPyIsIOKApiI6IiIpLHA9Wy4uLmVdLnJldmVyc2UoKS5maW5kKGU9PiJkb25lIiE9PWUuc3RhdGUpO3JldHVybigwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Im15LTIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1jYXJkIHRleHQteHMiLGNoaWxkcmVuOlsoMCxlbi5qc3hzKSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOigpPT5uKGU9PiFlKSwiYXJpYS1leHBhbmRlZCI6cixjbGFzc05hbWU6ImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBnYXAtMiBweC0zIHB5LTEuNSB0ZXh0LWxlZnQgdGV4dC1icmFuZC10ZXh0LW11dGVkIixjaGlsZHJlbjpbaT8oMCxlbi5qc3gpKCJzcGFuIix7Y2xhc3NOYW1lOiJoLTEuNSB3LTEuNSBzaHJpbmstMCBhbmltYXRlLXB1bHNlIHJvdW5kZWQtZnVsbCBiZy1icmFuZC1ibHVlIiwiYXJpYS1oaWRkZW4iOiEwfSk6KDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZTpgc2hyaW5rLTAgdGV4dC1bOXB4XSB0cmFuc2l0aW9uLXRyYW5zZm9ybSAke3I/InJvdGF0ZS05MCI6IiJ9YCwiYXJpYS1oaWRkZW4iOiEwLGNoaWxkcmVuOiLilrYifSksKDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZToibWluLXctMCB0cnVuY2F0ZSIsY2hpbGRyZW46aT8oMCxlbi5qc3hzKShlbi5GcmFnbWVudCx7Y2hpbGRyZW46WyJXb3JraW5n4oCmICIsKDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZToiZm9udC1tb25vIHRleHQtYnJhbmQtdGV4dCIsY2hpbGRyZW46cD8ubmFtZT8/InRvb2wifSldfSk6Y30pLCgwLGVuLmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOiJtbC1hdXRvIHNocmluay0wIHRhYnVsYXItbnVtcyIsY2hpbGRyZW46W2UubGVuZ3RoLCIgIiwxPT09ZS5sZW5ndGg/InRvb2wiOiJ0b29scyIsbD9gIFx4YjcgJHtsfWA6IiJdfSldfSksciYmKDAsZW4uanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJib3JkZXItdCBib3JkZXItYnJhbmQtYm9yZGVyIHB4LTIgcHktMSIsY2hpbGRyZW46ZS5tYXAoKGUsdCk9PigwLGVuLmpzeCkoaG4se3N0YXR1czplfSxlLmlkPz90KSl9KV19KX12YXIgaGE9ZS5pKDYzMjA5KSxobz1lLmkoMTc4NTgzKSxocz1lLmkoNTMxMjc4KSxodT1lLmkoMzc3MjcpO2Z1bmN0aW9uIGhsKHthdHRhY2htZW50OmUsb25SZW1vdmU6dH0pe2xldHtraW5kOnIsZmlsZW5hbWU6bixzdGF0dXM6aSxlcnJvcjphLHByZXZpZXdVcmw6b309ZSxzPSJlcnJvciI9PT1pO3JldHVybigwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6YGdyb3VwIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHJvdW5kZWQtbWQgYm9yZGVyIHB5LTEuNSBwbC0yIHByLTcgdGV4dC14cyAke3M/ImJvcmRlci1zdGF0dXMtbmVnYXRpdmUtdGludC1ib3JkZXIgYmctc3RhdHVzLW5lZ2F0aXZlLXRpbnQgdGV4dC1zdGF0dXMtbmVnYXRpdmUiOiJib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWNhcmQgdGV4dC1icmFuZC10ZXh0In1gLHRpdGxlOnM/YTpuLGNoaWxkcmVuOltzPygwLGVuLmpzeCkoaGEuQWxlcnRDaXJjbGUseyJhcmlhLWhpZGRlbiI6ITAsY2xhc3NOYW1lOiJoLTQgdy00IHNocmluay0wIn0pOiJpbWFnZSI9PT1yJiZvPygwLGVuLmpzeCkoImltZyIse3NyYzpvLGFsdDoiIixjbGFzc05hbWU6ImgtOCB3LTggc2hyaW5rLTAgcm91bmRlZCBvYmplY3QtY292ZXIifSk6KDAsZW4uanN4KShoby5GaWxlVGV4dCx7ImFyaWEtaGlkZGVuIjohMCxjbGFzc05hbWU6ImgtNCB3LTQgc2hyaW5rLTAgdGV4dC1icmFuZC10ZXh0LW11dGVkIn0pLCgwLGVuLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6Im1heC13LVsxMXJlbV0gdHJ1bmNhdGUiLGNoaWxkcmVuOnM/YTpufSksInVwbG9hZGluZyI9PT1pJiYoMCxlbi5qc3gpKGhzLkxvYWRlcjIseyJhcmlhLWxhYmVsIjoiVXBsb2FkaW5nIixjbGFzc05hbWU6ImgtMy41IHctMy41IHNocmluay0wIGFuaW1hdGUtc3BpbiB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQifSksKDAsZW4uanN4KSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOnQsImFyaWEtbGFiZWwiOmBSZW1vdmUgJHtufWAsY2xhc3NOYW1lOiJhYnNvbHV0ZSByaWdodC0xIHRvcC0xIHJvdW5kZWQgcC0wLjUgdGV4dC1icmFuZC10ZXh0LW11dGVkIGhvdmVyOmJnLWJyYW5kLWhvdmVyIGhvdmVyOnRleHQtYnJhbmQtdGV4dCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctYnJhbmQtYmx1ZSIsY2hpbGRyZW46KDAsZW4uanN4KShodS5YLHsiYXJpYS1oaWRkZW4iOiEwLGNsYXNzTmFtZToiaC0zLjUgdy0zLjUifSl9KV19KX1mdW5jdGlvbiBoZCh7YXR0YWNobWVudDplfSl7bGV0e2tpbmQ6dCxmaWxlbmFtZTpyLHByZXZpZXdVcmw6bixwdXJnZWQ6aX09ZTtyZXR1cm4gaT8oMCxlbi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWNhcmQgcHktMS41IHBsLTIgcHItMyB0ZXh0LXhzIHRleHQtYnJhbmQtdGV4dC1tdXRlZCIsdGl0bGU6cixjaGlsZHJlbjpbKDAsZW4uanN4KShoby5GaWxlVGV4dCx7ImFyaWEtaGlkZGVuIjohMCxjbGFzc05hbWU6ImgtNCB3LTQgc2hyaW5rLTAifSksKDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZToibWF4LXctWzExcmVtXSB0cnVuY2F0ZSIsY2hpbGRyZW46cn0pLCgwLGVuLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6InNocmluay0wIGl0YWxpYyIsY2hpbGRyZW46ImV4cGlyZWQifSldfSk6bj8iaW1hZ2UiPT09dD8oMCxlbi5qc3gpKCJhIix7aHJlZjpuLHRhcmdldDoiX2JsYW5rIixyZWw6Im5vb3BlbmVyIG5vcmVmZXJyZXIiLHRpdGxlOnIsY2xhc3NOYW1lOiJibG9jayBoLTE2IHctMTYgc2hyaW5rLTAgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMSBmb2N1czpyaW5nLWJyYW5kLWJsdWUiLGNoaWxkcmVuOigwLGVuLmpzeCkoImltZyIse3NyYzpuLGFsdDpyLGNsYXNzTmFtZToiaC1mdWxsIHctZnVsbCBvYmplY3QtY292ZXIifSl9KTooMCxlbi5qc3hzKSgiYSIse2hyZWY6bix0YXJnZXQ6Il9ibGFuayIscmVsOiJub29wZW5lciBub3JlZmVycmVyIix0aXRsZTpyLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1jYXJkIHB5LTEuNSBweC0zIHRleHQteHMgdGV4dC1icmFuZC10ZXh0IGhvdmVyOmJnLWJyYW5kLWhvdmVyIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1icmFuZC1ibHVlIixjaGlsZHJlbjpbKDAsZW4uanN4KShoby5GaWxlVGV4dCx7ImFyaWEtaGlkZGVuIjohMCxjbGFzc05hbWU6ImgtNCB3LTQgc2hyaW5rLTAgdGV4dC1icmFuZC10ZXh0LW11dGVkIn0pLCgwLGVuLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6Im1heC13LVsxMXJlbV0gdHJ1bmNhdGUiLGNoaWxkcmVuOnJ9KV19KTooMCxlbi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWNhcmQgcHktMS41IHBsLTIgcHItMyB0ZXh0LXhzIHRleHQtYnJhbmQtdGV4dC1tdXRlZCIsdGl0bGU6cixjaGlsZHJlbjpbKDAsZW4uanN4KShoby5GaWxlVGV4dCx7ImFyaWEtaGlkZGVuIjohMCxjbGFzc05hbWU6ImgtNCB3LTQgc2hyaW5rLTAifSksKDAsZW4uanN4KSgic3BhbiIse2NsYXNzTmFtZToibWF4LXctWzExcmVtXSB0cnVuY2F0ZSIsY2hpbGRyZW46cn0pLCgwLGVuLmpzeCkoInNwYW4iLHtjbGFzc05hbWU6InNocmluay0wIGl0YWxpYyIsY2hpbGRyZW46InVuYXZhaWxhYmxlIn0pXX0pfWxldCBoYz0oMCxodC5kZWZhdWx0KSgibWljIixbWyJwYXRoIix7ZDoiTTEyIDJhMyAzIDAgMCAwLTMgM3Y3YTMgMyAwIDAgMCA2IDBWNWEzIDMgMCAwIDAtMy0zWiIsa2V5OiIxMzE5NjEifV0sWyJwYXRoIix7ZDoiTTE5IDEwdjJhNyA3IDAgMCAxLTE0IDB2LTIiLGtleToiMXZjNzhiIn1dLFsibGluZSIse3gxOiIxMiIseDI6IjEyIix5MToiMTkiLHkyOiIyMiIsa2V5OiJ4M3ZyNXYifV1dKSxocD0oMCxodC5kZWZhdWx0KSgic3F1YXJlIixbWyJyZWN0Iix7d2lkdGg6IjE4IixoZWlnaHQ6IjE4Iix4OiIzIix5OiIzIixyeDoiMiIsa2V5OiJhZml0djcifV1dKTtmdW5jdGlvbiBobSh7c3RhdGU6ZSxlbGFwc2VkTXM6dCxsZXZlbDpyLGRpc2FibGVkOm4sb25TdGFydDppLG9uU3RvcDphfSl7bGV0IG8scz0icmVjb3JkaW5nIj09PWUsdT0icmVxdWVzdGluZyI9PT1lfHwidHJhbnNjcmliaW5nIj09PWUsbD1zPyJTdG9wIHZvaWNlIGlucHV0IjoicmVxdWVzdGluZyI9PT1lPyJSZXF1ZXN0aW5nIG1pY3JvcGhvbmXigKYiOiJ0cmFuc2NyaWJpbmciPT09ZT8iVHJhbnNjcmliaW5n4oCmIjoiU3RhcnQgdm9pY2UgaW5wdXQiO3JldHVybigwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggc2hyaW5rLTAgaXRlbXMtY2VudGVyIGdhcC0yIixjaGlsZHJlbjpbKDAsZW4uanN4KSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIiwiYXJpYS1sYWJlbCI6bCwiYXJpYS1wcmVzc2VkIjpzLGRpc2FibGVkOm58fHUsb25DbGljazpzP2E6aSxjbGFzc05hbWU6ImdyaWQgc2hyaW5rLTAgcGxhY2UtaXRlbXMtY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgYmctYnJhbmQtY2FyZCBwLTIgdGV4dC1icmFuZC10ZXh0IGhvdmVyOmJnLWJyYW5kLWhvdmVyIGRpc2FibGVkOm9wYWNpdHktNTAiLGNoaWxkcmVuOnU/KDAsZW4uanN4KShocy5Mb2FkZXIyLHtjbGFzc05hbWU6ImgtNSB3LTUgYW5pbWF0ZS1zcGluIn0pOnM/KDAsZW4uanN4KShocCx7Y2xhc3NOYW1lOiJoLTUgdy01IGZpbGwtcmVkLTUwMCB0ZXh0LXJlZC01MDAifSk6KDAsZW4uanN4KShoYyx7Y2xhc3NOYW1lOiJoLTUgdy01In0pfSkscyYmKDAsZW4uanN4cykoInNwYW4iLHtyb2xlOiJzdGF0dXMiLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSB0ZXh0LXhzIHRhYnVsYXItbnVtcyB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQiLGNoaWxkcmVuOlsoMCxlbi5qc3gpKCJzcGFuIix7ImFyaWEtaGlkZGVuIjohMCxjbGFzc05hbWU6ImlubGluZS1ibG9jayBoLTMgdy0xIG9yaWdpbi1ib3R0b20gcm91bmRlZC1mdWxsIGJnLXJlZC01MDAgdHJhbnNpdGlvbi10cmFuc2Zvcm0iLHN0eWxlOnt0cmFuc2Zvcm06YHNjYWxlWSgkeyguMysuNypyKS50b0ZpeGVkKDIpfSlgfX0pLChvPU1hdGguZmxvb3IodC8xZTMpLGAke01hdGguZmxvb3Ioby82MCl9OiR7U3RyaW5nKG8lNjApLnBhZFN0YXJ0KDIsIjAiKX1gKV19KV19KX1sZXQgaGY9WyJhdWRpby93ZWJtO2NvZGVjcz1vcHVzIiwiYXVkaW8vd2VibSIsImF1ZGlvL21wNCIsImF1ZGlvL21wZWciXSxoaD0vKGh0dHBzPzpcL1wvW15cczxdKykvZyxodj0vWy4sOzohPyl9XF0nIiJdKyQvO2Z1bmN0aW9uIGhnKGUpe2lmKCFoaC50ZXN0KGUpKXJldHVybiBlO2hoLmxhc3RJbmRleD0wO2xldCB0PVtdLHI9MDtmb3IobGV0IG4gb2YgZS5tYXRjaEFsbChoaCkpe2xldCBpPW5bMF0sYT1uLmluZGV4LG89aS5yZXBsYWNlKGh2LCIiKSxzPWkuc2xpY2Uoby5sZW5ndGgpO2E+ciYmdC5wdXNoKGUuc2xpY2UocixhKSksbyYmdC5wdXNoKCgwLGVuLmpzeCkoImEiLHtocmVmOm8sdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsY2xhc3NOYW1lOiJ0ZXh0LWJyYW5kLWJsdWUgdW5kZXJsaW5lLW9mZnNldC0yIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOnRleHQtYnJhbmQtYmx1ZS1saWdodCBob3Zlcjp1bmRlcmxpbmUiLGNoaWxkcmVuOm99LGBsaW5rLSR7YX1gKSkscyYmdC5wdXNoKHMpLHI9YStpLmxlbmd0aH1yZXR1cm4gcjxlLmxlbmd0aCYmdC5wdXNoKGUuc2xpY2UocikpLHR9dmFyIGh5PWUuaSg5MjA3NTUpO2FzeW5jIGZ1bmN0aW9uIGhiKGUsdD0xNjApe2lmKCFlLnR5cGUuc3RhcnRzV2l0aCgiaW1hZ2UvIikpcmV0dXJuIG51bGw7bGV0IHI9YXdhaXQgY3JlYXRlSW1hZ2VCaXRtYXAoZSkuY2F0Y2goKCk9Pm51bGwpO2lmKCFyKXJldHVybiBudWxsO3RyeXtsZXQgZT1NYXRoLm1pbigxLHQvTWF0aC5tYXgoci53aWR0aCxyLmhlaWdodCkpLG49TWF0aC5tYXgoMSxNYXRoLnJvdW5kKHIud2lkdGgqZSkpLGk9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKHIuaGVpZ2h0KmUpKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Eud2lkdGg9bixhLmhlaWdodD1pO2xldCBvPWEuZ2V0Q29udGV4dCgiMmQiKTtpZighbylyZXR1cm4gbnVsbDtyZXR1cm4gby5kcmF3SW1hZ2UociwwLDAsbixpKSxhd2FpdCBuZXcgUHJvbWlzZShlPT5hLnRvQmxvYih0PT5lKHQpLCJpbWFnZS93ZWJwIiwuOCkpfWNhdGNoe3JldHVybiBudWxsfWZpbmFsbHl7ci5jbG9zZSgpfX1sZXQgaF89WyJpbWFnZS9wbmciLCJpbWFnZS9qcGVnIiwiaW1hZ2Uvd2VicCJdO2Z1bmN0aW9uIGh4KGUpe3JldHVybiBlLmF0dGFjaG1lbnRzPz9bXX1sZXQgaCQ9ImNoYXQtYXR0YWNobWVudHMiO2FzeW5jIGZ1bmN0aW9uIGhrKGUsdCl7dHJ5e2xldCByPWF3YWl0IGUuanNvbigpO3JldHVybiJzdHJpbmciPT10eXBlb2Ygcj8uZXJyb3I/ci5lcnJvcjp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiBodyhlKXtlLnByZXZpZXdVcmw/LnN0YXJ0c1dpdGgoImJsb2I6IikmJlVSTC5yZXZva2VPYmplY3RVUkwoZS5wcmV2aWV3VXJsKX1mdW5jdGlvbiBoSSh7aW5pdGlhbE1lc3NhZ2VzOmU9W10saW5pdGlhbFRocmVhZElkOnQ9bnVsbCxvblRocmVhZElkQ2hhbmdlOnJ9KXtsZXQgbj0oMCxlaS51c2VSZWYpKHQpLGk9KDAsZWkudXNlUmVmKShyKTsoMCxlaS51c2VFZmZlY3QpKCgpPT57aS5jdXJyZW50PXJ9LFtyXSk7bGV0IGE9KDAsZWEudXNlUGF0aG5hbWUpKCksbz0oMCxlaS51c2VSZWYpKGEpOygwLGVpLnVzZUVmZmVjdCkoKCk9PntvLmN1cnJlbnQ9YX0sW2FdKTtsZXQgcz0oMCxlaS51c2VSZWYpKFtdKSx7bWVzc2FnZXM6dSxzZW5kTWVzc2FnZTpsLHN0YXR1czpkLHN0b3A6YyxzZXRNZXNzYWdlczpwfT1mdW5jdGlvbih7ZXhwZXJpbWVudGFsX3Rocm90dGxlOmUscmVzdW1lOnQ9ITEsLi4ucn09e30pe2xldCBuPSgwLGVpLnVzZVJlZikoImNoYXQiaW4gcj97fTp7b25Ub29sQ2FsbDpyLm9uVG9vbENhbGwsb25EYXRhOnIub25EYXRhLG9uRmluaXNoOnIub25GaW5pc2gsb25FcnJvcjpyLm9uRXJyb3Isc2VuZEF1dG9tYXRpY2FsbHlXaGVuOnIuc2VuZEF1dG9tYXRpY2FsbHlXaGVufSk7ImNoYXQiaW4gcnx8KG4uY3VycmVudD17b25Ub29sQ2FsbDpyLm9uVG9vbENhbGwsb25EYXRhOnIub25EYXRhLG9uRmluaXNoOnIub25GaW5pc2gsb25FcnJvcjpyLm9uRXJyb3Isc2VuZEF1dG9tYXRpY2FsbHlXaGVuOnIuc2VuZEF1dG9tYXRpY2FsbHlXaGVufSk7bGV0IGk9ey4uLnIsb25Ub29sQ2FsbDplPT57dmFyIHQscjtyZXR1cm4gbnVsbD09KHI9KHQ9bi5jdXJyZW50KS5vblRvb2xDYWxsKT92b2lkIDA6ci5jYWxsKHQsZSl9LG9uRGF0YTplPT57dmFyIHQscjtyZXR1cm4gbnVsbD09KHI9KHQ9bi5jdXJyZW50KS5vbkRhdGEpP3ZvaWQgMDpyLmNhbGwodCxlKX0sb25GaW5pc2g6ZT0+e3ZhciB0LHI7cmV0dXJuIG51bGw9PShyPSh0PW4uY3VycmVudCkub25GaW5pc2gpP3ZvaWQgMDpyLmNhbGwodCxlKX0sb25FcnJvcjplPT57dmFyIHQscjtyZXR1cm4gbnVsbD09KHI9KHQ9bi5jdXJyZW50KS5vbkVycm9yKT92b2lkIDA6ci5jYWxsKHQsZSl9LHNlbmRBdXRvbWF0aWNhbGx5V2hlbjplPT57dmFyIHQscixpO3JldHVybiBudWxsIT0oaT1udWxsPT0ocj0odD1uLmN1cnJlbnQpLnNlbmRBdXRvbWF0aWNhbGx5V2hlbik/dm9pZCAwOnIuY2FsbCh0LGUpKSYmaX19LGE9KDAsZWkudXNlUmVmKSgiY2hhdCJpbiByP3IuY2hhdDpuZXcgaGUoaSkpOygiY2hhdCJpbiByJiZyLmNoYXQhPT1hLmN1cnJlbnR8fCJpZCJpbiByJiZhLmN1cnJlbnQuaWQhPT1yLmlkKSYmKGEuY3VycmVudD0iY2hhdCJpbiByP3IuY2hhdDpuZXcgaGUoaSkpO2xldCBvPSgwLGVpLnVzZUNhbGxiYWNrKSh0PT5hLmN1cnJlbnRbIn5yZWdpc3Rlck1lc3NhZ2VzQ2FsbGJhY2siXSh0LGUpLFtlLGEuY3VycmVudC5pZF0pLHM9KDAsZWkudXNlU3luY0V4dGVybmFsU3RvcmUpKG8sKCk9PmEuY3VycmVudC5tZXNzYWdlcywoKT0+YS5jdXJyZW50Lm1lc3NhZ2VzKSx1PSgwLGVpLnVzZVN5bmNFeHRlcm5hbFN0b3JlKShhLmN1cnJlbnRbIn5yZWdpc3RlclN0YXR1c0NhbGxiYWNrIl0sKCk9PmEuY3VycmVudC5zdGF0dXMsKCk9PmEuY3VycmVudC5zdGF0dXMpLGw9KDAsZWkudXNlU3luY0V4dGVybmFsU3RvcmUpKGEuY3VycmVudFsifnJlZ2lzdGVyRXJyb3JDYWxsYmFjayJdLCgpPT5hLmN1cnJlbnQuZXJyb3IsKCk9PmEuY3VycmVudC5lcnJvciksZD0oMCxlaS51c2VDYWxsYmFjaykoZT0+eyJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1lKGEuY3VycmVudC5tZXNzYWdlcykpLGEuY3VycmVudC5tZXNzYWdlcz1lfSxbYV0pO3JldHVybigwLGVpLnVzZUVmZmVjdCkoKCk9Pnt0JiZhLmN1cnJlbnQucmVzdW1lU3RyZWFtKCl9LFt0LGFdKSx7aWQ6YS5jdXJyZW50LmlkLG1lc3NhZ2VzOnMsc2V0TWVzc2FnZXM6ZCxzZW5kTWVzc2FnZTphLmN1cnJlbnQuc2VuZE1lc3NhZ2UscmVnZW5lcmF0ZTphLmN1cnJlbnQucmVnZW5lcmF0ZSxjbGVhckVycm9yOmEuY3VycmVudC5jbGVhckVycm9yLHN0b3A6YS5jdXJyZW50LnN0b3AsZXJyb3I6bCxyZXN1bWVTdHJlYW06YS5jdXJyZW50LnJlc3VtZVN0cmVhbSxzdGF0dXM6dSxhZGRUb29sUmVzdWx0OmEuY3VycmVudC5hZGRUb29sT3V0cHV0LGFkZFRvb2xPdXRwdXQ6YS5jdXJyZW50LmFkZFRvb2xPdXRwdXQsYWRkVG9vbEFwcHJvdmFsUmVzcG9uc2U6YS5jdXJyZW50LmFkZFRvb2xBcHByb3ZhbFJlc3BvbnNlfX0oe3RyYW5zcG9ydDooMCxlaS51c2VNZW1vKSgoKT0+e3ZhciBlO3JldHVybiBuZXcgZnAoe2FwaToiL2FwaS9jaGF0IixwcmVwYXJlU2VuZE1lc3NhZ2VzUmVxdWVzdDooe21lc3NhZ2VzOmUsYm9keTp0fSk9Pih7Ym9keTp7Li4udCxtZXNzYWdlczplLHRocmVhZElkOm4uY3VycmVudD8/dm9pZCAwLHBhZ2VDb250ZXh0OntwYXRobmFtZTpvLmN1cnJlbnR9LC4uLnMuY3VycmVudC5sZW5ndGg+MD97YXR0YWNobWVudElkczpzLmN1cnJlbnR9Ont9fX0pLGZldGNoOihlPWU9PmkuY3VycmVudD8uKGUpLGFzeW5jKHQscik9PntsZXQgaT1hd2FpdCBnbG9iYWxUaGlzLmZldGNoKHQsciksYT1pLmhlYWRlcnMuZ2V0KCJ4LXNwbi10aHJlYWQtaWQiKTtyZXR1cm4gYSYmKG4uY3VycmVudD1hLGU/LihhKSksaX0pfSl9LFtdKSxtZXNzYWdlczplfSksW20sZl09KDAsZWkudXNlU3RhdGUpKCIiKSxbaCx2XT0oMCxlaS51c2VTdGF0ZSkoITEpLGc9InN1Ym1pdHRlZCI9PT1kfHwic3RyZWFtaW5nIj09PWQseT0oMCxlaS51c2VSZWYpKG51bGwpOygwLGVpLnVzZUVmZmVjdCkoKCk9PntsZXQgZT1mdW5jdGlvbihlLHQpe2lmKCF0fHwwPT09dC5sZW5ndGgpcmV0dXJuIG51bGw7bGV0IHI9ZVtlLmxlbmd0aC0xXTtpZighcnx8InVzZXIiIT09ci5yb2xlKXJldHVybiBudWxsO2xldCBuPWUuc2xpY2UoKTtyZXR1cm4gbltuLmxlbmd0aC0xXT17Li4ucixhdHRhY2htZW50czp0fSxufSh1LHkuY3VycmVudCk7ZSYmKHkuY3VycmVudD1udWxsLHAoZSkpfSxbdSxwXSk7bGV0W2IsX109KDAsZWkudXNlU3RhdGUpKFtdKSxbeCwkXT0oMCxlaS51c2VTdGF0ZSkoITEpLGs9KDAsZWkudXNlUmVmKShudWxsKSx3PSgwLGVpLnVzZU1lbW8pKCgpPT4oMCxoeS5jcmVhdGVTdXBhYmFzZUJyb3dzZXJDbGllbnQpKCksW10pLEk9Yi5zb21lKGU9PiJ1cGxvYWRpbmciPT09ZS5zdGF0dXMpLFM9Yi5zb21lKGU9PiJyZWFkeSI9PT1lLnN0YXR1cyksTz0oMCxlaS51c2VSZWYpKGIpO08uY3VycmVudD1iLCgwLGVpLnVzZUVmZmVjdCkoKCk9PigpPT5PLmN1cnJlbnQuZm9yRWFjaChodyksW10pO2xldCBqPSgwLGVpLnVzZVJlZikobmV3IFNldCk7YXN5bmMgZnVuY3Rpb24gRShlLHQscil7dHJ5e2xldCBuPSJpbWFnZSI9PT1yP2F3YWl0IGhiKHQpOm51bGwsaT1hd2FpdCBmZXRjaCgiL2FwaS9jaGF0L2F0dGFjaG1lbnRzL2NyZWF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7ImNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtmaWxlbmFtZTp0Lm5hbWUsbWltZTp0LnR5cGUsc2l6ZUJ5dGVzOnQuc2l6ZSxoYXNUaHVtYm5haWw6ISFufSl9KTtpZighaS5vayl0aHJvdyBFcnJvcihhd2FpdCBoayhpLCJVcGxvYWQgY291bGQgbm90IHN0YXJ0LiIpKTtsZXQgYT1hd2FpdCBpLmpzb24oKTtpZigoYXdhaXQgdy5zdG9yYWdlLmZyb20oaCQpLnVwbG9hZFRvU2lnbmVkVXJsKGEuc3RvcmFnZVBhdGgsYS51cGxvYWRUb2tlbix0KSkuZXJyb3J8fG4mJmEudGh1bWJQYXRoJiZhLnRodW1iVG9rZW4mJihhd2FpdCB3LnN0b3JhZ2UuZnJvbShoJCkudXBsb2FkVG9TaWduZWRVcmwoYS50aHVtYlBhdGgsYS50aHVtYlRva2VuLG4pKS5lcnJvcil0aHJvdyBFcnJvcigiVXBsb2FkIGZhaWxlZC4iKTtsZXQgbz1hd2FpdCBmZXRjaCgiL2FwaS9jaGF0L2F0dGFjaG1lbnRzL3JlZ2lzdGVyIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiY29udGVudC10eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe2F0dGFjaG1lbnRJZDphLmF0dGFjaG1lbnRJZH0pfSk7aWYoIW8ub2spdGhyb3cgRXJyb3IoYXdhaXQgaGsobywiVXBsb2FkIGNvdWxkIG5vdCBiZSB2ZXJpZmllZC4iKSk7bGV0IHM9YXdhaXQgby5qc29uKCk7Xyh0PT50Lm1hcCh0PT50LmxvY2FsSWQ9PT1lP3suLi50LHN0YXR1czoicmVhZHkiLHNlcnZlcklkOnMuaWQsc2VydmVyUHJldmlld1VybDpzLnByZXZpZXdVcmx9OnQpKX1jYXRjaChyKXtsZXQgdD1yIGluc3RhbmNlb2YgRXJyb3I/ci5tZXNzYWdlOiJVcGxvYWQgZmFpbGVkLiI7XyhyPT5yLm1hcChyPT5yLmxvY2FsSWQ9PT1lP3suLi5yLHN0YXR1czoiZXJyb3IiLGVycm9yOnR9OnIpKX19ZnVuY3Rpb24gWihlKXtpZihnKXJldHVybjtsZXQgdD1BcnJheS5mcm9tKGUpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm47bGV0e2FjY2VwdGVkOnIscmVqZWN0ZWQ6bn09ZnVuY3Rpb24oZSx0KXtsZXQgcj1bXSxuPVtdLGk9TWF0aC5tYXgoMCwzLWUpO2ZvcihsZXQgZSBvZiB0KXtpZihpPD0wKXtuLnB1c2goe2ZpbGVuYW1lOmUubmFtZSxlcnJvcjoiVXAgdG8gMyBhdHRhY2htZW50cyBwZXIgbWVzc2FnZS4ifSk7Y29udGludWV9bGV0IHQ9ZnVuY3Rpb24oZSl7dmFyIHQ7bGV0IHI9KHQ9ZS5taW1lLGhfLmluY2x1ZGVzKHQpPyJpbWFnZSI6ImFwcGxpY2F0aW9uL3BkZiI9PT10PyJwZGYiOm51bGwpO2lmKCFyKXJldHVybntvazohMSxlcnJvcjoiVW5zdXBwb3J0ZWQgZmlsZSB0eXBlLiBBbGxvd2VkOiBQTkcsIEpQRUcsIFdlYlAsIFBERi4ifTtsZXQgbj0iaW1hZ2UiPT09cj81MjQyODgwOjB4ZjAwMDAwO2lmKGUuc2l6ZUJ5dGVzPm4pe2xldCBlPU1hdGgucm91bmQobi8xMDQ4NTc2KTtyZXR1cm57b2s6ITEsZXJyb3I6YEZpbGUgdG9vIGxhcmdlLiBNYXggJHtlfSBNQiBmb3IgJHsiaW1hZ2UiPT09cj8iaW1hZ2VzIjoiUERGcyJ9LmB9fXJldHVybntvazohMCxraW5kOnJ9fSh7bWltZTplLnR5cGUsc2l6ZUJ5dGVzOmUuc2l6ZX0pO2lmKCF0Lm9rKXtuLnB1c2goe2ZpbGVuYW1lOmUubmFtZSxlcnJvcjp0LmVycm9yfSk7Y29udGludWV9ci5wdXNoKHtmaWxlOmUsa2luZDp0LmtpbmR9KSxpLT0xfXJldHVybnthY2NlcHRlZDpyLHJlamVjdGVkOm59fShiLmZpbHRlcihlPT4iZXJyb3IiIT09ZS5zdGF0dXMpLmxlbmd0aCx0KSxpPW4ubWFwKGU9Pih7bG9jYWxJZDpjcnlwdG8ucmFuZG9tVVVJRCgpLGtpbmQ6InBkZiIsZmlsZW5hbWU6ZS5maWxlbmFtZSxzdGF0dXM6ImVycm9yIixlcnJvcjplLmVycm9yfSkpLGE9ci5tYXAoKHtmaWxlOmUsa2luZDp0fSk9PntsZXQgcj1jcnlwdG8ucmFuZG9tVVVJRCgpLG49ImltYWdlIj09PXQ/VVJMLmNyZWF0ZU9iamVjdFVSTChlKTp2b2lkIDA7cmV0dXJue2NoaXA6e2xvY2FsSWQ6cixraW5kOnQsZmlsZW5hbWU6ZS5uYW1lLHN0YXR1czoidXBsb2FkaW5nIixwcmV2aWV3VXJsOm59LGZpbGU6ZSxraW5kOnR9fSk7Zm9yKGxldHtjaGlwOmUsZmlsZTp0LGtpbmQ6cn1vZihfKGU9PlsuLi5lLC4uLmksLi4uYS5tYXAoZT0+ZS5jaGlwKV0pLGEpKUUoZS5sb2NhbElkLHQscil9KDAsZWkudXNlRWZmZWN0KSgoKT0+e2xldCBlPWouY3VycmVudDtyZXR1cm4oKT0+ZS5mb3JFYWNoKGU9PlVSTC5yZXZva2VPYmplY3RVUkwoZSkpfSxbXSk7bGV0IE49KDAsZWkudXNlUmVmKShudWxsKSxUPSgwLGVpLnVzZVJlZikoITApOygwLGVpLnVzZUVmZmVjdCkoKCk9PntsZXQgZTtULmN1cnJlbnQmJihlPU4uY3VycmVudCkmJihlLnNjcm9sbFRvcD1lLnNjcm9sbEhlaWdodCl9LFt1LGRdKTtsZXQgej0oMCxlaS51c2VSZWYpKG51bGwpOygwLGVpLnVzZUxheW91dEVmZmVjdCkoKCk9PntsZXQgZT16LmN1cnJlbnQ7ZSYmKGUuc3R5bGUuaGVpZ2h0PSJhdXRvIixlLnN0eWxlLmhlaWdodD1gJHtNYXRoLm1pbihlLnNjcm9sbEhlaWdodCwxNjgpfXB4YCxlLnN0eWxlLm92ZXJmbG93WT1lLnNjcm9sbEhlaWdodD4xNjg/ImF1dG8iOiJoaWRkZW4iKX0sW21dKTtsZXQgUD0oMCxlaS51c2VSZWYpKCExKTsoMCxlaS51c2VFZmZlY3QpKCgpPT57UC5jdXJyZW50JiYhZyYmei5jdXJyZW50Py5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLFAuY3VycmVudD1nfSxbZ10pO2xldCBBPWZ1bmN0aW9uKGUpe2xldCB0PWUubWF4TXM/PzEyZTQsW3Isbl09KDAsZWkudXNlU3RhdGUpKCJpZGxlIiksW2ksYV09KDAsZWkudXNlU3RhdGUpKDApLFtvLHNdPSgwLGVpLnVzZVN0YXRlKSgwKSxbdSxsXT0oMCxlaS51c2VTdGF0ZSkobnVsbCksW2QsY109KDAsZWkudXNlU3RhdGUpKCExKTsoMCxlaS51c2VFZmZlY3QpKCgpPT5jKCEwKSxbXSk7bGV0IHA9ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJiEhbmF2aWdhdG9yLm1lZGlhRGV2aWNlcz8uZ2V0VXNlck1lZGlhJiYidW5kZWZpbmVkIiE9dHlwZW9mIE1lZGlhUmVjb3JkZXIsbT0oMCxlaS51c2VSZWYpKG51bGwpLGY9KDAsZWkudXNlUmVmKShudWxsKSxoPSgwLGVpLnVzZVJlZikoW10pLHY9KDAsZWkudXNlUmVmKShudWxsKSxnPSgwLGVpLnVzZVJlZikobnVsbCkseT0oMCxlaS51c2VSZWYpKG51bGwpLGI9KDAsZWkudXNlUmVmKShudWxsKSxfPSgwLGVpLnVzZVJlZikoMCkseD0oMCxlaS51c2VSZWYpKCExKSwkPSgwLGVpLnVzZVJlZikoMCksaz0oMCxlaS51c2VSZWYpKGUub25SZXN1bHQpOygwLGVpLnVzZUVmZmVjdCkoKCk9PntrLmN1cnJlbnQ9ZS5vblJlc3VsdH0sW2Uub25SZXN1bHRdKTtsZXQgdz0oMCxlaS51c2VDYWxsYmFjaykoKCk9Pnt5LmN1cnJlbnQmJihjbGVhclRpbWVvdXQoeS5jdXJyZW50KSx5LmN1cnJlbnQ9bnVsbCksYi5jdXJyZW50JiYoY2xlYXJJbnRlcnZhbChiLmN1cnJlbnQpLGIuY3VycmVudD1udWxsKSxudWxsIT1nLmN1cnJlbnQmJihjYW5jZWxBbmltYXRpb25GcmFtZShnLmN1cnJlbnQpLGcuY3VycmVudD1udWxsKSxmLmN1cnJlbnQ/LmdldFRyYWNrcygpLmZvckVhY2goZT0+ZS5zdG9wKCkpLGYuY3VycmVudD1udWxsLHYuY3VycmVudD8uY2xvc2UoKS5jYXRjaCgoKT0+e30pLHYuY3VycmVudD1udWxsfSxbXSk7KDAsZWkudXNlRWZmZWN0KSgoKT0+KHguY3VycmVudD0hMSwoKT0+e3guY3VycmVudD0hMCwkLmN1cnJlbnQrPTEsdygpfSksW3ddKTtsZXQgST0oMCxlaS51c2VDYWxsYmFjaykoZT0+e3RyeXtsZXQgdD13aW5kb3cuQXVkaW9Db250ZXh0Pz93aW5kb3cud2Via2l0QXVkaW9Db250ZXh0O2lmKCF0KXJldHVybjtsZXQgcj1uZXcgdDt2LmN1cnJlbnQ9cjtsZXQgbj1yLmNyZWF0ZUFuYWx5c2VyKCk7bi5mZnRTaXplPTI1NixyLmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlKGUpLmNvbm5lY3Qobik7bGV0IGk9bmV3IFVpbnQ4QXJyYXkobi5mcmVxdWVuY3lCaW5Db3VudCksYT0oKT0+e24uZ2V0Qnl0ZVRpbWVEb21haW5EYXRhKGkpO2xldCBlPTA7Zm9yKGxldCB0PTA7dDxpLmxlbmd0aDt0KyspZT1NYXRoLm1heChlLE1hdGguYWJzKGlbdF0tMTI4KSk7cyhNYXRoLm1pbigxLGUvMTI4KSksZy5jdXJyZW50PXJlcXVlc3RBbmltYXRpb25GcmFtZShhKX07Zy5jdXJyZW50PXJlcXVlc3RBbmltYXRpb25GcmFtZShhKX1jYXRjaHt9fSxbXSksUz0oMCxlaS51c2VDYWxsYmFjaykoYXN5bmMgZT0+e3RyeXt2YXIgdDtsZXQgcj1uZXcgRm9ybURhdGE7ci5hcHBlbmQoImF1ZGlvIixlLGBkaWN0YXRpb24uJHsodD1lLnR5cGUpLmluY2x1ZGVzKCJtcDQiKT8ibXA0Ijp0LmluY2x1ZGVzKCJtcGVnIik/Im1wMyI6IndlYm0ifWApO2xldCBpPWF3YWl0IGZldGNoKCIvYXBpL2NoYXQvdHJhbnNjcmliZSIse21ldGhvZDoiUE9TVCIsYm9keTpyfSk7aWYoIWkub2spdGhyb3cgRXJyb3IoYHRyYW5zY3JpYmUgJHtpLnN0YXR1c31gKTtsZXR7dGV4dDphfT1hd2FpdCBpLmpzb24oKSxvPShhPz8iIikudHJpbSgpO2lmKCFvKXtuKCJlcnJvciIpLGwoIkRpZG4ndCBjYXRjaCB0aGF0IOKAlCB0cnkgYWdhaW4uIik7cmV0dXJufWsuY3VycmVudChvKSxuKCJpZGxlIiksbChudWxsKX1jYXRjaHtuKCJlcnJvciIpLGwoIkNvdWxkbid0IHRyYW5zY3JpYmUgdGhhdCDigJQgdHJ5IGFnYWluLiIpfX0sW10pLE89KDAsZWkudXNlQ2FsbGJhY2spKCgpPT57aWYoIXB8fCJpZGxlIiE9PXImJiJlcnJvciIhPT1yKXJldHVybjtsZXQgZT0rKyQuY3VycmVudDtsKG51bGwpLG4oInJlcXVlc3RpbmciKSxuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ITB9KS50aGVuKHI9PntpZih4LmN1cnJlbnR8fGUhPT0kLmN1cnJlbnQpcmV0dXJuIHZvaWQgci5nZXRUcmFja3MoKS5mb3JFYWNoKGU9PmUuc3RvcCgpKTtmLmN1cnJlbnQ9cjtsZXQgaT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgTWVkaWFSZWNvcmRlcilyZXR1cm4gaGYuZmluZChlPT5NZWRpYVJlY29yZGVyLmlzVHlwZVN1cHBvcnRlZD8uKGUpKX0oKSxvPW5ldyBNZWRpYVJlY29yZGVyKHIsaT97bWltZVR5cGU6aX06dm9pZCAwKTttLmN1cnJlbnQ9byxoLmN1cnJlbnQ9W107bGV0IHM9ITE7by5vbmRhdGFhdmFpbGFibGU9ZT0+e2UuZGF0YS5zaXplPjAmJmguY3VycmVudC5wdXNoKGUuZGF0YSl9LG8ub25zdG9wPSgpPT57aWYocylyZXR1cm47bGV0IGU9by5taW1lVHlwZXx8aXx8ImF1ZGlvL3dlYm0iLHQ9bmV3IEJsb2IoaC5jdXJyZW50LHt0eXBlOmV9KTt3KCksUyh0KX0sby5vbmVycm9yPSgpPT57cz0hMCx3KCksbigiZXJyb3IiKSxsKCJSZWNvcmRpbmcgZmFpbGVkIOKAlCB0cnkgYWdhaW4uIil9LG8uc3RhcnQoKSxfLmN1cnJlbnQ9RGF0ZS5ub3coKSxhKDApLG4oInJlY29yZGluZyIpLGIuY3VycmVudD1zZXRJbnRlcnZhbCgoKT0+YShEYXRlLm5vdygpLV8uY3VycmVudCksMjAwKSx5LmN1cnJlbnQ9c2V0VGltZW91dCgoKT0+e20uY3VycmVudCYmImluYWN0aXZlIiE9PW0uY3VycmVudC5zdGF0ZSYmKG4oInRyYW5zY3JpYmluZyIpLG0uY3VycmVudC5zdG9wKCkpfSx0KSxJKHIpfSkuY2F0Y2goZT0+e3coKSxuKCJlcnJvciIpLGwoZSBpbnN0YW5jZW9mIEVycm9yJiYiTm90QWxsb3dlZEVycm9yIj09PWUubmFtZT8iTWljcm9waG9uZSBibG9ja2VkIOKAlCBlbmFibGUgaXQgaW4geW91ciBicm93c2VyIHNldHRpbmdzLiI6IkNvdWxkIG5vdCBhY2Nlc3MgdGhlIG1pY3JvcGhvbmUuIil9KX0sW3Ascix0LHcsSSxTXSksaj0oMCxlaS51c2VDYWxsYmFjaykoKCk9PnsicmVjb3JkaW5nIj09PXImJihuKCJ0cmFuc2NyaWJpbmciKSxtLmN1cnJlbnQ/LnN0b3AoKSl9LFtyXSk7cmV0dXJue3N0YXRlOnIsaXNTdXBwb3J0ZWQ6cCxlbGFwc2VkTXM6aSxsZXZlbDpvLGVycm9yOnUsc3RhcnQ6TyxzdG9wOmp9fSh7b25SZXN1bHQ6ZT0+e2YodD0+dD9gJHt0LnJlcGxhY2UoL1xzKyQvLCIiKX0gJHtlfWA6ZSkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT56LmN1cnJlbnQ/LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSkpfX0pLFU9InJlY29yZGluZyI9PT1BLnN0YXRlfHwidHJhbnNjcmliaW5nIj09PUEuc3RhdGU7ZnVuY3Rpb24gQygpe2xldCBlPW0udHJpbSgpO2lmKCFlJiYhU3x8Z3x8VXx8SSlyZXR1cm47bGV0IHQ9Yi5maWx0ZXIoZT0+InJlYWR5Ij09PWUuc3RhdHVzJiYhIWUuc2VydmVySWQpO3MuY3VycmVudD10Lm1hcChlPT5lLnNlcnZlcklkKTtsZXQgcj10Lm1hcChlPT57bGV0IHQ9ZS5wcmV2aWV3VXJsPz9lLnNlcnZlclByZXZpZXdVcmw/P251bGw7cmV0dXJuIGUucHJldmlld1VybCYmai5jdXJyZW50LmFkZChlLnByZXZpZXdVcmwpLHtpZDplLnNlcnZlcklkLGtpbmQ6ZS5raW5kLGZpbGVuYW1lOmUuZmlsZW5hbWUscHJldmlld1VybDp0LHB1cmdlZDohMX19KTt5LmN1cnJlbnQ9ci5sZW5ndGg+MD9yOm51bGwsVC5jdXJyZW50PSEwLHYoITEpLGwoe3RleHQ6ZX0pLGYoIiIpLGIuZm9yRWFjaChlPT57InJlYWR5Ij09PWUuc3RhdHVzJiZlLnNlcnZlcklkfHxodyhlKX0pLF8oW10pfXJldHVybigwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaC1mdWxsIG1pbi1oLTAgbWluLXctMCBmbGV4LWNvbCIsY2hpbGRyZW46WygwLGVuLmpzeCkoImRpdiIse3JlZjpOLG9uU2Nyb2xsOmZ1bmN0aW9uKCl7bGV0IGU9Ti5jdXJyZW50O2UmJihULmN1cnJlbnQ9ZS5zY3JvbGxIZWlnaHQtZS5zY3JvbGxUb3AtZS5jbGllbnRIZWlnaHQ8PTgwKX0sY2xhc3NOYW1lOiJtaW4taC0wIG1pbi13LTAgZmxleC0xIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBwLTYiLGNoaWxkcmVuOigwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Im14LWF1dG8gZmxleCBtYXgtdy0zeGwgZmxleC1jb2wgZ2FwLTQiLGNoaWxkcmVuOlswPT09dS5sZW5ndGgmJigwLGVuLmpzeCkoInAiLHtjbGFzc05hbWU6InRleHQtc20gdGV4dC1icmFuZC10ZXh0LW11dGVkIixjaGlsZHJlbjoiQXNrIGFib3V0IHlvdXIgdGVycml0b3J5LCBhbiBhY2NvdW50LCBhIGJyaWVmLCBvciB5b3VyIFRlcnJpdG9yeSBTdHJhdGVneS4ifSksdS5tYXAoZT0+e2xldCB0O3JldHVybiJ1c2VyIj09PWUucm9sZT8odD1lLnBhcnRzLmZpbHRlcihlPT4idGV4dCI9PT1lLnR5cGUpLm1hcChlPT5lLnRleHQpLmpvaW4oIiIpLCgwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggbWluLXctMCBmbGV4LWNvbCBpdGVtcy1lbmQgZ2FwLTEuNSIsY2hpbGRyZW46W3QudHJpbSgpLmxlbmd0aD4wJiYoMCxlbi5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Im1heC13LVs3OCVdIHdoaXRlc3BhY2UtcHJlLXdyYXAgYnJlYWstd29yZHMgcm91bmRlZC0yeGwgcm91bmRlZC1ici1zbSBib3JkZXIgYm9yZGVyLVtjb2xvci1taXgoaW5fc3JnYix2YXIoLS1wcmltYXJ5KV8yNSUsdHJhbnNwYXJlbnQpXSBiZy1bY29sb3ItbWl4KGluX3NyZ2IsdmFyKC0tcHJpbWFyeSlfMTAlLHRyYW5zcGFyZW50KV0gcHgtNCBweS0yLjUgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQiLGNoaWxkcmVuOmhnKHQpfSksaHgoZSkubGVuZ3RoPjAmJigwLGVuLmpzeCkoImRpdiIse2NsYXNzTmFtZToiZmxleCBtYXgtdy1bNzglXSBmbGV4LXdyYXAganVzdGlmeS1lbmQgZ2FwLTIiLGNoaWxkcmVuOmh4KGUpLm1hcChlPT4oMCxlbi5qc3gpKGhkLHthdHRhY2htZW50OmV9LGUuaWQpKX0pXX0sZS5pZCkpOigwLGVuLmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6Im1pbi13LTAgc3BhY2UteS0xIixjaGlsZHJlbjpbKDAsZW4uanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1icmFuZC10ZXh0LW11dGVkIixjaGlsZHJlbjoiQWdlbnQifSksKGZ1bmN0aW9uKGUpe2xldCB0PVtdO2ZvcihsZXQgciBvZiBlKWlmKCJ0ZXh0Ij09PXIudHlwZSl7bGV0IGU9InN0cmluZyI9PXR5cGVvZiByLnRleHQ/ci50ZXh0OiIiO2lmKCFlKWNvbnRpbnVlO3QucHVzaCh7a2luZDoidGV4dCIsdGV4dDplfSl9ZWxzZSBpZigiZGF0YS10b29sc3RhdHVzIj09PXIudHlwZSl7bGV0IGU9ci5kYXRhPz97fSxuPXsuLi4ic3RyaW5nIj09dHlwZW9mIHIuaWQ/e2lkOnIuaWR9Ont9LC4uLmV9LGk9dFt0Lmxlbmd0aC0xXTtpPy5raW5kPT09ImFjdGl2aXR5Ij9pLml0ZW1zLnB1c2gobik6dC5wdXNoKHtraW5kOiJhY3Rpdml0eSIsaXRlbXM6W25dfSl9ZWxzZSJkYXRhLXN0b3BwZWQiPT09ci50eXBlJiZ0LnB1c2goe2tpbmQ6InN0b3BwZWQifSk7cmV0dXJuIHR9KShlLnBhcnRzKS5tYXAoKGUsdCk9PiJ0ZXh0Ij09PWUua2luZD8oMCxlbi5qc3gpKCJwIix7Y2xhc3NOYW1lOiJ3aGl0ZXNwYWNlLXByZS13cmFwIGJyZWFrLXdvcmRzIHRleHQtc20gdGV4dC1icmFuZC10ZXh0IixjaGlsZHJlbjpoZyhlLnRleHQpfSx0KToiYWN0aXZpdHkiPT09ZS5raW5kPygwLGVuLmpzeCkoaGkse2l0ZW1zOmUuaXRlbXN9LHQpOigwLGVuLmpzeCkoImRpdiIse2NsYXNzTmFtZToidGV4dC14cyBpdGFsaWMgdGV4dC1icmFuZC10ZXh0LW11dGVkIixjaGlsZHJlbjoi4o+5IFN0b3BwZWQgYnkgeW91In0sdCkpXX0sZS5pZCl9KSxoJiYoMCxlbi5qc3gpKCJkaXYiLHtyb2xlOiJzdGF0dXMiLGNsYXNzTmFtZToidGV4dC14cyBpdGFsaWMgdGV4dC1icmFuZC10ZXh0LW11dGVkIixjaGlsZHJlbjoi4o+5IFN0b3BwZWQgYnkgeW91In0pXX0pfSksKDAsZW4uanN4cykoImZvcm0iLHtvblN1Ym1pdDpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksQygpfSxvbkRyYWdPdmVyOmZ1bmN0aW9uKGUpe2d8fEFycmF5LmZyb20oZS5kYXRhVHJhbnNmZXIudHlwZXMpLmluY2x1ZGVzKCJGaWxlcyIpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLCQoITApKX0sb25EcmFnTGVhdmU6ZnVuY3Rpb24oZSl7ZS5jdXJyZW50VGFyZ2V0LmNvbnRhaW5zKGUucmVsYXRlZFRhcmdldCl8fCQoITEpfSxvbkRyb3A6ZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLCQoITEpLCFnJiZlLmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGg+MCYmWihlLmRhdGFUcmFuc2Zlci5maWxlcyl9LGNsYXNzTmFtZToic2hyaW5rLTAgYm9yZGVyLXQgYm9yZGVyLWJyYW5kLWJvcmRlciBwLTQiLGNoaWxkcmVuOlsoMCxlbi5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOmBteC1hdXRvIGZsZXggbWF4LXctM3hsIGZsZXgtY29sIGdhcC0yIHJvdW5kZWQtbWQgdHJhbnNpdGlvbi1jb2xvcnMgJHt4PyJyaW5nLTIgcmluZy1icmFuZC1ibHVlIHJpbmctb2Zmc2V0LTIgcmluZy1vZmZzZXQtYnJhbmQtYmciOiIifWAsY2hpbGRyZW46W2IubGVuZ3RoPjAmJigwLGVuLmpzeCkoImRpdiIse2NsYXNzTmFtZToiZmxleCBmbGV4LXdyYXAgZ2FwLTIiLGNoaWxkcmVuOmIubWFwKGU9PigwLGVuLmpzeCkoaGwse2F0dGFjaG1lbnQ6ZSxvblJlbW92ZTooKT0+e3ZhciB0O3JldHVybiB0PWUubG9jYWxJZCx2b2lkIF8oZT0+e2xldCByPWUuZmluZChlPT5lLmxvY2FsSWQ9PT10KTtyZXR1cm4gciYmaHcociksZS5maWx0ZXIoZT0+ZS5sb2NhbElkIT09dCl9KX19LGUubG9jYWxJZCkpfSksKDAsZW4uanN4cykoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1lbmQgZ2FwLTIiLGNoaWxkcmVuOlsoMCxlbi5qc3gpKCJpbnB1dCIse3JlZjprLHR5cGU6ImZpbGUiLGFjY2VwdDoiaW1hZ2UvcG5nLGltYWdlL2pwZWcsaW1hZ2Uvd2VicCxhcHBsaWNhdGlvbi9wZGYiLG11bHRpcGxlOiEwLGNsYXNzTmFtZToiaGlkZGVuIixvbkNoYW5nZTplPT57ZS50YXJnZXQuZmlsZXMmJlooZS50YXJnZXQuZmlsZXMpLGUudGFyZ2V0LnZhbHVlPSIifX0pLCgwLGVuLmpzeCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazooKT0+ay5jdXJyZW50Py5jbGljaygpLGRpc2FibGVkOmcsImFyaWEtbGFiZWwiOiJBdHRhY2ggZmlsZXMiLHRpdGxlOiJBdHRhY2ggaW1hZ2VzIG9yIFBERnMiLGNsYXNzTmFtZToic2hyaW5rLTAgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1jYXJkIHAtMiB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQgaG92ZXI6YmctYnJhbmQtaG92ZXIgaG92ZXI6dGV4dC1icmFuZC10ZXh0IGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1icmFuZC1ibHVlIGRpc2FibGVkOm9wYWNpdHktNTAiLGNoaWxkcmVuOigwLGVuLmpzeCkoaHIseyJhcmlhLWhpZGRlbiI6ITAsY2xhc3NOYW1lOiJoLTUgdy01In0pfSksQS5pc1N1cHBvcnRlZCYmKDAsZW4uanN4KShobSx7c3RhdGU6QS5zdGF0ZSxlbGFwc2VkTXM6QS5lbGFwc2VkTXMsbGV2ZWw6QS5sZXZlbCxkaXNhYmxlZDpnLG9uU3RhcnQ6QS5zdGFydCxvblN0b3A6QS5zdG9wfSksKDAsZW4uanN4KSgidGV4dGFyZWEiLHtyZWY6eix2YWx1ZTptLG9uQ2hhbmdlOmU9PmYoZS50YXJnZXQudmFsdWUpLG9uS2V5RG93bjpmdW5jdGlvbihlKXsiRW50ZXIiIT09ZS5rZXl8fGUuc2hpZnRLZXl8fGUubmF0aXZlRXZlbnQuaXNDb21wb3Npbmd8fChlLnByZXZlbnREZWZhdWx0KCksQygpKX0sb25QYXN0ZTpmdW5jdGlvbihlKXtpZihnKXJldHVybjtsZXQgdD1BcnJheS5mcm9tKGUuY2xpcGJvYXJkRGF0YS5pdGVtcykuZmlsdGVyKGU9PiJmaWxlIj09PWUua2luZCkubWFwKGU9PmUuZ2V0QXNGaWxlKCkpLmZpbHRlcihlPT5udWxsIT09ZSk7MCE9PXQubGVuZ3RoJiYoZS5wcmV2ZW50RGVmYXVsdCgpLFoodCkpfSwiYXJpYS1sYWJlbCI6Ik1lc3NhZ2UgdGhlIGFnZW50IixwbGFjZWhvbGRlcjoiQXNrIHRoZSBhZ2VudOKApiIscm93czoxLGRpc2FibGVkOmcsY2xhc3NOYW1lOiJtaW4tdy0wIGZsZXgtMSByZXNpemUtbm9uZSBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1iZyBweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQgcGxhY2Vob2xkZXI6dGV4dC1icmFuZC10ZXh0LW11dGVkIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1icmFuZC1ibHVlIGRpc2FibGVkOm9wYWNpdHktNTAifSksZz8oMCxlbi5qc3gpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6ZnVuY3Rpb24oKXtjKCksdighMCk7bGV0IGU9bi5jdXJyZW50O2lmKCFlKXJldHVybjtsZXQgdD11W3UubGVuZ3RoLTFdO2ZldGNoKCIvYXBpL2NoYXQvc3RvcCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7ImNvbnRlbnQtdHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHt0aHJlYWRJZDplLHBhcnRzOnQ/LnJvbGU9PT0iYXNzaXN0YW50Ij90LnBhcnRzLmZpbHRlcihlPT4idGV4dCI9PT1lLnR5cGV8fCJkYXRhLXRvb2xzdGF0dXMiPT09ZS50eXBlKTpbXX0pLGtlZXBhbGl2ZTohMH0pLmNhdGNoKCgpPT57fSl9LCJhcmlhLWxhYmVsIjoiU3RvcCB0aGUgYWdlbnQiLGNsYXNzTmFtZToic2hyaW5rLTAgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1jYXJkIHB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYnJhbmQtdGV4dCBob3ZlcjpiZy1icmFuZC1ob3ZlciIsY2hpbGRyZW46IuKPuSBTdG9wIn0pOigwLGVuLmpzeCkoImJ1dHRvbiIse3R5cGU6InN1Ym1pdCIsZGlzYWJsZWQ6IW0udHJpbSgpJiYhU3x8SXx8VSxjbGFzc05hbWU6InNocmluay0wIHJvdW5kZWQtbWQgYmctYnJhbmQtYmx1ZSBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIGRpc2FibGVkOm9wYWNpdHktNTAiLGNoaWxkcmVuOiJTZW5kIn0pXX0pLGIubGVuZ3RoPjAmJigwLGVuLmpzeCkoInAiLHtjbGFzc05hbWU6InRleHQtWzExcHhdIHRleHQtYnJhbmQtdGV4dC1tdXRlZCIsY2hpbGRyZW46IkF2b2lkIHVwbG9hZGluZyBwYXRpZW50LWlkZW50aWZpYWJsZSBpbmZvLiJ9KV19KSwiZXJyb3IiPT09QS5zdGF0ZSYmQS5lcnJvciYmKDAsZW4uanN4KSgicCIse3JvbGU6ImFsZXJ0IixjbGFzc05hbWU6Im14LWF1dG8gbXQtMiBtYXgtdy0zeGwgdGV4dC14cyB0ZXh0LWJyYW5kLWVycm9yIixjaGlsZHJlbjpBLmVycm9yfSldfSldfSl9ZS5zKFsiQ2hhdFBhbmVsIiwoKT0+aEldLDcxMTA2KX1dKTs="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/99c7808505aa6924.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.237Z","timestamp":1785142498237,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/99c7808505aa6924.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"99c7808505aa6924.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"4d4ab476cad3bac7b8a361c2612dc3a2\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/99c7808505aa6924.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::glmvs-1785142498242-e142d3bdb4a9\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":7193,"size_decoded":3142,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (7193), with no line terminators","md5":"4d4ab476cad3bac7b8a361c2612dc3a2","sha1":"2282860d99be615570f02a63cc18817917a5d872","sha256":"b5bdd916806ce10b04fa3ae23d5c62db491375de8569e8dfb003aff11bbc1321","sha512":"08c0d0a7937e6abe5cfcf37bfd249d9dd950d2dd94766560a33047fb997f7056f044c8354adaa49e01ce84cb61c6e93df23d05db7d8e546a6f7206409c918879","ssdeep":"192:PvOOaFdESHUh/vPhEJEekEEBM8hNz3q96wnyoVgA:PvOzFdEQUh/vSEekEMM8hNzC6oyoVL","tlshash":"b3e15310a1512eccf96b45a4b9eed00c642f2b9cce1fcd65b5bc782539258e1fe13788","first_seen":"2026-07-27T06:16:09.152236Z","last_seen":"2026-07-27T08:57:45.710637Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDM2NDMsZT0+eyJ1c2Ugc3RyaWN0IjtsZXQgdD1bIm5pa29uLmNvbSIsIm5pa29uLmNhIiwibmlrb25sZW5zd2Vhci5jb20iXTtmdW5jdGlvbiByKGUpe2lmKCFlKXJldHVybiExO2xldCByPWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdC5zb21lKGU9PnIuZW5kc1dpdGgoYEAke2V9YCkpfWUucyhbImlzTmlrb25FbWFpbCIsKCk9PnJdKX0sODc5NDIsZT0+eyJ1c2Ugc3RyaWN0IjtlLmkoMjQ3MTY3KTt2YXIgdD1lLmkoODQzNDc2KSxyPWUuaSgyNzE2NDUpLHM9ZS5pKDYxODU2NiksYT1lLmkoOTIwNzU1KTtlLmkoNTI5MjI1KTt2YXIgbj1lLmkoOTcyMzkwKSxpPWUuaSgzNjQzKSxsPWUuaSg2NTc2ODgpO2Z1bmN0aW9uIG8oKXtsZXQgZT0oMCxzLnVzZVNlYXJjaFBhcmFtcykoKSxvPSgwLHMudXNlUm91dGVyKSgpLGQ9ZS5nZXQoInJldHVyblRvIiksW2MsdV09KDAsci51c2VTdGF0ZSkoIiIpLFttLGJdPSgwLHIudXNlU3RhdGUpKCIiKSxbeCxwXT0oMCxyLnVzZVN0YXRlKSghMSksW2gsZ109KDAsci51c2VTdGF0ZSkobnVsbCksW2Ysd109KDAsci51c2VTdGF0ZSkoIiIpLFt5LGpdPSgwLHIudXNlU3RhdGUpKCIiKSxbdixOXT0oMCxyLnVzZVN0YXRlKSghMSksW1MsSV09KDAsci51c2VTdGF0ZSkobnVsbCksQz1hc3luYyBlPT57ZS5wcmV2ZW50RGVmYXVsdCgpLEkobnVsbCksTighMCk7dHJ5e2xldCBlPSgwLGEuY3JlYXRlU3VwYWJhc2VCcm93c2VyQ2xpZW50KSgpLHtlcnJvcjp0fT1hd2FpdCBlLmF1dGguc2lnbkluV2l0aFBhc3N3b3JkKHtlbWFpbDpmLHBhc3N3b3JkOnl9KTtpZih0KXJldHVybiB2b2lkIEkodC5tZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImludmFsaWQgbG9naW4gY3JlZGVudGlhbHMiKT8iSW52YWxpZCBlbWFpbCBvciBwYXNzd29yZC4iOnQubWVzc2FnZSk7by5wdXNoKCIvaG9tZSIpLG8ucmVmcmVzaCgpfWZpbmFsbHl7TighMSl9fSxrPWFzeW5jKCk9PntsZXQgZT0oMCxhLmNyZWF0ZVN1cGFiYXNlQnJvd3NlckNsaWVudCkoKSx0PW5ldyBVUkwoIi9hdXRoL2NhbGxiYWNrIix3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtkJiZ0LnNlYXJjaFBhcmFtcy5zZXQoInJldHVyblRvIixkKSxhd2FpdCBlLmF1dGguc2lnbkluV2l0aE9BdXRoKHtwcm92aWRlcjoiYXp1cmUiLG9wdGlvbnM6e3Njb3Blczoib3BlbmlkIHByb2ZpbGUgZW1haWwgb2ZmbGluZV9hY2Nlc3MgTWFpbC5TZW5kIENhbGVuZGFycy5SZWFkV3JpdGUiLHJlZGlyZWN0VG86dC50b1N0cmluZygpfX0pfSxQPWFzeW5jIGU9PntpZihlLnByZXZlbnREZWZhdWx0KCksZyhudWxsKSwhKDAsaS5pc05pa29uRW1haWwpKGMpKXJldHVybiB2b2lkIGcoIlBsZWFzZSB1c2UgeW91ciBOaWtvbiBlbWFpbCBhZGRyZXNzIChAbmlrb24uY29tLCBAbmlrb24uY2EsIG9yIEBuaWtvbmxlbnN3ZWFyLmNvbSkuIik7cCghMCk7dHJ5e2xldCBlPSgwLG4uY3JlYXRlQnJvd3NlckNsaWVudCkoImh0dHBzOi8vdHdjb2VjcnZidnBvbWVzeXBqa2ouc3VwYWJhc2UuY28iLCJleUpoYkdjaU9pSklVekkxTmlJc0luUjVjQ0k2SWtwWFZDSjkuZXlKcGMzTWlPaUp6ZFhCaFltRnpaU0lzSW5KbFppSTZJblIzWTI5bFkzSjJZblp3YjIxbGMzbHdhbXRxSWl3aWNtOXNaU0k2SW1GdWIyNGlMQ0pwWVhRaU9qRTNOamt5TURjME5UY3NJbVY0Y0NJNk1qQTRORGM0TXpRMU4zMC5pZ2R6RTVZTEE5LVpiMzlyYlU4dHYtT2RDY0twM3RsdEkwY0ltT3BJYVpFIix7aXNTaW5nbGV0b246ITF9KSx7ZXJyb3I6dH09YXdhaXQgZS5hdXRoLnNpZ25JbldpdGhQYXNzd29yZCh7ZW1haWw6YyxwYXNzd29yZDptfSk7aWYodClyZXR1cm4gdm9pZCh0Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiZW1haWwgbm90IGNvbmZpcm1lZCIpP2coIlBsZWFzZSBjb25maXJtIHlvdXIgZW1haWwgYWRkcmVzcyBiZWZvcmUgc2lnbmluZyBpbi4iKTp0Lm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiaW52YWxpZCBsb2dpbiBjcmVkZW50aWFscyIpP2coIkludmFsaWQgZW1haWwgb3IgcGFzc3dvcmQuIFBsZWFzZSB0cnkgYWdhaW4uIik6Zyh0Lm1lc3NhZ2UpKTtvLnB1c2goZCYmZC5zdGFydHNXaXRoKCIvIikmJiFkLnN0YXJ0c1dpdGgoIi8vIik/ZDoiL2hvbWUiKX1maW5hbGx5e3AoITEpfX07cmV0dXJuKDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJ3LWZ1bGwgbWF4LXctc20gc3BhY2UteS04IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgYmctYnJhbmQtY2FyZCBwLTggc2hhZG93LWxnIixjaGlsZHJlbjpbKDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBzcGFjZS15LTQiLGNoaWxkcmVuOlsoMCx0LmpzeCkobC5kZWZhdWx0LHtzcmM6Ii9pbWFnZXMvbmV3dG9uLWxvZ28td2hpdGUucG5nIixhbHQ6Ik5ld3RvbiBMb2dvIix3aWR0aDoxNjAsaGVpZ2h0OjU4LGNsYXNzTmFtZToiZGFyazppbnZlcnQtMCBpbnZlcnQiLHByaW9yaXR5OiEwfSksKDAsdC5qc3gpKCJoMSIse2NsYXNzTmFtZToidGV4dC14bCBmb250LXNlbWlib2xkIHRleHQtYnJhbmQtdGV4dCIsY2hpbGRyZW46IlN0cmF0ZWdpYyBQbGFuIE5hdmlnYXRvciJ9KSwoMCx0LmpzeCkoInAiLHtjbGFzc05hbWU6InRleHQtc20gdGV4dC1icmFuZC10ZXh0LW11dGVkIHRleHQtY2VudGVyIixjaGlsZHJlbjoiU2lnbiBpbiB3aXRoIHlvdXIgTmV3dG9uIGFjY291bnQgdG8gY29udGludWUuIn0pXX0pLCgwLHQuanN4cykoImJ1dHRvbiIse29uQ2xpY2s6ayxjbGFzc05hbWU6ImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMyByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLXdoaXRlIHB4LTQgcHktMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS04MDAgc2hhZG93LXNtIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLWdyYXktNTAiLGNoaWxkcmVuOlsoMCx0LmpzeHMpKCJzdmciLHt3aWR0aDoiMjAiLGhlaWdodDoiMjAiLHZpZXdCb3g6IjAgMCAyMSAyMSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixjaGlsZHJlbjpbKDAsdC5qc3gpKCJyZWN0Iix7eDoiMSIseToiMSIsd2lkdGg6IjkiLGhlaWdodDoiOSIsZmlsbDoiI2YyNTAyMiJ9KSwoMCx0LmpzeCkoInJlY3QiLHt4OiIxMSIseToiMSIsd2lkdGg6IjkiLGhlaWdodDoiOSIsZmlsbDoiIzdmYmEwMCJ9KSwoMCx0LmpzeCkoInJlY3QiLHt4OiIxIix5OiIxMSIsd2lkdGg6IjkiLGhlaWdodDoiOSIsZmlsbDoiIzAwYTRlZiJ9KSwoMCx0LmpzeCkoInJlY3QiLHt4OiIxMSIseToiMTEiLHdpZHRoOiI5IixoZWlnaHQ6IjkiLGZpbGw6IiNmZmI5MDAifSldfSksIlNpZ24gaW4gd2l0aCBNaWNyb3NvZnQiXX0pLCgwLHQuanN4cykoImZvcm0iLHtvblN1Ym1pdDpDLGNsYXNzTmFtZToic3BhY2UteS0zIixjaGlsZHJlbjpbKDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiIsY2hpbGRyZW46WygwLHQuanN4KSgic3BhbiIse2NsYXNzTmFtZToiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQgYmctYmx1ZS01MDAvMjAgcHgtMiBweS0wLjUgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYmx1ZS0zMDAiLGNoaWxkcmVuOiJQcmV2aWV3IFFBIn0pLCgwLHQuanN4KSgic3BhbiIse2NsYXNzTmFtZToidGV4dC14cyB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQiLGNoaWxkcmVuOiJFbWFpbCArIHBhc3N3b3JkIChub24tcHJvZCBvbmx5KSJ9KV19KSwoMCx0LmpzeCkoImlucHV0Iix7dHlwZToiZW1haWwiLHZhbHVlOmYsb25DaGFuZ2U6ZT0+dyhlLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6Im5hbWVAbmV1cm9sZW5zLmNvbSIscmVxdWlyZWQ6ITAsYXV0b0NvbXBsZXRlOiJlbWFpbCIsY2xhc3NOYW1lOiJ3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1iZyBweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQgcGxhY2Vob2xkZXItYnJhbmQtdGV4dC1tdXRlZCBmb2N1czpib3JkZXItYmx1ZS01MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMSBmb2N1czpyaW5nLWJsdWUtNTAwIn0pLCgwLHQuanN4KSgiaW5wdXQiLHt0eXBlOiJwYXNzd29yZCIsdmFsdWU6eSxvbkNoYW5nZTplPT5qKGUudGFyZ2V0LnZhbHVlKSxwbGFjZWhvbGRlcjoiUGFzc3dvcmQiLHJlcXVpcmVkOiEwLGF1dG9Db21wbGV0ZToiY3VycmVudC1wYXNzd29yZCIsY2xhc3NOYW1lOiJ3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1iZyBweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQgcGxhY2Vob2xkZXItYnJhbmQtdGV4dC1tdXRlZCBmb2N1czpib3JkZXItYmx1ZS01MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMSBmb2N1czpyaW5nLWJsdWUtNTAwIn0pLFMmJigwLHQuanN4KSgicCIse2NsYXNzTmFtZToidGV4dC1zbSB0ZXh0LXJlZC01MDAiLGNoaWxkcmVuOlN9KSwoMCx0LmpzeCkoImJ1dHRvbiIse3R5cGU6InN1Ym1pdCIsZGlzYWJsZWQ6dixjbGFzc05hbWU6ImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWJnIHB4LTQgcHktMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYnJhbmQtdGV4dCBzaGFkb3ctc20gdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYnJhbmQtY2FyZCBkaXNhYmxlZDpvcGFjaXR5LTYwIixjaGlsZHJlbjp2PyJTaWduaW5nIGluLi4uIjoiU2lnbiBpbiJ9KV19KSwoMCx0LmpzeHMpKCJkaXYiLHtjbGFzc05hbWU6InJlbGF0aXZlIixjaGlsZHJlbjpbKDAsdC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIiLGNoaWxkcmVuOigwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJ3LWZ1bGwgYm9yZGVyLXQgYm9yZGVyLWJyYW5kLWJvcmRlciJ9KX0pLCgwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJyZWxhdGl2ZSBmbGV4IGp1c3RpZnktY2VudGVyIHRleHQteHMgdXBwZXJjYXNlIixjaGlsZHJlbjooMCx0LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6ImJnLWJyYW5kLWNhcmQgcHgtMiB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQiLGNoaWxkcmVuOiJvciJ9KX0pXX0pLCgwLHQuanN4cykoImZvcm0iLHtvblN1Ym1pdDpQLGNsYXNzTmFtZToic3BhY2UteS00IixjaGlsZHJlbjpbKDAsdC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIixjaGlsZHJlbjooMCx0LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6ImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciByb3VuZGVkIGJnLXllbGxvdy00MDAgcHgtMiBweS0wLjUgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYmxhY2siLGNoaWxkcmVuOiJOaWtvbiBQYXJ0bmVyIn0pfSksKDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJzcGFjZS15LTMiLGNoaWxkcmVuOlsoMCx0LmpzeCkoImlucHV0Iix7dHlwZToiZW1haWwiLHZhbHVlOmMsb25DaGFuZ2U6ZT0+dShlLnRhcmdldC52YWx1ZSkscGxhY2Vob2xkZXI6Im5hbWVAbmlrb24uY29tIixyZXF1aXJlZDohMCxjbGFzc05hbWU6InctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWJnIHB4LTMgcHktMiB0ZXh0LXNtIHRleHQtYnJhbmQtdGV4dCBwbGFjZWhvbGRlci1icmFuZC10ZXh0LW11dGVkIGZvY3VzOmJvcmRlci1ibHVlLTUwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctYmx1ZS01MDAifSksKDAsdC5qc3gpKCJpbnB1dCIse3R5cGU6InBhc3N3b3JkIix2YWx1ZTptLG9uQ2hhbmdlOmU9PmIoZS50YXJnZXQudmFsdWUpLHBsYWNlaG9sZGVyOiJQYXNzd29yZCIscmVxdWlyZWQ6ITAsY2xhc3NOYW1lOiJ3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1iZyBweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQgcGxhY2Vob2xkZXItYnJhbmQtdGV4dC1tdXRlZCBmb2N1czpib3JkZXItYmx1ZS01MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMSBmb2N1czpyaW5nLWJsdWUtNTAwIn0pXX0pLGgmJigwLHQuanN4KSgicCIse2NsYXNzTmFtZToidGV4dC1zbSB0ZXh0LXJlZC01MDAiLGNoaWxkcmVuOmh9KSwoMCx0LmpzeCkoImJ1dHRvbiIse3R5cGU6InN1Ym1pdCIsZGlzYWJsZWQ6eCxjbGFzc05hbWU6ImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJnLXByaW1hcnkgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgc2hhZG93LXNtIHRyYW5zaXRpb24tY29sb3JzIGhvdmVyOmJnLXByaW1hcnkvOTAgZGlzYWJsZWQ6b3BhY2l0eS02MCIsY2hpbGRyZW46eD8iU2lnbmluZyBpbi4uLiI6IlNpZ24gSW4ifSksKDAsdC5qc3hzKSgicCIse2NsYXNzTmFtZToidGV4dC1jZW50ZXIgdGV4dC14cyB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQgbXQtMiIsY2hpbGRyZW46WyJEb24ndCBoYXZlIGFuIGFjY291bnQ/IiwiICIsKDAsdC5qc3gpKCJhIix7aHJlZjoiaHR0cHM6Ly9ncm93Lm5ld3Rvbi50ZWNoL25pa29uL3NpZ251cCIsdGFyZ2V0OiJfYmxhbmsiLHJlbDoibm9vcGVuZXIgbm9yZWZlcnJlciIsY2xhc3NOYW1lOiJ0ZXh0LWJsdWUtNDAwIGhvdmVyOnVuZGVybGluZSBmb250LW1lZGl1bSIsY2hpbGRyZW46IkNyZWF0ZSBvbmUgaGVyZSJ9KV19KV19KV19KX1mdW5jdGlvbiBkKCl7cmV0dXJuKDAsdC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6ImZsZXggbWluLWgtc2NyZWVuIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1icmFuZC1iZyIsY2hpbGRyZW46KDAsdC5qc3gpKHIuU3VzcGVuc2Use2ZhbGxiYWNrOigwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJhbmltYXRlLXB1bHNlIHRleHQtZ3JheS00MDAiLGNoaWxkcmVuOiJMb2FkaW5nLi4uIn0pLGNoaWxkcmVuOigwLHQuanN4KShvLHt9KX0pfSl9ZS5zKFsiZGVmYXVsdCIsKCk9PmRdLDg3OTQyKX1dKTs="}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":20,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/icon.png?icon.9fb70b49.png","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.333Z","timestamp":1785142498333,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /icon.png?icon.9fb70b49.png HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccept-ranges: bytes\r\naccess-control-allow-origin: *\r\nage: 12182\r\ncache-control: public, max-age=0, must-revalidate\r\ncontent-disposition: inline; filename=\"icon.png\"\r\ncontent-type: image/png\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: \"0d0143d1f5bf5c44fec22837cde4004d\"\r\nlast-modified: Mon, 27 Jul 2026 05:31:55 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /icon.png\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::zgblr-1785142498341-2b75b4e66b58\r\ncontent-length: 5036\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":5036,"size_decoded":5572,"mime_type":"image/png","magic":"PNG image data, 197 x 201, 8-bit/color RGBA, non-interlaced","md5":"0d0143d1f5bf5c44fec22837cde4004d","sha1":"b3077a979494fa452b0e08f074bae10cc1556b4f","sha256":"5a21afe3082ce5f6b8b9423536e6a33f14e0f77fdc066987ad2f02917dc146ec","sha512":"38d8bb017f3accdd60123c7b94c0f332f47fd04edbe543b6a0133a4657e642aef050ba1dfc2e91f59829eca4b49c2f163eba8b6ef1fc425e18775606a59680d4","ssdeep":"96:HknGLWp8XjcTyBNMkrHFEbtKM5HHffHGBNZfHQJpdldifP2T4XdHp3:HknO0IyhnmdAdiG8dHF","tlshash":"1da1d64eff20dc4143686988f4ebd36ad577dac0e9c2d1c06ac58a1749232badd27396","first_seen":"2026-07-27T06:16:09.143345Z","last_seen":"2026-07-27T08:57:45.691259Z","times_seen":3,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAMUAAADJCAYAAACT+vaLAAAACXBIWXMAAC4jAAAuIwF4pT92AAAMM2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4xLWMwMDMgNzkuOTY5MGE4NywgMjAyNS8wMy8wNi0xOToxMjowMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBUUGc9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC90L3BnLyIgeG1sbnM6c3REaW09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9EaW1lbnNpb25zIyIgeG1sbnM6eG1wRz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL2cvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIElsbHVzdHJhdG9yIDI4LjcgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNS0wOS0xMFQxMjo1NjowMC0wNTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0wOS0xMFQxMjo1NzowMS0wNTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDktMTBUMTI6NTc6MDEtMDU6MDAiIHhtcFRQZzpOUGFnZXM9IjEiIHhtcFRQZzpIYXNWaXNpYmxlVHJhbnNwYXJlbmN5PSJGYWxzZSIgeG1wVFBnOkhhc1Zpc2libGVPdmVycHJpbnQ9IkZhbHNlIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0YzM1ZTNkYi1jNDNhLTg5NDQtODdiZC1kZDJmYmQyOTdkZDciIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjZTEwZjU0NS1iNDE2LWNmNGItYTNiOC1iM2M2ZGM2ZTZjOWEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpkMTE0NjVhOS1kM2QwLTM3NDAtODI1OC1mMzUwZDFiYTkwN2QiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiPiA8eG1wVFBnOk1heFBhZ2VTaXplIHN0RGltOnc9IjEuMDcyMTAzIiBzdERpbTpoPSIxLjAwMTg2MSIgc3REaW06dW5pdD0iSW5jaGVzIi8+IDx4bXBUUGc6UGxhdGVOYW1lcz4gPHJkZjpTZXE+IDxyZGY6bGk+Q3lhbjwvcmRmOmxpPiA8cmRmOmxpPk1hZ2VudGE8L3JkZjpsaT4gPHJkZjpsaT5ZZWxsb3c8L3JkZjpsaT4gPHJkZjpsaT5CbGFjazwvcmRmOmxpPiA8L3JkZjpTZXE+IDwveG1wVFBnOlBsYXRlTmFtZXM+IDx4bXBUUGc6U3dhdGNoR3JvdXBzPiA8cmRmOlNlcT4gPHJkZjpsaSB4bXBHOmdyb3VwTmFtZT0iRGVmYXVsdCBTd2F0Y2ggR3JvdXAiIHhtcEc6Z3JvdXBUeXBlPSIwIi8+IDwvcmRmOlNlcT4gPC94bXBUUGc6U3dhdGNoR3JvdXBzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vcG9zdHNjcmlwdCB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUuaWxsdXN0cmF0b3IiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi9wb3N0c2NyaXB0IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5pbGx1c3RyYXRvciIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MWQ5MjY4ZWUtZDBlZS1hNjQ4LWEzNWMtNDE5NDgyNDhkMjAyIiBzdEV2dDp3aGVuPSIyMDI1LTA5LTEwVDEyOjU2OjAwLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBJbGx1c3RyYXRvciAyOC43IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQgdG8gaW1hZ2UvZXBzZiIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDUwYzY4MWEtMjE0MC1jMDRlLThmYzktYjA5YmFkYWVjZDViIiBzdEV2dDp3aGVuPSIyMDI1LTA5LTEwVDEyOjU3OjAxLTA1OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjYuMTAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vcG9zdHNjcmlwdCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL2Vwc2YgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RF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"}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T08:54:55.919Z","timestamp":1785142495919,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /auth/login HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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\nage: 0\r\ncache-control: private, no-cache, no-store, max-age=0, must-revalidate\r\ncontent-encoding: br\r\ncontent-type: text/html; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:57 GMT\r\nlink: \u003c/_next/static/media/Silka_Bold-s.p.6d3cd53a.otf\u003e; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/otf\", \u003c/_next/static/media/Silka_Regular-s.p.67d455c4.otf\u003e; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/otf\", \u003c/_next/static/media/neuro_silkafont_regular-s.p.fe93305b.otf\u003e; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/otf\", \u003c/_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf\u003e; rel=preload; as=\"font\"; crossorigin=\"\"; type=\"font/otf\"\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nvary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch\r\nx-matched-path: /auth/login\r\nx-powered-by: Next.js\r\nx-vercel-cache: MISS\r\nx-vercel-id: arn1::iad1::v72bx-1785142495925-f71e41c78308\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":"Next.js","description":"Next.js is a React framework for developing single page Javascript applications.","website":"https://nextjs.org","common_platform_enumeration":"cpe:2.3:a:zeit:next.js:*:*:*:*:*:*:*:*","icon":"Next.js.svg","categories":["JavaScript frameworks","Web frameworks"]},{"name":"Node.js","description":"Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside a web browser.","website":"https://nodejs.org","common_platform_enumeration":"cpe:2.3:a:nodejs:node.js:*:*:*:*:*:*:*:*","icon":"Node.js.svg","categories":["Programming languages"]},{"name":"React","description":"React is an open-source JavaScript library for building user interfaces or UI components.","website":"https://reactjs.org","common_platform_enumeration":"cpe:2.3:a:facebook:react:*:*:*:*:*:*:*:*","icon":"React.svg","categories":["JavaScript frameworks"]},{"name":"Webpack","description":"Webpack is an open-source JavaScript module bundler.","website":"https://webpack.js.org/","common_platform_enumeration":"","icon":"Webpack.svg","categories":["Miscellaneous"]}],"data":{"size":15557,"size_decoded":4972,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (15557), with no line terminators","md5":"dcca7553b1d98a283d0321e44ea5d4c0","sha1":"4b9aaeccbfaa88bf9b8b9efa025938042a16b2b7","sha256":"ba586576f82f4678ba0cd6ca591f04dc545f317018957dcba43054548b1bed91","sha512":"9d1e006e703048b63bf08f3f7f96f14ea55643459ada9dbf3e80931d0a68c63a136b1828959a9b1e03405135765e2885c09d08bf23b038885f5c4f818ed506dc","ssdeep":"192:+3cAcx6UO2e1u1nvmcAcxQcv2sTcLd7xh4EVbvt9cUgwQ/10gnqzcpm/V:+gPOt1uZv/P2sTU2Eiw+zA","tlshash":"3a62741ab905de4bac7bddac217e9f3940cdc93bc671cd78e28dce4806518b64b969c0","first_seen":"2026-07-27T06:16:09.155669Z","last_seen":"2026-07-27T08:57:45.674085Z","times_seen":3,"resource_available":false,"data":"PCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz0iZW4iIGNsYXNzPSJkYXJrIHN0eXJlbmVfMjE0ODFmY2MtbW9kdWxlX195eXZFS1dfX3ZhcmlhYmxlIHNpbGthXzE4MjgyMGQzLW1vZHVsZV9faFM5Y3FHX192YXJpYWJsZSBzaWxrYWZhbGxiYWNrXzdmY2E1Mzg3LW1vZHVsZV9faEZNdERXX192YXJpYWJsZSI+PGhlYWQ+PG1ldGEgY2hhclNldD0idXRmLTgiLz48bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaW1hZ2VTcmNTZXQ9Ii9fbmV4dC9pbWFnZT91cmw9JTJGaW1hZ2VzJTJGbmV3dG9uLWxvZ28td2hpdGUucG5nJmFtcDt3PTI1NiZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD0lMkZpbWFnZXMlMkZuZXd0b24tbG9nby13aGl0ZS5wbmcmYW1wO3c9Mzg0JmFtcDtxPTc1IDJ4Ii8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvX25leHQvc3RhdGljL2NodW5rcy8xNzExMDY5ODdmYTYwOTU3LmNzcyIgZGF0YS1wcmVjZWRlbmNlPSJuZXh0Ii8+PGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0ic2NyaXB0IiBmZXRjaFByaW9yaXR5PSJsb3ciIGhyZWY9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL2JiOGZjMWE5N2ViNWYyYTkuanMiLz48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvNGRiZTc0NWIyNmI4YWZkZi5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL2NmMGFhZDFhZWYzMWRiNGUuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy8yNWVmMTZiNjlhMzFlM2U3LmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvOTA0ZjU4MDlkZTAzODg4YS5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzA4ZGNmYzNiMTUzODNjZDYuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy90dXJib3BhY2stYmJiYTY1NzlmMTE4YTljZC5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q5NjAxMmJjZmM5ODcwNmEuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9kODBiMzc5MGExMTlhMjg1LmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvOGUwNGE5ZjhiZjQ5NDkxZC5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL2I0NjQwOWEzMmFmYmZiYTEuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy9kOWRjMWQ5MDYyMWUyNGEzLmpzIiBhc3luYz0iIj48L3NjcmlwdD48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvODA4MzFlZjMxZjUwOWI2ZS5qcyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzLzg3MjIwOGU2ZGIyNDMyZGYuanMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSIvX25leHQvc3RhdGljL2NodW5rcy85OWM3ODA4NTA1YWE2OTI0LmpzIiBhc3luYz0iIj48L3NjcmlwdD48bWV0YSBuYW1lPSJuZXh0LXNpemUtYWRqdXN0IiBjb250ZW50PSIiLz48dGl0bGU+U3RyYXRlZ2ljIFBsYW4gTmF2aWdhdG9yPC90aXRsZT48bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQXBwbGljYXRpb24gZm9yIGNyZWF0aW5nIGFuZCBzaGFyaW5nIHN0cmF0ZWdpYyBidXNpbmVzcyBwbGFucy4iLz48bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29uLnBuZz9pY29uLjlmYjcwYjQ5LnBuZyIgc2l6ZXM9IjE5N3gyMDEiIHR5cGU9ImltYWdlL3BuZyIvPjxzY3JpcHQ+KGZ1bmN0aW9uKCl7dHJ5e3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzcG4tdGhlbWUnKTtpZih0PT09J2xpZ2h0Jylkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZGFyaycpfWNhdGNoKGUpe319KSgpPC9zY3JpcHQ+PHNjcmlwdCBzcmM9Ii9fbmV4dC9zdGF0aWMvY2h1bmtzL2E2ZGFkOTdkOTYzNGE3MmQuanMiIG5vTW9kdWxlPSIiPjwvc2NyaXB0PjwvaGVhZD48Ym9keSBjbGFzcz0iYW50aWFsaWFzZWQgYmctYnJhbmQtYmcgdGV4dC1icmFuZC10ZXh0Ij48ZGl2IGhpZGRlbj0iIj48IS0tJC0tPjwhLS0vJC0tPjwvZGl2PjxkaXYgY2xhc3M9ImZsZXggbWluLWgtc2NyZWVuIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy1icmFuZC1iZyI+PCEtLSQtLT48ZGl2IGNsYXNzPSJ3LWZ1bGwgbWF4LXctc20gc3BhY2UteS04IHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgYmctYnJhbmQtY2FyZCBwLTggc2hhZG93LWxnIj48ZGl2IGNsYXNzPSJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBzcGFjZS15LTQiPjxpbWcgYWx0PSJOZXd0b24gTG9nbyIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI1OCIgZGVjb2Rpbmc9ImFzeW5jIiBkYXRhLW5pbWc9IjEiIGNsYXNzPSJkYXJrOmludmVydC0wIGludmVydCIgc3R5bGU9ImNvbG9yOnRyYW5zcGFyZW50IiBzcmNTZXQ9Ii9fbmV4dC9pbWFnZT91cmw9JTJGaW1hZ2VzJTJGbmV3dG9uLWxvZ28td2hpdGUucG5nJmFtcDt3PTI1NiZhbXA7cT03NSAxeCwgL19uZXh0L2ltYWdlP3VybD0lMkZpbWFnZXMlMkZuZXd0b24tbG9nby13aGl0ZS5wbmcmYW1wO3c9Mzg0JmFtcDtxPTc1IDJ4IiBzcmM9Ii9fbmV4dC9pbWFnZT91cmw9JTJGaW1hZ2VzJTJGbmV3dG9uLWxvZ28td2hpdGUucG5nJmFtcDt3PTM4NCZhbXA7cT03NSIvPjxoMSBjbGFzcz0idGV4dC14bCBmb250LXNlbWlib2xkIHRleHQtYnJhbmQtdGV4dCI+U3RyYXRlZ2ljIFBsYW4gTmF2aWdhdG9yPC9oMT48cCBjbGFzcz0idGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQgdGV4dC1jZW50ZXIiPlNpZ24gaW4gd2l0aCB5b3VyIE5ld3RvbiBhY2NvdW50IHRvIGNvbnRpbnVlLjwvcD48L2Rpdj48YnV0dG9uIGNsYXNzPSJmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTMgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy13aGl0ZSBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktODAwIHNoYWRvdy1zbSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1ncmF5LTUwIj48c3ZnIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIxIDIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHg9IjEiIHk9IjEiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiIGZpbGw9IiNmMjUwMjIiPjwvcmVjdD48cmVjdCB4PSIxMSIgeT0iMSIgd2lkdGg9IjkiIGhlaWdodD0iOSIgZmlsbD0iIzdmYmEwMCI+PC9yZWN0PjxyZWN0IHg9IjEiIHk9IjExIiB3aWR0aD0iOSIgaGVpZ2h0PSI5IiBmaWxsPSIjMDBhNGVmIj48L3JlY3Q+PHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iOSIgaGVpZ2h0PSI5IiBmaWxsPSIjZmZiOTAwIj48L3JlY3Q+PC9zdmc+U2lnbiBpbiB3aXRoIE1pY3Jvc29mdDwvYnV0dG9uPjxmb3JtIGNsYXNzPSJzcGFjZS15LTMiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48c3BhbiBjbGFzcz0iaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQgYmctYmx1ZS01MDAvMjAgcHgtMiBweS0wLjUgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYmx1ZS0zMDAiPlByZXZpZXcgUUE8L3NwYW4+PHNwYW4gY2xhc3M9InRleHQteHMgdGV4dC1icmFuZC10ZXh0LW11dGVkIj5FbWFpbCArIHBhc3N3b3JkIChub24tcHJvZCBvbmx5KTwvc3Bhbj48L2Rpdj48aW5wdXQgdHlwZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJuYW1lQG5ldXJvbGVucy5jb20iIHJlcXVpcmVkPSIiIGF1dG9Db21wbGV0ZT0iZW1haWwiIGNsYXNzPSJ3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWJyYW5kLWJvcmRlciBiZy1icmFuZC1iZyBweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQgcGxhY2Vob2xkZXItYnJhbmQtdGV4dC1tdXRlZCBmb2N1czpib3JkZXItYmx1ZS01MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMSBmb2N1czpyaW5nLWJsdWUtNTAwIiB2YWx1ZT0iIi8+PGlucHV0IHR5cGU9InBhc3N3b3JkIiBwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHJlcXVpcmVkPSIiIGF1dG9Db21wbGV0ZT0iY3VycmVudC1wYXNzd29yZCIgY2xhc3M9InctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWJnIHB4LTMgcHktMiB0ZXh0LXNtIHRleHQtYnJhbmQtdGV4dCBwbGFjZWhvbGRlci1icmFuZC10ZXh0LW11dGVkIGZvY3VzOmJvcmRlci1ibHVlLTUwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctYmx1ZS01MDAiIHZhbHVlPSIiLz48YnV0dG9uIHR5cGU9InN1Ym1pdCIgY2xhc3M9ImZsZXggdy1mdWxsIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWJnIHB4LTQgcHktMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYnJhbmQtdGV4dCBzaGFkb3ctc20gdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctYnJhbmQtY2FyZCBkaXNhYmxlZDpvcGFjaXR5LTYwIj5TaWduIGluPC9idXR0b24+PC9mb3JtPjxkaXYgY2xhc3M9InJlbGF0aXZlIj48ZGl2IGNsYXNzPSJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIj48ZGl2IGNsYXNzPSJ3LWZ1bGwgYm9yZGVyLXQgYm9yZGVyLWJyYW5kLWJvcmRlciI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0icmVsYXRpdmUgZmxleCBqdXN0aWZ5LWNlbnRlciB0ZXh0LXhzIHVwcGVyY2FzZSI+PHNwYW4gY2xhc3M9ImJnLWJyYW5kLWNhcmQgcHgtMiB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQiPm9yPC9zcGFuPjwvZGl2PjwvZGl2Pjxmb3JtIGNsYXNzPSJzcGFjZS15LTQiPjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48c3BhbiBjbGFzcz0iaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIHJvdW5kZWQgYmcteWVsbG93LTQwMCBweC0yIHB5LTAuNSB0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1ibGFjayI+Tmlrb24gUGFydG5lcjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzcGFjZS15LTMiPjxpbnB1dCB0eXBlPSJlbWFpbCIgcGxhY2Vob2xkZXI9Im5hbWVAbmlrb24uY29tIiByZXF1aXJlZD0iIiBjbGFzcz0idy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgYmctYnJhbmQtYmcgcHgtMyBweS0yIHRleHQtc20gdGV4dC1icmFuZC10ZXh0IHBsYWNlaG9sZGVyLWJyYW5kLXRleHQtbXV0ZWQgZm9jdXM6Ym9yZGVyLWJsdWUtNTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1ibHVlLTUwMCIgdmFsdWU9IiIvPjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IlBhc3N3b3JkIiByZXF1aXJlZD0iIiBjbGFzcz0idy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1icmFuZC1ib3JkZXIgYmctYnJhbmQtYmcgcHgtMyBweS0yIHRleHQtc20gdGV4dC1icmFuZC10ZXh0IHBsYWNlaG9sZGVyLWJyYW5kLXRleHQtbXV0ZWQgZm9jdXM6Ym9yZGVyLWJsdWUtNTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1ibHVlLTUwMCIgdmFsdWU9IiIvPjwvZGl2PjxidXR0b24gdHlwZT0ic3VibWl0IiBjbGFzcz0iZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYmctcHJpbWFyeSBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBzaGFkb3ctc20gdHJhbnNpdGlvbi1jb2xvcnMgaG92ZXI6YmctcHJpbWFyeS85MCBkaXNhYmxlZDpvcGFjaXR5LTYwIj5TaWduIEluPC9idXR0b24+PHAgY2xhc3M9InRleHQtY2VudGVyIHRleHQteHMgdGV4dC1icmFuZC10ZXh0LW11dGVkIG10LTIiPkRvbiYjeDI3O3QgaGF2ZSBhbiBhY2NvdW50PzwhLS0gLS0+IDxhIGhyZWY9Imh0dHBzOi8vZ3Jvdy5uZXd0b24udGVjaC9uaWtvbi9zaWdudXAiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIGNsYXNzPSJ0ZXh0LWJsdWUtNDAwIGhvdmVyOnVuZGVybGluZSBmb250LW1lZGl1bSI+Q3JlYXRlIG9uZSBoZXJlPC9hPjwvcD48L2Zvcm0+PC9kaXY+PCEtLS8kLS0+PC9kaXY+PCEtLSQtLT48IS0tLyQtLT48c2VjdGlvbiBhcmlhLWxhYmVsPSJOb3RpZmljYXRpb25zIGFsdCtUIiB0YWJpbmRleD0iLTEiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLXJlbGV2YW50PSJhZGRpdGlvbnMgdGV4dCIgYXJpYS1hdG9taWM9ImZhbHNlIj48L3NlY3Rpb24+PCEtLSQtLT48IS0tLyQtLT48c2NyaXB0IHNyYz0iL19uZXh0L3N0YXRpYy9jaHVua3MvYmI4ZmMxYTk3ZWI1ZjJhOS5qcyIgaWQ9Il9SXyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdD4oc2VsZi5fX25leHRfZj1zZWxmLl9fbmV4dF9mfHxbXSkucHVzaChbMF0pPC9zY3JpcHQ+PHNjcmlwdD5zZWxmLl9fbmV4dF9mLnB1c2goWzEsIjE6XCIkU3JlYWN0LmZyYWdtZW50XCJcbjM6SVszMzk3NTYsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvZDk2MDEyYmNmYzk4NzA2YS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDgwYjM3OTBhMTE5YTI4NS5qc1wiXSxcImRlZmF1bHRcIl1cbjQ6SVs4Mzc0NTcsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvZDk2MDEyYmNmYzk4NzA2YS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDgwYjM3OTBhMTE5YTI4NS5qc1wiXSxcImRlZmF1bHRcIl1cbjU6SVszNDcyNTcsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvZDk2MDEyYmNmYzk4NzA2YS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDgwYjM3OTBhMTE5YTI4NS5qc1wiXSxcIkNsaWVudFBhZ2VSb290XCJdXG42OklbODc5NDIsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvOGUwNGE5ZjhiZjQ5NDkxZC5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvYjQ2NDA5YTMyYWZiZmJhMS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDlkYzFkOTA2MjFlMjRhMy5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvODA4MzFlZjMxZjUwOWI2ZS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvODcyMjA4ZTZkYjI0MzJkZi5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvOTljNzgwODUwNWFhNjkyNC5qc1wiXSxcImRlZmF1bHRcIl1cbjc6SVs4OTczNjcsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvZDk2MDEyYmNmYzk4NzA2YS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDgwYjM3OTBhMTE5YTI4NS5qc1wiXSxcIk91dGxldEJvdW5kYXJ5XCJdXG44OlwiJFNyZWFjdC5zdXNwZW5zZVwiXG5hOklbODk3MzY3LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q5NjAxMmJjZmM5ODcwNmEuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q4MGIzNzkwYTExOWEyODUuanNcIl0sXCJWaWV3cG9ydEJvdW5kYXJ5XCJdXG5jOklbODk3MzY3LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q5NjAxMmJjZmM5ODcwNmEuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q4MGIzNzkwYTExOWEyODUuanNcIl0sXCJNZXRhZGF0YUJvdW5kYXJ5XCJdXG5lOklbMTY4MDI3LFtdLFwiZGVmYXVsdFwiXVxuZjpJWzI3MjAxLFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q5NjAxMmJjZmM5ODcwNmEuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q4MGIzNzkwYTExOWEyODUuanNcIl0sXCJJY29uTWFya1wiXVxuMTA6SVs4NDA0MDIsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvOGUwNGE5ZjhiZjQ5NDkxZC5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvYjQ2NDA5YTMyYWZiZmJhMS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDlkYzFkOTA2MjFlMjRhMy5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvODA4MzFlZjMxZjUwOWI2ZS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvODcyMjA4ZTZkYjI0MzJkZi5qc1wiXSxcIlRoZW1lUHJvdmlkZXJcIl1cbjExOklbMTI5ODUsW1wiL19uZXh0L3N0YXRpYy9jaHVua3MvOGUwNGE5ZjhiZjQ5NDkxZC5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvYjQ2NDA5YTMyYWZiZmJhMS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDlkYzFkOTA2MjFlMjRhMy5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvODA4MzFlZjMxZjUwOWI2ZS5qc1wiLFwiL19uZXh0L3N0YXRpYy9jaHVua3MvODcyMjA4ZTZkYjI0MzJkZi5qc1wiXSxcIk51cXNBZGFwdGVyXCJdXG4xMjpJWzkxMjMyMixbXCIvX25leHQvc3RhdGljL2NodW5rcy84ZTA0YTlmOGJmNDk0OTFkLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy9iNDY0MDlhMzJhZmJmYmExLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy9kOWRjMWQ5MDYyMWUyNGEzLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy84MDgzMWVmMzFmNTA5YjZlLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy84NzIyMDhlNmRiMjQzMmRmLmpzXCJdLFwiQ29uZGl0aW9uYWxIZWFkZXJcIl1cbjEzOklbMjAzNDg0LFtcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzhlMDRhOWY4YmY0OTQ5MWQuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2I0NjQwOWEzMmFmYmZiYTEuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzL2Q5ZGMxZDkwNjIxZTI0YTMuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzgwODMxZWYzMWY1MDliNmUuanNcIixcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzg3MjIwOGU2ZGIyNDMyZGYuanNcIl0sXCJUb2FzdGVyXCJdXG4xNTpJWzMwMjM1NSxbXCIvX25leHQvc3RhdGljL2NodW5rcy84ZTA0YTlmOGJmNDk0OTFkLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy9iNDY0MDlhMzJhZmJmYmExLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy9kOWRjMWQ5MDYyMWUyNGEzLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy84MDgzMWVmMzFmNTA5YjZlLmpzXCIsXCIvX25leHQvc3RhdGljL2NodW5rcy84NzIyMDhlNmRiMjQzMmRmLmpzXCJdLFwiQW5hbHl0aWNzXCJdXG46SExbXCIvX25leHQvc3RhdGljL2NodW5rcy8xNzExMDY5ODdmYTYwOTU3LmNzc1wiLFwic3R5bGVcIl1cbjpITFtcIi9fbmV4dC9zdGF0aWMvbWVkaWEvU2lsa2FfQm9sZC1zLnAuNmQzY2Q1M2Eub3RmXCIsXCJmb250XCIse1wiY3Jvc3NPcmlnaW5cIjpcIlwiLFwidHlwZVwiOlwiZm9udC9vdGZcIn1dXG46SExbXCIvX25leHQvc3RhdGljL21lZGlhL1NpbGthX1JlZ3VsYXItcy5wLjY3ZDQ1NWM0Lm90ZlwiLFwiZm9udFwiLHtcImNyb3NzT3JpZ2luXCI6XCJcIixcInR5cGVcIjpcImZvbnQvb3RmXCJ9XVxuOkhMW1wiL19uZXh0L3N0YXRpYy9tZWRpYS9uZXVyb19zaWxrYWZvbnRfcmVndWxhci1zLnAuZmU5MzMwNWIub3RmXCIsXCJmb250XCIse1wiY3Jvc3NPcmlnaW5cIjpcIlwiLFwidHlwZVwiOlwiZm9udC9vdGZcIn1dXG46SExbXCIvX25leHQvc3RhdGljL21lZGlhL25ldXJvX3N0eXJlbmVfYm9sZC1zLnAuZDYyOTY3YTAub3RmXCIsXCJmb250XCIse1wiY3Jvc3NPcmlnaW5cIjpcIlwiLFwidHlwZVwiOlwiZm9udC9vdGZcIn1dXG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMDp7XCJQXCI6bnVsbCxcImJcIjpcIk1zZzhINzFRbXhoTGljYTV3SXV3aVwiLFwiY1wiOltcIlwiLFwiYXV0aFwiLFwibG9naW5cIl0sXCJxXCI6XCJcIixcImlcIjpmYWxzZSxcImZcIjpbW1tcIlwiLHtcImNoaWxkcmVuXCI6W1wiYXV0aFwiLHtcImNoaWxkcmVuXCI6W1wibG9naW5cIix7XCJjaGlsZHJlblwiOltcIl9fUEFHRV9fXCIse31dfV19XX0sXCIkdW5kZWZpbmVkXCIsXCIkdW5kZWZpbmVkXCIsdHJ1ZV0sW1tcIiRcIixcIiQxXCIsXCJjXCIse1wiY2hpbGRyZW5cIjpbW1tcIiRcIixcImxpbmtcIixcIjBcIix7XCJyZWxcIjpcInN0eWxlc2hlZXRcIixcImhyZWZcIjpcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzE3MTEwNjk4N2ZhNjA5NTcuY3NzXCIsXCJwcmVjZWRlbmNlXCI6XCJuZXh0XCIsXCJjcm9zc09yaWdpblwiOlwiJHVuZGVmaW5lZFwiLFwibm9uY2VcIjpcIiR1bmRlZmluZWRcIn1dLFtcIiRcIixcInNjcmlwdFwiLFwic2NyaXB0LTBcIix7XCJzcmNcIjpcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzhlMDRhOWY4YmY0OTQ5MWQuanNcIixcImFzeW5jXCI6dHJ1ZSxcIm5vbmNlXCI6XCIkdW5kZWZpbmVkXCJ9XSxbXCIkXCIsXCJzY3JpcHRcIixcInNjcmlwdC0xXCIse1wic3JjXCI6XCIvX25leHQvc3RhdGljL2NodW5rcy9iNDY0MDlhMzJhZmJmYmExLmpzXCIsXCJhc3luY1wiOnRydWUsXCJub25jZVwiOlwiJHVuZGVmaW5lZFwifV0sW1wiJFwiLFwic2NyaXB0XCIsXCJzY3JpcHQtMlwiLHtcInNyY1wiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvZDlkYzFkOTA2MjFlMjRhMy5qc1wiLFwiYXN5bmNcIjp0cnVlLFwibm9uY2VcIjpcIiR1bmRlZmluZWRcIn1dLFtcIiRcIixcInNjcmlwdFwiLFwic2NyaXB0LTNcIix7XCJzcmNcIjpcIi9fbmV4dC9zdGF0aWMvY2h1bmtzLzgwODMxZWYzMWY1MDliNmUuanNcIixcImFzeW5jXCI6dHJ1ZSxcIm5vbmNlXCI6XCIkdW5kZWZpbmVkXCJ9XSxbXCIkXCIsXCJzY3JpcHRcIixcInNjcmlwdC00XCIse1wic3JjXCI6XCIvX25leHQvc3RhdGljL2NodW5rcy84NzIyMDhlNmRiMjQzMmRmLmpzXCIsXCJhc3luY1wiOnRydWUsXCJub25jZVwiOlwiJHVuZGVmaW5lZFwifV1dLFwiJEwyXCJdfV0se1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwiJDFcIixcImNcIix7XCJjaGlsZHJlblwiOltudWxsLFtcIiRcIixcIiRMM1wiLG51bGwse1wicGFyYWxsZWxSb3V0ZXJLZXlcIjpcImNoaWxkcmVuXCIsXCJlcnJvclwiOlwiJHVuZGVmaW5lZFwiLFwiZXJyb3JTdHlsZXNcIjpcIiR1bmRlZmluZWRcIixcImVycm9yU2NyaXB0c1wiOlwiJHVuZGVmaW5lZFwiLFwidGVtcGxhdGVcIjpbXCIkXCIsXCIkTDRcIixudWxsLHt9XSxcInRlbXBsYXRlU3R5bGVzXCI6XCIkdW5kZWZpbmVkXCIsXCJ0ZW1wbGF0ZVNjcmlwdHNcIjpcIiR1bmRlZmluZWRcIixcIm5vdEZvdW5kXCI6XCIkdW5kZWZpbmVkXCIsXCJmb3JiaWRkZW5cIjpcIiR1bmRlZmluZWRcIixcInVuYXV0aG9yaXplZFwiOlwiJHVuZGVmaW5lZFwifV1dfV0se1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwiJDFcIixcImNcIix7XCJjaGlsZHJlblwiOltudWxsLFtcIiRcIixcIiRMM1wiLG51bGwse1wicGFyYWxsZWxSb3V0ZXJLZXlcIjpcImNoaWxkcmVuXCIsXCJlcnJvclwiOlwiJHVuZGVmaW5lZFwiLFwiZXJyb3JTdHlsZXNcIjpcIiR1bmRlZmluZWRcIixcImVycm9yU2NyaXB0c1wiOlwiJHVuZGVmaW5lZFwiLFwidGVtcGxhdGVcIjpbXCIkXCIsXCIkTDRcIixudWxsLHt9XSxcInRlbXBsYXRlU3R5bGVzXCI6XCIkdW5kZWZpbmVkXCIsXCJ0ZW1wbGF0ZVNjcmlwdHNcIjpcIiR1bmRlZmluZWRcIixcIm5vdEZvdW5kXCI6XCIkdW5kZWZpbmVkXCIsXCJmb3JiaWRkZW5cIjpcIiR1bmRlZmluZWRcIixcInVuYXV0aG9yaXplZFwiOlwiJHVuZGVmaW5lZFwifV1dfV0se1wiY2hpbGRyZW5cIjpbW1wiJFwiLFwiJDFcIixcImNcIix7XCJjaGlsZHJlblwiOltbXCIkXCIsXCIkTDVcIixudWxsLHtcIkNvbXBvbmVudFwiOlwiJDZcIixcInNlcnZlclByb3ZpZGVkUGFyYW1zXCI6e1wic2VhcmNoUGFyYW1zXCI6e30sXCJwYXJhbXNcIjp7fSxcInByb21pc2VzXCI6bnVsbH19XSxbW1wiJFwiLFwic2NyaXB0XCIsXCJzY3JpcHQtMFwiLHtcInNyY1wiOlwiL19uZXh0L3N0YXRpYy9jaHVua3MvOTljNzgwODUwNWFhNjkyNC5qc1wiLFwiYXN5bmNcIjp0cnVlLFwibm9uY2VcIjpcIiR1bmRlZmluZWRcIn1dXSxbXCIkXCIsXCIkTDdcIixudWxsLHtcImNoaWxkcmVuXCI6W1wiJFwiLFwiJDhcIixudWxsLHtcIm5hbWVcIjpcIk5leHQuTWV0YWRhdGFPdXRsZXRcIixcImNoaWxkcmVuXCI6XCIkQDlcIn1dfV1dfV0se30sbnVsbCxmYWxzZSxmYWxzZV19LG51bGwsZmFsc2UsZmFsc2VdfSxudWxsLGZhbHNlLGZhbHNlXX0sbnVsbCxmYWxzZSxmYWxzZV0sW1wiJFwiLFwiJDFcIixcImhcIix7XCJjaGlsZHJlblwiOltudWxsLFtcIiRcIixcIiRMYVwiLG51bGwse1wiY2hpbGRyZW5cIjpcIiRAYlwifV0sW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJoaWRkZW5cIjp0cnVlLFwiY2hpbGRyZW5cIjpbXCIkXCIsXCIkTGNcIixudWxsLHtcImNoaWxkcmVuXCI6W1wiJFwiLFwiJDhcIixudWxsLHtcIm5hbWVcIjpcIk5leHQuTWV0YWRhdGFcIixcImNoaWxkcmVuXCI6XCIkQGRcIn1dfV19XSxbXCIkXCIsXCJtZXRhXCIsbnVsbCx7XCJuYW1lXCI6XCJuZXh0LXNpemUtYWRqdXN0XCIsXCJjb250ZW50XCI6XCJcIn1dXX1dLGZhbHNlXV0sXCJtXCI6XCIkdW5kZWZpbmVkXCIsXCJHXCI6W1wiJGVcIixbXV0sXCJTXCI6ZmFsc2V9XG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiYjpbW1wiJFwiLFwibWV0YVwiLFwiMFwiLHtcImNoYXJTZXRcIjpcInV0Zi04XCJ9XSxbXCIkXCIsXCJtZXRhXCIsXCIxXCIse1wibmFtZVwiOlwidmlld3BvcnRcIixcImNvbnRlbnRcIjpcIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCJ9XV1cbmQ6W1tcIiRcIixcInRpdGxlXCIsXCIwXCIse1wiY2hpbGRyZW5cIjpcIlN0cmF0ZWdpYyBQbGFuIE5hdmlnYXRvclwifV0sW1wiJFwiLFwibWV0YVwiLFwiMVwiLHtcIm5hbWVcIjpcImRlc2NyaXB0aW9uXCIsXCJjb250ZW50XCI6XCJBcHBsaWNhdGlvbiBmb3IgY3JlYXRpbmcgYW5kIHNoYXJpbmcgc3RyYXRlZ2ljIGJ1c2luZXNzIHBsYW5zLlwifV0sW1wiJFwiLFwibGlua1wiLFwiMlwiLHtcInJlbFwiOlwiaWNvblwiLFwiaHJlZlwiOlwiL2ljb24ucG5nP2ljb24uOWZiNzBiNDkucG5nXCIsXCJzaXplc1wiOlwiMTk3eDIwMVwiLFwidHlwZVwiOlwiaW1hZ2UvcG5nXCJ9XSxbXCIkXCIsXCIkTGZcIixcIjNcIix7fV1dXG45Om51bGxcbiJdKTwvc2NyaXB0PjxzY3JpcHQ+c2VsZi5fX25leHRfZi5wdXNoKFsxLCIyOltcIiRcIixcImh0bWxcIixudWxsLHtcImxhbmdcIjpcImVuXCIsXCJjbGFzc05hbWVcIjpcImRhcmsgc3R5cmVuZV8yMTQ4MWZjYy1tb2R1bGVfX3l5dkVLV19fdmFyaWFibGUgc2lsa2FfMTgyODIwZDMtbW9kdWxlX19oUzljcUdfX3ZhcmlhYmxlIHNpbGthZmFsbGJhY2tfN2ZjYTUzODctbW9kdWxlX19oRk10RFdfX3ZhcmlhYmxlXCIsXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjp0cnVlLFwiY2hpbGRyZW5cIjpbW1wiJFwiLFwiaGVhZFwiLG51bGwse1wiY2hpbGRyZW5cIjpbXCIkXCIsXCJzY3JpcHRcIixudWxsLHtcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6e1wiX19odG1sXCI6XCIoZnVuY3Rpb24oKXt0cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Nwbi10aGVtZScpO2lmKHQ9PT0nbGlnaHQnKWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdkYXJrJyl9Y2F0Y2goZSl7fX0pKClcIn19XX1dLFtcIiRcIixcImJvZHlcIixudWxsLHtcImNsYXNzTmFtZVwiOlwiYW50aWFsaWFzZWQgYmctYnJhbmQtYmcgdGV4dC1icmFuZC10ZXh0XCIsXCJjaGlsZHJlblwiOltudWxsLFtcIiRcIixcIiRMMTBcIixudWxsLHtcImNoaWxkcmVuXCI6W1tcIiRcIixcIiRMMTFcIixudWxsLHtcImNoaWxkcmVuXCI6W1tcIiRcIixcIiRMMTJcIixudWxsLHtcInJvbGVcIjpudWxsfV0sW1wiJFwiLFwiJEwzXCIsbnVsbCx7XCJwYXJhbGxlbFJvdXRlcktleVwiOlwiY2hpbGRyZW5cIixcImVycm9yXCI6XCIkdW5kZWZpbmVkXCIsXCJlcnJvclN0eWxlc1wiOlwiJHVuZGVmaW5lZFwiLFwiZXJyb3JTY3JpcHRzXCI6XCIkdW5kZWZpbmVkXCIsXCJ0ZW1wbGF0ZVwiOltcIiRcIixcIiRMNFwiLG51bGwse31dLFwidGVtcGxhdGVTdHlsZXNcIjpcIiR1bmRlZmluZWRcIixcInRlbXBsYXRlU2NyaXB0c1wiOlwiJHVuZGVmaW5lZFwiLFwibm90Rm91bmRcIjpbW1tcIiRcIixcInRpdGxlXCIsbnVsbCx7XCJjaGlsZHJlblwiOlwiNDA0OiBUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kLlwifV0sW1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJzdHlsZVwiOntcImZvbnRGYW1pbHlcIjpcInN5c3RlbS11aSxcXFwiU2Vnb2UgVUlcXFwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcXFwiQXBwbGUgQ29sb3IgRW1vamlcXFwiLFxcXCJTZWdvZSBVSSBFbW9qaVxcXCJcIixcImhlaWdodFwiOlwiMTAwdmhcIixcInRleHRBbGlnblwiOlwiY2VudGVyXCIsXCJkaXNwbGF5XCI6XCJmbGV4XCIsXCJmbGV4RGlyZWN0aW9uXCI6XCJjb2x1bW5cIixcImFsaWduSXRlbXNcIjpcImNlbnRlclwiLFwianVzdGlmeUNvbnRlbnRcIjpcImNlbnRlclwifSxcImNoaWxkcmVuXCI6W1wiJFwiLFwiZGl2XCIsbnVsbCx7XCJjaGlsZHJlblwiOltbXCIkXCIsXCJzdHlsZVwiLG51bGwse1wiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjp7XCJfX2h0bWxcIjpcImJvZHl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX1AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspe2JvZHl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOiMwMDB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4zKX19XCJ9fV0sW1wiJFwiLFwiaDFcIixudWxsLHtcImNsYXNzTmFtZVwiOlwibmV4dC1lcnJvci1oMVwiLFwic3R5bGVcIjp7XCJkaXNwbGF5XCI6XCJpbmxpbmUtYmxvY2tcIixcIm1hcmdpblwiOlwiMCAyMHB4IDAgMFwiLFwicGFkZGluZ1wiOlwiMCAyM3B4IDAgMFwiLFwiZm9udFNpemVcIjoyNCxcImZvbnRXZWlnaHRcIjo1MDAsXCJ2ZXJ0aWNhbEFsaWduXCI6XCJ0b3BcIixcImxpbmVIZWlnaHRcIjpcIjQ5cHhcIn0sXCJjaGlsZHJlblwiOjQwNH1dLFtcIiRcIixcImRpdlwiLG51bGwse1wic3R5bGVcIjp7XCJkaXNwbGF5XCI6XCJpbmxpbmUtYmxvY2tcIn0sXCJjaGlsZHJlblwiOltcIiRcIixcImgyXCIsbnVsbCx7XCJzdHlsZVwiOntcImZvbnRTaXplXCI6MTQsXCJmb250V2VpZ2h0XCI6NDAwLFwibGluZUhlaWdodFwiOlwiNDlweFwiLFwibWFyZ2luXCI6MH0sXCJjaGlsZHJlblwiOlwiVGhpcyBwYWdlIGNvdWxkIG5vdCBiZSBmb3VuZC5cIn1dfV1dfV19XV0sW11dLFwiZm9yYmlkZGVuXCI6XCIkdW5kZWZpbmVkXCIsXCJ1bmF1dGhvcml6ZWRcIjpcIiR1bmRlZmluZWRcIn1dXX1dLFtcIiRcIixcIiRMMTNcIixudWxsLHtcInJpY2hDb2xvcnNcIjp0cnVlLFwiY2xvc2VCdXR0b25cIjp0cnVlfV0sXCIkTDE0XCIsW1wiJFwiLFwiJEwxNVwiLG51bGwse31dXX1dXX1dXX1dXG4iXSk8L3NjcmlwdD48c2NyaXB0PnNlbGYuX19uZXh0X2YucHVzaChbMSwiMTQ6bnVsbFxuIl0pPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4="}},"time_used":11,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":11,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/Silka_Bold-s.p.6d3cd53a.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.206Z","timestamp":1785142498206,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/Silka_Bold-s.p.6d3cd53a.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"Silka_Bold-s.p.6d3cd53a.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"12525b4c746ed034e64894c5d0565a04\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/Silka_Bold-s.p.6d3cd53a.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::tjcl7-1785142498212-5d48f6f855cc\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":45088,"size_decoded":23187,"mime_type":"font/otf","magic":"OpenType font data","md5":"12525b4c746ed034e64894c5d0565a04","sha1":"a82236893e28fe4f7013337edaa124e79fb44bdc","sha256":"2adcd76cebb1c8c6faa040f83552ecd93e1e643fd147c325e113444dd877c8f3","sha512":"cc934aba16ee11267795a349416f8a112ea929666d90ed5a154499ec9704aae0c1ce54322b44a36717b0920c78a7508084e9b070d001d7dbafe2ec1b8f6df6a6","ssdeep":"768:JUpqNrZfL7QGVaa4NYHW1NE6MYIttBKVKLddmDjXoj+CHu1En5S1:Wp8V3naa4NYHW1NE6MYytzddmDjCO1E+","tlshash":"c9137c59f329e380fb8ccd7050e757766b17b70d9fa7632ab119f2011be03960e68849","first_seen":"2023-09-20T14:32:09Z","last_seen":"2026-07-27T08:57:45.665291Z","times_seen":38,"resource_available":false,"data":"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Y2FjdXRlWmRvdGFjY2VudGNjYXJvbmNkb3RhY2NlbnRkY3JvYXRkY2Fyb25lY2Fyb25lbWFjcm9uZWRvdGFjY2VudGdicmV2ZWVvZ29uZWt1bmkwMTIzZ2RvdGFjY2VudGhiYXJoY2lyY3VtZmxleGltYWNyb25pb2dvbmVraS5sb2NsVFJLdW5pMDIzN2pjaXJjdW1mbGV4a2dyZWVubGFuZGljdW5pMDEzN2xkb3RsYWN1dGVsY2Fyb251bmkwMTNDdW5pMDE0Nm5jYXJvbm5hY3V0ZWVuZ29tYWNyb25vaHVuZ2FydW1sYXV0cmFjdXRlcmNhcm9uc2NlZGlsbGF1bmkwMTU3c2FjdXRldW5pMDIxOXVuaTAxNjN0Y2Fyb250YmFydW5pMDIxQnVyaW5nd2NpcmN1bWZsZXh1bWFjcm9udW9nb25la3dhY3V0ZXVodW5nYXJ1bWxhdXR3ZGllcmVzaXN5Y2lyY3VtZmxleHdncmF2ZXlncmF2ZXphY3V0ZXpkb3RhY2NlbnRzaXgudGZmaXZlLnRmb25lLnRmemVyby50ZmZvdXIudGZ0d28udGZ0aHJlZS50ZnNldmVuLnRmdW5pMDBCOXVuaTAwQjJlaWdodC50Zm5pbmUudGZ1bmkwMEIzQ1JFdXJvdW5pMjE5N2Fycm93dXB1bmkyMTk5YXJyb3dkb3dudW5pMjE5OGFycm93cmlnaHRhcnJvd2xlZnR1bmkyMTk2dW5pMjExNmRlZ3JlZS5hbHR1bmkwMzI2TlVMTGNhcm9uLlNsb3Zha0NvcHlyaWdodCBcKGNcKSAyMDE4IGJ5IGF0aXBvLiBBbGwgcmlnaHRzIHJlc2VydmVkLlNpbGthIEJvbGQAAAAAIgCrAYcArACtAK4BiAGLAK8AsACKACMAJAGKAYkAsQGPACUAmgGOAY0AJgCyAYwAswC0AZMAtQGRAZIAJwAoAZABtAGUACkBlQGWACoAtgC3ALgBmgC5AZgBmQArAZcALAGbAC0BpAGjAaUBnACMAC4ALwGfAZ4BnQGgALoAMAC7ALwAvQC+AaIBoQCNAL8AjgAxAJ0AMgAzAacBpgGqADQBrQDAAasBqAGpADUBrAGuAa8BsAA2AMEAwgDDAMQBsgG1AbcBswA3ADgBsQG2AbgBugA5ADoAxQG5AMYBvAA7Ab8AxwHBAEIAyAG7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AAEACgAAAA0AEQAKABYAHgAPACAAIwAYACcALgAcADEAOAAkADoAPQAsAD8APwAwAE0AVQAxAFcAZAA6AHUAfgBIAIEAhQBSAIoAkgBXAJwAowBgAKcAqABoAKoArwBqALEAtgBwAMQAzAB2AM4A2wB/AAIABQEUARQABAEWARYAAwEeASAAAgElASUABQEnAScAAQACAAcA7gDuAAIA7wDvAAMA9QD1AAUA9wD3AAEBCQEKAAYBDAEMAAYBGQEZAAQAAQDuAAkAAQAFAAkACAAEAAMABwAGAAIAAgANAO4A7gAKAO8A7wAHAPEA8QAFAPIA8gADAPQA9AAEAPcA9wAJAQkBCgABAQsBCwACAQwBDAABAQ0BDQACARYBFgAGAR4BIAALAVABUAAIAAIAGQAMAAwAAQANABIACAAUABUACAAWABcAAgAfAB8AAwAgACMACAAkACYAEwAnAC4ABAAvADAABQAxADIABgAzADgABwA5AD8AEwBAAEYACABIAEgACABKAEoACQBMAEwACABNAFAACgBRAFUACwBXAFsADABcAGQADQBlAGUADgBmAGoADwBrAGsAEABsAHAAEQBxAHQAEgACADcAAQAKABgACwALABkADAAMAB4ADQARAAEAIAAjAAEAJwAuAB8ALwAwABoAQABGAAEARwBHABIASABIAAEASQBJABIATABMAAEAUQBVAB0AVwBbAAIAXABkABEAZQBlAAMAZgBqAAQAawBrABYAbABwAAUAdQB/AAkAgACAABwAgQCSAAkAkwCTAAYAlACXAAkAmACaABwAmwCjAAcApACmAAgApwCpABwAqgCvABQAsAC2ABwAtwDAAAkAwQDCABwAwwDDAAkAxADHABwAyADMACEAzQDNABwAzgDSAAsA0wDbABUA3ADhAAwA4gDiACMA4wDnAAwA6ADrACIBCQEKABcBCwELABsBDAEMABcBDQENABsBEAEQAA4BFAEUAA0BGQEZACABHgEgABMBJQElAAoBJwEnAAoBTQFNABIBTgFOAA8BTwFPABAAAgAYAIAAhQAHAIYAhgAGAIcAhwAHAIgAiQAGAIoAkgAHAJMAkwABAJQAmgAGAJsAowACAKQApgADAKcAqQAEAKoArwAFALAAtgAGALcAvwAHAMEAwgAHAMMAwwAGAMQAxwAIAMgAzAAJAM0AzQAH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"}},"time_used":30,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":30,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.210Z","timestamp":1785142498210,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"neuro_styrene_bold-s.p.d62967a0.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"1701812accd2003f670be62a50621941\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/neuro_styrene_bold-s.p.d62967a0.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::9pt6b-1785142498216-979c1ccb53a2\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":71516,"size_decoded":24987,"mime_type":"font/otf","magic":"OpenType font data","md5":"1701812accd2003f670be62a50621941","sha1":"a1f53ce028f55225a0efbc750c2d7317e8b670ea","sha256":"970ae623aa2b3fce0a29e35de5f8d1413aed2d4e9f48eb94f6fc9c2d20815e02","sha512":"d0958085921c59fe744a293859e81a9d9eab0beb2d93660a4804da0f7dc57ba839de71cf038a43fc5428a556bd0b1569aa14da2b9b680f2d4845fb8cb0bf2451","ssdeep":"1536:hT8p3xFH53EOcFmz77gbzGYdIt1fGNXJHEPU4O4:hKFH530FmnKTdIUJ4","tlshash":"5063b751b3fd0214faf73b706eba92a85e3abca9a93dd24c1514405e0a72e50ce70737","first_seen":"2025-03-19T06:27:29.463058Z","last_seen":"2026-07-27T08:57:45.719096Z","times_seen":7,"resource_available":false,"data":"T1RUTwALAIAAAwAwQ0ZGIMEb7FMAAO5oAAAUxkdQT1Oi6rEiAAEDMAAAEbpHU1VC4Cf6vwABFOwAAAFCT1MvMl8KklYAAAEgAAAAYGNtYXAhsiJ9AADtzAAAAHpoZWFkFna9SgAAALwAAAA2aGhlYQi3BKQAAAD0AAAAJGhtdHi6GBSKAAEWMAAAASxtYXhwAEtQAAAAARgAAAAGbmFtZSmbJlwAAAGAAADsTHBvc3T/3QBMAADuSAAAACAAAQAAAAEAQchGAcxfDzz1AAMD6AAAAADVYEAuAAAAAN40Ogf/jf8UBD4C4AAAAAMAAgAAAAAAAAABAAAC/P8UAMgFqv+N/5oFYwABAAAAAAAAAAAAAAAAAAAASwAAUAAASwAAAAQChgGQAAUABAKKAlgAAABLAooCWAAAAV4ATAEoAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAENPTU0BQAAgIB0C/P8UAMgEsQFFIAAAkwAAAAAB7gLGAAAAIAAMAAAAHgFuAAEAAAAAAAAAIgAAAAEAAAAAAAEAFwAiAAEAAAAAAAIABwA5AAEAAAAAAAMAIABAAAEAAAAAAAQAFQBgAAEAAAAAAAUAOwB1AAEAAAAAAAYAFQBgAAEAAAAAAAcARgCwAAEAAAAAAAgAFQD2AAEAAAAAAAkADQELAAEAAAAAAAsAGQEYAAEAAAAAAAwAGwExAAEAAAAAAA1MzgFMAAEAAAAAAA4AIU4aAAEAAAAAABAAD047AAMAAQQJAAAARE5KAAMAAQQJAAEALk6OAAMAAQQJAAIADk68AAMAAQQJAAMAQE7KAAMAAQQJAAQAKk8KAAMAAQQJAAUAdk80AAMAAQQJAAYAKk8KAAMAAQQJAAcAjE+qAAMAAQQJAAgAKlA2AAMAAQQJAAkAGlBgAAMAAQQJAAsAMlB6AAMAAQQJAAwANlCsAAMAAQQJAA2ZnFDiAAMAAQQJAA4AQup+AAMAAQQJABAAHurAQ29weXJpZ2h0IChDKTIwMTYgQ29tbWVyY2lhbCBUeXBlLlN0eXJlbmUgQSBSZWd1bGFyIFRyaWFsUmVndWxhcjEuMDAxO0NPTU07U3R5cmVuZUFUcmlhbC1SZWd1bGFyU3R5cmVuZUFUcmlhbC1SZWd1bGFyVmVyc2lvbiAxLjAwMTtQUyAwMDEuMDAxO2hvdGNvbnYgMS4wLjcyO21ha2VvdGYubGliMi41LjU5MDBTdHlyZW5lIEEgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBDb21tZXJjaWFsIFR5cGUvU2Nod2FydHpjbyBJbmMuQ29tbWVyY2lhbCBUeXBlLCBJbmMuQmVydG9uIEhhc2ViZWh0dHA6Ly9jb21tZXJjaWFsdHlwZS5jb21odHRwOi8vd3d3LmJlcnRvbmhhc2ViZS5jb21Db21tZXJjaWFsIFR5cGUgRm9udCBTb2Z0d2FyZSBFbmQgVXNlciBMaWNlbnNlIEFncmVlbWVudCAgUExFQVNFIFJFQUQgVEhJUyBET0NVTUVOVCBDQVJFRlVMTFkgYW5kIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBrZWVwIGEgY29weSBmb3IgZnVydGhlciByZWZlcmVuY2UuICAgVGhpcyBFbmQgVXNlciBMaWNlbnNlIEFncmVlbWVudCAodGhlICJBZ3JlZW1lbnQiICJFVUxBLCIgIkxpY2Vuc2UsIiAiQWdyZWVtZW50IiBvciAiTGljZW5zZSBBZ3JlZW1lbnQiKSBpcyBhIGxlZ2FsIGFncmVlbWVudCBiZXR3ZWVuIHlvdSBhbmQgU2Nod2FydHpjbywgSW5jLiwgZC9iL2EgQ29tbWVyY2lhbCBUeXBlLCBhL2QvYi9hIFN0LiBCcmlkZSBUeXBlIEZvdW5kcnkgKGNvbGxlY3RpdmVseSwgIkNvbW1lcmNpYWwgVHlwZSIpIGFuZCBiZWNvbWVzIGEgYmluZGluZyBjb250cmFjdCBiZXR3ZWVuIHlvdSBhbmQgU2Nod2FydHpjby4gVGhpcyBBZ3JlZW1lbnQgZ292ZXJucyB0aGUgdGVybXMgb2YgdXNlIHRoZSBGb250IFNvZnR3YXJlIGFuZCB0aGUgZGVzaWduIG9mIHRoZSBGb250cyBlbWJvZGllZCB0aGVyZWluIChjb2xsZWN0aXZlbHksICJGb250IFNvZnR3YXJlIiksIHRvZ2V0aGVyIHdpdGggYW55IG1lZGlhLCBwcmludGVkIG1hdGVyaWFscywgZWxlY3Ryb25pYyBkb2N1bWVudGF0aW9uLCB1cGRhdGVzLCBhZGQtb25zLCBhcnR3b3JrLCB3ZWIgc2VydmljZXMgYW5kIGFueSBvdGhlciBtYXRlcmlhbCB0aGF0IG1heSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb2R1Y3Qgbm93IG9yIGluIHRoZSBmdXR1cmUuIFRoaXMgQWdyZWVtZW50IGJlY29tZXMgZWZmZWN0aXZlIChhKSB3aGVuIHlvdSAiQUNDRVBUIExJQ0VOU0UgQUdSRUVNRU5ULCIgb3IgKGIpIGlmIHlvdSBhcmUgYWNxdWlyZSBhbmQgYWNjZXB0IHRoZSBGb250IFNvZnR3YXJlIG9uIGEgQ29tcGFjdCBEaXNjIG9yIERpZ2l0YWwgVmlkZW8gRGlzayAoQ0QsIERWRCksIG9yIChjKSB3aGVuIHlvdSBvcGVuIHRoZSBjb21wcmVzc2VkIGVsZWN0cm9uaWMgZmlsZSBpbiB3aGljaCB0aGUgRm9udCBTb2Z0d2FyZSBpcyBjb250YWluZWQuIElmIHlvdSBkbyBub3Qgd2lzaCB0byBlbnRlciBpbnRvIHRoaXMgQWdyZWVtZW50LCBkbyBub3QgcHVyY2hhc2UsIGFjY2VzcywgZG93bmxvYWQgYW5kL29yIGluc3RhbGwgb3Igb3RoZXJ3aXNlIHVzZSB0aGUgRm9udCBTb2Z0d2FyZS4gIDEuIFVwb24gcGF5bWVudCBpbiBmdWxsLCBDb21tZXJjaWFsIFR5cGUgd2lsbCBncmFudCB5b3UgYSBub24tZXhjbHVzaXZlIHRlcm1pbmFibGUgTGljZW5zZSB0byB0aGUgRm9udCBTb2Z0d2FyZSB0aGF0IGFjY29tcGFuaWVzIHRoaXMgRVVMQS4gVXNlIG9mIHRoZSBGb250IFNvZnR3YXJlIGlzIGxpbWl0ZWQgdG8gUGVyc29uYWwgb3IgSW50ZXJuYWwgQnVzaW5lc3MgVXNlIG9ubHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsICJGb250IFNvZnR3YXJlIiBzaGFsbCBiZSBkZWZpbmVkIGFzIHRoZSBkZXNpZ24gb2YgdGhlIEZvbnRzIHRvZ2V0aGVyIHdpdGggdGhlIEZvbnQgU29mdHdhcmUgd2hpY2gsIHdoZW4gdXNlZCBnZW5lcmF0ZXMgdGhlIHR5cGVmYWNlLCB0eXBvZ3JhcGhpYyBkZXNpZ25zIGFuZCwgaWYgYXBwbGljYWJsZSwgb3JuYW1lbnRzIG9yIG90aGVyIGRlc2lnbnMuIFBlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSBzaGFsbCBtZWFuIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBmb3IgeW91ciBjdXN0b21hcnkgcGVyc29uYWwgb3IgaW50ZXJuYWwgYnVzaW5lc3MgcHVycG9zZXMgYW5kLCBleGNlcHQgYXMgbWF5IG90aGVyd2lzZSBwZXJtaXR0ZWQgaGVyZWluLCBzaGFsbCBub3QgbWVhbiBvciBpbmNsdWRlIHRoZSBjb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBvciB1c2Ugb2YgRm9udCBTb2Z0d2FyZSwgdGhlIGRlc2lnbiBvZiB0aGUgZm9udHMgb3IgYXJ0d29yayBlbWJvZGllZCB0aGVyZWluIG9yIGFueSBjb21wb25lbnQgdGhlcmVvZiBmb3IgYW55IGNvbW1lcmNpYWwgdXNlIG9yIGluIGFueSBDb21tZXJjaWFsIFByb2R1Y3QgZm9yIHNhbGUgd2hhdHNvZXZlci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIEFncmVlbWVudCwgcHJvaGliaXRlZCBjb21tZXJjaWFsIHVzZXMgaW5jbHVkZSwgYnkgd2F5IG9mIGV4YW1wbGUgbm90IGxpbWl0YXRpb24sIFQtc2hpcnRzLCB0aGlyZC1wYXJ0eSBzb2Z0d2FyZSwgZWxlY3Ryb25pYyBkZXZpY2VzLCBtdWdzLCBhbmltYXRpb24sIGV0Yy4gYW5kIGFzIG1heSBiZSBmdXJ0aGVyIG5vdGVkIGJlbG93LiBJZiB5b3UgYXJlIHVuc3VyZSB3aGV0aGVyIHlvdXIgdXNlIGlzIG5vdCBwZXJtaXR0ZWQsIGNvbnRhY3QgQ29tbWVyY2lhbCBUeXBlLiBZb3VyIGZhaWx1cmUgdG8gY29udGFjdCB0byBzZWVrIHBlcm1pc3Npb24gb3IgdGhlIGxhY2sgb2YgYSBzcGVjaWZpYyBwcm9oaWJpdGlvbiBpbiB0aGlzIEFncmVlbWVudCBzaGFsbCBub3QgYmUgaW50ZXJwcmV0ZWQgb3IgZGVlbWVkIGEgd2FpdmVyIG9yIHBlcm1pc3NpYmxlIHVzZSBvZiBhbnkga2luZC4gWW91IGhlcmVieSBhZ3JlZSB0aGF0IHRoZSBGb250IFNvZnR3YXJlIHNoYWxsIGZ1cnRoZXIgY29tcHJpc2UgYWxsIGJpdG1hcCByZXByZXNlbnRhdGlvbnMgb2YgdHlwZWZhY2UgYW5kIHR5cG9ncmFwaGljIGRlc2lnbnMgYW5kIG9ybmFtZW50cyBjcmVhdGVkIGJ5IG9yIGRlcml2ZWQgZnJvbSB0aGUgRm9udCBTb2Z0d2FyZS4gVGhlIEZvbnQgU29mdHdhcmUgc2hhbGwgYmUgZGVlbWVkIHRvIGluY2x1ZGUgYW55IHVwZ3JhZGVzLCB1cGRhdGVzLCByZWxhdGVkIGZpbGVzLCBwZXJtaXR0ZWQgbW9kaWZpY2F0aW9ucywgaWYgYW55LCBwZXJtaXR0ZWQgY29waWVzLCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uLiAgMi4gSWYgeW91IGFyZSBhIGRlc2lnbiBjb25zdWx0YW5jeSwgYWR2ZXJ0aXNpbmcgYWdlbmN5IG9yIHB1cmNoYXNpbmcgdGhpcyBsaWNlbnNlIGZvciB1c2UgYnkgb3Igb24gYmVoYWxmIG9mIHN1Y2ggYW4gZW50aXR5LCB0aGUgdWx0aW1hdGUgZW5kIHVzZXIgc2hvdWxkIGFsc28gcHVyY2hhc2UgYSBsaWNlbnNlIGFwcHJvcHJpYXRlIGZvciB0aGVpciBpbnRlbmRlZCB1c2Ugb2YgdGhlIEZvbnQgU29mdHdhcmUsIGlmIHRoZWlyIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpcyBsaWtlbHkgdG8gaW52b2x2ZSB1c2VzIG5vdCBwZXJtaXR0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuIFRoZSBsaWNlbnNlIGdyYW50ZWQgaGVyZWluIGZvciBwZXJzb25hbCB1c2UgZG9lcyBub3QgZXh0ZW5kIHRvIHVzZXMgYnkgdGVtcG9yYXJ5IGVtcGxveWVlcyBvciBpbmRlcGVuZGVudCBjb250cmFjdG9ycyB1c2luZyB0aGUgRm9udCBTb2Z0d2FyZSBhcyB0aGVpciB1c2UgbWF5IHJlbGF0ZSB0byBwcm92aWRpbmcgcHJvZmVzc2lvbmFsIHNlcnZpY2VzIG9yIGZvciBvdGhlciBwcm9mZXNzaW9uYWwgdXNlcy4gVW5kZXIgc3VjaCBjaXJjdW1zdGFuY2VzIGFuIGVtcGxveWVyIGFuZC9vciB0aGUgdWx0aW1hdGUgZW5kIHVzZXIgYXJlIGFsc28gcmVxdWlyZWQgdG8gcHVyY2hhc2UgYSBsaWNlbnNlIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZS4gIDMuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsICJDb21tZXJjaWFsIFByb2R1Y3QiIHNoYWxsIGFsc28gbWVhbiwgYW1vbmcgb3RoZXIgdGhpbmdzLCBhIHVzZXIgZWRpdGFibGUgZWxlY3Ryb25pYyBkb2N1bWVudCBjcmVhdGVkIGJ5IFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB3aGljaCBpcyBvZmZlcmVkIGZvciBkaXN0cmlidXRpb24gdG8gdGhlIGdlbmVyYWwgcHVibGljIChvciB0byBzb21lIHN1YnNldCBvZiB0aGUgZ2VuZXJhbCBwdWJsaWMpLCBpbiBGbGFzaCB0eXBlIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIG9yIGV4aGliaXRlZCwgaW4gZ2FtaW5nIHByb2R1Y3RzIG9yIHNvZnR3YXJlIHdoZXJlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBGb250IFNvZnR3YXJlIG9yIHRoZSBkZXNpZ25zIGVtYm9kaWVkIHRoZXJlaW4gbWF5IGJlIGV4dHJhY3RlZDsgb3IgdXNlIG9uIGdvb2RzIGZvciBzYWxlIGFzIGEgY29tbWVyY2lhbCBwcm9kdWN0IGluIGV4Y2hhbmdlIGZvciBhIHNlcGFyYXRlIGZlZSBvciBvdGhlciBjb25zaWRlcmF0aW9uLiBIb3dldmVyLCBhIGRvY3VtZW50IGRpc3RyaWJ1dGVkIGluIGNvbm5lY3Rpb24gd2l0aCBhIGNvbW1lcmNpYWwgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIGNvbnNpZGVyYXRpb24gaXMgdW5yZWxhdGVkIHRvIHN1Y2ggYSBkb2N1bWVudCAoZm9yIGV4YW1wbGUsIHByaW50ZWQgYWR2ZXJ0aXNpbmcsIGEgYnVzaW5lc3MgbGV0dGVyIG9yIGEgcmVjZWlwdCBmb3IgcHVyY2hhc2Ugb2YgdGFuZ2libGUgZ29vZHMgc3VjaCBhcyBjbG90aGluZyksIG9yIGFzIG90aGVyIGRlc2lnbiBtYXRlcmlhbHMgZGlzdHJpYnV0ZWQgaW5jaWRlbnRhbCB0byB0aGUgcHVyY2hhc2Ugb2YgZ29vZHMgb3Igc2VydmljZXMsIHNoYWxsIG5vdCBiZSBjb25zaWRlcmVkIGEgQ29tbWVyY2lhbCBQcm9kdWN0LiAgNC4gYSkgRXhjZXB0IGFzIG1heSBiZSBwcm9oaWJpdGVkIGhlcmVpbiwgeW91IGFyZSBwZXJtaXR0ZWQgdG8gZWxlY3Ryb25pY2FsbHkgZGlzdHJpYnV0ZSBhICYjMjEwO1BlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSYjMjExOyBkb2N1bWVudCAodGhhdCBpcywgYSBkb2N1bWVudCBvdGhlciB0aGFuIGEgQ29tbWVyY2lhbCBQcm9kdWN0IGFzIGRlZmluZWQgYWJvdmUpIChpKSB0aGF0IGlzIGluIGEgc3RhdGljIGdyYXBoaWMgaW1hZ2UgKGZvciBleGFtcGxlLCBhICYjMjEwO2dpZiYjMjExOykgb3IgaW4gYW4gZW1iZWRkZWQgZWxlY3Ryb25pYyBkb2N1bWVudCwgYW5kIChpaSkgd2hpY2ggaXMgZGlzdHJpYnV0ZWQgaW4gYSBmb3JtYXQgdGhhdCBwZXJtaXRzIG9ubHkgdGhlIHZpZXdpbmcgYW5kIHByaW50aW5nIChhbmQgbm90IHRoZSBlZGl0aW5nLCBhbHRlcmluZywgZW5oYW5jaW5nLCBvciBtb2RpZnlpbmcpIG9mIHN1Y2ggc3RhdGljIGdyYXBoaWMgaW1hZ2Ugb3IgZW1iZWRkZWQgZG9jdW1lbnQuIFBlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSBzaGFsbCBub3QgaW5jbHVkZSBhbnkgVXNlIG9mIHRoZSBGb250IFNvZnR3YXJlIGJ5IHBlcnNvbnMgdGhhdCBhcmUgbm90IG1lbWJlcnMgb2YgeW91ciBpbW1lZGlhdGUgaG91c2Vob2xkLCB5b3VyIGF1dGhvcml6ZWQgZW1wbG95ZWVzLCBvciB5b3VyIGF1dGhvcml6ZWQgYWdlbnRzLiBBbGwgc3VjaCBob3VzZWhvbGQgbWVtYmVycywgZW1wbG95ZWVzIGFuZCBhZ2VudHMgc2hhbGwgYmUgbm90aWZpZWQgYnkgeW91IGFzIHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQWdyZWVtZW50IGFuZCBzaGFsbCBhZ3JlZSB0byBiZSBib3VuZCBieSBpdCBwcmlvciB0byB1c2Ugb2YgdGhlIEZvbnQgU29mdHdhcmUuIGIpIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpbiBzSUZSIChTY2FsYWJsZSBJbm1hbiBGb250IFJlcGxhY2VtZW50KSBpcyBwZXJtaXR0ZWQuIEhvd2V2ZXIsIHRoZSB1c2Ugb2YgQ3VmJiMxNTE7biBvciBAZm9udC1mYWNlIG9yIG90aGVyIGZvcm1zIG9mIHdlYiBlbWJlZGRpbmcgb3Igd2ViIGZvbnQgcmVwbGFjZW1lbnQgdGVjaG5vbG9naWVzLCAoJiMyMTA7Rm9udCBSZXBsYWNlbWVudCBUZWNobm9sb2dpZXMmIzIxMTspIG90aGVyIHRoYW4gcGRmIGFzIG90aGVyd2lzZSBleHByZXNzbHkgcGVybWl0dGVkIGhlcmVpbiwgZWFjaCByZXF1aXJlIHRoZSBwdXJjaGFzZSBvZiBhIGxpY2Vuc2UgdXBncmFkZS4gIDUuIENvbW1lcmNpYWwgVHlwZSwgaXRzIHN1Y2Nlc3NvcnMgYW5kIGFzc2lnbnMsIGV4cHJlc3NseSByZXRhaW4gYWxsIHJpZ2h0IGFuZCB0aXRsZSBpbiBhbmQgdG8gdGhlIEZvbnQgU29mdHdhcmUgdG9nZXRoZXIgd2l0aCB0aGUgZGVzaWduIG9mIHRoZSBGb250IGVtYm9kaWVkIHRoZXJlaW4gdG9nZXRoZXIgd2l0aCBhbnkgdHJhZGVtYXJrcyB1c2VkIGluIGNvbm5lY3Rpb24gdGhlcmV3aXRoLiBFeGNlcHQgYXMgbWF5IGJlIG90aGVyd2lzZSBleHByZXNzbHkgcGVybWl0dGVkIGhlcmVpbiwgeW91IGFncmVlIG5vdCB0byBjb3B5IHRoZSBGb250IFNvZnR3YXJlIG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIGJhc2VkIHVwb24gdGhlIGRlc2lnbiBvZiB0aGUgRm9udCBvciB0aGUgRm9udCBTb2Z0d2FyZS4gWW91IGhlcmVieSBhZ3JlZSB0aGF0IHRoZSBkZXNpZ24gb2YgdGhlIEZvbnQgYW5kIHRoZSBGb250IFNvZnR3YXJlIGFyZSB0aGUgZXhjbHVzaXZlIHByb3BlcnR5IG9mIENvbW1lcmNpYWwgVHlwZSBhbmQgdGhhdCB0aGUgdW5hdXRob3JpemVkIHVzZSBvZiB0aGUgZGVzaWduIG9mIHRoZSBGb250IG9yIHRoZSBGb250IFNvZnR3YXJlIGlzIGFuIGluZnJpbmdlbWVudCBvZiBDb21tZXJjaWFsIFR5cGUncyBleGNsdXNpdmUgcmlnaHRzIGFuZCBjYXVzaW5nIHNpZ25pZmljYW50IG1vbmV0YXJ5IGhhcm0uIEFsbCByaWdodHMgbm90IGV4cHJlc3NseSBncmFudGVkIGhlcmVpbiBhcmUgcmVzZXJ2ZWQgdG8gQ29tbWVyY2lhbCBUeXBlLiBDb21tZXJjaWFsIFR5cGUncyByaWdodHMgYW5kIHJlbWVkaWVzIGluIHRoZSBldmVudCBvZiBhbiBpbmZyaW5nZW1lbnQgc2hhbGwgYmUgY3VtdWxhdGl2ZSBpbiBuYXR1cmUuICAgNi4gRXhjZXB0IGFzIGlzIHByb2hpYml0ZWQgaGVyZWluLCB5b3UgbWF5IGluc3RhbGwgYW5kIFVzZSB0aGUgRm9udCBTb2Z0d2FyZSBvbiBhIHNpbmdsZSBmaWxlIHNlcnZlciBmb3IgVXNlIG9uIGEgc2luZ2xlIGxvY2FsIGFyZWEgbmV0d29yayAoIkxBTiIpIG9ubHkgd2hlbiB0aGUgVXNlIG9mIHN1Y2ggRm9udCBTb2Z0d2FyZSBpcyBleHByZXNzbHkgZm9yIGFuZCBsaW1pdGVkIHRvIHRoZSBudW1iZXIgb2YgdG90YWwgdXNlcnMgZGlzY2xvc2VkIGFuZCBsaWNlbnNlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgaS5lLiwgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycyB3aG8gY291bGQgdXNlIHRoZSBGb250IFNvZnR3YXJlLCBub3QgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycyB3aG8gbWlnaHQgaGF2ZSBhY2Nlc3MgdG8gdGhlIEZvbnQgU29mdHdhcmUgYXQgYW55IG9uZSB0aW1lLiAgNy4gRXhjZXB0IGFzIG1heSBiZSBvdGhlcndpc2UgZXhwcmVzc2x5IHBlcm1pdHRlZCBoZXJlaW4sIHlvdSBtYXkgbm90IGFsdGVyIG9yIGNvcHkgdGhlIEZvbnQgU29mdHdhcmUgb3IgdGhlIGRlc2lnbnMgZW1ib2RpZWQgdGhlcmVpbiBpbiBhbnkgbWFubmVyIHdoYXRzb2V2ZXIuIFJlZm9ybWF0dGluZyB0aGUgRm9udCBTb2Z0d2FyZSBpbnRvIG90aGVyIGZvcm1hdHMgZm9yIHVzZSBpbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyBpcyBleHByZXNzbHkgcHJvaGliaXRlZC4gVXBvbiBwYXltZW50IG9mIGFuIGFkZGl0aW9uYWwgZmVlIGFuZCBhIHNlcGFyYXRlIHdyaXR0ZW4gYWdyZWVtZW50IENvbW1lcmNpYWwgVHlwZSBtYXksIGlmIHNvIGFncmVlZCwgcHJvdmlkZSB0aGUgRm9udCBTb2Z0d2FyZSBpbiBhbHRlcm5hdGUgYW5kL29yIGFkZGl0aW9uYWwgZm9udCBmb3JtYXRzLCBjb250YWN0IENvbW1lcmNpYWwgVHlwZSBmb3IgYSBxdW90YXRpb24uIEFsdGVyaW5nIG9yIGFtZW5kaW5nIHRoZSBlbWJlZGRpbmcgYml0cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIEZvbnQgU29mdHdhcmUgaXMgZXhwcmVzc2x5IHByb2hpYml0ZWQuIFRoZSBGb250IFNvZnR3YXJlIG1heSBub3QgYmUgdXNlZCB0byBjcmVhdGUgb3IgZGlzdHJpYnV0ZSBhbnkgZWxlY3Ryb25pYyBkb2N1bWVudCBpbiB3aGljaCB0aGUgRm9udCBTb2Z0d2FyZSBvciBhbnkgcGFydCB0aGVyZW9mLCBpcyBlbWJlZGRlZCBpbiBhIG1hbm5lciBvciBmb3JtYXQgdGhhdCBwZXJtaXRzIGVkaXRpbmcsIGFsdGVyYXRpb25zLCBlbmhhbmNlbWVudHMsIG9yIG1vZGlmaWNhdGlvbnMgYnkgdGhlIHJlY2lwaWVudCBvZiBzdWNoIGRvY3VtZW50LiBZb3UgbWF5IG5vdCBrbm93aW5nbHkgdHJhbnNtaXQgYW55IGVsZWN0cm9uaWMgZG9jdW1lbnQgb3IgdGhlIEZvbnQgU29mdHdhcmUgdG8gYW55IHBhcnR5IHRoYXQgaW50ZW5kcyBvciBpcyBsaWtlbHkgdG8gImhhY2ssIiBlZGl0LCBhbHRlciwgZW5oYW5jZSwgb3Igb3RoZXJ3aXNlIG1vZGlmeSB0aGUgRm9udCBTb2Z0d2FyZSBvciByZW1vdmUgdGhlIEZvbnQgU29mdHdhcmUgZnJvbSBhbnkgZG9jdW1lbnQuICA4LiBZb3UgbWF5IG1ha2Ugb25lICgxKSBiYWNrLXVwIGNvcHkgb2YgRm9udCBTb2Z0d2FyZSBmb3IgYXJjaGl2YWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBhZ3JlZSB0byByZXRhaW4gZXhjbHVzaXZlIGN1c3RvZHkgYW5kIGNvbnRyb2wgb3ZlciBhbnkgc3VjaCBjb3B5LiBVcG9uIHRlcm1pbmF0aW9uIG9mIHRoZSBBZ3JlZW1lbnQsIHlvdSBtdXN0IGRlc3Ryb3kgdGhlIG9yaWdpbmFsIGFuZCBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgdGhlIEZvbnQgU29mdHdhcmUuIFRoZSB1bmF1dGhvcml6ZWQgc2hhcmluZywgbGVuZGluZywgcmVudGluZywgc2FsZSwgb3Igb3RoZXIgdW5hdXRob3JpemVkIHVzZSBvciBtaXN1c2Ugb2YgdGhlIGJhY2stdXAgY29weSBpcyBhIG1hdGVyaWFsIGJyZWFjaCBvZiB0aGlzIEFncmVlbWVudCBhbmQgd2lsbCByZXN1bHQgaW4gdGhlIGltbWVkaWF0ZSB0ZXJtaW5hdGlvbiBvZiB0aGlzIExpY2Vuc2UuICA5LiBJZiBubyBvdGhlciBvcHRpb24gZXhpc3RzLCB5b3UgbWF5IHRha2UgYSBkaWdpdGl6ZWQgY29weSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB1c2VkIGZvciBhIHBhcnRpY3VsYXIgZG9jdW1lbnQsIG9yIEZvbnQgU29mdHdhcmUgZW1iZWRkZWQgaW4gYW4gZWxlY3Ryb25pYyBkb2N1bWVudCB0aGF0IGlzIHNlbnQgdG8gYSBjb21tZXJjaWFsIHByaW50ZXIgb3Igc2VydmljZSBidXJlYXUgZm9yIHVzZSBieSB0aGUgcHJpbnRlciBvciBzZXJ2aWNlIGJ1cmVhdSBmb3IgcHJlcGFyaW5nIHRoZSBkb2N1bWVudCBwcm92aWRlZCB0aGF0IHRoZSBwcmludGVyIG9yIHNlcnZpY2UgYnVyZWF1IHJlcHJlc2VudHMgdGhhdCBpdCBzaGFsbCBkZXN0cm95IGFueSBhbmQgYWxsIGNvcGllcyBvZiB0aGUgRm9udCBTb2Z0d2FyZSB1cG9uIGNvbXBsZXRpb24gb2YgaXRzIHdvcmsuIE5vdHdpdGhzdGFuZGluZywgeW91IGFncmVlIHRoYXQgdGhlIHRyYW5zbWlzc2lvbiBvZiBhICJwcmludC9wcmV2aWV3IiBQREYgZG9jdW1lbnQgaXMgdGhlIGZpcnN0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIG9mIHRyYW5zbWl0dGluZyBzdWNoIGRvY3VtZW50cyB0byBhIHNlcnZpY2UgYnVyZWF1IG9yIHByaW50ZXIuICAxMC4gVGhlIGRlc2lnbnMgZW1ib2RpZWQgYW5kIHRoZSBGb250IFNvZnR3YXJlIGFuZCB0aGUgRm9udCBTb2Z0d2FyZSBhbmQgYW55IHRyYWRlbWFya3MgYXNzb2NpYXRlZCB0aGVyZXdpdGggYXJlIHRoZSBleGNsdXNpdmUgcHJvcGVydHkgb2YgQ29tbWVyY2lhbCBUeXBlIGFuZCB0aGVpciBkZXNpZ25lcnMsIHdoZXJlIGFwcGxpY2FibGUgYW5kIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIGNvcHlyaWdodCBhbmQgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMsIGJ5IHRoZSBjb3B5cmlnaHQgYW5kIGRlc2lnbiBsYXdzIG9mIG90aGVyIG5hdGlvbnMsIGFuZCBieSBvdGhlciBpbnRlcm5hdGlvbmFsIHRyZWF0aWVzLiBBbnkgY29waWVzIHRoYXQgeW91IGFyZSBleHByZXNzbHkgcGVybWl0dGVkIHRvIG1ha2UgcHVyc3VhbnQgdG8gdGhlIEFncmVlbWVudCBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgY29weXJpZ2h0LCB0cmFkZW1hcmssIGFuZCBvdGhlciBwcm9wcmlldGFyeSBub3RpY2VzIHRoYXQgYXBwZWFyIG9uIG9yIGluIHRoZSBGb250IFNvZnR3YXJlLiAgMTEuIFlvdSBhZ3JlZSBub3QgdG8gY3JlYXRlLCBhc3Npc3QgaW4gYW5kL29yIGNhdXNlIHRoZSBjcmVhdGlvbiBvZiBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGUgRm9udHMgb3IgRm9udCBTb2Z0d2FyZSwgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIGNyZWF0aW5nIGFkZGl0aW9uYWwgd2VpZ2h0czsgY3JlYXRpbmcgYWRkaXRpb25hbCBvciBkZWxldGluZyBleGlzdGluZyBjaGFyYWN0ZXJzOyBtb2RpZnlpbmcgZXhpc3RpbmcgY2hhcmFjdGVyczsgbW9kaWZ5aW5nIGZvbnQgc3BhY2luZyBhbmQga2VybmluZzsgb3IgY29udmVydGluZyBmb250cyB0byBhbiBhbHRlcm5hdGUgZGlnaXRhbCBmb3JtYXQsIG1vZGlmeSwgYWRhcHQsIHRyYW5zbGF0ZSwgcmV2ZXJzZSBlbmdpbmVlciwgZGVjb21waWxlLCBkaXNhc3NlbWJsZSwgYWx0ZXIsIG9yIG90aGVyd2lzZSBhdHRlbXB0IHRvIGRpc2NvdmVyIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB3aXRob3V0IGZpcnN0IG9idGFpbmluZyB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDb21tZXJjaWFsIFR5cGUuIEluIHRoZSBldmVudCB0aGF0IHBlcm1pc3Npb24gaXMgZ2l2ZW4gdG8geW91LCBhbnkgYW5kIGFsbCBtb2RpZmljYXRpb25zIGFuZCBhZGRpdGlvbnMgc2hhbGwgYmVjb21lIGFuZCBzaGFsbCByZW1haW4gdGhlIHNvbGUgYW5kIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBDb21tZXJjaWFsIFR5cGUgYW5kIHlvdSBtYXkgbm90IHNlbGwsIGxlbmQgb3Igb3RoZXJ3aXNlIHRyYW5zbWl0IGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGUgRm9udCBTb2Z0d2FyZSB0byBhbnkgdGhpcmQgcGFydHkuIE90aGVyIGp1cmlzZGljdGlvbnMgbWF5IHByb3ZpZGUgZm9yIGFkZGl0aW9uYWwgcmlnaHRzLCBhbmQgaWYgYXBwbGljYWJsZSwgeW91IG1heSByZXZlcnNlIGVuZ2luZWVyIG9yIGRlY29tcGlsZSB0aGUgRm9udCBTb2Z0d2FyZSBvbmx5IHRvIHRoZSBleHRlbnQgdGhhdCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGFuIGludGVyb3BlcmFibGUgc29mdHdhcmUgcHJvZ3JhbSAoYnV0IG9ubHkgZm9yIHN1Y2ggcHVycG9zZSBhbmQgb25seSB0byB0aGUgZXh0ZW50IHRoYXQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBpcyBub3QgcHJvdmlkZWQgYnkgQ29tbWVyY2lhbCBUeXBlIHVwb24gd3JpdHRlbiByZXF1ZXN0KS4gQWxsIHRyYWRlbWFya3Mgc2hhbGwgYmUgdXNlZCBpbiBhY2NvcmRhbmNlIHdpdGggYWNjZXB0ZWQgdHJhZGVtYXJrIHByYWN0aWNlLCBpbmNsdWRpbmcgaWRlbnRpZmljYXRpb24gb2YgdGhlIHRyYWRlbWFyayBvd25lcidzIG5hbWUuIFVzZSBvZiB0aGUgdHJhZGVtYXJrcyBhc3NvY2lhdGVkIHdpdGggdGhlIEZvbnQgU29mdHdhcmUgaW51cmVzIHNvbGVseSB0byB0aGUgYmVuZWZpdCBvZiBDb21tZXJjaWFsIFR5cGUuICAgMTIuIFVzZSBvZiBDb21tZXJjaWFsIFR5cGUgRm9udCBTb2Z0d2FyZSBpbiB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXMgYW5kL29yIGFwcGxpY2F0aW9ucyBpcyBOT1QgcGVybWl0dGVkIHdpdGhvdXQgZmlyc3Qgb2J0YWluaW5nIHRoZSBhcHByb3ByaWF0ZSBsaWNlbnNpbmcgdXBncmFkZS4gICBhKSAmIzk7QUxQSEFCRVQgT1IgTEVUVEVSRk9STS1SRUxBVEVEIFBST0RVQ1RTICYjOTsmIzk7Rk9SIFJFU0FMRSBPUiBMRVRURVJGT1JNIENSRUFUSU9OIFBST0RVQ1RTIE9SIERFVklDRVM7IGIpICYjOTtFTUJFRERJTkcgSU4gRUxFQ1RST05JQyBERVZJQ0VTOyBBTEwgR0FNSU5HIFVTRVMgQU5EL09SIERFVklDRVM7IGMpICYjOTtFTUJFRERJTkcgSU4gU09GVFdBUkU7IGQpICYjOTtTVE9SSU5HIEFORC9PUiBTRVJWSU5HIFRIRSBGT05UIFNPRlRXQVJFIEZPUiBUSEUgUFVSUE9TRVMgT0YgTUFLSU5HIFRIRSBGT05UIFNPRlRXQVJFICYjOTsmIzk7QVZBSUxBQkxFIFZJQSBUSEUgSU5URVJORVQgVVNJTkcgRk9OVCBSRVBMQUNFTUVOVCBURUNITk9MT0dJRVMuICAgaSkgTGV0dGVyZm9ybSBvciBBbHBoYWJldCBQcm9kdWN0cyBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBzaWduYWdlIGFuZC9vciBzY3JhcGJvb2tpbmcgdXNlcyBpbnZvbHZpbmcgcmVwcm9kdWN0aW9ucyBvZiBpbmRpdmlkdWFsIGxldHRlcmZvcm1zLCB1c2UgaW4gdGhlIGNyZWF0aW9uIG9mIHNpZ25hZ2Ugb3IgbnVtYmVyaW5nIHByb2R1Y3RzLCBydWJiZXIgc3RhbXBzLCBkaWUtY3V0IHByb2R1Y3RzLCBzdGVuY2lsIHByb2R1Y3RzLCB0YXR0b28sIGZsYXNoLCBvciBhZGhlc2l2ZSBzdGlja2VyIGFscGhhYmV0IHByb2R1Y3RzIG9yIGFueSBvdGhlciBwcm9kdWN0IGNvbnRhaW5pbmcgYW55IGltYWdlIG9mIG9yIGRlcml2ZWQgZnJvbSB0aGUgZGVzaWduIG9mIHRoZSBGb250IGVtYm9kaWVkIGluIHRoZSBGb250IFNvZnR3YXJlIG9mIHdoaWNoIGFueSBsaWtlbmVzcyBvZiB0aGUgYWxwaGFiZXQgY2FuIGJlIHJlcHJvZHVjZWQuICBpaSkgRW1iZWRkaW5nIG9mIHRoZSBGb250cyBpbiBhIHByaW50L3ByZXZpZXcgZm9ybWF0IGlzIHBlcm1pdHRlZC4gTm90d2l0aHN0YW5kaW5nLCBlbWJlZGRpbmcgb3Igb3RoZXIgdXNlIG9mIHRoZSBGb250cyBvciB0aGUgb3V0bGluZXMgdGhlcmVvZiBpbiBhbnkgbWV0aG9kIHdoaWNoIHBlcm1pdHMgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIEZvbnQgU29mdHdhcmUgb2YgdGhlIGRlc2lnbnMgZW1ib2RpZWQgdGhlcmVpbiBpcyBleHByZXNzbHkgcHJvaGliaXRlZC4gQW55IHN1Y2ggdXNlIHJlcXVpcmVzIHRoZSBleHByZXNzIHdyaXR0ZW4gcGVybWlzc2lvbiBvZiBDb21tZXJjaWFsIFR5cGUgYW5kIG1heSBvciBtYXkgbm90IHJlcXVpcmUgdGhlIHB1cmNoYXNlIG9mIGEgbGljZW5zZSB1cGdyYWRlIGF0IHRoZSBzb2xlIGRpc2NyZXRpb24gb2YgQ29tbWVyY2lhbCBUeXBlLiAgaWlpKSBJbiB0aGUgZXZlbnQgYW55IGRpbmdiYXRzIG9yIG90aGVyIGFydCBmb3JtcyBhcmUgcGFydCBvZiB0aGUgRm9udCBTb2Z0d2FyZSwgdXNlIG9mIHRoZSBhcnR3b3JrIGlzIGZ1cnRoZXIgcmVzdHJpY3RlZC4gWW91IG1heSB1c2UgdGhlIGFydHdvcmssIGRyYXdpbmdzIGFuZC9vciBkaW5nYmF0cyBvbiBnb29kcyBmb3Igc2FsZSwgaW4gbG9nbyBkZXNpZ24sIHJldGFpbCBwYWNrYWdpbmcgb3IgaW4gcG9pbnQgb2Ygc2FsZSB1c2VzIG9ubHkgYWZ0ZXIgdGhlIHB1cmNoYXNlIG9mIGEgbGljZW5zZSB1cGdyYWRlLiAgSW4gb3JkZXIgdG8gb2J0YWluIGEgbGljZW5zZSB1cGdyYWRlLCB5b3UgbXVzdCBjb250YWN0IENvbW1lcmNpYWwgVHlwZSBhdCBpbmZvQGNvbW1lcmNpYWx0eXBlLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gSWYgeW91IGFyZSB1bnN1cmUgd2hldGhlciB5b3VyIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpcyBzcGVjaWZpY2FsbHkgcGVybWl0dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBjb250YWN0IENvbW1lcmNpYWwgVHlwZS4gIDEzLiBFbWJlZGRlZCBFbGVjdHJvbmljIERldmljZXMgaW5jbHVkZXMgdGhlIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBmb3IgYW55IG9uLXNjcmVlbiBkaXNwbGF5IG9yIG9uIGFuIGVsZWN0cm9uaWMgZGV2aWNlIG91dHNpZGUgYSBzaW5nbGUgbG9jYXRpb24uIEZvciBleGFtcGxlLCBhbmQgbm90IGJ5IHdheSBvZiBsaW1pdGF0aW9uLCBzdWNoIGVsZWN0cm9uaWMgZGV2aWNlcyBpbmNsdWRlIGEga2lvc2ssIGdhbWluZyBkZXZpY2VzLCBlbWJyb2lkZXJ5IG9yIHNld2luZyBtYWNoaW5lcyBnYW1lIHBsYXlpbmcgb3IgZ2FtYmxpbmcgZGV2aWNlcywgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIgdGhlIHNob3dpbmcgb3IgY3JlYXRpb24gb2YgY29waWVzIG9mIHRoZSBkZXNpZ24gZW1ib2RpZWQgaW4gdGhlIEZvbnQgU29mdHdhcmUgaXMgY3JlYXRlZCBieSB1c2Ugb2YgdGhlIHNvZnR3YXJlIG9yIGFzIGFuIGltYWdlIG9mIHRoZSBkZXNpZ24gaW4gdGlmZiwgZ2lmIG9yIG90aGVyIGZvcm1hdC4gICAxNC4gQ29tbWVyY2lhbCBUeXBlIEZvbnQgU29mdHdhcmUgaXMgbGljZW5zZWQgZm9yIHVzZSBieSBhIHNwZWNpZmllZCBudW1iZXIgb2YgdXNlcnMuIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpbiBtb3JlIHRoYW4gb25lIGdlb2dyYXBoaWMgbG9jYXRpb24gb3IgYnkgbWVhbnMgb2Ygc2VydmVyIG9yIGNlbnRyYWwgQ1BVIG91dHNpZGUgb2YgdGhlIHRlcm1zIG9mIHlvdXIgbGljZW5zZSBpcyBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhlIGVhY2ggdXNlciBvciBwb3RlbnRpYWwgdXNlciBpcyBsaWNlbnNlZC4gTGljZW5zZSB1cGdyYWRlcyBtYXkgYmUgcHVyY2hhc2VkIGZyb20gQ29tbWVyY2lhbCBUeXBlIGF0IGluZm9AY29tbWVyY2lhbHR5cGUuY29tLiAgMTUuIEV4Y2VwdCBhcyBtYXkgYmUgb3RoZXJ3aXNlIGV4cHJlc3NseSBwcm92aWRlZCBmb3IgaGVyZWluLCB5b3UgZXhwcmVzc2x5IGFncmVlIG5vdCB0byByZW50LCBsZWFzZSwgc3VibGljZW5zZSwgZ2l2ZSwgbGVuZCwgb3IgZnVydGhlciBkaXN0cmlidXRlIHRoZSBGb250IFNvZnR3YXJlLiBZb3UgbWF5IHRyYW5zZmVyIGFsbCB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBhbm90aGVyIHBlcnNvbiBvciBlbnRpdHkgcHJvdmlkZWQgdGhhdCAoaSkgdGhlIHRyYW5zZmVyZWUgYWNjZXB0cyBhbmQgYWdyZWVzIHRvIGJlIGJvdW5kIGJ5IGFsbCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCAoaWkpIHlvdSBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIEZvbnQgU29mdHdhcmUsIGluY2x1ZGluZyBhbGwgY29waWVzIHN0b3JlZCBpbiB0aGUgbWVtb3J5IG9mIGEgaGFyZHdhcmUgZGV2aWNlLiAgMTYuIENvbW1lcmNpYWwgVHlwZSB3YXJyYW50cyB0aGF0IHRoZSBGb250IFNvZnR3YXJlIHdpbGwgcGVyZm9ybSBzdWJzdGFudGlhbGx5IGluIGFjY29yZGFuY2Ugd2l0aCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgbmluZXR5ICg5MCkgZGF5cyBmb2xsb3dpbmcgZGVsaXZlcnkgb2YgdGhlIEZvbnQgU29mdHdhcmUuIFRvIG1ha2UgYSB3YXJyYW50eSBjbGFpbSwgeW91IG11c3QgZWl0aGVyIHJldHVybiB0aGUgRm9udCBTb2Z0d2FyZSB0byB0aGUgbG9jYXRpb24gZnJvbSB3aGljaCB5b3Ugb2J0YWluZWQgaXQgdG9nZXRoZXIgd2l0aCBhIGNvcHkgb2YgeW91ciBzYWxlcyByZWNlaXB0IG9yLCBpZiBhY3F1aXJlZCBvbi1saW5lLCBjb250YWN0IHRoZSBvbi1saW5lIHByb3ZpZGVyIHdpdGggc3VmZmljaWVudCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgeW91ciBhY3F1aXNpdGlvbiBvZiB0aGUgRm9udCBTb2Z0d2FyZSB0byBwZXJtaXQgdGhlIGNvbmZpcm1hdGlvbiBvZiB0aGUgZWZmZWN0aXZlIGRhdGUgb2YgdGhpcyBMaWNlbnNlLiBTY2h3YXJ0emNvLCBJbmMuIGFuZCBDb21tZXJjaWFsIFR5cGUgaGVyZWJ5IEVYUFJFU1NMWSBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMsIEVYUFJFU1MgQU5EIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIENPTU1FUkNJQUwgVFlQRSBET0VTIE5PVCBXQVJSQU5UIFRIQVQgVEhFIE9QRVJBVElPTiBPRiBUSEUgRk9OVCBTT0ZUV0FSRSBXSUxMIEJFIFVOSU5URVJSVVBURUQgT1IgRVJST1ItRlJFRSwgT1IgVEhBVCBUSEUgRk9OVCBTT0ZUV0FSRSBJUyBXSVRIT1VUIERFRkVDVFMuIFVOREVSIE5PIENJUkNVTVNUQU5DRVMgU0hBTEwgQ09NTUVSQ0lBTCBUWVBFIEJFIExJQUJMRSBUTyBZT1UgT1IgQU5ZIE9USEVSIFBBUlRZLCBXSEVUSEVSIElOIENPTlRSQUNUIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFKSBPUiBPVEhFUldJU0UsIEZPUiBBTlkgU1BFQ0lBTCwgQ09OU0VRVUVOVElBTCwgT1IgSU5DSURFTlRBTCBEQU1BR0VTLCBJTkNMVURJTkcgTE9TVCBQUk9GSVRTLCBTQVZJTkdTIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTiBBUyBBIFJFU1VMVCBPRiBUSEUgVVNFIE9GIFRIRSBGT05UIFNPRlRXQVJFIEVWRU4gSUYgTk9USUZJRUQgSU4gQURWQU5DRSBPRiBTVUNIIFBPU1NJQklMSVRZLiBZb3UgaGVyZWJ5IGFncmVlIHRoYXQgeW91ciBlbnRpcmUsIGV4Y2x1c2l2ZSwgYW5kIGN1bXVsYXRpdmUgbGlhYmlsaXR5IGFuZCByZW1lZHkgc2hhbGwgYmUgbGltaXRlZCB0byB0aGUgcHVyY2hhc2UgcHJpY2Ugb2YgdGhpcyBGb250IFNvZnR3YXJlIExpY2Vuc2UuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgc2hhbGwgU2Nod2FydHpjbywgSW5jLidzIG9yIENvbW1lcmNpYWwgVHlwZSdzIGxpYWJpbGl0eSB0byB5b3UgZXhjZWVkIGVpdGhlciB0aGUgcmVmdW5kaW5nIG9mIHRoZSBjb3N0IG9mIHRoZSBGb250IFNvZnR3YXJlIExpY2Vuc2Ugb3IgcmVwbGFjZW1lbnQgb2YgdGhlIEZvbnQgU29mdHdhcmUgZWl0aGVyIG9mIHdoaWNoIHNoYWxsIGJlIGF0IENvbW1lcmNpYWwgVHlwZSdzIHNvbGUgZGlzY3JldGlvbi4gIDE3LiBPVEhFUiBMQVcgLSBDT05TVU1FUlMgT05MWS4gU29tZSBqdXJpc2RpY3Rpb25zIGRvIG5vdCBhbGxvdyB0aGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgaW5jaWRlbnRhbCwgY29uc2VxdWVudGlhbCBvciBzcGVjaWFsIGRhbWFnZXMsIGltcGxpZWQgd2FycmFudGllcyBvciBpbXBsaWVkIHdhcnJhbnRpZXMgYXMgdGhleSByZWxhdGUgdG8gc2FsZXMgdG8gY29uc3VtZXJzLiBBTlkgSU1QTElFRCBXQVJSQU5UWSBPUiBPVEhFUiBSSUdIVCBDUkVBVEVEIEJZIExBVyBJUyBPTkxZIEVGRkVDVElWRSBGT1IgVEhFIE5JTkVUWSAoOTApIERBWSBXQVJSQU5UWSBQRVJJT0QuIFRIRVJFIEFSRSBOTyBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQgQUZURVIgVEhFIE5JTkVUWSAoOTApIERBWSBXQVJSQU5UWSBQRVJJT0QuIFRvIHRoZSBleHRlbnQgcGVybWlzc2libGUgYnkgbGF3LCB5b3UgYWdyZWUgdGhhdCBhbGwgaW1wbGllZCB3YXJyYW50aWVzIGFyZSBub3QgdG8gYmUgZWZmZWN0aXZlIGZvciBtb3JlIHRoYW4gdGhpcnR5ICgzMCkgZGF5cy4gICAxOC4gWW91IGV4cHJlc3NseSBhZ3JlZSB0aGF0IHRoaXMgQWdyZWVtZW50IHNoYWxsIGJlIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yaywgVS5TLkEuLCBhcyB0aGV5IGFwcGx5IHRvIGNvbnRyYWN0cyBlbnRlcmVkIGludG8gYW5kIHdob2xseSBwZXJmb3JtZWQgdGhlcmVpbiBhbmQgd2l0aG91dCByZXNwZWN0IHRvIGl0cyBjb25mbGljdCBvZiBsYXdzIHByb3Zpc2lvbnMgb3IgdGhlIGNvbmZsaWN0IG9mIGxhd3MgcHJvdmlzaW9ucyBvZiBhbnkgb3RoZXIganVyaXNkaWN0aW9uLiBZb3UgZXhwcmVzc2x5IHN1Ym1pdCB0byB0aGUgcGVyc29uYWwganVyaXNkaWN0aW9uIG9mIHRoZSBzdGF0ZSBhbmQgZmVkZXJhbCBjb3VydHMgaW4gdGhlIFN0YXRlIG9mIE5ldyBZb3JrLCBVU0EsIGFncmVlIHRvIHdhaXZlIGFueSBkZWZlbnNlcyBhcmlzaW5nIG91dCBvZiB0aGUgc2VsZWN0aW9uIG9mIGp1cmlzZGljdGlvbiBvciB2ZW51ZSBhbmQgZnVydGhlciBhZ3JlZSB0byBzZXJ2aWNlIG9mIHByb2Nlc3MgYnkgbWFpbC4gWW91IGhlcmVieSBleHByZXNzbHkgYWdyZWUgdGhhdCB0aGUgYXBwbGljYXRpb24gb2YgdGhlIFVuaXRlZCBOYXRpb25zIENvbnZlbnRpb24gb2YgQ29udHJhY3RzIGZvciB0aGUgSW50ZXJuYXRpb25hbCBTYWxlIG9mIEdvb2RzIGlzIGV4cHJlc3NseSBleGNsdWRlZC4gIDE5LiBZb3UgYWNrbm93bGVkZ2UgdGhhdCB5b3UgaGF2ZSByZWFkIGFuZCB1bmRlcnN0YW5kIHRoaXMgQWdyZWVtZW50IGFuZCB0aGF0IGJ5IHVzaW5nIHRoZSBzb2Z0d2FyZSB5b3UgYWdyZWUgdG8gYmUgYm91bmQgYnkgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zLiBZb3UgZnVydGhlciBhZ3JlZSB0aGF0IGl0IGlzIHRoZSBjb21wbGV0ZSBhbmQgZXhjbHVzaXZlIHN0YXRlbWVudCBvZiB0aGUgYWdyZWVtZW50IGJldHdlZW4gQ29tbWVyY2lhbCBUeXBlIGFuZCB5b3Ugd2hpY2ggc3VwZXJzZWRlcyBhbnkgcHJvcG9zYWwgb3IgcHJpb3IgYWdyZWVtZW50LCBvcmFsIG9yIHdyaXR0ZW4sIGFuZCBhbnkgb3RoZXIgY29tbXVuaWNhdGlvbnMgcmVsYXRpbmcgdG8gdGhlIHN1YmplY3QgbWF0dGVyIG9mIHRoaXMgQWdyZWVtZW50LiBObyB2YXJpYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50IG9yIGFueSBkaWZmZXJlbnQgdGVybXMgd2lsbCBiZSBlbmZvcmNlYWJsZSBpbiB0aGUgYWJzZW5jZSBvZiBhbiBleHByZXNzIHdyaXR0ZW4gYW1lbmRtZW50LCBvciBjb25zZW50LCBpbmNsdWRpbmcgYSB3cml0dGVuIGV4cHJlc3Mgd2FpdmVyIG9mIHRoZSBhZmZlY3RlZCB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudC4gSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBkZWNsYXJlZCBieSBhIGNvdXJ0IG9mIGNvbXBldGVudCBqdXJpc2RpY3Rpb24gdG8gYmUgaW52YWxpZCwgdm9pZCBvciB1bmVuZm9yY2VhYmxlLCB0aGUgcmVtYWluaW5nIHByb3Zpc2lvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgY29udGludWUgaW4gZnVsbCBmb3JjZSBhbmQgZWZmZWN0LCBhbmQgdGhlIGludmFsaWQgcHJvdmlzaW9uIHNoYWxsIGJlIHJlcGxhY2VkIGJ5IENvbW1lcmNpYWwgVHlwZSB3aXRoIGEgcHJvdmlzaW9uIHRoYXQgZWZmZWN0cyB0aGUgaW50ZW50IG9mIHRoZSBpbnZhbGlkIHByb3Zpc2lvbi4gIDIwLiBDb21tZXJjaWFsIFR5cGUgZXhwcmVzc2x5IHJlc2VydmVzIHRoZSByaWdodCB0byBhbWVuZCBvciBtb2RpZnkgaXRzIExpY2Vuc2UgQWdyZWVtZW50cyBhdCBhbnkgdGltZSBhbmQgd2l0aG91dCBwcmlvciBub3RpZmljYXRpb24uICAyMS4gVGhlIEFncmVlbWVudCBzaGFsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSBpbiB0aGUgZXZlbnQgeW91IG9yIGFueSBhdXRob3JpemVkIHVzZXIgYnJlYWNoZXMgYW55IHRlcm0gb3IgY29uZGl0aW9uIHNldCBmb3J0aCBoZXJlaW4uIE5vdHdpdGhzdGFuZGluZyBhbnkgdGVybWluYXRpb24gb2YgdGhpcyBMaWNlbnNlLCBDb21tZXJjaWFsIFR5cGUgZXhwcmVzc2x5IHJlc2VydmVzIGFueSBhbmQgYWxsIG90aGVyIHJpZ2h0cyBhbmQgcmVtZWRpZXMgdW5kZXIgZXF1aXR5IG9yIGxhdy4gVGhlIEFncmVlbWVudCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiBhIHdyaXRpbmcgc2lnbmVkIGJ5IGFuIGF1dGhvcml6ZWQgb2ZmaWNlciBvZiBDb21tZXJjaWFsIFR5cGUuICAyMi4gWW91IGFncmVlIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBjb21wbGlhbmNlIHdpdGggYWxsIGxhd3MsIGZvcmVpZ24gYW5kIGRvbWVzdGljIHJlbGF0aW5nIHRvIHRoZSBjb250cm9sIG9mIGV4cG9ydHMgb3IgdGhlIHRyYW5zZmVyIG9mIHRlY2hub2xvZ3kuIElmIHlvdSBhcmUgcHVyY2hhc2luZyB0aGlzIExpY2Vuc2UgZm9yIGdvdmVybm1lbnQgdXNlLCBvciB1bmRlciBhIGdvdmVybm1lbnQgY29udHJhY3QsIHlvdSBhZ3JlZSB0byBmYW1pbGlhcml6ZSB5b3Vyc2VsZiB3aXRoIGFuZCBmb2xsb3cgYW55IGFwcGxpY2FibGUgcnVsZXMgYW5kIHJlZ3VsYXRpb25zIHJlbGF0aW5nIHRvIHRoZSBwdXJjaGFzZSBvZiBhIGxpY2Vuc2UgdG8gdXNlIHNvZnR3YXJlIGFuZCB0aGUgYWN0dWFsIHVzZSB0aGVyZW9mLiAgQWxsIGlucXVpcmllcyBhbmQgYXJyYW5nZW1lbnRzIGZvciByZXR1cm5zLCBpZiBhbnksIG1heSBiZSBzZW50IHZpYSBlLW1haWwgdG8gaW5mb0Bjb21tZXJjaWFsdHlwZS5jb20uIFRoZSBDb21tZXJjaWFsIFR5cGUgd2Vic2l0ZSBpcyBsb2NhdGVkIGF0IHd3dy5jb21tZXJjaWFsdHlwZS5jb20gIHYwOTA4MTVodHRwOi8vY29tbWVyY2lhbHR5cGUuY29tL2xpY2Vuc2VTdHlyZW5lIEEgVHJpYWwAQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAyADAAMQA2ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgBTAHQAeQByAGUAbgBlACAAQQAgAFIAZQBnAHUAbABhAHIAIABUAHIAaQBhAGwAUgBlAGcAdQBsAGEAcgAxAC4AMAAwADEAOwBDAE8ATQBNADsAUwB0AHkAcgBlAG4AZQBBAFQAcgBpAGEAbAAtAFIAZQBnAHUAbABhAHIAUwB0AHkAcgBlAG4AZQBBAFQAcgBpAGEAbAAtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMQA7AFAAUwAgADAAMAAxAC4AMAAwADEAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADIAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADkAMAAwAFMAdAB5AHIAZQBuAGUAIABBACAAaQBzACAAYQAgAHIAZQBnAGkAcwB0AGUAcgBlAGQAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC8AUwBjAGgAdwBhAHIAdAB6AGMAbwAgAEkAbgBjAC4AQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALAAgAEkAbgBjAC4AQgBlAHIAdABvAG4AIABIAGEAcwBlAGIAZQBoAHQAdABwADoALwAvAGMAbwBtAG0AZQByAGMAaQBhAGwAdAB5AHAAZQAuAGMAbwBtAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBiAGUAcgB0AG8AbgBoAGEAcwBlAGIAZQAuAGMAbwBtAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAEUAbgBkACAAVQBzAGUAcgAgAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgACAAUABMAEUAQQBTAEUAIABSAEUAQQBEACAAVABIAEkAUwAgAEQATwBDAFUATQBFAE4AVAAgAEMAQQBSAEUARgBVAEwATABZACAAYQBuAGQAIAB3AGUAIAByAGUAYwBvAG0AbQBlAG4AZAAgAHQAaABhAHQAIAB5AG8AdQAgAGsAZQBlAHAAIABhACAAYwBvAHAAeQAgAGYAbwByACAAZgB1AHIAdABoAGUAcgAgAHIAZQBmAGUAcgBlAG4AYwBlAC4AIAAgACAAVABoAGkAcwAgAEUAbgBkACAAVQBzAGUAcgAgAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgACgAdABoAGUAIAAiAEEAZwByAGUAZQBtAGUAbgB0ACIAIAAiAEUAVQBMAEEALAAiACAAIgBMAGkAYwBlAG4AcwBlACwAIgAgACIAQQBnAHIAZQBlAG0AZQBuAHQAIgAgAG8AcgAgACIATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0ACIAKQAgAGkAcwAgAGEAIABsAGUAZwBhAGwAIABhAGcAcgBlAGUAbQBlAG4AdAAgAGIAZQB0AHcAZQBlAG4AIAB5AG8AdQAgAGEAbgBkACAAUwBjAGgAdwBhAHIAdAB6AGMAbwAsACAASQBuAGMALgAsACAAZAAvAGIALwBhACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALAAgAGEALwBkAC8AYgAvAGEAIABTAHQALgAgAEIAcgBpAGQAZQAgAFQAeQBwAGUAIABGAG8AdQBuAGQAcgB5ACAAKABjAG8AbABsAGUAYwB0AGkAdgBlAGwAeQAsACAAIgBDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAiACkAIABhAG4AZAAgAGIAZQBjAG8AbQBlAHMAIABhACAAYgBpAG4AZABpAG4AZwAgAGMAbwBuAHQAcgBhAGMAdAAgAGIAZQB0AHcAZQBlAG4AIAB5AG8AdQAgAGEAbgBkACAAUwBjAGgAdwBhAHIAdAB6AGMAbwAuACAAVABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAZwBvAHYAZQByAG4AcwAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdQBzAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAcwAgAGUAbQBiAG8AZABpAGUAZAAgAHQAaABlAHIAZQBpAG4AIAAoAGMAbwBsAGwAZQBjAHQAaQB2AGUAbAB5ACwAIAAiAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIgApACwAIAB0AG8AZwBlAHQAaABlAHIAIAB3AGkAdABoACAAYQBuAHkAIABtAGUAZABpAGEALAAgAHAAcgBpAG4AdABlAGQAIABtAGEAdABlAHIAaQBhAGwAcwAsACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4ALAAgAHUAcABkAGEAdABlAHMALAAgAGEAZABkAC0AbwBuAHMALAAgAGEAcgB0AHcAbwByAGsALAAgAHcAZQBiACAAcwBlAHIAdgBpAGMAZQBzACAAYQBuAGQAIABhAG4AeQAgAG8AdABoAGUAcgAgAG0AYQB0AGUAcgBpAGEAbAAgAHQAaABhAHQAIABtAGEAeQAgAGIAZQAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIAB3AGkAdABoACAAdABoAGUAIABwAHIAbwBkAHUAYwB0ACAAbgBvAHcAIABvAHIAIABpAG4AIAB0AGgAZQAgAGYAdQB0AHUAcgBlAC4AIABUAGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAYwBvAG0AZQBzACAAZQBmAGYAZQBjAHQAaQB2AGUAIAAoAGEAKQAgAHcAaABlAG4AIAB5AG8AdQAgACIAQQBDAEMARQBQAFQAIABMAEkAQwBFAE4AUwBFACAAQQBHAFIARQBFAE0ARQBOAFQALAAiACAAbwByACAAKABiACkAIABpAGYAIAB5AG8AdQAgAGEAcgBlACAAYQBjAHEAdQBpAHIAZQAgAGEAbgBkACAAYQBjAGMAZQBwAHQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAG4AIABhACAAQwBvAG0AcABhAGMAdAAgAEQAaQBzAGMAIABvAHIAIABEAGkAZwBpAHQAYQBsACAAVgBpAGQAZQBvACAARABpAHMAawAgACgAQwBEACwAIABEAFYARAApACwAIABvAHIAIAAoAGMAKQAgAHcAaABlAG4AIAB5AG8AdQAgAG8AcABlAG4AIAB0AGgAZQAgAGMAbwBtAHAAcgBlAHMAcwBlAGQAIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZgBpAGwAZQAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGMAbwBuAHQAYQBpAG4AZQBkAC4AIABJAGYAIAB5AG8AdQAgAGQAbwAgAG4AbwB0ACAAdwBpAHMAaAAgAHQAbwAgAGUAbgB0AGUAcgAgAGkAbgB0AG8AIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALAAgAGQAbwAgAG4AbwB0ACAAcAB1AHIAYwBoAGEAcwBlACwAIABhAGMAYwBlAHMAcwAsACAAZABvAHcAbgBsAG8AYQBkACAAYQBuAGQALwBvAHIAIABpAG4AcwB0AGEAbABsACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIAB1AHMAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAIAAxAC4AIABVAHAAbwBuACAAcABhAHkAbQBlAG4AdAAgAGkAbgAgAGYAdQBsAGwALAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAdwBpAGwAbAAgAGcAcgBhAG4AdAAgAHkAbwB1ACAAYQAgAG4AbwBuAC0AZQB4AGMAbAB1AHMAaQB2AGUAIAB0AGUAcgBtAGkAbgBhAGIAbABlACAATABpAGMAZQBuAHMAZQAgAHQAbwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAaABhAHQAIABhAGMAYwBvAG0AcABhAG4AaQBlAHMAIAB0AGgAaQBzACAARQBVAEwAQQAuACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAbQBpAHQAZQBkACAAdABvACAAUABlAHIAcwBvAG4AYQBsACAAbwByACAASQBuAHQAZQByAG4AYQBsACAAQgB1AHMAaQBuAGUAcwBzACAAVQBzAGUAIABvAG4AbAB5AC4AIABGAG8AcgAgAHQAaABlACAAcAB1AHIAcABvAHMAZQBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIAAiAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIgAgAHMAaABhAGwAbAAgAGIAZQAgAGQAZQBmAGkAbgBlAGQAIABhAHMAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0AHMAIAB0AG8AZwBlAHQAaABlAHIAIAB3AGkAdABoACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdwBoAGkAYwBoACwAIAB3AGgAZQBuACAAdQBzAGUAZAAgAGcAZQBuAGUAcgBhAHQAZQBzACAAdABoAGUAIAB0AHkAcABlAGYAYQBjAGUALAAgAHQAeQBwAG8AZwByAGEAcABoAGkAYwAgAGQAZQBzAGkAZwBuAHMAIABhAG4AZAAsACAAaQBmACAAYQBwAHAAbABpAGMAYQBiAGwAZQAsACAAbwByAG4AYQBtAGUAbgB0AHMAIABvAHIAIABvAHQAaABlAHIAIABkAGUAcwBpAGcAbgBzAC4AIABQAGUAcgBzAG8AbgBhAGwAIABvAHIAIABJAG4AdABlAHIAbgBhAGwAIABCAHUAcwBpAG4AZQBzAHMAIABVAHMAZQAgAHMAaABhAGwAbAAgAG0AZQBhAG4AIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAbwByACAAeQBvAHUAcgAgAGMAdQBzAHQAbwBtAGEAcgB5ACAAcABlAHIAcwBvAG4AYQBsACAAbwByACAAaQBuAHQAZQByAG4AYQBsACAAYgB1AHMAaQBuAGUAcwBzACAAcAB1AHIAcABvAHMAZQBzACAAYQBuAGQALAAgAGUAeABjAGUAcAB0ACAAYQBzACAAbQBhAHkAIABvAHQAaABlAHIAdwBpAHMAZQAgAHAAZQByAG0AaQB0AHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAHMAaABhAGwAbAAgAG4AbwB0ACAAbQBlAGEAbgAgAG8AcgAgAGkAbgBjAGwAdQBkAGUAIAB0AGgAZQAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIABkAGkAcwB0AHIAaQBiAHUAdABpAG8AbgAgAG8AcgAgAHUAcwBlACAAbwBmACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAG8AZgAgAHQAaABlACAAZgBvAG4AdABzACAAbwByACAAYQByAHQAdwBvAHIAawAgAGUAbQBiAG8AZABpAGUAZAAgAHQAaABlAHIAZQBpAG4AIABvAHIAIABhAG4AeQAgAGMAbwBtAHAAbwBuAGUAbgB0ACAAdABoAGUAcgBlAG8AZgAgAGYAbwByACAAYQBuAHkAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAdQBzAGUAIABvAHIAIABpAG4AIABhAG4AeQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABQAHIAbwBkAHUAYwB0ACAAZgBvAHIAIABzAGEAbABlACAAdwBoAGEAdABzAG8AZQB2AGUAcgAuACAARgBvAHIAIAB0AGgAZQAgAHAAdQByAHAAbwBzAGUAcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAcAByAG8AaABpAGIAaQB0AGUAZAAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIAB1AHMAZQBzACAAaQBuAGMAbAB1AGQAZQAsACAAYgB5ACAAdwBhAHkAIABvAGYAIABlAHgAYQBtAHAAbABlACAAbgBvAHQAIABsAGkAbQBpAHQAYQB0AGkAbwBuACwAIABUAC0AcwBoAGkAcgB0AHMALAAgAHQAaABpAHIAZAAtAHAAYQByAHQAeQAgAHMAbwBmAHQAdwBhAHIAZQAsACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAZQB2AGkAYwBlAHMALAAgAG0AdQBnAHMALAAgAGEAbgBpAG0AYQB0AGkAbwBuACwAIABlAHQAYwAuACAAYQBuAGQAIABhAHMAIABtAGEAeQAgAGIAZQAgAGYAdQByAHQAaABlAHIAIABuAG8AdABlAGQAIABiAGUAbABvAHcALgAgAEkAZgAgAHkAbwB1ACAAYQByAGUAIAB1AG4AcwB1AHIAZQAgAHcAaABlAHQAaABlAHIAIAB5AG8AdQByACAAdQBzAGUAIABpAHMAIABuAG8AdAAgAHAAZQByAG0AaQB0AHQAZQBkACwAIABjAG8AbgB0AGEAYwB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgAFkAbwB1AHIAIABmAGEAaQBsAHUAcgBlACAAdABvACAAYwBvAG4AdABhAGMAdAAgAHQAbwAgAHMAZQBlAGsAIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAbwByACAAdABoAGUAIABsAGEAYwBrACAAbwBmACAAYQAgAHMAcABlAGMAaQBmAGkAYwAgAHAAcgBvAGgAaQBiAGkAdABpAG8AbgAgAGkAbgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHMAaABhAGwAbAAgAG4AbwB0ACAAYgBlACAAaQBuAHQAZQByAHAAcgBlAHQAZQBkACAAbwByACAAZABlAGUAbQBlAGQAIABhACAAdwBhAGkAdgBlAHIAIABvAHIAIABwAGUAcgBtAGkAcwBzAGkAYgBsAGUAIAB1AHMAZQAgAG8AZgAgAGEAbgB5ACAAawBpAG4AZAAuACAAWQBvAHUAIABoAGUAcgBlAGIAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABzAGgAYQBsAGwAIABmAHUAcgB0AGgAZQByACAAYwBvAG0AcAByAGkAcwBlACAAYQBsAGwAIABiAGkAdABtAGEAcAAgAHIAZQBwAHIAZQBzAGUAbgB0AGEAdABpAG8AbgBzACAAbwBmACAAdAB5AHAAZQBmAGEAYwBlACAAYQBuAGQAIAB0AHkAcABvAGcAcgBhAHAAaABpAGMAIABkAGUAcwBpAGcAbgBzACAAYQBuAGQAIABvAHIAbgBhAG0AZQBuAHQAcwAgAGMAcgBlAGEAdABlAGQAIABiAHkAIABvAHIAIABkAGUAcgBpAHYAZQBkACAAZgByAG8AbQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAVABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAcwBoAGEAbABsACAAYgBlACAAZABlAGUAbQBlAGQAIAB0AG8AIABpAG4AYwBsAHUAZABlACAAYQBuAHkAIAB1AHAAZwByAGEAZABlAHMALAAgAHUAcABkAGEAdABlAHMALAAgAHIAZQBsAGEAdABlAGQAIABmAGkAbABlAHMALAAgAHAAZQByAG0AaQB0AHQAZQBkACAAbQBvAGQAaQBmAGkAYwBhAHQAaQBvAG4AcwAsACAAaQBmACAAYQBuAHkALAAgAHAAZQByAG0AaQB0AHQAZQBkACAAYwBvAHAAaQBlAHMALAAgAGEAbgBkACAAcgBlAGwAYQB0AGUAZAAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4ALgAgACAAMgAuACAASQBmACAAeQBvAHUAIABhAHIAZQAgAGEAIABkAGUAcwBpAGcAbgAgAGMAbwBuAHMAdQBsAHQAYQBuAGMAeQAsACAAYQBkAHYAZQByAHQAaQBzAGkAbgBnACAAYQBnAGUAbgBjAHkAIABvAHIAIABwAHUAcgBjAGgAYQBzAGkAbgBnACAAdABoAGkAcwAgAGwAaQBjAGUAbgBzAGUAIABmAG8AcgAgAHUAcwBlACAAYgB5ACAAbwByACAAbwBuACAAYgBlAGgAYQBsAGYAIABvAGYAIABzAHUAYwBoACAAYQBuACAAZQBuAHQAaQB0AHkALAAgAHQAaABlACAAdQBsAHQAaQBtAGEAdABlACAAZQBuAGQAIAB1AHMAZQByACAAcwBoAG8AdQBsAGQAIABhAGwAcwBvACAAcAB1AHIAYwBoAGEAcwBlACAAYQAgAGwAaQBjAGUAbgBzAGUAIABhAHAAcAByAG8AcAByAGkAYQB0AGUAIABmAG8AcgAgAHQAaABlAGkAcgAgAGkAbgB0AGUAbgBkAGUAZAAgAHUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACwAIABpAGYAIAB0AGgAZQBpAHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAdABvACAAaQBuAHYAbwBsAHYAZQAgAHUAcwBlAHMAIABuAG8AdAAgAHAAZQByAG0AaQB0AHQAZQBkACAAdQBuAGQAZQByACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0AC4AIABUAGgAZQAgAGwAaQBjAGUAbgBzAGUAIABnAHIAYQBuAHQAZQBkACAAaABlAHIAZQBpAG4AIABmAG8AcgAgAHAAZQByAHMAbwBuAGEAbAAgAHUAcwBlACAAZABvAGUAcwAgAG4AbwB0ACAAZQB4AHQAZQBuAGQAIAB0AG8AIAB1AHMAZQBzACAAYgB5ACAAdABlAG0AcABvAHIAYQByAHkAIABlAG0AcABsAG8AeQBlAGUAcwAgAG8AcgAgAGkAbgBkAGUAcABlAG4AZABlAG4AdAAgAGMAbwBuAHQAcgBhAGMAdABvAHIAcwAgAHUAcwBpAG4AZwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGEAcwAgAHQAaABlAGkAcgAgAHUAcwBlACAAbQBhAHkAIAByAGUAbABhAHQAZQAgAHQAbwAgAHAAcgBvAHYAaQBkAGkAbgBnACAAcAByAG8AZgBlAHMAcwBpAG8AbgBhAGwAIABzAGUAcgB2AGkAYwBlAHMAIABvAHIAIABmAG8AcgAgAG8AdABoAGUAcgAgAHAAcgBvAGYAZQBzAHMAaQBvAG4AYQBsACAAdQBzAGUAcwAuACAAVQBuAGQAZQByACAAcwB1AGMAaAAgAGMAaQByAGMAdQBtAHMAdABhAG4AYwBlAHMAIABhAG4AIABlAG0AcABsAG8AeQBlAHIAIABhAG4AZAAvAG8AcgAgAHQAaABlACAAdQBsAHQAaQBtAGEAdABlACAAZQBuAGQAIAB1AHMAZQByACAAYQByAGUAIABhAGwAcwBvACAAcgBlAHEAdQBpAHIAZQBkACAAdABvACAAcAB1AHIAYwBoAGEAcwBlACAAYQAgAGwAaQBjAGUAbgBzAGUAIABhAHAAcAByAG8AcAByAGkAYQB0AGUAIABmAG8AcgAgAHQAaABlAGkAcgAgAHUAcwBhAGcAZQAuACAAIAAzAC4AIABGAG8AcgAgAHQAaABlACAAcAB1AHIAcABvAHMAZQBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIAAiAEMAbwBtAG0AZQByAGMAaQBhAGwAIABQAHIAbwBkAHUAYwB0ACIAIABzAGgAYQBsAGwAIABhAGwAcwBvACAAbQBlAGEAbgAsACAAYQBtAG8AbgBnACAAbwB0AGgAZQByACAAdABoAGkAbgBnAHMALAAgAGEAIAB1AHMAZQByACAAZQBkAGkAdABhAGIAbABlACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAGMAcgBlAGEAdABlAGQAIABiAHkAIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaABpAGMAaAAgAGkAcwAgAG8AZgBmAGUAcgBlAGQAIABmAG8AcgAgAGQAaQBzAHQAcgBpAGIAdQB0AGkAbwBuACAAdABvACAAdABoAGUAIABnAGUAbgBlAHIAYQBsACAAcAB1AGIAbABpAGMAIAAoAG8AcgAgAHQAbwAgAHMAbwBtAGUAIABzAHUAYgBzAGUAdAAgAG8AZgAgAHQAaABlACAAZwBlAG4AZQByAGEAbAAgAHAAdQBiAGwAaQBjACkALAAgAGkAbgAgAEYAbABhAHMAaAAgAHQAeQBwAGUAIABzAG8AZgB0AHcAYQByAGUAIABkAGkAcwB0AHIAaQBiAHUAdABlAGQAIABvAHIAIABlAHgAaABpAGIAaQB0AGUAZAAsACAAaQBuACAAZwBhAG0AaQBuAGcAIABwAHIAbwBkAHUAYwB0AHMAIABvAHIAIABzAG8AZgB0AHcAYQByAGUAIAB3AGgAZQByAGUAIAB0AGgAZQAgAGUAeAB0AHIAYQBjAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAHIAIAB0AGgAZQAgAGQAZQBzAGkAZwBuAHMAIABlAG0AYgBvAGQAaQBlAGQAIAB0AGgAZQByAGUAaQBuACAAbQBhAHkAIABiAGUAIABlAHgAdAByAGEAYwB0AGUAZAA7ACAAbwByACAAdQBzAGUAIABvAG4AIABnAG8AbwBkAHMAIABmAG8AcgAgAHMAYQBsAGUAIABhAHMAIABhACAAYwBvAG0AbQBlAHIAYwBpAGEAbAAgAHAAcgBvAGQAdQBjAHQAIABpAG4AIABlAHgAYwBoAGEAbgBnAGUAIABmAG8AcgAgAGEAIABzAGUAcABhAHIAYQB0AGUAIABmAGUAZQAgAG8AcgAgAG8AdABoAGUAcgAgAGMAbwBuAHMAaQBkAGUAcgBhAHQAaQBvAG4ALgAgAEgAbwB3AGUAdgBlAHIALAAgAGEAIABkAG8AYwB1AG0AZQBuAHQAIABkAGkAcwB0AHIAaQBiAHUAdABlAGQAIABpAG4AIABjAG8AbgBuAGUAYwB0AGkAbwBuACAAdwBpAHQAaAAgAGEAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAdAByAGEAbgBzAGEAYwB0AGkAbwBuACAAaQBuACAAdwBoAGkAYwBoACAAdABoAGUAIABjAG8AbgBzAGkAZABlAHIAYQB0AGkAbwBuACAAaQBzACAAdQBuAHIAZQBsAGEAdABlAGQAIAB0AG8AIABzAHUAYwBoACAAYQAgAGQAbwBjAHUAbQBlAG4AdAAgACgAZgBvAHIAIABlAHgAYQBtAHAAbABlACwAIABwAHIAaQBuAHQAZQBkACAAYQBkAHYAZQByAHQAaQBzAGkAbgBnACwAIABhACAAYgB1AHMAaQBuAGUAcwBzACAAbABlAHQAdABlAHIAIABvAHIAIABhACAAcgBlAGMAZQBpAHAAdAAgAGYAbwByACAAcAB1AHIAYwBoAGEAcwBlACAAbwBmACAAdABhAG4AZwBpAGIAbABlACAAZwBvAG8AZABzACAAcwB1AGMAaAAgAGEAcwAgAGMAbABvAHQAaABpAG4AZwApACwAIABvAHIAIABhAHMAIABvAHQAaABlAHIAIABkAGUAcwBpAGcAbgAgAG0AYQB0AGUAcgBpAGEAbABzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAgAHQAbwAgAHQAaABlACAAcAB1AHIAYwBoAGEAcwBlACAAbwBmACAAZwBvAG8AZABzACAAbwByACAAcwBlAHIAdgBpAGMAZQBzACwAIABzAGgAYQBsAGwAIABuAG8AdAAgAGIAZQAgAGMAbwBuAHMAaQBkAGUAcgBlAGQAIABhACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFAAcgBvAGQAdQBjAHQALgAgACAANAAuACAAYQApACAARQB4AGMAZQBwAHQAIABhAHMAIABtAGEAeQAgAGIAZQAgAHAAcgBvAGgAaQBiAGkAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAeQBvAHUAIABhAHIAZQAgAHAAZQByAG0AaQB0AHQAZQBkACAAdABvACAAZQBsAGUAYwB0AHIAbwBuAGkAYwBhAGwAbAB5ACAAZABpAHMAdAByAGkAYgB1AHQAZQAgAGEAIAAmACMAMgAxADAAOwBQAGUAcgBzAG8AbgBhAGwAIABvAHIAIABJAG4AdABlAHIAbgBhAGwAIABCAHUAcwBpAG4AZQBzAHMAIABVAHMAZQAmACMAMgAxADEAOwAgAGQAbwBjAHUAbQBlAG4AdAAgACgAdABoAGEAdAAgAGkAcwAsACAAYQAgAGQAbwBjAHUAbQBlAG4AdAAgAG8AdABoAGUAcgAgAHQAaABhAG4AIABhACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFAAcgBvAGQAdQBjAHQAIABhAHMAIABkAGUAZgBpAG4AZQBkACAAYQBiAG8AdgBlACkAIAAoAGkAKQAgAHQAaABhAHQAIABpAHMAIABpAG4AIABhACAAcwB0AGEAdABpAGMAIABnAHIAYQBwAGgAaQBjACAAaQBtAGEAZwBlACAAKABmAG8AcgAgAGUAeABhAG0AcABsAGUALAAgAGEAIAAmACMAMgAxADAAOwBnAGkAZgAmACMAMgAxADEAOwApACAAbwByACAAaQBuACAAYQBuACAAZQBtAGIAZQBkAGQAZQBkACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAsACAAYQBuAGQAIAAoAGkAaQApACAAdwBoAGkAYwBoACAAaQBzACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAYQAgAGYAbwByAG0AYQB0ACAAdABoAGEAdAAgAHAAZQByAG0AaQB0AHMAIABvAG4AbAB5ACAAdABoAGUAIAB2AGkAZQB3AGkAbgBnACAAYQBuAGQAIABwAHIAaQBuAHQAaQBuAGcAIAAoAGEAbgBkACAAbgBvAHQAIAB0AGgAZQAgAGUAZABpAHQAaQBuAGcALAAgAGEAbAB0AGUAcgBpAG4AZwAsACAAZQBuAGgAYQBuAGMAaQBuAGcALAAgAG8AcgAgAG0AbwBkAGkAZgB5AGkAbgBnACkAIABvAGYAIABzAHUAYwBoACAAcwB0AGEAdABpAGMAIABnAHIAYQBwAGgAaQBjACAAaQBtAGEAZwBlACAAbwByACAAZQBtAGIAZQBkAGQAZQBkACAAZABvAGMAdQBtAGUAbgB0AC4AIABQAGUAcgBzAG8AbgBhAGwAIABvAHIAIABJAG4AdABlAHIAbgBhAGwAIABCAHUAcwBpAG4AZQBzAHMAIABVAHMAZQAgAHMAaABhAGwAbAAgAG4AbwB0ACAAaQBuAGMAbAB1AGQAZQAgAGEAbgB5ACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABiAHkAIABwAGUAcgBzAG8AbgBzACAAdABoAGEAdAAgAGEAcgBlACAAbgBvAHQAIABtAGUAbQBiAGUAcgBzACAAbwBmACAAeQBvAHUAcgAgAGkAbQBtAGUAZABpAGEAdABlACAAaABvAHUAcwBlAGgAbwBsAGQALAAgAHkAbwB1AHIAIABhAHUAdABoAG8AcgBpAHoAZQBkACAAZQBtAHAAbABvAHkAZQBlAHMALAAgAG8AcgAgAHkAbwB1AHIAIABhAHUAdABoAG8AcgBpAHoAZQBkACAAYQBnAGUAbgB0AHMALgAgAEEAbABsACAAcwB1AGMAaAAgAGgAbwB1AHMAZQBoAG8AbABkACAAbQBlAG0AYgBlAHIAcwAsACAAZQBtAHAAbABvAHkAZQBlAHMAIABhAG4AZAAgAGEAZwBlAG4AdABzACAAcwBoAGEAbABsACAAYgBlACAAbgBvAHQAaQBmAGkAZQBkACAAYgB5ACAAeQBvAHUAIABhAHMAIAB0AG8AIAB0AGgAZQAgAHQAZQByAG0AcwAgAGEAbgBkACAAYwBvAG4AZABpAHQAaQBvAG4AcwAgAG8AZgAgAHQAaABlACAAQQBnAHIAZQBlAG0AZQBuAHQAIABhAG4AZAAgAHMAaABhAGwAbAAgAGEAZwByAGUAZQAgAHQAbwAgAGIAZQAgAGIAbwB1AG4AZAAgAGIAeQAgAGkAdAAgAHAAcgBpAG8AcgAgAHQAbwAgAHUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABiACkAIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAHMASQBGAFIAIAAoAFMAYwBhAGwAYQBiAGwAZQAgAEkAbgBtAGEAbgAgAEYAbwBuAHQAIABSAGUAcABsAGEAYwBlAG0AZQBuAHQAKQAgAGkAcwAgAHAAZQByAG0AaQB0AHQAZQBkAC4AIABIAG8AdwBlAHYAZQByACwAIAB0AGgAZQAgAHUAcwBlACAAbwBmACAAQwB1AGYAJgAjADEANQAxADsAbgAgAG8AcgAgAEAAZgBvAG4AdAAtAGYAYQBjAGUAIABvAHIAIABvAHQAaABlAHIAIABmAG8AcgBtAHMAIABvAGYAIAB3AGUAYgAgAGUAbQBiAGUAZABkAGkAbgBnACAAbwByACAAdwBlAGIAIABmAG8AbgB0ACAAcgBlAHAAbABhAGMAZQBtAGUAbgB0ACAAdABlAGMAaABuAG8AbABvAGcAaQBlAHMALAAgACgAJgAjADIAMQAwADsARgBvAG4AdAAgAFIAZQBwAGwAYQBjAGUAbQBlAG4AdAAgAFQAZQBjAGgAbgBvAGwAbwBnAGkAZQBzACYAIwAyADEAMQA7ACkAIABvAHQAaABlAHIAIAB0AGgAYQBuACAAcABkAGYAIABhAHMAIABvAHQAaABlAHIAdwBpAHMAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAZQBhAGMAaAAgAHIAZQBxAHUAaQByAGUAIAB0AGgAZQAgAHAAdQByAGMAaABhAHMAZQAgAG8AZgAgAGEAIABsAGkAYwBlAG4AcwBlACAAdQBwAGcAcgBhAGQAZQAuACAAIAA1AC4AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAsACAAaQB0AHMAIABzAHUAYwBjAGUAcwBzAG8AcgBzACAAYQBuAGQAIABhAHMAcwBpAGcAbgBzACwAIABlAHgAcAByAGUAcwBzAGwAeQAgAHIAZQB0AGEAaQBuACAAYQBsAGwAIAByAGkAZwBoAHQAIABhAG4AZAAgAHQAaQB0AGwAZQAgAGkAbgAgAGEAbgBkACAAdABvACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABlAG0AYgBvAGQAaQBlAGQAIAB0AGgAZQByAGUAaQBuACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAGEAbgB5ACAAdAByAGEAZABlAG0AYQByAGsAcwAgAHUAcwBlAGQAIABpAG4AIABjAG8AbgBuAGUAYwB0AGkAbwBuACAAdABoAGUAcgBlAHcAaQB0AGgALgAgAEUAeABjAGUAcAB0ACAAYQBzACAAbQBhAHkAIABiAGUAIABvAHQAaABlAHIAdwBpAHMAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAeQBvAHUAIABhAGcAcgBlAGUAIABuAG8AdAAgAHQAbwAgAGMAbwBwAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAHIAIABjAHIAZQBhAHQAZQAgAGQAZQByAGkAdgBhAHQAaQB2AGUAIAB3AG8AcgBrAHMAIABiAGEAcwBlAGQAIAB1AHAAbwBuACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAG8AcgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAWQBvAHUAIABoAGUAcgBlAGIAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAYQBuAGQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAHIAZQAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQB2AGUAIABwAHIAbwBwAGUAcgB0AHkAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGEAbgBkACAAdABoAGEAdAAgAHQAaABlACAAdQBuAGEAdQB0AGgAbwByAGkAegBlAGQAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABvAHIAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABhAG4AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACcAcwAgAGUAeABjAGwAdQBzAGkAdgBlACAAcgBpAGcAaAB0AHMAIABhAG4AZAAgAGMAYQB1AHMAaQBuAGcAIABzAGkAZwBuAGkAZgBpAGMAYQBuAHQAIABtAG8AbgBlAHQAYQByAHkAIABoAGEAcgBtAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAbgBvAHQAIABlAHgAcAByAGUAcwBzAGwAeQAgAGcAcgBhAG4AdABlAGQAIABoAGUAcgBlAGkAbgAgAGEAcgBlACAAcgBlAHMAZQByAHYAZQBkACAAdABvACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACcAcwAgAHIAaQBnAGgAdABzACAAYQBuAGQAIAByAGUAbQBlAGQAaQBlAHMAIABpAG4AIAB0AGgAZQAgAGUAdgBlAG4AdAAgAG8AZgAgAGEAbgAgAGkAbgBmAHIAaQBuAGcAZQBtAGUAbgB0ACAAcwBoAGEAbABsACAAYgBlACAAYwB1AG0AdQBsAGEAdABpAHYAZQAgAGkAbgAgAG4AYQB0AHUAcgBlAC4AIAAgACAANgAuACAARQB4AGMAZQBwAHQAIABhAHMAIABpAHMAIABwAHIAbwBoAGkAYgBpAHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAHkAbwB1ACAAbQBhAHkAIABpAG4AcwB0AGEAbABsACAAYQBuAGQAIABVAHMAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AbgAgAGEAIABzAGkAbgBnAGwAZQAgAGYAaQBsAGUAIABzAGUAcgB2AGUAcgAgAGYAbwByACAAVQBzAGUAIABvAG4AIABhACAAcwBpAG4AZwBsAGUAIABsAG8AYwBhAGwAIABhAHIAZQBhACAAbgBlAHQAdwBvAHIAawAgACgAIgBMAEEATgAiACkAIABvAG4AbAB5ACAAdwBoAGUAbgAgAHQAaABlACAAVQBzAGUAIABvAGYAIABzAHUAYwBoACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAZgBvAHIAIABhAG4AZAAgAGwAaQBtAGkAdABlAGQAIAB0AG8AIAB0AGgAZQAgAG4AdQBtAGIAZQByACAAbwBmACAAdABvAHQAYQBsACAAdQBzAGUAcgBzACAAZABpAHMAYwBsAG8AcwBlAGQAIABhAG4AZAAgAGwAaQBjAGUAbgBzAGUAZAAgAHUAbgBkAGUAcgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAaQAuAGUALgAsACAAdABoAGUAIAB0AG8AdABhAGwAIABuAHUAbQBiAGUAcgAgAG8AZgAgAHUAcwBlAHIAcwAgAHcAaABvACAAYwBvAHUAbABkACAAdQBzAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALAAgAG4AbwB0ACAAdABoAGUAIAB0AG8AdABhAGwAIABuAHUAbQBiAGUAcgAgAG8AZgAgAHUAcwBlAHIAcwAgAHcAaABvACAAbQBpAGcAaAB0ACAAaABhAHYAZQAgAGEAYwBjAGUAcwBzACAAdABvACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYQB0ACAAYQBuAHkAIABvAG4AZQAgAHQAaQBtAGUALgAgACAANwAuACAARQB4AGMAZQBwAHQAIABhAHMAIABtAGEAeQAgAGIAZQAgAG8AdABoAGUAcgB3AGkAcwBlACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGgAZQByAGUAaQBuACwAIAB5AG8AdQAgAG0AYQB5ACAAbgBvAHQAIABhAGwAdABlAHIAIABvAHIAIABjAG8AcAB5ACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAdABoAGUAcgBlAGkAbgAgAGkAbgAgAGEAbgB5ACAAbQBhAG4AbgBlAHIAIAB3AGgAYQB0AHMAbwBlAHYAZQByAC4AIABSAGUAZgBvAHIAbQBhAHQAdABpAG4AZwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgB0AG8AIABvAHQAaABlAHIAIABmAG8AcgBtAGEAdABzACAAZgBvAHIAIAB1AHMAZQAgAGkAbgAgAG8AdABoAGUAcgAgAG8AcABlAHIAYQB0AGkAbgBnACAAcwB5AHMAdABlAG0AcwAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcAByAG8AaABpAGIAaQB0AGUAZAAuACAAVQBwAG8AbgAgAHAAYQB5AG0AZQBuAHQAIABvAGYAIABhAG4AIABhAGQAZABpAHQAaQBvAG4AYQBsACAAZgBlAGUAIABhAG4AZAAgAGEAIABzAGUAcABhAHIAYQB0AGUAIAB3AHIAaQB0AHQAZQBuACAAYQBnAHIAZQBlAG0AZQBuAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAG0AYQB5ACwAIABpAGYAIABzAG8AIABhAGcAcgBlAGUAZAAsACAAcAByAG8AdgBpAGQAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAGEAbAB0AGUAcgBuAGEAdABlACAAYQBuAGQALwBvAHIAIABhAGQAZABpAHQAaQBvAG4AYQBsACAAZgBvAG4AdAAgAGYAbwByAG0AYQB0AHMALAAgAGMAbwBuAHQAYQBjAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGYAbwByACAAYQAgAHEAdQBvAHQAYQB0AGkAbwBuAC4AIABBAGwAdABlAHIAaQBuAGcAIABvAHIAIABhAG0AZQBuAGQAaQBuAGcAIAB0AGgAZQAgAGUAbQBiAGUAZABkAGkAbgBnACAAYgBpAHQAcwAgAGMAaABhAHIAYQBjAHQAZQByAGkAcwB0AGkAYwBzACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAHIAbwBoAGkAYgBpAHQAZQBkAC4AIABUAGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABtAGEAeQAgAG4AbwB0ACAAYgBlACAAdQBzAGUAZAAgAHQAbwAgAGMAcgBlAGEAdABlACAAbwByACAAZABpAHMAdAByAGkAYgB1AHQAZQAgAGEAbgB5ACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AcgAgAGEAbgB5ACAAcABhAHIAdAAgAHQAaABlAHIAZQBvAGYALAAgAGkAcwAgAGUAbQBiAGUAZABkAGUAZAAgAGkAbgAgAGEAIABtAGEAbgBuAGUAcgAgAG8AcgAgAGYAbwByAG0AYQB0ACAAdABoAGEAdAAgAHAAZQByAG0AaQB0AHMAIABlAGQAaQB0AGkAbgBnACwAIABhAGwAdABlAHIAYQB0AGkAbwBuAHMALAAgAGUAbgBoAGEAbgBjAGUAbQBlAG4AdABzACwAIABvAHIAIABtAG8AZABpAGYAaQBjAGEAdABpAG8AbgBzACAAYgB5ACAAdABoAGUAIAByAGUAYwBpAHAAaQBlAG4AdAAgAG8AZgAgAHMAdQBjAGgAIABkAG8AYwB1AG0AZQBuAHQALgAgAFkAbwB1ACAAbQBhAHkAIABuAG8AdAAgAGsAbgBvAHcAaQBuAGcAbAB5ACAAdAByAGEAbgBzAG0AaQB0ACAAYQBuAHkAIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZABvAGMAdQBtAGUAbgB0ACAAbwByACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdABvACAAYQBuAHkAIABwAGEAcgB0AHkAIAB0AGgAYQB0ACAAaQBuAHQAZQBuAGQAcwAgAG8AcgAgAGkAcwAgAGwAaQBrAGUAbAB5ACAAdABvACAAIgBoAGEAYwBrACwAIgAgAGUAZABpAHQALAAgAGEAbAB0AGUAcgAsACAAZQBuAGgAYQBuAGMAZQAsACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIABtAG8AZABpAGYAeQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AcgAgAHIAZQBtAG8AdgBlACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAZgByAG8AbQAgAGEAbgB5ACAAZABvAGMAdQBtAGUAbgB0AC4AIAAgADgALgAgAFkAbwB1ACAAbQBhAHkAIABtAGEAawBlACAAbwBuAGUAIAAoADEAKQAgAGIAYQBjAGsALQB1AHAAIABjAG8AcAB5ACAAbwBmACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAbwByACAAYQByAGMAaABpAHYAYQBsACAAcAB1AHIAcABvAHMAZQBzACAAbwBuAGwAeQAsACAAYQBuAGQAIAB5AG8AdQAgAGEAZwByAGUAZQAgAHQAbwAgAHIAZQB0AGEAaQBuACAAZQB4AGMAbAB1AHMAaQB2AGUAIABjAHUAcwB0AG8AZAB5ACAAYQBuAGQAIABjAG8AbgB0AHIAbwBsACAAbwB2AGUAcgAgAGEAbgB5ACAAcwB1AGMAaAAgAGMAbwBwAHkALgAgAFUAcABvAG4AIAB0AGUAcgBtAGkAbgBhAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIAB5AG8AdQAgAG0AdQBzAHQAIABkAGUAcwB0AHIAbwB5ACAAdABoAGUAIABvAHIAaQBnAGkAbgBhAGwAIABhAG4AZAAgAGEAbgB5ACAAYQBuAGQAIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABUAGgAZQAgAHUAbgBhAHUAdABoAG8AcgBpAHoAZQBkACAAcwBoAGEAcgBpAG4AZwAsACAAbABlAG4AZABpAG4AZwAsACAAcgBlAG4AdABpAG4AZwAsACAAcwBhAGwAZQAsACAAbwByACAAbwB0AGgAZQByACAAdQBuAGEAdQB0AGgAbwByAGkAegBlAGQAIAB1AHMAZQAgAG8AcgAgAG0AaQBzAHUAcwBlACAAbwBmACAAdABoAGUAIABiAGEAYwBrAC0AdQBwACAAYwBvAHAAeQAgAGkAcwAgAGEAIABtAGEAdABlAHIAaQBhAGwAIABiAHIAZQBhAGMAaAAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBkACAAdwBpAGwAbAAgAHIAZQBzAHUAbAB0ACAAaQBuACAAdABoAGUAIABpAG0AbQBlAGQAaQBhAHQAZQAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABMAGkAYwBlAG4AcwBlAC4AIAAgADkALgAgAEkAZgAgAG4AbwAgAG8AdABoAGUAcgAgAG8AcAB0AGkAbwBuACAAZQB4AGkAcwB0AHMALAAgAHkAbwB1ACAAbQBhAHkAIAB0AGEAawBlACAAYQAgAGQAaQBnAGkAdABpAHoAZQBkACAAYwBvAHAAeQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHUAcwBlAGQAIABmAG8AcgAgAGEAIABwAGEAcgB0AGkAYwB1AGwAYQByACAAZABvAGMAdQBtAGUAbgB0ACwAIABvAHIAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAZQBtAGIAZQBkAGQAZQBkACAAaQBuACAAYQBuACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAHQAaABhAHQAIABpAHMAIABzAGUAbgB0ACAAdABvACAAYQAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIABwAHIAaQBuAHQAZQByACAAbwByACAAcwBlAHIAdgBpAGMAZQAgAGIAdQByAGUAYQB1ACAAZgBvAHIAIAB1AHMAZQAgAGIAeQAgAHQAaABlACAAcAByAGkAbgB0AGUAcgAgAG8AcgAgAHMAZQByAHYAaQBjAGUAIABiAHUAcgBlAGEAdQAgAGYAbwByACAAcAByAGUAcABhAHIAaQBuAGcAIAB0AGgAZQAgAGQAbwBjAHUAbQBlAG4AdAAgAHAAcgBvAHYAaQBkAGUAZAAgAHQAaABhAHQAIAB0AGgAZQAgAHAAcgBpAG4AdABlAHIAIABvAHIAIABzAGUAcgB2AGkAYwBlACAAYgB1AHIAZQBhAHUAIAByAGUAcAByAGUAcwBlAG4AdABzACAAdABoAGEAdAAgAGkAdAAgAHMAaABhAGwAbAAgAGQAZQBzAHQAcgBvAHkAIABhAG4AeQAgAGEAbgBkACAAYQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHUAcABvAG4AIABjAG8AbQBwAGwAZQB0AGkAbwBuACAAbwBmACAAaQB0AHMAIAB3AG8AcgBrAC4AIABOAG8AdAB3AGkAdABoAHMAdABhAG4AZABpAG4AZwAsACAAeQBvAHUAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAdABoAGUAIAB0AHIAYQBuAHMAbQBpAHMAcwBpAG8AbgAgAG8AZgAgAGEAIAAiAHAAcgBpAG4AdAAvAHAAcgBlAHYAaQBlAHcAIgAgAFAARABGACAAZABvAGMAdQBtAGUAbgB0ACAAaQBzACAAdABoAGUAIABmAGkAcgBzAHQAIABhAG4AZAAgAHAAcgBlAGYAZQByAHIAZQBkACAAbQBlAHQAaABvAGQAIABvAGYAIAB0AHIAYQBuAHMAbQBpAHQAdABpAG4AZwAgAHMAdQBjAGgAIABkAG8AYwB1AG0AZQBuAHQAcwAgAHQAbwAgAGEAIABzAGUAcgB2AGkAYwBlACAAYgB1AHIAZQBhAHUAIABvAHIAIABwAHIAaQBuAHQAZQByAC4AIAAgADEAMAAuACAAVABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAYQBuAGQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGEAbgBkACAAYQBuAHkAIAB0AHIAYQBkAGUAbQBhAHIAawBzACAAYQBzAHMAbwBjAGkAYQB0AGUAZAAgAHQAaABlAHIAZQB3AGkAdABoACAAYQByAGUAIAB0AGgAZQAgAGUAeABjAGwAdQBzAGkAdgBlACAAcAByAG8AcABlAHIAdAB5ACAAbwBmACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAG4AZAAgAHQAaABlAGkAcgAgAGQAZQBzAGkAZwBuAGUAcgBzACwAIAB3AGgAZQByAGUAIABhAHAAcABsAGkAYwBhAGIAbABlACAAYQBuAGQAIABhAHIAZQAgAHAAcgBvAHQAZQBjAHQAZQBkACAAYgB5ACAAdABoAGUAIABjAG8AcAB5AHIAaQBnAGgAdAAgAGEAbgBkACAAbwB0AGgAZQByACAAaQBuAHQAZQBsAGwAZQBjAHQAdQBhAGwAIABwAHIAbwBwAGUAcgB0AHkAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACwAIABiAHkAIAB0AGgAZQAgAGMAbwBwAHkAcgBpAGcAaAB0ACAAYQBuAGQAIABkAGUAcwBpAGcAbgAgAGwAYQB3AHMAIABvAGYAIABvAHQAaABlAHIAIABuAGEAdABpAG8AbgBzACwAIABhAG4AZAAgAGIAeQAgAG8AdABoAGUAcgAgAGkAbgB0AGUAcgBuAGEAdABpAG8AbgBhAGwAIAB0AHIAZQBhAHQAaQBlAHMALgAgAEEAbgB5ACAAYwBvAHAAaQBlAHMAIAB0AGgAYQB0ACAAeQBvAHUAIABhAHIAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIAB0AG8AIABtAGEAawBlACAAcAB1AHIAcwB1AGEAbgB0ACAAdABvACAAdABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgAG0AdQBzAHQAIABjAG8AbgB0AGEAaQBuACAAdABoAGUAIABzAGEAbQBlACAAYwBvAHAAeQByAGkAZwBoAHQALAAgAHQAcgBhAGQAZQBtAGEAcgBrACwAIABhAG4AZAAgAG8AdABoAGUAcgAgAHAAcgBvAHAAcgBpAGUAdABhAHIAeQAgAG4AbwB0AGkAYwBlAHMAIAB0AGgAYQB0ACAAYQBwAHAAZQBhAHIAIABvAG4AIABvAHIAIABpAG4AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgACAAMQAxAC4AIABZAG8AdQAgAGEAZwByAGUAZQAgAG4AbwB0ACAAdABvACAAYwByAGUAYQB0AGUALAAgAGEAcwBzAGkAcwB0ACAAaQBuACAAYQBuAGQALwBvAHIAIABjAGEAdQBzAGUAIAB0AGgAZQAgAGMAcgBlAGEAdABpAG8AbgAgAG8AZgAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMAIABvAHIAIABhAGQAZABpAHQAaQBvAG4AcwAgAHQAbwAgAHQAaABlACAARgBvAG4AdABzACAAbwByACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAaQBuAGMAbAB1AGQAaQBuAGcALAAgAGIAdQB0ACAAbgBvAHQAIABsAGkAbQBpAHQAZQBkACAAdABvACwAIABjAHIAZQBhAHQAaQBuAGcAIABhAGQAZABpAHQAaQBvAG4AYQBsACAAdwBlAGkAZwBoAHQAcwA7ACAAYwByAGUAYQB0AGkAbgBnACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAG8AcgAgAGQAZQBsAGUAdABpAG4AZwAgAGUAeABpAHMAdABpAG4AZwAgAGMAaABhAHIAYQBjAHQAZQByAHMAOwAgAG0AbwBkAGkAZgB5AGkAbgBnACAAZQB4AGkAcwB0AGkAbgBnACAAYwBoAGEAcgBhAGMAdABlAHIAcwA7ACAAbQBvAGQAaQBmAHkAaQBuAGcAIABmAG8AbgB0ACAAcwBwAGEAYwBpAG4AZwAgAGEAbgBkACAAawBlAHIAbgBpAG4AZwA7ACAAbwByACAAYwBvAG4AdgBlAHIAdABpAG4AZwAgAGYAbwBuAHQAcwAgAHQAbwAgAGEAbgAgAGEAbAB0AGUAcgBuAGEAdABlACAAZABpAGcAaQB0AGEAbAAgAGYAbwByAG0AYQB0ACwAIABtAG8AZABpAGYAeQAsACAAYQBkAGEAcAB0ACwAIAB0AHIAYQBuAHMAbABhAHQAZQAsACAAcgBlAHYAZQByAHMAZQAgAGUAbgBnAGkAbgBlAGUAcgAsACAAZABlAGMAbwBtAHAAaQBsAGUALAAgAGQAaQBzAGEAcwBzAGUAbQBiAGwAZQAsACAAYQBsAHQAZQByACwAIABvAHIAIABvAHQAaABlAHIAdwBpAHMAZQAgAGEAdAB0AGUAbQBwAHQAIAB0AG8AIABkAGkAcwBjAG8AdgBlAHIAIAB0AGgAZQAgAHMAbwB1AHIAYwBlACAAYwBvAGQAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaQB0AGgAbwB1AHQAIABmAGkAcgBzAHQAIABvAGIAdABhAGkAbgBpAG4AZwAgAHcAcgBpAHQAdABlAG4AIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAZgByAG8AbQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIABJAG4AIAB0AGgAZQAgAGUAdgBlAG4AdAAgAHQAaABhAHQAIABwAGUAcgBtAGkAcwBzAGkAbwBuACAAaQBzACAAZwBpAHYAZQBuACAAdABvACAAeQBvAHUALAAgAGEAbgB5ACAAYQBuAGQAIABhAGwAbAAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMAIABhAG4AZAAgAGEAZABkAGkAdABpAG8AbgBzACAAcwBoAGEAbABsACAAYgBlAGMAbwBtAGUAIABhAG4AZAAgAHMAaABhAGwAbAAgAHIAZQBtAGEAaQBuACAAdABoAGUAIABzAG8AbABlACAAYQBuAGQAIABlAHgAYwBsAHUAcwBpAHYAZQAgAHAAcgBvAHAAZQByAHQAeQAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQBuAGQAIAB5AG8AdQAgAG0AYQB5ACAAbgBvAHQAIABzAGUAbABsACwAIABsAGUAbgBkACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIAB0AHIAYQBuAHMAbQBpAHQAIABhAG4AeQAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMAIABvAHIAIABhAGQAZABpAHQAaQBvAG4AcwAgAHQAbwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAGEAbgB5ACAAdABoAGkAcgBkACAAcABhAHIAdAB5AC4AIABPAHQAaABlAHIAIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgBzACAAbQBhAHkAIABwAHIAbwB2AGkAZABlACAAZgBvAHIAIABhAGQAZABpAHQAaQBvAG4AYQBsACAAcgBpAGcAaAB0AHMALAAgAGEAbgBkACAAaQBmACAAYQBwAHAAbABpAGMAYQBiAGwAZQAsACAAeQBvAHUAIABtAGEAeQAgAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIAIABvAHIAIABkAGUAYwBvAG0AcABpAGwAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AbgBsAHkAIAB0AG8AIAB0AGgAZQAgAGUAeAB0AGUAbgB0ACAAdABoAGEAdAAgAHMAdQBmAGYAaQBjAGkAZQBuAHQAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABpAHMAIABuAG8AdAAgAGEAdgBhAGkAbABhAGIAbABlACAAZgBvAHIAIAB0AGgAZQAgAHAAdQByAHAAbwBzAGUAIABvAGYAIABjAHIAZQBhAHQAaQBuAGcAIABhAG4AIABpAG4AdABlAHIAbwBwAGUAcgBhAGIAbABlACAAcwBvAGYAdAB3AGEAcgBlACAAcAByAG8AZwByAGEAbQAgACgAYgB1AHQAIABvAG4AbAB5ACAAZgBvAHIAIABzAHUAYwBoACAAcAB1AHIAcABvAHMAZQAgAGEAbgBkACAAbwBuAGwAeQAgAHQAbwAgAHQAaABlACAAZQB4AHQAZQBuAHQAIAB0AGgAYQB0ACAAcwB1AGYAZgBpAGMAaQBlAG4AdAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAgAGkAcwAgAG4AbwB0ACAAcAByAG8AdgBpAGQAZQBkACAAYgB5ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIAB1AHAAbwBuACAAdwByAGkAdAB0AGUAbgAgAHIAZQBxAHUAZQBzAHQAKQAuACAAQQBsAGwAIAB0AHIAYQBkAGUAbQBhAHIAawBzACAAcwBoAGEAbABsACAAYgBlACAAdQBzAGUAZAAgAGkAbgAgAGEAYwBjAG8AcgBkAGEAbgBjAGUAIAB3AGkAdABoACAAYQBjAGMAZQBwAHQAZQBkACAAdAByAGEAZABlAG0AYQByAGsAIABwAHIAYQBjAHQAaQBjAGUALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAaQBkAGUAbgB0AGkAZgBpAGMAYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AdwBuAGUAcgAnAHMAIABuAGEAbQBlAC4AIABVAHMAZQAgAG8AZgAgAHQAaABlACAAdAByAGEAZABlAG0AYQByAGsAcwAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIAB3AGkAdABoACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBuAHUAcgBlAHMAIABzAG8AbABlAGwAeQAgAHQAbwAgAHQAaABlACAAYgBlAG4AZQBmAGkAdAAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIAAgACAAMQAyAC4AIABVAHMAZQAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAHQAaABlACAAZgBvAGwAbABvAHcAaQBuAGcAIABjAGkAcgBjAHUAbQBzAHQAYQBuAGMAZQBzACAAYQBuAGQALwBvAHIAIABhAHAAcABsAGkAYwBhAHQAaQBvAG4AcwAgAGkAcwAgAE4ATwBUACAAcABlAHIAbQBpAHQAdABlAGQAIAB3AGkAdABoAG8AdQB0ACAAZgBpAHIAcwB0ACAAbwBiAHQAYQBpAG4AaQBuAGcAIAB0AGgAZQAgAGEAcABwAHIAbwBwAHIAaQBhAHQAZQAgAGwAaQBjAGUAbgBzAGkAbgBnACAAdQBwAGcAcgBhAGQAZQAuACAAIAAgAGEAKQAgACYAIwA5ADsAQQBMAFAASABBAEIARQBUACAATwBSACAATABFAFQAVABFAFIARgBPAFIATQAtAFIARQBMAEEAVABFAEQAIABQAFIATwBEAFUAQwBUAFMAIAAmACMAOQA7ACYAIwA5ADsARgBPAFIAIABSAEUAUwBBAEwARQAgAE8AUgAgAEwARQBUAFQARQBSAEYATwBSAE0AIABDAFIARQBBAFQASQBPAE4AIABQAFIATwBEAFUAQwBUAFMAIABPAFIAIABEAEUAVgBJAEMARQBTADsAIABiACkAIAAmACMAOQA7AEUATQBCAEUARABEAEkATgBHACAASQBOACAARQBMAEUAQwBUAFIATwBOAEkAQwAgAEQARQBWAEkAQwBFAFMAOwAgAEEATABMACAARwBBAE0ASQBOAEcAIABVAFMARQBTACAAQQBOAEQALwBPAFIAIABEAEUAVgBJAEMARQBTADsAIABjACkAIAAmACMAOQA7AEUATQBCAEUARABEAEkATgBHACAASQBOACAAUwBPAEYAVABXAEEAUgBFADsAIABkACkAIAAmACMAOQA7AFMAVABPAFIASQBOAEcAIABBAE4ARAAvAE8AUgAgAFMARQBSAFYASQBOAEcAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIABGAE8AUgAgAFQASABFACAAUABVAFIAUABPAFMARQBTACAATwBGACAATQBBAEsASQBOAEcAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIAAmACMAOQA7ACYAIwA5ADsAQQBWAEEASQBMAEEAQgBMAEUAIABWAEkAQQAgAFQASABFACAASQBOAFQARQBSAE4ARQBUACAAVQBTAEkATgBHACAARgBPAE4AVAAgAFIARQBQAEwAQQBDAEUATQBFAE4AVAAgAFQARQBDAEgATgBPAEwATwBHAEkARQBTAC4AIAAgACAAaQApACAATABlAHQAdABlAHIAZgBvAHIAbQAgAG8AcgAgAEEAbABwAGgAYQBiAGUAdAAgAFAAcgBvAGQAdQBjAHQAcwAgAGkAbgBjAGwAdQBkAGUALAAgAGIAdQB0ACAAYQByAGUAIABuAG8AdAAgAGwAaQBtAGkAdABlAGQAIAB0AG8ALAAgAHMAaQBnAG4AYQBnAGUAIABhAG4AZAAvAG8AcgAgAHMAYwByAGEAcABiAG8AbwBrAGkAbgBnACAAdQBzAGUAcwAgAGkAbgB2AG8AbAB2AGkAbgBnACAAcgBlAHAAcgBvAGQAdQBjAHQAaQBvAG4AcwAgAG8AZgAgAGkAbgBkAGkAdgBpAGQAdQBhAGwAIABsAGUAdAB0AGUAcgBmAG8AcgBtAHMALAAgAHUAcwBlACAAaQBuACAAdABoAGUAIABjAHIAZQBhAHQAaQBvAG4AIABvAGYAIABzAGkAZwBuAGEAZwBlACAAbwByACAAbgB1AG0AYgBlAHIAaQBuAGcAIABwAHIAbwBkAHUAYwB0AHMALAAgAHIAdQBiAGIAZQByACAAcwB0AGEAbQBwAHMALAAgAGQAaQBlAC0AYwB1AHQAIABwAHIAbwBkAHUAYwB0AHMALAAgAHMAdABlAG4AYwBpAGwAIABwAHIAbwBkAHUAYwB0AHMALAAgAHQAYQB0AHQAbwBvACwAIABmAGwAYQBzAGgALAAgAG8AcgAgAGEAZABoAGUAcwBpAHYAZQAgAHMAdABpAGMAawBlAHIAIABhAGwAcABoAGEAYgBlAHQAIABwAHIAbwBkAHUAYwB0AHMAIABvAHIAIABhAG4AeQAgAG8AdABoAGUAcgAgAHAAcgBvAGQAdQBjAHQAIABjAG8AbgB0AGEAaQBuAGkAbgBnACAAYQBuAHkAIABpAG0AYQBnAGUAIABvAGYAIABvAHIAIABkAGUAcgBpAHYAZQBkACAAZgByAG8AbQAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABlAG0AYgBvAGQAaQBlAGQAIABpAG4AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAGYAIAB3AGgAaQBjAGgAIABhAG4AeQAgAGwAaQBrAGUAbgBlAHMAcwAgAG8AZgAgAHQAaABlACAAYQBsAHAAaABhAGIAZQB0ACAAYwBhAG4AIABiAGUAIAByAGUAcAByAG8AZAB1AGMAZQBkAC4AIAAgAGkAaQApACAARQBtAGIAZQBkAGQAaQBuAGcAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAcwAgAGkAbgAgAGEAIABwAHIAaQBuAHQALwBwAHIAZQB2AGkAZQB3ACAAZgBvAHIAbQBhAHQAIABpAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAuACAATgBvAHQAdwBpAHQAaABzAHQAYQBuAGQAaQBuAGcALAAgAGUAbQBiAGUAZABkAGkAbgBnACAAbwByACAAbwB0AGgAZQByACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAcwAgAG8AcgAgAHQAaABlACAAbwB1AHQAbABpAG4AZQBzACAAdABoAGUAcgBlAG8AZgAgAGkAbgAgAGEAbgB5ACAAbQBlAHQAaABvAGQAIAB3AGgAaQBjAGgAIABwAGUAcgBtAGkAdABzACAAdABoAGUAIABlAHgAdAByAGEAYwB0AGkAbwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwBmACAAdABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAdABoAGUAcgBlAGkAbgAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcAByAG8AaABpAGIAaQB0AGUAZAAuACAAQQBuAHkAIABzAHUAYwBoACAAdQBzAGUAIAByAGUAcQB1AGkAcgBlAHMAIAB0AGgAZQAgAGUAeABwAHIAZQBzAHMAIAB3AHIAaQB0AHQAZQBuACAAcABlAHIAbQBpAHMAcwBpAG8AbgAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQBuAGQAIABtAGEAeQAgAG8AcgAgAG0AYQB5ACAAbgBvAHQAIAByAGUAcQB1AGkAcgBlACAAdABoAGUAIABwAHUAcgBjAGgAYQBzAGUAIABvAGYAIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUAIABhAHQAIAB0AGgAZQAgAHMAbwBsAGUAIABkAGkAcwBjAHIAZQB0AGkAbwBuACAAbwBmACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgACAAaQBpAGkAKQAgAEkAbgAgAHQAaABlACAAZQB2AGUAbgB0ACAAYQBuAHkAIABkAGkAbgBnAGIAYQB0AHMAIABvAHIAIABvAHQAaABlAHIAIABhAHIAdAAgAGYAbwByAG0AcwAgAGEAcgBlACAAcABhAHIAdAAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAGEAcgB0AHcAbwByAGsAIABpAHMAIABmAHUAcgB0AGgAZQByACAAcgBlAHMAdAByAGkAYwB0AGUAZAAuACAAWQBvAHUAIABtAGEAeQAgAHUAcwBlACAAdABoAGUAIABhAHIAdAB3AG8AcgBrACwAIABkAHIAYQB3AGkAbgBnAHMAIABhAG4AZAAvAG8AcgAgAGQAaQBuAGcAYgBhAHQAcwAgAG8AbgAgAGcAbwBvAGQAcwAgAGYAbwByACAAcwBhAGwAZQAsACAAaQBuACAAbABvAGcAbwAgAGQAZQBzAGkAZwBuACwAIAByAGUAdABhAGkAbAAgAHAAYQBjAGsAYQBnAGkAbgBnACAAbwByACAAaQBuACAAcABvAGkAbgB0ACAAbwBmACAAcwBhAGwAZQAgAHUAcwBlAHMAIABvAG4AbAB5ACAAYQBmAHQAZQByACAAdABoAGUAIABwAHUAcgBjAGgAYQBzAGUAIABvAGYAIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUALgAgACAASQBuACAAbwByAGQAZQByACAAdABvACAAbwBiAHQAYQBpAG4AIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUALAAgAHkAbwB1ACAAbQB1AHMAdAAgAGMAbwBuAHQAYQBjAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGEAdAAgAGkAbgBmAG8AQABjAG8AbQBtAGUAcgBjAGkAYQBsAHQAeQBwAGUALgBjAG8AbQAgAGYAbwByACAAbQBvAHIAZQAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAuACAASQBmACAAeQBvAHUAIABhAHIAZQAgAHUAbgBzAHUAcgBlACAAdwBoAGUAdABoAGUAcgAgAHkAbwB1AHIAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAHMAcABlAGMAaQBmAGkAYwBhAGwAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIAB1AG4AZABlAHIAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALAAgAGMAbwBuAHQAYQBjAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAuACAAIAAxADMALgAgAEUAbQBiAGUAZABkAGUAZAAgAEUAbABlAGMAdAByAG8AbgBpAGMAIABEAGUAdgBpAGMAZQBzACAAaQBuAGMAbAB1AGQAZQBzACAAdABoAGUAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAbwByACAAYQBuAHkAIABvAG4ALQBzAGMAcgBlAGUAbgAgAGQAaQBzAHAAbABhAHkAIABvAHIAIABvAG4AIABhAG4AIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZABlAHYAaQBjAGUAIABvAHUAdABzAGkAZABlACAAYQAgAHMAaQBuAGcAbABlACAAbABvAGMAYQB0AGkAbwBuAC4AIABGAG8AcgAgAGUAeABhAG0AcABsAGUALAAgAGEAbgBkACAAbgBvAHQAIABiAHkAIAB3AGEAeQAgAG8AZgAgAGwAaQBtAGkAdABhAHQAaQBvAG4ALAAgAHMAdQBjAGgAIABlAGwAZQBjAHQAcgBvAG4AaQBjACAAZABlAHYAaQBjAGUAcwAgAGkAbgBjAGwAdQBkAGUAIABhACAAawBpAG8AcwBrACwAIABnAGEAbQBpAG4AZwAgAGQAZQB2AGkAYwBlAHMALAAgAGUAbQBiAHIAbwBpAGQAZQByAHkAIABvAHIAIABzAGUAdwBpAG4AZwAgAG0AYQBjAGgAaQBuAGUAcwAgAGcAYQBtAGUAIABwAGwAYQB5AGkAbgBnACAAbwByACAAZwBhAG0AYgBsAGkAbgBnACAAZABlAHYAaQBjAGUAcwAsACAAaQByAHIAZQBzAHAAZQBjAHQAaQB2AGUAIABvAGYAIAB3AGgAZQB0AGgAZQByACAAdABoAGUAIABzAGgAbwB3AGkAbgBnACAAbwByACAAYwByAGUAYQB0AGkAbwBuACAAbwBmACAAYwBvAHAAaQBlAHMAIABvAGYAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAZQBtAGIAbwBkAGkAZQBkACAAaQBuACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAYwByAGUAYQB0AGUAZAAgAGIAeQAgAHUAcwBlACAAbwBmACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIABvAHIAIABhAHMAIABhAG4AIABpAG0AYQBnAGUAIABvAGYAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAaQBuACAAdABpAGYAZgAsACAAZwBpAGYAIABvAHIAIABvAHQAaABlAHIAIABmAG8AcgBtAGEAdAAuACAAIAAgADEANAAuACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAZgBvAHIAIAB1AHMAZQAgAGIAeQAgAGEAIABzAHAAZQBjAGkAZgBpAGUAZAAgAG4AdQBtAGIAZQByACAAbwBmACAAdQBzAGUAcgBzAC4AIABVAHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgAgAG0AbwByAGUAIAB0AGgAYQBuACAAbwBuAGUAIABnAGUAbwBnAHIAYQBwAGgAaQBjACAAbABvAGMAYQB0AGkAbwBuACAAbwByACAAYgB5ACAAbQBlAGEAbgBzACAAbwBmACAAcwBlAHIAdgBlAHIAIABvAHIAIABjAGUAbgB0AHIAYQBsACAAQwBQAFUAIABvAHUAdABzAGkAZABlACAAbwBmACAAdABoAGUAIAB0AGUAcgBtAHMAIABvAGYAIAB5AG8AdQByACAAbABpAGMAZQBuAHMAZQAgAGkAcwAgAHAAZQByAG0AaQB0AHQAZQBkACAAcAByAG8AdgBpAGQAZQBkACAAdABoAGUAIABlAGEAYwBoACAAdQBzAGUAcgAgAG8AcgAgAHAAbwB0AGUAbgB0AGkAYQBsACAAdQBzAGUAcgAgAGkAcwAgAGwAaQBjAGUAbgBzAGUAZAAuACAATABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUAcwAgAG0AYQB5ACAAYgBlACAAcAB1AHIAYwBoAGEAcwBlAGQAIABmAHIAbwBtACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAHQAIABpAG4AZgBvAEAAYwBvAG0AbQBlAHIAYwBpAGEAbAB0AHkAcABlAC4AYwBvAG0ALgAgACAAMQA1AC4AIABFAHgAYwBlAHAAdAAgAGEAcwAgAG0AYQB5ACAAYgBlACAAbwB0AGgAZQByAHcAaQBzAGUAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAcgBvAHYAaQBkAGUAZAAgAGYAbwByACAAaABlAHIAZQBpAG4ALAAgAHkAbwB1ACAAZQB4AHAAcgBlAHMAcwBsAHkAIABhAGcAcgBlAGUAIABuAG8AdAAgAHQAbwAgAHIAZQBuAHQALAAgAGwAZQBhAHMAZQAsACAAcwB1AGIAbABpAGMAZQBuAHMAZQAsACAAZwBpAHYAZQAsACAAbABlAG4AZAAsACAAbwByACAAZgB1AHIAdABoAGUAcgAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgAFkAbwB1ACAAbQBhAHkAIAB0AHIAYQBuAHMAZgBlAHIAIABhAGwAbAAgAHkAbwB1AHIAIAByAGkAZwBoAHQAcwAgAHUAbgBkAGUAcgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGEAbgBvAHQAaABlAHIAIABwAGUAcgBzAG8AbgAgAG8AcgAgAGUAbgB0AGkAdAB5ACAAcAByAG8AdgBpAGQAZQBkACAAdABoAGEAdAAgACgAaQApACAAdABoAGUAIAB0AHIAYQBuAHMAZgBlAHIAZQBlACAAYQBjAGMAZQBwAHQAcwAgAGEAbgBkACAAYQBnAHIAZQBlAHMAIAB0AG8AIABiAGUAIABiAG8AdQBuAGQAIABiAHkAIABhAGwAbAAgAHQAaABlACAAdABlAHIAbQBzACAAYQBuAGQAIABjAG8AbgBkAGkAdABpAG8AbgBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIABhAG4AZAAgACgAaQBpACkAIAB5AG8AdQAgAGQAZQBzAHQAcgBvAHkAIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABzAHQAbwByAGUAZAAgAGkAbgAgAHQAaABlACAAbQBlAG0AbwByAHkAIABvAGYAIABhACAAaABhAHIAZAB3AGEAcgBlACAAZABlAHYAaQBjAGUALgAgACAAMQA2AC4AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAHcAYQByAHIAYQBuAHQAcwAgAHQAaABhAHQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB3AGkAbABsACAAcABlAHIAZgBvAHIAbQAgAHMAdQBiAHMAdABhAG4AdABpAGEAbABsAHkAIABpAG4AIABhAGMAYwBvAHIAZABhAG4AYwBlACAAdwBpAHQAaAAgAGkAdABzACAAZABvAGMAdQBtAGUAbgB0AGEAdABpAG8AbgAgAGYAbwByACAAbgBpAG4AZQB0AHkAIAAoADkAMAApACAAZABhAHkAcwAgAGYAbwBsAGwAbwB3AGkAbgBnACAAZABlAGwAaQB2AGUAcgB5ACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABUAG8AIABtAGEAawBlACAAYQAgAHcAYQByAHIAYQBuAHQAeQAgAGMAbABhAGkAbQAsACAAeQBvAHUAIABtAHUAcwB0ACAAZQBpAHQAaABlAHIAIAByAGUAdAB1AHIAbgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAHQAaABlACAAbABvAGMAYQB0AGkAbwBuACAAZgByAG8AbQAgAHcAaABpAGMAaAAgAHkAbwB1ACAAbwBiAHQAYQBpAG4AZQBkACAAaQB0ACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAGEAIABjAG8AcAB5ACAAbwBmACAAeQBvAHUAcgAgAHMAYQBsAGUAcwAgAHIAZQBjAGUAaQBwAHQAIABvAHIALAAgAGkAZgAgAGEAYwBxAHUAaQByAGUAZAAgAG8AbgAtAGwAaQBuAGUALAAgAGMAbwBuAHQAYQBjAHQAIAB0AGgAZQAgAG8AbgAtAGwAaQBuAGUAIABwAHIAbwB2AGkAZABlAHIAIAB3AGkAdABoACAAcwB1AGYAZgBpAGMAaQBlAG4AdAAgAGkAbgBmAG8AcgBtAGEAdABpAG8AbgAgAHIAZQBnAGEAcgBkAGkAbgBnACAAeQBvAHUAcgAgAGEAYwBxAHUAaQBzAGkAdABpAG8AbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAHAAZQByAG0AaQB0ACAAdABoAGUAIABjAG8AbgBmAGkAcgBtAGEAdABpAG8AbgAgAG8AZgAgAHQAaABlACAAZQBmAGYAZQBjAHQAaQB2AGUAIABkAGEAdABlACAAbwBmACAAdABoAGkAcwAgAEwAaQBjAGUAbgBzAGUALgAgAFMAYwBoAHcAYQByAHQAegBjAG8ALAAgAEkAbgBjAC4AIABhAG4AZAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAaABlAHIAZQBiAHkAIABFAFgAUABSAEUAUwBTAEwAWQAgAEQASQBTAEMATABBAEkATQBTACAAQQBMAEwAIABXAEEAUgBSAEEATgBUAEkARQBTACwAIABFAFgAUABSAEUAUwBTACAAQQBOAEQAIABJAE0AUABMAEkARQBEACwAIABJAE4AQwBMAFUARABJAE4ARwAsACAAQgBVAFQAIABOAE8AVAAgAEwASQBNAEkAVABFAEQAIABUAE8ALAAgAFQASABFACAASQBNAFAATABJAEUARAAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAEYAIABNAEUAUgBDAEgAQQBOAFQAQQBCAEkATABJAFQAWQAgAEEATgBEACAARgBJAFQATgBFAFMAUwAgAEYATwBSACAAQQAgAFAAQQBSAFQASQBDAFUATABBAFIAIABQAFUAUgBQAE8AUwBFAC4AIABDAE8ATQBNAEUAUgBDAEkAQQBMACAAVABZAFAARQAgAEQATwBFAFMAIABOAE8AVAAgAFcAQQBSAFIAQQBOAFQAIABUAEgAQQBUACAAVABIAEUAIABPAFAARQBSAEEAVABJAE8ATgAgAE8ARgAgAFQASABFACAARgBPAE4AVAAgAFMATwBGAFQAVwBBAFIARQAgAFcASQBMAEwAIABCAEUAIABVAE4ASQBOAFQARQBSAFIAVQBQAFQARQBEACAATwBSACAARQBSAFIATwBSAC0ARgBSAEUARQAsACAATwBSACAAVABIAEEAVAAgAFQASABFACAARgBPAE4AVAAgAFMATwBGAFQAVwBBAFIARQAgAEkAUwAgAFcASQBUAEgATwBVAFQAIABEAEUARgBFAEMAVABTAC4AIABVAE4ARABFAFIAIABOAE8AIABDAEkAUgBDAFUATQBTAFQAQQBOAEMARQBTACAAUwBIAEEATABMACAAQwBPAE0ATQBFAFIAQwBJAEEATAAgAFQAWQBQAEUAIABCAEUAIABMAEkAQQBCAEwARQAgAFQATwAgAFkATwBVACAATwBSACAAQQBOAFkAIABPAFQASABFAFIAIABQAEEAUgBUAFkALAAgAFcASABFAFQASABFAFIAIABJAE4AIABDAE8ATgBUAFIAQQBDAFQAIABPAFIAIABUAE8AUgBUACAAKABJAE4AQwBMAFUARABJAE4ARwAgAE4ARQBHAEwASQBHAEUATgBDAEUAKQAgAE8AUgAgAE8AVABIAEUAUgBXAEkAUwBFACwAIABGAE8AUgAgAEEATgBZACAAUwBQAEUAQwBJAEEATAAsACAAQwBPAE4AUwBFAFEAVQBFAE4AVABJAEEATAAsACAATwBSACAASQBOAEMASQBEAEUATgBUAEEATAAgAEQAQQBNAEEARwBFAFMALAAgAEkATgBDAEwAVQBEAEkATgBHACAATABPAFMAVAAgAFAAUgBPAEYASQBUAFMALAAgAFMAQQBWAEkATgBHAFMAIABPAFIAIABCAFUAUwBJAE4ARQBTAFMAIABJAE4AVABFAFIAUgBVAFAAVABJAE8ATgAgAEEAUwAgAEEAIABSAEUAUwBVAEwAVAAgAE8ARgAgAFQASABFACAAVQBTAEUAIABPAEYAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIABFAFYARQBOACAASQBGACAATgBPAFQASQBGAEkARQBEACAASQBOACAAQQBEAFYAQQBOAEMARQAgAE8ARgAgAFMAVQBDAEgAIABQAE8AUwBTAEkAQgBJAEwASQBUAFkALgAgAFkAbwB1ACAAaABlAHIAZQBiAHkAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAeQBvAHUAcgAgAGUAbgB0AGkAcgBlACwAIABlAHgAYwBsAHUAcwBpAHYAZQAsACAAYQBuAGQAIABjAHUAbQB1AGwAYQB0AGkAdgBlACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAgAHIAZQBtAGUAZAB5ACAAcwBoAGEAbABsACAAYgBlACAAbABpAG0AaQB0AGUAZAAgAHQAbwAgAHQAaABlACAAcAB1AHIAYwBoAGEAcwBlACAAcAByAGkAYwBlACAAbwBmACAAdABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABMAGkAYwBlAG4AcwBlAC4AIABVAG4AZABlAHIAIABuAG8AIABjAGkAcgBjAHUAbQBzAHQAYQBuAGMAZQBzACAAcwBoAGEAbABsACAAUwBjAGgAdwBhAHIAdAB6AGMAbwAsACAASQBuAGMALgAnAHMAIABvAHIAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAnAHMAIABsAGkAYQBiAGkAbABpAHQAeQAgAHQAbwAgAHkAbwB1ACAAZQB4AGMAZQBlAGQAIABlAGkAdABoAGUAcgAgAHQAaABlACAAcgBlAGYAdQBuAGQAaQBuAGcAIABvAGYAIAB0AGgAZQAgAGMAbwBzAHQAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABMAGkAYwBlAG4AcwBlACAAbwByACAAcgBlAHAAbABhAGMAZQBtAGUAbgB0ACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAZQBpAHQAaABlAHIAIABvAGYAIAB3AGgAaQBjAGgAIABzAGgAYQBsAGwAIABiAGUAIABhAHQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAnAHMAIABzAG8AbABlACAAZABpAHMAYwByAGUAdABpAG8AbgAuACAAIAAxADcALgAgAE8AVABIAEUAUgAgAEwAQQBXACAALQAgAEMATwBOAFMAVQBNAEUAUgBTACAATwBOAEwAWQAuACAAUwBvAG0AZQAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuAHMAIABkAG8AIABuAG8AdAAgAGEAbABsAG8AdwAgAHQAaABlACAAZQB4AGMAbAB1AHMAaQBvAG4AIABvAHIAIABsAGkAbQBpAHQAYQB0AGkAbwBuACAAbwBmACAAaQBuAGMAaQBkAGUAbgB0AGEAbAAsACAAYwBvAG4AcwBlAHEAdQBlAG4AdABpAGEAbAAgAG8AcgAgAHMAcABlAGMAaQBhAGwAIABkAGEAbQBhAGcAZQBzACwAIABpAG0AcABsAGkAZQBkACAAdwBhAHIAcgBhAG4AdABpAGUAcwAgAG8AcgAgAGkAbQBwAGwAaQBlAGQAIAB3AGEAcgByAGEAbgB0AGkAZQBzACAAYQBzACAAdABoAGUAeQAgAHIAZQBsAGEAdABlACAAdABvACAAcwBhAGwAZQBzACAAdABvACAAYwBvAG4AcwB1AG0AZQByAHMALgAgAEEATgBZACAASQBNAFAATABJAEUARAAgAFcAQQBSAFIAQQBOAFQAWQAgAE8AUgAgAE8AVABIAEUAUgAgAFIASQBHAEgAVAAgAEMAUgBFAEEAVABFAEQAIABCAFkAIABMAEEAVwAgAEkAUwAgAE8ATgBMAFkAIABFAEYARgBFAEMAVABJAFYARQAgAEYATwBSACAAVABIAEUAIABOAEkATgBFAFQAWQAgACgAOQAwACkAIABEAEEAWQAgAFcAQQBSAFIAQQBOAFQAWQAgAFAARQBSAEkATwBEAC4AIABUAEgARQBSAEUAIABBAFIARQAgAE4ATwAgAFcAQQBSAFIAQQBOAFQASQBFAFMAIABPAFIAIABDAE8ATgBEAEkAVABJAE8ATgBTACAATwBGACAAQQBOAFkAIABLAEkATgBEACAAQQBGAFQARQBSACAAVABIAEUAIABOAEkATgBFAFQAWQAgACgAOQAwACkAIABEAEEAWQAgAFcAQQBSAFIAQQBOAFQAWQAgAFAARQBSAEkATwBEAC4AIABUAG8AIAB0AGgAZQAgAGUAeAB0AGUAbgB0ACAAcABlAHIAbQBpAHMAcwBpAGIAbABlACAAYgB5ACAAbABhAHcALAAgAHkAbwB1ACAAYQBnAHIAZQBlACAAdABoAGEAdAAgAGEAbABsACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABhAHIAZQAgAG4AbwB0ACAAdABvACAAYgBlACAAZQBmAGYAZQBjAHQAaQB2AGUAIABmAG8AcgAgAG0AbwByAGUAIAB0AGgAYQBuACAAdABoAGkAcgB0AHkAIAAoADMAMAApACAAZABhAHkAcwAuACAAIAAgADEAOAAuACAAWQBvAHUAIABlAHgAcAByAGUAcwBzAGwAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABzAGgAYQBsAGwAIABiAGUAIABnAG8AdgBlAHIAbgBlAGQAIABiAHkAIAB0AGgAZQAgAGwAYQB3AHMAIABvAGYAIAB0AGgAZQAgAFMAdABhAHQAZQAgAG8AZgAgAE4AZQB3ACAAWQBvAHIAawAsACAAVQAuAFMALgBBAC4ALAAgAGEAcwAgAHQAaABlAHkAIABhAHAAcABsAHkAIAB0AG8AIABjAG8AbgB0AHIAYQBjAHQAcwAgAGUAbgB0AGUAcgBlAGQAIABpAG4AdABvACAAYQBuAGQAIAB3AGgAbwBsAGwAeQAgAHAAZQByAGYAbwByAG0AZQBkACAAdABoAGUAcgBlAGkAbgAgAGEAbgBkACAAdwBpAHQAaABvAHUAdAAgAHIAZQBzAHAAZQBjAHQAIAB0AG8AIABpAHQAcwAgAGMAbwBuAGYAbABpAGMAdAAgAG8AZgAgAGwAYQB3AHMAIABwAHIAbwB2AGkAcwBpAG8AbgBzACAAbwByACAAdABoAGUAIABjAG8AbgBmAGwAaQBjAHQAIABvAGYAIABsAGEAdwBzACAAcAByAG8AdgBpAHMAaQBvAG4AcwAgAG8AZgAgAGEAbgB5ACAAbwB0AGgAZQByACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4ALgAgAFkAbwB1ACAAZQB4AHAAcgBlAHMAcwBsAHkAIABzAHUAYgBtAGkAdAAgAHQAbwAgAHQAaABlACAAcABlAHIAcwBvAG4AYQBsACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAHMAdABhAHQAZQAgAGEAbgBkACAAZgBlAGQAZQByAGEAbAAgAGMAbwB1AHIAdABzACAAaQBuACAAdABoAGUAIABTAHQAYQB0AGUAIABvAGYAIABOAGUAdwAgAFkAbwByAGsALAAgAFUAUwBBACwAIABhAGcAcgBlAGUAIAB0AG8AIAB3AGEAaQB2AGUAIABhAG4AeQAgAGQAZQBmAGUAbgBzAGUAcwAgAGEAcgBpAHMAaQBuAGcAIABvAHUAdAAgAG8AZgAgAHQAaABlACAAcwBlAGwAZQBjAHQAaQBvAG4AIABvAGYAIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgAgAG8AcgAgAHYAZQBuAHUAZQAgAGEAbgBkACAAZgB1AHIAdABoAGUAcgAgAGEAZwByAGUAZQAgAHQAbwAgAHMAZQByAHYAaQBjAGUAIABvAGYAIABwAHIAbwBjAGUAcwBzACAAYgB5ACAAbQBhAGkAbAAuACAAWQBvAHUAIABoAGUAcgBlAGIAeQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAYQBnAHIAZQBlACAAdABoAGEAdAAgAHQAaABlACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAE4AYQB0AGkAbwBuAHMAIABDAG8AbgB2AGUAbgB0AGkAbwBuACAAbwBmACAAQwBvAG4AdAByAGEAYwB0AHMAIABmAG8AcgAgAHQAaABlACAASQBuAHQAZQByAG4AYQB0AGkAbwBuAGEAbAAgAFMAYQBsAGUAIABvAGYAIABHAG8AbwBkAHMAIABpAHMAIABlAHgAcAByAGUAcwBzAGwAeQAgAGUAeABjAGwAdQBkAGUAZAAuACAAIAAxADkALgAgAFkAbwB1ACAAYQBjAGsAbgBvAHcAbABlAGQAZwBlACAAdABoAGEAdAAgAHkAbwB1ACAAaABhAHYAZQAgAHIAZQBhAGQAIABhAG4AZAAgAHUAbgBkAGUAcgBzAHQAYQBuAGQAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABhAG4AZAAgAHQAaABhAHQAIABiAHkAIAB1AHMAaQBuAGcAIAB0AGgAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAHkAbwB1ACAAYQBnAHIAZQBlACAAdABvACAAYgBlACAAYgBvAHUAbgBkACAAYgB5ACAAaQB0AHMAIAB0AGUAcgBtAHMAIABhAG4AZAAgAGMAbwBuAGQAaQB0AGkAbwBuAHMALgAgAFkAbwB1ACAAZgB1AHIAdABoAGUAcgAgAGEAZwByAGUAZQAgAHQAaABhAHQAIABpAHQAIABpAHMAIAB0AGgAZQAgAGMAbwBtAHAAbABlAHQAZQAgAGEAbgBkACAAZQB4AGMAbAB1AHMAaQB2AGUAIABzAHQAYQB0AGUAbQBlAG4AdAAgAG8AZgAgAHQAaABlACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAG4AZAAgAHkAbwB1ACAAdwBoAGkAYwBoACAAcwB1AHAAZQByAHMAZQBkAGUAcwAgAGEAbgB5ACAAcAByAG8AcABvAHMAYQBsACAAbwByACAAcAByAGkAbwByACAAYQBnAHIAZQBlAG0AZQBuAHQALAAgAG8AcgBhAGwAIABvAHIAIAB3AHIAaQB0AHQAZQBuACwAIABhAG4AZAAgAGEAbgB5ACAAbwB0AGgAZQByACAAYwBvAG0AbQB1AG4AaQBjAGEAdABpAG8AbgBzACAAcgBlAGwAYQB0AGkAbgBnACAAdABvACAAdABoAGUAIABzAHUAYgBqAGUAYwB0ACAAbQBhAHQAdABlAHIAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALgAgAE4AbwAgAHYAYQByAGkAYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIAB0AGUAcgBtAHMAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABvAHIAIABhAG4AeQAgAGQAaQBmAGYAZQByAGUAbgB0ACAAdABlAHIAbQBzACAAdwBpAGwAbAAgAGIAZQAgAGUAbgBmAG8AcgBjAGUAYQBiAGwAZQAgAGkAbgAgAHQAaABlACAAYQBiAHMAZQBuAGMAZQAgAG8AZgAgAGEAbgAgAGUAeABwAHIAZQBzAHMAIAB3AHIAaQB0AHQAZQBuACAAYQBtAGUAbgBkAG0AZQBuAHQALAAgAG8AcgAgAGMAbwBuAHMAZQBuAHQALAAgAGkAbgBjAGwAdQBkAGkAbgBnACAAYQAgAHcAcgBpAHQAdABlAG4AIABlAHgAcAByAGUAcwBzACAAdwBhAGkAdgBlAHIAIABvAGYAIAB0AGgAZQAgAGEAZgBmAGUAYwB0AGUAZAAgAHQAZQByAG0AcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAuACAASQBmACAAYQBuAHkAIABwAHIAbwB2AGkAcwBpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGkAcwAgAGQAZQBjAGwAYQByAGUAZAAgAGIAeQAgAGEAIABjAG8AdQByAHQAIABvAGYAIABjAG8AbQBwAGUAdABlAG4AdAAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuACAAdABvACAAYgBlACAAaQBuAHYAYQBsAGkAZAAsACAAdgBvAGkAZAAgAG8AcgAgAHUAbgBlAG4AZgBvAHIAYwBlAGEAYgBsAGUALAAgAHQAaABlACAAcgBlAG0AYQBpAG4AaQBuAGcAIABwAHIAbwB2AGkAcwBpAG8AbgBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAcwBoAGEAbABsACAAYwBvAG4AdABpAG4AdQBlACAAaQBuACAAZgB1AGwAbAAgAGYAbwByAGMAZQAgAGEAbgBkACAAZQBmAGYAZQBjAHQALAAgAGEAbgBkACAAdABoAGUAIABpAG4AdgBhAGwAaQBkACAAcAByAG8AdgBpAHMAaQBvAG4AIABzAGgAYQBsAGwAIABiAGUAIAByAGUAcABsAGEAYwBlAGQAIABiAHkAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAHcAaQB0AGgAIABhACAAcAByAG8AdgBpAHMAaQBvAG4AIAB0AGgAYQB0ACAAZQBmAGYAZQBjAHQAcwAgAHQAaABlACAAaQBuAHQAZQBuAHQAIABvAGYAIAB0AGgAZQAgAGkAbgB2AGEAbABpAGQAIABwAHIAbwB2AGkAcwBpAG8AbgAuACAAIAAyADAALgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAZQB4AHAAcgBlAHMAcwBsAHkAIAByAGUAcwBlAHIAdgBlAHMAIAB0AGgAZQAgAHIAaQBnAGgAdAAgAHQAbwAgAGEAbQBlAG4AZAAgAG8AcgAgAG0AbwBkAGkAZgB5ACAAaQB0AHMAIABMAGkAYwBlAG4AcwBlACAAQQBnAHIAZQBlAG0AZQBuAHQAcwAgAGEAdAAgAGEAbgB5ACAAdABpAG0AZQAgAGEAbgBkACAAdwBpAHQAaABvAHUAdAAgAHAAcgBpAG8AcgAgAG4AbwB0AGkAZgBpAGMAYQB0AGkAbwBuAC4AIAAgADIAMQAuACAAVABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHMAaABhAGwAbAAgAGEAdQB0AG8AbQBhAHQAaQBjAGEAbABsAHkAIAB0AGUAcgBtAGkAbgBhAHQAZQAgAGkAbgAgAHQAaABlACAAZQB2AGUAbgB0ACAAeQBvAHUAIABvAHIAIABhAG4AeQAgAGEAdQB0AGgAbwByAGkAegBlAGQAIAB1AHMAZQByACAAYgByAGUAYQBjAGgAZQBzACAAYQBuAHkAIAB0AGUAcgBtACAAbwByACAAYwBvAG4AZABpAHQAaQBvAG4AIABzAGUAdAAgAGYAbwByAHQAaAAgAGgAZQByAGUAaQBuAC4AIABOAG8AdAB3AGkAdABoAHMAdABhAG4AZABpAG4AZwAgAGEAbgB5ACAAdABlAHIAbQBpAG4AYQB0AGkAbwBuACAAbwBmACAAdABoAGkAcwAgAEwAaQBjAGUAbgBzAGUALAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAZQB4AHAAcgBlAHMAcwBsAHkAIAByAGUAcwBlAHIAdgBlAHMAIABhAG4AeQAgAGEAbgBkACAAYQBsAGwAIABvAHQAaABlAHIAIAByAGkAZwBoAHQAcwAgAGEAbgBkACAAcgBlAG0AZQBkAGkAZQBzACAAdQBuAGQAZQByACAAZQBxAHUAaQB0AHkAIABvAHIAIABsAGEAdwAuACAAVABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAgAG0AYQB5ACAAbwBuAGwAeQAgAGIAZQAgAG0AbwBkAGkAZgBpAGUAZAAgAGkAbgAgAGEAIAB3AHIAaQB0AGkAbgBnACAAcwBpAGcAbgBlAGQAIABiAHkAIABhAG4AIABhAHUAdABoAG8AcgBpAHoAZQBkACAAbwBmAGYAaQBjAGUAcgAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIAAgADIAMgAuACAAWQBvAHUAIABhAGcAcgBlAGUAIAB0AG8AIABiAGUAIAByAGUAcwBwAG8AbgBzAGkAYgBsAGUAIABmAG8AcgAgAGMAbwBtAHAAbABpAGEAbgBjAGUAIAB3AGkAdABoACAAYQBsAGwAIABsAGEAdwBzACwAIABmAG8AcgBlAGkAZwBuACAAYQBuAGQAIABkAG8AbQBlAHMAdABpAGMAIAByAGUAbABhAHQAaQBuAGcAIAB0AG8AIAB0AGgAZQAgAGMAbwBuAHQAcgBvAGwAIABvAGYAIABlAHgAcABvAHIAdABzACAAbwByACAAdABoAGUAIAB0AHIAYQBuAHMAZgBlAHIAIABvAGYAIAB0AGUAYwBoAG4AbwBsAG8AZwB5AC4AIABJAGYAIAB5AG8AdQAgAGEAcgBlACAAcAB1AHIAYwBoAGEAcwBpAG4AZwAgAHQAaABpAHMAIABMAGkAYwBlAG4AcwBlACAAZgBvAHIAIABnAG8AdgBlAHIAbgBtAGUAbgB0ACAAdQBzAGUALAAgAG8AcgAgAHUAbgBkAGUAcgAgAGEAIABnAG8AdgBlAHIAbgBtAGUAbgB0ACAAYwBvAG4AdAByAGEAYwB0ACwAIAB5AG8AdQAgAGEAZwByAGUAZQAgAHQAbwAgAGYAYQBtAGkAbABpAGEAcgBpAHoAZQAgAHkAbwB1AHIAcwBlAGwAZgAgAHcAaQB0AGgAIABhAG4AZAAgAGYAbwBsAGwAbwB3ACAAYQBuAHkAIABhAHAAcABsAGkAYwBhAGIAbABlACAAcgB1AGwAZQBzACAAYQBuAGQAIAByAGUAZwB1AGwAYQB0AGkAbwBuAHMAIAByAGUAbABhAHQAaQBuAGcAIAB0AG8AIAB0AGgAZQAgAHAAdQBy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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+w/8T/pgAA//b/4v/7//v/4v/2AAD/+wAAAAD/4gAA/+cAAP/x/8T/xAAAAAAAAAAA/7r/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAA//v/9gAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAABf/2//v/+wAA//H/4v/2AAD/7P/sAAAAAAAAAAD/7AAA/+wAAP/2AAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/s/+z/4gAAAAAAAAAAAAUAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+cAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/+wAA/93/2P/2//H/5/+/AAD/8QAA//v/5//s/9gAAP/7AAAAAAAAAAAAAAAA//v/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+D/6H/agAZ/+z/4v/2AAD/2P/OAAAAAAAAAAD/2AAA/90AAP/n/7r/vwAAAAAAAAAA/5z/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4v/i/+z/3QAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAA/+f/+//n//v/+//2//YAAAAAAAAAAAAAAAAAAP/7AAD/+wAA//YAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+//x/+z/4gAAAAAAAAAAAAD/9gAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAA/+f/+//2AAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAAABQAA/43/4gAA/5z/2P+1/8T/nP+h/7X/8f/E/87/2AAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/2AAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xAAAAAAAAAAA/8T/7P/7/87/7P/d/93/zv+m/9j/9v/Y/+z/5wAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/9gAAAAAAAAAAAAD/pgAFAAAAAAAA/5f/3f/7/5z/0/+1/8T/nP+h/7X/3f/E/87/2AAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/2AAAAAAAAAAAAAAAAP/s//H/9gAA//b/7AAAAAD/7AAAAAAAAAAAAAD/8QAA//YAAP/7AAAAAAAAAAAAAAAA//b/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAAAAA//sAAAAAAAD/+//OAAAAAAAAAAAAAAAAADwARgAAAAoADwBGAAAALQAAAAAAAAAAAAAAAAAtAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v+1/93/tQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAA/9gAAP/iAAD/9v/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAP/xAAD/9gAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAD/8QAA//sAAAAA//b/9gAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/+wAAAAD/+wAA//v/9gAAAAAAAAAAAAD/+wAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAP+h/6b/oQAAAAD/7AAAAAD/0wAAAAAAAAAAAAD/zv/7/9gAAP/7/2//bwAAAAAAAAAA/6EAAAAAAAD/uv/xAAAAAAAAAAAAAP/OAAD/xAAAAAAAAAAA//sAAAAA//sAAAAAAAD/+/9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/vwAAAAAAAAAA//YAAAAA//sAAAAAAAD/+/9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/9gAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAD/+/+cAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+wAA//sAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/7AAAAAD/+wAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/+wAAAAD/+wAAAAD/+//7//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIABQACAAYAAAALAAsABQANAA4ABgAQACsACAAtAEkAJAABAAIASAAqACoAJwAgACcAAAAAAAAAAAAFAAAACgAJAAAABgAIAAwAAAANABQADgABAA8AEAAQABEAEgATABAAEAAUAAIAFAAVABYAFwAYAAMAGQAEABoAGwAAACYAHAAkAB0AHgAfACUAIQAiACMAJAAlACUAJgAmAAcAKwAsAC0AMAAuAC4ACwAuAC8AKAApACgAKQABAAIASQAaABoADgALAA4AAAAfAAAAIQAkAB4AJQAgAAAAJgAcAAEAAAAHAAAAAAAAAAcAAAAAAAYAAAAAAAAAAAAHAAAABwAAAAgAAgAUABsAAwAdAAQAFwAJABkADQAJAA0ACgAJABkAGAAFABkAGQAMAAwADQAMAAkADAAPABAAEQASABIAIgASABMAFQAWABUAFgAjAAAAAQAAAAoAagDMAAJERkxUAA5sYXRuABwABAAAAAD//wACAAAABQAWAANBWkUgACBDUlQgACxUUksgADgAAP//AAIAAQAGAAD//wADAAIABwAKAAD//wADAAMACAALAAD//wADAAQACQAMAA1jYWx0AFBjYWx0AFBjYWx0AFBjYWx0AFBjYWx0AFBsaWdhAFZsaWdhAFZsaWdhAFZsaWdhAFZsaWdhAFZsb2NsAFxsb2NsAFxsb2NsAFwAAAABAAIAAAABAAEAAAABAAAAAwAIACIAKgAGAAAAAQAIAAMAAAABAAwAAAAAAAEAAQA0AAYAAAABABIABgAAAAIACgAwAAMAAAABAA4AAQAUAAAAAQABADEAAQAHAC0AMQAzADQANQA2ADcAAwAAAAEADgABABQAAAABAAEANQABAAIANQA8AAAB9AAAAQkAAAHVAGYBHwBmASQAQgHwAFQBJABYArQAYgG9ADICagBLAoIAQQKwAC0CiwBPAo4ASAJqAEECngBQAo4ASAIgAE4DIAAhAxAAbgMpAEUDQABuAu0AbgLUAG4DTwBFA1IAbgE/AG8ClwBZAwwAbgLAAG4D8QBuA1wAbgNoAEUDCgBuA2gARQMjAG4C8AA0Av8AKANJAGsDHQAmBGkAKwMtACIC/QAPAw4ANwKTADoCmQBeAlIAOQKbADoCZAA5AekAHgKbADoCjABeARkAXQEZ/40CTwBeARsAYAP7AF4CjABeAnoAOQKZAF4CmwA6AgIAXgI1ADACBAAeAn8AWAJFABcDZQAcAloAFwJFABcCXgA4ASQAWAEkAFIB7wBYAe8AUgFQAG4="}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/cf0aad1aef31db4e.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.220Z","timestamp":1785142498220,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/cf0aad1aef31db4e.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"cf0aad1aef31db4e.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"22d0dc0cfae450e73ac4d2404f228b25\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/cf0aad1aef31db4e.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::zgblr-1785142498259-425813a206d2\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":21191,"size_decoded":6779,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (21191), with no line terminators","md5":"22d0dc0cfae450e73ac4d2404f228b25","sha1":"0c01007901f38f1e7b7eb6969ce05b296386390e","sha256":"ec35af0e6f8307894f0f2001ea70aa21bb353038d788c29e1b0d5f96dada78c8","sha512":"16a43b66d68c836e3a774fb33f58d0fb8f3d64db362293556aeac018e624da0704ab83ab3df691bf09a08ed8c284b757f3a7bafe36ea4e32477a4f502689b61f","ssdeep":"192:+GYGNU55n/HDEPMMSxN6m61nrh+7pgwhA8DPSg71G8Erj3kRYwid/iZYI4IwX5NY:+GYFPFxYVrhgpXTfmlwi++IwXI","tlshash":"3b92a7e531d5f9c6069b80a8c83b4016f32e4d7610ad70d4e7f1cce679a095ee1b2fa9","first_seen":"2025-12-10T05:37:01.889208Z","last_seen":"2026-07-27T08:57:45.714415Z","times_seen":104,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDU5MDM3MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwidXNlVW50cmFja2VkUGF0aG5hbWUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1fX0pO2xldCBuPWUucigyNzE2NDUpLG89ZS5yKDI2MTk5NCk7ZnVuY3Rpb24gdSgpe3JldHVybiFmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXtsZXR7d29ya1VuaXRBc3luY1N0b3JhZ2U6dH09ZS5yKDY2MjE0MSkscj10LmdldFN0b3JlKCk7aWYoIXIpcmV0dXJuITE7c3dpdGNoKHIudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcHByIjpsZXQgbj1yLmZhbGxiYWNrUm91dGVQYXJhbXM7cmV0dXJuISFuJiZuLnNpemU+MH19cmV0dXJuITF9KCk/KDAsbi51c2VDb250ZXh0KShvLlBhdGhuYW1lQ29udGV4dCk6bnVsbH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw0NTExOTEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKGUsdD0hMCl7cmV0dXJuIGUucGF0aG5hbWUrZS5zZWFyY2grKHQ/ZS5oYXNoOiIiKX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImNyZWF0ZUhyZWZGcm9tVXJsIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KSwoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxNzgzNzcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2hhbmRsZUhhcmROYXZFcnJvcjpmdW5jdGlvbigpe3JldHVybiBhfSx1c2VOYXZGYWlsdXJlSGFuZGxlcjpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2UucigyNzE2NDUpO2xldCB1PWUucig0NTExOTEpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuISFlJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmISF3aW5kb3cubmV4dC5fX3BlbmRpbmdVcmwmJigwLHUuY3JlYXRlSHJlZkZyb21VcmwpKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKSE9PSgwLHUuY3JlYXRlSHJlZkZyb21VcmwpKHdpbmRvdy5uZXh0Ll9fcGVuZGluZ1VybCkmJihjb25zb2xlLmVycm9yKCJFcnJvciBvY2N1cnJlZCBkdXJpbmcgbmF2aWdhdGlvbiwgZmFsbGluZyBiYWNrIHRvIGhhcmQgbmF2aWdhdGlvbiIsZSksd2luZG93LmxvY2F0aW9uLmhyZWY9d2luZG93Lm5leHQuX19wZW5kaW5nVXJsLnRvU3RyaW5nKCksITApfWZ1bmN0aW9uIGkoKXt9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTI2OTM1LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJIVE1MX0xJTUlURURfQk9UX1VBX1JFIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj0vW1x3LV0rLUdvb2dsZXxHb29nbGUtW1x3LV0rfENocm9tZS1MaWdodGhvdXNlfFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8cmVkZGl0Ym90fGlhX2FyY2hpdmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8YXBwbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxMaW5rZWRJbkJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xZZXRpfGdvb2dsZXdlYmxpZ2h0L2l9LDgyNjA0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtIVE1MX0xJTUlURURfQk9UX1VBX1JFOmZ1bmN0aW9uKCl7cmV0dXJuIHUuSFRNTF9MSU1JVEVEX0JPVF9VQV9SRX0sSFRNTF9MSU1JVEVEX0JPVF9VQV9SRV9TVFJJTkc6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sZ2V0Qm90VHlwZTpmdW5jdGlvbigpe3JldHVybiBkfSxpc0JvdDpmdW5jdGlvbigpe3JldHVybiBjfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCB1PWUucigxMjY5MzUpLGE9L0dvb2dsZWJvdCg/IS0pfEdvb2dsZWJvdCQvaSxpPXUuSFRNTF9MSU1JVEVEX0JPVF9VQV9SRS5zb3VyY2U7ZnVuY3Rpb24gbChlKXtyZXR1cm4gdS5IVE1MX0xJTUlURURfQk9UX1VBX1JFLnRlc3QoZSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYS50ZXN0KGUpfHxsKGUpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGEudGVzdChlKT8iZG9tIjpsKGUpPyJodG1sIjp2b2lkIDB9fSw5NzIzODMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0Vycm9yQm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gX30sRXJyb3JCb3VuZGFyeUhhbmRsZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcH19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoNTU1NjgyKSxhPWUucig4NDM0NzYpLGk9dS5fKGUucigyNzE2NDUpKSxsPWUucig1OTAzNzMpLGM9ZS5yKDI2NTcxMyk7ZS5yKDE3ODM3Nyk7bGV0IGQ9ZS5yKDkxMjM1NCksZj1lLnIoODI2MDQpLHM9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJigwLGYuaXNCb3QpKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtjbGFzcyBwIGV4dGVuZHMgaS5kZWZhdWx0LkNvbXBvbmVudHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKSx0aGlzLnJlc2V0PSgpPT57dGhpcy5zZXRTdGF0ZSh7ZXJyb3I6bnVsbH0pfSx0aGlzLnN0YXRlPXtlcnJvcjpudWxsLHByZXZpb3VzUGF0aG5hbWU6dGhpcy5wcm9wcy5wYXRobmFtZX19c3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlKXtpZigoMCxjLmlzTmV4dFJvdXRlckVycm9yKShlKSl0aHJvdyBlO3JldHVybntlcnJvcjplfX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUsdCl7bGV0e2Vycm9yOnJ9PXQ7cmV0dXJuIGUucGF0aG5hbWUhPT10LnByZXZpb3VzUGF0aG5hbWUmJnQuZXJyb3I/e2Vycm9yOm51bGwscHJldmlvdXNQYXRobmFtZTplLnBhdGhuYW1lfTp7ZXJyb3I6dC5lcnJvcixwcmV2aW91c1BhdGhuYW1lOmUucGF0aG5hbWV9fXJlbmRlcigpe3JldHVybiB0aGlzLnN0YXRlLmVycm9yJiYhcz8oMCxhLmpzeHMpKGEuRnJhZ21lbnQse2NoaWxkcmVuOlsoMCxhLmpzeCkoZC5IYW5kbGVJU1JFcnJvcix7ZXJyb3I6dGhpcy5zdGF0ZS5lcnJvcn0pLHRoaXMucHJvcHMuZXJyb3JTdHlsZXMsdGhpcy5wcm9wcy5lcnJvclNjcmlwdHMsKDAsYS5qc3gpKHRoaXMucHJvcHMuZXJyb3JDb21wb25lbnQse2Vycm9yOnRoaXMuc3RhdGUuZXJyb3IscmVzZXQ6dGhpcy5yZXNldH0pXX0pOnRoaXMucHJvcHMuY2hpbGRyZW59fWZ1bmN0aW9uIF8oe2Vycm9yQ29tcG9uZW50OmUsZXJyb3JTdHlsZXM6dCxlcnJvclNjcmlwdHM6cixjaGlsZHJlbjpufSl7bGV0IG89KDAsbC51c2VVbnRyYWNrZWRQYXRobmFtZSkoKTtyZXR1cm4gZT8oMCxhLmpzeCkocCx7cGF0aG5hbWU6byxlcnJvckNvbXBvbmVudDplLGVycm9yU3R5bGVzOnQsZXJyb3JTY3JpcHRzOnIsY2hpbGRyZW46bn0pOigwLGEuanN4KShhLkZyYWdtZW50LHtjaGlsZHJlbjpufSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMjAzMzcyLChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCIvIik/ZTpgLyR7ZX1gfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZW5zdXJlTGVhZGluZ1NsYXNoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX0sMTc0MTgwLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtub3JtYWxpemVBcHBQYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LG5vcm1hbGl6ZVJzY1VSTDpmdW5jdGlvbigpe3JldHVybiBsfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCB1PWUucigyMDMzNzIpLGE9ZS5yKDgxMzI1OCk7ZnVuY3Rpb24gaShlKXtyZXR1cm4oMCx1LmVuc3VyZUxlYWRpbmdTbGFzaCkoZS5zcGxpdCgiLyIpLnJlZHVjZSgoZSx0LHIsbik9PiF0fHwoMCxhLmlzR3JvdXBTZWdtZW50KSh0KXx8IkAiPT09dFswXXx8KCJwYWdlIj09PXR8fCJyb3V0ZSI9PT10KSYmcj09PW4ubGVuZ3RoLTE/ZTpgJHtlfS8ke3R9YCwiIikpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUucmVwbGFjZSgvXC5yc2MoJHxcPykvLCIkMSIpfX0sNTkxNDYzLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUzpmdW5jdGlvbigpe3JldHVybiBhfSxleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbjpmdW5jdGlvbigpe3JldHVybiBsfSxpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCB1PWUucigxNzQxODApLGE9WyIoLi4pKC4uKSIsIiguKSIsIiguLikiLCIoLi4uKSJdO2Z1bmN0aW9uIGkoZSl7cmV0dXJuIHZvaWQgMCE9PWUuc3BsaXQoIi8iKS5maW5kKGU9PmEuZmluZCh0PT5lLnN0YXJ0c1dpdGgodCkpKX1mdW5jdGlvbiBsKGUpe2xldCB0LHIsbjtmb3IobGV0IG8gb2YgZS5zcGxpdCgiLyIpKWlmKHI9YS5maW5kKGU9Pm8uc3RhcnRzV2l0aChlKSkpe1t0LG5dPWUuc3BsaXQociwyKTticmVha31pZighdHx8IXJ8fCFuKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7ZX0uIE11c3QgYmUgaW4gdGhlIGZvcm1hdCAvPGludGVyY2VwdGluZyByb3V0ZT4vKC4ufC4uLnwuLikoLi4pLzxpbnRlcmNlcHRlZCByb3V0ZT5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTI2OSIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtzd2l0Y2godD0oMCx1Lm5vcm1hbGl6ZUFwcFBhdGgpKHQpLHIpe2Nhc2UiKC4pIjpuPSIvIj09PXQ/YC8ke259YDp0KyIvIituO2JyZWFrO2Nhc2UiKC4uKSI6aWYoIi8iPT09dCl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke2V9LiBDYW5ub3QgdXNlICguLikgbWFya2VyIGF0IHRoZSByb290IGxldmVsLCB1c2UgKC4pIGluc3RlYWQuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUyMDciLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bj10LnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuY29uY2F0KG4pLmpvaW4oIi8iKTticmVhaztjYXNlIiguLi4pIjpuPSIvIituO2JyZWFrO2Nhc2UiKC4uKSguLikiOmxldCBvPXQuc3BsaXQoIi8iKTtpZihvLmxlbmd0aDw9Mil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoYEludmFsaWQgaW50ZXJjZXB0aW9uIHJvdXRlOiAke2V9LiBDYW5ub3QgdXNlICguLikoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCBvciBvbmUgbGV2ZWwgdXAuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU0ODYiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bj1vLnNsaWNlKDAsLTIpLmNvbmNhdChuKS5qb2luKCIvIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkludmFyaWFudDogdW5leHBlY3RlZCBtYXJrZXIiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTExMiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1yZXR1cm57aW50ZXJjZXB0aW5nUm91dGU6dCxpbnRlcmNlcHRlZFJvdXRlOm59fX0sNzU2MDE5LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJtYXRjaFNlZ21lbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPShlLHQpPT4ic3RyaW5nIj09dHlwZW9mIGU/InN0cmluZyI9PXR5cGVvZiB0JiZlPT09dDoic3RyaW5nIiE9dHlwZW9mIHQmJmVbMF09PT10WzBdJiZlWzFdPT09dFsxXTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw3Njc3NjQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0hFQURfUkVRVUVTVF9LRVk6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sUk9PVF9TRUdNRU5UX1JFUVVFU1RfS0VZOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LGFwcGVuZFNlZ21lbnRSZXF1ZXN0S2V5UGFydDpmdW5jdGlvbigpe3JldHVybiBjfSxjb252ZXJ0U2VnbWVudFBhdGhUb1N0YXRpY0V4cG9ydEZpbGVuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGNyZWF0ZVNlZ21lbnRSZXF1ZXN0S2V5UGFydDpmdW5jdGlvbigpe3JldHVybiBsfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCB1PWUucig4MTMyNTgpLGE9IiIsaT0iL19oZWFkIjtmdW5jdGlvbiBsKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZS5zdGFydHNXaXRoKHUuUEFHRV9TRUdNRU5UX0tFWSk/dS5QQUdFX1NFR01FTlRfS0VZOiIvX25vdC1mb3VuZCI9PT1lPyJfbm90LWZvdW5kIjpmKGUpO2xldCB0PWVbMF07cmV0dXJuIiQiK2VbMl0rIiQiK2YodCl9ZnVuY3Rpb24gYyhlLHQscil7cmV0dXJuIGUrIi8iKygiY2hpbGRyZW4iPT09dD9yOmBAJHtmKHQpfS8ke3J9YCl9bGV0IGQ9L15bYS16QS1aMC05XC1fQF0rJC87ZnVuY3Rpb24gZihlKXtyZXR1cm4gZC50ZXN0KGUpP2U6IiEiK2J0b2EoZSkucmVwbGFjZSgvXCsvZywiLSIpLnJlcGxhY2UoL1wvL2csIl8iKS5yZXBsYWNlKC89KyQvLCIiKX1mdW5jdGlvbiBzKGUpe3JldHVybmBfX25leHQke2UucmVwbGFjZSgvXC8vZywiLiIpfS50eHRgfX0sMzM5MDYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2RvZXNTdGF0aWNTZWdtZW50QXBwZWFySW5VUkw6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sZ2V0Q2FjaGVLZXlGb3JEeW5hbWljUGFyYW06ZnVuY3Rpb24oKXtyZXR1cm4gc30sZ2V0UGFyYW1WYWx1ZUZyb21DYWNoZUtleTpmdW5jdGlvbigpe3JldHVybiBffSxnZXRSZW5kZXJlZFBhdGhuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGdldFJlbmRlcmVkU2VhcmNoOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHBhcnNlRHluYW1pY1BhcmFtRnJvbVVSTFBhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sdXJsU2VhcmNoUGFyYW1zVG9QYXJzZWRVcmxRdWVyeTpmdW5jdGlvbigpe3JldHVybiBofSx1cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcH19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoODEzMjU4KSxhPWUucig3Njc3NjQpLGk9ZS5yKDYyMTc2OCk7ZnVuY3Rpb24gbChlKXtsZXQgdD1lLmhlYWRlcnMuZ2V0KGkuTkVYVF9SRVdSSVRURU5fUVVFUllfSEVBREVSKTtyZXR1cm4gbnVsbCE9PXQ/IiI9PT10PyIiOiI/Iit0OnAobmV3IFVSTChlLnVybCkpLnNlYXJjaH1mdW5jdGlvbiBjKGUpe3JldHVybiBlLmhlYWRlcnMuZ2V0KGkuTkVYVF9SRVdSSVRURU5fUEFUSF9IRUFERVIpPz9wKG5ldyBVUkwoZS51cmwpKS5wYXRobmFtZX1mdW5jdGlvbiBkKGUsdCxyKXtzd2l0Y2goZSl7Y2FzZSJjIjpyZXR1cm4gcjx0Lmxlbmd0aD90LnNsaWNlKHIpLm1hcChlPT5lbmNvZGVVUklDb21wb25lbnQoZSkpOltdO2Nhc2UiY2koLi4pKC4uKSI6Y2FzZSJjaSguKSI6Y2FzZSJjaSguLikiOmNhc2UiY2koLi4uKSI6e2xldCBuPWUubGVuZ3RoLTI7cmV0dXJuIHI8dC5sZW5ndGg/dC5zbGljZShyKS5tYXAoKGUsdCk9PjA9PT10P2VuY29kZVVSSUNvbXBvbmVudChlLnNsaWNlKG4pKTplbmNvZGVVUklDb21wb25lbnQoZSkpOltdfWNhc2Uib2MiOnJldHVybiByPHQubGVuZ3RoP3Quc2xpY2UocikubWFwKGU9PmVuY29kZVVSSUNvbXBvbmVudChlKSk6bnVsbDtjYXNlImQiOmlmKHI+PXQubGVuZ3RoKXJldHVybiIiO3JldHVybiBlbmNvZGVVUklDb21wb25lbnQodFtyXSk7Y2FzZSJkaSguLikoLi4pIjpjYXNlImRpKC4pIjpjYXNlImRpKC4uKSI6Y2FzZSJkaSguLi4pIjp7bGV0IG49ZS5sZW5ndGgtMjtpZihyPj10Lmxlbmd0aClyZXR1cm4iIjtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHRbcl0uc2xpY2UobikpfWRlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIGYoZSl7cmV0dXJuIShlPT09YS5ST09UX1NFR01FTlRfUkVRVUVTVF9LRVl8fGUuc3RhcnRzV2l0aCh1LlBBR0VfU0VHTUVOVF9LRVkpfHwiKCI9PT1lWzBdJiZlLmVuZHNXaXRoKCIpIikpJiZlIT09dS5ERUZBVUxUX1NFR01FTlRfS0VZJiYiL19ub3QtZm91bmQiIT09ZX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlPygwLHUuYWRkU2VhcmNoUGFyYW1zSWZQYWdlU2VnbWVudCkoZSxPYmplY3QuZnJvbUVudHJpZXMobmV3IFVSTFNlYXJjaFBhcmFtcyh0KSkpOm51bGw9PT1lPyIiOmUuam9pbigiLyIpfWZ1bmN0aW9uIHAoZSl7bGV0IHQ9bmV3IFVSTChlKTtyZXR1cm4gdC5zZWFyY2hQYXJhbXMuZGVsZXRlKGkuTkVYVF9SU0NfVU5JT05fUVVFUlkpLHR9ZnVuY3Rpb24gXyhlLHQpe3JldHVybiJjIj09PXR8fCJvYyI9PT10P2Uuc3BsaXQoIi8iKTplfWZ1bmN0aW9uIGgoZSl7bGV0IHQ9e307Zm9yKGxldFtyLG5db2YgZS5lbnRyaWVzKCkpdm9pZCAwPT09dFtyXT90W3JdPW46QXJyYXkuaXNBcnJheSh0W3JdKT90W3JdLnB1c2gobik6dFtyXT1bdFtyXSxuXTtyZXR1cm4gdH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw0NTA1OTAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2NyZWF0ZUluaXRpYWxSU0NQYXlsb2FkRnJvbUZhbGxiYWNrUHJlcmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGdldEZsaWdodERhdGFQYXJ0c0Zyb21QYXRoOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGdldE5leHRGbGlnaHRTZWdtZW50UGF0aDpmdW5jdGlvbigpe3JldHVybiBkfSxub3JtYWxpemVGbGlnaHREYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LHByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoODEzMjU4KSxhPWUucigzMzkwNiksaT1lLnIoNDUxMTkxKTtmdW5jdGlvbiBsKGUpe2xldFt0LHIsbixvXT1lLnNsaWNlKC00KSx1PWUuc2xpY2UoMCwtNCk7cmV0dXJue3BhdGhUb1NlZ21lbnQ6dS5zbGljZSgwLC0xKSxzZWdtZW50UGF0aDp1LHNlZ21lbnQ6dVt1Lmxlbmd0aC0xXT8/IiIsdHJlZTp0LHNlZWREYXRhOnIsaGVhZDpuLGlzSGVhZFBhcnRpYWw6byxpc1Jvb3RSZW5kZXI6ND09PWUubGVuZ3RofX1mdW5jdGlvbiBjKGUsdCl7bGV0IHI9KDAsYS5nZXRSZW5kZXJlZFBhdGhuYW1lKShlKSxuPSgwLGEuZ2V0UmVuZGVyZWRTZWFyY2gpKGUpLG89KDAsaS5jcmVhdGVIcmVmRnJvbVVybCkobmV3IFVSTChsb2NhdGlvbi5ocmVmKSksdT10LmZbMF0sbD11WzBdO3JldHVybntiOnQuYixjOm8uc3BsaXQoIi8iKSxxOm4saTp0LmksZjpbW2Z1bmN0aW9uIGUodCxyLG4sbyl7bGV0IHUsaSxsPXRbMF07aWYoInN0cmluZyI9PXR5cGVvZiBsKXU9bCxpPSgwLGEuZG9lc1N0YXRpY1NlZ21lbnRBcHBlYXJJblVSTCkobCk7ZWxzZXtsZXQgZT1sWzBdLHQ9bFsyXSxjPSgwLGEucGFyc2VEeW5hbWljUGFyYW1Gcm9tVVJMUGFydCkodCxuLG8pO3U9W2UsKDAsYS5nZXRDYWNoZUtleUZvckR5bmFtaWNQYXJhbSkoYyxyKSx0XSxpPSEwfWxldCBjPWk/bysxOm8sZD10WzFdLGY9e307Zm9yKGxldCB0IGluIGQpe2xldCBvPWRbdF07Zlt0XT1lKG8scixuLGMpfXJldHVyblt1LGYsbnVsbCx0WzNdLHRbNF1dfShsLG4sci5zcGxpdCgiLyIpLmZpbHRlcihlPT4iIiE9PWUpLDApLHVbMV0sdVsyXSx1WzJdXV0sbTp0Lm0sRzp0LkcsUzp0LlN9fWZ1bmN0aW9uIGQoZSl7cmV0dXJuIGUuc2xpY2UoMil9ZnVuY3Rpb24gZihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZTplLm1hcChlPT5sKGUpKX1mdW5jdGlvbiBzKGUsdCl7cmV0dXJuIHQ/ZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGUpKTplbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoZnVuY3Rpb24gZSh0KXt2YXIgcixuO2xldFtvLGEsaSxsLGMsZF09dCxmPSJzdHJpbmciPT10eXBlb2Yocj1vKSYmci5zdGFydHNXaXRoKHUuUEFHRV9TRUdNRU5UX0tFWSsiPyIpP3UuUEFHRV9TRUdNRU5UX0tFWTpyLHM9e307Zm9yKGxldFt0LHJdb2YgT2JqZWN0LmVudHJpZXMoYSkpc1t0XT1lKHIpO2xldCBwPVtmLHMsbnVsbCwobj1sKSYmInJlZnJlc2giIT09bj9sOm51bGxdO3JldHVybiB2b2lkIDAhPT1jJiYocFs0XT1jKSx2b2lkIDAhPT1kJiYocFs1XT1kKSxwfShlKSkpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDgxNDI5NywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Z2V0QXBwQnVpbGRJZDpmdW5jdGlvbigpe3JldHVybiBpfSxzZXRBcHBCdWlsZElkOmZ1bmN0aW9uKCl7cmV0dXJuIGF9fTtmb3IodmFyIG8gaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSk7bGV0IHU9IiI7ZnVuY3Rpb24gYShlKXt1PWV9ZnVuY3Rpb24gaSgpe3JldHVybiB1fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDQxOTkyMSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17ZGpiMkhhc2g6ZnVuY3Rpb24oKXtyZXR1cm4gdX0saGV4SGFzaDpmdW5jdGlvbigpe3JldHVybiBhfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2Z1bmN0aW9uIHUoZSl7bGV0IHQ9NTM4MTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl0PSh0PDw1KSt0K2UuY2hhckNvZGVBdChyKXwwO3JldHVybiB0Pj4+MH1mdW5jdGlvbiBhKGUpe3JldHVybiB1KGUpLnRvU3RyaW5nKDM2KS5zbGljZSgwLDUpfX0sNjg2MDUxLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJjb21wdXRlQ2FjaGVCdXN0aW5nU2VhcmNoUGFyYW0iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCBuPWUucig0MTk5MjEpO2Z1bmN0aW9uIG8oZSx0LHIsbyl7cmV0dXJuKHZvaWQgMD09PWV8fCIwIj09PWUpJiZ2b2lkIDA9PT10JiZ2b2lkIDA9PT1yJiZ2b2lkIDA9PT1vPyIiOigwLG4uaGV4SGFzaCkoW2V8fCIwIix0fHwiMCIscnx8IjAiLG98fCIwIl0uam9pbigiLCIpKX19LDI4ODA5MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17c2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW06ZnVuY3Rpb24oKXtyZXR1cm4gaX0sc2V0Q2FjaGVCdXN0aW5nU2VhcmNoUGFyYW1XaXRoSGFzaDpmdW5jdGlvbigpe3JldHVybiBsfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCB1PWUucig2ODYwNTEpLGE9ZS5yKDYyMTc2OCksaT0oZSx0KT0+e2woZSwoMCx1LmNvbXB1dGVDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSkodFthLk5FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0sdFthLk5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSXSx0W2EuTkVYVF9ST1VURVJfU1RBVEVfVFJFRV9IRUFERVJdLHRbYS5ORVhUX1VSTF0pKX0sbD0oZSx0KT0+e2xldCByPWUuc2VhcmNoLG49KHIuc3RhcnRzV2l0aCgiPyIpP3Iuc2xpY2UoMSk6cikuc3BsaXQoIiYiKS5maWx0ZXIoZT0+ZSYmIWUuc3RhcnRzV2l0aChgJHthLk5FWFRfUlNDX1VOSU9OX1FVRVJZfT1gKSk7dC5sZW5ndGg+MD9uLnB1c2goYCR7YS5ORVhUX1JTQ19VTklPTl9RVUVSWX09JHt0fWApOm4ucHVzaChgJHthLk5FWFRfUlNDX1VOSU9OX1FVRVJZfWApLGUuc2VhcmNoPW4ubGVuZ3RoP2A/JHtuLmpvaW4oIiYiKX1gOiIifTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw3ODcyODgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtsZXQgbjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG89e2NyZWF0ZUZldGNoOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LGNyZWF0ZUZyb21OZXh0UmVhZGFibGVTdHJlYW06ZnVuY3Rpb24oKXtyZXR1cm4gT30sZmV0Y2hTZXJ2ZXJSZXNwb25zZTpmdW5jdGlvbigpe3JldHVybiB5fX07Zm9yKHZhciB1IGluIG8pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsdSx7ZW51bWVyYWJsZTohMCxnZXQ6b1t1XX0pO2xldCBhPWUucigyMzUzMjYpLGk9ZS5yKDYyMTc2OCksbD1lLnIoMTMyMTIwKSxjPWUucig5MjI0NSksZD1lLnIoMzg4NTQwKSxmPWUucig0NTA1OTApLHM9ZS5yKDgxNDI5NykscD1lLnIoMjg4MDkzKSxfPWUucigzMzkwNiksaD1hLmNyZWF0ZUZyb21SZWFkYWJsZVN0cmVhbSxFPWEuY3JlYXRlRnJvbUZldGNoO2Z1bmN0aW9uIGIoZSl7cmV0dXJuKDAsXy51cmxUb1VybFdpdGhvdXRGbGlnaHRNYXJrZXIpKG5ldyBVUkwoZSxsb2NhdGlvbi5vcmlnaW4pKS50b1N0cmluZygpfWxldCBnPSExO2FzeW5jIGZ1bmN0aW9uIHkoZSx0KXtsZXR7ZmxpZ2h0Um91dGVyU3RhdGU6cixuZXh0VXJsOm4scHJlZmV0Y2hLaW5kOm99PXQsdT17W2kuUlNDX0hFQURFUl06IjEiLFtpLk5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSXTooMCxmLnByZXBhcmVGbGlnaHRSb3V0ZXJTdGF0ZUZvclJlcXVlc3QpKHIsdC5pc0htclJlZnJlc2gpfTtvPT09ZC5QcmVmZXRjaEtpbmQuQVVUTyYmKHVbaS5ORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVJdPSIxIiksbiYmKHVbaS5ORVhUX1VSTF09bik7dHJ5e2xldCB0PW8/bz09PWQuUHJlZmV0Y2hLaW5kLlRFTVBPUkFSWT8iaGlnaCI6ImxvdyI6ImF1dG8iLHI9YXdhaXQgUihlLHUsdCwhMCksbj0oMCxfLnVybFRvVXJsV2l0aG91dEZsaWdodE1hcmtlcikobmV3IFVSTChyLnVybCkpLGE9ci5yZWRpcmVjdGVkP246ZSxsPXIuaGVhZGVycy5nZXQoImNvbnRlbnQtdHlwZSIpfHwiIixjPSEhci5oZWFkZXJzLmdldCgidmFyeSIpPy5pbmNsdWRlcyhpLk5FWFRfVVJMKSxwPSEhci5oZWFkZXJzLmdldChpLk5FWFRfRElEX1BPU1RQT05FX0hFQURFUiksaD1yLmhlYWRlcnMuZ2V0KGkuTkVYVF9ST1VURVJfU1RBTEVfVElNRV9IRUFERVIpLEU9bnVsbCE9PWg/MWUzKnBhcnNlSW50KGgsMTApOi0xO2lmKCFsLnN0YXJ0c1dpdGgoaS5SU0NfQ09OVEVOVF9UWVBFX0hFQURFUil8fCFyLm9rfHwhci5ib2R5KXJldHVybiBlLmhhc2gmJihuLmhhc2g9ZS5oYXNoKSxiKG4udG9TdHJpbmcoKSk7bGV0IGc9ci5mbGlnaHRSZXNwb25zZTtpZihudWxsPT09Zyl7bGV0IGUsdD1wPyhlPXIuYm9keS5nZXRSZWFkZXIoKSxuZXcgUmVhZGFibGVTdHJlYW0oe2FzeW5jIHB1bGwodCl7Zm9yKDs7KXtsZXR7ZG9uZTpyLHZhbHVlOm59PWF3YWl0IGUucmVhZCgpO2lmKCFyKXt0LmVucXVldWUobik7Y29udGludWV9cmV0dXJufX19KSk6ci5ib2R5O2c9Tyh0LHUpfWxldCB5PWF3YWl0IGc7aWYoKDAscy5nZXRBcHBCdWlsZElkKSgpIT09eS5iKXJldHVybiBiKHIudXJsKTtsZXQgbT0oMCxmLm5vcm1hbGl6ZUZsaWdodERhdGEpKHkuZik7aWYoInN0cmluZyI9PXR5cGVvZiBtKXJldHVybiBiKG0pO3JldHVybntmbGlnaHREYXRhOm0sY2Fub25pY2FsVXJsOmEscmVuZGVyZWRTZWFyY2g6KDAsXy5nZXRSZW5kZXJlZFNlYXJjaCkociksY291bGRCZUludGVyY2VwdGVkOmMscHJlcmVuZGVyZWQ6eS5TLHBvc3Rwb25lZDpwLHN0YWxlVGltZTpFLGRlYnVnSW5mbzpnLl9kZWJ1Z0luZm8/P251bGx9fWNhdGNoKHQpe3JldHVybiBnfHxjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggUlNDIHBheWxvYWQgZm9yICR7ZX0uIEZhbGxpbmcgYmFjayB0byBicm93c2VyIG5hdmlnYXRpb24uYCx0KSxlLnRvU3RyaW5nKCl9fWFzeW5jIGZ1bmN0aW9uIFIoZSx0LHIsbyx1KXt2YXIgYSxkO2xldCBmPW5ldyBVUkwoZSk7KDAscC5zZXRDYWNoZUJ1c3RpbmdTZWFyY2hQYXJhbSkoZix0KTtsZXQgcz1mZXRjaChmLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6dCxwcmlvcml0eTpyfHx2b2lkIDAsc2lnbmFsOnV9KSxfPW8/KGE9cyxkPXQsRShhLHtjYWxsU2VydmVyOmwuY2FsbFNlcnZlcixmaW5kU291cmNlTWFwVVJMOmMuZmluZFNvdXJjZU1hcFVSTCxkZWJ1Z0NoYW5uZWw6biYmbihkKX0pKTpudWxsLGg9YXdhaXQgcyxiPWgucmVkaXJlY3RlZCxnPW5ldyBVUkwoaC51cmwsZik7cmV0dXJuIGcuc2VhcmNoUGFyYW1zLmRlbGV0ZShpLk5FWFRfUlNDX1VOSU9OX1FVRVJZKSx7dXJsOmcuaHJlZixyZWRpcmVjdGVkOmIsb2s6aC5vayxoZWFkZXJzOmguaGVhZGVycyxib2R5OmguYm9keSxzdGF0dXM6aC5zdGF0dXMsZmxpZ2h0UmVzcG9uc2U6X319ZnVuY3Rpb24gTyhlLHQpe3JldHVybiBoKGUse2NhbGxTZXJ2ZXI6bC5jYWxsU2VydmVyLGZpbmRTb3VyY2VNYXBVUkw6Yy5maW5kU291cmNlTWFwVVJMLGRlYnVnQ2hhbm5lbDpuJiZuKHQpfSl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZWhpZGUiLCgpPT57Zz0hMH0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsKCk9PntnPSExfSkpLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI3MDcyNSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiY3JlYXRlUm91dGVyQ2FjaGVLZXkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBvfX0pO2xldCBuPWUucig4MTMyNTgpO2Z1bmN0aW9uIG8oZSx0PSExKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9gJHtlWzBdfXwke2VbMV19fCR7ZVsyXX1gOnQmJmUuc3RhcnRzV2l0aChuLlBBR0VfU0VHTUVOVF9LRVkpP24uUEFHRV9TRUdNRU5UX0tFWTplfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDM1ODQ0MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17UmVkaXJlY3RCb3VuZGFyeTpmdW5jdGlvbigpe3JldHVybiBwfSxSZWRpcmVjdEVycm9yQm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoMTkwODA5KSxhPWUucig4NDM0NzYpLGk9dS5fKGUucigyNzE2NDUpKSxsPWUucig5NzY1NjIpLGM9ZS5yKDEyNDA2MyksZD1lLnIoOTY4MzkxKTtmdW5jdGlvbiBmKHtyZWRpcmVjdDplLHJlc2V0OnQscmVkaXJlY3RUeXBlOnJ9KXtsZXQgbj0oMCxsLnVzZVJvdXRlcikoKTtyZXR1cm4oMCxpLnVzZUVmZmVjdCkoKCk9PntpLmRlZmF1bHQuc3RhcnRUcmFuc2l0aW9uKCgpPT57cj09PWQuUmVkaXJlY3RUeXBlLnB1c2g/bi5wdXNoKGUse30pOm4ucmVwbGFjZShlLHt9KSx0KCl9KX0sW2Uscix0LG5dKSxudWxsfWNsYXNzIHMgZXh0ZW5kcyBpLmRlZmF1bHQuQ29tcG9uZW50e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuc3RhdGU9e3JlZGlyZWN0Om51bGwscmVkaXJlY3RUeXBlOm51bGx9fXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7aWYoKDAsZC5pc1JlZGlyZWN0RXJyb3IpKGUpKXtsZXQgdD0oMCxjLmdldFVSTEZyb21SZWRpcmVjdEVycm9yKShlKSxyPSgwLGMuZ2V0UmVkaXJlY3RUeXBlRnJvbUVycm9yKShlKTtyZXR1cm4iaGFuZGxlZCJpbiBlP3tyZWRpcmVjdDpudWxsLHJlZGlyZWN0VHlwZTpudWxsfTp7cmVkaXJlY3Q6dCxyZWRpcmVjdFR5cGU6cn19dGhyb3cgZX1yZW5kZXIoKXtsZXR7cmVkaXJlY3Q6ZSxyZWRpcmVjdFR5cGU6dH09dGhpcy5zdGF0ZTtyZXR1cm4gbnVsbCE9PWUmJm51bGwhPT10PygwLGEuanN4KShmLHtyZWRpcmVjdDplLHJlZGlyZWN0VHlwZTp0LHJlc2V0OigpPT50aGlzLnNldFN0YXRlKHtyZWRpcmVjdDpudWxsfSl9KTp0aGlzLnByb3BzLmNoaWxkcmVufX1mdW5jdGlvbiBwKHtjaGlsZHJlbjplfSl7bGV0IHQ9KDAsbC51c2VSb3V0ZXIpKCk7cmV0dXJuKDAsYS5qc3gpKHMse3JvdXRlcjp0LGNoaWxkcmVuOmV9KX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwyMDEyNDQsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVucmVzb2x2ZWRUaGVuYWJsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49e3RoZW46KCk9Pnt9fTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw4OTczNjcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e01ldGFkYXRhQm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sT3V0bGV0Qm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gY30sUm9vdExheW91dEJvdW5kYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIGR9LFZpZXdwb3J0Qm91bmRhcnk6ZnVuY3Rpb24oKXtyZXR1cm4gbH19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgdT1lLnIoOTU0ODM5KSxhPXtbdS5NRVRBREFUQV9CT1VOREFSWV9OQU1FXTpmdW5jdGlvbih7Y2hpbGRyZW46ZX0pe3JldHVybiBlfSxbdS5WSUVXUE9SVF9CT1VOREFSWV9OQU1FXTpmdW5jdGlvbih7Y2hpbGRyZW46ZX0pe3JldHVybiBlfSxbdS5PVVRMRVRfQk9VTkRBUllfTkFNRV06ZnVuY3Rpb24oe2NoaWxkcmVuOmV9KXtyZXR1cm4gZX0sW3UuUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRV06ZnVuY3Rpb24oe2NoaWxkcmVuOmV9KXtyZXR1cm4gZX19LGk9YVt1Lk1FVEFEQVRBX0JPVU5EQVJZX05BTUUuc2xpY2UoMCldLGw9YVt1LlZJRVdQT1JUX0JPVU5EQVJZX05BTUUuc2xpY2UoMCldLGM9YVt1Lk9VVExFVF9CT1VOREFSWV9OQU1FLnNsaWNlKDApXSxkPWFbdS5ST09UX0xBWU9VVF9CT1VOREFSWV9OQU1FLnNsaWNlKDApXX0sMjg0MzU2LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJoYXNJbnRlcmNlcHRpb25Sb3V0ZUluQ3VycmVudFRyZWUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKFt0LHJdKXtpZihBcnJheS5pc0FycmF5KHQpJiYoImRpKC4uKSguLikiPT09dFsyXXx8ImNpKC4uKSguLikiPT09dFsyXXx8ImRpKC4pIj09PXRbMl18fCJjaSguKSI9PT10WzJdfHwiZGkoLi4pIj09PXRbMl18fCJjaSguLikiPT09dFsyXXx8ImRpKC4uLikiPT09dFsyXXx8ImNpKC4uLikiPT09dFsyXSl8fCJzdHJpbmciPT10eXBlb2YgdCYmKDAsbi5pc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCkodCkpcmV0dXJuITA7aWYocil7Zm9yKGxldCB0IGluIHIpaWYoZShyW3RdKSlyZXR1cm4hMH1yZXR1cm4hMX19fSk7bGV0IG49ZS5yKDU5MTQ2Myk7KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX1dKTs="}},"time_used":60,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":60,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.903Z","timestamp":1785142498903,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"OPTIONS / HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\r\nOrigin: https://preview-strategynavigator.newton.tech\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\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 307 \r\ncache-control: public, max-age=0, must-revalidate\r\ncontent-type: text/plain\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\nlocation: /auth/login\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-id: arn1::zgblr-1785142498908-25d3099783aa\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"307","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":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"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-07-27T15:05:58.256156Z","times_seen":17565140,"resource_available":true,"data":null}},"time_used":149,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":149,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/bb8fc1a97eb5f2a9.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.217Z","timestamp":1785142498217,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/bb8fc1a97eb5f2a9.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"bb8fc1a97eb5f2a9.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"8a6788e7aae794162d94739a7cb6edc0\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/bb8fc1a97eb5f2a9.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::9q4mh-1785142498234-79026506fe7d\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":2135,"size_decoded":1523,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (2135), with no line terminators","md5":"8a6788e7aae794162d94739a7cb6edc0","sha1":"dd7d2fb61e3f2284967be2f3ea0db77093856af1","sha256":"2465b497fbfeb8e0c31b4ed489f5746887813224f87ed6b99a3d671f73619cff","sha512":"953be6ee4174b01d9457cd1d23efae071ffa99fadcdeb5888ef977d6fd9675a038015a96c00f0e5b310d826a9f7d4f850046aa512b938cc517af048a8e2c4fa7","ssdeep":"","tlshash":"5441346671d4e5c6918f40c4c8379009f12a2d3d52be70f4abe5cab621d009eb1b2fd9","first_seen":"2025-11-02T10:46:12.425449Z","last_seen":"2026-07-27T08:57:45.713003Z","times_seen":30,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDkxMjM1NCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiSGFuZGxlSVNSRXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBvPSJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P2Uucig1NjM1OTkpLndvcmtBc3luY1N0b3JhZ2U6dm9pZCAwO2Z1bmN0aW9uIG4oe2Vycm9yOmV9KXtpZihvKXtsZXQgdD1vLmdldFN0b3JlKCk7aWYodD8uaXNTdGF0aWNHZW5lcmF0aW9uKXRocm93IGUmJmNvbnNvbGUuZXJyb3IoZSksZX1yZXR1cm4gbnVsbH0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxNjgwMjcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBkfX0pO2xldCBvPWUucig4NDM0NzYpLG49ZS5yKDkxMjM1NCksbD17Zm9udEZhbWlseTonc3lzdGVtLXVpLCJTZWdvZSBVSSIsUm9ib3RvLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmLCJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIicsaGVpZ2h0OiIxMDB2aCIsdGV4dEFsaWduOiJjZW50ZXIiLGRpc3BsYXk6ImZsZXgiLGZsZXhEaXJlY3Rpb246ImNvbHVtbiIsYWxpZ25JdGVtczoiY2VudGVyIixqdXN0aWZ5Q29udGVudDoiY2VudGVyIn0saT17Zm9udFNpemU6IjE0cHgiLGZvbnRXZWlnaHQ6NDAwLGxpbmVIZWlnaHQ6IjI4cHgiLG1hcmdpbjoiMCA4cHgifSxkPWZ1bmN0aW9uKHtlcnJvcjplfSl7bGV0IHQ9ZT8uZGlnZXN0O3JldHVybigwLG8uanN4cykoImh0bWwiLHtpZDoiX19uZXh0X2Vycm9yX18iLGNoaWxkcmVuOlsoMCxvLmpzeCkoImhlYWQiLHt9KSwoMCxvLmpzeHMpKCJib2R5Iix7Y2hpbGRyZW46WygwLG8uanN4KShuLkhhbmRsZUlTUkVycm9yLHtlcnJvcjplfSksKDAsby5qc3gpKCJkaXYiLHtzdHlsZTpsLGNoaWxkcmVuOigwLG8uanN4cykoImRpdiIse2NoaWxkcmVuOlsoMCxvLmpzeHMpKCJoMiIse3N0eWxlOmksY2hpbGRyZW46WyJBcHBsaWNhdGlvbiBlcnJvcjogYSAiLHQ/InNlcnZlciI6ImNsaWVudCIsIi1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQgd2hpbGUgbG9hZGluZyAiLHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwiIChzZWUgdGhlIiwiICIsdD8ic2VydmVyIGxvZ3MiOiJicm93c2VyIGNvbnNvbGUiLCIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLiJdfSksdD8oMCxvLmpzeCkoInAiLHtzdHlsZTppLGNoaWxkcmVuOmBEaWdlc3Q6ICR7dH1gfSk6bnVsbF19KX0pXX0pXX0pfTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw3NDI3MzIsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkhlYWRNYW5hZ2VyQ29udGV4dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7bGV0IG89ZS5yKDU1NTY4MikuXyhlLnIoMjcxNjQ1KSkuZGVmYXVsdC5jcmVhdGVDb250ZXh0KHt9KX1dKTs="}},"time_used":37,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":37,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/904f5809de03888a.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.223Z","timestamp":1785142498223,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/904f5809de03888a.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"904f5809de03888a.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"aec85f55f3653994c3ba357613941220\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/904f5809de03888a.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::t59p2-1785142498242-41ac2b8cb3ad\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":38886,"size_decoded":9794,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (28188)","md5":"aec85f55f3653994c3ba357613941220","sha1":"6a2a517998c5fe6095a0061b782c265d0212c0c5","sha256":"2e3327e6e06fe500263ff710f1da5714066b3a087d34c0d19c0d310a320b7d24","sha512":"b2d3b90be7f18f9bf44e0ebfaabecf615c1cdd6f81701aaa831a601b371dfa48ac49c80e8ef6d1cfa9174f3f265622be4be12976f98aa6ae13dccc73629bd045","ssdeep":"384:h7Mle2tCWCmLgG4AYHfcseD1ePdbKDRs1JnTuh4votiaafmmb2Z19OPvD4qtgQZ8:alB0bZnytti92vmvD4qtgQZrIf","tlshash":"d103b6b572d4faa2029344b0d43f100bf23d0c7620adb4b0a7e4d8db799858d92b6fd9","first_seen":"2025-10-27T23:55:13.868052Z","last_seen":"2026-07-27T08:57:45.723985Z","times_seen":39,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDMxMjcxOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiSW52YXJpYW50RXJyb3IiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2NsYXNzIG4gZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGBJbnZhcmlhbnQ6ICR7ZS5lbmRzV2l0aCgiLiIpP2U6ZSsiLiJ9IFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gLHQpLHRoaXMubmFtZT0iSW52YXJpYW50RXJyb3IifX19LDc1NDM5NCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17SFRUUEFjY2Vzc0Vycm9yU3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LEhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERTpmdW5jdGlvbigpe3JldHVybiBpfSxnZXRBY2Nlc3NGYWxsYmFja0Vycm9yVHlwZUJ5U3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1czpmdW5jdGlvbigpe3JldHVybiBzfSxpc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGN9fTtmb3IodmFyIG8gaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSk7bGV0IGE9e05PVF9GT1VORDo0MDQsRk9SQklEREVOOjQwMyxVTkFVVEhPUklaRUQ6NDAxfSx1PW5ldyBTZXQoT2JqZWN0LnZhbHVlcyhhKSksaT0iTkVYVF9IVFRQX0VSUk9SX0ZBTExCQUNLIjtmdW5jdGlvbiBjKGUpe2lmKCJvYmplY3QiIT10eXBlb2YgZXx8bnVsbD09PWV8fCEoImRpZ2VzdCJpbiBlKXx8InN0cmluZyIhPXR5cGVvZiBlLmRpZ2VzdClyZXR1cm4hMTtsZXRbdCxyXT1lLmRpZ2VzdC5zcGxpdCgiOyIpO3JldHVybiB0PT09aSYmdS5oYXMoTnVtYmVyKHIpKX1mdW5jdGlvbiBzKGUpe3JldHVybiBOdW1iZXIoZS5kaWdlc3Quc3BsaXQoIjsiKVsxXSl9ZnVuY3Rpb24gbChlKXtzd2l0Y2goZSl7Y2FzZSA0MDE6cmV0dXJuInVuYXV0aG9yaXplZCI7Y2FzZSA0MDM6cmV0dXJuImZvcmJpZGRlbiI7Y2FzZSA0MDQ6cmV0dXJuIm5vdC1mb3VuZCI7ZGVmYXVsdDpyZXR1cm59fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDQ3Njk2MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiUmVkaXJlY3RTdGF0dXNDb2RlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTt2YXIgbixvPSgobj17fSlbbi5TZWVPdGhlcj0zMDNdPSJTZWVPdGhlciIsbltuLlRlbXBvcmFyeVJlZGlyZWN0PTMwN109IlRlbXBvcmFyeVJlZGlyZWN0IixuW24uUGVybWFuZW50UmVkaXJlY3Q9MzA4XT0iUGVybWFuZW50UmVkaXJlY3QiLG4pOygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDk2ODM5MSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbixvPXtSRURJUkVDVF9FUlJPUl9DT0RFOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LFJlZGlyZWN0VHlwZTpmdW5jdGlvbigpe3JldHVybiBjfSxpc1JlZGlyZWN0RXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgYSBpbiBvKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om9bYV19KTtsZXQgdT1lLnIoNDc2OTYzKSxpPSJORVhUX1JFRElSRUNUIjt2YXIgYz0oKG49e30pLnB1c2g9InB1c2giLG4ucmVwbGFjZT0icmVwbGFjZSIsbik7ZnVuY3Rpb24gcyhlKXtpZigib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwhKCJkaWdlc3QiaW4gZSl8fCJzdHJpbmciIT10eXBlb2YgZS5kaWdlc3QpcmV0dXJuITE7bGV0IHQ9ZS5kaWdlc3Quc3BsaXQoIjsiKSxbcixuXT10LG89dC5zbGljZSgyLC0yKS5qb2luKCI7IiksYT1OdW1iZXIodC5hdCgtMikpO3JldHVybiByPT09aSYmKCJyZXBsYWNlIj09PW58fCJwdXNoIj09PW4pJiYic3RyaW5nIj09dHlwZW9mIG8mJiFpc05hTihhKSYmYSBpbiB1LlJlZGlyZWN0U3RhdHVzQ29kZX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwyNjU3MTMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImlzTmV4dFJvdXRlckVycm9yIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTtsZXQgbj1lLnIoNzU0Mzk0KSxvPWUucig5NjgzOTEpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuKDAsby5pc1JlZGlyZWN0RXJyb3IpKGUpfHwoMCxuLmlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IpKGUpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDI2MTk5NCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17TmF2aWdhdGlvblByb21pc2VzQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiBzfSxQYXRoUGFyYW1zQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiBjfSxQYXRobmFtZUNvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sU2VhcmNoUGFyYW1zQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiB1fSxjcmVhdGVEZXZUb29sc0luc3RydW1lbnRlZFByb21pc2U6ZnVuY3Rpb24oKXtyZXR1cm4gbH19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgYT1lLnIoMjcxNjQ1KSx1PSgwLGEuY3JlYXRlQ29udGV4dCkobnVsbCksaT0oMCxhLmNyZWF0ZUNvbnRleHQpKG51bGwpLGM9KDAsYS5jcmVhdGVDb250ZXh0KShudWxsKSxzPSgwLGEuY3JlYXRlQ29udGV4dCkobnVsbCk7ZnVuY3Rpb24gbChlLHQpe2xldCByPVByb21pc2UucmVzb2x2ZSh0KTtyZXR1cm4gci5zdGF0dXM9ImZ1bGZpbGxlZCIsci52YWx1ZT10LHIuZGlzcGxheU5hbWU9YCR7ZX0gKFNTUilgLHJ9fSwyNDU5NTUsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIndvcmtVbml0QXN5bmNTdG9yYWdlSW5zdGFuY2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPSgwLGUucig5MDMxNykuY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UpKCl9LDYyMTc2OCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17QUNUSU9OX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiB1fSxGTElHSFRfSEVBREVSUzpmdW5jdGlvbigpe3JldHVybiBffSxORVhUX0FDVElPTl9OT1RfRk9VTkRfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIFJ9LE5FWFRfRElEX1BPU1RQT05FX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBifSxORVhUX0hNUl9SRUZSRVNIX0hBU0hfQ09PS0lFOmZ1bmN0aW9uKCl7cmV0dXJuIGR9LE5FWFRfSE1SX1JFRlJFU0hfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LE5FWFRfSFRNTF9SRVFVRVNUX0lEX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiB2fSxORVhUX0lTX1BSRVJFTkRFUl9IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sTkVYVF9SRVFVRVNUX0lEX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBPfSxORVhUX1JFV1JJVFRFTl9QQVRIX0hFQURFUjpmdW5jdGlvbigpe3JldHVybiBofSxORVhUX1JFV1JJVFRFTl9RVUVSWV9IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LE5FWFRfUk9VVEVSX1NFR01FTlRfUFJFRkVUQ0hfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LE5FWFRfUk9VVEVSX1NUQUxFX1RJTUVfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIG19LE5FWFRfUk9VVEVSX1NUQVRFX1RSRUVfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LE5FWFRfUlNDX1VOSU9OX1FVRVJZOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LE5FWFRfVVJMOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LFJTQ19DT05URU5UX1RZUEVfSEVBREVSOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LFJTQ19IRUFERVI6ZnVuY3Rpb24oKXtyZXR1cm4gYX19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgYT0icnNjIix1PSJuZXh0LWFjdGlvbiIsaT0ibmV4dC1yb3V0ZXItc3RhdGUtdHJlZSIsYz0ibmV4dC1yb3V0ZXItcHJlZmV0Y2giLHM9Im5leHQtcm91dGVyLXNlZ21lbnQtcHJlZmV0Y2giLGw9Im5leHQtaG1yLXJlZnJlc2giLGQ9Il9fbmV4dF9obXJfcmVmcmVzaF9oYXNoX18iLGY9Im5leHQtdXJsIixwPSJ0ZXh0L3gtY29tcG9uZW50IixfPVthLGksYyxsLHNdLHk9Il9yc2MiLG09IngtbmV4dGpzLXN0YWxlLXRpbWUiLGI9IngtbmV4dGpzLXBvc3Rwb25lZCIsaD0ieC1uZXh0anMtcmV3cml0dGVuLXBhdGgiLEU9IngtbmV4dGpzLXJld3JpdHRlbi1xdWVyeSIsZz0ieC1uZXh0anMtcHJlcmVuZGVyIixSPSJ4LW5leHRqcy1hY3Rpb24tbm90LWZvdW5kIixPPSJ4LW5leHRqcy1yZXF1ZXN0LWlkIix2PSJ4LW5leHRqcy1odG1sLXJlcXVlc3QtaWQiOygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY2MjE0MSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Z2V0Q2FjaGVTaWduYWw6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sZ2V0RHJhZnRNb2RlUHJvdmlkZXJGb3JDYWNoZVNjb3BlOmZ1bmN0aW9uKCl7cmV0dXJuIHl9LGdldEhtclJlZnJlc2hIYXNoOmZ1bmN0aW9uKCl7cmV0dXJuIGZ9LGdldFByZXJlbmRlclJlc3VtZURhdGFDYWNoZTpmdW5jdGlvbigpe3JldHVybiBsfSxnZXRSZW5kZXJSZXN1bWVEYXRhQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gZH0sZ2V0UnVudGltZVN0YWdlUHJvbWlzZTpmdW5jdGlvbigpe3JldHVybiBifSxnZXRTZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gX30saXNIbXJSZWZyZXNoOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LHRocm93Rm9yTWlzc2luZ1JlcXVlc3RTdG9yZTpmdW5jdGlvbigpe3JldHVybiBjfSx0aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZTpmdW5jdGlvbigpe3JldHVybiBzfSx3b3JrVW5pdEFzeW5jU3RvcmFnZTpmdW5jdGlvbigpe3JldHVybiBhLndvcmtVbml0QXN5bmNTdG9yYWdlSW5zdGFuY2V9fTtmb3IodmFyIG8gaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSk7bGV0IGE9ZS5yKDI0NTk1NSksdT1lLnIoNjIxNzY4KSxpPWUucigzMTI3MTgpO2Z1bmN0aW9uIGMoZSl7dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGBcYCR7ZX1cYCB3YXMgY2FsbGVkIG91dHNpZGUgYSByZXF1ZXN0IHNjb3BlLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtZHluYW1pYy1hcGktd3JvbmctY29udGV4dGApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjUxIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfWZ1bmN0aW9uIHMoKXt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGkuSW52YXJpYW50RXJyb3IoIkV4cGVjdGVkIHdvcmtVbml0QXN5bmNTdG9yYWdlIHRvIGhhdmUgYSBzdG9yZS4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTY5NiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBsKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1ydW50aW1lIjpjYXNlInByZXJlbmRlci1wcHIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6cmV0dXJuIGUucHJlcmVuZGVyUmVzdW1lRGF0YUNhY2hlO2Nhc2UicmVxdWVzdCI6aWYoZS5wcmVyZW5kZXJSZXN1bWVEYXRhQ2FjaGUpcmV0dXJuIGUucHJlcmVuZGVyUmVzdW1lRGF0YUNhY2hlO2Nhc2UicHJlcmVuZGVyLWxlZ2FjeSI6Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBkKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicmVxdWVzdCI6Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6aWYoZS5yZW5kZXJSZXN1bWVEYXRhQ2FjaGUpcmV0dXJuIGUucmVuZGVyUmVzdW1lRGF0YUNhY2hlO2Nhc2UicHJlcmVuZGVyLXBwciI6cmV0dXJuIGUucHJlcmVuZGVyUmVzdW1lRGF0YUNhY2hlPz9udWxsO2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBmKGUsdCl7aWYoZS5kZXYpc3dpdGNoKHQudHlwZSl7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6cmV0dXJuIHQuaG1yUmVmcmVzaEhhc2g7Y2FzZSJyZXF1ZXN0Ijp2YXIgcjtyZXR1cm4gbnVsbD09KHI9dC5jb29raWVzLmdldCh1Lk5FWFRfSE1SX1JFRlJFU0hfSEFTSF9DT09LSUUpKT92b2lkIDA6ci52YWx1ZX19ZnVuY3Rpb24gcChlLHQpe2lmKGUuZGV2KXN3aXRjaCh0LnR5cGUpe2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJyZXF1ZXN0IjpyZXR1cm4gdC5pc0htclJlZnJlc2g/PyExfXJldHVybiExfWZ1bmN0aW9uIF8oZSx0KXtpZihlLmRldilzd2l0Y2godC50eXBlKXtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UicmVxdWVzdCI6cmV0dXJuIHQuc2VydmVyQ29tcG9uZW50c0htckNhY2hlfX1mdW5jdGlvbiB5KGUsdCl7aWYoZS5pc0RyYWZ0TW9kZSlzd2l0Y2godC50eXBlKXtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOmNhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOmNhc2UicmVxdWVzdCI6cmV0dXJuIHQuZHJhZnRNb2RlfX1mdW5jdGlvbiBtKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOnJldHVybiBlLmNhY2hlU2lnbmFsO2Nhc2UicmVxdWVzdCI6aWYoZS5jYWNoZVNpZ25hbClyZXR1cm4gZS5jYWNoZVNpZ25hbDtjYXNlInByZXJlbmRlci1wcHIiOmNhc2UicHJlcmVuZGVyLWxlZ2FjeSI6Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBlfX1mdW5jdGlvbiBiKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6cmV0dXJuIGUucnVudGltZVN0YWdlUHJvbWlzZTtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjpjYXNlInByZXJlbmRlci1wcHIiOmNhc2UicHJlcmVuZGVyLWxlZ2FjeSI6Y2FzZSJyZXF1ZXN0IjpjYXNlImNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpyZXR1cm4gbnVsbDtkZWZhdWx0OnJldHVybiBlfX19LDgxMzI1OCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17REVGQVVMVF9TRUdNRU5UX0tFWTpmdW5jdGlvbigpe3JldHVybiBkfSxQQUdFX1NFR01FTlRfS0VZOmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gY30sY29tcHV0ZVNlbGVjdGVkTGF5b3V0U2VnbWVudDpmdW5jdGlvbigpe3JldHVybiBzfSxnZXRTZWdtZW50VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZ2V0U2VsZWN0ZWRMYXlvdXRTZWdtZW50UGF0aDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHQscixuPSEwLG89W10pe2xldCB1O2lmKG4pdT10WzFdW3JdO2Vsc2V7bGV0IGU9dFsxXTt1PWUuY2hpbGRyZW4/P09iamVjdC52YWx1ZXMoZSlbMF19aWYoIXUpcmV0dXJuIG87bGV0IGk9YSh1WzBdKTtyZXR1cm4haXx8aS5zdGFydHNXaXRoKGwpP286KG8ucHVzaChpKSxlKHUsciwhMSxvKSl9fSxpc0dyb3VwU2VnbWVudDpmdW5jdGlvbigpe3JldHVybiB1fSxpc1BhcmFsbGVsUm91dGVTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fTtmb3IodmFyIG8gaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lWzFdOmV9ZnVuY3Rpb24gdShlKXtyZXR1cm4iKCI9PT1lWzBdJiZlLmVuZHNXaXRoKCIpIil9ZnVuY3Rpb24gaShlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCJAIikmJiJAY2hpbGRyZW4iIT09ZX1mdW5jdGlvbiBjKGUsdCl7aWYoZS5pbmNsdWRlcyhsKSl7bGV0IGU9SlNPTi5zdHJpbmdpZnkodCk7cmV0dXJuInt9IiE9PWU/bCsiPyIrZTpsfXJldHVybiBlfWZ1bmN0aW9uIHMoZSx0KXtpZighZXx8MD09PWUubGVuZ3RoKXJldHVybiBudWxsO2xldCByPSJjaGlsZHJlbiI9PT10P2VbMF06ZVtlLmxlbmd0aC0xXTtyZXR1cm4gcj09PWQ/bnVsbDpyfWxldCBsPSJfX1BBR0VfXyIsZD0iX19ERUZBVUxUX18ifSw4Mzk0NzAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKCl7bGV0IGUsdCxyPW5ldyBQcm9taXNlKChyLG4pPT57ZT1yLHQ9bn0pO3JldHVybntyZXNvbHZlOmUscmVqZWN0OnQscHJvbWlzZTpyfX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX0sODM3MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17QXBwUm91dGVyQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiB1fSxHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGN9LExheW91dFJvdXRlckNvbnRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sTWlzc2luZ1Nsb3RDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LFRlbXBsYXRlQ29udGV4dDpmdW5jdGlvbigpe3JldHVybiBzfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCBhPWUucig1NTU2ODIpLl8oZS5yKDI3MTY0NSkpLHU9YS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCksaT1hLmRlZmF1bHQuY3JlYXRlQ29udGV4dChudWxsKSxjPWEuZGVmYXVsdC5jcmVhdGVDb250ZXh0KG51bGwpLHM9YS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCksbD1hLmRlZmF1bHQuY3JlYXRlQ29udGV4dChuZXcgU2V0KX0sOTAzNjgwLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJSZWFkb25seVVSTFNlYXJjaFBhcmFtcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG99fSk7Y2xhc3MgbiBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKCl7c3VwZXIoIk1ldGhvZCB1bmF2YWlsYWJsZSBvbiBgUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXNgLiBSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91c2Utc2VhcmNoLXBhcmFtcyN1cGRhdGluZy1zZWFyY2hwYXJhbXMiKX19Y2xhc3MgbyBleHRlbmRzIFVSTFNlYXJjaFBhcmFtc3thcHBlbmQoKXt0aHJvdyBuZXcgbn1kZWxldGUoKXt0aHJvdyBuZXcgbn1zZXQoKXt0aHJvdyBuZXcgbn1zb3J0KCl7dGhyb3cgbmV3IG59fSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDEzOTU3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtTZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LHVzZVNlcnZlckluc2VydGVkSFRNTDpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCBhPWUucigxOTA4MDkpLl8oZS5yKDI3MTY0NSkpLHU9YS5kZWZhdWx0LmNyZWF0ZUNvbnRleHQobnVsbCk7ZnVuY3Rpb24gaShlKXtsZXQgdD0oMCxhLnVzZUNvbnRleHQpKHUpO3QmJnQoZSl9fSwyOTI4MzgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e1VucmVjb2duaXplZEFjdGlvbkVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGF9LHVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdX19O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtjbGFzcyBhIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5uYW1lPSJVbnJlY29nbml6ZWRBY3Rpb25FcnJvciJ9fWZ1bmN0aW9uIHUoZSl7cmV0dXJuISEoZSYmIm9iamVjdCI9PXR5cGVvZiBlJiZlIGluc3RhbmNlb2YgYSl9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMTM0NDU3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhY3Rpb25Bc3luY1N0b3JhZ2VJbnN0YW5jZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49KDAsZS5yKDkwMzE3KS5jcmVhdGVBc3luY0xvY2FsU3RvcmFnZSkoKX0sMzYyMjY2LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJhY3Rpb25Bc3luY1N0b3JhZ2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmFjdGlvbkFzeW5jU3RvcmFnZUluc3RhbmNlfX0pO2xldCBuPWUucigxMzQ0NTcpfSwxMjQwNjMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2dldFJlZGlyZWN0RXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gY30sZ2V0UmVkaXJlY3RTdGF0dXNDb2RlRnJvbUVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHB9LGdldFJlZGlyZWN0VHlwZUZyb21FcnJvcjpmdW5jdGlvbigpe3JldHVybiBmfSxnZXRVUkxGcm9tUmVkaXJlY3RFcnJvcjpmdW5jdGlvbigpe3JldHVybiBkfSxwZXJtYW5lbnRSZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiBsfSxyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiBzfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCBhPWUucig0NzY5NjMpLHU9ZS5yKDk2ODM5MSksaT0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9lLnIoMzYyMjY2KS5hY3Rpb25Bc3luY1N0b3JhZ2U6dm9pZCAwO2Z1bmN0aW9uIGMoZSx0LHI9YS5SZWRpcmVjdFN0YXR1c0NvZGUuVGVtcG9yYXJ5UmVkaXJlY3Qpe2xldCBuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcih1LlJFRElSRUNUX0VSUk9SX0NPREUpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMzk0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBuLmRpZ2VzdD1gJHt1LlJFRElSRUNUX0VSUk9SX0NPREV9OyR7dH07JHtlfTske3J9O2Asbn1mdW5jdGlvbiBzKGUsdCl7dGhyb3cgYyhlLHQ/Pz1pPy5nZXRTdG9yZSgpPy5pc0FjdGlvbj91LlJlZGlyZWN0VHlwZS5wdXNoOnUuUmVkaXJlY3RUeXBlLnJlcGxhY2UsYS5SZWRpcmVjdFN0YXR1c0NvZGUuVGVtcG9yYXJ5UmVkaXJlY3QpfWZ1bmN0aW9uIGwoZSx0PXUuUmVkaXJlY3RUeXBlLnJlcGxhY2Upe3Rocm93IGMoZSx0LGEuUmVkaXJlY3RTdGF0dXNDb2RlLlBlcm1hbmVudFJlZGlyZWN0KX1mdW5jdGlvbiBkKGUpe3JldHVybigwLHUuaXNSZWRpcmVjdEVycm9yKShlKT9lLmRpZ2VzdC5zcGxpdCgiOyIpLnNsaWNlKDIsLTIpLmpvaW4oIjsiKTpudWxsfWZ1bmN0aW9uIGYoZSl7aWYoISgwLHUuaXNSZWRpcmVjdEVycm9yKShlKSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIk5vdCBhIHJlZGlyZWN0IGVycm9yIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUyNjAiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuIGUuZGlnZXN0LnNwbGl0KCI7IiwyKVsxXX1mdW5jdGlvbiBwKGUpe2lmKCEoMCx1LmlzUmVkaXJlY3RFcnJvcikoZSkpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJOb3QgYSByZWRpcmVjdCBlcnJvciIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjYwIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiBOdW1iZXIoZS5kaWdlc3Quc3BsaXQoIjsiKS5hdCgtMikpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDIyMjc4MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwibm90Rm91bmQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPWUucig3NTQzOTQpLG89YCR7bi5IVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OzQwNGA7ZnVuY3Rpb24gYSgpe2xldCBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihvKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTM5NCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTt0aHJvdyBlLmRpZ2VzdD1vLGV9KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sODc5ODU0LChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbigpe3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiYGZvcmJpZGRlbigpYCBpcyBleHBlcmltZW50YWwgYW5kIG9ubHkgYWxsb3dlZCB0byBiZSBlbmFibGVkIHdoZW4gYGV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0c2AgaXMgZW5hYmxlZC4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTQ4OCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KX1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImZvcmJpZGRlbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksZS5yKDc1NDM5NCkuSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFLCgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDEyMjY4MywoZSx0LHIpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oKXt0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoImB1bmF1dGhvcml6ZWQoKWAgaXMgZXhwZXJpbWVudGFsIGFuZCBvbmx5IGFsbG93ZWQgdG8gYmUgdXNlZCB3aGVuIGBleHBlcmltZW50YWwuYXV0aEludGVycnVwdHNgIGlzIGVuYWJsZWQuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU0MTEiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJ1bmF1dGhvcml6ZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pLGUucig3NTQzOTQpLkhUVFBfRVJST1JfRkFMTEJBQ0tfRVJST1JfQ09ERSwoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSwxMTU1MDcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVuc3RhYmxlX3JldGhyb3ciLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBlKHQpe2lmKCgwLG8uaXNOZXh0Um91dGVyRXJyb3IpKHQpfHwoMCxuLmlzQmFpbG91dFRvQ1NSRXJyb3IpKHQpKXRocm93IHQ7dCBpbnN0YW5jZW9mIEVycm9yJiYiY2F1c2UiaW4gdCYmZSh0LmNhdXNlKX19fSk7bGV0IG49ZS5yKDEzMjA2MSksbz1lLnIoMjY1NzEzKTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw5NjMxMzgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2lzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcjpmdW5jdGlvbigpe3JldHVybiBhfSxtYWtlRGV2dG9vbHNJT0F3YXJlUHJvbWlzZTpmdW5jdGlvbigpe3JldHVybiBkfSxtYWtlSGFuZ2luZ1Byb21pc2U6ZnVuY3Rpb24oKXtyZXR1cm4gc319O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtmdW5jdGlvbiBhKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJkaWdlc3QiaW4gZSYmZS5kaWdlc3Q9PT11fWxldCB1PSJIQU5HSU5HX1BST01JU0VfUkVKRUNUSU9OIjtjbGFzcyBpIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihgRHVyaW5nIHByZXJlbmRlcmluZywgJHt0fSByZWplY3RzIHdoZW4gdGhlIHByZXJlbmRlciBpcyBjb21wbGV0ZS4gVHlwaWNhbGx5IHRoZXNlIGVycm9ycyBhcmUgaGFuZGxlZCBieSBSZWFjdCBidXQgaWYgeW91IG1vdmUgJHt0fSB0byBhIGRpZmZlcmVudCBjb250ZXh0IGJ5IHVzaW5nIFxgc2V0VGltZW91dFxgLCBcYGFmdGVyXGAsIG9yIHNpbWlsYXIgZnVuY3Rpb25zIHlvdSBtYXkgb2JzZXJ2ZSB0aGlzIGVycm9yIGFuZCB5b3Ugc2hvdWxkIGhhbmRsZSBpdCBpbiB0aGF0IGNvbnRleHQuIFRoaXMgb2NjdXJyZWQgYXQgcm91dGUgIiR7ZX0iLmApLHRoaXMucm91dGU9ZSx0aGlzLmV4cHJlc3Npb249dCx0aGlzLmRpZ2VzdD11fX1sZXQgYz1uZXcgV2Vha01hcDtmdW5jdGlvbiBzKGUsdCxyKXtpZihlLmFib3J0ZWQpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBpKHQscikpO3tsZXQgbj1uZXcgUHJvbWlzZSgobixvKT0+e2xldCBhPW8uYmluZChudWxsLG5ldyBpKHQscikpLHU9Yy5nZXQoZSk7aWYodSl1LnB1c2goYSk7ZWxzZXtsZXQgdD1bYV07Yy5zZXQoZSx0KSxlLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwoKT0+e2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0oKX0se29uY2U6ITB9KX19KTtyZXR1cm4gbi5jYXRjaChsKSxufX1mdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIGQoZSx0LHIpe3JldHVybiB0LnN0YWdlZFJlbmRlcmluZz90LnN0YWdlZFJlbmRlcmluZy5kZWxheVVudGlsU3RhZ2Uocix2b2lkIDAsZSk6bmV3IFByb21pc2UodD0+e3NldFRpbWVvdXQoKCk9Pnt0KGUpfSwwKX0pfX0sMzY3Mjg3LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJpc1Bvc3Rwb25lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb319KTtsZXQgbj1TeW1ib2wuZm9yKCJyZWFjdC5wb3N0cG9uZSIpO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmZS4kJHR5cGVvZj09PW59fSw0NzYzNTMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e0R5bmFtaWNTZXJ2ZXJFcnJvcjpmdW5jdGlvbigpe3JldHVybiB1fSxpc0R5bmFtaWNTZXJ2ZXJFcnJvcjpmdW5jdGlvbigpe3JldHVybiBpfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCBhPSJEWU5BTUlDX1NFUlZFUl9VU0FHRSI7Y2xhc3MgdSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGBEeW5hbWljIHNlcnZlciB1c2FnZTogJHtlfWApLHRoaXMuZGVzY3JpcHRpb249ZSx0aGlzLmRpZ2VzdD1hfX1mdW5jdGlvbiBpKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJkaWdlc3QiaW4gZSYmInN0cmluZyI9PXR5cGVvZiBlLmRpZ2VzdCYmZS5kaWdlc3Q9PT1hfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDY0MzI0OCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17U3RhdGljR2VuQmFpbG91dEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGlzU3RhdGljR2VuQmFpbG91dEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIGl9fTtmb3IodmFyIG8gaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSk7bGV0IGE9Ik5FWFRfU1RBVElDX0dFTl9CQUlMT1VUIjtjbGFzcyB1IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5jb2RlPWF9fWZ1bmN0aW9uIGkoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmImNvZGUiaW4gZSYmZS5jb2RlPT09YX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw5NTQ4MzksKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e01FVEFEQVRBX0JPVU5EQVJZX05BTUU6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sT1VUTEVUX0JPVU5EQVJZX05BTUU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRTpmdW5jdGlvbigpe3JldHVybiBjfSxWSUVXUE9SVF9CT1VOREFSWV9OQU1FOmZ1bmN0aW9uKCl7cmV0dXJuIHV9fTtmb3IodmFyIG8gaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixvLHtlbnVtZXJhYmxlOiEwLGdldDpuW29dfSk7bGV0IGE9Il9fbmV4dF9tZXRhZGF0YV9ib3VuZGFyeV9fIix1PSJfX25leHRfdmlld3BvcnRfYm91bmRhcnlfXyIsaT0iX19uZXh0X291dGxldF9ib3VuZGFyeV9fIixjPSJfX25leHRfcm9vdF9sYXlvdXRfYm91bmRhcnlfXyJ9LDcyOTQxOSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO3ZhciBuPWUuaSgyNDcxNjcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbz17YXRMZWFzdE9uZVRhc2s6ZnVuY3Rpb24oKXtyZXR1cm4gY30sc2NoZWR1bGVJbW1lZGlhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sc2NoZWR1bGVPbk5leHRUaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHV9LHdhaXRBdExlYXN0T25lUmVhY3RSZW5kZXJUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIGEgaW4gbylPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpvW2FdfSk7bGV0IHU9ZT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PntuLmRlZmF1bHQubmV4dFRpY2soZSl9KX0saT1lPT57c2V0SW1tZWRpYXRlKGUpfTtmdW5jdGlvbiBjKCl7cmV0dXJuIG5ldyBQcm9taXNlKGU9PmkoZSkpfWZ1bmN0aW9uIHMoKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+c2V0SW1tZWRpYXRlKGUpKX19LDE0Mjg1MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbixvPXtSZW5kZXJTdGFnZTpmdW5jdGlvbigpe3JldHVybiBjfSxTdGFnZWRSZW5kZXJpbmdDb250cm9sbGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIGEgaW4gbylPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpvW2FdfSk7bGV0IHU9ZS5yKDMxMjcxOCksaT1lLnIoODM5NDcwKTt2YXIgYz0oKG49e30pW24uU3RhdGljPTFdPSJTdGF0aWMiLG5bbi5SdW50aW1lPTJdPSJSdW50aW1lIixuW24uRHluYW1pYz0zXT0iRHluYW1pYyIsbik7Y2xhc3Mgc3tjb25zdHJ1Y3RvcihlPW51bGwpe3RoaXMuYWJvcnRTaWduYWw9ZSx0aGlzLmN1cnJlbnRTdGFnZT0xLHRoaXMucnVudGltZVN0YWdlUHJvbWlzZT0oMCxpLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLHRoaXMuZHluYW1pY1N0YWdlUHJvbWlzZT0oMCxpLmNyZWF0ZVByb21pc2VXaXRoUmVzb2x2ZXJzKSgpLGUmJmUuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57bGV0e3JlYXNvbjp0fT1lO3RoaXMuY3VycmVudFN0YWdlPDImJih0aGlzLnJ1bnRpbWVTdGFnZVByb21pc2UucHJvbWlzZS5jYXRjaChsKSx0aGlzLnJ1bnRpbWVTdGFnZVByb21pc2UucmVqZWN0KHQpKSx0aGlzLmN1cnJlbnRTdGFnZTwzJiYodGhpcy5keW5hbWljU3RhZ2VQcm9taXNlLnByb21pc2UuY2F0Y2gobCksdGhpcy5keW5hbWljU3RhZ2VQcm9taXNlLnJlamVjdCh0KSl9LHtvbmNlOiEwfSl9YWR2YW5jZVN0YWdlKGUpeyEodGhpcy5jdXJyZW50U3RhZ2U+PWUpJiYodGhpcy5jdXJyZW50U3RhZ2U9ZSxlPj0yJiZ0aGlzLnJ1bnRpbWVTdGFnZVByb21pc2UucmVzb2x2ZSgpLGU+PTMmJnRoaXMuZHluYW1pY1N0YWdlUHJvbWlzZS5yZXNvbHZlKCkpfWdldFN0YWdlUHJvbWlzZShlKXtzd2l0Y2goZSl7Y2FzZSAyOnJldHVybiB0aGlzLnJ1bnRpbWVTdGFnZVByb21pc2UucHJvbWlzZTtjYXNlIDM6cmV0dXJuIHRoaXMuZHluYW1pY1N0YWdlUHJvbWlzZS5wcm9taXNlO2RlZmF1bHQ6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyB1LkludmFyaWFudEVycm9yKGBJbnZhbGlkIHJlbmRlciBzdGFnZTogJHtlfWApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFODgxIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfX13YWl0Rm9yU3RhZ2UoZSl7cmV0dXJuIHRoaXMuZ2V0U3RhZ2VQcm9taXNlKGUpfWRlbGF5VW50aWxTdGFnZShlLHQscil7dmFyIG4sbyxhO2xldCB1LGk9KG49dGhpcy5nZXRTdGFnZVByb21pc2UoZSksbz10LGE9cix1PW5ldyBQcm9taXNlKChlLHQpPT57bi50aGVuKGUuYmluZChudWxsLGEpLHQpfSksdm9pZCAwIT09byYmKHUuZGlzcGxheU5hbWU9byksdSk7cmV0dXJuIHRoaXMuYWJvcnRTaWduYWwmJmkuY2F0Y2gobCksaX19ZnVuY3Rpb24gbCgpe319LDY3NjczLChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuLG8sYT17UG9zdHBvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gRH0sUHJlbHVkZVN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIFF9LGFib3J0QW5kVGhyb3dPblN5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gd30sYWJvcnRPblN5bmNocm9ub3VzUGxhdGZvcm1JT0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBqfSxhY2Nlc3NlZER5bmFtaWNEYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIFV9LGFubm90YXRlRHluYW1pY0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBGfSxjb25zdW1lRHluYW1pY0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBIfSxjcmVhdGVEeW5hbWljVHJhY2tpbmdTdGF0ZTpmdW5jdGlvbigpe3JldHVybiBFfSxjcmVhdGVEeW5hbWljVmFsaWRhdGlvblN0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGNyZWF0ZUhhbmdpbmdJbnB1dEFib3J0U2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuIFh9LGNyZWF0ZVJlbmRlckluQnJvd3NlckFib3J0U2lnbmFsOmZ1bmN0aW9uKCl7cmV0dXJuICR9LGRlbGF5VW50aWxSdW50aW1lU3RhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gZWV9LGZvcm1hdER5bmFtaWNBUElBY2Nlc3NlczpmdW5jdGlvbigpe3JldHVybiBMfSxnZXRGaXJzdER5bmFtaWNSZWFzb246ZnVuY3Rpb24oKXtyZXR1cm4gUn0saXNEeW5hbWljUG9zdHBvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gQ30saXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yOmZ1bmN0aW9uKCl7cmV0dXJuIEl9LGxvZ0Rpc2FsbG93ZWREeW5hbWljRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gSn0sbWFya0N1cnJlbnRTY29wZUFzRHluYW1pYzpmdW5jdGlvbigpe3JldHVybiBPfSxwb3N0cG9uZVdpdGhUcmFja2luZzpmdW5jdGlvbigpe3JldHVybiB4fSx0aHJvd0lmRGlzYWxsb3dlZER5bmFtaWM6ZnVuY3Rpb24oKXtyZXR1cm4gWn0sdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gdn0sdHJhY2tBbGxvd2VkRHluYW1pY0FjY2VzczpmdW5jdGlvbigpe3JldHVybiBWfSx0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIFB9LHRyYWNrU3luY2hyb25vdXNQbGF0Zm9ybUlPQWNjZXNzSW5EZXY6ZnVuY3Rpb24oKXtyZXR1cm4gVH0sdXNlRHluYW1pY1JvdXRlUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIEJ9LHVzZUR5bmFtaWNTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gV319O2Zvcih2YXIgdSBpbiBhKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHUse2VudW1lcmFibGU6ITAsZ2V0OmFbdV19KTtsZXQgaT0obj1lLnIoMjcxNjQ1KSkmJm4uX19lc01vZHVsZT9uOntkZWZhdWx0Om59LGM9ZS5yKDQ3NjM1Mykscz1lLnIoNjQzMjQ4KSxsPWUucig2NjIxNDEpLGQ9ZS5yKDU2MzU5OSksZj1lLnIoOTYzMTM4KSxwPWUucig5NTQ4MzkpLF89ZS5yKDcyOTQxOSkseT1lLnIoMTMyMDYxKSxtPWUucigzMTI3MTgpLGI9ZS5yKDE0Mjg1MiksaD0iZnVuY3Rpb24iPT10eXBlb2YgaS5kZWZhdWx0LnVuc3RhYmxlX3Bvc3Rwb25lO2Z1bmN0aW9uIEUoZSl7cmV0dXJue2lzRGVidWdEeW5hbWljQWNjZXNzZXM6ZSxkeW5hbWljQWNjZXNzZXM6W10sc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjazpudWxsfX1mdW5jdGlvbiBnKCl7cmV0dXJue2hhc1N1c3BlbnNlQWJvdmVCb2R5OiExLGhhc0R5bmFtaWNNZXRhZGF0YTohMSxoYXNEeW5hbWljVmlld3BvcnQ6ITEsaGFzQWxsb3dlZER5bmFtaWM6ITEsZHluYW1pY0Vycm9yczpbXX19ZnVuY3Rpb24gUihlKXt2YXIgdDtyZXR1cm4gbnVsbD09KHQ9ZS5keW5hbWljQWNjZXNzZXNbMF0pP3ZvaWQgMDp0LmV4cHJlc3Npb259ZnVuY3Rpb24gTyhlLHQscil7aWYodClzd2l0Y2godC50eXBlKXtjYXNlImNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOnJldHVybn1pZighZS5mb3JjZUR5bmFtaWMmJiFlLmZvcmNlU3RhdGljKXtpZihlLmR5bmFtaWNTaG91bGRFcnJvcil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuU3RhdGljR2VuQmFpbG91dEVycm9yKGBSb3V0ZSAke2Uucm91dGV9IHdpdGggXGBkeW5hbWljID0gImVycm9yIlxgIGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkIFxgJHtyfVxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTU1MyIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtpZih0KXN3aXRjaCh0LnR5cGUpe2Nhc2UicHJlcmVuZGVyLXBwciI6cmV0dXJuIHgoZS5yb3V0ZSxyLHQuZHluYW1pY1RyYWNraW5nKTtjYXNlInByZXJlbmRlci1sZWdhY3kiOnQucmV2YWxpZGF0ZT0wO2xldCBuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYy5EeW5hbWljU2VydmVyRXJyb3IoYFJvdXRlICR7ZS5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtyfS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9keW5hbWljLXNlcnZlci1lcnJvcmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNTUwIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3Rocm93IGUuZHluYW1pY1VzYWdlRGVzY3JpcHRpb249cixlLmR5bmFtaWNVc2FnZVN0YWNrPW4uc3RhY2ssbn19fWZ1bmN0aW9uIHYoZSx0LHIpe2xldCBuPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYy5EeW5hbWljU2VydmVyRXJyb3IoYFJvdXRlICR7dC5yb3V0ZX0gY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXGAke2V9XGAuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZHluYW1pYy1zZXJ2ZXItZXJyb3JgKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTU1OCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTt0aHJvdyByLnJldmFsaWRhdGU9MCx0LmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uPWUsdC5keW5hbWljVXNhZ2VTdGFjaz1uLnN0YWNrLG59ZnVuY3Rpb24gUChlKXtzd2l0Y2goZS50eXBlKXtjYXNlImNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOnJldHVybn19ZnVuY3Rpb24gUyhlLHQscil7bGV0IG49ayhgUm91dGUgJHtlfSBuZWVkcyB0byBiYWlsIG91dCBvZiBwcmVyZW5kZXJpbmcgYXQgdGhpcyBwb2ludCBiZWNhdXNlIGl0IHVzZWQgJHt0fS5gKTtyLmNvbnRyb2xsZXIuYWJvcnQobik7bGV0IG89ci5keW5hbWljVHJhY2tpbmc7byYmby5keW5hbWljQWNjZXNzZXMucHVzaCh7c3RhY2s6by5pc0RlYnVnRHluYW1pY0FjY2Vzc2VzP0Vycm9yKCkuc3RhY2s6dm9pZCAwLGV4cHJlc3Npb246dH0pfWZ1bmN0aW9uIGooZSx0LHIsbil7bGV0IG89bi5keW5hbWljVHJhY2tpbmc7UyhlLHQsbiksbyYmbnVsbD09PW8uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayYmKG8uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaz1yKX1mdW5jdGlvbiBUKGUpe2Uuc3RhZ2VkUmVuZGVyaW5nJiZlLnN0YWdlZFJlbmRlcmluZy5hZHZhbmNlU3RhZ2UoYi5SZW5kZXJTdGFnZS5EeW5hbWljKX1mdW5jdGlvbiB3KGUsdCxyLG4pe2lmKCExPT09bi5jb250cm9sbGVyLnNpZ25hbC5hYm9ydGVkKXtTKGUsdCxuKTtsZXQgbz1uLmR5bmFtaWNUcmFja2luZztvJiZudWxsPT09by5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrJiYoby5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrPXIpfXRocm93IGsoYFJvdXRlICR7ZX0gbmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkICR7dH0uYCl9ZnVuY3Rpb24gRCh7cmVhc29uOmUscm91dGU6dH0pe2xldCByPWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTt4KHQsZSxyJiYicHJlcmVuZGVyLXBwciI9PT1yLnR5cGU/ci5keW5hbWljVHJhY2tpbmc6bnVsbCl9ZnVuY3Rpb24geChlLHQscil7KGZ1bmN0aW9uKCl7aWYoIWgpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJJbnZhcmlhbnQ6IFJlYWN0LnVuc3RhYmxlX3Bvc3Rwb25lIGlzIG5vdCBkZWZpbmVkLiBUaGlzIHN1Z2dlc3RzIHRoZSB3cm9uZyB2ZXJzaW9uIG9mIFJlYWN0IHdhcyBsb2FkZWQuIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcyIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjI0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfSkoKSxyJiZyLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtzdGFjazpyLmlzRGVidWdEeW5hbWljQWNjZXNzZXM/RXJyb3IoKS5zdGFjazp2b2lkIDAsZXhwcmVzc2lvbjp0fSksaS5kZWZhdWx0LnVuc3RhYmxlX3Bvc3Rwb25lKEEoZSx0KSl9ZnVuY3Rpb24gQShlLHQpe3JldHVybmBSb3V0ZSAke2V9IG5lZWRzIHRvIGJhaWwgb3V0IG9mIHByZXJlbmRlcmluZyBhdCB0aGlzIHBvaW50IGJlY2F1c2UgaXQgdXNlZCAke3R9LiBSZWFjdCB0aHJvd3MgdGhpcyBzcGVjaWFsIG9iamVjdCB0byBpbmRpY2F0ZSB3aGVyZS4gSXQgc2hvdWxkIG5vdCBiZSBjYXVnaHQgYnkgeW91ciBvd24gdHJ5L2NhdGNoLiBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9wcHItY2F1Z2h0LWVycm9yYH1mdW5jdGlvbiBDKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJzdHJpbmciPT10eXBlb2YgZS5tZXNzYWdlJiZOKGUubWVzc2FnZSl9ZnVuY3Rpb24gTihlKXtyZXR1cm4gZS5pbmNsdWRlcygibmVlZHMgdG8gYmFpbCBvdXQgb2YgcHJlcmVuZGVyaW5nIGF0IHRoaXMgcG9pbnQgYmVjYXVzZSBpdCB1c2VkIikmJmUuaW5jbHVkZXMoIkxlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3Bwci1jYXVnaHQtZXJyb3IiKX1pZighMT09PU4oQSgiJSUlIiwiXl5eIikpKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiSW52YXJpYW50OiBpc0R5bmFtaWNQb3N0cG9uZSBtaXNpZGVudGlmaWVkIGEgcG9zdHBvbmUgcmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIE5leHQuanMiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTI5NiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXQgTT0iTkVYVF9QUkVSRU5ERVJfSU5URVJSVVBURUQiO2Z1bmN0aW9uIGsoZSl7bGV0IHQ9T2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGUpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMzk0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO3JldHVybiB0LmRpZ2VzdD1NLHR9ZnVuY3Rpb24gSShlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZlLmRpZ2VzdD09PU0mJiJuYW1lImluIGUmJiJtZXNzYWdlImluIGUmJmUgaW5zdGFuY2VvZiBFcnJvcn1mdW5jdGlvbiBVKGUpe3JldHVybiBlLmxlbmd0aD4wfWZ1bmN0aW9uIEgoZSx0KXtyZXR1cm4gZS5keW5hbWljQWNjZXNzZXMucHVzaCguLi50LmR5bmFtaWNBY2Nlc3NlcyksZS5keW5hbWljQWNjZXNzZXN9ZnVuY3Rpb24gTChlKXtyZXR1cm4gZS5maWx0ZXIoZT0+InN0cmluZyI9PXR5cGVvZiBlLnN0YWNrJiZlLnN0YWNrLmxlbmd0aD4wKS5tYXAoKHtleHByZXNzaW9uOmUsc3RhY2s6dH0pPT4odD10LnNwbGl0KCJcbiIpLnNsaWNlKDQpLmZpbHRlcihlPT4hKGUuaW5jbHVkZXMoIm5vZGVfbW9kdWxlcy9uZXh0LyIpfHxlLmluY2x1ZGVzKCIgKDxhbm9ueW1vdXM+KSIpfHxlLmluY2x1ZGVzKCIgKG5vZGU6IikpKS5qb2luKCJcbiIpLGBEeW5hbWljIEFQSSBVc2FnZSBEZWJ1ZyAtICR7ZX06CiR7dH1gKSl9ZnVuY3Rpb24gJCgpe2xldCBlPW5ldyBBYm9ydENvbnRyb2xsZXI7cmV0dXJuIGUuYWJvcnQoT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyB5LkJhaWxvdXRUb0NTUkVycm9yKCJSZW5kZXIgaW4gQnJvd3NlciIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzIxIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pKSxlLnNpZ25hbH1mdW5jdGlvbiBYKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1ydW50aW1lIjpsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyO2lmKGUuY2FjaGVTaWduYWwpZS5jYWNoZVNpZ25hbC5pbnB1dFJlYWR5KCkudGhlbigoKT0+e3QuYWJvcnQoKX0pO2Vsc2V7bGV0IHI9KDAsbC5nZXRSdW50aW1lU3RhZ2VQcm9taXNlKShlKTtyP3IudGhlbigoKT0+KDAsXy5zY2hlZHVsZU9uTmV4dFRpY2spKCgpPT50LmFib3J0KCkpKTooMCxfLnNjaGVkdWxlT25OZXh0VGljaykoKCk9PnQuYWJvcnQoKSl9cmV0dXJuIHQuc2lnbmFsO2Nhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcHByIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOmNhc2UicmVxdWVzdCI6Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjpyZXR1cm59fWZ1bmN0aW9uIEYoZSx0KXtsZXQgcj10LmR5bmFtaWNUcmFja2luZztyJiZyLmR5bmFtaWNBY2Nlc3Nlcy5wdXNoKHtzdGFjazpyLmlzRGVidWdEeW5hbWljQWNjZXNzZXM/RXJyb3IoKS5zdGFjazp2b2lkIDAsZXhwcmVzc2lvbjplfSl9ZnVuY3Rpb24gQihlKXtsZXQgdD1kLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKSxyPWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZih0JiZyKXN3aXRjaChyLnR5cGUpe2Nhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXIiOntsZXQgbj1yLmZhbGxiYWNrUm91dGVQYXJhbXM7biYmbi5zaXplPjAmJmkuZGVmYXVsdC51c2UoKDAsZi5tYWtlSGFuZ2luZ1Byb21pc2UpKHIucmVuZGVyU2lnbmFsLHQucm91dGUsZSkpO2JyZWFrfWNhc2UicHJlcmVuZGVyLXBwciI6e2xldCBuPXIuZmFsbGJhY2tSb3V0ZVBhcmFtcztpZihuJiZuLnNpemU+MClyZXR1cm4geCh0LnJvdXRlLGUsci5keW5hbWljVHJhY2tpbmcpO2JyZWFrfWNhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgbS5JbnZhcmlhbnRFcnJvcihgXGAke2V9XGAgd2FzIGNhbGxlZCBkdXJpbmcgYSBydW50aW1lIHByZXJlbmRlci4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V9IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gc2VydmVyIGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzcxIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBtLkludmFyaWFudEVycm9yKGBcYCR7ZX1cYCB3YXMgY2FsbGVkIGluc2lkZSBhIGNhY2hlIHNjb3BlLiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBzZXJ2ZXIgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NDUiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9fWZ1bmN0aW9uIFcoZSl7bGV0IHQ9ZC53b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCkscj1sLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7aWYodClzd2l0Y2goIXImJigwLGwudGhyb3dGb3JNaXNzaW5nUmVxdWVzdFN0b3JlKShlKSxyLnR5cGUpe2Nhc2UicHJlcmVuZGVyLWNsaWVudCI6aS5kZWZhdWx0LnVzZSgoMCxmLm1ha2VIYW5naW5nUHJvbWlzZSkoci5yZW5kZXJTaWduYWwsdC5yb3V0ZSxlKSk7YnJlYWs7Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpjYXNlInByZXJlbmRlci1wcHIiOmlmKHQuZm9yY2VTdGF0aWMpcmV0dXJuO3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgeS5CYWlsb3V0VG9DU1JFcnJvcihlKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTM5NCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBtLkludmFyaWFudEVycm9yKGBcYCR7ZX1cYCB3YXMgY2FsbGVkIGZyb20gYSBTZXJ2ZXIgQ29tcG9uZW50LiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBzZXJ2ZXIgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3OTUiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJjYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IG0uSW52YXJpYW50RXJyb3IoYFxgJHtlfVxgIHdhcyBjYWxsZWQgaW5zaWRlIGEgY2FjaGUgc2NvcGUuIE5leHQuanMgc2hvdWxkIGJlIHByZXZlbnRpbmcgJHtlfSBmcm9tIGJlaW5nIGluY2x1ZGVkIGluIHNlcnZlciBjb21wb25lbnRzIHN0YXRpY2FsbHksIGJ1dCBkaWQgbm90IGluIHRoaXMgY2FzZS5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc0NSIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlInJlcXVlc3QiOnJldHVybn19bGV0IEc9L1xuXHMrYXQgU3VzcGVuc2UgXCg8YW5vbnltb3VzPlwpLyxxPVJlZ0V4cChgXFxuXFxzK2F0IFN1c3BlbnNlIFxcKDxhbm9ueW1vdXM+XFwpKD86KD8hXFxuXFxzK2F0ICg/OmJvZHl8ZGl2fG1haW58c2VjdGlvbnxhcnRpY2xlfGFzaWRlfGhlYWRlcnxmb290ZXJ8bmF2fGZvcm18cHxzcGFufGgxfGgyfGgzfGg0fGg1fGg2KSBcXCg8YW5vbnltb3VzPlxcKSlbXFxzXFxTXSkqP1xcblxccythdCAke3AuUk9PVF9MQVlPVVRfQk9VTkRBUllfTkFNRX0gXFwoW15cXG5dKlxcKWApLHo9UmVnRXhwKGBcXG5cXHMrYXQgJHtwLk1FVEFEQVRBX0JPVU5EQVJZX05BTUV9W1xcblxcc11gKSxZPVJlZ0V4cChgXFxuXFxzK2F0ICR7cC5WSUVXUE9SVF9CT1VOREFSWV9OQU1FfVtcXG5cXHNdYCksSz1SZWdFeHAoYFxcblxccythdCAke3AuT1VUTEVUX0JPVU5EQVJZX05BTUV9W1xcblxcc11gKTtmdW5jdGlvbiBWKGUsdCxyLG4pe2lmKCFLLnRlc3QodCkpe2lmKHoudGVzdCh0KSl7ci5oYXNEeW5hbWljTWV0YWRhdGE9ITA7cmV0dXJufWlmKFkudGVzdCh0KSl7ci5oYXNEeW5hbWljVmlld3BvcnQ9ITA7cmV0dXJufWlmKHEudGVzdCh0KSl7ci5oYXNBbGxvd2VkRHluYW1pYz0hMCxyLmhhc1N1c3BlbnNlQWJvdmVCb2R5PSEwO3JldHVybn1lbHNlIGlmKEcudGVzdCh0KSl7ci5oYXNBbGxvd2VkRHluYW1pYz0hMDtyZXR1cm59ZWxzZXt2YXIgbyxhO2xldCB1O2lmKG4uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjaylyZXR1cm4gdm9pZCByLmR5bmFtaWNFcnJvcnMucHVzaChuLnN5bmNEeW5hbWljRXJyb3JXaXRoU3RhY2spO2xldCBpPShvPWBSb3V0ZSAiJHtlLnJvdXRlfSI6IFVuY2FjaGVkIGRhdGEgd2FzIGFjY2Vzc2VkIG91dHNpZGUgb2YgPFN1c3BlbnNlPi4gVGhpcyBkZWxheXMgdGhlIGVudGlyZSBwYWdlIGZyb20gcmVuZGVyaW5nLCByZXN1bHRpbmcgaW4gYSBzbG93IHVzZXIgZXhwZXJpZW5jZS4gTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvYmxvY2tpbmctcm91dGVgLGE9dCwodT1PYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IobyksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUzOTQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkpLnN0YWNrPXUubmFtZSsiOiAiK28rYSx1KTtyZXR1cm4gdm9pZCByLmR5bmFtaWNFcnJvcnMucHVzaChpKX19fXZhciBRPSgobz17fSlbby5GdWxsPTBdPSJGdWxsIixvW28uRW1wdHk9MV09IkVtcHR5IixvW28uRXJyb3JlZD0yXT0iRXJyb3JlZCIsbyk7ZnVuY3Rpb24gSihlLHQpe2NvbnNvbGUuZXJyb3IodCksZS5kZXZ8fChlLmhhc1JlYWRhYmxlRXJyb3JTdGFja3M/Y29uc29sZS5lcnJvcihgVG8gZ2V0IGEgbW9yZSBkZXRhaWxlZCBzdGFjayB0cmFjZSBhbmQgcGlucG9pbnQgdGhlIGlzc3VlLCBzdGFydCB0aGUgYXBwIGluIGRldmVsb3BtZW50IG1vZGUgYnkgcnVubmluZyBcYG5leHQgZGV2XGAsIHRoZW4gb3BlbiAiJHtlLnJvdXRlfSIgaW4geW91ciBicm93c2VyIHRvIGludmVzdGlnYXRlIHRoZSBlcnJvci5gKTpjb25zb2xlLmVycm9yKGBUbyBnZXQgYSBtb3JlIGRldGFpbGVkIHN0YWNrIHRyYWNlIGFuZCBwaW5wb2ludCB0aGUgaXNzdWUsIHRyeSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICAtIFN0YXJ0IHRoZSBhcHAgaW4gZGV2ZWxvcG1lbnQgbW9kZSBieSBydW5uaW5nIFxgbmV4dCBkZXZcYCwgdGhlbiBvcGVuICIke2Uucm91dGV9IiBpbiB5b3VyIGJyb3dzZXIgdG8gaW52ZXN0aWdhdGUgdGhlIGVycm9yLgogIC0gUmVydW4gdGhlIHByb2R1Y3Rpb24gYnVpbGQgd2l0aCBcYG5leHQgYnVpbGQgLS1kZWJ1Zy1wcmVyZW5kZXJcYCB0byBnZW5lcmF0ZSBiZXR0ZXIgc3RhY2sgdHJhY2VzLmApKX1mdW5jdGlvbiBaKGUsdCxyLG4pe2lmKG4uc3luY0R5bmFtaWNFcnJvcldpdGhTdGFjayl0aHJvdyBKKGUsbi5zeW5jRHluYW1pY0Vycm9yV2l0aFN0YWNrKSxuZXcgcy5TdGF0aWNHZW5CYWlsb3V0RXJyb3I7aWYoMCE9PXQpe2lmKHIuaGFzU3VzcGVuc2VBYm92ZUJvZHkpcmV0dXJuO2xldCBuPXIuZHluYW1pY0Vycm9ycztpZihuLmxlbmd0aD4wKXtmb3IobGV0IHQ9MDt0PG4ubGVuZ3RoO3QrKylKKGUsblt0XSk7dGhyb3cgbmV3IHMuU3RhdGljR2VuQmFpbG91dEVycm9yfWlmKHIuaGFzRHluYW1pY1ZpZXdwb3J0KXRocm93IGNvbnNvbGUuZXJyb3IoYFJvdXRlICIke2Uucm91dGV9IiBoYXMgYSBcYGdlbmVyYXRlVmlld3BvcnRcYCB0aGF0IGRlcGVuZHMgb24gUmVxdWVzdCBkYXRhIChcYGNvb2tpZXMoKVxgLCBldGMuLi4pIG9yIHVuY2FjaGVkIGV4dGVybmFsIGRhdGEgKFxgZmV0Y2goLi4uKVxgLCBldGMuLi4pIHdpdGhvdXQgZXhwbGljaXRseSBhbGxvd2luZyBmdWxseSBkeW5hbWljIHJlbmRlcmluZy4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LXByZXJlbmRlci1keW5hbWljLXZpZXdwb3J0YCksbmV3IHMuU3RhdGljR2VuQmFpbG91dEVycm9yO2lmKDE9PT10KXRocm93IGNvbnNvbGUuZXJyb3IoYFJvdXRlICIke2Uucm91dGV9IiBkaWQgbm90IHByb2R1Y2UgYSBzdGF0aWMgc2hlbGwgYW5kIE5leHQuanMgd2FzIHVuYWJsZSB0byBkZXRlcm1pbmUgYSByZWFzb24uIFRoaXMgaXMgYSBidWcgaW4gTmV4dC5qcy5gKSxuZXcgcy5TdGF0aWNHZW5CYWlsb3V0RXJyb3J9ZWxzZSBpZighMT09PXIuaGFzQWxsb3dlZER5bmFtaWMmJnIuaGFzRHluYW1pY01ldGFkYXRhKXRocm93IGNvbnNvbGUuZXJyb3IoYFJvdXRlICIke2Uucm91dGV9IiBoYXMgYSBcYGdlbmVyYXRlTWV0YWRhdGFcYCB0aGF0IGRlcGVuZHMgb24gUmVxdWVzdCBkYXRhIChcYGNvb2tpZXMoKVxgLCBldGMuLi4pIG9yIHVuY2FjaGVkIGV4dGVybmFsIGRhdGEgKFxgZmV0Y2goLi4uKVxgLCBldGMuLi4pIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIHJvdXRlIGRvZXMgbm90LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLWR5bmFtaWMtbWV0YWRhdGFgKSxuZXcgcy5TdGF0aWNHZW5CYWlsb3V0RXJyb3J9ZnVuY3Rpb24gZWUoZSx0KXtyZXR1cm4gZS5ydW50aW1lU3RhZ2VQcm9taXNlP2UucnVudGltZVN0YWdlUHJvbWlzZS50aGVuKCgpPT50KTp0fX0sODkxNDE0LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJ1bnN0YWJsZV9yZXRocm93Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZSh0KXtpZigoMCx1LmlzTmV4dFJvdXRlckVycm9yKSh0KXx8KDAsYS5pc0JhaWxvdXRUb0NTUkVycm9yKSh0KXx8KDAsYy5pc0R5bmFtaWNTZXJ2ZXJFcnJvcikodCl8fCgwLGkuaXNEeW5hbWljUG9zdHBvbmUpKHQpfHwoMCxvLmlzUG9zdHBvbmUpKHQpfHwoMCxuLmlzSGFuZ2luZ1Byb21pc2VSZWplY3Rpb25FcnJvcikodCl8fCgwLGkuaXNQcmVyZW5kZXJJbnRlcnJ1cHRlZEVycm9yKSh0KSl0aHJvdyB0O3QgaW5zdGFuY2VvZiBFcnJvciYmImNhdXNlImluIHQmJmUodC5jYXVzZSl9fX0pO2xldCBuPWUucig5NjMxMzgpLG89ZS5yKDM2NzI4NyksYT1lLnIoMTMyMDYxKSx1PWUucigyNjU3MTMpLGk9ZS5yKDY3NjczKSxjPWUucig0NzYzNTMpOygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDQ5MDUwOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwidW5zdGFibGVfcmV0aHJvdyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/ZS5yKDg5MTQxNCkudW5zdGFibGVfcmV0aHJvdzplLnIoMTE1NTA3KS51bnN0YWJsZV9yZXRocm93OygiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDU5MjgwNSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17UmVhZG9ubHlVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gYS5SZWFkb25seVVSTFNlYXJjaFBhcmFtc30sUmVkaXJlY3RUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGkuUmVkaXJlY3RUeXBlfSxmb3JiaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4gcy5mb3JiaWRkZW59LG5vdEZvdW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGMubm90Rm91bmR9LHBlcm1hbmVudFJlZGlyZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIHUucGVybWFuZW50UmVkaXJlY3R9LHJlZGlyZWN0OmZ1bmN0aW9uKCl7cmV0dXJuIHUucmVkaXJlY3R9LHVuYXV0aG9yaXplZDpmdW5jdGlvbigpe3JldHVybiBsLnVuYXV0aG9yaXplZH0sdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcjpmdW5jdGlvbigpe3JldHVybiBmfSx1bnN0YWJsZV9yZXRocm93OmZ1bmN0aW9uKCl7cmV0dXJuIGQudW5zdGFibGVfcmV0aHJvd319O2Zvcih2YXIgbyBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLG8se2VudW1lcmFibGU6ITAsZ2V0Om5bb119KTtsZXQgYT1lLnIoOTAzNjgwKSx1PWUucigxMjQwNjMpLGk9ZS5yKDk2ODM5MSksYz1lLnIoMjIyNzgzKSxzPWUucig4Nzk4NTQpLGw9ZS5yKDEyMjY4MyksZD1lLnIoNDkwNTA4KTtmdW5jdGlvbiBmKCl7dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJgdW5zdGFibGVfaXNVbnJlY29nbml6ZWRBY3Rpb25FcnJvcmAgY2FuIG9ubHkgYmUgdXNlZCBvbiB0aGUgY2xpZW50LiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzc2IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9LDk3NjU2MiwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17UmVhZG9ubHlVUkxTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5SZWFkb25seVVSTFNlYXJjaFBhcmFtc30sUmVkaXJlY3RUeXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuUmVkaXJlY3RUeXBlfSxTZXJ2ZXJJbnNlcnRlZEhUTUxDb250ZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIGwuU2VydmVySW5zZXJ0ZWRIVE1MQ29udGV4dH0sZm9yYmlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZm9yYmlkZGVufSxub3RGb3VuZDpmdW5jdGlvbigpe3JldHVybiBmLm5vdEZvdW5kfSxwZXJtYW5lbnRSZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiBmLnBlcm1hbmVudFJlZGlyZWN0fSxyZWRpcmVjdDpmdW5jdGlvbigpe3JldHVybiBmLnJlZGlyZWN0fSx1bmF1dGhvcml6ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZi51bmF1dGhvcml6ZWR9LHVuc3RhYmxlX2lzVW5yZWNvZ25pemVkQWN0aW9uRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gZC51bnN0YWJsZV9pc1VucmVjb2duaXplZEFjdGlvbkVycm9yfSx1bnN0YWJsZV9yZXRocm93OmZ1bmN0aW9uKCl7cmV0dXJuIGYudW5zdGFibGVfcmV0aHJvd30sdXNlUGFyYW1zOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LHVzZVBhdGhuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIG19LHVzZVJvdXRlcjpmdW5jdGlvbigpe3JldHVybiBifSx1c2VTZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4geX0sdXNlU2VsZWN0ZWRMYXlvdXRTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGd9LHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gRX0sdXNlU2VydmVySW5zZXJ0ZWRIVE1MOmZ1bmN0aW9uKCl7cmV0dXJuIGwudXNlU2VydmVySW5zZXJ0ZWRIVE1MfX07Zm9yKHZhciBvIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsbyx7ZW51bWVyYWJsZTohMCxnZXQ6bltvXX0pO2xldCBhPWUucigxOTA4MDkpLl8oZS5yKDI3MTY0NSkpLHU9ZS5yKDgzNzIpLGk9ZS5yKDI2MTk5NCksYz1lLnIoODEzMjU4KSxzPWUucig5MDM2ODApLGw9ZS5yKDEzOTU3KSxkPWUucigyOTI4MzgpLGY9ZS5yKDU5MjgwNSkscD0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9lLnIoNjc2NzMpLnVzZUR5bmFtaWNSb3V0ZVBhcmFtczp2b2lkIDAsXz0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9lLnIoNjc2NzMpLnVzZUR5bmFtaWNTZWFyY2hQYXJhbXM6dm9pZCAwO2Z1bmN0aW9uIHkoKXtfPy4oInVzZVNlYXJjaFBhcmFtcygpIik7bGV0IGU9KDAsYS51c2VDb250ZXh0KShpLlNlYXJjaFBhcmFtc0NvbnRleHQpO3JldHVybigwLGEudXNlTWVtbykoKCk9PmU/bmV3IHMuUmVhZG9ubHlVUkxTZWFyY2hQYXJhbXMoZSk6bnVsbCxbZV0pfWZ1bmN0aW9uIG0oKXtyZXR1cm4gcD8uKCJ1c2VQYXRobmFtZSgpIiksKDAsYS51c2VDb250ZXh0KShpLlBhdGhuYW1lQ29udGV4dCl9ZnVuY3Rpb24gYigpe2xldCBlPSgwLGEudXNlQ29udGV4dCkodS5BcHBSb3V0ZXJDb250ZXh0KTtpZihudWxsPT09ZSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoImludmFyaWFudCBleHBlY3RlZCBhcHAgcm91dGVyIHRvIGJlIG1vdW50ZWQiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTIzOCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gZX1mdW5jdGlvbiBoKCl7cmV0dXJuIHA/LigidXNlUGFyYW1zKCkiKSwoMCxhLnVzZUNvbnRleHQpKGkuUGF0aFBhcmFtc0NvbnRleHQpfWZ1bmN0aW9uIEUoZT0iY2hpbGRyZW4iKXtwPy4oInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudHMoKSIpO2xldCB0PSgwLGEudXNlQ29udGV4dCkodS5MYXlvdXRSb3V0ZXJDb250ZXh0KTtyZXR1cm4gdD8oMCxjLmdldFNlbGVjdGVkTGF5b3V0U2VnbWVudFBhdGgpKHQucGFyZW50VHJlZSxlKTpudWxsfWZ1bmN0aW9uIGcoZT0iY2hpbGRyZW4iKXtwPy4oInVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudCgpIiksKDAsYS51c2VDb250ZXh0KShpLk5hdmlnYXRpb25Qcm9taXNlc0NvbnRleHQpO2xldCB0PUUoZSk7cmV0dXJuKDAsYy5jb21wdXRlU2VsZWN0ZWRMYXlvdXRTZWdtZW50KSh0LGUpfSgiZnVuY3Rpb24iPT10eXBlb2Ygci5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHIuZGVmYXVsdCYmbnVsbCE9PXIuZGVmYXVsdCkmJnZvaWQgMD09PXIuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHIuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbihyLmRlZmF1bHQsciksdC5leHBvcnRzPXIuZGVmYXVsdCl9XSk7"}},"time_used":35,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":35,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/d9dc1d90621e24a3.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.233Z","timestamp":1785142498233,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/d9dc1d90621e24a3.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"d9dc1d90621e24a3.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"de94d56bc66319cb4c358ded702591b6\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/d9dc1d90621e24a3.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::sb2bk-1785142498238-850fca2805e6\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":104725,"size_decoded":29869,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (35324)","md5":"de94d56bc66319cb4c358ded702591b6","sha1":"dcbe87f604fb832731ee58ec393e0af6296abef0","sha256":"bf87afef7d6df1c7e56f0675ed2d6e42f7d044a88bb1d17d5134377d3814acc8","sha512":"e37b2f77c193912c22da80cbf517d8101ad5ff352aec24675492946e78d849e7aa1e017142be5ae52731f1e57aafcff8d2f7c0be1ba9781117e1766c02b49077","ssdeep":"3072:MVs97T+4Wp+OpRfl8uIRL59JAKutFQJFfJAJEJZJQJ+Jg:MVSip+OTCuIR99ZnyCfKsy","tlshash":"58a329d6b372e46209d4d4a0d4790502f36c7a1eb81d441cbbb96edf29d8d09ab3be34","first_seen":"2026-07-27T06:16:09.111975Z","last_seen":"2026-07-27T08:57:45.678078Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDE1NDM4NSwoZSx0LHMpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxzLmRlZmF1bHQ9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLm1lc3NhZ2UpLHRoaXMubmFtZT0iUG9zdGdyZXN0RXJyb3IiLHRoaXMuZGV0YWlscz1lLmRldGFpbHMsdGhpcy5oaW50PWUuaGludCx0aGlzLmNvZGU9ZS5jb2RlfX19LDM0MzE3MywoZSx0LHMpPT57InVzZSBzdHJpY3QiO3ZhciByPWUuZSYmZS5lLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkocywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7bGV0IGk9cihlLnIoOTA2MDg1KSksbj1yKGUucigxNTQzODUpKTtzLmRlZmF1bHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5zaG91bGRUaHJvd09uRXJyb3I9ITEsdGhpcy5tZXRob2Q9ZS5tZXRob2QsdGhpcy51cmw9ZS51cmwsdGhpcy5oZWFkZXJzPWUuaGVhZGVycyx0aGlzLnNjaGVtYT1lLnNjaGVtYSx0aGlzLmJvZHk9ZS5ib2R5LHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yPWUuc2hvdWxkVGhyb3dPbkVycm9yLHRoaXMuc2lnbmFsPWUuc2lnbmFsLHRoaXMuaXNNYXliZVNpbmdsZT1lLmlzTWF5YmVTaW5nbGUsZS5mZXRjaD90aGlzLmZldGNoPWUuZmV0Y2g6InVuZGVmaW5lZCI9PXR5cGVvZiBmZXRjaD90aGlzLmZldGNoPWkuZGVmYXVsdDp0aGlzLmZldGNoPWZldGNofXRocm93T25FcnJvcigpe3JldHVybiB0aGlzLnNob3VsZFRocm93T25FcnJvcj0hMCx0aGlzfXNldEhlYWRlcihlLHQpe3JldHVybiB0aGlzLmhlYWRlcnM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLmhlYWRlcnMpLHRoaXMuaGVhZGVyc1tlXT10LHRoaXN9dGhlbihlLHQpe3ZvaWQgMD09PXRoaXMuc2NoZW1hfHwoWyJHRVQiLCJIRUFEIl0uaW5jbHVkZXModGhpcy5tZXRob2QpP3RoaXMuaGVhZGVyc1siQWNjZXB0LVByb2ZpbGUiXT10aGlzLnNjaGVtYTp0aGlzLmhlYWRlcnNbIkNvbnRlbnQtUHJvZmlsZSJdPXRoaXMuc2NoZW1hKSwiR0VUIiE9PXRoaXMubWV0aG9kJiYiSEVBRCIhPT10aGlzLm1ldGhvZCYmKHRoaXMuaGVhZGVyc1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24iKTtsZXQgcz0oMCx0aGlzLmZldGNoKSh0aGlzLnVybC50b1N0cmluZygpLHttZXRob2Q6dGhpcy5tZXRob2QsaGVhZGVyczp0aGlzLmhlYWRlcnMsYm9keTpKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHkpLHNpZ25hbDp0aGlzLnNpZ25hbH0pLnRoZW4oYXN5bmMgZT0+e3ZhciB0LHMscjtsZXQgaT1udWxsLGE9bnVsbCxvPW51bGwsbD1lLnN0YXR1cyxoPWUuc3RhdHVzVGV4dDtpZihlLm9rKXtpZigiSEVBRCIhPT10aGlzLm1ldGhvZCl7bGV0IHQ9YXdhaXQgZS50ZXh0KCk7IiI9PT10fHwoYT0idGV4dC9jc3YiPT09dGhpcy5oZWFkZXJzLkFjY2VwdHx8dGhpcy5oZWFkZXJzLkFjY2VwdCYmdGhpcy5oZWFkZXJzLkFjY2VwdC5pbmNsdWRlcygiYXBwbGljYXRpb24vdm5kLnBncnN0LnBsYW4rdGV4dCIpP3Q6SlNPTi5wYXJzZSh0KSl9bGV0IHI9bnVsbD09KHQ9dGhpcy5oZWFkZXJzLlByZWZlcik/dm9pZCAwOnQubWF0Y2goL2NvdW50PShleGFjdHxwbGFubmVkfGVzdGltYXRlZCkvKSxuPW51bGw9PShzPWUuaGVhZGVycy5nZXQoImNvbnRlbnQtcmFuZ2UiKSk/dm9pZCAwOnMuc3BsaXQoIi8iKTtyJiZuJiZuLmxlbmd0aD4xJiYobz1wYXJzZUludChuWzFdKSksdGhpcy5pc01heWJlU2luZ2xlJiYiR0VUIj09PXRoaXMubWV0aG9kJiZBcnJheS5pc0FycmF5KGEpJiYoYS5sZW5ndGg+MT8oaT17Y29kZToiUEdSU1QxMTYiLGRldGFpbHM6YFJlc3VsdHMgY29udGFpbiAke2EubGVuZ3RofSByb3dzLCBhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24gcmVxdWlyZXMgMSByb3dgLGhpbnQ6bnVsbCxtZXNzYWdlOiJKU09OIG9iamVjdCByZXF1ZXN0ZWQsIG11bHRpcGxlIChvciBubykgcm93cyByZXR1cm5lZCJ9LGE9bnVsbCxvPW51bGwsbD00MDYsaD0iTm90IEFjY2VwdGFibGUiKTphPTE9PT1hLmxlbmd0aD9hWzBdOm51bGwpfWVsc2V7bGV0IHQ9YXdhaXQgZS50ZXh0KCk7dHJ5e2k9SlNPTi5wYXJzZSh0KSxBcnJheS5pc0FycmF5KGkpJiY0MDQ9PT1lLnN0YXR1cyYmKGE9W10saT1udWxsLGw9MjAwLGg9Ik9LIil9Y2F0Y2gocyl7NDA0PT09ZS5zdGF0dXMmJiIiPT09dD8obD0yMDQsaD0iTm8gQ29udGVudCIpOmk9e21lc3NhZ2U6dH19aWYoaSYmdGhpcy5pc01heWJlU2luZ2xlJiYobnVsbD09KHI9bnVsbD09aT92b2lkIDA6aS5kZXRhaWxzKT92b2lkIDA6ci5pbmNsdWRlcygiMCByb3dzIikpJiYoaT1udWxsLGw9MjAwLGg9Ik9LIiksaSYmdGhpcy5zaG91bGRUaHJvd09uRXJyb3IpdGhyb3cgbmV3IG4uZGVmYXVsdChpKX1yZXR1cm57ZXJyb3I6aSxkYXRhOmEsY291bnQ6byxzdGF0dXM6bCxzdGF0dXNUZXh0Omh9fSk7cmV0dXJuIHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yfHwocz1zLmNhdGNoKGU9Pnt2YXIgdCxzLHI7cmV0dXJue2Vycm9yOnttZXNzYWdlOmAke251bGwhPSh0PW51bGw9PWU/dm9pZCAwOmUubmFtZSk/dDoiRmV0Y2hFcnJvciJ9OiAke251bGw9PWU/dm9pZCAwOmUubWVzc2FnZX1gLGRldGFpbHM6YCR7bnVsbCE9KHM9bnVsbD09ZT92b2lkIDA6ZS5zdGFjayk/czoiIn1gLGhpbnQ6IiIsY29kZTpgJHtudWxsIT0ocj1udWxsPT1lP3ZvaWQgMDplLmNvZGUpP3I6IiJ9YH0sZGF0YTpudWxsLGNvdW50Om51bGwsc3RhdHVzOjAsc3RhdHVzVGV4dDoiIn19KSkscy50aGVuKGUsdCl9cmV0dXJucygpe3JldHVybiB0aGlzfW92ZXJyaWRlVHlwZXMoKXtyZXR1cm4gdGhpc319fSw3ODIxOTEsKGUsdCxzKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lLmUmJmUuZS5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2xldCBpPXIoZS5yKDM0MzE3MykpO2NsYXNzIG4gZXh0ZW5kcyBpLmRlZmF1bHR7c2VsZWN0KGUpe2xldCB0PSExLHM9KG51bGwhPWU/ZToiKiIpLnNwbGl0KCIiKS5tYXAoZT0+L1xzLy50ZXN0KGUpJiYhdD8iIjooJyInPT09ZSYmKHQ9IXQpLGUpKS5qb2luKCIiKTtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldCgic2VsZWN0IixzKSx0aGlzLmhlYWRlcnMuUHJlZmVyJiYodGhpcy5oZWFkZXJzLlByZWZlcis9IiwiKSx0aGlzLmhlYWRlcnMuUHJlZmVyKz0icmV0dXJuPXJlcHJlc2VudGF0aW9uIix0aGlzfW9yZGVyKGUse2FzY2VuZGluZzp0PSEwLG51bGxzRmlyc3Q6cyxmb3JlaWduVGFibGU6cixyZWZlcmVuY2VkVGFibGU6aT1yfT17fSl7bGV0IG49aT9gJHtpfS5vcmRlcmA6Im9yZGVyIixhPXRoaXMudXJsLnNlYXJjaFBhcmFtcy5nZXQobik7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQobixgJHthP2Ake2F9LGA6IiJ9JHtlfS4ke3Q/ImFzYyI6ImRlc2MifSR7dm9pZCAwPT09cz8iIjpzPyIubnVsbHNmaXJzdCI6Ii5udWxsc2xhc3QifWApLHRoaXN9bGltaXQoZSx7Zm9yZWlnblRhYmxlOnQscmVmZXJlbmNlZFRhYmxlOnM9dH09e30pe2xldCByPXZvaWQgMD09PXM/ImxpbWl0IjpgJHtzfS5saW1pdGA7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5zZXQocixgJHtlfWApLHRoaXN9cmFuZ2UoZSx0LHtmb3JlaWduVGFibGU6cyxyZWZlcmVuY2VkVGFibGU6cj1zfT17fSl7bGV0IGk9dm9pZCAwPT09cj8ib2Zmc2V0IjpgJHtyfS5vZmZzZXRgLG49dm9pZCAwPT09cj8ibGltaXQiOmAke3J9LmxpbWl0YDtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldChpLGAke2V9YCksdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldChuLGAke3QtZSsxfWApLHRoaXN9YWJvcnRTaWduYWwoZSl7cmV0dXJuIHRoaXMuc2lnbmFsPWUsdGhpc31zaW5nbGUoKXtyZXR1cm4gdGhpcy5oZWFkZXJzLkFjY2VwdD0iYXBwbGljYXRpb24vdm5kLnBncnN0Lm9iamVjdCtqc29uIix0aGlzfW1heWJlU2luZ2xlKCl7cmV0dXJuIkdFVCI9PT10aGlzLm1ldGhvZD90aGlzLmhlYWRlcnMuQWNjZXB0PSJhcHBsaWNhdGlvbi9qc29uIjp0aGlzLmhlYWRlcnMuQWNjZXB0PSJhcHBsaWNhdGlvbi92bmQucGdyc3Qub2JqZWN0K2pzb24iLHRoaXMuaXNNYXliZVNpbmdsZT0hMCx0aGlzfWNzdigpe3JldHVybiB0aGlzLmhlYWRlcnMuQWNjZXB0PSJ0ZXh0L2NzdiIsdGhpc31nZW9qc29uKCl7cmV0dXJuIHRoaXMuaGVhZGVycy5BY2NlcHQ9ImFwcGxpY2F0aW9uL2dlbytqc29uIix0aGlzfWV4cGxhaW4oe2FuYWx5emU6ZT0hMSx2ZXJib3NlOnQ9ITEsc2V0dGluZ3M6cz0hMSxidWZmZXJzOnI9ITEsd2FsOmk9ITEsZm9ybWF0Om49InRleHQifT17fSl7dmFyIGE7bGV0IG89W2U/ImFuYWx5emUiOm51bGwsdD8idmVyYm9zZSI6bnVsbCxzPyJzZXR0aW5ncyI6bnVsbCxyPyJidWZmZXJzIjpudWxsLGk/IndhbCI6bnVsbF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oInwiKSxsPW51bGwhPShhPXRoaXMuaGVhZGVycy5BY2NlcHQpP2E6ImFwcGxpY2F0aW9uL2pzb24iO3JldHVybiB0aGlzLmhlYWRlcnMuQWNjZXB0PWBhcHBsaWNhdGlvbi92bmQucGdyc3QucGxhbiske259OyBmb3I9IiR7bH0iOyBvcHRpb25zPSR7b307YCx0aGlzfXJvbGxiYWNrKCl7dmFyIGU7cmV0dXJuKG51bGwhPShlPXRoaXMuaGVhZGVycy5QcmVmZXIpP2U6IiIpLnRyaW0oKS5sZW5ndGg+MD90aGlzLmhlYWRlcnMuUHJlZmVyKz0iLHR4PXJvbGxiYWNrIjp0aGlzLmhlYWRlcnMuUHJlZmVyPSJ0eD1yb2xsYmFjayIsdGhpc31yZXR1cm5zKCl7cmV0dXJuIHRoaXN9fXMuZGVmYXVsdD1ufSw3MTQ2MzMsKGUsdCxzKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lLmUmJmUuZS5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2xldCBpPXIoZS5yKDc4MjE5MSkpO2NsYXNzIG4gZXh0ZW5kcyBpLmRlZmF1bHR7ZXEoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBlcS4ke3R9YCksdGhpc31uZXEoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBuZXEuJHt0fWApLHRoaXN9Z3QoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBndC4ke3R9YCksdGhpc31ndGUoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBndGUuJHt0fWApLHRoaXN9bHQoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBsdC4ke3R9YCksdGhpc31sdGUoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBsdGUuJHt0fWApLHRoaXN9bGlrZShlLHQpe3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGxpa2UuJHt0fWApLHRoaXN9bGlrZUFsbE9mKGUsdCl7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxgbGlrZShhbGwpLnske3Quam9pbigiLCIpfX1gKSx0aGlzfWxpa2VBbnlPZihlLHQpe3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGxpa2UoYW55KS57JHt0LmpvaW4oIiwiKX19YCksdGhpc31pbGlrZShlLHQpe3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGlsaWtlLiR7dH1gKSx0aGlzfWlsaWtlQWxsT2YoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBpbGlrZShhbGwpLnske3Quam9pbigiLCIpfX1gKSx0aGlzfWlsaWtlQW55T2YoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBpbGlrZShhbnkpLnske3Quam9pbigiLCIpfX1gKSx0aGlzfWlzKGUsdCl7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxgaXMuJHt0fWApLHRoaXN9aW4oZSx0KXtsZXQgcz1BcnJheS5mcm9tKG5ldyBTZXQodCkpLm1hcChlPT4ic3RyaW5nIj09dHlwZW9mIGUmJlJlZ0V4cCgiWywoKV0iKS50ZXN0KGUpP2AiJHtlfSJgOmAke2V9YCkuam9pbigiLCIpO3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGluLigke3N9KWApLHRoaXN9Y29udGFpbnMoZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBjcy4ke3R9YCk6QXJyYXkuaXNBcnJheSh0KT90aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGNzLnske3Quam9pbigiLCIpfX1gKTp0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGNzLiR7SlNPTi5zdHJpbmdpZnkodCl9YCksdGhpc31jb250YWluZWRCeShlLHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGNkLiR7dH1gKTpBcnJheS5pc0FycmF5KHQpP3RoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxgY2QueyR7dC5qb2luKCIsIil9fWApOnRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxgY2QuJHtKU09OLnN0cmluZ2lmeSh0KX1gKSx0aGlzfXJhbmdlR3QoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBzci4ke3R9YCksdGhpc31yYW5nZUd0ZShlLHQpe3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYG54bC4ke3R9YCksdGhpc31yYW5nZUx0KGUsdCl7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxgc2wuJHt0fWApLHRoaXN9cmFuZ2VMdGUoZSx0KXtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBueHIuJHt0fWApLHRoaXN9cmFuZ2VBZGphY2VudChlLHQpe3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYGFkai4ke3R9YCksdGhpc31vdmVybGFwcyhlLHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdD90aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYG92LiR7dH1gKTp0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYG92Lnske3Quam9pbigiLCIpfX1gKSx0aGlzfXRleHRTZWFyY2goZSx0LHtjb25maWc6cyx0eXBlOnJ9PXt9KXtsZXQgaT0iIjsicGxhaW4iPT09cj9pPSJwbCI6InBocmFzZSI9PT1yP2k9InBoIjoid2Vic2VhcmNoIj09PXImJihpPSJ3Iik7bGV0IG49dm9pZCAwPT09cz8iIjpgKCR7c30pYDtyZXR1cm4gdGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGAke2l9ZnRzJHtufS4ke3R9YCksdGhpc31tYXRjaChlKXtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaCgoW2UsdF0pPT57dGhpcy51cmwuc2VhcmNoUGFyYW1zLmFwcGVuZChlLGBlcS4ke3R9YCl9KSx0aGlzfW5vdChlLHQscyl7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSxgbm90LiR7dH0uJHtzfWApLHRoaXN9b3IoZSx7Zm9yZWlnblRhYmxlOnQscmVmZXJlbmNlZFRhYmxlOnM9dH09e30pe2xldCByPXM/YCR7c30ub3JgOiJvciI7cmV0dXJuIHRoaXMudXJsLnNlYXJjaFBhcmFtcy5hcHBlbmQocixgKCR7ZX0pYCksdGhpc31maWx0ZXIoZSx0LHMpe3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuYXBwZW5kKGUsYCR7dH0uJHtzfWApLHRoaXN9fXMuZGVmYXVsdD1ufSw4MzgyOTAsKGUsdCxzKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcj1lLmUmJmUuZS5fX2ltcG9ydERlZmF1bHR8fGZ1bmN0aW9uKGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGU/ZTp7ZGVmYXVsdDplfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2xldCBpPXIoZS5yKDcxNDYzMykpO3MuZGVmYXVsdD1jbGFzc3tjb25zdHJ1Y3RvcihlLHtoZWFkZXJzOnQ9e30sc2NoZW1hOnMsZmV0Y2g6cn0pe3RoaXMudXJsPWUsdGhpcy5oZWFkZXJzPXQsdGhpcy5zY2hlbWE9cyx0aGlzLmZldGNoPXJ9c2VsZWN0KGUse2hlYWQ6dD0hMSxjb3VudDpzfT17fSl7bGV0IHI9ITEsbj0obnVsbCE9ZT9lOiIqIikuc3BsaXQoIiIpLm1hcChlPT4vXHMvLnRlc3QoZSkmJiFyPyIiOignIic9PT1lJiYocj0hciksZSkpLmpvaW4oIiIpO3JldHVybiB0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCJzZWxlY3QiLG4pLHMmJih0aGlzLmhlYWRlcnMuUHJlZmVyPWBjb3VudD0ke3N9YCksbmV3IGkuZGVmYXVsdCh7bWV0aG9kOnQ/IkhFQUQiOiJHRVQiLHVybDp0aGlzLnVybCxoZWFkZXJzOnRoaXMuaGVhZGVycyxzY2hlbWE6dGhpcy5zY2hlbWEsZmV0Y2g6dGhpcy5mZXRjaCxhbGxvd0VtcHR5OiExfSl9aW5zZXJ0KGUse2NvdW50OnQsZGVmYXVsdFRvTnVsbDpzPSEwfT17fSl7bGV0IHI9W107aWYodGhpcy5oZWFkZXJzLlByZWZlciYmci5wdXNoKHRoaXMuaGVhZGVycy5QcmVmZXIpLHQmJnIucHVzaChgY291bnQ9JHt0fWApLHN8fHIucHVzaCgibWlzc2luZz1kZWZhdWx0IiksdGhpcy5oZWFkZXJzLlByZWZlcj1yLmpvaW4oIiwiKSxBcnJheS5pc0FycmF5KGUpKXtsZXQgdD1lLnJlZHVjZSgoZSx0KT0+ZS5jb25jYXQoT2JqZWN0LmtleXModCkpLFtdKTtpZih0Lmxlbmd0aD4wKXtsZXQgZT1bLi4ubmV3IFNldCh0KV0ubWFwKGU9PmAiJHtlfSJgKTt0aGlzLnVybC5zZWFyY2hQYXJhbXMuc2V0KCJjb2x1bW5zIixlLmpvaW4oIiwiKSl9fXJldHVybiBuZXcgaS5kZWZhdWx0KHttZXRob2Q6IlBPU1QiLHVybDp0aGlzLnVybCxoZWFkZXJzOnRoaXMuaGVhZGVycyxzY2hlbWE6dGhpcy5zY2hlbWEsYm9keTplLGZldGNoOnRoaXMuZmV0Y2gsYWxsb3dFbXB0eTohMX0pfXVwc2VydChlLHtvbkNvbmZsaWN0OnQsaWdub3JlRHVwbGljYXRlczpzPSExLGNvdW50OnIsZGVmYXVsdFRvTnVsbDpuPSEwfT17fSl7bGV0IGE9W2ByZXNvbHV0aW9uPSR7cz8iaWdub3JlIjoibWVyZ2UifS1kdXBsaWNhdGVzYF07aWYodm9pZCAwIT09dCYmdGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldCgib25fY29uZmxpY3QiLHQpLHRoaXMuaGVhZGVycy5QcmVmZXImJmEucHVzaCh0aGlzLmhlYWRlcnMuUHJlZmVyKSxyJiZhLnB1c2goYGNvdW50PSR7cn1gKSxufHxhLnB1c2goIm1pc3Npbmc9ZGVmYXVsdCIpLHRoaXMuaGVhZGVycy5QcmVmZXI9YS5qb2luKCIsIiksQXJyYXkuaXNBcnJheShlKSl7bGV0IHQ9ZS5yZWR1Y2UoKGUsdCk9PmUuY29uY2F0KE9iamVjdC5rZXlzKHQpKSxbXSk7aWYodC5sZW5ndGg+MCl7bGV0IGU9Wy4uLm5ldyBTZXQodCldLm1hcChlPT5gIiR7ZX0iYCk7dGhpcy51cmwuc2VhcmNoUGFyYW1zLnNldCgiY29sdW1ucyIsZS5qb2luKCIsIikpfX1yZXR1cm4gbmV3IGkuZGVmYXVsdCh7bWV0aG9kOiJQT1NUIix1cmw6dGhpcy51cmwsaGVhZGVyczp0aGlzLmhlYWRlcnMsc2NoZW1hOnRoaXMuc2NoZW1hLGJvZHk6ZSxmZXRjaDp0aGlzLmZldGNoLGFsbG93RW1wdHk6ITF9KX11cGRhdGUoZSx7Y291bnQ6dH09e30pe2xldCBzPVtdO3JldHVybiB0aGlzLmhlYWRlcnMuUHJlZmVyJiZzLnB1c2godGhpcy5oZWFkZXJzLlByZWZlciksdCYmcy5wdXNoKGBjb3VudD0ke3R9YCksdGhpcy5oZWFkZXJzLlByZWZlcj1zLmpvaW4oIiwiKSxuZXcgaS5kZWZhdWx0KHttZXRob2Q6IlBBVENIIix1cmw6dGhpcy51cmwsaGVhZGVyczp0aGlzLmhlYWRlcnMsc2NoZW1hOnRoaXMuc2NoZW1hLGJvZHk6ZSxmZXRjaDp0aGlzLmZldGNoLGFsbG93RW1wdHk6ITF9KX1kZWxldGUoe2NvdW50OmV9PXt9KXtsZXQgdD1bXTtyZXR1cm4gZSYmdC5wdXNoKGBjb3VudD0ke2V9YCksdGhpcy5oZWFkZXJzLlByZWZlciYmdC51bnNoaWZ0KHRoaXMuaGVhZGVycy5QcmVmZXIpLHRoaXMuaGVhZGVycy5QcmVmZXI9dC5qb2luKCIsIiksbmV3IGkuZGVmYXVsdCh7bWV0aG9kOiJERUxFVEUiLHVybDp0aGlzLnVybCxoZWFkZXJzOnRoaXMuaGVhZGVycyxzY2hlbWE6dGhpcy5zY2hlbWEsZmV0Y2g6dGhpcy5mZXRjaCxhbGxvd0VtcHR5OiExfSl9fX0sMTk4MDQyLChlLHQscyk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHMudmVyc2lvbj12b2lkIDAscy52ZXJzaW9uPSIwLjAuMC1hdXRvbWF0ZWQifSwzODU1MTEsKGUsdCxzKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkocywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSkscy5ERUZBVUxUX0hFQURFUlM9dm9pZCAwO2xldCByPWUucigxOTgwNDIpO3MuREVGQVVMVF9IRUFERVJTPXsiWC1DbGllbnQtSW5mbyI6YHBvc3RncmVzdC1qcy8ke3IudmVyc2lvbn1gfX0sOTAyMjU5LChlLHQscyk9PnsidXNlIHN0cmljdCI7dmFyIHI9ZS5lJiZlLmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtsZXQgaT1yKGUucig4MzgyOTApKSxuPXIoZS5yKDcxNDYzMykpLGE9ZS5yKDM4NTUxMSk7Y2xhc3Mgb3tjb25zdHJ1Y3RvcihlLHtoZWFkZXJzOnQ9e30sc2NoZW1hOnMsZmV0Y2g6cn09e30pe3RoaXMudXJsPWUsdGhpcy5oZWFkZXJzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhLkRFRkFVTFRfSEVBREVSUyksdCksdGhpcy5zY2hlbWFOYW1lPXMsdGhpcy5mZXRjaD1yfWZyb20oZSl7bGV0IHQ9bmV3IFVSTChgJHt0aGlzLnVybH0vJHtlfWApO3JldHVybiBuZXcgaS5kZWZhdWx0KHQse2hlYWRlcnM6T2JqZWN0LmFzc2lnbih7fSx0aGlzLmhlYWRlcnMpLHNjaGVtYTp0aGlzLnNjaGVtYU5hbWUsZmV0Y2g6dGhpcy5mZXRjaH0pfXNjaGVtYShlKXtyZXR1cm4gbmV3IG8odGhpcy51cmwse2hlYWRlcnM6dGhpcy5oZWFkZXJzLHNjaGVtYTplLGZldGNoOnRoaXMuZmV0Y2h9KX1ycGMoZSx0PXt9LHtoZWFkOnM9ITEsZ2V0OnI9ITEsY291bnQ6aX09e30pe2xldCBhLG8sbD1uZXcgVVJMKGAke3RoaXMudXJsfS9ycGMvJHtlfWApO3N8fHI/KGE9cz8iSEVBRCI6IkdFVCIsT2JqZWN0LmVudHJpZXModCkuZmlsdGVyKChbZSx0XSk9PnZvaWQgMCE9PXQpLm1hcCgoW2UsdF0pPT5bZSxBcnJheS5pc0FycmF5KHQpP2B7JHt0LmpvaW4oIiwiKX19YDpgJHt0fWBdKS5mb3JFYWNoKChbZSx0XSk9PntsLnNlYXJjaFBhcmFtcy5hcHBlbmQoZSx0KX0pKTooYT0iUE9TVCIsbz10KTtsZXQgaD1PYmplY3QuYXNzaWduKHt9LHRoaXMuaGVhZGVycyk7cmV0dXJuIGkmJihoLlByZWZlcj1gY291bnQ9JHtpfWApLG5ldyBuLmRlZmF1bHQoe21ldGhvZDphLHVybDpsLGhlYWRlcnM6aCxzY2hlbWE6dGhpcy5zY2hlbWFOYW1lLGJvZHk6byxmZXRjaDp0aGlzLmZldGNoLGFsbG93RW1wdHk6ITF9KX19cy5kZWZhdWx0PW99LDgyMjE1LChlLHQscyk9PnsidXNlIHN0cmljdCI7dmFyIHI9ZS5lJiZlLmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxzLlBvc3RncmVzdEVycm9yPXMuUG9zdGdyZXN0QnVpbGRlcj1zLlBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXI9cy5Qb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyPXMuUG9zdGdyZXN0UXVlcnlCdWlsZGVyPXMuUG9zdGdyZXN0Q2xpZW50PXZvaWQgMDtsZXQgaT1yKGUucig5MDIyNTkpKTtzLlBvc3RncmVzdENsaWVudD1pLmRlZmF1bHQ7bGV0IG49cihlLnIoODM4MjkwKSk7cy5Qb3N0Z3Jlc3RRdWVyeUJ1aWxkZXI9bi5kZWZhdWx0O2xldCBhPXIoZS5yKDcxNDYzMykpO3MuUG9zdGdyZXN0RmlsdGVyQnVpbGRlcj1hLmRlZmF1bHQ7bGV0IG89cihlLnIoNzgyMTkxKSk7cy5Qb3N0Z3Jlc3RUcmFuc2Zvcm1CdWlsZGVyPW8uZGVmYXVsdDtsZXQgbD1yKGUucigzNDMxNzMpKTtzLlBvc3RncmVzdEJ1aWxkZXI9bC5kZWZhdWx0O2xldCBoPXIoZS5yKDE1NDM4NSkpO3MuUG9zdGdyZXN0RXJyb3I9aC5kZWZhdWx0LHMuZGVmYXVsdD17UG9zdGdyZXN0Q2xpZW50OmkuZGVmYXVsdCxQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXI6bi5kZWZhdWx0LFBvc3RncmVzdEZpbHRlckJ1aWxkZXI6YS5kZWZhdWx0LFBvc3RncmVzdFRyYW5zZm9ybUJ1aWxkZXI6by5kZWZhdWx0LFBvc3RncmVzdEJ1aWxkZXI6bC5kZWZhdWx0LFBvc3RncmVzdEVycm9yOmguZGVmYXVsdH19LDYyNDYzMixlPT57InVzZSBzdHJpY3QiO2NsYXNzIHQgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3RvcihlLHQ9IkZ1bmN0aW9uc0Vycm9yIixzKXtzdXBlcihlKSx0aGlzLm5hbWU9dCx0aGlzLmNvbnRleHQ9c319Y2xhc3MgcyBleHRlbmRzIHR7Y29uc3RydWN0b3IoZSl7c3VwZXIoIkZhaWxlZCB0byBzZW5kIGEgcmVxdWVzdCB0byB0aGUgRWRnZSBGdW5jdGlvbiIsIkZ1bmN0aW9uc0ZldGNoRXJyb3IiLGUpfX1jbGFzcyByIGV4dGVuZHMgdHtjb25zdHJ1Y3RvcihlKXtzdXBlcigiUmVsYXkgRXJyb3IgaW52b2tpbmcgdGhlIEVkZ2UgRnVuY3Rpb24iLCJGdW5jdGlvbnNSZWxheUVycm9yIixlKX19Y2xhc3MgaSBleHRlbmRzIHR7Y29uc3RydWN0b3IoZSl7c3VwZXIoIkVkZ2UgRnVuY3Rpb24gcmV0dXJuZWQgYSBub24tMnh4IHN0YXR1cyBjb2RlIiwiRnVuY3Rpb25zSHR0cEVycm9yIixlKX19KHg9SXx8KEk9e30pKS5Bbnk9ImFueSIseC5BcE5vcnRoZWFzdDE9ImFwLW5vcnRoZWFzdC0xIix4LkFwTm9ydGhlYXN0Mj0iYXAtbm9ydGhlYXN0LTIiLHguQXBTb3V0aDE9ImFwLXNvdXRoLTEiLHguQXBTb3V0aGVhc3QxPSJhcC1zb3V0aGVhc3QtMSIseC5BcFNvdXRoZWFzdDI9ImFwLXNvdXRoZWFzdC0yIix4LkNhQ2VudHJhbDE9ImNhLWNlbnRyYWwtMSIseC5FdUNlbnRyYWwxPSJldS1jZW50cmFsLTEiLHguRXVXZXN0MT0iZXUtd2VzdC0xIix4LkV1V2VzdDI9ImV1LXdlc3QtMiIseC5FdVdlc3QzPSJldS13ZXN0LTMiLHguU2FFYXN0MT0ic2EtZWFzdC0xIix4LlVzRWFzdDE9InVzLWVhc3QtMSIseC5Vc1dlc3QxPSJ1cy13ZXN0LTEiLHguVXNXZXN0Mj0idXMtd2VzdC0yIjtjbGFzcyBue2NvbnN0cnVjdG9yKHQse2hlYWRlcnM6cz17fSxjdXN0b21GZXRjaDpyLHJlZ2lvbjppPUkuQW55fT17fSl7dGhpcy51cmw9dCx0aGlzLmhlYWRlcnM9cyx0aGlzLnJlZ2lvbj1pLHRoaXMuZmV0Y2g9KHQ9PntsZXQgcztyZXR1cm4gcz10fHwoInVuZGVmaW5lZCI9PXR5cGVvZiBmZXRjaD8oLi4udCk9PmUuQSg2MTE3MzcpLnRoZW4oKHtkZWZhdWx0OmV9KT0+ZSguLi50KSk6ZmV0Y2gpLCguLi5lKT0+cyguLi5lKX0pKHIpfXNldEF1dGgoZSl7dGhpcy5oZWFkZXJzLkF1dGhvcml6YXRpb249YEJlYXJlciAke2V9YH1pbnZva2UoZSx0PXt9KXt2YXIgbixhLG8sbCxoO3JldHVybiBhPXRoaXMsbz12b2lkIDAsbD12b2lkIDAsaD1mdW5jdGlvbiooKXt0cnl7bGV0IGEse2hlYWRlcnM6byxtZXRob2Q6bCxib2R5Omh9PXQsYz17fSx7cmVnaW9uOnV9PXQ7dXx8KHU9dGhpcy5yZWdpb24pLHUmJiJhbnkiIT09dSYmKGNbIngtcmVnaW9uIl09dSksaCYmKG8mJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobywiQ29udGVudC1UeXBlIil8fCFvKSYmKCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYiYmaCBpbnN0YW5jZW9mIEJsb2J8fGggaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj8oY1siQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsYT1oKToic3RyaW5nIj09dHlwZW9mIGg/KGNbIkNvbnRlbnQtVHlwZSJdPSJ0ZXh0L3BsYWluIixhPWgpOiJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJmggaW5zdGFuY2VvZiBGb3JtRGF0YT9hPWg6KGNbIkNvbnRlbnQtVHlwZSJdPSJhcHBsaWNhdGlvbi9qc29uIixhPUpTT04uc3RyaW5naWZ5KGgpKSk7bGV0IGQ9eWllbGQgdGhpcy5mZXRjaChgJHt0aGlzLnVybH0vJHtlfWAse21ldGhvZDpsfHwiUE9TVCIsaGVhZGVyczpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjKSx0aGlzLmhlYWRlcnMpLG8pLGJvZHk6YX0pLmNhdGNoKGU9Pnt0aHJvdyBuZXcgcyhlKX0pLGY9ZC5oZWFkZXJzLmdldCgieC1yZWxheS1lcnJvciIpO2lmKGYmJiJ0cnVlIj09PWYpdGhyb3cgbmV3IHIoZCk7aWYoIWQub2spdGhyb3cgbmV3IGkoZCk7bGV0IHA9KG51bGwhPShuPWQuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpKT9uOiJ0ZXh0L3BsYWluIikuc3BsaXQoIjsiKVswXS50cmltKCk7cmV0dXJue2RhdGE6ImFwcGxpY2F0aW9uL2pzb24iPT09cD95aWVsZCBkLmpzb24oKToiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIj09PXA/eWllbGQgZC5ibG9iKCk6InRleHQvZXZlbnQtc3RyZWFtIj09PXA/ZDoibXVsdGlwYXJ0L2Zvcm0tZGF0YSI9PT1wP3lpZWxkIGQuZm9ybURhdGEoKTp5aWVsZCBkLnRleHQoKSxlcnJvcjpudWxsfX1jYXRjaChlKXtyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9fX0sbmV3KGx8fChsPVByb21pc2UpKShmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHMoZSl7dHJ5e2koaC5uZXh0KGUpKX1jYXRjaChlKXt0KGUpfX1mdW5jdGlvbiByKGUpe3RyeXtpKGgudGhyb3coZSkpfWNhdGNoKGUpe3QoZSl9fWZ1bmN0aW9uIGkodCl7dmFyIGk7dC5kb25lP2UodC52YWx1ZSk6KChpPXQudmFsdWUpaW5zdGFuY2VvZiBsP2k6bmV3IGwoZnVuY3Rpb24oZSl7ZShpKX0pKS50aGVuKHMscil9aSgoaD1oLmFwcGx5KGEsb3x8W10pKS5uZXh0KCkpfSl9fWxldHtQb3N0Z3Jlc3RDbGllbnQ6YSxQb3N0Z3Jlc3RRdWVyeUJ1aWxkZXI6byxQb3N0Z3Jlc3RGaWx0ZXJCdWlsZGVyOmwsUG9zdGdyZXN0VHJhbnNmb3JtQnVpbGRlcjpoLFBvc3RncmVzdEJ1aWxkZXI6YyxQb3N0Z3Jlc3RFcnJvcjp1fT1lLmkoODIyMTUpLmRlZmF1bHQsZD17IlgtQ2xpZW50LUluZm8iOiJyZWFsdGltZS1qcy8yLjExLjIifTsoSz1VfHwoVT17fSkpW0suY29ubmVjdGluZz0wXT0iY29ubmVjdGluZyIsS1tLLm9wZW49MV09Im9wZW4iLEtbSy5jbG9zaW5nPTJdPSJjbG9zaW5nIixLW0suY2xvc2VkPTNdPSJjbG9zZWQiLChIPUx8fChMPXt9KSkuY2xvc2VkPSJjbG9zZWQiLEguZXJyb3JlZD0iZXJyb3JlZCIsSC5qb2luZWQ9ImpvaW5lZCIsSC5qb2luaW5nPSJqb2luaW5nIixILmxlYXZpbmc9ImxlYXZpbmciLChHPUR8fChEPXt9KSkuY2xvc2U9InBoeF9jbG9zZSIsRy5lcnJvcj0icGh4X2Vycm9yIixHLmpvaW49InBoeF9qb2luIixHLnJlcGx5PSJwaHhfcmVwbHkiLEcubGVhdmU9InBoeF9sZWF2ZSIsRy5hY2Nlc3NfdG9rZW49ImFjY2Vzc190b2tlbiIsKE58fChOPXt9KSkud2Vic29ja2V0PSJ3ZWJzb2NrZXQiLChXPXF8fChxPXt9KSkuQ29ubmVjdGluZz0iY29ubmVjdGluZyIsVy5PcGVuPSJvcGVuIixXLkNsb3Npbmc9ImNsb3NpbmciLFcuQ2xvc2VkPSJjbG9zZWQiO2NsYXNzIGZ7Y29uc3RydWN0b3IoKXt0aGlzLkhFQURFUl9MRU5HVEg9MX1kZWNvZGUoZSx0KXtyZXR1cm4gZS5jb25zdHJ1Y3Rvcj09PUFycmF5QnVmZmVyP3QodGhpcy5fYmluYXJ5RGVjb2RlKGUpKToic3RyaW5nIj09dHlwZW9mIGU/dChKU09OLnBhcnNlKGUpKTp0KHt9KX1fYmluYXJ5RGVjb2RlKGUpe2xldCB0PW5ldyBEYXRhVmlldyhlKSxzPW5ldyBUZXh0RGVjb2RlcjtyZXR1cm4gdGhpcy5fZGVjb2RlQnJvYWRjYXN0KGUsdCxzKX1fZGVjb2RlQnJvYWRjYXN0KGUsdCxzKXtsZXQgcj10LmdldFVpbnQ4KDEpLGk9dC5nZXRVaW50OCgyKSxuPXRoaXMuSEVBREVSX0xFTkdUSCsyLGE9cy5kZWNvZGUoZS5zbGljZShuLG4rcikpO24rPXI7bGV0IG89cy5kZWNvZGUoZS5zbGljZShuLG4raSkpO3JldHVybiBuKz1pLHtyZWY6bnVsbCx0b3BpYzphLGV2ZW50Om8scGF5bG9hZDpKU09OLnBhcnNlKHMuZGVjb2RlKGUuc2xpY2UobixlLmJ5dGVMZW5ndGgpKSl9fX1jbGFzcyBwe2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5jYWxsYmFjaz1lLHRoaXMudGltZXJDYWxjPXQsdGhpcy50aW1lcj12b2lkIDAsdGhpcy50cmllcz0wLHRoaXMuY2FsbGJhY2s9ZSx0aGlzLnRpbWVyQ2FsYz10fXJlc2V0KCl7dGhpcy50cmllcz0wLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKX1zY2hlZHVsZVRpbWVvdXQoKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy50cmllcz10aGlzLnRyaWVzKzEsdGhpcy5jYWxsYmFjaygpfSx0aGlzLnRpbWVyQ2FsYyh0aGlzLnRyaWVzKzEpKX19KFY9Qnx8KEI9e30pKS5hYnN0aW1lPSJhYnN0aW1lIixWLmJvb2w9ImJvb2wiLFYuZGF0ZT0iZGF0ZSIsVi5kYXRlcmFuZ2U9ImRhdGVyYW5nZSIsVi5mbG9hdDQ9ImZsb2F0NCIsVi5mbG9hdDg9ImZsb2F0OCIsVi5pbnQyPSJpbnQyIixWLmludDQ9ImludDQiLFYuaW50NHJhbmdlPSJpbnQ0cmFuZ2UiLFYuaW50OD0iaW50OCIsVi5pbnQ4cmFuZ2U9ImludDhyYW5nZSIsVi5qc29uPSJqc29uIixWLmpzb25iPSJqc29uYiIsVi5tb25leT0ibW9uZXkiLFYubnVtZXJpYz0ibnVtZXJpYyIsVi5vaWQ9Im9pZCIsVi5yZWx0aW1lPSJyZWx0aW1lIixWLnRleHQ9InRleHQiLFYudGltZT0idGltZSIsVi50aW1lc3RhbXA9InRpbWVzdGFtcCIsVi50aW1lc3RhbXB0ej0idGltZXN0YW1wdHoiLFYudGltZXR6PSJ0aW1ldHoiLFYudHNyYW5nZT0idHNyYW5nZSIsVi50c3R6cmFuZ2U9InRzdHpyYW5nZSI7bGV0IGc9KGUsdCxzPXt9KT0+e3ZhciByO2xldCBpPW51bGwhPShyPXMuc2tpcFR5cGVzKT9yOltdO3JldHVybiBPYmplY3Qua2V5cyh0KS5yZWR1Y2UoKHMscik9PihzW3JdPXkocixlLHQsaSkscykse30pfSx5PShlLHQscyxyKT0+e2xldCBpPXQuZmluZCh0PT50Lm5hbWU9PT1lKSxuPW51bGw9PWk/dm9pZCAwOmkudHlwZSxhPXNbZV07cmV0dXJuIG4mJiFyLmluY2x1ZGVzKG4pP20obixhKTp3KGEpfSxtPShlLHQpPT57aWYoIl8iPT09ZS5jaGFyQXQoMCkpcmV0dXJuIGsodCxlLnNsaWNlKDEsZS5sZW5ndGgpKTtzd2l0Y2goZSl7Y2FzZSBCLmJvb2w6cmV0dXJuIF8odCk7Y2FzZSBCLmZsb2F0NDpjYXNlIEIuZmxvYXQ4OmNhc2UgQi5pbnQyOmNhc2UgQi5pbnQ0OmNhc2UgQi5pbnQ4OmNhc2UgQi5udW1lcmljOmNhc2UgQi5vaWQ6cmV0dXJuIHYodCk7Y2FzZSBCLmpzb246Y2FzZSBCLmpzb25iOnJldHVybiBiKHQpO2Nhc2UgQi50aW1lc3RhbXA6cmV0dXJuIFQodCk7Y2FzZSBCLmFic3RpbWU6Y2FzZSBCLmRhdGU6Y2FzZSBCLmRhdGVyYW5nZTpjYXNlIEIuaW50NHJhbmdlOmNhc2UgQi5pbnQ4cmFuZ2U6Y2FzZSBCLm1vbmV5OmNhc2UgQi5yZWx0aW1lOmNhc2UgQi50ZXh0OmNhc2UgQi50aW1lOmNhc2UgQi50aW1lc3RhbXB0ejpjYXNlIEIudGltZXR6OmNhc2UgQi50c3JhbmdlOmNhc2UgQi50c3R6cmFuZ2U6ZGVmYXVsdDpyZXR1cm4gdyh0KX19LHc9ZT0+ZSxfPWU9Pntzd2l0Y2goZSl7Y2FzZSJ0IjpyZXR1cm4hMDtjYXNlImYiOnJldHVybiExO2RlZmF1bHQ6cmV0dXJuIGV9fSx2PWU9PntpZigic3RyaW5nIj09dHlwZW9mIGUpe2xldCB0PXBhcnNlRmxvYXQoZSk7aWYoIU51bWJlci5pc05hTih0KSlyZXR1cm4gdH1yZXR1cm4gZX0sYj1lPT57aWYoInN0cmluZyI9PXR5cGVvZiBlKXRyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaChlKXtjb25zb2xlLmxvZyhgSlNPTiBwYXJzZSBlcnJvcjogJHtlfWApfXJldHVybiBlfSxrPShlLHQpPT57aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBlO2xldCBzPWUubGVuZ3RoLTEscj1lW3NdO2lmKCJ7Ij09PWVbMF0mJiJ9Ij09PXIpe2xldCByLGk9ZS5zbGljZSgxLHMpO3RyeXtyPUpTT04ucGFyc2UoIlsiK2krIl0iKX1jYXRjaChlKXtyPWk/aS5zcGxpdCgiLCIpOltdfXJldHVybiByLm1hcChlPT5tKHQsZSkpfXJldHVybiBlfSxUPWU9PiJzdHJpbmciPT10eXBlb2YgZT9lLnJlcGxhY2UoIiAiLCJUIik6ZSxTPWU9PntsZXQgdD1lO3JldHVybih0PSh0PXQucmVwbGFjZSgvXndzL2ksImh0dHAiKSkucmVwbGFjZSgvKFwvc29ja2V0XC93ZWJzb2NrZXR8XC9zb2NrZXR8XC93ZWJzb2NrZXQpXC8/JC9pLCIiKSkucmVwbGFjZSgvXC8rJC8sIiIpfTtjbGFzcyBqe2NvbnN0cnVjdG9yKGUsdCxzPXt9LHI9MWU0KXt0aGlzLmNoYW5uZWw9ZSx0aGlzLmV2ZW50PXQsdGhpcy5wYXlsb2FkPXMsdGhpcy50aW1lb3V0PXIsdGhpcy5zZW50PSExLHRoaXMudGltZW91dFRpbWVyPXZvaWQgMCx0aGlzLnJlZj0iIix0aGlzLnJlY2VpdmVkUmVzcD1udWxsLHRoaXMucmVjSG9va3M9W10sdGhpcy5yZWZFdmVudD1udWxsfXJlc2VuZChlKXt0aGlzLnRpbWVvdXQ9ZSx0aGlzLl9jYW5jZWxSZWZFdmVudCgpLHRoaXMucmVmPSIiLHRoaXMucmVmRXZlbnQ9bnVsbCx0aGlzLnJlY2VpdmVkUmVzcD1udWxsLHRoaXMuc2VudD0hMSx0aGlzLnNlbmQoKX1zZW5kKCl7dGhpcy5faGFzUmVjZWl2ZWQoInRpbWVvdXQiKXx8KHRoaXMuc3RhcnRUaW1lb3V0KCksdGhpcy5zZW50PSEwLHRoaXMuY2hhbm5lbC5zb2NrZXQucHVzaCh7dG9waWM6dGhpcy5jaGFubmVsLnRvcGljLGV2ZW50OnRoaXMuZXZlbnQscGF5bG9hZDp0aGlzLnBheWxvYWQscmVmOnRoaXMucmVmLGpvaW5fcmVmOnRoaXMuY2hhbm5lbC5fam9pblJlZigpfSkpfXVwZGF0ZVBheWxvYWQoZSl7dGhpcy5wYXlsb2FkPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLnBheWxvYWQpLGUpfXJlY2VpdmUoZSx0KXt2YXIgcztyZXR1cm4gdGhpcy5faGFzUmVjZWl2ZWQoZSkmJnQobnVsbD09KHM9dGhpcy5yZWNlaXZlZFJlc3ApP3ZvaWQgMDpzLnJlc3BvbnNlKSx0aGlzLnJlY0hvb2tzLnB1c2goe3N0YXR1czplLGNhbGxiYWNrOnR9KSx0aGlzfXN0YXJ0VGltZW91dCgpe2lmKHRoaXMudGltZW91dFRpbWVyKXJldHVybjt0aGlzLnJlZj10aGlzLmNoYW5uZWwuc29ja2V0Ll9tYWtlUmVmKCksdGhpcy5yZWZFdmVudD10aGlzLmNoYW5uZWwuX3JlcGx5RXZlbnROYW1lKHRoaXMucmVmKTtsZXQgZT1lPT57dGhpcy5fY2FuY2VsUmVmRXZlbnQoKSx0aGlzLl9jYW5jZWxUaW1lb3V0KCksdGhpcy5yZWNlaXZlZFJlc3A9ZSx0aGlzLl9tYXRjaFJlY2VpdmUoZSl9O3RoaXMuY2hhbm5lbC5fb24odGhpcy5yZWZFdmVudCx7fSxlKSx0aGlzLnRpbWVvdXRUaW1lcj1zZXRUaW1lb3V0KCgpPT57dGhpcy50cmlnZ2VyKCJ0aW1lb3V0Iix7fSl9LHRoaXMudGltZW91dCl9dHJpZ2dlcihlLHQpe3RoaXMucmVmRXZlbnQmJnRoaXMuY2hhbm5lbC5fdHJpZ2dlcih0aGlzLnJlZkV2ZW50LHtzdGF0dXM6ZSxyZXNwb25zZTp0fSl9ZGVzdHJveSgpe3RoaXMuX2NhbmNlbFJlZkV2ZW50KCksdGhpcy5fY2FuY2VsVGltZW91dCgpfV9jYW5jZWxSZWZFdmVudCgpe3RoaXMucmVmRXZlbnQmJnRoaXMuY2hhbm5lbC5fb2ZmKHRoaXMucmVmRXZlbnQse30pfV9jYW5jZWxUaW1lb3V0KCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFRpbWVyKSx0aGlzLnRpbWVvdXRUaW1lcj12b2lkIDB9X21hdGNoUmVjZWl2ZSh7c3RhdHVzOmUscmVzcG9uc2U6dH0pe3RoaXMucmVjSG9va3MuZmlsdGVyKHQ9PnQuc3RhdHVzPT09ZSkuZm9yRWFjaChlPT5lLmNhbGxiYWNrKHQpKX1faGFzUmVjZWl2ZWQoZSl7cmV0dXJuIHRoaXMucmVjZWl2ZWRSZXNwJiZ0aGlzLnJlY2VpdmVkUmVzcC5zdGF0dXM9PT1lfX0oWT1NfHwoTT17fSkpLlNZTkM9InN5bmMiLFkuSk9JTj0iam9pbiIsWS5MRUFWRT0ibGVhdmUiO2NsYXNzIEV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLmNoYW5uZWw9ZSx0aGlzLnN0YXRlPXt9LHRoaXMucGVuZGluZ0RpZmZzPVtdLHRoaXMuam9pblJlZj1udWxsLHRoaXMuY2FsbGVyPXtvbkpvaW46KCk9Pnt9LG9uTGVhdmU6KCk9Pnt9LG9uU3luYzooKT0+e319O2NvbnN0IHM9KG51bGw9PXQ/dm9pZCAwOnQuZXZlbnRzKXx8e3N0YXRlOiJwcmVzZW5jZV9zdGF0ZSIsZGlmZjoicHJlc2VuY2VfZGlmZiJ9O3RoaXMuY2hhbm5lbC5fb24ocy5zdGF0ZSx7fSxlPT57bGV0e29uSm9pbjp0LG9uTGVhdmU6cyxvblN5bmM6cn09dGhpcy5jYWxsZXI7dGhpcy5qb2luUmVmPXRoaXMuY2hhbm5lbC5fam9pblJlZigpLHRoaXMuc3RhdGU9RS5zeW5jU3RhdGUodGhpcy5zdGF0ZSxlLHQscyksdGhpcy5wZW5kaW5nRGlmZnMuZm9yRWFjaChlPT57dGhpcy5zdGF0ZT1FLnN5bmNEaWZmKHRoaXMuc3RhdGUsZSx0LHMpfSksdGhpcy5wZW5kaW5nRGlmZnM9W10scigpfSksdGhpcy5jaGFubmVsLl9vbihzLmRpZmYse30sZT0+e2xldHtvbkpvaW46dCxvbkxlYXZlOnMsb25TeW5jOnJ9PXRoaXMuY2FsbGVyO3RoaXMuaW5QZW5kaW5nU3luY1N0YXRlKCk/dGhpcy5wZW5kaW5nRGlmZnMucHVzaChlKToodGhpcy5zdGF0ZT1FLnN5bmNEaWZmKHRoaXMuc3RhdGUsZSx0LHMpLHIoKSl9KSx0aGlzLm9uSm9pbigoZSx0LHMpPT57dGhpcy5jaGFubmVsLl90cmlnZ2VyKCJwcmVzZW5jZSIse2V2ZW50OiJqb2luIixrZXk6ZSxjdXJyZW50UHJlc2VuY2VzOnQsbmV3UHJlc2VuY2VzOnN9KX0pLHRoaXMub25MZWF2ZSgoZSx0LHMpPT57dGhpcy5jaGFubmVsLl90cmlnZ2VyKCJwcmVzZW5jZSIse2V2ZW50OiJsZWF2ZSIsa2V5OmUsY3VycmVudFByZXNlbmNlczp0LGxlZnRQcmVzZW5jZXM6c30pfSksdGhpcy5vblN5bmMoKCk9Pnt0aGlzLmNoYW5uZWwuX3RyaWdnZXIoInByZXNlbmNlIix7ZXZlbnQ6InN5bmMifSl9KX1zdGF0aWMgc3luY1N0YXRlKGUsdCxzLHIpe2xldCBpPXRoaXMuY2xvbmVEZWVwKGUpLG49dGhpcy50cmFuc2Zvcm1TdGF0ZSh0KSxhPXt9LG89e307cmV0dXJuIHRoaXMubWFwKGksKGUsdCk9PntuW2VdfHwob1tlXT10KX0pLHRoaXMubWFwKG4sKGUsdCk9PntsZXQgcz1pW2VdO2lmKHMpe2xldCByPXQubWFwKGU9PmUucHJlc2VuY2VfcmVmKSxpPXMubWFwKGU9PmUucHJlc2VuY2VfcmVmKSxuPXQuZmlsdGVyKGU9PjA+aS5pbmRleE9mKGUucHJlc2VuY2VfcmVmKSksbD1zLmZpbHRlcihlPT4wPnIuaW5kZXhPZihlLnByZXNlbmNlX3JlZikpO24ubGVuZ3RoPjAmJihhW2VdPW4pLGwubGVuZ3RoPjAmJihvW2VdPWwpfWVsc2UgYVtlXT10fSksdGhpcy5zeW5jRGlmZihpLHtqb2luczphLGxlYXZlczpvfSxzLHIpfXN0YXRpYyBzeW5jRGlmZihlLHQscyxyKXtsZXR7am9pbnM6aSxsZWF2ZXM6bn09e2pvaW5zOnRoaXMudHJhbnNmb3JtU3RhdGUodC5qb2lucyksbGVhdmVzOnRoaXMudHJhbnNmb3JtU3RhdGUodC5sZWF2ZXMpfTtyZXR1cm4gc3x8KHM9KCk9Pnt9KSxyfHwocj0oKT0+e30pLHRoaXMubWFwKGksKHQscik9Pnt2YXIgaTtsZXQgbj1udWxsIT0oaT1lW3RdKT9pOltdO2lmKGVbdF09dGhpcy5jbG9uZURlZXAociksbi5sZW5ndGg+MCl7bGV0IHM9ZVt0XS5tYXAoZT0+ZS5wcmVzZW5jZV9yZWYpLHI9bi5maWx0ZXIoZT0+MD5zLmluZGV4T2YoZS5wcmVzZW5jZV9yZWYpKTtlW3RdLnVuc2hpZnQoLi4ucil9cyh0LG4scil9KSx0aGlzLm1hcChuLCh0LHMpPT57bGV0IGk9ZVt0XTtpZighaSlyZXR1cm47bGV0IG49cy5tYXAoZT0+ZS5wcmVzZW5jZV9yZWYpO2k9aS5maWx0ZXIoZT0+MD5uLmluZGV4T2YoZS5wcmVzZW5jZV9yZWYpKSxlW3RdPWkscih0LGkscyksMD09PWkubGVuZ3RoJiZkZWxldGUgZVt0XX0pLGV9c3RhdGljIG1hcChlLHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhlKS5tYXAocz0+dChzLGVbc10pKX1zdGF0aWMgdHJhbnNmb3JtU3RhdGUoZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGU9dGhpcy5jbG9uZURlZXAoZSkpLnJlZHVjZSgodCxzKT0+e2xldCByPWVbc107cmV0dXJuIm1ldGFzImluIHI/dFtzXT1yLm1ldGFzLm1hcChlPT4oZS5wcmVzZW5jZV9yZWY9ZS5waHhfcmVmLGRlbGV0ZSBlLnBoeF9yZWYsZGVsZXRlIGUucGh4X3JlZl9wcmV2LGUpKTp0W3NdPXIsdH0se30pfXN0YXRpYyBjbG9uZURlZXAoZSl7cmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZSkpfW9uSm9pbihlKXt0aGlzLmNhbGxlci5vbkpvaW49ZX1vbkxlYXZlKGUpe3RoaXMuY2FsbGVyLm9uTGVhdmU9ZX1vblN5bmMoZSl7dGhpcy5jYWxsZXIub25TeW5jPWV9aW5QZW5kaW5nU3luY1N0YXRlKCl7cmV0dXJuIXRoaXMuam9pblJlZnx8dGhpcy5qb2luUmVmIT09dGhpcy5jaGFubmVsLl9qb2luUmVmKCl9fShRPUZ8fChGPXt9KSkuQUxMPSIqIixRLklOU0VSVD0iSU5TRVJUIixRLlVQREFURT0iVVBEQVRFIixRLkRFTEVURT0iREVMRVRFIiwoWD1KfHwoSj17fSkpLkJST0FEQ0FTVD0iYnJvYWRjYXN0IixYLlBSRVNFTkNFPSJwcmVzZW5jZSIsWC5QT1NUR1JFU19DSEFOR0VTPSJwb3N0Z3Jlc19jaGFuZ2VzIixYLlNZU1RFTT0ic3lzdGVtIiwoWj16fHwoej17fSkpLlNVQlNDUklCRUQ9IlNVQlNDUklCRUQiLFouVElNRURfT1VUPSJUSU1FRF9PVVQiLFouQ0xPU0VEPSJDTE9TRUQiLFouQ0hBTk5FTF9FUlJPUj0iQ0hBTk5FTF9FUlJPUiI7Y2xhc3MgT3tjb25zdHJ1Y3RvcihlLHQ9e2NvbmZpZzp7fX0scyl7dGhpcy50b3BpYz1lLHRoaXMucGFyYW1zPXQsdGhpcy5zb2NrZXQ9cyx0aGlzLmJpbmRpbmdzPXt9LHRoaXMuc3RhdGU9TC5jbG9zZWQsdGhpcy5qb2luZWRPbmNlPSExLHRoaXMucHVzaEJ1ZmZlcj1bXSx0aGlzLnN1YlRvcGljPWUucmVwbGFjZSgvXnJlYWx0aW1lOi9pLCIiKSx0aGlzLnBhcmFtcy5jb25maWc9T2JqZWN0LmFzc2lnbih7YnJvYWRjYXN0OnthY2s6ITEsc2VsZjohMX0scHJlc2VuY2U6e2tleToiIn0scHJpdmF0ZTohMX0sdC5jb25maWcpLHRoaXMudGltZW91dD10aGlzLnNvY2tldC50aW1lb3V0LHRoaXMuam9pblB1c2g9bmV3IGoodGhpcyxELmpvaW4sdGhpcy5wYXJhbXMsdGhpcy50aW1lb3V0KSx0aGlzLnJlam9pblRpbWVyPW5ldyBwKCgpPT50aGlzLl9yZWpvaW5VbnRpbENvbm5lY3RlZCgpLHRoaXMuc29ja2V0LnJlY29ubmVjdEFmdGVyTXMpLHRoaXMuam9pblB1c2gucmVjZWl2ZSgib2siLCgpPT57dGhpcy5zdGF0ZT1MLmpvaW5lZCx0aGlzLnJlam9pblRpbWVyLnJlc2V0KCksdGhpcy5wdXNoQnVmZmVyLmZvckVhY2goZT0+ZS5zZW5kKCkpLHRoaXMucHVzaEJ1ZmZlcj1bXX0pLHRoaXMuX29uQ2xvc2UoKCk9Pnt0aGlzLnJlam9pblRpbWVyLnJlc2V0KCksdGhpcy5zb2NrZXQubG9nKCJjaGFubmVsIixgY2xvc2UgJHt0aGlzLnRvcGljfSAke3RoaXMuX2pvaW5SZWYoKX1gKSx0aGlzLnN0YXRlPUwuY2xvc2VkLHRoaXMuc29ja2V0Ll9yZW1vdmUodGhpcyl9KSx0aGlzLl9vbkVycm9yKGU9Pnt0aGlzLl9pc0xlYXZpbmcoKXx8dGhpcy5faXNDbG9zZWQoKXx8KHRoaXMuc29ja2V0LmxvZygiY2hhbm5lbCIsYGVycm9yICR7dGhpcy50b3BpY31gLGUpLHRoaXMuc3RhdGU9TC5lcnJvcmVkLHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCkpfSksdGhpcy5qb2luUHVzaC5yZWNlaXZlKCJ0aW1lb3V0IiwoKT0+e3RoaXMuX2lzSm9pbmluZygpJiYodGhpcy5zb2NrZXQubG9nKCJjaGFubmVsIixgdGltZW91dCAke3RoaXMudG9waWN9YCx0aGlzLmpvaW5QdXNoLnRpbWVvdXQpLHRoaXMuc3RhdGU9TC5lcnJvcmVkLHRoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCkpfSksdGhpcy5fb24oRC5yZXBseSx7fSwoZSx0KT0+e3RoaXMuX3RyaWdnZXIodGhpcy5fcmVwbHlFdmVudE5hbWUodCksZSl9KSx0aGlzLnByZXNlbmNlPW5ldyBFKHRoaXMpLHRoaXMuYnJvYWRjYXN0RW5kcG9pbnRVUkw9Uyh0aGlzLnNvY2tldC5lbmRQb2ludCkrIi9hcGkvYnJvYWRjYXN0Iix0aGlzLnByaXZhdGU9dGhpcy5wYXJhbXMuY29uZmlnLnByaXZhdGV8fCExfXN1YnNjcmliZShlLHQ9dGhpcy50aW1lb3V0KXt2YXIgcyxyO2lmKHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCl8fHRoaXMuc29ja2V0LmNvbm5lY3QoKSx0aGlzLmpvaW5lZE9uY2UpdGhyb3cidHJpZWQgdG8gc3Vic2NyaWJlIG11bHRpcGxlIHRpbWVzLiAnc3Vic2NyaWJlJyBjYW4gb25seSBiZSBjYWxsZWQgYSBzaW5nbGUgdGltZSBwZXIgY2hhbm5lbCBpbnN0YW5jZSI7e2xldHtjb25maWc6e2Jyb2FkY2FzdDppLHByZXNlbmNlOm4scHJpdmF0ZTphfX09dGhpcy5wYXJhbXM7dGhpcy5fb25FcnJvcih0PT5udWxsPT1lP3ZvaWQgMDplKHouQ0hBTk5FTF9FUlJPUix0KSksdGhpcy5fb25DbG9zZSgoKT0+bnVsbD09ZT92b2lkIDA6ZSh6LkNMT1NFRCkpO2xldCBvPXt9LGw9e2Jyb2FkY2FzdDppLHByZXNlbmNlOm4scG9zdGdyZXNfY2hhbmdlczpudWxsIT0ocj1udWxsPT0ocz10aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMpP3ZvaWQgMDpzLm1hcChlPT5lLmZpbHRlcikpP3I6W10scHJpdmF0ZTphfTt0aGlzLnNvY2tldC5hY2Nlc3NUb2tlblZhbHVlJiYoby5hY2Nlc3NfdG9rZW49dGhpcy5zb2NrZXQuYWNjZXNzVG9rZW5WYWx1ZSksdGhpcy51cGRhdGVKb2luUGF5bG9hZChPYmplY3QuYXNzaWduKHtjb25maWc6bH0sbykpLHRoaXMuam9pbmVkT25jZT0hMCx0aGlzLl9yZWpvaW4odCksdGhpcy5qb2luUHVzaC5yZWNlaXZlKCJvayIsYXN5bmMoe3Bvc3RncmVzX2NoYW5nZXM6dH0pPT57dmFyIHM7aWYodGhpcy5zb2NrZXQuc2V0QXV0aCgpLHZvaWQgMD09PXQpe251bGw9PWV8fGUoei5TVUJTQ1JJQkVEKTtyZXR1cm59e2xldCByPXRoaXMuYmluZGluZ3MucG9zdGdyZXNfY2hhbmdlcyxpPW51bGwhPShzPW51bGw9PXI/dm9pZCAwOnIubGVuZ3RoKT9zOjAsbj1bXTtmb3IobGV0IHM9MDtzPGk7cysrKXtsZXQgaT1yW3NdLHtmaWx0ZXI6e2V2ZW50OmEsc2NoZW1hOm8sdGFibGU6bCxmaWx0ZXI6aH19PWksYz10JiZ0W3NdO2lmKGMmJmMuZXZlbnQ9PT1hJiZjLnNjaGVtYT09PW8mJmMudGFibGU9PT1sJiZjLmZpbHRlcj09PWgpbi5wdXNoKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxpKSx7aWQ6Yy5pZH0pKTtlbHNle3RoaXMudW5zdWJzY3JpYmUoKSxudWxsPT1lfHxlKHouQ0hBTk5FTF9FUlJPUixFcnJvcigibWlzbWF0Y2ggYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudCBiaW5kaW5ncyBmb3IgcG9zdGdyZXMgY2hhbmdlcyIpKTtyZXR1cm59fXRoaXMuYmluZGluZ3MucG9zdGdyZXNfY2hhbmdlcz1uLGUmJmUoei5TVUJTQ1JJQkVEKTtyZXR1cm59fSkucmVjZWl2ZSgiZXJyb3IiLHQ9PntudWxsPT1lfHxlKHouQ0hBTk5FTF9FUlJPUixFcnJvcihKU09OLnN0cmluZ2lmeShPYmplY3QudmFsdWVzKHQpLmpvaW4oIiwgIil8fCJlcnJvciIpKSl9KS5yZWNlaXZlKCJ0aW1lb3V0IiwoKT0+e251bGw9PWV8fGUoei5USU1FRF9PVVQpfSl9cmV0dXJuIHRoaXN9cHJlc2VuY2VTdGF0ZSgpe3JldHVybiB0aGlzLnByZXNlbmNlLnN0YXRlfWFzeW5jIHRyYWNrKGUsdD17fSl7cmV0dXJuIGF3YWl0IHRoaXMuc2VuZCh7dHlwZToicHJlc2VuY2UiLGV2ZW50OiJ0cmFjayIscGF5bG9hZDplfSx0LnRpbWVvdXR8fHRoaXMudGltZW91dCl9YXN5bmMgdW50cmFjayhlPXt9KXtyZXR1cm4gYXdhaXQgdGhpcy5zZW5kKHt0eXBlOiJwcmVzZW5jZSIsZXZlbnQ6InVudHJhY2sifSxlKX1vbihlLHQscyl7cmV0dXJuIHRoaXMuX29uKGUsdCxzKX1hc3luYyBzZW5kKGUsdD17fSl7dmFyIHMscjtpZih0aGlzLl9jYW5QdXNoKCl8fCJicm9hZGNhc3QiIT09ZS50eXBlKXJldHVybiBuZXcgUHJvbWlzZShzPT57dmFyIHIsaSxuO2xldCBhPXRoaXMuX3B1c2goZS50eXBlLGUsdC50aW1lb3V0fHx0aGlzLnRpbWVvdXQpOyJicm9hZGNhc3QiIT09ZS50eXBlfHwobnVsbD09KG49bnVsbD09KGk9bnVsbD09KHI9dGhpcy5wYXJhbXMpP3ZvaWQgMDpyLmNvbmZpZyk/dm9pZCAwOmkuYnJvYWRjYXN0KT92b2lkIDA6bi5hY2spfHxzKCJvayIpLGEucmVjZWl2ZSgib2siLCgpPT5zKCJvayIpKSxhLnJlY2VpdmUoImVycm9yIiwoKT0+cygiZXJyb3IiKSksYS5yZWNlaXZlKCJ0aW1lb3V0IiwoKT0+cygidGltZWQgb3V0IikpfSk7e2xldHtldmVudDppLHBheWxvYWQ6bn09ZSxhPXttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0F1dGhvcml6YXRpb246dGhpcy5zb2NrZXQuYWNjZXNzVG9rZW5WYWx1ZT9gQmVhcmVyICR7dGhpcy5zb2NrZXQuYWNjZXNzVG9rZW5WYWx1ZX1gOiIiLGFwaWtleTp0aGlzLnNvY2tldC5hcGlLZXk/dGhpcy5zb2NrZXQuYXBpS2V5OiIiLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7bWVzc2FnZXM6W3t0b3BpYzp0aGlzLnN1YlRvcGljLGV2ZW50OmkscGF5bG9hZDpuLHByaXZhdGU6dGhpcy5wcml2YXRlfV19KX07dHJ5e2xldCBlPWF3YWl0IHRoaXMuX2ZldGNoV2l0aFRpbWVvdXQodGhpcy5icm9hZGNhc3RFbmRwb2ludFVSTCxhLG51bGwhPShzPXQudGltZW91dCk/czp0aGlzLnRpbWVvdXQpO3JldHVybiBhd2FpdCAobnVsbD09KHI9ZS5ib2R5KT92b2lkIDA6ci5jYW5jZWwoKSksZS5vaz8ib2siOiJlcnJvciJ9Y2F0Y2goZSl7aWYoIkFib3J0RXJyb3IiPT09ZS5uYW1lKXJldHVybiJ0aW1lZCBvdXQiO3JldHVybiJlcnJvciJ9fX11cGRhdGVKb2luUGF5bG9hZChlKXt0aGlzLmpvaW5QdXNoLnVwZGF0ZVBheWxvYWQoZSl9dW5zdWJzY3JpYmUoZT10aGlzLnRpbWVvdXQpe3RoaXMuc3RhdGU9TC5sZWF2aW5nO2xldCB0PSgpPT57dGhpcy5zb2NrZXQubG9nKCJjaGFubmVsIixgbGVhdmUgJHt0aGlzLnRvcGljfWApLHRoaXMuX3RyaWdnZXIoRC5jbG9zZSwibGVhdmUiLHRoaXMuX2pvaW5SZWYoKSl9O3JldHVybiB0aGlzLnJlam9pblRpbWVyLnJlc2V0KCksdGhpcy5qb2luUHVzaC5kZXN0cm95KCksbmV3IFByb21pc2Uocz0+e2xldCByPW5ldyBqKHRoaXMsRC5sZWF2ZSx7fSxlKTtyLnJlY2VpdmUoIm9rIiwoKT0+e3QoKSxzKCJvayIpfSkucmVjZWl2ZSgidGltZW91dCIsKCk9Pnt0KCkscygidGltZWQgb3V0Iil9KS5yZWNlaXZlKCJlcnJvciIsKCk9PntzKCJlcnJvciIpfSksci5zZW5kKCksdGhpcy5fY2FuUHVzaCgpfHxyLnRyaWdnZXIoIm9rIix7fSl9KX1hc3luYyBfZmV0Y2hXaXRoVGltZW91dChlLHQscyl7bGV0IHI9bmV3IEFib3J0Q29udHJvbGxlcixpPXNldFRpbWVvdXQoKCk9PnIuYWJvcnQoKSxzKSxuPWF3YWl0IHRoaXMuc29ja2V0LmZldGNoKGUsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHQpLHtzaWduYWw6ci5zaWduYWx9KSk7cmV0dXJuIGNsZWFyVGltZW91dChpKSxufV9wdXNoKGUsdCxzPXRoaXMudGltZW91dCl7aWYoIXRoaXMuam9pbmVkT25jZSl0aHJvd2B0cmllZCB0byBwdXNoICcke2V9JyB0byAnJHt0aGlzLnRvcGljfScgYmVmb3JlIGpvaW5pbmcuIFVzZSBjaGFubmVsLnN1YnNjcmliZSgpIGJlZm9yZSBwdXNoaW5nIGV2ZW50c2A7bGV0IHI9bmV3IGoodGhpcyxlLHQscyk7cmV0dXJuIHRoaXMuX2NhblB1c2goKT9yLnNlbmQoKTooci5zdGFydFRpbWVvdXQoKSx0aGlzLnB1c2hCdWZmZXIucHVzaChyKSkscn1fb25NZXNzYWdlKGUsdCxzKXtyZXR1cm4gdH1faXNNZW1iZXIoZSl7cmV0dXJuIHRoaXMudG9waWM9PT1lfV9qb2luUmVmKCl7cmV0dXJuIHRoaXMuam9pblB1c2gucmVmfV90cmlnZ2VyKGUsdCxzKXt2YXIgcixpO2xldCBuPWUudG9Mb2NhbGVMb3dlckNhc2UoKSx7Y2xvc2U6YSxlcnJvcjpvLGxlYXZlOmwsam9pbjpofT1EO2lmKHMmJlthLG8sbCxoXS5pbmRleE9mKG4pPj0wJiZzIT09dGhpcy5fam9pblJlZigpKXJldHVybjtsZXQgYz10aGlzLl9vbk1lc3NhZ2Uobix0LHMpO2lmKHQmJiFjKXRocm93ImNoYW5uZWwgb25NZXNzYWdlIGNhbGxiYWNrcyBtdXN0IHJldHVybiB0aGUgcGF5bG9hZCwgbW9kaWZpZWQgb3IgdW5tb2RpZmllZCI7WyJpbnNlcnQiLCJ1cGRhdGUiLCJkZWxldGUiXS5pbmNsdWRlcyhuKT9udWxsPT0ocj10aGlzLmJpbmRpbmdzLnBvc3RncmVzX2NoYW5nZXMpfHxyLmZpbHRlcihlPT57dmFyIHQscyxyO3JldHVybihudWxsPT0odD1lLmZpbHRlcik/dm9pZCAwOnQuZXZlbnQpPT09IioifHwobnVsbD09KHI9bnVsbD09KHM9ZS5maWx0ZXIpP3ZvaWQgMDpzLmV2ZW50KT92b2lkIDA6ci50b0xvY2FsZUxvd2VyQ2FzZSgpKT09PW59KS5tYXAoZT0+ZS5jYWxsYmFjayhjLHMpKTpudWxsPT0oaT10aGlzLmJpbmRpbmdzW25dKXx8aS5maWx0ZXIoZT0+e3ZhciBzLHIsaSxhLG8sbDtpZighWyJicm9hZGNhc3QiLCJwcmVzZW5jZSIsInBvc3RncmVzX2NoYW5nZXMiXS5pbmNsdWRlcyhuKSlyZXR1cm4gZS50eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCk9PT1uO2lmKCJpZCJpbiBlKXtsZXQgbj1lLmlkLGE9bnVsbD09KHM9ZS5maWx0ZXIpP3ZvaWQgMDpzLmV2ZW50O3JldHVybiBuJiYobnVsbD09KHI9dC5pZHMpP3ZvaWQgMDpyLmluY2x1ZGVzKG4pKSYmKCIqIj09PWF8fChudWxsPT1hP3ZvaWQgMDphLnRvTG9jYWxlTG93ZXJDYXNlKCkpPT09KG51bGw9PShpPXQuZGF0YSk/dm9pZCAwOmkudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpKSl9e2xldCBzPW51bGw9PShvPW51bGw9PShhPW51bGw9PWU/dm9pZCAwOmUuZmlsdGVyKT92b2lkIDA6YS5ldmVudCk/dm9pZCAwOm8udG9Mb2NhbGVMb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1zfHxzPT09KG51bGw9PShsPW51bGw9PXQ/dm9pZCAwOnQuZXZlbnQpP3ZvaWQgMDpsLnRvTG9jYWxlTG93ZXJDYXNlKCkpfX0pLm1hcChlPT57aWYoIm9iamVjdCI9PXR5cGVvZiBjJiYiaWRzImluIGMpe2xldCBlPWMuZGF0YSx7c2NoZW1hOnQsdGFibGU6cyxjb21taXRfdGltZXN0YW1wOnIsdHlwZTppLGVycm9yczpufT1lO2M9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHtzY2hlbWE6dCx0YWJsZTpzLGNvbW1pdF90aW1lc3RhbXA6cixldmVudFR5cGU6aSxuZXc6e30sb2xkOnt9LGVycm9yczpufSksdGhpcy5fZ2V0UGF5bG9hZFJlY29yZHMoZSkpfWUuY2FsbGJhY2soYyxzKX0pfV9pc0Nsb3NlZCgpe3JldHVybiB0aGlzLnN0YXRlPT09TC5jbG9zZWR9X2lzSm9pbmVkKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT1MLmpvaW5lZH1faXNKb2luaW5nKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT1MLmpvaW5pbmd9X2lzTGVhdmluZygpe3JldHVybiB0aGlzLnN0YXRlPT09TC5sZWF2aW5nfV9yZXBseUV2ZW50TmFtZShlKXtyZXR1cm5gY2hhbl9yZXBseV8ke2V9YH1fb24oZSx0LHMpe2xldCByPWUudG9Mb2NhbGVMb3dlckNhc2UoKSxpPXt0eXBlOnIsZmlsdGVyOnQsY2FsbGJhY2s6c307cmV0dXJuIHRoaXMuYmluZGluZ3Nbcl0/dGhpcy5iaW5kaW5nc1tyXS5wdXNoKGkpOnRoaXMuYmluZGluZ3Nbcl09W2ldLHRoaXN9X29mZihlLHQpe2xldCBzPWUudG9Mb2NhbGVMb3dlckNhc2UoKTtyZXR1cm4gdGhpcy5iaW5kaW5nc1tzXT10aGlzLmJpbmRpbmdzW3NdLmZpbHRlcihlPT57dmFyIHI7cmV0dXJuISgobnVsbD09KHI9ZS50eXBlKT92b2lkIDA6ci50b0xvY2FsZUxvd2VyQ2FzZSgpKT09PXMmJk8uaXNFcXVhbChlLmZpbHRlcix0KSl9KSx0aGlzfXN0YXRpYyBpc0VxdWFsKGUsdCl7aWYoT2JqZWN0LmtleXMoZSkubGVuZ3RoIT09T2JqZWN0LmtleXModCkubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcyBpbiBlKWlmKGVbc10hPT10W3NdKXJldHVybiExO3JldHVybiEwfV9yZWpvaW5VbnRpbENvbm5lY3RlZCgpe3RoaXMucmVqb2luVGltZXIuc2NoZWR1bGVUaW1lb3V0KCksdGhpcy5zb2NrZXQuaXNDb25uZWN0ZWQoKSYmdGhpcy5fcmVqb2luKCl9X29uQ2xvc2UoZSl7dGhpcy5fb24oRC5jbG9zZSx7fSxlKX1fb25FcnJvcihlKXt0aGlzLl9vbihELmVycm9yLHt9LHQ9PmUodCkpfV9jYW5QdXNoKCl7cmV0dXJuIHRoaXMuc29ja2V0LmlzQ29ubmVjdGVkKCkmJnRoaXMuX2lzSm9pbmVkKCl9X3Jlam9pbihlPXRoaXMudGltZW91dCl7dGhpcy5faXNMZWF2aW5nKCl8fCh0aGlzLnNvY2tldC5fbGVhdmVPcGVuVG9waWModGhpcy50b3BpYyksdGhpcy5zdGF0ZT1MLmpvaW5pbmcsdGhpcy5qb2luUHVzaC5yZXNlbmQoZSkpfV9nZXRQYXlsb2FkUmVjb3JkcyhlKXtsZXQgdD17bmV3Ont9LG9sZDp7fX07cmV0dXJuKCJJTlNFUlQiPT09ZS50eXBlfHwiVVBEQVRFIj09PWUudHlwZSkmJih0Lm5ldz1nKGUuY29sdW1ucyxlLnJlY29yZCkpLCgiVVBEQVRFIj09PWUudHlwZXx8IkRFTEVURSI9PT1lLnR5cGUpJiYodC5vbGQ9ZyhlLmNvbHVtbnMsZS5vbGRfcmVjb3JkKSksdH19bGV0IFA9KCk9Pnt9LCQ9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQsQT1gCiAgYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChlKSA9PiB7CiAgICBpZiAoZS5kYXRhLmV2ZW50ID09PSAic3RhcnQiKSB7CiAgICAgIHNldEludGVydmFsKCgpID0+IHBvc3RNZXNzYWdlKHsgZXZlbnQ6ICJrZWVwQWxpdmUiIH0pLCBlLmRhdGEuaW50ZXJ2YWwpOwogICAgfQogIH0pO2A7Y2xhc3MgQ3tjb25zdHJ1Y3Rvcih0LHMpe3ZhciByO3RoaXMuYWNjZXNzVG9rZW5WYWx1ZT1udWxsLHRoaXMuYXBpS2V5PW51bGwsdGhpcy5jaGFubmVscz1bXSx0aGlzLmVuZFBvaW50PSIiLHRoaXMuaHR0cEVuZHBvaW50PSIiLHRoaXMuaGVhZGVycz1kLHRoaXMucGFyYW1zPXt9LHRoaXMudGltZW91dD0xZTQsdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zPTNlNCx0aGlzLmhlYXJ0YmVhdFRpbWVyPXZvaWQgMCx0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWY9bnVsbCx0aGlzLnJlZj0wLHRoaXMubG9nZ2VyPVAsdGhpcy5jb25uPW51bGwsdGhpcy5zZW5kQnVmZmVyPVtdLHRoaXMuc2VyaWFsaXplcj1uZXcgZix0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzPXtvcGVuOltdLGNsb3NlOltdLGVycm9yOltdLG1lc3NhZ2U6W119LHRoaXMuYWNjZXNzVG9rZW49bnVsbCx0aGlzLl9yZXNvbHZlRmV0Y2g9dD0+e2xldCBzO3JldHVybiBzPXR8fCgidW5kZWZpbmVkIj09dHlwZW9mIGZldGNoPyguLi50KT0+ZS5BKDYxMTczNykudGhlbigoe2RlZmF1bHQ6ZX0pPT5lKC4uLnQpKTpmZXRjaCksKC4uLmUpPT5zKC4uLmUpfSx0aGlzLmVuZFBvaW50PWAke3R9LyR7Ti53ZWJzb2NrZXR9YCx0aGlzLmh0dHBFbmRwb2ludD1TKHQpLChudWxsPT1zP3ZvaWQgMDpzLnRyYW5zcG9ydCk/dGhpcy50cmFuc3BvcnQ9cy50cmFuc3BvcnQ6dGhpcy50cmFuc3BvcnQ9bnVsbCwobnVsbD09cz92b2lkIDA6cy5wYXJhbXMpJiYodGhpcy5wYXJhbXM9cy5wYXJhbXMpLChudWxsPT1zP3ZvaWQgMDpzLmhlYWRlcnMpJiYodGhpcy5oZWFkZXJzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmhlYWRlcnMpLHMuaGVhZGVycykpLChudWxsPT1zP3ZvaWQgMDpzLnRpbWVvdXQpJiYodGhpcy50aW1lb3V0PXMudGltZW91dCksKG51bGw9PXM/dm9pZCAwOnMubG9nZ2VyKSYmKHRoaXMubG9nZ2VyPXMubG9nZ2VyKSwobnVsbD09cz92b2lkIDA6cy5oZWFydGJlYXRJbnRlcnZhbE1zKSYmKHRoaXMuaGVhcnRiZWF0SW50ZXJ2YWxNcz1zLmhlYXJ0YmVhdEludGVydmFsTXMpO2NvbnN0IGk9bnVsbD09KHI9bnVsbD09cz92b2lkIDA6cy5wYXJhbXMpP3ZvaWQgMDpyLmFwaWtleTtpZihpJiYodGhpcy5hY2Nlc3NUb2tlblZhbHVlPWksdGhpcy5hcGlLZXk9aSksdGhpcy5yZWNvbm5lY3RBZnRlck1zPShudWxsPT1zP3ZvaWQgMDpzLnJlY29ubmVjdEFmdGVyTXMpP3MucmVjb25uZWN0QWZ0ZXJNczplPT5bMWUzLDJlMyw1ZTMsMWU0XVtlLTFdfHwxZTQsdGhpcy5lbmNvZGU9KG51bGw9PXM/dm9pZCAwOnMuZW5jb2RlKT9zLmVuY29kZTooZSx0KT0+dChKU09OLnN0cmluZ2lmeShlKSksdGhpcy5kZWNvZGU9KG51bGw9PXM/dm9pZCAwOnMuZGVjb2RlKT9zLmRlY29kZTp0aGlzLnNlcmlhbGl6ZXIuZGVjb2RlLmJpbmQodGhpcy5zZXJpYWxpemVyKSx0aGlzLnJlY29ubmVjdFRpbWVyPW5ldyBwKGFzeW5jKCk9Pnt0aGlzLmRpc2Nvbm5lY3QoKSx0aGlzLmNvbm5lY3QoKX0sdGhpcy5yZWNvbm5lY3RBZnRlck1zKSx0aGlzLmZldGNoPXRoaXMuX3Jlc29sdmVGZXRjaChudWxsPT1zP3ZvaWQgMDpzLmZldGNoKSxudWxsPT1zP3ZvaWQgMDpzLndvcmtlcil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiF3aW5kb3cuV29ya2VyKXRocm93IEVycm9yKCJXZWIgV29ya2VyIGlzIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLndvcmtlcj0obnVsbD09cz92b2lkIDA6cy53b3JrZXIpfHwhMSx0aGlzLndvcmtlclVybD1udWxsPT1zP3ZvaWQgMDpzLndvcmtlclVybH10aGlzLmFjY2Vzc1Rva2VuPShudWxsPT1zP3ZvaWQgMDpzLmFjY2Vzc1Rva2VuKXx8bnVsbH1jb25uZWN0KCl7aWYoIXRoaXMuY29ubil7aWYodGhpcy50cmFuc3BvcnQpe3RoaXMuY29ubj1uZXcgdGhpcy50cmFuc3BvcnQodGhpcy5lbmRwb2ludFVSTCgpLHZvaWQgMCx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KTtyZXR1cm59aWYoJCl7dGhpcy5jb25uPW5ldyBXZWJTb2NrZXQodGhpcy5lbmRwb2ludFVSTCgpKSx0aGlzLnNldHVwQ29ubmVjdGlvbigpO3JldHVybn10aGlzLmNvbm49bmV3IFIodGhpcy5lbmRwb2ludFVSTCgpLHZvaWQgMCx7Y2xvc2U6KCk9Pnt0aGlzLmNvbm49bnVsbH19KSxlLkEoNDU2NTU1KS50aGVuKCh7ZGVmYXVsdDplfSk9Pnt0aGlzLmNvbm49bmV3IGUodGhpcy5lbmRwb2ludFVSTCgpLHZvaWQgMCx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSx0aGlzLnNldHVwQ29ubmVjdGlvbigpfSl9fWVuZHBvaW50VVJMKCl7cmV0dXJuIHRoaXMuX2FwcGVuZFBhcmFtcyh0aGlzLmVuZFBvaW50LE9iamVjdC5hc3NpZ24oe30sdGhpcy5wYXJhbXMse3ZzbjoiMS4wLjAifSkpfWRpc2Nvbm5lY3QoZSx0KXt0aGlzLmNvbm4mJih0aGlzLmNvbm4ub25jbG9zZT1mdW5jdGlvbigpe30sZT90aGlzLmNvbm4uY2xvc2UoZSxudWxsIT10P3Q6IiIpOnRoaXMuY29ubi5jbG9zZSgpLHRoaXMuY29ubj1udWxsLHRoaXMuaGVhcnRiZWF0VGltZXImJmNsZWFySW50ZXJ2YWwodGhpcy5oZWFydGJlYXRUaW1lciksdGhpcy5yZWNvbm5lY3RUaW1lci5yZXNldCgpKX1nZXRDaGFubmVscygpe3JldHVybiB0aGlzLmNoYW5uZWxzfWFzeW5jIHJlbW92ZUNoYW5uZWwoZSl7bGV0IHQ9YXdhaXQgZS51bnN1YnNjcmliZSgpO3JldHVybiAwPT09dGhpcy5jaGFubmVscy5sZW5ndGgmJnRoaXMuZGlzY29ubmVjdCgpLHR9YXN5bmMgcmVtb3ZlQWxsQ2hhbm5lbHMoKXtsZXQgZT1hd2FpdCBQcm9taXNlLmFsbCh0aGlzLmNoYW5uZWxzLm1hcChlPT5lLnVuc3Vic2NyaWJlKCkpKTtyZXR1cm4gdGhpcy5kaXNjb25uZWN0KCksZX1sb2coZSx0LHMpe3RoaXMubG9nZ2VyKGUsdCxzKX1jb25uZWN0aW9uU3RhdGUoKXtzd2l0Y2godGhpcy5jb25uJiZ0aGlzLmNvbm4ucmVhZHlTdGF0ZSl7Y2FzZSBVLmNvbm5lY3Rpbmc6cmV0dXJuIHEuQ29ubmVjdGluZztjYXNlIFUub3BlbjpyZXR1cm4gcS5PcGVuO2Nhc2UgVS5jbG9zaW5nOnJldHVybiBxLkNsb3Npbmc7ZGVmYXVsdDpyZXR1cm4gcS5DbG9zZWR9fWlzQ29ubmVjdGVkKCl7cmV0dXJuIHRoaXMuY29ubmVjdGlvblN0YXRlKCk9PT1xLk9wZW59Y2hhbm5lbChlLHQ9e2NvbmZpZzp7fX0pe2xldCBzPW5ldyBPKGByZWFsdGltZToke2V9YCx0LHRoaXMpO3JldHVybiB0aGlzLmNoYW5uZWxzLnB1c2gocyksc31wdXNoKGUpe2xldHt0b3BpYzp0LGV2ZW50OnMscGF5bG9hZDpyLHJlZjppfT1lLG49KCk9Pnt0aGlzLmVuY29kZShlLGU9Pnt2YXIgdDtudWxsPT0odD10aGlzLmNvbm4pfHx0LnNlbmQoZSl9KX07dGhpcy5sb2coInB1c2giLGAke3R9ICR7c30gKCR7aX0pYCxyKSx0aGlzLmlzQ29ubmVjdGVkKCk/bigpOnRoaXMuc2VuZEJ1ZmZlci5wdXNoKG4pfWFzeW5jIHNldEF1dGgoZT1udWxsKXtsZXQgdD1lfHx0aGlzLmFjY2Vzc1Rva2VuJiZhd2FpdCB0aGlzLmFjY2Vzc1Rva2VuKCl8fHRoaXMuYWNjZXNzVG9rZW5WYWx1ZTtpZih0KXtsZXQgZT1udWxsO3RyeXtlPUpTT04ucGFyc2UoYXRvYih0LnNwbGl0KCIuIilbMV0pKX1jYXRjaChlKXt9aWYoZSYmZS5leHAmJiEoTWF0aC5mbG9vcihEYXRlLm5vdygpLzFlMyktZS5leHA8MCkpcmV0dXJuIHRoaXMubG9nKCJhdXRoIixgSW52YWxpZEpXVFRva2VuOiBJbnZhbGlkIHZhbHVlIGZvciBKV1QgY2xhaW0gImV4cCIgd2l0aCB2YWx1ZSAke2UuZXhwfWApLFByb21pc2UucmVqZWN0KGBJbnZhbGlkSldUVG9rZW46IEludmFsaWQgdmFsdWUgZm9yIEpXVCBjbGFpbSAiZXhwIiB3aXRoIHZhbHVlICR7ZS5leHB9YCk7dGhpcy5hY2Nlc3NUb2tlblZhbHVlPXQsdGhpcy5jaGFubmVscy5mb3JFYWNoKGU9Pnt0JiZlLnVwZGF0ZUpvaW5QYXlsb2FkKHthY2Nlc3NfdG9rZW46dH0pLGUuam9pbmVkT25jZSYmZS5faXNKb2luZWQoKSYmZS5fcHVzaChELmFjY2Vzc190b2tlbix7YWNjZXNzX3Rva2VuOnR9KX0pfX1hc3luYyBzZW5kSGVhcnRiZWF0KCl7dmFyIGU7aWYodGhpcy5pc0Nvbm5lY3RlZCgpKXtpZih0aGlzLnBlbmRpbmdIZWFydGJlYXRSZWYpe3RoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZj1udWxsLHRoaXMubG9nKCJ0cmFuc3BvcnQiLCJoZWFydGJlYXQgdGltZW91dC4gQXR0ZW1wdGluZyB0byByZS1lc3RhYmxpc2ggY29ubmVjdGlvbiIpLG51bGw9PShlPXRoaXMuY29ubil8fGUuY2xvc2UoMWUzLCJoZWFyYmVhdCB0aW1lb3V0Iik7cmV0dXJufXRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZj10aGlzLl9tYWtlUmVmKCksdGhpcy5wdXNoKHt0b3BpYzoicGhvZW5peCIsZXZlbnQ6ImhlYXJ0YmVhdCIscGF5bG9hZDp7fSxyZWY6dGhpcy5wZW5kaW5nSGVhcnRiZWF0UmVmfSksdGhpcy5zZXRBdXRoKCl9fWZsdXNoU2VuZEJ1ZmZlcigpe3RoaXMuaXNDb25uZWN0ZWQoKSYmdGhpcy5zZW5kQnVmZmVyLmxlbmd0aD4wJiYodGhpcy5zZW5kQnVmZmVyLmZvckVhY2goZT0+ZSgpKSx0aGlzLnNlbmRCdWZmZXI9W10pfV9tYWtlUmVmKCl7bGV0IGU9dGhpcy5yZWYrMTtyZXR1cm4gZT09PXRoaXMucmVmP3RoaXMucmVmPTA6dGhpcy5yZWY9ZSx0aGlzLnJlZi50b1N0cmluZygpfV9sZWF2ZU9wZW5Ub3BpYyhlKXtsZXQgdD10aGlzLmNoYW5uZWxzLmZpbmQodD0+dC50b3BpYz09PWUmJih0Ll9pc0pvaW5lZCgpfHx0Ll9pc0pvaW5pbmcoKSkpO3QmJih0aGlzLmxvZygidHJhbnNwb3J0IixgbGVhdmluZyBkdXBsaWNhdGUgdG9waWMgIiR7ZX0iYCksdC51bnN1YnNjcmliZSgpKX1fcmVtb3ZlKGUpe3RoaXMuY2hhbm5lbHM9dGhpcy5jaGFubmVscy5maWx0ZXIodD0+dC5fam9pblJlZigpIT09ZS5fam9pblJlZigpKX1zZXR1cENvbm5lY3Rpb24oKXt0aGlzLmNvbm4mJih0aGlzLmNvbm4uYmluYXJ5VHlwZT0iYXJyYXlidWZmZXIiLHRoaXMuY29ubi5vbm9wZW49KCk9PnRoaXMuX29uQ29ubk9wZW4oKSx0aGlzLmNvbm4ub25lcnJvcj1lPT50aGlzLl9vbkNvbm5FcnJvcihlKSx0aGlzLmNvbm4ub25tZXNzYWdlPWU9PnRoaXMuX29uQ29ubk1lc3NhZ2UoZSksdGhpcy5jb25uLm9uY2xvc2U9ZT0+dGhpcy5fb25Db25uQ2xvc2UoZSkpfV9vbkNvbm5NZXNzYWdlKGUpe3RoaXMuZGVjb2RlKGUuZGF0YSxlPT57bGV0e3RvcGljOnQsZXZlbnQ6cyxwYXlsb2FkOnIscmVmOml9PWU7aSYmaT09PXRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZiYmKHRoaXMucGVuZGluZ0hlYXJ0YmVhdFJlZj1udWxsKSx0aGlzLmxvZygicmVjZWl2ZSIsYCR7ci5zdGF0dXN8fCIifSAke3R9ICR7c30gJHtpJiYiKCIraSsiKSJ8fCIifWAsciksdGhpcy5jaGFubmVscy5maWx0ZXIoZT0+ZS5faXNNZW1iZXIodCkpLmZvckVhY2goZT0+ZS5fdHJpZ2dlcihzLHIsaSkpLHRoaXMuc3RhdGVDaGFuZ2VDYWxsYmFja3MubWVzc2FnZS5mb3JFYWNoKHQ9PnQoZSkpfSl9YXN5bmMgX29uQ29ubk9wZW4oKXtpZih0aGlzLmxvZygidHJhbnNwb3J0IixgY29ubmVjdGVkIHRvICR7dGhpcy5lbmRwb2ludFVSTCgpfWApLHRoaXMuZmx1c2hTZW5kQnVmZmVyKCksdGhpcy5yZWNvbm5lY3RUaW1lci5yZXNldCgpLHRoaXMud29ya2VyKXt0aGlzLndvcmtlclVybD90aGlzLmxvZygid29ya2VyIixgc3RhcnRpbmcgd29ya2VyIGZvciBmcm9tICR7dGhpcy53b3JrZXJVcmx9YCk6dGhpcy5sb2coIndvcmtlciIsInN0YXJ0aW5nIGRlZmF1bHQgd29ya2VyIik7bGV0IGU9dGhpcy5fd29ya2VyT2JqZWN0VXJsKHRoaXMud29ya2VyVXJsKTt0aGlzLndvcmtlclJlZj1uZXcgV29ya2VyKGUpLHRoaXMud29ya2VyUmVmLm9uZXJyb3I9ZT0+e3RoaXMubG9nKCJ3b3JrZXIiLCJ3b3JrZXIgZXJyb3IiLGUubWVzc2FnZSksdGhpcy53b3JrZXJSZWYudGVybWluYXRlKCl9LHRoaXMud29ya2VyUmVmLm9ubWVzc2FnZT1lPT57ImtlZXBBbGl2ZSI9PT1lLmRhdGEuZXZlbnQmJnRoaXMuc2VuZEhlYXJ0YmVhdCgpfSx0aGlzLndvcmtlclJlZi5wb3N0TWVzc2FnZSh7ZXZlbnQ6InN0YXJ0IixpbnRlcnZhbDp0aGlzLmhlYXJ0YmVhdEludGVydmFsTXN9KX1lbHNlIHRoaXMuaGVhcnRiZWF0VGltZXImJmNsZWFySW50ZXJ2YWwodGhpcy5oZWFydGJlYXRUaW1lciksdGhpcy5oZWFydGJlYXRUaW1lcj1zZXRJbnRlcnZhbCgoKT0+dGhpcy5zZW5kSGVhcnRiZWF0KCksdGhpcy5oZWFydGJlYXRJbnRlcnZhbE1zKTt0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLm9wZW4uZm9yRWFjaChlPT5lKCkpfV9vbkNvbm5DbG9zZShlKXt0aGlzLmxvZygidHJhbnNwb3J0IiwiY2xvc2UiLGUpLHRoaXMuX3RyaWdnZXJDaGFuRXJyb3IoKSx0aGlzLmhlYXJ0YmVhdFRpbWVyJiZjbGVhckludGVydmFsKHRoaXMuaGVhcnRiZWF0VGltZXIpLHRoaXMucmVjb25uZWN0VGltZXIuc2NoZWR1bGVUaW1lb3V0KCksdGhpcy5zdGF0ZUNoYW5nZUNhbGxiYWNrcy5jbG9zZS5mb3JFYWNoKHQ9PnQoZSkpfV9vbkNvbm5FcnJvcihlKXt0aGlzLmxvZygidHJhbnNwb3J0IixlLm1lc3NhZ2UpLHRoaXMuX3RyaWdnZXJDaGFuRXJyb3IoKSx0aGlzLnN0YXRlQ2hhbmdlQ2FsbGJhY2tzLmVycm9yLmZvckVhY2godD0+dChlKSl9X3RyaWdnZXJDaGFuRXJyb3IoKXt0aGlzLmNoYW5uZWxzLmZvckVhY2goZT0+ZS5fdHJpZ2dlcihELmVycm9yKSl9X2FwcGVuZFBhcmFtcyhlLHQpe2lmKDA9PT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpcmV0dXJuIGU7bGV0IHM9ZS5tYXRjaCgvXD8vKT8iJiI6Ij8iLHI9bmV3IFVSTFNlYXJjaFBhcmFtcyh0KTtyZXR1cm5gJHtlfSR7c30ke3J9YH1fd29ya2VyT2JqZWN0VXJsKGUpe2xldCB0O2lmKGUpdD1lO2Vsc2V7bGV0IGU9bmV3IEJsb2IoW0FdLHt0eXBlOiJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0In0pO3Q9VVJMLmNyZWF0ZU9iamVjdFVSTChlKX1yZXR1cm4gdH19Y2xhc3MgUntjb25zdHJ1Y3RvcihlLHQscyl7dGhpcy5iaW5hcnlUeXBlPSJhcnJheWJ1ZmZlciIsdGhpcy5vbmNsb3NlPSgpPT57fSx0aGlzLm9uZXJyb3I9KCk9Pnt9LHRoaXMub25tZXNzYWdlPSgpPT57fSx0aGlzLm9ub3Blbj0oKT0+e30sdGhpcy5yZWFkeVN0YXRlPVUuY29ubmVjdGluZyx0aGlzLnNlbmQ9KCk9Pnt9LHRoaXMudXJsPW51bGwsdGhpcy51cmw9ZSx0aGlzLmNsb3NlPXMuY2xvc2V9fXZhciB4LEksVSxMLEQsTixxLEIsTSxGLEoseixLLEgsRyxXLFYsWSxRLFgsWixlZT1lLmkoNDY3MDM0KTtjbGFzcyBldCBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMuX19pc1N0b3JhZ2VFcnJvcj0hMCx0aGlzLm5hbWU9IlN0b3JhZ2VFcnJvciJ9fWZ1bmN0aW9uIGVzKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJiJfX2lzU3RvcmFnZUVycm9yImluIGV9Y2xhc3MgZXIgZXh0ZW5kcyBldHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUpLHRoaXMubmFtZT0iU3RvcmFnZUFwaUVycm9yIix0aGlzLnN0YXR1cz10fXRvSlNPTigpe3JldHVybntuYW1lOnRoaXMubmFtZSxtZXNzYWdlOnRoaXMubWVzc2FnZSxzdGF0dXM6dGhpcy5zdGF0dXN9fX1jbGFzcyBlaSBleHRlbmRzIGV0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSksdGhpcy5uYW1lPSJTdG9yYWdlVW5rbm93bkVycm9yIix0aGlzLm9yaWdpbmFsRXJyb3I9dH19bGV0IGVuPXQ9PntsZXQgcztyZXR1cm4gcz10fHwoInVuZGVmaW5lZCI9PXR5cGVvZiBmZXRjaD8oLi4udCk9PmUuQSg2MTE3MzcpLnRoZW4oKHtkZWZhdWx0OmV9KT0+ZSguLi50KSk6ZmV0Y2gpLCguLi5lKT0+cyguLi5lKX0sZWE9ZT0+e2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGUubWFwKGU9PmVhKGUpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZXx8ZSE9PU9iamVjdChlKSlyZXR1cm4gZTtsZXQgdD17fTtyZXR1cm4gT2JqZWN0LmVudHJpZXMoZSkuZm9yRWFjaCgoW2Usc10pPT57dFtlLnJlcGxhY2UoLyhbLV9dW2Etel0pL2dpLGU9PmUudG9VcHBlckNhc2UoKS5yZXBsYWNlKC9bLV9dL2csIiIpKV09ZWEocyl9KSx0fTt2YXIgZW89ZnVuY3Rpb24oZSx0LHMscil7cmV0dXJuIG5ldyhzfHwocz1Qcm9taXNlKSkoZnVuY3Rpb24oaSxuKXtmdW5jdGlvbiBhKGUpe3RyeXtsKHIubmV4dChlKSl9Y2F0Y2goZSl7bihlKX19ZnVuY3Rpb24gbyhlKXt0cnl7bChyLnRocm93KGUpKX1jYXRjaChlKXtuKGUpfX1mdW5jdGlvbiBsKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOigodD1lLnZhbHVlKWluc3RhbmNlb2Ygcz90Om5ldyBzKGZ1bmN0aW9uKGUpe2UodCl9KSkudGhlbihhLG8pfWwoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfTtsZXQgZWw9ZT0+ZS5tc2d8fGUubWVzc2FnZXx8ZS5lcnJvcl9kZXNjcmlwdGlvbnx8ZS5lcnJvcnx8SlNPTi5zdHJpbmdpZnkoZSk7ZnVuY3Rpb24gZWgodCxzLHIsaSxuLGEpe3JldHVybiBlbyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChvLGwpPT57bGV0IGg7dChyLChoPXttZXRob2Q6cyxoZWFkZXJzOihudWxsPT1pP3ZvaWQgMDppLmhlYWRlcnMpfHx7fX0sIkdFVCI9PT1zP2g6KGguaGVhZGVycz1PYmplY3QuYXNzaWduKHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LG51bGw9PWk/dm9pZCAwOmkuaGVhZGVycyksYSYmKGguYm9keT1KU09OLnN0cmluZ2lmeShhKSksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgpLG4pKSkpLnRoZW4oZT0+e2lmKCFlLm9rKXRocm93IGU7cmV0dXJuKG51bGw9PWk/dm9pZCAwOmkubm9SZXNvbHZlSnNvbik/ZTplLmpzb24oKX0pLnRoZW4oZT0+byhlKSkuY2F0Y2godD0+ZW8odm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dmFyIHMscixuLGE7bGV0IG89eWllbGQocz12b2lkIDAscj12b2lkIDAsbj12b2lkIDAsYT1mdW5jdGlvbiooKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIFJlc3BvbnNlPyh5aWVsZCBlLkEoNjExNzM3KSkuUmVzcG9uc2U6UmVzcG9uc2V9LG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKGUpe3RyeXtsKGEubmV4dChlKSl9Y2F0Y2goZSl7dChlKX19ZnVuY3Rpb24gbyhlKXt0cnl7bChhLnRocm93KGUpKX1jYXRjaChlKXt0KGUpfX1mdW5jdGlvbiBsKHQpe3ZhciBzO3QuZG9uZT9lKHQudmFsdWUpOigocz10LnZhbHVlKWluc3RhbmNlb2Ygbj9zOm5ldyBuKGZ1bmN0aW9uKGUpe2Uocyl9KSkudGhlbihpLG8pfWwoKGE9YS5hcHBseShzLHJ8fFtdKSkubmV4dCgpKX0pKTt0IGluc3RhbmNlb2YgbyYmIShudWxsPT1pP3ZvaWQgMDppLm5vUmVzb2x2ZUpzb24pP3QuanNvbigpLnRoZW4oZT0+e2wobmV3IGVyKGVsKGUpLHQuc3RhdHVzfHw1MDApKX0pLmNhdGNoKGU9PntsKG5ldyBlaShlbChlKSxlKSl9KTpsKG5ldyBlaShlbCh0KSx0KSl9KSl9KX0pfWZ1bmN0aW9uIGVjKGUsdCxzLHIpe3JldHVybiBlbyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIGVoKGUsIkdFVCIsdCxzLHIpfSl9ZnVuY3Rpb24gZXUoZSx0LHMscixpKXtyZXR1cm4gZW8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBlaChlLCJQT1NUIix0LHIsaSxzKX0pfWZ1bmN0aW9uIGVkKGUsdCxzLHIsaSl7cmV0dXJuIGVvKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gZWgoZSwiREVMRVRFIix0LHIsaSxzKX0pfXZhciBlZj1mdW5jdGlvbihlLHQscyxyKXtyZXR1cm4gbmV3KHN8fChzPVByb21pc2UpKShmdW5jdGlvbihpLG4pe2Z1bmN0aW9uIGEoZSl7dHJ5e2woci5uZXh0KGUpKX1jYXRjaChlKXtuKGUpfX1mdW5jdGlvbiBvKGUpe3RyeXtsKHIudGhyb3coZSkpfWNhdGNoKGUpe24oZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KCh0PWUudmFsdWUpaW5zdGFuY2VvZiBzP3Q6bmV3IHMoZnVuY3Rpb24oZSl7ZSh0KX0pKS50aGVuKGEsbyl9bCgocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9O2xldCBlcD17bGltaXQ6MTAwLG9mZnNldDowLHNvcnRCeTp7Y29sdW1uOiJuYW1lIixvcmRlcjoiYXNjIn19LGVnPXtjYWNoZUNvbnRyb2w6IjM2MDAiLGNvbnRlbnRUeXBlOiJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiLHVwc2VydDohMX07Y2xhc3MgZXl7Y29uc3RydWN0b3IoZSx0PXt9LHMscil7dGhpcy51cmw9ZSx0aGlzLmhlYWRlcnM9dCx0aGlzLmJ1Y2tldElkPXMsdGhpcy5mZXRjaD1lbihyKX11cGxvYWRPclVwZGF0ZShlLHQscyxyKXtyZXR1cm4gZWYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RyeXtsZXQgaSxuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlZyksciksYT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5oZWFkZXJzKSwiUE9TVCI9PT1lJiZ7IngtdXBzZXJ0IjpTdHJpbmcobi51cHNlcnQpfSksbz1uLm1ldGFkYXRhOyJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYiYmcyBpbnN0YW5jZW9mIEJsb2I/KChpPW5ldyBGb3JtRGF0YSkuYXBwZW5kKCJjYWNoZUNvbnRyb2wiLG4uY2FjaGVDb250cm9sKSxvJiZpLmFwcGVuZCgibWV0YWRhdGEiLHRoaXMuZW5jb2RlTWV0YWRhdGEobykpLGkuYXBwZW5kKCIiLHMpKToidW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZzIGluc3RhbmNlb2YgRm9ybURhdGE/KChpPXMpLmFwcGVuZCgiY2FjaGVDb250cm9sIixuLmNhY2hlQ29udHJvbCksbyYmaS5hcHBlbmQoIm1ldGFkYXRhIix0aGlzLmVuY29kZU1ldGFkYXRhKG8pKSk6KGk9cyxhWyJjYWNoZS1jb250cm9sIl09YG1heC1hZ2U9JHtuLmNhY2hlQ29udHJvbH1gLGFbImNvbnRlbnQtdHlwZSJdPW4uY29udGVudFR5cGUsbyYmKGFbIngtbWV0YWRhdGEiXT10aGlzLnRvQmFzZTY0KHRoaXMuZW5jb2RlTWV0YWRhdGEobykpKSksKG51bGw9PXI/dm9pZCAwOnIuaGVhZGVycykmJihhPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSxyLmhlYWRlcnMpKTtsZXQgbD10aGlzLl9yZW1vdmVFbXB0eUZvbGRlcnModCksaD10aGlzLl9nZXRGaW5hbFBhdGgobCksYz15aWVsZCB0aGlzLmZldGNoKGAke3RoaXMudXJsfS9vYmplY3QvJHtofWAsT2JqZWN0LmFzc2lnbih7bWV0aG9kOmUsYm9keTppLGhlYWRlcnM6YX0sKG51bGw9PW4/dm9pZCAwOm4uZHVwbGV4KT97ZHVwbGV4Om4uZHVwbGV4fTp7fSkpLHU9eWllbGQgYy5qc29uKCk7aWYoYy5vaylyZXR1cm57ZGF0YTp7cGF0aDpsLGlkOnUuSWQsZnVsbFBhdGg6dS5LZXl9LGVycm9yOm51bGx9O3JldHVybntkYXRhOm51bGwsZXJyb3I6dX19Y2F0Y2goZSl7aWYoZXMoZSkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjplfTt0aHJvdyBlfX0pfXVwbG9hZChlLHQscyl7cmV0dXJuIGVmKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy51cGxvYWRPclVwZGF0ZSgiUE9TVCIsZSx0LHMpfSl9dXBsb2FkVG9TaWduZWRVcmwoZSx0LHMscil7cmV0dXJuIGVmKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgaT10aGlzLl9yZW1vdmVFbXB0eUZvbGRlcnMoZSksbj10aGlzLl9nZXRGaW5hbFBhdGgoaSksYT1uZXcgVVJMKHRoaXMudXJsK2Avb2JqZWN0L3VwbG9hZC9zaWduLyR7bn1gKTthLnNlYXJjaFBhcmFtcy5zZXQoInRva2VuIix0KTt0cnl7bGV0IGUsdD1PYmplY3QuYXNzaWduKHt1cHNlcnQ6ZWcudXBzZXJ0fSxyKSxuPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLmhlYWRlcnMpLHsieC11cHNlcnQiOlN0cmluZyh0LnVwc2VydCl9KTsidW5kZWZpbmVkIiE9dHlwZW9mIEJsb2ImJnMgaW5zdGFuY2VvZiBCbG9iPygoZT1uZXcgRm9ybURhdGEpLmFwcGVuZCgiY2FjaGVDb250cm9sIix0LmNhY2hlQ29udHJvbCksZS5hcHBlbmQoIiIscykpOiJ1bmRlZmluZWQiIT10eXBlb2YgRm9ybURhdGEmJnMgaW5zdGFuY2VvZiBGb3JtRGF0YT8oZT1zKS5hcHBlbmQoImNhY2hlQ29udHJvbCIsdC5jYWNoZUNvbnRyb2wpOihlPXMsblsiY2FjaGUtY29udHJvbCJdPWBtYXgtYWdlPSR7dC5jYWNoZUNvbnRyb2x9YCxuWyJjb250ZW50LXR5cGUiXT10LmNvbnRlbnRUeXBlKTtsZXQgbz15aWVsZCB0aGlzLmZldGNoKGEudG9TdHJpbmcoKSx7bWV0aG9kOiJQVVQiLGJvZHk6ZSxoZWFkZXJzOm59KSxsPXlpZWxkIG8uanNvbigpO2lmKG8ub2spcmV0dXJue2RhdGE6e3BhdGg6aSxmdWxsUGF0aDpsLktleX0sZXJyb3I6bnVsbH07cmV0dXJue2RhdGE6bnVsbCxlcnJvcjpsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9Y3JlYXRlU2lnbmVkVXBsb2FkVXJsKGUsdCl7cmV0dXJuIGVmKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7bGV0IHM9dGhpcy5fZ2V0RmluYWxQYXRoKGUpLHI9T2JqZWN0LmFzc2lnbih7fSx0aGlzLmhlYWRlcnMpOyhudWxsPT10P3ZvaWQgMDp0LnVwc2VydCkmJihyWyJ4LXVwc2VydCJdPSJ0cnVlIik7bGV0IGk9eWllbGQgZXUodGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vb2JqZWN0L3VwbG9hZC9zaWduLyR7c31gLHt9LHtoZWFkZXJzOnJ9KSxuPW5ldyBVUkwodGhpcy51cmwraS51cmwpLGE9bi5zZWFyY2hQYXJhbXMuZ2V0KCJ0b2tlbiIpO2lmKCFhKXRocm93IG5ldyBldCgiTm8gdG9rZW4gcmV0dXJuZWQgYnkgQVBJIik7cmV0dXJue2RhdGE6e3NpZ25lZFVybDpuLnRvU3RyaW5nKCkscGF0aDplLHRva2VuOmF9LGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGVzKGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19KX11cGRhdGUoZSx0LHMpe3JldHVybiBlZih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMudXBsb2FkT3JVcGRhdGUoIlBVVCIsZSx0LHMpfSl9bW92ZShlLHQscyl7cmV0dXJuIGVmKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7cmV0dXJue2RhdGE6eWllbGQgZXUodGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vb2JqZWN0L21vdmVgLHtidWNrZXRJZDp0aGlzLmJ1Y2tldElkLHNvdXJjZUtleTplLGRlc3RpbmF0aW9uS2V5OnQsZGVzdGluYXRpb25CdWNrZXQ6bnVsbD09cz92b2lkIDA6cy5kZXN0aW5hdGlvbkJ1Y2tldH0se2hlYWRlcnM6dGhpcy5oZWFkZXJzfSksZXJyb3I6bnVsbH19Y2F0Y2goZSl7aWYoZXMoZSkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjplfTt0aHJvdyBlfX0pfWNvcHkoZSx0LHMpe3JldHVybiBlZih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dHJ5e3JldHVybntkYXRhOntwYXRoOih5aWVsZCBldSh0aGlzLmZldGNoLGAke3RoaXMudXJsfS9vYmplY3QvY29weWAse2J1Y2tldElkOnRoaXMuYnVja2V0SWQsc291cmNlS2V5OmUsZGVzdGluYXRpb25LZXk6dCxkZXN0aW5hdGlvbkJ1Y2tldDpudWxsPT1zP3ZvaWQgMDpzLmRlc3RpbmF0aW9uQnVja2V0fSx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSkuS2V5fSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9Y3JlYXRlU2lnbmVkVXJsKGUsdCxzKXtyZXR1cm4gZWYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RyeXtsZXQgcj10aGlzLl9nZXRGaW5hbFBhdGgoZSksaT15aWVsZCBldSh0aGlzLmZldGNoLGAke3RoaXMudXJsfS9vYmplY3Qvc2lnbi8ke3J9YCxPYmplY3QuYXNzaWduKHtleHBpcmVzSW46dH0sKG51bGw9PXM/dm9pZCAwOnMudHJhbnNmb3JtKT97dHJhbnNmb3JtOnMudHJhbnNmb3JtfTp7fSkse2hlYWRlcnM6dGhpcy5oZWFkZXJzfSksbj0obnVsbD09cz92b2lkIDA6cy5kb3dubG9hZCk/YCZkb3dubG9hZD0keyEwPT09cy5kb3dubG9hZD8iIjpzLmRvd25sb2FkfWA6IiI7cmV0dXJue2RhdGE6aT17c2lnbmVkVXJsOmVuY29kZVVSSShgJHt0aGlzLnVybH0ke2kuc2lnbmVkVVJMfSR7bn1gKX0sZXJyb3I6bnVsbH19Y2F0Y2goZSl7aWYoZXMoZSkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjplfTt0aHJvdyBlfX0pfWNyZWF0ZVNpZ25lZFVybHMoZSx0LHMpe3JldHVybiBlZih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dHJ5e2xldCByPXlpZWxkIGV1KHRoaXMuZmV0Y2gsYCR7dGhpcy51cmx9L29iamVjdC9zaWduLyR7dGhpcy5idWNrZXRJZH1gLHtleHBpcmVzSW46dCxwYXRoczplfSx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSxpPShudWxsPT1zP3ZvaWQgMDpzLmRvd25sb2FkKT9gJmRvd25sb2FkPSR7ITA9PT1zLmRvd25sb2FkPyIiOnMuZG93bmxvYWR9YDoiIjtyZXR1cm57ZGF0YTpyLm1hcChlPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZSkse3NpZ25lZFVybDplLnNpZ25lZFVSTD9lbmNvZGVVUkkoYCR7dGhpcy51cmx9JHtlLnNpZ25lZFVSTH0ke2l9YCk6bnVsbH0pKSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9ZG93bmxvYWQoZSx0KXtyZXR1cm4gZWYodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBzPXZvaWQgMCE9PShudWxsPT10P3ZvaWQgMDp0LnRyYW5zZm9ybSkscj10aGlzLnRyYW5zZm9ybU9wdHNUb1F1ZXJ5U3RyaW5nKChudWxsPT10P3ZvaWQgMDp0LnRyYW5zZm9ybSl8fHt9KSxpPXI/YD8ke3J9YDoiIjt0cnl7bGV0IHQ9dGhpcy5fZ2V0RmluYWxQYXRoKGUpLHI9eWllbGQgZWModGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vJHtzPyJyZW5kZXIvaW1hZ2UvYXV0aGVudGljYXRlZCI6Im9iamVjdCJ9LyR7dH0ke2l9YCx7aGVhZGVyczp0aGlzLmhlYWRlcnMsbm9SZXNvbHZlSnNvbjohMH0pO3JldHVybntkYXRhOnlpZWxkIHIuYmxvYigpLGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGVzKGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19KX1pbmZvKGUpe3JldHVybiBlZih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHQ9dGhpcy5fZ2V0RmluYWxQYXRoKGUpO3RyeXtsZXQgZT15aWVsZCBlYyh0aGlzLmZldGNoLGAke3RoaXMudXJsfS9vYmplY3QvaW5mby8ke3R9YCx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KTtyZXR1cm57ZGF0YTplYShlKSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9ZXhpc3RzKGUpe3JldHVybiBlZih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHQ9dGhpcy5fZ2V0RmluYWxQYXRoKGUpO3RyeXtyZXR1cm4geWllbGQgZnVuY3Rpb24oZSx0LHMscil7cmV0dXJuIGVvKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gZWgoZSwiSEVBRCIsdCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30scykse25vUmVzb2x2ZUpzb246ITB9KSx2b2lkIDApfSl9KHRoaXMuZmV0Y2gsYCR7dGhpcy51cmx9L29iamVjdC8ke3R9YCx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSx7ZGF0YTohMCxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSYmZSBpbnN0YW5jZW9mIGVpKXtsZXQgdD1lLm9yaWdpbmFsRXJyb3I7aWYoWzQwMCw0MDRdLmluY2x1ZGVzKG51bGw9PXQ/dm9pZCAwOnQuc3RhdHVzKSlyZXR1cm57ZGF0YTohMSxlcnJvcjplfX10aHJvdyBlfX0pfWdldFB1YmxpY1VybChlLHQpe2xldCBzPXRoaXMuX2dldEZpbmFsUGF0aChlKSxyPVtdLGk9KG51bGw9PXQ/dm9pZCAwOnQuZG93bmxvYWQpP2Bkb3dubG9hZD0keyEwPT09dC5kb3dubG9hZD8iIjp0LmRvd25sb2FkfWA6IiI7IiIhPT1pJiZyLnB1c2goaSk7bGV0IG49dm9pZCAwIT09KG51bGw9PXQ/dm9pZCAwOnQudHJhbnNmb3JtKSxhPXRoaXMudHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcoKG51bGw9PXQ/dm9pZCAwOnQudHJhbnNmb3JtKXx8e30pOyIiIT09YSYmci5wdXNoKGEpO2xldCBvPXIuam9pbigiJiIpO3JldHVybiIiIT09byYmKG89YD8ke299YCkse2RhdGE6e3B1YmxpY1VybDplbmNvZGVVUkkoYCR7dGhpcy51cmx9LyR7bj8icmVuZGVyL2ltYWdlIjoib2JqZWN0In0vcHVibGljLyR7c30ke299YCl9fX1yZW1vdmUoZSl7cmV0dXJuIGVmKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7cmV0dXJue2RhdGE6eWllbGQgZWQodGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vb2JqZWN0LyR7dGhpcy5idWNrZXRJZH1gLHtwcmVmaXhlczplfSx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9bGlzdChlLHQscyl7cmV0dXJuIGVmKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7bGV0IHI9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZXApLHQpLHtwcmVmaXg6ZXx8IiJ9KTtyZXR1cm57ZGF0YTp5aWVsZCBldSh0aGlzLmZldGNoLGAke3RoaXMudXJsfS9vYmplY3QvbGlzdC8ke3RoaXMuYnVja2V0SWR9YCxyLHtoZWFkZXJzOnRoaXMuaGVhZGVyc30scyksZXJyb3I6bnVsbH19Y2F0Y2goZSl7aWYoZXMoZSkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjplfTt0aHJvdyBlfX0pfWVuY29kZU1ldGFkYXRhKGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX10b0Jhc2U2NChlKXtyZXR1cm4gdm9pZCAwIT09ZWUuQnVmZmVyP2VlLkJ1ZmZlci5mcm9tKGUpLnRvU3RyaW5nKCJiYXNlNjQiKTpidG9hKGUpfV9nZXRGaW5hbFBhdGgoZSl7cmV0dXJuYCR7dGhpcy5idWNrZXRJZH0vJHtlfWB9X3JlbW92ZUVtcHR5Rm9sZGVycyhlKXtyZXR1cm4gZS5yZXBsYWNlKC9eXC98XC8kL2csIiIpLnJlcGxhY2UoL1wvKy9nLCIvIil9dHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcoZSl7bGV0IHQ9W107cmV0dXJuIGUud2lkdGgmJnQucHVzaChgd2lkdGg9JHtlLndpZHRofWApLGUuaGVpZ2h0JiZ0LnB1c2goYGhlaWdodD0ke2UuaGVpZ2h0fWApLGUucmVzaXplJiZ0LnB1c2goYHJlc2l6ZT0ke2UucmVzaXplfWApLGUuZm9ybWF0JiZ0LnB1c2goYGZvcm1hdD0ke2UuZm9ybWF0fWApLGUucXVhbGl0eSYmdC5wdXNoKGBxdWFsaXR5PSR7ZS5xdWFsaXR5fWApLHQuam9pbigiJiIpfX1sZXQgZW09eyJYLUNsaWVudC1JbmZvIjoic3RvcmFnZS1qcy8yLjcuMSJ9O3ZhciBldz1mdW5jdGlvbihlLHQscyxyKXtyZXR1cm4gbmV3KHN8fChzPVByb21pc2UpKShmdW5jdGlvbihpLG4pe2Z1bmN0aW9uIGEoZSl7dHJ5e2woci5uZXh0KGUpKX1jYXRjaChlKXtuKGUpfX1mdW5jdGlvbiBvKGUpe3RyeXtsKHIudGhyb3coZSkpfWNhdGNoKGUpe24oZSl9fWZ1bmN0aW9uIGwoZSl7dmFyIHQ7ZS5kb25lP2koZS52YWx1ZSk6KCh0PWUudmFsdWUpaW5zdGFuY2VvZiBzP3Q6bmV3IHMoZnVuY3Rpb24oZSl7ZSh0KX0pKS50aGVuKGEsbyl9bCgocj1yLmFwcGx5KGUsdHx8W10pKS5uZXh0KCkpfSl9O2NsYXNzIGVfe2NvbnN0cnVjdG9yKGUsdD17fSxzKXt0aGlzLnVybD1lLHRoaXMuaGVhZGVycz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZW0pLHQpLHRoaXMuZmV0Y2g9ZW4ocyl9bGlzdEJ1Y2tldHMoKXtyZXR1cm4gZXcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RyeXtyZXR1cm57ZGF0YTp5aWVsZCBlYyh0aGlzLmZldGNoLGAke3RoaXMudXJsfS9idWNrZXRgLHtoZWFkZXJzOnRoaXMuaGVhZGVyc30pLGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGVzKGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19KX1nZXRCdWNrZXQoZSl7cmV0dXJuIGV3KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7cmV0dXJue2RhdGE6eWllbGQgZWModGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vYnVja2V0LyR7ZX1gLHtoZWFkZXJzOnRoaXMuaGVhZGVyc30pLGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGVzKGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19KX1jcmVhdGVCdWNrZXQoZSx0PXtwdWJsaWM6ITF9KXtyZXR1cm4gZXcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RyeXtyZXR1cm57ZGF0YTp5aWVsZCBldSh0aGlzLmZldGNoLGAke3RoaXMudXJsfS9idWNrZXRgLHtpZDplLG5hbWU6ZSxwdWJsaWM6dC5wdWJsaWMsZmlsZV9zaXplX2xpbWl0OnQuZmlsZVNpemVMaW1pdCxhbGxvd2VkX21pbWVfdHlwZXM6dC5hbGxvd2VkTWltZVR5cGVzfSx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9dXBkYXRlQnVja2V0KGUsdCl7cmV0dXJuIGV3KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7cmV0dXJue2RhdGE6eWllbGQgZnVuY3Rpb24oZSx0LHMscixpKXtyZXR1cm4gZW8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBlaChlLCJQVVQiLHQscix2b2lkIDAscyl9KX0odGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vYnVja2V0LyR7ZX1gLHtpZDplLG5hbWU6ZSxwdWJsaWM6dC5wdWJsaWMsZmlsZV9zaXplX2xpbWl0OnQuZmlsZVNpemVMaW1pdCxhbGxvd2VkX21pbWVfdHlwZXM6dC5hbGxvd2VkTWltZVR5cGVzfSx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihlcyhlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fSl9ZW1wdHlCdWNrZXQoZSl7cmV0dXJuIGV3KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7cmV0dXJue2RhdGE6eWllbGQgZXUodGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vYnVja2V0LyR7ZX0vZW1wdHlgLHt9LHtoZWFkZXJzOnRoaXMuaGVhZGVyc30pLGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGVzKGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19KX1kZWxldGVCdWNrZXQoZSl7cmV0dXJuIGV3KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0cnl7cmV0dXJue2RhdGE6eWllbGQgZWQodGhpcy5mZXRjaCxgJHt0aGlzLnVybH0vYnVja2V0LyR7ZX1gLHt9LHtoZWFkZXJzOnRoaXMuaGVhZGVyc30pLGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGVzKGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19KX19Y2xhc3MgZXYgZXh0ZW5kcyBlX3tjb25zdHJ1Y3RvcihlLHQ9e30scyl7c3VwZXIoZSx0LHMpfWZyb20oZSl7cmV0dXJuIG5ldyBleSh0aGlzLnVybCx0aGlzLmhlYWRlcnMsZSx0aGlzLmZldGNoKX19bGV0IGViPSIiO2ViPSJ1bmRlZmluZWQiIT10eXBlb2YgRGVubz8iZGVubyI6InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD8id2ViIjoidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmIlJlYWN0TmF0aXZlIj09PW5hdmlnYXRvci5wcm9kdWN0PyJyZWFjdC1uYXRpdmUiOiJub2RlIjtsZXQgZWs9e2hlYWRlcnM6eyJYLUNsaWVudC1JbmZvIjpgc3VwYWJhc2UtanMtJHtlYn0vMi40OS40YH19LGVUPXtzY2hlbWE6InB1YmxpYyJ9LGVTPXthdXRvUmVmcmVzaFRva2VuOiEwLHBlcnNpc3RTZXNzaW9uOiEwLGRldGVjdFNlc3Npb25JblVybDohMCxmbG93VHlwZToiaW1wbGljaXQifSxlaj17fTt2YXIgZUU9ZS5pKDkwNjA4NSk7bGV0IGVPPSIyLjY5LjEiLGVQPXsiWC1DbGllbnQtSW5mbyI6YGdvdHJ1ZS1qcy8ke2VPfWB9LGUkPSJYLVN1cGFiYXNlLUFwaS1WZXJzaW9uIixlQT17IjIwMjQtMDEtMDEiOnt0aW1lc3RhbXA6RGF0ZS5wYXJzZSgiMjAyNC0wMS0wMVQwMDowMDowMC4wWiIpLG5hbWU6IjIwMjQtMDEtMDEifX0sZUM9L14oW2EtejAtOV8tXXs0fSkqKCR8W2EtejAtOV8tXXszfSR8W2EtejAtOV8tXXsyfSQpJC9pO2NsYXNzIGVSIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0LHMpe3N1cGVyKGUpLHRoaXMuX19pc0F1dGhFcnJvcj0hMCx0aGlzLm5hbWU9IkF1dGhFcnJvciIsdGhpcy5zdGF0dXM9dCx0aGlzLmNvZGU9c319ZnVuY3Rpb24gZXgoZSl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmIl9faXNBdXRoRXJyb3IiaW4gZX1jbGFzcyBlSSBleHRlbmRzIGVSe2NvbnN0cnVjdG9yKGUsdCxzKXtzdXBlcihlLHQscyksdGhpcy5uYW1lPSJBdXRoQXBpRXJyb3IiLHRoaXMuc3RhdHVzPXQsdGhpcy5jb2RlPXN9fWNsYXNzIGVVIGV4dGVuZHMgZVJ7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlKSx0aGlzLm5hbWU9IkF1dGhVbmtub3duRXJyb3IiLHRoaXMub3JpZ2luYWxFcnJvcj10fX1jbGFzcyBlTCBleHRlbmRzIGVSe2NvbnN0cnVjdG9yKGUsdCxzLHIpe3N1cGVyKGUscyxyKSx0aGlzLm5hbWU9dCx0aGlzLnN0YXR1cz1zfX1jbGFzcyBlRCBleHRlbmRzIGVMe2NvbnN0cnVjdG9yKCl7c3VwZXIoIkF1dGggc2Vzc2lvbiBtaXNzaW5nISIsIkF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yIiw0MDAsdm9pZCAwKX19Y2xhc3MgZU4gZXh0ZW5kcyBlTHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJBdXRoIHNlc3Npb24gb3IgdXNlciBtaXNzaW5nIiwiQXV0aEludmFsaWRUb2tlblJlc3BvbnNlRXJyb3IiLDUwMCx2b2lkIDApfX1jbGFzcyBlcSBleHRlbmRzIGVMe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkF1dGhJbnZhbGlkQ3JlZGVudGlhbHNFcnJvciIsNDAwLHZvaWQgMCl9fWNsYXNzIGVCIGV4dGVuZHMgZUx7Y29uc3RydWN0b3IoZSx0PW51bGwpe3N1cGVyKGUsIkF1dGhJbXBsaWNpdEdyYW50UmVkaXJlY3RFcnJvciIsNTAwLHZvaWQgMCksdGhpcy5kZXRhaWxzPW51bGwsdGhpcy5kZXRhaWxzPXR9dG9KU09OKCl7cmV0dXJue25hbWU6dGhpcy5uYW1lLG1lc3NhZ2U6dGhpcy5tZXNzYWdlLHN0YXR1czp0aGlzLnN0YXR1cyxkZXRhaWxzOnRoaXMuZGV0YWlsc319fWNsYXNzIGVNIGV4dGVuZHMgZUx7Y29uc3RydWN0b3IoZSx0PW51bGwpe3N1cGVyKGUsIkF1dGhQS0NFR3JhbnRDb2RlRXhjaGFuZ2VFcnJvciIsNTAwLHZvaWQgMCksdGhpcy5kZXRhaWxzPW51bGwsdGhpcy5kZXRhaWxzPXR9dG9KU09OKCl7cmV0dXJue25hbWU6dGhpcy5uYW1lLG1lc3NhZ2U6dGhpcy5tZXNzYWdlLHN0YXR1czp0aGlzLnN0YXR1cyxkZXRhaWxzOnRoaXMuZGV0YWlsc319fWNsYXNzIGVGIGV4dGVuZHMgZUx7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLCJBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciIsdCx2b2lkIDApfX1mdW5jdGlvbiBlSihlKXtyZXR1cm4gZXgoZSkmJiJBdXRoUmV0cnlhYmxlRmV0Y2hFcnJvciI9PT1lLm5hbWV9Y2xhc3MgZXogZXh0ZW5kcyBlTHtjb25zdHJ1Y3RvcihlLHQscyl7c3VwZXIoZSwiQXV0aFdlYWtQYXNzd29yZEVycm9yIix0LCJ3ZWFrX3Bhc3N3b3JkIiksdGhpcy5yZWFzb25zPXN9fWNsYXNzIGVLIGV4dGVuZHMgZUx7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiQXV0aEludmFsaWRKd3RFcnJvciIsNDAwLCJpbnZhbGlkX2p3dCIpfX1sZXQgZUg9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8iLnNwbGl0KCIiKSxlRz0iIAlcblxyPSIuc3BsaXQoIiIpLGVXPSgoKT0+e2xldCBlPUFycmF5KDEyOCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0xKWVbdF09LTE7Zm9yKGxldCB0PTA7dDxlRy5sZW5ndGg7dCs9MSllW2VHW3RdLmNoYXJDb2RlQXQoMCldPS0yO2ZvcihsZXQgdD0wO3Q8ZUgubGVuZ3RoO3QrPTEpZVtlSFt0XS5jaGFyQ29kZUF0KDApXT10O3JldHVybiBlfSkoKTtmdW5jdGlvbiBlVihlLHQscyl7bGV0IHI9ZVdbZV07aWYocj4tMSlmb3IodC5xdWV1ZT10LnF1ZXVlPDw2fHIsdC5xdWV1ZWRCaXRzKz02O3QucXVldWVkQml0cz49ODspcyh0LnF1ZXVlPj50LnF1ZXVlZEJpdHMtOCYyNTUpLHQucXVldWVkQml0cy09ODtlbHNlIGlmKC0yPT09cilyZXR1cm47ZWxzZSB0aHJvdyBFcnJvcihgSW52YWxpZCBCYXNlNjQtVVJMIGNoYXJhY3RlciAiJHtTdHJpbmcuZnJvbUNoYXJDb2RlKGUpfSJgKX1mdW5jdGlvbiBlWShlKXtsZXQgdD1bXSxzPWU9Pnt0LnB1c2goU3RyaW5nLmZyb21Db2RlUG9pbnQoZSkpfSxyPXt1dGY4c2VxOjAsY29kZXBvaW50OjB9LGk9e3F1ZXVlOjAscXVldWVkQml0czowfSxuPWU9PnshZnVuY3Rpb24oZSx0LHMpe2lmKDA9PT10LnV0ZjhzZXEpe2lmKGU8PTEyNylyZXR1cm4gcyhlKTtmb3IobGV0IHM9MTtzPDY7cys9MSlpZigoZT4+Ny1zJjEpPT0wKXt0LnV0ZjhzZXE9czticmVha31pZigyPT09dC51dGY4c2VxKXQuY29kZXBvaW50PTMxJmU7ZWxzZSBpZigzPT09dC51dGY4c2VxKXQuY29kZXBvaW50PTE1JmU7ZWxzZSBpZig0PT09dC51dGY4c2VxKXQuY29kZXBvaW50PTcmZTtlbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIFVURi04IHNlcXVlbmNlIik7dC51dGY4c2VxLT0xfWVsc2UgaWYodC51dGY4c2VxPjApe2lmKGU8PTEyNyl0aHJvdyBFcnJvcigiSW52YWxpZCBVVEYtOCBzZXF1ZW5jZSIpO3QuY29kZXBvaW50PXQuY29kZXBvaW50PDw2fDYzJmUsdC51dGY4c2VxLT0xLDA9PT10LnV0ZjhzZXEmJnModC5jb2RlcG9pbnQpfX0oZSxyLHMpfTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrPTEpZVYoZS5jaGFyQ29kZUF0KHQpLGksbik7cmV0dXJuIHQuam9pbigiIil9bGV0IGVRPSgpPT4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCxlWD17dGVzdGVkOiExLHdyaXRhYmxlOiExfSxlWj0oKT0+e2lmKCFlUSgpKXJldHVybiExO3RyeXtpZigib2JqZWN0IiE9dHlwZW9mIGdsb2JhbFRoaXMubG9jYWxTdG9yYWdlKXJldHVybiExfWNhdGNoKGUpe3JldHVybiExfWlmKGVYLnRlc3RlZClyZXR1cm4gZVgud3JpdGFibGU7bGV0IGU9YGxzd3QtJHtNYXRoLnJhbmRvbSgpfSR7TWF0aC5yYW5kb20oKX1gO3RyeXtnbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGUsZSksZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShlKSxlWC50ZXN0ZWQ9ITAsZVgud3JpdGFibGU9ITB9Y2F0Y2goZSl7ZVgudGVzdGVkPSEwLGVYLndyaXRhYmxlPSExfXJldHVybiBlWC53cml0YWJsZX0sZTA9dD0+e2xldCBzO3JldHVybiBzPXR8fCgidW5kZWZpbmVkIj09dHlwZW9mIGZldGNoPyguLi50KT0+ZS5BKDYxMTczNykudGhlbigoe2RlZmF1bHQ6ZX0pPT5lKC4uLnQpKTpmZXRjaCksKC4uLmUpPT5zKC4uLmUpfSxlMT1hc3luYyhlLHQscyk9Pnthd2FpdCBlLnNldEl0ZW0odCxKU09OLnN0cmluZ2lmeShzKSl9LGUyPWFzeW5jKGUsdCk9PntsZXQgcz1hd2FpdCBlLmdldEl0ZW0odCk7aWYoIXMpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBKU09OLnBhcnNlKHMpfWNhdGNoKGUpe3JldHVybiBzfX0sZTM9YXN5bmMoZSx0KT0+e2F3YWl0IGUucmVtb3ZlSXRlbSh0KX07Y2xhc3MgZTR7Y29uc3RydWN0b3IoKXt0aGlzLnByb21pc2U9bmV3IGU0LnByb21pc2VDb25zdHJ1Y3RvcigoZSx0KT0+e3RoaXMucmVzb2x2ZT1lLHRoaXMucmVqZWN0PXR9KX19ZnVuY3Rpb24gZTUoZSl7bGV0IHQ9ZS5zcGxpdCgiLiIpO2lmKDMhPT10Lmxlbmd0aCl0aHJvdyBuZXcgZUsoIkludmFsaWQgSldUIHN0cnVjdHVyZSIpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKCFlQy50ZXN0KHRbZV0pKXRocm93IG5ldyBlSygiSldUIG5vdCBpbiBiYXNlNjR1cmwgZm9ybWF0Iik7cmV0dXJue2hlYWRlcjpKU09OLnBhcnNlKGVZKHRbMF0pKSxwYXlsb2FkOkpTT04ucGFyc2UoZVkodFsxXSkpLHNpZ25hdHVyZTpmdW5jdGlvbihlKXtsZXQgdD1bXSxzPXtxdWV1ZTowLHF1ZXVlZEJpdHM6MH0scj1lPT57dC5wdXNoKGUpfTtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrPTEpZVYoZS5jaGFyQ29kZUF0KHQpLHMscik7cmV0dXJuIG5ldyBVaW50OEFycmF5KHQpfSh0WzJdKSxyYXc6e2hlYWRlcjp0WzBdLHBheWxvYWQ6dFsxXX19fWFzeW5jIGZ1bmN0aW9uIGU2KGUpe3JldHVybiBhd2FpdCBuZXcgUHJvbWlzZSh0PT57c2V0VGltZW91dCgoKT0+dChudWxsKSxlKX0pfWZ1bmN0aW9uIGU4KGUpe3JldHVybigiMCIrZS50b1N0cmluZygxNikpLnN1YnN0cigtMil9YXN5bmMgZnVuY3Rpb24gZTkoZSl7bGV0IHQ9bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGUpO3JldHVybiBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCJTSEEtMjU2Iix0KSkpLm1hcChlPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGUpKS5qb2luKCIiKX1hc3luYyBmdW5jdGlvbiBlNyhlKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8dm9pZCAwPT09Y3J5cHRvLnN1YnRsZXx8InVuZGVmaW5lZCI9PXR5cGVvZiBUZXh0RW5jb2Rlcj8oY29uc29sZS53YXJuKCJXZWJDcnlwdG8gQVBJIGlzIG5vdCBzdXBwb3J0ZWQuIENvZGUgY2hhbGxlbmdlIG1ldGhvZCB3aWxsIGRlZmF1bHQgdG8gdXNlIHBsYWluIGluc3RlYWQgb2Ygc2hhMjU2LiIpLGUpOmJ0b2EoYXdhaXQgZTkoZSkpLnJlcGxhY2UoL1wrL2csIi0iKS5yZXBsYWNlKC9cLy9nLCJfIikucmVwbGFjZSgvPSskLywiIil9YXN5bmMgZnVuY3Rpb24gdGUoZSx0LHM9ITEpe2xldCByPWZ1bmN0aW9uKCl7bGV0IGU9bmV3IFVpbnQzMkFycmF5KDU2KTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0byl7bGV0IGU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LS5ffiIsdD1lLmxlbmd0aCxzPSIiO2ZvcihsZXQgcj0wO3I8NTY7cisrKXMrPWUuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSp0KSk7cmV0dXJuIHN9cmV0dXJuIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoZSksQXJyYXkuZnJvbShlLGU4KS5qb2luKCIiKX0oKSxpPXI7cyYmKGkrPSIvUEFTU1dPUkRfUkVDT1ZFUlkiKSxhd2FpdCBlMShlLGAke3R9LWNvZGUtdmVyaWZpZXJgLGkpO2xldCBuPWF3YWl0IGU3KHIpLGE9cj09PW4/InBsYWluIjoiczI1NiI7cmV0dXJuW24sYV19ZTQucHJvbWlzZUNvbnN0cnVjdG9yPVByb21pc2U7bGV0IHR0PS9eMlswLTldezN9LSgwWzEtOV18MVswLTJdKS0oMFsxLTldfDFbMC05XXwyWzAtOV18M1swLTFdKSQvaTt2YXIgdHM9ZnVuY3Rpb24oZSx0KXt2YXIgcz17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmMD50LmluZGV4T2YocikmJihzW3JdPWVbcl0pO2lmKG51bGwhPWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtpPHIubGVuZ3RoO2krKykwPnQuaW5kZXhPZihyW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltpXSkmJihzW3JbaV1dPWVbcltpXV0pO3JldHVybiBzfTtsZXQgdHI9ZT0+ZS5tc2d8fGUubWVzc2FnZXx8ZS5lcnJvcl9kZXNjcmlwdGlvbnx8ZS5lcnJvcnx8SlNPTi5zdHJpbmdpZnkoZSksdGk9WzUwMiw1MDMsNTA0XTthc3luYyBmdW5jdGlvbiB0bihlKXt2YXIgdDtsZXQgcyxyO2lmKCEoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmInN0YXR1cyJpbiBlJiYib2siaW4gZSYmImpzb24iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUuanNvbikpdGhyb3cgbmV3IGVGKHRyKGUpLDApO2lmKHRpLmluY2x1ZGVzKGUuc3RhdHVzKSl0aHJvdyBuZXcgZUYodHIoZSksZS5zdGF0dXMpO3RyeXtzPWF3YWl0IGUuanNvbigpfWNhdGNoKGUpe3Rocm93IG5ldyBlVSh0cihlKSxlKX1sZXQgaT1mdW5jdGlvbihlKXtsZXQgdD1lLmhlYWRlcnMuZ2V0KGUkKTtpZighdHx8IXQubWF0Y2godHQpKXJldHVybiBudWxsO3RyeXtyZXR1cm4gbmV3IERhdGUoYCR7dH1UMDA6MDA6MDAuMFpgKX1jYXRjaChlKXtyZXR1cm4gbnVsbH19KGUpO2lmKGkmJmkuZ2V0VGltZSgpPj1lQVsiMjAyNC0wMS0wMSJdLnRpbWVzdGFtcCYmIm9iamVjdCI9PXR5cGVvZiBzJiZzJiYic3RyaW5nIj09dHlwZW9mIHMuY29kZT9yPXMuY29kZToib2JqZWN0Ij09dHlwZW9mIHMmJnMmJiJzdHJpbmciPT10eXBlb2Ygcy5lcnJvcl9jb2RlJiYocj1zLmVycm9yX2NvZGUpLHIpe2lmKCJ3ZWFrX3Bhc3N3b3JkIj09PXIpdGhyb3cgbmV3IGV6KHRyKHMpLGUuc3RhdHVzLChudWxsPT0odD1zLndlYWtfcGFzc3dvcmQpP3ZvaWQgMDp0LnJlYXNvbnMpfHxbXSk7ZWxzZSBpZigic2Vzc2lvbl9ub3RfZm91bmQiPT09cil0aHJvdyBuZXcgZUR9ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHMmJnMmJiJvYmplY3QiPT10eXBlb2Ygcy53ZWFrX3Bhc3N3b3JkJiZzLndlYWtfcGFzc3dvcmQmJkFycmF5LmlzQXJyYXkocy53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMpJiZzLndlYWtfcGFzc3dvcmQucmVhc29ucy5sZW5ndGgmJnMud2Vha19wYXNzd29yZC5yZWFzb25zLnJlZHVjZSgoZSx0KT0+ZSYmInN0cmluZyI9PXR5cGVvZiB0LCEwKSl0aHJvdyBuZXcgZXoodHIocyksZS5zdGF0dXMscy53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMpO3Rocm93IG5ldyBlSSh0cihzKSxlLnN0YXR1c3x8NTAwLHIpfWFzeW5jIGZ1bmN0aW9uIHRhKGUsdCxzLHIpe3ZhciBpO2xldCBuPU9iamVjdC5hc3NpZ24oe30sbnVsbD09cj92b2lkIDA6ci5oZWFkZXJzKTtuW2UkXXx8KG5bZSRdPWVBWyIyMDI0LTAxLTAxIl0ubmFtZSksKG51bGw9PXI/dm9pZCAwOnIuand0KSYmKG4uQXV0aG9yaXphdGlvbj1gQmVhcmVyICR7ci5qd3R9YCk7bGV0IGE9bnVsbCE9KGk9bnVsbD09cj92b2lkIDA6ci5xdWVyeSk/aTp7fTsobnVsbD09cj92b2lkIDA6ci5yZWRpcmVjdFRvKSYmKGEucmVkaXJlY3RfdG89ci5yZWRpcmVjdFRvKTtsZXQgbz1PYmplY3Qua2V5cyhhKS5sZW5ndGg/Ij8iK25ldyBVUkxTZWFyY2hQYXJhbXMoYSkudG9TdHJpbmcoKToiIixsPWF3YWl0IHRvKGUsdCxzK28se2hlYWRlcnM6bixub1Jlc29sdmVKc29uOm51bGw9PXI/dm9pZCAwOnIubm9SZXNvbHZlSnNvbn0se30sbnVsbD09cj92b2lkIDA6ci5ib2R5KTtyZXR1cm4obnVsbD09cj92b2lkIDA6ci54Zm9ybSk/bnVsbD09cj92b2lkIDA6ci54Zm9ybShsKTp7ZGF0YTpPYmplY3QuYXNzaWduKHt9LGwpLGVycm9yOm51bGx9fWFzeW5jIGZ1bmN0aW9uIHRvKGUsdCxzLHIsaSxuKXtsZXQgYSxvLGw9KG89e21ldGhvZDp0LGhlYWRlcnM6KG51bGw9PXI/dm9pZCAwOnIuaGVhZGVycyl8fHt9fSwiR0VUIj09PXQ/bzooby5oZWFkZXJzPU9iamVjdC5hc3NpZ24oeyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgifSxudWxsPT1yP3ZvaWQgMDpyLmhlYWRlcnMpLG8uYm9keT1KU09OLnN0cmluZ2lmeShuKSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbyksaSkpKTt0cnl7YT1hd2FpdCBlKHMsT2JqZWN0LmFzc2lnbih7fSxsKSl9Y2F0Y2goZSl7dGhyb3cgY29uc29sZS5lcnJvcihlKSxuZXcgZUYodHIoZSksMCl9aWYoYS5va3x8YXdhaXQgdG4oYSksbnVsbD09cj92b2lkIDA6ci5ub1Jlc29sdmVKc29uKXJldHVybiBhO3RyeXtyZXR1cm4gYXdhaXQgYS5qc29uKCl9Y2F0Y2goZSl7YXdhaXQgdG4oZSl9fWZ1bmN0aW9uIHRsKGUpe3ZhciB0LHMscjtsZXQgaT1udWxsOyhyPWUpLmFjY2Vzc190b2tlbiYmci5yZWZyZXNoX3Rva2VuJiZyLmV4cGlyZXNfaW4mJihpPU9iamVjdC5hc3NpZ24oe30sZSksZS5leHBpcmVzX2F0fHwoaS5leHBpcmVzX2F0PShzPWUuZXhwaXJlc19pbixNYXRoLnJvdW5kKERhdGUubm93KCkvMWUzKStzKSkpO3JldHVybntkYXRhOntzZXNzaW9uOmksdXNlcjpudWxsIT0odD1lLnVzZXIpP3Q6ZX0sZXJyb3I6bnVsbH19ZnVuY3Rpb24gdGgoZSl7bGV0IHQ9dGwoZSk7cmV0dXJuIXQuZXJyb3ImJmUud2Vha19wYXNzd29yZCYmIm9iamVjdCI9PXR5cGVvZiBlLndlYWtfcGFzc3dvcmQmJkFycmF5LmlzQXJyYXkoZS53ZWFrX3Bhc3N3b3JkLnJlYXNvbnMpJiZlLndlYWtfcGFzc3dvcmQucmVhc29ucy5sZW5ndGgmJmUud2Vha19wYXNzd29yZC5tZXNzYWdlJiYic3RyaW5nIj09dHlwZW9mIGUud2Vha19wYXNzd29yZC5tZXNzYWdlJiZlLndlYWtfcGFzc3dvcmQucmVhc29ucy5yZWR1Y2UoKGUsdCk9PmUmJiJzdHJpbmciPT10eXBlb2YgdCwhMCkmJih0LmRhdGEud2Vha19wYXNzd29yZD1lLndlYWtfcGFzc3dvcmQpLHR9ZnVuY3Rpb24gdGMoZSl7dmFyIHQ7cmV0dXJue2RhdGE6e3VzZXI6bnVsbCE9KHQ9ZS51c2VyKT90OmV9LGVycm9yOm51bGx9fWZ1bmN0aW9uIHR1KGUpe3JldHVybntkYXRhOmUsZXJyb3I6bnVsbH19ZnVuY3Rpb24gdGQoZSl7bGV0e2FjdGlvbl9saW5rOnQsZW1haWxfb3RwOnMsaGFzaGVkX3Rva2VuOnIscmVkaXJlY3RfdG86aSx2ZXJpZmljYXRpb25fdHlwZTpufT1lO3JldHVybntkYXRhOntwcm9wZXJ0aWVzOnthY3Rpb25fbGluazp0LGVtYWlsX290cDpzLGhhc2hlZF90b2tlbjpyLHJlZGlyZWN0X3RvOmksdmVyaWZpY2F0aW9uX3R5cGU6bn0sdXNlcjpPYmplY3QuYXNzaWduKHt9LHRzKGUsWyJhY3Rpb25fbGluayIsImVtYWlsX290cCIsImhhc2hlZF90b2tlbiIsInJlZGlyZWN0X3RvIiwidmVyaWZpY2F0aW9uX3R5cGUiXSkpfSxlcnJvcjpudWxsfX1mdW5jdGlvbiB0ZihlKXtyZXR1cm4gZX12YXIgdHA9ZnVuY3Rpb24oZSx0KXt2YXIgcz17fTtmb3IodmFyIHIgaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxyKSYmMD50LmluZGV4T2YocikmJihzW3JdPWVbcl0pO2lmKG51bGwhPWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKWZvcih2YXIgaT0wLHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtpPHIubGVuZ3RoO2krKykwPnQuaW5kZXhPZihyW2ldKSYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUscltpXSkmJihzW3JbaV1dPWVbcltpXV0pO3JldHVybiBzfTtjbGFzcyB0Z3tjb25zdHJ1Y3Rvcih7dXJsOmU9IiIsaGVhZGVyczp0PXt9LGZldGNoOnN9KXt0aGlzLnVybD1lLHRoaXMuaGVhZGVycz10LHRoaXMuZmV0Y2g9ZTAocyksdGhpcy5tZmE9e2xpc3RGYWN0b3JzOnRoaXMuX2xpc3RGYWN0b3JzLmJpbmQodGhpcyksZGVsZXRlRmFjdG9yOnRoaXMuX2RlbGV0ZUZhY3Rvci5iaW5kKHRoaXMpfX1hc3luYyBzaWduT3V0KGUsdD0iZ2xvYmFsIil7dHJ5e3JldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vbG9nb3V0P3Njb3BlPSR7dH1gLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxqd3Q6ZSxub1Jlc29sdmVKc29uOiEwfSkse2RhdGE6bnVsbCxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIGludml0ZVVzZXJCeUVtYWlsKGUsdD17fSl7dHJ5e3JldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vaW52aXRlYCx7Ym9keTp7ZW1haWw6ZSxkYXRhOnQuZGF0YX0saGVhZGVyczp0aGlzLmhlYWRlcnMscmVkaXJlY3RUbzp0LnJlZGlyZWN0VG8seGZvcm06dGN9KX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsfSxlcnJvcjplfTt0aHJvdyBlfX1hc3luYyBnZW5lcmF0ZUxpbmsoZSl7dHJ5e2xldHtvcHRpb25zOnR9PWUscz10cChlLFsib3B0aW9ucyJdKSxyPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxzKSx0KTtyZXR1cm4ibmV3RW1haWwiaW4gcyYmKHIubmV3X2VtYWlsPW51bGw9PXM/dm9pZCAwOnMubmV3RW1haWwsZGVsZXRlIHIubmV3RW1haWwpLGF3YWl0IHRhKHRoaXMuZmV0Y2gsIlBPU1QiLGAke3RoaXMudXJsfS9hZG1pbi9nZW5lcmF0ZV9saW5rYCx7Ym9keTpyLGhlYWRlcnM6dGhpcy5oZWFkZXJzLHhmb3JtOnRkLHJlZGlyZWN0VG86bnVsbD09dD92b2lkIDA6dC5yZWRpcmVjdFRvfSl9Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3Byb3BlcnRpZXM6bnVsbCx1c2VyOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIGNyZWF0ZVVzZXIoZSl7dHJ5e3JldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnNgLHtib2R5OmUsaGVhZGVyczp0aGlzLmhlYWRlcnMseGZvcm06dGN9KX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsfSxlcnJvcjplfTt0aHJvdyBlfX1hc3luYyBsaXN0VXNlcnMoZSl7dmFyIHQscyxyLGksbixhLG87dHJ5e2xldCBsPXtuZXh0UGFnZTpudWxsLGxhc3RQYWdlOjAsdG90YWw6MH0saD1hd2FpdCB0YSh0aGlzLmZldGNoLCJHRVQiLGAke3RoaXMudXJsfS9hZG1pbi91c2Vyc2Ase2hlYWRlcnM6dGhpcy5oZWFkZXJzLG5vUmVzb2x2ZUpzb246ITAscXVlcnk6e3BhZ2U6bnVsbCE9KHM9bnVsbD09KHQ9bnVsbD09ZT92b2lkIDA6ZS5wYWdlKT92b2lkIDA6dC50b1N0cmluZygpKT9zOiIiLHBlcl9wYWdlOm51bGwhPShpPW51bGw9PShyPW51bGw9PWU/dm9pZCAwOmUucGVyUGFnZSk/dm9pZCAwOnIudG9TdHJpbmcoKSk/aToiIn0seGZvcm06dGZ9KTtpZihoLmVycm9yKXRocm93IGguZXJyb3I7bGV0IGM9YXdhaXQgaC5qc29uKCksdT1udWxsIT0obj1oLmhlYWRlcnMuZ2V0KCJ4LXRvdGFsLWNvdW50IikpP246MCxkPW51bGwhPShvPW51bGw9PShhPWguaGVhZGVycy5nZXQoImxpbmsiKSk/dm9pZCAwOmEuc3BsaXQoIiwiKSk/bzpbXTtyZXR1cm4gZC5sZW5ndGg+MCYmKGQuZm9yRWFjaChlPT57bGV0IHQ9cGFyc2VJbnQoZS5zcGxpdCgiOyIpWzBdLnNwbGl0KCI9IilbMV0uc3Vic3RyaW5nKDAsMSkpLHM9SlNPTi5wYXJzZShlLnNwbGl0KCI7IilbMV0uc3BsaXQoIj0iKVsxXSk7bFtgJHtzfVBhZ2VgXT10fSksbC50b3RhbD1wYXJzZUludCh1KSkse2RhdGE6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGMpLGwpLGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOnt1c2VyczpbXX0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgZ2V0VXNlckJ5SWQoZSl7dHJ5e3JldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJHRVQiLGAke3RoaXMudXJsfS9hZG1pbi91c2Vycy8ke2V9YCx7aGVhZGVyczp0aGlzLmhlYWRlcnMseGZvcm06dGN9KX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsfSxlcnJvcjplfTt0aHJvdyBlfX1hc3luYyB1cGRhdGVVc2VyQnlJZChlLHQpe3RyeXtyZXR1cm4gYXdhaXQgdGEodGhpcy5mZXRjaCwiUFVUIixgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHtlfWAse2JvZHk6dCxoZWFkZXJzOnRoaXMuaGVhZGVycyx4Zm9ybTp0Y30pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOnt1c2VyOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIGRlbGV0ZVVzZXIoZSx0PSExKXt0cnl7cmV0dXJuIGF3YWl0IHRhKHRoaXMuZmV0Y2gsIkRFTEVURSIsYCR7dGhpcy51cmx9L2FkbWluL3VzZXJzLyR7ZX1gLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxib2R5OntzaG91bGRfc29mdF9kZWxldGU6dH0seGZvcm06dGN9KX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsfSxlcnJvcjplfTt0aHJvdyBlfX1hc3luYyBfbGlzdEZhY3RvcnMoZSl7dHJ5e2xldHtkYXRhOnQsZXJyb3I6c309YXdhaXQgdGEodGhpcy5mZXRjaCwiR0VUIixgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHtlLnVzZXJJZH0vZmFjdG9yc2Ase2hlYWRlcnM6dGhpcy5oZWFkZXJzLHhmb3JtOmU9Pih7ZGF0YTp7ZmFjdG9yczplfSxlcnJvcjpudWxsfSl9KTtyZXR1cm57ZGF0YTp0LGVycm9yOnN9fWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgX2RlbGV0ZUZhY3RvcihlKXt0cnl7cmV0dXJue2RhdGE6YXdhaXQgdGEodGhpcy5mZXRjaCwiREVMRVRFIixgJHt0aGlzLnVybH0vYWRtaW4vdXNlcnMvJHtlLnVzZXJJZH0vZmFjdG9ycy8ke2UuaWR9YCx7aGVhZGVyczp0aGlzLmhlYWRlcnN9KSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fX1sZXQgdHk9e2dldEl0ZW06ZT0+ZVooKT9nbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGUpOm51bGwsc2V0SXRlbTooZSx0KT0+e2VaKCkmJmdsb2JhbFRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oZSx0KX0scmVtb3ZlSXRlbTplPT57ZVooKSYmZ2xvYmFsVGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShlKX19O2Z1bmN0aW9uIHRtKGU9e30pe3JldHVybntnZXRJdGVtOnQ9PmVbdF18fG51bGwsc2V0SXRlbToodCxzKT0+e2VbdF09c30scmVtb3ZlSXRlbTp0PT57ZGVsZXRlIGVbdF19fX1sZXQgdHc9e2RlYnVnOiEhKGdsb2JhbFRoaXMmJmVaKCkmJmdsb2JhbFRoaXMubG9jYWxTdG9yYWdlJiYidHJ1ZSI9PT1nbG9iYWxUaGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJzdXBhYmFzZS5nb3RydWUtanMubG9ja3MuZGVidWciKSl9O2NsYXNzIHRfIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5pc0FjcXVpcmVUaW1lb3V0PSEwfX1jbGFzcyB0diBleHRlbmRzIHRfe31hc3luYyBmdW5jdGlvbiB0YihlLHQscyl7dHcuZGVidWcmJmNvbnNvbGUubG9nKCJAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrOiBhY3F1aXJlIGxvY2siLGUsdCk7bGV0IHI9bmV3IGdsb2JhbFRoaXMuQWJvcnRDb250cm9sbGVyO3JldHVybiB0PjAmJnNldFRpbWVvdXQoKCk9PntyLmFib3J0KCksdHcuZGVidWcmJmNvbnNvbGUubG9nKCJAc3VwYWJhc2UvZ290cnVlLWpzOiBuYXZpZ2F0b3JMb2NrIGFjcXVpcmUgdGltZWQgb3V0IixlKX0sdCksYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+Z2xvYmFsVGhpcy5uYXZpZ2F0b3IubG9ja3MucmVxdWVzdChlLDA9PT10P3ttb2RlOiJleGNsdXNpdmUiLGlmQXZhaWxhYmxlOiEwfTp7bW9kZToiZXhjbHVzaXZlIixzaWduYWw6ci5zaWduYWx9LGFzeW5jIHI9PntpZihyKXt0dy5kZWJ1ZyYmY29uc29sZS5sb2coIkBzdXBhYmFzZS9nb3RydWUtanM6IG5hdmlnYXRvckxvY2s6IGFjcXVpcmVkIixlLHIubmFtZSk7dHJ5e3JldHVybiBhd2FpdCBzKCl9ZmluYWxseXt0dy5kZWJ1ZyYmY29uc29sZS5sb2coIkBzdXBhYmFzZS9nb3RydWUtanM6IG5hdmlnYXRvckxvY2s6IHJlbGVhc2VkIixlLHIubmFtZSl9fWlmKDA9PT10KXRocm93IHR3LmRlYnVnJiZjb25zb2xlLmxvZygiQHN1cGFiYXNlL2dvdHJ1ZS1qczogbmF2aWdhdG9yTG9jazogbm90IGltbWVkaWF0ZWx5IGF2YWlsYWJsZSIsZSksbmV3IHR2KGBBY3F1aXJpbmcgYW4gZXhjbHVzaXZlIE5hdmlnYXRvciBMb2NrTWFuYWdlciBsb2NrICIke2V9IiBpbW1lZGlhdGVseSBmYWlsZWRgKTtpZih0dy5kZWJ1Zyl0cnl7bGV0IGU9YXdhaXQgZ2xvYmFsVGhpcy5uYXZpZ2F0b3IubG9ja3MucXVlcnkoKTtjb25zb2xlLmxvZygiQHN1cGFiYXNlL2dvdHJ1ZS1qczogTmF2aWdhdG9yIExvY2tNYW5hZ2VyIHN0YXRlIixKU09OLnN0cmluZ2lmeShlLG51bGwsIiAgIikpfWNhdGNoKGUpe2NvbnNvbGUud2FybigiQHN1cGFiYXNlL2dvdHJ1ZS1qczogRXJyb3Igd2hlbiBxdWVyeWluZyBOYXZpZ2F0b3IgTG9ja01hbmFnZXIgc3RhdGUiLGUpfXJldHVybiBjb25zb2xlLndhcm4oIkBzdXBhYmFzZS9nb3RydWUtanM6IE5hdmlnYXRvciBMb2NrTWFuYWdlciByZXR1cm5lZCBhIG51bGwgbG9jayB3aGVuIHVzaW5nICNyZXF1ZXN0IHdpdGhvdXQgaWZBdmFpbGFibGUgc2V0IHRvIHRydWUsIGl0IGFwcGVhcnMgdGhpcyBicm93c2VyIGlzIG5vdCBmb2xsb3dpbmcgdGhlIExvY2tNYW5hZ2VyIHNwZWMgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0xvY2tNYW5hZ2VyL3JlcXVlc3QiKSxhd2FpdCBzKCl9KSl9aWYoIm9iamVjdCIhPXR5cGVvZiBnbG9iYWxUaGlzKXRyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LnByb3RvdHlwZSwiX19tYWdpY19fIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGNvbmZpZ3VyYWJsZTohMH0pLF9fbWFnaWNfXy5nbG9iYWxUaGlzPV9fbWFnaWNfXyxkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX21hZ2ljX199Y2F0Y2goZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYoc2VsZi5nbG9iYWxUaGlzPXNlbGYpfWxldCB0az17dXJsOiJodHRwOi8vbG9jYWxob3N0Ojk5OTkiLHN0b3JhZ2VLZXk6InN1cGFiYXNlLmF1dGgudG9rZW4iLGF1dG9SZWZyZXNoVG9rZW46ITAscGVyc2lzdFNlc3Npb246ITAsZGV0ZWN0U2Vzc2lvbkluVXJsOiEwLGhlYWRlcnM6ZVAsZmxvd1R5cGU6ImltcGxpY2l0IixkZWJ1ZzohMSxoYXNDdXN0b21BdXRob3JpemF0aW9uSGVhZGVyOiExfTthc3luYyBmdW5jdGlvbiB0VChlLHQscyl7cmV0dXJuIGF3YWl0IHMoKX1jbGFzcyB0U3tjb25zdHJ1Y3RvcihlKXt2YXIgdCxzO3RoaXMubWVtb3J5U3RvcmFnZT1udWxsLHRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycz1uZXcgTWFwLHRoaXMuYXV0b1JlZnJlc2hUaWNrZXI9bnVsbCx0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2s9bnVsbCx0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZD1udWxsLHRoaXMuaW5pdGlhbGl6ZVByb21pc2U9bnVsbCx0aGlzLmRldGVjdFNlc3Npb25JblVybD0hMCx0aGlzLmhhc0N1c3RvbUF1dGhvcml6YXRpb25IZWFkZXI9ITEsdGhpcy5zdXBwcmVzc0dldFNlc3Npb25XYXJuaW5nPSExLHRoaXMubG9ja0FjcXVpcmVkPSExLHRoaXMucGVuZGluZ0luTG9jaz1bXSx0aGlzLmJyb2FkY2FzdENoYW5uZWw9bnVsbCx0aGlzLmxvZ2dlcj1jb25zb2xlLmxvZyx0aGlzLmluc3RhbmNlSUQ9dFMubmV4dEluc3RhbmNlSUQsdFMubmV4dEluc3RhbmNlSUQrPTEsdGhpcy5pbnN0YW5jZUlEPjAmJmVRKCkmJmNvbnNvbGUud2FybigiTXVsdGlwbGUgR29UcnVlQ2xpZW50IGluc3RhbmNlcyBkZXRlY3RlZCBpbiB0aGUgc2FtZSBicm93c2VyIGNvbnRleHQuIEl0IGlzIG5vdCBhbiBlcnJvciwgYnV0IHRoaXMgc2hvdWxkIGJlIGF2b2lkZWQgYXMgaXQgbWF5IHByb2R1Y2UgdW5kZWZpbmVkIGJlaGF2aW9yIHdoZW4gdXNlZCBjb25jdXJyZW50bHkgdW5kZXIgdGhlIHNhbWUgc3RvcmFnZSBrZXkuIik7Y29uc3Qgcj1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGspLGUpO2lmKHRoaXMubG9nRGVidWdNZXNzYWdlcz0hIXIuZGVidWcsImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVidWcmJih0aGlzLmxvZ2dlcj1yLmRlYnVnKSx0aGlzLnBlcnNpc3RTZXNzaW9uPXIucGVyc2lzdFNlc3Npb24sdGhpcy5zdG9yYWdlS2V5PXIuc3RvcmFnZUtleSx0aGlzLmF1dG9SZWZyZXNoVG9rZW49ci5hdXRvUmVmcmVzaFRva2VuLHRoaXMuYWRtaW49bmV3IHRnKHt1cmw6ci51cmwsaGVhZGVyczpyLmhlYWRlcnMsZmV0Y2g6ci5mZXRjaH0pLHRoaXMudXJsPXIudXJsLHRoaXMuaGVhZGVycz1yLmhlYWRlcnMsdGhpcy5mZXRjaD1lMChyLmZldGNoKSx0aGlzLmxvY2s9ci5sb2NrfHx0VCx0aGlzLmRldGVjdFNlc3Npb25JblVybD1yLmRldGVjdFNlc3Npb25JblVybCx0aGlzLmZsb3dUeXBlPXIuZmxvd1R5cGUsdGhpcy5oYXNDdXN0b21BdXRob3JpemF0aW9uSGVhZGVyPXIuaGFzQ3VzdG9tQXV0aG9yaXphdGlvbkhlYWRlcixyLmxvY2s/dGhpcy5sb2NrPXIubG9jazplUSgpJiYobnVsbD09KHQ9bnVsbD09Z2xvYmFsVGhpcz92b2lkIDA6Z2xvYmFsVGhpcy5uYXZpZ2F0b3IpP3ZvaWQgMDp0LmxvY2tzKT90aGlzLmxvY2s9dGI6dGhpcy5sb2NrPXRULHRoaXMuandrcz17a2V5czpbXX0sdGhpcy5qd2tzX2NhY2hlZF9hdD1OdW1iZXIuTUlOX1NBRkVfSU5URUdFUix0aGlzLm1mYT17dmVyaWZ5OnRoaXMuX3ZlcmlmeS5iaW5kKHRoaXMpLGVucm9sbDp0aGlzLl9lbnJvbGwuYmluZCh0aGlzKSx1bmVucm9sbDp0aGlzLl91bmVucm9sbC5iaW5kKHRoaXMpLGNoYWxsZW5nZTp0aGlzLl9jaGFsbGVuZ2UuYmluZCh0aGlzKSxsaXN0RmFjdG9yczp0aGlzLl9saXN0RmFjdG9ycy5iaW5kKHRoaXMpLGNoYWxsZW5nZUFuZFZlcmlmeTp0aGlzLl9jaGFsbGVuZ2VBbmRWZXJpZnkuYmluZCh0aGlzKSxnZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWw6dGhpcy5fZ2V0QXV0aGVudGljYXRvckFzc3VyYW5jZUxldmVsLmJpbmQodGhpcyl9LHRoaXMucGVyc2lzdFNlc3Npb24/ci5zdG9yYWdlP3RoaXMuc3RvcmFnZT1yLnN0b3JhZ2U6ZVooKT90aGlzLnN0b3JhZ2U9dHk6KHRoaXMubWVtb3J5U3RvcmFnZT17fSx0aGlzLnN0b3JhZ2U9dG0odGhpcy5tZW1vcnlTdG9yYWdlKSk6KHRoaXMubWVtb3J5U3RvcmFnZT17fSx0aGlzLnN0b3JhZ2U9dG0odGhpcy5tZW1vcnlTdG9yYWdlKSksZVEoKSYmZ2xvYmFsVGhpcy5Ccm9hZGNhc3RDaGFubmVsJiZ0aGlzLnBlcnNpc3RTZXNzaW9uJiZ0aGlzLnN0b3JhZ2VLZXkpe3RyeXt0aGlzLmJyb2FkY2FzdENoYW5uZWw9bmV3IGdsb2JhbFRoaXMuQnJvYWRjYXN0Q2hhbm5lbCh0aGlzLnN0b3JhZ2VLZXkpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgYSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCwgbXVsdGktdGFiIHN0YXRlIGNoYW5nZXMgd2lsbCBub3QgYmUgYXZhaWxhYmxlIixlKX1udWxsPT0ocz10aGlzLmJyb2FkY2FzdENoYW5uZWwpfHxzLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGFzeW5jIGU9Pnt0aGlzLl9kZWJ1ZygicmVjZWl2ZWQgYnJvYWRjYXN0IG5vdGlmaWNhdGlvbiBmcm9tIG90aGVyIHRhYiBvciBjbGllbnQiLGUpLGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKGUuZGF0YS5ldmVudCxlLmRhdGEuc2Vzc2lvbiwhMSl9KX10aGlzLmluaXRpYWxpemUoKX1fZGVidWcoLi4uZSl7cmV0dXJuIHRoaXMubG9nRGVidWdNZXNzYWdlcyYmdGhpcy5sb2dnZXIoYEdvVHJ1ZUNsaWVudEAke3RoaXMuaW5zdGFuY2VJRH0gKCR7ZU99KSAke25ldyBEYXRlKCkudG9JU09TdHJpbmcoKX1gLC4uLmUpLHRoaXN9YXN5bmMgaW5pdGlhbGl6ZSgpe3JldHVybiB0aGlzLmluaXRpYWxpemVQcm9taXNlfHwodGhpcy5pbml0aWFsaXplUHJvbWlzZT0oYXN5bmMoKT0+YXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsYXN5bmMoKT0+YXdhaXQgdGhpcy5faW5pdGlhbGl6ZSgpKSkoKSksYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZX1hc3luYyBfaW5pdGlhbGl6ZSgpe3ZhciBlO3RyeXtsZXQgdD1mdW5jdGlvbihlKXtsZXQgdD17fSxzPW5ldyBVUkwoZSk7aWYocy5oYXNoJiYiIyI9PT1zLmhhc2hbMF0pdHJ5e25ldyBVUkxTZWFyY2hQYXJhbXMocy5oYXNoLnN1YnN0cmluZygxKSkuZm9yRWFjaCgoZSxzKT0+e3Rbc109ZX0pfWNhdGNoKGUpe31yZXR1cm4gcy5zZWFyY2hQYXJhbXMuZm9yRWFjaCgoZSxzKT0+e3Rbc109ZX0pLHR9KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxzPSJub25lIjtpZih0aGlzLl9pc0ltcGxpY2l0R3JhbnRDYWxsYmFjayh0KT9zPSJpbXBsaWNpdCI6YXdhaXQgdGhpcy5faXNQS0NFQ2FsbGJhY2sodCkmJihzPSJwa2NlIiksZVEoKSYmdGhpcy5kZXRlY3RTZXNzaW9uSW5VcmwmJiJub25lIiE9PXMpe2xldHtkYXRhOnIsZXJyb3I6aX09YXdhaXQgdGhpcy5fZ2V0U2Vzc2lvbkZyb21VUkwodCxzKTtpZihpKXtpZih0aGlzLl9kZWJ1ZygiI19pbml0aWFsaXplKCkiLCJlcnJvciBkZXRlY3Rpbmcgc2Vzc2lvbiBmcm9tIFVSTCIsaSksZXgoaSkmJiJBdXRoSW1wbGljaXRHcmFudFJlZGlyZWN0RXJyb3IiPT09aS5uYW1lKXtsZXQgdD1udWxsPT0oZT1pLmRldGFpbHMpP3ZvaWQgMDplLmNvZGU7aWYoImlkZW50aXR5X2FscmVhZHlfZXhpc3RzIj09PXR8fCJpZGVudGl0eV9ub3RfZm91bmQiPT09dHx8InNpbmdsZV9pZGVudGl0eV9ub3RfZGVsZXRhYmxlIj09PXQpcmV0dXJue2Vycm9yOml9fXJldHVybiBhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCkse2Vycm9yOml9fWxldHtzZXNzaW9uOm4scmVkaXJlY3RUeXBlOmF9PXI7cmV0dXJuIHRoaXMuX2RlYnVnKCIjX2luaXRpYWxpemUoKSIsImRldGVjdGVkIHNlc3Npb24gaW4gVVJMIixuLCJyZWRpcmVjdCB0eXBlIixhKSxhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihuKSxzZXRUaW1lb3V0KGFzeW5jKCk9PnsicmVjb3ZlcnkiPT09YT9hd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygiUEFTU1dPUkRfUkVDT1ZFUlkiLG4pOmF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJTSUdORURfSU4iLG4pfSwwKSx7ZXJyb3I6bnVsbH19cmV0dXJuIGF3YWl0IHRoaXMuX3JlY292ZXJBbmRSZWZyZXNoKCkse2Vycm9yOm51bGx9fWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntlcnJvcjplfTtyZXR1cm57ZXJyb3I6bmV3IGVVKCJVbmV4cGVjdGVkIGVycm9yIGR1cmluZyBpbml0aWFsaXphdGlvbiIsZSl9fWZpbmFsbHl7YXdhaXQgdGhpcy5faGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpLHRoaXMuX2RlYnVnKCIjX2luaXRpYWxpemUoKSIsImVuZCIpfX1hc3luYyBzaWduSW5Bbm9ueW1vdXNseShlKXt2YXIgdCxzLHI7dHJ5e2xldHtkYXRhOmksZXJyb3I6bn09YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L3NpZ251cGAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGJvZHk6e2RhdGE6bnVsbCE9KHM9bnVsbD09KHQ9bnVsbD09ZT92b2lkIDA6ZS5vcHRpb25zKT92b2lkIDA6dC5kYXRhKT9zOnt9LGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OntjYXB0Y2hhX3Rva2VuOm51bGw9PShyPW51bGw9PWU/dm9pZCAwOmUub3B0aW9ucyk/dm9pZCAwOnIuY2FwdGNoYVRva2VufX0seGZvcm06dGx9KTtpZihufHwhaSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6bn07bGV0IGE9aS5zZXNzaW9uLG89aS51c2VyO3JldHVybiBpLnNlc3Npb24mJihhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihpLnNlc3Npb24pLGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJTSUdORURfSU4iLGEpKSx7ZGF0YTp7dXNlcjpvLHNlc3Npb246YX0sZXJyb3I6bnVsbH19Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIHNpZ25VcChlKXt2YXIgdCxzLHI7dHJ5e2xldCBpO2lmKCJlbWFpbCJpbiBlKXtsZXR7ZW1haWw6cyxwYXNzd29yZDpyLG9wdGlvbnM6bn09ZSxhPW51bGwsbz1udWxsOyJwa2NlIj09PXRoaXMuZmxvd1R5cGUmJihbYSxvXT1hd2FpdCB0ZSh0aGlzLnN0b3JhZ2UsdGhpcy5zdG9yYWdlS2V5KSksaT1hd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vc2lnbnVwYCx7aGVhZGVyczp0aGlzLmhlYWRlcnMscmVkaXJlY3RUbzpudWxsPT1uP3ZvaWQgMDpuLmVtYWlsUmVkaXJlY3RUbyxib2R5OntlbWFpbDpzLHBhc3N3b3JkOnIsZGF0YTpudWxsIT0odD1udWxsPT1uP3ZvaWQgMDpuLmRhdGEpP3Q6e30sZ290cnVlX21ldGFfc2VjdXJpdHk6e2NhcHRjaGFfdG9rZW46bnVsbD09bj92b2lkIDA6bi5jYXB0Y2hhVG9rZW59LGNvZGVfY2hhbGxlbmdlOmEsY29kZV9jaGFsbGVuZ2VfbWV0aG9kOm99LHhmb3JtOnRsfSl9ZWxzZSBpZigicGhvbmUiaW4gZSl7bGV0e3Bob25lOnQscGFzc3dvcmQ6bixvcHRpb25zOmF9PWU7aT1hd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vc2lnbnVwYCx7aGVhZGVyczp0aGlzLmhlYWRlcnMsYm9keTp7cGhvbmU6dCxwYXNzd29yZDpuLGRhdGE6bnVsbCE9KHM9bnVsbD09YT92b2lkIDA6YS5kYXRhKT9zOnt9LGNoYW5uZWw6bnVsbCE9KHI9bnVsbD09YT92b2lkIDA6YS5jaGFubmVsKT9yOiJzbXMiLGdvdHJ1ZV9tZXRhX3NlY3VyaXR5OntjYXB0Y2hhX3Rva2VuOm51bGw9PWE/dm9pZCAwOmEuY2FwdGNoYVRva2VufX0seGZvcm06dGx9KX1lbHNlIHRocm93IG5ldyBlcSgiWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYW4gZW1haWwgb3IgcGhvbmUgbnVtYmVyIGFuZCBhIHBhc3N3b3JkIik7bGV0e2RhdGE6bixlcnJvcjphfT1pO2lmKGF8fCFuKXJldHVybntkYXRhOnt1c2VyOm51bGwsc2Vzc2lvbjpudWxsfSxlcnJvcjphfTtsZXQgbz1uLnNlc3Npb24sbD1uLnVzZXI7cmV0dXJuIG4uc2Vzc2lvbiYmKGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKG4uc2Vzc2lvbiksYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoIlNJR05FRF9JTiIsbykpLHtkYXRhOnt1c2VyOmwsc2Vzc2lvbjpvfSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgc2lnbkluV2l0aFBhc3N3b3JkKGUpe3RyeXtsZXQgdDtpZigiZW1haWwiaW4gZSl7bGV0e2VtYWlsOnMscGFzc3dvcmQ6cixvcHRpb25zOml9PWU7dD1hd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1wYXNzd29yZGAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGJvZHk6e2VtYWlsOnMscGFzc3dvcmQ6cixnb3RydWVfbWV0YV9zZWN1cml0eTp7Y2FwdGNoYV90b2tlbjpudWxsPT1pP3ZvaWQgMDppLmNhcHRjaGFUb2tlbn19LHhmb3JtOnRofSl9ZWxzZSBpZigicGhvbmUiaW4gZSl7bGV0e3Bob25lOnMscGFzc3dvcmQ6cixvcHRpb25zOml9PWU7dD1hd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1wYXNzd29yZGAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGJvZHk6e3Bob25lOnMscGFzc3dvcmQ6cixnb3RydWVfbWV0YV9zZWN1cml0eTp7Y2FwdGNoYV90b2tlbjpudWxsPT1pP3ZvaWQgMDppLmNhcHRjaGFUb2tlbn19LHhmb3JtOnRofSl9ZWxzZSB0aHJvdyBuZXcgZXEoIllvdSBtdXN0IHByb3ZpZGUgZWl0aGVyIGFuIGVtYWlsIG9yIHBob25lIG51bWJlciBhbmQgYSBwYXNzd29yZCIpO2xldHtkYXRhOnMsZXJyb3I6cn09dDtpZihyKXJldHVybntkYXRhOnt1c2VyOm51bGwsc2Vzc2lvbjpudWxsfSxlcnJvcjpyfTtpZighc3x8IXMuc2Vzc2lvbnx8IXMudXNlcilyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6bmV3IGVOfTtyZXR1cm4gcy5zZXNzaW9uJiYoYXdhaXQgdGhpcy5fc2F2ZVNlc3Npb24ocy5zZXNzaW9uKSxhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygiU0lHTkVEX0lOIixzLnNlc3Npb24pKSx7ZGF0YTpPYmplY3QuYXNzaWduKHt1c2VyOnMudXNlcixzZXNzaW9uOnMuc2Vzc2lvbn0scy53ZWFrX3Bhc3N3b3JkP3t3ZWFrUGFzc3dvcmQ6cy53ZWFrX3Bhc3N3b3JkfTpudWxsKSxlcnJvcjpyfX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgc2lnbkluV2l0aE9BdXRoKGUpe3ZhciB0LHMscixpO3JldHVybiBhd2FpdCB0aGlzLl9oYW5kbGVQcm92aWRlclNpZ25JbihlLnByb3ZpZGVyLHtyZWRpcmVjdFRvOm51bGw9PSh0PWUub3B0aW9ucyk/dm9pZCAwOnQucmVkaXJlY3RUbyxzY29wZXM6bnVsbD09KHM9ZS5vcHRpb25zKT92b2lkIDA6cy5zY29wZXMscXVlcnlQYXJhbXM6bnVsbD09KHI9ZS5vcHRpb25zKT92b2lkIDA6ci5xdWVyeVBhcmFtcyxza2lwQnJvd3NlclJlZGlyZWN0Om51bGw9PShpPWUub3B0aW9ucyk/dm9pZCAwOmkuc2tpcEJyb3dzZXJSZWRpcmVjdH0pfWFzeW5jIGV4Y2hhbmdlQ29kZUZvclNlc3Npb24oZSl7cmV0dXJuIGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2UsdGhpcy5fYWNxdWlyZUxvY2soLTEsYXN5bmMoKT0+dGhpcy5fZXhjaGFuZ2VDb2RlRm9yU2Vzc2lvbihlKSl9YXN5bmMgX2V4Y2hhbmdlQ29kZUZvclNlc3Npb24oZSl7bGV0IHQ9YXdhaXQgZTIodGhpcy5zdG9yYWdlLGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmApLFtzLHJdPShudWxsIT10P3Q6IiIpLnNwbGl0KCIvIik7dHJ5e2xldHtkYXRhOnQsZXJyb3I6aX09YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L3Rva2VuP2dyYW50X3R5cGU9cGtjZWAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGJvZHk6e2F1dGhfY29kZTplLGNvZGVfdmVyaWZpZXI6c30seGZvcm06dGx9KTtpZihhd2FpdCBlMyh0aGlzLnN0b3JhZ2UsYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCksaSl0aHJvdyBpO2lmKCF0fHwhdC5zZXNzaW9ufHwhdC51c2VyKXJldHVybntkYXRhOnt1c2VyOm51bGwsc2Vzc2lvbjpudWxsLHJlZGlyZWN0VHlwZTpudWxsfSxlcnJvcjpuZXcgZU59O3JldHVybiB0LnNlc3Npb24mJihhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbih0LnNlc3Npb24pLGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJTSUdORURfSU4iLHQuc2Vzc2lvbikpLHtkYXRhOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7cmVkaXJlY3RUeXBlOm51bGwhPXI/cjpudWxsfSksZXJyb3I6aX19Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGwscmVkaXJlY3RUeXBlOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIHNpZ25JbldpdGhJZFRva2VuKGUpe3RyeXtsZXR7b3B0aW9uczp0LHByb3ZpZGVyOnMsdG9rZW46cixhY2Nlc3NfdG9rZW46aSxub25jZTpufT1lLHtkYXRhOmEsZXJyb3I6b309YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L3Rva2VuP2dyYW50X3R5cGU9aWRfdG9rZW5gLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxib2R5Ontwcm92aWRlcjpzLGlkX3Rva2VuOnIsYWNjZXNzX3Rva2VuOmksbm9uY2U6bixnb3RydWVfbWV0YV9zZWN1cml0eTp7Y2FwdGNoYV90b2tlbjpudWxsPT10P3ZvaWQgMDp0LmNhcHRjaGFUb2tlbn19LHhmb3JtOnRsfSk7aWYobylyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6b307aWYoIWF8fCFhLnNlc3Npb258fCFhLnVzZXIpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOm5ldyBlTn07cmV0dXJuIGEuc2Vzc2lvbiYmKGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGEuc2Vzc2lvbiksYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoIlNJR05FRF9JTiIsYS5zZXNzaW9uKSkse2RhdGE6YSxlcnJvcjpvfX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgc2lnbkluV2l0aE90cChlKXt2YXIgdCxzLHIsaSxuO3RyeXtpZigiZW1haWwiaW4gZSl7bGV0e2VtYWlsOnIsb3B0aW9uczppfT1lLG49bnVsbCxhPW51bGw7InBrY2UiPT09dGhpcy5mbG93VHlwZSYmKFtuLGFdPWF3YWl0IHRlKHRoaXMuc3RvcmFnZSx0aGlzLnN0b3JhZ2VLZXkpKTtsZXR7ZXJyb3I6b309YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L290cGAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGJvZHk6e2VtYWlsOnIsZGF0YTpudWxsIT0odD1udWxsPT1pP3ZvaWQgMDppLmRhdGEpP3Q6e30sY3JlYXRlX3VzZXI6bnVsbD09KHM9bnVsbD09aT92b2lkIDA6aS5zaG91bGRDcmVhdGVVc2VyKXx8cyxnb3RydWVfbWV0YV9zZWN1cml0eTp7Y2FwdGNoYV90b2tlbjpudWxsPT1pP3ZvaWQgMDppLmNhcHRjaGFUb2tlbn0sY29kZV9jaGFsbGVuZ2U6bixjb2RlX2NoYWxsZW5nZV9tZXRob2Q6YX0scmVkaXJlY3RUbzpudWxsPT1pP3ZvaWQgMDppLmVtYWlsUmVkaXJlY3RUb30pO3JldHVybntkYXRhOnt1c2VyOm51bGwsc2Vzc2lvbjpudWxsfSxlcnJvcjpvfX1pZigicGhvbmUiaW4gZSl7bGV0e3Bob25lOnQsb3B0aW9uczpzfT1lLHtkYXRhOmEsZXJyb3I6b309YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L290cGAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGJvZHk6e3Bob25lOnQsZGF0YTpudWxsIT0ocj1udWxsPT1zP3ZvaWQgMDpzLmRhdGEpP3I6e30sY3JlYXRlX3VzZXI6bnVsbD09KGk9bnVsbD09cz92b2lkIDA6cy5zaG91bGRDcmVhdGVVc2VyKXx8aSxnb3RydWVfbWV0YV9zZWN1cml0eTp7Y2FwdGNoYV90b2tlbjpudWxsPT1zP3ZvaWQgMDpzLmNhcHRjaGFUb2tlbn0sY2hhbm5lbDpudWxsIT0obj1udWxsPT1zP3ZvaWQgMDpzLmNoYW5uZWwpP246InNtcyJ9fSk7cmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGwsbWVzc2FnZUlkOm51bGw9PWE/dm9pZCAwOmEubWVzc2FnZV9pZH0sZXJyb3I6b319dGhyb3cgbmV3IGVxKCJZb3UgbXVzdCBwcm92aWRlIGVpdGhlciBhbiBlbWFpbCBvciBwaG9uZSBudW1iZXIuIil9Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIHZlcmlmeU90cChlKXt2YXIgdCxzO3RyeXtsZXQgcixpOyJvcHRpb25zImluIGUmJihyPW51bGw9PSh0PWUub3B0aW9ucyk/dm9pZCAwOnQucmVkaXJlY3RUbyxpPW51bGw9PShzPWUub3B0aW9ucyk/dm9pZCAwOnMuY2FwdGNoYVRva2VuKTtsZXR7ZGF0YTpuLGVycm9yOmF9PWF3YWl0IHRhKHRoaXMuZmV0Y2gsIlBPU1QiLGAke3RoaXMudXJsfS92ZXJpZnlgLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxib2R5Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7Z290cnVlX21ldGFfc2VjdXJpdHk6e2NhcHRjaGFfdG9rZW46aX19KSxyZWRpcmVjdFRvOnIseGZvcm06dGx9KTtpZihhKXRocm93IGE7aWYoIW4pdGhyb3cgRXJyb3IoIkFuIGVycm9yIG9jY3VycmVkIG9uIHRva2VuIHZlcmlmaWNhdGlvbi4iKTtsZXQgbz1uLnNlc3Npb24sbD1uLnVzZXI7cmV0dXJuKG51bGw9PW8/dm9pZCAwOm8uYWNjZXNzX3Rva2VuKSYmKGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKG8pLGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJyZWNvdmVyeSI9PWUudHlwZT8iUEFTU1dPUkRfUkVDT1ZFUlkiOiJTSUdORURfSU4iLG8pKSx7ZGF0YTp7dXNlcjpsLHNlc3Npb246b30sZXJyb3I6bnVsbH19Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIHNpZ25JbldpdGhTU08oZSl7dmFyIHQscyxyO3RyeXtsZXQgaT1udWxsLG49bnVsbDtyZXR1cm4icGtjZSI9PT10aGlzLmZsb3dUeXBlJiYoW2ksbl09YXdhaXQgdGUodGhpcy5zdG9yYWdlLHRoaXMuc3RvcmFnZUtleSkpLGF3YWl0IHRhKHRoaXMuZmV0Y2gsIlBPU1QiLGAke3RoaXMudXJsfS9zc29gLHtib2R5Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwicHJvdmlkZXJJZCJpbiBlP3twcm92aWRlcl9pZDplLnByb3ZpZGVySWR9Om51bGwpLCJkb21haW4iaW4gZT97ZG9tYWluOmUuZG9tYWlufTpudWxsKSx7cmVkaXJlY3RfdG86bnVsbCE9KHM9bnVsbD09KHQ9ZS5vcHRpb25zKT92b2lkIDA6dC5yZWRpcmVjdFRvKT9zOnZvaWQgMH0pLChudWxsPT0ocj1udWxsPT1lP3ZvaWQgMDplLm9wdGlvbnMpP3ZvaWQgMDpyLmNhcHRjaGFUb2tlbik/e2dvdHJ1ZV9tZXRhX3NlY3VyaXR5OntjYXB0Y2hhX3Rva2VuOmUub3B0aW9ucy5jYXB0Y2hhVG9rZW59fTpudWxsKSx7c2tpcF9odHRwX3JlZGlyZWN0OiEwLGNvZGVfY2hhbGxlbmdlOmksY29kZV9jaGFsbGVuZ2VfbWV0aG9kOm59KSxoZWFkZXJzOnRoaXMuaGVhZGVycyx4Zm9ybTp0dX0pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgcmVhdXRoZW50aWNhdGUoKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZSxhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSxhc3luYygpPT5hd2FpdCB0aGlzLl9yZWF1dGhlbnRpY2F0ZSgpKX1hc3luYyBfcmVhdXRoZW50aWNhdGUoKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgZT0+e2xldHtkYXRhOntzZXNzaW9uOnR9LGVycm9yOnN9PWU7aWYocyl0aHJvdyBzO2lmKCF0KXRocm93IG5ldyBlRDtsZXR7ZXJyb3I6cn09YXdhaXQgdGEodGhpcy5mZXRjaCwiR0VUIixgJHt0aGlzLnVybH0vcmVhdXRoZW50aWNhdGVgLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxqd3Q6dC5hY2Nlc3NfdG9rZW59KTtyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6cn19KX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgcmVzZW5kKGUpe3RyeXtsZXQgdD1gJHt0aGlzLnVybH0vcmVzZW5kYDtpZigiZW1haWwiaW4gZSl7bGV0e2VtYWlsOnMsdHlwZTpyLG9wdGlvbnM6aX09ZSx7ZXJyb3I6bn09YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsdCx7aGVhZGVyczp0aGlzLmhlYWRlcnMsYm9keTp7ZW1haWw6cyx0eXBlOnIsZ290cnVlX21ldGFfc2VjdXJpdHk6e2NhcHRjaGFfdG9rZW46bnVsbD09aT92b2lkIDA6aS5jYXB0Y2hhVG9rZW59fSxyZWRpcmVjdFRvOm51bGw9PWk/dm9pZCAwOmkuZW1haWxSZWRpcmVjdFRvfSk7cmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOm59fWlmKCJwaG9uZSJpbiBlKXtsZXR7cGhvbmU6cyx0eXBlOnIsb3B0aW9uczppfT1lLHtkYXRhOm4sZXJyb3I6YX09YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsdCx7aGVhZGVyczp0aGlzLmhlYWRlcnMsYm9keTp7cGhvbmU6cyx0eXBlOnIsZ290cnVlX21ldGFfc2VjdXJpdHk6e2NhcHRjaGFfdG9rZW46bnVsbD09aT92b2lkIDA6aS5jYXB0Y2hhVG9rZW59fX0pO3JldHVybntkYXRhOnt1c2VyOm51bGwsc2Vzc2lvbjpudWxsLG1lc3NhZ2VJZDpudWxsPT1uP3ZvaWQgMDpuLm1lc3NhZ2VfaWR9LGVycm9yOmF9fXRocm93IG5ldyBlcSgiWW91IG11c3QgcHJvdmlkZSBlaXRoZXIgYW4gZW1haWwgb3IgcGhvbmUgbnVtYmVyIGFuZCBhIHR5cGUiKX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTp7dXNlcjpudWxsLHNlc3Npb246bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgZ2V0U2Vzc2lvbigpe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlLGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLGFzeW5jKCk9PnRoaXMuX3VzZVNlc3Npb24oYXN5bmMgZT0+ZSkpfWFzeW5jIF9hY3F1aXJlTG9jayhlLHQpe3RoaXMuX2RlYnVnKCIjX2FjcXVpcmVMb2NrIiwiYmVnaW4iLGUpO3RyeXtpZih0aGlzLmxvY2tBY3F1aXJlZCl7bGV0IGU9dGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aD90aGlzLnBlbmRpbmdJbkxvY2tbdGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aC0xXTpQcm9taXNlLnJlc29sdmUoKSxzPShhc3luYygpPT4oYXdhaXQgZSxhd2FpdCB0KCkpKSgpO3JldHVybiB0aGlzLnBlbmRpbmdJbkxvY2sucHVzaCgoYXN5bmMoKT0+e3RyeXthd2FpdCBzfWNhdGNoKGUpe319KSgpKSxzfXJldHVybiBhd2FpdCB0aGlzLmxvY2soYGxvY2s6JHt0aGlzLnN0b3JhZ2VLZXl9YCxlLGFzeW5jKCk9Pnt0aGlzLl9kZWJ1ZygiI19hY3F1aXJlTG9jayIsImxvY2sgYWNxdWlyZWQgZm9yIHN0b3JhZ2Uga2V5Iix0aGlzLnN0b3JhZ2VLZXkpO3RyeXt0aGlzLmxvY2tBY3F1aXJlZD0hMDtsZXQgZT10KCk7Zm9yKHRoaXMucGVuZGluZ0luTG9jay5wdXNoKChhc3luYygpPT57dHJ5e2F3YWl0IGV9Y2F0Y2goZSl7fX0pKCkpLGF3YWl0IGU7dGhpcy5wZW5kaW5nSW5Mb2NrLmxlbmd0aDspe2xldCBlPVsuLi50aGlzLnBlbmRpbmdJbkxvY2tdO2F3YWl0IFByb21pc2UuYWxsKGUpLHRoaXMucGVuZGluZ0luTG9jay5zcGxpY2UoMCxlLmxlbmd0aCl9cmV0dXJuIGF3YWl0IGV9ZmluYWxseXt0aGlzLl9kZWJ1ZygiI19hY3F1aXJlTG9jayIsImxvY2sgcmVsZWFzZWQgZm9yIHN0b3JhZ2Uga2V5Iix0aGlzLnN0b3JhZ2VLZXkpLHRoaXMubG9ja0FjcXVpcmVkPSExfX0pfWZpbmFsbHl7dGhpcy5fZGVidWcoIiNfYWNxdWlyZUxvY2siLCJlbmQiKX19YXN5bmMgX3VzZVNlc3Npb24oZSl7dGhpcy5fZGVidWcoIiNfdXNlU2Vzc2lvbiIsImJlZ2luIik7dHJ5e2xldCB0PWF3YWl0IHRoaXMuX19sb2FkU2Vzc2lvbigpO3JldHVybiBhd2FpdCBlKHQpfWZpbmFsbHl7dGhpcy5fZGVidWcoIiNfdXNlU2Vzc2lvbiIsImVuZCIpfX1hc3luYyBfX2xvYWRTZXNzaW9uKCl7dGhpcy5fZGVidWcoIiNfX2xvYWRTZXNzaW9uKCkiLCJiZWdpbiIpLHRoaXMubG9ja0FjcXVpcmVkfHx0aGlzLl9kZWJ1ZygiI19fbG9hZFNlc3Npb24oKSIsInVzZWQgb3V0c2lkZSBvZiBhbiBhY3F1aXJlZCBsb2NrISIsRXJyb3IoKS5zdGFjayk7dHJ5e2xldCBlPW51bGwsdD1hd2FpdCBlMih0aGlzLnN0b3JhZ2UsdGhpcy5zdG9yYWdlS2V5KTtpZih0aGlzLl9kZWJ1ZygiI2dldFNlc3Npb24oKSIsInNlc3Npb24gZnJvbSBzdG9yYWdlIix0KSxudWxsIT09dCYmKHRoaXMuX2lzVmFsaWRTZXNzaW9uKHQpP2U9dDoodGhpcy5fZGVidWcoIiNnZXRTZXNzaW9uKCkiLCJzZXNzaW9uIGZyb20gc3RvcmFnZSBpcyBub3QgdmFsaWQiKSxhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCkpKSwhZSlyZXR1cm57ZGF0YTp7c2Vzc2lvbjpudWxsfSxlcnJvcjpudWxsfTtsZXQgcz0hIWUuZXhwaXJlc19hdCYmMWUzKmUuZXhwaXJlc19hdC1EYXRlLm5vdygpPDllNDtpZih0aGlzLl9kZWJ1ZygiI19fbG9hZFNlc3Npb24oKSIsYHNlc3Npb24gaGFzJHtzPyIiOiIgbm90In0gZXhwaXJlZGAsImV4cGlyZXNfYXQiLGUuZXhwaXJlc19hdCksIXMpe2lmKHRoaXMuc3RvcmFnZS5pc1NlcnZlcil7bGV0IHQ9dGhpcy5zdXBwcmVzc0dldFNlc3Npb25XYXJuaW5nO2U9bmV3IFByb3h5KGUse2dldDooZSxzLHIpPT4odHx8InVzZXIiIT09c3x8KGNvbnNvbGUud2FybigiVXNpbmcgdGhlIHVzZXIgb2JqZWN0IGFzIHJldHVybmVkIGZyb20gc3VwYWJhc2UuYXV0aC5nZXRTZXNzaW9uKCkgb3IgZnJvbSBzb21lIHN1cGFiYXNlLmF1dGgub25BdXRoU3RhdGVDaGFuZ2UoKSBldmVudHMgY291bGQgYmUgaW5zZWN1cmUhIFRoaXMgdmFsdWUgY29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgc3RvcmFnZSBtZWRpdW0gKHVzdWFsbHkgY29va2llcyBvbiB0aGUgc2VydmVyKSBhbmQgbWF5IG5vdCBiZSBhdXRoZW50aWMuIFVzZSBzdXBhYmFzZS5hdXRoLmdldFVzZXIoKSBpbnN0ZWFkIHdoaWNoIGF1dGhlbnRpY2F0ZXMgdGhlIGRhdGEgYnkgY29udGFjdGluZyB0aGUgU3VwYWJhc2UgQXV0aCBzZXJ2ZXIuIiksdD0hMCx0aGlzLnN1cHByZXNzR2V0U2Vzc2lvbldhcm5pbmc9ITApLFJlZmxlY3QuZ2V0KGUscyxyKSl9KX1yZXR1cm57ZGF0YTp7c2Vzc2lvbjplfSxlcnJvcjpudWxsfX1sZXR7c2Vzc2lvbjpyLGVycm9yOml9PWF3YWl0IHRoaXMuX2NhbGxSZWZyZXNoVG9rZW4oZS5yZWZyZXNoX3Rva2VuKTtpZihpKXJldHVybntkYXRhOntzZXNzaW9uOm51bGx9LGVycm9yOml9O3JldHVybntkYXRhOntzZXNzaW9uOnJ9LGVycm9yOm51bGx9fWZpbmFsbHl7dGhpcy5fZGVidWcoIiNfX2xvYWRTZXNzaW9uKCkiLCJlbmQiKX19YXN5bmMgZ2V0VXNlcihlKXtyZXR1cm4gZT9hd2FpdCB0aGlzLl9nZXRVc2VyKGUpOihhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlLGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLGFzeW5jKCk9PmF3YWl0IHRoaXMuX2dldFVzZXIoKSkpfWFzeW5jIF9nZXRVc2VyKGUpe3RyeXtpZihlKXJldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJHRVQiLGAke3RoaXMudXJsfS91c2VyYCx7aGVhZGVyczp0aGlzLmhlYWRlcnMsand0OmUseGZvcm06dGN9KTtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyBlPT57dmFyIHQscyxyO2xldHtkYXRhOmksZXJyb3I6bn09ZTtpZihuKXRocm93IG47cmV0dXJuKG51bGw9PSh0PWkuc2Vzc2lvbik/dm9pZCAwOnQuYWNjZXNzX3Rva2VuKXx8dGhpcy5oYXNDdXN0b21BdXRob3JpemF0aW9uSGVhZGVyP2F3YWl0IHRhKHRoaXMuZmV0Y2gsIkdFVCIsYCR7dGhpcy51cmx9L3VzZXJgLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxqd3Q6bnVsbCE9KHI9bnVsbD09KHM9aS5zZXNzaW9uKT92b2lkIDA6cy5hY2Nlc3NfdG9rZW4pP3I6dm9pZCAwLHhmb3JtOnRjfSk6e2RhdGE6e3VzZXI6bnVsbH0sZXJyb3I6bmV3IGVEfX0pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybiBleChlKSYmIkF1dGhTZXNzaW9uTWlzc2luZ0Vycm9yIj09PWUubmFtZSYmKGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKSxhd2FpdCBlMyh0aGlzLnN0b3JhZ2UsYCR7dGhpcy5zdG9yYWdlS2V5fS1jb2RlLXZlcmlmaWVyYCkpLHtkYXRhOnt1c2VyOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIHVwZGF0ZVVzZXIoZSx0PXt9KXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZSxhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSxhc3luYygpPT5hd2FpdCB0aGlzLl91cGRhdGVVc2VyKGUsdCkpfWFzeW5jIF91cGRhdGVVc2VyKGUsdD17fSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIHM9PntsZXR7ZGF0YTpyLGVycm9yOml9PXM7aWYoaSl0aHJvdyBpO2lmKCFyLnNlc3Npb24pdGhyb3cgbmV3IGVEO2xldCBuPXIuc2Vzc2lvbixhPW51bGwsbz1udWxsOyJwa2NlIj09PXRoaXMuZmxvd1R5cGUmJm51bGwhPWUuZW1haWwmJihbYSxvXT1hd2FpdCB0ZSh0aGlzLnN0b3JhZ2UsdGhpcy5zdG9yYWdlS2V5KSk7bGV0e2RhdGE6bCxlcnJvcjpofT1hd2FpdCB0YSh0aGlzLmZldGNoLCJQVVQiLGAke3RoaXMudXJsfS91c2VyYCx7aGVhZGVyczp0aGlzLmhlYWRlcnMscmVkaXJlY3RUbzpudWxsPT10P3ZvaWQgMDp0LmVtYWlsUmVkaXJlY3RUbyxib2R5Ok9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxlKSx7Y29kZV9jaGFsbGVuZ2U6YSxjb2RlX2NoYWxsZW5nZV9tZXRob2Q6b30pLGp3dDpuLmFjY2Vzc190b2tlbix4Zm9ybTp0Y30pO2lmKGgpdGhyb3cgaDtyZXR1cm4gbi51c2VyPWwudXNlcixhd2FpdCB0aGlzLl9zYXZlU2Vzc2lvbihuKSxhd2FpdCB0aGlzLl9ub3RpZnlBbGxTdWJzY3JpYmVycygiVVNFUl9VUERBVEVEIixuKSx7ZGF0YTp7dXNlcjpuLnVzZXJ9LGVycm9yOm51bGx9fSl9Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3VzZXI6bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgc2V0U2Vzc2lvbihlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZSxhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSxhc3luYygpPT5hd2FpdCB0aGlzLl9zZXRTZXNzaW9uKGUpKX1hc3luYyBfc2V0U2Vzc2lvbihlKXt0cnl7aWYoIWUuYWNjZXNzX3Rva2VufHwhZS5yZWZyZXNoX3Rva2VuKXRocm93IG5ldyBlRDtsZXQgdD1EYXRlLm5vdygpLzFlMyxzPXQscj0hMCxpPW51bGwse3BheWxvYWQ6bn09ZTUoZS5hY2Nlc3NfdG9rZW4pO2lmKG4uZXhwJiYocj0ocz1uLmV4cCk8PXQpLHIpe2xldHtzZXNzaW9uOnQsZXJyb3I6c309YXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihlLnJlZnJlc2hfdG9rZW4pO2lmKHMpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOnN9O2lmKCF0KXJldHVybntkYXRhOnt1c2VyOm51bGwsc2Vzc2lvbjpudWxsfSxlcnJvcjpudWxsfTtpPXR9ZWxzZXtsZXR7ZGF0YTpyLGVycm9yOm59PWF3YWl0IHRoaXMuX2dldFVzZXIoZS5hY2Nlc3NfdG9rZW4pO2lmKG4pdGhyb3cgbjtpPXthY2Nlc3NfdG9rZW46ZS5hY2Nlc3NfdG9rZW4scmVmcmVzaF90b2tlbjplLnJlZnJlc2hfdG9rZW4sdXNlcjpyLnVzZXIsdG9rZW5fdHlwZToiYmVhcmVyIixleHBpcmVzX2luOnMtdCxleHBpcmVzX2F0OnN9LGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKGkpLGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJTSUdORURfSU4iLGkpfXJldHVybntkYXRhOnt1c2VyOmkudXNlcixzZXNzaW9uOml9LGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOntzZXNzaW9uOm51bGwsdXNlcjpudWxsfSxlcnJvcjplfTt0aHJvdyBlfX1hc3luYyByZWZyZXNoU2Vzc2lvbihlKXtyZXR1cm4gYXdhaXQgdGhpcy5pbml0aWFsaXplUHJvbWlzZSxhd2FpdCB0aGlzLl9hY3F1aXJlTG9jaygtMSxhc3luYygpPT5hd2FpdCB0aGlzLl9yZWZyZXNoU2Vzc2lvbihlKSl9YXN5bmMgX3JlZnJlc2hTZXNzaW9uKGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyB0PT57dmFyIHM7aWYoIWUpe2xldHtkYXRhOnIsZXJyb3I6aX09dDtpZihpKXRocm93IGk7ZT1udWxsIT0ocz1yLnNlc3Npb24pP3M6dm9pZCAwfWlmKCEobnVsbD09ZT92b2lkIDA6ZS5yZWZyZXNoX3Rva2VuKSl0aHJvdyBuZXcgZUQ7bGV0e3Nlc3Npb246cixlcnJvcjppfT1hd2FpdCB0aGlzLl9jYWxsUmVmcmVzaFRva2VuKGUucmVmcmVzaF90b2tlbik7cmV0dXJuIGk/e2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOml9OnI/e2RhdGE6e3VzZXI6ci51c2VyLHNlc3Npb246cn0sZXJyb3I6bnVsbH06e2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOm51bGx9fSl9Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3VzZXI6bnVsbCxzZXNzaW9uOm51bGx9LGVycm9yOmV9O3Rocm93IGV9fWFzeW5jIF9nZXRTZXNzaW9uRnJvbVVSTChlLHQpe3RyeXtpZighZVEoKSl0aHJvdyBuZXcgZUIoIk5vIGJyb3dzZXIgZGV0ZWN0ZWQuIik7aWYoZS5lcnJvcnx8ZS5lcnJvcl9kZXNjcmlwdGlvbnx8ZS5lcnJvcl9jb2RlKXRocm93IG5ldyBlQihlLmVycm9yX2Rlc2NyaXB0aW9ufHwiRXJyb3IgaW4gVVJMIHdpdGggdW5zcGVjaWZpZWQgZXJyb3JfZGVzY3JpcHRpb24iLHtlcnJvcjplLmVycm9yfHwidW5zcGVjaWZpZWRfZXJyb3IiLGNvZGU6ZS5lcnJvcl9jb2RlfHwidW5zcGVjaWZpZWRfY29kZSJ9KTtzd2l0Y2godCl7Y2FzZSJpbXBsaWNpdCI6aWYoInBrY2UiPT09dGhpcy5mbG93VHlwZSl0aHJvdyBuZXcgZU0oIk5vdCBhIHZhbGlkIFBLQ0UgZmxvdyB1cmwuIik7YnJlYWs7Y2FzZSJwa2NlIjppZigiaW1wbGljaXQiPT09dGhpcy5mbG93VHlwZSl0aHJvdyBuZXcgZUIoIk5vdCBhIHZhbGlkIGltcGxpY2l0IGdyYW50IGZsb3cgdXJsLiIpfWlmKCJwa2NlIj09PXQpe2lmKHRoaXMuX2RlYnVnKCIjX2luaXRpYWxpemUoKSIsImJlZ2luIiwiaXMgUEtDRSBmbG93IiwhMCksIWUuY29kZSl0aHJvdyBuZXcgZU0oIk5vIGNvZGUgZGV0ZWN0ZWQuIik7bGV0e2RhdGE6dCxlcnJvcjpzfT1hd2FpdCB0aGlzLl9leGNoYW5nZUNvZGVGb3JTZXNzaW9uKGUuY29kZSk7aWYocyl0aHJvdyBzO2xldCByPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO3JldHVybiByLnNlYXJjaFBhcmFtcy5kZWxldGUoImNvZGUiKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsIiIsci50b1N0cmluZygpKSx7ZGF0YTp7c2Vzc2lvbjp0LnNlc3Npb24scmVkaXJlY3RUeXBlOm51bGx9LGVycm9yOm51bGx9fWxldHtwcm92aWRlcl90b2tlbjpzLHByb3ZpZGVyX3JlZnJlc2hfdG9rZW46cixhY2Nlc3NfdG9rZW46aSxyZWZyZXNoX3Rva2VuOm4sZXhwaXJlc19pbjphLGV4cGlyZXNfYXQ6byx0b2tlbl90eXBlOmx9PWU7aWYoIWl8fCFhfHwhbnx8IWwpdGhyb3cgbmV3IGVCKCJObyBzZXNzaW9uIGRlZmluZWQgaW4gVVJMIik7bGV0IGg9TWF0aC5yb3VuZChEYXRlLm5vdygpLzFlMyksYz1wYXJzZUludChhKSx1PWgrYztvJiYodT1wYXJzZUludChvKSk7bGV0IGQ9dS1oOzFlMypkPD0zZTQmJmNvbnNvbGUud2FybihgQHN1cGFiYXNlL2dvdHJ1ZS1qczogU2Vzc2lvbiBhcyByZXRyaWV2ZWQgZnJvbSBVUkwgZXhwaXJlcyBpbiAke2R9cywgc2hvdWxkIGhhdmUgYmVlbiBjbG9zZXIgdG8gJHtjfXNgKTtsZXQgZj11LWM7aC1mPj0xMjA/Y29uc29sZS53YXJuKCJAc3VwYWJhc2UvZ290cnVlLWpzOiBTZXNzaW9uIGFzIHJldHJpZXZlZCBmcm9tIFVSTCB3YXMgaXNzdWVkIG92ZXIgMTIwcyBhZ28sIFVSTCBjb3VsZCBiZSBzdGFsZSIsZix1LGgpOmgtZjwwJiZjb25zb2xlLndhcm4oIkBzdXBhYmFzZS9nb3RydWUtanM6IFNlc3Npb24gYXMgcmV0cmlldmVkIGZyb20gVVJMIHdhcyBpc3N1ZWQgaW4gdGhlIGZ1dHVyZT8gQ2hlY2sgdGhlIGRldmljZSBjbG9jayBmb3Igc2tldyIsZix1LGgpO2xldHtkYXRhOnAsZXJyb3I6Z309YXdhaXQgdGhpcy5fZ2V0VXNlcihpKTtpZihnKXRocm93IGc7bGV0IHk9e3Byb3ZpZGVyX3Rva2VuOnMscHJvdmlkZXJfcmVmcmVzaF90b2tlbjpyLGFjY2Vzc190b2tlbjppLGV4cGlyZXNfaW46YyxleHBpcmVzX2F0OnUscmVmcmVzaF90b2tlbjpuLHRva2VuX3R5cGU6bCx1c2VyOnAudXNlcn07cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5oYXNoPSIiLHRoaXMuX2RlYnVnKCIjX2dldFNlc3Npb25Gcm9tVVJMKCkiLCJjbGVhcmluZyB3aW5kb3cubG9jYXRpb24uaGFzaCIpLHtkYXRhOntzZXNzaW9uOnkscmVkaXJlY3RUeXBlOmUudHlwZX0sZXJyb3I6bnVsbH19Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6e3Nlc3Npb246bnVsbCxyZWRpcmVjdFR5cGU6bnVsbH0sZXJyb3I6ZX07dGhyb3cgZX19X2lzSW1wbGljaXRHcmFudENhbGxiYWNrKGUpe3JldHVybiEhKGUuYWNjZXNzX3Rva2VufHxlLmVycm9yX2Rlc2NyaXB0aW9uKX1hc3luYyBfaXNQS0NFQ2FsbGJhY2soZSl7bGV0IHQ9YXdhaXQgZTIodGhpcy5zdG9yYWdlLGAke3RoaXMuc3RvcmFnZUtleX0tY29kZS12ZXJpZmllcmApO3JldHVybiEhKGUuY29kZSYmdCl9YXN5bmMgc2lnbk91dChlPXtzY29wZToiZ2xvYmFsIn0pe3JldHVybiBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlLGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLGFzeW5jKCk9PmF3YWl0IHRoaXMuX3NpZ25PdXQoZSkpfWFzeW5jIF9zaWduT3V0KHtzY29wZTplfT17c2NvcGU6Imdsb2JhbCJ9KXtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyB0PT57dmFyIHM7bGV0e2RhdGE6cixlcnJvcjppfT10O2lmKGkpcmV0dXJue2Vycm9yOml9O2xldCBuPW51bGw9PShzPXIuc2Vzc2lvbik/dm9pZCAwOnMuYWNjZXNzX3Rva2VuO2lmKG4pe2xldHtlcnJvcjp0fT1hd2FpdCB0aGlzLmFkbWluLnNpZ25PdXQobixlKTtpZih0JiYhKGV4KHQpJiYiQXV0aEFwaUVycm9yIj09PXQubmFtZSYmKDQwND09PXQuc3RhdHVzfHw0MDE9PT10LnN0YXR1c3x8NDAzPT09dC5zdGF0dXMpKSlyZXR1cm57ZXJyb3I6dH19cmV0dXJuIm90aGVycyIhPT1lJiYoYXdhaXQgdGhpcy5fcmVtb3ZlU2Vzc2lvbigpLGF3YWl0IGUzKHRoaXMuc3RvcmFnZSxgJHt0aGlzLnN0b3JhZ2VLZXl9LWNvZGUtdmVyaWZpZXJgKSkse2Vycm9yOm51bGx9fSl9b25BdXRoU3RhdGVDaGFuZ2UoZSl7bGV0IHQ9Inh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCIucmVwbGFjZSgvW3h5XS9nLGZ1bmN0aW9uKGUpe2xldCB0PTE2Kk1hdGgucmFuZG9tKCl8MDtyZXR1cm4oIngiPT1lP3Q6MyZ0fDgpLnRvU3RyaW5nKDE2KX0pLHM9e2lkOnQsY2FsbGJhY2s6ZSx1bnN1YnNjcmliZTooKT0+e3RoaXMuX2RlYnVnKCIjdW5zdWJzY3JpYmUoKSIsInN0YXRlIGNoYW5nZSBjYWxsYmFjayB3aXRoIGlkIHJlbW92ZWQiLHQpLHRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycy5kZWxldGUodCl9fTtyZXR1cm4gdGhpcy5fZGVidWcoIiNvbkF1dGhTdGF0ZUNoYW5nZSgpIiwicmVnaXN0ZXJlZCBjYWxsYmFjayB3aXRoIGlkIix0KSx0aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuc2V0KHQscyksKGFzeW5jKCk9Pnthd2FpdCB0aGlzLmluaXRpYWxpemVQcm9taXNlLGF3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKC0xLGFzeW5jKCk9Pnt0aGlzLl9lbWl0SW5pdGlhbFNlc3Npb24odCl9KX0pKCkse2RhdGE6e3N1YnNjcmlwdGlvbjpzfX19YXN5bmMgX2VtaXRJbml0aWFsU2Vzc2lvbihlKXtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyB0PT57dmFyIHMscjt0cnl7bGV0e2RhdGE6e3Nlc3Npb246cn0sZXJyb3I6aX09dDtpZihpKXRocm93IGk7YXdhaXQgKG51bGw9PShzPXRoaXMuc3RhdGVDaGFuZ2VFbWl0dGVycy5nZXQoZSkpP3ZvaWQgMDpzLmNhbGxiYWNrKCJJTklUSUFMX1NFU1NJT04iLHIpKSx0aGlzLl9kZWJ1ZygiSU5JVElBTF9TRVNTSU9OIiwiY2FsbGJhY2sgaWQiLGUsInNlc3Npb24iLHIpfWNhdGNoKHQpe2F3YWl0IChudWxsPT0ocj10aGlzLnN0YXRlQ2hhbmdlRW1pdHRlcnMuZ2V0KGUpKT92b2lkIDA6ci5jYWxsYmFjaygiSU5JVElBTF9TRVNTSU9OIixudWxsKSksdGhpcy5fZGVidWcoIklOSVRJQUxfU0VTU0lPTiIsImNhbGxiYWNrIGlkIixlLCJlcnJvciIsdCksY29uc29sZS5lcnJvcih0KX19KX1hc3luYyByZXNldFBhc3N3b3JkRm9yRW1haWwoZSx0PXt9KXtsZXQgcz1udWxsLHI9bnVsbDsicGtjZSI9PT10aGlzLmZsb3dUeXBlJiYoW3Mscl09YXdhaXQgdGUodGhpcy5zdG9yYWdlLHRoaXMuc3RvcmFnZUtleSwhMCkpO3RyeXtyZXR1cm4gYXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L3JlY292ZXJgLHtib2R5OntlbWFpbDplLGNvZGVfY2hhbGxlbmdlOnMsY29kZV9jaGFsbGVuZ2VfbWV0aG9kOnIsZ290cnVlX21ldGFfc2VjdXJpdHk6e2NhcHRjaGFfdG9rZW46dC5jYXB0Y2hhVG9rZW59fSxoZWFkZXJzOnRoaXMuaGVhZGVycyxyZWRpcmVjdFRvOnQucmVkaXJlY3RUb30pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgZ2V0VXNlcklkZW50aXRpZXMoKXt2YXIgZTt0cnl7bGV0e2RhdGE6dCxlcnJvcjpzfT1hd2FpdCB0aGlzLmdldFVzZXIoKTtpZihzKXRocm93IHM7cmV0dXJue2RhdGE6e2lkZW50aXRpZXM6bnVsbCE9KGU9dC51c2VyLmlkZW50aXRpZXMpP2U6W119LGVycm9yOm51bGx9fWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgbGlua0lkZW50aXR5KGUpe3ZhciB0O3RyeXtsZXR7ZGF0YTpzLGVycm9yOnJ9PWF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgdD0+e3ZhciBzLHIsaSxuLGE7bGV0e2RhdGE6byxlcnJvcjpsfT10O2lmKGwpdGhyb3cgbDtsZXQgaD1hd2FpdCB0aGlzLl9nZXRVcmxGb3JQcm92aWRlcihgJHt0aGlzLnVybH0vdXNlci9pZGVudGl0aWVzL2F1dGhvcml6ZWAsZS5wcm92aWRlcix7cmVkaXJlY3RUbzpudWxsPT0ocz1lLm9wdGlvbnMpP3ZvaWQgMDpzLnJlZGlyZWN0VG8sc2NvcGVzOm51bGw9PShyPWUub3B0aW9ucyk/dm9pZCAwOnIuc2NvcGVzLHF1ZXJ5UGFyYW1zOm51bGw9PShpPWUub3B0aW9ucyk/dm9pZCAwOmkucXVlcnlQYXJhbXMsc2tpcEJyb3dzZXJSZWRpcmVjdDohMH0pO3JldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJHRVQiLGgse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGp3dDpudWxsIT0oYT1udWxsPT0obj1vLnNlc3Npb24pP3ZvaWQgMDpuLmFjY2Vzc190b2tlbik/YTp2b2lkIDB9KX0pO2lmKHIpdGhyb3cgcjtyZXR1cm4hZVEoKXx8KG51bGw9PSh0PWUub3B0aW9ucyk/dm9pZCAwOnQuc2tpcEJyb3dzZXJSZWRpcmVjdCl8fHdpbmRvdy5sb2NhdGlvbi5hc3NpZ24obnVsbD09cz92b2lkIDA6cy51cmwpLHtkYXRhOntwcm92aWRlcjplLnByb3ZpZGVyLHVybDpudWxsPT1zP3ZvaWQgMDpzLnVybH0sZXJyb3I6bnVsbH19Y2F0Y2godCl7aWYoZXgodCkpcmV0dXJue2RhdGE6e3Byb3ZpZGVyOmUucHJvdmlkZXIsdXJsOm51bGx9LGVycm9yOnR9O3Rocm93IHR9fWFzeW5jIHVubGlua0lkZW50aXR5KGUpe3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyB0PT57dmFyIHMscjtsZXR7ZGF0YTppLGVycm9yOm59PXQ7aWYobil0aHJvdyBuO3JldHVybiBhd2FpdCB0YSh0aGlzLmZldGNoLCJERUxFVEUiLGAke3RoaXMudXJsfS91c2VyL2lkZW50aXRpZXMvJHtlLmlkZW50aXR5X2lkfWAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGp3dDpudWxsIT0ocj1udWxsPT0ocz1pLnNlc3Npb24pP3ZvaWQgMDpzLmFjY2Vzc190b2tlbik/cjp2b2lkIDB9KX0pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgX3JlZnJlc2hBY2Nlc3NUb2tlbihlKXtsZXQgdD1gI19yZWZyZXNoQWNjZXNzVG9rZW4oJHtlLnN1YnN0cmluZygwLDUpfS4uLilgO3RoaXMuX2RlYnVnKHQsImJlZ2luIik7dHJ5e3ZhciBzLHI7bGV0IGk9RGF0ZS5ub3coKTtyZXR1cm4gYXdhaXQgKHM9YXN5bmMgcz0+KHM+MCYmYXdhaXQgZTYoMjAwKk1hdGgucG93KDIscy0xKSksdGhpcy5fZGVidWcodCwicmVmcmVzaGluZyBhdHRlbXB0IixzKSxhd2FpdCB0YSh0aGlzLmZldGNoLCJQT1NUIixgJHt0aGlzLnVybH0vdG9rZW4/Z3JhbnRfdHlwZT1yZWZyZXNoX3Rva2VuYCx7Ym9keTp7cmVmcmVzaF90b2tlbjplfSxoZWFkZXJzOnRoaXMuaGVhZGVycyx4Zm9ybTp0bH0pKSxyPShlLHQpPT57bGV0IHM9MjAwKk1hdGgucG93KDIsZSk7cmV0dXJuIHQmJmVKKHQpJiZEYXRlLm5vdygpK3MtaTwzZTR9LG5ldyBQcm9taXNlKChlLHQpPT57KGFzeW5jKCk9Pntmb3IobGV0IGk9MDtpPDEvMDtpKyspdHJ5e2xldCB0PWF3YWl0IHMoaSk7aWYoIXIoaSxudWxsLHQpKXJldHVybiB2b2lkIGUodCl9Y2F0Y2goZSl7aWYoIXIoaSxlKSlyZXR1cm4gdm9pZCB0KGUpfX0pKCl9KSl9Y2F0Y2goZSl7aWYodGhpcy5fZGVidWcodCwiZXJyb3IiLGUpLGV4KGUpKXJldHVybntkYXRhOntzZXNzaW9uOm51bGwsdXNlcjpudWxsfSxlcnJvcjplfTt0aHJvdyBlfWZpbmFsbHl7dGhpcy5fZGVidWcodCwiZW5kIil9fV9pc1ZhbGlkU2Vzc2lvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiYiYWNjZXNzX3Rva2VuImluIGUmJiJyZWZyZXNoX3Rva2VuImluIGUmJiJleHBpcmVzX2F0ImluIGV9YXN5bmMgX2hhbmRsZVByb3ZpZGVyU2lnbkluKGUsdCl7bGV0IHM9YXdhaXQgdGhpcy5fZ2V0VXJsRm9yUHJvdmlkZXIoYCR7dGhpcy51cmx9L2F1dGhvcml6ZWAsZSx7cmVkaXJlY3RUbzp0LnJlZGlyZWN0VG8sc2NvcGVzOnQuc2NvcGVzLHF1ZXJ5UGFyYW1zOnQucXVlcnlQYXJhbXN9KTtyZXR1cm4gdGhpcy5fZGVidWcoIiNfaGFuZGxlUHJvdmlkZXJTaWduSW4oKSIsInByb3ZpZGVyIixlLCJvcHRpb25zIix0LCJ1cmwiLHMpLGVRKCkmJiF0LnNraXBCcm93c2VyUmVkaXJlY3QmJndpbmRvdy5sb2NhdGlvbi5hc3NpZ24ocykse2RhdGE6e3Byb3ZpZGVyOmUsdXJsOnN9LGVycm9yOm51bGx9fWFzeW5jIF9yZWNvdmVyQW5kUmVmcmVzaCgpe3ZhciBlO2xldCB0PSIjX3JlY292ZXJBbmRSZWZyZXNoKCkiO3RoaXMuX2RlYnVnKHQsImJlZ2luIik7dHJ5e2xldCBzPWF3YWl0IGUyKHRoaXMuc3RvcmFnZSx0aGlzLnN0b3JhZ2VLZXkpO2lmKHRoaXMuX2RlYnVnKHQsInNlc3Npb24gZnJvbSBzdG9yYWdlIixzKSwhdGhpcy5faXNWYWxpZFNlc3Npb24ocykpe3RoaXMuX2RlYnVnKHQsInNlc3Npb24gaXMgbm90IHZhbGlkIiksbnVsbCE9PXMmJmF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKTtyZXR1cm59bGV0IHI9KG51bGwhPShlPXMuZXhwaXJlc19hdCk/ZToxLzApKjFlMy1EYXRlLm5vdygpPDllNDtpZih0aGlzLl9kZWJ1Zyh0LGBzZXNzaW9uIGhhcyR7cj8iIjoiIG5vdCJ9IGV4cGlyZWQgd2l0aCBtYXJnaW4gb2YgOTAwMDBzYCkscil7aWYodGhpcy5hdXRvUmVmcmVzaFRva2VuJiZzLnJlZnJlc2hfdG9rZW4pe2xldHtlcnJvcjplfT1hd2FpdCB0aGlzLl9jYWxsUmVmcmVzaFRva2VuKHMucmVmcmVzaF90b2tlbik7ZSYmKGNvbnNvbGUuZXJyb3IoZSksZUooZSl8fCh0aGlzLl9kZWJ1Zyh0LCJyZWZyZXNoIGZhaWxlZCB3aXRoIGEgbm9uLXJldHJ5YWJsZSBlcnJvciwgcmVtb3ZpbmcgdGhlIHNlc3Npb24iLGUpLGF3YWl0IHRoaXMuX3JlbW92ZVNlc3Npb24oKSkpfX1lbHNlIGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJTSUdORURfSU4iLHMpfWNhdGNoKGUpe3RoaXMuX2RlYnVnKHQsImVycm9yIixlKSxjb25zb2xlLmVycm9yKGUpO3JldHVybn1maW5hbGx5e3RoaXMuX2RlYnVnKHQsImVuZCIpfX1hc3luYyBfY2FsbFJlZnJlc2hUb2tlbihlKXt2YXIgdCxzO2lmKCFlKXRocm93IG5ldyBlRDtpZih0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZClyZXR1cm4gdGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQucHJvbWlzZTtsZXQgcj1gI19jYWxsUmVmcmVzaFRva2VuKCR7ZS5zdWJzdHJpbmcoMCw1KX0uLi4pYDt0aGlzLl9kZWJ1ZyhyLCJiZWdpbiIpO3RyeXt0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZD1uZXcgZTQ7bGV0e2RhdGE6dCxlcnJvcjpzfT1hd2FpdCB0aGlzLl9yZWZyZXNoQWNjZXNzVG9rZW4oZSk7aWYocyl0aHJvdyBzO2lmKCF0LnNlc3Npb24pdGhyb3cgbmV3IGVEO2F3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKHQuc2Vzc2lvbiksYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoIlRPS0VOX1JFRlJFU0hFRCIsdC5zZXNzaW9uKTtsZXQgcj17c2Vzc2lvbjp0LnNlc3Npb24sZXJyb3I6bnVsbH07cmV0dXJuIHRoaXMucmVmcmVzaGluZ0RlZmVycmVkLnJlc29sdmUocikscn1jYXRjaChlKXtpZih0aGlzLl9kZWJ1ZyhyLCJlcnJvciIsZSksZXgoZSkpe2xldCBzPXtzZXNzaW9uOm51bGwsZXJyb3I6ZX07cmV0dXJuIGVKKGUpfHxhd2FpdCB0aGlzLl9yZW1vdmVTZXNzaW9uKCksbnVsbD09KHQ9dGhpcy5yZWZyZXNoaW5nRGVmZXJyZWQpfHx0LnJlc29sdmUocyksc310aHJvdyBudWxsPT0ocz10aGlzLnJlZnJlc2hpbmdEZWZlcnJlZCl8fHMucmVqZWN0KGUpLGV9ZmluYWxseXt0aGlzLnJlZnJlc2hpbmdEZWZlcnJlZD1udWxsLHRoaXMuX2RlYnVnKHIsImVuZCIpfX1hc3luYyBfbm90aWZ5QWxsU3Vic2NyaWJlcnMoZSx0LHM9ITApe2xldCByPWAjX25vdGlmeUFsbFN1YnNjcmliZXJzKCR7ZX0pYDt0aGlzLl9kZWJ1ZyhyLCJiZWdpbiIsdCxgYnJvYWRjYXN0ID0gJHtzfWApO3RyeXt0aGlzLmJyb2FkY2FzdENoYW5uZWwmJnMmJnRoaXMuYnJvYWRjYXN0Q2hhbm5lbC5wb3N0TWVzc2FnZSh7ZXZlbnQ6ZSxzZXNzaW9uOnR9KTtsZXQgcj1bXSxpPUFycmF5LmZyb20odGhpcy5zdGF0ZUNoYW5nZUVtaXR0ZXJzLnZhbHVlcygpKS5tYXAoYXN5bmMgcz0+e3RyeXthd2FpdCBzLmNhbGxiYWNrKGUsdCl9Y2F0Y2goZSl7ci5wdXNoKGUpfX0pO2lmKGF3YWl0IFByb21pc2UuYWxsKGkpLHIubGVuZ3RoPjApe2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7ZSs9MSljb25zb2xlLmVycm9yKHJbZV0pO3Rocm93IHJbMF19fWZpbmFsbHl7dGhpcy5fZGVidWcociwiZW5kIil9fWFzeW5jIF9zYXZlU2Vzc2lvbihlKXt0aGlzLl9kZWJ1ZygiI19zYXZlU2Vzc2lvbigpIixlKSx0aGlzLnN1cHByZXNzR2V0U2Vzc2lvbldhcm5pbmc9ITAsYXdhaXQgZTEodGhpcy5zdG9yYWdlLHRoaXMuc3RvcmFnZUtleSxlKX1hc3luYyBfcmVtb3ZlU2Vzc2lvbigpe3RoaXMuX2RlYnVnKCIjX3JlbW92ZVNlc3Npb24oKSIpLGF3YWl0IGUzKHRoaXMuc3RvcmFnZSx0aGlzLnN0b3JhZ2VLZXkpLGF3YWl0IHRoaXMuX25vdGlmeUFsbFN1YnNjcmliZXJzKCJTSUdORURfT1VUIixudWxsKX1fcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpe3RoaXMuX2RlYnVnKCIjX3JlbW92ZVZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2soKSIpO2xldCBlPXRoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjazt0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2s9bnVsbDt0cnl7ZSYmZVEoKSYmKG51bGw9PXdpbmRvdz92b2lkIDA6d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIpJiZ3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcigicmVtb3ZpbmcgdmlzaWJpbGl0eWNoYW5nZSBjYWxsYmFjayBmYWlsZWQiLGUpfX1hc3luYyBfc3RhcnRBdXRvUmVmcmVzaCgpe2F3YWl0IHRoaXMuX3N0b3BBdXRvUmVmcmVzaCgpLHRoaXMuX2RlYnVnKCIjX3N0YXJ0QXV0b1JlZnJlc2goKSIpO2xldCBlPXNldEludGVydmFsKCgpPT50aGlzLl9hdXRvUmVmcmVzaFRva2VuVGljaygpLDNlNCk7dGhpcy5hdXRvUmVmcmVzaFRpY2tlcj1lLGUmJiJvYmplY3QiPT10eXBlb2YgZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudW5yZWY/ZS51bnJlZigpOiJ1bmRlZmluZWQiIT10eXBlb2YgRGVubyYmImZ1bmN0aW9uIj09dHlwZW9mIERlbm8udW5yZWZUaW1lciYmRGVuby51bnJlZlRpbWVyKGUpLHNldFRpbWVvdXQoYXN5bmMoKT0+e2F3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2UsYXdhaXQgdGhpcy5fYXV0b1JlZnJlc2hUb2tlblRpY2soKX0sMCl9YXN5bmMgX3N0b3BBdXRvUmVmcmVzaCgpe3RoaXMuX2RlYnVnKCIjX3N0b3BBdXRvUmVmcmVzaCgpIik7bGV0IGU9dGhpcy5hdXRvUmVmcmVzaFRpY2tlcjt0aGlzLmF1dG9SZWZyZXNoVGlja2VyPW51bGwsZSYmY2xlYXJJbnRlcnZhbChlKX1hc3luYyBzdGFydEF1dG9SZWZyZXNoKCl7dGhpcy5fcmVtb3ZlVmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaygpLGF3YWl0IHRoaXMuX3N0YXJ0QXV0b1JlZnJlc2goKX1hc3luYyBzdG9wQXV0b1JlZnJlc2goKXt0aGlzLl9yZW1vdmVWaXNpYmlsaXR5Q2hhbmdlZENhbGxiYWNrKCksYXdhaXQgdGhpcy5fc3RvcEF1dG9SZWZyZXNoKCl9YXN5bmMgX2F1dG9SZWZyZXNoVG9rZW5UaWNrKCl7dGhpcy5fZGVidWcoIiNfYXV0b1JlZnJlc2hUb2tlblRpY2soKSIsImJlZ2luIik7dHJ5e2F3YWl0IHRoaXMuX2FjcXVpcmVMb2NrKDAsYXN5bmMoKT0+e3RyeXtsZXQgZT1EYXRlLm5vdygpO3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyB0PT57bGV0e2RhdGE6e3Nlc3Npb246c319PXQ7aWYoIXN8fCFzLnJlZnJlc2hfdG9rZW58fCFzLmV4cGlyZXNfYXQpcmV0dXJuIHZvaWQgdGhpcy5fZGVidWcoIiNfYXV0b1JlZnJlc2hUb2tlblRpY2soKSIsIm5vIHNlc3Npb24iKTtsZXQgcj1NYXRoLmZsb29yKCgxZTMqcy5leHBpcmVzX2F0LWUpLzNlNCk7dGhpcy5fZGVidWcoIiNfYXV0b1JlZnJlc2hUb2tlblRpY2soKSIsYGFjY2VzcyB0b2tlbiBleHBpcmVzIGluICR7cn0gdGlja3MsIGEgdGljayBsYXN0cyAzMDAwMG1zLCByZWZyZXNoIHRocmVzaG9sZCBpcyAzIHRpY2tzYCkscjw9MyYmYXdhaXQgdGhpcy5fY2FsbFJlZnJlc2hUb2tlbihzLnJlZnJlc2hfdG9rZW4pfSl9Y2F0Y2goZSl7Y29uc29sZS5lcnJvcigiQXV0byByZWZyZXNoIHRpY2sgZmFpbGVkIHdpdGggZXJyb3IuIFRoaXMgaXMgbGlrZWx5IGEgdHJhbnNpZW50IGVycm9yLiIsZSl9fWZpbmFsbHl7dGhpcy5fZGVidWcoIiNfYXV0b1JlZnJlc2hUb2tlblRpY2soKSIsImVuZCIpfX0pfWNhdGNoKGUpe2lmKGUuaXNBY3F1aXJlVGltZW91dHx8ZSBpbnN0YW5jZW9mIHRfKXRoaXMuX2RlYnVnKCJhdXRvIHJlZnJlc2ggdG9rZW4gdGljayBsb2NrIG5vdCBhdmFpbGFibGUiKTtlbHNlIHRocm93IGV9fWFzeW5jIF9oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKCl7aWYodGhpcy5fZGVidWcoIiNfaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgpIiksIWVRKCl8fCEobnVsbD09d2luZG93P3ZvaWQgMDp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikpcmV0dXJuIHRoaXMuYXV0b1JlZnJlc2hUb2tlbiYmdGhpcy5zdGFydEF1dG9SZWZyZXNoKCksITE7dHJ5e3RoaXMudmlzaWJpbGl0eUNoYW5nZWRDYWxsYmFjaz1hc3luYygpPT5hd2FpdCB0aGlzLl9vblZpc2liaWxpdHlDaGFuZ2VkKCExKSxudWxsPT13aW5kb3d8fHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIix0aGlzLnZpc2liaWxpdHlDaGFuZ2VkQ2FsbGJhY2spLGF3YWl0IHRoaXMuX29uVmlzaWJpbGl0eUNoYW5nZWQoITApfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoIl9oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlIixlKX19YXN5bmMgX29uVmlzaWJpbGl0eUNoYW5nZWQoZSl7bGV0IHQ9YCNfb25WaXNpYmlsaXR5Q2hhbmdlZCgke2V9KWA7dGhpcy5fZGVidWcodCwidmlzaWJpbGl0eVN0YXRlIixkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUpLCJ2aXNpYmxlIj09PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT8odGhpcy5hdXRvUmVmcmVzaFRva2VuJiZ0aGlzLl9zdGFydEF1dG9SZWZyZXNoKCksZXx8KGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVByb21pc2UsYXdhaXQgdGhpcy5fYWNxdWlyZUxvY2soLTEsYXN5bmMoKT0+eyJ2aXNpYmxlIiE9PWRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZT90aGlzLl9kZWJ1Zyh0LCJhY3F1aXJlZCB0aGUgbG9jayB0byByZWNvdmVyIHRoZSBzZXNzaW9uLCBidXQgdGhlIGJyb3dzZXIgdmlzaWJpbGl0eVN0YXRlIGlzIG5vIGxvbmdlciB2aXNpYmxlLCBhYm9ydGluZyIpOmF3YWl0IHRoaXMuX3JlY292ZXJBbmRSZWZyZXNoKCl9KSkpOiJoaWRkZW4iPT09ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlJiZ0aGlzLmF1dG9SZWZyZXNoVG9rZW4mJnRoaXMuX3N0b3BBdXRvUmVmcmVzaCgpfWFzeW5jIF9nZXRVcmxGb3JQcm92aWRlcihlLHQscyl7bGV0IHI9W2Bwcm92aWRlcj0ke2VuY29kZVVSSUNvbXBvbmVudCh0KX1gXTtpZigobnVsbD09cz92b2lkIDA6cy5yZWRpcmVjdFRvKSYmci5wdXNoKGByZWRpcmVjdF90bz0ke2VuY29kZVVSSUNvbXBvbmVudChzLnJlZGlyZWN0VG8pfWApLChudWxsPT1zP3ZvaWQgMDpzLnNjb3BlcykmJnIucHVzaChgc2NvcGVzPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHMuc2NvcGVzKX1gKSwicGtjZSI9PT10aGlzLmZsb3dUeXBlKXtsZXRbZSx0XT1hd2FpdCB0ZSh0aGlzLnN0b3JhZ2UsdGhpcy5zdG9yYWdlS2V5KSxzPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2NvZGVfY2hhbGxlbmdlOmAke2VuY29kZVVSSUNvbXBvbmVudChlKX1gLGNvZGVfY2hhbGxlbmdlX21ldGhvZDpgJHtlbmNvZGVVUklDb21wb25lbnQodCl9YH0pO3IucHVzaChzLnRvU3RyaW5nKCkpfWlmKG51bGw9PXM/dm9pZCAwOnMucXVlcnlQYXJhbXMpe2xldCBlPW5ldyBVUkxTZWFyY2hQYXJhbXMocy5xdWVyeVBhcmFtcyk7ci5wdXNoKGUudG9TdHJpbmcoKSl9cmV0dXJuKG51bGw9PXM/dm9pZCAwOnMuc2tpcEJyb3dzZXJSZWRpcmVjdCkmJnIucHVzaChgc2tpcF9odHRwX3JlZGlyZWN0PSR7cy5za2lwQnJvd3NlclJlZGlyZWN0fWApLGAke2V9PyR7ci5qb2luKCImIil9YH1hc3luYyBfdW5lbnJvbGwoZSl7dHJ5e3JldHVybiBhd2FpdCB0aGlzLl91c2VTZXNzaW9uKGFzeW5jIHQ9Pnt2YXIgcztsZXR7ZGF0YTpyLGVycm9yOml9PXQ7cmV0dXJuIGk/e2RhdGE6bnVsbCxlcnJvcjppfTphd2FpdCB0YSh0aGlzLmZldGNoLCJERUxFVEUiLGAke3RoaXMudXJsfS9mYWN0b3JzLyR7ZS5mYWN0b3JJZH1gLHtoZWFkZXJzOnRoaXMuaGVhZGVycyxqd3Q6bnVsbD09KHM9bnVsbD09cj92b2lkIDA6ci5zZXNzaW9uKT92b2lkIDA6cy5hY2Nlc3NfdG9rZW59KX0pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgX2Vucm9sbChlKXt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgdD0+e3ZhciBzLHI7bGV0e2RhdGE6aSxlcnJvcjpufT10O2lmKG4pcmV0dXJue2RhdGE6bnVsbCxlcnJvcjpufTtsZXQgYT1PYmplY3QuYXNzaWduKHtmcmllbmRseV9uYW1lOmUuZnJpZW5kbHlOYW1lLGZhY3Rvcl90eXBlOmUuZmFjdG9yVHlwZX0sInBob25lIj09PWUuZmFjdG9yVHlwZT97cGhvbmU6ZS5waG9uZX06e2lzc3VlcjplLmlzc3Vlcn0pLHtkYXRhOm8sZXJyb3I6bH09YXdhaXQgdGEodGhpcy5mZXRjaCwiUE9TVCIsYCR7dGhpcy51cmx9L2ZhY3RvcnNgLHtib2R5OmEsaGVhZGVyczp0aGlzLmhlYWRlcnMsand0Om51bGw9PShzPW51bGw9PWk/dm9pZCAwOmkuc2Vzc2lvbik/dm9pZCAwOnMuYWNjZXNzX3Rva2VufSk7cmV0dXJuIGw/e2RhdGE6bnVsbCxlcnJvcjpsfTooInRvdHAiPT09ZS5mYWN0b3JUeXBlJiYobnVsbD09KHI9bnVsbD09bz92b2lkIDA6by50b3RwKT92b2lkIDA6ci5xcl9jb2RlKSYmKG8udG90cC5xcl9jb2RlPWBkYXRhOmltYWdlL3N2Zyt4bWw7dXRmLTgsJHtvLnRvdHAucXJfY29kZX1gKSx7ZGF0YTpvLGVycm9yOm51bGx9KX0pfWNhdGNoKGUpe2lmKGV4KGUpKXJldHVybntkYXRhOm51bGwsZXJyb3I6ZX07dGhyb3cgZX19YXN5bmMgX3ZlcmlmeShlKXtyZXR1cm4gdGhpcy5fYWNxdWlyZUxvY2soLTEsYXN5bmMoKT0+e3RyeXtyZXR1cm4gYXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyB0PT57dmFyIHM7bGV0e2RhdGE6cixlcnJvcjppfT10O2lmKGkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjppfTtsZXR7ZGF0YTpuLGVycm9yOmF9PWF3YWl0IHRhKHRoaXMuZmV0Y2gsIlBPU1QiLGAke3RoaXMudXJsfS9mYWN0b3JzLyR7ZS5mYWN0b3JJZH0vdmVyaWZ5YCx7Ym9keTp7Y29kZTplLmNvZGUsY2hhbGxlbmdlX2lkOmUuY2hhbGxlbmdlSWR9LGhlYWRlcnM6dGhpcy5oZWFkZXJzLGp3dDpudWxsPT0ocz1udWxsPT1yP3ZvaWQgMDpyLnNlc3Npb24pP3ZvaWQgMDpzLmFjY2Vzc190b2tlbn0pO3JldHVybiBhP3tkYXRhOm51bGwsZXJyb3I6YX06KGF3YWl0IHRoaXMuX3NhdmVTZXNzaW9uKE9iamVjdC5hc3NpZ24oe2V4cGlyZXNfYXQ6TWF0aC5yb3VuZChEYXRlLm5vdygpLzFlMykrbi5leHBpcmVzX2lufSxuKSksYXdhaXQgdGhpcy5fbm90aWZ5QWxsU3Vic2NyaWJlcnMoIk1GQV9DSEFMTEVOR0VfVkVSSUZJRUQiLG4pLHtkYXRhOm4sZXJyb3I6YX0pfSl9Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjplfTt0aHJvdyBlfX0pfWFzeW5jIF9jaGFsbGVuZ2UoZSl7cmV0dXJuIHRoaXMuX2FjcXVpcmVMb2NrKC0xLGFzeW5jKCk9Pnt0cnl7cmV0dXJuIGF3YWl0IHRoaXMuX3VzZVNlc3Npb24oYXN5bmMgdD0+e3ZhciBzO2xldHtkYXRhOnIsZXJyb3I6aX09dDtyZXR1cm4gaT97ZGF0YTpudWxsLGVycm9yOml9OmF3YWl0IHRhKHRoaXMuZmV0Y2gsIlBPU1QiLGAke3RoaXMudXJsfS9mYWN0b3JzLyR7ZS5mYWN0b3JJZH0vY2hhbGxlbmdlYCx7Ym9keTp7Y2hhbm5lbDplLmNoYW5uZWx9LGhlYWRlcnM6dGhpcy5oZWFkZXJzLGp3dDpudWxsPT0ocz1udWxsPT1yP3ZvaWQgMDpyLnNlc3Npb24pP3ZvaWQgMDpzLmFjY2Vzc190b2tlbn0pfSl9Y2F0Y2goZSl7aWYoZXgoZSkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjplfTt0aHJvdyBlfX0pfWFzeW5jIF9jaGFsbGVuZ2VBbmRWZXJpZnkoZSl7bGV0e2RhdGE6dCxlcnJvcjpzfT1hd2FpdCB0aGlzLl9jaGFsbGVuZ2Uoe2ZhY3RvcklkOmUuZmFjdG9ySWR9KTtyZXR1cm4gcz97ZGF0YTpudWxsLGVycm9yOnN9OmF3YWl0IHRoaXMuX3ZlcmlmeSh7ZmFjdG9ySWQ6ZS5mYWN0b3JJZCxjaGFsbGVuZ2VJZDp0LmlkLGNvZGU6ZS5jb2RlfSl9YXN5bmMgX2xpc3RGYWN0b3JzKCl7bGV0e2RhdGE6e3VzZXI6ZX0sZXJyb3I6dH09YXdhaXQgdGhpcy5nZXRVc2VyKCk7aWYodClyZXR1cm57ZGF0YTpudWxsLGVycm9yOnR9O2xldCBzPShudWxsPT1lP3ZvaWQgMDplLmZhY3RvcnMpfHxbXSxyPXMuZmlsdGVyKGU9PiJ0b3RwIj09PWUuZmFjdG9yX3R5cGUmJiJ2ZXJpZmllZCI9PT1lLnN0YXR1cyksaT1zLmZpbHRlcihlPT4icGhvbmUiPT09ZS5mYWN0b3JfdHlwZSYmInZlcmlmaWVkIj09PWUuc3RhdHVzKTtyZXR1cm57ZGF0YTp7YWxsOnMsdG90cDpyLHBob25lOml9LGVycm9yOm51bGx9fWFzeW5jIF9nZXRBdXRoZW50aWNhdG9yQXNzdXJhbmNlTGV2ZWwoKXtyZXR1cm4gdGhpcy5fYWNxdWlyZUxvY2soLTEsYXN5bmMoKT0+YXdhaXQgdGhpcy5fdXNlU2Vzc2lvbihhc3luYyBlPT57dmFyIHQscztsZXR7ZGF0YTp7c2Vzc2lvbjpyfSxlcnJvcjppfT1lO2lmKGkpcmV0dXJue2RhdGE6bnVsbCxlcnJvcjppfTtpZighcilyZXR1cm57ZGF0YTp7Y3VycmVudExldmVsOm51bGwsbmV4dExldmVsOm51bGwsY3VycmVudEF1dGhlbnRpY2F0aW9uTWV0aG9kczpbXX0sZXJyb3I6bnVsbH07bGV0e3BheWxvYWQ6bn09ZTUoci5hY2Nlc3NfdG9rZW4pLGE9bnVsbDtuLmFhbCYmKGE9bi5hYWwpO2xldCBvPWE7cmV0dXJuKG51bGwhPShzPW51bGw9PSh0PXIudXNlci5mYWN0b3JzKT92b2lkIDA6dC5maWx0ZXIoZT0+InZlcmlmaWVkIj09PWUuc3RhdHVzKSk/czpbXSkubGVuZ3RoPjAmJihvPSJhYWwyIikse2RhdGE6e2N1cnJlbnRMZXZlbDphLG5leHRMZXZlbDpvLGN1cnJlbnRBdXRoZW50aWNhdGlvbk1ldGhvZHM6bi5hbXJ8fFtdfSxlcnJvcjpudWxsfX0pKX1hc3luYyBmZXRjaEp3ayhlLHQ9e2tleXM6W119KXtsZXQgcz10LmtleXMuZmluZCh0PT50LmtpZD09PWUpO2lmKHN8fChzPXRoaXMuandrcy5rZXlzLmZpbmQodD0+dC5raWQ9PT1lKSkmJnRoaXMuandrc19jYWNoZWRfYXQrNmU1PkRhdGUubm93KCkpcmV0dXJuIHM7bGV0e2RhdGE6cixlcnJvcjppfT1hd2FpdCB0YSh0aGlzLmZldGNoLCJHRVQiLGAke3RoaXMudXJsfS8ud2VsbC1rbm93bi9qd2tzLmpzb25gLHtoZWFkZXJzOnRoaXMuaGVhZGVyc30pO2lmKGkpdGhyb3cgaTtpZighci5rZXlzfHwwPT09ci5rZXlzLmxlbmd0aCl0aHJvdyBuZXcgZUsoIkpXS1MgaXMgZW1wdHkiKTtpZih0aGlzLmp3a3M9cix0aGlzLmp3a3NfY2FjaGVkX2F0PURhdGUubm93KCksIShzPXIua2V5cy5maW5kKHQ9PnQua2lkPT09ZSkpKXRocm93IG5ldyBlSygiTm8gbWF0Y2hpbmcgc2lnbmluZyBrZXkgZm91bmQgaW4gSldLUyIpO3JldHVybiBzfWFzeW5jIGdldENsYWltcyhlLHQ9e2tleXM6W119KXt0cnl7bGV0IGksbj1lO2lmKCFuKXtsZXR7ZGF0YTplLGVycm9yOnR9PWF3YWl0IHRoaXMuZ2V0U2Vzc2lvbigpO2lmKHR8fCFlLnNlc3Npb24pcmV0dXJue2RhdGE6bnVsbCxlcnJvcjp0fTtuPWUuc2Vzc2lvbi5hY2Nlc3NfdG9rZW59bGV0e2hlYWRlcjphLHBheWxvYWQ6byxzaWduYXR1cmU6bCxyYXc6e2hlYWRlcjpoLHBheWxvYWQ6Y319PWU1KG4pO3ZhciBzLHI9by5leHA7aWYoIXIpdGhyb3cgRXJyb3IoIk1pc3NpbmcgZXhwIGNsYWltIik7aWYocjw9TWF0aC5mbG9vcihEYXRlLm5vdygpLzFlMykpdGhyb3cgRXJyb3IoIkpXVCBoYXMgZXhwaXJlZCIpO2lmKCFhLmtpZHx8IkhTMjU2Ij09PWEuYWxnfHwhKCJjcnlwdG8iaW4gZ2xvYmFsVGhpcyYmInN1YnRsZSJpbiBnbG9iYWxUaGlzLmNyeXB0bykpe2xldHtlcnJvcjplfT1hd2FpdCB0aGlzLmdldFVzZXIobik7aWYoZSl0aHJvdyBlO3JldHVybntkYXRhOntjbGFpbXM6byxoZWFkZXI6YSxzaWduYXR1cmU6bH0sZXJyb3I6bnVsbH19bGV0IHU9ZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UiUlMyNTYiOnJldHVybntuYW1lOiJSU0FTU0EtUEtDUzEtdjFfNSIsaGFzaDp7bmFtZToiU0hBLTI1NiJ9fTtjYXNlIkVTMjU2IjpyZXR1cm57bmFtZToiRUNEU0EiLG5hbWVkQ3VydmU6IlAtMjU2IixoYXNoOntuYW1lOiJTSEEtMjU2In19O2RlZmF1bHQ6dGhyb3cgRXJyb3IoIkludmFsaWQgYWxnIGNsYWltIil9fShhLmFsZyksZD1hd2FpdCB0aGlzLmZldGNoSndrKGEua2lkLHQpLGY9YXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsZCx1LCEwLFsidmVyaWZ5Il0pO2lmKCFhd2FpdCBjcnlwdG8uc3VidGxlLnZlcmlmeSh1LGYsbCwocz1gJHtofS4ke2N9YCxpPVtdLCFmdW5jdGlvbihlLHQpe2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cys9MSl7bGV0IHI9ZS5jaGFyQ29kZUF0KHMpO2lmKHI+NTUyOTUmJnI8PTU2MzE5KXtsZXQgdD0oci01NTI5NikqMTAyNCY2NTUzNTtyPShlLmNoYXJDb2RlQXQocysxKS01NjMyMCY2NTUzNXx0KSs2NTUzNixzKz0xfSFmdW5jdGlvbihlLHQpe2lmKGU8PTEyNylyZXR1cm4gdChlKTtpZihlPD0yMDQ3KXt0KDE5MnxlPj42KSx0KDEyOHw2MyZlKTtyZXR1cm59aWYoZTw9NjU1MzUpe3QoMjI0fGU+PjEyKSx0KDEyOHxlPj42JjYzKSx0KDEyOHw2MyZlKTtyZXR1cm59aWYoZTw9MTExNDExMSl7dCgyNDB8ZT4+MTgpLHQoMTI4fGU+PjEyJjYzKSx0KDEyOHxlPj42JjYzKSx0KDEyOHw2MyZlKTtyZXR1cm59dGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCBVbmljb2RlIGNvZGVwb2ludDogJHtlLnRvU3RyaW5nKDE2KX1gKX0ocix0KX19KHMsZT0+aS5wdXNoKGUpKSxuZXcgVWludDhBcnJheShpKSkpKXRocm93IG5ldyBlSygiSW52YWxpZCBKV1Qgc2lnbmF0dXJlIik7cmV0dXJue2RhdGE6e2NsYWltczpvLGhlYWRlcjphLHNpZ25hdHVyZTpsfSxlcnJvcjpudWxsfX1jYXRjaChlKXtpZihleChlKSlyZXR1cm57ZGF0YTpudWxsLGVycm9yOmV9O3Rocm93IGV9fX10Uy5uZXh0SW5zdGFuY2VJRD0wO2xldCB0aj10UztjbGFzcyB0RSBleHRlbmRzIHRqe2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpfX1jbGFzcyB0T3tjb25zdHJ1Y3RvcihlLHQscyl7dmFyIHIsaSxuO2lmKHRoaXMuc3VwYWJhc2VVcmw9ZSx0aGlzLnN1cGFiYXNlS2V5PXQsIWUpdGhyb3cgRXJyb3IoInN1cGFiYXNlVXJsIGlzIHJlcXVpcmVkLiIpO2lmKCF0KXRocm93IEVycm9yKCJzdXBhYmFzZUtleSBpcyByZXF1aXJlZC4iKTtjb25zdCBvPWUucmVwbGFjZSgvXC8kLywiIik7dGhpcy5yZWFsdGltZVVybD1gJHtvfS9yZWFsdGltZS92MWAucmVwbGFjZSgvXmh0dHAvaSwid3MiKSx0aGlzLmF1dGhVcmw9YCR7b30vYXV0aC92MWAsdGhpcy5zdG9yYWdlVXJsPWAke299L3N0b3JhZ2UvdjFgLHRoaXMuZnVuY3Rpb25zVXJsPWAke299L2Z1bmN0aW9ucy92MWA7Y29uc3QgbD1gc2ItJHtuZXcgVVJMKHRoaXMuYXV0aFVybCkuaG9zdG5hbWUuc3BsaXQoIi4iKVswXX0tYXV0aC10b2tlbmAsaD1mdW5jdGlvbihlLHQpe2xldHtkYjpzLGF1dGg6cixyZWFsdGltZTppLGdsb2JhbDpufT1lLHtkYjphLGF1dGg6byxyZWFsdGltZTpsLGdsb2JhbDpofT10LGM9e2RiOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxhKSxzKSxhdXRoOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxvKSxyKSxyZWFsdGltZTpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbCksaSksZ2xvYmFsOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxoKSxuKSxhY2Nlc3NUb2tlbjooKT0+e3ZhciBlLHQscyxyO3JldHVybiBlPXRoaXMsdD12b2lkIDAscj1mdW5jdGlvbiooKXtyZXR1cm4iIn0sbmV3KHM9dm9pZCAwLHM9UHJvbWlzZSkoZnVuY3Rpb24oaSxuKXtmdW5jdGlvbiBhKGUpe3RyeXtsKHIubmV4dChlKSl9Y2F0Y2goZSl7bihlKX19ZnVuY3Rpb24gbyhlKXt0cnl7bChyLnRocm93KGUpKX1jYXRjaChlKXtuKGUpfX1mdW5jdGlvbiBsKGUpe3ZhciB0O2UuZG9uZT9pKGUudmFsdWUpOigodD1lLnZhbHVlKWluc3RhbmNlb2Ygcz90Om5ldyBzKGZ1bmN0aW9uKGUpe2UodCl9KSkudGhlbihhLG8pfWwoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfX07cmV0dXJuIGUuYWNjZXNzVG9rZW4/Yy5hY2Nlc3NUb2tlbj1lLmFjY2Vzc1Rva2VuOmRlbGV0ZSBjLmFjY2Vzc1Rva2VuLGN9KG51bGwhPXM/czp7fSx7ZGI6ZVQscmVhbHRpbWU6ZWosYXV0aDpPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZVMpLHtzdG9yYWdlS2V5Omx9KSxnbG9iYWw6ZWt9KTt0aGlzLnN0b3JhZ2VLZXk9bnVsbCE9KHI9aC5hdXRoLnN0b3JhZ2VLZXkpP3I6IiIsdGhpcy5oZWFkZXJzPW51bGwhPShpPWguZ2xvYmFsLmhlYWRlcnMpP2k6e30saC5hY2Nlc3NUb2tlbj8odGhpcy5hY2Nlc3NUb2tlbj1oLmFjY2Vzc1Rva2VuLHRoaXMuYXV0aD1uZXcgUHJveHkoe30se2dldDooZSx0KT0+e3Rocm93IEVycm9yKGBAc3VwYWJhc2Uvc3VwYWJhc2UtanM6IFN1cGFiYXNlIENsaWVudCBpcyBjb25maWd1cmVkIHdpdGggdGhlIGFjY2Vzc1Rva2VuIG9wdGlvbiwgYWNjZXNzaW5nIHN1cGFiYXNlLmF1dGguJHtTdHJpbmcodCl9IGlzIG5vdCBwb3NzaWJsZWApfX0pKTp0aGlzLmF1dGg9dGhpcy5faW5pdFN1cGFiYXNlQXV0aENsaWVudChudWxsIT0obj1oLmF1dGgpP246e30sdGhpcy5oZWFkZXJzLGguZ2xvYmFsLmZldGNoKSx0aGlzLmZldGNoPSgoZSx0LHMpPT57bGV0IHIsaT0ocj1zfHwoInVuZGVmaW5lZCI9PXR5cGVvZiBmZXRjaD9lRS5kZWZhdWx0OmZldGNoKSwoLi4uZSk9PnIoLi4uZSkpLG49InVuZGVmaW5lZCI9PXR5cGVvZiBIZWFkZXJzP2VFLkhlYWRlcnM6SGVhZGVycztyZXR1cm4ocyxyKT0+e3ZhciBhLG8sbCxoO3JldHVybiBhPXZvaWQgMCxvPXZvaWQgMCxsPXZvaWQgMCxoPWZ1bmN0aW9uKigpe3ZhciBhO2xldCBvPW51bGwhPShhPXlpZWxkIHQoKSk/YTplLGw9bmV3IG4obnVsbD09cj92b2lkIDA6ci5oZWFkZXJzKTtyZXR1cm4gbC5oYXMoImFwaWtleSIpfHxsLnNldCgiYXBpa2V5IixlKSxsLmhhcygiQXV0aG9yaXphdGlvbiIpfHxsLnNldCgiQXV0aG9yaXphdGlvbiIsYEJlYXJlciAke299YCksaShzLE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7aGVhZGVyczpsfSkpfSxuZXcobHx8KGw9UHJvbWlzZSkpKGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gcyhlKXt0cnl7aShoLm5leHQoZSkpfWNhdGNoKGUpe3QoZSl9fWZ1bmN0aW9uIHIoZSl7dHJ5e2koaC50aHJvdyhlKSl9Y2F0Y2goZSl7dChlKX19ZnVuY3Rpb24gaSh0KXt2YXIgaTt0LmRvbmU/ZSh0LnZhbHVlKTooKGk9dC52YWx1ZSlpbnN0YW5jZW9mIGw/aTpuZXcgbChmdW5jdGlvbihlKXtlKGkpfSkpLnRoZW4ocyxyKX1pKChoPWguYXBwbHkoYSxvfHxbXSkpLm5leHQoKSl9KX19KSh0LHRoaXMuX2dldEFjY2Vzc1Rva2VuLmJpbmQodGhpcyksaC5nbG9iYWwuZmV0Y2gpLHRoaXMucmVhbHRpbWU9dGhpcy5faW5pdFJlYWx0aW1lQ2xpZW50KE9iamVjdC5hc3NpZ24oe2hlYWRlcnM6dGhpcy5oZWFkZXJzLGFjY2Vzc1Rva2VuOnRoaXMuX2dldEFjY2Vzc1Rva2VuLmJpbmQodGhpcyl9LGgucmVhbHRpbWUpKSx0aGlzLnJlc3Q9bmV3IGEoYCR7b30vcmVzdC92MWAse2hlYWRlcnM6dGhpcy5oZWFkZXJzLHNjaGVtYTpoLmRiLnNjaGVtYSxmZXRjaDp0aGlzLmZldGNofSksaC5hY2Nlc3NUb2tlbnx8dGhpcy5fbGlzdGVuRm9yQXV0aEV2ZW50cygpfWdldCBmdW5jdGlvbnMoKXtyZXR1cm4gbmV3IG4odGhpcy5mdW5jdGlvbnNVcmwse2hlYWRlcnM6dGhpcy5oZWFkZXJzLGN1c3RvbUZldGNoOnRoaXMuZmV0Y2h9KX1nZXQgc3RvcmFnZSgpe3JldHVybiBuZXcgZXYodGhpcy5zdG9yYWdlVXJsLHRoaXMuaGVhZGVycyx0aGlzLmZldGNoKX1mcm9tKGUpe3JldHVybiB0aGlzLnJlc3QuZnJvbShlKX1zY2hlbWEoZSl7cmV0dXJuIHRoaXMucmVzdC5zY2hlbWEoZSl9cnBjKGUsdD17fSxzPXt9KXtyZXR1cm4gdGhpcy5yZXN0LnJwYyhlLHQscyl9Y2hhbm5lbChlLHQ9e2NvbmZpZzp7fX0pe3JldHVybiB0aGlzLnJlYWx0aW1lLmNoYW5uZWwoZSx0KX1nZXRDaGFubmVscygpe3JldHVybiB0aGlzLnJlYWx0aW1lLmdldENoYW5uZWxzKCl9cmVtb3ZlQ2hhbm5lbChlKXtyZXR1cm4gdGhpcy5yZWFsdGltZS5yZW1vdmVDaGFubmVsKGUpfXJlbW92ZUFsbENoYW5uZWxzKCl7cmV0dXJuIHRoaXMucmVhbHRpbWUucmVtb3ZlQWxsQ2hhbm5lbHMoKX1fZ2V0QWNjZXNzVG9rZW4oKXt2YXIgZSx0LHMscixpLG47cmV0dXJuIHM9dGhpcyxyPXZvaWQgMCxpPXZvaWQgMCxuPWZ1bmN0aW9uKigpe2lmKHRoaXMuYWNjZXNzVG9rZW4pcmV0dXJuIHlpZWxkIHRoaXMuYWNjZXNzVG9rZW4oKTtsZXR7ZGF0YTpzfT15aWVsZCB0aGlzLmF1dGguZ2V0U2Vzc2lvbigpO3JldHVybiBudWxsIT0odD1udWxsPT0oZT1zLnNlc3Npb24pP3ZvaWQgMDplLmFjY2Vzc190b2tlbik/dDpudWxsfSxuZXcoaXx8KGk9UHJvbWlzZSkpKGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gYShlKXt0cnl7bChuLm5leHQoZSkpfWNhdGNoKGUpe3QoZSl9fWZ1bmN0aW9uIG8oZSl7dHJ5e2wobi50aHJvdyhlKSl9Y2F0Y2goZSl7dChlKX19ZnVuY3Rpb24gbCh0KXt2YXIgczt0LmRvbmU/ZSh0LnZhbHVlKTooKHM9dC52YWx1ZSlpbnN0YW5jZW9mIGk/czpuZXcgaShmdW5jdGlvbihlKXtlKHMpfSkpLnRoZW4oYSxvKX1sKChuPW4uYXBwbHkocyxyfHxbXSkpLm5leHQoKSl9KX1faW5pdFN1cGFiYXNlQXV0aENsaWVudCh7YXV0b1JlZnJlc2hUb2tlbjplLHBlcnNpc3RTZXNzaW9uOnQsZGV0ZWN0U2Vzc2lvbkluVXJsOnMsc3RvcmFnZTpyLHN0b3JhZ2VLZXk6aSxmbG93VHlwZTpuLGxvY2s6YSxkZWJ1ZzpvfSxsLGgpe2xldCBjPXtBdXRob3JpemF0aW9uOmBCZWFyZXIgJHt0aGlzLnN1cGFiYXNlS2V5fWAsYXBpa2V5OmAke3RoaXMuc3VwYWJhc2VLZXl9YH07cmV0dXJuIG5ldyB0RSh7dXJsOnRoaXMuYXV0aFVybCxoZWFkZXJzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxjKSxsKSxzdG9yYWdlS2V5OmksYXV0b1JlZnJlc2hUb2tlbjplLHBlcnNpc3RTZXNzaW9uOnQsZGV0ZWN0U2Vzc2lvbkluVXJsOnMsc3RvcmFnZTpyLGZsb3dUeXBlOm4sbG9jazphLGRlYnVnOm8sZmV0Y2g6aCxoYXNDdXN0b21BdXRob3JpemF0aW9uSGVhZGVyOiJBdXRob3JpemF0aW9uImluIHRoaXMuaGVhZGVyc30pfV9pbml0UmVhbHRpbWVDbGllbnQoZSl7cmV0dXJuIG5ldyBDKHRoaXMucmVhbHRpbWVVcmwsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGUpLHtwYXJhbXM6T2JqZWN0LmFzc2lnbih7YXBpa2V5OnRoaXMuc3VwYWJhc2VLZXl9LG51bGw9PWU/dm9pZCAwOmUucGFyYW1zKX0pKX1fbGlzdGVuRm9yQXV0aEV2ZW50cygpe3JldHVybiB0aGlzLmF1dGgub25BdXRoU3RhdGVDaGFuZ2UoKGUsdCk9Pnt0aGlzLl9oYW5kbGVUb2tlbkNoYW5nZWQoZSwiQ0xJRU5UIixudWxsPT10P3ZvaWQgMDp0LmFjY2Vzc190b2tlbil9KX1faGFuZGxlVG9rZW5DaGFuZ2VkKGUsdCxzKXsoIlRPS0VOX1JFRlJFU0hFRCI9PT1lfHwiU0lHTkVEX0lOIj09PWUpJiZ0aGlzLmNoYW5nZWRBY2Nlc3NUb2tlbiE9PXM/dGhpcy5jaGFuZ2VkQWNjZXNzVG9rZW49czoiU0lHTkVEX09VVCI9PT1lJiYodGhpcy5yZWFsdGltZS5zZXRBdXRoKCksIlNUT1JBR0UiPT10JiZ0aGlzLmF1dGguc2lnbk91dCgpLHRoaXMuY2hhbmdlZEFjY2Vzc1Rva2VuPXZvaWQgMCl9fWUucyhbImNyZWF0ZUNsaWVudCIsMCwoZSx0LHMpPT5uZXcgdE8oZSx0LHMpXSw2MjQ2MzIpfV0pOw=="}},"time_used":19,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":19,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vercel.live/_next-live/feedback/feedback.js","fqdn":"vercel.live","domain":"vercel.live","tld":"live"},"ip":{"addr":"64.239.123.1","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.335Z","timestamp":1785142498335,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.vercel.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 16 Jul 2026 06:06:15 GMT","end":"Wed, 14 Oct 2026 06:06:14 GMT"},"fingerprint":{"sha1":"F7:C4:44:D7:65:85:7F:13:D1:88:22:52:01:13:39:2C:D2:4D:B4:03","sha256":"D1:97:31:2B:16:93:09:96:71:5C:B3:35:63:90:F5:A8:A7:F8:C0:6B:D8:21:B8:AB:5A:31:BF:80:A6:89:DF:E9"}}},"request":{"raw":"GET /_next-live/feedback/feedback.js HTTP/1.1\r\nHost: vercel.live\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://preview-strategynavigator.newton.tech/\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\naccess-control-allow-origin: *\r\nage: 413963\r\ncache-control: public,max-age=60,stale-while-revalidate=600\r\ncontent-disposition: inline; filename=\"feedback.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"12d9ad3317752f2760aebc6b7c43f5c4\"\r\nlast-modified: Wed, 22 Jul 2026 13:42:00 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next-live/feedback/feedback.js\r\nx-robots-tag: noindex\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::tq5hp-1785142498372-a90a587fe205\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":75205,"size_decoded":23752,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (65470)","md5":"12d9ad3317752f2760aebc6b7c43f5c4","sha1":"c5c1d5368a931f7088807cc141671dc98ea57688","sha256":"02e9eea2f25a4fa80423f4bd6d758017b387eef44be1bc52b4e429fc7e83e95d","sha512":"c482f9b4b9521ebea42c88489384ddcf4c82d60637e3d12f7a7fd3ea21e23c895224bfb4aa639fc88dec79014ed36702a20258c8957b220dcc7c90da579a7947","ssdeep":"1536:R8pRI8EYTsqAidhSrfiP/JCUirIOoZNfZl:2Ry2sxidhSrqH","tlshash":"16733ccd32c2f4b912e3d1a550bfa709b33a2950a41d9450a66adce57c58dcf8333bad","first_seen":"2026-07-22T18:51:15.217386Z","last_seen":"2026-07-27T14:52:40.427414Z","times_seen":87,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgZmVlZGJhY2suanMuTElDRU5TRS50eHQgKi8KKCgpPT57dmFyIGU9ezU2ODplPT57ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PU9iamVjdChlKSxuPVtdO2Zvcih2YXIgciBpbiB0KW4udW5zaGlmdChyKTtyZXR1cm4gZnVuY3Rpb24gZSgpe2Zvcig7bi5sZW5ndGg7KWlmKChyPW4ucG9wKCkpaW4gdClyZXR1cm4gZS52YWx1ZT1yLGUuZG9uZT0hMSxlO3JldHVybiBlLmRvbmU9ITAsZX19LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sMTM2NjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24ucih0KSxuLmQodCx7aW5pdDooKT0+b3R9KTt2YXIgcj1uKDQ1OTgzKTtmdW5jdGlvbiBvKGUsdCxuKXtyZXR1cm4odD1mdW5jdGlvbihlKXt2YXIgdD1mdW5jdGlvbihlKXtpZigib2JqZWN0IiE9KDAsci5BKShlKXx8IWUpcmV0dXJuIGU7dmFyIHQ9ZVtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQuY2FsbChlLCJzdHJpbmciKTtpZigib2JqZWN0IiE9KDAsci5BKShuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybiBTdHJpbmcoZSl9KGUpO3JldHVybiJzeW1ib2wiPT0oMCxyLkEpKHQpP3Q6dCsiIn0odCkpaW4gZT9PYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZVt0XT1uLGV9dmFyIGk9big2NTQ4OCksYT1uKDQ3NDIwKSxzPW4oMTI5OTcpLGM9bi5uKHMpLGw9big0MDY3NyksdT1uLm4obCksZD1uKDU2MDUwKSxmPW4ubihkKSxwPW4oMjEwNiksdj1uKDk4OTYzKTtmdW5jdGlvbiBtKGUpe3JldHVybiBmdW5jdGlvbihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybigwLHAuQSkoZSl9KGUpfHxmdW5jdGlvbihlKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZVtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1lWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZSl9KGUpfHwoMCx2LkEpKGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGcoZSx0KXsobnVsbD09dHx8dD5lLmxlbmd0aCkmJih0PWUubGVuZ3RoKTtmb3IodmFyIG49MCxyPUFycmF5KHQpO248dDtuKyspcltuXT1lW25dO3JldHVybiByfXZhciBoPVtdLGI9bmV3IFNldDtmdW5jdGlvbiB5KGUpe2lmKDE9PT1iLnNpemUpe3ZhciB0O2gucHVzaChlKSxudWxsPT09KHQ9bShiKVswXSl8fHZvaWQgMD09PXR8fHQuYXBwZW5kKGUpfWVsc2V7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxuPVtdLHI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIG89MCxpPW47bzxpLmxlbmd0aDtvKyspaVtvXS5pbm5lckhUTUw9ZS5pbm5lckhUTUw7dHx8ci5kaXNjb25uZWN0KCl9KTtyZXR1cm4gci5vYnNlcnZlKGUse2NoaWxkTGlzdDohMH0pLHtjbG9uZU5vZGU6ZnVuY3Rpb24oKXt2YXIgdD1lLmNsb25lTm9kZSghMCk7cmV0dXJuIG4ucHVzaCh0KSx0fX19KGUsITEpO2gucHVzaChuKTt2YXIgcixvPWZ1bmN0aW9uKGUsdCl7dmFyIG49InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmVbU3ltYm9sLml0ZXJhdG9yXXx8ZVsiQEBpdGVyYXRvciJdO2lmKCFuKXtpZihBcnJheS5pc0FycmF5KGUpfHwobj1mdW5jdGlvbihlLHQpe2lmKGUpe2lmKCJzdHJpbmciPT10eXBlb2YgZSlyZXR1cm4gZyhlLHQpO3ZhciBuPXt9LnRvU3RyaW5nLmNhbGwoZSkuc2xpY2UoOCwtMSk7cmV0dXJuIk9iamVjdCI9PT1uJiZlLmNvbnN0cnVjdG9yJiYobj1lLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09bnx8IlNldCI9PT1uP0FycmF5LmZyb20oZSk6IkFyZ3VtZW50cyI9PT1ufHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKT9nKGUsdCk6dm9pZCAwfX0oZSkpfHx0JiZlJiYibnVtYmVyIj09dHlwZW9mIGUubGVuZ3RoKXtuJiYoZT1uKTt2YXIgcj0wLG89ZnVuY3Rpb24oKXt9O3JldHVybntzOm8sbjpmdW5jdGlvbigpe3JldHVybiByPj1lLmxlbmd0aD97ZG9uZTohMH06e2RvbmU6ITEsdmFsdWU6ZVtyKytdfX0sZTpmdW5jdGlvbihlKXt0aHJvdyBlfSxmOm99fXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX12YXIgaSxhPSEwLHM9ITE7cmV0dXJue3M6ZnVuY3Rpb24oKXtuPW4uY2FsbChlKX0sbjpmdW5jdGlvbigpe3ZhciBlPW4ubmV4dCgpO3JldHVybiBhPWUuZG9uZSxlfSxlOmZ1bmN0aW9uKGUpe3M9ITAsaT1lfSxmOmZ1bmN0aW9uKCl7dHJ5e2F8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBpfX19fShiKTt0cnl7Zm9yKG8ucygpOyEocj1vLm4oKSkuZG9uZTspci52YWx1ZS5hcHBlbmQobi5jbG9uZU5vZGUoKSl9Y2F0Y2goZSl7by5lKGUpfWZpbmFsbHl7by5mKCl9fX12YXIgdz1uKDIwMzMzKSx4PW4ubih3KSxBPW4oOTMyMDkpLFM9bi5uKEEpLGs9bigxMjQ1NCksRT1uLm4oayksTD1uKDUwNjM3KSxPPXt9O08uc3R5bGVUYWdUcmFuc2Zvcm09RSgpLE8uc2V0QXR0cmlidXRlcz14KCksTy5pbnNlcnQ9eSxPLmRvbUFQST1mKCksTy5pbnNlcnRTdHlsZUVsZW1lbnQ9UygpLHUoKShMLkEsTyksTC5BJiZMLkEubG9jYWxzJiZMLkEubG9jYWxzO3ZhciBQPW4oNjU4MDcpLFQ9big5NjE0OSksXz1uKDk2ODQ2KTtmdW5jdGlvbiBqKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1mdW5jdGlvbiBDKCl7dHJ5e3ZhciBlPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInZlcmNlbC1saXZlLXNjcmlwdC1vcmlnaW4tb3ZlcnJpZGUiKTtpZihlJiZQLnRVJiYvXmh0dHBzPzpcL1wvKD86bG9jYWxob3N0KDpcZCspP3x2ZXJjZWwtbGl2ZS1naXQtW1x3LV0rXC52ZXJjZWxcLnNoKSQvLnRlc3QoZSkpe3ZhciB0PVAudFUucmVwbGFjZShuZXcgVVJMKFAudFUpLm9yaWdpbixlKTtpZih0IT09UC50VSl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoZG9jdW1lbnQuY3VycmVudFNjcmlwdCl7dmFyIHIsbz1mdW5jdGlvbihlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGooZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/aihlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGksYT0hMCxzPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gYT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtzPSEwLGk9ZX0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKHMpdGhyb3cgaX19fX0oZG9jdW1lbnQuY3VycmVudFNjcmlwdC5hdHRyaWJ1dGVzKTt0cnl7Zm9yKG8ucygpOyEocj1vLm4oKSkuZG9uZTspe3ZhciBpPXIudmFsdWU7bi5zZXRBdHRyaWJ1dGUoaS5uYW1lLGkudmFsdWUpfX1jYXRjaChlKXtvLmUoZSl9ZmluYWxseXtvLmYoKX19cmV0dXJuKDAsXy5Heikod2luZG93KSxuLnNyYz10LGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobiksVC5ZLmxvZygiT3ZlcnJpZGluZyBvcmlnaW4gdG8iLGUpLCEwfX19Y2F0Y2goZSl7fXJldHVybiExfXZhciBJPSJ2Yy1kdC1zcmMiO25ldyBTZXQoWyJNZXRhIiwiQ29udHJvbCJdKTt2YXIgTj1uKDUxMTY2KSx6PW4oNjI5NzIpLE09big4NDgzNiksUj17fTtSLnN0eWxlVGFnVHJhbnNmb3JtPUUoKSxSLnNldEF0dHJpYnV0ZXM9eCgpLFIuaW5zZXJ0PXksUi5kb21BUEk9ZigpLFIuaW5zZXJ0U3R5bGVFbGVtZW50PVMoKSx1KCkoTS5BLFIpO2NvbnN0IEQ9TS5BJiZNLkEubG9jYWxzP00uQS5sb2NhbHM6dm9pZCAwO3ZhciBWPSExLEg9bmV3IFByb3h5KHt9LHtnZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCx0PW5ldyBBcnJheShlKSxuPTA7bjxlO24rKyl0W25dPWFyZ3VtZW50c1tuXTt2YXIgcj10WzFdLG89WyJlbGVtZW50Iiwic2hhZG93Um9vdCIsIm1lbnUiXS5pbmNsdWRlcyhyKTtpZighViYmbylVKCk7ZWxzZSBpZihWJiZvKXt2YXIgaTtudWxsIT09KGk9dFswXS5lbGVtZW50KSYmdm9pZCAwIT09aSYmaS5pc0Nvbm5lY3RlZHx8KFY9ITEsVSgpKX1yZXR1cm4gUmVmbGVjdC5nZXQuYXBwbHkoUmVmbGVjdCx0KX19KTtmdW5jdGlvbiBVKCl7VC5ZLmxvZygiQ3JlYXRpbmcgdG9vbGJhciByb290Iik7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmVyY2VsLWxpdmUtZmVlZGJhY2siKTtlLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt6LWluZGV4OjIxNDc0ODM2NDciO3ZhciB0LG49ZS5hdHRhY2hTaGFkb3coe21vZGU6ImNsb3NlZCJ9KSxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ci5hcHBlbmRDaGlsZChvKSxuLmFwcGVuZENoaWxkKHIpLHQ9bixiLmFkZCh0KSx0LmFwcGVuZC5hcHBseSh0LG0oaC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xvbmVOb2RlKCEwKX0pKSksSC5lbGVtZW50PWUsSC5zaGFkb3dSb290PW4sSC5tZW51PXtjb250YWluZXI6cixjb250ZW50Om8scmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCx0PW0oci5jbGFzc0xpc3QpO2U8dC5sZW5ndGg7ZSsrKXt2YXIgbj10W2VdO3IuY2xhc3NMaXN0LnJlbW92ZShuKX1mb3IodmFyIGk9MCxhPW0oby5jbGFzc0xpc3QpO2k8YS5sZW5ndGg7aSsrKXt2YXIgcz1hW2ldO28uY2xhc3NMaXN0LnJlbW92ZShzKX1vLnBvcG92ZXI9bnVsbCxyLmNsYXNzTGlzdC5hZGQoU3RyaW5nKEQuaGlkZGVuKSl9fSxWPSEwO3ZhciBpPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKHQpe3Quc29tZShmdW5jdGlvbihlKXtyZXR1cm4iY2hpbGRMaXN0Ij09PWUudHlwZSYmbShlLnJlbW92ZWROb2Rlcykuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVsZW1lbnQmJiJWRVJDRUwtTElWRS1GRUVEQkFDSyI9PT1lLnRhZ05hbWV9KX0pJiYoaS5kaXNjb25uZWN0KCksZS5yZW1vdmUoKSwoInJlcXVlc3RJZGxlQ2FsbGJhY2siaW4gd2luZG93P3dpbmRvdy5yZXF1ZXN0SWRsZUNhbGxiYWNrOnNldFRpbWVvdXQpKGZ1bmN0aW9uKCl7KDAsTi5kNikoKT8oMCx6LnZzKSgpOihULlkubG9nKCJSZS1hdHRhY2hpbmcgdG9vbGJhciByb290IiksKDAsei54bCkoKSl9KSl9KTtpLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwfSksd2luZG93LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZlcmNlbC1saXZlLWZlZWRiYWNrIil8fGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksKDAsei5LaSkoZnVuY3Rpb24odCl7aS5kaXNjb25uZWN0KCksZS5yZW1vdmUoKSx0fHwoVj0hMSl9KX12YXIgRixXLEs9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuVE9HR0xFX1BPUFBFUj0idG9nZ2xlLXBvcHBlciIsZS5DTE9TRV9QT1BQRVI9ImNsb3NlLXBvcHBlciIsZS5HRVRfV0lORE9XX1NJWkU9ImdldC13aW5kb3ctc2l6ZSIsZS5UT0dHTEVfRkVFREJBQ0tfVklTSUJJTElUWT0idG9nZ2xlLWZlZWRiYWNrLXZpc2libGl0eSIsZS5MT0dPVVQ9ImxvZ291dCIsZS5SRUFEWT0icmVhZHkiLGUuUkVQTFlfRlJPTV9MSVZFX0ZSQU1FPSJsaXZlLWZyYW1lLXJlcGx5IixlLlRPT0xCQVJfU0laRV9DSEFOR0VEPSJ0b29sYmFyLXNpemUtY2hhbmdlZCIsZS5HRVRfV0lORE9XX1RSQUNLSU5HX0RBVEE9ImdldC13aW5kb3ctdHJhY2tpbmctZGF0YSIsZX0oe30pO2Z1bmN0aW9uIFkoKXtyZXR1cm4gQi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQigpe3JldHVybihCPSgwLGEuQSkoYygpLm1hcmsoZnVuY3Rpb24gZSgpe3JldHVybiBjKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDpyZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsVyk7Y2FzZSAxOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBaPW51bGw7ZnVuY3Rpb24gRygpe3JldHVybiBafWZ1bmN0aW9uIFEoKXtyZXR1cm4gWC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gWCgpe3JldHVybihYPSgwLGEuQSkoYygpLm1hcmsoZnVuY3Rpb24gZSgpe3ZhciB0LG47cmV0dXJuIGMoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKCFXKXtlLm5leHQ9MTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIsVyk7Y2FzZSAxOnJldHVybiBXPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe0Y9ZX0pLCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpKS5zcmM9bmV3IFVSTCgiL19uZXh0LWxpdmUvZmVlZGJhY2svZmVlZGJhY2suaHRtbD9kcGw9ZHBsX0dCU3Y1dXRlQWRrWXpDNUx1UVVyVlRna3dkQVIiLFAuYmQpLmhyZWYsdC53aWR0aD0iMCIsdC5oZWlnaHQ9IjAiLHQudGl0bGU9ImVtcHR5Iix0LnN0eWxlLmJvcmRlcj0ibm9uZSIsbj1mdW5jdGlvbihlKXt2YXIgcixvOyJyZWFkeSI9PT1lLmRhdGEudHlwZSYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixuKSxudWxsPT09KHI9dC5jb250ZW50V2luZG93KXx8dm9pZCAwPT09cnx8ci5wb3N0TWVzc2FnZSh7dHlwZToicHJldmlldy1vcmlnaW4iLHByZXZpZXdPcmlnaW46d2luZG93Lm9yaWdpbixwYXRoOndpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2Uod2luZG93LmxvY2F0aW9uLm9yaWdpbiwiIil9LFAuYmQpLFo9dCxvPXQuY29udGVudFdpbmRvdyx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZSl7ZS5vcmlnaW49PT1QLmJkJiZlLmRhdGEudHlwZT09PUsuR0VUX1dJTkRPV19UUkFDS0lOR19EQVRBJiYobnVsbD09b3x8by5wb3N0TWVzc2FnZSh7dHlwZTpLLkdFVF9XSU5ET1dfVFJBQ0tJTkdfREFUQSxkYXRhOnticm93c2VyX3dpZHRoOndpbmRvdy5pbm5lcldpZHRoLGJyb3dzZXJfaGVpZ2h0OndpbmRvdy5pbm5lckhlaWdodCxwYXRobmFtZTp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsaG9zdG5hbWU6d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGlzX21vYmlsZToib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudH19LFAuYmQpKX0pLEYodCkpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbiksSC5tZW51LmNvbnRlbnQuYXBwZW5kQ2hpbGQodCksZS5hYnJ1cHQoInJldHVybiIsVyk7Y2FzZSAyOmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHEoZSx0KXtpZihudWxsPT1lKXJldHVybnt9O3ZhciBuLHIsbz1mdW5jdGlvbihlLHQpe2lmKG51bGw9PWUpcmV0dXJue307dmFyIG49e307Zm9yKHZhciByIGluIGUpaWYoe30uaGFzT3duUHJvcGVydHkuY2FsbChlLHIpKXtpZigtMSE9PXQuaW5kZXhPZihyKSljb250aW51ZTtuW3JdPWVbcl19cmV0dXJuIG59KGUsdCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW49aVtyXSwtMT09PXQuaW5kZXhPZihuKSYme30ucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLG4pJiYob1tuXT1lW25dKX1yZXR1cm4gb312YXIgSj1bInR5cGUiXTtmdW5jdGlvbiAkKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZWUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/JChPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7byhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTokKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX1mdW5jdGlvbiB0ZShlKXt2YXIgdD1QLlhaLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm9qZWN0LWlkIiksbj1QLlhaLmdldEF0dHJpYnV0ZSgiZGF0YS1vd25lci1pZCIpLHI9UC5YWi5nZXRBdHRyaWJ1dGUoImRhdGEtYnJhbmNoIik7cmV0dXJuIHQmJm4/e3Byb2plY3RJZDp0LG93bmVySWQ6bixicmFuY2g6cn06e2hvc3RuYW1lOndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxkZXBsb3ltZW50SWQ6UC5YWi5nZXRBdHRyaWJ1dGUoImRhdGEtZGVwbG95bWVudC1pZCIpLHZlcmNlbFRvb2xiYXJDb2RlOmUscGF0aDp3aW5kb3cubG9jYXRpb24uaHJlZi5zdWJzdHJpbmcod2luZG93LmxvY2F0aW9uLm9yaWdpbi5sZW5ndGgpfX1mdW5jdGlvbiBuZSgpe3JldHVybiByZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcmUoKXtyZXR1cm4gcmU9KDAsYS5BKShjKCkubWFyayhmdW5jdGlvbiBlKCl7dmFyIHQsbixyLG8saSxhLHMsbCx1LGQ9YXJndW1lbnRzO3JldHVybiBjKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuPSh0PWQubGVuZ3RoPjAmJnZvaWQgMCE9PWRbMF0/ZFswXTp7fSkudG9vbGJhckNvZGUscj10LnNraXBKd2UsIShvPXRlKG4pKS5wcm9qZWN0SWQpe2UubmV4dD0xO2JyZWFrfWk9byxlLm5leHQ9NTticmVhaztjYXNlIDE6aWYoYT1lZSxzPWVlKHt9LG8pLGw9e30sIW4mJiFyKXtlLm5leHQ9MjticmVha311PXZvaWQgMCxlLm5leHQ9NDticmVhaztjYXNlIDI6cmV0dXJuIGUubmV4dD0zLGxlKCk7Y2FzZSAzOnU9ZS5zZW50O2Nhc2UgNDppPWEocyxsLHt2ZXJjZWxBdXRoSldFOnV9KTtjYXNlIDU6cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLGkpO2Nhc2UgNjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSkscmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG9lKCl7dmFyIGUsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06RygpO2lmKHQpe3ZhciBuPXRlKCk7bnVsbD09PShlPXQuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PWV8fGUucG9zdE1lc3NhZ2Uoe3R5cGU6InNldHVwLXBvcHVwIixhdXRoT3B0aW9uczpuLHdpbmRvd1NpemU6e291dGVyV2lkdGg6d2luZG93Lm91dGVyV2lkdGgsb3V0ZXJIZWlnaHQ6d2luZG93Lm91dGVySGVpZ2h0LHNjcmVlblg6d2luZG93LnNjcmVlblgsc2NyZWVuWTp3aW5kb3cuc2NyZWVuWX19LFAuYmQpfX1mdW5jdGlvbiBpZShlKXtyZXR1cm4gYWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGFlKCl7cmV0dXJuKGFlPSgwLGEuQSkoYygpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbixyLG87cmV0dXJuIGMoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBuPXQudG9vbGJhckNvZGUsZS5uZXh0PTEsWSgpO2Nhc2UgMTpyZXR1cm4gcj1lLnNlbnQsZS5uZXh0PTIsbmUoe3Rvb2xiYXJDb2RlOm59KTtjYXNlIDI6cmV0dXJuIG89ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0LG49ZnVuY3Rpb24odCl7aWYoImluaXQtcmVwbHkiPT09dC5kYXRhLnR5cGUmJnQub3JpZ2luPT09UC5iZCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pLHQuZGF0YS5leGlzdGluZ0F1dGh8fG9lKHIpO3ZhciBvPXQuZGF0YSxpPShvLnR5cGUscShvLEopKTtlKGkpfX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pLG51bGw9PT0odD1yLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT10fHx0LnBvc3RNZXNzYWdlKHt0eXBlOiJpbml0IixhdXRoT3B0aW9uczpvLG9yaWdpbjpQLmJkLHBhZ2U6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lfSxQLmJkKX0pKTtjYXNlIDM6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUpfSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gc2UoKXt2YXIgZTtpZighRygpKXJldHVybiBQcm9taXNlLnJlc29sdmUodm9pZCAwKTt2YXIgdD1uZXcgUHJvbWlzZShmdW5jdGlvbih0KXtlPXR9KSxuPWZ1bmN0aW9uKHQpeyJhdXRoLXBvcHVwLXJlc3BvbnNlIj09PXQuZGF0YS50eXBlJiZ0Lm9yaWdpbj09PVAuYmQmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbiksZSh0LmRhdGEuYXV0aCkpfTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG4pLHR9dmFyIGNlPW51bGw7ZnVuY3Rpb24gbGUoKXtyZXR1cm4gdWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHVlKCl7cmV0dXJuKHVlPSgwLGEuQSkoYygpLm1hcmsoZnVuY3Rpb24gZSgpe3ZhciB0O3JldHVybiBjKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihudWxsPT09Y2Upe2UubmV4dD0xO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIixjZSk7Y2FzZSAxOmlmKCEoUC5YWi5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvamVjdC1pZCIpJiZQLlhaLmdldEF0dHJpYnV0ZSgiZGF0YS1vd25lci1pZCIpfHwibG9jYWxob3N0Ij09PXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpe2UubmV4dD0yO2JyZWFrfXJldHVybiBjZT12b2lkIDAsZS5hYnJ1cHQoInJldHVybiIsY2UpO2Nhc2UgMjpyZXR1cm4gZS5wcmV2PTIsZS5uZXh0PTMsZmV0Y2goIi8ud2VsbC1rbm93bi92ZXJjZWwvandlIik7Y2FzZSAzOmlmKCh0PWUuc2VudCkub2smJjIwMD09PXQuc3RhdHVzKXtlLm5leHQ9NDticmVha31yZXR1cm4gY2U9dm9pZCAwLGUuYWJydXB0KCJyZXR1cm4iLGNlKTtjYXNlIDQ6cmV0dXJuIGUubmV4dD01LHQudGV4dCgpO2Nhc2UgNTpyZXR1cm4gY2U9ZS5zZW50LGUuYWJydXB0KCJyZXR1cm4iLGNlKTtjYXNlIDY6cmV0dXJuIGUucHJldj02LGUuY2F0Y2goMiksY2U9dm9pZCAwLGUuYWJydXB0KCJyZXR1cm4iLGNlKTtjYXNlIDc6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUsbnVsbCxbWzIsNl1dKX0pKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGRlKGUsdCl7dmFyIG49T2JqZWN0LmtleXMoZSk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTt0JiYocj1yLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpLmVudW1lcmFibGV9KSksbi5wdXNoLmFwcGx5KG4scil9cmV0dXJuIG59ZnVuY3Rpb24gZmUoZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3RdP2FyZ3VtZW50c1t0XTp7fTt0JTI/ZGUoT2JqZWN0KG4pLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe28oZSx0LG5bdF0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6ZGUoT2JqZWN0KG4pKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHQpKX0pfXJldHVybiBlfXZhciBwZSx2ZT0idnQtaW5pdC1yZXRyeS1jb3VudCI7ZnVuY3Rpb24gbWUoZSl7cmV0dXJuIGdlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBnZSgpe3JldHVybiBnZT0oMCxhLkEpKGMoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvLGkscyxsLHUsZCxmLHA7cmV0dXJuIGMoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOmlmKHI9dC5kYXRhLG89dC5jYW5Qcm94eSxpPXQuY2FuUHJveHlQdXNoZXIscz10LnJlc2V0VG9vbGJhcixsPXQub3BlbkNtZGssdT10LnNob3VsZEJlSGlkZGVuLHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oUC51NCwiMSIpLG51bGw9PT0obj1wZSl8fHZvaWQgMD09PW58fCFuLmlzQ29ubmVjdGVkKXtlLm5leHQ9MTticmVha31yZXR1cm4gZS5hYnJ1cHQoInJldHVybiIscGUpO2Nhc2UgMTpyZXR1cm4gZS5uZXh0PTIsWSgpO2Nhc2UgMjpyZXR1cm4gZD1lLnNlbnQsKGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIikpLndpZHRoPSIwIixmLmhlaWdodD0iMCIsZi50YWJJbmRleD0tMSxmLmhpZGRlbj0hMCxmLnRpdGxlPSJlbXB0eSIsZi5zdHlsZS5kaXNwbGF5PSJub25lIixmLnN0eWxlLmNvbnRhaW49ImNvbnRlbnQiLGYuc3JjZG9jPSc8IWRvY3R5cGUgaHRtbD48c2NyaXB0IHNyYz0iJy5jb25jYXQoUC5iZCwnL19uZXh0LWxpdmUvZmVlZGJhY2svaW5zdHJ1bWVudC5iYjQ1MDk5OTEzYmIwNjE2YTVmOS5qcz9kcGw9ZHBsX0dCU3Y1dXRlQWRrWXpDNUx1UVVyVlRna3dkQVI/ZHBsPWRwbF9HQlN2NXV0ZUFka1l6QzVMdVFVclZUZ2t3ZEFSIicpLmNvbmNhdChQLmpQPycgbm9uY2U9IicuY29uY2F0KFAualAsJyInKToiIiwiPjxcL3NjcmlwdD4iKSxwZT1mLHA9KDAsTi5IaSkoZiksZS5hYnJ1cHQoInJldHVybiIsbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7Zi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixmdW5jdGlvbihlKXtpZigobnVsbD09ZT92b2lkIDA6ZS5vcmlnaW4pPT09d2luZG93Lm9yaWdpbil7dmFyIHQ9ZS5zb3VyY2U7KDAsYS5BKShjKCkubWFyayhmdW5jdGlvbiBuKCl7dmFyIHIsbyxpLGEscyxsLHUsZCxwLHYsbSxnLGgsYjtyZXR1cm4gYygpLndyYXAoZnVuY3Rpb24obil7Zm9yKDs7KXN3aXRjaChuLnByZXY9bi5uZXh0KXtjYXNlIDA6aWYobi5wcmV2PTAsbz0obnVsbD09PShyPWYuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PXJ8fG51bGw9PT0ocj1yLmZldGNoKXx8dm9pZCAwPT09cj92b2lkIDA6ci5iaW5kKHdpbmRvdykpfHx3aW5kb3cuZmV0Y2gsImdldC1kcmFmdC1zdGF0dXMiIT09ZS5kYXRhKXtuLm5leHQ9MjticmVha31yZXR1cm4gaT17bWV0aG9kOiJIRUFEIixoZWFkZXJzOnsieC12ZXJjZWwtZHJhZnQtc3RhdHVzIjoiMSJ9fSxuLm5leHQ9MSxvKGxvY2F0aW9uLmhyZWYsaSk7Y2FzZSAxOmE9bi5zZW50LGYuY29udGVudFdpbmRvdz09PXQmJihudWxsPT09KHM9Zi5jb250ZW50V2luZG93KXx8dm9pZCAwPT09c3x8cy5wb3N0TWVzc2FnZSh7dHlwZToiZHJhZnQtc3RhdHVzLXJlc3VsdCIsc3RhdHVzOmEuaGVhZGVycy5nZXQoIngtdmVyY2VsLXRva2VuLXN0YXR1cyIpfSx3aW5kb3cub3JpZ2luKSksbi5uZXh0PTg7YnJlYWs7Y2FzZSAyOmlmKCJmZXRjaC1wcm94eSIhPT1lLmRhdGEudHlwZSl7bi5uZXh0PTg7YnJlYWt9cmV0dXJuIHU9ZS5kYXRhLGQ9dS51cmwscD11LmluaXQsdj11LnN0cmVhbSxtPXUucmVxdWVzdElkLG4ubmV4dD0zLG8oZCxwKTtjYXNlIDM6aWYoZz1uLnNlbnQsZi5jb250ZW50V2luZG93PT09dCl7bi5uZXh0PTQ7YnJlYWt9cmV0dXJuIG4uYWJydXB0KCJyZXR1cm4iKTtjYXNlIDQ6aWYodil7bi5uZXh0PTY7YnJlYWt9cmV0dXJuIG4ubmV4dD01LGcuYXJyYXlCdWZmZXIoKTtjYXNlIDU6Yj1uLnNlbnQsbi5uZXh0PTc7YnJlYWs7Y2FzZSA2OmI9Zy5ib2R5O2Nhc2UgNzpoPWIsbnVsbD09PShsPWYuY29udGVudFdpbmRvdyl8fHZvaWQgMD09PWx8fGwucG9zdE1lc3NhZ2Uoe3R5cGU6ImZldGNoLXByb3h5LXJlc3BvbnNlIixyZXF1ZXN0SWQ6bSxib2R5Omgsc3RhdHVzOmcuc3RhdHVzLHN0YXR1c1RleHQ6Zy5zdGF0dXNUZXh0LGhlYWRlcnM6QXJyYXkuZnJvbShnLmhlYWRlcnMuZW50cmllcygpKX0sd2luZG93Lm9yaWdpbixoP1toXTpbXSk7Y2FzZSA4Om4ubmV4dD0xMDticmVhaztjYXNlIDk6bi5wcmV2PTksbi5jYXRjaCgwKTtjYXNlIDEwOmNhc2UiZW5kIjpyZXR1cm4gbi5zdG9wKCl9fSxuLG51bGwsW1swLDldXSl9KSkoKX19KTt2YXIgdD1mdW5jdGlvbigpe3ZhciBlPU51bWJlcihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHZlKXx8IjAiKSsxO2U+PTM/KDAsei52cykoKTooc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh2ZSxTdHJpbmcoZSkpLCgwLHoueGwpKCkpfTt0cnl7Zi5jb250ZW50V2luZG93LmluaXRMaXZlRmVlZGJhY2soe2RhdGE6ZmUoZmUoe30scikse30se29wZW5DbWRrOmx9KSxyb290Okguc2hhZG93Um9vdCxyb290RWxlbWVudDpILmVsZW1lbnQsbGl2ZU9yaWdpbjpQLmJkLGNhblByb3h5Om8sY2FuUHJveHlQdXNoZXI6aSx0b3BJbXBvcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGltcG9ydChlKX0sdW5tb3VudDpmdW5jdGlvbigpe3JldHVybigwLHoudnMpKCl9LGZyYW1lOmQscmVzZXRUb29sYmFyOmZ1bmN0aW9uKCl7cGU9dm9pZCAwLGYucmVtb3ZlKCkscygpLG9lKCkscCgpfSxzaG91bGRCZUhpZGRlbjp1fSkudGhlbihmdW5jdGlvbigpe2UoZiksc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSh2ZSl9KS5jYXRjaCh0KX1jYXRjaChlKXt0KCl9fSksSC5zaGFkb3dSb290LmFwcGVuZENoaWxkKGYpfSkpO2Nhc2UgMzpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSksZ2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGhlKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTo0LG49TWF0aC5wb3coMTAsdCk7cmV0dXJuIE1hdGgucm91bmQoZSpuKS9ufXZhciBiZT1uKDI1MzQzKSx5ZT17fTt5ZS5zdHlsZVRhZ1RyYW5zZm9ybT1FKCkseWUuc2V0QXR0cmlidXRlcz14KCkseWUuaW5zZXJ0PXkseWUuZG9tQVBJPWYoKSx5ZS5pbnNlcnRTdHlsZUVsZW1lbnQ9UygpLHUoKShiZS5BLHllKTtjb25zdCB3ZT1iZS5BJiZiZS5BLmxvY2Fscz9iZS5BLmxvY2Fsczp2b2lkIDA7dmFyIHhlPSJ2ZXJjZWwtdG9vbGJhci1wb3NpdGlvbiI7ZnVuY3Rpb24gQWUoZSl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oeGUsSlNPTi5zdHJpbmdpZnkoZSkpO3ZhciB0LG49RygpO24mJihudWxsPT09KHQ9bi5jb250ZW50V2luZG93KXx8dm9pZCAwPT09dHx8dC5wb3N0TWVzc2FnZSh7dHlwZToidXBkYXRlLWV4dGVuc2lvbi1zZXR0aW5ncyIsc2V0dGluZ3M6e3Bvc2l0aW9uOmV9fSxQLmJkKSl9ZnVuY3Rpb24gU2UoZSl7aWYoZSBpbnN0YW5jZW9mIE1vdXNlRXZlbnQpcmV0dXJue2NsaWVudFg6ZS5jbGllbnRYLGNsaWVudFk6ZS5jbGllbnRZfTt2YXIgdD1lLnRvdWNoZXNbMF07cmV0dXJuIHQ/e2NsaWVudFg6dC5jbGllbnRYLGNsaWVudFk6dC5jbGllbnRZfTp7Y2xpZW50WDowLGNsaWVudFk6MH19dmFyIGtlPW4oMzg2ODkpLEVlPXt9O0VlLnN0eWxlVGFnVHJhbnNmb3JtPUUoKSxFZS5zZXRBdHRyaWJ1dGVzPXgoKSxFZS5pbnNlcnQ9eSxFZS5kb21BUEk9ZigpLEVlLmluc2VydFN0eWxlRWxlbWVudD1TKCksdSgpKGtlLkEsRWUpO2NvbnN0IExlPWtlLkEmJmtlLkEubG9jYWxzP2tlLkEubG9jYWxzOnZvaWQgMDt2YXIgT2U9bWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzY4cHgpIiksUGU9big1NTU2MiksVGU9e307VGUuc3R5bGVUYWdUcmFuc2Zvcm09RSgpLFRlLnNldEF0dHJpYnV0ZXM9eCgpLFRlLmluc2VydD15LFRlLmRvbUFQST1mKCksVGUuaW5zZXJ0U3R5bGVFbGVtZW50PVMoKSx1KCkoUGUuQSxUZSk7Y29uc3QgX2U9UGUuQSYmUGUuQS5sb2NhbHM/UGUuQS5sb2NhbHM6dm9pZCAwO3ZhciBqZT1uKDM0ODc4KSxDZT1uKDM5ODA0KTtmdW5jdGlvbiBJZShlLHQpe3ZhciBuPU9iamVjdC5rZXlzKGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZSk7dCYmKHI9ci5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpLG4ucHVzaC5hcHBseShuLHIpfXJldHVybiBufWZ1bmN0aW9uIE5lKGUpe2Zvcih2YXIgdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1t0XT9hcmd1bWVudHNbdF06e307dCUyP0llKE9iamVjdChuKSwhMCkuZm9yRWFjaChmdW5jdGlvbih0KXtvKGUsdCxuW3RdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobikpOkllKE9iamVjdChuKSkuZm9yRWFjaChmdW5jdGlvbih0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iobix0KSl9KX1yZXR1cm4gZX12YXIgemUsTWU9ZnVuY3Rpb24oZSl7cmV0dXJuIE5lKE5lKE5lKHt9LGplLnE0KSxqZS52bSksZXx8bnVsbCl9LFJlPWZ1bmN0aW9uKGUsdCl7dmFyIG49TWUoZSk7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShDZS5WLChudWxsPT1lP3ZvaWQgMDplLmhpZGUpfHwiIik7dmFyIHI9KDAsamUuWV8pKG4sZnVuY3Rpb24oZSl7c3dpdGNoKGUpe2Nhc2UiYWN0aXZhdGUiOnJldHVybiBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKEksbi5hY3RpdmF0ZXx8IiIpLGZ1bmN0aW9uKCl7dCgpfTtjYXNlImhpZGUiOnJldHVybiBmdW5jdGlvbigpe3JldHVybigwLE4udWUpKHQpfTtkZWZhdWx0OnJldHVybiBmdW5jdGlvbigpe3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oQ2UubSxlKSx0KCl9fX0pO3JldHVybigwLGplLldGKShyKX07ZnVuY3Rpb24gRGUoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBWZShlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9EZShPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7byhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpEZShPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gSGUoZSl7dmFyIHQsbj1VZSh7b25BY3RpdmF0ZToodD0oMCxhLkEpKGMoKS5tYXJrKGZ1bmN0aW9uIHQoKXt2YXIgbjtyZXR1cm4gYygpLndyYXAoZnVuY3Rpb24odCl7Zm9yKDs7KXN3aXRjaCh0LnByZXY9dC5uZXh0KXtjYXNlIDA6cmV0dXJuIHQubmV4dD0xLHNlKCk7Y2FzZSAxOmlmKCEobj10LnNlbnQpKXt0Lm5leHQ9MzticmVha31yZXR1cm4gdC5uZXh0PTIsbWUoVmUoVmUoe30sZSkse30se2RhdGE6bixyZXNldFRvb2xiYXI6ZnVuY3Rpb24oKXtyZXR1cm4gSGUoZSl9LG9wZW5DbWRrOiEwfSkpO2Nhc2UgMjpyKCk7Y2FzZSAzOmNhc2UiZW5kIjpyZXR1cm4gdC5zdG9wKCl9fSx0KX0pKSxmdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGtleUJpbmRpbmdzOmUua2V5QmluZGluZ3N9KSxyPW4uY2xlYW51cH1mdW5jdGlvbiBVZShlKXt2YXIgdCxuLHIsbyxpLGE9ZS5vbkFjdGl2YXRlLHM9ZS5kaXJlY3QsYz1lLmtleUJpbmRpbmdzO251bGw9PT0odD16ZSl8fHZvaWQgMD09PXR8fHQoKTt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2wuY2xhc3NMaXN0LmFkZChTdHJpbmcod2UuY29udGFpbmVyKSk7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc0xpc3QuYWRkKFN0cmluZyh3ZS5zY2FsZUxheWVyKSk7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zi5jbGFzc0xpc3QuYWRkKFN0cmluZyh3ZS5ib3JkZXJMYXllcikpLGQuYXBwZW5kQ2hpbGQoZiksbC5hcHBlbmRDaGlsZChkKTt2YXIgcCx2LG09ITEsZz1mdW5jdGlvbigpe218fChtPSEwLHUuY2xhc3NMaXN0LmFkZChTdHJpbmcod2UubG9hZGluZykpLGEoKS5maW5hbGx5KGZ1bmN0aW9uKCl7dS5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyh3ZS5sb2FkaW5nKSksbT0hMX0pKX0saD1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbigpe319LGI9ZnVuY3Rpb24oKXt9O2lmKHMpYj1nO2Vsc2V7dmFyIHk9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbkFjdGl2YXRlLG49RygpLHI9bnVsbD09bj92b2lkIDA6bi5jb250ZW50V2luZG93O2lmKCFyKXJldHVybnttZW51OnZvaWQgMCxjbGVhbnVwOmZ1bmN0aW9uKCl7fX07dmFyIG89SC5tZW51O28ucmVzZXQoKSxvLmNvbnRlbnQucG9wb3Zlcj0iYXV0byIsby5jb250YWluZXIuY2xhc3NMaXN0LmFkZChTdHJpbmcoTGUubWVudUNvbnRhaW5lcikpLG8uY29udGVudC5jbGFzc0xpc3QuYWRkKFN0cmluZyhMZS5tZW51KSksby5jb250ZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvZ2dsZSIsZnVuY3Rpb24oZSl7Im9wZW4iPT09ZS5uZXdTdGF0ZSYmbi5mb2N1cygpfSk7dmFyIGk9ZnVuY3Rpb24oZSl7Im1lbnUtYWN0aW9uIj09PWUuZGF0YS50eXBlJiZlLm9yaWdpbj09PVAuYmQmJigic2lnbi1pbiI9PT1lLmRhdGEuYWN0aW9uP3QoKToiZGlzYWJsZSI9PT1lLmRhdGEuYWN0aW9uJiYoMCxOLlJpKSgpLG8uY29udGVudC5pc0Nvbm5lY3RlZCYmby5jb250ZW50LmhpZGVQb3BvdmVyKCkpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsaSk7dmFyIGE9T2UubWF0Y2hlcztyZXR1cm4gT2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbihlKXthPWUubWF0Y2hlcyxyLnBvc3RNZXNzYWdlKHt0eXBlOiJpcy1tb2JpbGUiLGlzTW9iaWxlOmF9LFAuYmQpfSksci5wb3N0TWVzc2FnZSh7dHlwZToicmVuZGVyLW1lbnUiLGlzTW9iaWxlOmF9LFAuYmQpLHttZW51Om8uY29udGVudCxjbGVhbnVwOmZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGkpfX19KHtvbkFjdGl2YXRlOmd9KSx3PXkubWVudSx4PXkuY2xlYW51cDtpZighdylyZXR1cm57Y2xlYW51cDp4fTt1LnBvcG92ZXJUYXJnZXRFbGVtZW50PXcsaD1mdW5jdGlvbigpe2lmKCF3LmlzQ29ubmVjdGVkKXJldHVybiBmdW5jdGlvbigpe307dy5oaWRlUG9wb3ZlcigpO3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiBlLnByZXZlbnREZWZhdWx0KCl9O3JldHVybiB3LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXRvZ2dsZSIsZSksZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dy5yZW1vdmVFdmVudExpc3RlbmVyKCJiZWZvcmV0b2dnbGUiLGUpfSwxKX19LGI9ZnVuY3Rpb24oKXt3LmlzQ29ubmVjdGVkJiYody50b2dnbGVQb3BvdmVyKCksc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShJKSl9LHA9ZnVuY3Rpb24oKXt3LmNsYXNzTGlzdC5hZGQoU3RyaW5nKExlLmF0dGFjaGVkKSl9LHY9ZnVuY3Rpb24oKXt4KCksdy5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyhMZS5hdHRhY2hlZCkpfX11LmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLmJ1dHRvblplcm8pKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlZlcmNlbCBUb29sYmFyIiksdS5hcHBlbmQoZnVuY3Rpb24oZSl7Y29uc3QgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gdC5pbm5lckhUTUw9Jzxzdmcgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMzIgMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICA8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNzU5MF84OTE0KSI+PGNpcmNsZSBjeD0iMjMiIGN5PSIyMCIgcj0iMy42NTYyNSIgZmlsbD0id2hpdGUiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS42ODc1IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIzIDE3LjU4MDFMMjUuNDg0NCAyMS45Mjc3SDIwLjUxNTZMMjMgMTcuNTgwMVoiIGZpbGw9IiMxQTFBMUEiLz48L2c+ICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTkuNzUgMTBIOVYxMS41SDkuNzVIMjIuMjVIMjNWMTBIMjIuMjVIOS43NVpNOS43NSAyMEg5VjIxLjVIOS43NUgxNy4xODlDMTcuMDY1NiAyMS4wMjA2IDE3IDIwLjUxNzkgMTcgMjBIOS43NVpNMTguMTI2IDE2LjVIOS43NUg5VjE1SDkuNzVIMTkuNjgyMkMxOS4wNzc0IDE1LjQwMjIgMTguNTQ5NyAxNS45MTExIDE4LjEyNiAxNi41WiIgZmlsbD0iI0VERURFRCIvPiAgPGRlZnM+PGNsaXBQYXRoIGlkPSJjbGlwMF83NTkwXzg5MTQiPjxyZWN0IHdpZHRoPSI5IiBoZWlnaHQ9IjkiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxOC41IDE1LjUpIi8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+JyxlJiZ0LmZpcnN0Q2hpbGQuY2xhc3NMaXN0LmFkZChlKSx0LmZpcnN0Q2hpbGR9KHdlLmxvZ28pLEZlKCkpLGwuYXBwZW5kQ2hpbGQodSk7dmFyIEE9ZnVuY3Rpb24oKXt2YXIgZSx0O2wuc3R5bGUuc2V0UHJvcGVydHkoIi0td2luZG93LXdpZHRoIiwiIi5jb25jYXQoKG51bGw9PT0oZT13aW5kb3cudmlzdWFsVmlld3BvcnQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLndpZHRoKXx8d2luZG93LmlubmVyV2lkdGgsInB4IikpO3ZhciBuPShudWxsPT09KHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0KXx8dm9pZCAwPT09dD92b2lkIDA6dC5oZWlnaHQpfHx3aW5kb3cuaW5uZXJIZWlnaHQ7bC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS13aW5kb3ctaGVpZ2h0IiwiIi5jb25jYXQobiwicHgiKSk7dmFyIHI9bC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXRvb2xiYXIteS1vZmZzZXQiKSxvPU51bWJlcihyLnN1YnN0cmluZygwLHIubGVuZ3RoLTIpKTtsLmNsYXNzTGlzdC5yZW1vdmUoU3RyaW5nKHdlLm5lZ09mZnNldCkpLGwuY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcod2UucG9zT2Zmc2V0KSksbC5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyh3ZS5jbGFtcGVkT2Zmc2V0KSk7dmFyIGk9bi8zO28mJihvPDA/KGwuY2xhc3NMaXN0LmFkZChTdHJpbmcod2UubmVnT2Zmc2V0KSksLW8+aSYmbC5jbGFzc0xpc3QuYWRkKFN0cmluZyh3ZS5jbGFtcGVkT2Zmc2V0KSkpOihsLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLnBvc09mZnNldCkpLG8+aSYmbC5jbGFzc0xpc3QuYWRkKFN0cmluZyh3ZS5jbGFtcGVkT2Zmc2V0KSkpKX07bnVsbD09PShuPXdpbmRvdy52aXN1YWxWaWV3cG9ydCl8fHZvaWQgMD09PW58fG4uYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixBKSxudWxsPT09KHI9d2luZG93LnZpc3VhbFZpZXdwb3J0KXx8dm9pZCAwPT09cnx8ci5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLEEpLG51bGw9PT0obz13aW5kb3cudmlzdWFsVmlld3BvcnQpfHx2b2lkIDA9PT1vfHxvLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbGVuZCIsQSk7dmFyIFM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zaGFkb3dSb290LG49ZS50b29sYmFyLHI9ZS5vbkRyYWcsbz1lLm9uRGlzYWJsZSxpPWUub25DbGljayxhPWUuYWx3YXlzVHJpZ2dlck9uQ2xpY2sscz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLmRpc21pc3MpKSxzLmFwcGVuZENoaWxkKGZ1bmN0aW9uKCl7Y29uc3QgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyZXR1cm4gZS5pbm5lckhUTUw9JzxzdmcgaGVpZ2h0PSIxNiIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiPiAgPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMi40Njk3IDEzLjUzMDNMMTMgMTQuMDYwN0wxNC4wNjA3IDEzTDEzLjUzMDMgMTIuNDY5N0w5LjA2MDY1IDcuOTk5OTlMMTMuNTMwMyAzLjUzMDMyTDE0LjA2MDcgMi45OTk5OUwxMyAxLjkzOTMzTDEyLjQ2OTcgMi40Njk2Nkw3Ljk5OTk5IDYuOTM5MzNMMy41MzAzMiAyLjQ2OTY2TDIuOTk5OTkgMS45MzkzM0wxLjkzOTMzIDIuOTk5OTlMMi40Njk2NiAzLjUzMDMyTDYuOTM5MzMgNy45OTk5OUwyLjQ2OTY2IDEyLjQ2OTdMMS45MzkzMyAxM0wyLjk5OTk5IDE0LjA2MDdMMy41MzAzMiAxMy41MzAzTDcuOTk5OTkgOS4wNjA2NUwxMi40Njk3IDEzLjUzMDNaIiBmaWxsPSJjdXJyZW50Q29sb3IiLz48L3N2Zz4nLGUuZmlyc3RDaGlsZH0oKSksdC5wcmVwZW5kKHMpO3ZhciBjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2MuY2xhc3NMaXN0LmFkZChTdHJpbmcod2UuZGlzbWlzc0JhY2tkcm9wKSksdC5wcmVwZW5kKGMpO3ZhciBsPSExLHU9ZnVuY3Rpb24oZSl7ZS5jYW5jZWxhYmxlJiZlLnByZXZlbnREZWZhdWx0KCl9LGQ9ZnVuY3Rpb24oZSl7dmFyIGM9bi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXRvb2xiYXIteCIpLGQ9bi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXRvb2xiYXIteSIpO2lmKGw9ITEsIShlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlLnRhcmdldC5jbG9zZXN0KCJbcG9wb3Zlcl0iKSkpe24uY2xhc3NMaXN0LmFkZChTdHJpbmcod2UuaGVsZCkpLGUgaW5zdGFuY2VvZiBNb3VzZUV2ZW50fHwhZS5jYW5jZWxhYmxlfHwobD0hMCxlLnByZXZlbnREZWZhdWx0KCkpO3ZhciBmLHAsdixtLGc9e3dpZHRoOihudWxsPT09KGY9d2luZG93LnZpc3VhbFZpZXdwb3J0KXx8dm9pZCAwPT09Zj92b2lkIDA6Zi53aWR0aCl8fHdpbmRvdy5pbm5lcldpZHRoLGhlaWdodDoobnVsbD09PShwPXdpbmRvdy52aXN1YWxWaWV3cG9ydCl8fHZvaWQgMD09PXA/dm9pZCAwOnAuaGVpZ2h0KXx8d2luZG93LmlubmVySGVpZ2h0fSxoPVNlKGUpLGI9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx5PWguY2xpZW50WC1iLmxlZnQsdz1oLmNsaWVudFktYi50b3AseD0hMSxBPSExLFM9ZnVuY3Rpb24oKXt4PSEwLG4uY2xhc3NMaXN0LmFkZChTdHJpbmcod2UuZHJhZ2dpbmcpKSxzLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLnZpc2libGUpKTt2YXIgZSxvPSgoZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpKS50ZXh0Q29udGVudD0iOm5vdCh2ZXJjZWwtbGl2ZS1mZWVkYmFjaykgeyB1c2VyLXNlbGVjdDogbm9uZTsgfSB2ZXJjZWwtbGl2ZS1mZWVkYmFjayB7IHVzZXItc2VsZWN0OiBhdXRvOyB9Iixkb2N1bWVudC5ib2R5LmFwcGVuZChlKSxmdW5jdGlvbigpe2UucmVtb3ZlKCl9KSxpPXIoKSxhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NMaXN0LmFkZChTdHJpbmcod2UuZHJhZ0JhY2tkcm9wKSksdC5wcmVwZW5kKGEpLG09ZnVuY3Rpb24oKXtvKCksaSgpLGEucmVtb3ZlKCl9fSxrPWZ1bmN0aW9uKGUpe2UgaW5zdGFuY2VvZiBNb3VzZUV2ZW50fHwhZS5jYW5jZWxhYmxlfHxlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9U2UoZSkscj10LmNsaWVudFgsbz10LmNsaWVudFk7aWYoIXgpe2lmKCEoTWF0aC5zcXJ0KE1hdGgucG93KGguY2xpZW50WC1yLDIpK01hdGgucG93KGguY2xpZW50WS1vLDIpKT40KSlyZXR1cm47UygpfXZhciBpLGEscz1yLXkrYi53aWR0aC8yLGM9by13K2IuaGVpZ2h0LzIsbD1nLndpZHRoLzIsdT1nLmhlaWdodC02MC0xLjIqYi5oZWlnaHQvMjtpZihNYXRoLnNxcnQoTWF0aC5wb3cocy1sLDIpK01hdGgucG93KGMtdSwyKSk8NjQpe3ZhciBkO2lmKEEpcmV0dXJuO0E9ITA7dmFyIGY9KGwtYi53aWR0aC8yKS9nLndpZHRoLHA9KHUtYi5oZWlnaHQvMikvZy5oZWlnaHQsbT1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uc3R5bGUuc2V0UHJvcGVydHkoIi0tdG9vbGJhci14IixTdHJpbmcoZikpLGY8LjU/bi5jbGFzc0xpc3QuYWRkKFN0cmluZyh3ZS5sZWZ0aGFuZCkpOm4uY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcod2UubGVmdGhhbmQpKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLXRvb2xiYXIteSIsU3RyaW5nKHApKTt2YXIgaz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBudWxsPT09KGQ9dil8fHZvaWQgMD09PWR8fGQuY2FuY2VsKCksdm9pZCh2PW4uYW5pbWF0ZShbe3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KG0ubGVmdC1rLmxlZnQsInB4LCAiKS5jb25jYXQobS50b3Atay50b3AsInB4KSIpfSx7dHJhbnNmb3JtOiJub25lIn1dLHtkdXJhdGlvbjoyNTAsZWFzaW5nOiJlYXNlIn0pKS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLGZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09PShlPXYpfHx2b2lkIDA9PT1lfHxlLmNhbmNlbCgpLHY9dm9pZCAwfSl9QSYmKGk9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBPSExLG51bGw9PT0oYT12KXx8dm9pZCAwPT09YXx8YS5jYW5jZWwoKSx2PXZvaWQgMCk7dmFyIEU9aGUoKHIteSkvZy53aWR0aCksTD1oZSgoby13KS9nLmhlaWdodCk7aWYobi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXgiLFN0cmluZyhFKSksRTwuNT9uLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLmxlZnRoYW5kKSk6bi5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyh3ZS5sZWZ0aGFuZCkpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tdG9vbGJhci15IixTdHJpbmcoTCkpLG4uY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcod2UubmVnT2Zmc2V0KSksbi5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyh3ZS5wb3NPZmZzZXQpKSxpKXt2YXIgTz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOyh2PW4uYW5pbWF0ZShbe3RyYW5zZm9ybToidHJhbnNsYXRlKCIuY29uY2F0KGkubGVmdC1PLmxlZnQsInB4LCAiKS5jb25jYXQoaS50b3AtTy50b3AsInB4KSIpfSx7dHJhbnNmb3JtOiJub25lIn1dLHtkdXJhdGlvbjoyNTAsZWFzaW5nOiJlYXNlIn0pKS5hZGRFdmVudExpc3RlbmVyKCJmaW5pc2giLGZ1bmN0aW9uKCl7dmFyIGU7bnVsbD09PShlPXYpfHx2b2lkIDA9PT1lfHxlLmNhbmNlbCgpLHY9dm9pZCAwfSl9fSxFPWZ1bmN0aW9uKCl7aWYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsayksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLEUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGspLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsRSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLEUpLG4uY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcod2UuaGVsZCkpLHgpe3ZhciBlO2lmKHgmJih4PSExLG4uY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcod2UuZHJhZ2dpbmcpKSxzLmNsYXNzTGlzdC5yZW1vdmUoU3RyaW5nKHdlLnZpc2libGUpKSxudWxsPT09KGU9bSl8fHZvaWQgMD09PWV8fGUoKSksQSlyZXR1cm4gbygpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tdG9vbGJhci14IixjKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLXRvb2xiYXIteSIsZCksSC5tZW51LmNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXgiLGMpLHZvaWQgSC5tZW51LmNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXkiLGQpO3ZhciB0PW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscj10LmxlZnQrdC53aWR0aC8yLGY9U3RyaW5nKHI8Zy53aWR0aC8yPzA6MSkscD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uc3R5bGUuc2V0UHJvcGVydHkoIi0tdG9vbGJhci14IixmKSwiMCI9PT1mP24uY2xhc3NMaXN0LmFkZChTdHJpbmcod2UubGVmdGhhbmQpKTpuLmNsYXNzTGlzdC5yZW1vdmUoU3RyaW5nKHdlLmxlZnRoYW5kKSksbi5jbGFzc0xpc3QucmVtb3ZlKFN0cmluZyh3ZS5uZWdPZmZzZXQpKSxuLmNsYXNzTGlzdC5yZW1vdmUoU3RyaW5nKHdlLnBvc09mZnNldCkpLG4uY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcod2UuY2xhbXBlZE9mZnNldCkpO3ZhciB2PSh0LnRvcCsuNSp0LmhlaWdodCkvZy5oZWlnaHQsaD1udWxsO3Y8LjMzMz8oaD10LnRvcCxuLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLnBvc09mZnNldCkpKTp2Pi42NjYmJihoPXQuYm90dG9tLWcuaGVpZ2h0LG4uY2xhc3NMaXN0LmFkZChTdHJpbmcod2UubmVnT2Zmc2V0KSkpLGg/bi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXktb2Zmc2V0IiwiIi5jb25jYXQoaCwicHgiKSk6bi5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS10b29sYmFyLXktb2Zmc2V0Iik7dmFyIGI9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuLmFuaW1hdGUoW3t0cmFuc2Zvcm06InRyYW5zbGF0ZVgoIi5jb25jYXQocC5sZWZ0LWIubGVmdCwicHgpIil9LHt0cmFuc2Zvcm06Im5vbmUifV0se2R1cmF0aW9uOjI1MCxlYXNpbmc6ImVhc2UifSksQWUoe3g6U3RyaW5nKGYpLHk6bi5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCItLXRvb2xiYXIteSIpLG9mZnNldDpofSksSC5tZW51LmNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXgiLFN0cmluZyhmKSksSC5tZW51LmNvbnRhaW5lci5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXkiLG4uc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgiLS10b29sYmFyLXkiKSl9ZWxzZSBsPyhpKCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHUse3Bhc3NpdmU6ITEsb25jZTohMH0pLCgwLHouS2kpKGZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHUpfSkpOmEmJmkoKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsayksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLEUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsRSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsayx7cGFzc2l2ZTohMX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsRSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLEUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsRSl9fTtyZXR1cm4gbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGQpLG4uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZCksZnVuY3Rpb24oKXtuLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZCksbi5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixkKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsdSl9fSh7dG9vbGJhcjpsLHNoYWRvd1Jvb3Q6SC5zaGFkb3dSb290LG9uRHJhZzpoLG9uRGlzYWJsZTpmdW5jdGlvbigpeygwLE4uTVcpKCl9LG9uQ2xpY2s6YixhbHdheXNUcmlnZ2VyT25DbGljazpzfSk7SC5zaGFkb3dSb290LmFwcGVuZENoaWxkKGwpO3ZhciBrLEU9KGs9bG9jYWxTdG9yYWdlLmdldEl0ZW0oeGUpKT9KU09OLnBhcnNlKGspOnt4OiIxIix5OiIwLjUifTtsLnN0eWxlLnNldFByb3BlcnR5KCItLXRvb2xiYXIteCIsRS54KSxsLnN0eWxlLnNldFByb3BlcnR5KCItLXRvb2xiYXIteSIsRS55KSxFLm9mZnNldCYmbC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10b29sYmFyLXktb2Zmc2V0IiwiIi5jb25jYXQoRS5vZmZzZXQsInB4IikpLEEoKSxILm1lbnUuY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCItLXRvb2xiYXIteCIsRS54KSxILm1lbnUuY29udGFpbmVyLnN0eWxlLnNldFByb3BlcnR5KCItLXRvb2xiYXIteSIsRS55KSxudWxsPT09KGk9cCl8fHZvaWQgMD09PWl8fGkoKTt2YXIgTD1XZShiLGMpLE89ZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtudWxsPT09KGU9d2luZG93LnZpc3VhbFZpZXdwb3J0KXx8dm9pZCAwPT09ZXx8ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLEEpLG51bGw9PT0odD13aW5kb3cudmlzdWFsVmlld3BvcnQpfHx2b2lkIDA9PT10fHx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsQSksbnVsbD09PShuPXdpbmRvdy52aXN1YWxWaWV3cG9ydCl8fHZvaWQgMD09PW58fG4ucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsZW5kIixBKSxTKCksbC5yZW1vdmUoKSxMKCksbnVsbD09PShyPXYpfHx2b2lkIDA9PT1yfHxyKCl9O3JldHVybiB6ZT1PLHt0b29sYmFyOmwsY2xlYW51cDpPfX12YXIgRmU9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHdlLnNwaW5uZXIpKSxlLmNsYXNzTGlzdC5hZGQoU3RyaW5nKF9lLndyYXBwZXIpKTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT1TdHJpbmcoX2Uuc3Bpbm5lcik7Zm9yKHZhciBuPTEyO24tLTspe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuY2xhc3NOYW1lPVN0cmluZyhfZS5iYXIpLHQuYXBwZW5kKHIpfXJldHVybiBlLmFwcGVuZCh0KSxlfSxXZT1mdW5jdGlvbihlLHQpe3ZhciBuPW5ldyBTZXQoT2JqZWN0LnZhbHVlcyhNZSh0KSkpLHI9ZnVuY3Rpb24odCl7aWYoKC9NYWN8aVBob25lfGlQb2R8aVBhZC9pLnRlc3QobmF2aWdhdG9yLnBsYXRmb3JtKT90Lm1ldGFLZXk6dC5jdHJsS2V5KSYmImsiPT09dC5rZXkudG9Mb3dlckNhc2UoKSl7dmFyIG89dC5ldmVudFBoYXNlPT09RXZlbnQuQlVCQkxJTkdfUEhBU0U7aWYoIW98fCF0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJuIG98fHQuc2hpZnRLZXk/dm9pZCgodC5zaGlmdEtleT90Lm1ldGFLZXkmJm4uaGFzKCJtZXRhK3NoaWZ0K2siKXx8dC5jdHJsS2V5JiZuLmhhcygiY3RybCtzaGlmdCtrIik6dC5tZXRhS2V5JiZuLmhhcygibWV0YStrIil8fHQuY3RybEtleSYmbi5oYXMoImN0cmwrayIpKXx8KHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oSSwiY21kKyIuY29uY2F0KHQuc2hpZnRLZXk/InNoaWZ0KyI6IiIsImsiKSksZSgpKSk6KHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLHtvbmNlOiEwfSksdm9pZCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscil9KSl9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsciwhMCk7dmFyIG89UmUodCxmdW5jdGlvbigpe3JldHVybiBlKCl9KTtyZXR1cm4gZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsciwhMCksbygpfX0sS2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuVmVyY2VsVG9vbGJhckNvZGU9Il9fdmVyY2VsX3Rvb2xiYXJfY29kZSIsZS5TaG93SW5ib3g9InZlcmNlbEluYm94IixlLlRocmVhZElkPSJ2ZXJjZWxUaHJlYWRJZCIsZS5IaWdobGlnaHRDb21tZW50PSJ2ZXJjZWxIaWdobGlnaHRDb21tZW50IixlLkZpbmFsSGFzaD0idmVyY2VsRmluYWxIYXNoIixlLlZlcmNlbEZsYWdPdmVycmlkZXNMZWdhY3k9InZlcmNlbEZsYWdPdmVycmlkZXMiLGUuVmVyY2VsRmxhZ092ZXJyaWRlcz0iX192ZXJjZWxfZmxhZ3MiLGV9KHt9KSxZZT1uKDE4ODg4KSxCZT17fTtCZS5zdHlsZVRhZ1RyYW5zZm9ybT1FKCksQmUuc2V0QXR0cmlidXRlcz14KCksQmUuaW5zZXJ0PXksQmUuZG9tQVBJPWYoKSxCZS5pbnNlcnRTdHlsZUVsZW1lbnQ9UygpLHUoKShZZS5BLEJlKTtjb25zdCBaZT1ZZS5BJiZZZS5BLmxvY2Fscz9ZZS5BLmxvY2Fsczp2b2lkIDA7dmFyIEdlLFFlLFhlPWZ1bmN0aW9uKGUpe3JldHVybiBlLmRyYWZ0PSJkcmFmdCIsZS5mbGFnT3ZlcnJpZGVzPSJmbGFnT3ZlcnJpZGVzIixlLmZsYWdSZWNvbW1lbmRhdGlvbnM9ImZsYWdSZWNvbW1lbmRhdGlvbnMiLGUudGhyZWFkTGluaz0idGhyZWFkTGluayIsZS50b29sYmFyPSJ0b29sYmFyIixlLm5vbkJsb2NraW5nVG9vbGJhcj0ibm9uQmxvY2tpbmdUb29sYmFyIixlLmZsYWdDb29raWU9ImZsYWdDb29raWUiLGUuYmlzZWN0PSJiaXNlY3QiLGV9KHt9KSxxZT0idmVyY2VsLXRvb2xiYXItaW50ZW50IixKZT1bWGUuZmxhZ1JlY29tbWVuZGF0aW9ucyxYZS5mbGFnT3ZlcnJpZGVzLFhlLnRocmVhZExpbmssWGUudG9vbGJhcixYZS5kcmFmdF07ZnVuY3Rpb24gJGUoZSl7R2U9bnVsbCE9R2U/R2U6RGF0ZS5ub3coKS13aW5kb3cucGVyZm9ybWFuY2UudGltZU9yaWdpbjt2YXIgdD1KZS5pbmNsdWRlcyhlKTtpZihHZT4zZTMpe2lmKHQpe3ZhciBuLHI9bnVsbD09PShuPUcoKSl8fHZvaWQgMD09PW4/dm9pZCAwOm4uY29udGVudFdpbmRvdztyJiZyLnBvc3RNZXNzYWdlKHt0eXBlOiJpbnRlbnQtc2tpcHBlZCIsaW50ZW50OmUsdGltZUFmdGVyT3JpZ2luOkdlfSxQLmJkKX1yZXR1cm4hMX1yZXR1cm4gdH1mdW5jdGlvbiBldChlKXtpZighc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShxZSkpe3ZhciB0PW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aWYodC5nZXQoS2UuVmVyY2VsRmxhZ092ZXJyaWRlcyl8fHQuZ2V0KEtlLlZlcmNlbEZsYWdPdmVycmlkZXNMZWdhY3kpKXJldHVybiBYZS5mbGFnT3ZlcnJpZGVzO2lmKHQuZ2V0KCJ2ZXJjZWxUaHJlYWRJZCIpKXJldHVybiBYZS50aHJlYWRMaW5rO3ZhciBuPW51bGw9PWU/dm9pZCAwOmUuaW50ZW50O3JldHVybiJ0b29sYmFyIj09PW4/WGUubm9uQmxvY2tpbmdUb29sYmFyOm4/WGUudG9vbGJhcjpudWxsIT1lJiZlLmJpc2VjdD9YZS5iaXNlY3Q6bnVsbCE9ZSYmZS5oYXNSZWNvbW1lbmRlZEZsYWdzP1hlLmZsYWdSZWNvbW1lbmRhdGlvbnM6IjEiPT09dC5nZXQoIl9fdmVyY2VsX2RyYWZ0Iik/WGUuZHJhZnQ6Lyg/Ol58O1xzKXZlcmNlbC1mbGFnLW92ZXJyaWRlcz1bXjtdKyg/Ojt8JCkvaS50ZXN0KGRvY3VtZW50LmNvb2tpZSk/WGUuZmxhZ0Nvb2tpZTp2b2lkIDB9fWZ1bmN0aW9uIHR0KGUpe3ZhciB0PWUuaW50ZW50LG49ZS53aXRob3V0SW50ZW50Q2FsbGJhY2sscj1lLndpdGhJbnRlbnRDYWxsYmFjayxvPUcoKSxpPW51bGw9PW8/dm9pZCAwOm8uY29udGVudFdpbmRvdztpZihpKXt2YXIgYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O28udGl0bGU9IlZlcmNlbCBUb29sYmFyIHNpZ24taW4iO3ZhciBzPUgubWVudSxjPWZ1bmN0aW9uKGUpeyJpbnRlbnQtYWN0aW9uIj09PWUuZGF0YS50eXBlJiZlLm9yaWdpbj09PVAuYmQmJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYykscy5yZXNldCgpLCJzaWduLWluIj09PWUuZGF0YS5hY3Rpb24/KHIoKSx1KCkpOihzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHFlLCIxIiksbigpLHUoKSkpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsYyk7dmFyIGw9ZnVuY3Rpb24oZSl7IkVzY2FwZSI9PT1lLmtleSYmKGkucG9zdE1lc3NhZ2Uoe3R5cGU6ImludGVudC1kaXNtaXNzZWQiLGludGVudDp0fSxQLmJkKSxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHFlLCIxIiksbigpLHUoKSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixsKTt2YXIgdT1mdW5jdGlvbigpe3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIixjKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbCksby50aXRsZT0iZW1wdHkiLG51bGwhPWEmJmEuaXNDb25uZWN0ZWQmJmEuZm9jdXMoKX07aS5wb3N0TWVzc2FnZSh7dHlwZToicmVuZGVyLWludGVudCIsaW50ZW50OnQsdGltZUFmdGVyT3JpZ2luOkdlfSxQLmJkKSxzLnJlc2V0KCkscy5jb250YWluZXIuY2xhc3NMaXN0LmFkZChTdHJpbmcoWmUuY292ZXIpKSxzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZChTdHJpbmcoWmUubW9kYWwpKX19ZnVuY3Rpb24gbnQoZSx0KXt2YXIgbj1PYmplY3Qua2V5cyhlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO3QmJihyPXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCkuZW51bWVyYWJsZX0pKSxuLnB1c2guYXBwbHkobixyKX1yZXR1cm4gbn1mdW5jdGlvbiBydChlKXtmb3IodmFyIHQ9MTt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXt2YXIgbj1udWxsIT1hcmd1bWVudHNbdF0/YXJndW1lbnRzW3RdOnt9O3QlMj9udChPYmplY3QobiksITApLmZvckVhY2goZnVuY3Rpb24odCl7byhlLHQsblt0XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTpudChPYmplY3QobikpLmZvckVhY2goZnVuY3Rpb24odCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4sdCkpfSl9cmV0dXJuIGV9ZnVuY3Rpb24gb3QoZSl7cmV0dXJuIGl0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBpdCgpe3JldHVybiBpdD0oMCxhLkEpKGMoKS5tYXJrKGZ1bmN0aW9uIGUodCl7dmFyIG4scixvLGkscyxsLHUsZCxmLHAsdixtO3JldHVybiBjKCkud3JhcChmdW5jdGlvbihlKXtmb3IoOzspc3dpdGNoKGUucHJldj1lLm5leHQpe2Nhc2UgMDppZihuPXQudG9vbGJhckNvZGUsIUMoKSYmISgwLF8uS0wpKCkpe2UubmV4dD0xO2JyZWFrfXJldHVybiBULlkubG9nKCJza2lwcGluZyBpbml0IiksZS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTppZighUWUpe2UubmV4dD0yO2JyZWFrfXI9UWUsZS5uZXh0PTU7YnJlYWs7Y2FzZSAyOnJldHVybiBlLm5leHQ9MyxRKCk7Y2FzZSAzOnJldHVybiBlLm5leHQ9NCxpZSh7dG9vbGJhckNvZGU6bn0pO2Nhc2UgNDpyPWUuc2VudCxRZT1yO2Nhc2UgNTpyZXR1cm4gZS5uZXh0PTYsKDAsXy54USkoci50YWJIZWFkZXJzKTtjYXNlIDY6aWYoIWUuc2VudCl7ZS5uZXh0PTc7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDc6aWYoYXQoKSxvPXIuZXhpc3RpbmdBdXRoLGk9Qm9vbGVhbihudWxsPT1vP3ZvaWQgMDpvLmludGVudCksci51c2VyU2V0dGluZ3MucG9zaXRpb24mJkFlKHIudXNlclNldHRpbmdzLnBvc2l0aW9uKSxzPXtjYW5Qcm94eTpyLmNhblByb3h5LGNhblByb3h5UHVzaGVyOnIuY2FuUHJveHlQdXNoZXIsa2V5QmluZGluZ3M6ci51c2VyU2V0dGluZ3Mua2V5QmluZGluZ3N9LGw9ZXQobyksdT0hbCYmIWkmJigwLE4udEspKCJzdGFydC1oaWRkZW4iPT09ci51c2VyU2V0dGluZ3Muc2hvdyksbHx8ImxvY2FsaG9zdCI9PT1sb2NhdGlvbi5ob3N0bmFtZXx8byYmKCJhbHdheXMiPT09ci51c2VyU2V0dGluZ3MuYWN0aXZhdGV8fHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oUC51NCkpKXtlLm5leHQ9MTE7YnJlYWt9cmV0dXJuIGUucHJldj04LGUubmV4dD05LGZldGNoKGxvY2F0aW9uLmhyZWYse21ldGhvZDoiSEVBRCIsaGVhZGVyczp7IngtdmVyY2VsLWRyYWZ0LXN0YXR1cyI6IjEifX0pO2Nhc2UgOToiZW5hYmxlZCI9PT1lLnNlbnQuaGVhZGVycy5nZXQoIngtdmVyY2VsLXRva2VuLXN0YXR1cyIpJiYobD1YZS5kcmFmdCx1PSExLChkPW5ldyBVUkwobG9jYXRpb24uaHJlZikpLnNlYXJjaFBhcmFtcy5zZXQoIl9fdmVyY2VsX2RyYWZ0IiwiMSIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsZG9jdW1lbnQudGl0bGUsIiIuY29uY2F0KGQub3JpZ2luKS5jb25jYXQoZC5wYXRobmFtZSkuY29uY2F0KGQuc2VhcmNoLnJlcGxhY2VBbGwoIisiLCIlMjAiKSkpKSxlLm5leHQ9MTE7YnJlYWs7Y2FzZSAxMDplLnByZXY9MTAsZS5jYXRjaCg4KTtjYXNlIDExOmlmKCFvKXtlLm5leHQ9MTQ7YnJlYWt9aWYoImFsd2F5cyIhPT1yLnVzZXJTZXR0aW5ncy5hY3RpdmF0ZSYmIXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oUC51NCkmJiFsKXtlLm5leHQ9MTI7YnJlYWt9cmV0dXJuIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oUC51NCwiMSIpLGUuYWJydXB0KCJyZXR1cm4iLG1lKHJ0KHJ0KHt9LHMpLHt9LHtkYXRhOm8scmVzZXRUb29sYmFyOmZ1bmN0aW9uKCl7cmV0dXJuIEhlKHMpfSxvcGVuQ21kazohMSxzaG91bGRCZUhpZGRlbjp1fSkpKTtjYXNlIDEyOmlmKCF1KXtlLm5leHQ9MTM7YnJlYWt9cmV0dXJuIGY9UmUoci51c2VyU2V0dGluZ3Mua2V5QmluZGluZ3MsZnVuY3Rpb24oKXtyZXR1cm4gZigpLG1lKHJ0KHJ0KHt9LHMpLHt9LHtkYXRhOm8scmVzZXRUb29sYmFyOmZ1bmN0aW9uKCl7cmV0dXJuIEhlKHMpfSxvcGVuQ21kazohMH0pKX0pLGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDEzOnJldHVybiBwPVVlKHtkaXJlY3Q6ITAsa2V5QmluZGluZ3M6cy5rZXlCaW5kaW5ncyxvbkFjdGl2YXRlOmZ1bmN0aW9uKCl7dmFyIGU9KDAsYS5BKShjKCkubWFyayhmdW5jdGlvbiBlKCl7cmV0dXJuIGMoKS53cmFwKGZ1bmN0aW9uKGUpe2Zvcig7Oylzd2l0Y2goZS5wcmV2PWUubmV4dCl7Y2FzZSAwOnJldHVybiBlLm5leHQ9MSxtZShydChydCh7fSxzKSx7fSx7ZGF0YTpvLHJlc2V0VG9vbGJhcjpmdW5jdGlvbigpe3JldHVybiBIZShzKX0sY2FuUHJveHk6ci5jYW5Qcm94eSxvcGVuQ21kazohMH0pKTtjYXNlIDE6digpO2Nhc2UgMjpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSl9KSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oKX0pLHY9cC5jbGVhbnVwLGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDE0OmlmKCFyLmlzTm9uVmVyY2VsRG9tYWluKXtlLm5leHQ9MTU7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCgwLHoudnMpKCkpO2Nhc2UgMTU6aWYoIWx8fCEkZShsKSl7ZS5uZXh0PTE2O2JyZWFrfXJldHVybiB0dCh7aW50ZW50Omwsd2l0aEludGVudENhbGxiYWNrOmZ1bmN0aW9uKCl7c2UoKS50aGVuKGZ1bmN0aW9uKGUpe2U/bWUocnQocnQoe30scykse30se2RhdGE6ZSxyZXNldFRvb2xiYXI6ZnVuY3Rpb24oKXtyZXR1cm4gSGUocyl9LGNhblByb3h5OnIuY2FuUHJveHksb3BlbkNtZGs6ITF9KSk6SGUocyl9KX0sd2l0aG91dEludGVudENhbGxiYWNrOmZ1bmN0aW9uKCl7dXx8SGUocyl9fSksZS5hYnJ1cHQoInJldHVybiIpO2Nhc2UgMTY6aWYoIXUpe2UubmV4dD0xNzticmVha31yZXR1cm4gbT1SZShyLnVzZXJTZXR0aW5ncy5rZXlCaW5kaW5ncyxmdW5jdGlvbigpe20oKSxIZShzKX0pLGUuYWJydXB0KCJyZXR1cm4iKTtjYXNlIDE3OkhlKHMpO2Nhc2UgMTg6Y2FzZSJlbmQiOnJldHVybiBlLnN0b3AoKX19LGUsbnVsbCxbWzgsMTBdXSl9KSksaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGF0KCl7c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgidmMtbWZlLXNlc3Npb24tY2xlYXJlZCIpfHwoc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgidmMtbWZlLXNlc3Npb24tY2xlYXJlZCIsIjEiKSxkb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PWUudHJpbSgpLnNwbGl0KCI9Iiksbj0oMCxpLkEpKHQsMSlbMF0scj12b2lkIDA9PT1uPyIiOm47KGZ1bmN0aW9uKGUpe3JldHVybiBCb29sZWFuKGUubmFtZT8uc3RhcnRzV2l0aCgidmVyY2VsLW1pY3JvLWZyb250ZW5kcy1vdmVycmlkZSIpKX0pKHtuYW1lOnJ9KSYmKGRvY3VtZW50LmNvb2tpZT0iIi5jb25jYXQociwiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UO3BhdGg9LzsiKSl9KSl9fSwyMTA2OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQpeyhudWxsPT10fHx0PmUubGVuZ3RoKSYmKHQ9ZS5sZW5ndGgpO2Zvcih2YXIgbj0wLHI9QXJyYXkodCk7bjx0O24rKylyW25dPWVbbl07cmV0dXJuIHJ9bi5kKHQse0E6KCk9PnJ9KX0sODQ3MDooZSx0LG4pPT57dmFyIHI9big2ODIzNyksbz1uKDQ5ODMyKSxpPW4oNTA5MzQpLGE9bigyMTMzNCkscz1uKDI0OTQwKSxjPW4oNTY4KSxsPW4oNDg5NzgpO2Z1bmN0aW9uIHUoKXsidXNlIHN0cmljdCI7dmFyIHQ9bygpLG49dC5tKHUpLGQ9KE9iamVjdC5nZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Yobik6bi5fX3Byb3RvX18pLmNvbnN0cnVjdG9yO2Z1bmN0aW9uIGYoZSl7dmFyIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUuY29uc3RydWN0b3I7cmV0dXJuISF0JiYodD09PWR8fCJHZW5lcmF0b3JGdW5jdGlvbiI9PT0odC5kaXNwbGF5TmFtZXx8dC5uYW1lKSl9dmFyIHA9e3Rocm93OjEscmV0dXJuOjIsYnJlYWs6Myxjb250aW51ZTozfTtmdW5jdGlvbiB2KGUpe3ZhciB0LG47cmV0dXJuIGZ1bmN0aW9uKHIpe3R8fCh0PXtzdG9wOmZ1bmN0aW9uKCl7cmV0dXJuIG4oci5hLDIpfSxjYXRjaDpmdW5jdGlvbigpe3JldHVybiByLnZ9LGFicnVwdDpmdW5jdGlvbihlLHQpe3JldHVybiBuKHIuYSxwW2VdLHQpfSxkZWxlZ2F0ZVlpZWxkOmZ1bmN0aW9uKGUsbyxpKXtyZXR1cm4gdC5yZXN1bHROYW1lPW8sbihyLmQsbChlKSxpKX0sZmluaXNoOmZ1bmN0aW9uKGUpe3JldHVybiBuKHIuZixlKX19LG49ZnVuY3Rpb24oZSxuLG8pe3IucD10LnByZXYsci5uPXQubmV4dDt0cnl7cmV0dXJuIGUobixvKX1maW5hbGx5e3QubmV4dD1yLm59fSksdC5yZXN1bHROYW1lJiYodFt0LnJlc3VsdE5hbWVdPXIudix0LnJlc3VsdE5hbWU9dm9pZCAwKSx0LnNlbnQ9ci52LHQubmV4dD1yLm47dHJ5e3JldHVybiBlLmNhbGwodGhpcyx0KX1maW5hbGx5e3IucD10LnByZXYsci5uPXQubmV4dH19fXJldHVybihlLmV4cG9ydHM9dT1mdW5jdGlvbigpe3JldHVybnt3cmFwOmZ1bmN0aW9uKGUsbixyLG8pe3JldHVybiB0LncodihlKSxuLHIsbyYmby5yZXZlcnNlKCkpfSxpc0dlbmVyYXRvckZ1bmN0aW9uOmYsbWFyazp0Lm0sYXdyYXA6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IHIoZSx0KX0sQXN5bmNJdGVyYXRvcjpzLGFzeW5jOmZ1bmN0aW9uKGUsdCxuLHIsbyl7cmV0dXJuKGYodCk/YTppKSh2KGUpLHQsbixyLG8pfSxrZXlzOmMsdmFsdWVzOmx9fSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMpKCl9ZS5leHBvcnRzPXUsZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSwxMjQ1NDplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHQuc3R5bGVTaGVldCl0LnN0eWxlU2hlZXQuY3NzVGV4dD1lO2Vsc2V7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucmVtb3ZlQ2hpbGQodC5maXJzdENoaWxkKTt0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpKX19fSwxMjk5NzooZSx0LG4pPT57dmFyIHI9big4NDcwKSgpO2UuZXhwb3J0cz1yO3RyeXtyZWdlbmVyYXRvclJ1bnRpbWU9cn1jYXRjaChlKXsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpcy5yZWdlbmVyYXRvclJ1bnRpbWU9cjpGdW5jdGlvbigiciIsInJlZ2VuZXJhdG9yUnVudGltZSA9IHIiKShyKX19LDE0NzU0OihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlfW4uZCh0LHtBOigpPT5yfSl9LDE4ODg4OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0E6KCk9PnN9KTt2YXIgcj1uKDQ5ODAyKSxvPW4ubihyKSxpPW4oNTEzNDcpLGE9bi5uKGkpKCkobygpKTthLnB1c2goW2UuaWQsIi5ERHVaamhLbzcwZW00NjYySFpBenthbGlnbi1pdGVtczpjZW50ZXI7YmFja2Ryb3AtZmlsdGVyOmJsdXIoM3B4KTtiYWNrZ3JvdW5kOmhzbGEoMCwwJSw5NSUsLjgpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMDAwO2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2xlZnQ6MDtvdmVyZmxvdzphdXRvO3BhZGRpbmc6MTZweDtwb3NpdGlvbjpmaXhlZDt0b3A6MDt3aWR0aDoxMDAlfUBrZXlmcmFtZXMgT0UwTzNvb1lGVTRjU2tiRTVaY1R7MCV7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTQwcHgsMCl9dG97b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmFsbDt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKX19LlNxSGhDR3QyQWY3ajBhVng2RmM2e2FuaW1hdGlvbjpPRTBPM29vWUZVNGNTa2JFNVpjVCAuMzVzIGN1YmljLWJlemllciguNCwwLC4yLDEpO2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDAgMCAwIHRyYW5zcGFyZW50LDAgMCAwIDAgdHJhbnNwYXJlbnQsMCAwIDAgMCB0cmFuc3BhcmVudCwwIDAgMCAwIHRyYW5zcGFyZW50LDAgMCAwIDFweCByZ2JhKDAsMCwwLC4wOCksMCAzMnB4IDcycHggLTEycHggcmdiYSgwLDAsMCwuMDYpLDAgOHB4IDMycHggLTEycHggcmdiYSgwLDAsMCwuMDgpLDAgOHB4IDI0cHggLTEycHggcmdiYSgwLDAsMCwuMTIpO2ZsZXgtc2hyaW5rOjA7aGVpZ2h0OjI4MHB4O21hcmdpbjphdXRvO21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMzJweCk7bWluLXdpZHRoOm1pbihjYWxjKDEwMHZ3IC0gMzJweCksNDgycHgpO292ZXJmbG93OmhpZGRlbn0uU3FIaENHdDJBZjdqMGFWeDZGYzYgaWZyYW1le2hlaWdodDoxMDAlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTt3aWR0aDoxMDAlfUBtZWRpYSAobWF4LXdpZHRoOjQ4MHB4KXsuU3FIaENHdDJBZjdqMGFWeDZGYzZ7aGVpZ2h0OjM2MHB4fX1AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuU3FIaENHdDJBZjdqMGFWeDZGYzZ7YW5pbWF0aW9uOm5vbmV9fSIsIiJdKSxhLmxvY2Fscz17Y292ZXI6IkREdVpqaEtvNzBlbTQ2NjJIWkF6Iixtb2RhbDoiU3FIaENHdDJBZjdqMGFWeDZGYzYiLCJtZW51LWVudGVyIjoiT0UwTzNvb1lGVTRjU2tiRTVaY1QifTtjb25zdCBzPWF9LDIwMzMzOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PW4ubmM7dCYmZS5zZXRBdHRyaWJ1dGUoIm5vbmNlIix0KX19LDIwMzQwOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIG8oZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/byhlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxpPWZ1bmN0aW9uKCl7fTtyZXR1cm57czppLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjppfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGEscz0hMCxjPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gcz1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtjPSEwLGE9ZX0sZjpmdW5jdGlvbigpe3RyeXtzfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKGMpdGhyb3cgYX19fX1mdW5jdGlvbiBvKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn1uLmQodCx7Q3U6KCk9PnUsSWI6KCk9PmwsUTM6KCk9PmYsUVg6KCk9PmksUVk6KCk9PmMsZXI6KCk9PmQsc246KCk9PnN9KTt2YXIgaT1mdW5jdGlvbigpe3JldHVybnttZXRhOiExLGFsdDohMSxjdHJsOiExLHNoaWZ0OiExLGtleToiIn19LGE9ZnVuY3Rpb24oZSx0KXt2YXIgbj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLHI9dC50b1VwcGVyQ2FzZSgpO3N3aXRjaChyKXtjYXNlIk1FVEEiOmUubWV0YT1uO2JyZWFrO2Nhc2UiQUxUIjplLmFsdD1uO2JyZWFrO2Nhc2UiQ1RSTCI6Y2FzZSJDT05UUk9MIjplLmN0cmw9bjticmVhaztjYXNlIlNISUZUIjplLnNoaWZ0PW47YnJlYWs7ZGVmYXVsdDplLmtleT1uPzE9PT10Lmxlbmd0aD9yOnQ6IiJ9fSxzPWZ1bmN0aW9uKGUsdCl7dC5tZXRhS2V5JiYoZS5tZXRhPSEwKSx0LmFsdEtleSYmKGUuYWx0PSEwKSx0LmN0cmxLZXkmJihlLmN0cmw9ITApLHQuc2hpZnRLZXkmJihlLnNoaWZ0PSEwKSxhKGUsdC5rZXkpfSxjPWZ1bmN0aW9uKGUsdCl7dC5tZXRhS2V5JiYoZS5tZXRhPSExKSx0LmFsdEtleSYmKGUuYWx0PSExKSx0LmN0cmxLZXkmJihlLmN0cmw9ITEpLHQuc2hpZnRLZXkmJihlLnNoaWZ0PSExKTt0cnl7dmFyIG49dC5rZXk7YShlLHQua2V5LCExKSxuJiZlLmtleSYmdShlKX1jYXRjaChlKXt9fSxsPWZ1bmN0aW9uKGUpe3JldHVybiEoZS5tZXRhfHxlLmFsdHx8ZS5jdHJsfHxlLnNoaWZ0fHxlLmtleSl9LHU9ZnVuY3Rpb24oZSl7ZS5tZXRhPSExLGUuYWx0PSExLGUuY3RybD0hMSxlLnNoaWZ0PSExLGUua2V5PSIifSxkPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBTZXQoZS5zcGxpdCgiKyIpKTtpZighdC5zaXplKXRocm93IG5ldyBFcnJvcigiU2hvcnRjdXQgbXVzdCBub3QgYmUgZW1wdHkiKTt2YXIgbixvPXttZXRhOiExLGFsdDohMSxjdHJsOiExLHNoaWZ0OiExLGtleToiIn0saT1yKHQpO3RyeXtmb3IoaS5zKCk7IShuPWkubigpKS5kb25lOyl7dmFyIHM9bi52YWx1ZTthKG8scyl9fWNhdGNoKGUpe2kuZShlKX1maW5hbGx5e2kuZigpfXJldHVybiBvfSxmPWZ1bmN0aW9uKGUpe3JldHVybltlLmN0cmwmJiJjdHJsIixlLm1ldGEmJiJtZXRhIixlLmFsdCYmImFsdCIsZS5zaGlmdCYmInNoaWZ0IixlLmtleV0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIisiKX19LDIxMzM0OihlLHQsbik9Pnt2YXIgcj1uKDQ5ODMyKSxvPW4oMjQ5NDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixpLGEpe3JldHVybiBuZXcgbyhyKCkudyhlLHQsbixpKSxhfHxQcm9taXNlKX0sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzfSwyNDk0MDooZSx0LG4pPT57dmFyIHI9big2ODIzNyksbz1uKDc3NDcxKTtlLmV4cG9ydHM9ZnVuY3Rpb24gZSh0LG4pe2Z1bmN0aW9uIGkoZSxvLGEscyl7dHJ5e3ZhciBjPXRbZV0obyksbD1jLnZhbHVlO3JldHVybiBsIGluc3RhbmNlb2Ygcj9uLnJlc29sdmUobC52KS50aGVuKGZ1bmN0aW9uKGUpe2koIm5leHQiLGUsYSxzKX0sZnVuY3Rpb24oZSl7aSgidGhyb3ciLGUsYSxzKX0pOm4ucmVzb2x2ZShsKS50aGVuKGZ1bmN0aW9uKGUpe2MudmFsdWU9ZSxhKGMpfSxmdW5jdGlvbihlKXtyZXR1cm4gaSgidGhyb3ciLGUsYSxzKX0pfWNhdGNoKGUpe3MoZSl9fXZhciBhO3RoaXMubmV4dHx8KG8oZS5wcm90b3R5cGUpLG8oZS5wcm90b3R5cGUsImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmFzeW5jSXRlcmF0b3J8fCJAYXN5bmNJdGVyYXRvciIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxvKHRoaXMsIl9pbnZva2UiLGZ1bmN0aW9uKGUsdCxyKXtmdW5jdGlvbiBvKCl7cmV0dXJuIG5ldyBuKGZ1bmN0aW9uKHQsbil7aShlLHIsdCxuKX0pfXJldHVybiBhPWE/YS50aGVuKG8sbyk6bygpfSwhMCl9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sMjUzNDM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QTooKT0+c30pO3ZhciByPW4oNDk4MDIpLG89bi5uKHIpLGk9big1MTM0NyksYT1uLm4oaSkoKShvKCkpO2EucHVzaChbZS5pZCwnLktnZnNzUWw4UnpKR3dGb2diQU5Qe2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo1MCU7bGVmdDpjbGFtcCh2YXIoLS1vZmZzZXQtcHgpLGNhbGMoKHZhcigtLXdpbmRvdy13aWR0aCwgMTAwdncpIC0gMip2YXIoLS1vZmZzZXQtcHgpKSp2YXIoLS10b29sYmFyLXgpICsgdmFyKC0tb2Zmc2V0LXB4KSksY2FsYyh2YXIoLS13aW5kb3ctd2lkdGgsIDEwMHZ3KSAtIHZhcigtLXNpemUtcHgpIC0gdmFyKC0tb2Zmc2V0LXB4KSkpO3Bvc2l0aW9uOmZpeGVkO3RvcDpjbGFtcCgwcHgsY2FsYyh2YXIoLS13aW5kb3ctaGVpZ2h0LCAxMDB2aCkqdmFyKC0tdG9vbGJhci15KSksY2FsYyh2YXIoLS13aW5kb3ctaGVpZ2h0LCAxMDB2aCkgLSB2YXIoLS1zaXplLXB4KSkpfS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUC55ZldaYkVyeUllc0I3MG5tN0ZVNnt0b3A6Y2xhbXAoMHB4LGNhbGModmFyKC0tdG9vbGJhci15LW9mZnNldCkpLGNhbGModmFyKC0td2luZG93LWhlaWdodCwgMTAwdmgpIC0gdmFyKC0tc2l6ZS1weCkpKX0uS2dmc3NRbDhSekpHd0ZvZ2JBTlAueWZXWmJFcnlJZXNCNzBubTdGVTYuQlpkT2lNTERJUkZFWjZoanFSamt7dG9wOmNhbGModmFyKC0td2luZG93LWhlaWdodCwgMTAwdmgpLzMpfS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUC5weEFhR2dpQWdJRVN0dlYyUmt5Z3t0b3A6Y2xhbXAoMHB4LGNhbGModmFyKC0td2luZG93LWhlaWdodCwgMTAwdmgpICsgdmFyKC0tdG9vbGJhci15LW9mZnNldCkgLSB2YXIoLS1zaXplLXB4KSksY2FsYyh2YXIoLS13aW5kb3ctaGVpZ2h0LCAxMDB2aCkgLSB2YXIoLS1zaXplLXB4KSkpfS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUC5weEFhR2dpQWdJRVN0dlYyUmt5Zy5CWmRPaU1MRElSRkVaNmhqcVJqa3t0b3A6Y2FsYyh2YXIoLS13aW5kb3ctaGVpZ2h0LCAxMDB2aCkqMi8zIC0gdmFyKC0tc2l6ZS1weCkpfS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUHstLW9mZnNldC1weDpjYWxjKHZhcigtLXRvb2xiYXItb2Zmc2V0KSoxcHgpOy0tZWRnZToyNDtib3gtc2l6aW5nOmJvcmRlci1ib3g7aGVpZ2h0OnZhcigtLXNpemUtcHgpO3dpZHRoOnZhcigtLXNpemUtcHgpOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzp2aXNpYmxlfS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUDpub3QoLk5NNzdscHh2Y1QwODZMdGlFcmc0KSAuZ19VM3I4ZGRfN3NnVkhuTm5WcFQgLnNGNXV1MXdaWVdYRVpwZmVXeUFye3RyYW5zZm9ybTpzY2FsZVgoLTEpfUBtZWRpYSAocG9pbnRlcjpjb2Fyc2Upey5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUDpiZWZvcmV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTtjb250ZW50OiIiO2luc2V0Oi0zMnB4O3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6LTF9fS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUCBidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOnVuc2V0Oy1tb3otYXBwZWFyYW5jZTp1bnNldDthcHBlYXJhbmNlOnVuc2V0O2JhY2tncm91bmQ6dW5zZXQ7Ym9yZGVyOnVuc2V0O2ZvbnQ6dW5zZXQ7bWFyZ2luOnVuc2V0O3BhZGRpbmc6dW5zZXQ7dGV4dC1hbGlnbjp1bnNldH0ub1psTkxidkRneTRYVElLdDFNZ017YmFja2Ryb3AtZmlsdGVyOmJsdXIoNTBweCk7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC44KTtib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjAgOHB4IDMwcHggcmdiYSgwLDAsMCwuMjUpO2luc2V0OjA7cG9zaXRpb246YWJzb2x1dGU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjFzfS5LZ2Zzc1FsOFJ6Skd3Rm9nYkFOUC5PV1NNenAzdkV2cnpzbkJxc0xuQSAub1psTkxidkRneTRYVElLdDFNZ017dHJhbnNmb3JtOnNjYWxlKC45Nil9LmNPT3dqQWRTTVNSaVRIcHJQY2NEe2hlaWdodDp2YXIoLS1zaXplLXB4KTtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDp2YXIoLS1zaXplLXB4KX0uY09Pd2pBZFNNU1JpVEhwclBjY0Q6YWZ0ZXIsLmNPT3dqQWRTTVNSaVRIcHJQY2NEOmJlZm9yZXtib3JkZXItcmFkaXVzOjUwJTtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGV9LmNPT3dqQWRTTVNSaVRIcHJQY2NEOmJlZm9yZXtib3JkZXI6MXB4IHNvbGlkICMwMDA7aW5zZXQ6MH0uY09Pd2pBZFNNU1JpVEhwclBjY0Q6YWZ0ZXJ7Ym9yZGVyOjFweCBzb2xpZCBoc2xhKDAsMCUsMTAwJSwuMik7aW5zZXQ6MXB4fS5nX1UzcjhkZF83c2dWSG5OblZwVHtib3JkZXItcmFkaXVzOjUwJTtjb2xvcjojZmZmO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6Z3JpZDtoZWlnaHQ6MTAwJTtwbGFjZS1jb250ZW50OmNlbnRlcjt3aWR0aDoxMDAlOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtwb3NpdGlvbjpyZWxhdGl2ZX0uZ19VM3I4ZGRfN3NnVkhuTm5WcFQgLnNGNXV1MXdaWVdYRVpwZmVXeUFyey0tc2l6ZTpjYWxjKHZhcigtLXNpemUtcHgpKjAuNzUpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6dmFyKC0tc2l6ZSk7d2lkdGg6dmFyKC0tc2l6ZSl9LmdfVTNyOGRkXzdzZ1ZIbk5uVnBUIC5Vcm5jUVE5RERUNXliMTNxNHJRNXstLXNwaW5uZXItc2l6ZToxNnB4Oy0tc3Bpbm5lci1jb2xvcjpjdXJyZW50Q29sb3I7ZGlzcGxheTpub25lfS5nX1UzcjhkZF83c2dWSG5OblZwVC5xOVBlb0FOYUFvelpBd3ZQMFY5eXtwb2ludGVyLWV2ZW50czpub25lfS5nX1UzcjhkZF83c2dWSG5OblZwVC5xOVBlb0FOYUFvelpBd3ZQMFY5eSAuc0Y1dXUxd1pZV1hFWnBmZVd5QXJ7ZGlzcGxheTpub25lfS5nX1UzcjhkZF83c2dWSG5OblZwVC5xOVBlb0FOYUFvelpBd3ZQMFY5eSAuVXJuY1FROUREVDV5YjEzcTRyUTV7ZGlzcGxheTpibG9ja30ucmtFUUpLNVVNVmVVM1czTjViRmp7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNTBweCk7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC42KTtib3JkZXItcmFkaXVzOjUwJTtib3R0b206LTY0cHg7ZGlzcGxheTpub25lO2xlZnQ6NTAlO3Bvc2l0aW9uOmZpeGVkO3RyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpOy0tc2l6ZTpjYWxjKHZhcigtLXRvb2xiYXItc2l6ZSkqMS4ycHgpOy0tc2NhbGVkLXNpemU6Y2FsYyh2YXIoLS1zaXplKS8xLjUpO2FsaWduLWl0ZW1zOmNlbnRlcjtib3JkZXI6MXB4IHNvbGlkIGhzbGEoMCwwJSwxMDAlLC41KTtib3gtc2hhZG93OjAgMCAjMDAwLDAgMCAjMDAwLDAgMCAxMHB4IHJnYmEoMCwwLDAsLjEpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtoZWlnaHQ6dmFyKC0tc2NhbGVkLXNpemUpO2p1c3RpZnktY29udGVudDpjZW50ZXI7b3BhY2l0eTowO291dGxpbmU6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEpO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyxib3R0b20gLjNzLHdpZHRoIC4zcyxoZWlnaHQgLjNzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpO3dpZHRoOnZhcigtLXNjYWxlZC1zaXplKX0ucmtFUUpLNVVNVmVVM1czTjViRmogc3Zne2NvbG9yOiNmZmY7ZmlsbDpub25lO2hlaWdodDoxNnB4O3dpZHRoOjE2cHh9LnJrRVFKSzVVTVZlVTNXM041YkZqLkdyYmk0Z0ZveFNFcEFBbTR4VGpZe2JvdHRvbTo2MHB4O29wYWNpdHk6MTstLXNjYWxlZC1zaXplOnZhcigtLXNpemUpO2Rpc3BsYXk6ZmxleH0ueGpwbnVERWR0c3BoZU5tVzc1Mmd7ZGlzcGxheTpub25lfS54anBudURFZHRzcGhlTm1XNzUyZzpoYXMoKy5ya0VRSks1VU1WZVUzVzNONWJGai5HcmJpNGdGb3hTRXBBQW00eFRqWSl7ZGlzcGxheTpibG9ja30ueGpwbnVERWR0c3BoZU5tVzc1Mmd7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHRyYW5zcGFyZW50LHJnYmEoMCwwLDAsLjMpKTtib3R0b206MDtoZWlnaHQ6Y2FsYyg4MHB4ICsgMnB4KnZhcigtLXRvb2xiYXItc2l6ZSkpO2xlZnQ6MDstd2Via2l0LW1hc2s6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDgyJSwjMDAwIDI3JSx0cmFuc3BhcmVudCA3MCUpO21hc2s6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgNTAlIDgyJSwjMDAwIDI3JSx0cmFuc3BhcmVudCA3MCUpO29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmZpeGVkO3RyYW5zaXRpb246b3BhY2l0eSAuM3M7d2lkdGg6MTAwdnd9LnhqcG51REVkdHNwaGVObVc3NTJnOmhhcygrLnJrRVFKSzVVTVZlVTNXM041YkZqLkdyYmk0Z0ZveFNFcEFBbTR4VGpZKXtvcGFjaXR5OjF9LnUxT01RSDM4cms4SGVuZ2dtdTdHe2luc2V0OjA7cG9zaXRpb246Zml4ZWR9JywiIl0pLGEubG9jYWxzPXtjb250YWluZXI6IktnZnNzUWw4UnpKR3dGb2diQU5QIixwb3NPZmZzZXQ6InlmV1piRXJ5SWVzQjcwbm03RlU2IixjbGFtcGVkT2Zmc2V0OiJCWmRPaU1MRElSRkVaNmhqcVJqayIsbmVnT2Zmc2V0OiJweEFhR2dpQWdJRVN0dlYyUmt5ZyIsbGVmdGhhbmQ6Ik5NNzdscHh2Y1QwODZMdGlFcmc0IixidXR0b25aZXJvOiJnX1UzcjhkZF83c2dWSG5OblZwVCIsbG9nbzoic0Y1dXUxd1pZV1hFWnBmZVd5QXIiLHNjYWxlTGF5ZXI6Im9abE5MYnZEZ3k0WFRJS3QxTWdNIixoZWxkOiJPV1NNenAzdkV2cnpzbkJxc0xuQSIsYm9yZGVyTGF5ZXI6ImNPT3dqQWRTTVNSaVRIcHJQY2NEIixzcGlubmVyOiJVcm5jUVE5RERUNXliMTNxNHJRNSIsbG9hZGluZzoicTlQZW9BTmFBb3paQXd2UDBWOXkiLGRpc21pc3M6InJrRVFKSzVVTVZlVTNXM041YkZqIix2aXNpYmxlOiJHcmJpNGdGb3hTRXBBQW00eFRqWSIsZGlzbWlzc0JhY2tkcm9wOiJ4anBudURFZHRzcGhlTm1XNzUyZyIsZHJhZ0JhY2tkcm9wOiJ1MU9NUUgzOHJrOEhlbmdnbXU3RyJ9O2NvbnN0IHM9YX0sMzQ2NDU6ZT0+e2Z1bmN0aW9uIHQobil7cmV0dXJuIGUuZXhwb3J0cz10PSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsdChuKX1lLmV4cG9ydHM9dCxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDM0ODc4OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse1dGOigpPT5sLFlfOigpPT5jLHE0OigpPT5hLHZtOigpPT5zfSk7dmFyIHI9big2NTQ4OCksbz1uKDQ1OTczKSxpPW4oMjAzNDApLGE9e2FjdGl2YXRlOiJjdHJsIixoaWRlOiJtZXRhKy4ifSxzPXtjb21tZW50OiJDIn0sYz1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30sbz0hL01hY3xpUGhvbmV8aVBvZHxpUGFkL2kudGVzdChuYXZpZ2F0b3IucGxhdGZvcm0pLGE9MCxzPU9iamVjdC5lbnRyaWVzKGUpO2E8cy5sZW5ndGg7YSsrKXt2YXIgYz0oMCxyLkEpKHNbYV0sMiksbD1jWzBdLHU9Y1sxXTtpZih1KXt2YXIgZD11O2lmKG8pe3ZhciBmPSgwLGkuZXIpKGQpO2lmKGYubWV0YSYmKGYuY3RybD0hMCxmLm1ldGE9ITEsbltkPSgwLGkuUTMpKGYpXSkpY29udGludWV9bltkXT10KGwpfX1yZXR1cm4gbn0sbD1mdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06d2luZG93LnBhcmVudCxuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwO2lmKCgwLG8uRikoKSlyZXR1cm4gZnVuY3Rpb24oKXt9O3ZhciByPSgwLGkuUVgpKCksYT10LmRvY3VtZW50LHM9ITEsYz0wLGw9ZnVuY3Rpb24obyl7KDAsaS5JYikocikmJihzPSEwKTt0cnl7KDAsaS5zbikocixvKX1jYXRjaChlKXtyZXR1cm4gdm9pZChzPSExKX12YXIgYTtjPURhdGUubm93KCk7dmFyIGw9ITEsdT0hMSxkPW8udGFyZ2V0LGY9ci5tZXRhfHxyLmFsdHx8ci5jdHJsfHwiYCI9PT1yLmtleSYmIlZFUkNFTC1MSVZFLUZFRURCQUNLIj09PWQudGFnTmFtZTtpZihuJiYiVkVSQ0VMLUxJVkUtRkVFREJBQ0siPT09ZC50YWdOYW1lKXt2YXIgcD1uLmFjdGl2ZUVsZW1lbnQ7cCYmKGQ9cCl9aWYoci5rZXkmJihmfHwhZC5jbG9zZXN0KCJpbnB1dCx0ZXh0YXJlYSxbY29udGVudGVkaXRhYmxlXSIpKSl7dmFyIHY9KDAsaS5RMykocik7KGE9ZVt2XSkmJihvLnByZXZlbnREZWZhdWx0KCksbD0iVkVSQ0VMLUxJVkUtRkVFREJBQ0siPT09by50YXJnZXQudGFnTmFtZSxvLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dT0hMH0pfXZhciBtPWZ1bmN0aW9uKGUpe2x8fCEoYT91OmUuZGVmYXVsdFByZXZlbnRlZCk/KGNsZWFyVGltZW91dChnKSxhJiZhKCkpOnM9ITF9O3QuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsbSx7b25jZTohMH0pO3ZhciBnPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLG0pLGZ8fCh1PSEwKSxtKG8pfSl9LHU9ZnVuY3Rpb24oKXtzPSExfSxkPWZ1bmN0aW9uKCl7cz0hMSwoMCxpLkN1KShyKX0sZj1mdW5jdGlvbihuKXtpZihzKWlmKHIua2V5KSgwLGkuUVkpKHIsbik7ZWxzZXt2YXIgbz0oMCxpLlEzKShyKTsoMCxpLlFZKShyLG4pO3ZhciBhPWVbb107aWYoYSYmIShEYXRlLm5vdygpLWM+PTUwMCkpe3ZhciBsPWZ1bmN0aW9uKGUpe2lmKCFlLmRlZmF1bHRQcmV2ZW50ZWQpe2UucHJldmVudERlZmF1bHQoKSxhKCk7dmFyIG49RGF0ZS5ub3coKSxyPWMsbz1mdW5jdGlvbigpe3I9PT1jJiYodC5kb2N1bWVudC5oYXNGb2N1cygpP0RhdGUubm93KCktbjwxZTMmJnQucmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pOmEoKSl9O28oKX19O3QuYWRkRXZlbnRMaXN0ZW5lcigia2V5dXAiLGwse29uY2U6ITB9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsbCl9KX19ZWxzZSgwLGkuUVkpKHIsbil9O3JldHVybiB0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGwsITApLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUsITApLHQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix1LCEwKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdSwhMCksdC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsdSwhMCksdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixkKSxhLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGQpLHQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZCksdC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsZiwhMCksZnVuY3Rpb24oKXt0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGwsITApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHUsITApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIix1LCEwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdSwhMCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsdSwhMCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJibHVyIixkKSxhLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsZiwhMCl9fX0sMzgzOTc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUsdCl7dmFyIG49bnVsbD09ZT9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1uKXt2YXIgcixvLGksYSxzPVtdLGM9ITAsbD0hMTt0cnl7aWYoaT0obj1uLmNhbGwoZSkpLm5leHQsMD09PXQpe2lmKE9iamVjdChuKSE9PW4pcmV0dXJuO2M9ITF9ZWxzZSBmb3IoOyEoYz0ocj1pLmNhbGwobikpLmRvbmUpJiYocy5wdXNoKHIudmFsdWUpLHMubGVuZ3RoIT09dCk7Yz0hMCk7fWNhdGNoKGUpe2w9ITAsbz1lfWZpbmFsbHl7dHJ5e2lmKCFjJiZudWxsIT1uLnJldHVybiYmKGE9bi5yZXR1cm4oKSxPYmplY3QoYSkhPT1hKSlyZXR1cm59ZmluYWxseXtpZihsKXRocm93IG99fXJldHVybiBzfX1uLmQodCx7QTooKT0+cn0pfSwzODY4OTooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBOigpPT5zfSk7dmFyIHI9big0OTgwMiksbz1uLm4ociksaT1uKDUxMzQ3KSxhPW4ubihpKSgpKG8oKSk7YS5wdXNoKFtlLmlkLCcuVEhta0FXTnhFTGJWeVlSZlNmVll7LS1tZW51LXdpZHRoOjI4MHB4Oy0tbWVudS1oZWlnaHQ6MjY5cHg7LS1lZGdlLXBhZGRpbmc6OHB4Oy0tb2Zmc2V0LXB4OmNhbGMoMXB4KnZhcigtLXRvb2xiYXItb2Zmc2V0KSk7aGVpZ2h0OnZhcigtLW1lbnUtaGVpZ2h0KTtsZWZ0OmNsYW1wKGNhbGModmFyKC0tc2l6ZS1weCkgKyB2YXIoLS1lZGdlLXBhZGRpbmcpICsgdmFyKC0tb2Zmc2V0LXB4KSksY2FsYygxMDB2dyp2YXIoLS10b29sYmFyLXgpKSxjYWxjKDEwMHZ3IC0gdmFyKC0tbWVudS13aWR0aCkgLSB2YXIoLS1lZGdlLXBhZGRpbmcpIC0gdmFyKC0tc2l6ZS1weCkgLSB2YXIoLS1vZmZzZXQtcHgpKSk7bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDt0b3A6Y2xhbXAodmFyKC0tZWRnZS1wYWRkaW5nKSxjYWxjKDEwMCUqdmFyKC0tdG9vbGJhci15KSAtIHZhcigtLW1lbnUtaGVpZ2h0KSArIHZhcigtLXNpemUtcHgpKSxjYWxjKDEwMHZoIC0gdmFyKC0tbWVudS1oZWlnaHQpIC0gdmFyKC0tZWRnZS1wYWRkaW5nKSkpO3dpZHRoOnZhcigtLW1lbnUtd2lkdGgpfS5USG1rQVdOeEVMYlZ5WVJmU2ZWWSBpZnJhbWV7Ym9yZGVyLXJhZGl1czppbmhlcml0O2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjEwMCV9LlRIbWtBV054RUxiVnlZUmZTZlZZe2JhY2tncm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjE1KTtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDhweCAzMHB4IHJnYmEoMCwwLDAsLjEyKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6I2VhZWFlYX1AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspey5USG1rQVdOeEVMYlZ5WVJmU2ZWWXtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWNvbG9yOmhzbGEoMCwwJSwxMDAlLC4xNSl9fUBtZWRpYSAobWF4LXdpZHRoOjc2OHB4KXsuVEhta0FXTnhFTGJWeVlSZlNmVll7LS1tZW51LWhlaWdodDoyNzVweDstLXRpbWluZzowLjM1czstLWVhc2U6bGluZWFyKDAgMCUsMC4wMDM2IDkuNjIlLDAuMDE4NSAxNi42NiUsMC4wNDg5IDIzLjAzJSwwLjA5NjIgMjguODYlLDAuMTcwNSAzNC45MyUsMC4yNjkgNDAuNjYlLDAuMzg2NyA0NS44OSUsMC41ODMzIDUyLjk1JSwwLjY4MyA1Ny4wNSUsMC43ODI5IDYyLjE0JSwwLjg2MjEgNjcuNDYlLDAuODk5MSA3MC42OCUsMC45Mjk5IDc0LjAzJSwwLjk1NDUgNzcuNTIlLDAuOTczNSA4MS4yMSUsMC45ODY1IDg1JSwwLjk5NDkgODkuMTUlLDEgMTAwJSk7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxMnB4IDEycHggMCAwO2JvdHRvbTowO2JveC1zaGFkb3c6MCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsLjAyKSwwIC0xNnB4IDI0cHggLTRweCByZ2JhKDAsMCwwLC4wNCksMCAtMzJweCA0OHB4IC04cHggcmdiYSgwLDAsMCwuMDYpO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6LW1vei1maXQtY29udGVudDtoZWlnaHQ6Zml0LWNvbnRlbnQ7aGVpZ2h0OjA7bGVmdDowO292ZXJmbG93OnZpc2libGU7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDt0b3A6dW5zZXQ7d2lkdGg6MTAwdnd9LlRIbWtBV054RUxiVnlZUmZTZlZZOmJlZm9yZXtib3JkZXItcmFkaXVzOmluaGVyaXQ7Ym9yZGVyLXRvcDoxcHggc29saWQgaHNsYSgwLDAlLDEwMCUsLjIpO2NvbnRlbnQ6IiI7aW5zZXQ6MDttaXgtYmxlbmQtbW9kZTpkaWZmZXJlbmNlO3BvaW50ZXItZXZlbnRzOm5vbmU7cG9zaXRpb246YWJzb2x1dGV9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsuVEhta0FXTnhFTGJWeVlSZlNmVlk6YmVmb3Jle21peC1ibGVuZC1tb2RlOmV4Y2x1c2lvbn19LlRIbWtBV054RUxiVnlZUmZTZlZZLkFiVUNsU25lZHhsVG1UUWx4YW1Le3RyYW5zaXRpb246ZGlzcGxheSxvdmVybGF5LHRyYW5zbGF0ZSxoZWlnaHQ7dHJhbnNpdGlvbi1iZWhhdmlvcjphbGxvdy1kaXNjcmV0ZTt0cmFuc2l0aW9uLWR1cmF0aW9uOnZhcigtLXRpbWluZyk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tZWFzZSl9LlRIbWtBV054RUxiVnlZUmZTZlZZLkFiVUNsU25lZHhsVG1UUWx4YW1LOjpiYWNrZHJvcHtvcGFjaXR5OjA7b3ZlcnNjcm9sbC1iZWhhdmlvcjpub25lO3RyYW5zaXRpb24tYmVoYXZpb3I6YWxsb3ctZGlzY3JldGU7dHJhbnNpdGlvbi1kdXJhdGlvbjp2YXIoLS10aW1pbmcpO3RyYW5zaXRpb24tcHJvcGVydHk6ZGlzcGxheSxvdmVybGF5LG9wYWNpdHk7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tZWFzZSl9LlRIbWtBV054RUxiVnlZUmZTZlZZLkFiVUNsU25lZHhsVG1UUWx4YW1LOnBvcG92ZXItb3BlbntkaXNwbGF5OmJsb2NrO2hlaWdodDp2YXIoLS1tZW51LWhlaWdodCk7QHN0YXJ0aW5nLXN0eWxle2hlaWdodDowfX0uVEhta0FXTnhFTGJWeVlSZlNmVlkuQWJVQ2xTbmVkeGxUbVRRbHhhbUs6cG9wb3Zlci1vcGVuOjpiYWNrZHJvcHtvcGFjaXR5OjE7QHN0YXJ0aW5nLXN0eWxle29wYWNpdHk6MH19fS5UMUJ6TF82U0xFN3Z0WnEwN3BRdntkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0nLCIiXSksYS5sb2NhbHM9e21lbnU6IlRIbWtBV054RUxiVnlZUmZTZlZZIixhdHRhY2hlZDoiQWJVQ2xTbmVkeGxUbVRRbHhhbUsiLG1lbnVDb250YWluZXI6IlQxQnpMXzZTTEU3dnRacTA3cFF2In07Y29uc3Qgcz1hfSwzOTgwNDooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtWOigpPT5vLG06KCk9PnJ9KTt2YXIgcj0iX192dGtiLWluaXQtdG9vbCIsbz0iX192dGtiLWhpZGUta2V5In0sNDA2Nzc6ZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXTtmdW5jdGlvbiBuKGUpe2Zvcih2YXIgbj0tMSxyPTA7cjx0Lmxlbmd0aDtyKyspaWYodFtyXS5pZGVudGlmaWVyPT09ZSl7bj1yO2JyZWFrfXJldHVybiBufWZ1bmN0aW9uIHIoZSxyKXtmb3IodmFyIGk9e30sYT1bXSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBjPWVbc10sbD1yLmJhc2U/Y1swXStyLmJhc2U6Y1swXSx1PWlbbF18fDAsZD0iIi5jb25jYXQobCwiICIpLmNvbmNhdCh1KTtpW2xdPXUrMTt2YXIgZj1uKGQpLHA9e2NzczpjWzFdLG1lZGlhOmNbMl0sc291cmNlTWFwOmNbM10sc3VwcG9ydHM6Y1s0XSxsYXllcjpjWzVdfTtpZigtMSE9PWYpdFtmXS5yZWZlcmVuY2VzKyssdFtmXS51cGRhdGVyKHApO2Vsc2V7dmFyIHY9byhwLHIpO3IuYnlJbmRleD1zLHQuc3BsaWNlKHMsMCx7aWRlbnRpZmllcjpkLHVwZGF0ZXI6dixyZWZlcmVuY2VzOjF9KX1hLnB1c2goZCl9cmV0dXJuIGF9ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPXQuZG9tQVBJKHQpO3JldHVybiBuLnVwZGF0ZShlKSxmdW5jdGlvbih0KXtpZih0KXtpZih0LmNzcz09PWUuY3NzJiZ0Lm1lZGlhPT09ZS5tZWRpYSYmdC5zb3VyY2VNYXA9PT1lLnNvdXJjZU1hcCYmdC5zdXBwb3J0cz09PWUuc3VwcG9ydHMmJnQubGF5ZXI9PT1lLmxheWVyKXJldHVybjtuLnVwZGF0ZShlPXQpfWVsc2Ugbi5yZW1vdmUoKX19ZS5leHBvcnRzPWZ1bmN0aW9uKGUsbyl7dmFyIGk9cihlPWV8fFtdLG89b3x8e30pO3JldHVybiBmdW5jdGlvbihlKXtlPWV8fFtdO2Zvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgcz1uKGlbYV0pO3Rbc10ucmVmZXJlbmNlcy0tfWZvcih2YXIgYz1yKGUsbyksbD0wO2w8aS5sZW5ndGg7bCsrKXt2YXIgdT1uKGlbbF0pOzA9PT10W3VdLnJlZmVyZW5jZXMmJih0W3VdLnVwZGF0ZXIoKSx0LnNwbGljZSh1LDEpKX1pPWN9fX0sNDU5NzM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7RjooKT0+cn0pO3ZhciByPWZ1bmN0aW9uKCl7cmV0dXJuLyg/OkFuZHJvaWQ7P1tccy9dK3woPzppUCg/OmFkfGhvbmUpKS4qT1NccykoPzpbXGRfXSspLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfX0sNDU5ODM6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKGUpe3JldHVybiByPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfSxyKGUpfW4uZCh0LHtBOigpPT5yfSl9LDQ3NDIwOihlLHQsbik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlLHQsbixyLG8saSxhKXt0cnl7dmFyIHM9ZVtpXShhKSxjPXMudmFsdWV9Y2F0Y2goZSl7cmV0dXJuIHZvaWQgbihlKX1zLmRvbmU/dChjKTpQcm9taXNlLnJlc29sdmUoYykudGhlbihyLG8pfWZ1bmN0aW9uIG8oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxuPWFyZ3VtZW50cztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obyxpKXt2YXIgYT1lLmFwcGx5KHQsbik7ZnVuY3Rpb24gcyhlKXtyKGEsbyxpLHMsYywibmV4dCIsZSl9ZnVuY3Rpb24gYyhlKXtyKGEsbyxpLHMsYywidGhyb3ciLGUpfXModm9pZCAwKX0pfX1uLmQodCx7QTooKT0+b30pfSw0ODk3ODooZSx0LG4pPT57dmFyIHI9bigzNDY0NSkuZGVmYXVsdDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYobnVsbCE9ZSl7dmFyIHQ9ZVsiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3J8fCJAQGl0ZXJhdG9yIl0sbj0wO2lmKHQpcmV0dXJuIHQuY2FsbChlKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZS5uZXh0KXJldHVybiBlO2lmKCFpc05hTihlLmxlbmd0aCkpcmV0dXJue25leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSYmbj49ZS5sZW5ndGgmJihlPXZvaWQgMCkse3ZhbHVlOmUmJmVbbisrXSxkb25lOiFlfX19fXRocm93IG5ldyBUeXBlRXJyb3IocihlKSsiIGlzIG5vdCBpdGVyYWJsZSIpfSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDQ5ODAyOmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBlWzFdfX0sNDk4MzI6KGUsdCxuKT0+e3ZhciByPW4oNzc0NzEpO2Z1bmN0aW9uIG8oKXt2YXIgdCxuLGk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2w6e30sYT1pLml0ZXJhdG9yfHwiQEBpdGVyYXRvciIscz1pLnRvU3RyaW5nVGFnfHwiQEB0b1N0cmluZ1RhZyI7ZnVuY3Rpb24gYyhlLG8saSxhKXt2YXIgcz1vJiZvLnByb3RvdHlwZSBpbnN0YW5jZW9mIHU/bzp1LGM9T2JqZWN0LmNyZWF0ZShzLnByb3RvdHlwZSk7cmV0dXJuIHIoYywiX2ludm9rZSIsZnVuY3Rpb24oZSxyLG8pe3ZhciBpLGEscyxjPTAsdT1vfHxbXSxkPSExLGY9e3A6MCxuOjAsdjp0LGE6cCxmOnAuYmluZCh0LDQpLGQ6ZnVuY3Rpb24oZSxuKXtyZXR1cm4gaT1lLGE9MCxzPXQsZi5uPW4sbH19O2Z1bmN0aW9uIHAoZSxyKXtmb3IoYT1lLHM9cixuPTA7IWQmJmMmJiFvJiZuPHUubGVuZ3RoO24rKyl7dmFyIG8saT11W25dLHA9Zi5wLHY9aVsyXTtlPjM/KG89dj09PXIpJiYocz1pWyhhPWlbNF0pPzU6KGE9MywzKV0saVs0XT1pWzVdPXQpOmlbMF08PXAmJigobz1lPDImJnA8aVsxXSk/KGE9MCxmLnY9cixmLm49aVsxXSk6cDx2JiYobz1lPDN8fGlbMF0+cnx8cj52KSYmKGlbNF09ZSxpWzVdPXIsZi5uPXYsYT0wKSl9aWYob3x8ZT4xKXJldHVybiBsO3Rocm93IGQ9ITAscn1yZXR1cm4gZnVuY3Rpb24obyx1LHYpe2lmKGM+MSl0aHJvdyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTtmb3IoZCYmMT09PXUmJnAodSx2KSxhPXUscz12OyhuPWE8Mj90OnMpfHwhZDspe2l8fChhP2E8Mz8oYT4xJiYoZi5uPS0xKSxwKGEscykpOmYubj1zOmYudj1zKTt0cnl7aWYoYz0yLGkpe2lmKGF8fChvPSJuZXh0Iiksbj1pW29dKXtpZighKG49bi5jYWxsKGkscykpKXRocm93IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKTtpZighbi5kb25lKXJldHVybiBuO3M9bi52YWx1ZSxhPDImJihhPTApfWVsc2UgMT09PWEmJihuPWkucmV0dXJuKSYmbi5jYWxsKGkpLGE8MiYmKHM9VHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciK28rIicgbWV0aG9kIiksYT0xKTtpPXR9ZWxzZSBpZigobj0oZD1mLm48MCk/czplLmNhbGwocixmKSkhPT1sKWJyZWFrfWNhdGNoKGUpe2k9dCxhPTEscz1lfWZpbmFsbHl7Yz0xfX1yZXR1cm57dmFsdWU6bixkb25lOmR9fX0oZSxpLGEpLCEwKSxjfXZhciBsPXt9O2Z1bmN0aW9uIHUoKXt9ZnVuY3Rpb24gZCgpe31mdW5jdGlvbiBmKCl7fW49T2JqZWN0LmdldFByb3RvdHlwZU9mO3ZhciBwPVtdW2FdP24obihbXVthXSgpKSk6KHIobj17fSxhLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxuKSx2PWYucHJvdG90eXBlPXUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUocCk7ZnVuY3Rpb24gbShlKXtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZihlLGYpOihlLl9fcHJvdG9fXz1mLHIoZSxzLCJHZW5lcmF0b3JGdW5jdGlvbiIpKSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHYpLGV9cmV0dXJuIGQucHJvdG90eXBlPWYscih2LCJjb25zdHJ1Y3RvciIsZikscihmLCJjb25zdHJ1Y3RvciIsZCksZC5kaXNwbGF5TmFtZT0iR2VuZXJhdG9yRnVuY3Rpb24iLHIoZixzLCJHZW5lcmF0b3JGdW5jdGlvbiIpLHIodikscih2LHMsIkdlbmVyYXRvciIpLHIodixhLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxyKHYsInRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0IEdlbmVyYXRvcl0ifSksKGUuZXhwb3J0cz1vPWZ1bmN0aW9uKCl7cmV0dXJue3c6YyxtfX0sZS5leHBvcnRzLl9fZXNNb2R1bGU9ITAsZS5leHBvcnRzLmRlZmF1bHQ9ZS5leHBvcnRzKSgpfWUuZXhwb3J0cz1vLGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sNTA2Mzc6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7QTooKT0+c30pO3ZhciByPW4oNDk4MDIpLG89bi5uKHIpLGk9big1MTM0NyksYT1uLm4oaSkoKShvKCkpO2EucHVzaChbZS5pZCwiOmhvc3R7LS10b29sYmFyLXg6MTstLXRvb2xiYXIteTowLjU7LS10b29sYmFyLXNpemU6MzY7LS10b29sYmFyLW9mZnNldDo4Oy0tc2l6ZTp2YXIoLS10b29sYmFyLXNpemUpOy0tc2l6ZS1weDpjYWxjKHZhcigtLXNpemUpKjFweCk7YW5pbWF0aW9uOm5vbmUgMHMgZWFzZSAwcyAxIG5vcm1hbCBub25lIHJ1bm5pbmc7YmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgbm9uZSByZXBlYXQgMCAwL2F1dG8gYXV0byBwYWRkaW5nLWJveCBib3JkZXItYm94IHNjcm9sbDtib3JkZXI6bm9uZTtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7LW8tYm9yZGVyLWltYWdlOm5vbmU7Ym9yZGVyLWltYWdlOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1zcGFjaW5nOjA7Ym90dG9tOmF1dG87Ym94LXNoYWRvdzpub25lO2JveC1zaXppbmc6Y29udGVudC1ib3g7Y2FwdGlvbi1zaWRlOnRvcDtjbGVhcjpub25lO2NsaXA6YXV0bztjb2xvcjojMDAwOy1tb3otY29sdW1uczphdXRvOy1tb3otY29sdW1uLWNvdW50OmF1dG87LW1vei1jb2x1bW4tZmlsbDpiYWxhbmNlO2NvbHVtbi1maWxsOmJhbGFuY2U7Z3JpZC1jb2x1bW4tZ2FwOm5vcm1hbDstbW96LWNvbHVtbi1nYXA6bm9ybWFsO2NvbHVtbi1nYXA6bm9ybWFsOy1tb3otY29sdW1uLXJ1bGU6bWVkaXVtIG5vbmUgY3VycmVudENvbG9yO2NvbHVtbi1ydWxlOm1lZGl1bSBub25lIGN1cnJlbnRDb2xvcjstbW96LWNvbHVtbi1zcGFuOjE7Y29sdW1uLXNwYW46MTstbW96LWNvbHVtbi13aWR0aDphdXRvO2NvbHVtbnM6YXV0bztjb250ZW50Om5vcm1hbDtjb3VudGVyLWluY3JlbWVudDpub25lO2NvdW50ZXItcmVzZXQ6bm9uZTtjdXJzb3I6YXV0bztkaXJlY3Rpb246bHRyO2Rpc3BsYXk6aW5saW5lO2VtcHR5LWNlbGxzOnNob3c7ZmxvYXQ6bm9uZTtmb250LWZhbWlseTpzZXJpZjtmb250LWZlYXR1cmUtc2V0dGluZ3M6bm9ybWFsO2ZvbnQtc2l6ZTptZWRpdW07aGVpZ2h0OmF1dG87aHlwaGVuczpub25lO2xlZnQ6YXV0bztsZXR0ZXItc3BhY2luZzpub3JtYWw7bGlzdC1zdHlsZTpkaXNjIG5vbmUgb3V0c2lkZTttYXJnaW46MDttYXgtaGVpZ2h0Om5vbmU7bWF4LXdpZHRoOm5vbmU7bWluLWhlaWdodDowO21pbi13aWR0aDowO29wYWNpdHk6MTtvcnBoYW5zOjI7b3V0bGluZTptZWRpdW0gbm9uZSBpbnZlcnQ7b3ZlcmZsb3c6dmlzaWJsZTtvdmVyZmxvdy14OnZpc2libGU7b3ZlcmZsb3cteTp2aXNpYmxlO3BhZGRpbmc6MDtwYWdlLWJyZWFrLWFmdGVyOmF1dG87cGFnZS1icmVhay1iZWZvcmU6YXV0bztwYWdlLWJyZWFrLWluc2lkZTphdXRvO2FsbDppbml0aWFsO2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZToxMnB4O2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC12YXJpYW50Om5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6bm9ybWFsO3BlcnNwZWN0aXZlOm5vbmU7cGVyc3BlY3RpdmUtb3JpZ2luOjUwJSA1MCU7cG9zaXRpb246c3RhdGljO3JpZ2h0OmF1dG87LW1vei10YWItc2l6ZTo4Oy1vLXRhYi1zaXplOjg7dGFiLXNpemU6ODt0YWJsZS1sYXlvdXQ6YXV0bzt0ZXh0LWFsaWduOmxlZnQ7LW1vei10ZXh0LWFsaWduLWxhc3Q6YXV0bzt0ZXh0LWFsaWduLWxhc3Q6YXV0bzt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWluZGVudDowO3RleHQtcmVuZGVyaW5nOm9wdGltaXplTGVnaWJpbGl0eTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7dG9wOmF1dG87dHJhbnNmb3JtOm5vbmU7dHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7dHJhbnNmb3JtLXN0eWxlOmZsYXQ7dHJhbnNpdGlvbjpub25lIDBzIGVhc2UgMHM7dW5pY29kZS1iaWRpOm5vcm1hbDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTt2aXNpYmlsaXR5OnZpc2libGU7d2hpdGUtc3BhY2U6bm9ybWFsO3dpZG93czoyO3dpZHRoOmF1dG87d29yZC1zcGFjaW5nOm5vcm1hbDt6LWluZGV4OmF1dG87LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1nZWlzdC1mb3JlZ3JvdW5kKTtzY3JvbGwtcGFkZGluZy10b3A6dmFyKC0taGVhZGVyLWhlaWdodCk7LS1jb2xvcjppbml0aWFsOy0tdGV4dC1jb2xvcjppbml0aWFsOy0tdGhlbWVkLWJnOmluaXRpYWw7LS10aGVtZWQtaG92ZXItYmc6aW5pdGlhbDstLXRoZW1lZC1mZzppbml0aWFsOy0tdGhlbWVkLWJvcmRlci1jb2xvcjppbml0aWFsOy0tYm9yZGVyLWNvbG9yOmluaXRpYWw7LS10aGVtZWQtYm9yZGVyOmluaXRpYWw7LS12YXJpYW50LXJhZGl1czppbml0aWFsOy0tc3BpbmVyLWNvbG9yOmluaXRpYWx9QG1lZGlhIChhbnktcG9pbnRlcjpjb2Fyc2Upezpob3N0ey0tdG9vbGJhci1zaXplOjQwOy0tdG9vbGJhci1vZmZzZXQ6LTZ9fSIsIiJdKTtjb25zdCBzPWF9LDUwOTM0OihlLHQsbik9Pnt2YXIgcj1uKDIxMzM0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sbyxpKXt2YXIgYT1yKGUsdCxuLG8saSk7cmV0dXJuIGEubmV4dCgpLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuZG9uZT9lLnZhbHVlOmEubmV4dCgpfSl9LGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLGUuZXhwb3J0cy5kZWZhdWx0PWUuZXhwb3J0c30sNTExNjY6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7SGk6KCk9PngsTVc6KCk9PmIsUmk6KCk9PnksZDY6KCk9PnYsbzg6KCk9PkUsdEs6KCk9PncsdWU6KCk9Pmt9KTt2YXIgcj1uKDQ3NDIwKSxvPW4oMTI5OTcpLGk9bi5uKG8pLGE9bigzNDg3OCkscz1uKDM5ODA0KSxjPW4oNjI5NzIpLGw9big2NTgwNyksdT0idmVyY2VsLWxpdmUtZmVlZGJhY2stb3B0b3V0IixkPSJ2ZXJjZWwtbGl2ZS1mZWVkYmFjay1oaWRkZW4iLGY9ITEscD1mdW5jdGlvbigpe307ZnVuY3Rpb24gdigpe3JldHVybiIxIj09PXNlc3Npb25TdG9yYWdlLmdldEl0ZW0odSl9dmFyIG0sZz0hMSxoPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInZlcmNlbC1saXZlLWZlZWRiYWNrIil9O2Z1bmN0aW9uIGIoKXt2YXIgZTtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHUsIjEiKSxwKCksbnVsbD09PShlPXdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2ZXJjZWwtbGl2ZS1mZWVkYmFjayIpKXx8dm9pZCAwPT09ZXx8ZS5yZW1vdmUoKSwoMCxjLnZzKSgpfWZ1bmN0aW9uIHkoKXtnPSEwLHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZCwiMSIpLHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0obC51NCk7dmFyIGU9aCgpO2UmJihlLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGUudGFiSW5kZXg9LTEpfWZ1bmN0aW9uIHcoZSl7dmFyIHQ9IXdpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMmJnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oZCk7cmV0dXJuIjEiPT09dD8oZj0hMCwhMCk6IjAiPT09dD8oZj0hMSwhMSk6ZT8oZj0hMCwhMCk6KGY9ITEsITEpfWZ1bmN0aW9uIHgoZSl7cmV0dXJuIG0/bShlKTpmdW5jdGlvbigpe319dmFyIEE9ITEsUz1mdW5jdGlvbigpe307d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGUpeyJleHRlbnNpb24tY2xpY2tlZCI9PT1lLmRhdGEudHlwZSYmZS5vcmlnaW49PT1sLmJkJiZTKCl9KTt2YXIgaz1mdW5jdGlvbihlKXtpZigiMSI9PT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGQpfHxmfHx2KCkpe3Nlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odSksc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkLCIwIiksZj0hMSxwKCk7dmFyIHQ9aCgpO2cmJnQ/KHQuc3R5bGUuZGlzcGxheT0iIix0LnRhYkluZGV4PTAsZz0hMSk6KDAsci5BKShpKCkubWFyayhmdW5jdGlvbiB0KCl7cmV0dXJuIGkoKS53cmFwKGZ1bmN0aW9uKHQpe2Zvcig7Oylzd2l0Y2godC5wcmV2PXQubmV4dCl7Y2FzZSAwOnJldHVybiBBPSEwLHQubmV4dD0xLGUoKTtjYXNlIDE6QT0hMTtjYXNlIDI6Y2FzZSJlbmQiOnJldHVybiB0LnN0b3AoKX19LHQpfSkpKCl9ZWxzZSBBfHwoeSgpLHAoKSl9O2Z1bmN0aW9uIEUoZSl7dmFyIHQsbj1lLnNob3dUb29sYmFyLHI9ZnVuY3Rpb24oKXtyZXR1cm4gayhuKX07KHA9ZnVuY3Rpb24oKXt2YXIgZTtpZighdigpKXJldHVybiBudWxsPT09KGU9dCl8fHZvaWQgMD09PWV8fGUoKSx2b2lkKHQ9dm9pZCAwKTtpZighdCl7dmFyIG49KDAsYS5ZXykoe2hpZGU6c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShzLlYpfHwibWV0YSsuIn0sZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcigpfX0pO3Q9KDAsYS5XRikobil9fSkoKSxTPXIsbT1mdW5jdGlvbihlKXtyZXR1cm4gUz1mdW5jdGlvbigpe3ZhciB0O251bGw9PWV8fG51bGw9PT0odD1lLmNvbnRlbnRXaW5kb3cpfHx2b2lkIDA9PT10fHx0LnBvc3RNZXNzYWdlKHt0eXBlOiJleHRlbnNpb24tY2xpY2tlZCJ9LHdpbmRvdy5vcmlnaW4pfSwoMCxjLktpKShmdW5jdGlvbihlKXtlfHxFKHtzaG93VG9vbGJhcjpufSl9KSxmdW5jdGlvbigpe3JldHVybiBFKHtzaG93VG9vbGJhcjpufSl9fX19LDUxMzQ3OmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKHQpe3ZhciBuPSIiLHI9dm9pZCAwIT09dFs1XTtyZXR1cm4gdFs0XSYmKG4rPSJAc3VwcG9ydHMgKCIuY29uY2F0KHRbNF0sIikgeyIpKSx0WzJdJiYobis9IkBtZWRpYSAiLmNvbmNhdCh0WzJdLCIgeyIpKSxyJiYobis9IkBsYXllciIuY29uY2F0KHRbNV0ubGVuZ3RoPjA/IiAiLmNvbmNhdCh0WzVdKToiIiwiIHsiKSksbis9ZSh0KSxyJiYobis9In0iKSx0WzJdJiYobis9In0iKSx0WzRdJiYobis9In0iKSxufSkuam9pbigiIil9LHQuaT1mdW5jdGlvbihlLG4scixvLGkpeyJzdHJpbmciPT10eXBlb2YgZSYmKGU9W1tudWxsLGUsdm9pZCAwXV0pO3ZhciBhPXt9O2lmKHIpZm9yKHZhciBzPTA7czx0aGlzLmxlbmd0aDtzKyspe3ZhciBjPXRoaXNbc11bMF07bnVsbCE9YyYmKGFbY109ITApfWZvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgdT1bXS5jb25jYXQoZVtsXSk7ciYmYVt1WzBdXXx8KHZvaWQgMCE9PWkmJih2b2lkIDA9PT11WzVdfHwodVsxXT0iQGxheWVyIi5jb25jYXQodVs1XS5sZW5ndGg+MD8iICIuY29uY2F0KHVbNV0pOiIiLCIgeyIpLmNvbmNhdCh1WzFdLCJ9IikpLHVbNV09aSksbiYmKHVbMl0/KHVbMV09IkBtZWRpYSAiLmNvbmNhdCh1WzJdLCIgeyIpLmNvbmNhdCh1WzFdLCJ9IiksdVsyXT1uKTp1WzJdPW4pLG8mJih1WzRdPyh1WzFdPSJAc3VwcG9ydHMgKCIuY29uY2F0KHVbNF0sIikgeyIpLmNvbmNhdCh1WzFdLCJ9IiksdVs0XT1vKTp1WzRdPSIiLmNvbmNhdChvKSksdC5wdXNoKHUpKX19LHR9fSw1NTU2MjooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBOigpPT5zfSk7dmFyIHI9big0OTgwMiksbz1uLm4ociksaT1uKDUxMzQ3KSxhPW4ubihpKSgpKG8oKSk7YS5wdXNoKFtlLmlkLCIuXzQ3Mkk0SEJnc3JYQTI1cnJSTjdnLC5UT0ZZeHNUdWhkNFd2ZVBGSjVtQXtoZWlnaHQ6dmFyKC0tc3Bpbm5lci1zaXplLDIwcHgpO3dpZHRoOnZhcigtLXNwaW5uZXItc2l6ZSwyMHB4KX0uXzQ3Mkk0SEJnc3JYQTI1cnJSTjdne2xlZnQ6NTAlO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo1MCV9LmNEbWJVdzhOcEhhZEF4S2FfNk55e2FuaW1hdGlvbjp0OEhYenpwdHhZQ0RTX2EyZjdQYyAxLjJzIGxpbmVhciBpbmZpbml0ZTtiYWNrZ3JvdW5kOnZhcigtLXNwaW5uZXItY29sb3IsdmFyKC0tZHMtZ3JheS03MDApKTtib3JkZXItcmFkaXVzOnZhcigtLWdlaXN0LXJhZGl1cyk7aGVpZ2h0OjglO2xlZnQ6LTEwJTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTMuOSU7d2lkdGg6MjQlfS5jRG1iVXc4TnBIYWRBeEthXzZOeTpmaXJzdC1jaGlsZHthbmltYXRpb24tZGVsYXk6LTEuMnM7dHJhbnNmb3JtOnJvdGF0ZSguMDAwMWRlZykgdHJhbnNsYXRlKDE0NiUpfS5jRG1iVXc4TnBIYWRBeEthXzZOeTpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi0xLjFzO3RyYW5zZm9ybTpyb3RhdGUoMzBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uY0RtYlV3OE5wSGFkQXhLYV82Tnk6bnRoLWNoaWxkKDMpe2FuaW1hdGlvbi1kZWxheTotMXM7dHJhbnNmb3JtOnJvdGF0ZSg2MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5jRG1iVXc4TnBIYWRBeEthXzZOeTpudGgtY2hpbGQoNCl7YW5pbWF0aW9uLWRlbGF5Oi0uOXM7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5jRG1iVXc4TnBIYWRBeEthXzZOeTpudGgtY2hpbGQoNSl7YW5pbWF0aW9uLWRlbGF5Oi0uOHM7dHJhbnNmb3JtOnJvdGF0ZSgxMjBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uY0RtYlV3OE5wSGFkQXhLYV82Tnk6bnRoLWNoaWxkKDYpe2FuaW1hdGlvbi1kZWxheTotLjdzO3RyYW5zZm9ybTpyb3RhdGUoMTUwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LmNEbWJVdzhOcEhhZEF4S2FfNk55Om50aC1jaGlsZCg3KXthbmltYXRpb24tZGVsYXk6LS42czt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZykgdHJhbnNsYXRlKDE0NiUpfS5jRG1iVXc4TnBIYWRBeEthXzZOeTpudGgtY2hpbGQoOCl7YW5pbWF0aW9uLWRlbGF5Oi0uNXM7dHJhbnNmb3JtOnJvdGF0ZSgyMTBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uY0RtYlV3OE5wSGFkQXhLYV82Tnk6bnRoLWNoaWxkKDkpe2FuaW1hdGlvbi1kZWxheTotLjRzO3RyYW5zZm9ybTpyb3RhdGUoMjQwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9LmNEbWJVdzhOcEhhZEF4S2FfNk55Om50aC1jaGlsZCgxMCl7YW5pbWF0aW9uLWRlbGF5Oi0uM3M7dHJhbnNmb3JtOnJvdGF0ZSgyNzBkZWcpIHRyYW5zbGF0ZSgxNDYlKX0uY0RtYlV3OE5wSGFkQXhLYV82Tnk6bnRoLWNoaWxkKDExKXthbmltYXRpb24tZGVsYXk6LS4yczt0cmFuc2Zvcm06cm90YXRlKDMwMGRlZykgdHJhbnNsYXRlKDE0NiUpfS5jRG1iVXc4TnBIYWRBeEthXzZOeTpudGgtY2hpbGQoMTIpe2FuaW1hdGlvbi1kZWxheTotLjFzO3RyYW5zZm9ybTpyb3RhdGUoMzMwZGVnKSB0cmFuc2xhdGUoMTQ2JSl9QGtleWZyYW1lcyB0OEhYenpwdHhZQ0RTX2EyZjdQY3swJXtvcGFjaXR5OjF9dG97b3BhY2l0eTouMTV9fSIsIiJdKSxhLmxvY2Fscz17c3Bpbm5lcjoiXzQ3Mkk0SEJnc3JYQTI1cnJSTjdnIix3cmFwcGVyOiJUT0ZZeHNUdWhkNFd2ZVBGSjVtQSIsYmFyOiJjRG1iVXc4TnBIYWRBeEthXzZOeSIsc3BpbjoidDhIWHp6cHR4WUNEU19hMmY3UGMifTtjb25zdCBzPWF9LDU2MDUwOmU9PnsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQpcmV0dXJue3VwZGF0ZTpmdW5jdGlvbigpe30scmVtb3ZlOmZ1bmN0aW9uKCl7fX07dmFyIHQ9ZS5pbnNlcnRTdHlsZUVsZW1lbnQoZSk7cmV0dXJue3VwZGF0ZTpmdW5jdGlvbihuKXshZnVuY3Rpb24oZSx0LG4pe3ZhciByPSIiO24uc3VwcG9ydHMmJihyKz0iQHN1cHBvcnRzICgiLmNvbmNhdChuLnN1cHBvcnRzLCIpIHsiKSksbi5tZWRpYSYmKHIrPSJAbWVkaWEgIi5jb25jYXQobi5tZWRpYSwiIHsiKSk7dmFyIG89dm9pZCAwIT09bi5sYXllcjtvJiYocis9IkBsYXllciIuY29uY2F0KG4ubGF5ZXIubGVuZ3RoPjA/IiAiLmNvbmNhdChuLmxheWVyKToiIiwiIHsiKSkscis9bi5jc3MsbyYmKHIrPSJ9Iiksbi5tZWRpYSYmKHIrPSJ9Iiksbi5zdXBwb3J0cyYmKHIrPSJ9Iik7dmFyIGk9bi5zb3VyY2VNYXA7aSYmInVuZGVmaW5lZCIhPXR5cGVvZiBidG9hJiYocis9IlxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShpKSkpKSwiICovIikpLHQuc3R5bGVUYWdUcmFuc2Zvcm0ocixlLHQub3B0aW9ucyl9KHQsZSxuKX0scmVtb3ZlOmZ1bmN0aW9uKCl7IWZ1bmN0aW9uKGUpe2lmKG51bGw9PT1lLnBhcmVudE5vZGUpcmV0dXJuITE7ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpfSh0KX19fX0sNjI5NzI6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7S2k6KCk9PnUsdnM6KCk9PmQseGw6KCk9PmZ9KTt2YXIgcj1uKDUxMTY2KSxvPW4oOTY4NDYpLGk9big2NTgwNyk7ZnVuY3Rpb24gYShlLHQpe3ZhciBuPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZlW1N5bWJvbC5pdGVyYXRvcl18fGVbIkBAaXRlcmF0b3IiXTtpZighbil7aWYoQXJyYXkuaXNBcnJheShlKXx8KG49ZnVuY3Rpb24oZSx0KXtpZihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIHMoZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/cyhlLHQpOnZvaWQgMH19KGUpKXx8dCYmZSYmIm51bWJlciI9PXR5cGVvZiBlLmxlbmd0aCl7biYmKGU9bik7dmFyIHI9MCxvPWZ1bmN0aW9uKCl7fTtyZXR1cm57czpvLG46ZnVuY3Rpb24oKXtyZXR1cm4gcj49ZS5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOmVbcisrXX19LGU6ZnVuY3Rpb24oZSl7dGhyb3cgZX0sZjpvfX10aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gaXRlcmF0ZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9dmFyIGksYT0hMCxjPSExO3JldHVybntzOmZ1bmN0aW9uKCl7bj1uLmNhbGwoZSl9LG46ZnVuY3Rpb24oKXt2YXIgZT1uLm5leHQoKTtyZXR1cm4gYT1lLmRvbmUsZX0sZTpmdW5jdGlvbihlKXtjPSEwLGk9ZX0sZjpmdW5jdGlvbigpe3RyeXthfHxudWxsPT1uLnJldHVybnx8bi5yZXR1cm4oKX1maW5hbGx5e2lmKGMpdGhyb3cgaX19fX1mdW5jdGlvbiBzKGUsdCl7KG51bGw9PXR8fHQ+ZS5sZW5ndGgpJiYodD1lLmxlbmd0aCk7Zm9yKHZhciBuPTAscj1BcnJheSh0KTtuPHQ7bisrKXJbbl09ZVtuXTtyZXR1cm4gcn12YXIgYz1uZXcgU2V0O2Z1bmN0aW9uIGwoZSl7dmFyIHQsbj1hKGMpO3RyeXtmb3Iobi5zKCk7ISh0PW4ubigpKS5kb25lOyl7dmFyIHI9dC52YWx1ZTtyKGUpLGMuZGVsZXRlKHIpfX1jYXRjaChlKXtuLmUoZSl9ZmluYWxseXtuLmYoKX19ZnVuY3Rpb24gdShlKXtjLmFkZChlKX1mdW5jdGlvbiBkKCl7bCghMSksc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShpLnU0KSxpLlhaLnJlbW92ZSgpfWZ1bmN0aW9uIGYoKXtsKCEwKSwoMCxyLkhpKSgpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Uuc3JjPWkudFU7dmFyIHQsbj1hKGkuWFouYXR0cmlidXRlcyk7dHJ5e2ZvcihuLnMoKTshKHQ9bi5uKCkpLmRvbmU7KXt2YXIgcz10LnZhbHVlO2Uuc2V0QXR0cmlidXRlKHMubmFtZSxzLnZhbHVlKX19Y2F0Y2goZSl7bi5lKGUpfWZpbmFsbHl7bi5mKCl9KDAsby5Heikod2luZG93KSxpLlhaLnJlbW92ZSgpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9fSw2NTQ4ODooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBOigpPT5zfSk7dmFyIHI9bigxNDc1NCksbz1uKDM4Mzk3KSxpPW4oOTg5NjMpLGE9big5ODM3MSk7ZnVuY3Rpb24gcyhlLHQpe3JldHVybigwLHIuQSkoZSl8fCgwLG8uQSkoZSx0KXx8KDAsaS5BKShlLHQpfHwoMCxhLkEpKCl9fSw2NTgwNzooZSx0LG4pPT57InVzZSBzdHJpY3QiO3ZhciByO24uZCh0LHtYWjooKT0+byxiZDooKT0+YSxqUDooKT0+Yyx0VTooKT0+aSx1NDooKT0+c30pO3ZhciBvPWRvY3VtZW50LmN1cnJlbnRTY3JpcHQsaT1udWxsPT1vP3ZvaWQgMDpvLnNyYyxhPWk/bmV3IFVSTChpKS5vcmlnaW46IiIscz0idmVyY2VsLXRvb2xiYXItYWN0aXZhdGVkIixjPW51bGw9PT0ocj1kb2N1bWVudC5jdXJyZW50U2NyaXB0KXx8dm9pZCAwPT09cj92b2lkIDA6ci5ub25jZX0sNjgyMzc6ZT0+e2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3RoaXMudj1lLHRoaXMuaz10fSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDc3NDcxOmU9PntmdW5jdGlvbiB0KG4scixvLGkpe3ZhciBhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt0cnl7YSh7fSwiIix7fSl9Y2F0Y2gobil7YT0wfWUuZXhwb3J0cz10PWZ1bmN0aW9uKGUsbixyLG8pe2Z1bmN0aW9uIGkobixyKXt0KGUsbixmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5faW52b2tlKG4scixlKX0pfW4/YT9hKGUsbix7dmFsdWU6cixlbnVtZXJhYmxlOiFvLGNvbmZpZ3VyYWJsZTohbyx3cml0YWJsZTohb30pOmVbbl09cjooaSgibmV4dCIsMCksaSgidGhyb3ciLDEpLGkoInJldHVybiIsMikpfSxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHMsdChuLHIsbyxpKX1lLmV4cG9ydHM9dCxlLmV4cG9ydHMuX19lc01vZHVsZT0hMCxlLmV4cG9ydHMuZGVmYXVsdD1lLmV4cG9ydHN9LDg0ODM2OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0E6KCk9PnN9KTt2YXIgcj1uKDQ5ODAyKSxvPW4ubihyKSxpPW4oNTEzNDcpLGE9bi5uKGkpKCkobygpKTthLnB1c2goW2UuaWQsIi5nejB1YUVyUm9YNWxJRmRmMENEQ3tkaXNwbGF5Om5vbmV9IiwiIl0pLGEubG9jYWxzPXtoaWRkZW46Imd6MHVhRXJSb1g1bElGZGYwQ0RDIn07Y29uc3Qgcz1hfSw5MzIwOTplPT57InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3JldHVybiBlLnNldEF0dHJpYnV0ZXModCxlLmF0dHJpYnV0ZXMpLGUuaW5zZXJ0KHQsZS5vcHRpb25zKSx0fX0sOTYxNDk6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtuLmQodCx7WTooKT0+cn0pO3ZhciByPXtsb2c6ZnVuY3Rpb24oKXt9LGVycm9yOmZ1bmN0aW9uKCl7fX19LDk2ODQ2OihlLHQsbik9PnsidXNlIHN0cmljdCI7bi5kKHQse0d6OigpPT5kLEtMOigpPT5zLHBaOigpPT5mLHJHOigpPT51LHRXOigpPT5jLHhROigpPT5wfSk7dmFyIHI9big0NzQyMCksbz1uKDEyOTk3KSxpPW4ubihvKSxhPW4oNjU4MDcpO2Z1bmN0aW9uIHMoKXtpZih3aW5kb3chPT13aW5kb3cucGFyZW50KWZvcih2YXIgZT13aW5kb3c7ZSE9PWUudG9wOylpZigoZT1lLnBhcmVudCkub3JpZ2luPT09d2luZG93Lm9yaWdpbil7aWYoYyhlKSlyZXR1cm4hMDtpZihhLnRVJiZlLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmM9IicuY29uY2F0KGEudFUsJyJdJykpKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIEJvb2xlYW4oZS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ2ZXJjZWwtbGl2ZS1mZWVkYmFjayIpKX12YXIgbD1TeW1ib2wuZm9yKCJ2Y190b29sYmFyIik7ZnVuY3Rpb24gdShlKXtyZXR1cm4gZVtsXX1mdW5jdGlvbiBkKGUpe3UoZSkmJihlW2xdPSExKX1mdW5jdGlvbiBmKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGwse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOiEwfSl9ZnVuY3Rpb24gcChlKXtyZXR1cm4gdi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gdigpe3JldHVybih2PSgwLHIuQSkoaSgpLm1hcmsoZnVuY3Rpb24gZSh0KXt2YXIgbixyLG8scztyZXR1cm4gaSgpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6aWYoInZlcmNlbC5jb20iPT09KG49bG9jYXRpb24uaG9zdG5hbWUpfHwiYmV0YS5uZXh0anMub3JnIj09PW58fCJsb2NhbGhvc3QiPT09bnx8IjEwLjAuMi4yIj09PW4pe2UubmV4dD0zO2JyZWFrfWlmKC8oPzpefDtccylfX3ZlcmNlbF90b29sYmFyPVsxMl0oPzo7fCQpLy50ZXN0KGRvY3VtZW50LmNvb2tpZSl8fCJ0cnVlIj09PWEuWFouZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGxpY2l0LW9wdC1pbiIpKXtlLm5leHQ9MzticmVha31pZighdCl7ZS5uZXh0PTE7YnJlYWt9cmV0dXJuIGUuYWJydXB0KCJyZXR1cm4iLCEvbm9pbmRleC9pLnRlc3QobnVsbCE9PShvPXRbIngtcm9ib3RzLXRhZyJdKSYmdm9pZCAwIT09bz9vOiIiKSk7Y2FzZSAxOnJldHVybiBlLm5leHQ9MixmZXRjaCgiLyIse21ldGhvZDoiT1BUSU9OUyJ9KTtjYXNlIDI6aWYocz1lLnNlbnQsL25vaW5kZXgvaS50ZXN0KG51bGwhPT0ocj1zLmhlYWRlcnMuZ2V0KCJ4LXJvYm90cy10YWciKSkmJnZvaWQgMCE9PXI/cjoiIikpe2UubmV4dD0zO2JyZWFrfXJldHVybiBlLmFicnVwdCgicmV0dXJuIiwhMCk7Y2FzZSAzOnJldHVybiBlLmFicnVwdCgicmV0dXJuIiwhMSk7Y2FzZSA0OmNhc2UiZW5kIjpyZXR1cm4gZS5zdG9wKCl9fSxlKX0pKSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sOTgzNzE6KGUsdCxuKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1uLmQodCx7QTooKT0+cn0pfSw5ODk2MzooZSx0LG4pPT57InVzZSBzdHJpY3QiO24uZCh0LHtBOigpPT5vfSk7dmFyIHI9bigyMTA2KTtmdW5jdGlvbiBvKGUsdCl7aWYoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybigwLHIuQSkoZSx0KTt2YXIgbj17fS50b1N0cmluZy5jYWxsKGUpLnNsaWNlKDgsLTEpO3JldHVybiJPYmplY3QiPT09biYmZS5jb25zdHJ1Y3RvciYmKG49ZS5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PW58fCJTZXQiPT09bj9BcnJheS5mcm9tKGUpOiJBcmd1bWVudHMiPT09bnx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3Qobik/KDAsci5BKShlLHQpOnZvaWQgMH19fX0sdD17fTtmdW5jdGlvbiBuKHIpe3ZhciBvPXRbcl07aWYodm9pZCAwIT09bylyZXR1cm4gby5leHBvcnRzO3ZhciBpPXRbcl09e2lkOnIsZXhwb3J0czp7fX07cmV0dXJuIGVbcl0oaSxpLmV4cG9ydHMsbiksaS5leHBvcnRzfW4ubj1lPT57dmFyIHQ9ZSYmZS5fX2VzTW9kdWxlPygpPT5lLmRlZmF1bHQ6KCk9PmU7cmV0dXJuIG4uZCh0LHthOnR9KSx0fSxuLmQ9KGUsdCk9Pntmb3IodmFyIHIgaW4gdCluLm8odCxyKSYmIW4ubyhlLHIpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLHtlbnVtZXJhYmxlOiEwLGdldDp0W3JdfSl9LG4ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCksbi5yPWU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxuLm5jPXZvaWQgMCwoKCk9PnsidXNlIHN0cmljdCI7dmFyIGU9big0NzQyMCksdD1uKDEyOTk3KSxyPW4ubih0KSxvPW4oNTExNjYpLGk9big5Njg0NiksYT1uKDY1ODA3KSxzPW4oOTYxNDkpLGM9big0NTk4Myk7ZnVuY3Rpb24gbChlLHQpe3JldHVybiBsPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuX19wcm90b19fPXQsZX0sbChlLHQpfWZ1bmN0aW9uIHUoKXt1PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBuKGUsdm9pZCAwLHQpfTt2YXIgZT1SZWdFeHAucHJvdG90eXBlLHQ9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gbihlLHIsbyl7dmFyIGk9UmVnRXhwKGUscik7cmV0dXJuIHQuc2V0KGksb3x8dC5nZXQoZSkpLGwoaSxuLnByb3RvdHlwZSl9ZnVuY3Rpb24gcihlLG4pe3ZhciByPXQuZ2V0KG4pO3JldHVybiBPYmplY3Qua2V5cyhyKS5yZWR1Y2UoZnVuY3Rpb24odCxuKXt2YXIgbz1yW25dO2lmKCJudW1iZXIiPT10eXBlb2Ygbyl0W25dPWVbb107ZWxzZXtmb3IodmFyIGk9MDt2b2lkIDA9PT1lW29baV1dJiZpKzE8by5sZW5ndGg7KWkrKzt0W25dPWVbb1tpXV19cmV0dXJuIHR9LE9iamVjdC5jcmVhdGUobnVsbCkpfXJldHVybiBmdW5jdGlvbihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSx0JiZsKGUsdCl9KG4sUmVnRXhwKSxuLnByb3RvdHlwZS5leGVjPWZ1bmN0aW9uKHQpe3ZhciBuPWUuZXhlYy5jYWxsKHRoaXMsdCk7aWYobil7bi5ncm91cHM9cihuLHRoaXMpO3ZhciBvPW4uaW5kaWNlcztvJiYoby5ncm91cHM9cihvLHRoaXMpKX1yZXR1cm4gbn0sbi5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdPWZ1bmN0aW9uKG4sbyl7aWYoInN0cmluZyI9PXR5cGVvZiBvKXt2YXIgaT10LmdldCh0aGlzKTtyZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLG4sby5yZXBsYWNlKC9cJDwoW14+XSspKD58JCkvZyxmdW5jdGlvbihlLHQsbil7aWYoIiI9PT1uKXJldHVybiBlO3ZhciByPWlbdF07cmV0dXJuIEFycmF5LmlzQXJyYXkocik/IiQiK3Iuam9pbigiJCIpOiJudW1iZXIiPT10eXBlb2Ygcj8iJCIrcjoiIn0pKX1pZigiZnVuY3Rpb24iPT10eXBlb2Ygbyl7dmFyIGE9dGhpcztyZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLG4sZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHM7cmV0dXJuIm9iamVjdCIhPSgwLGMuQSkoZVtlLmxlbmd0aC0xXSkmJihlPVtdLnNsaWNlLmNhbGwoZSkpLnB1c2gocihlLGEpKSxvLmFwcGx5KHRoaXMsZSl9KX1yZXR1cm4gZVtTeW1ib2wucmVwbGFjZV0uY2FsbCh0aGlzLG4sbyl9LHUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXZhciBkPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlLHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKSxuPXQuZ2V0KCJ2ZXJjZWxUb29sYmFyQ29kZSIpO2lmKG4pe3QuZGVsZXRlKCJ2ZXJjZWxUb29sYmFyQ29kZSIpO3ZhciByPW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpO3JldHVybiByLnNlYXJjaD10LnRvU3RyaW5nKCkucmVwbGFjZUFsbCgiKyIsIiUyMCIpLHdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh3aW5kb3cuaGlzdG9yeS5zdGF0ZSwiIiwiIi5jb25jYXQoci5wYXRobmFtZSkuY29uY2F0KHIuc2VhcmNoKS5jb25jYXQoci5oYXNoKSksbn12YXIgbz11KC8oPzpefDtccylfX3ZlcmNlbF90b29sYmFyX2NvZGU9KFteO10rKSg/Ojt8JCkvaSx7Y29kZToxfSkuZXhlYyhkb2N1bWVudC5jb29raWUpLGk9bnVsbD09b3x8bnVsbD09PShlPW8uZ3JvdXBzKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jb2RlO2lmKGkpcmV0dXJuIGRvY3VtZW50LmNvb2tpZT0iX192ZXJjZWxfdG9vbGJhcl9jb2RlPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgVVRDO3BhdGg9LzsiLGk7dmFyIGE9dC5nZXQoIl9fdmVyY2VsX3Rvb2xiYXJfY29kZSIpO2lmKGEpe3QuZGVsZXRlKCJfX3ZlcmNlbF90b29sYmFyX2NvZGUiKTt2YXIgcz1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtyZXR1cm4gcy5zZWFyY2g9dC50b1N0cmluZygpLnJlcGxhY2VBbGwoIisiLCIlMjAiKSx3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUod2luZG93Lmhpc3Rvcnkuc3RhdGUsIiIsIiIuY29uY2F0KHMucGF0aG5hbWUpLmNvbmNhdChzLnNlYXJjaCkuY29uY2F0KHMuaGFzaCkpLGF9fWNhdGNoKGUpe319KCk7ZnVuY3Rpb24gZigpe3JldHVybiBwLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBwKCl7cmV0dXJuKHA9KDAsZS5BKShyKCkubWFyayhmdW5jdGlvbiBlKCl7dmFyIHQsbztyZXR1cm4gcigpLndyYXAoZnVuY3Rpb24oZSl7Zm9yKDs7KXN3aXRjaChlLnByZXY9ZS5uZXh0KXtjYXNlIDA6cmV0dXJuIGUucHJldj0wLGUubmV4dD0xLFByb21pc2UucmVzb2x2ZSgpLnRoZW4obi5iaW5kKG4sMTM2NikpO2Nhc2UgMTpyZXR1cm4gdD1lLnNlbnQsZS5uZXh0PTIsdC5pbml0KHt0b29sYmFyQ29kZTpkfSk7Y2FzZSAyOmUubmV4dD00O2JyZWFrO2Nhc2UgMzplLnByZXY9MyxvPWUuY2F0Y2goMCkscy5ZLmVycm9yKG8pO2Nhc2UgNDpjYXNlImVuZCI6cmV0dXJuIGUuc3RvcCgpfX0sZSxudWxsLFtbMCwzXV0pfSkpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ImF0dGFjaFNoYWRvdyJpbiBkb2N1bWVudC5ib2R5JiZhLlhaJiZhLnRVJiYhKDAsaS50Vykod2luZG93KSYmISgwLGkuckcpKHdpbmRvdykmJigoMCxpLnBaKSh3aW5kb3cpLCgwLG8ubzgpKHtzaG93VG9vbGJhcjpmfSksKDAsby5kNikoKXx8ZigpKX0pKCl9KSgpOw=="}},"time_used":65,"timings":{"blocked":0,"dns":2,"connect":1,"send":0,"wait":33,"receive":0,"ssl":29},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/auth/login","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:59.057Z","timestamp":1785142499057,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"OPTIONS /auth/login HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\r\nOrigin: https://preview-strategynavigator.newton.tech\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\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 400 \r\ncache-control: public, max-age=0, must-revalidate\r\ndate: Mon, 27 Jul 2026 08:54:59 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nvary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch\r\nx-matched-path: /auth/login\r\nx-vercel-cache: MISS\r\nx-vercel-id: arn1::iad1::sqcpc-1785142499063-bed0038f1982\r\ncontent-length: 0\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"400","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":400,"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-07-27T15:05:58.256156Z","times_seen":17565140,"resource_available":true,"data":""}},"time_used":292,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":292,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/turbopack-bbba6579f118a9cd.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.226Z","timestamp":1785142498226,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/turbopack-bbba6579f118a9cd.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"turbopack-bbba6579f118a9cd.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"740e18cfa65f8de41b75a9e146fce582\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/turbopack-bbba6579f118a9cd.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::tjcl7-1785142498231-e0bbf0488113\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":10270,"size_decoded":4834,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (6195)","md5":"740e18cfa65f8de41b75a9e146fce582","sha1":"184dd624009ff31a4bd5075a0e6b788accfb8a0c","sha256":"04a3ab7b77b5b6ada550bfe5d701a28f942f88b599d17a6d4d2a092b8fb75f7e","sha512":"e1dd41ae4eb16f42060439fdf8cbce08415fcd5581d2259cb07d7a6f62ac91b318bfa6162f50145fd319ac5fae3fd53e52a95bb8e0658d7a2d4cd31b31cdb16c","ssdeep":"192:yWKSiHG+J8iEsuRnAEY8iaWkUmlGVhFd2mKKW9PZPKFXVqXm5m:3KSiHhylWkUmlQ8mKDZZy1m","tlshash":"e622c6da37a6f073436fa1e7803f4144f1799869146d541c939ce8fa28784ae45e3f36","first_seen":"2026-07-27T06:16:09.10018Z","last_seen":"2026-07-27T08:57:45.730067Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLHtvdGhlckNodW5rczpbInN0YXRpYy9jaHVua3MvYmI4ZmMxYTk3ZWI1ZjJhOS5qcyIsInN0YXRpYy9jaHVua3MvNGRiZTc0NWIyNmI4YWZkZi5qcyIsInN0YXRpYy9jaHVua3MvY2YwYWFkMWFlZjMxZGI0ZS5qcyIsInN0YXRpYy9jaHVua3MvMjVlZjE2YjY5YTMxZTNlNy5qcyIsInN0YXRpYy9jaHVua3MvOTA0ZjU4MDlkZTAzODg4YS5qcyIsInN0YXRpYy9jaHVua3MvMDhkY2ZjM2IxNTM4M2NkNi5qcyJdLHJ1bnRpbWVNb2R1bGVJZHM6WzQ5NDU1M119XSksKCgpPT57bGV0IGU7aWYoIUFycmF5LmlzQXJyYXkoZ2xvYmFsVGhpcy5UVVJCT1BBQ0spKXJldHVybjtsZXQgdD0iL19uZXh0LyIscj1uZXcgV2Vha01hcDtmdW5jdGlvbiBuKGUsdCl7dGhpcy5tPWUsdGhpcy5lPXR9bGV0IG89bi5wcm90b3R5cGUsbD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGk9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZztmdW5jdGlvbiBzKGUsdCxyKXtsLmNhbGwoZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxyKX1mdW5jdGlvbiB1KGUsdCl7bGV0IHI9ZVt0XTtyZXR1cm4gcnx8KHI9YSh0KSxlW3RdPXIpLHJ9ZnVuY3Rpb24gYShlKXtyZXR1cm57ZXhwb3J0czp7fSxlcnJvcjp2b2lkIDAsaWQ6ZSxuYW1lc3BhY2VPYmplY3Q6dm9pZCAwfX1mdW5jdGlvbiBjKGUsdCl7cyhlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxpJiZzKGUsaSx7dmFsdWU6Ik1vZHVsZSJ9KTtsZXQgcj0wO2Zvcig7cjx0Lmxlbmd0aDspe2xldCBuPXRbcisrXSxvPXRbcisrXTtpZigibnVtYmVyIj09dHlwZW9mIG8paWYoMD09PW8pcyhlLG4se3ZhbHVlOnRbcisrXSxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiExfSk7ZWxzZSB0aHJvdyBFcnJvcihgdW5leHBlY3RlZCB0YWc6ICR7b31gKTtlbHNlImZ1bmN0aW9uIj09dHlwZW9mIHRbcl0/cyhlLG4se2dldDpvLHNldDp0W3IrK10sZW51bWVyYWJsZTohMH0pOnMoZSxuLHtnZXQ6byxlbnVtZXJhYmxlOiEwfSl9T2JqZWN0LnNlYWwoZSl9by5zPWZ1bmN0aW9uKGUsdCl7bGV0IHIsbjtudWxsIT10P249KHI9dSh0aGlzLmMsdCkpLmV4cG9ydHM6KHI9dGhpcy5tLG49dGhpcy5lKSxyLm5hbWVzcGFjZU9iamVjdD1uLGMobixlKX0sby5qPWZ1bmN0aW9uKGUsdCl7dmFyIG4sbztsZXQgaSxzLGE7bnVsbCE9dD9zPShpPXUodGhpcy5jLHQpKS5leHBvcnRzOihpPXRoaXMubSxzPXRoaXMuZSk7bGV0IGM9KG49aSxvPXMsKGE9ci5nZXQobikpfHwoci5zZXQobixhPVtdKSxuLmV4cG9ydHM9bi5uYW1lc3BhY2VPYmplY3Q9bmV3IFByb3h5KG8se2dldChlLHQpe2lmKGwuY2FsbChlLHQpfHwiZGVmYXVsdCI9PT10fHwiX19lc01vZHVsZSI9PT10KXJldHVybiBSZWZsZWN0LmdldChlLHQpO2ZvcihsZXQgZSBvZiBhKXtsZXQgcj1SZWZsZWN0LmdldChlLHQpO2lmKHZvaWQgMCE9PXIpcmV0dXJuIHJ9fSxvd25LZXlzKGUpe2xldCB0PVJlZmxlY3Qub3duS2V5cyhlKTtmb3IobGV0IGUgb2YgYSlmb3IobGV0IHIgb2YgUmVmbGVjdC5vd25LZXlzKGUpKSJkZWZhdWx0Ij09PXJ8fHQuaW5jbHVkZXMocil8fHQucHVzaChyKTtyZXR1cm4gdH19KSksYSk7Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZSYmYy5wdXNoKGUpfSxvLnY9ZnVuY3Rpb24oZSx0KXsobnVsbCE9dD91KHRoaXMuYyx0KTp0aGlzLm0pLmV4cG9ydHM9ZX0sby5uPWZ1bmN0aW9uKGUsdCl7bGV0IHI7KHI9bnVsbCE9dD91KHRoaXMuYyx0KTp0aGlzLm0pLmV4cG9ydHM9ci5uYW1lc3BhY2VPYmplY3Q9ZX07bGV0IGY9T2JqZWN0LmdldFByb3RvdHlwZU9mP2U9Pk9iamVjdC5nZXRQcm90b3R5cGVPZihlKTplPT5lLl9fcHJvdG9fXyxwPVtudWxsLGYoe30pLGYoW10pLGYoZildO2Z1bmN0aW9uIGgoZSx0LHIpe2xldCBuPVtdLG89LTE7Zm9yKGxldCB0PWU7KCJvYmplY3QiPT10eXBlb2YgdHx8ImZ1bmN0aW9uIj09dHlwZW9mIHQpJiYhcC5pbmNsdWRlcyh0KTt0PWYodCkpZm9yKGxldCByIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpKW4ucHVzaChyLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKCk9PmVbdF19KGUscikpLC0xPT09byYmImRlZmF1bHQiPT09ciYmKG89bi5sZW5ndGgtMSk7cmV0dXJuIHImJm8+PTB8fChvPj0wP24uc3BsaWNlKG8sMSwwLGUpOm4ucHVzaCgiZGVmYXVsdCIsMCxlKSksYyh0LG4pLHR9ZnVuY3Rpb24gZChlKXtsZXQgdD1OKGUsdGhpcy5tKTtpZih0Lm5hbWVzcGFjZU9iamVjdClyZXR1cm4gdC5uYW1lc3BhY2VPYmplY3Q7bGV0IHI9dC5leHBvcnRzO3JldHVybiB0Lm5hbWVzcGFjZU9iamVjdD1oKHIsImZ1bmN0aW9uIj09dHlwZW9mIHI/ZnVuY3Rpb24oLi4uZSl7cmV0dXJuIHIuYXBwbHkodGhpcyxlKX06T2JqZWN0LmNyZWF0ZShudWxsKSxyJiZyLl9fZXNNb2R1bGUpfWZ1bmN0aW9uIG0oKXtsZXQgZSx0O3JldHVybntwcm9taXNlOm5ldyBQcm9taXNlKChyLG4pPT57dD1uLGU9cn0pLHJlc29sdmU6ZSxyZWplY3Q6dH19by5pPWQsby5BPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnIoZSkoZC5iaW5kKHRoaXMpKX0sby50PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlP3JlcXVpcmU6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiVW5leHBlY3RlZCB1c2Ugb2YgcnVudGltZSByZXF1aXJlIil9LG8ucj1mdW5jdGlvbihlKXtyZXR1cm4gTihlLHRoaXMubSkuZXhwb3J0c30sby5mPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCl7aWYobC5jYWxsKGUsdCkpcmV0dXJuIGVbdF0ubW9kdWxlKCk7bGV0IHI9RXJyb3IoYENhbm5vdCBmaW5kIG1vZHVsZSAnJHt0fSdgKTt0aHJvdyByLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLHJ9cmV0dXJuIHQua2V5cz0oKT0+T2JqZWN0LmtleXMoZSksdC5yZXNvbHZlPXQ9PntpZihsLmNhbGwoZSx0KSlyZXR1cm4gZVt0XS5pZCgpO2xldCByPUVycm9yKGBDYW5ub3QgZmluZCBtb2R1bGUgJyR7dH0nYCk7dGhyb3cgci5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixyfSx0LmltcG9ydD1hc3luYyBlPT5hd2FpdCB0KGUpLHR9O2xldCBiPVN5bWJvbCgidHVyYm9wYWNrIHF1ZXVlcyIpLHk9U3ltYm9sKCJ0dXJib3BhY2sgZXhwb3J0cyIpLE89U3ltYm9sKCJ0dXJib3BhY2sgZXJyb3IiKTtmdW5jdGlvbiBnKGUpe2UmJjEhPT1lLnN0YXR1cyYmKGUuc3RhdHVzPTEsZS5mb3JFYWNoKGU9PmUucXVldWVDb3VudC0tKSxlLmZvckVhY2goZT0+ZS5xdWV1ZUNvdW50LS0/ZS5xdWV1ZUNvdW50Kys6ZSgpKSl9by5hPWZ1bmN0aW9uKGUsdCl7bGV0IHI9dGhpcy5tLG49dD9PYmplY3QuYXNzaWduKFtdLHtzdGF0dXM6LTF9KTp2b2lkIDAsbz1uZXcgU2V0LHtyZXNvbHZlOmwscmVqZWN0OmkscHJvbWlzZTpzfT1tKCksdT1PYmplY3QuYXNzaWduKHMse1t5XTpyLmV4cG9ydHMsW2JdOmU9PntuJiZlKG4pLG8uZm9yRWFjaChlKSx1LmNhdGNoKCgpPT57fSl9fSksYT17Z2V0OigpPT51LHNldChlKXtlIT09dSYmKHVbeV09ZSl9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZXhwb3J0cyIsYSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIm5hbWVzcGFjZU9iamVjdCIsYSksZShmdW5jdGlvbihlKXtsZXQgdD1lLm1hcChlPT57aWYobnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZSl7aWYoYiBpbiBlKXJldHVybiBlO2lmKG51bGwhPWUmJiJvYmplY3QiPT10eXBlb2YgZSYmInRoZW4iaW4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudGhlbil7bGV0IHQ9T2JqZWN0LmFzc2lnbihbXSx7c3RhdHVzOjB9KSxyPXtbeV06e30sW2JdOmU9PmUodCl9O3JldHVybiBlLnRoZW4oZT0+e3JbeV09ZSxnKHQpfSxlPT57cltPXT1lLGcodCl9KSxyfX1yZXR1cm57W3ldOmUsW2JdOigpPT57fX19KSxyPSgpPT50Lm1hcChlPT57aWYoZVtPXSl0aHJvdyBlW09dO3JldHVybiBlW3ldfSkse3Byb21pc2U6bCxyZXNvbHZlOml9PW0oKSxzPU9iamVjdC5hc3NpZ24oKCk9Pmkocikse3F1ZXVlQ291bnQ6MH0pO2Z1bmN0aW9uIHUoZSl7ZSE9PW4mJiFvLmhhcyhlKSYmKG8uYWRkKGUpLGUmJjA9PT1lLnN0YXR1cyYmKHMucXVldWVDb3VudCsrLGUucHVzaChzKSkpfXJldHVybiB0Lm1hcChlPT5lW2JdKHUpKSxzLnF1ZXVlQ291bnQ/bDpyKCl9LGZ1bmN0aW9uKGUpe2U/aSh1W09dPWUpOmwodVt5XSksZyhuKX0pLG4mJi0xPT09bi5zdGF0dXMmJihuLnN0YXR1cz0wKX07bGV0IHc9ZnVuY3Rpb24oZSl7bGV0IHQ9bmV3IFVSTChlLCJ4Oi8iKSxyPXt9O2ZvcihsZXQgZSBpbiB0KXJbZV09dFtlXTtmb3IobGV0IHQgaW4gci5ocmVmPWUsci5wYXRobmFtZT1lLnJlcGxhY2UoL1s/I10uKi8sIiIpLHIub3JpZ2luPXIucHJvdG9jb2w9IiIsci50b1N0cmluZz1yLnRvSlNPTj0oLi4udCk9PmUscilPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyW3RdfSl9O2Z1bmN0aW9uIGooZSx0KXt0aHJvdyBFcnJvcihgSW52YXJpYW50OiAke3QoZSl9YCl9dy5wcm90b3R5cGU9VVJMLnByb3RvdHlwZSxvLlU9dyxvLno9ZnVuY3Rpb24oZSl7dGhyb3cgRXJyb3IoImR5bmFtaWMgdXNhZ2Ugb2YgcmVxdWlyZSBpcyBub3Qgc3VwcG9ydGVkIil9LG8uZz1nbG9iYWxUaGlzO2xldCBSPW4ucHJvdG90eXBlO3ZhciBDLFU9KChDPVV8fHt9KVtDLlJ1bnRpbWU9MF09IlJ1bnRpbWUiLENbQy5QYXJlbnQ9MV09IlBhcmVudCIsQ1tDLlVwZGF0ZT0yXT0iVXBkYXRlIixDKTtsZXQgaz1uZXcgTWFwO28uTT1rO2xldCB2PW5ldyBNYXAsXz1uZXcgTWFwO2FzeW5jIGZ1bmN0aW9uIFAoZSx0LHIpe2xldCBuO2lmKCJzdHJpbmciPT10eXBlb2YgcilyZXR1cm4gQShlLHQsUyhyKSk7bGV0IG89ci5pbmNsdWRlZHx8W10sbD1vLm1hcChlPT4hIWsuaGFzKGUpfHx2LmdldChlKSk7aWYobC5sZW5ndGg+MCYmbC5ldmVyeShlPT5lKSlyZXR1cm4gdm9pZCBhd2FpdCBQcm9taXNlLmFsbChsKTtsZXQgaT1yLm1vZHVsZUNodW5rc3x8W10scz1pLm1hcChlPT5fLmdldChlKSkuZmlsdGVyKGU9PmUpO2lmKHMubGVuZ3RoPjApe2lmKHMubGVuZ3RoPT09aS5sZW5ndGgpcmV0dXJuIHZvaWQgYXdhaXQgUHJvbWlzZS5hbGwocyk7bGV0IHI9bmV3IFNldDtmb3IobGV0IGUgb2YgaSlfLmhhcyhlKXx8ci5hZGQoZSk7Zm9yKGxldCBuIG9mIHIpe2xldCByPUEoZSx0LFMobikpO18uc2V0KG4scikscy5wdXNoKHIpfW49UHJvbWlzZS5hbGwocyl9ZWxzZXtmb3IobGV0IG8gb2Yobj1BKGUsdCxTKHIucGF0aCkpLGkpKV8uaGFzKG8pfHxfLnNldChvLG4pfWZvcihsZXQgZSBvZiBvKXYuaGFzKGUpfHx2LnNldChlLG4pO2F3YWl0IG59Ui5sPWZ1bmN0aW9uKGUpe3JldHVybiBQKDEsdGhpcy5tLmlkLGUpfTtsZXQgJD1Qcm9taXNlLnJlc29sdmUodm9pZCAwKSxUPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEEodCxyLG4pe2xldCBvPWUubG9hZENodW5rQ2FjaGVkKHQsbiksbD1ULmdldChvKTtpZih2b2lkIDA9PT1sKXtsZXQgZT1ULnNldC5iaW5kKFQsbywkKTtsPW8udGhlbihlKS5jYXRjaChlPT57bGV0IG87c3dpdGNoKHQpe2Nhc2UgMDpvPWBhcyBhIHJ1bnRpbWUgZGVwZW5kZW5jeSBvZiBjaHVuayAke3J9YDticmVhaztjYXNlIDE6bz1gZnJvbSBtb2R1bGUgJHtyfWA7YnJlYWs7Y2FzZSAyOm89ImZyb20gYW4gSE1SIHVwZGF0ZSI7YnJlYWs7ZGVmYXVsdDpqKHQsZT0+YFVua25vd24gc291cmNlIHR5cGU6ICR7ZX1gKX10aHJvdyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgY2h1bmsgJHtufSAke299JHtlP2A6ICR7ZX1gOiIifWAsZT97Y2F1c2U6ZX06dm9pZCAwKX0pLFQuc2V0KG8sbCl9cmV0dXJuIGx9ZnVuY3Rpb24gUyhlKXtyZXR1cm5gJHt0fSR7ZS5zcGxpdCgiLyIpLm1hcChlPT5lbmNvZGVVUklDb21wb25lbnQoZSkpLmpvaW4oIi8iKX1gfVIuTD1mdW5jdGlvbihlKXtyZXR1cm4gQSgxLHRoaXMubS5pZCxlKX0sUi5SPWZ1bmN0aW9uKGUpe2xldCB0PXRoaXMucihlKTtyZXR1cm4gdD8uZGVmYXVsdD8/dH0sUi5QPWZ1bmN0aW9uKGUpe3JldHVybmAvUk9PVC8ke2U/PyIifWB9LFIuYj1mdW5jdGlvbihlKXtsZXQgdD1uZXcgQmxvYihbYHNlbGYuVFVSQk9QQUNLX1dPUktFUl9MT0NBVElPTiA9ICR7SlNPTi5zdHJpbmdpZnkobG9jYXRpb24ub3JpZ2luKX07CnNlbGYuVFVSQk9QQUNLX05FWFRfQ0hVTktfVVJMUyA9ICR7SlNPTi5zdHJpbmdpZnkoZS5yZXZlcnNlKCkubWFwKFMpLG51bGwsMil9OwppbXBvcnRTY3JpcHRzKC4uLnNlbGYuVFVSQk9QQUNLX05FWFRfQ0hVTktfVVJMUy5tYXAoYyA9PiBzZWxmLlRVUkJPUEFDS19XT1JLRVJfTE9DQVRJT04gKyBjKS5yZXZlcnNlKCkpO2BdLHt0eXBlOiJ0ZXh0L2phdmFzY3JpcHQifSk7cmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwodCl9O2xldCBFPS9cLmpzKD86XD9bXiNdKik/KD86Iy4qKT8kLyxLPS9cLmNzcyg/Olw/W14jXSopPyg/OiMuKik/JC87ZnVuY3Rpb24geChlKXtyZXR1cm4gSy50ZXN0KGUpfW8udz1mdW5jdGlvbih0LHIsbil7cmV0dXJuIGUubG9hZFdlYkFzc2VtYmx5KDEsdGhpcy5tLmlkLHQscixuKX0sby51PWZ1bmN0aW9uKHQscil7cmV0dXJuIGUubG9hZFdlYkFzc2VtYmx5TW9kdWxlKDEsdGhpcy5tLmlkLHQscil9O2xldCBNPXt9O28uYz1NO2xldCBOPShlLHQpPT57bGV0IHI9TVtlXTtpZihyKXtpZihyLmVycm9yKXRocm93IHIuZXJyb3I7cmV0dXJuIHJ9cmV0dXJuIEwoZSxVLlBhcmVudCx0LmlkKX07ZnVuY3Rpb24gTChlLHQscil7bGV0IG89ay5nZXQoZSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIG8pdGhyb3cgRXJyb3IoZnVuY3Rpb24oZSx0LHIpe2xldCBuO3N3aXRjaCh0KXtjYXNlIDA6bj1gYXMgYSBydW50aW1lIGVudHJ5IG9mIGNodW5rICR7cn1gO2JyZWFrO2Nhc2UgMTpuPWBiZWNhdXNlIGl0IHdhcyByZXF1aXJlZCBmcm9tIG1vZHVsZSAke3J9YDticmVhaztjYXNlIDI6bj0iYmVjYXVzZSBvZiBhbiBITVIgdXBkYXRlIjticmVhaztkZWZhdWx0OmoodCxlPT5gVW5rbm93biBzb3VyY2UgdHlwZTogJHtlfWApfXJldHVybmBNb2R1bGUgJHtlfSB3YXMgaW5zdGFudGlhdGVkICR7bn0sIGJ1dCB0aGUgbW9kdWxlIGZhY3RvcnkgaXMgbm90IGF2YWlsYWJsZS5gfShlLHQscikpO2xldCBsPWEoZSksaT1sLmV4cG9ydHM7TVtlXT1sO2xldCBzPW5ldyBuKGwsaSk7dHJ5e28ocyxsLGkpfWNhdGNoKGUpe3Rocm93IGwuZXJyb3I9ZSxlfXJldHVybiBsLm5hbWVzcGFjZU9iamVjdCYmbC5leHBvcnRzIT09bC5uYW1lc3BhY2VPYmplY3QmJmgobC5leHBvcnRzLGwubmFtZXNwYWNlT2JqZWN0KSxsfWZ1bmN0aW9uIHEocil7bGV0IG4sbz1mdW5jdGlvbihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpcmV0dXJuIGU7bGV0IHI9ZGVjb2RlVVJJQ29tcG9uZW50KCgidW5kZWZpbmVkIiE9dHlwZW9mIFRVUkJPUEFDS19ORVhUX0NIVU5LX1VSTFM/VFVSQk9QQUNLX05FWFRfQ0hVTktfVVJMUy5wb3AoKTplLmdldEF0dHJpYnV0ZSgic3JjIikpLnJlcGxhY2UoL1s/I10uKiQvLCIiKSk7cmV0dXJuIHIuc3RhcnRzV2l0aCh0KT9yLnNsaWNlKHQubGVuZ3RoKTpyfShyWzBdKTtyZXR1cm4gMj09PXIubGVuZ3RoP249clsxXToobj12b2lkIDAsIWZ1bmN0aW9uKGUsdCxyLG4pe2xldCBvPTE7Zm9yKDtvPGUubGVuZ3RoOyl7bGV0IHQ9ZVtvXSxuPW8rMTtmb3IoO248ZS5sZW5ndGgmJiJmdW5jdGlvbiIhPXR5cGVvZiBlW25dOyluKys7aWYobj09PWUubGVuZ3RoKXRocm93IEVycm9yKCJtYWxmb3JtZWQgY2h1bmsgZm9ybWF0LCBleHBlY3RlZCBhIGZhY3RvcnkgZnVuY3Rpb24iKTtpZighci5oYXModCkpe2xldCBsPWVbbl07Zm9yKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJuYW1lIix7dmFsdWU6Im1vZHVsZSBldmFsdWF0aW9uIn0pO288bjtvKyspdD1lW29dLHIuc2V0KHQsbCl9bz1uKzF9fShyLDAsaykpLGUucmVnaXN0ZXJDaHVuayhvLG4pfWxldCBCPW5ldyBNYXA7ZnVuY3Rpb24gVyhlKXtsZXQgdD1CLmdldChlKTtpZighdCl7bGV0IHIsbjt0PXtyZXNvbHZlZDohMSxsb2FkaW5nU3RhcnRlZDohMSxwcm9taXNlOm5ldyBQcm9taXNlKChlLHQpPT57cj1lLG49dH0pLHJlc29sdmU6KCk9Pnt0LnJlc29sdmVkPSEwLHIoKX0scmVqZWN0Om59LEIuc2V0KGUsdCl9cmV0dXJuIHR9ZT17YXN5bmMgcmVnaXN0ZXJDaHVuayhlLHQpe2lmKFcoUyhlKSkucmVzb2x2ZSgpLG51bGwhPXQpe2ZvcihsZXQgZSBvZiB0Lm90aGVyQ2h1bmtzKVcoUygic3RyaW5nIj09dHlwZW9mIGU/ZTplLnBhdGgpKTtpZihhd2FpdCBQcm9taXNlLmFsbCh0Lm90aGVyQ2h1bmtzLm1hcCh0PT5QKDAsZSx0KSkpLHQucnVudGltZU1vZHVsZUlkcy5sZW5ndGg+MClmb3IobGV0IHIgb2YgdC5ydW50aW1lTW9kdWxlSWRzKSFmdW5jdGlvbihlLHQpe2xldCByPU1bdF07aWYocil7aWYoci5lcnJvcil0aHJvdyByLmVycm9yO3JldHVybn1MKHQsVS5SdW50aW1lLGUpfShlLHIpfX0sbG9hZENodW5rQ2FjaGVkOihlLHQpPT4oZnVuY3Rpb24oZSx0KXtsZXQgcj1XKHQpO2lmKHIubG9hZGluZ1N0YXJ0ZWQpcmV0dXJuIHIucHJvbWlzZTtpZihlPT09VS5SdW50aW1lKXJldHVybiByLmxvYWRpbmdTdGFydGVkPSEwLHgodCkmJnIucmVzb2x2ZSgpLHIucHJvbWlzZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaW1wb3J0U2NyaXB0cylpZih4KHQpKTtlbHNlIGlmKEUudGVzdCh0KSlzZWxmLlRVUkJPUEFDS19ORVhUX0NIVU5LX1VSTFMucHVzaCh0KSxpbXBvcnRTY3JpcHRzKFRVUkJPUEFDS19XT1JLRVJfTE9DQVRJT04rdCk7ZWxzZSB0aHJvdyBFcnJvcihgY2FuJ3QgaW5mZXIgdHlwZSBvZiBjaHVuayBmcm9tIFVSTCAke3R9IGluIHdvcmtlcmApO2Vsc2V7bGV0IGU9ZGVjb2RlVVJJKHQpO2lmKHgodCkpaWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgbGlua1tyZWw9c3R5bGVzaGVldF1baHJlZj0iJHt0fSJdLGxpbmtbcmVsPXN0eWxlc2hlZXRdW2hyZWZePSIke3R9PyJdLGxpbmtbcmVsPXN0eWxlc2hlZXRdW2hyZWY9IiR7ZX0iXSxsaW5rW3JlbD1zdHlsZXNoZWV0XVtocmVmXj0iJHtlfT8iXWApLmxlbmd0aD4wKXIucmVzb2x2ZSgpO2Vsc2V7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpO2UucmVsPSJzdHlsZXNoZWV0IixlLmhyZWY9dCxlLm9uZXJyb3I9KCk9PntyLnJlamVjdCgpfSxlLm9ubG9hZD0oKT0+e3IucmVzb2x2ZSgpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGUpfWVsc2UgaWYoRS50ZXN0KHQpKXtsZXQgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGBzY3JpcHRbc3JjPSIke3R9Il0sc2NyaXB0W3NyY149IiR7dH0/Il0sc2NyaXB0W3NyYz0iJHtlfSJdLHNjcmlwdFtzcmNePSIke2V9PyJdYCk7aWYobi5sZW5ndGg+MClmb3IobGV0IGUgb2YgQXJyYXkuZnJvbShuKSllLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwoKT0+e3IucmVqZWN0KCl9KTtlbHNle2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Uuc3JjPXQsZS5vbmVycm9yPSgpPT57ci5yZWplY3QoKX0sZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlKX19ZWxzZSB0aHJvdyBFcnJvcihgY2FuJ3QgaW5mZXIgdHlwZSBvZiBjaHVuayBmcm9tIFVSTCAke3R9YCl9cmV0dXJuIHIubG9hZGluZ1N0YXJ0ZWQ9ITAsci5wcm9taXNlfSkoZSx0KSxhc3luYyBsb2FkV2ViQXNzZW1ibHkoZSx0LHIsbixvKXtsZXQgbD1mZXRjaChTKHIpKSx7aW5zdGFuY2U6aX09YXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcobCxvKTtyZXR1cm4gaS5leHBvcnRzfSxhc3luYyBsb2FkV2ViQXNzZW1ibHlNb2R1bGUoZSx0LHIsbil7bGV0IG89ZmV0Y2goUyhyKSk7cmV0dXJuIGF3YWl0IFdlYkFzc2VtYmx5LmNvbXBpbGVTdHJlYW1pbmcobyl9fTtsZXQgST1nbG9iYWxUaGlzLlRVUkJPUEFDSztnbG9iYWxUaGlzLlRVUkJPUEFDSz17cHVzaDpxfSxJLmZvckVhY2gocSl9KSgpOwo7KGZ1bmN0aW9uKCl7aWYodHlwZW9mIGRvY3VtZW50PT09InVuZGVmaW5lZCIpcmV0dXJuO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3Muc3JjPSdodHRwczovL3ZlcmNlbC5saXZlL19uZXh0LWxpdmUvZmVlZGJhY2svZmVlZGJhY2suanMnO3Muc2V0QXR0cmlidXRlKCJkYXRhLWRlcGxveW1lbnQtaWQiLCJkcGxfSFE4alptbVk4aFdLNFA0YVhtb3NYeFV1MjVnbiIpOygoZG9jdW1lbnQuaGVhZHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5hcHBlbmRDaGlsZChzKSl9KSgpOw=="}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":20,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/media/neuro_silkafont_regular-s.p.fe93305b.otf","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.209Z","timestamp":1785142498209,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/media/neuro_silkafont_regular-s.p.fe93305b.otf HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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: gzip, deflate, br, zstd\r\nReferer: https://preview-strategynavigator.newton.tech/auth/login\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: 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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"neuro_silkafont_regular-s.p.fe93305b.otf\"\r\ncontent-encoding: br\r\ncontent-type: font/otf\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"be6188e7bef41443fa002463564dcd17\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/media/neuro_silkafont_regular-s.p.fe93305b.otf\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::sb2bk-1785142498214-244b59d79a13\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":72444,"size_decoded":25453,"mime_type":"font/otf","magic":"OpenType font data","md5":"be6188e7bef41443fa002463564dcd17","sha1":"93e74448f6e0cdd4357155ec7f1b56edaa587a11","sha256":"681160c458fb01b1c922567d241f250fb9f35a2c0bdbc32bd90855b540607456","sha512":"5db86b25e5a09301a94bdd87649c4fe66bb5ebbeaba1dcc3eab2d811410c45c1b8ec1bc59b039ea064bf90550b287fb106b02dec92e48c5b5c5d5ba68ea760e1","ssdeep":"1536:Hr8p3xFH53EOcFmz7CgbzGYdIt1fGNXJHE1zzEnc4j:HiFH530FmnFTdwzzkcm","tlshash":"3e63b751b3fd5214faf73b706eba92a85e3abca9a93dd24c1114405e0ab2e50cd70737","first_seen":"2026-06-01T08:44:01.565938Z","last_seen":"2026-07-27T08:57:45.706467Z","times_seen":4,"resource_available":false,"data":"T1RUTwALAIAAAwAwQ0ZGICQv/YAAAO50AAAWkEdQT1OowrbaAAEFBAAAE4hHU1VC4Cf6vwABGIwAAAFCT1MvMmAxkhoAAAEgAAAAYGNtYXAhsiJ9AADt2AAAAHpoZWFkFji8YwAAALwAAAA2aGhlYQjKBFIAAAD0AAAAJGhtdHi2kw9kAAEZ0AAAASxtYXhwAEtQAAAAARgAAAAGbmFtZZZqCo0AAAGAAADsVXBvc3T/3QBMAADuVAAAACAAAQAAAAEAQSHiC/1fDzz1AAMD6AAAAADVYD/dAAAAAN40OU//mf8tA/QC6QAAAAMAAgAAAAAAAAABAAAC/P8UAMgFlv+Z/1wFagABAAAAAAAAAAAAAAAAAAAASwAAUAAASwAAAAQCfQK8AAUABAKKAlgAAABLAooCWAAAAV4ATAEoAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAENPTU0BAAAgIB0C/P8UAMgEvgFAIAAAkwAAAAAB7gLGAAAAIAAMAAAAIAGGAAEAAAAAAAAAIgAAAAEAAAAAAAEAFAAiAAEAAAAAAAIABwA2AAEAAAAAAAMAHQA9AAEAAAAAAAQAEgBaAAEAAAAAAAUAOwBsAAEAAAAAAAYAEgBaAAEAAAAAAAcARgCnAAEAAAAAAAgAFQDtAAEAAAAAAAkADQECAAEAAAAAAAsAGQEPAAEAAAAAAAwAGwEoAAEAAAAAAA1MzgFDAAEAAAAAAA4AIU4RAAEAAAAAABAAD04yAAEAAAAAABEABE5BAAMAAQQJAAAARE5FAAMAAQQJAAEAKE6JAAMAAQQJAAIADk6xAAMAAQQJAAMAOk6/AAMAAQQJAAQAJE75AAMAAQQJAAUAdk8dAAMAAQQJAAYAJE75AAMAAQQJAAcAjE+TAAMAAQQJAAgAKlAfAAMAAQQJAAkAGlBJAAMAAQQJAAsAMlBjAAMAAQQJAAwANlCVAAMAAQQJAA2ZnFDLAAMAAQQJAA4AQupnAAMAAQQJABAAHuqpAAMAAQQJABEACOrHQ29weXJpZ2h0IChDKTIwMTYgQ29tbWVyY2lhbCBUeXBlLlN0eXJlbmUgQiBCb2xkIFRyaWFsUmVndWxhcjEuMDAxO0NPTU07U3R5cmVuZUJUcmlhbC1Cb2xkU3R5cmVuZUJUcmlhbC1Cb2xkVmVyc2lvbiAxLjAwMTtQUyAwMDEuMDAxO2hvdGNvbnYgMS4wLjcyO21ha2VvdGYubGliMi41LjU5MDBTdHlyZW5lIEIgaXMgYSByZWdpc3RlcmVkIHRyYWRlbWFyayBvZiBDb21tZXJjaWFsIFR5cGUvU2Nod2FydHpjbyBJbmMuQ29tbWVyY2lhbCBUeXBlLCBJbmMuQmVydG9uIEhhc2ViZWh0dHA6Ly9jb21tZXJjaWFsdHlwZS5jb21odHRwOi8vd3d3LmJlcnRvbmhhc2ViZS5jb21Db21tZXJjaWFsIFR5cGUgRm9udCBTb2Z0d2FyZSBFbmQgVXNlciBMaWNlbnNlIEFncmVlbWVudCAgUExFQVNFIFJFQUQgVEhJUyBET0NVTUVOVCBDQVJFRlVMTFkgYW5kIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBrZWVwIGEgY29weSBmb3IgZnVydGhlciByZWZlcmVuY2UuICAgVGhpcyBFbmQgVXNlciBMaWNlbnNlIEFncmVlbWVudCAodGhlICJBZ3JlZW1lbnQiICJFVUxBLCIgIkxpY2Vuc2UsIiAiQWdyZWVtZW50IiBvciAiTGljZW5zZSBBZ3JlZW1lbnQiKSBpcyBhIGxlZ2FsIGFncmVlbWVudCBiZXR3ZWVuIHlvdSBhbmQgU2Nod2FydHpjbywgSW5jLiwgZC9iL2EgQ29tbWVyY2lhbCBUeXBlLCBhL2QvYi9hIFN0LiBCcmlkZSBUeXBlIEZvdW5kcnkgKGNvbGxlY3RpdmVseSwgIkNvbW1lcmNpYWwgVHlwZSIpIGFuZCBiZWNvbWVzIGEgYmluZGluZyBjb250cmFjdCBiZXR3ZWVuIHlvdSBhbmQgU2Nod2FydHpjby4gVGhpcyBBZ3JlZW1lbnQgZ292ZXJucyB0aGUgdGVybXMgb2YgdXNlIHRoZSBGb250IFNvZnR3YXJlIGFuZCB0aGUgZGVzaWduIG9mIHRoZSBGb250cyBlbWJvZGllZCB0aGVyZWluIChjb2xsZWN0aXZlbHksICJGb250IFNvZnR3YXJlIiksIHRvZ2V0aGVyIHdpdGggYW55IG1lZGlhLCBwcmludGVkIG1hdGVyaWFscywgZWxlY3Ryb25pYyBkb2N1bWVudGF0aW9uLCB1cGRhdGVzLCBhZGQtb25zLCBhcnR3b3JrLCB3ZWIgc2VydmljZXMgYW5kIGFueSBvdGhlciBtYXRlcmlhbCB0aGF0IG1heSBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHByb2R1Y3Qgbm93IG9yIGluIHRoZSBmdXR1cmUuIFRoaXMgQWdyZWVtZW50IGJlY29tZXMgZWZmZWN0aXZlIChhKSB3aGVuIHlvdSAiQUNDRVBUIExJQ0VOU0UgQUdSRUVNRU5ULCIgb3IgKGIpIGlmIHlvdSBhcmUgYWNxdWlyZSBhbmQgYWNjZXB0IHRoZSBGb250IFNvZnR3YXJlIG9uIGEgQ29tcGFjdCBEaXNjIG9yIERpZ2l0YWwgVmlkZW8gRGlzayAoQ0QsIERWRCksIG9yIChjKSB3aGVuIHlvdSBvcGVuIHRoZSBjb21wcmVzc2VkIGVsZWN0cm9uaWMgZmlsZSBpbiB3aGljaCB0aGUgRm9udCBTb2Z0d2FyZSBpcyBjb250YWluZWQuIElmIHlvdSBkbyBub3Qgd2lzaCB0byBlbnRlciBpbnRvIHRoaXMgQWdyZWVtZW50LCBkbyBub3QgcHVyY2hhc2UsIGFjY2VzcywgZG93bmxvYWQgYW5kL29yIGluc3RhbGwgb3Igb3RoZXJ3aXNlIHVzZSB0aGUgRm9udCBTb2Z0d2FyZS4gIDEuIFVwb24gcGF5bWVudCBpbiBmdWxsLCBDb21tZXJjaWFsIFR5cGUgd2lsbCBncmFudCB5b3UgYSBub24tZXhjbHVzaXZlIHRlcm1pbmFibGUgTGljZW5zZSB0byB0aGUgRm9udCBTb2Z0d2FyZSB0aGF0IGFjY29tcGFuaWVzIHRoaXMgRVVMQS4gVXNlIG9mIHRoZSBGb250IFNvZnR3YXJlIGlzIGxpbWl0ZWQgdG8gUGVyc29uYWwgb3IgSW50ZXJuYWwgQnVzaW5lc3MgVXNlIG9ubHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsICJGb250IFNvZnR3YXJlIiBzaGFsbCBiZSBkZWZpbmVkIGFzIHRoZSBkZXNpZ24gb2YgdGhlIEZvbnRzIHRvZ2V0aGVyIHdpdGggdGhlIEZvbnQgU29mdHdhcmUgd2hpY2gsIHdoZW4gdXNlZCBnZW5lcmF0ZXMgdGhlIHR5cGVmYWNlLCB0eXBvZ3JhcGhpYyBkZXNpZ25zIGFuZCwgaWYgYXBwbGljYWJsZSwgb3JuYW1lbnRzIG9yIG90aGVyIGRlc2lnbnMuIFBlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSBzaGFsbCBtZWFuIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBmb3IgeW91ciBjdXN0b21hcnkgcGVyc29uYWwgb3IgaW50ZXJuYWwgYnVzaW5lc3MgcHVycG9zZXMgYW5kLCBleGNlcHQgYXMgbWF5IG90aGVyd2lzZSBwZXJtaXR0ZWQgaGVyZWluLCBzaGFsbCBub3QgbWVhbiBvciBpbmNsdWRlIHRoZSBjb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBvciB1c2Ugb2YgRm9udCBTb2Z0d2FyZSwgdGhlIGRlc2lnbiBvZiB0aGUgZm9udHMgb3IgYXJ0d29yayBlbWJvZGllZCB0aGVyZWluIG9yIGFueSBjb21wb25lbnQgdGhlcmVvZiBmb3IgYW55IGNvbW1lcmNpYWwgdXNlIG9yIGluIGFueSBDb21tZXJjaWFsIFByb2R1Y3QgZm9yIHNhbGUgd2hhdHNvZXZlci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIEFncmVlbWVudCwgcHJvaGliaXRlZCBjb21tZXJjaWFsIHVzZXMgaW5jbHVkZSwgYnkgd2F5IG9mIGV4YW1wbGUgbm90IGxpbWl0YXRpb24sIFQtc2hpcnRzLCB0aGlyZC1wYXJ0eSBzb2Z0d2FyZSwgZWxlY3Ryb25pYyBkZXZpY2VzLCBtdWdzLCBhbmltYXRpb24sIGV0Yy4gYW5kIGFzIG1heSBiZSBmdXJ0aGVyIG5vdGVkIGJlbG93LiBJZiB5b3UgYXJlIHVuc3VyZSB3aGV0aGVyIHlvdXIgdXNlIGlzIG5vdCBwZXJtaXR0ZWQsIGNvbnRhY3QgQ29tbWVyY2lhbCBUeXBlLiBZb3VyIGZhaWx1cmUgdG8gY29udGFjdCB0byBzZWVrIHBlcm1pc3Npb24gb3IgdGhlIGxhY2sgb2YgYSBzcGVjaWZpYyBwcm9oaWJpdGlvbiBpbiB0aGlzIEFncmVlbWVudCBzaGFsbCBub3QgYmUgaW50ZXJwcmV0ZWQgb3IgZGVlbWVkIGEgd2FpdmVyIG9yIHBlcm1pc3NpYmxlIHVzZSBvZiBhbnkga2luZC4gWW91IGhlcmVieSBhZ3JlZSB0aGF0IHRoZSBGb250IFNvZnR3YXJlIHNoYWxsIGZ1cnRoZXIgY29tcHJpc2UgYWxsIGJpdG1hcCByZXByZXNlbnRhdGlvbnMgb2YgdHlwZWZhY2UgYW5kIHR5cG9ncmFwaGljIGRlc2lnbnMgYW5kIG9ybmFtZW50cyBjcmVhdGVkIGJ5IG9yIGRlcml2ZWQgZnJvbSB0aGUgRm9udCBTb2Z0d2FyZS4gVGhlIEZvbnQgU29mdHdhcmUgc2hhbGwgYmUgZGVlbWVkIHRvIGluY2x1ZGUgYW55IHVwZ3JhZGVzLCB1cGRhdGVzLCByZWxhdGVkIGZpbGVzLCBwZXJtaXR0ZWQgbW9kaWZpY2F0aW9ucywgaWYgYW55LCBwZXJtaXR0ZWQgY29waWVzLCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uLiAgMi4gSWYgeW91IGFyZSBhIGRlc2lnbiBjb25zdWx0YW5jeSwgYWR2ZXJ0aXNpbmcgYWdlbmN5IG9yIHB1cmNoYXNpbmcgdGhpcyBsaWNlbnNlIGZvciB1c2UgYnkgb3Igb24gYmVoYWxmIG9mIHN1Y2ggYW4gZW50aXR5LCB0aGUgdWx0aW1hdGUgZW5kIHVzZXIgc2hvdWxkIGFsc28gcHVyY2hhc2UgYSBsaWNlbnNlIGFwcHJvcHJpYXRlIGZvciB0aGVpciBpbnRlbmRlZCB1c2Ugb2YgdGhlIEZvbnQgU29mdHdhcmUsIGlmIHRoZWlyIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpcyBsaWtlbHkgdG8gaW52b2x2ZSB1c2VzIG5vdCBwZXJtaXR0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuIFRoZSBsaWNlbnNlIGdyYW50ZWQgaGVyZWluIGZvciBwZXJzb25hbCB1c2UgZG9lcyBub3QgZXh0ZW5kIHRvIHVzZXMgYnkgdGVtcG9yYXJ5IGVtcGxveWVlcyBvciBpbmRlcGVuZGVudCBjb250cmFjdG9ycyB1c2luZyB0aGUgRm9udCBTb2Z0d2FyZSBhcyB0aGVpciB1c2UgbWF5IHJlbGF0ZSB0byBwcm92aWRpbmcgcHJvZmVzc2lvbmFsIHNlcnZpY2VzIG9yIGZvciBvdGhlciBwcm9mZXNzaW9uYWwgdXNlcy4gVW5kZXIgc3VjaCBjaXJjdW1zdGFuY2VzIGFuIGVtcGxveWVyIGFuZC9vciB0aGUgdWx0aW1hdGUgZW5kIHVzZXIgYXJlIGFsc28gcmVxdWlyZWQgdG8gcHVyY2hhc2UgYSBsaWNlbnNlIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZS4gIDMuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQsICJDb21tZXJjaWFsIFByb2R1Y3QiIHNoYWxsIGFsc28gbWVhbiwgYW1vbmcgb3RoZXIgdGhpbmdzLCBhIHVzZXIgZWRpdGFibGUgZWxlY3Ryb25pYyBkb2N1bWVudCBjcmVhdGVkIGJ5IFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB3aGljaCBpcyBvZmZlcmVkIGZvciBkaXN0cmlidXRpb24gdG8gdGhlIGdlbmVyYWwgcHVibGljIChvciB0byBzb21lIHN1YnNldCBvZiB0aGUgZ2VuZXJhbCBwdWJsaWMpLCBpbiBGbGFzaCB0eXBlIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIG9yIGV4aGliaXRlZCwgaW4gZ2FtaW5nIHByb2R1Y3RzIG9yIHNvZnR3YXJlIHdoZXJlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBGb250IFNvZnR3YXJlIG9yIHRoZSBkZXNpZ25zIGVtYm9kaWVkIHRoZXJlaW4gbWF5IGJlIGV4dHJhY3RlZDsgb3IgdXNlIG9uIGdvb2RzIGZvciBzYWxlIGFzIGEgY29tbWVyY2lhbCBwcm9kdWN0IGluIGV4Y2hhbmdlIGZvciBhIHNlcGFyYXRlIGZlZSBvciBvdGhlciBjb25zaWRlcmF0aW9uLiBIb3dldmVyLCBhIGRvY3VtZW50IGRpc3RyaWJ1dGVkIGluIGNvbm5lY3Rpb24gd2l0aCBhIGNvbW1lcmNpYWwgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIGNvbnNpZGVyYXRpb24gaXMgdW5yZWxhdGVkIHRvIHN1Y2ggYSBkb2N1bWVudCAoZm9yIGV4YW1wbGUsIHByaW50ZWQgYWR2ZXJ0aXNpbmcsIGEgYnVzaW5lc3MgbGV0dGVyIG9yIGEgcmVjZWlwdCBmb3IgcHVyY2hhc2Ugb2YgdGFuZ2libGUgZ29vZHMgc3VjaCBhcyBjbG90aGluZyksIG9yIGFzIG90aGVyIGRlc2lnbiBtYXRlcmlhbHMgZGlzdHJpYnV0ZWQgaW5jaWRlbnRhbCB0byB0aGUgcHVyY2hhc2Ugb2YgZ29vZHMgb3Igc2VydmljZXMsIHNoYWxsIG5vdCBiZSBjb25zaWRlcmVkIGEgQ29tbWVyY2lhbCBQcm9kdWN0LiAgNC4gYSkgRXhjZXB0IGFzIG1heSBiZSBwcm9oaWJpdGVkIGhlcmVpbiwgeW91IGFyZSBwZXJtaXR0ZWQgdG8gZWxlY3Ryb25pY2FsbHkgZGlzdHJpYnV0ZSBhICYjMjEwO1BlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSYjMjExOyBkb2N1bWVudCAodGhhdCBpcywgYSBkb2N1bWVudCBvdGhlciB0aGFuIGEgQ29tbWVyY2lhbCBQcm9kdWN0IGFzIGRlZmluZWQgYWJvdmUpIChpKSB0aGF0IGlzIGluIGEgc3RhdGljIGdyYXBoaWMgaW1hZ2UgKGZvciBleGFtcGxlLCBhICYjMjEwO2dpZiYjMjExOykgb3IgaW4gYW4gZW1iZWRkZWQgZWxlY3Ryb25pYyBkb2N1bWVudCwgYW5kIChpaSkgd2hpY2ggaXMgZGlzdHJpYnV0ZWQgaW4gYSBmb3JtYXQgdGhhdCBwZXJtaXRzIG9ubHkgdGhlIHZpZXdpbmcgYW5kIHByaW50aW5nIChhbmQgbm90IHRoZSBlZGl0aW5nLCBhbHRlcmluZywgZW5oYW5jaW5nLCBvciBtb2RpZnlpbmcpIG9mIHN1Y2ggc3RhdGljIGdyYXBoaWMgaW1hZ2Ugb3IgZW1iZWRkZWQgZG9jdW1lbnQuIFBlcnNvbmFsIG9yIEludGVybmFsIEJ1c2luZXNzIFVzZSBzaGFsbCBub3QgaW5jbHVkZSBhbnkgVXNlIG9mIHRoZSBGb250IFNvZnR3YXJlIGJ5IHBlcnNvbnMgdGhhdCBhcmUgbm90IG1lbWJlcnMgb2YgeW91ciBpbW1lZGlhdGUgaG91c2Vob2xkLCB5b3VyIGF1dGhvcml6ZWQgZW1wbG95ZWVzLCBvciB5b3VyIGF1dGhvcml6ZWQgYWdlbnRzLiBBbGwgc3VjaCBob3VzZWhvbGQgbWVtYmVycywgZW1wbG95ZWVzIGFuZCBhZ2VudHMgc2hhbGwgYmUgbm90aWZpZWQgYnkgeW91IGFzIHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQWdyZWVtZW50IGFuZCBzaGFsbCBhZ3JlZSB0byBiZSBib3VuZCBieSBpdCBwcmlvciB0byB1c2Ugb2YgdGhlIEZvbnQgU29mdHdhcmUuIGIpIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpbiBzSUZSIChTY2FsYWJsZSBJbm1hbiBGb250IFJlcGxhY2VtZW50KSBpcyBwZXJtaXR0ZWQuIEhvd2V2ZXIsIHRoZSB1c2Ugb2YgQ3VmJiMxNTE7biBvciBAZm9udC1mYWNlIG9yIG90aGVyIGZvcm1zIG9mIHdlYiBlbWJlZGRpbmcgb3Igd2ViIGZvbnQgcmVwbGFjZW1lbnQgdGVjaG5vbG9naWVzLCAoJiMyMTA7Rm9udCBSZXBsYWNlbWVudCBUZWNobm9sb2dpZXMmIzIxMTspIG90aGVyIHRoYW4gcGRmIGFzIG90aGVyd2lzZSBleHByZXNzbHkgcGVybWl0dGVkIGhlcmVpbiwgZWFjaCByZXF1aXJlIHRoZSBwdXJjaGFzZSBvZiBhIGxpY2Vuc2UgdXBncmFkZS4gIDUuIENvbW1lcmNpYWwgVHlwZSwgaXRzIHN1Y2Nlc3NvcnMgYW5kIGFzc2lnbnMsIGV4cHJlc3NseSByZXRhaW4gYWxsIHJpZ2h0IGFuZCB0aXRsZSBpbiBhbmQgdG8gdGhlIEZvbnQgU29mdHdhcmUgdG9nZXRoZXIgd2l0aCB0aGUgZGVzaWduIG9mIHRoZSBGb250IGVtYm9kaWVkIHRoZXJlaW4gdG9nZXRoZXIgd2l0aCBhbnkgdHJhZGVtYXJrcyB1c2VkIGluIGNvbm5lY3Rpb24gdGhlcmV3aXRoLiBFeGNlcHQgYXMgbWF5IGJlIG90aGVyd2lzZSBleHByZXNzbHkgcGVybWl0dGVkIGhlcmVpbiwgeW91IGFncmVlIG5vdCB0byBjb3B5IHRoZSBGb250IFNvZnR3YXJlIG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIGJhc2VkIHVwb24gdGhlIGRlc2lnbiBvZiB0aGUgRm9udCBvciB0aGUgRm9udCBTb2Z0d2FyZS4gWW91IGhlcmVieSBhZ3JlZSB0aGF0IHRoZSBkZXNpZ24gb2YgdGhlIEZvbnQgYW5kIHRoZSBGb250IFNvZnR3YXJlIGFyZSB0aGUgZXhjbHVzaXZlIHByb3BlcnR5IG9mIENvbW1lcmNpYWwgVHlwZSBhbmQgdGhhdCB0aGUgdW5hdXRob3JpemVkIHVzZSBvZiB0aGUgZGVzaWduIG9mIHRoZSBGb250IG9yIHRoZSBGb250IFNvZnR3YXJlIGlzIGFuIGluZnJpbmdlbWVudCBvZiBDb21tZXJjaWFsIFR5cGUncyBleGNsdXNpdmUgcmlnaHRzIGFuZCBjYXVzaW5nIHNpZ25pZmljYW50IG1vbmV0YXJ5IGhhcm0uIEFsbCByaWdodHMgbm90IGV4cHJlc3NseSBncmFudGVkIGhlcmVpbiBhcmUgcmVzZXJ2ZWQgdG8gQ29tbWVyY2lhbCBUeXBlLiBDb21tZXJjaWFsIFR5cGUncyByaWdodHMgYW5kIHJlbWVkaWVzIGluIHRoZSBldmVudCBvZiBhbiBpbmZyaW5nZW1lbnQgc2hhbGwgYmUgY3VtdWxhdGl2ZSBpbiBuYXR1cmUuICAgNi4gRXhjZXB0IGFzIGlzIHByb2hpYml0ZWQgaGVyZWluLCB5b3UgbWF5IGluc3RhbGwgYW5kIFVzZSB0aGUgRm9udCBTb2Z0d2FyZSBvbiBhIHNpbmdsZSBmaWxlIHNlcnZlciBmb3IgVXNlIG9uIGEgc2luZ2xlIGxvY2FsIGFyZWEgbmV0d29yayAoIkxBTiIpIG9ubHkgd2hlbiB0aGUgVXNlIG9mIHN1Y2ggRm9udCBTb2Z0d2FyZSBpcyBleHByZXNzbHkgZm9yIGFuZCBsaW1pdGVkIHRvIHRoZSBudW1iZXIgb2YgdG90YWwgdXNlcnMgZGlzY2xvc2VkIGFuZCBsaWNlbnNlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgaS5lLiwgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycyB3aG8gY291bGQgdXNlIHRoZSBGb250IFNvZnR3YXJlLCBub3QgdGhlIHRvdGFsIG51bWJlciBvZiB1c2VycyB3aG8gbWlnaHQgaGF2ZSBhY2Nlc3MgdG8gdGhlIEZvbnQgU29mdHdhcmUgYXQgYW55IG9uZSB0aW1lLiAgNy4gRXhjZXB0IGFzIG1heSBiZSBvdGhlcndpc2UgZXhwcmVzc2x5IHBlcm1pdHRlZCBoZXJlaW4sIHlvdSBtYXkgbm90IGFsdGVyIG9yIGNvcHkgdGhlIEZvbnQgU29mdHdhcmUgb3IgdGhlIGRlc2lnbnMgZW1ib2RpZWQgdGhlcmVpbiBpbiBhbnkgbWFubmVyIHdoYXRzb2V2ZXIuIFJlZm9ybWF0dGluZyB0aGUgRm9udCBTb2Z0d2FyZSBpbnRvIG90aGVyIGZvcm1hdHMgZm9yIHVzZSBpbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcyBpcyBleHByZXNzbHkgcHJvaGliaXRlZC4gVXBvbiBwYXltZW50IG9mIGFuIGFkZGl0aW9uYWwgZmVlIGFuZCBhIHNlcGFyYXRlIHdyaXR0ZW4gYWdyZWVtZW50IENvbW1lcmNpYWwgVHlwZSBtYXksIGlmIHNvIGFncmVlZCwgcHJvdmlkZSB0aGUgRm9udCBTb2Z0d2FyZSBpbiBhbHRlcm5hdGUgYW5kL29yIGFkZGl0aW9uYWwgZm9udCBmb3JtYXRzLCBjb250YWN0IENvbW1lcmNpYWwgVHlwZSBmb3IgYSBxdW90YXRpb24uIEFsdGVyaW5nIG9yIGFtZW5kaW5nIHRoZSBlbWJlZGRpbmcgYml0cyBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIEZvbnQgU29mdHdhcmUgaXMgZXhwcmVzc2x5IHByb2hpYml0ZWQuIFRoZSBGb250IFNvZnR3YXJlIG1heSBub3QgYmUgdXNlZCB0byBjcmVhdGUgb3IgZGlzdHJpYnV0ZSBhbnkgZWxlY3Ryb25pYyBkb2N1bWVudCBpbiB3aGljaCB0aGUgRm9udCBTb2Z0d2FyZSBvciBhbnkgcGFydCB0aGVyZW9mLCBpcyBlbWJlZGRlZCBpbiBhIG1hbm5lciBvciBmb3JtYXQgdGhhdCBwZXJtaXRzIGVkaXRpbmcsIGFsdGVyYXRpb25zLCBlbmhhbmNlbWVudHMsIG9yIG1vZGlmaWNhdGlvbnMgYnkgdGhlIHJlY2lwaWVudCBvZiBzdWNoIGRvY3VtZW50LiBZb3UgbWF5IG5vdCBrbm93aW5nbHkgdHJhbnNtaXQgYW55IGVsZWN0cm9uaWMgZG9jdW1lbnQgb3IgdGhlIEZvbnQgU29mdHdhcmUgdG8gYW55IHBhcnR5IHRoYXQgaW50ZW5kcyBvciBpcyBsaWtlbHkgdG8gImhhY2ssIiBlZGl0LCBhbHRlciwgZW5oYW5jZSwgb3Igb3RoZXJ3aXNlIG1vZGlmeSB0aGUgRm9udCBTb2Z0d2FyZSBvciByZW1vdmUgdGhlIEZvbnQgU29mdHdhcmUgZnJvbSBhbnkgZG9jdW1lbnQuICA4LiBZb3UgbWF5IG1ha2Ugb25lICgxKSBiYWNrLXVwIGNvcHkgb2YgRm9udCBTb2Z0d2FyZSBmb3IgYXJjaGl2YWwgcHVycG9zZXMgb25seSwgYW5kIHlvdSBhZ3JlZSB0byByZXRhaW4gZXhjbHVzaXZlIGN1c3RvZHkgYW5kIGNvbnRyb2wgb3ZlciBhbnkgc3VjaCBjb3B5LiBVcG9uIHRlcm1pbmF0aW9uIG9mIHRoZSBBZ3JlZW1lbnQsIHlvdSBtdXN0IGRlc3Ryb3kgdGhlIG9yaWdpbmFsIGFuZCBhbnkgYW5kIGFsbCBjb3BpZXMgb2YgdGhlIEZvbnQgU29mdHdhcmUuIFRoZSB1bmF1dGhvcml6ZWQgc2hhcmluZywgbGVuZGluZywgcmVudGluZywgc2FsZSwgb3Igb3RoZXIgdW5hdXRob3JpemVkIHVzZSBvciBtaXN1c2Ugb2YgdGhlIGJhY2stdXAgY29weSBpcyBhIG1hdGVyaWFsIGJyZWFjaCBvZiB0aGlzIEFncmVlbWVudCBhbmQgd2lsbCByZXN1bHQgaW4gdGhlIGltbWVkaWF0ZSB0ZXJtaW5hdGlvbiBvZiB0aGlzIExpY2Vuc2UuICA5LiBJZiBubyBvdGhlciBvcHRpb24gZXhpc3RzLCB5b3UgbWF5IHRha2UgYSBkaWdpdGl6ZWQgY29weSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB1c2VkIGZvciBhIHBhcnRpY3VsYXIgZG9jdW1lbnQsIG9yIEZvbnQgU29mdHdhcmUgZW1iZWRkZWQgaW4gYW4gZWxlY3Ryb25pYyBkb2N1bWVudCB0aGF0IGlzIHNlbnQgdG8gYSBjb21tZXJjaWFsIHByaW50ZXIgb3Igc2VydmljZSBidXJlYXUgZm9yIHVzZSBieSB0aGUgcHJpbnRlciBvciBzZXJ2aWNlIGJ1cmVhdSBmb3IgcHJlcGFyaW5nIHRoZSBkb2N1bWVudCBwcm92aWRlZCB0aGF0IHRoZSBwcmludGVyIG9yIHNlcnZpY2UgYnVyZWF1IHJlcHJlc2VudHMgdGhhdCBpdCBzaGFsbCBkZXN0cm95IGFueSBhbmQgYWxsIGNvcGllcyBvZiB0aGUgRm9udCBTb2Z0d2FyZSB1cG9uIGNvbXBsZXRpb24gb2YgaXRzIHdvcmsuIE5vdHdpdGhzdGFuZGluZywgeW91IGFncmVlIHRoYXQgdGhlIHRyYW5zbWlzc2lvbiBvZiBhICJwcmludC9wcmV2aWV3IiBQREYgZG9jdW1lbnQgaXMgdGhlIGZpcnN0IGFuZCBwcmVmZXJyZWQgbWV0aG9kIG9mIHRyYW5zbWl0dGluZyBzdWNoIGRvY3VtZW50cyB0byBhIHNlcnZpY2UgYnVyZWF1IG9yIHByaW50ZXIuICAxMC4gVGhlIGRlc2lnbnMgZW1ib2RpZWQgYW5kIHRoZSBGb250IFNvZnR3YXJlIGFuZCB0aGUgRm9udCBTb2Z0d2FyZSBhbmQgYW55IHRyYWRlbWFya3MgYXNzb2NpYXRlZCB0aGVyZXdpdGggYXJlIHRoZSBleGNsdXNpdmUgcHJvcGVydHkgb2YgQ29tbWVyY2lhbCBUeXBlIGFuZCB0aGVpciBkZXNpZ25lcnMsIHdoZXJlIGFwcGxpY2FibGUgYW5kIGFyZSBwcm90ZWN0ZWQgYnkgdGhlIGNvcHlyaWdodCBhbmQgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMsIGJ5IHRoZSBjb3B5cmlnaHQgYW5kIGRlc2lnbiBsYXdzIG9mIG90aGVyIG5hdGlvbnMsIGFuZCBieSBvdGhlciBpbnRlcm5hdGlvbmFsIHRyZWF0aWVzLiBBbnkgY29waWVzIHRoYXQgeW91IGFyZSBleHByZXNzbHkgcGVybWl0dGVkIHRvIG1ha2UgcHVyc3VhbnQgdG8gdGhlIEFncmVlbWVudCBtdXN0IGNvbnRhaW4gdGhlIHNhbWUgY29weXJpZ2h0LCB0cmFkZW1hcmssIGFuZCBvdGhlciBwcm9wcmlldGFyeSBub3RpY2VzIHRoYXQgYXBwZWFyIG9uIG9yIGluIHRoZSBGb250IFNvZnR3YXJlLiAgMTEuIFlvdSBhZ3JlZSBub3QgdG8gY3JlYXRlLCBhc3Npc3QgaW4gYW5kL29yIGNhdXNlIHRoZSBjcmVhdGlvbiBvZiBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGUgRm9udHMgb3IgRm9udCBTb2Z0d2FyZSwgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8sIGNyZWF0aW5nIGFkZGl0aW9uYWwgd2VpZ2h0czsgY3JlYXRpbmcgYWRkaXRpb25hbCBvciBkZWxldGluZyBleGlzdGluZyBjaGFyYWN0ZXJzOyBtb2RpZnlpbmcgZXhpc3RpbmcgY2hhcmFjdGVyczsgbW9kaWZ5aW5nIGZvbnQgc3BhY2luZyBhbmQga2VybmluZzsgb3IgY29udmVydGluZyBmb250cyB0byBhbiBhbHRlcm5hdGUgZGlnaXRhbCBmb3JtYXQsIG1vZGlmeSwgYWRhcHQsIHRyYW5zbGF0ZSwgcmV2ZXJzZSBlbmdpbmVlciwgZGVjb21waWxlLCBkaXNhc3NlbWJsZSwgYWx0ZXIsIG9yIG90aGVyd2lzZSBhdHRlbXB0IHRvIGRpc2NvdmVyIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSB3aXRob3V0IGZpcnN0IG9idGFpbmluZyB3cml0dGVuIHBlcm1pc3Npb24gZnJvbSBDb21tZXJjaWFsIFR5cGUuIEluIHRoZSBldmVudCB0aGF0IHBlcm1pc3Npb24gaXMgZ2l2ZW4gdG8geW91LCBhbnkgYW5kIGFsbCBtb2RpZmljYXRpb25zIGFuZCBhZGRpdGlvbnMgc2hhbGwgYmVjb21lIGFuZCBzaGFsbCByZW1haW4gdGhlIHNvbGUgYW5kIGV4Y2x1c2l2ZSBwcm9wZXJ0eSBvZiBDb21tZXJjaWFsIFR5cGUgYW5kIHlvdSBtYXkgbm90IHNlbGwsIGxlbmQgb3Igb3RoZXJ3aXNlIHRyYW5zbWl0IGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucyB0byB0aGUgRm9udCBTb2Z0d2FyZSB0byBhbnkgdGhpcmQgcGFydHkuIE90aGVyIGp1cmlzZGljdGlvbnMgbWF5IHByb3ZpZGUgZm9yIGFkZGl0aW9uYWwgcmlnaHRzLCBhbmQgaWYgYXBwbGljYWJsZSwgeW91IG1heSByZXZlcnNlIGVuZ2luZWVyIG9yIGRlY29tcGlsZSB0aGUgRm9udCBTb2Z0d2FyZSBvbmx5IHRvIHRoZSBleHRlbnQgdGhhdCBzdWZmaWNpZW50IGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgZm9yIHRoZSBwdXJwb3NlIG9mIGNyZWF0aW5nIGFuIGludGVyb3BlcmFibGUgc29mdHdhcmUgcHJvZ3JhbSAoYnV0IG9ubHkgZm9yIHN1Y2ggcHVycG9zZSBhbmQgb25seSB0byB0aGUgZXh0ZW50IHRoYXQgc3VmZmljaWVudCBpbmZvcm1hdGlvbiBpcyBub3QgcHJvdmlkZWQgYnkgQ29tbWVyY2lhbCBUeXBlIHVwb24gd3JpdHRlbiByZXF1ZXN0KS4gQWxsIHRyYWRlbWFya3Mgc2hhbGwgYmUgdXNlZCBpbiBhY2NvcmRhbmNlIHdpdGggYWNjZXB0ZWQgdHJhZGVtYXJrIHByYWN0aWNlLCBpbmNsdWRpbmcgaWRlbnRpZmljYXRpb24gb2YgdGhlIHRyYWRlbWFyayBvd25lcidzIG5hbWUuIFVzZSBvZiB0aGUgdHJhZGVtYXJrcyBhc3NvY2lhdGVkIHdpdGggdGhlIEZvbnQgU29mdHdhcmUgaW51cmVzIHNvbGVseSB0byB0aGUgYmVuZWZpdCBvZiBDb21tZXJjaWFsIFR5cGUuICAgMTIuIFVzZSBvZiBDb21tZXJjaWFsIFR5cGUgRm9udCBTb2Z0d2FyZSBpbiB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXMgYW5kL29yIGFwcGxpY2F0aW9ucyBpcyBOT1QgcGVybWl0dGVkIHdpdGhvdXQgZmlyc3Qgb2J0YWluaW5nIHRoZSBhcHByb3ByaWF0ZSBsaWNlbnNpbmcgdXBncmFkZS4gICBhKSAmIzk7QUxQSEFCRVQgT1IgTEVUVEVSRk9STS1SRUxBVEVEIFBST0RVQ1RTICYjOTsmIzk7Rk9SIFJFU0FMRSBPUiBMRVRURVJGT1JNIENSRUFUSU9OIFBST0RVQ1RTIE9SIERFVklDRVM7IGIpICYjOTtFTUJFRERJTkcgSU4gRUxFQ1RST05JQyBERVZJQ0VTOyBBTEwgR0FNSU5HIFVTRVMgQU5EL09SIERFVklDRVM7IGMpICYjOTtFTUJFRERJTkcgSU4gU09GVFdBUkU7IGQpICYjOTtTVE9SSU5HIEFORC9PUiBTRVJWSU5HIFRIRSBGT05UIFNPRlRXQVJFIEZPUiBUSEUgUFVSUE9TRVMgT0YgTUFLSU5HIFRIRSBGT05UIFNPRlRXQVJFICYjOTsmIzk7QVZBSUxBQkxFIFZJQSBUSEUgSU5URVJORVQgVVNJTkcgRk9OVCBSRVBMQUNFTUVOVCBURUNITk9MT0dJRVMuICAgaSkgTGV0dGVyZm9ybSBvciBBbHBoYWJldCBQcm9kdWN0cyBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBzaWduYWdlIGFuZC9vciBzY3JhcGJvb2tpbmcgdXNlcyBpbnZvbHZpbmcgcmVwcm9kdWN0aW9ucyBvZiBpbmRpdmlkdWFsIGxldHRlcmZvcm1zLCB1c2UgaW4gdGhlIGNyZWF0aW9uIG9mIHNpZ25hZ2Ugb3IgbnVtYmVyaW5nIHByb2R1Y3RzLCBydWJiZXIgc3RhbXBzLCBkaWUtY3V0IHByb2R1Y3RzLCBzdGVuY2lsIHByb2R1Y3RzLCB0YXR0b28sIGZsYXNoLCBvciBhZGhlc2l2ZSBzdGlja2VyIGFscGhhYmV0IHByb2R1Y3RzIG9yIGFueSBvdGhlciBwcm9kdWN0IGNvbnRhaW5pbmcgYW55IGltYWdlIG9mIG9yIGRlcml2ZWQgZnJvbSB0aGUgZGVzaWduIG9mIHRoZSBGb250IGVtYm9kaWVkIGluIHRoZSBGb250IFNvZnR3YXJlIG9mIHdoaWNoIGFueSBsaWtlbmVzcyBvZiB0aGUgYWxwaGFiZXQgY2FuIGJlIHJlcHJvZHVjZWQuICBpaSkgRW1iZWRkaW5nIG9mIHRoZSBGb250cyBpbiBhIHByaW50L3ByZXZpZXcgZm9ybWF0IGlzIHBlcm1pdHRlZC4gTm90d2l0aHN0YW5kaW5nLCBlbWJlZGRpbmcgb3Igb3RoZXIgdXNlIG9mIHRoZSBGb250cyBvciB0aGUgb3V0bGluZXMgdGhlcmVvZiBpbiBhbnkgbWV0aG9kIHdoaWNoIHBlcm1pdHMgdGhlIGV4dHJhY3Rpb24gb2YgdGhlIEZvbnQgU29mdHdhcmUgb2YgdGhlIGRlc2lnbnMgZW1ib2RpZWQgdGhlcmVpbiBpcyBleHByZXNzbHkgcHJvaGliaXRlZC4gQW55IHN1Y2ggdXNlIHJlcXVpcmVzIHRoZSBleHByZXNzIHdyaXR0ZW4gcGVybWlzc2lvbiBvZiBDb21tZXJjaWFsIFR5cGUgYW5kIG1heSBvciBtYXkgbm90IHJlcXVpcmUgdGhlIHB1cmNoYXNlIG9mIGEgbGljZW5zZSB1cGdyYWRlIGF0IHRoZSBzb2xlIGRpc2NyZXRpb24gb2YgQ29tbWVyY2lhbCBUeXBlLiAgaWlpKSBJbiB0aGUgZXZlbnQgYW55IGRpbmdiYXRzIG9yIG90aGVyIGFydCBmb3JtcyBhcmUgcGFydCBvZiB0aGUgRm9udCBTb2Z0d2FyZSwgdXNlIG9mIHRoZSBhcnR3b3JrIGlzIGZ1cnRoZXIgcmVzdHJpY3RlZC4gWW91IG1heSB1c2UgdGhlIGFydHdvcmssIGRyYXdpbmdzIGFuZC9vciBkaW5nYmF0cyBvbiBnb29kcyBmb3Igc2FsZSwgaW4gbG9nbyBkZXNpZ24sIHJldGFpbCBwYWNrYWdpbmcgb3IgaW4gcG9pbnQgb2Ygc2FsZSB1c2VzIG9ubHkgYWZ0ZXIgdGhlIHB1cmNoYXNlIG9mIGEgbGljZW5zZSB1cGdyYWRlLiAgSW4gb3JkZXIgdG8gb2J0YWluIGEgbGljZW5zZSB1cGdyYWRlLCB5b3UgbXVzdCBjb250YWN0IENvbW1lcmNpYWwgVHlwZSBhdCBpbmZvQGNvbW1lcmNpYWx0eXBlLmNvbSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gSWYgeW91IGFyZSB1bnN1cmUgd2hldGhlciB5b3VyIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpcyBzcGVjaWZpY2FsbHkgcGVybWl0dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBjb250YWN0IENvbW1lcmNpYWwgVHlwZS4gIDEzLiBFbWJlZGRlZCBFbGVjdHJvbmljIERldmljZXMgaW5jbHVkZXMgdGhlIHVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBmb3IgYW55IG9uLXNjcmVlbiBkaXNwbGF5IG9yIG9uIGFuIGVsZWN0cm9uaWMgZGV2aWNlIG91dHNpZGUgYSBzaW5nbGUgbG9jYXRpb24uIEZvciBleGFtcGxlLCBhbmQgbm90IGJ5IHdheSBvZiBsaW1pdGF0aW9uLCBzdWNoIGVsZWN0cm9uaWMgZGV2aWNlcyBpbmNsdWRlIGEga2lvc2ssIGdhbWluZyBkZXZpY2VzLCBlbWJyb2lkZXJ5IG9yIHNld2luZyBtYWNoaW5lcyBnYW1lIHBsYXlpbmcgb3IgZ2FtYmxpbmcgZGV2aWNlcywgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIgdGhlIHNob3dpbmcgb3IgY3JlYXRpb24gb2YgY29waWVzIG9mIHRoZSBkZXNpZ24gZW1ib2RpZWQgaW4gdGhlIEZvbnQgU29mdHdhcmUgaXMgY3JlYXRlZCBieSB1c2Ugb2YgdGhlIHNvZnR3YXJlIG9yIGFzIGFuIGltYWdlIG9mIHRoZSBkZXNpZ24gaW4gdGlmZiwgZ2lmIG9yIG90aGVyIGZvcm1hdC4gICAxNC4gQ29tbWVyY2lhbCBUeXBlIEZvbnQgU29mdHdhcmUgaXMgbGljZW5zZWQgZm9yIHVzZSBieSBhIHNwZWNpZmllZCBudW1iZXIgb2YgdXNlcnMuIFVzZSBvZiB0aGUgRm9udCBTb2Z0d2FyZSBpbiBtb3JlIHRoYW4gb25lIGdlb2dyYXBoaWMgbG9jYXRpb24gb3IgYnkgbWVhbnMgb2Ygc2VydmVyIG9yIGNlbnRyYWwgQ1BVIG91dHNpZGUgb2YgdGhlIHRlcm1zIG9mIHlvdXIgbGljZW5zZSBpcyBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhlIGVhY2ggdXNlciBvciBwb3RlbnRpYWwgdXNlciBpcyBsaWNlbnNlZC4gTGljZW5zZSB1cGdyYWRlcyBtYXkgYmUgcHVyY2hhc2VkIGZyb20gQ29tbWVyY2lhbCBUeXBlIGF0IGluZm9AY29tbWVyY2lhbHR5cGUuY29tLiAgMTUuIEV4Y2VwdCBhcyBtYXkgYmUgb3RoZXJ3aXNlIGV4cHJlc3NseSBwcm92aWRlZCBmb3IgaGVyZWluLCB5b3UgZXhwcmVzc2x5IGFncmVlIG5vdCB0byByZW50LCBsZWFzZSwgc3VibGljZW5zZSwgZ2l2ZSwgbGVuZCwgb3IgZnVydGhlciBkaXN0cmlidXRlIHRoZSBGb250IFNvZnR3YXJlLiBZb3UgbWF5IHRyYW5zZmVyIGFsbCB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBhbm90aGVyIHBlcnNvbiBvciBlbnRpdHkgcHJvdmlkZWQgdGhhdCAoaSkgdGhlIHRyYW5zZmVyZWUgYWNjZXB0cyBhbmQgYWdyZWVzIHRvIGJlIGJvdW5kIGJ5IGFsbCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCAoaWkpIHlvdSBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhlIEZvbnQgU29mdHdhcmUsIGluY2x1ZGluZyBhbGwgY29waWVzIHN0b3JlZCBpbiB0aGUgbWVtb3J5IG9mIGEgaGFyZHdhcmUgZGV2aWNlLiAgMTYuIENvbW1lcmNpYWwgVHlwZSB3YXJyYW50cyB0aGF0IHRoZSBGb250IFNvZnR3YXJlIHdpbGwgcGVyZm9ybSBzdWJzdGFudGlhbGx5IGluIGFjY29yZGFuY2Ugd2l0aCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgbmluZXR5ICg5MCkgZGF5cyBmb2xsb3dpbmcgZGVsaXZlcnkgb2YgdGhlIEZvbnQgU29mdHdhcmUuIFRvIG1ha2UgYSB3YXJyYW50eSBjbGFpbSwgeW91IG11c3QgZWl0aGVyIHJldHVybiB0aGUgRm9udCBTb2Z0d2FyZSB0byB0aGUgbG9jYXRpb24gZnJvbSB3aGljaCB5b3Ugb2J0YWluZWQgaXQgdG9nZXRoZXIgd2l0aCBhIGNvcHkgb2YgeW91ciBzYWxlcyByZWNlaXB0IG9yLCBpZiBhY3F1aXJlZCBvbi1saW5lLCBjb250YWN0IHRoZSBvbi1saW5lIHByb3ZpZGVyIHdpdGggc3VmZmljaWVudCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgeW91ciBhY3F1aXNpdGlvbiBvZiB0aGUgRm9udCBTb2Z0d2FyZSB0byBwZXJtaXQgdGhlIGNvbmZpcm1hdGlvbiBvZiB0aGUgZWZmZWN0aXZlIGRhdGUgb2YgdGhpcyBMaWNlbnNlLiBTY2h3YXJ0emNvLCBJbmMuIGFuZCBDb21tZXJjaWFsIFR5cGUgaGVyZWJ5IEVYUFJFU1NMWSBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMsIEVYUFJFU1MgQU5EIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIENPTU1FUkNJQUwgVFlQRSBET0VTIE5PVCBXQVJSQU5UIFRIQVQgVEhFIE9QRVJBVElPTiBPRiBUSEUgRk9OVCBTT0ZUV0FSRSBXSUxMIEJFIFVOSU5URVJSVVBURUQgT1IgRVJST1ItRlJFRSwgT1IgVEhBVCBUSEUgRk9OVCBTT0ZUV0FSRSBJUyBXSVRIT1VUIERFRkVDVFMuIFVOREVSIE5PIENJUkNVTVNUQU5DRVMgU0hBTEwgQ09NTUVSQ0lBTCBUWVBFIEJFIExJQUJMRSBUTyBZT1UgT1IgQU5ZIE9USEVSIFBBUlRZLCBXSEVUSEVSIElOIENPTlRSQUNUIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFKSBPUiBPVEhFUldJU0UsIEZPUiBBTlkgU1BFQ0lBTCwgQ09OU0VRVUVOVElBTCwgT1IgSU5DSURFTlRBTCBEQU1BR0VTLCBJTkNMVURJTkcgTE9TVCBQUk9GSVRTLCBTQVZJTkdTIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTiBBUyBBIFJFU1VMVCBPRiBUSEUgVVNFIE9GIFRIRSBGT05UIFNPRlRXQVJFIEVWRU4gSUYgTk9USUZJRUQgSU4gQURWQU5DRSBPRiBTVUNIIFBPU1NJQklMSVRZLiBZb3UgaGVyZWJ5IGFncmVlIHRoYXQgeW91ciBlbnRpcmUsIGV4Y2x1c2l2ZSwgYW5kIGN1bXVsYXRpdmUgbGlhYmlsaXR5IGFuZCByZW1lZHkgc2hhbGwgYmUgbGltaXRlZCB0byB0aGUgcHVyY2hhc2UgcHJpY2Ugb2YgdGhpcyBGb250IFNvZnR3YXJlIExpY2Vuc2UuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgc2hhbGwgU2Nod2FydHpjbywgSW5jLidzIG9yIENvbW1lcmNpYWwgVHlwZSdzIGxpYWJpbGl0eSB0byB5b3UgZXhjZWVkIGVpdGhlciB0aGUgcmVmdW5kaW5nIG9mIHRoZSBjb3N0IG9mIHRoZSBGb250IFNvZnR3YXJlIExpY2Vuc2Ugb3IgcmVwbGFjZW1lbnQgb2YgdGhlIEZvbnQgU29mdHdhcmUgZWl0aGVyIG9mIHdoaWNoIHNoYWxsIGJlIGF0IENvbW1lcmNpYWwgVHlwZSdzIHNvbGUgZGlzY3JldGlvbi4gIDE3LiBPVEhFUiBMQVcgLSBDT05TVU1FUlMgT05MWS4gU29tZSBqdXJpc2RpY3Rpb25zIGRvIG5vdCBhbGxvdyB0aGUgZXhjbHVzaW9uIG9yIGxpbWl0YXRpb24gb2YgaW5jaWRlbnRhbCwgY29uc2VxdWVudGlhbCBvciBzcGVjaWFsIGRhbWFnZXMsIGltcGxpZWQgd2FycmFudGllcyBvciBpbXBsaWVkIHdhcnJhbnRpZXMgYXMgdGhleSByZWxhdGUgdG8gc2FsZXMgdG8gY29uc3VtZXJzLiBBTlkgSU1QTElFRCBXQVJSQU5UWSBPUiBPVEhFUiBSSUdIVCBDUkVBVEVEIEJZIExBVyBJUyBPTkxZIEVGRkVDVElWRSBGT1IgVEhFIE5JTkVUWSAoOTApIERBWSBXQVJSQU5UWSBQRVJJT0QuIFRIRVJFIEFSRSBOTyBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQgQUZURVIgVEhFIE5JTkVUWSAoOTApIERBWSBXQVJSQU5UWSBQRVJJT0QuIFRvIHRoZSBleHRlbnQgcGVybWlzc2libGUgYnkgbGF3LCB5b3UgYWdyZWUgdGhhdCBhbGwgaW1wbGllZCB3YXJyYW50aWVzIGFyZSBub3QgdG8gYmUgZWZmZWN0aXZlIGZvciBtb3JlIHRoYW4gdGhpcnR5ICgzMCkgZGF5cy4gICAxOC4gWW91IGV4cHJlc3NseSBhZ3JlZSB0aGF0IHRoaXMgQWdyZWVtZW50IHNoYWxsIGJlIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yaywgVS5TLkEuLCBhcyB0aGV5IGFwcGx5IHRvIGNvbnRyYWN0cyBlbnRlcmVkIGludG8gYW5kIHdob2xseSBwZXJmb3JtZWQgdGhlcmVpbiBhbmQgd2l0aG91dCByZXNwZWN0IHRvIGl0cyBjb25mbGljdCBvZiBsYXdzIHByb3Zpc2lvbnMgb3IgdGhlIGNvbmZsaWN0IG9mIGxhd3MgcHJvdmlzaW9ucyBvZiBhbnkgb3RoZXIganVyaXNkaWN0aW9uLiBZb3UgZXhwcmVzc2x5IHN1Ym1pdCB0byB0aGUgcGVyc29uYWwganVyaXNkaWN0aW9uIG9mIHRoZSBzdGF0ZSBhbmQgZmVkZXJhbCBjb3VydHMgaW4gdGhlIFN0YXRlIG9mIE5ldyBZb3JrLCBVU0EsIGFncmVlIHRvIHdhaXZlIGFueSBkZWZlbnNlcyBhcmlzaW5nIG91dCBvZiB0aGUgc2VsZWN0aW9uIG9mIGp1cmlzZGljdGlvbiBvciB2ZW51ZSBhbmQgZnVydGhlciBhZ3JlZSB0byBzZXJ2aWNlIG9mIHByb2Nlc3MgYnkgbWFpbC4gWW91IGhlcmVieSBleHByZXNzbHkgYWdyZWUgdGhhdCB0aGUgYXBwbGljYXRpb24gb2YgdGhlIFVuaXRlZCBOYXRpb25zIENvbnZlbnRpb24gb2YgQ29udHJhY3RzIGZvciB0aGUgSW50ZXJuYXRpb25hbCBTYWxlIG9mIEdvb2RzIGlzIGV4cHJlc3NseSBleGNsdWRlZC4gIDE5LiBZb3UgYWNrbm93bGVkZ2UgdGhhdCB5b3UgaGF2ZSByZWFkIGFuZCB1bmRlcnN0YW5kIHRoaXMgQWdyZWVtZW50IGFuZCB0aGF0IGJ5IHVzaW5nIHRoZSBzb2Z0d2FyZSB5b3UgYWdyZWUgdG8gYmUgYm91bmQgYnkgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zLiBZb3UgZnVydGhlciBhZ3JlZSB0aGF0IGl0IGlzIHRoZSBjb21wbGV0ZSBhbmQgZXhjbHVzaXZlIHN0YXRlbWVudCBvZiB0aGUgYWdyZWVtZW50IGJldHdlZW4gQ29tbWVyY2lhbCBUeXBlIGFuZCB5b3Ugd2hpY2ggc3VwZXJzZWRlcyBhbnkgcHJvcG9zYWwgb3IgcHJpb3IgYWdyZWVtZW50LCBvcmFsIG9yIHdyaXR0ZW4sIGFuZCBhbnkgb3RoZXIgY29tbXVuaWNhdGlvbnMgcmVsYXRpbmcgdG8gdGhlIHN1YmplY3QgbWF0dGVyIG9mIHRoaXMgQWdyZWVtZW50LiBObyB2YXJpYXRpb24gb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50IG9yIGFueSBkaWZmZXJlbnQgdGVybXMgd2lsbCBiZSBlbmZvcmNlYWJsZSBpbiB0aGUgYWJzZW5jZSBvZiBhbiBleHByZXNzIHdyaXR0ZW4gYW1lbmRtZW50LCBvciBjb25zZW50LCBpbmNsdWRpbmcgYSB3cml0dGVuIGV4cHJlc3Mgd2FpdmVyIG9mIHRoZSBhZmZlY3RlZCB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudC4gSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBkZWNsYXJlZCBieSBhIGNvdXJ0IG9mIGNvbXBldGVudCBqdXJpc2RpY3Rpb24gdG8gYmUgaW52YWxpZCwgdm9pZCBvciB1bmVuZm9yY2VhYmxlLCB0aGUgcmVtYWluaW5nIHByb3Zpc2lvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgY29udGludWUgaW4gZnVsbCBmb3JjZSBhbmQgZWZmZWN0LCBhbmQgdGhlIGludmFsaWQgcHJvdmlzaW9uIHNoYWxsIGJlIHJlcGxhY2VkIGJ5IENvbW1lcmNpYWwgVHlwZSB3aXRoIGEgcHJvdmlzaW9uIHRoYXQgZWZmZWN0cyB0aGUgaW50ZW50IG9mIHRoZSBpbnZhbGlkIHByb3Zpc2lvbi4gIDIwLiBDb21tZXJjaWFsIFR5cGUgZXhwcmVzc2x5IHJlc2VydmVzIHRoZSByaWdodCB0byBhbWVuZCBvciBtb2RpZnkgaXRzIExpY2Vuc2UgQWdyZWVtZW50cyBhdCBhbnkgdGltZSBhbmQgd2l0aG91dCBwcmlvciBub3RpZmljYXRpb24uICAyMS4gVGhlIEFncmVlbWVudCBzaGFsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSBpbiB0aGUgZXZlbnQgeW91IG9yIGFueSBhdXRob3JpemVkIHVzZXIgYnJlYWNoZXMgYW55IHRlcm0gb3IgY29uZGl0aW9uIHNldCBmb3J0aCBoZXJlaW4uIE5vdHdpdGhzdGFuZGluZyBhbnkgdGVybWluYXRpb24gb2YgdGhpcyBMaWNlbnNlLCBDb21tZXJjaWFsIFR5cGUgZXhwcmVzc2x5IHJlc2VydmVzIGFueSBhbmQgYWxsIG90aGVyIHJpZ2h0cyBhbmQgcmVtZWRpZXMgdW5kZXIgZXF1aXR5IG9yIGxhdy4gVGhlIEFncmVlbWVudCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiBhIHdyaXRpbmcgc2lnbmVkIGJ5IGFuIGF1dGhvcml6ZWQgb2ZmaWNlciBvZiBDb21tZXJjaWFsIFR5cGUuICAyMi4gWW91IGFncmVlIHRvIGJlIHJlc3BvbnNpYmxlIGZvciBjb21wbGlhbmNlIHdpdGggYWxsIGxhd3MsIGZvcmVpZ24gYW5kIGRvbWVzdGljIHJlbGF0aW5nIHRvIHRoZSBjb250cm9sIG9mIGV4cG9ydHMgb3IgdGhlIHRyYW5zZmVyIG9mIHRlY2hub2xvZ3kuIElmIHlvdSBhcmUgcHVyY2hhc2luZyB0aGlzIExpY2Vuc2UgZm9yIGdvdmVybm1lbnQgdXNlLCBvciB1bmRlciBhIGdvdmVybm1lbnQgY29udHJhY3QsIHlvdSBhZ3JlZSB0byBmYW1pbGlhcml6ZSB5b3Vyc2VsZiB3aXRoIGFuZCBmb2xsb3cgYW55IGFwcGxpY2FibGUgcnVsZXMgYW5kIHJlZ3VsYXRpb25zIHJlbGF0aW5nIHRvIHRoZSBwdXJjaGFzZSBvZiBhIGxpY2Vuc2UgdG8gdXNlIHNvZnR3YXJlIGFuZCB0aGUgYWN0dWFsIHVzZSB0aGVyZW9mLiAgQWxsIGlucXVpcmllcyBhbmQgYXJyYW5nZW1lbnRzIGZvciByZXR1cm5zLCBpZiBhbnksIG1heSBiZSBzZW50IHZpYSBlLW1haWwgdG8gaW5mb0Bjb21tZXJjaWFsdHlwZS5jb20uIFRoZSBDb21tZXJjaWFsIFR5cGUgd2Vic2l0ZSBpcyBsb2NhdGVkIGF0IHd3dy5jb21tZXJjaWFsdHlwZS5jb20gIHYwOTA4MTVodHRwOi8vY29tbWVyY2lhbHR5cGUuY29tL2xpY2Vuc2VTdHlyZW5lIEIgVHJpYWxCb2xkAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAMgAwADEANgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AUwB0AHkAcgBlAG4AZQAgAEIAIABCAG8AbABkACAAVAByAGkAYQBsAFIAZQBnAHUAbABhAHIAMQAuADAAMAAxADsAQwBPAE0ATQA7AFMAdAB5AHIAZQBuAGUAQgBUAHIAaQBhAGwALQBCAG8AbABkAFMAdAB5AHIAZQBuAGUAQgBUAHIAaQBhAGwALQBCAG8AbABkAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADEAOwBQAFMAIAAwADAAMQAuADAAMAAxADsAaABvAHQAYwBvAG4AdgAgADEALgAwAC4ANwAyADsAbQBhAGsAZQBvAHQAZgAuAGwAaQBiADIALgA1AC4ANQA5ADAAMABTAHQAeQByAGUAbgBlACAAQgAgAGkAcwAgAGEAIAByAGUAZwBpAHMAdABlAHIAZQBkACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAvAFMAYwBoAHcAYQByAHQAegBjAG8AIABJAG4AYwAuAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACwAIABJAG4AYwAuAEIAZQByAHQAbwBuACAASABhAHMAZQBiAGUAaAB0AHQAcAA6AC8ALwBjAG8AbQBtAGUAcgBjAGkAYQBsAHQAeQBwAGUALgBjAG8AbQBoAHQAdABwADoALwAvAHcAdwB3AC4AYgBlAHIAdABvAG4AaABhAHMAZQBiAGUALgBjAG8AbQBDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABFAG4AZAAgAFUAcwBlAHIAIABMAGkAYwBlAG4AcwBlACAAQQBnAHIAZQBlAG0AZQBuAHQAIAAgAFAATABFAEEAUwBFACAAUgBFAEEARAAgAFQASABJAFMAIABEAE8AQwBVAE0ARQBOAFQAIABDAEEAUgBFAEYAVQBMAEwAWQAgAGEAbgBkACAAdwBlACAAcgBlAGMAbwBtAG0AZQBuAGQAIAB0AGgAYQB0ACAAeQBvAHUAIABrAGUAZQBwACAAYQAgAGMAbwBwAHkAIABmAG8AcgAgAGYAdQByAHQAaABlAHIAIAByAGUAZgBlAHIAZQBuAGMAZQAuACAAIAAgAFQAaABpAHMAIABFAG4AZAAgAFUAcwBlAHIAIABMAGkAYwBlAG4AcwBlACAAQQBnAHIAZQBlAG0AZQBuAHQAIAAoAHQAaABlACAAIgBBAGcAcgBlAGUAbQBlAG4AdAAiACAAIgBFAFUATABBACwAIgAgACIATABpAGMAZQBuAHMAZQAsACIAIAAiAEEAZwByAGUAZQBtAGUAbgB0ACIAIABvAHIAIAAiAEwAaQBjAGUAbgBzAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAiACkAIABpAHMAIABhACAAbABlAGcAYQBsACAAYQBnAHIAZQBlAG0AZQBuAHQAIABiAGUAdAB3AGUAZQBuACAAeQBvAHUAIABhAG4AZAAgAFMAYwBoAHcAYQByAHQAegBjAG8ALAAgAEkAbgBjAC4ALAAgAGQALwBiAC8AYQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACwAIABhAC8AZAAvAGIALwBhACAAUwB0AC4AIABCAHIAaQBkAGUAIABUAHkAcABlACAARgBvAHUAbgBkAHIAeQAgACgAYwBvAGwAbABlAGMAdABpAHYAZQBsAHkALAAgACIAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIgApACAAYQBuAGQAIABiAGUAYwBvAG0AZQBzACAAYQAgAGIAaQBuAGQAaQBuAGcAIABjAG8AbgB0AHIAYQBjAHQAIABiAGUAdAB3AGUAZQBuACAAeQBvAHUAIABhAG4AZAAgAFMAYwBoAHcAYQByAHQAegBjAG8ALgAgAFQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAGcAbwB2AGUAcgBuAHMAIAB0AGgAZQAgAHQAZQByAG0AcwAgAG8AZgAgAHUAcwBlACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYQBuAGQAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0AHMAIABlAG0AYgBvAGQAaQBlAGQAIAB0AGgAZQByAGUAaQBuACAAKABjAG8AbABsAGUAYwB0AGkAdgBlAGwAeQAsACAAIgBGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACIAKQAsACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAGEAbgB5ACAAbQBlAGQAaQBhACwAIABwAHIAaQBuAHQAZQBkACAAbQBhAHQAZQByAGkAYQBsAHMALAAgAGUAbABlAGMAdAByAG8AbgBpAGMAIABkAG8AYwB1AG0AZQBuAHQAYQB0AGkAbwBuACwAIAB1AHAAZABhAHQAZQBzACwAIABhAGQAZAAtAG8AbgBzACwAIABhAHIAdAB3AG8AcgBrACwAIAB3AGUAYgAgAHMAZQByAHYAaQBjAGUAcwAgAGEAbgBkACAAYQBuAHkAIABvAHQAaABlAHIAIABtAGEAdABlAHIAaQBhAGwAIAB0AGgAYQB0ACAAbQBhAHkAIABiAGUAIABhAHMAcwBvAGMAaQBhAHQAZQBkACAAdwBpAHQAaAAgAHQAaABlACAAcAByAG8AZAB1AGMAdAAgAG4AbwB3ACAAbwByACAAaQBuACAAdABoAGUAIABmAHUAdAB1AHIAZQAuACAAVABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAYgBlAGMAbwBtAGUAcwAgAGUAZgBmAGUAYwB0AGkAdgBlACAAKABhACkAIAB3AGgAZQBuACAAeQBvAHUAIAAiAEEAQwBDAEUAUABUACAATABJAEMARQBOAFMARQAgAEEARwBSAEUARQBNAEUATgBUACwAIgAgAG8AcgAgACgAYgApACAAaQBmACAAeQBvAHUAIABhAHIAZQAgAGEAYwBxAHUAaQByAGUAIABhAG4AZAAgAGEAYwBjAGUAcAB0ACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwBuACAAYQAgAEMAbwBtAHAAYQBjAHQAIABEAGkAcwBjACAAbwByACAARABpAGcAaQB0AGEAbAAgAFYAaQBkAGUAbwAgAEQAaQBzAGsAIAAoAEMARAAsACAARABWAEQAKQAsACAAbwByACAAKABjACkAIAB3AGgAZQBuACAAeQBvAHUAIABvAHAAZQBuACAAdABoAGUAIABjAG8AbQBwAHIAZQBzAHMAZQBkACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGYAaQBsAGUAIABpAG4AIAB3AGgAaQBjAGgAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABjAG8AbgB0AGEAaQBuAGUAZAAuACAASQBmACAAeQBvAHUAIABkAG8AIABuAG8AdAAgAHcAaQBzAGgAIAB0AG8AIABlAG4AdABlAHIAIABpAG4AdABvACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIABkAG8AIABuAG8AdAAgAHAAdQByAGMAaABhAHMAZQAsACAAYQBjAGMAZQBzAHMALAAgAGQAbwB3AG4AbABvAGEAZAAgAGEAbgBkAC8AbwByACAAaQBuAHMAdABhAGwAbAAgAG8AcgAgAG8AdABoAGUAcgB3AGkAcwBlACAAdQBzAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgACAAMQAuACAAVQBwAG8AbgAgAHAAYQB5AG0AZQBuAHQAIABpAG4AIABmAHUAbABsACwAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAHcAaQBsAGwAIABnAHIAYQBuAHQAIAB5AG8AdQAgAGEAIABuAG8AbgAtAGUAeABjAGwAdQBzAGkAdgBlACAAdABlAHIAbQBpAG4AYQBiAGwAZQAgAEwAaQBjAGUAbgBzAGUAIAB0AG8AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB0AGgAYQB0ACAAYQBjAGMAbwBtAHAAYQBuAGkAZQBzACAAdABoAGkAcwAgAEUAVQBMAEEALgAgAFUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAG0AaQB0AGUAZAAgAHQAbwAgAFAAZQByAHMAbwBuAGEAbAAgAG8AcgAgAEkAbgB0AGUAcgBuAGEAbAAgAEIAdQBzAGkAbgBlAHMAcwAgAFUAcwBlACAAbwBuAGwAeQAuACAARgBvAHIAIAB0AGgAZQAgAHAAdQByAHAAbwBzAGUAcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAIgBGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACIAIABzAGgAYQBsAGwAIABiAGUAIABkAGUAZgBpAG4AZQBkACAAYQBzACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdABzACAAdABvAGcAZQB0AGgAZQByACAAdwBpAHQAaAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHcAaABpAGMAaAAsACAAdwBoAGUAbgAgAHUAcwBlAGQAIABnAGUAbgBlAHIAYQB0AGUAcwAgAHQAaABlACAAdAB5AHAAZQBmAGEAYwBlACwAIAB0AHkAcABvAGcAcgBhAHAAaABpAGMAIABkAGUAcwBpAGcAbgBzACAAYQBuAGQALAAgAGkAZgAgAGEAcABwAGwAaQBjAGEAYgBsAGUALAAgAG8AcgBuAGEAbQBlAG4AdABzACAAbwByACAAbwB0AGgAZQByACAAZABlAHMAaQBnAG4AcwAuACAAUABlAHIAcwBvAG4AYQBsACAAbwByACAASQBuAHQAZQByAG4AYQBsACAAQgB1AHMAaQBuAGUAcwBzACAAVQBzAGUAIABzAGgAYQBsAGwAIABtAGUAYQBuACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABmAG8AcgAgAHkAbwB1AHIAIABjAHUAcwB0AG8AbQBhAHIAeQAgAHAAZQByAHMAbwBuAGEAbAAgAG8AcgAgAGkAbgB0AGUAcgBuAGEAbAAgAGIAdQBzAGkAbgBlAHMAcwAgAHAAdQByAHAAbwBzAGUAcwAgAGEAbgBkACwAIABlAHgAYwBlAHAAdAAgAGEAcwAgAG0AYQB5ACAAbwB0AGgAZQByAHcAaQBzAGUAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGgAZQByAGUAaQBuACwAIABzAGgAYQBsAGwAIABuAG8AdAAgAG0AZQBhAG4AIABvAHIAIABpAG4AYwBsAHUAZABlACAAdABoAGUAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAZABpAHMAdAByAGkAYgB1AHQAaQBvAG4AIABvAHIAIAB1AHMAZQAgAG8AZgAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALAAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAGYAbwBuAHQAcwAgAG8AcgAgAGEAcgB0AHcAbwByAGsAIABlAG0AYgBvAGQAaQBlAGQAIAB0AGgAZQByAGUAaQBuACAAbwByACAAYQBuAHkAIABjAG8AbQBwAG8AbgBlAG4AdAAgAHQAaABlAHIAZQBvAGYAIABmAG8AcgAgAGEAbgB5ACAAYwBvAG0AbQBlAHIAYwBpAGEAbAAgAHUAcwBlACAAbwByACAAaQBuACAAYQBuAHkAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAUAByAG8AZAB1AGMAdAAgAGYAbwByACAAcwBhAGwAZQAgAHcAaABhAHQAcwBvAGUAdgBlAHIALgAgAEYAbwByACAAdABoAGUAIABwAHUAcgBwAG8AcwBlAHMAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALAAgAHAAcgBvAGgAaQBiAGkAdABlAGQAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAdQBzAGUAcwAgAGkAbgBjAGwAdQBkAGUALAAgAGIAeQAgAHcAYQB5ACAAbwBmACAAZQB4AGEAbQBwAGwAZQAgAG4AbwB0ACAAbABpAG0AaQB0AGEAdABpAG8AbgAsACAAVAAtAHMAaABpAHIAdABzACwAIAB0AGgAaQByAGQALQBwAGEAcgB0AHkAIABzAG8AZgB0AHcAYQByAGUALAAgAGUAbABlAGMAdAByAG8AbgBpAGMAIABkAGUAdgBpAGMAZQBzACwAIABtAHUAZwBzACwAIABhAG4AaQBtAGEAdABpAG8AbgAsACAAZQB0AGMALgAgAGEAbgBkACAAYQBzACAAbQBhAHkAIABiAGUAIABmAHUAcgB0AGgAZQByACAAbgBvAHQAZQBkACAAYgBlAGwAbwB3AC4AIABJAGYAIAB5AG8AdQAgAGEAcgBlACAAdQBuAHMAdQByAGUAIAB3AGgAZQB0AGgAZQByACAAeQBvAHUAcgAgAHUAcwBlACAAaQBzACAAbgBvAHQAIABwAGUAcgBtAGkAdAB0AGUAZAAsACAAYwBvAG4AdABhAGMAdAAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIABZAG8AdQByACAAZgBhAGkAbAB1AHIAZQAgAHQAbwAgAGMAbwBuAHQAYQBjAHQAIAB0AG8AIABzAGUAZQBrACAAcABlAHIAbQBpAHMAcwBpAG8AbgAgAG8AcgAgAHQAaABlACAAbABhAGMAawAgAG8AZgAgAGEAIABzAHAAZQBjAGkAZgBpAGMAIABwAHIAbwBoAGkAYgBpAHQAaQBvAG4AIABpAG4AIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABzAGgAYQBsAGwAIABuAG8AdAAgAGIAZQAgAGkAbgB0AGUAcgBwAHIAZQB0AGUAZAAgAG8AcgAgAGQAZQBlAG0AZQBkACAAYQAgAHcAYQBpAHYAZQByACAAbwByACAAcABlAHIAbQBpAHMAcwBpAGIAbABlACAAdQBzAGUAIABvAGYAIABhAG4AeQAgAGsAaQBuAGQALgAgAFkAbwB1ACAAaABlAHIAZQBiAHkAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAcwBoAGEAbABsACAAZgB1AHIAdABoAGUAcgAgAGMAbwBtAHAAcgBpAHMAZQAgAGEAbABsACAAYgBpAHQAbQBhAHAAIAByAGUAcAByAGUAcwBlAG4AdABhAHQAaQBvAG4AcwAgAG8AZgAgAHQAeQBwAGUAZgBhAGMAZQAgAGEAbgBkACAAdAB5AHAAbwBnAHIAYQBwAGgAaQBjACAAZABlAHMAaQBnAG4AcwAgAGEAbgBkACAAbwByAG4AYQBtAGUAbgB0AHMAIABjAHIAZQBhAHQAZQBkACAAYgB5ACAAbwByACAAZABlAHIAaQB2AGUAZAAgAGYAcgBvAG0AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgAFQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHMAaABhAGwAbAAgAGIAZQAgAGQAZQBlAG0AZQBkACAAdABvACAAaQBuAGMAbAB1AGQAZQAgAGEAbgB5ACAAdQBwAGcAcgBhAGQAZQBzACwAIAB1AHAAZABhAHQAZQBzACwAIAByAGUAbABhAHQAZQBkACAAZgBpAGwAZQBzACwAIABwAGUAcgBtAGkAdAB0AGUAZAAgAG0AbwBkAGkAZgBpAGMAYQB0AGkAbwBuAHMALAAgAGkAZgAgAGEAbgB5ACwAIABwAGUAcgBtAGkAdAB0AGUAZAAgAGMAbwBwAGkAZQBzACwAIABhAG4AZAAgAHIAZQBsAGEAdABlAGQAIABkAG8AYwB1AG0AZQBuAHQAYQB0AGkAbwBuAC4AIAAgADIALgAgAEkAZgAgAHkAbwB1ACAAYQByAGUAIABhACAAZABlAHMAaQBnAG4AIABjAG8AbgBzAHUAbAB0AGEAbgBjAHkALAAgAGEAZAB2AGUAcgB0AGkAcwBpAG4AZwAgAGEAZwBlAG4AYwB5ACAAbwByACAAcAB1AHIAYwBoAGEAcwBpAG4AZwAgAHQAaABpAHMAIABsAGkAYwBlAG4AcwBlACAAZgBvAHIAIAB1AHMAZQAgAGIAeQAgAG8AcgAgAG8AbgAgAGIAZQBoAGEAbABmACAAbwBmACAAcwB1AGMAaAAgAGEAbgAgAGUAbgB0AGkAdAB5ACwAIAB0AGgAZQAgAHUAbAB0AGkAbQBhAHQAZQAgAGUAbgBkACAAdQBzAGUAcgAgAHMAaABvAHUAbABkACAAYQBsAHMAbwAgAHAAdQByAGMAaABhAHMAZQAgAGEAIABsAGkAYwBlAG4AcwBlACAAYQBwAHAAcgBvAHAAcgBpAGEAdABlACAAZgBvAHIAIAB0AGgAZQBpAHIAIABpAG4AdABlAG4AZABlAGQAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAaQBmACAAdABoAGUAaQByACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAawBlAGwAeQAgAHQAbwAgAGkAbgB2AG8AbAB2AGUAIAB1AHMAZQBzACAAbgBvAHQAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHUAbgBkAGUAcgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAuACAAVABoAGUAIABsAGkAYwBlAG4AcwBlACAAZwByAGEAbgB0AGUAZAAgAGgAZQByAGUAaQBuACAAZgBvAHIAIABwAGUAcgBzAG8AbgBhAGwAIAB1AHMAZQAgAGQAbwBlAHMAIABuAG8AdAAgAGUAeAB0AGUAbgBkACAAdABvACAAdQBzAGUAcwAgAGIAeQAgAHQAZQBtAHAAbwByAGEAcgB5ACAAZQBtAHAAbABvAHkAZQBlAHMAIABvAHIAIABpAG4AZABlAHAAZQBuAGQAZQBuAHQAIABjAG8AbgB0AHIAYQBjAHQAbwByAHMAIAB1AHMAaQBuAGcAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAHMAIAB0AGgAZQBpAHIAIAB1AHMAZQAgAG0AYQB5ACAAcgBlAGwAYQB0AGUAIAB0AG8AIABwAHIAbwB2AGkAZABpAG4AZwAgAHAAcgBvAGYAZQBzAHMAaQBvAG4AYQBsACAAcwBlAHIAdgBpAGMAZQBzACAAbwByACAAZgBvAHIAIABvAHQAaABlAHIAIABwAHIAbwBmAGUAcwBzAGkAbwBuAGEAbAAgAHUAcwBlAHMALgAgAFUAbgBkAGUAcgAgAHMAdQBjAGgAIABjAGkAcgBjAHUAbQBzAHQAYQBuAGMAZQBzACAAYQBuACAAZQBtAHAAbABvAHkAZQByACAAYQBuAGQALwBvAHIAIAB0AGgAZQAgAHUAbAB0AGkAbQBhAHQAZQAgAGUAbgBkACAAdQBzAGUAcgAgAGEAcgBlACAAYQBsAHMAbwAgAHIAZQBxAHUAaQByAGUAZAAgAHQAbwAgAHAAdQByAGMAaABhAHMAZQAgAGEAIABsAGkAYwBlAG4AcwBlACAAYQBwAHAAcgBvAHAAcgBpAGEAdABlACAAZgBvAHIAIAB0AGgAZQBpAHIAIAB1AHMAYQBnAGUALgAgACAAMwAuACAARgBvAHIAIAB0AGgAZQAgAHAAdQByAHAAbwBzAGUAcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAIgBDAG8AbQBtAGUAcgBjAGkAYQBsACAAUAByAG8AZAB1AGMAdAAiACAAcwBoAGEAbABsACAAYQBsAHMAbwAgAG0AZQBhAG4ALAAgAGEAbQBvAG4AZwAgAG8AdABoAGUAcgAgAHQAaABpAG4AZwBzACwAIABhACAAdQBzAGUAcgAgAGUAZABpAHQAYQBiAGwAZQAgAGUAbABlAGMAdAByAG8AbgBpAGMAIABkAG8AYwB1AG0AZQBuAHQAIABjAHIAZQBhAHQAZQBkACAAYgB5ACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB3AGgAaQBjAGgAIABpAHMAIABvAGYAZgBlAHIAZQBkACAAZgBvAHIAIABkAGkAcwB0AHIAaQBiAHUAdABpAG8AbgAgAHQAbwAgAHQAaABlACAAZwBlAG4AZQByAGEAbAAgAHAAdQBiAGwAaQBjACAAKABvAHIAIAB0AG8AIABzAG8AbQBlACAAcwB1AGIAcwBlAHQAIABvAGYAIAB0AGgAZQAgAGcAZQBuAGUAcgBhAGwAIABwAHUAYgBsAGkAYwApACwAIABpAG4AIABGAGwAYQBzAGgAIAB0AHkAcABlACAAcwBvAGYAdAB3AGEAcgBlACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAbwByACAAZQB4AGgAaQBiAGkAdABlAGQALAAgAGkAbgAgAGcAYQBtAGkAbgBnACAAcAByAG8AZAB1AGMAdABzACAAbwByACAAcwBvAGYAdAB3AGEAcgBlACAAdwBoAGUAcgBlACAAdABoAGUAIABlAHgAdAByAGEAYwB0AGkAbwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwByACAAdABoAGUAIABkAGUAcwBpAGcAbgBzACAAZQBtAGIAbwBkAGkAZQBkACAAdABoAGUAcgBlAGkAbgAgAG0AYQB5ACAAYgBlACAAZQB4AHQAcgBhAGMAdABlAGQAOwAgAG8AcgAgAHUAcwBlACAAbwBuACAAZwBvAG8AZABzACAAZgBvAHIAIABzAGEAbABlACAAYQBzACAAYQAgAGMAbwBtAG0AZQByAGMAaQBhAGwAIABwAHIAbwBkAHUAYwB0ACAAaQBuACAAZQB4AGMAaABhAG4AZwBlACAAZgBvAHIAIABhACAAcwBlAHAAYQByAGEAdABlACAAZgBlAGUAIABvAHIAIABvAHQAaABlAHIAIABjAG8AbgBzAGkAZABlAHIAYQB0AGkAbwBuAC4AIABIAG8AdwBlAHYAZQByACwAIABhACAAZABvAGMAdQBtAGUAbgB0ACAAZABpAHMAdAByAGkAYgB1AHQAZQBkACAAaQBuACAAYwBvAG4AbgBlAGMAdABpAG8AbgAgAHcAaQB0AGgAIABhACAAYwBvAG0AbQBlAHIAYwBpAGEAbAAgAHQAcgBhAG4AcwBhAGMAdABpAG8AbgAgAGkAbgAgAHcAaABpAGMAaAAgAHQAaABlACAAYwBvAG4AcwBpAGQAZQByAGEAdABpAG8AbgAgAGkAcwAgAHUAbgByAGUAbABhAHQAZQBkACAAdABvACAAcwB1AGMAaAAgAGEAIABkAG8AYwB1AG0AZQBuAHQAIAAoAGYAbwByACAAZQB4AGEAbQBwAGwAZQAsACAAcAByAGkAbgB0AGUAZAAgAGEAZAB2AGUAcgB0AGkAcwBpAG4AZwAsACAAYQAgAGIAdQBzAGkAbgBlAHMAcwAgAGwAZQB0AHQAZQByACAAbwByACAAYQAgAHIAZQBjAGUAaQBwAHQAIABmAG8AcgAgAHAAdQByAGMAaABhAHMAZQAgAG8AZgAgAHQAYQBuAGcAaQBiAGwAZQAgAGcAbwBvAGQAcwAgAHMAdQBjAGgAIABhAHMAIABjAGwAbwB0AGgAaQBuAGcAKQAsACAAbwByACAAYQBzACAAbwB0AGgAZQByACAAZABlAHMAaQBnAG4AIABtAGEAdABlAHIAaQBhAGwAcwAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAZAAgAGkAbgBjAGkAZABlAG4AdABhAGwAIAB0AG8AIAB0AGgAZQAgAHAAdQByAGMAaABhAHMAZQAgAG8AZgAgAGcAbwBvAGQAcwAgAG8AcgAgAHMAZQByAHYAaQBjAGUAcwAsACAAcwBoAGEAbABsACAAbgBvAHQAIABiAGUAIABjAG8AbgBzAGkAZABlAHIAZQBkACAAYQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABQAHIAbwBkAHUAYwB0AC4AIAAgADQALgAgAGEAKQAgAEUAeABjAGUAcAB0ACAAYQBzACAAbQBhAHkAIABiAGUAIABwAHIAbwBoAGkAYgBpAHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAHkAbwB1ACAAYQByAGUAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHQAbwAgAGUAbABlAGMAdAByAG8AbgBpAGMAYQBsAGwAeQAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAIABhACAAJgAjADIAMQAwADsAUABlAHIAcwBvAG4AYQBsACAAbwByACAASQBuAHQAZQByAG4AYQBsACAAQgB1AHMAaQBuAGUAcwBzACAAVQBzAGUAJgAjADIAMQAxADsAIABkAG8AYwB1AG0AZQBuAHQAIAAoAHQAaABhAHQAIABpAHMALAAgAGEAIABkAG8AYwB1AG0AZQBuAHQAIABvAHQAaABlAHIAIAB0AGgAYQBuACAAYQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABQAHIAbwBkAHUAYwB0ACAAYQBzACAAZABlAGYAaQBuAGUAZAAgAGEAYgBvAHYAZQApACAAKABpACkAIAB0AGgAYQB0ACAAaQBzACAAaQBuACAAYQAgAHMAdABhAHQAaQBjACAAZwByAGEAcABoAGkAYwAgAGkAbQBhAGcAZQAgACgAZgBvAHIAIABlAHgAYQBtAHAAbABlACwAIABhACAAJgAjADIAMQAwADsAZwBpAGYAJgAjADIAMQAxADsAKQAgAG8AcgAgAGkAbgAgAGEAbgAgAGUAbQBiAGUAZABkAGUAZAAgAGUAbABlAGMAdAByAG8AbgBpAGMAIABkAG8AYwB1AG0AZQBuAHQALAAgAGEAbgBkACAAKABpAGkAKQAgAHcAaABpAGMAaAAgAGkAcwAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAZAAgAGkAbgAgAGEAIABmAG8AcgBtAGEAdAAgAHQAaABhAHQAIABwAGUAcgBtAGkAdABzACAAbwBuAGwAeQAgAHQAaABlACAAdgBpAGUAdwBpAG4AZwAgAGEAbgBkACAAcAByAGkAbgB0AGkAbgBnACAAKABhAG4AZAAgAG4AbwB0ACAAdABoAGUAIABlAGQAaQB0AGkAbgBnACwAIABhAGwAdABlAHIAaQBuAGcALAAgAGUAbgBoAGEAbgBjAGkAbgBnACwAIABvAHIAIABtAG8AZABpAGYAeQBpAG4AZwApACAAbwBmACAAcwB1AGMAaAAgAHMAdABhAHQAaQBjACAAZwByAGEAcABoAGkAYwAgAGkAbQBhAGcAZQAgAG8AcgAgAGUAbQBiAGUAZABkAGUAZAAgAGQAbwBjAHUAbQBlAG4AdAAuACAAUABlAHIAcwBvAG4AYQBsACAAbwByACAASQBuAHQAZQByAG4AYQBsACAAQgB1AHMAaQBuAGUAcwBzACAAVQBzAGUAIABzAGgAYQBsAGwAIABuAG8AdAAgAGkAbgBjAGwAdQBkAGUAIABhAG4AeQAgAFUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYgB5ACAAcABlAHIAcwBvAG4AcwAgAHQAaABhAHQAIABhAHIAZQAgAG4AbwB0ACAAbQBlAG0AYgBlAHIAcwAgAG8AZgAgAHkAbwB1AHIAIABpAG0AbQBlAGQAaQBhAHQAZQAgAGgAbwB1AHMAZQBoAG8AbABkACwAIAB5AG8AdQByACAAYQB1AHQAaABvAHIAaQB6AGUAZAAgAGUAbQBwAGwAbwB5AGUAZQBzACwAIABvAHIAIAB5AG8AdQByACAAYQB1AHQAaABvAHIAaQB6AGUAZAAgAGEAZwBlAG4AdABzAC4AIABBAGwAbAAgAHMAdQBjAGgAIABoAG8AdQBzAGUAaABvAGwAZAAgAG0AZQBtAGIAZQByAHMALAAgAGUAbQBwAGwAbwB5AGUAZQBzACAAYQBuAGQAIABhAGcAZQBuAHQAcwAgAHMAaABhAGwAbAAgAGIAZQAgAG4AbwB0AGkAZgBpAGUAZAAgAGIAeQAgAHkAbwB1ACAAYQBzACAAdABvACAAdABoAGUAIAB0AGUAcgBtAHMAIABhAG4AZAAgAGMAbwBuAGQAaQB0AGkAbwBuAHMAIABvAGYAIAB0AGgAZQAgAEEAZwByAGUAZQBtAGUAbgB0ACAAYQBuAGQAIABzAGgAYQBsAGwAIABhAGcAcgBlAGUAIAB0AG8AIABiAGUAIABiAG8AdQBuAGQAIABiAHkAIABpAHQAIABwAHIAaQBvAHIAIAB0AG8AIAB1AHMAZQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAYgApACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAG4AIABzAEkARgBSACAAKABTAGMAYQBsAGEAYgBsAGUAIABJAG4AbQBhAG4AIABGAG8AbgB0ACAAUgBlAHAAbABhAGMAZQBtAGUAbgB0ACkAIABpAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAuACAASABvAHcAZQB2AGUAcgAsACAAdABoAGUAIAB1AHMAZQAgAG8AZgAgAEMAdQBmACYAIwAxADUAMQA7AG4AIABvAHIAIABAAGYAbwBuAHQALQBmAGEAYwBlACAAbwByACAAbwB0AGgAZQByACAAZgBvAHIAbQBzACAAbwBmACAAdwBlAGIAIABlAG0AYgBlAGQAZABpAG4AZwAgAG8AcgAgAHcAZQBiACAAZgBvAG4AdAAgAHIAZQBwAGwAYQBjAGUAbQBlAG4AdAAgAHQAZQBjAGgAbgBvAGwAbwBnAGkAZQBzACwAIAAoACYAIwAyADEAMAA7AEYAbwBuAHQAIABSAGUAcABsAGEAYwBlAG0AZQBuAHQAIABUAGUAYwBoAG4AbwBsAG8AZwBpAGUAcwAmACMAMgAxADEAOwApACAAbwB0AGgAZQByACAAdABoAGEAbgAgAHAAZABmACAAYQBzACAAbwB0AGgAZQByAHcAaQBzAGUAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAGUAYQBjAGgAIAByAGUAcQB1AGkAcgBlACAAdABoAGUAIABwAHUAcgBjAGgAYQBzAGUAIABvAGYAIABhACAAbABpAGMAZQBuAHMAZQAgAHUAcABnAHIAYQBkAGUALgAgACAANQAuACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALAAgAGkAdABzACAAcwB1AGMAYwBlAHMAcwBvAHIAcwAgAGEAbgBkACAAYQBzAHMAaQBnAG4AcwAsACAAZQB4AHAAcgBlAHMAcwBsAHkAIAByAGUAdABhAGkAbgAgAGEAbABsACAAcgBpAGcAaAB0ACAAYQBuAGQAIAB0AGkAdABsAGUAIABpAG4AIABhAG4AZAAgAHQAbwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwBnAGUAdABoAGUAcgAgAHcAaQB0AGgAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAZQBtAGIAbwBkAGkAZQBkACAAdABoAGUAcgBlAGkAbgAgAHQAbwBnAGUAdABoAGUAcgAgAHcAaQB0AGgAIABhAG4AeQAgAHQAcgBhAGQAZQBtAGEAcgBrAHMAIAB1AHMAZQBkACAAaQBuACAAYwBvAG4AbgBlAGMAdABpAG8AbgAgAHQAaABlAHIAZQB3AGkAdABoAC4AIABFAHgAYwBlAHAAdAAgAGEAcwAgAG0AYQB5ACAAYgBlACAAbwB0AGgAZQByAHcAaQBzAGUAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHQAZQBkACAAaABlAHIAZQBpAG4ALAAgAHkAbwB1ACAAYQBnAHIAZQBlACAAbgBvAHQAIAB0AG8AIABjAG8AcAB5ACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwByACAAYwByAGUAYQB0AGUAIABkAGUAcgBpAHYAYQB0AGkAdgBlACAAdwBvAHIAawBzACAAYgBhAHMAZQBkACAAdQBwAG8AbgAgAHQAaABlACAAZABlAHMAaQBnAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABvAHIAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALgAgAFkAbwB1ACAAaABlAHIAZQBiAHkAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAGEAbgBkACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYQByAGUAIAB0AGgAZQAgAGUAeABjAGwAdQBzAGkAdgBlACAAcAByAG8AcABlAHIAdAB5ACAAbwBmACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAG4AZAAgAHQAaABhAHQAIAB0AGgAZQAgAHUAbgBhAHUAdABoAG8AcgBpAHoAZQBkACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAbwByACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAYQBuACAAaQBuAGYAcgBpAG4AZwBlAG0AZQBuAHQAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAnAHMAIABlAHgAYwBsAHUAcwBpAHYAZQAgAHIAaQBnAGgAdABzACAAYQBuAGQAIABjAGEAdQBzAGkAbgBnACAAcwBpAGcAbgBpAGYAaQBjAGEAbgB0ACAAbQBvAG4AZQB0AGEAcgB5ACAAaABhAHIAbQAuACAAQQBsAGwAIAByAGkAZwBoAHQAcwAgAG4AbwB0ACAAZQB4AHAAcgBlAHMAcwBsAHkAIABnAHIAYQBuAHQAZQBkACAAaABlAHIAZQBpAG4AIABhAHIAZQAgAHIAZQBzAGUAcgB2AGUAZAAgAHQAbwAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAnAHMAIAByAGkAZwBoAHQAcwAgAGEAbgBkACAAcgBlAG0AZQBkAGkAZQBzACAAaQBuACAAdABoAGUAIABlAHYAZQBuAHQAIABvAGYAIABhAG4AIABpAG4AZgByAGkAbgBnAGUAbQBlAG4AdAAgAHMAaABhAGwAbAAgAGIAZQAgAGMAdQBtAHUAbABhAHQAaQB2AGUAIABpAG4AIABuAGEAdAB1AHIAZQAuACAAIAAgADYALgAgAEUAeABjAGUAcAB0ACAAYQBzACAAaQBzACAAcAByAG8AaABpAGIAaQB0AGUAZAAgAGgAZQByAGUAaQBuACwAIAB5AG8AdQAgAG0AYQB5ACAAaQBuAHMAdABhAGwAbAAgAGEAbgBkACAAVQBzAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAG4AIABhACAAcwBpAG4AZwBsAGUAIABmAGkAbABlACAAcwBlAHIAdgBlAHIAIABmAG8AcgAgAFUAcwBlACAAbwBuACAAYQAgAHMAaQBuAGcAbABlACAAbABvAGMAYQBsACAAYQByAGUAYQAgAG4AZQB0AHcAbwByAGsAIAAoACIATABBAE4AIgApACAAbwBuAGwAeQAgAHcAaABlAG4AIAB0AGgAZQAgAFUAcwBlACAAbwBmACAAcwB1AGMAaAAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABlAHgAcAByAGUAcwBzAGwAeQAgAGYAbwByACAAYQBuAGQAIABsAGkAbQBpAHQAZQBkACAAdABvACAAdABoAGUAIABuAHUAbQBiAGUAcgAgAG8AZgAgAHQAbwB0AGEAbAAgAHUAcwBlAHIAcwAgAGQAaQBzAGMAbABvAHMAZQBkACAAYQBuAGQAIABsAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALAAgAGkALgBlAC4ALAAgAHQAaABlACAAdABvAHQAYQBsACAAbgB1AG0AYgBlAHIAIABvAGYAIAB1AHMAZQByAHMAIAB3AGgAbwAgAGMAbwB1AGwAZAAgAHUAcwBlACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACwAIABuAG8AdAAgAHQAaABlACAAdABvAHQAYQBsACAAbgB1AG0AYgBlAHIAIABvAGYAIAB1AHMAZQByAHMAIAB3AGgAbwAgAG0AaQBnAGgAdAAgAGgAYQB2AGUAIABhAGMAYwBlAHMAcwAgAHQAbwAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGEAdAAgAGEAbgB5ACAAbwBuAGUAIAB0AGkAbQBlAC4AIAAgADcALgAgAEUAeABjAGUAcAB0ACAAYQBzACAAbQBhAHkAIABiAGUAIABvAHQAaABlAHIAdwBpAHMAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcABlAHIAbQBpAHQAdABlAGQAIABoAGUAcgBlAGkAbgAsACAAeQBvAHUAIABtAGEAeQAgAG4AbwB0ACAAYQBsAHQAZQByACAAbwByACAAYwBvAHAAeQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AcgAgAHQAaABlACAAZABlAHMAaQBnAG4AcwAgAGUAbQBiAG8AZABpAGUAZAAgAHQAaABlAHIAZQBpAG4AIABpAG4AIABhAG4AeQAgAG0AYQBuAG4AZQByACAAdwBoAGEAdABzAG8AZQB2AGUAcgAuACAAUgBlAGYAbwByAG0AYQB0AHQAaQBuAGcAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAG4AdABvACAAbwB0AGgAZQByACAAZgBvAHIAbQBhAHQAcwAgAGYAbwByACAAdQBzAGUAIABpAG4AIABvAHQAaABlAHIAIABvAHAAZQByAGEAdABpAG4AZwAgAHMAeQBzAHQAZQBtAHMAIABpAHMAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAcgBvAGgAaQBiAGkAdABlAGQALgAgAFUAcABvAG4AIABwAGEAeQBtAGUAbgB0ACAAbwBmACAAYQBuACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAGYAZQBlACAAYQBuAGQAIABhACAAcwBlAHAAYQByAGEAdABlACAAdwByAGkAdAB0AGUAbgAgAGEAZwByAGUAZQBtAGUAbgB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABtAGEAeQAsACAAaQBmACAAcwBvACAAYQBnAHIAZQBlAGQALAAgAHAAcgBvAHYAaQBkAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAG4AIABhAGwAdABlAHIAbgBhAHQAZQAgAGEAbgBkAC8AbwByACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAGYAbwBuAHQAIABmAG8AcgBtAGEAdABzACwAIABjAG8AbgB0AGEAYwB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABmAG8AcgAgAGEAIABxAHUAbwB0AGEAdABpAG8AbgAuACAAQQBsAHQAZQByAGkAbgBnACAAbwByACAAYQBtAGUAbgBkAGkAbgBnACAAdABoAGUAIABlAG0AYgBlAGQAZABpAG4AZwAgAGIAaQB0AHMAIABjAGgAYQByAGEAYwB0AGUAcgBpAHMAdABpAGMAcwAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcAByAG8AaABpAGIAaQB0AGUAZAAuACAAVABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbQBhAHkAIABuAG8AdAAgAGIAZQAgAHUAcwBlAGQAIAB0AG8AIABjAHIAZQBhAHQAZQAgAG8AcgAgAGQAaQBzAHQAcgBpAGIAdQB0AGUAIABhAG4AeQAgAGUAbABlAGMAdAByAG8AbgBpAGMAIABkAG8AYwB1AG0AZQBuAHQAIABpAG4AIAB3AGgAaQBjAGgAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAHIAIABhAG4AeQAgAHAAYQByAHQAIAB0AGgAZQByAGUAbwBmACwAIABpAHMAIABlAG0AYgBlAGQAZABlAGQAIABpAG4AIABhACAAbQBhAG4AbgBlAHIAIABvAHIAIABmAG8AcgBtAGEAdAAgAHQAaABhAHQAIABwAGUAcgBtAGkAdABzACAAZQBkAGkAdABpAG4AZwAsACAAYQBsAHQAZQByAGEAdABpAG8AbgBzACwAIABlAG4AaABhAG4AYwBlAG0AZQBuAHQAcwAsACAAbwByACAAbQBvAGQAaQBmAGkAYwBhAHQAaQBvAG4AcwAgAGIAeQAgAHQAaABlACAAcgBlAGMAaQBwAGkAZQBuAHQAIABvAGYAIABzAHUAYwBoACAAZABvAGMAdQBtAGUAbgB0AC4AIABZAG8AdQAgAG0AYQB5ACAAbgBvAHQAIABrAG4AbwB3AGkAbgBnAGwAeQAgAHQAcgBhAG4AcwBtAGkAdAAgAGEAbgB5ACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAbwBjAHUAbQBlAG4AdAAgAG8AcgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAHQAbwAgAGEAbgB5ACAAcABhAHIAdAB5ACAAdABoAGEAdAAgAGkAbgB0AGUAbgBkAHMAIABvAHIAIABpAHMAIABsAGkAawBlAGwAeQAgAHQAbwAgACIAaABhAGMAawAsACIAIABlAGQAaQB0ACwAIABhAGwAdABlAHIALAAgAGUAbgBoAGEAbgBjAGUALAAgAG8AcgAgAG8AdABoAGUAcgB3AGkAcwBlACAAbQBvAGQAaQBmAHkAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAHIAIAByAGUAbQBvAHYAZQAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGYAcgBvAG0AIABhAG4AeQAgAGQAbwBjAHUAbQBlAG4AdAAuACAAIAA4AC4AIABZAG8AdQAgAG0AYQB5ACAAbQBhAGsAZQAgAG8AbgBlACAAKAAxACkAIABiAGEAYwBrAC0AdQBwACAAYwBvAHAAeQAgAG8AZgAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABmAG8AcgAgAGEAcgBjAGgAaQB2AGEAbAAgAHAAdQByAHAAbwBzAGUAcwAgAG8AbgBsAHkALAAgAGEAbgBkACAAeQBvAHUAIABhAGcAcgBlAGUAIAB0AG8AIAByAGUAdABhAGkAbgAgAGUAeABjAGwAdQBzAGkAdgBlACAAYwB1AHMAdABvAGQAeQAgAGEAbgBkACAAYwBvAG4AdAByAG8AbAAgAG8AdgBlAHIAIABhAG4AeQAgAHMAdQBjAGgAIABjAG8AcAB5AC4AIABVAHAAbwBuACAAdABlAHIAbQBpAG4AYQB0AGkAbwBuACAAbwBmACAAdABoAGUAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAeQBvAHUAIABtAHUAcwB0ACAAZABlAHMAdAByAG8AeQAgAHQAaABlACAAbwByAGkAZwBpAG4AYQBsACAAYQBuAGQAIABhAG4AeQAgAGEAbgBkACAAYQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAVABoAGUAIAB1AG4AYQB1AHQAaABvAHIAaQB6AGUAZAAgAHMAaABhAHIAaQBuAGcALAAgAGwAZQBuAGQAaQBuAGcALAAgAHIAZQBuAHQAaQBuAGcALAAgAHMAYQBsAGUALAAgAG8AcgAgAG8AdABoAGUAcgAgAHUAbgBhAHUAdABoAG8AcgBpAHoAZQBkACAAdQBzAGUAIABvAHIAIABtAGkAcwB1AHMAZQAgAG8AZgAgAHQAaABlACAAYgBhAGMAawAtAHUAcAAgAGMAbwBwAHkAIABpAHMAIABhACAAbQBhAHQAZQByAGkAYQBsACAAYgByAGUAYQBjAGgAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABhAG4AZAAgAHcAaQBsAGwAIAByAGUAcwB1AGwAdAAgAGkAbgAgAHQAaABlACAAaQBtAG0AZQBkAGkAYQB0AGUAIAB0AGUAcgBtAGkAbgBhAHQAaQBvAG4AIABvAGYAIAB0AGgAaQBzACAATABpAGMAZQBuAHMAZQAuACAAIAA5AC4AIABJAGYAIABuAG8AIABvAHQAaABlAHIAIABvAHAAdABpAG8AbgAgAGUAeABpAHMAdABzACwAIAB5AG8AdQAgAG0AYQB5ACAAdABhAGsAZQAgAGEAIABkAGkAZwBpAHQAaQB6AGUAZAAgAGMAbwBwAHkAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB1AHMAZQBkACAAZgBvAHIAIABhACAAcABhAHIAdABpAGMAdQBsAGEAcgAgAGQAbwBjAHUAbQBlAG4AdAAsACAAbwByACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGUAbQBiAGUAZABkAGUAZAAgAGkAbgAgAGEAbgAgAGUAbABlAGMAdAByAG8AbgBpAGMAIABkAG8AYwB1AG0AZQBuAHQAIAB0AGgAYQB0ACAAaQBzACAAcwBlAG4AdAAgAHQAbwAgAGEAIABjAG8AbQBtAGUAcgBjAGkAYQBsACAAcAByAGkAbgB0AGUAcgAgAG8AcgAgAHMAZQByAHYAaQBjAGUAIABiAHUAcgBlAGEAdQAgAGYAbwByACAAdQBzAGUAIABiAHkAIAB0AGgAZQAgAHAAcgBpAG4AdABlAHIAIABvAHIAIABzAGUAcgB2AGkAYwBlACAAYgB1AHIAZQBhAHUAIABmAG8AcgAgAHAAcgBlAHAAYQByAGkAbgBnACAAdABoAGUAIABkAG8AYwB1AG0AZQBuAHQAIABwAHIAbwB2AGkAZABlAGQAIAB0AGgAYQB0ACAAdABoAGUAIABwAHIAaQBuAHQAZQByACAAbwByACAAcwBlAHIAdgBpAGMAZQAgAGIAdQByAGUAYQB1ACAAcgBlAHAAcgBlAHMAZQBuAHQAcwAgAHQAaABhAHQAIABpAHQAIABzAGgAYQBsAGwAIABkAGUAcwB0AHIAbwB5ACAAYQBuAHkAIABhAG4AZAAgAGEAbABsACAAYwBvAHAAaQBlAHMAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB1AHAAbwBuACAAYwBvAG0AcABsAGUAdABpAG8AbgAgAG8AZgAgAGkAdABzACAAdwBvAHIAawAuACAATgBvAHQAdwBpAHQAaABzAHQAYQBuAGQAaQBuAGcALAAgAHkAbwB1ACAAYQBnAHIAZQBlACAAdABoAGEAdAAgAHQAaABlACAAdAByAGEAbgBzAG0AaQBzAHMAaQBvAG4AIABvAGYAIABhACAAIgBwAHIAaQBuAHQALwBwAHIAZQB2AGkAZQB3ACIAIABQAEQARgAgAGQAbwBjAHUAbQBlAG4AdAAgAGkAcwAgAHQAaABlACAAZgBpAHIAcwB0ACAAYQBuAGQAIABwAHIAZQBmAGUAcgByAGUAZAAgAG0AZQB0AGgAbwBkACAAbwBmACAAdAByAGEAbgBzAG0AaQB0AHQAaQBuAGcAIABzAHUAYwBoACAAZABvAGMAdQBtAGUAbgB0AHMAIAB0AG8AIABhACAAcwBlAHIAdgBpAGMAZQAgAGIAdQByAGUAYQB1ACAAbwByACAAcAByAGkAbgB0AGUAcgAuACAAIAAxADAALgAgAFQAaABlACAAZABlAHMAaQBnAG4AcwAgAGUAbQBiAG8AZABpAGUAZAAgAGEAbgBkACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAYQBuAGQAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABhAG4AZAAgAGEAbgB5ACAAdAByAGEAZABlAG0AYQByAGsAcwAgAGEAcwBzAG8AYwBpAGEAdABlAGQAIAB0AGgAZQByAGUAdwBpAHQAaAAgAGEAcgBlACAAdABoAGUAIABlAHgAYwBsAHUAcwBpAHYAZQAgAHAAcgBvAHAAZQByAHQAeQAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQBuAGQAIAB0AGgAZQBpAHIAIABkAGUAcwBpAGcAbgBlAHIAcwAsACAAdwBoAGUAcgBlACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAGEAbgBkACAAYQByAGUAIABwAHIAbwB0AGUAYwB0AGUAZAAgAGIAeQAgAHQAaABlACAAYwBvAHAAeQByAGkAZwBoAHQAIABhAG4AZAAgAG8AdABoAGUAcgAgAGkAbgB0AGUAbABsAGUAYwB0AHUAYQBsACAAcAByAG8AcABlAHIAdAB5ACAAbABhAHcAcwAgAG8AZgAgAHQAaABlACAAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAsACAAYgB5ACAAdABoAGUAIABjAG8AcAB5AHIAaQBnAGgAdAAgAGEAbgBkACAAZABlAHMAaQBnAG4AIABsAGEAdwBzACAAbwBmACAAbwB0AGgAZQByACAAbgBhAHQAaQBvAG4AcwAsACAAYQBuAGQAIABiAHkAIABvAHQAaABlAHIAIABpAG4AdABlAHIAbgBhAHQAaQBvAG4AYQBsACAAdAByAGUAYQB0AGkAZQBzAC4AIABBAG4AeQAgAGMAbwBwAGkAZQBzACAAdABoAGEAdAAgAHkAbwB1ACAAYQByAGUAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAZQByAG0AaQB0AHQAZQBkACAAdABvACAAbQBhAGsAZQAgAHAAdQByAHMAdQBhAG4AdAAgAHQAbwAgAHQAaABlACAAQQBnAHIAZQBlAG0AZQBuAHQAIABtAHUAcwB0ACAAYwBvAG4AdABhAGkAbgAgAHQAaABlACAAcwBhAG0AZQAgAGMAbwBwAHkAcgBpAGcAaAB0ACwAIAB0AHIAYQBkAGUAbQBhAHIAawAsACAAYQBuAGQAIABvAHQAaABlAHIAIABwAHIAbwBwAHIAaQBlAHQAYQByAHkAIABuAG8AdABpAGMAZQBzACAAdABoAGEAdAAgAGEAcABwAGUAYQByACAAbwBuACAAbwByACAAaQBuACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIAAgADEAMQAuACAAWQBvAHUAIABhAGcAcgBlAGUAIABuAG8AdAAgAHQAbwAgAGMAcgBlAGEAdABlACwAIABhAHMAcwBpAHMAdAAgAGkAbgAgAGEAbgBkAC8AbwByACAAYwBhAHUAcwBlACAAdABoAGUAIABjAHIAZQBhAHQAaQBvAG4AIABvAGYAIABtAG8AZABpAGYAaQBjAGEAdABpAG8AbgBzACAAbwByACAAYQBkAGQAaQB0AGkAbwBuAHMAIAB0AG8AIAB0AGgAZQAgAEYAbwBuAHQAcwAgAG8AcgAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALAAgAGkAbgBjAGwAdQBkAGkAbgBnACwAIABiAHUAdAAgAG4AbwB0ACAAbABpAG0AaQB0AGUAZAAgAHQAbwAsACAAYwByAGUAYQB0AGkAbgBnACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAHcAZQBpAGcAaAB0AHMAOwAgAGMAcgBlAGEAdABpAG4AZwAgAGEAZABkAGkAdABpAG8AbgBhAGwAIABvAHIAIABkAGUAbABlAHQAaQBuAGcAIABlAHgAaQBzAHQAaQBuAGcAIABjAGgAYQByAGEAYwB0AGUAcgBzADsAIABtAG8AZABpAGYAeQBpAG4AZwAgAGUAeABpAHMAdABpAG4AZwAgAGMAaABhAHIAYQBjAHQAZQByAHMAOwAgAG0AbwBkAGkAZgB5AGkAbgBnACAAZgBvAG4AdAAgAHMAcABhAGMAaQBuAGcAIABhAG4AZAAgAGsAZQByAG4AaQBuAGcAOwAgAG8AcgAgAGMAbwBuAHYAZQByAHQAaQBuAGcAIABmAG8AbgB0AHMAIAB0AG8AIABhAG4AIABhAGwAdABlAHIAbgBhAHQAZQAgAGQAaQBnAGkAdABhAGwAIABmAG8AcgBtAGEAdAAsACAAbQBvAGQAaQBmAHkALAAgAGEAZABhAHAAdAAsACAAdAByAGEAbgBzAGwAYQB0AGUALAAgAHIAZQB2AGUAcgBzAGUAIABlAG4AZwBpAG4AZQBlAHIALAAgAGQAZQBjAG8AbQBwAGkAbABlACwAIABkAGkAcwBhAHMAcwBlAG0AYgBsAGUALAAgAGEAbAB0AGUAcgAsACAAbwByACAAbwB0AGgAZQByAHcAaQBzAGUAIABhAHQAdABlAG0AcAB0ACAAdABvACAAZABpAHMAYwBvAHYAZQByACAAdABoAGUAIABzAG8AdQByAGMAZQAgAGMAbwBkAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB3AGkAdABoAG8AdQB0ACAAZgBpAHIAcwB0ACAAbwBiAHQAYQBpAG4AaQBuAGcAIAB3AHIAaQB0AHQAZQBuACAAcABlAHIAbQBpAHMAcwBpAG8AbgAgAGYAcgBvAG0AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAuACAASQBuACAAdABoAGUAIABlAHYAZQBuAHQAIAB0AGgAYQB0ACAAcABlAHIAbQBpAHMAcwBpAG8AbgAgAGkAcwAgAGcAaQB2AGUAbgAgAHQAbwAgAHkAbwB1ACwAIABhAG4AeQAgAGEAbgBkACAAYQBsAGwAIABtAG8AZABpAGYAaQBjAGEAdABpAG8AbgBzACAAYQBuAGQAIABhAGQAZABpAHQAaQBvAG4AcwAgAHMAaABhAGwAbAAgAGIAZQBjAG8AbQBlACAAYQBuAGQAIABzAGgAYQBsAGwAIAByAGUAbQBhAGkAbgAgAHQAaABlACAAcwBvAGwAZQAgAGEAbgBkACAAZQB4AGMAbAB1AHMAaQB2AGUAIABwAHIAbwBwAGUAcgB0AHkAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGEAbgBkACAAeQBvAHUAIABtAGEAeQAgAG4AbwB0ACAAcwBlAGwAbAAsACAAbABlAG4AZAAgAG8AcgAgAG8AdABoAGUAcgB3AGkAcwBlACAAdAByAGEAbgBzAG0AaQB0ACAAYQBuAHkAIABtAG8AZABpAGYAaQBjAGEAdABpAG8AbgBzACAAbwByACAAYQBkAGQAaQB0AGkAbwBuAHMAIAB0AG8AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB0AG8AIABhAG4AeQAgAHQAaABpAHIAZAAgAHAAYQByAHQAeQAuACAATwB0AGgAZQByACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4AcwAgAG0AYQB5ACAAcAByAG8AdgBpAGQAZQAgAGYAbwByACAAYQBkAGQAaQB0AGkAbwBuAGEAbAAgAHIAaQBnAGgAdABzACwAIABhAG4AZAAgAGkAZgAgAGEAcABwAGwAaQBjAGEAYgBsAGUALAAgAHkAbwB1ACAAbQBhAHkAIAByAGUAdgBlAHIAcwBlACAAZQBuAGcAaQBuAGUAZQByACAAbwByACAAZABlAGMAbwBtAHAAaQBsAGUAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABvAG4AbAB5ACAAdABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHQAaABhAHQAIABzAHUAZgBmAGkAYwBpAGUAbgB0ACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuACAAaQBzACAAbgBvAHQAIABhAHYAYQBpAGwAYQBiAGwAZQAgAGYAbwByACAAdABoAGUAIABwAHUAcgBwAG8AcwBlACAAbwBmACAAYwByAGUAYQB0AGkAbgBnACAAYQBuACAAaQBuAHQAZQByAG8AcABlAHIAYQBiAGwAZQAgAHMAbwBmAHQAdwBhAHIAZQAgAHAAcgBvAGcAcgBhAG0AIAAoAGIAdQB0ACAAbwBuAGwAeQAgAGYAbwByACAAcwB1AGMAaAAgAHAAdQByAHAAbwBzAGUAIABhAG4AZAAgAG8AbgBsAHkAIAB0AG8AIAB0AGgAZQAgAGUAeAB0AGUAbgB0ACAAdABoAGEAdAAgAHMAdQBmAGYAaQBjAGkAZQBuAHQAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIABpAHMAIABuAG8AdAAgAHAAcgBvAHYAaQBkAGUAZAAgAGIAeQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAdQBwAG8AbgAgAHcAcgBpAHQAdABlAG4AIAByAGUAcQB1AGUAcwB0ACkALgAgAEEAbABsACAAdAByAGEAZABlAG0AYQByAGsAcwAgAHMAaABhAGwAbAAgAGIAZQAgAHUAcwBlAGQAIABpAG4AIABhAGMAYwBvAHIAZABhAG4AYwBlACAAdwBpAHQAaAAgAGEAYwBjAGUAcAB0AGUAZAAgAHQAcgBhAGQAZQBtAGEAcgBrACAAcAByAGEAYwB0AGkAYwBlACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAGkAZABlAG4AdABpAGYAaQBjAGEAdABpAG8AbgAgAG8AZgAgAHQAaABlACAAdAByAGEAZABlAG0AYQByAGsAIABvAHcAbgBlAHIAJwBzACAAbgBhAG0AZQAuACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAHQAcgBhAGQAZQBtAGEAcgBrAHMAIABhAHMAcwBvAGMAaQBhAHQAZQBkACAAdwBpAHQAaAAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAbgB1AHIAZQBzACAAcwBvAGwAZQBsAHkAIAB0AG8AIAB0AGgAZQAgAGIAZQBuAGUAZgBpAHQAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAuACAAIAAgADEAMgAuACAAVQBzAGUAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAG4AIAB0AGgAZQAgAGYAbwBsAGwAbwB3AGkAbgBnACAAYwBpAHIAYwB1AG0AcwB0AGEAbgBjAGUAcwAgAGEAbgBkAC8AbwByACAAYQBwAHAAbABpAGMAYQB0AGkAbwBuAHMAIABpAHMAIABOAE8AVAAgAHAAZQByAG0AaQB0AHQAZQBkACAAdwBpAHQAaABvAHUAdAAgAGYAaQByAHMAdAAgAG8AYgB0AGEAaQBuAGkAbgBnACAAdABoAGUAIABhAHAAcAByAG8AcAByAGkAYQB0AGUAIABsAGkAYwBlAG4AcwBpAG4AZwAgAHUAcABnAHIAYQBkAGUALgAgACAAIABhACkAIAAmACMAOQA7AEEATABQAEgAQQBCAEUAVAAgAE8AUgAgAEwARQBUAFQARQBSAEYATwBSAE0ALQBSAEUATABBAFQARQBEACAAUABSAE8ARABVAEMAVABTACAAJgAjADkAOwAmACMAOQA7AEYATwBSACAAUgBFAFMAQQBMAEUAIABPAFIAIABMAEUAVABUAEUAUgBGAE8AUgBNACAAQwBSAEUAQQBUAEkATwBOACAAUABSAE8ARABVAEMAVABTACAATwBSACAARABFAFYASQBDAEUAUwA7ACAAYgApACAAJgAjADkAOwBFAE0AQgBFAEQARABJAE4ARwAgAEkATgAgAEUATABFAEMAVABSAE8ATgBJAEMAIABEAEUAVgBJAEMARQBTADsAIABBAEwATAAgAEcAQQBNAEkATgBHACAAVQBTAEUAUwAgAEEATgBEAC8ATwBSACAARABFAFYASQBDAEUAUwA7ACAAYwApACAAJgAjADkAOwBFAE0AQgBFAEQARABJAE4ARwAgAEkATgAgAFMATwBGAFQAVwBBAFIARQA7ACAAZAApACAAJgAjADkAOwBTAFQATwBSAEkATgBHACAAQQBOAEQALwBPAFIAIABTAEUAUgBWAEkATgBHACAAVABIAEUAIABGAE8ATgBUACAAUwBPAEYAVABXAEEAUgBFACAARgBPAFIAIABUAEgARQAgAFAAVQBSAFAATwBTAEUAUwAgAE8ARgAgAE0AQQBLAEkATgBHACAAVABIAEUAIABGAE8ATgBUACAAUwBPAEYAVABXAEEAUgBFACAAJgAjADkAOwAmACMAOQA7AEEAVgBBAEkATABBAEIATABFACAAVgBJAEEAIABUAEgARQAgAEkATgBUAEUAUgBOAEUAVAAgAFUAUwBJAE4ARwAgAEYATwBOAFQAIABSAEUAUABMAEEAQwBFAE0ARQBOAFQAIABUAEUAQwBIAE4ATwBMAE8ARwBJAEUAUwAuACAAIAAgAGkAKQAgAEwAZQB0AHQAZQByAGYAbwByAG0AIABvAHIAIABBAGwAcABoAGEAYgBlAHQAIABQAHIAbwBkAHUAYwB0AHMAIABpAG4AYwBsAHUAZABlACwAIABiAHUAdAAgAGEAcgBlACAAbgBvAHQAIABsAGkAbQBpAHQAZQBkACAAdABvACwAIABzAGkAZwBuAGEAZwBlACAAYQBuAGQALwBvAHIAIABzAGMAcgBhAHAAYgBvAG8AawBpAG4AZwAgAHUAcwBlAHMAIABpAG4AdgBvAGwAdgBpAG4AZwAgAHIAZQBwAHIAbwBkAHUAYwB0AGkAbwBuAHMAIABvAGYAIABpAG4AZABpAHYAaQBkAHUAYQBsACAAbABlAHQAdABlAHIAZgBvAHIAbQBzACwAIAB1AHMAZQAgAGkAbgAgAHQAaABlACAAYwByAGUAYQB0AGkAbwBuACAAbwBmACAAcwBpAGcAbgBhAGcAZQAgAG8AcgAgAG4AdQBtAGIAZQByAGkAbgBnACAAcAByAG8AZAB1AGMAdABzACwAIAByAHUAYgBiAGUAcgAgAHMAdABhAG0AcABzACwAIABkAGkAZQAtAGMAdQB0ACAAcAByAG8AZAB1AGMAdABzACwAIABzAHQAZQBuAGMAaQBsACAAcAByAG8AZAB1AGMAdABzACwAIAB0AGEAdAB0AG8AbwAsACAAZgBsAGEAcwBoACwAIABvAHIAIABhAGQAaABlAHMAaQB2AGUAIABzAHQAaQBjAGsAZQByACAAYQBsAHAAaABhAGIAZQB0ACAAcAByAG8AZAB1AGMAdABzACAAbwByACAAYQBuAHkAIABvAHQAaABlAHIAIABwAHIAbwBkAHUAYwB0ACAAYwBvAG4AdABhAGkAbgBpAG4AZwAgAGEAbgB5ACAAaQBtAGEAZwBlACAAbwBmACAAbwByACAAZABlAHIAaQB2AGUAZAAgAGYAcgBvAG0AIAB0AGgAZQAgAGQAZQBzAGkAZwBuACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAZQBtAGIAbwBkAGkAZQBkACAAaQBuACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAbwBmACAAdwBoAGkAYwBoACAAYQBuAHkAIABsAGkAawBlAG4AZQBzAHMAIABvAGYAIAB0AGgAZQAgAGEAbABwAGgAYQBiAGUAdAAgAGMAYQBuACAAYgBlACAAcgBlAHAAcgBvAGQAdQBjAGUAZAAuACAAIABpAGkAKQAgAEUAbQBiAGUAZABkAGkAbgBnACAAbwBmACAAdABoAGUAIABGAG8AbgB0AHMAIABpAG4AIABhACAAcAByAGkAbgB0AC8AcAByAGUAdgBpAGUAdwAgAGYAbwByAG0AYQB0ACAAaQBzACAAcABlAHIAbQBpAHQAdABlAGQALgAgAE4AbwB0AHcAaQB0AGgAcwB0AGEAbgBkAGkAbgBnACwAIABlAG0AYgBlAGQAZABpAG4AZwAgAG8AcgAgAG8AdABoAGUAcgAgAHUAcwBlACAAbwBmACAAdABoAGUAIABGAG8AbgB0AHMAIABvAHIAIAB0AGgAZQAgAG8AdQB0AGwAaQBuAGUAcwAgAHQAaABlAHIAZQBvAGYAIABpAG4AIABhAG4AeQAgAG0AZQB0AGgAbwBkACAAdwBoAGkAYwBoACAAcABlAHIAbQBpAHQAcwAgAHQAaABlACAAZQB4AHQAcgBhAGMAdABpAG8AbgAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAG8AZgAgAHQAaABlACAAZABlAHMAaQBnAG4AcwAgAGUAbQBiAG8AZABpAGUAZAAgAHQAaABlAHIAZQBpAG4AIABpAHMAIABlAHgAcAByAGUAcwBzAGwAeQAgAHAAcgBvAGgAaQBiAGkAdABlAGQALgAgAEEAbgB5ACAAcwB1AGMAaAAgAHUAcwBlACAAcgBlAHEAdQBpAHIAZQBzACAAdABoAGUAIABlAHgAcAByAGUAcwBzACAAdwByAGkAdAB0AGUAbgAgAHAAZQByAG0AaQBzAHMAaQBvAG4AIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGEAbgBkACAAbQBhAHkAIABvAHIAIABtAGEAeQAgAG4AbwB0ACAAcgBlAHEAdQBpAHIAZQAgAHQAaABlACAAcAB1AHIAYwBoAGEAcwBlACAAbwBmACAAYQAgAGwAaQBjAGUAbgBzAGUAIAB1AHAAZwByAGEAZABlACAAYQB0ACAAdABoAGUAIABzAG8AbABlACAAZABpAHMAYwByAGUAdABpAG8AbgAgAG8AZgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlAC4AIAAgAGkAaQBpACkAIABJAG4AIAB0AGgAZQAgAGUAdgBlAG4AdAAgAGEAbgB5ACAAZABpAG4AZwBiAGEAdABzACAAbwByACAAbwB0AGgAZQByACAAYQByAHQAIABmAG8AcgBtAHMAIABhAHIAZQAgAHAAYQByAHQAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUALAAgAHUAcwBlACAAbwBmACAAdABoAGUAIABhAHIAdAB3AG8AcgBrACAAaQBzACAAZgB1AHIAdABoAGUAcgAgAHIAZQBzAHQAcgBpAGMAdABlAGQALgAgAFkAbwB1ACAAbQBhAHkAIAB1AHMAZQAgAHQAaABlACAAYQByAHQAdwBvAHIAawAsACAAZAByAGEAdwBpAG4AZwBzACAAYQBuAGQALwBvAHIAIABkAGkAbgBnAGIAYQB0AHMAIABvAG4AIABnAG8AbwBkAHMAIABmAG8AcgAgAHMAYQBsAGUALAAgAGkAbgAgAGwAbwBnAG8AIABkAGUAcwBpAGcAbgAsACAAcgBlAHQAYQBpAGwAIABwAGEAYwBrAGEAZwBpAG4AZwAgAG8AcgAgAGkAbgAgAHAAbwBpAG4AdAAgAG8AZgAgAHMAYQBsAGUAIAB1AHMAZQBzACAAbwBuAGwAeQAgAGEAZgB0AGUAcgAgAHQAaABlACAAcAB1AHIAYwBoAGEAcwBlACAAbwBmACAAYQAgAGwAaQBjAGUAbgBzAGUAIAB1AHAAZwByAGEAZABlAC4AIAAgAEkAbgAgAG8AcgBkAGUAcgAgAHQAbwAgAG8AYgB0AGEAaQBuACAAYQAgAGwAaQBjAGUAbgBzAGUAIAB1AHAAZwByAGEAZABlACwAIAB5AG8AdQAgAG0AdQBzAHQAIABjAG8AbgB0AGEAYwB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIABhAHQAIABpAG4AZgBvAEAAYwBvAG0AbQBlAHIAYwBpAGEAbAB0AHkAcABlAC4AYwBvAG0AIABmAG8AcgAgAG0AbwByAGUAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4ALgAgAEkAZgAgAHkAbwB1ACAAYQByAGUAIAB1AG4AcwB1AHIAZQAgAHcAaABlAHQAaABlAHIAIAB5AG8AdQByACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABzAHAAZQBjAGkAZgBpAGMAYQBsAGwAeQAgAHAAZQByAG0AaQB0AHQAZQBkACAAdQBuAGQAZQByACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACwAIABjAG8AbgB0AGEAYwB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUALgAgACAAMQAzAC4AIABFAG0AYgBlAGQAZABlAGQAIABFAGwAZQBjAHQAcgBvAG4AaQBjACAARABlAHYAaQBjAGUAcwAgAGkAbgBjAGwAdQBkAGUAcwAgAHQAaABlACAAdQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABmAG8AcgAgAGEAbgB5ACAAbwBuAC0AcwBjAHIAZQBlAG4AIABkAGkAcwBwAGwAYQB5ACAAbwByACAAbwBuACAAYQBuACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAZQB2AGkAYwBlACAAbwB1AHQAcwBpAGQAZQAgAGEAIABzAGkAbgBnAGwAZQAgAGwAbwBjAGEAdABpAG8AbgAuACAARgBvAHIAIABlAHgAYQBtAHAAbABlACwAIABhAG4AZAAgAG4AbwB0ACAAYgB5ACAAdwBhAHkAIABvAGYAIABsAGkAbQBpAHQAYQB0AGkAbwBuACwAIABzAHUAYwBoACAAZQBsAGUAYwB0AHIAbwBuAGkAYwAgAGQAZQB2AGkAYwBlAHMAIABpAG4AYwBsAHUAZABlACAAYQAgAGsAaQBvAHMAawAsACAAZwBhAG0AaQBuAGcAIABkAGUAdgBpAGMAZQBzACwAIABlAG0AYgByAG8AaQBkAGUAcgB5ACAAbwByACAAcwBlAHcAaQBuAGcAIABtAGEAYwBoAGkAbgBlAHMAIABnAGEAbQBlACAAcABsAGEAeQBpAG4AZwAgAG8AcgAgAGcAYQBtAGIAbABpAG4AZwAgAGQAZQB2AGkAYwBlAHMALAAgAGkAcgByAGUAcwBwAGUAYwB0AGkAdgBlACAAbwBmACAAdwBoAGUAdABoAGUAcgAgAHQAaABlACAAcwBoAG8AdwBpAG4AZwAgAG8AcgAgAGMAcgBlAGEAdABpAG8AbgAgAG8AZgAgAGMAbwBwAGkAZQBzACAAbwBmACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAGUAbQBiAG8AZABpAGUAZAAgAGkAbgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGMAcgBlAGEAdABlAGQAIABiAHkAIAB1AHMAZQAgAG8AZgAgAHQAaABlACAAcwBvAGYAdAB3AGEAcgBlACAAbwByACAAYQBzACAAYQBuACAAaQBtAGEAZwBlACAAbwBmACAAdABoAGUAIABkAGUAcwBpAGcAbgAgAGkAbgAgAHQAaQBmAGYALAAgAGcAaQBmACAAbwByACAAbwB0AGgAZQByACAAZgBvAHIAbQBhAHQALgAgACAAIAAxADQALgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGkAcwAgAGwAaQBjAGUAbgBzAGUAZAAgAGYAbwByACAAdQBzAGUAIABiAHkAIABhACAAcwBwAGUAYwBpAGYAaQBlAGQAIABuAHUAbQBiAGUAcgAgAG8AZgAgAHUAcwBlAHIAcwAuACAAVQBzAGUAIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAG4AIABtAG8AcgBlACAAdABoAGEAbgAgAG8AbgBlACAAZwBlAG8AZwByAGEAcABoAGkAYwAgAGwAbwBjAGEAdABpAG8AbgAgAG8AcgAgAGIAeQAgAG0AZQBhAG4AcwAgAG8AZgAgAHMAZQByAHYAZQByACAAbwByACAAYwBlAG4AdAByAGEAbAAgAEMAUABVACAAbwB1AHQAcwBpAGQAZQAgAG8AZgAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAeQBvAHUAcgAgAGwAaQBjAGUAbgBzAGUAIABpAHMAIABwAGUAcgBtAGkAdAB0AGUAZAAgAHAAcgBvAHYAaQBkAGUAZAAgAHQAaABlACAAZQBhAGMAaAAgAHUAcwBlAHIAIABvAHIAIABwAG8AdABlAG4AdABpAGEAbAAgAHUAcwBlAHIAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQALgAgAEwAaQBjAGUAbgBzAGUAIAB1AHAAZwByAGEAZABlAHMAIABtAGEAeQAgAGIAZQAgAHAAdQByAGMAaABhAHMAZQBkACAAZgByAG8AbQAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQB0ACAAaQBuAGYAbwBAAGMAbwBtAG0AZQByAGMAaQBhAGwAdAB5AHAAZQAuAGMAbwBtAC4AIAAgADEANQAuACAARQB4AGMAZQBwAHQAIABhAHMAIABtAGEAeQAgAGIAZQAgAG8AdABoAGUAcgB3AGkAcwBlACAAZQB4AHAAcgBlAHMAcwBsAHkAIABwAHIAbwB2AGkAZABlAGQAIABmAG8AcgAgAGgAZQByAGUAaQBuACwAIAB5AG8AdQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAYQBnAHIAZQBlACAAbgBvAHQAIAB0AG8AIAByAGUAbgB0ACwAIABsAGUAYQBzAGUALAAgAHMAdQBiAGwAaQBjAGUAbgBzAGUALAAgAGcAaQB2AGUALAAgAGwAZQBuAGQALAAgAG8AcgAgAGYAdQByAHQAaABlAHIAIABkAGkAcwB0AHIAaQBiAHUAdABlACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlAC4AIABZAG8AdQAgAG0AYQB5ACAAdAByAGEAbgBzAGYAZQByACAAYQBsAGwAIAB5AG8AdQByACAAcgBpAGcAaAB0AHMAIAB1AG4AZABlAHIAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABhAG4AbwB0AGgAZQByACAAcABlAHIAcwBvAG4AIABvAHIAIABlAG4AdABpAHQAeQAgAHAAcgBvAHYAaQBkAGUAZAAgAHQAaABhAHQAIAAoAGkAKQAgAHQAaABlACAAdAByAGEAbgBzAGYAZQByAGUAZQAgAGEAYwBjAGUAcAB0AHMAIABhAG4AZAAgAGEAZwByAGUAZQBzACAAdABvACAAYgBlACAAYgBvAHUAbgBkACAAYgB5ACAAYQBsAGwAIAB0AGgAZQAgAHQAZQByAG0AcwAgAGEAbgBkACAAYwBvAG4AZABpAHQAaQBvAG4AcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAsACAAYQBuAGQAIAAoAGkAaQApACAAeQBvAHUAIABkAGUAcwB0AHIAbwB5ACAAYQBsAGwAIABjAG8AcABpAGUAcwAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAsACAAaQBuAGMAbAB1AGQAaQBuAGcAIABhAGwAbAAgAGMAbwBwAGkAZQBzACAAcwB0AG8AcgBlAGQAIABpAG4AIAB0AGgAZQAgAG0AZQBtAG8AcgB5ACAAbwBmACAAYQAgAGgAYQByAGQAdwBhAHIAZQAgAGQAZQB2AGkAYwBlAC4AIAAgADEANgAuACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIAB3AGEAcgByAGEAbgB0AHMAIAB0AGgAYQB0ACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAdwBpAGwAbAAgAHAAZQByAGYAbwByAG0AIABzAHUAYgBzAHQAYQBuAHQAaQBhAGwAbAB5ACAAaQBuACAAYQBjAGMAbwByAGQAYQBuAGMAZQAgAHcAaQB0AGgAIABpAHQAcwAgAGQAbwBjAHUAbQBlAG4AdABhAHQAaQBvAG4AIABmAG8AcgAgAG4AaQBuAGUAdAB5ACAAKAA5ADAAKQAgAGQAYQB5AHMAIABmAG8AbABsAG8AdwBpAG4AZwAgAGQAZQBsAGkAdgBlAHIAeQAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAuACAAVABvACAAbQBhAGsAZQAgAGEAIAB3AGEAcgByAGEAbgB0AHkAIABjAGwAYQBpAG0ALAAgAHkAbwB1ACAAbQB1AHMAdAAgAGUAaQB0AGgAZQByACAAcgBlAHQAdQByAG4AIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB0AG8AIAB0AGgAZQAgAGwAbwBjAGEAdABpAG8AbgAgAGYAcgBvAG0AIAB3AGgAaQBjAGgAIAB5AG8AdQAgAG8AYgB0AGEAaQBuAGUAZAAgAGkAdAAgAHQAbwBnAGUAdABoAGUAcgAgAHcAaQB0AGgAIABhACAAYwBvAHAAeQAgAG8AZgAgAHkAbwB1AHIAIABzAGEAbABlAHMAIAByAGUAYwBlAGkAcAB0ACAAbwByACwAIABpAGYAIABhAGMAcQB1AGkAcgBlAGQAIABvAG4ALQBsAGkAbgBlACwAIABjAG8AbgB0AGEAYwB0ACAAdABoAGUAIABvAG4ALQBsAGkAbgBlACAAcAByAG8AdgBpAGQAZQByACAAdwBpAHQAaAAgAHMAdQBmAGYAaQBjAGkAZQBuAHQAIABpAG4AZgBvAHIAbQBhAHQAaQBvAG4AIAByAGUAZwBhAHIAZABpAG4AZwAgAHkAbwB1AHIAIABhAGMAcQB1AGkAcwBpAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIAB0AG8AIABwAGUAcgBtAGkAdAAgAHQAaABlACAAYwBvAG4AZgBpAHIAbQBhAHQAaQBvAG4AIABvAGYAIAB0AGgAZQAgAGUAZgBmAGUAYwB0AGkAdgBlACAAZABhAHQAZQAgAG8AZgAgAHQAaABpAHMAIABMAGkAYwBlAG4AcwBlAC4AIABTAGMAaAB3AGEAcgB0AHoAYwBvACwAIABJAG4AYwAuACAAYQBuAGQAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGgAZQByAGUAYgB5ACAARQBYAFAAUgBFAFMAUwBMAFkAIABEAEkAUwBDAEwAQQBJAE0AUwAgAEEATABMACAAVwBBAFIAUgBBAE4AVABJAEUAUwAsACAARQBYAFAAUgBFAFMAUwAgAEEATgBEACAASQBNAFAATABJAEUARAAsACAASQBOAEMATABVAEQASQBOAEcALAAgAEIAVQBUACAATgBPAFQAIABMAEkATQBJAFQARQBEACAAVABPACwAIABUAEgARQAgAEkATQBQAEwASQBFAEQAIABXAEEAUgBSAEEATgBUAEkARQBTACAATwBGACAATQBFAFIAQwBIAEEATgBUAEEAQgBJAEwASQBUAFkAIABBAE4ARAAgAEYASQBUAE4ARQBTAFMAIABGAE8AUgAgAEEAIABQAEEAUgBUAEkAQwBVAEwAQQBSACAAUABVAFIAUABPAFMARQAuACAAQwBPAE0ATQBFAFIAQwBJAEEATAAgAFQAWQBQAEUAIABEAE8ARQBTACAATgBPAFQAIABXAEEAUgBSAEEATgBUACAAVABIAEEAVAAgAFQASABFACAATwBQAEUAUgBBAFQASQBPAE4AIABPAEYAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIABXAEkATABMACAAQgBFACAAVQBOAEkATgBUAEUAUgBSAFUAUABUAEUARAAgAE8AUgAgAEUAUgBSAE8AUgAtAEYAUgBFAEUALAAgAE8AUgAgAFQASABBAFQAIABUAEgARQAgAEYATwBOAFQAIABTAE8ARgBUAFcAQQBSAEUAIABJAFMAIABXAEkAVABIAE8AVQBUACAARABFAEYARQBDAFQAUwAuACAAVQBOAEQARQBSACAATgBPACAAQwBJAFIAQwBVAE0AUwBUAEEATgBDAEUAUwAgAFMASABBAEwATAAgAEMATwBNAE0ARQBSAEMASQBBAEwAIABUAFkAUABFACAAQgBFACAATABJAEEAQgBMAEUAIABUAE8AIABZAE8AVQAgAE8AUgAgAEEATgBZACAATwBUAEgARQBSACAAUABBAFIAVABZACwAIABXAEgARQBUAEgARQBSACAASQBOACAAQwBPAE4AVABSAEEAQwBUACAATwBSACAAVABPAFIAVAAgACgASQBOAEMATABVAEQASQBOAEcAIABOAEUARwBMAEkARwBFAE4AQwBFACkAIABPAFIAIABPAFQASABFAFIAVwBJAFMARQAsACAARgBPAFIAIABBAE4AWQAgAFMAUABFAEMASQBBAEwALAAgAEMATwBOAFMARQBRAFUARQBOAFQASQBBAEwALAAgAE8AUgAgAEkATgBDAEkARABFAE4AVABBAEwAIABEAEEATQBBAEcARQBTACwAIABJAE4AQwBMAFUARABJAE4ARwAgAEwATwBTAFQAIABQAFIATwBGAEkAVABTACwAIABTAEEAVgBJAE4ARwBTACAATwBSACAAQgBVAFMASQBOAEUAUwBTACAASQBOAFQARQBSAFIAVQBQAFQASQBPAE4AIABBAFMAIABBACAAUgBFAFMAVQBMAFQAIABPAEYAIABUAEgARQAgAFUAUwBFACAATwBGACAAVABIAEUAIABGAE8ATgBUACAAUwBPAEYAVABXAEEAUgBFACAARQBWAEUATgAgAEkARgAgAE4ATwBUAEkARgBJAEUARAAgAEkATgAgAEEARABWAEEATgBDAEUAIABPAEYAIABTAFUAQwBIACAAUABPAFMAUwBJAEIASQBMAEkAVABZAC4AIABZAG8AdQAgAGgAZQByAGUAYgB5ACAAYQBnAHIAZQBlACAAdABoAGEAdAAgAHkAbwB1AHIAIABlAG4AdABpAHIAZQAsACAAZQB4AGMAbAB1AHMAaQB2AGUALAAgAGEAbgBkACAAYwB1AG0AdQBsAGEAdABpAHYAZQAgAGwAaQBhAGIAaQBsAGkAdAB5ACAAYQBuAGQAIAByAGUAbQBlAGQAeQAgAHMAaABhAGwAbAAgAGIAZQAgAGwAaQBtAGkAdABlAGQAIAB0AG8AIAB0AGgAZQAgAHAAdQByAGMAaABhAHMAZQAgAHAAcgBpAGMAZQAgAG8AZgAgAHQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAATABpAGMAZQBuAHMAZQAuACAAVQBuAGQAZQByACAAbgBvACAAYwBpAHIAYwB1AG0AcwB0AGEAbgBjAGUAcwAgAHMAaABhAGwAbAAgAFMAYwBoAHcAYQByAHQAegBjAG8ALAAgAEkAbgBjAC4AJwBzACAAbwByACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAJwBzACAAbABpAGEAYgBpAGwAaQB0AHkAIAB0AG8AIAB5AG8AdQAgAGUAeABjAGUAZQBkACAAZQBpAHQAaABlAHIAIAB0AGgAZQAgAHIAZQBmAHUAbgBkAGkAbgBnACAAbwBmACAAdABoAGUAIABjAG8AcwB0ACAAbwBmACAAdABoAGUAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAATABpAGMAZQBuAHMAZQAgAG8AcgAgAHIAZQBwAGwAYQBjAGUAbQBlAG4AdAAgAG8AZgAgAHQAaABlACAARgBvAG4AdAAgAFMAbwBmAHQAdwBhAHIAZQAgAGUAaQB0AGgAZQByACAAbwBmACAAdwBoAGkAYwBoACAAcwBoAGEAbABsACAAYgBlACAAYQB0ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAJwBzACAAcwBvAGwAZQAgAGQAaQBzAGMAcgBlAHQAaQBvAG4ALgAgACAAMQA3AC4AIABPAFQASABFAFIAIABMAEEAVwAgAC0AIABDAE8ATgBTAFUATQBFAFIAUwAgAE8ATgBMAFkALgAgAFMAbwBtAGUAIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgBzACAAZABvACAAbgBvAHQAIABhAGwAbABvAHcAIAB0AGgAZQAgAGUAeABjAGwAdQBzAGkAbwBuACAAbwByACAAbABpAG0AaQB0AGEAdABpAG8AbgAgAG8AZgAgAGkAbgBjAGkAZABlAG4AdABhAGwALAAgAGMAbwBuAHMAZQBxAHUAZQBuAHQAaQBhAGwAIABvAHIAIABzAHAAZQBjAGkAYQBsACAAZABhAG0AYQBnAGUAcwAsACAAaQBtAHAAbABpAGUAZAAgAHcAYQByAHIAYQBuAHQAaQBlAHMAIABvAHIAIABpAG0AcABsAGkAZQBkACAAdwBhAHIAcgBhAG4AdABpAGUAcwAgAGEAcwAgAHQAaABlAHkAIAByAGUAbABhAHQAZQAgAHQAbwAgAHMAYQBsAGUAcwAgAHQAbwAgAGMAbwBuAHMAdQBtAGUAcgBzAC4AIABBAE4AWQAgAEkATQBQAEwASQBFAEQAIABXAEEAUgBSAEEATgBUAFkAIABPAFIAIABPAFQASABFAFIAIABSAEkARwBIAFQAIABDAFIARQBBAFQARQBEACAAQgBZACAATABBAFcAIABJAFMAIABPAE4ATABZACAARQBGAEYARQBDAFQASQBWAEUAIABGAE8AUgAgAFQASABFACAATgBJAE4ARQBUAFkAIAAoADkAMAApACAARABBAFkAIABXAEEAUgBSAEEATgBUAFkAIABQAEUAUgBJAE8ARAAuACAAVABIAEUAUgBFACAAQQBSAEUAIABOAE8AIABXAEEAUgBSAEEATgBUAEkARQBTACAATwBSACAAQwBPAE4ARABJAFQASQBPAE4AUwAgAE8ARgAgAEEATgBZACAASwBJAE4ARAAgAEEARgBUAEUAUgAgAFQASABFACAATgBJAE4ARQBUAFkAIAAoADkAMAApACAARABBAFkAIABXAEEAUgBSAEEATgBUAFkAIABQAEUAUgBJAE8ARAAuACAAVABvACAAdABoAGUAIABlAHgAdABlAG4AdAAgAHAAZQByAG0AaQBzAHMAaQBiAGwAZQAgAGIAeQAgAGwAYQB3ACwAIAB5AG8AdQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIABhAGwAbAAgAGkAbQBwAGwAaQBlAGQAIAB3AGEAcgByAGEAbgB0AGkAZQBzACAAYQByAGUAIABuAG8AdAAgAHQAbwAgAGIAZQAgAGUAZgBmAGUAYwB0AGkAdgBlACAAZgBvAHIAIABtAG8AcgBlACAAdABoAGEAbgAgAHQAaABpAHIAdAB5ACAAKAAzADAAKQAgAGQAYQB5AHMALgAgACAAIAAxADgALgAgAFkAbwB1ACAAZQB4AHAAcgBlAHMAcwBsAHkAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAcwBoAGEAbABsACAAYgBlACAAZwBvAHYAZQByAG4AZQBkACAAYgB5ACAAdABoAGUAIABsAGEAdwBzACAAbwBmACAAdABoAGUAIABTAHQAYQB0AGUAIABvAGYAIABOAGUAdwAgAFkAbwByAGsALAAgAFUALgBTAC4AQQAuACwAIABhAHMAIAB0AGgAZQB5ACAAYQBwAHAAbAB5ACAAdABvACAAYwBvAG4AdAByAGEAYwB0AHMAIABlAG4AdABlAHIAZQBkACAAaQBuAHQAbwAgAGEAbgBkACAAdwBoAG8AbABsAHkAIABwAGUAcgBmAG8AcgBtAGUAZAAgAHQAaABlAHIAZQBpAG4AIABhAG4AZAAgAHcAaQB0AGgAbwB1AHQAIAByAGUAcwBwAGUAYwB0ACAAdABvACAAaQB0AHMAIABjAG8AbgBmAGwAaQBjAHQAIABvAGYAIABsAGEAdwBzACAAcAByAG8AdgBpAHMAaQBvAG4AcwAgAG8AcgAgAHQAaABlACAAYwBvAG4AZgBsAGkAYwB0ACAAbwBmACAAbABhAHcAcwAgAHAAcgBvAHYAaQBzAGkAbwBuAHMAIABvAGYAIABhAG4AeQAgAG8AdABoAGUAcgAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuAC4AIABZAG8AdQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcwB1AGIAbQBpAHQAIAB0AG8AIAB0AGgAZQAgAHAAZQByAHMAbwBuAGEAbAAgAGoAdQByAGkAcwBkAGkAYwB0AGkAbwBuACAAbwBmACAAdABoAGUAIABzAHQAYQB0AGUAIABhAG4AZAAgAGYAZQBkAGUAcgBhAGwAIABjAG8AdQByAHQAcwAgAGkAbgAgAHQAaABlACAAUwB0AGEAdABlACAAbwBmACAATgBlAHcAIABZAG8AcgBrACwAIABVAFMAQQAsACAAYQBnAHIAZQBlACAAdABvACAAdwBhAGkAdgBlACAAYQBuAHkAIABkAGUAZgBlAG4AcwBlAHMAIABhAHIAaQBzAGkAbgBnACAAbwB1AHQAIABvAGYAIAB0AGgAZQAgAHMAZQBsAGUAYwB0AGkAbwBuACAAbwBmACAAagB1AHIAaQBzAGQAaQBjAHQAaQBvAG4AIABvAHIAIAB2AGUAbgB1AGUAIABhAG4AZAAgAGYAdQByAHQAaABlAHIAIABhAGcAcgBlAGUAIAB0AG8AIABzAGUAcgB2AGkAYwBlACAAbwBmACAAcAByAG8AYwBlAHMAcwAgAGIAeQAgAG0AYQBpAGwALgAgAFkAbwB1ACAAaABlAHIAZQBiAHkAIABlAHgAcAByAGUAcwBzAGwAeQAgAGEAZwByAGUAZQAgAHQAaABhAHQAIAB0AGgAZQAgAGEAcABwAGwAaQBjAGEAdABpAG8AbgAgAG8AZgAgAHQAaABlACAAVQBuAGkAdABlAGQAIABOAGEAdABpAG8AbgBzACAAQwBvAG4AdgBlAG4AdABpAG8AbgAgAG8AZgAgAEMAbwBuAHQAcgBhAGMAdABzACAAZgBvAHIAIAB0AGgAZQAgAEkAbgB0AGUAcgBuAGEAdABpAG8AbgBhAGwAIABTAGEAbABlACAAbwBmACAARwBvAG8AZABzACAAaQBzACAAZQB4AHAAcgBlAHMAcwBsAHkAIABlAHgAYwBsAHUAZABlAGQALgAgACAAMQA5AC4AIABZAG8AdQAgAGEAYwBrAG4AbwB3AGwAZQBkAGcAZQAgAHQAaABhAHQAIAB5AG8AdQAgAGgAYQB2AGUAIAByAGUAYQBkACAAYQBuAGQAIAB1AG4AZABlAHIAcwB0AGEAbgBkACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAYQBuAGQAIAB0AGgAYQB0ACAAYgB5ACAAdQBzAGkAbgBnACAAdABoAGUAIABzAG8AZgB0AHcAYQByAGUAIAB5AG8AdQAgAGEAZwByAGUAZQAgAHQAbwAgAGIAZQAgAGIAbwB1AG4AZAAgAGIAeQAgAGkAdABzACAAdABlAHIAbQBzACAAYQBuAGQAIABjAG8AbgBkAGkAdABpAG8AbgBzAC4AIABZAG8AdQAgAGYAdQByAHQAaABlAHIAIABhAGcAcgBlAGUAIAB0AGgAYQB0ACAAaQB0ACAAaQBzACAAdABoAGUAIABjAG8AbQBwAGwAZQB0AGUAIABhAG4AZAAgAGUAeABjAGwAdQBzAGkAdgBlACAAcwB0AGEAdABlAG0AZQBuAHQAIABvAGYAIAB0AGgAZQAgAGEAZwByAGUAZQBtAGUAbgB0ACAAYgBlAHQAdwBlAGUAbgAgAEMAbwBtAG0AZQByAGMAaQBhAGwAIABUAHkAcABlACAAYQBuAGQAIAB5AG8AdQAgAHcAaABpAGMAaAAgAHMAdQBwAGUAcgBzAGUAZABlAHMAIABhAG4AeQAgAHAAcgBvAHAAbwBzAGEAbAAgAG8AcgAgAHAAcgBpAG8AcgAgAGEAZwByAGUAZQBtAGUAbgB0ACwAIABvAHIAYQBsACAAbwByACAAdwByAGkAdAB0AGUAbgAsACAAYQBuAGQAIABhAG4AeQAgAG8AdABoAGUAcgAgAGMAbwBtAG0AdQBuAGkAYwBhAHQAaQBvAG4AcwAgAHIAZQBsAGEAdABpAG4AZwAgAHQAbwAgAHQAaABlACAAcwB1AGIAagBlAGMAdAAgAG0AYQB0AHQAZQByACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0AC4AIABOAG8AIAB2AGEAcgBpAGEAdABpAG8AbgAgAG8AZgAgAHQAaABlACAAdABlAHIAbQBzACAAbwBmACAAdABoAGkAcwAgAEEAZwByAGUAZQBtAGUAbgB0ACAAbwByACAAYQBuAHkAIABkAGkAZgBmAGUAcgBlAG4AdAAgAHQAZQByAG0AcwAgAHcAaQBsAGwAIABiAGUAIABlAG4AZgBvAHIAYwBlAGEAYgBsAGUAIABpAG4AIAB0AGgAZQAgAGEAYgBzAGUAbgBjAGUAIABvAGYAIABhAG4AIABlAHgAcAByAGUAcwBzACAAdwByAGkAdAB0AGUAbgAgAGEAbQBlAG4AZABtAGUAbgB0ACwAIABvAHIAIABjAG8AbgBzAGUAbgB0ACwAIABpAG4AYwBsAHUAZABpAG4AZwAgAGEAIAB3AHIAaQB0AHQAZQBuACAAZQB4AHAAcgBlAHMAcwAgAHcAYQBpAHYAZQByACAAbwBmACAAdABoAGUAIABhAGYAZgBlAGMAdABlAGQAIAB0AGUAcgBtAHMAIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQALgAgAEkAZgAgAGEAbgB5ACAAcAByAG8AdgBpAHMAaQBvAG4AIABvAGYAIAB0AGgAaQBzACAAQQBnAHIAZQBlAG0AZQBuAHQAIABpAHMAIABkAGUAYwBsAGEAcgBlAGQAIABiAHkAIABhACAAYwBvAHUAcgB0ACAAbwBmACAAYwBvAG0AcABlAHQAZQBuAHQAIABqAHUAcgBpAHMAZABpAGMAdABpAG8AbgAgAHQAbwAgAGIAZQAgAGkAbgB2AGEAbABpAGQALAAgAHYAbwBpAGQAIABvAHIAIAB1AG4AZQBuAGYAbwByAGMAZQBhAGIAbABlACwAIAB0AGgAZQAgAHIAZQBtAGEAaQBuAGkAbgBnACAAcAByAG8AdgBpAHMAaQBvAG4AcwAgAG8AZgAgAHQAaABpAHMAIABBAGcAcgBlAGUAbQBlAG4AdAAgAHMAaABhAGwAbAAgAGMAbwBuAHQAaQBuAHUAZQAgAGkAbgAgAGYAdQBsAGwAIABmAG8AcgBjAGUAIABhAG4AZAAgAGUAZgBmAGUAYwB0ACwAIABhAG4AZAAgAHQAaABlACAAaQBuAHYAYQBsAGkAZAAgAHAAcgBvAHYAaQBzAGkAbwBuACAAcwBoAGEAbABsACAAYgBlACAAcgBlAHAAbABhAGMAZQBkACAAYgB5ACAAQwBvAG0AbQBlAHIAYwBpAGEAbAAgAFQAeQBwAGUAIAB3AGkAdABoACAAYQAgAHAAcgBvAHYAaQBzAGkAbwBuACAAdABoAGEAdAAgAGUAZgBmAGUAYwB0AHMAIAB0AGgAZQAgAGkAbgB0AGUAbgB0ACAAbwBmACAAdABoAGUAIABpAG4AdgBhAGwAaQBkACAAcAByAG8AdgBpAHMAaQBvAG4ALgAgACAAMgAwAC4AIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcgBlAHMAZQByAHYAZQBzACAAdABoAGUAIAByAGkAZwBoAHQAIAB0AG8AIABhAG0AZQBuAGQAIABvAHIAIABtAG8AZABpAGYAeQAgAGkAdABzACAATABpAGMAZQBuAHMAZQAgAEEAZwByAGUAZQBtAGUAbgB0AHMAIABhAHQAIABhAG4AeQAgAHQAaQBtAGUAIABhAG4AZAAgAHcAaQB0AGgAbwB1AHQAIABwAHIAaQBvAHIAIABuAG8AdABpAGYAaQBjAGEAdABpAG8AbgAuACAAIAAyADEALgAgAFQAaABlACAAQQBnAHIAZQBlAG0AZQBuAHQAIABzAGgAYQBsAGwAIABhAHUAdABvAG0AYQB0AGkAYwBhAGwAbAB5ACAAdABlAHIAbQBpAG4AYQB0AGUAIABpAG4AIAB0AGgAZQAgAGUAdgBlAG4AdAAgAHkAbwB1ACAAbwByACAAYQBuAHkAIABhAHUAdABoAG8AcgBpAHoAZQBkACAAdQBzAGUAcgAgAGIAcgBlAGEAYwBoAGUAcwAgAGEAbgB5ACAAdABlAHIAbQAgAG8AcgAgAGMAbwBuAGQAaQB0AGkAbwBuACAAcwBlAHQAIABmAG8AcgB0AGgAIABoAGUAcgBlAGkAbgAuACAATgBvAHQAdwBpAHQAaABzAHQAYQBuAGQAaQBuAGcAIABhAG4AeQAgAHQAZQByAG0AaQBuAGEAdABpAG8AbgAgAG8AZgAgAHQAaABpAHMAIABMAGkAYwBlAG4AcwBlACwAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAgAGUAeABwAHIAZQBzAHMAbAB5ACAAcgBlAHMAZQByAHYAZQBzACAAYQBuAHkAIABhAG4AZAAgAGEAbABsACAAbwB0AGgAZQByACAAcgBpAGcAaAB0AHMAIABhAG4AZAAgAHIAZQBtAGUAZABpAGUAcwAgAHUAbgBkAGUAcgAgAGUAcQB1AGkAdAB5ACAAbwByACAAbABhAHcALgAgAFQAaABlACAAQQBnAHIAZQBlAG0AZQBuAHQAIABtAGEAeQAgAG8AbgBsAHkAIABiAGUAIABtAG8AZABpAGYAaQBlAGQAIABpAG4AIABhACAAdwByAGkAdABpAG4AZwAgAHMAaQBnAG4AZQBkACAAYgB5ACAAYQBuACAAYQB1AHQAaABvAHIAaQB6AGUAZAAgAG8AZgBmAGkAYwBlAHIAIABvAGYAIABDAG8AbQBtAGUAcgBjAGkAYQBsACAAVAB5AHAAZQAuACAAIAAyADIALgAgAFkAbwB1ACAAYQBnAHIAZQBlACAAdABvACAAYgBlACAAcgBlAHMAcABvAG4AcwBpAGIAbABlACAAZgBvAHIAIABjAG8AbQBwAGwAaQBhAG4AYwBlACAAdwBpAHQAaAAgAGEAbABsACAAbABhAHcAcwAsACAAZgBvAHIAZQBpAGcAbgAgAGEAbgBkACAAZABvAG0AZQBzAHQAaQBjACAAcgBlAGwAYQB0AGkAbgBnACAAdABvACAAdABoAGUAIABjAG8AbgB0AHIAbwBsACAAbwBmACAAZQB4AHAAbwByAHQAcwAgAG8AcgAgAHQAaABlACAAdAByAGEAbgBzAGYAZQByACAAbwBmACAAdABlAGMAaABuAG8AbABvAGcAeQAuACAASQBmACAAeQBvAHUAIABhAHIAZQAgAHAAdQByAGMAaABhAHMAaQBuAGcAIAB0AGgAaQBzACAATABpAGMAZQBuAHMAZQAgAGYAbwByACAAZwBvAHYAZQByAG4AbQBlAG4AdAAgAHUAcwBlACwAIABvAHIAIAB1AG4AZABlAHIAIABhACAAZwBvAHYAZQByAG4AbQBlAG4AdAAgAGMAbwBuAHQAcgBhAGMAdAAsACAAeQBvAHUAIABhAGcAcgBlAGUAIAB0AG8AIABmAGEAbQBpAGwAaQBhAHIAaQB6AGUAIAB5AG8AdQByAHMAZQBsAGYAIAB3AGkAdABoACAAYQBuAGQAIABmAG8AbABsAG8AdwAgAGEAbgB5ACAAYQBwAHAAbABpAGMAYQBiAGwAZQAgAHIAdQBsAGUAcwAgAGEAbgBkACAAcgBlAGcAdQBsAGEAdABpAG8AbgBzACAAcgBlAGwAYQB0AGkAbgBnACAAdABvACAAdABoAGUAIABwAHUA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AAAAAAAAAAD/5//iAAD/7P/s/9gAAP/xAAAAAP/s//b/8QAA//sAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+cAAAAA/5wAAAAAAAAAAAAAAAAABQAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAA//EAAP/7AAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7X/zv+1AAD/9v/nAAD/+//T/+cAAP/7AAAAAP/Y//v/3QAA//v/xP/x/84AAP+//84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7//v/+wAF//b/8QAAAAD/7P/xAAAAAAAAAAD/8f/7/+wAAAAAAAD/9gAAAAD/+//7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//v/8f/iAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAD/+wAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/3f/dAAD/4v/d/8QAAP/nAAD/+//i/+f/0wAA//YAAP/2//sAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/iP+w/3QABf/2//EAAAAA/87/5wAAAAUAAAAA/9MAAP/dAAD/9v+w/+z/tQAA/5f/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5//x//H/2AAAAAAAAP/2AAAAAAAAAAAAAP/xAAAAAAAAAAAAAAAA//EAAAAAAAD/7AAA/+L/8f/7//v/+wAAAAAAAAAAAAAAAAAAAAAAAAAA//v/9v/iAAD/9gAAAAD/+wAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/7P/s/9gAAAAAAAAAAAAA//YAAAAAAAAAAAAA//YAAAAAAAAAAP/7AAAAAAAA/+f/+//2AAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAD/tQAFAAUABQAA/5L/8QAA/7X/9v+6/93/tf+c/9P/+//d//H/7AAAAAAAAAAAAAAABQAFAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9MABQAAAAAAAP/O//YAAP/Y//b/3f/n/9P/pv/d//v/4v/2//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAD/ugAFAAAAAAAA/6H/4gAA/6v/2P+r/8T/q/+X/7X/4v/E/87/2P/2AAAAAAAAAAAAAAAAAAAAAAAAAAD/0wAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAP/7AAAAAP/2AAAAAP/2AAAAAAAAAAAAAP/7AAD/+wAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAP/7AAAAAAAAAAD/8QAAAAD/+wAA//sAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAP/2AAAAAAAA//v/zgAAAAAAAAAFAAAAAAAtAAAALQAtAAAAKAAAAAAAAAAAAAAAGQAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/n/7r/3f+rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/JAAD/2P/2AAAAAAAAAAD/+//7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD/8QAA//YAAP/7AAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAD/8QAA//YAAAAA/+wAAP/7//YAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAP/2AAD/+//7AAD/5wAAAAD/9gAA//EAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAAAAAAAAAD/nP+m/5IAAAAA//EAAAAA/9MAAAAAAAAAAAAA/84AAP/TAAAAAP/T//b/0wAA/5cAAAAA/+cAAAAAAAAAAP+6/8kAAAAAAAAAAAAAAAD/xAAA//v/+wAAAAAAAAAAAAAAAAAAAAAAAP/TAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAP+/AAAAAAAAAAD/8QAAAAD/+wAAAAAAAP/7/9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAD/9v/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+1AAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAP/2AAD/9gAAAAD/8QAAAAD/+wAA//sAAAAAAAAAAP/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7/+wAAAAA//sAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAA/9MAAAAFAAAACgAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAA//b/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAEYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAIAAwACAAcAAAAJAA4ABgAQAEkADAABAAIASAAsACwAKQAlACkADwAAAA0ADAAGAAUACwAKAAAABwAJABAAAAARABgAEgABABMAFAAUABUAFgAXABQAFAAYAAIAGAAZABoAGwAcAAMAHQAEAB4AHwAgACgAIQA1ACIAIwAkACcAMwA0ACYANQAnACcAKAAoAAgALQAuAC8AMAAxADEADgAxADIAKgArACoAKwABAAIASQAYABgADgALAA4AJQAhAB4AHQAjAAAAJAAcAAAAIgAaAAEAAAAHAAAAAAAAAAcAAAAAAAYAAAAAAAAAAAAHAAAABwAAABQAAgAWABkAAwAbAAQACAAJACcADQAJAA0ACgAJACcAJgAFACcAJwAMAAwADQAMAAkADAAPABAAEQASABIAHwASABMAFwAVABcAFQAgAAEAAAAKAGoAzAACREZMVAAObGF0bgAcAAQAAAAA//8AAgAAAAUAFgADQVpFIAAgQ1JUIAAsVFJLIAA4AAD//wACAAEABgAA//8AAwACAAcACgAA//8AAwADAAgACwAA//8AAwAEAAkADAANY2FsdABQY2FsdABQY2FsdABQY2FsdABQY2FsdABQbGlnYQBWbGlnYQBWbGlnYQBWbGlnYQBWbGlnYQBWbG9jbABcbG9jbABcbG9jbABcAAAAAQACAAAAAQABAAAAAQAAAAMACAAiACoABgAAAAEACAADAAAAAQAMAAAAAAABAAEANAAGAAAAAQASAAYAAAACAAoAMAADAAAAAQAOAAEAFAAAAAEAAQAxAAEABwAtADEAMwA0ADUANgA3AAMAAAABAA4AAQAUAAAAAQABADUAAQACADUAPAAAAfQAAAD8AAACDgBQATAAUAFMAEkB6gBMAUwASQK7AEwB2AAnAoIAPAKPACcC0AAjApQAMgKaADQCcQAsAqEAOAKaADQCJwAtAv4AEgL8AFYC1QA1AwQAVgLEAFYCvgBWAwkANQMqAFYBWgBYApcARQL0AFYCngBWA8QAVgMsAFYDDwA1AuoAVgMPADUDBQBWAsUAIwLVACMDGwBSAvQAFQQMABcDGAALAtMAAgLWAC8CdQAtAn8ARgI0ACsCfwAtAlAAKwHoABoCeQAtAn0ARgEvAEMBMP+ZAmEARgEzAEgDxwBGAn0ARgJkACsCfwBGAoAALQH0AEYCMwAgAf4AGgJ0AEICPQAFA00ACQJjAAQCQAAFAkMAKwFIAEoBSABHAkYASgJGAEcBWwBQ"}},"time_used":26,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/872208e6db2432df.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.236Z","timestamp":1785142498236,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/872208e6db2432df.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"872208e6db2432df.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"59a6384c028b9486522f4c312b325bd7\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/872208e6db2432df.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::dglgh-1785142498241-cbf265475380\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]},{"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":43161,"size_decoded":16584,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (19659)","md5":"59a6384c028b9486522f4c312b325bd7","sha1":"5e84e2ae85951f872c7d903668997a6517dcbffe","sha256":"20a6492b78862b8d19a807109b8e582b1ad0a49432d9b3abb6facbe3bcd8e13c","sha512":"35d242fff0736bf22b35f1085dbce76c79e18ec089282392e3afcf8bf7336b66540db6cb1f58f63b1a61e35234d7c03a98e24ab6d02fd9ff40affa8e816ce51c","ssdeep":"768:xn49CPqFmzekxvWA6jfoHrknNKc9Dmt4b5tG0KX5YjgU:OArDvWljQHwL9DPKX5m","tlshash":"36131aa532d4f8dd539b41c4846f800df23e1e78941ea464f3fdacaa2960949f1b3fa5","first_seen":"2026-07-27T06:16:09.115412Z","last_seen":"2026-07-27T08:57:45.717371Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDEwNzIzMyw2MDM5MDgsZT0+eyJ1c2Ugc3RyaWN0IjtsZXQgdD0oMCxlLmkoNDc1MjU0KS5kZWZhdWx0KSgicGx1cyIsW1sicGF0aCIse2Q6Ik01IDEyaDE0IixrZXk6IjFheXMwaCJ9XSxbInBhdGgiLHtkOiJNMTIgNXYxNCIsa2V5OiJzNjk5bGUifV1dKTtlLnMoWyJkZWZhdWx0IiwoKT0+dF0sNjAzOTA4KSxlLnMoWyJQbHVzIiwoKT0+dF0sMTA3MjMzKX0sNTMxMjc4LDcxNzUyMSxlPT57InVzZSBzdHJpY3QiO2xldCB0PSgwLGUuaSg0NzUyNTQpLmRlZmF1bHQpKCJsb2FkZXItY2lyY2xlIixbWyJwYXRoIix7ZDoiTTIxIDEyYTkgOSAwIDEgMS02LjIxOS04LjU2IixrZXk6IjEzemFsZCJ9XV0pO2UucyhbImRlZmF1bHQiLCgpPT50XSw3MTc1MjEpLGUucyhbIkxvYWRlcjIiLCgpPT50XSw1MzEyNzgpfSw0NzUyNTQsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lLmkoMjcxNjQ1KTtsZXQgcj1lPT57bGV0IHQ9ZS5yZXBsYWNlKC9eKFtBLVpdKXxbXHMtX10rKFx3KS9nLChlLHQscik9PnI/ci50b1VwcGVyQ2FzZSgpOnQudG9Mb3dlckNhc2UoKSk7cmV0dXJuIHQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKX0sbj0oLi4uZSk9PmUuZmlsdGVyKChlLHQscik9PiEhZSYmIiIhPT1lLnRyaW0oKSYmci5pbmRleE9mKGUpPT09dCkuam9pbigiICIpLnRyaW0oKTt2YXIgYT17eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix3aWR0aDoyNCxoZWlnaHQ6MjQsdmlld0JveDoiMCAwIDI0IDI0IixmaWxsOiJub25lIixzdHJva2U6ImN1cnJlbnRDb2xvciIsc3Ryb2tlV2lkdGg6MixzdHJva2VMaW5lY2FwOiJyb3VuZCIsc3Ryb2tlTGluZWpvaW46InJvdW5kIn07bGV0IGk9KDAsdC5mb3J3YXJkUmVmKSgoe2NvbG9yOmU9ImN1cnJlbnRDb2xvciIsc2l6ZTpyPTI0LHN0cm9rZVdpZHRoOmk9MixhYnNvbHV0ZVN0cm9rZVdpZHRoOm8sY2xhc3NOYW1lOmw9IiIsY2hpbGRyZW46cyxpY29uTm9kZTp1LC4uLmN9LGQpPT4oMCx0LmNyZWF0ZUVsZW1lbnQpKCJzdmciLHtyZWY6ZCwuLi5hLHdpZHRoOnIsaGVpZ2h0OnIsc3Ryb2tlOmUsc3Ryb2tlV2lkdGg6bz8yNCpOdW1iZXIoaSkvTnVtYmVyKHIpOmksY2xhc3NOYW1lOm4oImx1Y2lkZSIsbCksLi4uIXMmJiEoZT0+e2ZvcihsZXQgdCBpbiBlKWlmKHQuc3RhcnRzV2l0aCgiYXJpYS0iKXx8InJvbGUiPT09dHx8InRpdGxlIj09PXQpcmV0dXJuITB9KShjKSYmeyJhcmlhLWhpZGRlbiI6InRydWUifSwuLi5jfSxbLi4udS5tYXAoKFtlLHJdKT0+KDAsdC5jcmVhdGVFbGVtZW50KShlLHIpKSwuLi5BcnJheS5pc0FycmF5KHMpP3M6W3NdXSkpLG89KGUsYSk9PntsZXQgbz0oMCx0LmZvcndhcmRSZWYpKCh7Y2xhc3NOYW1lOm8sLi4ubH0scyk9PigwLHQuY3JlYXRlRWxlbWVudCkoaSx7cmVmOnMsaWNvbk5vZGU6YSxjbGFzc05hbWU6bihgbHVjaWRlLSR7cihlKS5yZXBsYWNlKC8oW2EtejAtOV0pKFtBLVpdKS9nLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9YCxgbHVjaWRlLSR7ZX1gLG8pLC4uLmx9KSk7cmV0dXJuIG8uZGlzcGxheU5hbWU9cihlKSxvfTtlLnMoWyJkZWZhdWx0IiwoKT0+b10sNDc1MjU0KX0sNjE4NTY2LChlLHQscik9Pnt0LmV4cG9ydHM9ZS5yKDk3NjU2Mil9LDIzMzUyNSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwid2Fybk9uY2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPWU9Pnt9fSw4MTg1ODEsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsInVzZU1lcmdlZFJlZiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49ZS5yKDI3MTY0NSk7ZnVuY3Rpb24gYShlLHQpe2xldCByPSgwLG4udXNlUmVmKShudWxsKSxhPSgwLG4udXNlUmVmKShudWxsKTtyZXR1cm4oMCxuLnVzZUNhbGxiYWNrKShuPT57aWYobnVsbD09PW4pe2xldCBlPXIuY3VycmVudDtlJiYoci5jdXJyZW50PW51bGwsZSgpKTtsZXQgdD1hLmN1cnJlbnQ7dCYmKGEuY3VycmVudD1udWxsLHQoKSl9ZWxzZSBlJiYoci5jdXJyZW50PWkoZSxuKSksdCYmKGEuY3VycmVudD1pKHQsbikpfSxbZSx0XSl9ZnVuY3Rpb24gaShlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybiBlLmN1cnJlbnQ9dCwoKT0+e2UuY3VycmVudD1udWxsfTt7bGV0IHI9ZSh0KTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOigpPT5lKG51bGwpfX0oImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw5OTgxODMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2Fzc2lnbjpmdW5jdGlvbigpe3JldHVybiBzfSxzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXM6ZnVuY3Rpb24oKXtyZXR1cm4gbH19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtmdW5jdGlvbiBpKGUpe2xldCB0PXt9O2ZvcihsZXRbcixuXW9mIGUuZW50cmllcygpKXtsZXQgZT10W3JdO3ZvaWQgMD09PWU/dFtyXT1uOkFycmF5LmlzQXJyYXkoZSk/ZS5wdXNoKG4pOnRbcl09W2Usbl19cmV0dXJuIHR9ZnVuY3Rpb24gbyhlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/ZTooIm51bWJlciIhPXR5cGVvZiBlfHxpc05hTihlKSkmJiJib29sZWFuIiE9dHlwZW9mIGU/IiI6U3RyaW5nKGUpfWZ1bmN0aW9uIGwoZSl7bGV0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcztmb3IobGV0W3Isbl1vZiBPYmplY3QuZW50cmllcyhlKSlpZihBcnJheS5pc0FycmF5KG4pKWZvcihsZXQgZSBvZiBuKXQuYXBwZW5kKHIsbyhlKSk7ZWxzZSB0LnNldChyLG8obikpO3JldHVybiB0fWZ1bmN0aW9uIHMoZSwuLi50KXtmb3IobGV0IHIgb2YgdCl7Zm9yKGxldCB0IG9mIHIua2V5cygpKWUuZGVsZXRlKHQpO2ZvcihsZXRbdCxuXW9mIHIuZW50cmllcygpKWUuYXBwZW5kKHQsbil9cmV0dXJuIGV9fSwxOTUwNTcsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2Zvcm1hdFVybDpmdW5jdGlvbigpe3JldHVybiBsfSxmb3JtYXRXaXRoVmFsaWRhdGlvbjpmdW5jdGlvbigpe3JldHVybiB1fSx1cmxPYmplY3RLZXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHN9fTtmb3IodmFyIGEgaW4gbilPYmplY3QuZGVmaW5lUHJvcGVydHkocixhLHtlbnVtZXJhYmxlOiEwLGdldDpuW2FdfSk7bGV0IGk9ZS5yKDE5MDgwOSkuXyhlLnIoOTk4MTgzKSksbz0vaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS87ZnVuY3Rpb24gbChlKXtsZXR7YXV0aDp0LGhvc3RuYW1lOnJ9PWUsbj1lLnByb3RvY29sfHwiIixhPWUucGF0aG5hbWV8fCIiLGw9ZS5oYXNofHwiIixzPWUucXVlcnl8fCIiLHU9ITE7dD10P2VuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlKC8lM0EvaSwiOiIpKyJAIjoiIixlLmhvc3Q/dT10K2UuaG9zdDpyJiYodT10Kyh+ci5pbmRleE9mKCI6Iik/YFske3J9XWA6ciksZS5wb3J0JiYodSs9IjoiK2UucG9ydCkpLHMmJiJvYmplY3QiPT10eXBlb2YgcyYmKHM9U3RyaW5nKGkudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhzKSkpO2xldCBjPWUuc2VhcmNofHxzJiZgPyR7c31gfHwiIjtyZXR1cm4gbiYmIW4uZW5kc1dpdGgoIjoiKSYmKG4rPSI6IiksZS5zbGFzaGVzfHwoIW58fG8udGVzdChuKSkmJiExIT09dT8odT0iLy8iKyh1fHwiIiksYSYmIi8iIT09YVswXSYmKGE9Ii8iK2EpKTp1fHwodT0iIiksbCYmIiMiIT09bFswXSYmKGw9IiMiK2wpLGMmJiI/IiE9PWNbMF0mJihjPSI/IitjKSxhPWEucmVwbGFjZSgvWz8jXS9nLGVuY29kZVVSSUNvbXBvbmVudCksYz1jLnJlcGxhY2UoIiMiLCIlMjMiKSxgJHtufSR7dX0ke2F9JHtjfSR7bH1gfWxldCBzPVsiYXV0aCIsImhhc2giLCJob3N0IiwiaG9zdG5hbWUiLCJocmVmIiwicGF0aCIsInBhdGhuYW1lIiwicG9ydCIsInByb3RvY29sIiwicXVlcnkiLCJzZWFyY2giLCJzbGFzaGVzIl07ZnVuY3Rpb24gdShlKXtyZXR1cm4gbChlKX19LDcxODk2NywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17RGVjb2RlRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gYn0sTWlkZGxld2FyZU5vdEZvdW5kRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gd30sTWlzc2luZ1N0YXRpY1BhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4geH0sTm9ybWFsaXplRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4geX0sUGFnZU5vdEZvdW5kRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdn0sU1A6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sU1Q6ZnVuY3Rpb24oKXtyZXR1cm4gZ30sV0VCX1ZJVEFMUzpmdW5jdGlvbigpe3JldHVybiBpfSxleGVjT25jZTpmdW5jdGlvbigpe3JldHVybiBvfSxnZXREaXNwbGF5TmFtZTpmdW5jdGlvbigpe3JldHVybiBkfSxnZXRMb2NhdGlvbk9yaWdpbjpmdW5jdGlvbigpe3JldHVybiB1fSxnZXRVUkw6ZnVuY3Rpb24oKXtyZXR1cm4gY30saXNBYnNvbHV0ZVVybDpmdW5jdGlvbigpe3JldHVybiBzfSxpc1Jlc1NlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sbG9hZEdldEluaXRpYWxQcm9wczpmdW5jdGlvbigpe3JldHVybiBofSxub3JtYWxpemVSZXBlYXRlZFNsYXNoZXM6ZnVuY3Rpb24oKXtyZXR1cm4gcH0sc3RyaW5naWZ5RXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gan19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgaT1bIkNMUyIsIkZDUCIsIkZJRCIsIklOUCIsIkxDUCIsIlRURkIiXTtmdW5jdGlvbiBvKGUpe2xldCB0LHI9ITE7cmV0dXJuKC4uLm4pPT4ocnx8KHI9ITAsdD1lKC4uLm4pKSx0KX1sZXQgbD0vXlthLXpBLVpdW2EtekEtWlxkK1wtLl0qPzovLHM9ZT0+bC50ZXN0KGUpO2Z1bmN0aW9uIHUoKXtsZXR7cHJvdG9jb2w6ZSxob3N0bmFtZTp0LHBvcnQ6cn09d2luZG93LmxvY2F0aW9uO3JldHVybmAke2V9Ly8ke3R9JHtyPyI6IityOiIifWB9ZnVuY3Rpb24gYygpe2xldHtocmVmOmV9PXdpbmRvdy5sb2NhdGlvbix0PXUoKTtyZXR1cm4gZS5zdWJzdHJpbmcodC5sZW5ndGgpfWZ1bmN0aW9uIGQoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6ZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHwiVW5rbm93biJ9ZnVuY3Rpb24gZihlKXtyZXR1cm4gZS5maW5pc2hlZHx8ZS5oZWFkZXJzU2VudH1mdW5jdGlvbiBwKGUpe2xldCB0PWUuc3BsaXQoIj8iKTtyZXR1cm4gdFswXS5yZXBsYWNlKC9cXC9nLCIvIikucmVwbGFjZSgvXC9cLysvZywiLyIpKyh0WzFdP2A/JHt0LnNsaWNlKDEpLmpvaW4oIj8iKX1gOiIiKX1hc3luYyBmdW5jdGlvbiBoKGUsdCl7bGV0IHI9dC5yZXN8fHQuY3R4JiZ0LmN0eC5yZXM7aWYoIWUuZ2V0SW5pdGlhbFByb3BzKXJldHVybiB0LmN0eCYmdC5Db21wb25lbnQ/e3BhZ2VQcm9wczphd2FpdCBoKHQuQ29tcG9uZW50LHQuY3R4KX06e307bGV0IG49YXdhaXQgZS5nZXRJbml0aWFsUHJvcHModCk7aWYociYmZihyKSlyZXR1cm4gbjtpZighbil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoYCIke2QoZSl9LmdldEluaXRpYWxQcm9wcygpIiBzaG91bGQgcmVzb2x2ZSB0byBhbiBvYmplY3QuIEJ1dCBmb3VuZCAiJHtufSIgaW5zdGVhZC5gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTM5NCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtyZXR1cm4gbn1sZXQgbT0idW5kZWZpbmVkIiE9dHlwZW9mIHBlcmZvcm1hbmNlLGc9bSYmWyJtYXJrIiwibWVhc3VyZSIsImdldEVudHJpZXNCeU5hbWUiXS5ldmVyeShlPT4iZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2VbZV0pO2NsYXNzIGIgZXh0ZW5kcyBFcnJvcnt9Y2xhc3MgeSBleHRlbmRzIEVycm9ye31jbGFzcyB2IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIoKSx0aGlzLmNvZGU9IkVOT0VOVCIsdGhpcy5uYW1lPSJQYWdlTm90Rm91bmRFcnJvciIsdGhpcy5tZXNzYWdlPWBDYW5ub3QgZmluZCBtb2R1bGUgZm9yIHBhZ2U6ICR7ZX1gfX1jbGFzcyB4IGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoZSx0KXtzdXBlcigpLHRoaXMubWVzc2FnZT1gRmFpbGVkIHRvIGxvYWQgc3RhdGljIGZpbGUgZm9yIHBhZ2U6ICR7ZX0gJHt0fWB9fWNsYXNzIHcgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcigpe3N1cGVyKCksdGhpcy5jb2RlPSJFTk9FTlQiLHRoaXMubWVzc2FnZT0iQ2Fubm90IGZpbmQgdGhlIG1pZGRsZXdhcmUgbW9kdWxlIn19ZnVuY3Rpb24gaihlKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoe21lc3NhZ2U6ZS5tZXNzYWdlLHN0YWNrOmUuc3RhY2t9KX19LDU3MzY2OCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiaXNMb2NhbFVSTCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7bGV0IG49ZS5yKDcxODk2NyksYT1lLnIoNjUyODE3KTtmdW5jdGlvbiBpKGUpe2lmKCEoMCxuLmlzQWJzb2x1dGVVcmwpKGUpKXJldHVybiEwO3RyeXtsZXQgdD0oMCxuLmdldExvY2F0aW9uT3JpZ2luKSgpLHI9bmV3IFVSTChlLHQpO3JldHVybiByLm9yaWdpbj09PXQmJigwLGEuaGFzQmFzZVBhdGgpKHIucGF0aG5hbWUpfWNhdGNoKGUpe3JldHVybiExfX19LDI4NDUwOCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZXJyb3JPbmNlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbn19KTtsZXQgbj1lPT57fX0sNTIyMDE2LChlLHQscik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LHVzZUxpbmtTdGF0dXM6ZnVuY3Rpb24oKXtyZXR1cm4gdn19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgaT1lLnIoMTkwODA5KSxvPWUucig4NDM0NzYpLGw9aS5fKGUucigyNzE2NDUpKSxzPWUucigxOTUwNTcpLHU9ZS5yKDgzNzIpLGM9ZS5yKDgxODU4MSksZD1lLnIoNzE4OTY3KSxmPWUucig0MDU1NTApO2UucigyMzM1MjUpO2xldCBwPWUucig5MTk0OSksaD1lLnIoNTczNjY4KSxtPWUucig1MDkzOTYpO2Z1bmN0aW9uIGcoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6KDAscy5mb3JtYXRVcmwpKGUpfWZ1bmN0aW9uIGIodCl7dmFyIHI7bGV0IG4sYSxpLFtzLGJdPSgwLGwudXNlT3B0aW1pc3RpYykocC5JRExFX0xJTktfU1RBVFVTKSx2PSgwLGwudXNlUmVmKShudWxsKSx7aHJlZjp4LGFzOncsY2hpbGRyZW46aixwcmVmZXRjaDpfPW51bGwscGFzc0hyZWY6ayxyZXBsYWNlOlAsc2hhbGxvdzpTLHNjcm9sbDpFLG9uQ2xpY2s6Qyxvbk1vdXNlRW50ZXI6TyxvblRvdWNoU3RhcnQ6TixsZWdhY3lCZWhhdmlvcjpNPSExLG9uTmF2aWdhdGU6VCxyZWY6Uix1bnN0YWJsZV9keW5hbWljT25Ib3ZlcjpBLC4uLiR9PXQ7bj1qLE0mJigic3RyaW5nIj09dHlwZW9mIG58fCJudW1iZXIiPT10eXBlb2YgbikmJihuPSgwLG8uanN4KSgiYSIse2NoaWxkcmVuOm59KSk7bGV0IEk9bC5kZWZhdWx0LnVzZUNvbnRleHQodS5BcHBSb3V0ZXJDb250ZXh0KSxMPSExIT09Xyx6PSExIT09Xz9udWxsPT09KHI9Xyl8fCJhdXRvIj09PXI/bS5GZXRjaFN0cmF0ZWd5LlBQUjptLkZldGNoU3RyYXRlZ3kuRnVsbDptLkZldGNoU3RyYXRlZ3kuUFBSLHtocmVmOlUsYXM6RH09bC5kZWZhdWx0LnVzZU1lbW8oKCk9PntsZXQgZT1nKHgpO3JldHVybntocmVmOmUsYXM6dz9nKHcpOmV9fSxbeCx3XSk7aWYoTSl7aWYobj8uJCR0eXBlb2Y9PT1TeW1ib2wuZm9yKCJyZWFjdC5sYXp5IikpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJgPExpbmsgbGVnYWN5QmVoYXZpb3I+YCByZWNlaXZlZCBhIGRpcmVjdCBjaGlsZCB0aGF0IGlzIGVpdGhlciBhIFNlcnZlciBDb21wb25lbnQsIG9yIEpTWCB0aGF0IHdhcyBsb2FkZWQgd2l0aCBSZWFjdC5sYXp5KCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC4gRWl0aGVyIHJlbW92ZSBsZWdhY3lCZWhhdmlvciwgb3IgbWFrZSB0aGUgZGlyZWN0IGNoaWxkIGEgQ2xpZW50IENvbXBvbmVudCB0aGF0IHJlbmRlcnMgdGhlIExpbmsncyBgPGE+YCB0YWcuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU4NjMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7YT1sLmRlZmF1bHQuQ2hpbGRyZW4ub25seShuKX1sZXQgQj1NP2EmJiJvYmplY3QiPT10eXBlb2YgYSYmYS5yZWY6UixxPWwuZGVmYXVsdC51c2VDYWxsYmFjayhlPT4obnVsbCE9PUkmJih2LmN1cnJlbnQ9KDAscC5tb3VudExpbmtJbnN0YW5jZSkoZSxVLEkseixMLGIpKSwoKT0+e3YuY3VycmVudCYmKCgwLHAudW5tb3VudExpbmtGb3JDdXJyZW50TmF2aWdhdGlvbikodi5jdXJyZW50KSx2LmN1cnJlbnQ9bnVsbCksKDAscC51bm1vdW50UHJlZmV0Y2hhYmxlSW5zdGFuY2UpKGUpfSksW0wsVSxJLHosYl0pLEY9e3JlZjooMCxjLnVzZU1lcmdlZFJlZikocSxCKSxvbkNsaWNrKHQpe018fCJmdW5jdGlvbiIhPXR5cGVvZiBDfHxDKHQpLE0mJmEucHJvcHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnByb3BzLm9uQ2xpY2smJmEucHJvcHMub25DbGljayh0KSwhSXx8dC5kZWZhdWx0UHJldmVudGVkfHxmdW5jdGlvbih0LHIsbixhLGksbyxzKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl7bGV0IHUse25vZGVOYW1lOmN9PXQuY3VycmVudFRhcmdldDtpZigiQSI9PT1jLnRvVXBwZXJDYXNlKCkmJigodT10LmN1cnJlbnRUYXJnZXQuZ2V0QXR0cmlidXRlKCJ0YXJnZXQiKSkmJiJfc2VsZiIhPT11fHx0Lm1ldGFLZXl8fHQuY3RybEtleXx8dC5zaGlmdEtleXx8dC5hbHRLZXl8fHQubmF0aXZlRXZlbnQmJjI9PT10Lm5hdGl2ZUV2ZW50LndoaWNoKXx8dC5jdXJyZW50VGFyZ2V0Lmhhc0F0dHJpYnV0ZSgiZG93bmxvYWQiKSlyZXR1cm47aWYoISgwLGguaXNMb2NhbFVSTCkocikpe2kmJih0LnByZXZlbnREZWZhdWx0KCksbG9jYXRpb24ucmVwbGFjZShyKSk7cmV0dXJufWlmKHQucHJldmVudERlZmF1bHQoKSxzKXtsZXQgZT0hMTtpZihzKHtwcmV2ZW50RGVmYXVsdDooKT0+e2U9ITB9fSksZSlyZXR1cm59bGV0e2Rpc3BhdGNoTmF2aWdhdGVBY3Rpb246ZH09ZS5yKDY5OTc4MSk7bC5kZWZhdWx0LnN0YXJ0VHJhbnNpdGlvbigoKT0+e2Qobnx8cixpPyJyZXBsYWNlIjoicHVzaCIsbz8/ITAsYS5jdXJyZW50KX0pfX0odCxVLEQsdixQLEUsVCl9LG9uTW91c2VFbnRlcihlKXtNfHwiZnVuY3Rpb24iIT10eXBlb2YgT3x8TyhlKSxNJiZhLnByb3BzJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5wcm9wcy5vbk1vdXNlRW50ZXImJmEucHJvcHMub25Nb3VzZUVudGVyKGUpLEkmJkwmJigwLHAub25OYXZpZ2F0aW9uSW50ZW50KShlLmN1cnJlbnRUYXJnZXQsITA9PT1BKX0sb25Ub3VjaFN0YXJ0OmZ1bmN0aW9uKGUpe018fCJmdW5jdGlvbiIhPXR5cGVvZiBOfHxOKGUpLE0mJmEucHJvcHMmJiJmdW5jdGlvbiI9PXR5cGVvZiBhLnByb3BzLm9uVG91Y2hTdGFydCYmYS5wcm9wcy5vblRvdWNoU3RhcnQoZSksSSYmTCYmKDAscC5vbk5hdmlnYXRpb25JbnRlbnQpKGUuY3VycmVudFRhcmdldCwhMD09PUEpfX07cmV0dXJuKDAsZC5pc0Fic29sdXRlVXJsKShEKT9GLmhyZWY9RDpNJiYhayYmKCJhIiE9PWEudHlwZXx8ImhyZWYiaW4gYS5wcm9wcyl8fChGLmhyZWY9KDAsZi5hZGRCYXNlUGF0aCkoRCkpLGk9TT9sLmRlZmF1bHQuY2xvbmVFbGVtZW50KGEsRik6KDAsby5qc3gpKCJhIix7Li4uJCwuLi5GLGNoaWxkcmVuOm59KSwoMCxvLmpzeCkoeS5Qcm92aWRlcix7dmFsdWU6cyxjaGlsZHJlbjppfSl9ZS5yKDI4NDUwOCk7bGV0IHk9KDAsbC5jcmVhdGVDb250ZXh0KShwLklETEVfTElOS19TVEFUVVMpLHY9KCk9PigwLGwudXNlQ29udGV4dCkoeSk7KCJmdW5jdGlvbiI9PXR5cGVvZiByLmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2Ygci5kZWZhdWx0JiZudWxsIT09ci5kZWZhdWx0KSYmdm9pZCAwPT09ci5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkoci5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHIuZGVmYXVsdCxyKSx0LmV4cG9ydHM9ci5kZWZhdWx0KX0sMzYxNjUzLGU9PnsidXNlIHN0cmljdCI7bGV0IHQ9KDAsZS5pKDQ3NTI1NCkuZGVmYXVsdCkoImNpcmNsZS1hbGVydCIsW1siY2lyY2xlIix7Y3g6IjEyIixjeToiMTIiLHI6IjEwIixrZXk6IjFtZ2xheSJ9XSxbImxpbmUiLHt4MToiMTIiLHgyOiIxMiIseTE6IjgiLHkyOiIxMiIsa2V5OiIxcGtldWgifV0sWyJsaW5lIix7eDE6IjEyIix4MjoiMTIuMDEiLHkxOiIxNiIseTI6IjE2IixrZXk6IjRkZnE5MCJ9XV0pO2UucyhbImRlZmF1bHQiLCgpPT50XSl9LDYzMjA5LGU9PnsidXNlIHN0cmljdCI7dmFyIHQ9ZS5pKDM2MTY1Myk7ZS5zKFsiQWxlcnRDaXJjbGUiLCgpPT50LmRlZmF1bHRdKX0sNzc4OTE3LGU9PnsidXNlIHN0cmljdCI7bGV0IHQ9KDAsZS5pKDQ3NTI1NCkuZGVmYXVsdCkoImV4dGVybmFsLWxpbmsiLFtbInBhdGgiLHtkOiJNMTUgM2g2djYiLGtleToiMXE5Znd0In1dLFsicGF0aCIse2Q6Ik0xMCAxNCAyMSAzIixrZXk6ImdwbGg2ciJ9XSxbInBhdGgiLHtkOiJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNiIsa2V5OiJhNnhxcXAifV1dKTtlLnMoWyJFeHRlcm5hbExpbmsiLCgpPT50XSw3Nzg5MTcpfSwxNzg1ODMsZT0+eyJ1c2Ugc3RyaWN0IjtsZXQgdD0oMCxlLmkoNDc1MjU0KS5kZWZhdWx0KSgiZmlsZS10ZXh0IixbWyJwYXRoIix7ZDoiTTE1IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3WiIsa2V5OiIxcnFmejcifV0sWyJwYXRoIix7ZDoiTTE0IDJ2NGEyIDIgMCAwIDAgMiAyaDQiLGtleToidG5xcmxiIn1dLFsicGF0aCIse2Q6Ik0xMCA5SDgiLGtleToiYjFtcmxyIn1dLFsicGF0aCIse2Q6Ik0xNiAxM0g4IixrZXk6InQ0ZTAwMiJ9XSxbInBhdGgiLHtkOiJNMTYgMTdIOCIsa2V5OiJ6MXVoM2EifV1dKTtlLnMoWyJGaWxlVGV4dCIsKCk9PnRdLDE3ODU4Myl9LDI5OTAyMyxlPT57InVzZSBzdHJpY3QiO2xldCB0PSgwLGUuaSg0NzUyNTQpLmRlZmF1bHQpKCJtaW51cyIsW1sicGF0aCIse2Q6Ik01IDEyaDE0IixrZXk6IjFheXMwaCJ9XV0pO2UucyhbIk1pbnVzIiwoKT0+dF0sMjk5MDIzKX0sODQ2NzUzLGU9PnsidXNlIHN0cmljdCI7bGV0IHQ9KDAsZS5pKDQ3NTI1NCkuZGVmYXVsdCkoInVzZXIiLFtbInBhdGgiLHtkOiJNMTkgMjF2LTJhNCA0IDAgMCAwLTQtNEg5YTQgNCAwIDAgMC00IDR2MiIsa2V5OiI5NzVrZWwifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiI3IixyOiI0IixrZXk6IjE3eXMwZCJ9XV0pO2UucyhbImRlZmF1bHQiLCgpPT50XSl9LDg0MDQwMixlPT57InVzZSBzdHJpY3QiO3ZhciB0PWUuaSg4NDM0NzYpLHI9ZS5pKDI3MTY0NSk7bGV0IG49KDAsci5jcmVhdGVDb250ZXh0KSh7dGhlbWU6ImRhcmsiLHRvZ2dsZVRoZW1lOigpPT57fSxzZXRUaGVtZTooKT0+e319KSxhPSJzcG4tdGhlbWUiO2UucyhbIlRoZW1lQ29udGV4dCIsMCxuLCJUaGVtZVByb3ZpZGVyIiwwLCh7Y2hpbGRyZW46ZX0pPT57bGV0W2ksb109KDAsci51c2VTdGF0ZSkoImRhcmsiKTsoMCxyLnVzZUVmZmVjdCkoKCk9PntsZXQgZT0iZGFyayI7dHJ5e2xldCB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpO2U9ImxpZ2h0Ij09PXQ/ImxpZ2h0IjoiZGFyayJ9Y2F0Y2h7fW8oZSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImRhcmsiLCJkYXJrIj09PWUpfSxbXSk7bGV0IGw9KDAsci51c2VDYWxsYmFjaykoZT0+e28oZSk7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKGEsZSl9Y2F0Y2h7fWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJkYXJrIiwiZGFyayI9PT1lKX0sW10pLHM9KDAsci51c2VDYWxsYmFjaykoKCk9PntsKCJkYXJrIj09PWk/ImxpZ2h0IjoiZGFyayIpfSxbaSxsXSk7cmV0dXJuKDAsdC5qc3gpKG4uUHJvdmlkZXIse3ZhbHVlOnt0aGVtZTppLHRvZ2dsZVRoZW1lOnMsc2V0VGhlbWU6bH0sY2hpbGRyZW46ZX0pfV0pfSw5MjI1MjEsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lLmkoMjcxNjQ1KSxyPWUuaSg4NDA0MDIpO2UucyhbInVzZVRoZW1lIiwwLCgpPT4oMCx0LnVzZUNvbnRleHQpKHIuVGhlbWVDb250ZXh0KV0pfSw4MzM4NTgsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lLmkoMjcxNjQ1KSxyPWUuaSg5MjA3NTUpO2Z1bmN0aW9uIG4oKXtsZXRbZSxuXT0oMCx0LnVzZVN0YXRlKShudWxsKSxbYSxpXT0oMCx0LnVzZVN0YXRlKSghMCk7cmV0dXJuKDAsdC51c2VFZmZlY3QpKCgpPT57bGV0IGU9KDAsci5jcmVhdGVTdXBhYmFzZUJyb3dzZXJDbGllbnQpKCksdD1lPT57aWYoZSl7bGV0IHQ9ZS51c2VyX21ldGFkYXRhPy5uYW1lfHxlLnVzZXJfbWV0YWRhdGE/LmZ1bGxfbmFtZXx8IiIscj10LnNwbGl0KCIgIik7bih7ZW1haWw6ZS5lbWFpbHx8IiIsZmlyc3ROYW1lOnJbMF18fCIiLGxhc3ROYW1lOnIuc2xpY2UoMSkuam9pbigiICIpfHwiIixmdWxsTmFtZTp0LHJhdzplfSl9ZWxzZSBuKG51bGwpO2koITEpfTtlLmF1dGguZ2V0VXNlcigpLnRoZW4oKHtkYXRhOmV9KT0+dChlLnVzZXIpKTtsZXR7ZGF0YTp7c3Vic2NyaXB0aW9uOmF9fT1lLmF1dGgub25BdXRoU3RhdGVDaGFuZ2UoKGUscik9Pnt0KHI/LnVzZXI/P251bGwpfSk7cmV0dXJuKCk9PmEudW5zdWJzY3JpYmUoKX0sW10pLHt1c2VyOmUsbG9hZGluZzphfX1lLnMoWyJ1c2VBdXRoVXNlciIsKCk9Pm5dKX0sNDg4MTQzLChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih7d2lkdGhJbnQ6ZSxoZWlnaHRJbnQ6dCxibHVyV2lkdGg6cixibHVySGVpZ2h0Om4sYmx1ckRhdGFVUkw6YSxvYmplY3RGaXQ6aX0pe2xldCBvPXI/NDAqcjplLGw9bj80MCpuOnQscz1vJiZsP2B2aWV3Qm94PScwIDAgJHtvfSAke2x9J2A6IiI7cmV0dXJuYCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnICR7c30lM0UlM0NmaWx0ZXIgaWQ9J2InIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0nc1JHQiclM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249JzIwJy8lM0UlM0NmZUNvbG9yTWF0cml4IHZhbHVlcz0nMSAwIDAgMCAwIDAgMSAwIDAgMCAwIDAgMSAwIDAgMCAwIDAgMTAwIC0xJyByZXN1bHQ9J3MnLyUzRSUzQ2ZlRmxvb2QgeD0nMCcgeT0nMCcgd2lkdGg9JzEwMCUyNScgaGVpZ2h0PScxMDAlMjUnLyUzRSUzQ2ZlQ29tcG9zaXRlIG9wZXJhdG9yPSdvdXQnIGluPSdzJy8lM0UlM0NmZUNvbXBvc2l0ZSBpbjI9J1NvdXJjZUdyYXBoaWMnLyUzRSUzQ2ZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0nMjAnLyUzRSUzQy9maWx0ZXIlM0UlM0NpbWFnZSB3aWR0aD0nMTAwJTI1JyBoZWlnaHQ9JzEwMCUyNScgeD0nMCcgeT0nMCcgcHJlc2VydmVBc3BlY3RSYXRpbz0nJHtzPyJub25lIjoiY29udGFpbiI9PT1pPyJ4TWlkWU1pZCI6ImNvdmVyIj09PWk/InhNaWRZTWlkIHNsaWNlIjoibm9uZSJ9JyBzdHlsZT0nZmlsdGVyOiB1cmwoJTIzYik7JyBocmVmPScke2F9Jy8lM0UlM0Mvc3ZnJTNFYH1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImdldEltYWdlQmx1clN2ZyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9LDk4NzY5MCwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17VkFMSURfTE9BREVSUzpmdW5jdGlvbigpe3JldHVybiBpfSxpbWFnZUNvbmZpZ0RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gb319O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgaT1bImRlZmF1bHQiLCJpbWdpeCIsImNsb3VkaW5hcnkiLCJha2FtYWkiLCJjdXN0b20iXSxvPXtkZXZpY2VTaXplczpbNjQwLDc1MCw4MjgsMTA4MCwxMjAwLDE5MjAsMjA0OCwzODQwXSxpbWFnZVNpemVzOlszMiw0OCw2NCw5NiwxMjgsMjU2LDM4NF0scGF0aDoiL19uZXh0L2ltYWdlIixsb2FkZXI6ImRlZmF1bHQiLGxvYWRlckZpbGU6IiIsZG9tYWluczpbXSxkaXNhYmxlU3RhdGljSW1hZ2VzOiExLG1pbmltdW1DYWNoZVRUTDoxNDQwMCxmb3JtYXRzOlsiaW1hZ2Uvd2VicCJdLG1heGltdW1SZWRpcmVjdHM6MyxkYW5nZXJvdXNseUFsbG93TG9jYWxJUDohMSxkYW5nZXJvdXNseUFsbG93U1ZHOiExLGNvbnRlbnRTZWN1cml0eVBvbGljeToic2NyaXB0LXNyYyAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IHNhbmRib3g7Iixjb250ZW50RGlzcG9zaXRpb25UeXBlOiJhdHRhY2htZW50Iixsb2NhbFBhdHRlcm5zOnZvaWQgMCxyZW1vdGVQYXR0ZXJuczpbXSxxdWFsaXRpZXM6Wzc1XSx1bm9wdGltaXplZDohMX19LDkwODkyNywoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZ2V0SW1nUHJvcHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBzfX0pLGUucigyMzM1MjUpO2xldCBuPWUucig0ODgxNDMpLGE9ZS5yKDk4NzY5MCksaT1bIi1tb3otaW5pdGlhbCIsImZpbGwiLCJub25lIiwic2NhbGUtZG93biIsdm9pZCAwXTtmdW5jdGlvbiBvKGUpe3JldHVybiB2b2lkIDAhPT1lLmRlZmF1bHR9ZnVuY3Rpb24gbChlKXtyZXR1cm4gdm9pZCAwPT09ZT9lOiJudW1iZXIiPT10eXBlb2YgZT9OdW1iZXIuaXNGaW5pdGUoZSk/ZTpOYU46InN0cmluZyI9PXR5cGVvZiBlJiYvXlswLTldKyQvLnRlc3QoZSk/cGFyc2VJbnQoZSwxMCk6TmFOfWZ1bmN0aW9uIHMoe3NyYzplLHNpemVzOnQsdW5vcHRpbWl6ZWQ6cj0hMSxwcmlvcml0eTpzPSExLHByZWxvYWQ6dT0hMSxsb2FkaW5nOmMsY2xhc3NOYW1lOmQscXVhbGl0eTpmLHdpZHRoOnAsaGVpZ2h0OmgsZmlsbDptPSExLHN0eWxlOmcsb3ZlcnJpZGVTcmM6YixvbkxvYWQ6eSxvbkxvYWRpbmdDb21wbGV0ZTp2LHBsYWNlaG9sZGVyOng9ImVtcHR5IixibHVyRGF0YVVSTDp3LGZldGNoUHJpb3JpdHk6aixkZWNvZGluZzpfPSJhc3luYyIsbGF5b3V0Omssb2JqZWN0Rml0OlAsb2JqZWN0UG9zaXRpb246UyxsYXp5Qm91bmRhcnk6RSxsYXp5Um9vdDpDLC4uLk99LE4pe3ZhciBNO2xldCBULFIsQSx7aW1nQ29uZjokLHNob3dBbHRUZXh0OkksYmx1ckNvbXBsZXRlOkwsZGVmYXVsdExvYWRlcjp6fT1OLFU9JHx8YS5pbWFnZUNvbmZpZ0RlZmF1bHQ7aWYoImFsbFNpemVzImluIFUpVD1VO2Vsc2V7bGV0IGU9Wy4uLlUuZGV2aWNlU2l6ZXMsLi4uVS5pbWFnZVNpemVzXS5zb3J0KChlLHQpPT5lLXQpLHQ9VS5kZXZpY2VTaXplcy5zb3J0KChlLHQpPT5lLXQpLHI9VS5xdWFsaXRpZXM/LnNvcnQoKGUsdCk9PmUtdCk7VD17Li4uVSxhbGxTaXplczplLGRldmljZVNpemVzOnQscXVhbGl0aWVzOnJ9fWlmKHZvaWQgMD09PXopdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKCJpbWFnZXMubG9hZGVyRmlsZSBkZXRlY3RlZCBidXQgdGhlIGZpbGUgaXMgbWlzc2luZyBkZWZhdWx0IGV4cG9ydC5cblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1pbWFnZXMtY29uZmlnIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkUxNjMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0IEQ9Ty5sb2FkZXJ8fHo7ZGVsZXRlIE8ubG9hZGVyLGRlbGV0ZSBPLnNyY1NldDtsZXQgQj0iX19uZXh0X2ltZ19kZWZhdWx0ImluIEQ7aWYoQil7aWYoImN1c3RvbSI9PT1ULmxvYWRlcil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoYEltYWdlIHdpdGggc3JjICIke2V9IiBpcyBtaXNzaW5nICJsb2FkZXIiIHByb3AuClJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1pbWFnZS1taXNzaW5nLWxvYWRlcmApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFMjUyIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfWVsc2V7bGV0IGU9RDtEPXQ9PntsZXR7Y29uZmlnOnIsLi4ubn09dDtyZXR1cm4gZShuKX19aWYoayl7ImZpbGwiPT09ayYmKG09ITApO2xldCBlPXtpbnRyaW5zaWM6e21heFdpZHRoOiIxMDAlIixoZWlnaHQ6ImF1dG8ifSxyZXNwb25zaXZlOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OiJhdXRvIn19W2tdO2UmJihnPXsuLi5nLC4uLmV9KTtsZXQgcj17cmVzcG9uc2l2ZToiMTAwdnciLGZpbGw6IjEwMHZ3In1ba107ciYmIXQmJih0PXIpfWxldCBxPSIiLEY9bChwKSxXPWwoaCk7aWYoKE09ZSkmJiJvYmplY3QiPT10eXBlb2YgTSYmKG8oTSl8fHZvaWQgMCE9PU0uc3JjKSl7bGV0IHQ9byhlKT9lLmRlZmF1bHQ6ZTtpZighdC5zcmMpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeSh0KX1gKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTQ2MCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtpZighdC5oZWlnaHR8fCF0LndpZHRoKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihgQW4gb2JqZWN0IHNob3VsZCBvbmx5IGJlIHBhc3NlZCB0byB0aGUgaW1hZ2UgY29tcG9uZW50IHNyYyBwYXJhbWV0ZXIgaWYgaXQgY29tZXMgZnJvbSBhIHN0YXRpYyBpbWFnZSBpbXBvcnQuIEl0IG11c3QgaW5jbHVkZSBoZWlnaHQgYW5kIHdpZHRoLiBSZWNlaXZlZCAke0pTT04uc3RyaW5naWZ5KHQpfWApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNDgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7aWYoUj10LmJsdXJXaWR0aCxBPXQuYmx1ckhlaWdodCx3PXd8fHQuYmx1ckRhdGFVUkwscT10LnNyYywhbSlpZihGfHxXKXtpZihGJiYhVyl7bGV0IGU9Ri90LndpZHRoO1c9TWF0aC5yb3VuZCh0LmhlaWdodCplKX1lbHNlIGlmKCFGJiZXKXtsZXQgZT1XL3QuaGVpZ2h0O0Y9TWF0aC5yb3VuZCh0LndpZHRoKmUpfX1lbHNlIEY9dC53aWR0aCxXPXQuaGVpZ2h0fWxldCBWPSFzJiYhdSYmKCJsYXp5Ij09PWN8fHZvaWQgMD09PWMpOyghKGU9InN0cmluZyI9PXR5cGVvZiBlP2U6cSl8fGUuc3RhcnRzV2l0aCgiZGF0YToiKXx8ZS5zdGFydHNXaXRoKCJibG9iOiIpKSYmKHI9ITAsVj0hMSksVC51bm9wdGltaXplZCYmKHI9ITApLEImJiFULmRhbmdlcm91c2x5QWxsb3dTVkcmJmUuc3BsaXQoIj8iLDEpWzBdLmVuZHNXaXRoKCIuc3ZnIikmJihyPSEwKTtsZXQgSD1sKGYpLEc9T2JqZWN0LmFzc2lnbihtP3twb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiMTAwJSIsd2lkdGg6IjEwMCUiLGxlZnQ6MCx0b3A6MCxyaWdodDowLGJvdHRvbTowLG9iamVjdEZpdDpQLG9iamVjdFBvc2l0aW9uOlN9Ont9LEk/e306e2NvbG9yOiJ0cmFuc3BhcmVudCJ9LGcpLEs9THx8ImVtcHR5Ij09PXg/bnVsbDoiYmx1ciI9PT14P2B1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCR7KDAsbi5nZXRJbWFnZUJsdXJTdmcpKHt3aWR0aEludDpGLGhlaWdodEludDpXLGJsdXJXaWR0aDpSLGJsdXJIZWlnaHQ6QSxibHVyRGF0YVVSTDp3fHwiIixvYmplY3RGaXQ6Ry5vYmplY3RGaXR9KX0iKWA6YHVybCgiJHt4fSIpYCxYPWkuaW5jbHVkZXMoRy5vYmplY3RGaXQpPyJmaWxsIj09PUcub2JqZWN0Rml0PyIxMDAlIDEwMCUiOiJjb3ZlciI6Ry5vYmplY3RGaXQsWj1LP3tiYWNrZ3JvdW5kU2l6ZTpYLGJhY2tncm91bmRQb3NpdGlvbjpHLm9iamVjdFBvc2l0aW9ufHwiNTAlIDUwJSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kSW1hZ2U6S306e30sUT1mdW5jdGlvbih7Y29uZmlnOmUsc3JjOnQsdW5vcHRpbWl6ZWQ6cix3aWR0aDpuLHF1YWxpdHk6YSxzaXplczppLGxvYWRlcjpvfSl7aWYocilyZXR1cm57c3JjOnQsc3JjU2V0OnZvaWQgMCxzaXplczp2b2lkIDB9O2xldHt3aWR0aHM6bCxraW5kOnN9PWZ1bmN0aW9uKHtkZXZpY2VTaXplczplLGFsbFNpemVzOnR9LHIsbil7aWYobil7bGV0IHI9LyhefFxzKSgxP1xkP1xkKXZ3L2csYT1bXTtmb3IobGV0IGU7ZT1yLmV4ZWMobik7KWEucHVzaChwYXJzZUludChlWzJdKSk7aWYoYS5sZW5ndGgpe2xldCByPS4wMSpNYXRoLm1pbiguLi5hKTtyZXR1cm57d2lkdGhzOnQuZmlsdGVyKHQ9PnQ+PWVbMF0qciksa2luZDoidyJ9fXJldHVybnt3aWR0aHM6dCxraW5kOiJ3In19cmV0dXJuIm51bWJlciIhPXR5cGVvZiByP3t3aWR0aHM6ZSxraW5kOiJ3In06e3dpZHRoczpbLi4ubmV3IFNldChbciwyKnJdLm1hcChlPT50LmZpbmQodD0+dD49ZSl8fHRbdC5sZW5ndGgtMV0pKV0sa2luZDoieCJ9fShlLG4saSksdT1sLmxlbmd0aC0xO3JldHVybntzaXplczppfHwidyIhPT1zP2k6IjEwMHZ3IixzcmNTZXQ6bC5tYXAoKHIsbik9PmAke28oe2NvbmZpZzplLHNyYzp0LHF1YWxpdHk6YSx3aWR0aDpyfSl9ICR7InciPT09cz9yOm4rMX0ke3N9YCkuam9pbigiLCAiKSxzcmM6byh7Y29uZmlnOmUsc3JjOnQscXVhbGl0eTphLHdpZHRoOmxbdV19KX19KHtjb25maWc6VCxzcmM6ZSx1bm9wdGltaXplZDpyLHdpZHRoOkYscXVhbGl0eTpILHNpemVzOnQsbG9hZGVyOkR9KSxKPVY/ImxhenkiOmM7cmV0dXJue3Byb3BzOnsuLi5PLGxvYWRpbmc6SixmZXRjaFByaW9yaXR5Omosd2lkdGg6RixoZWlnaHQ6VyxkZWNvZGluZzpfLGNsYXNzTmFtZTpkLHN0eWxlOnsuLi5HLC4uLlp9LHNpemVzOlEuc2l6ZXMsc3JjU2V0OlEuc3JjU2V0LHNyYzpifHxRLnNyY30sbWV0YTp7dW5vcHRpbWl6ZWQ6cixwcmVsb2FkOnV8fHMscGxhY2Vob2xkZXI6eCxmaWxsOm19fX19LDg5ODg3OSwoZSx0LHIpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkociwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9fSk7bGV0IG49ZS5yKDI3MTY0NSksYT0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdyxpPWE/KCk9Pnt9Om4udXNlTGF5b3V0RWZmZWN0LG89YT8oKT0+e306bi51c2VFZmZlY3Q7ZnVuY3Rpb24gbChlKXtsZXR7aGVhZE1hbmFnZXI6dCxyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZTpyfT1lO2Z1bmN0aW9uIGwoKXtpZih0JiZ0Lm1vdW50ZWRJbnN0YW5jZXMpe2xldCBlPW4uQ2hpbGRyZW4udG9BcnJheShBcnJheS5mcm9tKHQubW91bnRlZEluc3RhbmNlcykuZmlsdGVyKEJvb2xlYW4pKTt0LnVwZGF0ZUhlYWQocihlKSl9fXJldHVybiBhJiYodD8ubW91bnRlZEluc3RhbmNlcz8uYWRkKGUuY2hpbGRyZW4pLGwoKSksaSgoKT0+KHQ/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChlLmNoaWxkcmVuKSwoKT0+e3Q/Lm1vdW50ZWRJbnN0YW5jZXM/LmRlbGV0ZShlLmNoaWxkcmVuKX0pKSxpKCgpPT4odCYmKHQuX3BlbmRpbmdVcGRhdGU9bCksKCk9Pnt0JiYodC5fcGVuZGluZ1VwZGF0ZT1sKX0pKSxvKCgpPT4odCYmdC5fcGVuZGluZ1VwZGF0ZSYmKHQuX3BlbmRpbmdVcGRhdGUoKSx0Ll9wZW5kaW5nVXBkYXRlPW51bGwpLCgpPT57dCYmdC5fcGVuZGluZ1VwZGF0ZSYmKHQuX3BlbmRpbmdVcGRhdGUoKSx0Ll9wZW5kaW5nVXBkYXRlPW51bGwpfSkpLG51bGx9fSwzMjU2MzMsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sZGVmYXVsdEhlYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgaT1lLnIoNTU1NjgyKSxvPWUucigxOTA4MDkpLGw9ZS5yKDg0MzQ3Nikscz1vLl8oZS5yKDI3MTY0NSkpLHU9aS5fKGUucig4OTg4NzkpKSxjPWUucig3NDI3MzIpO2Z1bmN0aW9uIGQoKXtyZXR1cm5bKDAsbC5qc3gpKCJtZXRhIix7Y2hhclNldDoidXRmLTgifSwiY2hhcnNldCIpLCgwLGwuanN4KSgibWV0YSIse25hbWU6InZpZXdwb3J0Iixjb250ZW50OiJ3aWR0aD1kZXZpY2Utd2lkdGgifSwidmlld3BvcnQiKV19ZnVuY3Rpb24gZihlLHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8Im51bWJlciI9PXR5cGVvZiB0P2U6dC50eXBlPT09cy5kZWZhdWx0LkZyYWdtZW50P2UuY29uY2F0KHMuZGVmYXVsdC5DaGlsZHJlbi50b0FycmF5KHQucHJvcHMuY2hpbGRyZW4pLnJlZHVjZSgoZSx0KT0+InN0cmluZyI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHQ/ZTplLmNvbmNhdCh0KSxbXSkpOmUuY29uY2F0KHQpfWUucigyMzM1MjUpO2xldCBwPVsibmFtZSIsImh0dHBFcXVpdiIsImNoYXJTZXQiLCJpdGVtUHJvcCJdO2Z1bmN0aW9uIGgoZSl7bGV0IHQscixuLGE7cmV0dXJuIGUucmVkdWNlKGYsW10pLnJldmVyc2UoKS5jb25jYXQoZCgpLnJldmVyc2UoKSkuZmlsdGVyKCh0PW5ldyBTZXQscj1uZXcgU2V0LG49bmV3IFNldCxhPXt9LGU9PntsZXQgaT0hMCxvPSExO2lmKGUua2V5JiYibnVtYmVyIiE9dHlwZW9mIGUua2V5JiZlLmtleS5pbmRleE9mKCIkIik+MCl7bz0hMDtsZXQgcj1lLmtleS5zbGljZShlLmtleS5pbmRleE9mKCIkIikrMSk7dC5oYXMocik/aT0hMTp0LmFkZChyKX1zd2l0Y2goZS50eXBlKXtjYXNlInRpdGxlIjpjYXNlImJhc2UiOnIuaGFzKGUudHlwZSk/aT0hMTpyLmFkZChlLnR5cGUpO2JyZWFrO2Nhc2UibWV0YSI6Zm9yKGxldCB0PTAscj1wLmxlbmd0aDt0PHI7dCsrKXtsZXQgcj1wW3RdO2lmKGUucHJvcHMuaGFzT3duUHJvcGVydHkocikpaWYoImNoYXJTZXQiPT09ciluLmhhcyhyKT9pPSExOm4uYWRkKHIpO2Vsc2V7bGV0IHQ9ZS5wcm9wc1tyXSxuPWFbcl18fG5ldyBTZXQ7KCJuYW1lIiE9PXJ8fCFvKSYmbi5oYXModCk/aT0hMToobi5hZGQodCksYVtyXT1uKX19fXJldHVybiBpfSkpLnJldmVyc2UoKS5tYXAoKGUsdCk9PntsZXQgcj1lLmtleXx8dDtyZXR1cm4gcy5kZWZhdWx0LmNsb25lRWxlbWVudChlLHtrZXk6cn0pfSl9bGV0IG09ZnVuY3Rpb24oe2NoaWxkcmVuOmV9KXtsZXQgdD0oMCxzLnVzZUNvbnRleHQpKGMuSGVhZE1hbmFnZXJDb250ZXh0KTtyZXR1cm4oMCxsLmpzeCkodS5kZWZhdWx0LHtyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZTpoLGhlYWRNYW5hZ2VyOnQsY2hpbGRyZW46ZX0pfTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw5MTg1NTYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkltYWdlQ29uZmlnQ29udGV4dCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9fSk7bGV0IG49ZS5yKDU1NTY4MikuXyhlLnIoMjcxNjQ1KSksYT1lLnIoOTg3NjkwKSxpPW4uZGVmYXVsdC5jcmVhdGVDb250ZXh0KGEuaW1hZ2VDb25maWdEZWZhdWx0KX0sNjU4NTYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIlJvdXRlckNvbnRleHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPWUucig1NTU2ODIpLl8oZS5yKDI3MTY0NSkpLmRlZmF1bHQuY3JlYXRlQ29udGV4dChudWxsKX0sNjcwOTY1LChlLHQscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbihlLHQpe2xldCByPWV8fDc1O3JldHVybiB0Py5xdWFsaXRpZXM/Lmxlbmd0aD90LnF1YWxpdGllcy5yZWR1Y2UoKGUsdCk9Pk1hdGguYWJzKHQtcik8TWF0aC5hYnMoZS1yKT90OmUsMCk6cn1PYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImZpbmRDbG9zZXN0UXVhbGl0eSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9LDE5NDgsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpfX0pO2xldCBuPWUucig2NzA5NjUpO2Z1bmN0aW9uIGEoe2NvbmZpZzplLHNyYzp0LHdpZHRoOnIscXVhbGl0eTphfSl7aWYodC5zdGFydHNXaXRoKCIvIikmJnQuaW5jbHVkZXMoIj8iKSYmZS5sb2NhbFBhdHRlcm5zPy5sZW5ndGg9PT0xJiYiKioiPT09ZS5sb2NhbFBhdHRlcm5zWzBdLnBhdGhuYW1lJiYiIj09PWUubG9jYWxQYXR0ZXJuc1swXS5zZWFyY2gpdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGBJbWFnZSB3aXRoIHNyYyAiJHt0fSIgaXMgdXNpbmcgYSBxdWVyeSBzdHJpbmcgd2hpY2ggaXMgbm90IGNvbmZpZ3VyZWQgaW4gaW1hZ2VzLmxvY2FsUGF0dGVybnMuClJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1pbWFnZS11bmNvbmZpZ3VyZWQtbG9jYWxwYXR0ZXJuc2ApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFODcxIixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2xldCBpPSgwLG4uZmluZENsb3Nlc3RRdWFsaXR5KShhLGUpO3JldHVybmAke2UucGF0aH0/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfSZ3PSR7cn0mcT0ke2l9JHt0LnN0YXJ0c1dpdGgoIi9fbmV4dC9zdGF0aWMvbWVkaWEvIiksIiJ9YH1hLl9fbmV4dF9pbWdfZGVmYXVsdD0hMDtsZXQgaT1hfSw2MDU1MDAsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIkltYWdlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geH19KTtsZXQgbj1lLnIoNTU1NjgyKSxhPWUucigxOTA4MDkpLGk9ZS5yKDg0MzQ3Niksbz1hLl8oZS5yKDI3MTY0NSkpLGw9bi5fKGUucigxNzQwODApKSxzPW4uXyhlLnIoMzI1NjMzKSksdT1lLnIoOTA4OTI3KSxjPWUucig5ODc2OTApLGQ9ZS5yKDkxODU1Nik7ZS5yKDIzMzUyNSk7bGV0IGY9ZS5yKDY1ODU2KSxwPW4uXyhlLnIoMTk0OCkpLGg9ZS5yKDgxODU4MSksbT17ZGV2aWNlU2l6ZXM6WzY0MCw3NTAsODI4LDEwODAsMTIwMCwxOTIwLDIwNDgsMzg0MF0saW1hZ2VTaXplczpbMzIsNDgsNjQsOTYsMTI4LDI1NiwzODRdLHF1YWxpdGllczpbNzVdLHBhdGg6Ii9fbmV4dC9pbWFnZSIsbG9hZGVyOiJkZWZhdWx0IixkYW5nZXJvdXNseUFsbG93U1ZHOiExLHVub3B0aW1pemVkOiExfTtmdW5jdGlvbiBnKGUsdCxyLG4sYSxpLG8pe2xldCBsPWU/LnNyYztlJiZlWyJkYXRhLWxvYWRlZC1zcmMiXSE9PWwmJihlWyJkYXRhLWxvYWRlZC1zcmMiXT1sLCgiZGVjb2RlImluIGU/ZS5kZWNvZGUoKTpQcm9taXNlLnJlc29sdmUoKSkuY2F0Y2goKCk9Pnt9KS50aGVuKCgpPT57aWYoZS5wYXJlbnRFbGVtZW50JiZlLmlzQ29ubmVjdGVkKXtpZigiZW1wdHkiIT09dCYmYSghMCkscj8uY3VycmVudCl7bGV0IHQ9bmV3IEV2ZW50KCJsb2FkIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInRhcmdldCIse3dyaXRhYmxlOiExLHZhbHVlOmV9KTtsZXQgbj0hMSxhPSExO3IuY3VycmVudCh7Li4udCxuYXRpdmVFdmVudDp0LGN1cnJlbnRUYXJnZXQ6ZSx0YXJnZXQ6ZSxpc0RlZmF1bHRQcmV2ZW50ZWQ6KCk9Pm4saXNQcm9wYWdhdGlvblN0b3BwZWQ6KCk9PmEscGVyc2lzdDooKT0+e30scHJldmVudERlZmF1bHQ6KCk9PntuPSEwLHQucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOigpPT57YT0hMCx0LnN0b3BQcm9wYWdhdGlvbigpfX0pfW4/LmN1cnJlbnQmJm4uY3VycmVudChlKX19KSl9ZnVuY3Rpb24gYihlKXtyZXR1cm4gby51c2U/e2ZldGNoUHJpb3JpdHk6ZX06e2ZldGNocHJpb3JpdHk6ZX19InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cmJihnbG9iYWxUaGlzLl9fTkVYVF9JTUFHRV9JTVBPUlRFRD0hMCk7bGV0IHk9KDAsby5mb3J3YXJkUmVmKSgoe3NyYzplLHNyY1NldDp0LHNpemVzOnIsaGVpZ2h0Om4sd2lkdGg6YSxkZWNvZGluZzpsLGNsYXNzTmFtZTpzLHN0eWxlOnUsZmV0Y2hQcmlvcml0eTpjLHBsYWNlaG9sZGVyOmQsbG9hZGluZzpmLHVub3B0aW1pemVkOnAsZmlsbDptLG9uTG9hZFJlZjp5LG9uTG9hZGluZ0NvbXBsZXRlUmVmOnYsc2V0Qmx1ckNvbXBsZXRlOngsc2V0U2hvd0FsdFRleHQ6dyxzaXplc0lucHV0Omosb25Mb2FkOl8sb25FcnJvcjprLC4uLlB9LFMpPT57bGV0IEU9KDAsby51c2VDYWxsYmFjaykoZT0+e2UmJihrJiYoZS5zcmM9ZS5zcmMpLGUuY29tcGxldGUmJmcoZSxkLHksdix4LHAsaikpfSxbZSxkLHksdix4LGsscCxqXSksQz0oMCxoLnVzZU1lcmdlZFJlZikoUyxFKTtyZXR1cm4oMCxpLmpzeCkoImltZyIsey4uLlAsLi4uYihjKSxsb2FkaW5nOmYsd2lkdGg6YSxoZWlnaHQ6bixkZWNvZGluZzpsLCJkYXRhLW5pbWciOm0/ImZpbGwiOiIxIixjbGFzc05hbWU6cyxzdHlsZTp1LHNpemVzOnIsc3JjU2V0OnQsc3JjOmUscmVmOkMsb25Mb2FkOmU9PntnKGUuY3VycmVudFRhcmdldCxkLHksdix4LHAsail9LG9uRXJyb3I6ZT0+e3coITApLCJlbXB0eSIhPT1kJiZ4KCEwKSxrJiZrKGUpfX0pfSk7ZnVuY3Rpb24gdih7aXNBcHBSb3V0ZXI6ZSxpbWdBdHRyaWJ1dGVzOnR9KXtsZXQgcj17YXM6ImltYWdlIixpbWFnZVNyY1NldDp0LnNyY1NldCxpbWFnZVNpemVzOnQuc2l6ZXMsY3Jvc3NPcmlnaW46dC5jcm9zc09yaWdpbixyZWZlcnJlclBvbGljeTp0LnJlZmVycmVyUG9saWN5LC4uLmIodC5mZXRjaFByaW9yaXR5KX07cmV0dXJuIGUmJmwuZGVmYXVsdC5wcmVsb2FkPyhsLmRlZmF1bHQucHJlbG9hZCh0LnNyYyxyKSxudWxsKTooMCxpLmpzeCkocy5kZWZhdWx0LHtjaGlsZHJlbjooMCxpLmpzeCkoImxpbmsiLHtyZWw6InByZWxvYWQiLGhyZWY6dC5zcmNTZXQ/dm9pZCAwOnQuc3JjLC4uLnJ9LCJfX25pbWctIit0LnNyYyt0LnNyY1NldCt0LnNpemVzKX0pfWxldCB4PSgwLG8uZm9yd2FyZFJlZikoKGUsdCk9PntsZXQgcj0oMCxvLnVzZUNvbnRleHQpKGYuUm91dGVyQ29udGV4dCksbj0oMCxvLnVzZUNvbnRleHQpKGQuSW1hZ2VDb25maWdDb250ZXh0KSxhPSgwLG8udXNlTWVtbykoKCk9PntsZXQgZT1tfHxufHxjLmltYWdlQ29uZmlnRGVmYXVsdCx0PVsuLi5lLmRldmljZVNpemVzLC4uLmUuaW1hZ2VTaXplc10uc29ydCgoZSx0KT0+ZS10KSxyPWUuZGV2aWNlU2l6ZXMuc29ydCgoZSx0KT0+ZS10KSxhPWUucXVhbGl0aWVzPy5zb3J0KChlLHQpPT5lLXQpO3JldHVybnsuLi5lLGFsbFNpemVzOnQsZGV2aWNlU2l6ZXM6cixxdWFsaXRpZXM6YSxsb2NhbFBhdHRlcm5zOiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P24/LmxvY2FsUGF0dGVybnM6ZS5sb2NhbFBhdHRlcm5zfX0sW25dKSx7b25Mb2FkOmwsb25Mb2FkaW5nQ29tcGxldGU6c309ZSxoPSgwLG8udXNlUmVmKShsKTsoMCxvLnVzZUVmZmVjdCkoKCk9PntoLmN1cnJlbnQ9bH0sW2xdKTtsZXQgZz0oMCxvLnVzZVJlZikocyk7KDAsby51c2VFZmZlY3QpKCgpPT57Zy5jdXJyZW50PXN9LFtzXSk7bGV0W2IseF09KDAsby51c2VTdGF0ZSkoITEpLFt3LGpdPSgwLG8udXNlU3RhdGUpKCExKSx7cHJvcHM6XyxtZXRhOmt9PSgwLHUuZ2V0SW1nUHJvcHMpKGUse2RlZmF1bHRMb2FkZXI6cC5kZWZhdWx0LGltZ0NvbmY6YSxibHVyQ29tcGxldGU6YixzaG93QWx0VGV4dDp3fSk7cmV0dXJuKDAsaS5qc3hzKShpLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsaS5qc3gpKHksey4uLl8sdW5vcHRpbWl6ZWQ6ay51bm9wdGltaXplZCxwbGFjZWhvbGRlcjprLnBsYWNlaG9sZGVyLGZpbGw6ay5maWxsLG9uTG9hZFJlZjpoLG9uTG9hZGluZ0NvbXBsZXRlUmVmOmcsc2V0Qmx1ckNvbXBsZXRlOngsc2V0U2hvd0FsdFRleHQ6aixzaXplc0lucHV0OmUuc2l6ZXMscmVmOnR9KSxrLnByZWxvYWQ/KDAsaS5qc3gpKHYse2lzQXBwUm91dGVyOiFyLGltZ0F0dHJpYnV0ZXM6X30pOm51bGxdfSl9KTsoImZ1bmN0aW9uIj09dHlwZW9mIHIuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiByLmRlZmF1bHQmJm51bGwhPT1yLmRlZmF1bHQpJiZ2b2lkIDA9PT1yLmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24oci5kZWZhdWx0LHIpLHQuZXhwb3J0cz1yLmRlZmF1bHQpfSw3OTQ5MDksKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49e2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gY30sZ2V0SW1hZ2VQcm9wczpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBpPWUucig1NTU2ODIpLG89ZS5yKDkwODkyNyksbD1lLnIoNjA1NTAwKSxzPWkuXyhlLnIoMTk0OCkpO2Z1bmN0aW9uIHUoZSl7bGV0e3Byb3BzOnR9PSgwLG8uZ2V0SW1nUHJvcHMpKGUse2RlZmF1bHRMb2FkZXI6cy5kZWZhdWx0LGltZ0NvbmY6e2RldmljZVNpemVzOls2NDAsNzUwLDgyOCwxMDgwLDEyMDAsMTkyMCwyMDQ4LDM4NDBdLGltYWdlU2l6ZXM6WzMyLDQ4LDY0LDk2LDEyOCwyNTYsMzg0XSxxdWFsaXRpZXM6Wzc1XSxwYXRoOiIvX25leHQvaW1hZ2UiLGxvYWRlcjoiZGVmYXVsdCIsZGFuZ2Vyb3VzbHlBbGxvd1NWRzohMSx1bm9wdGltaXplZDohMX19KTtmb3IobGV0W2Uscl1vZiBPYmplY3QuZW50cmllcyh0KSl2b2lkIDA9PT1yJiZkZWxldGUgdFtlXTtyZXR1cm57cHJvcHM6dH19bGV0IGM9bC5JbWFnZX0sNjU3Njg4LChlLHQscik9Pnt0LmV4cG9ydHM9ZS5yKDc5NDkwOSl9LDIwMzQ4NCxlPT57InVzZSBzdHJpY3QiO3ZhciB0PWUuaSg4NDM0NzYpLHI9ZS5pKDI3MTY0NSksbj0oZSx0LHIsbixhLGksbyxsKT0+e2xldCBzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx1PVsibGlnaHQiLCJkYXJrIl07ZnVuY3Rpb24gYyh0KXt2YXIgcjsoQXJyYXkuaXNBcnJheShlKT9lOltlXSkuZm9yRWFjaChlPT57bGV0IHI9ImNsYXNzIj09PWUsbj1yJiZpP2EubWFwKGU9PmlbZV18fGUpOmE7cj8ocy5jbGFzc0xpc3QucmVtb3ZlKC4uLm4pLHMuY2xhc3NMaXN0LmFkZChpJiZpW3RdP2lbdF06dCkpOnMuc2V0QXR0cmlidXRlKGUsdCl9KSxyPXQsbCYmdS5pbmNsdWRlcyhyKSYmKHMuc3R5bGUuY29sb3JTY2hlbWU9cil9aWYobiljKG4pO2Vsc2UgdHJ5e2xldCBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKHQpfHxyLG49byYmInN5c3RlbSI9PT1lP3dpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspIikubWF0Y2hlcz8iZGFyayI6ImxpZ2h0IjplO2Mobil9Y2F0Y2goZSl7fX0sYT1yLmNyZWF0ZUNvbnRleHQodm9pZCAwKSxpPXtzZXRUaGVtZTplPT57fSx0aGVtZXM6W119O3IubWVtbygoe2ZvcmNlZFRoZW1lOmUsc3RvcmFnZUtleTp0LGF0dHJpYnV0ZTphLGVuYWJsZVN5c3RlbTppLGVuYWJsZUNvbG9yU2NoZW1lOm8sZGVmYXVsdFRoZW1lOmwsdmFsdWU6cyx0aGVtZXM6dSxub25jZTpjLHNjcmlwdFByb3BzOmR9KT0+e2xldCBmPUpTT04uc3RyaW5naWZ5KFthLHQsbCxlLHUscyxpLG9dKS5zbGljZSgxLC0xKTtyZXR1cm4gci5jcmVhdGVFbGVtZW50KCJzY3JpcHQiLHsuLi5kLHN1cHByZXNzSHlkcmF0aW9uV2FybmluZzohMCxub25jZToidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz9jOiIiLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOntfX2h0bWw6YCgke24udG9TdHJpbmcoKX0pKCR7Zn0pYH19KX0pO3ZhciBvPWUuaSg4NDY2OTYpO2xldCBsPSh7Li4uZX0pPT57dmFyIG47bGV0e3RoZW1lOmw9InN5c3RlbSJ9PW51bGwhPShuPXIudXNlQ29udGV4dChhKSk/bjppO3JldHVybigwLHQuanN4KShvLlRvYXN0ZXIse3RoZW1lOmwsY2xhc3NOYW1lOiJ0b2FzdGVyIGdyb3VwIixzdHlsZTp7Ii0tbm9ybWFsLWJnIjoidmFyKC0tcG9wb3ZlcikiLCItLW5vcm1hbC10ZXh0IjoidmFyKC0tcG9wb3Zlci1mb3JlZ3JvdW5kKSIsIi0tbm9ybWFsLWJvcmRlciI6InZhcigtLWJvcmRlcikifSwuLi5lfSl9O2UucyhbIlRvYXN0ZXIiLCgpPT5sXSwyMDM0ODQpfSw5MTIzMjIsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lLmkoODQzNDc2KSxyPWUuaSg2MTg1NjYpLG49ZS5pKDUyMjAxNiksYT1lLmkoMjcxNjQ1KSxpPWUuaSg2NTc2ODgpLG89ZS5pKDgzMzg1OCksbD1lLmkoNDc1MjU0KTtsZXQgcz0oMCxsLmRlZmF1bHQpKCJsb2ctb3V0IixbWyJwYXRoIix7ZDoiTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0IixrZXk6IjF1ZjNycyJ9XSxbInBvbHlsaW5lIix7cG9pbnRzOiIxNiAxNyAyMSAxMiAxNiA3IixrZXk6IjFnYWJkeiJ9XSxbImxpbmUiLHt4MToiMjEiLHgyOiI5Iix5MToiMTIiLHkyOiIxMiIsa2V5OiIxdXlvczQifV1dKTt2YXIgdT1lLmkoODQ2NzUzKSx1PXU7bGV0IGM9KDAsbC5kZWZhdWx0KSgic3VuIixbWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiNCIsa2V5OiI0ZXhpcDIifV0sWyJwYXRoIix7ZDoiTTEyIDJ2MiIsa2V5OiJ0dXMwM20ifV0sWyJwYXRoIix7ZDoiTTEyIDIwdjIiLGtleToiMWxoMWtnIn1dLFsicGF0aCIse2Q6Im00LjkzIDQuOTMgMS40MSAxLjQxIixrZXk6IjE0OXQ2aiJ9XSxbInBhdGgiLHtkOiJtMTcuNjYgMTcuNjYgMS40MSAxLjQxIixrZXk6InB0Ymd1diJ9XSxbInBhdGgiLHtkOiJNMiAxMmgyIixrZXk6IjF0OGY4biJ9XSxbInBhdGgiLHtkOiJNMjAgMTJoMiIsa2V5OiIxcThtancifV0sWyJwYXRoIix7ZDoibTYuMzQgMTcuNjYtMS40MSAxLjQxIixrZXk6IjFtOHp6NSJ9XSxbInBhdGgiLHtkOiJtMTkuMDcgNC45My0xLjQxIDEuNDEiLGtleToiMXNobGNzIn1dXSksZD0oMCxsLmRlZmF1bHQpKCJtb29uIixbWyJwYXRoIix7ZDoiTTEyIDNhNiA2IDAgMCAwIDkgOSA5IDkgMCAxIDEtOS05WiIsa2V5OiJhN3RuMTgifV1dKSxmPSgwLGwuZGVmYXVsdCkoInNldHRpbmdzIixbWyJwYXRoIix7ZDoiTTEyLjIyIDJoLS40NGEyIDIgMCAwIDAtMiAydi4xOGEyIDIgMCAwIDEtMSAxLjczbC0uNDMuMjVhMiAyIDAgMCAxLTIgMGwtLjE1LS4wOGEyIDIgMCAwIDAtMi43My43M2wtLjIyLjM4YTIgMiAwIDAgMCAuNzMgMi43M2wuMTUuMWEyIDIgMCAwIDEgMSAxLjcydi41MWEyIDIgMCAwIDEtMSAxLjc0bC0uMTUuMDlhMiAyIDAgMCAwLS43MyAyLjczbC4yMi4zOGEyIDIgMCAwIDAgMi43My43M2wuMTUtLjA4YTIgMiAwIDAgMSAyIDBsLjQzLjI1YTIgMiAwIDAgMSAxIDEuNzNWMjBhMiAyIDAgMCAwIDIgMmguNDRhMiAyIDAgMCAwIDItMnYtLjE4YTIgMiAwIDAgMSAxLTEuNzNsLjQzLS4yNWEyIDIgMCAwIDEgMiAwbC4xNS4wOGEyIDIgMCAwIDAgMi43My0uNzNsLjIyLS4zOWEyIDIgMCAwIDAtLjczLTIuNzNsLS4xNS0uMDhhMiAyIDAgMCAxLTEtMS43NHYtLjVhMiAyIDAgMCAxIDEtMS43NGwuMTUtLjA5YTIgMiAwIDAgMCAuNzMtMi43M2wtLjIyLS4zOGEyIDIgMCAwIDAtMi43My0uNzNsLS4xNS4wOGEyIDIgMCAwIDEtMiAwbC0uNDMtLjI1YTIgMiAwIDAgMS0xLTEuNzNWNGEyIDIgMCAwIDAtMi0yeiIsa2V5OiIxcW1lMmYifV0sWyJjaXJjbGUiLHtjeDoiMTIiLGN5OiIxMiIscjoiMyIsa2V5OiIxdjd6cmQifV1dKTt2YXIgcD1lLmkoOTIyNTIxKTtsZXQgaD0oe3RpdGxlOmUsc3VidGl0bGU6bCxkYXRlUmFuZ2U6aCxjYW5Db3B5VXJsOm09ITEscm9sZTpnPW51bGx9KT0+e2xldFtiLHldPSgwLGEudXNlU3RhdGUpKCExKSx2PSgwLHIudXNlUGF0aG5hbWUpKCkseD0oMCxyLnVzZVJvdXRlcikoKSx7dXNlcjp3fT0oMCxvLnVzZUF1dGhVc2VyKSgpLHt0aGVtZTpqLHRvZ2dsZVRoZW1lOl99PSgwLHAudXNlVGhlbWUpKCksaz12LmluY2x1ZGVzKCIvd2l6YXJkLyIpLFA9Ii9ob21lIixTPWFzeW5jIGU9PntpZihrKXtpZihlLnByZXZlbnREZWZhdWx0KCksdj8uaW5jbHVkZXMoIi93aXphcmQvIikmJnY/LmVuZHNXaXRoKCIvNSIpKXJldHVybiB2b2lkIHgucHVzaChQKTtsZXQgdD1uZXcgQ3VzdG9tRXZlbnQoIndpemFyZC1zYXZlLWJlZm9yZS1uYXZpZ2F0aW9uIix7ZGV0YWlsOnt0YXJnZXRTdGVwOiJob21lIn19KTt3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KTtsZXQgcj1udWxsLG49ZT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aXphcmQtc2F2ZS1jb21wbGV0ZWQiLG4pLG51bGwhPT1yJiZ3aW5kb3cuY2xlYXJUaW1lb3V0KHIpLHgucHVzaChQKX07d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndpemFyZC1zYXZlLWNvbXBsZXRlZCIsbikscj13aW5kb3cuc2V0VGltZW91dCgoKT0+e3dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aXphcmQtc2F2ZS1jb21wbGV0ZWQiLG4pLHgucHVzaChQKX0sNWUzKX19LEU9dz9mdW5jdGlvbihlKXtsZXQgdD1gJHtlLmZpcnN0TmFtZT8uWzBdPz8iIn0ke2UubGFzdE5hbWU/LlswXT8/IiJ9YC50b1VwcGVyQ2FzZSgpO2lmKHQpcmV0dXJuIHQ7bGV0IHI9ZS5lbWFpbD8uc3BsaXQoIkAiKVswXT8udHJpbSgpPz8iIjtpZighcilyZXR1cm4gbnVsbDtsZXQgbj1yLnNwbGl0KC9bLl9cLStdKy8pLmZpbHRlcihCb29sZWFuKTtyZXR1cm4gMD09PW4ubGVuZ3RoP251bGw6MT09PW4ubGVuZ3RoP25bMF0/LlswXT8udG9VcHBlckNhc2UoKT8/bnVsbDpgJHtuWzBdWzBdfSR7blsxXVswXX1gLnRvVXBwZXJDYXNlKCl9KHcpOm51bGw7cmV0dXJuKDAsdC5qc3gpKCJkaXYiLHtjbGFzc05hbWU6Im1iLTIgbWQ6bWItNCIsY2hpbGRyZW46KDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJncmlkIGdyaWQtY29scy1bYXV0b18xZnJfYXV0b10gaXRlbXMtc3RhcnQgZ2FwLTIgbWQ6Z2FwLTMgcHgtNCBweS0yIG1kOnB4LTggbWQ6cHktNCBtYXgtdy03eGwgbXgtYXV0byB3LWZ1bGwiLGNoaWxkcmVuOlsoMCx0LmpzeCkoImRpdiIse2NoaWxkcmVuOigwLHQuanN4KShuLmRlZmF1bHQse2hyZWY6UCxjbGFzc05hbWU6ImlubGluZS1ibG9jayBhbGlnbi1taWRkbGUiLG9uQ2xpY2s6UyxjaGlsZHJlbjooMCx0LmpzeCkoaS5kZWZhdWx0LHtzcmM6Ii9pbWFnZXMvbmV3dG9uLWxvZ28td2hpdGUucG5nIixhbHQ6Ik5ld3RvbiBMb2dvIix3aWR0aDoxMDAsaGVpZ2h0OjM2LGNsYXNzTmFtZToiYmxvY2sgaC03IHctYXV0byBkYXJrOmludmVydC0wIGludmVydCIsdGl0bGU6IkdvIHRvIGhvbWUiLHByaW9yaXR5OiEwfSl9KX0pLCgwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZToidGV4dC1jZW50ZXIgbWluLXctMCIsY2hpbGRyZW46WygwLHQuanN4KSgiaDIiLHtjbGFzc05hbWU6InRleHQtYmFzZSBtZDp0ZXh0LXhsIG1iLTAuNSB0ZXh0LWJyYW5kLWJsdWUtbGlnaHQgZm9udC1zZW1pYm9sZCB0cnVuY2F0ZSIsY2hpbGRyZW46ZXx8IlN0cmF0ZWdpYyBQbGFuIE5hdmlnYXRvciJ9KSxsJiYoMCx0LmpzeCkoInAiLHtjbGFzc05hbWU6InRleHQtc20gbWQ6dGV4dC1iYXNlIG1iLTAuNSB0ZXh0LWJyYW5kLXRleHQgdHJ1bmNhdGUiLGNoaWxkcmVuOmx9KSxoJiYoMCx0LmpzeHMpKCJwIix7Y2xhc3NOYW1lOiJtLTAgdGV4dC14cyBtZDp0ZXh0LXNtIHRleHQtYnJhbmQtdGV4dC1tdXRlZCIsY2hpbGRyZW46WyJEYXRlIFJhbmdlOiAiLGhdfSksbSYmKDAsdC5qc3gpKCJidXR0b24iLHtvbkNsaWNrOigpPT57e2xldCBlPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2UoIi9kYXNoYm9hcmQvIiwiL3B1YmxpYy1yZXBvcnQvIik7bmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZSkudGhlbigoKT0+e3koITApLHNldFRpbWVvdXQoKCk9PnkoITEpLDJlMyl9KS5jYXRjaChlPT57Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGNvcHkgVVJMOiAiLGUpfSl9fSxjbGFzc05hbWU6Im10LTEuNSBtZDptdC0yIGlubGluZS1ibG9jayBib3JkZXIgYm9yZGVyLWJyYW5kLWJsdWUgdGV4dC1icmFuZC1ibHVlIHB4LTEuNSBtZDpweC0yIHB5LTAuNSBtZDpweS0xIHJvdW5kZWQgdGV4dC14cyBob3Zlcjpib3JkZXItYnJhbmQtYmx1ZS1saWdodCBob3Zlcjp0ZXh0LWJyYW5kLWJsdWUtbGlnaHQgdHJhbnNpdGlvbi1jb2xvcnMiLHRpdGxlOiJDb3B5IHB1YmxpYyBsaW5rIGZvciB0aGlzIHJlcG9ydCIsY2hpbGRyZW46Yj8iTGluayBDb3BpZWQhIjoiQ29weSBDdXN0b21lciBMaW5rIn0pXX0pLCgwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIiLGNoaWxkcmVuOlsoMCx0LmpzeCkoImJ1dHRvbiIse3R5cGU6ImJ1dHRvbiIsb25DbGljazpfLGNsYXNzTmFtZToiZmxleCBoLTggdy04IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgdGV4dC1icmFuZC10ZXh0LW11dGVkIGhvdmVyOnRleHQtYnJhbmQtdGV4dCBob3ZlcjpiZy1icmFuZC1ob3ZlciB0cmFuc2l0aW9uLWNvbG9ycyIsdGl0bGU6ImRhcmsiPT09aj8iU3dpdGNoIHRvIGxpZ2h0IG1vZGUiOiJTd2l0Y2ggdG8gZGFyayBtb2RlIiwiYXJpYS1sYWJlbCI6IlRvZ2dsZSB0aGVtZSIsY2hpbGRyZW46ImRhcmsiPT09aj8oMCx0LmpzeCkoYyx7Y2xhc3NOYW1lOiJoLTQgdy00In0pOigwLHQuanN4KShkLHtjbGFzc05hbWU6ImgtNCB3LTQifSl9KSwiYWRtaW4iPT09ZyYmKDAsdC5qc3gpKG4uZGVmYXVsdCx7aHJlZjoiL2FkbWluL3VzZXJzIixjbGFzc05hbWU6ImZsZXggaC04IHctOCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIHRleHQtYnJhbmQtdGV4dC1tdXRlZCBob3Zlcjp0ZXh0LWJyYW5kLXRleHQgaG92ZXI6YmctYnJhbmQtaG92ZXIgdHJhbnNpdGlvbi1jb2xvcnMiLHRpdGxlOiJBZG1pbiIsImFyaWEtbGFiZWwiOiJBZG1pbiIsY2hpbGRyZW46KDAsdC5qc3gpKGYse2NsYXNzTmFtZToiaC00IHctNCJ9KX0pLCgwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGgtMTAgdy0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJnLWJyYW5kLWJsdWUgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtbWVkaXVtIix0aXRsZTp3Py5mdWxsTmFtZXx8dz8uZW1haWx8fCIiLGNoaWxkcmVuOkV8fCgwLHQuanN4KSh1LmRlZmF1bHQse2NsYXNzTmFtZToiaC01IHctNSJ9KX0pLCgwLHQuanN4KSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOigpPT57d2luZG93LmxvY2F0aW9uLmhyZWY9Ii9hdXRoL3NpZ25vdXQifSxjbGFzc05hbWU6InRleHQtYnJhbmQtdGV4dC1tdXRlZCBob3Zlcjp0ZXh0LWJyYW5kLXRleHQgdHJhbnNpdGlvbi1jb2xvcnMiLHRpdGxlOiJTaWduIG91dCIsImFyaWEtbGFiZWwiOiJTaWduIG91dCIsY2hpbGRyZW46KDAsdC5qc3gpKHMse2NsYXNzTmFtZToiaC00IHctNCJ9KX0pXX0pXX0pfSl9O2UucyhbIkNvbmRpdGlvbmFsSGVhZGVyIiwwLCh7cm9sZTplfSk9PntsZXQgbj0oMCxyLnVzZVBhdGhuYW1lKSgpO3JldHVybiBuLnN0YXJ0c1dpdGgoIi9wdWJsaWMvIil8fG4uc3RhcnRzV2l0aCgiL2F1dGgvIik/bnVsbDooMCx0LmpzeCkoaCx7cm9sZTplfSl9XSw5MTIzMjIpfSwzMDIzNTUsZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgdD1lLmkoMjQ3MTY3KSxyPWUuaSgyNzE2NDUpLG49ZS5pKDYxODU2Nik7ZnVuY3Rpb24gYSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93fWZ1bmN0aW9uIGkoKXtyZXR1cm4icHJvZHVjdGlvbiJ9ZnVuY3Rpb24gbygpe3JldHVybiJkZXZlbG9wbWVudCI9PT0oKGEoKT93aW5kb3cudmFtOmkoKSl8fCJwcm9kdWN0aW9uIil9ZnVuY3Rpb24gbChlKXtyZXR1cm4gUmVnRXhwKGAvJHtlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLCJcXCQmIil9KD89Wy8/I118JClgKX1mdW5jdGlvbiBzKGUpe3JldHVybigwLHIudXNlRWZmZWN0KSgoKT0+e3ZhciB0O2UuYmVmb3JlU2VuZCYmKG51bGw9PSh0PXdpbmRvdy52YSl8fHQuY2FsbCh3aW5kb3csImJlZm9yZVNlbmQiLGUuYmVmb3JlU2VuZCkpfSxbZS5iZWZvcmVTZW5kXSksKDAsci51c2VFZmZlY3QpKCgpPT57IWZ1bmN0aW9uKGU9e2RlYnVnOiEwfSl7dmFyIHQ7aWYoIWEoKSlyZXR1cm47IWZ1bmN0aW9uKGU9ImF1dG8iKXtpZigiYXV0byI9PT1lKXt3aW5kb3cudmFtPWkoKTtyZXR1cm59d2luZG93LnZhbT1lfShlLm1vZGUpLHdpbmRvdy52YXx8KHdpbmRvdy52YT1mdW5jdGlvbiguLi5lKXsod2luZG93LnZhcT13aW5kb3cudmFxfHxbXSkucHVzaChlKX0pLGUuYmVmb3JlU2VuZCYmKG51bGw9PSh0PXdpbmRvdy52YSl8fHQuY2FsbCh3aW5kb3csImJlZm9yZVNlbmQiLGUuYmVmb3JlU2VuZCkpO2xldCByPWUuc2NyaXB0U3JjP2Uuc2NyaXB0U3JjOm8oKT8iaHR0cHM6Ly92YS52ZXJjZWwtc2NyaXB0cy5jb20vdjEvc2NyaXB0LmRlYnVnLmpzIjplLmJhc2VQYXRoP2Ake2UuYmFzZVBhdGh9L2luc2lnaHRzL3NjcmlwdC5qc2A6Ii9fdmVyY2VsL2luc2lnaHRzL3NjcmlwdC5qcyI7aWYoZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjKj0iJHtyfSJdYCkpcmV0dXJuO2xldCBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO24uc3JjPXIsbi5kZWZlcj0hMCxuLmRhdGFzZXQuc2Rrbj0iQHZlcmNlbC9hbmFseXRpY3MiKyhlLmZyYW1ld29yaz9gLyR7ZS5mcmFtZXdvcmt9YDoiIiksbi5kYXRhc2V0LnNka3Y9IjEuNS4wIixlLmRpc2FibGVBdXRvVHJhY2smJihuLmRhdGFzZXQuZGlzYWJsZUF1dG9UcmFjaz0iMSIpLGUuZW5kcG9pbnQ/bi5kYXRhc2V0LmVuZHBvaW50PWUuZW5kcG9pbnQ6ZS5iYXNlUGF0aCYmKG4uZGF0YXNldC5lbmRwb2ludD1gJHtlLmJhc2VQYXRofS9pbnNpZ2h0c2ApLGUuZHNuJiYobi5kYXRhc2V0LmRzbj1lLmRzbiksbi5vbmVycm9yPSgpPT57bGV0IGU9bygpPyJQbGVhc2UgY2hlY2sgaWYgYW55IGFkIGJsb2NrZXJzIGFyZSBlbmFibGVkIGFuZCB0cnkgYWdhaW4uIjoiQmUgc3VyZSB0byBlbmFibGUgV2ViIEFuYWx5dGljcyBmb3IgeW91ciBwcm9qZWN0IGFuZCBkZXBsb3kgYWdhaW4uIFNlZSBodHRwczovL3ZlcmNlbC5jb20vZG9jcy9hbmFseXRpY3MvcXVpY2tzdGFydCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iO2NvbnNvbGUubG9nKGBbVmVyY2VsIFdlYiBBbmFseXRpY3NdIEZhaWxlZCB0byBsb2FkIHNjcmlwdCBmcm9tICR7cn0uICR7ZX1gKX0sbygpJiYhMT09PWUuZGVidWcmJihuLmRhdGFzZXQuZGVidWc9ImZhbHNlIiksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0oe2ZyYW1ld29yazplLmZyYW1ld29ya3x8InJlYWN0IixiYXNlUGF0aDplLmJhc2VQYXRoPz9mdW5jdGlvbigpe2lmKHZvaWQgMCE9PXQuZGVmYXVsdCYmdm9pZCAwIT09dC5kZWZhdWx0LmVudilyZXR1cm4gdC5kZWZhdWx0LmVudi5SRUFDVF9BUFBfVkVSQ0VMX09CU0VSVkFCSUxJVFlfQkFTRVBBVEh9KCksLi4udm9pZCAwIT09ZS5yb3V0ZSYme2Rpc2FibGVBdXRvVHJhY2s6ITB9LC4uLmV9KX0sW10pLCgwLHIudXNlRWZmZWN0KSgoKT0+e2Uucm91dGUmJmUucGF0aCYmZnVuY3Rpb24oe3JvdXRlOmUscGF0aDp0fSl7dmFyIHI7bnVsbD09KHI9d2luZG93LnZhKXx8ci5jYWxsKHdpbmRvdywicGFnZXZpZXciLHtyb3V0ZTplLHBhdGg6dH0pfSh7cm91dGU6ZS5yb3V0ZSxwYXRoOmUucGF0aH0pfSxbZS5yb3V0ZSxlLnBhdGhdKSxudWxsfWZ1bmN0aW9uIHUoZSl7bGV0IGEsaSxvLHtyb3V0ZTp1LHBhdGg6Y309KGE9KDAsbi51c2VQYXJhbXMpKCksaT0oMCxuLnVzZVNlYXJjaFBhcmFtcykoKSxvPSgwLG4udXNlUGF0aG5hbWUpKCksYT97cm91dGU6ZnVuY3Rpb24oZSx0KXtpZighZXx8IXQpcmV0dXJuIGU7bGV0IHI9ZTt0cnl7bGV0IGU9T2JqZWN0LmVudHJpZXModCk7Zm9yKGxldFt0LG5db2YgZSlpZighQXJyYXkuaXNBcnJheShuKSl7bGV0IGU9bChuKTtlLnRlc3QocikmJihyPXIucmVwbGFjZShlLGAvWyR7dH1dYCkpfWZvcihsZXRbdCxuXW9mIGUpaWYoQXJyYXkuaXNBcnJheShuKSl7bGV0IGU9bChuLmpvaW4oIi8iKSk7ZS50ZXN0KHIpJiYocj1yLnJlcGxhY2UoZSxgL1suLi4ke3R9XWApKX1yZXR1cm4gcn1jYXRjaCh0KXtyZXR1cm4gZX19KG8sT2JqZWN0LmtleXMoYSkubGVuZ3RoP2E6T2JqZWN0LmZyb21FbnRyaWVzKGkuZW50cmllcygpKSkscGF0aDpvfTp7cm91dGU6bnVsbCxwYXRoOm99KTtyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQocyx7cGF0aDpjLHJvdXRlOnUsLi4uZSxiYXNlUGF0aDpmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXQuZGVmYXVsdCYmdm9pZCAwIT09dC5kZWZhdWx0LmVudilyZXR1cm4gdC5kZWZhdWx0LmVudi5ORVhUX1BVQkxJQ19WRVJDRUxfT0JTRVJWQUJJTElUWV9CQVNFUEFUSH0oKSxmcmFtZXdvcms6Im5leHQifSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoci5TdXNwZW5zZSx7ZmFsbGJhY2s6bnVsbH0sci5kZWZhdWx0LmNyZWF0ZUVsZW1lbnQodSx7Li4uZX0pKX1lLnMoWyJBbmFseXRpY3MiLCgpPT5jXSl9LDEyOTg1LGU9PnsidXNlIHN0cmljdCI7dmFyIHQ9ZS5pKDUxMTQ3NCkscj1lLmkoNjE4NTY2KSxuPWUuaSgyNzE2NDUpLGE9KDAsdC5jcmVhdGVBZGFwdGVyUHJvdmlkZXIpKGZ1bmN0aW9uKCl7bGV0IGU9KDAsci51c2VSb3V0ZXIpKCksYT0oMCxyLnVzZVNlYXJjaFBhcmFtcykoKSxbaSxvXT0oMCxuLnVzZU9wdGltaXN0aWMpKGEpO3JldHVybntzZWFyY2hQYXJhbXM6aSx1cGRhdGVVcmw6KDAsbi51c2VDYWxsYmFjaykoKHIsYSk9PnsoMCxuLnN0YXJ0VHJhbnNpdGlvbikoKCk9Pnt2YXIgbixpO2Euc2hhbGxvd3x8byhyKTtsZXQgbD0obj1sb2NhdGlvbi5vcmlnaW4rbG9jYXRpb24ucGF0aG5hbWUsaT1yLChuLnNwbGl0KCIjIilbMF0/PyIiKSsoMCx0LnJlbmRlclF1ZXJ5U3RyaW5nKShpKStsb2NhdGlvbi5oYXNoKTsoMCx0LmRlYnVnKSgiW251cXMgcXVldWUgKGFwcCldIFVwZGF0aW5nIHVybDogJXMiLGwpLCgicHVzaCI9PT1hLmhpc3Rvcnk/aGlzdG9yeS5wdXNoU3RhdGU6aGlzdG9yeS5yZXBsYWNlU3RhdGUpLmNhbGwoaGlzdG9yeSxudWxsLCIiLGwpLGEuc2Nyb2xsJiZ3aW5kb3cuc2Nyb2xsVG8oMCwwKSxhLnNoYWxsb3d8fGUucmVwbGFjZShsLHtzY3JvbGw6ITF9KX0pfSxbXSkscmF0ZUxpbWl0RmFjdG9yOjN9fSk7ZS5zKFsiTnVxc0FkYXB0ZXIiLCgpPT5hXSwxMjk4NSl9LDI5MTIwMSxlPT57InVzZSBzdHJpY3QiO3ZhciB0PWUuaSg4NDM0NzYpLHI9ZS5pKDI3MTY0NSk7ZnVuY3Rpb24gbih7dGFyZ2V0TmFtZTplLHRhcmdldEVtYWlsOm4sZXhwaXJlc0F0OmF9KXtsZXRbaSxvXT0oMCxyLnVzZVN0YXRlKSgoKT0+RGF0ZS5wYXJzZShhKS1EYXRlLm5vdygpKTtyZXR1cm4oMCxyLnVzZUVmZmVjdCkoKCk9PntsZXQgZT1zZXRJbnRlcnZhbCgoKT0+e28oRGF0ZS5wYXJzZShhKS1EYXRlLm5vdygpKX0sMWUzKTtyZXR1cm4oKT0+Y2xlYXJJbnRlcnZhbChlKX0sW2FdKSwoMCx0LmpzeHMpKCJkaXYiLHtyb2xlOiJzdGF0dXMiLCJhcmlhLWxpdmUiOiJwb2xpdGUiLGNsYXNzTmFtZToic3RpY2t5IHRvcC0wIHotNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00IGJnLWFtYmVyLTUwMCBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTk1MCBzaGFkb3ctbWQiLGNoaWxkcmVuOlsoMCx0LmpzeHMpKCJzcGFuIix7Y2hpbGRyZW46WygwLHQuanN4KSgic3Ryb25nIix7Y2hpbGRyZW46IkFjdGluZyBhcyJ9KSwiICIsZSwiICIsKDAsdC5qc3hzKSgic3BhbiIse2NsYXNzTmFtZToib3BhY2l0eS04MCIsY2hpbGRyZW46WyI8IixuLCI+Il19KV19KSwoMCx0LmpzeHMpKCJzcGFuIix7Y2xhc3NOYW1lOiJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyIsY2hpbGRyZW46WygwLHQuanN4cykoInNwYW4iLHtjbGFzc05hbWU6InJvdW5kZWQgYmctYW1iZXItOTUwLzE1IHB4LTIgcHktMC41IHRleHQteHMgdGFidWxhci1udW1zIixjaGlsZHJlbjpbZnVuY3Rpb24oZSl7aWYoZTw9MClyZXR1cm4iMDowMCI7bGV0IHQ9TWF0aC5mbG9vcihlLzFlMykscj1NYXRoLmZsb29yKHQvNjApO3JldHVybmAke3J9OiR7U3RyaW5nKHQlNjApLnBhZFN0YXJ0KDIsIjAiKX1gfShpKSwiIHJlbWFpbmluZyJdfSksKDAsdC5qc3gpKCJmb3JtIix7YWN0aW9uOiIvYXBpL2FkbWluL2ltcGVyc29uYXRlL2V4aXQ/cmVhc29uPW1hbnVhbCIsbWV0aG9kOiJQT1NUIixjaGlsZHJlbjooMCx0LmpzeCkoImJ1dHRvbiIse3R5cGU6InN1Ym1pdCIsY2xhc3NOYW1lOiJyb3VuZGVkIGJnLWFtYmVyLTk1MCBweC0zIHB5LTEgdGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYW1iZXItNTAgaG92ZXI6YmctYW1iZXItOTAwIixjaGlsZHJlbjoiRXhpdCJ9KX0pXX0pXX0pfWUucyhbIkltcGVyc29uYXRpb25CYW5uZXIiLCgpPT5uXSl9LDQ1ODA5OSxlPT57InVzZSBzdHJpY3QiO3ZhciB0PWUuaSg4NDM0NzYpLHI9ZS5pKDI3MTY0NSksbj1lLmkoNTIyMDE2KSxhPWUuaSg2MTg1NjYpO2xldCBpPSgwLGUuaSg0NzUyNTQpLmRlZmF1bHQpKCJtZXNzYWdlLWNpcmNsZSIsW1sicGF0aCIse2Q6Ik03LjkgMjBBOSA5IDAgMSAwIDQgMTYuMUwyIDIyWiIsa2V5OiJ2djExc2QifV1dKTt2YXIgbz1lLmkoMjk5MDIzKSxsPWUuaSgxMDcyMzMpLHM9ZS5pKDc3ODkxNyksdT1lLmkoNzExMDYpO2xldCBjPSJzcG4uZG9jay50aHJlYWRJZCI7ZnVuY3Rpb24gZCgpe2xldCBlPSgwLGEudXNlUGF0aG5hbWUpKCksW2QsZl09KDAsci51c2VTdGF0ZSkoITEpLFtwLGhdPSgwLHIudXNlU3RhdGUpKCExKSxbbSxnXT0oMCxyLnVzZVN0YXRlKSghMSksW2IseV09KDAsci51c2VTdGF0ZSkoMCksW3YseF09KDAsci51c2VTdGF0ZSkobnVsbCksW3csal09KDAsci51c2VTdGF0ZSkobnVsbCksW18sa109KDAsci51c2VTdGF0ZSkoW10pLFA9KDAsci51c2VSZWYpKG51bGwpLFM9KDAsci51c2VDYWxsYmFjaykoZT0+e3goZSk7dHJ5e3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oYyxlKX1jYXRjaHt9fSxbXSksRT0oMCxyLnVzZUNhbGxiYWNrKShhc3luYygpPT57aWYoZighMCkscClyZXR1cm47aCghMCk7bGV0IGU9bnVsbDt0cnl7ZT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGMpfWNhdGNoe2U9bnVsbH1pZihlKXtsZXQgdD1uZXcgQWJvcnRDb250cm9sbGVyO1AuY3VycmVudD10O2xldCByPXNldFRpbWVvdXQoKCk9PnQuYWJvcnQoKSw2ZTMpO3RyeXtsZXQgcj1hd2FpdCBmZXRjaChgL2FwaS9jaGF0L2hpc3Rvcnk/dGhyZWFkSWQ9JHtlbmNvZGVVUklDb21wb25lbnQoZSl9YCx7c2lnbmFsOnQuc2lnbmFsfSk7aWYoci5vayl7bGV0IG49YXdhaXQgci5qc29uKCk7IXQuc2lnbmFsLmFib3J0ZWQmJm4ubWVzc2FnZXMmJm4ubWVzc2FnZXMubGVuZ3RoPjAmJihqKGUpLGsobi5tZXNzYWdlcykseChlKSl9fWNhdGNoe31maW5hbGx5e2NsZWFyVGltZW91dChyKSxQLmN1cnJlbnQ9PT10JiYoUC5jdXJyZW50PW51bGwpfX1nKCEwKX0sW3BdKSxDPSgwLHIudXNlQ2FsbGJhY2spKCgpPT57UC5jdXJyZW50Py5hYm9ydCgpO3RyeXtzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKGMpfWNhdGNoe314KG51bGwpLGoobnVsbCksayhbXSkseShlPT5lKzEpfSxbXSk7cmV0dXJuKCgwLHIudXNlRWZmZWN0KSgoKT0+e2lmKGQpcmV0dXJuIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixlKSwoKT0+d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGUpO2Z1bmN0aW9uIGUoZSl7IkVzY2FwZSI9PT1lLmtleSYmZighMSl9fSxbZF0pLCIvY2hhdCI9PT1lfHxlLnN0YXJ0c1dpdGgoIi9wdWJsaWMvIil8fGUuc3RhcnRzV2l0aCgiL2F1dGgvIikpP251bGw6KDAsdC5qc3hzKSh0LkZyYWdtZW50LHtjaGlsZHJlbjpbIWQmJigwLHQuanN4KSgiYnV0dG9uIix7dHlwZToiYnV0dG9uIixvbkNsaWNrOkUsImFyaWEtbGFiZWwiOiJPcGVuIHRoZSBUQU0gYWdlbnQgY2hhdCIsY2xhc3NOYW1lOiJmaXhlZCBib3R0b20tNSByaWdodC01IHotNDAgZmxleCBoLTEyIHctMTIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtZnVsbCBiZy1icmFuZC1ibHVlIHRleHQtd2hpdGUgc2hhZG93LWxnIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTkwIixjaGlsZHJlbjooMCx0LmpzeCkoaSx7Y2xhc3NOYW1lOiJoLTYgdy02In0pfSkscCYmKDAsdC5qc3hzKSgiZGl2Iix7cm9sZToiZGlhbG9nIiwiYXJpYS1sYWJlbCI6IlRBTSBhZ2VudCBjaGF0IiwiYXJpYS1oaWRkZW4iOiFkLGluZXJ0OiFkLGNsYXNzTmFtZTpgZml4ZWQgcmlnaHQtMCB0b3AtMCB6LTUwIGZsZXggaC1mdWxsIHctZnVsbCBmbGV4LWNvbCBib3JkZXItbCBib3JkZXItYnJhbmQtYm9yZGVyIGJnLWJyYW5kLWJnIHNoYWRvdy14bCB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0yMDAgc206dy1bNDIwcHhdICR7ZD8idHJhbnNsYXRlLXgtMCI6InBvaW50ZXItZXZlbnRzLW5vbmUgdHJhbnNsYXRlLXgtZnVsbCJ9YCxjaGlsZHJlbjpbKDAsdC5qc3hzKSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gYm9yZGVyLWIgYm9yZGVyLWJyYW5kLWJvcmRlciBweC0zIHB5LTIiLGNoaWxkcmVuOlsoMCx0LmpzeCkoInNwYW4iLHtjbGFzc05hbWU6InRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWJyYW5kLXRleHQiLGNoaWxkcmVuOiJBc2sgdGhlIGFnZW50In0pLCgwLHQuanN4cykoImRpdiIse2NsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEiLGNoaWxkcmVuOlsoMCx0LmpzeHMpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6QywiYXJpYS1sYWJlbCI6IlN0YXJ0IGEgbmV3IGNoYXQiLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcm91bmRlZC1tZCBweC0yIHB5LTEgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQgaG92ZXI6YmctYnJhbmQtaG92ZXIgaG92ZXI6dGV4dC1icmFuZC10ZXh0IixjaGlsZHJlbjpbKDAsdC5qc3gpKGwuUGx1cyx7Y2xhc3NOYW1lOiJoLTMuNSB3LTMuNSJ9KSwiIE5ldyBjaGF0Il19KSwoMCx0LmpzeHMpKG4uZGVmYXVsdCx7aHJlZjp2P2AvY2hhdD90aHJlYWQ9JHtlbmNvZGVVUklDb21wb25lbnQodil9YDoiL2NoYXQiLCJhcmlhLWxhYmVsIjoiT3BlbiB0aGlzIGNvbnZlcnNhdGlvbiBpbiB0aGUgZnVsbCBjaGF0IHBhZ2UiLGNsYXNzTmFtZToiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgcm91bmRlZC1tZCBweC0yIHB5LTEgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQgaG92ZXI6YmctYnJhbmQtaG92ZXIgaG92ZXI6dGV4dC1icmFuZC10ZXh0IixjaGlsZHJlbjpbKDAsdC5qc3gpKHMuRXh0ZXJuYWxMaW5rLHtjbGFzc05hbWU6ImgtMy41IHctMy41In0pLCIgT3BlbiBpbiAvY2hhdCJdfSksKDAsdC5qc3gpKCJidXR0b24iLHt0eXBlOiJidXR0b24iLG9uQ2xpY2s6KCk9PmYoITEpLCJhcmlhLWxhYmVsIjoiTWluaW1pemUgdGhlIGNoYXQiLGNsYXNzTmFtZToiZmxleCBoLTcgdy03IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIHRleHQtYnJhbmQtdGV4dC1tdXRlZCBob3ZlcjpiZy1icmFuZC1ob3ZlciBob3Zlcjp0ZXh0LWJyYW5kLXRleHQiLGNoaWxkcmVuOigwLHQuanN4KShvLk1pbnVzLHtjbGFzc05hbWU6ImgtNCB3LTQifSl9KV19KV19KSwoMCx0LmpzeCkoImRpdiIse2NsYXNzTmFtZToibWluLWgtMCBmbGV4LTEiLGNoaWxkcmVuOm0/KDAsdC5qc3gpKHUuQ2hhdFBhbmVsLHtpbml0aWFsVGhyZWFkSWQ6dyxpbml0aWFsTWVzc2FnZXM6XyxvblRocmVhZElkQ2hhbmdlOlN9LGIpOigwLHQuanN4KSgiZGl2Iix7Y2xhc3NOYW1lOiJmbGV4IGgtZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC1zbSB0ZXh0LWJyYW5kLXRleHQtbXV0ZWQiLGNoaWxkcmVuOiJMb2FkaW5n4oCmIn0pfSldfSldfSl9ZS5zKFsiQ2hhdERvY2siLCgpPT5kXSw0NTgwOTkpfSw2MTE3MzcsZT0+e2UudihlPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT5lKDkwNjA4NSkpKX0sNDU2NTU1LGU9PntlLnYodD0+UHJvbWlzZS5hbGwoWyJzdGF0aWMvY2h1bmtzL2YyZDFiMzljNzdjNGQxYzguanMiXS5tYXAodD0+ZS5sKHQpKSkudGhlbigoKT0+dCg1MTI0NDIpKSl9XSk7"}},"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":"https","addr":"preview-strategynavigator.newton.tech/","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T08:54:54.491Z","timestamp":1785142494491,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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 307 \r\ncache-control: public, max-age=0, must-revalidate\r\ncontent-type: text/html\r\ndate: Mon, 27 Jul 2026 08:54:55 GMT\r\nlocation: /auth/login\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-vercel-id: arn1::98n5g-1785142494635-162d229b2022\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"307","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":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"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-07-27T15:05:58.256156Z","times_seen":17565140,"resource_available":true,"data":null}},"time_used":148,"timings":{"blocked":-1,"dns":105,"connect":1,"send":0,"wait":11,"receive":0,"ssl":31},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/d80b3790a119a285.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.229Z","timestamp":1785142498229,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/d80b3790a119a285.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"d80b3790a119a285.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"cf7ff30cbbe7168e4ed596a4e942b212\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/d80b3790a119a285.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::5jmkb-1785142498234-657c8da9ef2c\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":27945,"size_decoded":7817,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (27943), with no line terminators","md5":"cf7ff30cbbe7168e4ed596a4e942b212","sha1":"1a46bfe50b885b61791fad5ad53c858f076b7a31","sha256":"9ea863c460e0b392cf14ea559d176d6dc3a5d63b856cc1996d149fd826df2948","sha512":"4ca572e1cd4e8f6acf5dd4baa2b4ae06218dc3b04d311a0c9b78747fb85db2d2450c53e0cdefa5e9da66becd299f19a0cade174d2c1af505f30049bab2eedef9","ssdeep":"384:o78MQ4IZDHYapQpqG8llOUuLyptQUVm/8oWDmuRg4w:oQMQ4IZDHCsAUeOtnXK4w","tlshash":"65c2b5b27391fda212db85dac0370005f2651c3521ae20b0b795ccef769dcd991bafa9","first_seen":"2025-10-26T07:49:44.747694Z","last_seen":"2026-07-27T08:57:45.725395Z","times_seen":634,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDQ5MTkxNSwoZSxyLHQpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4oZSxyPXt9KXtpZihyLm9ubHlIYXNoQ2hhbmdlKXJldHVybiB2b2lkIGUoKTtsZXQgdD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYoInNtb290aCIhPT10LmRhdGFzZXQuc2Nyb2xsQmVoYXZpb3IpcmV0dXJuIHZvaWQgZSgpO2xldCBhPXQuc3R5bGUuc2Nyb2xsQmVoYXZpb3I7dC5zdHlsZS5zY3JvbGxCZWhhdmlvcj0iYXV0byIsci5kb250Rm9yY2VMYXlvdXR8fHQuZ2V0Q2xpZW50UmVjdHMoKSxlKCksdC5zdHlsZS5zY3JvbGxCZWhhdmlvcj1hfU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSksZS5yKDIzMzUyNSl9LDc2ODAxNywoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpfX0pO2xldCBuPWUucigxOTA4MDkpLGE9ZS5yKDg0MzQ3Niksbz1uLl8oZS5yKDI3MTY0NSkpLGM9ZS5yKDU5MDM3MyksdT1lLnIoNzU0Mzk0KTtlLnIoMjMzNTI1KTtsZXQgbD1lLnIoODM3Mik7Y2xhc3MgcyBleHRlbmRzIG8uZGVmYXVsdC5Db21wb25lbnR7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSksdGhpcy5zdGF0ZT17dHJpZ2dlcmVkU3RhdHVzOnZvaWQgMCxwcmV2aW91c1BhdGhuYW1lOmUucGF0aG5hbWV9fWNvbXBvbmVudERpZENhdGNoKCl7fXN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoZSl7aWYoKDAsdS5pc0hUVFBBY2Nlc3NGYWxsYmFja0Vycm9yKShlKSlyZXR1cm57dHJpZ2dlcmVkU3RhdHVzOigwLHUuZ2V0QWNjZXNzRmFsbGJhY2tIVFRQU3RhdHVzKShlKX07dGhyb3cgZX1zdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKGUscil7cmV0dXJuIGUucGF0aG5hbWUhPT1yLnByZXZpb3VzUGF0aG5hbWUmJnIudHJpZ2dlcmVkU3RhdHVzP3t0cmlnZ2VyZWRTdGF0dXM6dm9pZCAwLHByZXZpb3VzUGF0aG5hbWU6ZS5wYXRobmFtZX06e3RyaWdnZXJlZFN0YXR1czpyLnRyaWdnZXJlZFN0YXR1cyxwcmV2aW91c1BhdGhuYW1lOmUucGF0aG5hbWV9fXJlbmRlcigpe2xldHtub3RGb3VuZDplLGZvcmJpZGRlbjpyLHVuYXV0aG9yaXplZDp0LGNoaWxkcmVuOm59PXRoaXMucHJvcHMse3RyaWdnZXJlZFN0YXR1czpvfT10aGlzLnN0YXRlLGM9e1t1LkhUVFBBY2Nlc3NFcnJvclN0YXR1cy5OT1RfRk9VTkRdOmUsW3UuSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLkZPUkJJRERFTl06cixbdS5IVFRQQWNjZXNzRXJyb3JTdGF0dXMuVU5BVVRIT1JJWkVEXTp0fTtpZihvKXtsZXQgbD1vPT09dS5IVFRQQWNjZXNzRXJyb3JTdGF0dXMuTk9UX0ZPVU5EJiZlLHM9bz09PXUuSFRUUEFjY2Vzc0Vycm9yU3RhdHVzLkZPUkJJRERFTiYmcixpPW89PT11LkhUVFBBY2Nlc3NFcnJvclN0YXR1cy5VTkFVVEhPUklaRUQmJnQ7cmV0dXJuIGx8fHN8fGk/KDAsYS5qc3hzKShhLkZyYWdtZW50LHtjaGlsZHJlbjpbKDAsYS5qc3gpKCJtZXRhIix7bmFtZToicm9ib3RzIixjb250ZW50OiJub2luZGV4In0pLCExLGNbb11dfSk6bn1yZXR1cm4gbn19ZnVuY3Rpb24gaSh7bm90Rm91bmQ6ZSxmb3JiaWRkZW46cix1bmF1dGhvcml6ZWQ6dCxjaGlsZHJlbjpufSl7bGV0IHU9KDAsYy51c2VVbnRyYWNrZWRQYXRobmFtZSkoKSxpPSgwLG8udXNlQ29udGV4dCkobC5NaXNzaW5nU2xvdENvbnRleHQpO3JldHVybiBlfHxyfHx0PygwLGEuanN4KShzLHtwYXRobmFtZTp1LG5vdEZvdW5kOmUsZm9yYmlkZGVuOnIsdW5hdXRob3JpemVkOnQsbWlzc2luZ1Nsb3RzOmksY2hpbGRyZW46bn0pOigwLGEuanN4KShhLkZyYWdtZW50LHtjaGlsZHJlbjpufSl9KCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmdm9pZCAwPT09dC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxyLmV4cG9ydHM9dC5kZWZhdWx0KX0sOTkxNzk4LChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJ1c2VSb3V0ZXJCRkNhY2hlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYX19KTtsZXQgbj1lLnIoMjcxNjQ1KTtmdW5jdGlvbiBhKGUscil7bGV0W3QsYV09KDAsbi51c2VTdGF0ZSkoKCk9Pih7dHJlZTplLHN0YXRlS2V5OnIsbmV4dDpudWxsfSkpO2lmKHQudHJlZT09PWUpcmV0dXJuIHQ7bGV0IG89e3RyZWU6ZSxzdGF0ZUtleTpyLG5leHQ6bnVsbH0sYz0xLHU9dCxsPW87Zm9yKDtudWxsIT09dSYmYzwxOyl7aWYodS5zdGF0ZUtleT09PXIpe2wubmV4dD11Lm5leHQ7YnJlYWt9e2MrKztsZXQgZT17dHJlZTp1LnRyZWUsc3RhdGVLZXk6dS5zdGF0ZUtleSxuZXh0Om51bGx9O2wubmV4dD1lLGw9ZX11PXUubmV4dH1yZXR1cm4gYShvKSxvfSgiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJnZvaWQgMD09PXQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksci5leHBvcnRzPXQuZGVmYXVsdCl9LDMzOTc1NiwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFR9fSk7bGV0IG49ZS5yKDU1NTY4MiksYT1lLnIoMTkwODA5KSxvPWUucig4NDM0NzYpLGM9ZS5yKDM4ODU0MCksdT1hLl8oZS5yKDI3MTY0NSkpLGw9bi5fKGUucigxNzQwODApKSxzPWUucig4MzcyKSxpPWUucig3ODcyODgpLGQ9ZS5yKDIwMTI0NCksZj1lLnIoOTcyMzgzKSxwPWUucig3NTYwMTkpLGg9ZS5yKDQ5MTkxNSksbT1lLnIoMzU4NDQyKSxnPWUucig3NjgwMTcpLHk9ZS5yKDI3MDcyNSksYj1lLnIoMjg0MzU2KSxQPWUucig5NDE1MzgpLF89ZS5yKDk5MTc5OCk7ZS5yKDE3NDE4MCk7bGV0IHY9ZS5yKDI2MTk5NCksTz1lLnIoMzM5MDYpLFM9bC5kZWZhdWx0Ll9fRE9NX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxFPVsiYm90dG9tIiwiaGVpZ2h0IiwibGVmdCIsInJpZ2h0IiwidG9wIiwid2lkdGgiLCJ4IiwieSJdO2Z1bmN0aW9uIFIoZSxyKXtsZXQgdD1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LnRvcD49MCYmdC50b3A8PXJ9Y2xhc3MgaiBleHRlbmRzIHUuZGVmYXVsdC5Db21wb25lbnR7Y29tcG9uZW50RGlkTW91bnQoKXt0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpfWNvbXBvbmVudERpZFVwZGF0ZSgpe3RoaXMucHJvcHMuZm9jdXNBbmRTY3JvbGxSZWYuYXBwbHkmJnRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsKCl9cmVuZGVyKCl7cmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW59Y29uc3RydWN0b3IoLi4uZSl7c3VwZXIoLi4uZSksdGhpcy5oYW5kbGVQb3RlbnRpYWxTY3JvbGw9KCk9PntsZXR7Zm9jdXNBbmRTY3JvbGxSZWY6ZSxzZWdtZW50UGF0aDpyfT10aGlzLnByb3BzO2lmKGUuYXBwbHkpe2lmKDAhPT1lLnNlZ21lbnRQYXRocy5sZW5ndGgmJiFlLnNlZ21lbnRQYXRocy5zb21lKGU9PnIuZXZlcnkoKHIsdCk9PigwLHAubWF0Y2hTZWdtZW50KShyLGVbdF0pKSkpcmV0dXJuO2xldCB0PW51bGwsbj1lLmhhc2hGcmFnbWVudDtpZihuJiYodD0idG9wIj09PW4/ZG9jdW1lbnQuYm9keTpkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuKT8/ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUobilbMF0pLHR8fCh0PSJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P251bGw6KDAsUy5maW5kRE9NTm9kZSkodGhpcykpLCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKXJldHVybjtmb3IoOyEodCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXx8ZnVuY3Rpb24oZSl7aWYoWyJzdGlja3kiLCJmaXhlZCJdLmluY2x1ZGVzKGdldENvbXB1dGVkU3R5bGUoZSkucG9zaXRpb24pKXJldHVybiEwO2xldCByPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIEUuZXZlcnkoZT0+MD09PXJbZV0pfSh0KTspe2lmKG51bGw9PT10Lm5leHRFbGVtZW50U2libGluZylyZXR1cm47dD10Lm5leHRFbGVtZW50U2libGluZ31lLmFwcGx5PSExLGUuaGFzaEZyYWdtZW50PW51bGwsZS5zZWdtZW50UGF0aHM9W10sKDAsaC5kaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKSgoKT0+e2lmKG4pcmV0dXJuIHZvaWQgdC5zY3JvbGxJbnRvVmlldygpO2xldCBlPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxyPWUuY2xpZW50SGVpZ2h0OyFSKHQscikmJihlLnNjcm9sbFRvcD0wLFIodCxyKXx8dC5zY3JvbGxJbnRvVmlldygpKX0se2RvbnRGb3JjZUxheW91dDohMCxvbmx5SGFzaENoYW5nZTplLm9ubHlIYXNoQ2hhbmdlfSksZS5vbmx5SGFzaENoYW5nZT0hMSx0LmZvY3VzKCl9fX19ZnVuY3Rpb24gdyh7c2VnbWVudFBhdGg6ZSxjaGlsZHJlbjpyfSl7bGV0IHQ9KDAsdS51c2VDb250ZXh0KShzLkdsb2JhbExheW91dFJvdXRlckNvbnRleHQpO2lmKCF0KXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU0NzMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7cmV0dXJuKDAsby5qc3gpKGose3NlZ21lbnRQYXRoOmUsZm9jdXNBbmRTY3JvbGxSZWY6dC5mb2N1c0FuZFNjcm9sbFJlZixjaGlsZHJlbjpyfSl9ZnVuY3Rpb24gQyh7dHJlZTplLHNlZ21lbnRQYXRoOnIsZGVidWdOYW1lQ29udGV4dDp0LGNhY2hlTm9kZTpuLHBhcmFtczphLHVybDpsLGlzQWN0aXZlOmZ9KXtsZXQgaD0oMCx1LnVzZUNvbnRleHQpKHMuR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCk7aWYoKDAsdS51c2VDb250ZXh0KSh2Lk5hdmlnYXRpb25Qcm9taXNlc0NvbnRleHQpLCFoKXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcigiaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU0NzMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7bGV0e3RyZWU6bX09aCxnPW51bGwhPT1uLnByZWZldGNoUnNjP24ucHJlZmV0Y2hSc2M6bi5yc2MseT0oMCx1LnVzZURlZmVycmVkVmFsdWUpKG4ucnNjLGcpLF89Im9iamVjdCI9PXR5cGVvZiB5JiZudWxsIT09eSYmImZ1bmN0aW9uIj09dHlwZW9mIHkudGhlbj8oMCx1LnVzZSkoeSk6eTtpZighXyl7aWYoZil7bGV0IGU9bi5sYXp5RGF0YTtpZihudWxsPT09ZSl7bGV0IHQ9ZnVuY3Rpb24gZShyLHQpe2lmKHIpe2xldFtuLGFdPXIsbz0yPT09ci5sZW5ndGg7aWYoKDAscC5tYXRjaFNlZ21lbnQpKHRbMF0sbikmJnRbMV0uaGFzT3duUHJvcGVydHkoYSkpe2lmKG8pe2xldCByPWUodm9pZCAwLHRbMV1bYV0pO3JldHVyblt0WzBdLHsuLi50WzFdLFthXTpbclswXSxyWzFdLHJbMl0sInJlZmV0Y2giXX1dfXJldHVyblt0WzBdLHsuLi50WzFdLFthXTplKHIuc2xpY2UoMiksdFsxXVthXSl9XX19cmV0dXJuIHR9KFsiIiwuLi5yXSxtKSxhPSgwLGIuaGFzSW50ZXJjZXB0aW9uUm91dGVJbkN1cnJlbnRUcmVlKShtKSxvPURhdGUubm93KCk7bi5sYXp5RGF0YT1lPSgwLGkuZmV0Y2hTZXJ2ZXJSZXNwb25zZSkobmV3IFVSTChsLGxvY2F0aW9uLm9yaWdpbikse2ZsaWdodFJvdXRlclN0YXRlOnQsbmV4dFVybDphP2gucHJldmlvdXNOZXh0VXJsfHxoLm5leHRVcmw6bnVsbH0pLnRoZW4oZT0+KCgwLHUuc3RhcnRUcmFuc2l0aW9uKSgoKT0+eygwLFAuZGlzcGF0Y2hBcHBSb3V0ZXJBY3Rpb24pKHt0eXBlOmMuQUNUSU9OX1NFUlZFUl9QQVRDSCxwcmV2aW91c1RyZWU6bSxzZXJ2ZXJSZXNwb25zZTplLG5hdmlnYXRlZEF0Om99KX0pLGUpKSwoMCx1LnVzZSkoZSl9fSgwLHUudXNlKShkLnVucmVzb2x2ZWRUaGVuYWJsZSl9cmV0dXJuKDAsby5qc3gpKHMuTGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6e3BhcmVudFRyZWU6ZSxwYXJlbnRDYWNoZU5vZGU6bixwYXJlbnRTZWdtZW50UGF0aDpyLHBhcmVudFBhcmFtczphLGRlYnVnTmFtZUNvbnRleHQ6dCx1cmw6bCxpc0FjdGl2ZTpmfSxjaGlsZHJlbjpffSl9ZnVuY3Rpb24geCh7bmFtZTplLGxvYWRpbmc6cixjaGlsZHJlbjp0fSl7bGV0IG47aWYobj0ib2JqZWN0Ij09dHlwZW9mIHImJm51bGwhPT1yJiYiZnVuY3Rpb24iPT10eXBlb2Ygci50aGVuPygwLHUudXNlKShyKTpyKXtsZXQgcj1uWzBdLGE9blsxXSxjPW5bMl07cmV0dXJuKDAsby5qc3gpKHUuU3VzcGVuc2Use25hbWU6ZSxmYWxsYmFjazooMCxvLmpzeHMpKG8uRnJhZ21lbnQse2NoaWxkcmVuOlthLGMscl19KSxjaGlsZHJlbjp0fSl9cmV0dXJuKDAsby5qc3gpKG8uRnJhZ21lbnQse2NoaWxkcmVuOnR9KX1mdW5jdGlvbiBUKHtwYXJhbGxlbFJvdXRlcktleTplLGVycm9yOnIsZXJyb3JTdHlsZXM6dCxlcnJvclNjcmlwdHM6bix0ZW1wbGF0ZVN0eWxlczphLHRlbXBsYXRlU2NyaXB0czpjLHRlbXBsYXRlOmwsbm90Rm91bmQ6aSxmb3JiaWRkZW46ZCx1bmF1dGhvcml6ZWQ6cCxzZWdtZW50Vmlld0JvdW5kYXJpZXM6aH0pe2xldCBiPSgwLHUudXNlQ29udGV4dCkocy5MYXlvdXRSb3V0ZXJDb250ZXh0KTtpZighYil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoImludmFyaWFudCBleHBlY3RlZCBsYXlvdXQgcm91dGVyIHRvIGJlIG1vdW50ZWQiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTU2IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2xldHtwYXJlbnRUcmVlOlAscGFyZW50Q2FjaGVOb2RlOnYscGFyZW50U2VnbWVudFBhdGg6UyxwYXJlbnRQYXJhbXM6RSx1cmw6Uixpc0FjdGl2ZTpqLGRlYnVnTmFtZUNvbnRleHQ6VH09YixBPXYucGFyYWxsZWxSb3V0ZXMsTT1BLmdldChlKTtNfHwoTT1uZXcgTWFwLEEuc2V0KGUsTSkpO2xldCBGPVBbMF0sRD1udWxsPT09Uz9bZV06Uy5jb25jYXQoW0YsZV0pLGs9UFsxXVtlXSxOPWtbMF0sST0oMCx5LmNyZWF0ZVJvdXRlckNhY2hlS2V5KShOLCEwKSxVPSgwLF8udXNlUm91dGVyQkZDYWNoZSkoayxJKSxIPVtdO2Rve2xldCBlPVUudHJlZSx1PVUuc3RhdGVLZXksaD1lWzBdLGI9KDAseS5jcmVhdGVSb3V0ZXJDYWNoZUtleSkoaCksUD1NLmdldChiKTtpZih2b2lkIDA9PT1QKXtsZXQgZT17bGF6eURhdGE6bnVsbCxyc2M6bnVsbCxwcmVmZXRjaFJzYzpudWxsLGhlYWQ6bnVsbCxwcmVmZXRjaEhlYWQ6bnVsbCxwYXJhbGxlbFJvdXRlczpuZXcgTWFwLGxvYWRpbmc6bnVsbCxuYXZpZ2F0ZWRBdDotMX07UD1lLE0uc2V0KGIsZSl9bGV0IF89RTtpZihBcnJheS5pc0FycmF5KGgpKXtsZXQgZT1oWzBdLHI9aFsxXSx0PWhbMl0sbj0oMCxPLmdldFBhcmFtVmFsdWVGcm9tQ2FjaGVLZXkpKHIsdCk7bnVsbCE9PW4mJihfPXsuLi5FLFtlXTpufSl9bGV0IFM9ZnVuY3Rpb24oZSl7aWYoIi8iPT09ZSlyZXR1cm4iLyI7aWYoInN0cmluZyI9PXR5cGVvZiBlKWlmKCIoc2xvdCkiPT09ZSlyZXR1cm47ZWxzZSByZXR1cm4gZSsiLyI7cmV0dXJuIGVbMV0rIi8ifShoKSxBPVM/P1QsRj12b2lkIDA9PT1TP3ZvaWQgMDpULGs9di5sb2FkaW5nLE49KDAsby5qc3hzKShzLlRlbXBsYXRlQ29udGV4dC5Qcm92aWRlcix7dmFsdWU6KDAsby5qc3hzKSh3LHtzZWdtZW50UGF0aDpELGNoaWxkcmVuOlsoMCxvLmpzeCkoZi5FcnJvckJvdW5kYXJ5LHtlcnJvckNvbXBvbmVudDpyLGVycm9yU3R5bGVzOnQsZXJyb3JTY3JpcHRzOm4sY2hpbGRyZW46KDAsby5qc3gpKHgse25hbWU6Rixsb2FkaW5nOmssY2hpbGRyZW46KDAsby5qc3gpKGcuSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkse25vdEZvdW5kOmksZm9yYmlkZGVuOmQsdW5hdXRob3JpemVkOnAsY2hpbGRyZW46KDAsby5qc3hzKShtLlJlZGlyZWN0Qm91bmRhcnkse2NoaWxkcmVuOlsoMCxvLmpzeCkoQyx7dXJsOlIsdHJlZTplLHBhcmFtczpfLGNhY2hlTm9kZTpQLHNlZ21lbnRQYXRoOkQsZGVidWdOYW1lQ29udGV4dDpBLGlzQWN0aXZlOmomJnU9PT1JfSksbnVsbF19KX0pfSl9KSxudWxsXX0pLGNoaWxkcmVuOlthLGMsbF19LHUpO0gucHVzaChOKSxVPVUubmV4dH13aGlsZShudWxsIT09VSlyZXR1cm4gSH0oImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZ2b2lkIDA9PT10LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLHIuZXhwb3J0cz10LmRlZmF1bHQpfSw4Mzc0NTcsKGUscix0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImRlZmF1bHQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB1fX0pO2xldCBuPWUucigxOTA4MDkpLGE9ZS5yKDg0MzQ3Niksbz1uLl8oZS5yKDI3MTY0NSkpLGM9ZS5yKDgzNzIpO2Z1bmN0aW9uIHUoKXtsZXQgZT0oMCxvLnVzZUNvbnRleHQpKGMuVGVtcGxhdGVDb250ZXh0KTtyZXR1cm4oMCxhLmpzeCkoYS5GcmFnbWVudCx7Y2hpbGRyZW46ZX0pfSgiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJnZvaWQgMD09PXQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksci5leHBvcnRzPXQuZGVmYXVsdCl9LDc5MzUwNCwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49bmV3IFdlYWtNYXA7ZnVuY3Rpb24gYShlKXtsZXQgcj1uLmdldChlKTtpZihyKXJldHVybiByO2xldCB0PVByb21pc2UucmVzb2x2ZShlKTtyZXR1cm4gbi5zZXQoZSx0KSx0fSgiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJnZvaWQgMD09PXQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksci5leHBvcnRzPXQuZGVmYXVsdCl9LDI2Njk5NiwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7bGV0IG49ZS5yKDc5MzUwNCkuY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudDsoImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZ2b2lkIDA9PT10LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLHIuZXhwb3J0cz10LmRlZmF1bHQpfSw4MDY4MzEsKGUscix0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBhfX0pO2xldCBuPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGEoZSl7bGV0IHI9bi5nZXQoZSk7aWYocilyZXR1cm4gcjtsZXQgdD1Qcm9taXNlLnJlc29sdmUoZSk7cmV0dXJuIG4uc2V0KGUsdCksdH0oImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVmYXVsdHx8Im9iamVjdCI9PXR5cGVvZiB0LmRlZmF1bHQmJm51bGwhPT10LmRlZmF1bHQpJiZ2b2lkIDA9PT10LmRlZmF1bHQuX19lc01vZHVsZSYmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LmRlZmF1bHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5hc3NpZ24odC5kZWZhdWx0LHQpLHIuZXhwb3J0cz10LmRlZmF1bHQpfSw3OTc2ODksKGUscix0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPWUucig4MDY4MzEpLmNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQ7KCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmdm9pZCAwPT09dC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxyLmV4cG9ydHM9dC5kZWZhdWx0KX0sMjQyNzE1LChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJSZWZsZWN0QWRhcHRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG59fSk7Y2xhc3MgbntzdGF0aWMgZ2V0KGUscix0KXtsZXQgbj1SZWZsZWN0LmdldChlLHIsdCk7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIG4/bi5iaW5kKGUpOm59c3RhdGljIHNldChlLHIsdCxuKXtyZXR1cm4gUmVmbGVjdC5zZXQoZSxyLHQsbil9c3RhdGljIGhhcyhlLHIpe3JldHVybiBSZWZsZWN0LmhhcyhlLHIpfXN0YXRpYyBkZWxldGVQcm9wZXJ0eShlLHIpe3JldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KGUscil9fX0sODc2MzYxLChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbH19KTtsZXQgbj1mdW5jdGlvbihlLHIpe2lmKGUmJmUuX19lc01vZHVsZSlyZXR1cm4gZTtpZihudWxsPT09ZXx8Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSlyZXR1cm57ZGVmYXVsdDplfTt2YXIgdD1hKHZvaWQgMCk7aWYodCYmdC5oYXMoZSkpcmV0dXJuIHQuZ2V0KGUpO3ZhciBuPXtfX3Byb3RvX186bnVsbH0sbz1PYmplY3QuZGVmaW5lUHJvcGVydHkmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7Zm9yKHZhciBjIGluIGUpaWYoImRlZmF1bHQiIT09YyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsYykpe3ZhciB1PW8/T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGMpOm51bGw7dSYmKHUuZ2V0fHx1LnNldCk/T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sYyx1KTpuW2NdPWVbY119cmV0dXJuIG4uZGVmYXVsdD1lLHQmJnQuc2V0KGUsbiksbn0oZS5yKDI3MTY0NSkpO2Z1bmN0aW9uIGEoZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFdlYWtNYXApcmV0dXJuIG51bGw7dmFyIHI9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcDtyZXR1cm4oYT1mdW5jdGlvbihlKXtyZXR1cm4gZT90OnJ9KShlKX1sZXQgbz17Y3VycmVudDpudWxsfSxjPSJmdW5jdGlvbiI9PXR5cGVvZiBuLmNhY2hlP24uY2FjaGU6ZT0+ZSx1PWNvbnNvbGUud2FybjtmdW5jdGlvbiBsKGUpe3JldHVybiBmdW5jdGlvbiguLi5yKXt1KGUoLi4ucikpfX1jKGU9Pnt0cnl7dShvLmN1cnJlbnQpfWZpbmFsbHl7by5jdXJyZW50PW51bGx9fSl9LDU2NTkzMiwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17ZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gY30sd2VsbEtub3duUHJvcGVydGllczpmdW5jdGlvbigpe3JldHVybiBsfX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBvPS9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qJC87ZnVuY3Rpb24gYyhlLHIpe3JldHVybiBvLnRlc3Qocik/YFxgJHtlfS4ke3J9XGBgOmBcYCR7ZX1bJHtKU09OLnN0cmluZ2lmeShyKX1dXGBgfWZ1bmN0aW9uIHUoZSxyKXtsZXQgdD1KU09OLnN0cmluZ2lmeShyKTtyZXR1cm5gXGBSZWZsZWN0Lmhhcygke2V9LCAke3R9KVxgLCBcYCR7dH0gaW4gJHtlfVxgLCBvciBzaW1pbGFyYH1sZXQgbD1uZXcgU2V0KFsiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b1N0cmluZyIsInZhbHVlT2YiLCJ0b0xvY2FsZVN0cmluZyIsInRoZW4iLCJjYXRjaCIsImZpbmFsbHkiLCJzdGF0dXMiLCJkaXNwbGF5TmFtZSIsIl9kZWJ1Z0luZm8iLCJ0b0pTT04iLCIkJHR5cGVvZiIsIl9fZXNNb2R1bGUiXSl9LDc4MzA2NiwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlSW5zdGFuY2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPSgwLGUucig5MDMxNykuY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UpKCl9LDM0MTY0MywoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWZ0ZXJUYXNrQXN5bmNTdG9yYWdlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbi5hZnRlclRhc2tBc3luY1N0b3JhZ2VJbnN0YW5jZX19KTtsZXQgbj1lLnIoNzgzMDY2KX0sODUwOTk5LChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXtpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZTpmdW5jdGlvbigpe3JldHVybiBsfSx0aHJvd1dpdGhTdGF0aWNHZW5lcmF0aW9uQmFpbG91dEVycm9yV2l0aER5bmFtaWNFcnJvcjpmdW5jdGlvbigpe3JldHVybiB1fX07Zm9yKHZhciBhIGluIG4pT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsYSx7ZW51bWVyYWJsZTohMCxnZXQ6blthXX0pO2xldCBvPWUucig2NDMyNDgpLGM9ZS5yKDM0MTY0Myk7ZnVuY3Rpb24gdShlLHIpe3Rocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgby5TdGF0aWNHZW5CYWlsb3V0RXJyb3IoYFJvdXRlICR7ZX0gd2l0aCBcYGR5bmFtaWMgPSAiZXJyb3IiXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgJHtyfS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU1NDMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9ZnVuY3Rpb24gbChlLHIpe2xldCB0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihgUm91dGUgJHtlLnJvdXRlfSB1c2VkIFxgc2VhcmNoUGFyYW1zXGAgaW5zaWRlICJ1c2UgY2FjaGUiLiBBY2Nlc3NpbmcgZHluYW1pYyByZXF1ZXN0IGRhdGEgaW5zaWRlIGEgY2FjaGUgc2NvcGUgaXMgbm90IHN1cHBvcnRlZC4gSWYgeW91IG5lZWQgc29tZSBzZWFyY2ggcGFyYW1zIGluc2lkZSBhIGNhY2hlZCBmdW5jdGlvbiBhd2FpdCBcYHNlYXJjaFBhcmFtc1xgIG91dHNpZGUgb2YgdGhlIGNhY2hlZCBmdW5jdGlvbiBhbmQgcGFzcyBvbmx5IHRoZSByZXF1aXJlZCBzZWFyY2ggcGFyYW1zIGFzIGFyZ3VtZW50cyB0byB0aGUgY2FjaGVkIGZ1bmN0aW9uLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcmVxdWVzdC1pbi11c2UtY2FjaGVgKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTg0MiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTt0aHJvdyBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0LHIpLGUuaW52YWxpZER5bmFtaWNVc2FnZUVycm9yPz89dCx0fWZ1bmN0aW9uIHMoKXtsZXQgZT1jLmFmdGVyVGFza0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO3JldHVybihudWxsPT1lP3ZvaWQgMDplLnJvb3RUYXNrU3Bhd25QaGFzZSk9PT0iYWN0aW9uIn19LDI2OTg4MiwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Y3JlYXRlUHJlcmVuZGVyU2VhcmNoUGFyYW1zRm9yQ2xpZW50UGFnZTpmdW5jdGlvbigpe3JldHVybiBnfSxjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHB9LGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0Zvck1ldGFkYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LGNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gbX0sbWFrZUVycm9yaW5nU2VhcmNoUGFyYW1zRm9yVXNlQ2FjaGU6ZnVuY3Rpb24oKXtyZXR1cm4gdn19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz1lLnIoMjQyNzE1KSxjPWUucig2NzY3MyksdT1lLnIoNjYyMTQxKSxsPWUucigzMTI3MTgpLHM9ZS5yKDk2MzEzOCksaT1lLnIoODc2MzYxKSxkPWUucig1NjU5MzIpLGY9ZS5yKDg1MDk5OSk7ZnVuY3Rpb24gcChlLHIpe2xldCB0PXUud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZih0KXN3aXRjaCh0LnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpyZXR1cm4geShyLHQpO2Nhc2UicHJlcmVuZGVyLXJ1bnRpbWUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgbC5JbnZhcmlhbnRFcnJvcigiY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBhIHJ1bnRpbWUgcHJlcmVuZGVyLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzY5IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2Nhc2UiY2FjaGUiOmNhc2UicHJpdmF0ZS1jYWNoZSI6Y2FzZSJ1bnN0YWJsZS1jYWNoZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBsLkludmFyaWFudEVycm9yKCJjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGNhY2hlIGNvbnRleHRzLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNzM5IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2Nhc2UicmVxdWVzdCI6cmV0dXJuIGIoZSxyLHQpfSgwLHUudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZS5yKDE0Mjg1Mik7bGV0IGg9bTtmdW5jdGlvbiBtKGUscil7bGV0IHQ9dS53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO2lmKHQpc3dpdGNoKHQudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcHByIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOnJldHVybiB5KHIsdCk7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGwuSW52YXJpYW50RXJyb3IoImNyZWF0ZVNlcnZlclNlYXJjaFBhcmFtc0ZvclNlcnZlclBhZ2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NDciLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6dmFyIG4sYTtyZXR1cm4gbj1lLGE9dCwoMCxjLmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKGEsTyhuKSk7Y2FzZSJyZXF1ZXN0IjpyZXR1cm4gYihlLHIsdCl9KDAsdS50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKX1mdW5jdGlvbiBnKGUpe2lmKGUuZm9yY2VTdGF0aWMpcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7bGV0IHI9dS53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO2lmKHIpc3dpdGNoKHIudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6cmV0dXJuKDAscy5tYWtlSGFuZ2luZ1Byb21pc2UpKHIucmVuZGVyU2lnbmFsLGUucm91dGUsImBzZWFyY2hQYXJhbXNgIik7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6dGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBsLkludmFyaWFudEVycm9yKCJjcmVhdGVQcmVyZW5kZXJTZWFyY2hQYXJhbXNGb3JDbGllbnRQYWdlIHNob3VsZCBub3QgYmUgY2FsbGVkIGluIGEgcnVudGltZSBwcmVyZW5kZXIuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NjgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGwuSW52YXJpYW50RXJyb3IoImNyZWF0ZVByZXJlbmRlclNlYXJjaFBhcmFtc0ZvckNsaWVudFBhZ2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NDYiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcHByIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOmNhc2UicmVxdWVzdCI6cmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSl9KDAsdS50aHJvd0ludmFyaWFudEZvck1pc3NpbmdTdG9yZSkoKX1mdW5jdGlvbiB5KGUscil7aWYoZS5mb3JjZVN0YXRpYylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtzd2l0Y2goci50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50Ijp2YXIgdD1lLG49cjtsZXQgYT1QLmdldChuKTtpZihhKXJldHVybiBhO2xldCB1PSgwLHMubWFrZUhhbmdpbmdQcm9taXNlKShuLnJlbmRlclNpZ25hbCx0LnJvdXRlLCJgc2VhcmNoUGFyYW1zYCIpLGw9bmV3IFByb3h5KHUse2dldChlLHIsdCl7aWYoT2JqZWN0Lmhhc093bih1LHIpKXJldHVybiBvLlJlZmxlY3RBZGFwdGVyLmdldChlLHIsdCk7c3dpdGNoKHIpe2Nhc2UidGhlbiI6cmV0dXJuKDAsYy5hbm5vdGF0ZUR5bmFtaWNBY2Nlc3MpKCJgYXdhaXQgc2VhcmNoUGFyYW1zYCwgYHNlYXJjaFBhcmFtcy50aGVuYCwgb3Igc2ltaWxhciIsbiksby5SZWZsZWN0QWRhcHRlci5nZXQoZSxyLHQpO2Nhc2Uic3RhdHVzIjpyZXR1cm4oMCxjLmFubm90YXRlRHluYW1pY0FjY2VzcykoImB1c2Uoc2VhcmNoUGFyYW1zKWAsIGBzZWFyY2hQYXJhbXMuc3RhdHVzYCwgb3Igc2ltaWxhciIsbiksby5SZWZsZWN0QWRhcHRlci5nZXQoZSxyLHQpO2RlZmF1bHQ6cmV0dXJuIG8uUmVmbGVjdEFkYXB0ZXIuZ2V0KGUscix0KX19fSk7cmV0dXJuIFAuc2V0KG4sbCksbDtjYXNlInByZXJlbmRlci1wcHIiOmNhc2UicHJlcmVuZGVyLWxlZ2FjeSI6dmFyIGk9ZSxkPXI7bGV0IHA9UC5nZXQoaSk7aWYocClyZXR1cm4gcDtsZXQgaD1Qcm9taXNlLnJlc29sdmUoe30pLG09bmV3IFByb3h5KGgse2dldChlLHIsdCl7aWYoT2JqZWN0Lmhhc093bihoLHIpKXJldHVybiBvLlJlZmxlY3RBZGFwdGVyLmdldChlLHIsdCk7aWYoInN0cmluZyI9PXR5cGVvZiByJiYidGhlbiI9PT1yKXtsZXQgZT0iYGF3YWl0IHNlYXJjaFBhcmFtc2AsIGBzZWFyY2hQYXJhbXMudGhlbmAsIG9yIHNpbWlsYXIiO2kuZHluYW1pY1Nob3VsZEVycm9yPygwLGYudGhyb3dXaXRoU3RhdGljR2VuZXJhdGlvbkJhaWxvdXRFcnJvcldpdGhEeW5hbWljRXJyb3IpKGkucm91dGUsZSk6InByZXJlbmRlci1wcHIiPT09ZC50eXBlPygwLGMucG9zdHBvbmVXaXRoVHJhY2tpbmcpKGkucm91dGUsZSxkLmR5bmFtaWNUcmFja2luZyk6KDAsYy50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikoZSxpLGQpfXJldHVybiBvLlJlZmxlY3RBZGFwdGVyLmdldChlLHIsdCl9fSk7cmV0dXJuIFAuc2V0KGksbSksbTtkZWZhdWx0OnJldHVybiByfX1mdW5jdGlvbiBiKGUscix0KXtyZXR1cm4gci5mb3JjZVN0YXRpYz9Qcm9taXNlLnJlc29sdmUoe30pOk8oZSl9bGV0IFA9bmV3IFdlYWtNYXAsXz1uZXcgV2Vha01hcDtmdW5jdGlvbiB2KGUpe2xldCByPV8uZ2V0KGUpO2lmKHIpcmV0dXJuIHI7bGV0IHQ9UHJvbWlzZS5yZXNvbHZlKHt9KSxuPW5ldyBQcm94eSh0LHtnZXQ6ZnVuY3Rpb24gcihuLGEsYyl7cmV0dXJuIE9iamVjdC5oYXNPd24odCxhKXx8InN0cmluZyIhPXR5cGVvZiBhfHwidGhlbiIhPT1hJiZkLndlbGxLbm93blByb3BlcnRpZXMuaGFzKGEpfHwoMCxmLnRocm93Rm9yU2VhcmNoUGFyYW1zQWNjZXNzSW5Vc2VDYWNoZSkoZSxyKSxvLlJlZmxlY3RBZGFwdGVyLmdldChuLGEsYyl9fSk7cmV0dXJuIF8uc2V0KGUsbiksbn1mdW5jdGlvbiBPKGUpe2xldCByPVAuZ2V0KGUpO2lmKHIpcmV0dXJuIHI7bGV0IHQ9UHJvbWlzZS5yZXNvbHZlKGUpO3JldHVybiBQLnNldChlLHQpLHR9KDAsaS5jcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KShmdW5jdGlvbihlLHIpe2xldCB0PWU/YFJvdXRlICIke2V9IiBgOiJUaGlzIHJvdXRlICI7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFcnJvcihgJHt0fXVzZWQgJHtyfS4gXGBzZWFyY2hQYXJhbXNcYCBpcyBhIFByb21pc2UgYW5kIG11c3QgYmUgdW53cmFwcGVkIHdpdGggXGBhd2FpdFxgIG9yIFxgUmVhY3QudXNlKClcYCBiZWZvcmUgYWNjZXNzaW5nIGl0cyBwcm9wZXJ0aWVzLiBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2ApLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFODQ4IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pfSl9LDc0ODA0LChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJkeW5hbWljQWNjZXNzQXN5bmNTdG9yYWdlSW5zdGFuY2UiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBufX0pO2xldCBuPSgwLGUucig5MDMxNykuY3JlYXRlQXN5bmNMb2NhbFN0b3JhZ2UpKCl9LDI4ODI3NiwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiZHluYW1pY0FjY2Vzc0FzeW5jU3RvcmFnZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG4uZHluYW1pY0FjY2Vzc0FzeW5jU3RvcmFnZUluc3RhbmNlfX0pO2xldCBuPWUucig3NDgwNCl9LDU0MTQ4OSwoZSxyLHQpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj17Y3JlYXRlUGFyYW1zRnJvbUNsaWVudDpmdW5jdGlvbigpe3JldHVybiBofSxjcmVhdGVQcmVyZW5kZXJQYXJhbXNGb3JDbGllbnRTZWdtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGJ9LGNyZWF0ZVNlcnZlclBhcmFtc0Zvck1ldGFkYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIG19LGNyZWF0ZVNlcnZlclBhcmFtc0ZvclJvdXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGd9LGNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4geX19O2Zvcih2YXIgYSBpbiBuKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGEse2VudW1lcmFibGU6ITAsZ2V0Om5bYV19KTtsZXQgbz1lLnIoNTYzNTk5KSxjPWUucigyNDI3MTUpLHU9ZS5yKDY3NjczKSxsPWUucig2NjIxNDEpLHM9ZS5yKDMxMjcxOCksaT1lLnIoNTY1OTMyKSxkPWUucig5NjMxMzgpLGY9ZS5yKDg3NjM2MSkscD1lLnIoMjg4Mjc2KTtmdW5jdGlvbiBoKGUscil7bGV0IHQ9bC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO2lmKHQpc3dpdGNoKHQudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcHByIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOnJldHVybiBQKGUscix0KTtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgcy5JbnZhcmlhbnRFcnJvcigiY3JlYXRlUGFyYW1zRnJvbUNsaWVudCBzaG91bGQgbm90IGJlIGNhbGxlZCBpbiBjYWNoZSBjb250ZXh0cy4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTczNiIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlInByZXJlbmRlci1ydW50aW1lIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuSW52YXJpYW50RXJyb3IoImNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gYSBydW50aW1lIHByZXJlbmRlci4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc3MCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtjYXNlInJlcXVlc3QiOnJldHVybiBTKGUpfSgwLGwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZS5yKDE0Mjg1Mik7bGV0IG09eTtmdW5jdGlvbiBnKGUscil7bGV0IHQ9bC53b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO2lmKHQpc3dpdGNoKHQudHlwZSl7Y2FzZSJwcmVyZW5kZXIiOmNhc2UicHJlcmVuZGVyLWNsaWVudCI6Y2FzZSJwcmVyZW5kZXItcHByIjpjYXNlInByZXJlbmRlci1sZWdhY3kiOnJldHVybiBQKGUscix0KTtjYXNlImNhY2hlIjpjYXNlInByaXZhdGUtY2FjaGUiOmNhc2UidW5zdGFibGUtY2FjaGUiOnRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgcy5JbnZhcmlhbnRFcnJvcigiY3JlYXRlU2VydmVyUGFyYW1zRm9yUm91dGUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3MzgiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6cmV0dXJuIF8oZSx0KTtjYXNlInJlcXVlc3QiOnJldHVybiBTKGUpfSgwLGwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZnVuY3Rpb24geShlLHIpe2xldCB0PWwud29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZih0KXN3aXRjaCh0LnR5cGUpe2Nhc2UicHJlcmVuZGVyIjpjYXNlInByZXJlbmRlci1jbGllbnQiOmNhc2UicHJlcmVuZGVyLXBwciI6Y2FzZSJwcmVyZW5kZXItbGVnYWN5IjpyZXR1cm4gUChlLHIsdCk7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuSW52YXJpYW50RXJyb3IoImNyZWF0ZVNlcnZlclBhcmFtc0ZvclNlcnZlclNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3NDMiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSk7Y2FzZSJwcmVyZW5kZXItcnVudGltZSI6cmV0dXJuIF8oZSx0KTtjYXNlInJlcXVlc3QiOnJldHVybiBTKGUpfSgwLGwudGhyb3dJbnZhcmlhbnRGb3JNaXNzaW5nU3RvcmUpKCl9ZnVuY3Rpb24gYihlKXtsZXQgcj1vLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtpZighcil0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuSW52YXJpYW50RXJyb3IoIk1pc3Npbmcgd29ya1N0b3JlIGluIGNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQiKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTc3MyIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXQgdD1sLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7aWYodClzd2l0Y2godC50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50IjpsZXQgbj10LmZhbGxiYWNrUm91dGVQYXJhbXM7aWYobil7Zm9yKGxldCBhIGluIGUpaWYobi5oYXMoYSkpcmV0dXJuKDAsZC5tYWtlSGFuZ2luZ1Byb21pc2UpKHQucmVuZGVyU2lnbmFsLHIucm91dGUsImBwYXJhbXNgIil9YnJlYWs7Y2FzZSJjYWNoZSI6Y2FzZSJwcml2YXRlLWNhY2hlIjpjYXNlInVuc3RhYmxlLWNhY2hlIjp0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IHMuSW52YXJpYW50RXJyb3IoImNyZWF0ZVByZXJlbmRlclBhcmFtc0ZvckNsaWVudFNlZ21lbnQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaW4gY2FjaGUgY29udGV4dHMuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU3MzQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZShlKX1mdW5jdGlvbiBQKGUscix0KXtzd2l0Y2godC50eXBlKXtjYXNlInByZXJlbmRlciI6Y2FzZSJwcmVyZW5kZXItY2xpZW50Ijp7bGV0IG49dC5mYWxsYmFja1JvdXRlUGFyYW1zO2lmKG4pe2ZvcihsZXQgYSBpbiBlKWlmKG4uaGFzKGEpKXJldHVybiBmdW5jdGlvbihlLHIsdCl7bGV0IG49di5nZXQoZSk7aWYobilyZXR1cm4gbjtsZXQgYT1uZXcgUHJveHkoKDAsZC5tYWtlSGFuZ2luZ1Byb21pc2UpKHQucmVuZGVyU2lnbmFsLHIucm91dGUsImBwYXJhbXNgIiksTyk7cmV0dXJuIHYuc2V0KGUsYSksYX0oZSxyLHQpfWJyZWFrfWNhc2UicHJlcmVuZGVyLXBwciI6e2xldCBuPXQuZmFsbGJhY2tSb3V0ZVBhcmFtcztpZihuKXtmb3IobGV0IGEgaW4gZSlpZihuLmhhcyhhKSlyZXR1cm4gZnVuY3Rpb24oZSxyLHQsbil7bGV0IGE9di5nZXQoZSk7aWYoYSlyZXR1cm4gYTtsZXQgbz17Li4uZX0sYz1Qcm9taXNlLnJlc29sdmUobyk7cmV0dXJuIHYuc2V0KGUsYyksT2JqZWN0LmtleXMoZSkuZm9yRWFjaChlPT57aS53ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhlKXx8ci5oYXMoZSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLGUse2dldCgpe2xldCByPSgwLGkuZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcykoInBhcmFtcyIsZSk7InByZXJlbmRlci1wcHIiPT09bi50eXBlPygwLHUucG9zdHBvbmVXaXRoVHJhY2tpbmcpKHQucm91dGUscixuLmR5bmFtaWNUcmFja2luZyk6KDAsdS50aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbikocix0LG4pfSxlbnVtZXJhYmxlOiEwfSl9KSxjfShlLG4scix0KX19fXJldHVybiBTKGUpfWZ1bmN0aW9uIF8oZSxyKXtyZXR1cm4oMCx1LmRlbGF5VW50aWxSdW50aW1lU3RhZ2UpKHIsUyhlKSl9bGV0IHY9bmV3IFdlYWtNYXAsTz17Z2V0OmZ1bmN0aW9uKGUscix0KXtpZigidGhlbiI9PT1yfHwiY2F0Y2giPT09cnx8ImZpbmFsbHkiPT09cil7bGV0IG49Yy5SZWZsZWN0QWRhcHRlci5nZXQoZSxyLHQpO3JldHVybih7W3JdOiguLi5yKT0+e2xldCB0PXAuZHluYW1pY0FjY2Vzc0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO3JldHVybiB0JiZ0LmFib3J0Q29udHJvbGxlci5hYm9ydChPYmplY3QuZGVmaW5lUHJvcGVydHkoRXJyb3IoIkFjY2Vzc2VkIGZhbGxiYWNrIGBwYXJhbXNgIGR1cmluZyBwcmVyZW5kZXJpbmcuIiksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU2OTEiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSkpLG5ldyBQcm94eShuLmFwcGx5KGUsciksTyl9fSlbcl19cmV0dXJuIGMuUmVmbGVjdEFkYXB0ZXIuZ2V0KGUscix0KX19O2Z1bmN0aW9uIFMoZSl7bGV0IHI9di5nZXQoZSk7aWYocilyZXR1cm4gcjtsZXQgdD1Qcm9taXNlLnJlc29sdmUoZSk7cmV0dXJuIHYuc2V0KGUsdCksdH0oMCxmLmNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYpKGZ1bmN0aW9uKGUscil7bGV0IHQ9ZT9gUm91dGUgIiR7ZX0iIGA6IlRoaXMgcm91dGUgIjtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEVycm9yKGAke3R9dXNlZCAke3J9LiBcYHBhcmFtc1xgIGlzIGEgUHJvbWlzZSBhbmQgbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBcYGF3YWl0XGAgb3IgXGBSZWFjdC51c2UoKVxgIGJlZm9yZSBhY2Nlc3NpbmcgaXRzIHByb3BlcnRpZXMuIExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYCksIl9fTkVYVF9FUlJPUl9DT0RFIix7dmFsdWU6IkU4MzQiLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9KX0sMzQ3MjU3LChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJDbGllbnRQYWdlUm9vdCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9fSk7bGV0IG49ZS5yKDg0MzQ3NiksYT1lLnIoMzEyNzE4KSxvPWUucig4MzcyKSxjPWUucigyNzE2NDUpLHU9ZS5yKDMzOTA2KSxsPWUucigyNjE5OTQpO2Z1bmN0aW9uIHMoe0NvbXBvbmVudDpyLHNlcnZlclByb3ZpZGVkUGFyYW1zOnR9KXtsZXQgcyxpO2lmKG51bGwhPT10KXM9dC5zZWFyY2hQYXJhbXMsaT10LnBhcmFtcztlbHNle2xldCBlPSgwLGMudXNlKShvLkxheW91dFJvdXRlckNvbnRleHQpO2k9bnVsbCE9PWU/ZS5wYXJlbnRQYXJhbXM6e30scz0oMCx1LnVybFNlYXJjaFBhcmFtc1RvUGFyc2VkVXJsUXVlcnkpKCgwLGMudXNlKShsLlNlYXJjaFBhcmFtc0NvbnRleHQpKX1pZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdyl7bGV0IHQsbyx7d29ya0FzeW5jU3RvcmFnZTpjfT1lLnIoNTYzNTk5KSx1PWMuZ2V0U3RvcmUoKTtpZighdSl0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IGEuSW52YXJpYW50RXJyb3IoIkV4cGVjdGVkIHdvcmtTdG9yZSB0byBleGlzdCB3aGVuIGhhbmRsaW5nIHNlYXJjaFBhcmFtcyBpbiBhIGNsaWVudCBQYWdlLiIpLCJfX05FWFRfRVJST1JfQ09ERSIse3ZhbHVlOiJFNTY0IixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pO2xldHtjcmVhdGVTZWFyY2hQYXJhbXNGcm9tQ2xpZW50Omx9PWUucigyNjk4ODIpO3Q9bChzLHUpO2xldHtjcmVhdGVQYXJhbXNGcm9tQ2xpZW50OmR9PWUucig1NDE0ODkpO3JldHVybiBvPWQoaSx1KSwoMCxuLmpzeCkocix7cGFyYW1zOm8sc2VhcmNoUGFyYW1zOnR9KX17bGV0e2NyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQ6dH09ZS5yKDI2Njk5NiksYT10KHMpLHtjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50Om99PWUucig3OTc2ODkpLGM9byhpKTtyZXR1cm4oMCxuLmpzeCkocix7cGFyYW1zOmMsc2VhcmNoUGFyYW1zOmF9KX19KCJmdW5jdGlvbiI9PXR5cGVvZiB0LmRlZmF1bHR8fCJvYmplY3QiPT10eXBlb2YgdC5kZWZhdWx0JiZudWxsIT09dC5kZWZhdWx0KSYmdm9pZCAwPT09dC5kZWZhdWx0Ll9fZXNNb2R1bGUmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodC5kZWZhdWx0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxPYmplY3QuYXNzaWduKHQuZGVmYXVsdCx0KSxyLmV4cG9ydHM9dC5kZWZhdWx0KX0sOTI4MjUsKGUscix0KT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIkNsaWVudFNlZ21lbnRSb290Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdX19KTtsZXQgbj1lLnIoODQzNDc2KSxhPWUucigzMTI3MTgpLG89ZS5yKDgzNzIpLGM9ZS5yKDI3MTY0NSk7ZnVuY3Rpb24gdSh7Q29tcG9uZW50OnIsc2xvdHM6dCxzZXJ2ZXJQcm92aWRlZFBhcmFtczp1fSl7bGV0IGw7aWYobnVsbCE9PXUpbD11LnBhcmFtcztlbHNle2xldCBlPSgwLGMudXNlKShvLkxheW91dFJvdXRlckNvbnRleHQpO2w9bnVsbCE9PWU/ZS5wYXJlbnRQYXJhbXM6e319aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cpe2xldCBvLHt3b3JrQXN5bmNTdG9yYWdlOmN9PWUucig1NjM1OTkpLHU9Yy5nZXRTdG9yZSgpO2lmKCF1KXRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgYS5JbnZhcmlhbnRFcnJvcigiRXhwZWN0ZWQgd29ya1N0b3JlIHRvIGV4aXN0IHdoZW4gaGFuZGxpbmcgcGFyYW1zIGluIGEgY2xpZW50IHNlZ21lbnQgc3VjaCBhcyBhIExheW91dCBvciBUZW1wbGF0ZS4iKSwiX19ORVhUX0VSUk9SX0NPREUiLHt2YWx1ZToiRTYwMCIsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KTtsZXR7Y3JlYXRlUGFyYW1zRnJvbUNsaWVudDpzfT1lLnIoNTQxNDg5KTtyZXR1cm4gbz1zKGwsdSksKDAsbi5qc3gpKHIsey4uLnQscGFyYW1zOm99KX17bGV0e2NyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQ6YX09ZS5yKDc5NzY4OSksbz1hKGwpO3JldHVybigwLG4uanN4KShyLHsuLi50LHBhcmFtczpvfSl9fSgiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWZhdWx0fHwib2JqZWN0Ij09dHlwZW9mIHQuZGVmYXVsdCYmbnVsbCE9PXQuZGVmYXVsdCkmJnZvaWQgMD09PXQuZGVmYXVsdC5fX2VzTW9kdWxlJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQuZGVmYXVsdCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksT2JqZWN0LmFzc2lnbih0LmRlZmF1bHQsdCksci5leHBvcnRzPXQuZGVmYXVsdCl9LDI3MjAxLChlLHIsdCk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJJY29uTWFyayIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGF9fSk7bGV0IG49ZS5yKDg0MzQ3NiksYT0oKT0+InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/bnVsbDooMCxuLmpzeCkoIm1ldGEiLHtuYW1lOiLCq254dC1pY29uwrsifSl9XSk7"}},"time_used":21,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":21,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"preview-strategynavigator.newton.tech/_next/static/chunks/b46409a32afbfba1.js","fqdn":"preview-strategynavigator.newton.tech","domain":"newton.tech","tld":"tech"},"ip":{"addr":"216.150.16.193","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://preview-strategynavigator.newton.tech/auth/login","date":"2026-07-27T08:54:58.232Z","timestamp":1785142498232,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"preview-strategynavigator.newton.tech","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Sun, 14 Jun 2026 12:31:14 GMT","end":"Sat, 12 Sep 2026 12:31:13 GMT"},"fingerprint":{"sha1":"70:2B:D8:04:6C:6A:2C:8E:9E:06:95:A0:48:83:14:75:67:19:65:65","sha256":"9C:C4:55:69:68:11:C0:94:49:0D:4C:59:60:7C:93:74:4B:6C:EA:D1:67:4F:CB:F6:9B:89:F1:07:F4:27:FD:B8"}}},"request":{"raw":"GET /_next/static/chunks/b46409a32afbfba1.js HTTP/1.1\r\nHost: preview-strategynavigator.newton.tech\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://preview-strategynavigator.newton.tech/auth/login\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\naccess-control-allow-origin: *\r\nage: 9563\r\ncache-control: public,max-age=31536000,immutable\r\ncontent-disposition: inline; filename=\"b46409a32afbfba1.js\"\r\ncontent-encoding: br\r\ncontent-type: application/javascript; charset=utf-8\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\netag: W/\"8c0c940f94f2187971b6ba59466054e4\"\r\nlast-modified: Mon, 27 Jul 2026 06:15:34 GMT\r\nserver: Vercel\r\nstrict-transport-security: max-age=63072000\r\nx-matched-path: /_next/static/chunks/b46409a32afbfba1.js\r\nx-vercel-cache: HIT\r\nx-vercel-id: arn1::4s7n2-1785142498236-b837f2164c58\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":34066,"size_decoded":12284,"mime_type":"application/javascript; charset=utf-8","magic":"JavaScript source, ASCII text, with very long lines (28825)","md5":"8c0c940f94f2187971b6ba59466054e4","sha1":"0d3d13f1623923ef463aaa9582cb765f91a06047","sha256":"be4e57cc39202e959e3fd6142bc4ebd2cb16cf6f1846911ea710d8dc9cc71653","sha512":"cb12a6034f87b29f92bd70df975fcff43e6595195aee401cc9b8067ee94ced10c7ed13d0b0860a0e84089f2dcc7ec6b767702c3d82cd1a2379fe96c5adb00a51","ssdeep":"384:2dCXduf1f9PGFO+T36VMtx/Tl7sAelBGYL5wpDuG2IZsXamMOWBwmkRaBDm2cxA2:/ufJMFN36WtDuVDabDqaBFpRYPxKDCfl","tlshash":"c6e2f885b7a6f02a03d722a5146f500bf178ed29584c186cf791e4f224ba9ca85fff74","first_seen":"2026-07-27T06:16:09.141263Z","last_seen":"2026-07-27T08:57:45.689683Z","times_seen":3,"resource_available":true,"data":"KGdsb2JhbFRoaXMuVFVSQk9QQUNLfHwoZ2xvYmFsVGhpcy5UVVJCT1BBQ0s9W10pKS5wdXNoKFsib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50P2RvY3VtZW50LmN1cnJlbnRTY3JpcHQ6dm9pZCAwLDkwNjA4NSxlPT57InVzZSBzdHJpY3QiO3ZhciB0PSJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzplLmc7bGV0IHI9dC5mZXRjaCxuPXQuZmV0Y2guYmluZCh0KSxpPXQuSGVhZGVycyxvPXQuUmVxdWVzdCxzPXQuUmVzcG9uc2U7ZS5zKFsiSGVhZGVycyIsMCxpLCJSZXF1ZXN0IiwwLG8sIlJlc3BvbnNlIiwwLHMsImRlZmF1bHQiLDAsbiwiZmV0Y2giLDAscl0pfSw0NjcwMzQsKGUsdCxyKT0+e3ZhciBuPXs2NzU6ZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7dC5ieXRlTGVuZ3RoPWZ1bmN0aW9uKGUpe3ZhciB0PWEoZSkscj10WzBdLG49dFsxXTtyZXR1cm4ocituKSozLzQtbn0sdC50b0J5dGVBcnJheT1mdW5jdGlvbihlKXt2YXIgdCxyLG89YShlKSxzPW9bMF0sZj1vWzFdLHU9bmV3IGkoKHMrZikqMy80LWYpLGw9MCxoPWY+MD9zLTQ6cztmb3Iocj0wO3I8aDtyKz00KXQ9bltlLmNoYXJDb2RlQXQocildPDwxOHxuW2UuY2hhckNvZGVBdChyKzEpXTw8MTJ8bltlLmNoYXJDb2RlQXQocisyKV08PDZ8bltlLmNoYXJDb2RlQXQociszKV0sdVtsKytdPXQ+PjE2JjI1NSx1W2wrK109dD4+OCYyNTUsdVtsKytdPTI1NSZ0O3JldHVybiAyPT09ZiYmKHQ9bltlLmNoYXJDb2RlQXQocildPDwyfG5bZS5jaGFyQ29kZUF0KHIrMSldPj40LHVbbCsrXT0yNTUmdCksMT09PWYmJih0PW5bZS5jaGFyQ29kZUF0KHIpXTw8MTB8bltlLmNoYXJDb2RlQXQocisxKV08PDR8bltlLmNoYXJDb2RlQXQocisyKV0+PjIsdVtsKytdPXQ+PjgmMjU1LHVbbCsrXT0yNTUmdCksdX0sdC5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPWUubGVuZ3RoLGk9biUzLG89W10scz0wLGY9bi1pO3M8ZjtzKz0xNjM4MylvLnB1c2goZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgaSxvPVtdLHM9dDtzPG47cys9MylpPShlW3NdPDwxNiYweGZmMDAwMCkrKGVbcysxXTw8OCY2NTI4MCkrKDI1NSZlW3MrMl0pLG8ucHVzaChyW2k+PjE4JjYzXStyW2k+PjEyJjYzXStyW2k+PjYmNjNdK3JbNjMmaV0pO3JldHVybiBvLmpvaW4oIiIpfShlLHMscysxNjM4Mz5mP2Y6cysxNjM4MykpO3JldHVybiAxPT09aT9vLnB1c2goclsodD1lW24tMV0pPj4yXStyW3Q8PDQmNjNdKyI9PSIpOjI9PT1pJiZvLnB1c2goclsodD0oZVtuLTJdPDw4KStlW24tMV0pPj4xMF0rclt0Pj40JjYzXStyW3Q8PDImNjNdKyI9Iiksby5qb2luKCIiKX07Zm9yKHZhciByPVtdLG49W10saT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxvPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixzPTAsZj1vLmxlbmd0aDtzPGY7KytzKXJbc109b1tzXSxuW28uY2hhckNvZGVBdChzKV09cztmdW5jdGlvbiBhKGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQlND4wKXRocm93IEVycm9yKCJJbnZhbGlkIHN0cmluZy4gTGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0Iik7dmFyIHI9ZS5pbmRleE9mKCI9Iik7LTE9PT1yJiYocj10KTt2YXIgbj1yPT09dD8wOjQtciU0O3JldHVybltyLG5dfW5bNDVdPTYyLG5bOTVdPTYzfSw3MjpmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNjc1KSxpPXIoNzgzKSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtmdW5jdGlvbiBzKGUpe2lmKGU+MHg3ZmZmZmZmZil0aHJvdyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih0LGYucHJvdG90eXBlKSx0fWZ1bmN0aW9uIGYoZSx0LHIpe2lmKCJudW1iZXIiPT10eXBlb2YgZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXRocm93IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIGwoZSl9cmV0dXJuIGEoZSx0LHIpfWZ1bmN0aW9uIGEoZSx0LHIpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIG49ZSxpPXQ7aWYoKCJzdHJpbmciIT10eXBlb2YgaXx8IiI9PT1pKSYmKGk9InV0ZjgiKSwhZi5pc0VuY29kaW5nKGkpKXRocm93IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitpKTt2YXIgbz0wfHAobixpKSxhPXMobyksdT1hLndyaXRlKG4saSk7cmV0dXJuIHUhPT1vJiYoYT1hLnNsaWNlKDAsdSkpLGF9aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGUpKXJldHVybiBoKGUpO2lmKG51bGw9PWUpdGhyb3cgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBlKTtpZihPKGUsQXJyYXlCdWZmZXIpfHxlJiZPKGUuYnVmZmVyLEFycmF5QnVmZmVyKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKE8oZSxTaGFyZWRBcnJheUJ1ZmZlcil8fGUmJk8oZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gZnVuY3Rpb24oZSx0LHIpe3ZhciBuO2lmKHQ8MHx8ZS5ieXRlTGVuZ3RoPHQpdGhyb3cgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYoZS5ieXRlTGVuZ3RoPHQrKHJ8fDApKXRocm93IFJhbmdlRXJyb3IoJyJsZW5ndGgiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Yobj12b2lkIDA9PT10JiZ2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KGUpOnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkoZSx0KTpuZXcgVWludDhBcnJheShlLHQsciksZi5wcm90b3R5cGUpLG59KGUsdCxyKTtpZigibnVtYmVyIj09dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTt2YXIgbD1lLnZhbHVlT2YmJmUudmFsdWVPZigpO2lmKG51bGwhPWwmJmwhPT1lKXJldHVybiBmLmZyb20obCx0LHIpO3ZhciB5PWZ1bmN0aW9uKGUpe2lmKGYuaXNCdWZmZXIoZSkpe3ZhciB0PTB8YyhlLmxlbmd0aCkscj1zKHQpO3JldHVybiAwPT09ci5sZW5ndGh8fGUuY29weShyLDAsMCx0KSxyfXJldHVybiB2b2lkIDAhPT1lLmxlbmd0aD8ibnVtYmVyIiE9dHlwZW9mIGUubGVuZ3RofHxmdW5jdGlvbihlKXtyZXR1cm4gZSE9ZX0oZS5sZW5ndGgpP3MoMCk6aChlKToiQnVmZmVyIj09PWUudHlwZSYmQXJyYXkuaXNBcnJheShlLmRhdGEpP2goZS5kYXRhKTp2b2lkIDB9KGUpO2lmKHkpcmV0dXJuIHk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGVbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gZi5mcm9tKGVbU3ltYm9sLnRvUHJpbWl0aXZlXSgic3RyaW5nIiksdCxyKTt0aHJvdyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIGUpfWZ1bmN0aW9uIHUoZSl7aWYoIm51bWJlciIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihlPDApdGhyb3cgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK2UrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIHUoZSkscyhlPDA/MDowfGMoZSkpfWZ1bmN0aW9uIGgoZSl7Zm9yKHZhciB0PWUubGVuZ3RoPDA/MDowfGMoZS5sZW5ndGgpLHI9cyh0KSxuPTA7bjx0O24rPTEpcltuXT0yNTUmZVtuXTtyZXR1cm4gcn10LkJ1ZmZlcj1mLHQuU2xvd0J1ZmZlcj1mdW5jdGlvbihlKXtyZXR1cm4rZSE9ZSYmKGU9MCksZi5hbGxvYygrZSl9LHQuSU5TUEVDVF9NQVhfQllURVM9NTAsdC5rTWF4TGVuZ3RoPTB4N2ZmZmZmZmYsZi5UWVBFRF9BUlJBWV9TVVBQT1JUPWZ1bmN0aW9uKCl7dHJ5e3ZhciBlPW5ldyBVaW50OEFycmF5KDEpLHQ9e2ZvbzpmdW5jdGlvbigpe3JldHVybiA0Mn19O3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YodCxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCksNDI9PT1lLmZvbygpfWNhdGNoKGUpe3JldHVybiExfX0oKSxmLlRZUEVEX0FSUkFZX1NVUFBPUlR8fCJ1bmRlZmluZWQiPT10eXBlb2YgY29uc29sZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGNvbnNvbGUuZXJyb3J8fGNvbnNvbGUuZXJyb3IoIlRoaXMgYnJvd3NlciBsYWNrcyB0eXBlZCBhcnJheSAoVWludDhBcnJheSkgc3VwcG9ydCB3aGljaCBpcyByZXF1aXJlZCBieSBgYnVmZmVyYCB2NS54LiBVc2UgYGJ1ZmZlcmAgdjQueCBpZiB5b3UgcmVxdWlyZSBvbGQgYnJvd3NlciBzdXBwb3J0LiIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmLnByb3RvdHlwZSwicGFyZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihmLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZi5wcm90b3R5cGUsIm9mZnNldCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoZi5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5ieXRlT2Zmc2V0fX0pLGYucG9vbFNpemU9ODE5MixmLmZyb209ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBhKGUsdCxyKX0sT2JqZWN0LnNldFByb3RvdHlwZU9mKGYucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YoZixVaW50OEFycmF5KSxmLmFsbG9jPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4odShlKSxlPD0wKT9zKGUpOnZvaWQgMCE9PXQ/InN0cmluZyI9PXR5cGVvZiByP3MoZSkuZmlsbCh0LHIpOnMoZSkuZmlsbCh0KTpzKGUpfSxmLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKGUpe3JldHVybiBsKGUpfSxmLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihlKXtyZXR1cm4gbChlKX07ZnVuY3Rpb24gYyhlKXtpZihlPj0weDdmZmZmZmZmKXRocm93IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gc2l6ZTogMHg3ZmZmZmZmZiBieXRlcyIpO3JldHVybiAwfGV9ZnVuY3Rpb24gcChlLHQpe2lmKGYuaXNCdWZmZXIoZSkpcmV0dXJuIGUubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhlKXx8TyhlLEFycmF5QnVmZmVyKSlyZXR1cm4gZS5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBlKTt2YXIgcj1lLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmITA9PT1hcmd1bWVudHNbMl07aWYoIW4mJjA9PT1yKXJldHVybiAwO2Zvcih2YXIgaT0hMTs7KXN3aXRjaCh0KXtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiByO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIEIoZSkubGVuZ3RoO2Nhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4gMipyO2Nhc2UiaGV4IjpyZXR1cm4gcj4+PjE7Y2FzZSJiYXNlNjQiOnJldHVybiBrKGUpLmxlbmd0aDtkZWZhdWx0OmlmKGkpcmV0dXJuIG4/LTE6QihlKS5sZW5ndGg7dD0oIiIrdCkudG9Mb3dlckNhc2UoKSxpPSEwfX1mdW5jdGlvbiB5KGUsdCxyKXt2YXIgaSxvLHMsZj0hMTtpZigodm9pZCAwPT09dHx8dDwwKSYmKHQ9MCksdD50aGlzLmxlbmd0aHx8KCh2b2lkIDA9PT1yfHxyPnRoaXMubGVuZ3RoKSYmKHI9dGhpcy5sZW5ndGgpLHI8PTB8fChyPj4+PTApPD0odD4+Pj0wKSkpcmV0dXJuIiI7Zm9yKGV8fChlPSJ1dGY4Iik7Oylzd2l0Y2goZSl7Y2FzZSJoZXgiOnJldHVybiBmdW5jdGlvbihlLHQscil7dmFyIG49ZS5sZW5ndGg7KCF0fHx0PDApJiYodD0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7Zm9yKHZhciBpPSIiLG89dDtvPHI7KytvKWkrPVRbZVtvXV07cmV0dXJuIGl9KHRoaXMsdCxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB2KHRoaXMsdCxyKTtjYXNlImFzY2lpIjpyZXR1cm4gZnVuY3Rpb24oZSx0LHIpe3ZhciBuPSIiO3I9TWF0aC5taW4oZS5sZW5ndGgscik7Zm9yKHZhciBpPXQ7aTxyOysraSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDEyNyZlW2ldKTtyZXR1cm4gbn0odGhpcyx0LHIpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj0iIjtyPU1hdGgubWluKGUubGVuZ3RoLHIpO2Zvcih2YXIgaT10O2k8cjsrK2kpbis9U3RyaW5nLmZyb21DaGFyQ29kZShlW2ldKTtyZXR1cm4gbn0odGhpcyx0LHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gaT10aGlzLG89dCxzPXIsMD09PW8mJnM9PT1pLmxlbmd0aD9uLmZyb21CeXRlQXJyYXkoaSk6bi5mcm9tQnl0ZUFycmF5KGkuc2xpY2UobyxzKSk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBmdW5jdGlvbihlLHQscil7Zm9yKHZhciBuPWUuc2xpY2UodCxyKSxpPSIiLG89MDtvPG4ubGVuZ3RoO28rPTIpaSs9U3RyaW5nLmZyb21DaGFyQ29kZShuW29dKzI1NipuW28rMV0pO3JldHVybiBpfSh0aGlzLHQscik7ZGVmYXVsdDppZihmKXRocm93IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitlKTtlPShlKyIiKS50b0xvd2VyQ2FzZSgpLGY9ITB9fWZ1bmN0aW9uIGQoZSx0LHIpe3ZhciBuPWVbdF07ZVt0XT1lW3JdLGVbcl09bn1mdW5jdGlvbiBnKGUsdCxyLG4saSl7dmFyIG87aWYoMD09PWUubGVuZ3RoKXJldHVybiAtMTtpZigic3RyaW5nIj09dHlwZW9mIHI/KG49cixyPTApOnI+MHg3ZmZmZmZmZj9yPTB4N2ZmZmZmZmY6cjwtMHg4MDAwMDAwMCYmKHI9LTB4ODAwMDAwMDApLChvPXIqPTEpIT1vJiYocj1pPzA6ZS5sZW5ndGgtMSkscjwwJiYocj1lLmxlbmd0aCtyKSxyPj1lLmxlbmd0aClpZihpKXJldHVybiAtMTtlbHNlIHI9ZS5sZW5ndGgtMTtlbHNlIGlmKHI8MClpZighaSlyZXR1cm4gLTE7ZWxzZSByPTA7aWYoInN0cmluZyI9PXR5cGVvZiB0JiYodD1mLmZyb20odCxuKSksZi5pc0J1ZmZlcih0KSlyZXR1cm4gMD09PXQubGVuZ3RoPy0xOm0oZSx0LHIsbixpKTtpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKHQmPTI1NSwiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZilpZihpKXJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoZSx0LHIpO2Vsc2UgcmV0dXJuIFVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoZSx0LHIpO3JldHVybiBtKGUsW3RdLHIsbixpKX10aHJvdyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIG0oZSx0LHIsbixpKXt2YXIgbyxzPTEsZj1lLmxlbmd0aCxhPXQubGVuZ3RoO2lmKHZvaWQgMCE9PW4mJigidWNzMiI9PT0obj1TdHJpbmcobikudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT1ufHwidXRmMTZsZSI9PT1ufHwidXRmLTE2bGUiPT09bikpe2lmKGUubGVuZ3RoPDJ8fHQubGVuZ3RoPDIpcmV0dXJuIC0xO3M9MixmLz0yLGEvPTIsci89Mn1mdW5jdGlvbiB1KGUsdCl7cmV0dXJuIDE9PT1zP2VbdF06ZS5yZWFkVUludDE2QkUodCpzKX1pZihpKXt2YXIgbD0tMTtmb3Iobz1yO288ZjtvKyspaWYodShlLG8pPT09dSh0LC0xPT09bD8wOm8tbCkpe2lmKC0xPT09bCYmKGw9byksby1sKzE9PT1hKXJldHVybiBsKnN9ZWxzZSAtMSE9PWwmJihvLT1vLWwpLGw9LTF9ZWxzZSBmb3IocithPmYmJihyPWYtYSksbz1yO28+PTA7by0tKXtmb3IodmFyIGg9ITAsYz0wO2M8YTtjKyspaWYodShlLG8rYykhPT11KHQsYykpe2g9ITE7YnJlYWt9aWYoaClyZXR1cm4gb31yZXR1cm4gLTF9Zi5pc0J1ZmZlcj1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmITA9PT1lLl9pc0J1ZmZlciYmZSE9PWYucHJvdG90eXBlfSxmLmNvbXBhcmU9ZnVuY3Rpb24oZSx0KXtpZihPKGUsVWludDhBcnJheSkmJihlPWYuZnJvbShlLGUub2Zmc2V0LGUuYnl0ZUxlbmd0aCkpLE8odCxVaW50OEFycmF5KSYmKHQ9Zi5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksIWYuaXNCdWZmZXIoZSl8fCFmLmlzQnVmZmVyKHQpKXRocm93IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYoZT09PXQpcmV0dXJuIDA7Zm9yKHZhciByPWUubGVuZ3RoLG49dC5sZW5ndGgsaT0wLG89TWF0aC5taW4ocixuKTtpPG87KytpKWlmKGVbaV0hPT10W2ldKXtyPWVbaV0sbj10W2ldO2JyZWFrfXJldHVybiByPG4/LTE6KyhuPHIpfSxmLmlzRW5jb2Rpbmc9ZnVuY3Rpb24oZSl7c3dpdGNoKFN0cmluZyhlKS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LGYuY29uY2F0PWZ1bmN0aW9uKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkoZSkpdGhyb3cgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PWUubGVuZ3RoKXJldHVybiBmLmFsbG9jKDApO2lmKHZvaWQgMD09PXQpZm9yKHI9MCx0PTA7cjxlLmxlbmd0aDsrK3IpdCs9ZVtyXS5sZW5ndGg7dmFyIHIsbj1mLmFsbG9jVW5zYWZlKHQpLGk9MDtmb3Iocj0wO3I8ZS5sZW5ndGg7KytyKXt2YXIgbz1lW3JdO2lmKE8obyxVaW50OEFycmF5KSYmKG89Zi5mcm9tKG8pKSwhZi5pc0J1ZmZlcihvKSl0aHJvdyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtvLmNvcHkobixpKSxpKz1vLmxlbmd0aH1yZXR1cm4gbn0sZi5ieXRlTGVuZ3RoPXAsZi5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLGYucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlMiE9MCl0aHJvdyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz0yKWQodGhpcyx0LHQrMSk7cmV0dXJuIHRoaXN9LGYucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO2lmKGUlNCE9MCl0aHJvdyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2Zvcih2YXIgdD0wO3Q8ZTt0Kz00KWQodGhpcyx0LHQrMyksZCh0aGlzLHQrMSx0KzIpO3JldHVybiB0aGlzfSxmLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmxlbmd0aDtpZihlJTghPTApdGhyb3cgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIHQ9MDt0PGU7dCs9OClkKHRoaXMsdCx0KzcpLGQodGhpcyx0KzEsdCs2KSxkKHRoaXMsdCsyLHQrNSksZCh0aGlzLHQrMyx0KzQpO3JldHVybiB0aGlzfSxmLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3ZhciBlPXRoaXMubGVuZ3RoO3JldHVybiAwPT09ZT8iIjowPT1hcmd1bWVudHMubGVuZ3RoP3YodGhpcywwLGUpOnkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxmLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz1mLnByb3RvdHlwZS50b1N0cmluZyxmLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oZSl7aWYoIWYuaXNCdWZmZXIoZSkpdGhyb3cgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0dXJuIHRoaXM9PT1lfHwwPT09Zi5jb21wYXJlKHRoaXMsZSl9LGYucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgZT0iIixyPXQuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIGU9dGhpcy50b1N0cmluZygiaGV4IiwwLHIpLnJlcGxhY2UoLyguezJ9KS9nLCIkMSAiKS50cmltKCksdGhpcy5sZW5ndGg+ciYmKGUrPSIgLi4uICIpLCI8QnVmZmVyICIrZSsiPiJ9LG8mJihmLnByb3RvdHlwZVtvXT1mLnByb3RvdHlwZS5pbnNwZWN0KSxmLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKGUsdCxyLG4saSl7aWYoTyhlLFVpbnQ4QXJyYXkpJiYoZT1mLmZyb20oZSxlLm9mZnNldCxlLmJ5dGVMZW5ndGgpKSwhZi5pc0J1ZmZlcihlKSl0aHJvdyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGUpO2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PXImJihyPWU/ZS5sZW5ndGg6MCksdm9pZCAwPT09biYmKG49MCksdm9pZCAwPT09aSYmKGk9dGhpcy5sZW5ndGgpLHQ8MHx8cj5lLmxlbmd0aHx8bjwwfHxpPnRoaXMubGVuZ3RoKXRocm93IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWkmJnQ+PXIpcmV0dXJuIDA7aWYobj49aSlyZXR1cm4gLTE7aWYodD49cilyZXR1cm4gMTtpZih0Pj4+PTAscj4+Pj0wLG4+Pj49MCxpPj4+PTAsdGhpcz09PWUpcmV0dXJuIDA7Zm9yKHZhciBvPWktbixzPXItdCxhPU1hdGgubWluKG8scyksdT10aGlzLnNsaWNlKG4saSksbD1lLnNsaWNlKHQsciksaD0wO2g8YTsrK2gpaWYodVtoXSE9PWxbaF0pe289dVtoXSxzPWxbaF07YnJlYWt9cmV0dXJuIG88cz8tMTorKHM8byl9LGYucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gLTEhPT10aGlzLmluZGV4T2YoZSx0LHIpfSxmLnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZyh0aGlzLGUsdCxyLCEwKX0sZi5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBnKHRoaXMsZSx0LHIsITEpfTtmdW5jdGlvbiB2KGUsdCxyKXtyPU1hdGgubWluKGUubGVuZ3RoLHIpO2Zvcih2YXIgbj1bXSxpPXQ7aTxyOyl7dmFyIG8scyxmLGEsdT1lW2ldLGw9bnVsbCxoPXU+MjM5PzQ6dT4yMjM/Mzp1PjE5MT8yOjE7aWYoaStoPD1yKXN3aXRjaChoKXtjYXNlIDE6dTwxMjgmJihsPXUpO2JyZWFrO2Nhc2UgMjooMTkyJihvPWVbaSsxXSkpPT0xMjgmJihhPSgzMSZ1KTw8Nnw2MyZvKT4xMjcmJihsPWEpO2JyZWFrO2Nhc2UgMzpvPWVbaSsxXSxzPWVbaSsyXSwoMTkyJm8pPT0xMjgmJigxOTImcyk9PTEyOCYmKGE9KDE1JnUpPDwxMnwoNjMmbyk8PDZ8NjMmcyk+MjA0NyYmKGE8NTUyOTZ8fGE+NTczNDMpJiYobD1hKTticmVhaztjYXNlIDQ6bz1lW2krMV0scz1lW2krMl0sZj1lW2krM10sKDE5MiZvKT09MTI4JiYoMTkyJnMpPT0xMjgmJigxOTImZik9PTEyOCYmKGE9KDE1JnUpPDwxOHwoNjMmbyk8PDEyfCg2MyZzKTw8Nnw2MyZmKT42NTUzNSYmYTwxMTE0MTEyJiYobD1hKX1udWxsPT09bD8obD02NTUzMyxoPTEpOmw+NjU1MzUmJihsLT02NTUzNixuLnB1c2gobD4+PjEwJjEwMjN8NTUyOTYpLGw9NTYzMjB8MTAyMyZsKSxuLnB1c2gobCksaSs9aH12YXIgYz1uLHA9Yy5sZW5ndGg7aWYocDw9NDA5NilyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsYyk7Zm9yKHZhciB5PSIiLGQ9MDtkPHA7KXkrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGMuc2xpY2UoZCxkKz00MDk2KSk7cmV0dXJuIHl9ZnVuY3Rpb24gdyhlLHQscil7aWYoZSUxIT0wfHxlPDApdGhyb3cgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoZSt0PnIpdGhyb3cgUmFuZ2VFcnJvcigiVHJ5aW5nIHRvIGFjY2VzcyBiZXlvbmQgYnVmZmVyIGxlbmd0aCIpfWZ1bmN0aW9uIGIoZSx0LHIsbixpLG8pe2lmKCFmLmlzQnVmZmVyKGUpKXRocm93IFR5cGVFcnJvcignImJ1ZmZlciIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpO2lmKHQ+aXx8dDxvKXRocm93IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHIrbj5lLmxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBBKGUsdCxyLG4saSxvKXtpZihyK24+ZS5sZW5ndGh8fHI8MCl0aHJvdyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBFKGUsdCxyLG4sbyl7cmV0dXJuIHQqPTEscj4+Pj0wLG98fEEoZSx0LHIsNCwzNDAyODIzNDY2Mzg1Mjg4NmUyMiwtMzQwMjgyMzQ2NjM4NTI4ODZlMjIpLGkud3JpdGUoZSx0LHIsbiwyMyw0KSxyKzR9ZnVuY3Rpb24gSShlLHQscixuLG8pe3JldHVybiB0Kj0xLHI+Pj49MCxvfHxBKGUsdCxyLDgsMTc5NzY5MzEzNDg2MjMxNTdlMjkyLC0xNzk3NjkzMTM0ODYyMzE1N2UyOTIpLGkud3JpdGUoZSx0LHIsbiw1Miw4KSxyKzh9Zi5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSx0LHIsbil7aWYodm9pZCAwPT09dCluPSJ1dGY4IixyPXRoaXMubGVuZ3RoLHQ9MDtlbHNlIGlmKHZvaWQgMD09PXImJiJzdHJpbmciPT10eXBlb2YgdCluPXQscj10aGlzLmxlbmd0aCx0PTA7ZWxzZSBpZihpc0Zpbml0ZSh0KSl0Pj4+PTAsaXNGaW5pdGUocik/KHI+Pj49MCx2b2lkIDA9PT1uJiYobj0idXRmOCIpKToobj1yLHI9dm9pZCAwKTtlbHNlIHRocm93IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO3ZhciBpLG8scyxmLGEsdSxsLGgsYz10aGlzLmxlbmd0aC10O2lmKCh2b2lkIDA9PT1yfHxyPmMpJiYocj1jKSxlLmxlbmd0aD4wJiYocjwwfHx0PDApfHx0PnRoaXMubGVuZ3RoKXRocm93IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7bnx8KG49InV0ZjgiKTtmb3IodmFyIHA9ITE7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBmdW5jdGlvbihlLHQscixuKXtyPU51bWJlcihyKXx8MDt2YXIgaT1lLmxlbmd0aC1yO24/KG49TnVtYmVyKG4pKT5pJiYobj1pKTpuPWk7dmFyIG89dC5sZW5ndGg7bj5vLzImJihuPW8vMik7Zm9yKHZhciBzPTA7czxuOysrcyl7dmFyIGYsYT1wYXJzZUludCh0LnN1YnN0cigyKnMsMiksMTYpO2lmKChmPWEpIT1mKWJyZWFrO2VbcitzXT1hfXJldHVybiBzfSh0aGlzLGUsdCxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBpPXQsbz1yLEMoQihlLHRoaXMubGVuZ3RoLWkpLHRoaXMsaSxvKTtjYXNlImFzY2lpIjpyZXR1cm4gcz10LGY9cixDKFMoZSksdGhpcyxzLGYpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGZ1bmN0aW9uKGUsdCxyLG4pe3JldHVybiBDKFModCksZSxyLG4pfSh0aGlzLGUsdCxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIGE9dCx1PXIsQyhrKGUpLHRoaXMsYSx1KTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIGw9dCxoPXIsQyhmdW5jdGlvbihlLHQpe2Zvcih2YXIgcixuLGk9W10sbz0wO288ZS5sZW5ndGgmJiEoKHQtPTIpPDApOysrbyluPShyPWUuY2hhckNvZGVBdChvKSk+PjgsaS5wdXNoKHIlMjU2KSxpLnB1c2gobik7cmV0dXJuIGl9KGUsdGhpcy5sZW5ndGgtbCksdGhpcyxsLGgpO2RlZmF1bHQ6aWYocCl0aHJvdyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrbik7bj0oIiIrbikudG9Mb3dlckNhc2UoKSxwPSEwfX0sZi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fSxmLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMubGVuZ3RoO2U9fn5lLHQ9dm9pZCAwPT09dD9yOn5+dCxlPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksdDwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLHQ8ZSYmKHQ9ZSk7dmFyIG49dGhpcy5zdWJhcnJheShlLHQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YobixmLnByb3RvdHlwZSksbn0sZi5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbihlLHQscil7ZT4+Pj0wLHQ+Pj49MCxyfHx3KGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbZV0saT0xLG89MDsrK288dCYmKGkqPTI1Nik7KW4rPXRoaXNbZStvXSppO3JldHVybiBufSxmLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKGUsdCxyKXtlPj4+PTAsdD4+Pj0wLHJ8fHcoZSx0LHRoaXMubGVuZ3RoKTtmb3IodmFyIG49dGhpc1tlKy0tdF0saT0xO3Q+MCYmKGkqPTI1Nik7KW4rPXRoaXNbZSstLXRdKmk7cmV0dXJuIG59LGYucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8dyhlLDEsdGhpcy5sZW5ndGgpLHRoaXNbZV19LGYucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8dyhlLDIsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fSxmLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fHcoZSwyLHRoaXMubGVuZ3RoKSx0aGlzW2VdPDw4fHRoaXNbZSsxXX0sZi5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHx3KGUsNCx0aGlzLmxlbmd0aCksKHRoaXNbZV18dGhpc1tlKzFdPDw4fHRoaXNbZSsyXTw8MTYpKzB4MTAwMDAwMCp0aGlzW2UrM119LGYucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8dyhlLDQsdGhpcy5sZW5ndGgpLDB4MTAwMDAwMCp0aGlzW2VdKyh0aGlzW2UrMV08PDE2fHRoaXNbZSsyXTw8OHx0aGlzW2UrM10pfSxmLnByb3RvdHlwZS5yZWFkSW50TEU9ZnVuY3Rpb24oZSx0LHIpe2U+Pj49MCx0Pj4+PTAscnx8dyhlLHQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgbj10aGlzW2VdLGk9MSxvPTA7KytvPHQmJihpKj0yNTYpOyluKz10aGlzW2Urb10qaTtyZXR1cm4gbj49KGkqPTEyOCkmJihuLT1NYXRoLnBvdygyLDgqdCkpLG59LGYucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbihlLHQscil7ZT4+Pj0wLHQ+Pj49MCxyfHx3KGUsdCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXQsaT0xLG89dGhpc1tlKy0tbl07bj4wJiYoaSo9MjU2KTspbys9dGhpc1tlKy0tbl0qaTtyZXR1cm4gbz49KGkqPTEyOCkmJihvLT1NYXRoLnBvdygyLDgqdCkpLG99LGYucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGU+Pj49MCx0fHx3KGUsMSx0aGlzLmxlbmd0aCksMTI4JnRoaXNbZV0pPy0oKDI1NS10aGlzW2VdKzEpKjEpOnRoaXNbZV19LGYucHJvdG90eXBlLnJlYWRJbnQxNkxFPWZ1bmN0aW9uKGUsdCl7ZT4+Pj0wLHR8fHcoZSwyLHRoaXMubGVuZ3RoKTt2YXIgcj10aGlzW2VdfHRoaXNbZSsxXTw8ODtyZXR1cm4gMzI3Njgmcj8weGZmZmYwMDAwfHI6cn0sZi5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24oZSx0KXtlPj4+PTAsdHx8dyhlLDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbZSsxXXx0aGlzW2VdPDw4O3JldHVybiAzMjc2OCZyPzB4ZmZmZjAwMDB8cjpyfSxmLnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbihlLHQpe3JldHVybiBlPj4+PTAsdHx8dyhlLDQsdGhpcy5sZW5ndGgpLHRoaXNbZV18dGhpc1tlKzFdPDw4fHRoaXNbZSsyXTw8MTZ8dGhpc1tlKzNdPDwyNH0sZi5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fHcoZSw0LHRoaXMubGVuZ3RoKSx0aGlzW2VdPDwyNHx0aGlzW2UrMV08PDE2fHRoaXNbZSsyXTw8OHx0aGlzW2UrM119LGYucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU+Pj49MCx0fHx3KGUsNCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsZSwhMCwyMyw0KX0sZi5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fHcoZSw0LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyxlLCExLDIzLDQpfSxmLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fHcoZSw4LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyxlLCEwLDUyLDgpfSxmLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT4+Pj0wLHR8fHcoZSw4LHRoaXMubGVuZ3RoKSxpLnJlYWQodGhpcyxlLCExLDUyLDgpfSxmLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbihlLHQscixuKXtpZihlKj0xLHQ+Pj49MCxyPj4+PTAsIW4pe3ZhciBpPU1hdGgucG93KDIsOCpyKS0xO2IodGhpcyxlLHQscixpLDApfXZhciBvPTEscz0wO2Zvcih0aGlzW3RdPTI1NSZlOysrczxyJiYobyo9MjU2KTspdGhpc1t0K3NdPWUvbyYyNTU7cmV0dXJuIHQrcn0sZi5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24oZSx0LHIsbil7aWYoZSo9MSx0Pj4+PTAscj4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqciktMTtiKHRoaXMsZSx0LHIsaSwwKX12YXIgbz1yLTEscz0xO2Zvcih0aGlzW3Qrb109MjU1JmU7LS1vPj0wJiYocyo9MjU2KTspdGhpc1t0K29dPWUvcyYyNTU7cmV0dXJuIHQrcn0sZi5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbihlLHQscil7cmV0dXJuIGUqPTEsdD4+Pj0wLHJ8fGIodGhpcyxlLHQsMSwyNTUsMCksdGhpc1t0XT0yNTUmZSx0KzF9LGYucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlKj0xLHQ+Pj49MCxyfHxiKHRoaXMsZSx0LDIsNjU1MzUsMCksdGhpc1t0XT0yNTUmZSx0aGlzW3QrMV09ZT4+PjgsdCsyfSxmLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSo9MSx0Pj4+PTAscnx8Yih0aGlzLGUsdCwyLDY1NTM1LDApLHRoaXNbdF09ZT4+PjgsdGhpc1t0KzFdPTI1NSZlLHQrMn0sZi5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGUqPTEsdD4+Pj0wLHJ8fGIodGhpcyxlLHQsNCwweGZmZmZmZmZmLDApLHRoaXNbdCszXT1lPj4+MjQsdGhpc1t0KzJdPWU+Pj4xNix0aGlzW3QrMV09ZT4+PjgsdGhpc1t0XT0yNTUmZSx0KzR9LGYucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlKj0xLHQ+Pj49MCxyfHxiKHRoaXMsZSx0LDQsMHhmZmZmZmZmZiwwKSx0aGlzW3RdPWU+Pj4yNCx0aGlzW3QrMV09ZT4+PjE2LHRoaXNbdCsyXT1lPj4+OCx0aGlzW3QrM109MjU1JmUsdCs0fSxmLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKGUqPTEsdD4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtiKHRoaXMsZSx0LHIsaS0xLC1pKX12YXIgbz0wLHM9MSxmPTA7Zm9yKHRoaXNbdF09MjU1JmU7KytvPHImJihzKj0yNTYpOyllPDAmJjA9PT1mJiYwIT09dGhpc1t0K28tMV0mJihmPTEpLHRoaXNbdCtvXT0oZS9zfDApLWYmMjU1O3JldHVybiB0K3J9LGYucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24oZSx0LHIsbil7aWYoZSo9MSx0Pj4+PTAsIW4pe3ZhciBpPU1hdGgucG93KDIsOCpyLTEpO2IodGhpcyxlLHQscixpLTEsLWkpfXZhciBvPXItMSxzPTEsZj0wO2Zvcih0aGlzW3Qrb109MjU1JmU7LS1vPj0wJiYocyo9MjU2KTspZTwwJiYwPT09ZiYmMCE9PXRoaXNbdCtvKzFdJiYoZj0xKSx0aGlzW3Qrb109KGUvc3wwKS1mJjI1NTtyZXR1cm4gdCtyfSxmLnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlKj0xLHQ+Pj49MCxyfHxiKHRoaXMsZSx0LDEsMTI3LC0xMjgpLGU8MCYmKGU9MjU1K2UrMSksdGhpc1t0XT0yNTUmZSx0KzF9LGYucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIGUqPTEsdD4+Pj0wLHJ8fGIodGhpcyxlLHQsMiwzMjc2NywtMzI3NjgpLHRoaXNbdF09MjU1JmUsdGhpc1t0KzFdPWU+Pj44LHQrMn0sZi5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSo9MSx0Pj4+PTAscnx8Yih0aGlzLGUsdCwyLDMyNzY3LC0zMjc2OCksdGhpc1t0XT1lPj4+OCx0aGlzW3QrMV09MjU1JmUsdCsyfSxmLnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBlKj0xLHQ+Pj49MCxyfHxiKHRoaXMsZSx0LDQsMHg3ZmZmZmZmZiwtMHg4MDAwMDAwMCksdGhpc1t0XT0yNTUmZSx0aGlzW3QrMV09ZT4+PjgsdGhpc1t0KzJdPWU+Pj4xNix0aGlzW3QrM109ZT4+PjI0LHQrNH0sZi5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gZSo9MSx0Pj4+PTAscnx8Yih0aGlzLGUsdCw0LDB4N2ZmZmZmZmYsLTB4ODAwMDAwMDApLGU8MCYmKGU9MHhmZmZmZmZmZitlKzEpLHRoaXNbdF09ZT4+PjI0LHRoaXNbdCsxXT1lPj4+MTYsdGhpc1t0KzJdPWU+Pj44LHRoaXNbdCszXT0yNTUmZSx0KzR9LGYucHJvdG90eXBlLndyaXRlRmxvYXRMRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIEUodGhpcyxlLHQsITAscil9LGYucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbihlLHQscil7cmV0dXJuIEUodGhpcyxlLHQsITEscil9LGYucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24oZSx0LHIpe3JldHVybiBJKHRoaXMsZSx0LCEwLHIpfSxmLnByb3RvdHlwZS53cml0ZURvdWJsZUJFPWZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gSSh0aGlzLGUsdCwhMSxyKX0sZi5wcm90b3R5cGUuY29weT1mdW5jdGlvbihlLHQscixuKXtpZighZi5pc0J1ZmZlcihlKSl0aHJvdyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksdD49ZS5sZW5ndGgmJih0PWUubGVuZ3RoKSx0fHwodD0wKSxuPjAmJm48ciYmKG49ciksbj09PXJ8fDA9PT1lLmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAwO2lmKHQ8MCl0aHJvdyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihuPDApdGhyb3cgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtuPnRoaXMubGVuZ3RoJiYobj10aGlzLmxlbmd0aCksZS5sZW5ndGgtdDxuLXImJihuPWUubGVuZ3RoLXQrcik7dmFyIGk9bi1yO2lmKHRoaXM9PT1lJiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbil0aGlzLmNvcHlXaXRoaW4odCxyLG4pO2Vsc2UgaWYodGhpcz09PWUmJnI8dCYmdDxuKWZvcih2YXIgbz1pLTE7bz49MDstLW8pZVtvK3RdPXRoaXNbbytyXTtlbHNlIFVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKGUsdGhpcy5zdWJhcnJheShyLG4pLHQpO3JldHVybiBpfSxmLnByb3RvdHlwZS5maWxsPWZ1bmN0aW9uKGUsdCxyLG4pe2lmKCJzdHJpbmciPT10eXBlb2YgZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0PyhuPXQsdD0wLHI9dGhpcy5sZW5ndGgpOiJzdHJpbmciPT10eXBlb2YgciYmKG49cixyPXRoaXMubGVuZ3RoKSx2b2lkIDAhPT1uJiYic3RyaW5nIiE9dHlwZW9mIG4pdGhyb3cgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYhZi5pc0VuY29kaW5nKG4pKXRocm93IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIituKTtpZigxPT09ZS5sZW5ndGgpe3ZhciBpLG89ZS5jaGFyQ29kZUF0KDApOygidXRmOCI9PT1uJiZvPDEyOHx8ImxhdGluMSI9PT1uKSYmKGU9byl9fWVsc2UibnVtYmVyIj09dHlwZW9mIGU/ZSY9MjU1OiJib29sZWFuIj09dHlwZW9mIGUmJihlPU51bWJlcihlKSk7aWYodDwwfHx0aGlzLmxlbmd0aDx0fHx0aGlzLmxlbmd0aDxyKXRocm93IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKHI8PXQpcmV0dXJuIHRoaXM7aWYodD4+Pj0wLHI9dm9pZCAwPT09cj90aGlzLmxlbmd0aDpyPj4+MCxlfHwoZT0wKSwibnVtYmVyIj09dHlwZW9mIGUpZm9yKGk9dDtpPHI7KytpKXRoaXNbaV09ZTtlbHNle3ZhciBzPWYuaXNCdWZmZXIoZSk/ZTpmLmZyb20oZSxuKSxhPXMubGVuZ3RoO2lmKDA9PT1hKXRocm93IFR5cGVFcnJvcignVGhlIHZhbHVlICInK2UrJyIgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQgInZhbHVlIicpO2ZvcihpPTA7aTxyLXQ7KytpKXRoaXNbaSt0XT1zW2klYV19cmV0dXJuIHRoaXN9O3ZhciB4PS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gQihlLHQpe3Q9dHx8MS8wO2Zvcih2YXIgcixuPWUubGVuZ3RoLGk9bnVsbCxvPVtdLHM9MDtzPG47KytzKXtpZigocj1lLmNoYXJDb2RlQXQocykpPjU1Mjk1JiZyPDU3MzQ0KXtpZighaSl7aWYocj41NjMxOXx8cysxPT09bil7KHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWk9cjtjb250aW51ZX1pZihyPDU2MzIwKXsodC09Myk+LTEmJm8ucHVzaCgyMzksMTkxLDE4OSksaT1yO2NvbnRpbnVlfXI9KGktNTUyOTY8PDEwfHItNTYzMjApKzY1NTM2fWVsc2UgaSYmKHQtPTMpPi0xJiZvLnB1c2goMjM5LDE5MSwxODkpO2lmKGk9bnVsbCxyPDEyOCl7aWYoKHQtPTEpPDApYnJlYWs7by5wdXNoKHIpfWVsc2UgaWYocjwyMDQ4KXtpZigodC09Mik8MClicmVhaztvLnB1c2gocj4+NnwxOTIsNjMmcnwxMjgpfWVsc2UgaWYocjw2NTUzNil7aWYoKHQtPTMpPDApYnJlYWs7by5wdXNoKHI+PjEyfDIyNCxyPj42JjYzfDEyOCw2MyZyfDEyOCl9ZWxzZSBpZihyPDExMTQxMTIpe2lmKCh0LT00KTwwKWJyZWFrO28ucHVzaChyPj4xOHwyNDAscj4+MTImNjN8MTI4LHI+PjYmNjN8MTI4LDYzJnJ8MTI4KX1lbHNlIHRocm93IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKX1yZXR1cm4gb31mdW5jdGlvbiBTKGUpe2Zvcih2YXIgdD1bXSxyPTA7cjxlLmxlbmd0aDsrK3IpdC5wdXNoKDI1NSZlLmNoYXJDb2RlQXQocikpO3JldHVybiB0fWZ1bmN0aW9uIGsoZSl7cmV0dXJuIG4udG9CeXRlQXJyYXkoZnVuY3Rpb24oZSl7aWYoKGU9KGU9ZS5zcGxpdCgiPSIpWzBdKS50cmltKCkucmVwbGFjZSh4LCIiKSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDtlLmxlbmd0aCU0IT0wOyllKz0iPSI7cmV0dXJuIGV9KGUpKX1mdW5jdGlvbiBDKGUsdCxyLG4pe2Zvcih2YXIgaT0wO2k8biYmIShpK3I+PXQubGVuZ3RoKSYmIShpPj1lLmxlbmd0aCk7KytpKXRbaStyXT1lW2ldO3JldHVybiBpfWZ1bmN0aW9uIE8oZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIHR8fG51bGwhPWUmJm51bGwhPWUuY29uc3RydWN0b3ImJm51bGwhPWUuY29uc3RydWN0b3IubmFtZSYmZS5jb25zdHJ1Y3Rvci5uYW1lPT09dC5uYW1lfXZhciBUPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPSIwMTIzNDU2Nzg5YWJjZGVmIix0PUFycmF5KDI1Nikscj0wO3I8MTY7KytyKWZvcih2YXIgbj0xNipyLGk9MDtpPDE2OysraSl0W24raV09ZVtyXStlW2ldO3JldHVybiB0fSgpfSw3ODM6ZnVuY3Rpb24oZSx0KXt0LnJlYWQ9ZnVuY3Rpb24oZSx0LHIsbixpKXt2YXIgbyxzLGY9OCppLW4tMSxhPSgxPDxmKS0xLHU9YT4+MSxsPS03LGg9cj9pLTE6MCxjPXI/LTE6MSxwPWVbdCtoXTtmb3IoaCs9YyxvPXAmKDE8PC1sKS0xLHA+Pj0tbCxsKz1mO2w+MDtvPTI1NipvK2VbdCtoXSxoKz1jLGwtPTgpO2ZvcihzPW8mKDE8PC1sKS0xLG8+Pj0tbCxsKz1uO2w+MDtzPTI1NipzK2VbdCtoXSxoKz1jLGwtPTgpO2lmKDA9PT1vKW89MS11O2Vsc2V7aWYobz09PWEpcmV0dXJuIHM/TmFOOjEvMCoocD8tMToxKTtzKz1NYXRoLnBvdygyLG4pLG8tPXV9cmV0dXJuKHA/LTE6MSkqcypNYXRoLnBvdygyLG8tbil9LHQud3JpdGU9ZnVuY3Rpb24oZSx0LHIsbixpLG8pe3ZhciBzLGYsYSx1PTgqby1pLTEsbD0oMTw8dSktMSxoPWw+PjEsYz01OTYwNDY0NDc3NTM5MDYyZS0yMyooMjM9PT1pKSxwPW4/MDpvLTEseT1uPzE6LTEsZD0rKHQ8MHx8MD09PXQmJjEvdDwwKTtmb3IoaXNOYU4odD1NYXRoLmFicyh0KSl8fHQ9PT0xLzA/KGY9KyEhaXNOYU4odCkscz1sKToocz1NYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4yKSx0KihhPU1hdGgucG93KDIsLXMpKTwxJiYocy0tLGEqPTIpLHMraD49MT90Kz1jL2E6dCs9YypNYXRoLnBvdygyLDEtaCksdCphPj0yJiYocysrLGEvPTIpLHMraD49bD8oZj0wLHM9bCk6cytoPj0xPyhmPSh0KmEtMSkqTWF0aC5wb3coMixpKSxzKz1oKTooZj10Kk1hdGgucG93KDIsaC0xKSpNYXRoLnBvdygyLGkpLHM9MCkpO2k+PTg7ZVtyK3BdPTI1NSZmLHArPXksZi89MjU2LGktPTgpO2ZvcihzPXM8PGl8Zix1Kz1pO3U+MDtlW3IrcF09MjU1JnMscCs9eSxzLz0yNTYsdS09OCk7ZVtyK3AteV18PTEyOCpkfX19LGk9e307ZnVuY3Rpb24gbyhlKXt2YXIgdD1pW2VdO2lmKHZvaWQgMCE9PXQpcmV0dXJuIHQuZXhwb3J0czt2YXIgcj1pW2VdPXtleHBvcnRzOnt9fSxzPSEwO3RyeXtuW2VdKHIsci5leHBvcnRzLG8pLHM9ITF9ZmluYWxseXtzJiZkZWxldGUgaVtlXX1yZXR1cm4gci5leHBvcnRzfW8uYWI9Ii9ST09UL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvYnVmZmVyLyIsdC5leHBvcnRzPW8oNzIpfSw5MDkxNTYsKGUsdCxyKT0+eyJ1c2Ugc3RyaWN0IjtsZXQgbjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksci5wYXJzZT1mdW5jdGlvbihlLHQpe2xldCByPW5ldyB1LG49ZS5sZW5ndGg7aWYobjwyKXJldHVybiByO2xldCBpPXQ/LmRlY29kZXx8YyxvPTA7ZG97bGV0IHQ9ZS5pbmRleE9mKCI9IixvKTtpZigtMT09PXQpYnJlYWs7bGV0IHM9ZS5pbmRleE9mKCI7IixvKSxmPS0xPT09cz9uOnM7aWYodD5mKXtvPWUubGFzdEluZGV4T2YoIjsiLHQtMSkrMTtjb250aW51ZX1sZXQgYT1sKGUsbyx0KSx1PWgoZSx0LGEpLGM9ZS5zbGljZShhLHUpO2lmKHZvaWQgMD09PXJbY10pe2xldCBuPWwoZSx0KzEsZiksbz1oKGUsZixuKSxzPWkoZS5zbGljZShuLG8pKTtyW2NdPXN9bz1mKzF9d2hpbGUobzxuKXJldHVybiByfSxyLnNlcmlhbGl6ZT1mdW5jdGlvbihlLHQscil7bGV0IG49cj8uZW5jb2RlfHxlbmNvZGVVUklDb21wb25lbnQ7aWYoIWkudGVzdChlKSl0aHJvdyBUeXBlRXJyb3IoYGFyZ3VtZW50IG5hbWUgaXMgaW52YWxpZDogJHtlfWApO2xldCB1PW4odCk7aWYoIW8udGVzdCh1KSl0aHJvdyBUeXBlRXJyb3IoYGFyZ3VtZW50IHZhbCBpcyBpbnZhbGlkOiAke3R9YCk7bGV0IGw9ZSsiPSIrdTtpZighcilyZXR1cm4gbDtpZih2b2lkIDAhPT1yLm1heEFnZSl7aWYoIU51bWJlci5pc0ludGVnZXIoci5tYXhBZ2UpKXRocm93IFR5cGVFcnJvcihgb3B0aW9uIG1heEFnZSBpcyBpbnZhbGlkOiAke3IubWF4QWdlfWApO2wrPSI7IE1heC1BZ2U9IityLm1heEFnZX1pZihyLmRvbWFpbil7aWYoIXMudGVzdChyLmRvbWFpbikpdGhyb3cgVHlwZUVycm9yKGBvcHRpb24gZG9tYWluIGlzIGludmFsaWQ6ICR7ci5kb21haW59YCk7bCs9IjsgRG9tYWluPSIrci5kb21haW59aWYoci5wYXRoKXtpZighZi50ZXN0KHIucGF0aCkpdGhyb3cgVHlwZUVycm9yKGBvcHRpb24gcGF0aCBpcyBpbnZhbGlkOiAke3IucGF0aH1gKTtsKz0iOyBQYXRoPSIrci5wYXRofWlmKHIuZXhwaXJlcyl7dmFyIGg7aWYoaD1yLmV4cGlyZXMsIltvYmplY3QgRGF0ZV0iIT09YS5jYWxsKGgpfHwhTnVtYmVyLmlzRmluaXRlKHIuZXhwaXJlcy52YWx1ZU9mKCkpKXRocm93IFR5cGVFcnJvcihgb3B0aW9uIGV4cGlyZXMgaXMgaW52YWxpZDogJHtyLmV4cGlyZXN9YCk7bCs9IjsgRXhwaXJlcz0iK3IuZXhwaXJlcy50b1VUQ1N0cmluZygpfWlmKHIuaHR0cE9ubHkmJihsKz0iOyBIdHRwT25seSIpLHIuc2VjdXJlJiYobCs9IjsgU2VjdXJlIiksci5wYXJ0aXRpb25lZCYmKGwrPSI7IFBhcnRpdGlvbmVkIiksci5wcmlvcml0eSlzd2l0Y2goInN0cmluZyI9PXR5cGVvZiByLnByaW9yaXR5P3IucHJpb3JpdHkudG9Mb3dlckNhc2UoKTp2b2lkIDApe2Nhc2UibG93IjpsKz0iOyBQcmlvcml0eT1Mb3ciO2JyZWFrO2Nhc2UibWVkaXVtIjpsKz0iOyBQcmlvcml0eT1NZWRpdW0iO2JyZWFrO2Nhc2UiaGlnaCI6bCs9IjsgUHJpb3JpdHk9SGlnaCI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBUeXBlRXJyb3IoYG9wdGlvbiBwcmlvcml0eSBpcyBpbnZhbGlkOiAke3IucHJpb3JpdHl9YCl9aWYoci5zYW1lU2l0ZSlzd2l0Y2goInN0cmluZyI9PXR5cGVvZiByLnNhbWVTaXRlP3Iuc2FtZVNpdGUudG9Mb3dlckNhc2UoKTpyLnNhbWVTaXRlKXtjYXNlITA6Y2FzZSJzdHJpY3QiOmwrPSI7IFNhbWVTaXRlPVN0cmljdCI7YnJlYWs7Y2FzZSJsYXgiOmwrPSI7IFNhbWVTaXRlPUxheCI7YnJlYWs7Y2FzZSJub25lIjpsKz0iOyBTYW1lU2l0ZT1Ob25lIjticmVhaztkZWZhdWx0OnRocm93IFR5cGVFcnJvcihgb3B0aW9uIHNhbWVTaXRlIGlzIGludmFsaWQ6ICR7ci5zYW1lU2l0ZX1gKX1yZXR1cm4gbH07bGV0IGk9L15bXHUwMDIxLVx1MDAzQVx1MDAzQ1x1MDAzRS1cdTAwN0VdKyQvLG89L15bXHUwMDIxLVx1MDAzQVx1MDAzQy1cdTAwN0VdKiQvLHM9L14oWy5dP1thLXowLTldKFthLXowLTktXXswLDYxfVthLXowLTldKT8pKFsuXVthLXowLTldKFthLXowLTktXXswLDYxfVthLXowLTldKT8pKiQvaSxmPS9eW1x1MDAyMC1cdTAwM0FcdTAwM0QtXHUwMDdFXSokLyxhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsdT0oKG49ZnVuY3Rpb24oKXt9KS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShudWxsKSxuKTtmdW5jdGlvbiBsKGUsdCxyKXtkb3tsZXQgcj1lLmNoYXJDb2RlQXQodCk7aWYoMzIhPT1yJiY5IT09cilyZXR1cm4gdH13aGlsZSgrK3Q8cilyZXR1cm4gcn1mdW5jdGlvbiBoKGUsdCxyKXtmb3IoO3Q+cjspe2xldCByPWUuY2hhckNvZGVBdCgtLXQpO2lmKDMyIT09ciYmOSE9PXIpcmV0dXJuIHQrMX1yZXR1cm4gcn1mdW5jdGlvbiBjKGUpe2lmKC0xPT09ZS5pbmRleE9mKCIlIikpcmV0dXJuIGU7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZSl9Y2F0Y2godCl7cmV0dXJuIGV9fX0sNzUyNjgzLChlLHQscik9Pnt9LDkyMDc1NSw5NzIzOTAsNTI5MjI1LGU9PnsidXNlIHN0cmljdCI7bGV0IHQ7ZS5pKDI0NzE2Nyk7dmFyIHI9ZS5pKDYyNDYzMiksbj1lLmkoOTA5MTU2KTtmdW5jdGlvbiBpKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5kb2N1bWVudH1uLnBhcnNlLG4uc2VyaWFsaXplO2xldCBvPXtwYXRoOiIvIixzYW1lU2l0ZToibGF4IixodHRwT25seTohMSxtYXhBZ2U6MzQ1NmU0fSxzPS9eKC4qKVsuXSgwfFsxLTldWzAtOV0qKSQvO2Z1bmN0aW9uIGYoZSx0KXtpZihlPT09dClyZXR1cm4hMDtsZXQgcj1lLm1hdGNoKHMpO3JldHVybiEhciYmclsxXT09PXR9ZnVuY3Rpb24gYShlLHQscil7bGV0IG49cj8/MzE4MCxpPWVuY29kZVVSSUNvbXBvbmVudCh0KTtpZihpLmxlbmd0aDw9bilyZXR1cm5be25hbWU6ZSx2YWx1ZTp0fV07bGV0IG89W107Zm9yKDtpLmxlbmd0aD4wOyl7bGV0IGU9aS5zbGljZSgwLG4pLHQ9ZS5sYXN0SW5kZXhPZigiJSIpO3Q+bi0zJiYoZT1lLnNsaWNlKDAsdCkpO2xldCByPSIiO2Zvcig7ZS5sZW5ndGg+MDspdHJ5e3I9ZGVjb2RlVVJJQ29tcG9uZW50KGUpO2JyZWFrfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBVUklFcnJvciYmIiUiPT09ZS5hdCgtMykmJmUubGVuZ3RoPjMpZT1lLnNsaWNlKDAsZS5sZW5ndGgtMyk7ZWxzZSB0aHJvdyB0fW8ucHVzaChyKSxpPWkuc2xpY2UoZS5sZW5ndGgpfXJldHVybiBvLm1hcCgodCxyKT0+KHtuYW1lOmAke2V9LiR7cn1gLHZhbHVlOnR9KSl9YXN5bmMgZnVuY3Rpb24gdShlLHQpe2xldCByPWF3YWl0IHQoZSk7aWYocilyZXR1cm4gcjtsZXQgbj1bXTtmb3IobGV0IHI9MDs7cisrKXtsZXQgaT1gJHtlfS4ke3J9YCxvPWF3YWl0IHQoaSk7aWYoIW8pYnJlYWs7bi5wdXNoKG8pfXJldHVybiBuLmxlbmd0aD4wP24uam9pbigiIik6bnVsbH1sZXQgbD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXyIuc3BsaXQoIiIpLGg9IiAJXG5ccj0iLnNwbGl0KCIiKSxjPSgoKT0+e2xldCBlPUFycmF5KDEyOCk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0xKWVbdF09LTE7Zm9yKGxldCB0PTA7dDxoLmxlbmd0aDt0Kz0xKWVbaFt0XS5jaGFyQ29kZUF0KDApXT0tMjtmb3IobGV0IHQ9MDt0PGwubGVuZ3RoO3QrPTEpZVtsW3RdLmNoYXJDb2RlQXQoMCldPXQ7cmV0dXJuIGV9KSgpO2Z1bmN0aW9uIHAoZSl7bGV0IHQ9W10scj0wLG49MDtpZihmdW5jdGlvbihlLHQpe2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cis9MSl7bGV0IG49ZS5jaGFyQ29kZUF0KHIpO2lmKG4+NTUyOTUmJm48PTU2MzE5KXtsZXQgdD0obi01NTI5NikqMTAyNCY2NTUzNTtuPShlLmNoYXJDb2RlQXQocisxKS01NjMyMCY2NTUzNXx0KSs2NTUzNixyKz0xfSFmdW5jdGlvbihlLHQpe2lmKGU8PTEyNylyZXR1cm4gdChlKTtpZihlPD0yMDQ3KXt0KDE5MnxlPj42KSx0KDEyOHw2MyZlKTtyZXR1cm59aWYoZTw9NjU1MzUpe3QoMjI0fGU+PjEyKSx0KDEyOHxlPj42JjYzKSx0KDEyOHw2MyZlKTtyZXR1cm59aWYoZTw9MTExNDExMSl7dCgyNDB8ZT4+MTgpLHQoMTI4fGU+PjEyJjYzKSx0KDEyOHxlPj42JjYzKSx0KDEyOHw2MyZlKTtyZXR1cm59dGhyb3cgRXJyb3IoYFVucmVjb2duaXplZCBVbmljb2RlIGNvZGVwb2ludDogJHtlLnRvU3RyaW5nKDE2KX1gKX0obix0KX19KGUsZT0+e2ZvcihyPXI8PDh8ZSxuKz04O24+PTY7KXtsZXQgZT1yPj5uLTYmNjM7dC5wdXNoKGxbZV0pLG4tPTZ9fSksbj4wKWZvcihyPDw9Ni1uLG49NjtuPj02Oyl7bGV0IGU9cj4+bi02JjYzO3QucHVzaChsW2VdKSxuLT02fXJldHVybiB0LmpvaW4oIiIpfWZ1bmN0aW9uIHkoZSl7bGV0IHQ9W10scj1lPT57dC5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KGUpKX0sbj17dXRmOHNlcTowLGNvZGVwb2ludDowfSxpPTAsbz0wO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSl7bGV0IHM9Y1tlLmNoYXJDb2RlQXQodCldO2lmKHM+LTEpZm9yKGk9aTw8NnxzLG8rPTY7bz49ODspKGZ1bmN0aW9uKGUsdCxyKXtpZigwPT09dC51dGY4c2VxKXtpZihlPD0xMjcpcmV0dXJuIHIoZSk7Zm9yKGxldCByPTE7cjw2O3IrPTEpaWYoKGU+PjctciYxKT09MCl7dC51dGY4c2VxPXI7YnJlYWt9aWYoMj09PXQudXRmOHNlcSl0LmNvZGVwb2ludD0zMSZlO2Vsc2UgaWYoMz09PXQudXRmOHNlcSl0LmNvZGVwb2ludD0xNSZlO2Vsc2UgaWYoND09PXQudXRmOHNlcSl0LmNvZGVwb2ludD03JmU7ZWxzZSB0aHJvdyBFcnJvcigiSW52YWxpZCBVVEYtOCBzZXF1ZW5jZSIpO3QudXRmOHNlcS09MX1lbHNlIGlmKHQudXRmOHNlcT4wKXtpZihlPD0xMjcpdGhyb3cgRXJyb3IoIkludmFsaWQgVVRGLTggc2VxdWVuY2UiKTt0LmNvZGVwb2ludD10LmNvZGVwb2ludDw8Nnw2MyZlLHQudXRmOHNlcS09MSwwPT09dC51dGY4c2VxJiZyKHQuY29kZXBvaW50KX19KShpPj5vLTgmMjU1LG4sciksby09ODtlbHNlIGlmKC0yPT09cyljb250aW51ZTtlbHNlIHRocm93IEVycm9yKGBJbnZhbGlkIEJhc2U2NC1VUkwgY2hhcmFjdGVyICIke2UuYXQodCl9IiBhdCBwb3NpdGlvbiAke3R9YCl9cmV0dXJuIHQuam9pbigiIil9bGV0IGQ9ImJhc2U2NC0iO2FzeW5jIGZ1bmN0aW9uIGcoe2dldEFsbDplLHNldEFsbDp0LHNldEl0ZW1zOnIscmVtb3ZlZEl0ZW1zOm59LGkpe2xldCBzPWkuY29va2llRW5jb2RpbmcsdT1pLmNvb2tpZU9wdGlvbnM/P251bGwsbD1hd2FpdCBlKFsuLi5yP09iamVjdC5rZXlzKHIpOltdLC4uLm4/T2JqZWN0LmtleXMobik6W11dKSxoPWw/Lm1hcCgoe25hbWU6ZX0pPT5lKXx8W10sYz1PYmplY3Qua2V5cyhuKS5mbGF0TWFwKGU9PmguZmlsdGVyKHQ9PmYodCxlKSkpLHk9T2JqZWN0LmtleXMocikuZmxhdE1hcChlPT57bGV0IHQ9bmV3IFNldChoLmZpbHRlcih0PT5mKHQsZSkpKSxuPXJbZV07ImJhc2U2NHVybCI9PT1zJiYobj1kK3AobikpO2xldCBpPWEoZSxuKTtyZXR1cm4gaS5mb3JFYWNoKGU9Pnt0LmRlbGV0ZShlLm5hbWUpfSksYy5wdXNoKC4uLnQpLGl9KSxnPXsuLi5vLC4uLnUsbWF4QWdlOjB9LG09ey4uLm8sLi4udSxtYXhBZ2U6by5tYXhBZ2V9O2RlbGV0ZSBnLm5hbWUsZGVsZXRlIG0ubmFtZSxhd2FpdCB0KFsuLi5jLm1hcChlPT4oe25hbWU6ZSx2YWx1ZToiIixvcHRpb25zOmd9KSksLi4ueS5tYXAoKHtuYW1lOmUsdmFsdWU6dH0pPT4oe25hbWU6ZSx2YWx1ZTp0LG9wdGlvbnM6bX0pKV0pfWZ1bmN0aW9uIG0oZSxzLGwpe2xldCBoPWw/LmlzU2luZ2xldG9uPT09ITB8fCghbHx8ISgiaXNTaW5nbGV0b24iaW4gbCkpJiZpKCk7aWYoaCYmdClyZXR1cm4gdDtpZighZXx8IXMpdGhyb3cgRXJyb3IoYEBzdXBhYmFzZS9zc3I6IFlvdXIgcHJvamVjdCdzIFVSTCBhbmQgQVBJIGtleSBhcmUgcmVxdWlyZWQgdG8gY3JlYXRlIGEgU3VwYWJhc2UgY2xpZW50IQoKQ2hlY2sgeW91ciBTdXBhYmFzZSBwcm9qZWN0J3MgQVBJIHNldHRpbmdzIHRvIGZpbmQgdGhlc2UgdmFsdWVzCgpodHRwczovL3N1cGFiYXNlLmNvbS9kYXNoYm9hcmQvcHJvamVjdC9fL3NldHRpbmdzL2FwaWApO2xldHtzdG9yYWdlOmN9PWZ1bmN0aW9uKGUsdCl7bGV0IHIscyxsPWUuY29va2llcz8/bnVsbCxoPWUuY29va2llRW5jb2RpbmcsYz17fSxtPXt9O2lmKGwpaWYoImdldCJpbiBsKXtsZXQgZT1hc3luYyBlPT57bGV0IHQ9ZS5mbGF0TWFwKGU9PltlLC4uLkFycmF5LmZyb20oe2xlbmd0aDo1fSkubWFwKCh0LHIpPT5gJHtlfS4ke3J9YCldKSxyPVtdO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9MSl7bGV0IG49YXdhaXQgbC5nZXQodFtlXSk7KG58fCJzdHJpbmciPT10eXBlb2YgbikmJnIucHVzaCh7bmFtZTp0W2VdLHZhbHVlOm59KX1yZXR1cm4gcn07aWYocj1hc3luYyB0PT5hd2FpdCBlKHQpLCJzZXQiaW4gbCYmInJlbW92ZSJpbiBsKXM9YXN5bmMgZT0+e2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSl7bGV0e25hbWU6cix2YWx1ZTpuLG9wdGlvbnM6aX09ZVt0XTtuP2F3YWl0IGwuc2V0KHIsbixpKTphd2FpdCBsLnJlbW92ZShyLGkpfX07ZWxzZSBpZih0KXM9YXN5bmMoKT0+e2NvbnNvbGUud2FybigiQHN1cGFiYXNlL3NzcjogY3JlYXRlU2VydmVyQ2xpZW50IHdhcyBjb25maWd1cmVkIHdpdGhvdXQgc2V0IGFuZCByZW1vdmUgY29va2llIG1ldGhvZHMsIGJ1dCB0aGUgY2xpZW50IG5lZWRzIHRvIHNldCBjb29raWVzLiBUaGlzIGNhbiBsZWFkIHRvIGlzc3VlcyBzdWNoIGFzIHJhbmRvbSBsb2dvdXRzLCBlYXJseSBzZXNzaW9uIHRlcm1pbmF0aW9uIG9yIGluY3JlYXNlZCB0b2tlbiByZWZyZXNoIHJlcXVlc3RzLiBJZiBpbiBOZXh0SlMsIGNoZWNrIHlvdXIgbWlkZGxld2FyZS50cyBmaWxlLCByb3V0ZSBoYW5kbGVycyBhbmQgc2VydmVyIGFjdGlvbnMgZm9yIGNvcnJlY3RuZXNzLiBDb25zaWRlciBzd2l0Y2hpbmcgdG8gdGhlIGdldEFsbCBhbmQgc2V0QWxsIGNvb2tpZSBtZXRob2RzIGluc3RlYWQgb2YgZ2V0LCBzZXQgYW5kIHJlbW92ZSB3aGljaCBhcmUgZGVwcmVjYXRlZCBhbmQgY2FuIGJlIGRpZmZpY3VsdCB0byB1c2UgY29ycmVjdGx5LiIpfTtlbHNlIHRocm93IEVycm9yKCJAc3VwYWJhc2Uvc3NyOiBjcmVhdGVCcm93c2VyQ2xpZW50IHJlcXVpcmVzIGNvbmZpZ3VyaW5nIGEgZ2V0QWxsIGFuZCBzZXRBbGwgY29va2llIG1ldGhvZCAoZGVwcmVjYXRlZDogYWx0ZXJuYXRpdmVseSBib3RoIGdldCwgc2V0IGFuZCByZW1vdmUgY2FuIGJlIHVzZWQpIil9ZWxzZSBpZigiZ2V0QWxsImluIGwpaWYocj1hc3luYygpPT5hd2FpdCBsLmdldEFsbCgpLCJzZXRBbGwiaW4gbClzPWwuc2V0QWxsO2Vsc2UgaWYodClzPWFzeW5jKCk9Pntjb25zb2xlLndhcm4oIkBzdXBhYmFzZS9zc3I6IGNyZWF0ZVNlcnZlckNsaWVudCB3YXMgY29uZmlndXJlZCB3aXRob3V0IHRoZSBzZXRBbGwgY29va2llIG1ldGhvZCwgYnV0IHRoZSBjbGllbnQgbmVlZHMgdG8gc2V0IGNvb2tpZXMuIFRoaXMgY2FuIGxlYWQgdG8gaXNzdWVzIHN1Y2ggYXMgcmFuZG9tIGxvZ291dHMsIGVhcmx5IHNlc3Npb24gdGVybWluYXRpb24gb3IgaW5jcmVhc2VkIHRva2VuIHJlZnJlc2ggcmVxdWVzdHMuIElmIGluIE5leHRKUywgY2hlY2sgeW91ciBtaWRkbGV3YXJlLnRzIGZpbGUsIHJvdXRlIGhhbmRsZXJzIGFuZCBzZXJ2ZXIgYWN0aW9ucyBmb3IgY29ycmVjdG5lc3MuIil9O2Vsc2UgdGhyb3cgRXJyb3IoIkBzdXBhYmFzZS9zc3I6IGNyZWF0ZUJyb3dzZXJDbGllbnQgcmVxdWlyZXMgY29uZmlndXJpbmcgYm90aCBnZXRBbGwgYW5kIHNldEFsbCBjb29raWUgbWV0aG9kcyAoZGVwcmVjYXRlZDogYWx0ZXJuYXRpdmVseSBib3RoIGdldCwgc2V0IGFuZCByZW1vdmUgY2FuIGJlIHVzZWQpIik7ZWxzZSB0aHJvdyBFcnJvcihgQHN1cGFiYXNlL3NzcjogJHt0PyJjcmVhdGVTZXJ2ZXJDbGllbnQiOiJjcmVhdGVCcm93c2VyQ2xpZW50In0gcmVxdWlyZXMgY29uZmlndXJpbmcgZ2V0QWxsIGFuZCBzZXRBbGwgY29va2llIG1ldGhvZHMgKGRlcHJlY2F0ZWQ6IGFsdGVybmF0aXZlbHkgdXNlIGdldCwgc2V0IGFuZCByZW1vdmUpLiR7aSgpPyIgQXMgdGhpcyBpcyBjYWxsZWQgaW4gYSBicm93c2VyIHJ1bnRpbWUsIGNvbnNpZGVyIHJlbW92aW5nIHRoZSBjb29raWVzIG9wdGlvbiBvYmplY3QgdG8gdXNlIHRoZSBkb2N1bWVudC5jb29raWUgQVBJIGF1dG9tYXRpY2FsbHkuIjoiIn1gKTtlbHNlIGlmKCF0JiZpKCkpcj0oKT0+e2xldCBlO3JldHVybiBPYmplY3Qua2V5cyhlPSgwLG4ucGFyc2UpKGRvY3VtZW50LmNvb2tpZSkpLm1hcCh0PT4oe25hbWU6dCx2YWx1ZTplW3RdPz8iIn0pKX0scz1lPT57ZS5mb3JFYWNoKCh7bmFtZTplLHZhbHVlOnQsb3B0aW9uczpyfSk9Pntkb2N1bWVudC5jb29raWU9KDAsbi5zZXJpYWxpemUpKGUsdCxyKX0pfTtlbHNlIGlmKHQpdGhyb3cgRXJyb3IoIkBzdXBhYmFzZS9zc3I6IGNyZWF0ZVNlcnZlckNsaWVudCBtdXN0IGJlIGluaXRpYWxpemVkIHdpdGggY29va2llIG9wdGlvbnMgdGhhdCBzcGVjaWZ5IGdldEFsbCBhbmQgc2V0QWxsIGZ1bmN0aW9ucyAoZGVwcmVjYXRlZCwgbm90IHJlY29tbWVuZGVkOiBhbHRlcm5hdGl2ZWx5IHVzZSBnZXQsIHNldCBhbmQgcmVtb3ZlKSIpO2Vsc2Ugcj0oKT0+W10scz0oKT0+e3Rocm93IEVycm9yKCJAc3VwYWJhc2Uvc3NyOiBjcmVhdGVCcm93c2VyQ2xpZW50IGluIG5vbi1icm93c2VyIHJ1bnRpbWVzIChpbmNsdWRpbmcgTmV4dC5qcyBwcmUtcmVuZGVyaW5nIG1vZGUpIHdhcyBub3QgaW5pdGlhbGl6ZWQgY29va2llIG9wdGlvbnMgdGhhdCBzcGVjaWZ5IGdldEFsbCBhbmQgc2V0QWxsIGZ1bmN0aW9ucyAoZGVwcmVjYXRlZDogYWx0ZXJuYXRpdmVseSB1c2UgZ2V0LCBzZXQgYW5kIHJlbW92ZSksIGJ1dCB0aGV5IHdlcmUgbmVlZGVkIil9O3JldHVybiB0P3tnZXRBbGw6cixzZXRBbGw6cyxzZXRJdGVtczpjLHJlbW92ZWRJdGVtczptLHN0b3JhZ2U6e2lzU2VydmVyOiEwLGdldEl0ZW06YXN5bmMgZT0+e2lmKCJzdHJpbmciPT10eXBlb2YgY1tlXSlyZXR1cm4gY1tlXTtpZihtW2VdKXJldHVybiBudWxsO2xldCB0PWF3YWl0IHIoW2VdKSxuPWF3YWl0IHUoZSxhc3luYyBlPT57bGV0IHI9dD8uZmluZCgoe25hbWU6dH0pPT50PT09ZSl8fG51bGw7cmV0dXJuIHI/ci52YWx1ZTpudWxsfSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IGk9bjtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG4mJm4uc3RhcnRzV2l0aChkKSYmKGk9eShuLnN1YnN0cmluZyhkLmxlbmd0aCkpKSxpfSxzZXRJdGVtOmFzeW5jKHQsbik9Pnt0LmVuZHNXaXRoKCItY29kZS12ZXJpZmllciIpJiZhd2FpdCBnKHtnZXRBbGw6cixzZXRBbGw6cyxzZXRJdGVtczp7W3RdOm59LHJlbW92ZWRJdGVtczp7fX0se2Nvb2tpZU9wdGlvbnM6ZT8uY29va2llT3B0aW9ucz8/bnVsbCxjb29raWVFbmNvZGluZzpofSksY1t0XT1uLGRlbGV0ZSBtW3RdfSxyZW1vdmVJdGVtOmFzeW5jIGU9PntkZWxldGUgY1tlXSxtW2VdPSEwfX19OntnZXRBbGw6cixzZXRBbGw6cyxzZXRJdGVtczpjLHJlbW92ZWRJdGVtczptLHN0b3JhZ2U6e2lzU2VydmVyOiExLGdldEl0ZW06YXN5bmMgZT0+e2xldCB0PWF3YWl0IHIoW2VdKSxuPWF3YWl0IHUoZSxhc3luYyBlPT57bGV0IHI9dD8uZmluZCgoe25hbWU6dH0pPT50PT09ZSl8fG51bGw7cmV0dXJuIHI/ci52YWx1ZTpudWxsfSk7aWYoIW4pcmV0dXJuIG51bGw7bGV0IGk9bjtyZXR1cm4gbi5zdGFydHNXaXRoKGQpJiYoaT15KG4uc3Vic3RyaW5nKGQubGVuZ3RoKSkpLGl9LHNldEl0ZW06YXN5bmModCxuKT0+e2xldCBpPWF3YWl0IHIoW3RdKSx1PW5ldyBTZXQoKGk/Lm1hcCgoe25hbWU6ZX0pPT5lKXx8W10pLmZpbHRlcihlPT5mKGUsdCkpKSxsPW47ImJhc2U2NHVybCI9PT1oJiYobD1kK3AobikpO2xldCBjPWEodCxsKTtjLmZvckVhY2goKHtuYW1lOmV9KT0+e3UuZGVsZXRlKGUpfSk7bGV0IHk9ey4uLm8sLi4uZT8uY29va2llT3B0aW9ucyxtYXhBZ2U6MH0sZz17Li4ubywuLi5lPy5jb29raWVPcHRpb25zLG1heEFnZTpvLm1heEFnZX07ZGVsZXRlIHkubmFtZSxkZWxldGUgZy5uYW1lO2xldCBtPVsuLi5bLi4udV0ubWFwKGU9Pih7bmFtZTplLHZhbHVlOiIiLG9wdGlvbnM6eX0pKSwuLi5jLm1hcCgoe25hbWU6ZSx2YWx1ZTp0fSk9Pih7bmFtZTplLHZhbHVlOnQsb3B0aW9uczpnfSkpXTttLmxlbmd0aD4wJiZhd2FpdCBzKG0pfSxyZW1vdmVJdGVtOmFzeW5jIHQ9PntsZXQgbj1hd2FpdCByKFt0XSksaT0obj8ubWFwKCh7bmFtZTplfSk9PmUpfHxbXSkuZmlsdGVyKGU9PmYoZSx0KSksYT17Li4ubywuLi5lPy5jb29raWVPcHRpb25zLG1heEFnZTowfTtkZWxldGUgYS5uYW1lLGkubGVuZ3RoPjAmJmF3YWl0IHMoaS5tYXAoZT0+KHtuYW1lOmUsdmFsdWU6IiIsb3B0aW9uczphfSkpKX19fX0oey4uLmwsY29va2llRW5jb2Rpbmc6bD8uY29va2llRW5jb2Rpbmc/PyJiYXNlNjR1cmwifSwhMSksbT0oMCxyLmNyZWF0ZUNsaWVudCkoZSxzLHsuLi5sLGdsb2JhbDp7Li4ubD8uZ2xvYmFsLGhlYWRlcnM6ey4uLmw/Lmdsb2JhbD8uaGVhZGVycywiWC1DbGllbnQtSW5mbyI6InN1cGFiYXNlLXNzci8wLjYuMSBjcmVhdGVCcm93c2VyQ2xpZW50In19LGF1dGg6ey4uLmw/LmF1dGgsLi4ubD8uY29va2llT3B0aW9ucz8ubmFtZT97c3RvcmFnZUtleTpsLmNvb2tpZU9wdGlvbnMubmFtZX06bnVsbCxmbG93VHlwZToicGtjZSIsYXV0b1JlZnJlc2hUb2tlbjppKCksZGV0ZWN0U2Vzc2lvbkluVXJsOmkoKSxwZXJzaXN0U2Vzc2lvbjohMCxzdG9yYWdlOmN9fSk7cmV0dXJuIGgmJih0PW0pLG19ZnVuY3Rpb24gdigpe3JldHVybiBtKCJodHRwczovL215bG9peHl3eW9leGxhcmZybWFiLnN1cGFiYXNlLmNvIiwiZXlKaGJHY2lPaUpJVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0o5LmV5SnBjM01pT2lKemRYQmhZbUZ6WlNJc0luSmxaaUk2SW0xNWJHOXBlSGwzZVc5bGVHeGhjbVp5YldGaUlpd2ljbTlzWlNJNkltRnViMjRpTENKcFlYUWlPakUzTlRJMk56azVPRElzSW1WNGNDSTZNakEyT0RJMU5UazRNbjAuX081UWxOX09Nc1hTeEZndUw4bXU3WC0yVHotTGRoZ3pZczNieUlDUndpZyIpfWUucyhbImNyZWF0ZUJyb3dzZXJDbGllbnQiLCgpPT5tXSw5NzIzOTApLGUuaSg3NTI2ODMpLGUucyhbXSw1MjkyMjUpLHYoKSxlLnMoWyJjcmVhdGVTdXBhYmFzZUJyb3dzZXJDbGllbnQiLCgpPT52XSw5MjA3NTUpfV0pOw=="}},"time_used":20,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":20,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"vercel.live/login/validate?hostname=preview-strategynavigator.newton.tech\u0026deploymentId=dpl_HQ8jZmmY8hWK4P4aXmosXxUu25gn","fqdn":"vercel.live","domain":"vercel.live","tld":"live"},"ip":{"addr":"64.239.123.1","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://vercel.live/_next-live/feedback/feedback.html?dpl=dpl_GBSv5uteAdkYzC5LuQUrVTgkwdAR","date":"2026-07-27T08:54:58.635Z","timestamp":1785142498635,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.vercel.live","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 16 Jul 2026 06:06:15 GMT","end":"Wed, 14 Oct 2026 06:06:14 GMT"},"fingerprint":{"sha1":"F7:C4:44:D7:65:85:7F:13:D1:88:22:52:01:13:39:2C:D2:4D:B4:03","sha256":"D1:97:31:2B:16:93:09:96:71:5C:B3:35:63:90:F5:A8:A7:F8:C0:6B:D8:21:B8:AB:5A:31:BF:80:A6:89:DF:E9"}}},"request":{"raw":"POST /login/validate?hostname=preview-strategynavigator.newton.tech\u0026deploymentId=dpl_HQ8jZmmY8hWK4P4aXmosXxUu25gn HTTP/1.1\r\nHost: vercel.live\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://vercel.live/_next-live/feedback/feedback.html?dpl=dpl_GBSv5uteAdkYzC5LuQUrVTgkwdAR\r\nContent-Type: application/json\r\nContent-Length: 190\r\nOrigin: https://vercel.live\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"POST","post_data":{"size":190,"data":"{\"page\":\"/auth/login\",\"existingTokens\":[],\"tracking\":{\"sessionId\":\"17851424986280.27603410189760824\",\"ua\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\"}}"}},"response":{"raw":"HTTP/2 200 \r\ncache-control: must-revalidate\r\ncontent-encoding: br\r\ncontent-type: application/json\r\ndate: Mon, 27 Jul 2026 08:54:58 GMT\r\nserver: Vercel\r\nset-cookie: vercel-experiment-uuid=pI4_TXkRsCPy9PWDXZY0v; Path=/; Secure; HttpOnly; SameSite=none; Partitioned\r\nstrict-transport-security: max-age=63072000\r\nvary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch\r\nx-matched-path: /login/validate\r\nx-robots-tag: noindex\r\nx-vercel-cache: MISS\r\nx-vercel-id: arn1::sfo1::mhnpb-1785142498640-76f284c9441e\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"]},{"name":"Vercel","description":"Vercel is a cloud platform for static frontends and serverless functions.","website":"https://vercel.com","common_platform_enumeration":"","icon":"vercel.svg","categories":["PaaS"]}],"data":{"size":56,"size_decoded":617,"mime_type":"application/json","magic":"JSON text data","md5":"1960c66767e1a2ff2965a2d907bfcde5","sha1":"2895431036f3bde25767ffce476aa21e4be60e01","sha256":"6523a21a03434e13a0d806c7c44dcbdd9279e21430b5ed0816b40913a585fbde","sha512":"e6763642c9aed2b2889e304c73348d897f4b41fdaa2d59d30e0fc0344e26867c213177752c3bb56e427f0ed60d436da2cfcc67f642c0719d172b21dba4470b10","ssdeep":"","tlshash":"42900207995881875c64a1520f019c5661612410a2446856d1f8508d88599587601d32","first_seen":"2026-07-27T08:55:34.406052Z","last_seen":"2026-07-27T08:55:34.406052Z","times_seen":1,"resource_available":false,"data":"eyJleHBlcmltZW50cyI6eyJpZCI6InBJNF9UWGtSc0NQeTlQV0RYWlkwdiIsImRhdGEiOnt9fX0="}},"time_used":261,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":261,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
