{"report_id":"a2ce1981-9fd3-4461-8af0-d5518a9f6220","version":0,"status":"done","tags":[],"date":"2026-07-27T05:18:28Z","url":{"schema":"https","addr":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"final":{"url":{"schema":"https","addr":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"title":"Welcome To danis-miners.com","dom":{"size":41914,"mime_type":"text/html; charset=utf-8","magic":"HTML document, ASCII text, with very long lines (26399)","md5":"f9c80be5efe2f2e7908cbc6464a4baa1","sha1":"7c0e9f1f6a741316015e209aaccd4280bb8140e6","sha256":"3432aeb269181b7717693d00dee9e8cb7c65d8ca5f55cd8f256814ef3c1dfcc8","sha512":"21d456fda273365aef1226c05d8ece08a4ef27ce93be2cef19159c86b92fcf060e436cc20acfb22e4e9b1c3830c864d76efec26873cd4ef89d1a3e7202ec1a98","ssdeep":"768:0yJi2qbCmmWq38FTbfsTO+hDGq3t8UtN2v3k/SR+D/5km58:FJzqbCmmWq38FTbfsTO+hDZ3t8UtAk/C","tlshash":"a513a7276784452c9c53d278f399b54ea32af688ef6259eef7c23410c2d93ff088a455","dom_hash":"domhash5a2e7b986a359100c1311ce7180015d1","first_seen":"","last_seen":"","times_seen":0,"resource_available":false,"data":null}},"submit":{"url":{"schema":"https","addr":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":0,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"tags":null,"meta":null},"settings":{"access":"public","device_type":"desktop","expires_at":"2027-08-31T05:18:28Z","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":"danis-miners.com","ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"domain_registered":"2025-11-24","domain_rank":0,"first_seen":"2026-07-27T04:09:38.196893Z","last_seen":"2026-07-27T04:09:38.196893Z","alert_count":0,"request_count":48,"received_data":2534856,"sent_data":25917,"comment":"","tags":null,"fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"WOW","description":"Reveal CSS animation as you scroll down a page.","website":"https://www.delac.io/WOW","common_platform_enumeration":"","icon":"","categories":["JavaScript frameworks","Web frameworks","JavaScript graphics"]},{"name":"jQuery UI","description":"jQuery UI is a collection of GUI widgets, animated visual effects, and themes implemented with jQuery, Cascading Style Sheets, and HTML.","website":"https://jqueryui.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery_ui:*:*:*:*:*:*:*:*","icon":"jQuery UI.svg","categories":["JavaScript libraries"]},{"name":"Mixitup","description":"A CSS3 and jQuery Filter \u0026 Sort Plugin.","website":"https://www.kunkalabs.com/mixitup/","common_platform_enumeration":"","icon":"kunkalabs.svg","categories":["JavaScript libraries"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"Popper","description":"Popper is a positioning engine, its purpose is to calculate the position of an element to make it possible to position it near a given reference element.","website":"https://popper.js.org","common_platform_enumeration":"","icon":"Popper.svg","categories":["Miscellaneous"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"FancyBox","description":"FancyBox is a tool for displaying images, html content and multi-media in a Mac-style 'lightbox' that floats overtop of web page.","website":"https://fancyapps.com/fancybox","common_platform_enumeration":"","icon":"FancyBox.svg","categories":["JavaScript libraries"]}]},{"fqdn":"www.smartsuppchat.com","ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2014-02-02","domain_rank":491650,"first_seen":"2017-01-30T05:24:57Z","last_seen":"2026-07-24T07:15:25.153212Z","alert_count":0,"request_count":1,"received_data":18547,"sent_data":463,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"media.istockphoto.com","ip":{"addr":"108.157.214.70","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"domain_registered":"2000-01-06","domain_rank":166591,"first_seen":"2018-11-13T21:06:51Z","last_seen":"2026-07-20T23:04:08.39969Z","alert_count":0,"request_count":2,"received_data":42723,"sent_data":1434,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Kestrel","description":"","website":"https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel","common_platform_enumeration":"","icon":"kestrel.svg","categories":["Web servers"]},{"name":"Microsoft ASP.NET","description":"ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages.","website":"https://www.asp.net","common_platform_enumeration":"cpe:2.3:a:microsoft:asp.net:*:*:*:*:*:*:*:*","icon":"Microsoft ASP.NET.svg","categories":["Web frameworks"]},{"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":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}]},{"fqdn":"coin-images.coingecko.com","ip":{"addr":"104.21.63.32","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-03-26","domain_rank":550283,"first_seen":"2024-05-30T15:11:00Z","last_seen":"2026-07-21T00:15:02.88318Z","alert_count":0,"request_count":5,"received_data":65931,"sent_data":2939,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"websocket-visitors.smartsupp.com","ip":{"addr":"3.122.197.123","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2012-08-25","domain_rank":411464,"first_seen":"2021-07-12T07:42:32Z","last_seen":"2026-07-24T09:04:26.067381Z","alert_count":0,"request_count":1,"received_data":224,"sent_data":631,"comment":"","tags":null,"fingerprints":null},{"fqdn":"bootstrap.smartsuppchat.com","ip":{"addr":"18.195.8.146","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"domain_registered":"2014-02-02","domain_rank":425291,"first_seen":"2018-01-29T06:10:36Z","last_seen":"2026-07-24T07:15:25.204838Z","alert_count":0,"request_count":1,"received_data":5360,"sent_data":535,"comment":"","tags":null,"fingerprints":null},{"fqdn":"widget-v3.smartsuppcdn.com","ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":532262,"first_seen":"2022-10-03T13:48:45Z","last_seen":"2026-07-24T15:28:31.507831Z","alert_count":0,"request_count":4,"received_data":329031,"sent_data":1875,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"translations.smartsuppcdn.com","ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"domain_registered":"2018-11-20","domain_rank":560346,"first_seen":"2022-11-04T22:28:35Z","last_seen":"2026-07-24T15:28:31.911258Z","alert_count":0,"request_count":1,"received_data":7732,"sent_data":517,"comment":"","tags":null,"fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}]},{"fqdn":"images.pexels.com","ip":{"addr":"104.18.66.220","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-05-15","domain_rank":246953,"first_seen":"2016-11-15T16:49:09Z","last_seen":"2026-07-24T07:26:25.904668Z","alert_count":0,"request_count":4,"received_data":129079,"sent_data":2809,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}]},{"fqdn":"api.coingecko.com","ip":{"addr":"172.66.172.219","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-03-26","domain_rank":442226,"first_seen":"2018-05-18T12:16:11Z","last_seen":"2026-07-21T20:24:11.162909Z","alert_count":0,"request_count":1,"received_data":5151,"sent_data":549,"comment":"","tags":null,"fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"HSTS","description":"HTTP Strict Transport Security (HSTS) informs browsers that the site should only be accessed using HTTPS.","website":"https://www.rfc-editor.org/rfc/rfc6797#section-6.1","common_platform_enumeration":"","icon":"","categories":["Security"]}]},{"fqdn":"widgets.coingecko.com","ip":{"addr":"104.18.4.118","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"domain_registered":"2014-03-26","domain_rank":3132971,"first_seen":"2018-07-05T11:10:42Z","last_seen":"2026-07-23T05:31:16.754918Z","alert_count":0,"request_count":1,"received_data":231858,"sent_data":491,"comment":"","tags":null,"fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"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"]}]}],"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":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"9e3c6d8418737746494bd1382a9777d3","sha1":"f0ee29d2da444db365c8637611fc133ca31905cd","sha256":"cfed8dab00d9a1c07ee3f2bc49d3d4cb8033bacaa73cac96fdba28840edc9a41","sha512":"79ac8c9b53d4d89b49006537969abbb912e44e0ab148a62583de1871ff5815ccf76a841cd3993668193bd7d0d72577c504e97c096699155b69c8be67c2e1cf7d","ssdeep":"","tlshash":"fbd08c0bb074014b0086f10593ce08887124400b01350e28364c508a3ff2f8c034eaa8","size":272,"data":"","first_seen":"2026-06-07T09:52:13.211142Z","last_seen":"2026-07-29T04:59:16.268535Z","times_seen":192,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"db7decf9ad20ec1679bd11d3e81add7a","sha1":"eaa5adedf29aa599f1c9548d1e0ce1132e46cdc5","sha256":"a5e5a2bcac9a64f6fe1f1ff7d1d498ffd17b06640f8c4b1943df5248ffd38f1c","sha512":"4d21b391a5faaf7f8d42b1e3e8d790fdd7e95b13ae376c7f79a32fb3b76a2087f1615ff94c72cc6281fd1346f86f6203847857fe5d69b0487c72f4187ac80bda","ssdeep":"","tlshash":"3ae0a23e3c344080479640b480bbe22c3a0a306000d0c993989a9cae98f0fcaae028c4","size":416,"data":"","first_seen":"2026-07-27T04:09:44.060933Z","last_seen":"2026-07-27T10:24:20.344896Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"a4c22057bed2a449e681378298754eda","sha1":"bf2d6a17f60bbc301b59838a47d5d61077f59363","sha256":"6c42dd8605f6ca33a9ec970fa99160bb4df60b4ac346cc5d489a13aabd6c19d5","sha512":"37f6be27ef75aa52e0dad21eeba699bfbff69917c2ac46cf779620f8428260afebe48579fe3e9ecfcee2ce64d744355fc85ab972eca9c2474fe8afac956422e9","ssdeep":"","tlshash":"fae0f8bc3c7842a047a300f080abe2283e1a30600094eaab849b88bc0cf1fcdbc029d4","size":415,"data":"","first_seen":"2026-07-27T04:09:44.061865Z","last_seen":"2026-07-27T10:24:20.345694Z","times_seen":5,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":true,"md5":"228d3458d08f017d17d7a12c080d06c8","sha1":"1787752832bb594093cf9440fbdf673759565d32","sha256":"218814b2db4d4204440eed9c781f6639c890b41c982bb5ee981400c2c5c807a8","sha512":"afc0920eea794c545777d9f6fca985bc9a37423044717a1f899754ac005e2a47fab40dafd980e0b7ba9b1b839d260ff411c1f7543d2eaea3b74bb93f0e76dfd1","ssdeep":"","tlshash":"c06136d59617426f50f36d73fe814402ac65a45fc866ce80fe0e5e984b825a4f3bce62","size":3317,"data":"","first_seen":"2026-07-09T07:06:36.433714Z","last_seen":"2026-07-27T10:24:20.346463Z","times_seen":27,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widgets.coingecko.com/coingecko-coin-price-marquee-widget.js","fqdn":"widgets.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.18.4.118","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"introduction_type":"scriptElement","is_inline":false,"md5":"c943d4422dad6300bbaf689c2211180f","sha1":"4cf78792b3a9dddc6f2ee8219bbfdd213194f144","sha256":"d8d3d9a390c75f612142118d3281d85b95cb50e84c2f6d9438daa83efa8e2437","sha512":"c5516ee60fdc9e900036dec072c7c2de8d01dcfce22fc901048697428c43604ea8dd8d907abda960ce8aae5201ec7f649300af511c8bcccac469a9541f0d9d4f","ssdeep":"3072:/uPfvYNJshGWDSBttCWINmVZrnPodE5rUzpI4Oz:XYBctCo2c4Oz","tlshash":"bc34198eb6c0f19947b693e9605f394ba77d28fc68884380e972f4e5587e05c6132f6c","size":230974,"data":"","first_seen":"2026-07-05T23:38:03.171209Z","last_seen":"2026-07-29T06:15:23.422318Z","times_seen":251,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery.fancybox.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"6e11711058a9459a94d5a19b26a78135","sha1":"76792d5913afe035b6ccbac585b0b5e70b33aa76","sha256":"7b99eee1db728472aaa8452017a0d755f488e8d647cc0f62baf45f8ff65b95ba","sha512":"6ecbe997bc6e82fa7976a98e291ec31e043de23f0f5d06834fcc809cde8d0c3ffa0e96c734dfc0b0fbc313e405eac603540913794bb3a9a86ac56db5d2ab868a","ssdeep":"1536:26iljQs+4wETv0qwF/fwUsjuFR4amerr3txU0Me7/pby+mHWgGbAdKfW7WP83RSp:2NoETcqwF3wO/VUbZZr7WP83RSD6E3t","tlshash":"f3e3968a67bd112589333129ab8f705eb57e8423a10dd9263cad53481fc13a943f5fee","size":154104,"data":"","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T07:07:17.237721Z","times_seen":3528,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/mixitup.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"b9088c94738c3a2c95184e45d0b5f854","sha1":"bad4f5162be5a45a8ba9a44a2af2c7a2315ba725","sha256":"1288abb45b62709defec307fb4668ece7b0259d02b4a6770da169867b29258cf","sha512":"c0c06199ad7018561244a5d8565babb57a94d99dab691a09e4b68c7ddc6ea33bdf03e7e540240bc071cd08a42c7d09f91c4ef5a75a094ffc02a3c622c99d4b97","ssdeep":"768:somWOk24dXP7o9iFz4Mjz/iNr/7B7X8lu:LmZk24dXP88FsMjzY","tlshash":"bc333ef1ef0c7ce19563e255a8aeba83f83e8033a51d8de7bc30b5142d9590a521fd25","size":52224,"data":"","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T00:40:16.327379Z","times_seen":996,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/wow.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"11ac4d7173a68c50169addca2ef1b827","sha1":"621284d032a248c41753e995680fc30089bd374c","sha256":"dd90fdb6538987fe7975bd43803b1c7d8d62912a371c788caec32d016e09dca8","sha512":"658888b9d89577b55798fc56451f9458ba9b4885573a96480fd9bd480cb59854769964da9a5f54feba19ba66fa6df44c79203d35f1d6d9cafd84886c58e233a4","ssdeep":"96:3GqKWTAKHF/suCdaOVEE1FnePgJqg4SImYad6Q:y30suCYOVEE7ne4JqgpIwdh","tlshash":"bbd175c9b7467036d79ba1f6873f0145a23a19acb008047cb7e984e57d348699237f38","size":6300,"data":"","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T07:07:17.267598Z","times_seen":5397,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/script.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"d8ed427061c985cc59234e83bf2f8ead","sha1":"74dcd24ce98cde9a3d602fa980597e7fb1bea94e","sha256":"b602572345b34b39e8c50d36a63ac5d0e7d165923a84e658411dda8b76f376a6","sha512":"9c306b38855e156f57df618e2d10b98c07124eba5b319bf458ceb2d625a3e7707a06a3bacc142dfec7e79d5db9c1dfec6fe801ec2148f22a06ed94f8f913bf62","ssdeep":"384:kZIxBdLrk2eKAA/bOKuwCHJh3C6yY9kZ4dN:1k29nbOKxCHJh3UY9RdN","tlshash":"dd720ec0f7bc25b7447a3196985e75c52bad4437c84324b7f9bd11282fc871e32aae19","size":17103,"data":"","first_seen":"2024-06-18T00:47:46Z","last_seen":"2026-07-27T13:36:13.703598Z","times_seen":96,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/color-settings.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"a723adf74aa53f3661755e2acf1cc6a3","sha1":"e4470b5f92576f469e1f8c90fe06a6a8ddd91739","sha256":"f4a5f60c327a6b3ae60a1d92c6adb14f5536aa5f5c69a4c78dbad26cf834832f","sha512":"2cb57446408efb8b79d61bbc8f2215a17bde8e14685534370c16506daa685a452398e9dfe8c1a5c6398643dba532d3cf2f1d5e59616417c59f6a5e7d72933325","ssdeep":"","tlshash":"a9218c65b3aa2ce391bb337dd47984409f351033c1068ba9b93f94840fb844e227af5e","size":1161,"data":"","first_seen":"2023-03-07T17:50:04Z","last_seen":"2026-07-27T13:36:13.737707Z","times_seen":205,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/popper.min.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"9b1dcd93871ac6da23becaef039b4b16","sha1":"3cf72db9816ea8cf313e6891fac2b9ad810a6fdb","sha256":"5f2a323cdac82cec5be5ee5416fec1b1f2d622c98166677215859af195ed29ad","sha512":"4f8a18119b63c6db95389d643c7951c401e0f933bb8bf8768c017e4a2ab715a494a69f2117b913eca37c1e60dcec02b3b5d5804e52e5083cb1d8e20e063e6e05","ssdeep":"384:25LFrVVVnCQvIR/CFU4hHPV4kdxXvYqo2D75zCx+vI2am3MxGpGTgd/9jt9+Db9H:INVVVnyiU41xXvlD7wx+v0xyGTgnZO9H","tlshash":"f392a2cc3294b06647e791a7a07f960eb2339875650e9410f299f2e97c30ef9913bc79","size":20498,"data":"","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-28T09:09:16.694968Z","times_seen":2218,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/bootstrap.min.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"a6b40b3ce40edb17d2a7504a14584679","sha1":"ba02f42b09dae9954e8ce169bcfd56c8363ffc40","sha256":"948d847179045bed3e8e2a13621680921366e4a6fdca222693f4a465eb5c7a7c","sha512":"ea770c8fbeeafd4c6824ff8e4cf0dd81735118838217e658101a59ab2121d74bf1f5d0624b249c796b8a859a565268023375096dabdd9c0935a0e60df6e53e3f","ssdeep":"768:o2rGy27UwlNqMl95qNmCFejhqs8snmiOCSFXfbx8Gf3Zq7Q:Jg73zhq02vbJ3ZKQ","tlshash":"fbf28606b23031a147efb1e1525b020e7239696ee906907c78b99af53db9c48717bf3d","size":37051,"data":"","first_seen":"2023-03-07T01:10:50Z","last_seen":"2026-07-27T13:50:48.672522Z","times_seen":460,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/appear.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"5a457d262e3c32d25c003ca412ee7fe6","sha1":"b08e23c986259073419a7068fcd36296a91b1ae4","sha256":"46fb2235bcf84086a9b939ae509ecacc01bb31c68ba94e6473e31d8adebec3eb","sha512":"826945d028efc7a9f95c22c5f4d34dfab6704b75f45e7d6fc2e93e2b42f7078aaf7b8508f9155b36dd15ca759a765fff3b4550f17e3b187e79285f63de455d53","ssdeep":"48:3l3Xwqhd24ayV+zFLAPftUIeohhR9zIreFfFoBSxMEh1u1cq6KjD4W7j9:V3XWz1zFkmDo7R9cr+YSpTocqBksj9","tlshash":"7391db4a759b2ab54877722a9f2fa20cd721513b1202c21138eede6c2f71c50a197fdc","size":4379,"data":"","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T07:07:17.248385Z","times_seen":4128,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-t6WxLABA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"9253d4d9d6ea32e484f0be9a0320a7a7","sha1":"762fb8fdf15626507c1c26a66aa7fe399d39e803","sha256":"1fb0b8e426f707feea50785bc24016fe14a76fb763d5eca3bc9b1d265bf77fa2","sha512":"5a1592fc87a402c636315def22f3c60dd7eeda34701b08005a192ae060acbe7ed8ae8aa709cc1664c3d9489c641e1ada60e79c66f13073ab61e6ba5bd86f524d","ssdeep":"384:9rgi5RFMkSjJOE/0BW2rkZZ795P6zrnBOVmPCRkXQbpaIF2K:9EizlSjJOEiWYoR5P6nnBOVmycQbpaId","tlshash":"0272d7742700783f711f489e16ade546b232c29dd693892d9b6fec0976c5cc0a8b37b9","size":16281,"data":"","first_seen":"2026-07-07T11:50:17.711459Z","last_seen":"2026-07-27T07:27:47.896741Z","times_seen":1890,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/owl.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"54428880ec8df798ac3d666f5113c7ff","sha1":"9e43e74b8677f39e87f1b11be4d536c618b14bb3","sha256":"0402874ff311f284b18af9e4c453ee5bf0916a3b7335f0be52dcb54a1a31338b","sha512":"abceb872c8942d366a533c0c572e0e6e31d1b428ad2bc6fa1e746fd31811b6f8dfcd77814723adf44e1a8585436b511097576159b8eab40706b025e3158eda24","ssdeep":"1536:/PLoreUScogMjVNPP8aLMBJk8u9hKt1o619IYj1oJ0SQIOZ:/fHNPP/qJ9BoC9XplIOZ","tlshash":"e48383c5f36c261b422a31785e9e23ce713d412ad91118af7ca4e9dc28d546c836eff9","size":85303,"data":"","first_seen":"2023-03-07T01:10:42Z","last_seen":"2026-07-27T15:00:25.620182Z","times_seen":4661,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery-ui.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"8ec0db1cb8ed2395c5df4e11be0d86e9","sha1":"d91e3c65e262d7e0021a926d228b9f6ad9aef4a9","sha256":"97bca2a8204372f21c29bc2d6ceeb192eab0719f1d154e1073f04acd8d2f0064","sha512":"0bbe5fd8a7991d8f0bb43a0dff3bc1130f5e2514524fcca9dc4662815155644d44a550ba2ffd92e86177c024d28319dc28a39d007c01bfde6bdbfe3d429c8f71","ssdeep":"12288:BEebHeg/md/AHhsncaL8ata+3XIdCgTf9kDUUB:EoHhsncaL8ata+3XIBf9kDUUB","tlshash":"66b4c7d5334f226f86ea3359983a9289e63dc075d202807d789d58dd25a8c2843b7ffd","size":539425,"data":"","first_seen":"2023-03-07T12:02:47Z","last_seen":"2026-07-29T00:40:16.355088Z","times_seen":1267,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","size":18024,"data":"","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-07-29T06:17:50.029745Z","times_seen":7755,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"618538b4ab9639d444e962729a927f15","sha1":"dacc1f76630a9708add066819b1aabf8dce01056","sha256":"27d92130c0321dad5a03760fd5ac98a3d04ed4c94d88418fe6d50da1f7fc5cbe","sha512":"bcb6754ea246939a19a917cc0b810e1753c1b0f1a8b1b7e652128ef15dee4fc79111e4d88fe12f9188449a307e82240d0261af402d783428edfe5785c860372d","ssdeep":"1536:jYE1JVoiB9JqZdXXe2pD3PgoIiulrUdTJ5Fk/zkZ4HjL5o8srOaS9TwDhb7/Jp96:y4J+03jL5TCOauTwDhFdnCVQNLa98Hrc","tlshash":"9693d7d9b6d6706287b734a851bf410bb17aa8eab40c4c60f058c8e47e74e9d507bf2d","size":97168,"data":"","first_seen":"2023-03-07T01:12:12Z","last_seen":"2026-07-29T07:07:17.242851Z","times_seen":5731,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery.mCustomScrollbar.concat.min.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"487cd99a3aa5e6ae2f437d1e7892c7e1","sha1":"eccf82e7e0901edddf9b63fc7a60345e0acc7e88","sha256":"7d2c4f45781edb76e79487b4f3bd7a7bb1ca0beee7df51c17150a5769730f7d6","sha512":"9073e2762befe2e28bf5d680944ace14c9a4079b0848ddd3c6acda42fdf76d65420bd47f5cfe94e11dfeacbca1257df5adf94c9557f9acb5a5d1576a15525825","ssdeep":"768:nAGHSQl8dA0unnTUOxZ5ynGi65vqjSDHR17JayK:nAGHSSnTUOxZqxjv","tlshash":"dc03f9e9370534fb12db6f5e441b010963365956a70b8870347d8cb82fb1e6622b7b6d","size":40549,"data":"","first_seen":"2023-03-07T12:27:54Z","last_seen":"2026-07-27T13:34:21.396455Z","times_seen":190,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/nav-tool.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"introduction_type":"scriptElement","is_inline":false,"md5":"e28a1be506d3151bad02d20a7751f09c","sha1":"d0a106cd4d593b36c86c3740d26b6d332c740207","sha256":"e35de31330187c0f62603f8b770e2969cbc3fe0d885aa02c7dcdd6fbe5134691","sha512":"e7faae5c7937eb0e2569b90d0dd804b6f0a5c72d30f148770f36c5bde1fec88fe412be41416f91d1caf5fdf6a07059a31119673bdd003ec9f70789eeb9c84455","ssdeep":"","tlshash":"ae11aa68b830e2fd01fb631930139e40c23a0dc5ca2c1d95982019882e6bdcf41eb7fe","size":1086,"data":"","first_seen":"2023-03-07T12:02:54Z","last_seen":"2026-07-28T09:09:16.706499Z","times_seen":941,"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-CgMCAfor.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"introduction_type":"scriptElement","is_inline":false,"md5":"06c5668b0e6d3383e096c45abdbedf9d","sha1":"8d64309e8ec50da59f799336c11685ca7fd15ecc","sha256":"2724b50edb69a23cc951a77f775727b960c857d18d58cfa9a47fe5c094d9b99a","sha512":"c4a86d25f4e86be36db19539b4e3efc70500a48b9664349043d76a1451f8536c8bed7fe22f8ca790fb3ac7e26fa7efbfc37e0c927687966dc08a02442e15f85c","ssdeep":"6144:mLjnOEIL18ad2jJKaQo+tRkYcuBaay+moJG:iOEIZRd29lqj4n+moY","tlshash":"53443ad53294b035439b51e6906f1106f33e5c58580d812cf269ede678baec8a2f7fb8","size":272133,"data":"","first_seen":"2026-07-07T11:50:17.748529Z","last_seen":"2026-07-27T07:27:47.884385Z","times_seen":1867,"alerts":{"ids":null,"analyzer":null,"urlquery":null}}],"eval":null,"write":null,"console":[{"level":"warn","text":"[CoingeckoCoinPriceMarqueeWidget] This widget is deprecated and is no longer maintained. Please visit https://www.coingecko.com/widgets to get the new version of this widget, which features a new design and better performance!","filename":"https://widgets.coingecko.com/coingecko-coin-price-marquee-widget.js","line_number":7,"column_number":63396}]},"http":[{"url":{"schema":"https","addr":"danis-miners.com/js/jquery.mCustomScrollbar.concat.min.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.702Z","timestamp":1785129412702,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/jquery.mCustomScrollbar.concat.min.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 11726\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":40549,"size_decoded":11964,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32011)","md5":"487cd99a3aa5e6ae2f437d1e7892c7e1","sha1":"eccf82e7e0901edddf9b63fc7a60345e0acc7e88","sha256":"7d2c4f45781edb76e79487b4f3bd7a7bb1ca0beee7df51c17150a5769730f7d6","sha512":"9073e2762befe2e28bf5d680944ace14c9a4079b0848ddd3c6acda42fdf76d65420bd47f5cfe94e11dfeacbca1257df5adf94c9557f9acb5a5d1576a15525825","ssdeep":"768:nAGHSQl8dA0unnTUOxZ5ynGi65vqjSDHR17JayK:nAGHSSnTUOxZqxjv","tlshash":"dc03f9e9370534fb12db6f5e441b010963365956a70b8870347d8cb82fb1e6622b7b6d","first_seen":"2023-03-07T12:27:54Z","last_seen":"2026-07-27T13:34:21.396455Z","times_seen":190,"resource_available":true,"data":"LyogPT0ganF1ZXJ5IG1vdXNld2hlZWwgcGx1Z2luID09IFZlcnNpb246IDMuMS4xMiwgTGljZW5zZTogTUlUIExpY2Vuc2UgKE1JVCkgKi8KIWZ1bmN0aW9uKGEpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0sYSk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWE6YShqUXVlcnkpfShmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGIpe3ZhciBnPWJ8fHdpbmRvdy5ldmVudCxoPWkuY2FsbChhcmd1bWVudHMsMSksaj0wLGw9MCxtPTAsbj0wLG89MCxwPTA7aWYoYj1hLmV2ZW50LmZpeChnKSxiLnR5cGU9Im1vdXNld2hlZWwiLCJkZXRhaWwiaW4gZyYmKG09LTEqZy5kZXRhaWwpLCJ3aGVlbERlbHRhImluIGcmJihtPWcud2hlZWxEZWx0YSksIndoZWVsRGVsdGFZImluIGcmJihtPWcud2hlZWxEZWx0YVkpLCJ3aGVlbERlbHRhWCJpbiBnJiYobD0tMSpnLndoZWVsRGVsdGFYKSwiYXhpcyJpbiBnJiZnLmF4aXM9PT1nLkhPUklaT05UQUxfQVhJUyYmKGw9LTEqbSxtPTApLGo9MD09PW0/bDptLCJkZWx0YVkiaW4gZyYmKG09LTEqZy5kZWx0YVksaj1tKSwiZGVsdGFYImluIGcmJihsPWcuZGVsdGFYLDA9PT1tJiYoaj0tMSpsKSksMCE9PW18fDAhPT1sKXtpZigxPT09Zy5kZWx0YU1vZGUpe3ZhciBxPWEuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0Iik7aio9cSxtKj1xLGwqPXF9ZWxzZSBpZigyPT09Zy5kZWx0YU1vZGUpe3ZhciByPWEuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0Iik7aio9cixtKj1yLGwqPXJ9aWYobj1NYXRoLm1heChNYXRoLmFicyhtKSxNYXRoLmFicyhsKSksKCFmfHxmPm4pJiYoZj1uLGQoZyxuKSYmKGYvPTQwKSksZChnLG4pJiYoai89NDAsbC89NDAsbS89NDApLGo9TWF0aFtqPj0xPyJmbG9vciI6ImNlaWwiXShqL2YpLGw9TWF0aFtsPj0xPyJmbG9vciI6ImNlaWwiXShsL2YpLG09TWF0aFttPj0xPyJmbG9vciI6ImNlaWwiXShtL2YpLGsuc2V0dGluZ3Mubm9ybWFsaXplT2Zmc2V0JiZ0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7dmFyIHM9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtvPWIuY2xpZW50WC1zLmxlZnQscD1iLmNsaWVudFktcy50b3B9cmV0dXJuIGIuZGVsdGFYPWwsYi5kZWx0YVk9bSxiLmRlbHRhRmFjdG9yPWYsYi5vZmZzZXRYPW8sYi5vZmZzZXRZPXAsYi5kZWx0YU1vZGU9MCxoLnVuc2hpZnQoYixqLGwsbSksZSYmY2xlYXJUaW1lb3V0KGUpLGU9c2V0VGltZW91dChjLDIwMCksKGEuZXZlbnQuZGlzcGF0Y2h8fGEuZXZlbnQuaGFuZGxlKS5hcHBseSh0aGlzLGgpfX1mdW5jdGlvbiBjKCl7Zj1udWxsfWZ1bmN0aW9uIGQoYSxiKXtyZXR1cm4gay5zZXR0aW5ncy5hZGp1c3RPbGREZWx0YXMmJiJtb3VzZXdoZWVsIj09PWEudHlwZSYmYiUxMjA9PT0wfXZhciBlLGYsZz1bIndoZWVsIiwibW91c2V3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwiTW96TW91c2VQaXhlbFNjcm9sbCJdLGg9Im9ud2hlZWwiaW4gZG9jdW1lbnR8fGRvY3VtZW50LmRvY3VtZW50TW9kZT49OT9bIndoZWVsIl06WyJtb3VzZXdoZWVsIiwiRG9tTW91c2VTY3JvbGwiLCJNb3pNb3VzZVBpeGVsU2Nyb2xsIl0saT1BcnJheS5wcm90b3R5cGUuc2xpY2U7aWYoYS5ldmVudC5maXhIb29rcylmb3IodmFyIGo9Zy5sZW5ndGg7ajspYS5ldmVudC5maXhIb29rc1tnWy0tal1dPWEuZXZlbnQubW91c2VIb29rczt2YXIgaz1hLmV2ZW50LnNwZWNpYWwubW91c2V3aGVlbD17dmVyc2lvbjoiMy4xLjEyIixzZXR1cDpmdW5jdGlvbigpe2lmKHRoaXMuYWRkRXZlbnRMaXN0ZW5lcilmb3IodmFyIGM9aC5sZW5ndGg7YzspdGhpcy5hZGRFdmVudExpc3RlbmVyKGhbLS1jXSxiLCExKTtlbHNlIHRoaXMub25tb3VzZXdoZWVsPWI7YS5kYXRhKHRoaXMsIm1vdXNld2hlZWwtbGluZS1oZWlnaHQiLGsuZ2V0TGluZUhlaWdodCh0aGlzKSksYS5kYXRhKHRoaXMsIm1vdXNld2hlZWwtcGFnZS1oZWlnaHQiLGsuZ2V0UGFnZUhlaWdodCh0aGlzKSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7aWYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKWZvcih2YXIgYz1oLmxlbmd0aDtjOyl0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoaFstLWNdLGIsITEpO2Vsc2UgdGhpcy5vbm1vdXNld2hlZWw9bnVsbDthLnJlbW92ZURhdGEodGhpcywibW91c2V3aGVlbC1saW5lLWhlaWdodCIpLGEucmVtb3ZlRGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0Iil9LGdldExpbmVIZWlnaHQ6ZnVuY3Rpb24oYil7dmFyIGM9YShiKSxkPWNbIm9mZnNldFBhcmVudCJpbiBhLmZuPyJvZmZzZXRQYXJlbnQiOiJwYXJlbnQiXSgpO3JldHVybiBkLmxlbmd0aHx8KGQ9YSgiYm9keSIpKSxwYXJzZUludChkLmNzcygiZm9udFNpemUiKSwxMCl8fHBhcnNlSW50KGMuY3NzKCJmb250U2l6ZSIpLDEwKXx8MTZ9LGdldFBhZ2VIZWlnaHQ6ZnVuY3Rpb24oYil7cmV0dXJuIGEoYikuaGVpZ2h0KCl9LHNldHRpbmdzOnthZGp1c3RPbGREZWx0YXM6ITAsbm9ybWFsaXplT2Zmc2V0OiEwfX07YS5mbi5leHRlbmQoe21vdXNld2hlZWw6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/dGhpcy5iaW5kKCJtb3VzZXdoZWVsIixhKTp0aGlzLnRyaWdnZXIoIm1vdXNld2hlZWwiKX0sdW5tb3VzZXdoZWVsOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnVuYmluZCgibW91c2V3aGVlbCIsYSl9fSl9KTsKLyogPT0gbWFsaWh1IGpxdWVyeSBjdXN0b20gc2Nyb2xsYmFyIHBsdWdpbiA9PSBWZXJzaW9uOiAzLjAuOSwgTGljZW5zZTogTUlUIExpY2Vuc2UgKE1JVCkgKi8KIWZ1bmN0aW9uKGUpeyJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lOmUoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KGZ1bmN0aW9uKGUpeyFmdW5jdGlvbih0KXt2YXIgbz0iZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kLGE9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzLG49Imh0dHBzOiI9PWRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sPyJodHRwczoiOiJodHRwOiIsaT0iY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2pxdWVyeS1tb3VzZXdoZWVsLzMuMS4xMi9qcXVlcnkubW91c2V3aGVlbC5taW4uaHRtbCI7b3x8KGE/cmVxdWlyZSgianF1ZXJ5LW1vdXNld2hlZWwiKShlKTplLmV2ZW50LnNwZWNpYWwubW91c2V3aGVlbHx8ZSgiaGVhZCIpLmFwcGVuZChkZWNvZGVVUkkoIiUzQ3NjcmlwdCBzcmM9IituKyIvLyIraSsiJTNFJTNDL3NjcmlwdCUzRSIpKSksdCgpfShmdW5jdGlvbigpe3ZhciB0LG89Im1DdXN0b21TY3JvbGxiYXIiLGE9Im1DUyIsbj0iLm1DdXN0b21TY3JvbGxiYXIiLGk9e3NldFRvcDowLHNldExlZnQ6MCxheGlzOiJ5IixzY3JvbGxiYXJQb3NpdGlvbjoiaW5zaWRlIixzY3JvbGxJbmVydGlhOjk1MCxhdXRvRHJhZ2dlckxlbmd0aDohMCxhbHdheXNTaG93U2Nyb2xsYmFyOjAsc25hcE9mZnNldDowLG1vdXNlV2hlZWw6e2VuYWJsZTohMCxzY3JvbGxBbW91bnQ6ImF1dG8iLGF4aXM6InkiLGRlbHRhRmFjdG9yOiJhdXRvIixkaXNhYmxlT3ZlcjpbInNlbGVjdCIsIm9wdGlvbiIsImtleWdlbiIsImRhdGFsaXN0IiwidGV4dGFyZWEiXX0sc2Nyb2xsQnV0dG9uczp7c2Nyb2xsVHlwZToic3RlcGxlc3MiLHNjcm9sbEFtb3VudDoiYXV0byJ9LGtleWJvYXJkOntlbmFibGU6ITAsc2Nyb2xsVHlwZToic3RlcGxlc3MiLHNjcm9sbEFtb3VudDoiYXV0byJ9LGNvbnRlbnRUb3VjaFNjcm9sbDoyNSxhZHZhbmNlZDp7YXV0b1Njcm9sbE9uRm9jdXM6ImlucHV0LHRleHRhcmVhLHNlbGVjdCxidXR0b24sZGF0YWxpc3Qsa2V5Z2VuLGFbdGFiaW5kZXhdLGFyZWEsb2JqZWN0LFtjb250ZW50ZWRpdGFibGU9J3RydWUnXSIsdXBkYXRlT25Db250ZW50UmVzaXplOiEwLHVwZGF0ZU9uSW1hZ2VMb2FkOiEwLGF1dG9VcGRhdGVUaW1lb3V0OjYwfSx0aGVtZToibGlnaHQiLGNhbGxiYWNrczp7b25Ub3RhbFNjcm9sbE9mZnNldDowLG9uVG90YWxTY3JvbGxCYWNrT2Zmc2V0OjAsYWx3YXlzVHJpZ2dlck9mZnNldHM6ITB9fSxyPTAsbD17fSxzPXdpbmRvdy5hdHRhY2hFdmVudCYmIXdpbmRvdy5hZGRFdmVudExpc3RlbmVyPzE6MCxjPSExLGQ9WyJtQ1NCX2RyYWdnZXJfb25EcmFnIiwibUNTQl9zY3JvbGxUb29sc19vbkRyYWciLCJtQ1NfaW1nX2xvYWRlZCIsIm1DU19kaXNhYmxlZCIsIm1DU19kZXN0cm95ZWQiLCJtQ1Nfbm9fc2Nyb2xsYmFyIiwibUNTLWF1dG9IaWRlIiwibUNTLWRpci1ydGwiLCJtQ1Nfbm9fc2Nyb2xsYmFyX3kiLCJtQ1Nfbm9fc2Nyb2xsYmFyX3giLCJtQ1NfeV9oaWRkZW4iLCJtQ1NfeF9oaWRkZW4iLCJtQ1NCX2RyYWdnZXJDb250YWluZXIiLCJtQ1NCX2J1dHRvblVwIiwibUNTQl9idXR0b25Eb3duIiwibUNTQl9idXR0b25MZWZ0IiwibUNTQl9idXR0b25SaWdodCJdLHU9e2luaXQ6ZnVuY3Rpb24odCl7dmFyIHQ9ZS5leHRlbmQoITAse30saSx0KSxvPWYuY2FsbCh0aGlzKTtpZih0LmxpdmUpe3ZhciBzPXQubGl2ZVNlbGVjdG9yfHx0aGlzLnNlbGVjdG9yfHxuLGM9ZShzKTtpZigib2ZmIj09PXQubGl2ZSlyZXR1cm4gdm9pZCBtKHMpO2xbc109c2V0VGltZW91dChmdW5jdGlvbigpe2MubUN1c3RvbVNjcm9sbGJhcih0KSwib25jZSI9PT10LmxpdmUmJmMubGVuZ3RoJiZtKHMpfSw1MDApfWVsc2UgbShzKTtyZXR1cm4gdC5zZXRXaWR0aD10LnNldF93aWR0aD90LnNldF93aWR0aDp0LnNldFdpZHRoLHQuc2V0SGVpZ2h0PXQuc2V0X2hlaWdodD90LnNldF9oZWlnaHQ6dC5zZXRIZWlnaHQsdC5heGlzPXQuaG9yaXpvbnRhbFNjcm9sbD8ieCI6cCh0LmF4aXMpLHQuc2Nyb2xsSW5lcnRpYT10LnNjcm9sbEluZXJ0aWE+MCYmdC5zY3JvbGxJbmVydGlhPDE3PzE3OnQuc2Nyb2xsSW5lcnRpYSwib2JqZWN0IiE9dHlwZW9mIHQubW91c2VXaGVlbCYmMT09dC5tb3VzZVdoZWVsJiYodC5tb3VzZVdoZWVsPXtlbmFibGU6ITAsc2Nyb2xsQW1vdW50OiJhdXRvIixheGlzOiJ5IixwcmV2ZW50RGVmYXVsdDohMSxkZWx0YUZhY3RvcjoiYXV0byIsbm9ybWFsaXplRGVsdGE6ITEsaW52ZXJ0OiExfSksdC5tb3VzZVdoZWVsLnNjcm9sbEFtb3VudD10Lm1vdXNlV2hlZWxQaXhlbHM/dC5tb3VzZVdoZWVsUGl4ZWxzOnQubW91c2VXaGVlbC5zY3JvbGxBbW91bnQsdC5tb3VzZVdoZWVsLm5vcm1hbGl6ZURlbHRhPXQuYWR2YW5jZWQubm9ybWFsaXplTW91c2VXaGVlbERlbHRhP3QuYWR2YW5jZWQubm9ybWFsaXplTW91c2VXaGVlbERlbHRhOnQubW91c2VXaGVlbC5ub3JtYWxpemVEZWx0YSx0LnNjcm9sbEJ1dHRvbnMuc2Nyb2xsVHlwZT1nKHQuc2Nyb2xsQnV0dG9ucy5zY3JvbGxUeXBlKSxoKHQpLGUobykuZWFjaChmdW5jdGlvbigpe3ZhciBvPWUodGhpcyk7aWYoIW8uZGF0YShhKSl7by5kYXRhKGEse2lkeDorK3Isb3B0OnQsc2Nyb2xsUmF0aW86e3k6bnVsbCx4Om51bGx9LG92ZXJmbG93ZWQ6bnVsbCxjb250ZW50UmVzZXQ6e3k6bnVsbCx4Om51bGx9LGJpbmRFdmVudHM6ITEsdHdlZW5SdW5uaW5nOiExLHNlcXVlbnRpYWw6e30sbGFuZ0RpcjpvLmNzcygiZGlyZWN0aW9uIiksY2JPZmZzZXRzOm51bGwsdHJpZ2dlcjpudWxsfSk7dmFyIG49by5kYXRhKGEpLGk9bi5vcHQsbD1vLmRhdGEoIm1jcy1heGlzIikscz1vLmRhdGEoIm1jcy1zY3JvbGxiYXItcG9zaXRpb24iKSxjPW8uZGF0YSgibWNzLXRoZW1lIik7bCYmKGkuYXhpcz1sKSxzJiYoaS5zY3JvbGxiYXJQb3NpdGlvbj1zKSxjJiYoaS50aGVtZT1jLGgoaSkpLHYuY2FsbCh0aGlzKSxlKCIjbUNTQl8iK24uaWR4KyJfY29udGFpbmVyIGltZzpub3QoLiIrZFsyXSsiKSIpLmFkZENsYXNzKGRbMl0pLHUudXBkYXRlLmNhbGwobnVsbCxvKX19KX0sdXBkYXRlOmZ1bmN0aW9uKHQsbyl7dmFyIG49dHx8Zi5jYWxsKHRoaXMpO3JldHVybiBlKG4pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO2lmKHQuZGF0YShhKSl7dmFyIG49dC5kYXRhKGEpLGk9bi5vcHQscj1lKCIjbUNTQl8iK24uaWR4KyJfY29udGFpbmVyIiksbD1bZSgiI21DU0JfIituLmlkeCsiX2RyYWdnZXJfdmVydGljYWwiKSxlKCIjbUNTQl8iK24uaWR4KyJfZHJhZ2dlcl9ob3Jpem9udGFsIildO2lmKCFyLmxlbmd0aClyZXR1cm47bi50d2VlblJ1bm5pbmcmJlYodCksdC5oYXNDbGFzcyhkWzNdKSYmdC5yZW1vdmVDbGFzcyhkWzNdKSx0Lmhhc0NsYXNzKGRbNF0pJiZ0LnJlbW92ZUNsYXNzKGRbNF0pLFMuY2FsbCh0aGlzKSxfLmNhbGwodGhpcyksInkiPT09aS5heGlzfHxpLmFkdmFuY2VkLmF1dG9FeHBhbmRIb3Jpem9udGFsU2Nyb2xsfHxyLmNzcygid2lkdGgiLHgoci5jaGlsZHJlbigpKSksbi5vdmVyZmxvd2VkPUIuY2FsbCh0aGlzKSxPLmNhbGwodGhpcyksaS5hdXRvRHJhZ2dlckxlbmd0aCYmYi5jYWxsKHRoaXMpLEMuY2FsbCh0aGlzKSxrLmNhbGwodGhpcyk7dmFyIHM9W01hdGguYWJzKHJbMF0ub2Zmc2V0VG9wKSxNYXRoLmFicyhyWzBdLm9mZnNldExlZnQpXTsieCIhPT1pLmF4aXMmJihuLm92ZXJmbG93ZWRbMF0/bFswXS5oZWlnaHQoKT5sWzBdLnBhcmVudCgpLmhlaWdodCgpP1QuY2FsbCh0aGlzKTooUSh0LHNbMF0udG9TdHJpbmcoKSx7ZGlyOiJ5IixkdXI6MCxvdmVyd3JpdGU6Im5vbmUifSksbi5jb250ZW50UmVzZXQueT1udWxsKTooVC5jYWxsKHRoaXMpLCJ5Ij09PWkuYXhpcz9NLmNhbGwodGhpcyk6Inl4Ij09PWkuYXhpcyYmbi5vdmVyZmxvd2VkWzFdJiZRKHQsc1sxXS50b1N0cmluZygpLHtkaXI6IngiLGR1cjowLG92ZXJ3cml0ZToibm9uZSJ9KSkpLCJ5IiE9PWkuYXhpcyYmKG4ub3ZlcmZsb3dlZFsxXT9sWzFdLndpZHRoKCk+bFsxXS5wYXJlbnQoKS53aWR0aCgpP1QuY2FsbCh0aGlzKTooUSh0LHNbMV0udG9TdHJpbmcoKSx7ZGlyOiJ4IixkdXI6MCxvdmVyd3JpdGU6Im5vbmUifSksbi5jb250ZW50UmVzZXQueD1udWxsKTooVC5jYWxsKHRoaXMpLCJ4Ij09PWkuYXhpcz9NLmNhbGwodGhpcyk6Inl4Ij09PWkuYXhpcyYmbi5vdmVyZmxvd2VkWzBdJiZRKHQsc1swXS50b1N0cmluZygpLHtkaXI6InkiLGR1cjowLG92ZXJ3cml0ZToibm9uZSJ9KSkpLG8mJm4mJigyPT09byYmaS5jYWxsYmFja3Mub25JbWFnZUxvYWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmNhbGxiYWNrcy5vbkltYWdlTG9hZD9pLmNhbGxiYWNrcy5vbkltYWdlTG9hZC5jYWxsKHRoaXMpOjM9PT1vJiZpLmNhbGxiYWNrcy5vblNlbGVjdG9yQ2hhbmdlJiYiZnVuY3Rpb24iPT10eXBlb2YgaS5jYWxsYmFja3Mub25TZWxlY3RvckNoYW5nZT9pLmNhbGxiYWNrcy5vblNlbGVjdG9yQ2hhbmdlLmNhbGwodGhpcyk6aS5jYWxsYmFja3Mub25VcGRhdGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmNhbGxiYWNrcy5vblVwZGF0ZSYmaS5jYWxsYmFja3Mub25VcGRhdGUuY2FsbCh0aGlzKSksWC5jYWxsKHRoaXMpfX0pfSxzY3JvbGxUbzpmdW5jdGlvbih0LG8pe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdCYmbnVsbCE9dCl7dmFyIG49Zi5jYWxsKHRoaXMpO3JldHVybiBlKG4pLmVhY2goZnVuY3Rpb24oKXt2YXIgbj1lKHRoaXMpO2lmKG4uZGF0YShhKSl7dmFyIGk9bi5kYXRhKGEpLHI9aS5vcHQsbD17dHJpZ2dlcjoiZXh0ZXJuYWwiLHNjcm9sbEluZXJ0aWE6ci5zY3JvbGxJbmVydGlhLHNjcm9sbEVhc2luZzoibWNzRWFzZUluT3V0Iixtb3ZlRHJhZ2dlcjohMSx0aW1lb3V0OjYwLGNhbGxiYWNrczohMCxvblN0YXJ0OiEwLG9uVXBkYXRlOiEwLG9uQ29tcGxldGU6ITB9LHM9ZS5leHRlbmQoITAse30sbCxvKSxjPVkuY2FsbCh0aGlzLHQpLGQ9cy5zY3JvbGxJbmVydGlhPjAmJnMuc2Nyb2xsSW5lcnRpYTwxNz8xNzpzLnNjcm9sbEluZXJ0aWE7Y1swXT1qLmNhbGwodGhpcyxjWzBdLCJ5IiksY1sxXT1qLmNhbGwodGhpcyxjWzFdLCJ4Iikscy5tb3ZlRHJhZ2dlciYmKGNbMF0qPWkuc2Nyb2xsUmF0aW8ueSxjWzFdKj1pLnNjcm9sbFJhdGlvLngpLHMuZHVyPWQsc2V0VGltZW91dChmdW5jdGlvbigpe251bGwhPT1jWzBdJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNbMF0mJiJ4IiE9PXIuYXhpcyYmaS5vdmVyZmxvd2VkWzBdJiYocy5kaXI9InkiLHMub3ZlcndyaXRlPSJhbGwiLFEobixjWzBdLnRvU3RyaW5nKCkscykpLG51bGwhPT1jWzFdJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNbMV0mJiJ5IiE9PXIuYXhpcyYmaS5vdmVyZmxvd2VkWzFdJiYocy5kaXI9IngiLHMub3ZlcndyaXRlPSJub25lIixRKG4sY1sxXS50b1N0cmluZygpLHMpKX0scy50aW1lb3V0KX19KX19LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD1mLmNhbGwodGhpcyk7cmV0dXJuIGUodCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5kYXRhKGEpJiZWKHQpfSl9LGRpc2FibGU6ZnVuY3Rpb24odCl7dmFyIG89Zi5jYWxsKHRoaXMpO3JldHVybiBlKG8pLmVhY2goZnVuY3Rpb24oKXt2YXIgbz1lKHRoaXMpO2lmKG8uZGF0YShhKSl7e28uZGF0YShhKX1YLmNhbGwodGhpcywicmVtb3ZlIiksTS5jYWxsKHRoaXMpLHQmJlQuY2FsbCh0aGlzKSxPLmNhbGwodGhpcywhMCksby5hZGRDbGFzcyhkWzNdKX19KX0sZGVzdHJveTpmdW5jdGlvbigpe3ZhciB0PWYuY2FsbCh0aGlzKTtyZXR1cm4gZSh0KS5lYWNoKGZ1bmN0aW9uKCl7dmFyIG49ZSh0aGlzKTtpZihuLmRhdGEoYSkpe3ZhciBpPW4uZGF0YShhKSxyPWkub3B0LGw9ZSgiI21DU0JfIitpLmlkeCkscz1lKCIjbUNTQl8iK2kuaWR4KyJfY29udGFpbmVyIiksYz1lKCIubUNTQl8iK2kuaWR4KyJfc2Nyb2xsYmFyIik7ci5saXZlJiZtKHIubGl2ZVNlbGVjdG9yfHxlKHQpLnNlbGVjdG9yKSxYLmNhbGwodGhpcywicmVtb3ZlIiksTS5jYWxsKHRoaXMpLFQuY2FsbCh0aGlzKSxuLnJlbW92ZURhdGEoYSksWih0aGlzLCJtY3MiKSxjLnJlbW92ZSgpLHMuZmluZCgiaW1nLiIrZFsyXSkucmVtb3ZlQ2xhc3MoZFsyXSksbC5yZXBsYWNlV2l0aChzLmNvbnRlbnRzKCkpLG4ucmVtb3ZlQ2xhc3MobysiIF8iK2ErIl8iK2kuaWR4KyIgIitkWzZdKyIgIitkWzddKyIgIitkWzVdKyIgIitkWzNdKS5hZGRDbGFzcyhkWzRdKX19KX19LGY9ZnVuY3Rpb24oKXtyZXR1cm4ib2JqZWN0IiE9dHlwZW9mIGUodGhpcyl8fGUodGhpcykubGVuZ3RoPDE/bjp0aGlzfSxoPWZ1bmN0aW9uKHQpe3ZhciBvPVsicm91bmRlZCIsInJvdW5kZWQtZGFyayIsInJvdW5kZWQtZG90cyIsInJvdW5kZWQtZG90cy1kYXJrIl0sYT1bInJvdW5kZWQtZG90cyIsInJvdW5kZWQtZG90cy1kYXJrIiwiM2QiLCIzZC1kYXJrIiwiM2QtdGhpY2siLCIzZC10aGljay1kYXJrIiwiaW5zZXQiLCJpbnNldC1kYXJrIiwiaW5zZXQtMiIsImluc2V0LTItZGFyayIsImluc2V0LTMiLCJpbnNldC0zLWRhcmsiXSxuPVsibWluaW1hbCIsIm1pbmltYWwtZGFyayJdLGk9WyJtaW5pbWFsIiwibWluaW1hbC1kYXJrIl0scj1bIm1pbmltYWwiLCJtaW5pbWFsLWRhcmsiXTt0LmF1dG9EcmFnZ2VyTGVuZ3RoPWUuaW5BcnJheSh0LnRoZW1lLG8pPi0xPyExOnQuYXV0b0RyYWdnZXJMZW5ndGgsdC5hdXRvRXhwYW5kU2Nyb2xsYmFyPWUuaW5BcnJheSh0LnRoZW1lLGEpPi0xPyExOnQuYXV0b0V4cGFuZFNjcm9sbGJhcix0LnNjcm9sbEJ1dHRvbnMuZW5hYmxlPWUuaW5BcnJheSh0LnRoZW1lLG4pPi0xPyExOnQuc2Nyb2xsQnV0dG9ucy5lbmFibGUsdC5hdXRvSGlkZVNjcm9sbGJhcj1lLmluQXJyYXkodC50aGVtZSxpKT4tMT8hMDp0LmF1dG9IaWRlU2Nyb2xsYmFyLHQuc2Nyb2xsYmFyUG9zaXRpb249ZS5pbkFycmF5KHQudGhlbWUscik+LTE/Im91dHNpZGUiOnQuc2Nyb2xsYmFyUG9zaXRpb259LG09ZnVuY3Rpb24oZSl7bFtlXSYmKGNsZWFyVGltZW91dChsW2VdKSxaKGwsZSkpfSxwPWZ1bmN0aW9uKGUpe3JldHVybiJ5eCI9PT1lfHwieHkiPT09ZXx8ImF1dG8iPT09ZT8ieXgiOiJ4Ij09PWV8fCJob3Jpem9udGFsIj09PWU/IngiOiJ5In0sZz1mdW5jdGlvbihlKXtyZXR1cm4ic3RlcHBlZCI9PT1lfHwicGl4ZWxzIj09PWV8fCJzdGVwIj09PWV8fCJjbGljayI9PT1lPyJzdGVwcGVkIjoic3RlcGxlc3MifSx2PWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxuPXQuZGF0YShhKSxpPW4ub3B0LHI9aS5hdXRvRXhwYW5kU2Nyb2xsYmFyPyIgIitkWzFdKyJfZXhwYW5kIjoiIixsPVsiPGRpdiBpZD0nbUNTQl8iK24uaWR4KyJfc2Nyb2xsYmFyX3ZlcnRpY2FsJyBjbGFzcz0nbUNTQl9zY3JvbGxUb29scyBtQ1NCXyIrbi5pZHgrIl9zY3JvbGxiYXIgbUNTLSIraS50aGVtZSsiIG1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwiK3IrIic+PGRpdiBjbGFzcz0nIitkWzEyXSsiJz48ZGl2IGlkPSdtQ1NCXyIrbi5pZHgrIl9kcmFnZ2VyX3ZlcnRpY2FsJyBjbGFzcz0nbUNTQl9kcmFnZ2VyJyBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7JyBvbmNvbnRleHRtZW51PSdyZXR1cm4gZmFsc2U7Jz48ZGl2IGNsYXNzPSdtQ1NCX2RyYWdnZXJfYmFyJyAvPjwvZGl2PjxkaXYgY2xhc3M9J21DU0JfZHJhZ2dlclJhaWwnIC8+PC9kaXY+PC9kaXY+IiwiPGRpdiBpZD0nbUNTQl8iK24uaWR4KyJfc2Nyb2xsYmFyX2hvcml6b250YWwnIGNsYXNzPSdtQ1NCX3Njcm9sbFRvb2xzIG1DU0JfIituLmlkeCsiX3Njcm9sbGJhciBtQ1MtIitpLnRoZW1lKyIgbUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIityKyInPjxkaXYgY2xhc3M9JyIrZFsxMl0rIic+PGRpdiBpZD0nbUNTQl8iK24uaWR4KyJfZHJhZ2dlcl9ob3Jpem9udGFsJyBjbGFzcz0nbUNTQl9kcmFnZ2VyJyBzdHlsZT0ncG9zaXRpb246YWJzb2x1dGU7JyBvbmNvbnRleHRtZW51PSdyZXR1cm4gZmFsc2U7Jz48ZGl2IGNsYXNzPSdtQ1NCX2RyYWdnZXJfYmFyJyAvPjwvZGl2PjxkaXYgY2xhc3M9J21DU0JfZHJhZ2dlclJhaWwnIC8+PC9kaXY+PC9kaXY+Il0scz0ieXgiPT09aS5heGlzPyJtQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwiOiJ4Ij09PWkuYXhpcz8ibUNTQl9ob3Jpem9udGFsIjoibUNTQl92ZXJ0aWNhbCIsYz0ieXgiPT09aS5heGlzP2xbMF0rbFsxXToieCI9PT1pLmF4aXM/bFsxXTpsWzBdLHU9Inl4Ij09PWkuYXhpcz8iPGRpdiBpZD0nbUNTQl8iK24uaWR4KyJfY29udGFpbmVyX3dyYXBwZXInIGNsYXNzPSdtQ1NCX2NvbnRhaW5lcl93cmFwcGVyJyAvPiI6IiIsZj1pLmF1dG9IaWRlU2Nyb2xsYmFyPyIgIitkWzZdOiIiLGg9IngiIT09aS5heGlzJiYicnRsIj09PW4ubGFuZ0Rpcj8iICIrZFs3XToiIjtpLnNldFdpZHRoJiZ0LmNzcygid2lkdGgiLGkuc2V0V2lkdGgpLGkuc2V0SGVpZ2h0JiZ0LmNzcygiaGVpZ2h0IixpLnNldEhlaWdodCksaS5zZXRMZWZ0PSJ5IiE9PWkuYXhpcyYmInJ0bCI9PT1uLmxhbmdEaXI/Ijk4OTk5OXB4IjppLnNldExlZnQsdC5hZGRDbGFzcyhvKyIgXyIrYSsiXyIrbi5pZHgrZitoKS53cmFwSW5uZXIoIjxkaXYgaWQ9J21DU0JfIituLmlkeCsiJyBjbGFzcz0nbUN1c3RvbVNjcm9sbEJveCBtQ1MtIitpLnRoZW1lKyIgIitzKyInPjxkaXYgaWQ9J21DU0JfIituLmlkeCsiX2NvbnRhaW5lcicgY2xhc3M9J21DU0JfY29udGFpbmVyJyBzdHlsZT0ncG9zaXRpb246cmVsYXRpdmU7IHRvcDoiK2kuc2V0VG9wKyI7IGxlZnQ6IitpLnNldExlZnQrIjsnIGRpcj0iK24ubGFuZ0RpcisiIC8+PC9kaXY+Iik7dmFyIG09ZSgiI21DU0JfIituLmlkeCkscD1lKCIjbUNTQl8iK24uaWR4KyJfY29udGFpbmVyIik7InkiPT09aS5heGlzfHxpLmFkdmFuY2VkLmF1dG9FeHBhbmRIb3Jpem9udGFsU2Nyb2xsfHxwLmNzcygid2lkdGgiLHgocC5jaGlsZHJlbigpKSksIm91dHNpZGUiPT09aS5zY3JvbGxiYXJQb3NpdGlvbj8oInN0YXRpYyI9PT10LmNzcygicG9zaXRpb24iKSYmdC5jc3MoInBvc2l0aW9uIiwicmVsYXRpdmUiKSx0LmNzcygib3ZlcmZsb3ciLCJ2aXNpYmxlIiksbS5hZGRDbGFzcygibUNTQl9vdXRzaWRlIikuYWZ0ZXIoYykpOihtLmFkZENsYXNzKCJtQ1NCX2luc2lkZSIpLmFwcGVuZChjKSxwLndyYXAodSkpLHcuY2FsbCh0aGlzKTt2YXIgZz1bZSgiI21DU0JfIituLmlkeCsiX2RyYWdnZXJfdmVydGljYWwiKSxlKCIjbUNTQl8iK24uaWR4KyJfZHJhZ2dlcl9ob3Jpem9udGFsIildO2dbMF0uY3NzKCJtaW4taGVpZ2h0IixnWzBdLmhlaWdodCgpKSxnWzFdLmNzcygibWluLXdpZHRoIixnWzFdLndpZHRoKCkpfSx4PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heC5hcHBseShNYXRoLHQubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcykub3V0ZXJXaWR0aCghMCl9KS5nZXQoKSl9LF89ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLG89dC5kYXRhKGEpLG49by5vcHQsaT1lKCIjbUNTQl8iK28uaWR4KyJfY29udGFpbmVyIik7bi5hZHZhbmNlZC5hdXRvRXhwYW5kSG9yaXpvbnRhbFNjcm9sbCYmInkiIT09bi5heGlzJiZpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiYXV0byJ9KS53cmFwKCI8ZGl2IGNsYXNzPSdtQ1NCX2hfd3JhcHBlcicgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHdpZHRoOjk5OTk5OXB4OycgLz4iKS5jc3Moe3dpZHRoOk1hdGguY2VpbChpWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0Ky40KS1NYXRoLmZsb29yKGlbMF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCkscG9zaXRpb246InJlbGF0aXZlIn0pLnVud3JhcCgpfSx3PWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxvPXQuZGF0YShhKSxuPW8ub3B0LGk9ZSgiLm1DU0JfIitvLmlkeCsiX3Njcm9sbGJhcjpmaXJzdCIpLHI9dGUobi5zY3JvbGxCdXR0b25zLnRhYmluZGV4KT8idGFiaW5kZXg9JyIrbi5zY3JvbGxCdXR0b25zLnRhYmluZGV4KyInIjoiIixsPVsiPGEgaHJlZj0nIycgY2xhc3M9JyIrZFsxM10rIicgb25jb250ZXh0bWVudT0ncmV0dXJuIGZhbHNlOycgIityKyIgLz4iLCI8YSBocmVmPScjJyBjbGFzcz0nIitkWzE0XSsiJyBvbmNvbnRleHRtZW51PSdyZXR1cm4gZmFsc2U7JyAiK3IrIiAvPiIsIjxhIGhyZWY9JyMnIGNsYXNzPSciK2RbMTVdKyInIG9uY29udGV4dG1lbnU9J3JldHVybiBmYWxzZTsnICIrcisiIC8+IiwiPGEgaHJlZj0nIycgY2xhc3M9JyIrZFsxNl0rIicgb25jb250ZXh0bWVudT0ncmV0dXJuIGZhbHNlOycgIityKyIgLz4iXSxzPVsieCI9PT1uLmF4aXM/bFsyXTpsWzBdLCJ4Ij09PW4uYXhpcz9sWzNdOmxbMV0sbFsyXSxsWzNdXTtuLnNjcm9sbEJ1dHRvbnMuZW5hYmxlJiZpLnByZXBlbmQoc1swXSkuYXBwZW5kKHNbMV0pLm5leHQoIi5tQ1NCX3Njcm9sbFRvb2xzIikucHJlcGVuZChzWzJdKS5hcHBlbmQoc1szXSl9LFM9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLG89dC5kYXRhKGEpLG49ZSgiI21DU0JfIitvLmlkeCksaT10LmNzcygibWF4LWhlaWdodCIpfHwibm9uZSIscj0tMSE9PWkuaW5kZXhPZigiJSIpLGw9dC5jc3MoImJveC1zaXppbmciKTtpZigibm9uZSIhPT1pKXt2YXIgcz1yP3QucGFyZW50KCkuaGVpZ2h0KCkqcGFyc2VJbnQoaSkvMTAwOnBhcnNlSW50KGkpOyJib3JkZXItYm94Ij09PWwmJihzLT10LmlubmVySGVpZ2h0KCktdC5oZWlnaHQoKSsodC5vdXRlckhlaWdodCgpLXQuaW5uZXJIZWlnaHQoKSkpLG4uY3NzKCJtYXgtaGVpZ2h0IixNYXRoLnJvdW5kKHMpKX19LGI9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLG89dC5kYXRhKGEpLG49ZSgiI21DU0JfIitvLmlkeCksaT1lKCIjbUNTQl8iK28uaWR4KyJfY29udGFpbmVyIikscj1bZSgiI21DU0JfIitvLmlkeCsiX2RyYWdnZXJfdmVydGljYWwiKSxlKCIjbUNTQl8iK28uaWR4KyJfZHJhZ2dlcl9ob3Jpem9udGFsIildLGw9W24uaGVpZ2h0KCkvaS5vdXRlckhlaWdodCghMSksbi53aWR0aCgpL2kub3V0ZXJXaWR0aCghMSldLGM9W3BhcnNlSW50KHJbMF0uY3NzKCJtaW4taGVpZ2h0IikpLE1hdGgucm91bmQobFswXSpyWzBdLnBhcmVudCgpLmhlaWdodCgpKSxwYXJzZUludChyWzFdLmNzcygibWluLXdpZHRoIikpLE1hdGgucm91bmQobFsxXSpyWzFdLnBhcmVudCgpLndpZHRoKCkpXSxkPXMmJmNbMV08Y1swXT9jWzBdOmNbMV0sdT1zJiZjWzNdPGNbMl0/Y1syXTpjWzNdO3JbMF0uY3NzKHtoZWlnaHQ6ZCwibWF4LWhlaWdodCI6clswXS5wYXJlbnQoKS5oZWlnaHQoKS0xMH0pLmZpbmQoIi5tQ1NCX2RyYWdnZXJfYmFyIikuY3NzKHsibGluZS1oZWlnaHQiOmNbMF0rInB4In0pLHJbMV0uY3NzKHt3aWR0aDp1LCJtYXgtd2lkdGgiOnJbMV0ucGFyZW50KCkud2lkdGgoKS0xMH0pfSxDPWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxvPXQuZGF0YShhKSxuPWUoIiNtQ1NCXyIrby5pZHgpLGk9ZSgiI21DU0JfIitvLmlkeCsiX2NvbnRhaW5lciIpLHI9W2UoIiNtQ1NCXyIrby5pZHgrIl9kcmFnZ2VyX3ZlcnRpY2FsIiksZSgiI21DU0JfIitvLmlkeCsiX2RyYWdnZXJfaG9yaXpvbnRhbCIpXSxsPVtpLm91dGVySGVpZ2h0KCExKS1uLmhlaWdodCgpLGkub3V0ZXJXaWR0aCghMSktbi53aWR0aCgpXSxzPVtsWzBdLyhyWzBdLnBhcmVudCgpLmhlaWdodCgpLXJbMF0uaGVpZ2h0KCkpLGxbMV0vKHJbMV0ucGFyZW50KCkud2lkdGgoKS1yWzFdLndpZHRoKCkpXTtvLnNjcm9sbFJhdGlvPXt5OnNbMF0seDpzWzFdfX0seT1mdW5jdGlvbihlLHQsbyl7dmFyIGE9bz9kWzBdKyJfZXhwYW5kZWQiOiIiLG49ZS5jbG9zZXN0KCIubUNTQl9zY3JvbGxUb29scyIpOyJhY3RpdmUiPT09dD8oZS50b2dnbGVDbGFzcyhkWzBdKyIgIithKSxuLnRvZ2dsZUNsYXNzKGRbMV0pLGVbMF0uX2RyYWdnYWJsZT1lWzBdLl9kcmFnZ2FibGU/MDoxKTplWzBdLl9kcmFnZ2FibGV8fCgiaGlkZSI9PT10PyhlLnJlbW92ZUNsYXNzKGRbMF0pLG4ucmVtb3ZlQ2xhc3MoZFsxXSkpOihlLmFkZENsYXNzKGRbMF0pLG4uYWRkQ2xhc3MoZFsxXSkpKX0sQj1mdW5jdGlvbigpe3ZhciB0PWUodGhpcyksbz10LmRhdGEoYSksbj1lKCIjbUNTQl8iK28uaWR4KSxpPWUoIiNtQ1NCXyIrby5pZHgrIl9jb250YWluZXIiKSxyPW51bGw9PW8ub3ZlcmZsb3dlZD9pLmhlaWdodCgpOmkub3V0ZXJIZWlnaHQoITEpLGw9bnVsbD09by5vdmVyZmxvd2VkP2kud2lkdGgoKTppLm91dGVyV2lkdGgoITEpO3JldHVybltyPm4uaGVpZ2h0KCksbD5uLndpZHRoKCldfSxUPWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxvPXQuZGF0YShhKSxuPW8ub3B0LGk9ZSgiI21DU0JfIitvLmlkeCkscj1lKCIjbUNTQl8iK28uaWR4KyJfY29udGFpbmVyIiksbD1bZSgiI21DU0JfIitvLmlkeCsiX2RyYWdnZXJfdmVydGljYWwiKSxlKCIjbUNTQl8iK28uaWR4KyJfZHJhZ2dlcl9ob3Jpem9udGFsIildO2lmKFYodCksKCJ4IiE9PW4uYXhpcyYmIW8ub3ZlcmZsb3dlZFswXXx8InkiPT09bi5heGlzJiZvLm92ZXJmbG93ZWRbMF0pJiYobFswXS5hZGQocikuY3NzKCJ0b3AiLDApLFEodCwiX3Jlc2V0WSIpKSwieSIhPT1uLmF4aXMmJiFvLm92ZXJmbG93ZWRbMV18fCJ4Ij09PW4uYXhpcyYmby5vdmVyZmxvd2VkWzFdKXt2YXIgcz1keD0wOyJydGwiPT09by5sYW5nRGlyJiYocz1pLndpZHRoKCktci5vdXRlcldpZHRoKCExKSxkeD1NYXRoLmFicyhzL28uc2Nyb2xsUmF0aW8ueCkpLHIuY3NzKCJsZWZ0IixzKSxsWzFdLmNzcygibGVmdCIsZHgpLFEodCwiX3Jlc2V0WCIpfX0saz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXtyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmV2ZW50LnNwZWNpYWwubW91c2V3aGVlbD8oY2xlYXJUaW1lb3V0KHIpLFcuY2FsbChvWzBdKSk6dCgpfSwxMDApfXZhciBvPWUodGhpcyksbj1vLmRhdGEoYSksaT1uLm9wdDtpZighbi5iaW5kRXZlbnRzKXtpZihSLmNhbGwodGhpcyksaS5jb250ZW50VG91Y2hTY3JvbGwmJkQuY2FsbCh0aGlzKSxFLmNhbGwodGhpcyksaS5tb3VzZVdoZWVsLmVuYWJsZSl7dmFyIHI7dCgpfVAuY2FsbCh0aGlzKSxILmNhbGwodGhpcyksaS5hZHZhbmNlZC5hdXRvU2Nyb2xsT25Gb2N1cyYmei5jYWxsKHRoaXMpLGkuc2Nyb2xsQnV0dG9ucy5lbmFibGUmJlUuY2FsbCh0aGlzKSxpLmtleWJvYXJkLmVuYWJsZSYmRi5jYWxsKHRoaXMpLG4uYmluZEV2ZW50cz0hMH19LE09ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLG89dC5kYXRhKGEpLG49by5vcHQsaT1hKyJfIitvLmlkeCxyPSIubUNTQl8iK28uaWR4KyJfc2Nyb2xsYmFyIixsPWUoIiNtQ1NCXyIrby5pZHgrIiwjbUNTQl8iK28uaWR4KyJfY29udGFpbmVyLCNtQ1NCXyIrby5pZHgrIl9jb250YWluZXJfd3JhcHBlciwiK3IrIiAuIitkWzEyXSsiLCNtQ1NCXyIrby5pZHgrIl9kcmFnZ2VyX3ZlcnRpY2FsLCNtQ1NCXyIrby5pZHgrIl9kcmFnZ2VyX2hvcml6b250YWwsIityKyI+YSIpLHM9ZSgiI21DU0JfIitvLmlkeCsiX2NvbnRhaW5lciIpO24uYWR2YW5jZWQucmVsZWFzZURyYWdnYWJsZVNlbGVjdG9ycyYmbC5hZGQoZShuLmFkdmFuY2VkLnJlbGVhc2VEcmFnZ2FibGVTZWxlY3RvcnMpKSxvLmJpbmRFdmVudHMmJihlKGRvY3VtZW50KS51bmJpbmQoIi4iK2kpLGwuZWFjaChmdW5jdGlvbigpe2UodGhpcykudW5iaW5kKCIuIitpKX0pLGNsZWFyVGltZW91dCh0WzBdLl9mb2N1c1RpbWVvdXQpLFoodFswXSwiX2ZvY3VzVGltZW91dCIpLGNsZWFyVGltZW91dChvLnNlcXVlbnRpYWwuc3RlcCksWihvLnNlcXVlbnRpYWwsInN0ZXAiKSxjbGVhclRpbWVvdXQoc1swXS5vbkNvbXBsZXRlVGltZW91dCksWihzWzBdLCJvbkNvbXBsZXRlVGltZW91dCIpLG8uYmluZEV2ZW50cz0hMSl9LE89ZnVuY3Rpb24odCl7dmFyIG89ZSh0aGlzKSxuPW8uZGF0YShhKSxpPW4ub3B0LHI9ZSgiI21DU0JfIituLmlkeCsiX2NvbnRhaW5lcl93cmFwcGVyIiksbD1yLmxlbmd0aD9yOmUoIiNtQ1NCXyIrbi5pZHgrIl9jb250YWluZXIiKSxzPVtlKCIjbUNTQl8iK24uaWR4KyJfc2Nyb2xsYmFyX3ZlcnRpY2FsIiksZSgiI21DU0JfIituLmlkeCsiX3Njcm9sbGJhcl9ob3Jpem9udGFsIildLGM9W3NbMF0uZmluZCgiLm1DU0JfZHJhZ2dlciIpLHNbMV0uZmluZCgiLm1DU0JfZHJhZ2dlciIpXTsieCIhPT1pLmF4aXMmJihuLm92ZXJmbG93ZWRbMF0mJiF0PyhzWzBdLmFkZChjWzBdKS5hZGQoc1swXS5jaGlsZHJlbigiYSIpKS5jc3MoImRpc3BsYXkiLCJibG9jayIpLGwucmVtb3ZlQ2xhc3MoZFs4XSsiICIrZFsxMF0pKTooaS5hbHdheXNTaG93U2Nyb2xsYmFyPygyIT09aS5hbHdheXNTaG93U2Nyb2xsYmFyJiZjWzBdLmNzcygiZGlzcGxheSIsIm5vbmUiKSxsLnJlbW92ZUNsYXNzKGRbMTBdKSk6KHNbMF0uY3NzKCJkaXNwbGF5Iiwibm9uZSIpLGwuYWRkQ2xhc3MoZFsxMF0pKSxsLmFkZENsYXNzKGRbOF0pKSksInkiIT09aS5heGlzJiYobi5vdmVyZmxvd2VkWzFdJiYhdD8oc1sxXS5hZGQoY1sxXSkuYWRkKHNbMV0uY2hpbGRyZW4oImEiKSkuY3NzKCJkaXNwbGF5IiwiYmxvY2siKSxsLnJlbW92ZUNsYXNzKGRbOV0rIiAiK2RbMTFdKSk6KGkuYWx3YXlzU2hvd1Njcm9sbGJhcj8oMiE9PWkuYWx3YXlzU2hvd1Njcm9sbGJhciYmY1sxXS5jc3MoImRpc3BsYXkiLCJub25lIiksbC5yZW1vdmVDbGFzcyhkWzExXSkpOihzWzFdLmNzcygiZGlzcGxheSIsIm5vbmUiKSxsLmFkZENsYXNzKGRbMTFdKSksbC5hZGRDbGFzcyhkWzldKSkpLG4ub3ZlcmZsb3dlZFswXXx8bi5vdmVyZmxvd2VkWzFdP28ucmVtb3ZlQ2xhc3MoZFs1XSk6by5hZGRDbGFzcyhkWzVdKX0sST1mdW5jdGlvbihlKXt2YXIgdD1lLnR5cGU7c3dpdGNoKHQpe2Nhc2UicG9pbnRlcmRvd24iOmNhc2UiTVNQb2ludGVyRG93biI6Y2FzZSJwb2ludGVybW92ZSI6Y2FzZSJNU1BvaW50ZXJNb3ZlIjpjYXNlInBvaW50ZXJ1cCI6Y2FzZSJNU1BvaW50ZXJVcCI6cmV0dXJuIGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQhPT1kb2N1bWVudD9bZS5vcmlnaW5hbEV2ZW50LnNjcmVlblksZS5vcmlnaW5hbEV2ZW50LnNjcmVlblgsITFdOltlLm9yaWdpbmFsRXZlbnQucGFnZVksZS5vcmlnaW5hbEV2ZW50LnBhZ2VYLCExXTtjYXNlInRvdWNoc3RhcnQiOmNhc2UidG91Y2htb3ZlIjpjYXNlInRvdWNoZW5kIjp2YXIgbz1lLm9yaWdpbmFsRXZlbnQudG91Y2hlc1swXXx8ZS5vcmlnaW5hbEV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLGE9ZS5vcmlnaW5hbEV2ZW50LnRvdWNoZXMubGVuZ3RofHxlLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoO3JldHVybiBlLnRhcmdldC5vd25lckRvY3VtZW50IT09ZG9jdW1lbnQ/W28uc2NyZWVuWSxvLnNjcmVlblgsYT4xXTpbby5wYWdlWSxvLnBhZ2VYLGE+MV07ZGVmYXVsdDpyZXR1cm5bZS5wYWdlWSxlLnBhZ2VYLCExXX19LFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3ZhciB0PW0uZmluZCgiaWZyYW1lIik7aWYodC5sZW5ndGgpe3ZhciBvPWU/ImF1dG8iOiJub25lIjt0LmNzcygicG9pbnRlci1ldmVudHMiLG8pfX1mdW5jdGlvbiBvKGUsdCxvLGEpe2lmKG1bMF0uaWRsZVRpbWVyPXUuc2Nyb2xsSW5lcnRpYTwyMzM/MjUwOjAsbi5hdHRyKCJpZCIpPT09aFsxXSl2YXIgaT0ieCIscj0oblswXS5vZmZzZXRMZWZ0LXQrYSkqZC5zY3JvbGxSYXRpby54O2Vsc2UgdmFyIGk9InkiLHI9KG5bMF0ub2Zmc2V0VG9wLWUrbykqZC5zY3JvbGxSYXRpby55O1EobCxyLnRvU3RyaW5nKCkse2RpcjppLGRyYWc6ITB9KX12YXIgbixpLHIsbD1lKHRoaXMpLGQ9bC5kYXRhKGEpLHU9ZC5vcHQsZj1hKyJfIitkLmlkeCxoPVsibUNTQl8iK2QuaWR4KyJfZHJhZ2dlcl92ZXJ0aWNhbCIsIm1DU0JfIitkLmlkeCsiX2RyYWdnZXJfaG9yaXpvbnRhbCJdLG09ZSgiI21DU0JfIitkLmlkeCsiX2NvbnRhaW5lciIpLHA9ZSgiIyIraFswXSsiLCMiK2hbMV0pLGc9dS5hZHZhbmNlZC5yZWxlYXNlRHJhZ2dhYmxlU2VsZWN0b3JzP3AuYWRkKGUodS5hZHZhbmNlZC5yZWxlYXNlRHJhZ2dhYmxlU2VsZWN0b3JzKSk6cDtwLmJpbmQoIm1vdXNlZG93bi4iK2YrIiB0b3VjaHN0YXJ0LiIrZisiIHBvaW50ZXJkb3duLiIrZisiIE1TUG9pbnRlckRvd24uIitmLGZ1bmN0aW9uKG8pe2lmKG8uc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksby5wcmV2ZW50RGVmYXVsdCgpLCQobykpe2M9ITAscyYmKGRvY3VtZW50Lm9uc2VsZWN0c3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0pLHQoITEpLFYobCksbj1lKHRoaXMpO3ZhciBhPW4ub2Zmc2V0KCksZD1JKG8pWzBdLWEudG9wLGY9SShvKVsxXS1hLmxlZnQsaD1uLmhlaWdodCgpK2EudG9wLG09bi53aWR0aCgpK2EubGVmdDtoPmQmJmQ+MCYmbT5mJiZmPjAmJihpPWQscj1mKSx5KG4sImFjdGl2ZSIsdS5hdXRvRXhwYW5kU2Nyb2xsYmFyKX19KS5iaW5kKCJ0b3VjaG1vdmUuIitmLGZ1bmN0aW9uKGUpe2Uuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PW4ub2Zmc2V0KCksYT1JKGUpWzBdLXQudG9wLGw9SShlKVsxXS10LmxlZnQ7byhpLHIsYSxsKX0pLGUoZG9jdW1lbnQpLmJpbmQoIm1vdXNlbW92ZS4iK2YrIiBwb2ludGVybW92ZS4iK2YrIiBNU1BvaW50ZXJNb3ZlLiIrZixmdW5jdGlvbihlKXtpZihuKXt2YXIgdD1uLm9mZnNldCgpLGE9SShlKVswXS10LnRvcCxsPUkoZSlbMV0tdC5sZWZ0O2lmKGk9PT1hKXJldHVybjtvKGkscixhLGwpfX0pLmFkZChnKS5iaW5kKCJtb3VzZXVwLiIrZisiIHRvdWNoZW5kLiIrZisiIHBvaW50ZXJ1cC4iK2YrIiBNU1BvaW50ZXJVcC4iK2YsZnVuY3Rpb24oZSl7biYmKHkobiwiYWN0aXZlIix1LmF1dG9FeHBhbmRTY3JvbGxiYXIpLG49bnVsbCksYz0hMSxzJiYoZG9jdW1lbnQub25zZWxlY3RzdGFydD1udWxsKSx0KCEwKX0pfSxEPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbyhlKXtpZighZWUoZSl8fGN8fEkoZSlbMl0pcmV0dXJuIHZvaWQodD0wKTt0PTEsUz0wLGI9MCxDLnJlbW92ZUNsYXNzKCJtQ1NfdG91Y2hfYWN0aW9uIik7dmFyIG89TS5vZmZzZXQoKTtkPUkoZSlbMF0tby50b3AsdT1JKGUpWzFdLW8ubGVmdCxBPVtJKGUpWzBdLEkoZSlbMV1dfWZ1bmN0aW9uIG4oZSl7aWYoZWUoZSkmJiFjJiYhSShlKVsyXSYmKGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksIWJ8fFMpKXtwPUooKTt2YXIgdD1rLm9mZnNldCgpLG89SShlKVswXS10LnRvcCxhPUkoZSlbMV0tdC5sZWZ0LG49Im1jc0xpbmVhck91dCI7aWYoUi5wdXNoKG8pLEQucHVzaChhKSxBWzJdPU1hdGguYWJzKEkoZSlbMF0tQVswXSksQVszXT1NYXRoLmFicyhJKGUpWzFdLUFbMV0pLHkub3ZlcmZsb3dlZFswXSl2YXIgaT1PWzBdLnBhcmVudCgpLmhlaWdodCgpLU9bMF0uaGVpZ2h0KCkscj1kLW8+MCYmby1kPi0oaSp5LnNjcm9sbFJhdGlvLnkpJiYoMipBWzNdPEFbMl18fCJ5eCI9PT1CLmF4aXMpO2lmKHkub3ZlcmZsb3dlZFsxXSl2YXIgbD1PWzFdLnBhcmVudCgpLndpZHRoKCktT1sxXS53aWR0aCgpLGY9dS1hPjAmJmEtdT4tKGwqeS5zY3JvbGxSYXRpby54KSYmKDIqQVsyXTxBWzNdfHwieXgiPT09Qi5heGlzKTtyfHxmPyhlLnByZXZlbnREZWZhdWx0KCksUz0xKTooYj0xLEMuYWRkQ2xhc3MoIm1DU190b3VjaF9hY3Rpb24iKSksXz0ieXgiPT09Qi5heGlzP1tkLW8sdS1hXToieCI9PT1CLmF4aXM/W251bGwsdS1hXTpbZC1vLG51bGxdLE1bMF0uaWRsZVRpbWVyPTI1MCx5Lm92ZXJmbG93ZWRbMF0mJnMoX1swXSxFLG4sInkiLCJhbGwiLCEwKSx5Lm92ZXJmbG93ZWRbMV0mJnMoX1sxXSxFLG4sIngiLFcsITApfX1mdW5jdGlvbiBpKGUpe2lmKCFlZShlKXx8Y3x8SShlKVsyXSlyZXR1cm4gdm9pZCh0PTApO3Q9MSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLFYoQyksbT1KKCk7dmFyIG89ay5vZmZzZXQoKTtmPUkoZSlbMF0tby50b3AsaD1JKGUpWzFdLW8ubGVmdCxSPVtdLEQ9W119ZnVuY3Rpb24gcihlKXtpZihlZShlKSYmIWMmJiFJKGUpWzJdKXtlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLFM9MCxiPTAsZz1KKCk7dmFyIHQ9ay5vZmZzZXQoKSxvPUkoZSlbMF0tdC50b3AsYT1JKGUpWzFdLXQubGVmdDtpZighKGctcD4zMCkpe3g9MWUzLyhnLW0pO3ZhciBuPSJtY3NFYXNlT3V0IixpPTIuNT54LHI9aT9bUltSLmxlbmd0aC0yXSxEW0QubGVuZ3RoLTJdXTpbMCwwXTt2PWk/W28tclswXSxhLXJbMV1dOltvLWYsYS1oXTt2YXIgZD1bTWF0aC5hYnModlswXSksTWF0aC5hYnModlsxXSldO3g9aT9bTWF0aC5hYnModlswXS80KSxNYXRoLmFicyh2WzFdLzQpXTpbeCx4XTt2YXIgdT1bTWF0aC5hYnMoTVswXS5vZmZzZXRUb3ApLXZbMF0qbChkWzBdL3hbMF0seFswXSksTWF0aC5hYnMoTVswXS5vZmZzZXRMZWZ0KS12WzFdKmwoZFsxXS94WzFdLHhbMV0pXTtfPSJ5eCI9PT1CLmF4aXM/W3VbMF0sdVsxXV06IngiPT09Qi5heGlzP1tudWxsLHVbMV1dOlt1WzBdLG51bGxdLHc9WzQqZFswXStCLnNjcm9sbEluZXJ0aWEsNCpkWzFdK0Iuc2Nyb2xsSW5lcnRpYV07dmFyIEM9cGFyc2VJbnQoQi5jb250ZW50VG91Y2hTY3JvbGwpfHwwO19bMF09ZFswXT5DP19bMF06MCxfWzFdPWRbMV0+Qz9fWzFdOjAseS5vdmVyZmxvd2VkWzBdJiZzKF9bMF0sd1swXSxuLCJ5IixXLCExKSx5Lm92ZXJmbG93ZWRbMV0mJnMoX1sxXSx3WzFdLG4sIngiLFcsITEpfX19ZnVuY3Rpb24gbChlLHQpe3ZhciBvPVsxLjUqdCwyKnQsdC8xLjUsdC8yXTtyZXR1cm4gZT45MD90PjQ/b1swXTpvWzNdOmU+NjA/dD4zP29bM106b1syXTplPjMwP3Q+OD9vWzFdOnQ+Nj9vWzBdOnQ+ND90Om9bMl06dD44P3Q6b1szXX1mdW5jdGlvbiBzKGUsdCxvLGEsbixpKXtlJiZRKEMsZS50b1N0cmluZygpLHtkdXI6dCxzY3JvbGxFYXNpbmc6byxkaXI6YSxvdmVyd3JpdGU6bixkcmFnOml9KX12YXIgZCx1LGYsaCxtLHAsZyx2LHgsXyx3LFMsYixDPWUodGhpcykseT1DLmRhdGEoYSksQj15Lm9wdCxUPWErIl8iK3kuaWR4LGs9ZSgiI21DU0JfIit5LmlkeCksTT1lKCIjbUNTQl8iK3kuaWR4KyJfY29udGFpbmVyIiksTz1bZSgiI21DU0JfIit5LmlkeCsiX2RyYWdnZXJfdmVydGljYWwiKSxlKCIjbUNTQl8iK3kuaWR4KyJfZHJhZ2dlcl9ob3Jpem9udGFsIildLFI9W10sRD1bXSxFPTAsVz0ieXgiPT09Qi5heGlzPyJub25lIjoiYWxsIixBPVtdLFA9TS5maW5kKCJpZnJhbWUiKSx6PVsidG91Y2hzdGFydC4iK1QrIiBwb2ludGVyZG93bi4iK1QrIiBNU1BvaW50ZXJEb3duLiIrVCwidG91Y2htb3ZlLiIrVCsiIHBvaW50ZXJtb3ZlLiIrVCsiIE1TUG9pbnRlck1vdmUuIitULCJ0b3VjaGVuZC4iK1QrIiBwb2ludGVydXAuIitUKyIgTVNQb2ludGVyVXAuIitUXTtNLmJpbmQoelswXSxmdW5jdGlvbihlKXtvKGUpfSkuYmluZCh6WzFdLGZ1bmN0aW9uKGUpe24oZSl9KSxrLmJpbmQoelswXSxmdW5jdGlvbihlKXtpKGUpfSkuYmluZCh6WzJdLGZ1bmN0aW9uKGUpe3IoZSl9KSxQLmxlbmd0aCYmUC5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5sb2FkKGZ1bmN0aW9uKCl7TCh0aGlzKSYmZSh0aGlzLmNvbnRlbnREb2N1bWVudHx8dGhpcy5jb250ZW50V2luZG93LmRvY3VtZW50KS5iaW5kKHpbMF0sZnVuY3Rpb24oZSl7byhlKSxpKGUpfSkuYmluZCh6WzFdLGZ1bmN0aW9uKGUpe24oZSl9KS5iaW5kKHpbMl0sZnVuY3Rpb24oZSl7cihlKX0pfSl9KX0sRT1mdW5jdGlvbigpe2Z1bmN0aW9uIG8oKXtyZXR1cm4gd2luZG93LmdldFNlbGVjdGlvbj93aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTpkb2N1bWVudC5zZWxlY3Rpb24mJiJDb250cm9sIiE9ZG9jdW1lbnQuc2VsZWN0aW9uLnR5cGU/ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCkudGV4dDowfWZ1bmN0aW9uIG4oZSx0LG8pe2QudHlwZT1vJiZpPyJzdGVwcGVkIjoic3RlcGxlc3MiLGQuc2Nyb2xsQW1vdW50PTEwLHEocixlLHQsIm1jc0xpbmVhck91dCIsbz82MDpudWxsKX12YXIgaSxyPWUodGhpcyksbD1yLmRhdGEoYSkscz1sLm9wdCxkPWwuc2VxdWVudGlhbCx1PWErIl8iK2wuaWR4LGY9ZSgiI21DU0JfIitsLmlkeCsiX2NvbnRhaW5lciIpLGg9Zi5wYXJlbnQoKTtmLmJpbmQoIm1vdXNlZG93bi4iK3UsZnVuY3Rpb24oZSl7dHx8aXx8KGk9MSxjPSEwKX0pLmFkZChkb2N1bWVudCkuYmluZCgibW91c2Vtb3ZlLiIrdSxmdW5jdGlvbihlKXtpZighdCYmaSYmbygpKXt2YXIgYT1mLm9mZnNldCgpLHI9SShlKVswXS1hLnRvcCtmWzBdLm9mZnNldFRvcCxjPUkoZSlbMV0tYS5sZWZ0K2ZbMF0ub2Zmc2V0TGVmdDtyPjAmJnI8aC5oZWlnaHQoKSYmYz4wJiZjPGgud2lkdGgoKT9kLnN0ZXAmJm4oIm9mZiIsbnVsbCwic3RlcHBlZCIpOigieCIhPT1zLmF4aXMmJmwub3ZlcmZsb3dlZFswXSYmKDA+cj9uKCJvbiIsMzgpOnI+aC5oZWlnaHQoKSYmbigib24iLDQwKSksInkiIT09cy5heGlzJiZsLm92ZXJmbG93ZWRbMV0mJigwPmM/bigib24iLDM3KTpjPmgud2lkdGgoKSYmbigib24iLDM5KSkpfX0pLmJpbmQoIm1vdXNldXAuIit1LGZ1bmN0aW9uKGUpe3R8fChpJiYoaT0wLG4oIm9mZiIsbnVsbCkpLGM9ITEpfSl9LFc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsYSl7aWYoVihvKSwhQShvLHQudGFyZ2V0KSl7dmFyIHI9ImF1dG8iIT09aS5tb3VzZVdoZWVsLmRlbHRhRmFjdG9yP3BhcnNlSW50KGkubW91c2VXaGVlbC5kZWx0YUZhY3Rvcik6cyYmdC5kZWx0YUZhY3RvcjwxMDA/MTAwOnQuZGVsdGFGYWN0b3J8fDEwMDtpZigieCI9PT1pLmF4aXN8fCJ4Ij09PWkubW91c2VXaGVlbC5heGlzKXZhciBkPSJ4Iix1PVtNYXRoLnJvdW5kKHIqbi5zY3JvbGxSYXRpby54KSxwYXJzZUludChpLm1vdXNlV2hlZWwuc2Nyb2xsQW1vdW50KV0sZj0iYXV0byIhPT1pLm1vdXNlV2hlZWwuc2Nyb2xsQW1vdW50P3VbMV06dVswXT49bC53aWR0aCgpPy45Kmwud2lkdGgoKTp1WzBdLGg9TWF0aC5hYnMoZSgiI21DU0JfIituLmlkeCsiX2NvbnRhaW5lciIpWzBdLm9mZnNldExlZnQpLG09Y1sxXVswXS5vZmZzZXRMZWZ0LHA9Y1sxXS5wYXJlbnQoKS53aWR0aCgpLWNbMV0ud2lkdGgoKSxnPXQuZGVsdGFYfHx0LmRlbHRhWXx8YTtlbHNlIHZhciBkPSJ5Iix1PVtNYXRoLnJvdW5kKHIqbi5zY3JvbGxSYXRpby55KSxwYXJzZUludChpLm1vdXNlV2hlZWwuc2Nyb2xsQW1vdW50KV0sZj0iYXV0byIhPT1pLm1vdXNlV2hlZWwuc2Nyb2xsQW1vdW50P3VbMV06dVswXT49bC5oZWlnaHQoKT8uOSpsLmhlaWdodCgpOnVbMF0saD1NYXRoLmFicyhlKCIjbUNTQl8iK24uaWR4KyJfY29udGFpbmVyIilbMF0ub2Zmc2V0VG9wKSxtPWNbMF1bMF0ub2Zmc2V0VG9wLHA9Y1swXS5wYXJlbnQoKS5oZWlnaHQoKS1jWzBdLmhlaWdodCgpLGc9dC5kZWx0YVl8fGE7InkiPT09ZCYmIW4ub3ZlcmZsb3dlZFswXXx8IngiPT09ZCYmIW4ub3ZlcmZsb3dlZFsxXXx8KChpLm1vdXNlV2hlZWwuaW52ZXJ0fHx0LndlYmtpdERpcmVjdGlvbkludmVydGVkRnJvbURldmljZSkmJihnPS1nKSxpLm1vdXNlV2hlZWwubm9ybWFsaXplRGVsdGEmJihnPTA+Zz8tMToxKSwoZz4wJiYwIT09bXx8MD5nJiZtIT09cHx8aS5tb3VzZVdoZWVsLnByZXZlbnREZWZhdWx0KSYmKHQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdC5wcmV2ZW50RGVmYXVsdCgpKSxRKG8sKGgtZypmKS50b1N0cmluZygpLHtkaXI6ZH0pKX19aWYoZSh0aGlzKS5kYXRhKGEpKXt2YXIgbz1lKHRoaXMpLG49by5kYXRhKGEpLGk9bi5vcHQscj1hKyJfIituLmlkeCxsPWUoIiNtQ1NCXyIrbi5pZHgpLGM9W2UoIiNtQ1NCXyIrbi5pZHgrIl9kcmFnZ2VyX3ZlcnRpY2FsIiksZSgiI21DU0JfIituLmlkeCsiX2RyYWdnZXJfaG9yaXpvbnRhbCIpXSxkPWUoIiNtQ1NCXyIrbi5pZHgrIl9jb250YWluZXIiKS5maW5kKCJpZnJhbWUiKTtkLmxlbmd0aCYmZC5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5sb2FkKGZ1bmN0aW9uKCl7TCh0aGlzKSYmZSh0aGlzLmNvbnRlbnREb2N1bWVudHx8dGhpcy5jb250ZW50V2luZG93LmRvY3VtZW50KS5iaW5kKCJtb3VzZXdoZWVsLiIrcixmdW5jdGlvbihlLG8pe3QoZSxvKX0pfSl9KSxsLmJpbmQoIm1vdXNld2hlZWwuIityLGZ1bmN0aW9uKGUsbyl7dChlLG8pfSl9fSxMPWZ1bmN0aW9uKGUpe3ZhciB0PW51bGw7dHJ5e3ZhciBvPWUuY29udGVudERvY3VtZW50fHxlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7dD1vLmJvZHkuaW5uZXJIVE1MfWNhdGNoKGEpe31yZXR1cm4gbnVsbCE9PXR9LEE9ZnVuY3Rpb24odCxvKXt2YXIgbj1vLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksaT10LmRhdGEoYSkub3B0Lm1vdXNlV2hlZWwuZGlzYWJsZU92ZXIscj1bInNlbGVjdCIsInRleHRhcmVhIl07cmV0dXJuIGUuaW5BcnJheShuLGkpPi0xJiYhKGUuaW5BcnJheShuLHIpPi0xJiYhZShvKS5pcygiOmZvY3VzIikpfSxQPWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxvPXQuZGF0YShhKSxuPWErIl8iK28uaWR4LGk9ZSgiI21DU0JfIitvLmlkeCsiX2NvbnRhaW5lciIpLHI9aS5wYXJlbnQoKSxsPWUoIi5tQ1NCXyIrby5pZHgrIl9zY3JvbGxiYXIgLiIrZFsxMl0pO2wuYmluZCgidG91Y2hzdGFydC4iK24rIiBwb2ludGVyZG93bi4iK24rIiBNU1BvaW50ZXJEb3duLiIrbixmdW5jdGlvbihlKXtjPSEwfSkuYmluZCgidG91Y2hlbmQuIituKyIgcG9pbnRlcnVwLiIrbisiIE1TUG9pbnRlclVwLiIrbixmdW5jdGlvbihlKXtjPSExfSkuYmluZCgiY2xpY2suIituLGZ1bmN0aW9uKGEpe2lmKGUoYS50YXJnZXQpLmhhc0NsYXNzKGRbMTJdKXx8ZShhLnRhcmdldCkuaGFzQ2xhc3MoIm1DU0JfZHJhZ2dlclJhaWwiKSl7Vih0KTt2YXIgbj1lKHRoaXMpLGw9bi5maW5kKCIubUNTQl9kcmFnZ2VyIik7aWYobi5wYXJlbnQoIi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwiKS5sZW5ndGg+MCl7aWYoIW8ub3ZlcmZsb3dlZFsxXSlyZXR1cm47dmFyIHM9IngiLGM9YS5wYWdlWD5sLm9mZnNldCgpLmxlZnQ/LTE6MSx1PU1hdGguYWJzKGlbMF0ub2Zmc2V0TGVmdCktLjkqYypyLndpZHRoKCl9ZWxzZXtpZighby5vdmVyZmxvd2VkWzBdKXJldHVybjt2YXIgcz0ieSIsYz1hLnBhZ2VZPmwub2Zmc2V0KCkudG9wPy0xOjEsdT1NYXRoLmFicyhpWzBdLm9mZnNldFRvcCktLjkqYypyLmhlaWdodCgpfVEodCx1LnRvU3RyaW5nKCkse2RpcjpzLHNjcm9sbEVhc2luZzoibWNzRWFzZUluT3V0In0pfX0pfSx6PWZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxvPXQuZGF0YShhKSxuPW8ub3B0LGk9YSsiXyIrby5pZHgscj1lKCIjbUNTQl8iK28uaWR4KyJfY29udGFpbmVyIiksbD1yLnBhcmVudCgpO3IuYmluZCgiZm9jdXNpbi4iK2ksZnVuY3Rpb24obyl7dmFyIGE9ZShkb2N1bWVudC5hY3RpdmVFbGVtZW50KSxpPXIuZmluZCgiLm1DdXN0b21TY3JvbGxCb3giKS5sZW5ndGgscz0wO2EuaXMobi5hZHZhbmNlZC5hdXRvU2Nyb2xsT25Gb2N1cykmJihWKHQpLGNsZWFyVGltZW91dCh0WzBdLl9mb2N1c1RpbWVvdXQpLHRbMF0uX2ZvY3VzVGltZXI9aT8ocysxNykqaTowLHRbMF0uX2ZvY3VzVGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGU9W29lKGEpWzBdLG9lKGEpWzFdXSxvPVtyWzBdLm9mZnNldFRvcCxyWzBdLm9mZnNldExlZnRdLGk9W29bMF0rZVswXT49MCYmb1swXStlWzBdPGwuaGVpZ2h0KCktYS5vdXRlckhlaWdodCghMSksb1sxXStlWzFdPj0wJiZvWzBdK2VbMV08bC53aWR0aCgpLWEub3V0ZXJXaWR0aCghMSldLGM9Inl4IiE9PW4uYXhpc3x8aVswXXx8aVsxXT8iYWxsIjoibm9uZSI7IngiPT09bi5heGlzfHxpWzBdfHxRKHQsZVswXS50b1N0cmluZygpLHtkaXI6InkiLHNjcm9sbEVhc2luZzoibWNzRWFzZUluT3V0IixvdmVyd3JpdGU6YyxkdXI6c30pLCJ5Ij09PW4uYXhpc3x8aVsxXXx8USh0LGVbMV0udG9TdHJpbmcoKSx7ZGlyOiJ4IixzY3JvbGxFYXNpbmc6Im1jc0Vhc2VJbk91dCIsb3ZlcndyaXRlOmMsZHVyOnN9KX0sdFswXS5fZm9jdXNUaW1lcikpfSl9LEg9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLG89dC5kYXRhKGEpLG49YSsiXyIrby5pZHgsaT1lKCIjbUNTQl8iK28uaWR4KyJfY29udGFpbmVyIikucGFyZW50KCk7aS5iaW5kKCJzY3JvbGwuIituLGZ1bmN0aW9uKHQpeygwIT09aS5zY3JvbGxUb3AoKXx8MCE9PWkuc2Nyb2xsTGVmdCgpKSYmZSgiLm1DU0JfIitvLmlkeCsiX3Njcm9sbGJhciIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpfSl9LFU9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLG89dC5kYXRhKGEpLG49by5vcHQsaT1vLnNlcXVlbnRpYWwscj1hKyJfIitvLmlkeCxsPSIubUNTQl8iK28uaWR4KyJfc2Nyb2xsYmFyIixzPWUobCsiPmEiKTtzLmJpbmQoIm1vdXNlZG93bi4iK3IrIiB0b3VjaHN0YXJ0LiIrcisiIHBvaW50ZXJkb3duLiIrcisiIE1TUG9pbnRlckRvd24uIityKyIgbW91c2V1cC4iK3IrIiB0b3VjaGVuZC4iK3IrIiBwb2ludGVydXAuIityKyIgTVNQb2ludGVyVXAuIityKyIgbW91c2VvdXQuIityKyIgcG9pbnRlcm91dC4iK3IrIiBNU1BvaW50ZXJPdXQuIityKyIgY2xpY2suIityLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIHIoZSxvKXtpLnNjcm9sbEFtb3VudD1uLnNuYXBBbW91bnR8fG4uc2Nyb2xsQnV0dG9ucy5zY3JvbGxBbW91bnQscSh0LGUsbyl9aWYoYS5wcmV2ZW50RGVmYXVsdCgpLCQoYSkpe3ZhciBsPWUodGhpcykuYXR0cigiY2xhc3MiKTtzd2l0Y2goaS50eXBlPW4uc2Nyb2xsQnV0dG9ucy5zY3JvbGxUeXBlLGEudHlwZSl7Y2FzZSJtb3VzZWRvd24iOmNhc2UidG91Y2hzdGFydCI6Y2FzZSJwb2ludGVyZG93biI6Y2FzZSJNU1BvaW50ZXJEb3duIjppZigic3RlcHBlZCI9PT1pLnR5cGUpcmV0dXJuO2M9ITAsby50d2VlblJ1bm5pbmc9ITEscigib24iLGwpO2JyZWFrO2Nhc2UibW91c2V1cCI6Y2FzZSJ0b3VjaGVuZCI6Y2FzZSJwb2ludGVydXAiOmNhc2UiTVNQb2ludGVyVXAiOmNhc2UibW91c2VvdXQiOmNhc2UicG9pbnRlcm91dCI6Y2FzZSJNU1BvaW50ZXJPdXQiOmlmKCJzdGVwcGVkIj09PWkudHlwZSlyZXR1cm47Yz0hMSxpLmRpciYmcigib2ZmIixsKTticmVhaztjYXNlImNsaWNrIjppZigic3RlcHBlZCIhPT1pLnR5cGV8fG8udHdlZW5SdW5uaW5nKXJldHVybjtyKCJvbiIsbCl9fX0pfSxGPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXtmdW5jdGlvbiBhKGUsdCl7ci50eXBlPWkua2V5Ym9hcmQuc2Nyb2xsVHlwZSxyLnNjcm9sbEFtb3VudD1pLnNuYXBBbW91bnR8fGkua2V5Ym9hcmQuc2Nyb2xsQW1vdW50LCJzdGVwcGVkIj09PXIudHlwZSYmbi50d2VlblJ1bm5pbmd8fHEobyxlLHQpfXN3aXRjaCh0LnR5cGUpe2Nhc2UiYmx1ciI6bi50d2VlblJ1bm5pbmcmJnIuZGlyJiZhKCJvZmYiLG51bGwpO2JyZWFrO2Nhc2Uia2V5ZG93biI6Y2FzZSJrZXl1cCI6dmFyIGw9dC5rZXlDb2RlP3Qua2V5Q29kZTp0LndoaWNoLHM9Im9uIjtpZigieCIhPT1pLmF4aXMmJigzOD09PWx8fDQwPT09bCl8fCJ5IiE9PWkuYXhpcyYmKDM3PT09bHx8Mzk9PT1sKSl7aWYoKDM4PT09bHx8NDA9PT1sKSYmIW4ub3ZlcmZsb3dlZFswXXx8KDM3PT09bHx8Mzk9PT1sKSYmIW4ub3ZlcmZsb3dlZFsxXSlyZXR1cm47ImtleXVwIj09PXQudHlwZSYmKHM9Im9mZiIpLGUoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuaXModSl8fCh0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxhKHMsbCkpfWVsc2UgaWYoMzM9PT1sfHwzND09PWwpe2lmKChuLm92ZXJmbG93ZWRbMF18fG4ub3ZlcmZsb3dlZFsxXSkmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSksImtleXVwIj09PXQudHlwZSl7VihvKTt2YXIgZj0zND09PWw/LTE6MTtpZigieCI9PT1pLmF4aXN8fCJ5eCI9PT1pLmF4aXMmJm4ub3ZlcmZsb3dlZFsxXSYmIW4ub3ZlcmZsb3dlZFswXSl2YXIgaD0ieCIsbT1NYXRoLmFicyhjWzBdLm9mZnNldExlZnQpLS45KmYqZC53aWR0aCgpO2Vsc2UgdmFyIGg9InkiLG09TWF0aC5hYnMoY1swXS5vZmZzZXRUb3ApLS45KmYqZC5oZWlnaHQoKTtRKG8sbS50b1N0cmluZygpLHtkaXI6aCxzY3JvbGxFYXNpbmc6Im1jc0Vhc2VJbk91dCJ9KX19ZWxzZSBpZigoMzU9PT1sfHwzNj09PWwpJiYhZShkb2N1bWVudC5hY3RpdmVFbGVtZW50KS5pcyh1KSYmKChuLm92ZXJmbG93ZWRbMF18fG4ub3ZlcmZsb3dlZFsxXSkmJih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSksImtleXVwIj09PXQudHlwZSkpe2lmKCJ4Ij09PWkuYXhpc3x8Inl4Ij09PWkuYXhpcyYmbi5vdmVyZmxvd2VkWzFdJiYhbi5vdmVyZmxvd2VkWzBdKXZhciBoPSJ4IixtPTM1PT09bD9NYXRoLmFicyhkLndpZHRoKCktYy5vdXRlcldpZHRoKCExKSk6MDtlbHNlIHZhciBoPSJ5IixtPTM1PT09bD9NYXRoLmFicyhkLmhlaWdodCgpLWMub3V0ZXJIZWlnaHQoITEpKTowO1EobyxtLnRvU3RyaW5nKCkse2RpcjpoLHNjcm9sbEVhc2luZzoibWNzRWFzZUluT3V0In0pfX19dmFyIG89ZSh0aGlzKSxuPW8uZGF0YShhKSxpPW4ub3B0LHI9bi5zZXF1ZW50aWFsLGw9YSsiXyIrbi5pZHgscz1lKCIjbUNTQl8iK24uaWR4KSxjPWUoIiNtQ1NCXyIrbi5pZHgrIl9jb250YWluZXIiKSxkPWMucGFyZW50KCksdT0iaW5wdXQsdGV4dGFyZWEsc2VsZWN0LGRhdGFsaXN0LGtleWdlbixbY29udGVudGVkaXRhYmxlPSd0cnVlJ10iLGY9Yy5maW5kKCJpZnJhbWUiKSxoPVsiYmx1ci4iK2wrIiBrZXlkb3duLiIrbCsiIGtleXVwLiIrbF07Zi5sZW5ndGgmJmYuZWFjaChmdW5jdGlvbigpe2UodGhpcykubG9hZChmdW5jdGlvbigpe0wodGhpcykmJmUodGhpcy5jb250ZW50RG9jdW1lbnR8fHRoaXMuY29udGVudFdpbmRvdy5kb2N1bWVudCkuYmluZChoWzBdLGZ1bmN0aW9uKGUpe3QoZSl9KX0pfSkscy5hdHRyKCJ0YWJpbmRleCIsIjAiKS5iaW5kKGhbMF0sZnVuY3Rpb24oZSl7dChlKX0pfSxxPWZ1bmN0aW9uKHQsbyxuLGkscil7ZnVuY3Rpb24gbChlKXt2YXIgbz0ic3RlcHBlZCIhPT1mLnR5cGUsYT1yP3I6ZT9vP3AvMS41Omc6MWUzLzYwLG49ZT9vPzcuNTo0MDoyLjUscz1bTWF0aC5hYnMoaFswXS5vZmZzZXRUb3ApLE1hdGguYWJzKGhbMF0ub2Zmc2V0TGVmdCldLGQ9W2Muc2Nyb2xsUmF0aW8ueT4xMD8xMDpjLnNjcm9sbFJhdGlvLnksYy5zY3JvbGxSYXRpby54PjEwPzEwOmMuc2Nyb2xsUmF0aW8ueF0sdT0ieCI9PT1mLmRpclswXT9zWzFdK2YuZGlyWzFdKmRbMV0qbjpzWzBdK2YuZGlyWzFdKmRbMF0qbixtPSJ4Ij09PWYuZGlyWzBdP3NbMV0rZi5kaXJbMV0qcGFyc2VJbnQoZi5zY3JvbGxBbW91bnQpOnNbMF0rZi5kaXJbMV0qcGFyc2VJbnQoZi5zY3JvbGxBbW91bnQpLHY9ImF1dG8iIT09Zi5zY3JvbGxBbW91bnQ/bTp1LHg9aT9pOmU/bz8ibWNzTGluZWFyT3V0IjoibWNzRWFzZUluT3V0IjoibWNzTGluZWFyIixfPWU/ITA6ITE7cmV0dXJuIGUmJjE3PmEmJih2PSJ4Ij09PWYuZGlyWzBdP3NbMV06c1swXSksUSh0LHYudG9TdHJpbmcoKSx7ZGlyOmYuZGlyWzBdLHNjcm9sbEVhc2luZzp4LGR1cjphLG9uQ29tcGxldGU6X30pLGU/dm9pZChmLmRpcj0hMSk6KGNsZWFyVGltZW91dChmLnN0ZXApLHZvaWQoZi5zdGVwPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtsKCl9LGEpKSl9ZnVuY3Rpb24gcygpe2NsZWFyVGltZW91dChmLnN0ZXApLFooZiwic3RlcCIpLFYodCl9dmFyIGM9dC5kYXRhKGEpLHU9Yy5vcHQsZj1jLnNlcXVlbnRpYWwsaD1lKCIjbUNTQl8iK2MuaWR4KyJfY29udGFpbmVyIiksbT0ic3RlcHBlZCI9PT1mLnR5cGU/ITA6ITEscD11LnNjcm9sbEluZXJ0aWE8MjY/MjY6dS5zY3JvbGxJbmVydGlhLGc9dS5zY3JvbGxJbmVydGlhPDE/MTc6dS5zY3JvbGxJbmVydGlhO3N3aXRjaChvKXtjYXNlIm9uIjppZihmLmRpcj1bbj09PWRbMTZdfHxuPT09ZFsxNV18fDM5PT09bnx8Mzc9PT1uPyJ4IjoieSIsbj09PWRbMTNdfHxuPT09ZFsxNV18fDM4PT09bnx8Mzc9PT1uPy0xOjFdLFYodCksdGUobikmJiJzdGVwcGVkIj09PWYudHlwZSlyZXR1cm47bChtKTticmVhaztjYXNlIm9mZiI6cygpLChtfHxjLnR3ZWVuUnVubmluZyYmZi5kaXIpJiZsKCEwKX19LFk9ZnVuY3Rpb24odCl7dmFyIG89ZSh0aGlzKS5kYXRhKGEpLm9wdCxuPVtdO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiYodD10KCkpLHQgaW5zdGFuY2VvZiBBcnJheT9uPXQubGVuZ3RoPjE/W3RbMF0sdFsxXV06IngiPT09by5heGlzP1tudWxsLHRbMF1dOlt0WzBdLG51bGxdOihuWzBdPXQueT90Lnk6dC54fHwieCI9PT1vLmF4aXM/bnVsbDp0LG5bMV09dC54P3QueDp0Lnl8fCJ5Ij09PW8uYXhpcz9udWxsOnQpLCJmdW5jdGlvbiI9PXR5cGVvZiBuWzBdJiYoblswXT1uWzBdKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBuWzFdJiYoblsxXT1uWzFdKCkpLG59LGo9ZnVuY3Rpb24odCxvKXtpZihudWxsIT10JiYidW5kZWZpbmVkIiE9dHlwZW9mIHQpe3ZhciBuPWUodGhpcyksaT1uLmRhdGEoYSkscj1pLm9wdCxsPWUoIiNtQ1NCXyIraS5pZHgrIl9jb250YWluZXIiKSxzPWwucGFyZW50KCksYz10eXBlb2YgdDtvfHwobz0ieCI9PT1yLmF4aXM/IngiOiJ5Iik7dmFyIGQ9IngiPT09bz9sLm91dGVyV2lkdGgoITEpOmwub3V0ZXJIZWlnaHQoITEpLGY9IngiPT09bz9sWzBdLm9mZnNldExlZnQ6bFswXS5vZmZzZXRUb3AsaD0ieCI9PT1vPyJsZWZ0IjoidG9wIjtzd2l0Y2goYyl7Y2FzZSJmdW5jdGlvbiI6cmV0dXJuIHQoKTtjYXNlIm9iamVjdCI6dmFyIG09dC5qcXVlcnk/dDplKHQpO2lmKCFtLmxlbmd0aClyZXR1cm47cmV0dXJuIngiPT09bz9vZShtKVsxXTpvZShtKVswXTtjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmlmKHRlKHQpKXJldHVybiBNYXRoLmFicyh0KTtpZigtMSE9PXQuaW5kZXhPZigiJSIpKXJldHVybiBNYXRoLmFicyhkKnBhcnNlSW50KHQpLzEwMCk7aWYoLTEhPT10LmluZGV4T2YoIi09IikpcmV0dXJuIE1hdGguYWJzKGYtcGFyc2VJbnQodC5zcGxpdCgiLT0iKVsxXSkpO2lmKC0xIT09dC5pbmRleE9mKCIrPSIpKXt2YXIgcD1mK3BhcnNlSW50KHQuc3BsaXQoIis9IilbMV0pO3JldHVybiBwPj0wPzA6TWF0aC5hYnMocCl9aWYoLTEhPT10LmluZGV4T2YoInB4IikmJnRlKHQuc3BsaXQoInB4IilbMF0pKXJldHVybiBNYXRoLmFicyh0LnNwbGl0KCJweCIpWzBdKTtpZigidG9wIj09PXR8fCJsZWZ0Ij09PXQpcmV0dXJuIDA7aWYoImJvdHRvbSI9PT10KXJldHVybiBNYXRoLmFicyhzLmhlaWdodCgpLWwub3V0ZXJIZWlnaHQoITEpKTtpZigicmlnaHQiPT09dClyZXR1cm4gTWF0aC5hYnMocy53aWR0aCgpLWwub3V0ZXJXaWR0aCghMSkpO2lmKCJmaXJzdCI9PT10fHwibGFzdCI9PT10KXt2YXIgbT1sLmZpbmQoIjoiK3QpO3JldHVybiJ4Ij09PW8/b2UobSlbMV06b2UobSlbMF19cmV0dXJuIGUodCkubGVuZ3RoPyJ4Ij09PW8/b2UoZSh0KSlbMV06b2UoZSh0KSlbMF06KGwuY3NzKGgsdCksdm9pZCB1LnVwZGF0ZS5jYWxsKG51bGwsblswXSkpfX19LFg9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbygpe3JldHVybiBjbGVhclRpbWVvdXQoaFswXS5hdXRvVXBkYXRlKSwwPT09cy5wYXJlbnRzKCJodG1sIikubGVuZ3RoP3ZvaWQocz1udWxsKTp2b2lkKGhbMF0uYXV0b1VwZGF0ZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGYuYWR2YW5jZWQudXBkYXRlT25TZWxlY3RvckNoYW5nZSYmKG09cigpLG0hPT13KT8obCgzKSx2b2lkKHc9bSkpOihmLmFkdmFuY2VkLnVwZGF0ZU9uQ29udGVudFJlc2l6ZSYmKHA9W2gub3V0ZXJIZWlnaHQoITEpLGgub3V0ZXJXaWR0aCghMSksdi5oZWlnaHQoKSx2LndpZHRoKCksXygpWzBdLF8oKVsxXV0sKHBbMF0hPT1TWzBdfHxwWzFdIT09U1sxXXx8cFsyXSE9PVNbMl18fHBbM10hPT1TWzNdfHxwWzRdIT09U1s0XXx8cFs1XSE9PVNbNV0pJiYobChwWzBdIT09U1swXXx8cFsxXSE9PVNbMV0pLFM9cCkpLGYuYWR2YW5jZWQudXBkYXRlT25JbWFnZUxvYWQmJihnPW4oKSxnIT09YiYmKGguZmluZCgiaW1nIikuZWFjaChmdW5jdGlvbigpe2kodGhpcyl9KSxiPWcpKSx2b2lkKChmLmFkdmFuY2VkLnVwZGF0ZU9uU2VsZWN0b3JDaGFuZ2V8fGYuYWR2YW5jZWQudXBkYXRlT25Db250ZW50UmVzaXplfHxmLmFkdmFuY2VkLnVwZGF0ZU9uSW1hZ2VMb2FkKSYmbygpKSl9LGYuYWR2YW5jZWQuYXV0b1VwZGF0ZVRpbWVvdXQpKX1mdW5jdGlvbiBuKCl7dmFyIGU9MDtyZXR1cm4gZi5hZHZhbmNlZC51cGRhdGVPbkltYWdlTG9hZCYmKGU9aC5maW5kKCJpbWciKS5sZW5ndGgpLGV9ZnVuY3Rpb24gaSh0KXtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHQuYXBwbHkoZSxhcmd1bWVudHMpfX1mdW5jdGlvbiBhKCl7dGhpcy5vbmxvYWQ9bnVsbCxlKHQpLmFkZENsYXNzKGRbMl0pLGwoMil9aWYoZSh0KS5oYXNDbGFzcyhkWzJdKSlyZXR1cm4gdm9pZCBsKCk7dmFyIG49bmV3IEltYWdlO24ub25sb2FkPW8obixhKSxuLnNyYz10LnNyY31mdW5jdGlvbiByKCl7Zi5hZHZhbmNlZC51cGRhdGVPblNlbGVjdG9yQ2hhbmdlPT09ITAmJihmLmFkdmFuY2VkLnVwZGF0ZU9uU2VsZWN0b3JDaGFuZ2U9IioiKTt2YXIgdD0wLG89aC5maW5kKGYuYWR2YW5jZWQudXBkYXRlT25TZWxlY3RvckNoYW5nZSk7cmV0dXJuIGYuYWR2YW5jZWQudXBkYXRlT25TZWxlY3RvckNoYW5nZSYmby5sZW5ndGg+MCYmby5lYWNoKGZ1bmN0aW9uKCl7dCs9ZSh0aGlzKS5oZWlnaHQoKStlKHRoaXMpLndpZHRoKCl9KSx0fWZ1bmN0aW9uIGwoZSl7Y2xlYXJUaW1lb3V0KGhbMF0uYXV0b1VwZGF0ZSksdS51cGRhdGUuY2FsbChudWxsLHNbMF0sZSl9dmFyIHM9ZSh0aGlzKSxjPXMuZGF0YShhKSxmPWMub3B0LGg9ZSgiI21DU0JfIitjLmlkeCsiX2NvbnRhaW5lciIpO2lmKHQpcmV0dXJuIGNsZWFyVGltZW91dChoWzBdLmF1dG9VcGRhdGUpLHZvaWQgWihoWzBdLCJhdXRvVXBkYXRlIik7dmFyIG0scCxnLHY9aC5wYXJlbnQoKSx4PVtlKCIjbUNTQl8iK2MuaWR4KyJfc2Nyb2xsYmFyX3ZlcnRpY2FsIiksZSgiI21DU0JfIitjLmlkeCsiX3Njcm9sbGJhcl9ob3Jpem9udGFsIildLF89ZnVuY3Rpb24oKXtyZXR1cm5beFswXS5pcygiOnZpc2libGUiKT94WzBdLm91dGVySGVpZ2h0KCEwKTowLHhbMV0uaXMoIjp2aXNpYmxlIik/eFsxXS5vdXRlcldpZHRoKCEwKTowXX0sdz1yKCksUz1baC5vdXRlckhlaWdodCghMSksaC5vdXRlcldpZHRoKCExKSx2LmhlaWdodCgpLHYud2lkdGgoKSxfKClbMF0sXygpWzFdXSxiPW4oKTtvKCl9LE49ZnVuY3Rpb24oZSx0LG8pe3JldHVybiBNYXRoLnJvdW5kKGUvdCkqdC1vfSxWPWZ1bmN0aW9uKHQpe3ZhciBvPXQuZGF0YShhKSxuPWUoIiNtQ1NCXyIrby5pZHgrIl9jb250YWluZXIsI21DU0JfIitvLmlkeCsiX2NvbnRhaW5lcl93cmFwcGVyLCNtQ1NCXyIrby5pZHgrIl9kcmFnZ2VyX3ZlcnRpY2FsLCNtQ1NCXyIrby5pZHgrIl9kcmFnZ2VyX2hvcml6b250YWwiKTtuLmVhY2goZnVuY3Rpb24oKXtLLmNhbGwodGhpcyl9KX0sUT1mdW5jdGlvbih0LG8sbil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gcyYmYy5jYWxsYmFja3NbZV0mJiJmdW5jdGlvbiI9PXR5cGVvZiBjLmNhbGxiYWNrc1tlXX1mdW5jdGlvbiByKCl7cmV0dXJuW2MuY2FsbGJhY2tzLmFsd2F5c1RyaWdnZXJPZmZzZXRzfHxfPj13WzBdK2IsYy5jYWxsYmFja3MuYWx3YXlzVHJpZ2dlck9mZnNldHN8fC1DPj1fXX1mdW5jdGlvbiBsKCl7dmFyIGU9W2hbMF0ub2Zmc2V0VG9wLGhbMF0ub2Zmc2V0TGVmdF0sbz1bdlswXS5vZmZzZXRUb3AsdlswXS5vZmZzZXRMZWZ0XSxhPVtoLm91dGVySGVpZ2h0KCExKSxoLm91dGVyV2lkdGgoITEpXSxpPVtmLmhlaWdodCgpLGYud2lkdGgoKV07dFswXS5tY3M9e2NvbnRlbnQ6aCx0b3A6ZVswXSxsZWZ0OmVbMV0sZHJhZ2dlclRvcDpvWzBdLGRyYWdnZXJMZWZ0Om9bMV0sdG9wUGN0Ok1hdGgucm91bmQoMTAwKk1hdGguYWJzKGVbMF0pLyhNYXRoLmFicyhhWzBdKS1pWzBdKSksbGVmdFBjdDpNYXRoLnJvdW5kKDEwMCpNYXRoLmFicyhlWzFdKS8oTWF0aC5hYnMoYVsxXSktaVsxXSkpLGRpcmVjdGlvbjpuLmRpcn19dmFyIHM9dC5kYXRhKGEpLGM9cy5vcHQsZD17dHJpZ2dlcjoiaW50ZXJuYWwiLGRpcjoieSIsc2Nyb2xsRWFzaW5nOiJtY3NFYXNlT3V0IixkcmFnOiExLGR1cjpjLnNjcm9sbEluZXJ0aWEsb3ZlcndyaXRlOiJhbGwiLApjYWxsYmFja3M6ITAsb25TdGFydDohMCxvblVwZGF0ZTohMCxvbkNvbXBsZXRlOiEwfSxuPWUuZXh0ZW5kKGQsbiksdT1bbi5kdXIsbi5kcmFnPzA6bi5kdXJdLGY9ZSgiI21DU0JfIitzLmlkeCksaD1lKCIjbUNTQl8iK3MuaWR4KyJfY29udGFpbmVyIiksbT1oLnBhcmVudCgpLHA9Yy5jYWxsYmFja3Mub25Ub3RhbFNjcm9sbE9mZnNldD9ZLmNhbGwodCxjLmNhbGxiYWNrcy5vblRvdGFsU2Nyb2xsT2Zmc2V0KTpbMCwwXSxnPWMuY2FsbGJhY2tzLm9uVG90YWxTY3JvbGxCYWNrT2Zmc2V0P1kuY2FsbCh0LGMuY2FsbGJhY2tzLm9uVG90YWxTY3JvbGxCYWNrT2Zmc2V0KTpbMCwwXTtpZihzLnRyaWdnZXI9bi50cmlnZ2VyLCgwIT09bS5zY3JvbGxUb3AoKXx8MCE9PW0uc2Nyb2xsTGVmdCgpKSYmKGUoIi5tQ1NCXyIrcy5pZHgrIl9zY3JvbGxiYXIiKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIiksbS5zY3JvbGxUb3AoMCkuc2Nyb2xsTGVmdCgwKSksIl9yZXNldFkiIT09b3x8cy5jb250ZW50UmVzZXQueXx8KGkoIm9uT3ZlcmZsb3dZTm9uZSIpJiZjLmNhbGxiYWNrcy5vbk92ZXJmbG93WU5vbmUuY2FsbCh0WzBdKSxzLmNvbnRlbnRSZXNldC55PTEpLCJfcmVzZXRYIiE9PW98fHMuY29udGVudFJlc2V0Lnh8fChpKCJvbk92ZXJmbG93WE5vbmUiKSYmYy5jYWxsYmFja3Mub25PdmVyZmxvd1hOb25lLmNhbGwodFswXSkscy5jb250ZW50UmVzZXQueD0xKSwiX3Jlc2V0WSIhPT1vJiYiX3Jlc2V0WCIhPT1vKXtzd2l0Y2goIXMuY29udGVudFJlc2V0LnkmJnRbMF0ubWNzfHwhcy5vdmVyZmxvd2VkWzBdfHwoaSgib25PdmVyZmxvd1kiKSYmYy5jYWxsYmFja3Mub25PdmVyZmxvd1kuY2FsbCh0WzBdKSxzLmNvbnRlbnRSZXNldC54PW51bGwpLCFzLmNvbnRlbnRSZXNldC54JiZ0WzBdLm1jc3x8IXMub3ZlcmZsb3dlZFsxXXx8KGkoIm9uT3ZlcmZsb3dYIikmJmMuY2FsbGJhY2tzLm9uT3ZlcmZsb3dYLmNhbGwodFswXSkscy5jb250ZW50UmVzZXQueD1udWxsKSxjLnNuYXBBbW91bnQmJihvPU4obyxjLnNuYXBBbW91bnQsYy5zbmFwT2Zmc2V0KSksbi5kaXIpe2Nhc2UieCI6dmFyIHY9ZSgiI21DU0JfIitzLmlkeCsiX2RyYWdnZXJfaG9yaXpvbnRhbCIpLHg9ImxlZnQiLF89aFswXS5vZmZzZXRMZWZ0LHc9W2Yud2lkdGgoKS1oLm91dGVyV2lkdGgoITEpLHYucGFyZW50KCkud2lkdGgoKS12LndpZHRoKCldLFM9W28sMD09PW8/MDpvL3Muc2Nyb2xsUmF0aW8ueF0sYj1wWzFdLEM9Z1sxXSxCPWI+MD9iL3Muc2Nyb2xsUmF0aW8ueDowLFQ9Qz4wP0Mvcy5zY3JvbGxSYXRpby54OjA7YnJlYWs7Y2FzZSJ5Ijp2YXIgdj1lKCIjbUNTQl8iK3MuaWR4KyJfZHJhZ2dlcl92ZXJ0aWNhbCIpLHg9InRvcCIsXz1oWzBdLm9mZnNldFRvcCx3PVtmLmhlaWdodCgpLWgub3V0ZXJIZWlnaHQoITEpLHYucGFyZW50KCkuaGVpZ2h0KCktdi5oZWlnaHQoKV0sUz1bbywwPT09bz8wOm8vcy5zY3JvbGxSYXRpby55XSxiPXBbMF0sQz1nWzBdLEI9Yj4wP2Ivcy5zY3JvbGxSYXRpby55OjAsVD1DPjA/Qy9zLnNjcm9sbFJhdGlvLnk6MH1TWzFdPDB8fDA9PT1TWzBdJiYwPT09U1sxXT9TPVswLDBdOlNbMV0+PXdbMV0/Uz1bd1swXSx3WzFdXTpTWzBdPS1TWzBdLHRbMF0ubWNzfHwobCgpLGkoIm9uSW5pdCIpJiZjLmNhbGxiYWNrcy5vbkluaXQuY2FsbCh0WzBdKSksY2xlYXJUaW1lb3V0KGhbMF0ub25Db21wbGV0ZVRpbWVvdXQpLChzLnR3ZWVuUnVubmluZ3x8ISgwPT09XyYmU1swXT49MHx8Xz09PXdbMF0mJlNbMF08PXdbMF0pKSYmKEcodlswXSx4LE1hdGgucm91bmQoU1sxXSksdVsxXSxuLnNjcm9sbEVhc2luZyksRyhoWzBdLHgsTWF0aC5yb3VuZChTWzBdKSx1WzBdLG4uc2Nyb2xsRWFzaW5nLG4ub3ZlcndyaXRlLHtvblN0YXJ0OmZ1bmN0aW9uKCl7bi5jYWxsYmFja3MmJm4ub25TdGFydCYmIXMudHdlZW5SdW5uaW5nJiYoaSgib25TY3JvbGxTdGFydCIpJiYobCgpLGMuY2FsbGJhY2tzLm9uU2Nyb2xsU3RhcnQuY2FsbCh0WzBdKSkscy50d2VlblJ1bm5pbmc9ITAseSh2KSxzLmNiT2Zmc2V0cz1yKCkpfSxvblVwZGF0ZTpmdW5jdGlvbigpe24uY2FsbGJhY2tzJiZuLm9uVXBkYXRlJiZpKCJ3aGlsZVNjcm9sbGluZyIpJiYobCgpLGMuY2FsbGJhY2tzLndoaWxlU2Nyb2xsaW5nLmNhbGwodFswXSkpfSxvbkNvbXBsZXRlOmZ1bmN0aW9uKCl7aWYobi5jYWxsYmFja3MmJm4ub25Db21wbGV0ZSl7Inl4Ij09PWMuYXhpcyYmY2xlYXJUaW1lb3V0KGhbMF0ub25Db21wbGV0ZVRpbWVvdXQpO3ZhciBlPWhbMF0uaWRsZVRpbWVyfHwwO2hbMF0ub25Db21wbGV0ZVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe2koIm9uU2Nyb2xsIikmJihsKCksYy5jYWxsYmFja3Mub25TY3JvbGwuY2FsbCh0WzBdKSksaSgib25Ub3RhbFNjcm9sbCIpJiZTWzFdPj13WzFdLUImJnMuY2JPZmZzZXRzWzBdJiYobCgpLGMuY2FsbGJhY2tzLm9uVG90YWxTY3JvbGwuY2FsbCh0WzBdKSksaSgib25Ub3RhbFNjcm9sbEJhY2siKSYmU1sxXTw9VCYmcy5jYk9mZnNldHNbMV0mJihsKCksYy5jYWxsYmFja3Mub25Ub3RhbFNjcm9sbEJhY2suY2FsbCh0WzBdKSkscy50d2VlblJ1bm5pbmc9ITEsaFswXS5pZGxlVGltZXI9MCx5KHYsImhpZGUiKX0sZSl9fX0pKX19LEc9ZnVuY3Rpb24oZSx0LG8sYSxuLGkscil7ZnVuY3Rpb24gbCgpe1Muc3RvcHx8KHh8fG0uY2FsbCgpLHg9SigpLXYscygpLHg+PVMudGltZSYmKFMudGltZT14PlMudGltZT94K2YtKHgtUy50aW1lKTp4K2YtMSxTLnRpbWU8eCsxJiYoUy50aW1lPXgrMSkpLFMudGltZTxhP1MuaWQ9aChsKTpnLmNhbGwoKSl9ZnVuY3Rpb24gcygpe2E+MD8oUy5jdXJyVmFsPXUoUy50aW1lLF8sYixhLG4pLHdbdF09TWF0aC5yb3VuZChTLmN1cnJWYWwpKyJweCIpOndbdF09bysicHgiLHAuY2FsbCgpfWZ1bmN0aW9uIGMoKXtmPTFlMy82MCxTLnRpbWU9eCtmLGg9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lOmZ1bmN0aW9uKGUpe3JldHVybiBzKCksc2V0VGltZW91dChlLC4wMSl9LFMuaWQ9aChsKX1mdW5jdGlvbiBkKCl7bnVsbCE9Uy5pZCYmKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKFMuaWQpOmNsZWFyVGltZW91dChTLmlkKSxTLmlkPW51bGwpfWZ1bmN0aW9uIHUoZSx0LG8sYSxuKXtzd2l0Y2gobil7Y2FzZSJsaW5lYXIiOmNhc2UibWNzTGluZWFyIjpyZXR1cm4gbyplL2ErdDtjYXNlIm1jc0xpbmVhck91dCI6cmV0dXJuIGUvPWEsZS0tLG8qTWF0aC5zcXJ0KDEtZSplKSt0O2Nhc2UiZWFzZUluT3V0U21vb3RoIjpyZXR1cm4gZS89YS8yLDE+ZT9vLzIqZSplK3Q6KGUtLSwtby8yKihlKihlLTIpLTEpK3QpO2Nhc2UiZWFzZUluT3V0U3Ryb25nIjpyZXR1cm4gZS89YS8yLDE+ZT9vLzIqTWF0aC5wb3coMiwxMCooZS0xKSkrdDooZS0tLG8vMiooLU1hdGgucG93KDIsLTEwKmUpKzIpK3QpO2Nhc2UiZWFzZUluT3V0IjpjYXNlIm1jc0Vhc2VJbk91dCI6cmV0dXJuIGUvPWEvMiwxPmU/by8yKmUqZSplK3Q6KGUtPTIsby8yKihlKmUqZSsyKSt0KTtjYXNlImVhc2VPdXRTbW9vdGgiOnJldHVybiBlLz1hLGUtLSwtbyooZSplKmUqZS0xKSt0O2Nhc2UiZWFzZU91dFN0cm9uZyI6cmV0dXJuIG8qKC1NYXRoLnBvdygyLC0xMCplL2EpKzEpK3Q7Y2FzZSJlYXNlT3V0IjpjYXNlIm1jc0Vhc2VPdXQiOmRlZmF1bHQ6dmFyIGk9KGUvPWEpKmUscj1pKmU7cmV0dXJuIHQrbyooLjQ5OTk5OTk5OTk5OTk5NypyKmkrLTIuNSppKmkrNS41KnIrLTYuNSppKzQqZSl9fWUuX21Ud2Vlbnx8KGUuX21Ud2Vlbj17dG9wOnt9LGxlZnQ6e319KTt2YXIgZixoLHI9cnx8e30sbT1yLm9uU3RhcnR8fGZ1bmN0aW9uKCl7fSxwPXIub25VcGRhdGV8fGZ1bmN0aW9uKCl7fSxnPXIub25Db21wbGV0ZXx8ZnVuY3Rpb24oKXt9LHY9SigpLHg9MCxfPWUub2Zmc2V0VG9wLHc9ZS5zdHlsZSxTPWUuX21Ud2Vlblt0XTsibGVmdCI9PT10JiYoXz1lLm9mZnNldExlZnQpO3ZhciBiPW8tXztTLnN0b3A9MCwibm9uZSIhPT1pJiZkKCksYygpfSxKPWZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5wZXJmb3JtYW5jZSYmd2luZG93LnBlcmZvcm1hbmNlLm5vdz93aW5kb3cucGVyZm9ybWFuY2Uubm93KCk6d2luZG93LnBlcmZvcm1hbmNlJiZ3aW5kb3cucGVyZm9ybWFuY2Uud2Via2l0Tm93P3dpbmRvdy5wZXJmb3JtYW5jZS53ZWJraXROb3coKTpEYXRlLm5vdz9EYXRlLm5vdygpOihuZXcgRGF0ZSkuZ2V0VGltZSgpfSxLPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9tVHdlZW58fChlLl9tVHdlZW49e3RvcDp7fSxsZWZ0Ont9fSk7Zm9yKHZhciB0PVsidG9wIiwibGVmdCJdLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGE9dFtvXTtlLl9tVHdlZW5bYV0uaWQmJih3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShlLl9tVHdlZW5bYV0uaWQpOmNsZWFyVGltZW91dChlLl9tVHdlZW5bYV0uaWQpLGUuX21Ud2VlblthXS5pZD1udWxsLGUuX21Ud2VlblthXS5zdG9wPTEpfX0sWj1mdW5jdGlvbihlLHQpe3RyeXtkZWxldGUgZVt0XX1jYXRjaChvKXtlW3RdPW51bGx9fSwkPWZ1bmN0aW9uKGUpe3JldHVybiEoZS53aGljaCYmMSE9PWUud2hpY2gpfSxlZT1mdW5jdGlvbihlKXt2YXIgdD1lLm9yaWdpbmFsRXZlbnQucG9pbnRlclR5cGU7cmV0dXJuISh0JiYidG91Y2giIT09dCYmMiE9PXQpfSx0ZT1mdW5jdGlvbihlKXtyZXR1cm4haXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfSxvZT1mdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudHMoIi5tQ1NCX2NvbnRhaW5lciIpO3JldHVybltlLm9mZnNldCgpLnRvcC10Lm9mZnNldCgpLnRvcCxlLm9mZnNldCgpLmxlZnQtdC5vZmZzZXQoKS5sZWZ0XX07ZS5mbltvXT1mdW5jdGlvbih0KXtyZXR1cm4gdVt0XT91W3RdLmFwcGx5KHRoaXMsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpKToib2JqZWN0IiE9dHlwZW9mIHQmJnQ/dm9pZCBlLmVycm9yKCJNZXRob2QgIit0KyIgZG9lcyBub3QgZXhpc3QiKTp1LmluaXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlW29dPWZ1bmN0aW9uKHQpe3JldHVybiB1W3RdP3VbdF0uYXBwbHkodGhpcyxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMSkpOiJvYmplY3QiIT10eXBlb2YgdCYmdD92b2lkIGUuZXJyb3IoIk1ldGhvZCAiK3QrIiBkb2VzIG5vdCBleGlzdCIpOnUuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LGVbb10uZGVmYXVsdHM9aSx3aW5kb3dbb109ITAsZSh3aW5kb3cpLmxvYWQoZnVuY3Rpb24oKXtlKG4pW29dKCksZS5leHRlbmQoZS5leHByWyI6Il0se21jc0luVmlldzplLmV4cHJbIjoiXS5tY3NJblZpZXd8fGZ1bmN0aW9uKHQpe3ZhciBvLGEsbj1lKHQpLGk9bi5wYXJlbnRzKCIubUNTQl9jb250YWluZXIiKTtpZihpLmxlbmd0aClyZXR1cm4gbz1pLnBhcmVudCgpLGE9W2lbMF0ub2Zmc2V0VG9wLGlbMF0ub2Zmc2V0TGVmdF0sYVswXStvZShuKVswXT49MCYmYVswXStvZShuKVswXTxvLmhlaWdodCgpLW4ub3V0ZXJIZWlnaHQoITEpJiZhWzFdK29lKG4pWzFdPj0wJiZhWzFdK29lKG4pWzFdPG8ud2lkdGgoKS1uLm91dGVyV2lkdGgoITEpfSxtY3NPdmVyZmxvdzplLmV4cHJbIjoiXS5tY3NPdmVyZmxvd3x8ZnVuY3Rpb24odCl7dmFyIG89ZSh0KS5kYXRhKGEpO2lmKG8pcmV0dXJuIG8ub3ZlcmZsb3dlZFswXXx8by5vdmVyZmxvd2VkWzFdfX0pfSl9KX0pOw=="}},"time_used":41,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":18,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images.pexels.com/photos/5833775/pexels-photo-5833775a1a8.jpg?auto=compress\u0026cs=tinysrgb\u0026w=800","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.729Z","timestamp":1785129412729,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images.pexels.com/photos/5833775/pexels-photo-5833775a1a8.jpg?auto=compress\u0026cs=tinysrgb\u0026w=800 HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-29T09:10:37.507754Z","times_seen":144612,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"bootstrap.smartsuppchat.com/widget/89e2ddf0862d95a813b6f43dece66d28ec183e67.json","fqdn":"bootstrap.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"18.195.8.146","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:59.551Z","timestamp":1785129419551,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.smartsuppchat.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Tue, 02 Dec 2025 00:00:00 GMT","end":"Wed, 30 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"DC:47:26:FC:2D:4B:14:19:23:BC:B7:70:14:DA:60:A6:21:B0:1E:81","sha256":"0D:5E:FD:70:25:9E:DE:DD:47:CF:0C:58:1C:08:A2:A1:05:AC:A6:7E:0C:43:6F:50:E7:49:E0:A1:60:D0:0E:0F"}}},"request":{"raw":"GET /widget/89e2ddf0862d95a813b6f43dece66d28ec183e67.json HTTP/1.1\r\nHost: bootstrap.smartsuppchat.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: text/plain\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:16:59 GMT\r\ncontent-type: application/json; charset=utf-8\r\nx-version: 6cb79abf75047496934c7756b55ec6f26e7d2373\r\nvary: Accept-Encoding\r\naccess-control-allow-origin: *\r\ncache-control: private, max-age=0, must-revalidate\r\nx-hit: redis\r\netag: \"138b-/EirNbhL/SqLqgcIrwQHGCMWjVs\"\r\ncontent-encoding: br\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":null,"data":{"size":5003,"size_decoded":2436,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"a9b6b8a9a87cb5a9e1bd9e75f5e88527","sha1":"fc48ab35b84bfd2a8baa0708af04071823168d5b","sha256":"fe9719ebb1629575e1e74ab7f1e182e95dd5d10fe2a2115f76e4e31f9cb305f9","sha512":"da0b095301424df4d6bd7c1a42962b7d92ad63fbd0f400c0b436198c6069ee234bf4205c550cc06a035386e00a1c4a80f0d81b48c0f45c3233b426112e3b8d91","ssdeep":"96:kZcG6dXKUR+LmHlSYfUQXXZtRTlBrT0UGRcYoFO/:YcG05+iH4Y8IZlZT0Uwc5FO/","tlshash":"06a1850e88184abd4b85c7d2f18ab94767acd4732214bd7efa4c885861eb2d813f3756","first_seen":"2026-06-29T23:40:50.584337Z","last_seen":"2026-07-27T10:24:20.274709Z","times_seen":11,"resource_available":false,"data":"eyJhaVJhdGluZ0VuYWJsZWQiOnRydWUsImFsbG93ZWREb21haW5zIjpbXSwiYnV0dG9uU3R5bGUiOiJncmVldGluZyIsImNvbG9yIjoiIzEyMzNkZiIsImNvbG9yMiI6bnVsbCwiY29sb3JHcmFkaWVudCI6dHJ1ZSwiY29uc2VudE1vZGVFbmFibGVkIjpmYWxzZSwiY3Jvc3NEb21haW5FbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdFbmFibGVkIjpmYWxzZSwiY3VzdG9tQnJhbmRpbmdMaW5rIjoiIiwiY3VzdG9tQnJhbmRpbmdUZXh0IjoiIiwiZW1haWxDb250cm9sIjp0cnVlLCJmZWF0dXJlcyI6eyJhcGkiOmZhbHNlLCJjdXN0b21pemUiOmZhbHNlLCJnYSI6ZmFsc2UsImdyb3VwcyI6ZmFsc2UsInJhdGluZyI6ZmFsc2UsIndoaXRlTGFiZWwiOmZhbHNlfSwiZ29vZ2xlQW5hbHl0aWNzRW5hYmxlZCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01hbnVhbCI6ZmFsc2UsImdvb2dsZUFuYWx5dGljc01lYXN1cmVtZW50SWRzIjpbXSwiZ3JvdXBTZWxlY3RFbmFibGVkIjpmYWxzZSwiaGVhZGVyU3R5bGUiOiJzdGFuZGFyZCIsImhpZGVPZmZsaW5lQ2hhdCI6ZmFsc2UsImhpZGVXaWRnZXQiOmZhbHNlLCJob3N0Ijoid2Vic29ja2V0LXZpc2l0b3JzLnNtYXJ0c3VwcC5jb20iLCJpbnRlcm5hbEFuYWx5dGljc0VuYWJsZWQiOmZhbHNlLCJpc0Jsb2NrZWQiOmZhbHNlLCJsYW5nIjoiZW4iLCJtb2JpbGVQb3B1cHNFbmFibGVkIjp0cnVlLCJuYW1lQ29udHJvbCI6dHJ1ZSwibnVtYmVyQ29udHJvbCI6ZmFsc2UsIm9wZW5PblRyaWdnZXIiOmZhbHNlLCJvcmllbnRhdGlvbiI6InJpZ2h0IiwicGFja2FnZU5hbWUiOiJmcmVlIiwicG9wdXBUZXh0YXJlYUVuYWJsZWQiOmZhbHNlLCJwcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZCI6ZmFsc2UsInByaXZhY3lOb3RpY2VFbmFibGVkIjp0cnVlLCJwcml2YWN5Tm90aWNlVXJsIjoiIiwicmF0aW5nRW5hYmxlZCI6ZmFsc2UsInJlcXVpcmVMb2dpbiI6ZmFsc2UsInRyYW5zbGF0ZXMiOnsiZW4iOnsiYWdlbnRSYXRpbmcuYWxsLnBsYWNlaG9sZGVyIjoiTGVhdmUgdXMgZmVlZGJhY2siLCJhZ2VudFJhdGluZy5iYWQuZm9ybVRleHQiOiJTbyBzb3JyeSDwn5iTIFdoYXQgd2VudCB3cm9uZz8iLCJhZ2VudFJhdGluZy5nb29kLmZvcm1UZXh0IjoiVGhhbmtzIPCfpKkgV2hhdCB3YXMgc28gZ3JlYXQ/IiwiYWdlbnRSYXRpbmcubm9ybWFsLmZvcm1UZXh0IjoiVGhhbmtzIPCfkY0gSG93IGNhbiB3ZSBpbXByb3ZlPyIsImFnZW50VHJhbnNmZXIuZGVmYXVsdFRleHQiOiJBZ2VudCIsImFnZW50VHJhbnNmZXIuam9pbmVkIjoiam9pbmVkIHRoZSBjaGF0IiwiYWdlbnRUcmFuc2Zlci5sZWZ0IjoibGVmdCIsImFnZW50VHJhbnNmZXIucmVkaXJlY3RlZCI6ImlzIHlvdXIgbmV3IGFnZW50IiwiYXV0aEZvcm0uYWNjZXB0VGVybXMiOiJJIGFncmVlIHdpdGggcHJpdmFjeSBwb2xpY3kiLCJhdXRoRm9ybS5ncmVldGluZyI6IvCfkYsgUGxlYXNlIGludHJvZHVjZSB5b3Vyc2VsZiIsImF1dGhGb3JtLmdyb3VwIjoiQ2hvb3NlIGEgZ3JvdXAiLCJhdXRoRm9ybS55b3VyRW1haWwiOiJZb3VyIGVtYWlsIiwiYXV0aEZvcm0ueW91ck5hbWUiOiJZb3VyIG5hbWUiLCJhdXRoRm9ybS55b3VyUGhvbmUiOiJQaG9uZSBudW1iZXIiLCJidXR0b24uZ3JlZXRpbmciOiJDaGF0IiwiY2hhdGJvdC5nb0JhY2siOiJHbyBiYWNrIiwiY2hhdElucHV0LnBsYWNlaG9sZGVyIjoiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZSIsImNoYXRQcmV2aWV3Lm1lc3NhZ2UxIjoiSGksIGlzIGFueWJvZHkgaGVyZT8iLCJjaGF0UHJldmlldy5tZXNzYWdlMiI6IkhlbGxvLCB5ZXMgd2UgYXJlIGhlcmUiLCJjaGF0UHJldmlldy5tZXNzYWdlMyI6Ik9rLCB0aGFua3MiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLmJ1dHRvbiI6IlllcywgZW5kIGNoYXQiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLnRleHQiOiJJcyB0aGF0IHJlYWxseSBhbGw/IElmIHNvbWV0aGluZyBlbHNlIGNvbWVzIHRvIG1pbmQsIHlvdSBjYW4gYWx3YXlzIHJldHVybiB0byB0aGUgY29udmVyc2F0aW9uLiIsImNsb3NlQ29udmVyc2F0aW9uTW9kYWwudGl0bGUiOiJFbmQgY2hhdCIsImVtYWlsVHJhbnNjcmlwdC5wb3NpdGl2ZUZlZWRiYWNrIjoiVHJhbnNjcmlwdCBoYXMgYmVlbiBzZW50IiwiZW1haWxUcmFuc2NyaXB0LnNlbmRDb3B5IjoiU2VuZCBjb252ZXJzYXRpb24gY29weSIsImVycm9yLmZpbGVVcGxvYWQiOiJGaWxlIHVwbG9hZCBmYWlsdXJlIiwiZXJyb3Iubm9JbnRlcm5ldCI6IkludGVybmV0IGNvbm5lY3Rpb24gbG9zdCIsImVycm9yLnNlcnZlckVycm9yIjoiU2VydmVyIGVycm9yIG9jY3VycmVkIiwiZmlsZVVwbG9hZC5iYWRGaWxlVHlwZSI6IlRoaXMgZmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuIiwiZmlsZVVwbG9hZC5maWxlc1dlcmVudFByb2Nlc3NlZCI6IlNvbWUgZmlsZXMgY291bGQgbm90IGJlIHByb2Nlc3NlZCIsImZpbGVVcGxvYWQuZmlsZVRvb0JpZyI6IlRoZSBmaWxlIGlzIGJpZ2dlciB0aGFuIHRoZSBhbGxvd2VkIGxpbWl0IiwiZmlsZVVwbG9hZC5pbWFnZUVycm9yIjoiVGhpcyBpbWFnZSBpcyBub3QgdmFsaWQiLCJmaWxlVXBsb2FkLnRvb01hbnlGaWxlcyI6IkxpbWl0IGZvciB1cGxvYWRpbmcgZmlsZXMgaXMgIiwiZmlsZVVwbG9hZC51cGxvYWRGaWxlIjoiVXBsb2FkIGZpbGUiLCJnZHByLmRhdGFQcml2YWN5SGVhZGxpbmUiOiJQZXJzb25hbCBkYXRhIHByb2Nlc3NpbmciLCJnZHByLmRhdGFQcml2YWN5VGV4dCI6IlNtYXJ0c3VwcC5jb20sIHMuci5vLCBwcm9jZXNzZXMgcGVyc29uYWwgZGF0YS4sIFZBVCBJRCBDWjAzNjY4NjgxIChmdXJ0aGVyIGFzIFwiU21hcnRzdXBwXCIpIGFzIGEgZGF0YSBwcm9jZXNzb3Igd2hvIGFjdHMgb24gYmVoYWxmIG9mIHRoZSB3ZWJzaXRlIG93bmVyIHdobyBpcyB0aGUgZGF0YSBjb250cm9sbGVyLiBcblxuU21hcnRzdXBwIGlzIEdEUFIgY29tcGxpYW50LiBZb3UgY2FuIGZpbmQgaW5mb3JtYXRpb24gYWJvdXQgU21hcnRzdXBwIHBlcnNvbmFsIGRhdGEgcHJpdmFjeSBhbmQgcHJvY2Vzc2luZyBvbiB3d3cuc21hcnRzdXBwLmNvbS9wcml2YWN5LiBcblxuUHJvY2Vzc2luZyBvZiB5b3VyIHBlcnNvbmFsIGRhdGEgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gQWR2YW5jZWQgZmVhdHVyZXMgd2lsbCBvbmx5IGJlIHR1cm5lZCBvbiBpZiB5b3UgaGF2ZSBhZ3JlZWQgdG8gdGhlbS4gXG5cblBsZWFzZSBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucyBhYm91dCB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIG9yIGlmIHlvdSB3YW50IHRvIHJlcXVlc3Qgb3IgZXJhc2UgeW91ciBwZXJzb25hbCBkYXRhLiIsInJhdGluZy53YXNJdEhlbHBmdWwiOiJIb3cgd291bGQgeW91IHJhdGUgb3VyIHN1cHBvcnQ/Iiwic3RhdHVzQmFyLm9mZmxpbmVUZXh0IjoiSGFwcHkgdG8gYW5zd2VyIHlvdSBsYXRlciIsInN0YXR1c0Jhci5vbmxpbmVUZXh0IjoiV2UgcmVwbHkgaW1tZWRpYXRlbHkiLCJ0aW1lYWdvLmp1c3ROb3ciOiJqdXN0IG5vdyIsInRpbWVhZ28ub25lRGF5QWdvIjoiMSBkYXkgYWdvIiwidGltZWFnby5vbmVIb3VyQWdvIjoiMSBob3VyIGFnbyIsInRpbWVhZ28ub25lTWludXRlQWdvIjoiMSBtaW51dGUgYWdvIiwidGltZWFnby5vbmVNb250aEFnbyI6IjEgbW9udGggYWdvIiwidGltZWFnby5vbmVXZWVrQWdvIjoiMSB3ZWVrIGFnbyIsInRpbWVhZ28ub25lWWVhckFnbyI6IjEgeWVhciBhZ28iLCJ0aW1lYWdvLnJpZ2h0Tm93IjoicmlnaHQgbm93IiwidGltZWFnby5zZWNvbmRzIjoiaW4gJXMgc2Vjb25kcyIsInRpbWVhZ28uWERheXNBZ28iOiInJXMgZGF5cyBhZ28iLCJ0aW1lYWdvLlhIb3Vyc0FnbyI6IiVzIGhvdXJzIGFnbyIsInRpbWVhZ28uWE1pbnV0ZXNBZ28iOiIlcyBtaW51dGVzIGFnbyIsInRpbWVhZ28uWE1vbnRoc0FnbyI6IiVzIG1vbnRocyBhZ28iLCJ0aW1lYWdvLlhTZWNvbmRzQWdvIjoiJXMgc2Vjb25kcyBhZ28iLCJ0aW1lYWdvLlhXZWVrc0FnbyI6IiVzIHdlZWtzIGFnbyIsInRpbWVhZ28uWFllYXJzQWdvIjoiJXMgeWVhcnMgYWdvIiwidG9vbHRpcC5taW5pbWl6ZSI6Ik1pbmltaXplIGNoYXQiLCJ0b29sdGlwLm1vcmVCdXR0b24iOiJTaG93IE1vcmUiLCJ0b29sdGlwLnJhdGVDaGF0IjoiUmF0ZSBDaGF0IiwidG9wQmFyLmVtYWlsVHJhbnNjcmlwdCI6IlNlbmQgZW1haWwgdHJhbnNjcmlwdCIsInRvcEJhci5nZHByVGl0bGUiOiJHRFBSIGFuZCBwcml2YWN5IiwidG9wQmFyLm9mZmxpbmUuaGVsbG8iOiJTZW5kIHVzIGEgbWVzc2FnZSIsInRvcEJhci5vbmxpbmUuaGVsbG8iOiJIb3cgY2FuIHdlIGhlbHA/IiwidG9wQmFyLnR1cm5PZmZTb3VuZHMiOiJUdXJuIG9mZiBzb3VuZHMiLCJ0b3BCYXIudHVybk9uU291bmRzIjoiVHVybiBvbiBzb3VuZHMiLCJ0cmlnZ2VyLm9wZW5DaGF0QnV0dG9uIjoiTGV0J3MgY2hhdCIsInZhbGlkYXRpb25zLmlzRW1haWwiOiJQbGVhc2UgZW50ZXIgdmFsaWQgZW1haWwiLCJ2YWxpZGF0aW9ucy5waG9uZSI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIHBob25lIG51bWJlciIsInZhbGlkYXRpb25zLnJlcXVpcmVkIjoiUGxlYXNlIGZpbGwgb3V0IHRoaXMgZmllbGQiLCJ3YXJuaW5nQmFyLnNhbWVNZXNzYWdlVHdpY2UiOiJDYW5ub3Qgc2VuZCB0aGUgc2FtZSBtZXNzYWdlIHR3aWNlIGluIGEgcm93LiIsIndhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0IjoiRmlyc3QgbWVzc2FnZSBjYW5ub3QgYmUgYSBmaWxlIn19LCJ1cmxDYXJkc0VuYWJsZWQiOnRydWUsIndpZGdldFZlcnNpb24iOjMsImhhc0ludGVybmFsQXBpIjpmYWxzZSwiY29uZmlnIjp7fSwiYnJvd3NlckxhbmciOiJlbiIsIndpZGdldFRyYWNrZXJVcmwiOiJodHRwczovL3dpZGdldC10cmFja2VyLnNtYXJ0c3VwcC5jb20iLCJ0cmFuc2xhdGlvbnNCYXNlVXJsIjoiaHR0cHM6Ly90cmFuc2xhdGlvbnMuc21hcnRzdXBwY2RuLmNvbSIsIndpZGdldFRyYWNrZXJFbmFibGVkIjpmYWxzZX0="}},"time_used":87,"timings":{"blocked":0,"dns":3,"connect":24,"send":0,"wait":30,"receive":0,"ssl":30},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/main-t6WxLABA.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:17:02.973Z","timestamp":1785129422973,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/main-t6WxLABA.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:17:02 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-3f99\"\r\nexpires: Wed, 07 Jul 2027 08:30:00 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kwmxBGGGavLj9qN22XdqPglVOU6/E5mK8vBVbzOKgQqAEdMLhv4CcUh+KuFjLXcBnsLYpNI\r\nx-77-nzt-ray: e2f754206215f709cee9666ad78e363a\r\nx-77-cache: HIT\r\nx-77-age: 1716384\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":16281,"size_decoded":6837,"mime_type":"application/javascript","magic":"Java source, ASCII text, with very long lines (15873)","md5":"9253d4d9d6ea32e484f0be9a0320a7a7","sha1":"762fb8fdf15626507c1c26a66aa7fe399d39e803","sha256":"1fb0b8e426f707feea50785bc24016fe14a76fb763d5eca3bc9b1d265bf77fa2","sha512":"5a1592fc87a402c636315def22f3c60dd7eeda34701b08005a192ae060acbe7ed8ae8aa709cc1664c3d9489c641e1ada60e79c66f13073ab61e6ba5bd86f524d","ssdeep":"384:9rgi5RFMkSjJOE/0BW2rkZZ795P6zrnBOVmPCRkXQbpaIF2K:9EizlSjJOEiWYoR5P6nnBOVmycQbpaId","tlshash":"0272d7742700783f711f489e16ade546b232c29dd693892d9b6fec0976c5cc0a8b37b9","first_seen":"2026-07-07T11:50:17.711459Z","last_seen":"2026-07-27T07:27:47.896741Z","times_seen":1890,"resource_available":true,"data":"Y29uc3QgX192aXRlX19tYXBEZXBzPShpLG09X192aXRlX19tYXBEZXBzLGQ9KG0uZnx8KG0uZj1bd2luZG93LnBhcmVudC5zbWFydHN1cHAuZ2V0QXNzZXRVcmwoImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItREQ3T3l5VDUuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL3NoYXJlZC1DZ01DQWZvci5qcyIpLHdpbmRvdy5wYXJlbnQuc21hcnRzdXBwLmdldEFzc2V0VXJsKCJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtQzBYSFB4ZXYuanMiKSx3aW5kb3cucGFyZW50LnNtYXJ0c3VwcC5nZXRBc3NldFVybCgiYXNzZXRzL1dpZGdldFBvcHVwLXFldXdrY0JuLmpzIildKSkpPT5pLm1hcChpPT5kW2ldKTsKaW1wb3J0e0EgYXMgZSxBaSBhcyB0LEFyIGFzIG4sQXQgYXMgcixCIGFzIGksQmkgYXMgYSxDIGFzIG8sQ2kgYXMgcyxEIGFzIGMsRGkgYXMgbCxFIGFzIHUsRWkgYXMgZCxHaSBhcyBmLEdyIGFzIHAsSGkgYXMgbSxIbiBhcyBoLEhyIGFzIGcsSSBhcyBfLElpIGFzIHYsSiBhcyB5LEppIGFzIGIsS2kgYXMgeCxLciBhcyBTLExpIGFzIEMsTSBhcyBlZSxOIGFzIHRlLE5pIGFzIHcsTyBhcyBuZSxPciBhcyByZSxQaSBhcyBpZSxQciBhcyBhZSxQdCBhcyBvZSxSIGFzIHNlLFMgYXMgY2UsU2kgYXMgbGUsVCBhcyB1ZSxUaSBhcyBULFVpIGFzIGRlLFVyIGFzIEUsVmkgYXMgRCxXaSBhcyBmZSxXbiBhcyBwZSxXdCBhcyBtZSxYaSBhcyBPLFhyIGFzIGssWHQgYXMgaGUsWSBhcyBnZSxZaSBhcyBBLFluIGFzIGosWXIgYXMgX2UsWmkgYXMgTSxaciBhcyB2ZSxfIGFzIHllLGEgYXMgYmUsYWEgYXMgTixiIGFzIHhlLGJpIGFzIFAsY2EgYXMgRixkIGFzIFNlLGRpIGFzIENlLGR0IGFzIHdlLGVhIGFzIFRlLGVpIGFzIEksZiBhcyBFZSxmaSBhcyBMLGggYXMgRGUsaGkgYXMgUixpIGFzIHosaWEgYXMgQixqIGFzIE9lLGppIGFzIFYsam4gYXMga2Usa2kgYXMgQWUsa3IgYXMgamUsbCBhcyBNZSxsYSBhcyBOZSxsaSBhcyBILG0gYXMgUGUsbWkgYXMgRmUsbiBhcyBJZSxuYSBhcyBMZSxvIGFzIFUsb2kgYXMgVyxvciBhcyBHLHBpIGFzIEsscSBhcyBSZSxxbiBhcyB6ZSxyIGFzIHEscyBhcyBCZSx0IGFzIFZlLHRhIGFzIEhlLHRpIGFzIEosdSBhcyBVZSx1aSBhcyBZLHcgYXMgWCx3aSBhcyBaLHggYXMgV2UseGkgYXMgR2UseSBhcyBLZSx5aSBhcyBxZX1mcm9tIi4vc2hhcmVkLUNnTUNBZm9yLmpzIjt2YXIgSmU9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBZZShlLHQpe04odCwhMCk7bGV0IG49eChudWxsKSxyPWAke1MoKS5TTUFSVFNVUFBfQVVUT0NSRUFURT09PSExP2cod2luZG93KS5pZDpgc21hcnRzdXBwYH0td2lkZ2V0LWNvbnRhaW5lcmA7aygoKT0+e3cobikmJnAoKS5ib2R5LmFwcGVuZENoaWxkKHcobikpfSksX2UoKCk9PntwKCkuZ2V0RWxlbWVudEJ5SWQocik/LnJlbW92ZSgpfSk7dmFyIGk9SmUoKTtSKGEoaSksKCk9PnQuY2hpbGRyZW4/P05lKSxGKGkpLEooaSxlPT5mKG4sZSksKCk9PncobikpLHYoKCk9PlcoaSxgaWRgLHIpKSxaKGUsaSksQigpfXZhciBYZT1kKGA8aWZyYW1lIGFsbG93ZnVsbHNjcmVlbj0iIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT5gKTtmdW5jdGlvbiBRKGUsdCl7Tih0LCEwKTtsZXQgbj0oKT0+TShjLGAkdGhlbWVDb2xvcmAsciksW3IsaV09TygpLGE9eCh2b2lkIDApLG89eChudWxsKSxsO0MoKCk9Pnt3KG8pJiZ1KHcobykpfSksQygoKT0+e3cobykmJmQobigpKX0pO2xldCB1PWFzeW5jIGU9PntsJiZhd2FpdCBzKGwpLGUmJnQuY29tcG9uZW50JiYobD1HZSh0LmNvbXBvbmVudCx7dGFyZ2V0OmUuYm9keX0pKX0sZD1lPT57dyhvKSYmbmUodyhvKSxlKX0scD1lPT57aWYoIXcobykpcmV0dXJuO2xldCB0PXcobykuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtyZXR1cm4gdC50ZXh0Q29udGVudD1lLHcobykuaGVhZC5hcHBlbmRDaGlsZCh0KSx0fSxtPSgpPT57Zm9yKGxldCBlIG9mIHdpbmRvdy5kb2N1bWVudC5zdHlsZVNoZWV0cyl7bGV0IHQ9YGA7dHJ5e3Q9Wy4uLmUuY3NzUnVsZXNdLm1hcChlPT5lLmNzc1RleHQpLmpvaW4oYGApfWNhdGNoe2NvbnRpbnVlfWlmKCFwKHQpKXJldHVybn19LGg9KCk9PnshdyhhKXx8IXcoYSkuY29udGVudERvY3VtZW50fHwoZihvLHcoYSkuY29udGVudERvY3VtZW50LCEwKSxtKCkpfTtrKGFzeW5jKCk9Pnthd2FpdCBpZSgpLHcoYSk/LmNvbnRlbnREb2N1bWVudCYmdyhhKS5jb250ZW50RG9jdW1lbnQucmVhZHlTdGF0ZT09PWBjb21wbGV0ZWAmJncoYSkuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3P2goKTp3KGEpPy5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxoKX0pLF9lKGFzeW5jKCk9Pnt3KGEpJiZ3KGEpLnJlbW92ZUV2ZW50TGlzdGVuZXIoYGxvYWRgLGgpLGwmJmF3YWl0IHMobCl9KTt2YXIgZz1YZSgpO0ooZyxlPT5mKGEsZSksKCk9PncoYSkpLHYoKCk9PntXKGcsYGlkYCx0LmlkKSxXKGcsYHRpdGxlYCx0LnRpdGxlKSxIKGcsdC5mcmFtZVN0eWxlKX0pLFooZSxnKSxCKCksaSgpfXZhciBaZT1sKGA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0IDY0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPjxwYXRoIGQ9Ik02My4xMTMsMTguNTF2LS4xNkM2MC4zMjMsNy4wNSw0NC41ODIsMywzMS45NzIsM1MzLjU4Miw3LC43OTIsMTguNWE2Ni4yMiw2Ni4yMiwwLDAsMCwwLDIwLjQ2YzEuMTgsNC43NCw1LjA1LDguNjMsMTEuMzYsMTEuNDFsLTQsNUEzLjQ3LDMuNDcsMCwwLDAsMTAuODgyLDYxYTMuMzksMy4zOSwwLDAsMCwxLjQ0LS4zMUwyNi44NjIsNTRjMS43OS4xOCwzLjQ5LjI3LDUuMDcuMjcsMTEuMDQuMDQsMjguNDEtNC4wNCwzMS4xOC0xNS40M2E2MC4zMyw2MC4zMywwLDAsMCwwLTIwLjMzWiI+PC9wYXRoPjwvc3ZnPmApO2Z1bmN0aW9uIFFlKGUsdCl7bGV0IG49dmUodCxgaWNvblNpemVgLDMsMTYpO3ZhciByPVplKCk7digoKT0+e1cocixgd2lkdGhgLG4oKSksVyhyLGBoZWlnaHRgLG4oKSl9KSxaKGUscil9ZnVuY3Rpb24gJGUoZSx0KXtOKHQsITApO2xldCBuPXgoITEpO2soKCk9PntmKG4sITApfSk7dmFyIHI9VCgpLGk9RChyKSxhPWU9Pnt2YXIgbj1UKCk7UihEKG4pLCgpPT50LmNoaWxkcmVuPz9OZSksWihlLG4pfTtQKGksZT0+e3cobikmJmUoYSl9KSxaKGUsciksQigpfXZhciBldD1kKGA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0gdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGdyb3VwLWhvdmVyOnNjYWxlLTExNSI+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gdHQoZSl7JGUoZSx7Y2hpbGRyZW46KGUsdCk9Pnt2YXIgbj1ldCgpO1FlKGEobikse2ljb25TaXplOjI0fSksRihuKSxLKDMsbiwoKT0+QmUsKCk9Pih7ZGVsYXk6MjAwLGR1cmF0aW9uOjMwMCxzdGFydDouNixvcGFjaXR5Oi44fSkpLFooZSxuKX0sJCRzbG90czp7ZGVmYXVsdDohMH19KX12YXIgbnQ9ZChgPGRpdiBjbGFzcz0icC0xIj48ZGl2IGNsYXNzPSJmbGV4LWNlbnRlciB3LTEyIGgtMTIgYmctd2hpdGUgYmctb3BhY2l0eS0xMCByb3VuZGVkLWZ1bGwiPjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIHJ0KGUpe3ZhciB0PW50KCksbj1hKHQpO3R0KGEobikse30pLEYobiksRih0KSxaKGUsdCl9dmFyIGl0PWQoYDxkaXYgY2xhc3M9ImZsZXgiPjxkaXYgY2xhc3M9ImZsZXgtY2VudGVyIHdoaXRlc3BhY2Utbm93cmFwIHBsLTQgcHItMSI+IDwvZGl2PiA8IT48L2Rpdj5gKTtmdW5jdGlvbiBhdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oaixgJHRgLHIpLFtyLGldPU8oKSxvPWZlKCk7aygoKT0+e2xldCBlPU1hdGguY2VpbCh3KG8pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKTtVZS5zZXQoZSl9KSxJKCk7dmFyIHM9aXQoKSxjPWEocyksbD1hKGMsITApO0YoYykscnQobShjLDIpLHt9KSxGKHMpLEoocyxlPT5mKG8sZSksKCk9PncobykpLHYoZT0+e1coYyxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0QnV0dG9uVGV4dCksbGUobCxlKX0sWygpPT5uKCkoYGJ1dHRvbi5ncmVldGluZ2ApXSksWihlLHMpLEIoKSxpKCl9dmFyIG90PWQoYDxkaXYgaWQ9IndpZGdldC1vbmxpbmUtYmFkZ2UiIGNsYXNzPSJhYnNvbHV0ZSBsZWZ0LTAgYm90dG9tLTAgdy0yIGgtMiBwLTEuNSBiZy1ncmVlbi00MDAgcm91bmRlZC1mdWxsIGJvcmRlci0yIGJvcmRlci13aGl0ZSI+PC9kaXY+YCk7ZnVuY3Rpb24gc3QoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGtlLGAkaXNXaWRnZXRPbmxpbmVgLHIpLFtyLGldPU8oKTtJKCk7dmFyIGE9VCgpLG89RChhKSxzPWU9Pnt2YXIgdD1vdCgpO3YoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0T25saW5lQmFkZ2UpKSxLKDMsdCwoKT0+QmUpLFooZSx0KX07UChvLGU9PntuKCkmJmUocyl9KSxaKGUsYSksQigpLGkoKX12YXIgY3Q9ZChgPGRpdiBpZD0id2lkZ2V0LXVucmVhZC1tZXNzYWdlcy1iYWRnZSIgY2xhc3M9ImFic29sdXRlIHJpZ2h0LTAgdG9wLTAgbWluLXctNSBoLTUgZmxleC1jZW50ZXIgcHgtMSB0ZXh0LXdoaXRlIGJnLXJlZC02MDAgdGV4dC14cyByb3VuZGVkLWZ1bGwgc2hhZG93Ij4gPC9kaXY+YCk7ZnVuY3Rpb24gbHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKGhlLGAkdW5yZWFkTWVzc2FnZXNDb3VudGAsciksW3IsaV09TygpLG89QSgoKT0+bigpPjApO3ZhciBzPVQoKSxjPUQocyksbD1lPT57dmFyIHQ9Y3QoKSxyPWEodCwhMCk7Rih0KSx2KCgpPT57Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRVbnJlYWRNZXNzYWdlc0JhZGdlKSxsZShyLG4oKT45OT9gOTkrYDpuKCkpfSksSygzLHQsKCk9PkJlKSxaKGUsdCl9O1AoYyxlPT57dyhvKSYmZShsKX0pLFooZSxzKSxCKCksaSgpfXZhciB1dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgdy1mdWxsIGZpeGVkIGZsZXgganVzdGlmeS1lbmQgYm9yZGVyLXJvdW5kZWQtZnVsbCI+PGRpdiByb2xlPSJidXR0b24iIGNsYXNzPSJncm91cCBmbGV4LWNlbnRlciB3LWZ1bGwgYmctcHJpbWFyeS1ncmFkaWVudCBiZy1wcmltYXJ5LWdyYWRpZW50LWhvdmVyIHRleHQtcHJpbWFyeS1jb250ZW50IHJvdW5kZWQtZnVsbCBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLXBvaW50ZXIgY29udGVudC1mb2N1cy1zZWNvbmRhcnkiPjwhPiA8IT48L2Rpdj4gPCE+PC9kaXY+YCk7ZnVuY3Rpb24gZHQoZSxuKXtOKG4sITEpO2xldCBpPSgpPT5NKGosYCR0YCxzKSxvPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLFtzLGNdPU8oKTtJKCk7dmFyIGw9dXQoKSx1PWEobCk7Vyh1LGB0YWJpbmRleGAsMCk7dmFyIGQ9YSh1KSxmPWU9Pnt0dChlLHt9KX0scD1lPT57YXQoZSx7fSl9O1AoZCxlPT57bygpP2UoZik6ZShwLC0xKX0pLHN0KG0oZCwyKSx7fSksRih1KSxsdChtKHUsMikse30pLEYobCksdihlPT57Vyh1LGBhcmlhLWxhYmVsYCxlKSxXKHUsYGRhdGEtdGVzdGlkYCxHLndpZGdldEJ1dHRvbil9LFsoKT0+aSgpKGBhcmlhTGFiZWwub3BlbkNoYXRgKV0pLHQoYGNsaWNrYCx1LCgpPT5zZSgpKSxWKGBrZXlwcmVzc2AsdSxlPT5lLmtleT09PXIuRW50ZXImJnNlKCkpLFooZSxsKSxCKCksYygpfUFlKFtgY2xpY2tgXSk7dmFyIGZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gcHQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKFNlLGAkYnV0dG9uRnJhbWVXaWR0aGAscykscj0oKT0+TSh0ZSxgJHNob3VsZFJlbmRlckJ1dHRvbkZyYW1lYCxzKSxpPSgpPT5NKERlLGAkaXNXaWRnZXRCdXR0b25CdWJibGVgLHMpLG89KCk9Pk0oaixgJHRgLHMpLFtzLGNdPU8oKSxsPXgodm9pZCAwKSxkPWU9Pnt3KGwpJiYodyhsKS5zdHlsZS53aWR0aD1gJHtlfXB4YCl9LHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6cH09RS5nZXRPcHRpb25zKCk7QygoKT0+e3cobCkmJmQobigpKX0pO3ZhciBtPVQoKSxoPUQobSksZz1lPT57dmFyIHQ9ZnQoKTtsZXQgbjtxZShhKHQpLCgpPT5pKCl8fG8oKSxlPT57e2xldCB0PUEoWCk7UShlLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIGR0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRCdXR0b25GcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgYnV0dG9uYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KHQpfX0pfX0pLEYodCksSih0LGU9PmYobCxlKSwoKT0+dyhsKSksTCh0LGU9PktlPy4oZSkpLHYoZT0+e249SCh0LGBib3JkZXItcmFkaXVzOiA5OTk5cHg7IGJveC1zaGFkb3c6IHJnYigwIDAgMCAvIDYlKSAwcHggMXB4IDZweCwgcmdiKDAgMCAwIC8gJHtwPy5saW1pdFNoYWRvdz9gMjAlKSAwcHggMnB4IDEycHhgOmAxMiUpIDBweCAycHggMzJweGB9OyBjb2xvci1zY2hlbWU6IG5vcm1hbDtgLG4sZSksVyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRCdXR0b25GcmFtZSl9LFsoKT0+KHtoZWlnaHQ6dSg1Nil9KV0pLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZGVsYXk6MTUwLGR1cmF0aW9uOjMwMH0pKSxLKDIsdCwoKT0+YmUsKCk9Pih7ZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChoLGU9PntyKCkmJmUoZyl9KSxaKGUsbSksQigpLGMoKX12YXIgJD1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkluaXRpYWxpemVkPTBdPWBJbml0aWFsaXplZGAsZVtlLkxvYWRpbmc9MV09YExvYWRpbmdgLGVbZS5TdWNjZXNzPTJdPWBTdWNjZXNzYCxlW2UuRXJyb3I9M109YEVycm9yYCxlfSh7fSksbXQ9bmV3IE1hcCxodD1hc3luYyBlPT57bGV0IHQ9KGF3YWl0IGUoKSkuZGVmYXVsdDtyZXR1cm4gbXQuc2V0KGUsdCksdH07ZnVuY3Rpb24gZ3QoZSx0KXtOKHQsITApO2xldCBuPXZlKHQsYGRlbGF5YCwzLDIwMCkscj14KGRlKCQuSW5pdGlhbGl6ZWQpKSxpPXgodm9pZCAwKSxhPXgodm9pZCAwKSxvPXgodm9pZCAwKSxzPUEoKCk9PncoaSkpLGM9KCk9Pnt3aW5kb3cuY2xlYXJUaW1lb3V0KHcobykpfSxsPWFzeW5jKCk9PntjKCksZihhLHZvaWQgMCksZihpLHZvaWQgMCksbigpPjA/KGYociwkLkluaXRpYWxpemVkLCEwKSxmKG8sd2luZG93LnNldFRpbWVvdXQoKCk9PntmKHIsJC5Mb2FkaW5nLCEwKX0sbigpKSwhMCkpOmYociwkLkxvYWRpbmcsITApO3RyeXtmKGksYXdhaXQgaHQodC5sb2FkZXIpLCEwKSxmKHIsJC5TdWNjZXNzLCEwKX1jYXRjaChlKXtpZihmKHIsJC5FcnJvciwhMCksZSBpbnN0YW5jZW9mIEVycm9yKWYoYSxlLCEwKTtlbHNlIHRocm93IGV9YygpfTttdC5oYXModC5sb2FkZXIpPyhmKHIsJC5TdWNjZXNzLCEwKSxmKGksbXQuZ2V0KHQubG9hZGVyKSwhMCkpOmsoKCk9PntsKCl9KTt2YXIgdT1UKCksZD1EKHUpLHA9ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQuZXJyb3IsKCk9Pih7ZXJyb3I6dyhhKX0pKSxaKGUsbil9LG09ZT0+e3ZhciBuPVQoKTtSKEQobiksKCk9PnQubG9hZGluZyksWihlLG4pfSxoPWU9Pnt2YXIgdD1UKCk7RmUoRCh0KSwoKT0+dyhzKSwoZSx0KT0+e3QoZSx7fSl9KSxaKGUsdCl9O1AoZCxlPT57dyhyKT09PSQuRXJyb3ImJnQuZXJyb3I/ZShwKTp3KHIpPT09JC5Mb2FkaW5nP2UobSwxKTp3KHIpPT09JC5TdWNjZXNzJiZlKGgsMil9KSxaKGUsdSksQigpfXZhciBfdD0oKT0+YWUoKCk9PmltcG9ydChgLi9XaWRnZXRNZXNzZW5nZXItREQ3T3l5VDUuanNgKSxfX3ZpdGVfX21hcERlcHMoWzAsMSwyXSksaW1wb3J0Lm1ldGEudXJsKSx2dD1lPT57dmFyIHQ9YnQoKSxuPWEodCkscj1hKG4pO3EoYShyKSx7c2l6ZTozMn0pLEYocik7dmFyIGk9bShyLDIpLG89YShpKTtxKG8se3NpemU6MzJ9KTt2YXIgcz1tKG8sMik7cShzLHtzaXplOjMyfSkscShtKHMsMikse3NpemU6MzJ9KSxGKGkpLEYobik7dmFyIGM9bShuLDIpLGw9YShjKTtxKGEobCkse3NpemU6NDR9KSxGKGwpO3ZhciB1PW0obCwyKSxkPWEodSk7eihkLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSkseihtKGQsMikse2hlaWdodDoyMCx3aWR0aDoxMjJ9KSxGKHUpLEYoYyk7dmFyIGY9bShjLDIpLHA9YShmKTtxKGEocCkse3NpemU6Mjh9KSxGKHApO3ZhciBoPW0ocCwyKTt6KGEoaCkse2hlaWdodDoxMTIsd2lkdGg6Mjk1LHJvdW5kZWRTdHlsZTpgcm91bmRlZC02YH0pLEYoaCksRihmKTt2YXIgZz1tKGYsMiksXz1hKGcpO3ooXyx7aGVpZ2h0OjMyLHdpZHRoOjI5NX0pO3ZhciB2PW0oXywyKTt6KHYse2hlaWdodDozMix3aWR0aDoxNDh9KSx6KG0odiwyKSx7aGVpZ2h0OjMyLHdpZHRoOjIyNH0pLEYoZyksRih0KSxaKGUsdCl9LHl0PShlLHQpPT57bGV0IG49KCk9PnQ/LigpLmVycm9yO3ZhciByPXh0KCksaT1tKGEociksMiksbz1hKGksITApO0YoaSksRihyKSx2KCgpPT5sZShvLG4oKSkpLFooZSxyKX0sYnQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSIgaWQ9IlRPRE8gdGVzdCI+PGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWJldHdlZW4iPjxkaXYgY2xhc3M9ImZsZXgiPjwhPjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IHNwYWNlLXgtMiI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBtdC0yIj48ZGl2IGNsYXNzPSJmbGV4IG1sLTEgbXItMiI+PCE+PC9kaXY+IDxkaXYgY2xhc3M9ImZsZXgtYm90dG9tIHNwYWNlLXktMiI+PCE+IDwhPjwvZGl2PjwvZGl2PiA8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWJhc2VsaW5lIG10LTgiPjxkaXYgY2xhc3M9ImZsZXggbWwtMSBtci0yIj48IT48L2Rpdj4gPGRpdiBjbGFzcz0ic3BhY2UteS0yIj48IT48L2Rpdj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCBpdGVtcy1lbmQgc3BhY2UteS01IG10LTggbXItMSI+PCE+IDwhPiA8IT48L2Rpdj48L2Rpdj5gKSx4dD1kKGA8ZGl2IGNsYXNzPSJoLWZ1bGwgcC00IGJnLXdoaXRlIHRleHQtcmVkLTUwMCI+PGRpdiBjbGFzcz0idGV4dC1sZyBmb250LWJvbGQiPkZhaWxlZCB0byBsb2FkIHdpZGdldDwvZGl2PiA8ZGl2IGNsYXNzPSJ0ZXh0LXhzIj4gPC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gU3QoZSl7Z3QoZSx7Z2V0IGxvYWRlcigpe3JldHVybiBfdH0sZGVsYXk6MCxnZXQgZXJyb3IoKXtyZXR1cm4geXR9LGdldCBsb2FkaW5nKCl7cmV0dXJuIHZ0fX0pfXZhciBDdD1kKGA8ZGl2PjwhPjwvZGl2PmApO2Z1bmN0aW9uIHd0KGUsdCl7Tih0LCEwKTtsZXQgcj0oKT0+TShqZSxgJGlzRnVsbFNjcmVlbkVuYWJsZWRgLGwpLG89KCk9Pk0oUGUsYCRpc01lc3NlbmdlckZyYW1lRXhwYW5kZWRgLGwpLHM9KCk9Pk0obixgJGlzTW9iaWxlRGV2aWNlYCxsKSxjPSgpPT5NKGksYCRzaG91bGRSZW5kZXJNZXNzZW5nZXJGcmFtZWAsbCksW2wsZF09TygpLG09eCh2b2lkIDApLGc9YE1vYmlsZVdpZGdldE1lc3Nlbmdlck9wZW5gLF89KGUsdCk9PntpZighdyhtKSlyZXR1cm47bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1FLmdldE9wdGlvbnMoKSx7d2lkdGg6cixoZWlnaHQ6aX09dWUoZSx0KTt3KG0pLnN0eWxlLm1heEhlaWdodD1oKGkpP2k6dShpKSx3KG0pLnN0eWxlLndpZHRoPWgocik/cjp1KHIpLHcobSkuc3R5bGUuaGVpZ2h0PWV8fG4/LmhlYWRsZXNzTW9kZT9gMTAwJWA6YGNhbGMoMTAwJSAtIDQwcHgpYH07QygoKT0+e3cobSkmJl8ocigpLG8oKSl9KTtsZXQgeT14KCExKTtDKCgpPT57aWYocygpKXtpZihjKCkmJiF3KHkpKXtsZXQgZT1wKCkuY3JlYXRlRWxlbWVudChgc3R5bGVgKTtlLnRleHRDb250ZW50PWAqIHtvdmVyZmxvdzogaGlkZGVufWAsZS5jbGFzc05hbWU9ZyxwKCkuaGVhZC5hcHBlbmRDaGlsZChlKSxmKHksITApfWlmKCFjKCkmJncoeSkpe2xldCBlPXAoKS5oZWFkLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZyk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0KyspcCgpLmhlYWQucmVtb3ZlQ2hpbGQoZVt0XSk7Zih5LCExKX19fSk7dmFyIGI9VCgpLFM9RChiKSxlZT1lPT57dmFyIHQ9Q3QoKTtIKHQsYGAse30se3RyYW5zaXRpb246YG1heC1oZWlnaHQgMjUwbXMgZWFzZS1pbi1vdXQsIHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0YCxvdmVyZmxvdzpgaGlkZGVuYH0pO3ZhciBuPWEodCk7e2xldCBlPUEoWCk7UShuLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIFN0fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRNZXNzZW5nZXJGcmFtZX0sdGl0bGU6YFNtYXJ0c3VwcCB3aWRnZXQgbWVzc2VuZ2VyYCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LChlLHQpPT54ZT8uKGUsdCksciksSih0LGU9PmYobSxlKSwoKT0+dyhtKSksdigoKT0+Vyh0LGBkYXRhLXRlc3RpZGAsRy53aWRnZXRNZXNzZW5nZXJGcmFtZSkpLEsoMSx0LCgpPT5VLCgpPT4oe3k6MjAsZHVyYXRpb246MjAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MTUwfSkpLFooZSx0KX07UChTLGU9PntjKCkmJmUoZWUpfSksWihlLGIpLEIoKSxkKCl9dmFyIFR0PSgpPT5hZSgoKT0+aW1wb3J0KGAuL1dpZGdldFBvcHVwLXFldXdrY0JuLmpzYCksX192aXRlX19tYXBEZXBzKFszLDEsMl0pLGltcG9ydC5tZXRhLnVybCksRXQ9ZT0+e3ZhciB0PUR0KCksbj1hKHQpO3Eobix7c2l6ZTo0NH0pO3ZhciByPW0obiwyKSxpPWEocik7eihpLHtoZWlnaHQ6MjAsd2lkdGg6MjcwfSk7dmFyIG89bShpLDIpO3oobyx7aGVpZ2h0OjIwLHdpZHRoOjI3MH0pLHoobShvLDIpLHtoZWlnaHQ6MjAsd2lkdGg6MTIyfSksRihyKSxGKHQpLFooZSx0KX0sRHQ9ZChgPGRpdiBjbGFzcz0iaC1mdWxsIHAtMiBiZy13aGl0ZSI+PCE+IDxkaXYgY2xhc3M9Im10LTQgc3BhY2UteS0yIj48IT4gPCE+IDwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIE90KGUpe2d0KGUse2dldCBsb2FkZXIoKXtyZXR1cm4gVHR9LGRlbGF5OjAsZ2V0IGxvYWRpbmcoKXtyZXR1cm4gRXR9fSl9dmFyIGt0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gQXQoZSx0KXtOKHQsITApO2xldCBuPSgpPT5NKHllLGAkcG9wdXBGcmFtZUhlaWdodGAsbykscj0oKT0+TShFZSxgJGhhc1BvcHVwRnJhbWVIb3ZlcmAsbyksaT0oKT0+TShPZSxgJHNob3VsZFJlbmRlclBvcHVwRnJhbWVgLG8pLFtvLHNdPU8oKSxjPXgodm9pZCAwKSxsPWU9Pnt3KGMpJiYodyhjKS5zdHlsZS5tYXhIZWlnaHQ9YCR7ZX1weGApfSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOmR9PUUuZ2V0T3B0aW9ucygpO0MoKCk9Pnt3KGMpJiZsKG4oKSl9KTtsZXQgcD1BKCgpPT5yKCk/LjI4Oi4xNik7dmFyIG09VCgpLGg9RChtKSxnPWU9Pnt2YXIgdD1rdCgpO2xldCBuO3ZhciByPWEodCk7e2xldCBlPUEoWCk7UShyLHtnZXQgY29tcG9uZW50KCl7cmV0dXJuIE90fSxnZXQgaWQoKXtyZXR1cm4gRy53aWRnZXRQb3B1cEZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBwb3B1cGAsZ2V0IGZyYW1lU3R5bGUoKXtyZXR1cm4gdyhlKX19KX1GKHQpLEoodCxlPT5mKGMsZSksKCk9PncoYykpLEwodCxlPT5jZT8uKGUpKSx2KGU9PntuPUgodCxgaGVpZ2h0OiBjYWxjKDEwMCUgLSA0MHB4KTsgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0LCBtYXgtaGVpZ2h0IDI1MG1zIGVhc2UtaW4tb3V0YCxuLGUpLFcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0UG9wdXBGcmFtZSl9LFsoKT0+KHt3aWR0aDp1KDMwMCksImJvcmRlci1yYWRpdXMiOnUoMjApLG92ZXJmbG93OmBoaWRkZW5gLCJib3gtc2hhZG93IjpgcmdiYSgwLCAwLCAwLCAke2Q/LmxpbWl0U2hhZG93P2AwLjIpIDBweCAzcHggMTJweGA6YCR7dyhwKX0pIDBweCAzcHggMTZweGB9YH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246NDAwfSkpLFooZSx0KX07UChoLGU9PntpKCkmJmUoZyl9KSxaKGUsbSksQigpLHMoKX12YXIganQ9ZChgPGRpdiBjbGFzcz0iZmxleCBwLTIiPjxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+IDxkaXY+PC9kaXY+PC9kaXY+YCk7ZnVuY3Rpb24gTXQoZSx0KXtsZXQgbj12ZSh0LGBzaXplYCwzLGBtZGApLHI9dmUodCxgY29sb3JgLDMsYGJsYWNrYCksaT1BKCgpPT50Lml0ZXJhdGlvbnM/P2BpbmZpbml0ZWApO3ZhciBvPWp0KCkscz1hKG8pO2xldCBjO3ZhciBsPW0ocywyKTtsZXQgdTt2YXIgZD1tKGwsMik7bGV0IGY7RihvKSx2KCgpPT57WShzLDEsYHR5cGluZy1pbmRpY2F0b3IgJHtuKCl9IGluZGljYXRvci1jb2xvci0ke3IoKX0gYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksYz1IKHMsYGAsYyx7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KSxZKGwsMSxgdHlwaW5nLWluZGljYXRvciAke24oKX0gaW5kaWNhdG9yLWNvbG9yLSR7cigpfSB0eXBpbmctaW5kaWNhdG9yLXNlY29uZCBhbmltYXRlLXR5cGluZ2AsYHN2ZWx0ZS1zNDB4Z2tgKSx1PUgobCxgYCx1LHsiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCI6dyhpKX0pLFkoZCwxLGB0eXBpbmctaW5kaWNhdG9yICR7bigpfSBpbmRpY2F0b3ItY29sb3ItJHtyKCl9IHR5cGluZy1pbmRpY2F0b3ItdGhpcmQgYW5pbWF0ZS10eXBpbmdgLGBzdmVsdGUtczQweGdrYCksZj1IKGQsYGAsZix7ImFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQiOncoaSl9KX0pLFooZSxvKX12YXIgTnQ9ZChgPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgaC1mdWxsIGJnLXdoaXRlIHJvdW5kZWQtbGciPjwhPjwvZGl2PmApO2Z1bmN0aW9uIFB0KGUpe3ZhciB0PU50KCk7TXQoYSh0KSx7aXRlcmF0aW9uczoyfSksRih0KSxaKGUsdCl9dmFyIEZ0PWQoYDxkaXY+PCE+PC9kaXY+YCk7ZnVuY3Rpb24gSXQoZSx0KXtOKHQsITEpO2xldCBuPSgpPT5NKGVlLGAkc2hvdWxkUmVuZGVyVHlwaW5nRnJhbWVgLHIpLFtyLGldPU8oKSx7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnN9PUUuZ2V0T3B0aW9ucygpO0koKTt2YXIgYz1UKCksbD1EKGMpLGQ9ZT0+e3ZhciB0PUZ0KCk7bGV0IG47dmFyIHI9YSh0KTt7bGV0IGU9YihYKTtRKHIse2dldCBjb21wb25lbnQoKXtyZXR1cm4gUHR9LGdldCBpZCgpe3JldHVybiBHLndpZGdldFR5cGluZ0ZyYW1lfSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCB0eXBpbmdgLGdldCBmcmFtZVN0eWxlKCl7cmV0dXJuIHcoZSl9fSl9Rih0KSxMKHQsZT0+bz8uKGUpKSx2KGU9PntuPUgodCxgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjIpICR7cz8ubGltaXRTaGFkb3c/YDBweCAzcHggMTJweGA6YDBweCAzcHggMTZweGB9OyBib3JkZXItcmFkaXVzOiAyNHB4O2AsbixlKSxXKHQsYGRhdGEtdGVzdGlkYCxHLndpZGdldFR5cGluZ0ZyYW1lKX0sWygpPT4oe2hlaWdodDp1KDQwKSx3aWR0aDp1KDcwKSxvdmVyZmxvdzpgaGlkZGVuYH0pXSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheTozMDAsZHVyYXRpb246NDAwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChsLGU9PntuKCkmJmUoZCl9KSxaKGUsYyksQigpLGkoKX12YXIgTHQ9TGUobnVsbCksUnQ9VGUoW0x0XSwoW2VdKT0+ISFlKSx6dD1kKGA8aW1nIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIHNlbGVjdC1ub25lIGJnLWJsYWNrIiB3aWR0aD0iYXV0byIgaGVpZ2h0PSJhdXRvIi8+YCksQnQ9ZChgPHZpZGVvIGNvbnRyb2xzPSIiIGNsYXNzPSJtLWF1dG8gbWF4LWgtZnVsbCBtYXgtdy1mdWxsIGJnLWJsYWNrIG9iamVjdC1jb250YWluIj48dHJhY2sga2luZD0iY2FwdGlvbnMiLz4gPHNvdXJjZS8+PC92aWRlbz5gLDIpLFZ0PWQoYDxkaXYgY2xhc3M9InctZnVsbCBoLWZ1bGwgZmxleCBmbGV4LWNvbCI+PGRpdiBjbGFzcz0iZmxleC1zaHJpbmsgZmxleCBmbGV4LXJvdyB3LWZ1bGwgYmctYmxhY2sgdGV4dC13aGl0ZSI+PGRpdiBjbGFzcz0iZmxleC1ncm93IGZsZXggaXRlbXMtY2VudGVyIHRleHQtbWQgcHgtNCBvdmVyZmxvdy1oaWRkZW4iPjxzcGFuIGNsYXNzPSJ3aGl0ZXNwYWNlLW5vd3JhcCB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlbiI+IDwvc3Bhbj48L2Rpdj4gPGRpdiBjbGFzcz0iZmxleC1zaHJpbmsiPjwhPjwvZGl2PjwvZGl2PiA8ZGl2PjwhPjwvZGl2PjwvZGl2PmApO2Z1bmN0aW9uIEh0KGUsbil7TihuLCEwKTtsZXQgcj0oKT0+TShyZSxgJGlzRGVza3RvcGAscyksaT0oKT0+TShMdCxgJHByZXZpZXdlZE1lZGlhYCxzKSxvPSgpPT5NKGosYCR0YCxzKSxbcyxjXT1PKCksbD1BKHIpLHU9ZT0+e2U9PT1gb3ZlcmxheWAmJiF3KGwpfHxMdC5zZXQobnVsbCl9O3ZhciBkPVZ0KCksZj1hKGQpLHA9YShmKSxoPWEocCksZz1hKGgsITApO0YoaCksRihwKTt2YXIgXz1tKHAsMikseT1hKF8pO3tsZXQgZT1BKCgpPT5vKCkoYHRvb2x0aXAuY2xvc2VgKSk7VmUoeSx7b25DbGljazooKT0+dShgYnV0dG9uYCksZ2V0IGljb24oKXtyZXR1cm4gSWV9LGdldCBpY29uRGVzY3JpcHRpb24oKXtyZXR1cm4gdyhlKX0saWNvblNjYWxlOiEwLHNpemU6YHhsYH0pfUYoXyksRihmKTt2YXIgYj1tKGYsMikseD1hKGIpLFM9ZT0+e3ZhciBuPXp0KCk7digoKT0+e1cobixgc3JjYCxpKCk/LmF0dGFjaG1lbnQudXJsKSxXKG4sYGFsdGAsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKX0pLHQoYGNsaWNrYCxuLGU9PmUuc3RvcFByb3BhZ2F0aW9uKCkpLFYoYGtleXByZXNzYCxuLCgpPT57fSksWihlLG4pfSxDPWU9Pnt2YXIgbj1CdCgpO24uYXV0b3BsYXk9ITAsbi5sb29wPSEwO3ZhciByPW0oYShuKSwyKTtGKG4pLHYoKCk9Plcocixgc3JjYCxpKCkuYXR0YWNobWVudC51cmwpKSx0KGBjbGlja2AsbixlPT5lLnN0b3BQcm9wYWdhdGlvbigpKSxWKGBrZXlwcmVzc2AsbiwoKT0+e30pLFooZSxuKX07UCh4LGU9PntpKCk/LnR5cGU9PT13ZS5JbWFnZT9lKFMpOmkoKT8udHlwZT09PXdlLlZpZGVvJiZlKEMsMSl9KSxGKGIpLEYoZCksdigoKT0+e2xlKGcsaSgpPy5hdHRhY2htZW50LmZpbGVOYW1lKSxZKGIsMSxDZShbYHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiBmbGV4LWdyb3cgZmxleCBpdGVtcy1jZW50ZXIgYmctYmxhY2svODAgei0xMGAscigpP2BwLThgOmBwLTRgXSkpfSksdChgY2xpY2tgLGIsKCk9PnUoYG92ZXJsYXlgKSksVihga2V5cHJlc3NgLGIsKCk9Pnt9KSxLKDEsZCwoKT0+VSwoKT0+KHt5OjIwLGRlbGF5OjMwMCxkdXJhdGlvbjo0MDB9KSksSygyLGQsKCk9PlUsKCk9Pih7eToxMCxkdXJhdGlvbjoyNTB9KSksWihlLGQpLEIoKSxjKCl9QWUoW2BjbGlja2BdKTt2YXIgVXQ9ZChgPGRpdj48IT48L2Rpdj5gKTtmdW5jdGlvbiBXdChlLHQpe04odCwhMSk7bGV0IG49KCk9Pk0oUnQsYCRzaG91bGRSZW5kZXJNZWRpYVByZXZpZXdgLHIpLFtyLGldPU8oKTtJKCk7dmFyIG89VCgpLHM9RChvKSxjPWU9Pnt2YXIgdD1VdCgpO0godCxgYCx7fSx7dHJhbnNpdGlvbjpgbWF4LWhlaWdodCAyNTBtcyBlYXNlLWluLW91dCwgd2lkdGggMjUwbXMgZWFzZS1pbi1vdXRgfSk7dmFyIG49YSh0KTt7bGV0IGU9YigoKT0+WChlPT57ZS5zdHlsZS5wb3NpdGlvbj1gZml4ZWRgfSkpO1Eobix7Z2V0IGNvbXBvbmVudCgpe3JldHVybiBIdH0sZ2V0IGlkKCl7cmV0dXJuIEcud2lkZ2V0SW1hZ2VQcmV2aWV3fSx0aXRsZTpgU21hcnRzdXBwIHdpZGdldCBpbWFnZSBwcmV2aWV3YCxnZXQgZnJhbWVTdHlsZSgpe3JldHVybiB3KGUpfX0pfUYodCksTCh0LGU9PldlPy4oZSkpLHYoKCk9PlcodCxgZGF0YS10ZXN0aWRgLEcud2lkZ2V0SW1hZ2VQcmV2aWV3KSksSygxLHQsKCk9PlUsKCk9Pih7eToyMCxkZWxheToxMDAsZHVyYXRpb246MjUwfSkpLEsoMix0LCgpPT5VLCgpPT4oe3k6MTAsZHVyYXRpb246MjUwfSkpLFooZSx0KX07UChzLGU9PntuKCkmJmUoYyl9KSxaKGUsbyksQigpLGkoKX12YXIgR3Q9ZChgPCE+IDwhPiA8IT4gPCE+IDwhPmAsMSk7ZnVuY3Rpb24gS3QodCxyKXtOKHIsITApO2xldCBpPSgpPT5NKG1lLGAkbGFzdFVucmVhZE1lc3NhZ2VgLG8pLGE9KCk9Pk0oXyxgJGlzTWVzc2VuZ2VyRnJhbWVPcGVuYCxvKSxbbyxzXT1PKCk7aygoKT0+eyhhc3luYygpPT57YXdhaXQgemUoKSxhd2FpdCBwZS5pbml0Q2xpZW50KCl9KSgpfSksQygoKT0+e2koKSYmIWEoKSYmZSgpfSksZ2UoUygpKSxIZShuKSYmeShTKCkpLFllKHQse2NoaWxkcmVuOihlLHQpPT57dmFyIG49R3QoKSxyPUQobik7SXQocix7fSk7dmFyIGk9bShyLDIpO0F0KGkse30pO3ZhciBhPW0oaSwyKTtwdChhLHt9KTt2YXIgbz1tKGEsMik7d3Qobyx7fSksV3QobShvLDIpLHt9KSxaKGUsbil9LCQkc2xvdHM6e2RlZmF1bHQ6ITB9fSksQigpLHMoKX12YXIgcXQ9Zyh3aW5kb3cpO0UuaW5pdChxdC5vcHRpb25zKSxxdC5pbnN0YWxsQXBpKE1lKSxjLnNldFRoZW1lQ29sb3IocXQub3B0aW9ucyksUmUoKSxvZSgpLEdlKEt0LHt0YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYGFwcGApfSk7ZXhwb3J0e010IGFzIG4sTHQgYXMgdH07Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPW1haW4tdDZXeExBQkEuanMubWFw"}},"time_used":9,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":9,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"translations.smartsuppcdn.com/api/v1/widget/translations/lang/en/defaults","fqdn":"translations.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:17:03.084Z","timestamp":1785129423084,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1087630013.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Wed, 03 Jun 2026 14:33:02 GMT","end":"Tue, 01 Sep 2026 14:33:01 GMT"},"fingerprint":{"sha1":"CE:B9:32:81:E9:D2:46:C8:31:53:55:D3:41:19:F7:94:91:30:D1:93","sha256":"54:C9:41:2F:97:E8:14:28:D7:2C:4F:FA:E0:C3:3A:BC:85:F8:14:22:1C:98:23:82:53:4D:5D:58:C9:0B:C9:68"}}},"request":{"raw":"GET /api/v1/widget/translations/lang/en/defaults HTTP/1.1\r\nHost: translations.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://danis-miners.com/\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:17:03 GMT\r\ncontent-type: application/json; charset=utf-8\r\naccess-control-allow-origin: *\r\ncache-control: max-age=600\r\nx-response-time: 1ms\r\nx-version: 0dd3c95f86cdb6b59a0dad25ffcd406aa7c7723b\r\nx-77-nzt: k6k8QvKGHtK7F0IXRyu3vCo6j2JMnZkPlGemNHuB3YRXoJHWJ1fHm4AieoVqnJP4EmKE83I\r\nx-77-nzt-ray: e2f754202ee72248cfe9666a3c26b408\r\nx-77-cache: HIT\r\nx-77-age: 279\r\nvary: Origin, Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":7216,"size_decoded":3346,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"05d7604a60456ab25eb809557b353edc","sha1":"e32135b721636e7994e42748da35341e03dfd123","sha256":"5892aca834fe3f9f8fb66f68c8a3eb2295708a3b428cf355d7f3e3c1a0b7b62e","sha512":"db4124c008e22597192e1f07b44575ff191a03322f763bffb1efd129152e0f6f1546d98f5016967b32cc71a8252fefc0546aef0be258e8343fbba4ae2afe00da","ssdeep":"192:Ccdft/hc4l6WKHSY8pZcqq+jT0UHAfoW/Ymz8:CgF/hcbWbYKZcF+jhqoWQmw","tlshash":"48e1b54f9a144ea987c6438276cfb84675bc80734250993afd8cc8b842697cda3e3b94","first_seen":"2026-04-01T12:23:41.393805Z","last_seen":"2026-07-27T13:21:25.866734Z","times_seen":5254,"resource_available":false,"data":"eyJhZ2VudFJhdGluZy5hbGwucGxhY2Vob2xkZXIiOiJMZWF2ZSB1cyBmZWVkYmFjayIsImFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dCI6IlNvIHNvcnJ5IPCfmJMgV2hhdCB3ZW50IHdyb25nPyIsImFnZW50UmF0aW5nLmdvb2QuZm9ybVRleHQiOiJUaGFua3Mg8J+kqSBXaGF0IHdhcyBzbyBncmVhdD8iLCJhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHQiOiJUaGFua3Mg8J+RjSBIb3cgY2FuIHdlIGltcHJvdmU/IiwiYWdlbnRUcmFuc2Zlci5kZWZhdWx0VGV4dCI6IkFnZW50IiwiYWdlbnRUcmFuc2Zlci5qb2luZWQiOiJqb2luZWQgdGhlIGNoYXQiLCJhZ2VudFRyYW5zZmVyLmxlZnQiOiJsZWZ0IiwiYWdlbnRUcmFuc2Zlci5yZWRpcmVjdGVkIjoiaXMgeW91ciBuZXcgYWdlbnQiLCJhcmlhTGFiZWwuYWdlbnRBdmF0YXIiOiJBZ2VudCBhdmF0YXIiLCJhcmlhTGFiZWwuY2FyZCI6IlByb2R1Y3QgY2FyZCIsImFyaWFMYWJlbC5jaGF0Q29udGVudCI6IkNoYXQgY29udGVudCIsImFyaWFMYWJlbC5jaGF0Ym90QXZhdGFyIjoiQ2hhdGJvdCBhdmF0YXIiLCJhcmlhTGFiZWwuZHJhd2VyLmNvbnRlbnQiOiJEcmF3ZXIgY29udGVudCIsImFyaWFMYWJlbC5kcmF3ZXIub3ZlcmxheSI6IkRyYXdlciBvdmVybGF5IiwiYXJpYUxhYmVsLmlubGluZUVtb2ppUGlja2VyLmRlc2NyaXB0aW9uIjoiU2hvd2luZyB7Y291bnR9IGVtb2ppcyIsImFyaWFMYWJlbC5pbmxpbmVFbW9qaVBpY2tlci5sYWJlbCI6IkVtb2ppIHN1Z2dlc3Rpb25zIiwiYXJpYUxhYmVsLmxlZnQiOiJMZWZ0IiwiYXJpYUxhYmVsLm9wZW5DaGF0IjoiT3BlbiBTbWFydHN1cHAgY2hhdCIsImFyaWFMYWJlbC5wb3B1cCI6IlNtYXJ0c3VwcCBjaGF0IHBvcHVwIiwiYXJpYUxhYmVsLnJhdGVDaGF0LmJhZCI6IlJhdGUgY2hhdCBuZWdhdGl2ZWxseSIsImFyaWFMYWJlbC5yYXRlQ2hhdC5nb29kIjoiUmF0ZSBjaGF0IHBvc2l0aXZlbHkiLCJhcmlhTGFiZWwucmF0ZUNoYXQubmV1dHJhbCI6IlJhdGUgY2hhdCBuZXV0cmFsbHkiLCJhcmlhTGFiZWwucmVtb3ZlQXR0YWNobWVudCI6IlJlbW92ZSBhdHRhY2htZW50IiwiYXJpYUxhYmVsLnJpZ2h0IjoiUmlnaHQiLCJhcmlhTGFiZWwuc2Nyb2xsRG93biI6IlNjcm9sbCBkb3duIiwiYXJpYUxhYmVsLnN1Y2Nlc3MiOiJTdWNjZXNzIiwiYXJpYUxhYmVsLnVwbG9hZGluZyI6IlVwbG9hZGluZy4uLiIsImFyaWFMYWJlbC53aWRnZXRCcmFuZGluZyI6IlNtYXJ0c3VwcCBicmFuZGluZyIsImF1dGhGb3JtLmFjY2VwdFRlcm1zIjoiSSBhZ3JlZSB3aXRoIHByaXZhY3kgcG9saWN5IiwiYXV0aEZvcm0uYnV0dG9uLnNlbmQiOiJTZW5kIG1lc3NhZ2UiLCJhdXRoRm9ybS5kZXNjcmlwdGlvbiI6Ildl4oCZbGwgdXNlIHlvdXIgY29udGFjdCBpbmZvIG9ubHkgaWYgYWxsIHRoZSBhZ2VudHMgYXJlIGJ1c3kgYXQgdGhlIG1vbWVudCBhbmQgY2Fubm90IGltbWVkaWF0ZWx5IHJlcGx5LiIsImF1dGhGb3JtLmdyZWV0aW5nIjoi8J+RiyBQbGVhc2UgaW50cm9kdWNlIHlvdXJzZWxmIiwiYXV0aEZvcm0uZ3JvdXAiOiJDaG9vc2UgYSBncm91cCIsImF1dGhGb3JtLmxhYmVsLmVtYWlsIjoiRS1tYWlsIiwiYXV0aEZvcm0ubGFiZWwuZ3JvdXAiOiJHcm91cCIsImF1dGhGb3JtLmxhYmVsLm5hbWUiOiJOYW1lIiwiYXV0aEZvcm0ubGFiZWwucGhvbmUiOiJQaG9uZSIsImF1dGhGb3JtLnN1Ym1pdC5lcnJvciI6IkF1dGhlbnRpY2F0aW9uIGZhaWxlZCIsImF1dGhGb3JtLnN1Ym1pdC5zdWNjZXNzIjoiQXV0aGVudGljYXRpb24gd2FzIHN1Y2Nlc3NmdWwiLCJhdXRoRm9ybS55b3VyRW1haWwiOiJZb3VyIGVtYWlsIiwiYXV0aEZvcm0ueW91ck5hbWUiOiJZb3VyIG5hbWUiLCJhdXRoRm9ybS55b3VyUGhvbmUiOiJQaG9uZSBudW1iZXIiLCJidXR0b24uZ3JlZXRpbmciOiJDaGF0IiwiY2FyZC5saW5rc0xpbWl0UmVhY2hlZCI6IlVuYWJsZSB0byBzZW5kIG1vcmUgdGhhbiAyMCBVUkwgbGlua3MuIiwiY2FyZC5ub1ByZXZpZXdUaXRsZSI6IlByZXZpZXcgbm90IGF2YWlsYWJsZSIsImNhcmQub3BlblVybFRpdGxlIjoiUmVhZCBtb3JlIiwiY2FyZC5zZW5kaW5nSW5Qcm9ncmVzcyI6IlNlbmRpbmcgaW4gcHJvZ3Jlc3MsIHBsZWFzZSB3YWl04oCmIiwiY2hhdElucHV0LnBsYWNlaG9sZGVyIjoiVHlwZSB5b3VyIG1lc3NhZ2UgaGVyZSIsImNoYXRQcmV2aWV3Lm1lc3NhZ2UxIjoiSGksIGlzIGFueWJvZHkgaGVyZT8iLCJjaGF0UHJldmlldy5tZXNzYWdlMiI6IkhlbGxvLCB5ZXMgd2UgYXJlIGhlcmUiLCJjaGF0UHJldmlldy5tZXNzYWdlMyI6Ik9rLCB0aGFua3MiLCJjaGF0Ym90LmdvQmFjayI6IkdvIGJhY2siLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLmJ1dHRvbiI6IlllcywgZW5kIGNoYXQiLCJjbG9zZUNvbnZlcnNhdGlvbk1vZGFsLnRleHQiOiJJcyB0aGF0IHJlYWxseSBhbGw/IElmIHNvbWV0aGluZyBlbHNlIGNvbWVzIHRvIG1pbmQsIHlvdSBjYW4gYWx3YXlzIHJldHVybiB0byB0aGUgY29udmVyc2F0aW9uLiIsImNsb3NlQ29udmVyc2F0aW9uTW9kYWwudGl0bGUiOiJFbmQgY2hhdCIsImRyYWdBbmREcm9wLmRyb3BIZXJlIjoiRHJvcCB5b3VyIGZpbGUocykgaGVyZSIsImVtYWlsVHJhbnNjcmlwdC5wb3NpdGl2ZUZlZWRiYWNrIjoiVHJhbnNjcmlwdCBoYXMgYmVlbiBzZW50IiwiZW1haWxUcmFuc2NyaXB0LnNlbmRDb3B5IjoiU2VuZCBjb252ZXJzYXRpb24gY29weSIsImVycm9yLmZpbGVVcGxvYWQiOiJGaWxlIHVwbG9hZCBmYWlsdXJlIiwiZXJyb3Iubm9JbnRlcm5ldCI6IkludGVybmV0IGNvbm5lY3Rpb24gbG9zdCIsImVycm9yLnNlcnZlckVycm9yIjoiU2VydmVyIGVycm9yIG9jY3VycmVkIiwiZmlsZVVwbG9hZC5iYWRGaWxlVHlwZSI6IlRoaXMgZmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQuIiwiZmlsZVVwbG9hZC5maWxlVG9vQmlnIjoiVGhlIGZpbGUgaXMgYmlnZ2VyIHRoYW4gdGhlIGFsbG93ZWQgbGltaXQiLCJmaWxlVXBsb2FkLmZpbGVzV2VyZW50UHJvY2Vzc2VkIjoiU29tZSBmaWxlcyBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIiwiZmlsZVVwbG9hZC5pbWFnZUVycm9yIjoiVGhpcyBpbWFnZSBpcyBub3QgdmFsaWQiLCJmaWxlVXBsb2FkLnRvb01hbnlGaWxlcyI6IkxpbWl0IGZvciB1cGxvYWRpbmcgZmlsZXMgaXMgIiwiZmlsZVVwbG9hZC51cGxvYWRGaWxlIjoiVXBsb2FkIGZpbGUiLCJmb3JtLnN1Ym1pdC5lcnJvciI6IlNvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluLiIsImZvcm0uc3VibWl0LnN1Y2Nlc3MiOiJTdWNjZXNzZnVsbHkgZG9uZSIsImdkcHIuZGF0YVByaXZhY3lIZWFkbGluZSI6IlBlcnNvbmFsIGRhdGEgcHJvY2Vzc2luZyIsImdkcHIuZGF0YVByaXZhY3lUZXh0IjoiU21hcnRzdXBwLmNvbSwgcy5yLm8sIHByb2Nlc3NlcyBwZXJzb25hbCBkYXRhLiwgVkFUIElEIENaMDM2Njg2ODEgKGZ1cnRoZXIgYXMgXCJTbWFydHN1cHBcIikgYXMgYSBkYXRhIHByb2Nlc3NvciB3aG8gYWN0cyBvbiBiZWhhbGYgb2YgdGhlIHdlYnNpdGUgb3duZXIgd2hvIGlzIHRoZSBkYXRhIGNvbnRyb2xsZXIuIFxuXG5TbWFydHN1cHAgaXMgR0RQUiBjb21wbGlhbnQuIFlvdSBjYW4gZmluZCBpbmZvcm1hdGlvbiBhYm91dCBTbWFydHN1cHAgcGVyc29uYWwgZGF0YSBwcml2YWN5IGFuZCBwcm9jZXNzaW5nIG9uIGhlbHAuc21hcnRzdXBwLmNvbS9lbl9VUy9wcml2YWN5LiBcblxuUHJvY2Vzc2luZyBvZiB5b3VyIHBlcnNvbmFsIGRhdGEgaXMgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIHByb3ZpZGUgY3VzdG9tZXIgc2VydmljZS4gQWR2YW5jZWQgZmVhdHVyZXMgd2lsbCBvbmx5IGJlIHR1cm5lZCBvbiBpZiB5b3UgaGF2ZSBhZ3JlZWQgdG8gdGhlbS4gXG5cblBsZWFzZSBjb250YWN0IHRoZSB3ZWJzaXRlIG93bmVyIGlmIHlvdSBoYXZlIHF1ZXN0aW9ucyBhYm91dCB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIG9yIGlmIHlvdSB3YW50IHRvIHJlcXVlc3Qgb3IgZXJhc2UgeW91ciBwZXJzb25hbCBkYXRhLiIsImdlbmVyYWwuYmFjayI6IkJhY2siLCJnZW5lcmFsLm5ld01lc3NhZ2VzIjoiTmV3IG1lc3NhZ2VzIiwiZ2VuZXJhbC5zZW5kIjoiU2VuZCIsIm9wdGlvbnMuYWNjZXNzaWJpbGl0eSI6IkFjY2Vzc2liaWxpdHkiLCJvcHRpb25zLmNvcHlyaWdodCI6IsKpIHt5ZWFyfSBTbWFydHN1cHAuY29tIiwib3B0aW9ucy5lbWFpbFRyYW5zY3JpcHQiOiJTZW5kIGVtYWlsIHRyYW5zY3JpcHQiLCJvcHRpb25zLmZlZWRiYWNrIjoiRGlkIHlvdSBmaW5kIGEgYnVnPyIsIm9wdGlvbnMuZ2RwciI6IkdEUFIgYW5kIHByaXZhY3kiLCJvcHRpb25zLnBkZlRyYW5zY3JpcHQiOiJEb3dubG9hZCB0cmFuc2NyaXB0Iiwib3B0aW9ucy5wbGF5U291bmRzIjoiUGxheSB0aGUgc291bmRzIiwib3B0aW9ucy50aXRsZSI6Ik9wdGlvbnMiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWdlbnQiOiJSYXRlIGNoYXQiLCJyYXRpbmcuYnV0dG9uLnJhdGUuYWkiOiJSYXRlIEFJIGNoYXRib3QiLCJyYXRpbmcuc3VibWl0LnN1Y2Nlc3MiOiJSYXRpbmcgc2VudCIsInJhdGluZy5zdWJtaXRGZWVkYmFjay5zdWNjZXNzIjoiVGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIiwicmF0aW5nLndhc0l0SGVscGZ1bC5hZ2VudCI6IkhvdyB3b3VsZCB5b3UgcmF0ZSBvdXIgc3VwcG9ydD8iLCJyYXRpbmcud2FzSXRIZWxwZnVsLmFpIjoiSG93IHdvdWxkIHlvdSByYXRlIHRoZSBBSSBjaGF0Ym90IGV4cGVyaWVuY2U/Iiwic3RhdHVzQmFyLmJvdElkZW50aXR5IjoiQUkgYXNzaXN0YW50Iiwic3RhdHVzQmFyLm9mZmxpbmVUZXh0IjoiSGFwcHkgdG8gYW5zd2VyIHlvdSBsYXRlciIsInN0YXR1c0Jhci5vbmxpbmVUZXh0IjoiV2UgcmVwbHkgaW1tZWRpYXRlbHkiLCJzeXN0ZW1NZXNzYWdlLmNoYXRDbG9zZWQiOiJDaGF0IHdhcyBjbG9zZWQiLCJzeXN0ZW1NZXNzYWdlLmNoYXRSZXNvbHZlZCI6InJlc29sdmVkIGNvbnZlcnNhdGlvbiIsInRpY2tldEZvcm0ubGFiZWwubWVzc2FnZSI6IldoYXQgY2FuIHdlIGhlbHAgeW91IHdpdGg/IiwidGlja2V0Rm9ybS5tZXNzYWdlLnBsYWNlaG9sZGVyIjoiRGVzY3JpYmUgeW91ciBwcm9ibGVtIiwidGlja2V0Rm9ybS5zdWJtaXQuYnV0dG9uIjoi4pyJ77iPIENvbnRhY3QgdGhlIGFnZW50IGJ5IGVtYWlsIiwidGltZWFnby5YRGF5c0FnbyI6IiclcyBkYXlzIGFnbyIsInRpbWVhZ28uWEhvdXJzQWdvIjoiJXMgaG91cnMgYWdvIiwidGltZWFnby5YTWludXRlc0FnbyI6IiVzIG1pbnV0ZXMgYWdvIiwidGltZWFnby5YTW9udGhzQWdvIjoiJXMgbW9udGhzIGFnbyIsInRpbWVhZ28uWFNlY29uZHNBZ28iOiIlcyBzZWNvbmRzIGFnbyIsInRpbWVhZ28uWFdlZWtzQWdvIjoiJXMgd2Vla3MgYWdvIiwidGltZWFnby5YWWVhcnNBZ28iOiIlcyB5ZWFycyBhZ28iLCJ0aW1lYWdvLmp1c3ROb3ciOiJqdXN0IG5vdyIsInRpbWVhZ28ub25lRGF5QWdvIjoiMSBkYXkgYWdvIiwidGltZWFnby5vbmVIb3VyQWdvIjoiMSBob3VyIGFnbyIsInRpbWVhZ28ub25lTWludXRlQWdvIjoiMSBtaW51dGUgYWdvIiwidGltZWFnby5vbmVNb250aEFnbyI6IjEgbW9udGggYWdvIiwidGltZWFnby5vbmVXZWVrQWdvIjoiMSB3ZWVrIGFnbyIsInRpbWVhZ28ub25lWWVhckFnbyI6IjEgeWVhciBhZ28iLCJ0aW1lYWdvLnJpZ2h0Tm93IjoicmlnaHQgbm93IiwidGltZWFnby5zZWNvbmRzIjoiaW4gJXMgc2Vjb25kcyIsInRvb2x0aXAuYXR0YWNobWVudCI6IkF0dGFjaG1lbnQiLCJ0b29sdGlwLmNsb3NlIjoiQ2xvc2UiLCJ0b29sdGlwLmNvbGxhcHNlIjoiQ29sbGFwc2UgY2hhdCIsInRvb2x0aXAuZW1vamkiOiJFbW9qaSIsInRvb2x0aXAuZXhwYW5kIjoiRXhwYW5kIGNoYXQiLCJ0b29sdGlwLm1pbmltaXplIjoiTWluaW1pemUgY2hhdCIsInRvb2x0aXAubW9yZSI6IlNob3cgbW9yZSIsInRvb2x0aXAubW9yZUJ1dHRvbiI6IlNob3cgTW9yZSIsInRvb2x0aXAucmF0ZUNoYXQiOiJSYXRlIENoYXQiLCJ0b29sdGlwLnNlbmQiOiJTZW5kIiwidG9wQmFyLmVtYWlsVHJhbnNjcmlwdCI6IlNlbmQgZW1haWwgdHJhbnNjcmlwdCIsInRvcEJhci5nZHByVGl0bGUiOiJHRFBSIGFuZCBwcml2YWN5IiwidG9wQmFyLm9mZmxpbmUuaGVsbG8iOiJTZW5kIHVzIGEgbWVzc2FnZSIsInRvcEJhci5vbmxpbmUuaGVsbG8iOiJIb3cgY2FuIHdlIGhlbHA/IiwidG9wQmFyLnR1cm5PZmZTb3VuZHMiOiJUdXJuIG9mZiBzb3VuZHMiLCJ0b3BCYXIudHVybk9uU291bmRzIjoiVHVybiBvbiBzb3VuZHMiLCJ0cmlnZ2VyLm9wZW5DaGF0QnV0dG9uIjoiTGV0J3MgY2hhdCIsInRyaWdnZXIucmVwbHlCdXR0b24iOiJSZXBseSIsInZhbGlkYXRpb25zLmNoZWNrZWRUZXJtcyI6IllvdSBtdXN0IGFncmVlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRvIGNvbnRpbnVlIiwidmFsaWRhdGlvbnMuaXNFbWFpbCI6IlBsZWFzZSBlbnRlciB2YWxpZCBlbWFpbCIsInZhbGlkYXRpb25zLnBob25lIjoiUGxlYXNlIGVudGVyIGEgdmFsaWQgcGhvbmUgbnVtYmVyIiwidmFsaWRhdGlvbnMucmVxdWlyZWQiOiJQbGVhc2UgZmlsbCBvdXQgdGhpcyBmaWVsZCIsIndhcm5pbmdCYXIubWF4TGVuZ3RoIjoiWW91IGhhdmUgcmVhY2hlZCB0aGUgbWF4aW11bSBhbGxvd2VkIG51bWJlciBvZiBjaGFyYWN0ZXJzICgyMDAwKSIsIndhcm5pbmdCYXIuc2FtZU1lc3NhZ2VUd2ljZSI6IkNhbm5vdCBzZW5kIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2UgaW4gYSByb3cuIiwid2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbiI6IllvdXIgbWVzc2FnZXMgaGF2ZSBiZWVuIGlkZW50aWZpZWQgYXMgc3BhbS4gUGxlYXNlIHdhaXQgZm9yIDMwIHNlY29uZHMgYmVmb3JlIHNlbmRpbmcgYW5vdGhlciBtZXNzYWdlLiIsIndhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0IjoiRmlyc3QgbWVzc2FnZSBjYW5ub3QgYmUgYSBmaWxlIiwid2lkZ2V0UHJldmlldy5jb250YWN0TWVzc2FnZSI6IvCfjokgTG9va3MgZmFudGFzdGljISDwn5Kq8J+PuyBMZXTCtHMgcm9jayB0aG9zZSBjb252ZXJzYXRpb25zIGFuZCBsZWF2ZSBhIGxhc3RpbmcgaW1wcmVzc2lvbiEg8J+agCIsIndpZGdldFByZXZpZXcud2VsY29tZU1lc3NhZ2UiOiLwn5GL8J+PuyBXZWxjb21lISBUaGlzIGlzIGEgc25lYWsgcGVlayBvZiB5b3VyIGNoYXQgYm94LiBHZXQgcmVhZHkgdG8gc2hpbmUg4pyoIGluIGN1c3RvbWVyIGludGVyYWN0aW9ucyEiLCJtZXNzYWdlLmRlbGV0ZWQiOiJUaGlzIG1lc3NhZ2Ugd2FzIHJlbW92ZWQifQ=="}},"time_used":67,"timings":{"blocked":0,"dns":33,"connect":8,"send":0,"wait":9,"receive":0,"ssl":16},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/translate.google.com/translate_a/elementa0d8.js?cb=googleTranslateElementInit","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.469Z","timestamp":1785129412469,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /translate.google.com/translate_a/elementa0d8.js?cb=googleTranslateElementInit HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1637,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-29T09:10:37.507754Z","times_seen":144612,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/script.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.713Z","timestamp":1785129412713,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/script.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 3614\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":17103,"size_decoded":3851,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (348)","md5":"d8ed427061c985cc59234e83bf2f8ead","sha1":"74dcd24ce98cde9a3d602fa980597e7fb1bea94e","sha256":"b602572345b34b39e8c50d36a63ac5d0e7d165923a84e658411dda8b76f376a6","sha512":"9c306b38855e156f57df618e2d10b98c07124eba5b319bf458ceb2d625a3e7707a06a3bacc142dfec7e79d5db9c1dfec6fe801ec2148f22a06ed94f8f913bf62","ssdeep":"384:kZIxBdLrk2eKAA/bOKuwCHJh3C6yY9kZ4dN:1k29nbOKxCHJh3UY9RdN","tlshash":"dd720ec0f7bc25b7447a3196985e75c52bad4437c84324b7f9bd11282fc871e32aae19","first_seen":"2024-06-18T00:47:46Z","last_seen":"2026-07-27T13:36:13.703598Z","times_seen":96,"resource_available":true,"data":"KGZ1bmN0aW9uKCQpIHsKCQoJInVzZSBzdHJpY3QiOwoJCgkKCS8vSGlkZSBMb2FkaW5nIEJveCAoUHJlbG9hZGVyKQoJZnVuY3Rpb24gaGFuZGxlUHJlbG9hZGVyKCkgewoJCWlmKCQoJy5wcmVsb2FkZXInKS5sZW5ndGgpewoJCQkkKCcucHJlbG9hZGVyJykuZGVsYXkoMjAwKS5mYWRlT3V0KDUwMCk7CgkJfQoJfQoJCgkKCS8vVXBkYXRlIEhlYWRlciBTdHlsZSBhbmQgU2Nyb2xsIHRvIFRvcAoJZnVuY3Rpb24gaGVhZGVyU3R5bGUoKSB7CgkJaWYoJCgnLm1haW4taGVhZGVyJykubGVuZ3RoKXsKCQkJdmFyIHdpbmRvd3BvcyA9ICQod2luZG93KS5zY3JvbGxUb3AoKTsKCQkJdmFyIHNpdGVIZWFkZXIgPSAkKCcubWFpbi1oZWFkZXInKTsKCQkJdmFyIHNjcm9sbExpbmsgPSAkKCcuc2Nyb2xsLXRvLXRvcCcpOwoJCQkKCQkJdmFyIEhlYWRlckhpZ2h0ID0gJCgnLm1haW4taGVhZGVyJykuaGVpZ2h0KCk7CgkJCWlmICh3aW5kb3dwb3MgPj0gSGVhZGVySGlnaHQpIHsKCQkJCXNpdGVIZWFkZXIuYWRkQ2xhc3MoJ2ZpeGVkLWhlYWRlcicpOwoJCQkJc2Nyb2xsTGluay5mYWRlSW4oMzAwKTsKCQkJfSBlbHNlIHsKCQkJCXNpdGVIZWFkZXIucmVtb3ZlQ2xhc3MoJ2ZpeGVkLWhlYWRlcicpOwoJCQkJc2Nyb2xsTGluay5mYWRlT3V0KDMwMCk7CgkJCX0KCQkJCgkJfQoJfQoJCgloZWFkZXJTdHlsZSgpOwoJCgkKCS8vU3VibWVudSBEcm9wZG93biBUb2dnbGUKCWlmKCQoJy5tYWluLWhlYWRlciAubmF2aWdhdGlvbiBsaS5kcm9wZG93bicpLmxlbmd0aCl7CgkJJCgnLm1haW4taGVhZGVyIC5uYXZpZ2F0aW9uIGxpLmRyb3Bkb3duJykuYXBwZW5kKCc8ZGl2IGNsYXNzPSJkcm9wZG93bi1idG4iPjxzcGFuIGNsYXNzPSJmYSBmYS1hbmdsZS1kb3duIj48L3NwYW4+PC9kaXY+Jyk7CgkJCgkJLy9Ecm9wZG93biBCdXR0b24KCQkkKCcubWFpbi1oZWFkZXIgbGkuZHJvcGRvd24gLmRyb3Bkb3duLWJ0bicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewoJCQkkKHRoaXMpLnByZXYoJ3VsJykuc2xpZGVUb2dnbGUoNTAwKTsKCQl9KTsKCQkKCQkvL01lZ2FtZW51IFRvZ2dsZQoJCSQoJy5tYWluLWhlYWRlciAubWFpbi1tZW51IGxpLmRyb3Bkb3duIC5kcm9wZG93bi1idG4nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKCQkJJCh0aGlzKS5wcmV2KCcubWVnYS1tZW51Jykuc2xpZGVUb2dnbGUoNTAwKTsKCQl9KTsKCQkKCQkvL0Rpc2FibGUgZHJvcGRvd24gcGFyZW50IGxpbmsKCQkkKCcubWFpbi1oZWFkZXIgLm5hdmlnYXRpb24gbGkuZHJvcGRvd24gPiBhLC5oaWRkZW4tYmFyIC5zaWRlLW1lbnUgbGkuZHJvcGRvd24gPiBhJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgewoJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJfSk7Cgl9CgoJCgkKCS8vTW9iaWxlIE5hdiBIaWRlIFNob3cKCWlmKCQoJy5tb2JpbGUtbWVudScpLmxlbmd0aCl7CgkJCgkJJCgnLm1vYmlsZS1tZW51IC5tZW51LWJveCcpLm1DdXN0b21TY3JvbGxiYXIoKTsKCQkKCQl2YXIgbW9iaWxlTWVudUNvbnRlbnQgPSAkKCcubWFpbi1oZWFkZXIgLm5hdi1vdXRlciAubWFpbi1tZW51JykuaHRtbCgpOwoJCSQoJy5tb2JpbGUtbWVudSAubWVudS1ib3ggLm1lbnUtb3V0ZXInKS5hcHBlbmQobW9iaWxlTWVudUNvbnRlbnQpOwoJCSQoJy5zdGlja3ktaGVhZGVyIC5tYWluLW1lbnUnKS5hcHBlbmQobW9iaWxlTWVudUNvbnRlbnQpOwoJCQoJCS8vRHJvcGRvd24gQnV0dG9uCgkJJCgnLm1vYmlsZS1tZW51IGxpLmRyb3Bkb3duIC5kcm9wZG93bi1idG4nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKCQkJJCh0aGlzKS50b2dnbGVDbGFzcygnb3BlbicpOwoJCQkkKHRoaXMpLnByZXYoJ3VsJykuc2xpZGVUb2dnbGUoNTAwKTsKCQl9KTsKCQkvL01lbnUgVG9nZ2xlIEJ0bgoJCSQoJy5tb2JpbGUtbmF2LXRvZ2dsZXInKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKCQkJJCgnYm9keScpLmFkZENsYXNzKCdtb2JpbGUtbWVudS12aXNpYmxlJyk7CgkJfSk7CgoJCS8vTWVudSBUb2dnbGUgQnRuCgkJJCgnLm1vYmlsZS1tZW51IC5tZW51LWJhY2tkcm9wLC5tb2JpbGUtbWVudSAuY2xvc2UtYnRuJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCSQoJ2JvZHknKS5yZW1vdmVDbGFzcygnbW9iaWxlLW1lbnUtdmlzaWJsZScpOwoJCX0pOwoJCQoJfQoJCgkKCQoJLy9IaWRkZW4gU2lkZWJhcgoJaWYgKCQoJy5oaWRkZW4tYmFyJykubGVuZ3RoKSB7CgkJdmFyIGhpZGRlbkJhciA9ICQoJy5oaWRkZW4tYmFyJyk7CgkJdmFyIGhpZGRlbkJhck9wZW5lciA9ICQoJy5uYXYtdG9nZ2xlcicpOwoJCXZhciBoaWRkZW5CYXJDbG9zZXIgPSAkKCcuaGlkZGVuLWJhci1jbG9zZXInKTsKCQkkKCcuaGlkZGVuLWJhci13cmFwcGVyJykubUN1c3RvbVNjcm9sbGJhcigpOwoJCQoJCS8vU2hvdyBTaWRlYmFyCgkJaGlkZGVuQmFyT3BlbmVyLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKCQkJaGlkZGVuQmFyLmFkZENsYXNzKCd2aXNpYmxlLXNpZGViYXInKTsKCQl9KTsKCQkKCQkvL0hpZGUgU2lkZWJhcgoJCWhpZGRlbkJhckNsb3Nlci5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7CgkJCWhpZGRlbkJhci5yZW1vdmVDbGFzcygndmlzaWJsZS1zaWRlYmFyJyk7CgkJfSk7Cgl9CgkKCQoJLy9IaWRkZW4gQmFyIE1lbnUgQ29uZmlnCglmdW5jdGlvbiBoaWRkZW5CYXJNZW51Q29uZmlnKCkgewoJCXZhciBtZW51V3JhcCA9ICQoJy5oaWRkZW4tYmFyIC5zaWRlLW1lbnUnKTsKCQkvLyBhcHBlbmRpbmcgZXhwYW5kZXIgYnV0dG9uCgkJbWVudVdyYXAuZmluZCgnLmRyb3Bkb3duJykuY2hpbGRyZW4oJ2EnKS5hcHBlbmQoZnVuY3Rpb24gKCkgewoJCQlyZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGV4cGFuZGVyIj48aSBjbGFzcz0iaWNvbiBmYSBmYS1hbmdsZS1yaWdodCI+PC9pPjwvYnV0dG9uPic7CgkJfSk7CgkJLy8gaGlkZGluZyBzdWJtZW51CgkJbWVudVdyYXAuZmluZCgnLmRyb3Bkb3duJykuY2hpbGRyZW4oJ3VsJykuaGlkZSgpOwoJCS8vIHRvZ2dsaW5nIGNoaWxkIHVsCgkJbWVudVdyYXAuZmluZCgnLmJ0bi5leHBhbmRlcicpLmVhY2goZnVuY3Rpb24gKCkgewoJCQkkKHRoaXMpLm9uKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKCQkJCSQodGhpcykucGFyZW50KCkgLy8gcmV0dXJuIHBhcmVudCBvZiAuYnRuLmV4cGFuZGVyIChhKQoJCQkJCS5wYXJlbnQoKSAvLyByZXR1cm4gcGFyZW50IG9mIGEgKGxpKQoJCQkJCQkuY2hpbGRyZW4oJ3VsJykuc2xpZGVUb2dnbGUoKTsKCgkJCQkvLyBhZGRpbmcgY2xhc3MgdG8gZXhwYW5kZXIgY29udGFpbmVyCgkJCQkkKHRoaXMpLnBhcmVudCgpLnRvZ2dsZUNsYXNzKCdjdXJyZW50Jyk7CgkJCQkvLyB0b2dnbGluZyBhcnJvdyBvZiBleHBhbmRlcgoJCQkJJCh0aGlzKS5maW5kKCdpJykudG9nZ2xlQ2xhc3MoJ2ZhLWFuZ2xlLXJpZ2h0IGZhLWFuZ2xlLWRvd24nKTsKCgkJCQlyZXR1cm4gZmFsc2U7CgoJCQl9KTsKCQl9KTsKCX0KCgloaWRkZW5CYXJNZW51Q29uZmlnKCk7CgkKCQoJLy9DdXN0b20gU2VjbGVjdCBCb3gKCWlmKCQoJy5jdXN0b20tc2VsZWN0LWJveCcpLmxlbmd0aCl7CgkJJCgnLmN1c3RvbS1zZWxlY3QtYm94Jykuc2VsZWN0bWVudSgpLnNlbGVjdG1lbnUoJ21lbnVXaWRnZXQnKS5hZGRDbGFzcygnb3ZlcmZsb3cnKTsKCX0KCQoJCgkvL0pxdWVyeSBTcGlubmVyIC8gUXVhbnRpdHkgU3Bpbm5lcgoJaWYoJCgnLnF1YW50aXR5LXNwaW5uZXInKS5sZW5ndGgpewoJCSQoImlucHV0LnF1YW50aXR5LXNwaW5uZXIiKS5Ub3VjaFNwaW4oewoJCSAgdmVydGljYWxidXR0b25zOiB0cnVlCgkJfSk7Cgl9CQoJCgkKCS8vSGVhZGVyIFNlYXJjaAoJaWYoJCgnLnNlYXJjaC1ib3gtb3V0ZXInKS5sZW5ndGgpIHsKCQkkKCcuc2VhcmNoLWJveC1vdXRlcicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewoJCQkkKCdib2R5JykuYWRkQ2xhc3MoJ3NlYXJjaC1hY3RpdmUnKTsKCQl9KTsKCQkkKCcuY2xvc2Utc2VhcmNoJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCSQoJ2JvZHknKS5yZW1vdmVDbGFzcygnc2VhcmNoLWFjdGl2ZScpOwoJCX0pOwoJfQoJCgkKCS8vRXZlbnQgQ291bnRkb3duIFRpbWVyCglpZigkKCcudGltZS1jb3VudGRvd24nKS5sZW5ndGgpeyAgCgkJJCgnLnRpbWUtY291bnRkb3duJykuZWFjaChmdW5jdGlvbigpIHsKCQl2YXIgJHRoaXMgPSAkKHRoaXMpLCBmaW5hbERhdGUgPSAkKHRoaXMpLmRhdGEoJ2NvdW50ZG93bicpOwoJCSR0aGlzLmNvdW50ZG93bihmaW5hbERhdGUsIGZ1bmN0aW9uKGV2ZW50KSB7CgkJCXZhciAkdGhpcyA9ICQodGhpcykuaHRtbChldmVudC5zdHJmdGltZSgnJyArICc8ZGl2IGNsYXNzPSJjb3VudGVyLWNvbHVtbiI+PHNwYW4gY2xhc3M9ImNvdW50Ij4lRDwvc3Bhbj5EYXlzPC9kaXY+ICcgKyAnPGRpdiBjbGFzcz0iY291bnRlci1jb2x1bW4iPjxzcGFuIGNsYXNzPSJjb3VudCI+JUg8L3NwYW4+SG91cnM8L2Rpdj4gICcgKyAnPGRpdiBjbGFzcz0iY291bnRlci1jb2x1bW4iPjxzcGFuIGNsYXNzPSJjb3VudCI+JU08L3NwYW4+TWludXRlczwvZGl2PiAgJyArICc8ZGl2IGNsYXNzPSJjb3VudGVyLWNvbHVtbiI+PHNwYW4gY2xhc3M9ImNvdW50Ij4lUzwvc3Bhbj5TZWNvbmRzPC9kaXY+JykpOwoJCX0pOwoJIH0pOwoJfQoJCgkKCQoJLy9DbGllbnQgVGVzdGltb25pYWwgQ2Fyb3VzZWwKCWlmICgkKCcuY2xpZW50LXRlc3RpbW9uaWFsLWNhcm91c2VsJykubGVuZ3RoICYmICQoJy5jbGllbnQtdGh1bWJzLWNhcm91c2VsJykubGVuZ3RoKSB7CgoJCXZhciAkc3luYzMgPSAkKCIuY2xpZW50LXRlc3RpbW9uaWFsLWNhcm91c2VsIiksCgkJCSRzeW5jNCA9ICQoIi5jbGllbnQtdGh1bWJzLWNhcm91c2VsIiksCgkJCWZsYWcgPSBmYWxzZSwKCQkJZHVyYXRpb24gPSA1MDA7CgoJCQkkc3luYzMKCQkJCS5vd2xDYXJvdXNlbCh7CgkJCQkJbG9vcDp0cnVlLAoJCQkJCWl0ZW1zOiAxLAoJCQkJCW1hcmdpbjogMCwKCQkJCQluYXY6IHRydWUsCgkJCQkJbmF2VGV4dDogWyAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLWxlZnQiPjwvc3Bhbj4nLCAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLXJpZ2h0Ij48L3NwYW4+JyBdLAoJCQkJCWRvdHM6IHRydWUsCgkJCQkJYXV0b3BsYXk6IHRydWUsCgkJCQkJYXV0b3BsYXlUaW1lb3V0OiA1MDAwCgkJCQl9KQoJCQkJLm9uKCdjaGFuZ2VkLm93bC5jYXJvdXNlbCcsIGZ1bmN0aW9uIChlKSB7CgkJCQkJaWYgKCFmbGFnKSB7CgkJCQkJCWZsYWcgPSBmYWxzZTsKCQkJCQkJJHN5bmM0LnRyaWdnZXIoJ3RvLm93bC5jYXJvdXNlbCcsIFtlLml0ZW0uaW5kZXgsIGR1cmF0aW9uLCB0cnVlXSk7CgkJCQkJCWZsYWcgPSBmYWxzZTsKCQkJCQl9CgkJCQl9KTsKCgkJCSRzeW5jNAoJCQkJLm93bENhcm91c2VsKHsKCQkJCQlsb29wOnRydWUsCgkJCQkJbWFyZ2luOjE5NSwKCQkJCQlpdGVtczogMSwKCQkJCQluYXY6IGZhbHNlLAoJCQkJCW5hdlRleHQ6IFsgJzxzcGFuIGNsYXNzPSJpY29uIGZsYXRpY29uLWxlZnQtYXJyb3ctMiI+PC9zcGFuPicsICc8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1yaWdodC1hcnJvdy0xIj48L3NwYW4+JyBdLAoJCQkJCWRvdHM6IGZhbHNlLAoJCQkJCWNlbnRlcjogdHJ1ZSwKCQkJCQlhdXRvcGxheTogdHJ1ZSwKCQkJCQlhdXRvcGxheVRpbWVvdXQ6IDUwMDAsCgkJCQkJcmVzcG9uc2l2ZTogewoJCQkJCQkwOnsKCQkJCSAgICAgICAgICAgIGl0ZW1zOjEsCgkJCQkgICAgICAgICAgICBhdXRvV2lkdGg6IGZhbHNlCgkJCQkgICAgICAgIH0sCgkJCQkgICAgICAgIDQwMDp7CgkJCQkgICAgICAgICAgICBpdGVtczoxLAoJCQkJICAgICAgICAgICAgYXV0b1dpZHRoOiBmYWxzZQoJCQkJICAgICAgICB9LAoJCQkJICAgICAgICA2MDA6ewoJCQkJICAgICAgICAgICAgaXRlbXM6MSwKCQkJCSAgICAgICAgICAgIGF1dG9XaWR0aDogZmFsc2UKCQkJCSAgICAgICAgfSwKCQkJCSAgICAgICAgMTAwMDp7CgkJCQkgICAgICAgICAgICBpdGVtczoxLAoJCQkJICAgICAgICAgICAgYXV0b1dpZHRoOiBmYWxzZQoJCQkJICAgICAgICB9LAoJCQkJCQkxMjAwOnsKCQkJCSAgICAgICAgICAgIGl0ZW1zOjEsCgkJCQkgICAgICAgICAgICBhdXRvV2lkdGg6IGZhbHNlCgkJCQkgICAgICAgIH0KCQkJCSAgICB9LAoJCQkJfSkKCQkJCQoJCS5vbignY2xpY2snLCAnLm93bC1pdGVtJywgZnVuY3Rpb24gKCkgewoJCQkkc3luYzMudHJpZ2dlcigndG8ub3dsLmNhcm91c2VsJywgWyQodGhpcykuaW5kZXgoKSwgZHVyYXRpb24sIHRydWVdKTsKCQl9KQoJCS5vbignY2hhbmdlZC5vd2wuY2Fyb3VzZWwnLCBmdW5jdGlvbiAoZSkgewoJCQlpZiAoIWZsYWcpIHsKCQkJCWZsYWcgPSB0cnVlOwkJCgkJCQkkc3luYzMudHJpZ2dlcigndG8ub3dsLmNhcm91c2VsJywgW2UuaXRlbS5pbmRleCwgZHVyYXRpb24sIHRydWVdKTsKCQkJCWZsYWcgPSBmYWxzZTsKCQkJfQoJCX0pOwoJfQoJCgkKCQoJLy9Qcm9ncmVzcyBCYXIKCWlmKCQoJy5wcm9ncmVzcy1saW5lJykubGVuZ3RoKXsKCQkkKCcucHJvZ3Jlc3MtbGluZScpLmFwcGVhcihmdW5jdGlvbigpewoJCQl2YXIgZWwgPSAkKHRoaXMpOwoJCQl2YXIgcGVyY2VudCA9IGVsLmRhdGEoJ3dpZHRoJyk7CgkJCSQoZWwpLmNzcygnd2lkdGgnLHBlcmNlbnQrJyUnKTsKCQl9LHthY2NZOiAwfSk7Cgl9CgkKCQoJCgkvL01hc29uYXJ5CglmdW5jdGlvbiBlbmFibGVNYXNvbnJ5KCkgewoJCWlmKCQoJy5tYXNvbnJ5LWl0ZW1zLWNvbnRhaW5lcicpLmxlbmd0aCl7CgkKCQkJdmFyIHdpbkRvdyA9ICQod2luZG93KTsKCQkJLy8gTmVlZGVkIHZhcmlhYmxlcwoJCQl2YXIgJGNvbnRhaW5lcj0kKCcubWFzb25yeS1pdGVtcy1jb250YWluZXInKTsKCQoJCQkkY29udGFpbmVyLmlzb3RvcGUoewoJCQkJaXRlbVNlbGVjdG9yOiAnLm1hc29ucnktaXRlbScsCgkJCQkgbWFzb25yeTogewoJCQkJCWNvbHVtbldpZHRoIDogJy5tYXNvbnJ5LWl0ZW0uY29sLWxnLTMnCgkJCQkgfSwKCQkJCWFuaW1hdGlvbk9wdGlvbnM6ewoJCQkJCWR1cmF0aW9uOjUwMCwKCQkJCQllYXNpbmc6J2xpbmVhcicKCQkJCX0KCQkJfSk7CgkKCQkJd2luRG93LmJpbmQoJ3Jlc2l6ZScsIGZ1bmN0aW9uKCl7CgoJCQkJJGNvbnRhaW5lci5pc290b3BlKHsgCgkJCQkJaXRlbVNlbGVjdG9yOiAnLm1hc29ucnktaXRlbScsCgkJCQkJYW5pbWF0aW9uT3B0aW9uczogewoJCQkJCQlkdXJhdGlvbjogNTAwLAoJCQkJCQllYXNpbmcJOiAnbGluZWFyJywKCQkJCQkJcXVldWUJOiBmYWxzZQoJCQkJCX0KCQkJCX0pOwoJCQl9KTsKCQl9Cgl9CgkKCWVuYWJsZU1hc29ucnkoKTsKCQoJCgkKCS8vRmFjdCBDb3VudGVyICsgVGV4dCBDb3VudAoJaWYoJCgnLmNvdW50LWJveCcpLmxlbmd0aCl7CgkJJCgnLmNvdW50LWJveCcpLmFwcGVhcihmdW5jdGlvbigpewoJCgkJCXZhciAkdCA9ICQodGhpcyksCgkJCQluID0gJHQuZmluZCgiLmNvdW50LXRleHQiKS5hdHRyKCJkYXRhLXN0b3AiKSwKCQkJCXIgPSBwYXJzZUludCgkdC5maW5kKCIuY291bnQtdGV4dCIpLmF0dHIoImRhdGEtc3BlZWQiKSwgMTApOwoJCQkJCgkJCWlmICghJHQuaGFzQ2xhc3MoImNvdW50ZWQiKSkgewoJCQkJJHQuYWRkQ2xhc3MoImNvdW50ZWQiKTsKCQkJCSQoewoJCQkJCWNvdW50TnVtOiAkdC5maW5kKCIuY291bnQtdGV4dCIpLnRleHQoKQoJCQkJfSkuYW5pbWF0ZSh7CgkJCQkJY291bnROdW06IG4KCQkJCX0sIHsKCQkJCQlkdXJhdGlvbjogciwKCQkJCQllYXNpbmc6ICJsaW5lYXIiLAoJCQkJCXN0ZXA6IGZ1bmN0aW9uKCkgewoJCQkJCQkkdC5maW5kKCIuY291bnQtdGV4dCIpLnRleHQoTWF0aC5mbG9vcih0aGlzLmNvdW50TnVtKSk7CgkJCQkJfSwKCQkJCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7CgkJCQkJCSR0LmZpbmQoIi5jb3VudC10ZXh0IikudGV4dCh0aGlzLmNvdW50TnVtKTsKCQkJCQl9CgkJCQl9KTsKCQkJfQoJCQkKCQl9LHthY2NZOiAwfSk7Cgl9CgkKCQoJCgkvL0FjY29yZGlvbiBCb3gKCWlmKCQoJy5hY2NvcmRpb24tYm94JykubGVuZ3RoKXsKCQkkKCIuYWNjb3JkaW9uLWJveCIpLm9uKCdjbGljaycsICcuYWNjLWJ0bicsIGZ1bmN0aW9uKCkgewoJCQkKCQkJdmFyIG91dGVyQm94ID0gJCh0aGlzKS5wYXJlbnRzKCcuYWNjb3JkaW9uLWJveCcpOwoJCQl2YXIgdGFyZ2V0ID0gJCh0aGlzKS5wYXJlbnRzKCcuYWNjb3JkaW9uJyk7CgkJCQoJCQlpZigkKHRoaXMpLmhhc0NsYXNzKCdhY3RpdmUnKSE9PXRydWUpewoJCQkJJChvdXRlckJveCkuZmluZCgnLmFjY29yZGlvbiAuYWNjLWJ0bicpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKTsKCQkJfQoJCQkKCQkJaWYgKCQodGhpcykubmV4dCgnLmFjYy1jb250ZW50JykuaXMoJzp2aXNpYmxlJykpewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9ZWxzZXsKCQkJCSQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoJCQkJJChvdXRlckJveCkuY2hpbGRyZW4oJy5hY2NvcmRpb24nKS5yZW1vdmVDbGFzcygnYWN0aXZlLWJsb2NrJyk7CgkJCQkkKG91dGVyQm94KS5maW5kKCcuYWNjb3JkaW9uJykuY2hpbGRyZW4oJy5hY2MtY29udGVudCcpLnNsaWRlVXAoMzAwKTsKCQkJCXRhcmdldC5hZGRDbGFzcygnYWN0aXZlLWJsb2NrJyk7CgkJCQkkKHRoaXMpLm5leHQoJy5hY2MtY29udGVudCcpLnNsaWRlRG93bigzMDApOwkKCQkJfQoJCX0pOwkKCX0KCQoJCgkKCS8vU2luZ2xlIEl0ZW0gQ2Fyb3VzZWwKCWlmICgkKCcuc2luZ2xlLWl0ZW0tY2Fyb3VzZWwnKS5sZW5ndGgpIHsKCQkkKCcuc2luZ2xlLWl0ZW0tY2Fyb3VzZWwnKS5vd2xDYXJvdXNlbCh7CgkJCWxvb3A6dHJ1ZSwKCQkJbWFyZ2luOjMwLAoJCQluYXY6dHJ1ZSwKCQkJc21hcnRTcGVlZDogNTAwLAoJCQlhdXRvcGxheTogNTAwMCwKCQkJbmF2VGV4dDogWyAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLWxlZnQiPjwvc3Bhbj4nLCAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLXJpZ2h0Ij48L3NwYW4+JyBdLAoJCQlyZXNwb25zaXZlOnsKCQkJCTA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQk2MDA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQk4MDA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQkxMDI0OnsKCQkJCQlpdGVtczoxCgkJCQl9LAoJCQkJMTIwMDp7CgkJCQkJaXRlbXM6MQoJCQkJfQoJCQl9CgkJfSk7ICAgIAkJCgl9CgkKCQoJLy8gVHdvIEl0ZW0gQ2Fyb3VzZWwKCWlmICgkKCcudHdvLWl0ZW0tY2Fyb3VzZWwnKS5sZW5ndGgpIHsKCQkkKCcudHdvLWl0ZW0tY2Fyb3VzZWwnKS5vd2xDYXJvdXNlbCh7CgkJCWxvb3A6dHJ1ZSwKCQkJbWFyZ2luOjAsCgkJCW5hdjp0cnVlLAoJCQlzbWFydFNwZWVkOiA1MDAsCgkJCWF1dG9wbGF5OiA1MDAwLAoJCQluYXZUZXh0OiBbICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtbGVmdCI+PC9zcGFuPicsICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtcmlnaHQiPjwvc3Bhbj4nIF0sCgkJCXJlc3BvbnNpdmU6ewoJCQkJMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTYwMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTgwMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTEwMjQ6ewoJCQkJCWl0ZW1zOjIKCQkJCX0sCgkJCQkxMjAwOnsKCQkJCQlpdGVtczoyCgkJCQl9CgkJCX0KCQl9KTsgICAgCQkKCX0KCQoJCgkvLyBUZXN0aW1vbmlhbCBDYXJvdXNlbAoJaWYgKCQoJy50ZXN0aW1vbmlhbC1jYXJvdXNlbCcpLmxlbmd0aCkgewoJCSQoJy50ZXN0aW1vbmlhbC1jYXJvdXNlbCcpLm93bENhcm91c2VsKHsKCQkJbG9vcDp0cnVlLAoJCQltYXJnaW46MCwKCQkJbmF2OnRydWUsCgkJCXNtYXJ0U3BlZWQ6IDcwMCwKCQkJYXV0b3BsYXk6IHRydWUsCgkJCW5hdlRleHQ6IFsgJzxzcGFuIGNsYXNzPSJmYSBmYS1sb25nLWFycm93LWxlZnQiPjwvc3Bhbj4gcHJldicsICduZXh0PHNwYW4gY2xhc3M9ImZhIGZhLWxvbmctYXJyb3ctcmlnaHQiPjwvc3Bhbj4nIF0sCgkJCXJlc3BvbnNpdmU6ewoJCQkJMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTYwMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTgwMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTEwMjQ6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQkxNDAwOnsKCQkJCQlpdGVtczoxCgkJCQl9CgkJCX0KCQl9KTsgICAgCQkKCX0KCQoJCgkvLyBUaHJlZSBJdGVtIENhcm91c2VsCglpZiAoJCgnLnRocmVlLWl0ZW0tY2Fyb3VzZWwnKS5sZW5ndGgpIHsKCQkkKCcudGhyZWUtaXRlbS1jYXJvdXNlbCcpLm93bENhcm91c2VsKHsKCQkJbG9vcDp0cnVlLAoJCQltYXJnaW46MzAsCgkJCW5hdjp0cnVlLAoJCQlzbWFydFNwZWVkOiA1MDAsCgkJCWF1dG9wbGF5OiA1MDAwLAoJCQluYXZUZXh0OiBbICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtbGVmdCI+PC9zcGFuPicsICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtcmlnaHQiPjwvc3Bhbj4nIF0sCgkJCXJlc3BvbnNpdmU6ewoJCQkJMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTYwMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTYxMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTgwMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTEwMjQ6ewoJCQkJCWl0ZW1zOjMKCQkJCX0sCgkJCQkxMjAwOnsKCQkJCQlpdGVtczozCgkJCQl9CgkJCX0KCQl9KTsgICAgCQkKCX0KCQoKCQoJLy9NYWluIFNsaWRlciBDYXJvdXNlbAoJaWYgKCQoJy5tYWluLXNsaWRlci1jYXJvdXNlbCcpLmxlbmd0aCkgewoJCSQoJy5tYWluLXNsaWRlci1jYXJvdXNlbCcpLm93bENhcm91c2VsKHsKCQkJYW5pbWF0ZU91dDogJ2ZhZGVPdXQnLAogICAgCQlhbmltYXRlSW46ICdmYWRlSW4nLAoJCQlsb29wOnRydWUsCgkJCW1hcmdpbjowLAoJCQluYXY6dHJ1ZSwKCQkJYXV0b0hlaWdodDogdHJ1ZSwKCQkJc21hcnRTcGVlZDogNTAwLAoJCQlhdXRvcGxheTogNjAwMCwKCQkJbmF2VGV4dDogWyAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLWxlZnQiPjwvc3Bhbj4nLCAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLXJpZ2h0Ij48L3NwYW4+JyBdLAoJCQlyZXNwb25zaXZlOnsKCQkJCTA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQk2MDA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQk4MDA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQkxMDI0OnsKCQkJCQlpdGVtczoxCgkJCQl9LAoJCQkJMTIwMDp7CgkJCQkJaXRlbXM6MQoJCQkJfQoJCQl9CgkJfSk7ICAgIAkJCgl9CgkKCQoJCgkvL01haW4gU2xpZGVyIENhcm91c2VsCglpZiAoJCgnLmZvdXItaXRlbS1jYXJvdXNlbCcpLmxlbmd0aCkgewoJCSQoJy5mb3VyLWl0ZW0tY2Fyb3VzZWwnKS5vd2xDYXJvdXNlbCh7CgkJCWFuaW1hdGVPdXQ6ICdmYWRlT3V0JywKICAgIAkJYW5pbWF0ZUluOiAnZmFkZUluJywKCQkJbG9vcDp0cnVlLAoJCQltYXJnaW46MTUsCgkJCW5hdjp0cnVlLAoJCQlhdXRvSGVpZ2h0OiB0cnVlLAoJCQlzbWFydFNwZWVkOiA1MDAsCgkJCWF1dG9wbGF5OiA2MDAwLAoJCQluYXZUZXh0OiBbICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtbGVmdCI+PC9zcGFuPicsICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtcmlnaHQiPjwvc3Bhbj4nIF0sCgkJCXJlc3BvbnNpdmU6ewoJCQkJMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTYwMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTgwMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTEwMjQ6ewoJCQkJCWl0ZW1zOjMKCQkJCX0sCgkJCQkxMjAwOnsKCQkJCQlpdGVtczo0CgkJCQl9CgkJCX0KCQl9KTsgICAgCQkKCX0KCQoJCgkKCS8vIFNwb25zb3JzIENhcm91c2VsCglpZiAoJCgnLnNwb25zb3JzLWNhcm91c2VsJykubGVuZ3RoKSB7CgkJJCgnLnNwb25zb3JzLWNhcm91c2VsJykub3dsQ2Fyb3VzZWwoewoJCQlsb29wOnRydWUsCgkJCW1hcmdpbjowLAoJCQluYXY6dHJ1ZSwKCQkJc21hcnRTcGVlZDogNTAwLAoJCQlhdXRvcGxheTogNDAwMCwKCQkJbmF2VGV4dDogWyAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLWxlZnQiPjwvc3Bhbj4nLCAnPHNwYW4gY2xhc3M9ImZhIGZhLWFuZ2xlLXJpZ2h0Ij48L3NwYW4+JyBdLAoJCQlyZXNwb25zaXZlOnsKCQkJCTA6ewoJCQkJCWl0ZW1zOjEKCQkJCX0sCgkJCQk0ODA6ewoJCQkJCWl0ZW1zOjIKCQkJCX0sCgkJCQk2MDA6ewoJCQkJCWl0ZW1zOjMKCQkJCX0sCgkJCQk4MDA6ewoJCQkJCWl0ZW1zOjQKCQkJCX0sCgkJCQkxMDI0OnsKCQkJCQlpdGVtczo0CgkJCQl9CgkJCX0KCQl9KTsgICAgCQkKCX0KCQoJCgkKCWZ1bmN0aW9uIHNvcnRhYmxlTWFzb25yeSgpIHsKCQlpZigkKCcuc29ydGFibGUtbWFzb25yeScpLmxlbmd0aCl7CgkKCQkJdmFyIHdpbkRvdyA9ICQod2luZG93KTsKCQkJLy8gTmVlZGVkIHZhcmlhYmxlcwoJCQl2YXIgJGNvbnRhaW5lcj0kKCcuc29ydGFibGUtbWFzb25yeSAuaXRlbXMtY29udGFpbmVyJyk7CgkJCXZhciAkZmlsdGVyPSQoJy5maWx0ZXItYnRucycpOwoJCgkJCSRjb250YWluZXIuaXNvdG9wZSh7CgkJCQlmaWx0ZXI6JyonLAoJCQkJIG1hc29ucnk6IHsKCQkJCQljb2x1bW5XaWR0aCA6ICcubWFzb25yeS1pdGVtLmNvbC1sZy00JwoJCQkJIH0sCgkJCQlhbmltYXRpb25PcHRpb25zOnsKCQkJCQlkdXJhdGlvbjo1MDAsCgkJCQkJZWFzaW5nOidsaW5lYXInCgkJCQl9CgkJCX0pOwoJCQkvLyBJc290b3BlIEZpbHRlciAKCQkJJGZpbHRlci5maW5kKCdsaScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCl7CgkJCQl2YXIgc2VsZWN0b3IgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtZmlsdGVyJyk7CgkKCQkJCXRyeSB7CgkJCQkJJGNvbnRhaW5lci5pc290b3BlKHsgCgkJCQkJCWZpbHRlcgk6IHNlbGVjdG9yLAoJCQkJCQlhbmltYXRpb25PcHRpb25zOiB7CgkJCQkJCQlkdXJhdGlvbjogNTAwLAoJCQkJCQkJZWFzaW5nCTogJ2xpbmVhcicsCgkJCQkJCQlxdWV1ZQk6IGZhbHNlCgkJCQkJCX0KCQkJCQl9KTsKCQkJCX0gY2F0Y2goZXJyKSB7CgkKCQkJCX0KCQkJCXJldHVybiBmYWxzZTsKCQkJfSk7CgkKCQoJCQl3aW5Eb3cuYmluZCgncmVzaXplJywgZnVuY3Rpb24oKXsKCQkJCXZhciBzZWxlY3RvciA9ICRmaWx0ZXIuZmluZCgnbGkuYWN0aXZlJykuYXR0cignZGF0YS1maWx0ZXInKTsKCgkJCQkkY29udGFpbmVyLmlzb3RvcGUoeyAKCQkJCQlmaWx0ZXIJOiBzZWxlY3RvciwKCQkJCQlhbmltYXRpb25PcHRpb25zOiB7CgkJCQkJCWR1cmF0aW9uOiA1MDAsCgkJCQkJCWVhc2luZwk6ICdsaW5lYXInLAoJCQkJCQlxdWV1ZQk6IGZhbHNlCgkJCQkJfQoJCQkJfSk7CgkJCX0pOwoJCgkKCQkJdmFyIGZpbHRlckl0ZW1BCT0gJCgnLmZpbHRlci1idG5zIGxpJyk7CgkKCQkJZmlsdGVySXRlbUEub24oJ2NsaWNrJywgZnVuY3Rpb24oKXsKCQkJCXZhciAkdGhpcyA9ICQodGhpcyk7CgkJCQlpZiAoICEkdGhpcy5oYXNDbGFzcygnYWN0aXZlJykpIHsKCQkJCQlmaWx0ZXJJdGVtQS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7CgkJCQkJJHRoaXMuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoJCQkJfQoJCQl9KTsKCQl9Cgl9Cglzb3J0YWJsZU1hc29ucnkoKTsKCQoJCgkKCS8vUHJvZHVjdCBDYXJvdXNlbAoJaWYgKCQoJy5wcm9qZWN0LWNhcm91c2VsJykubGVuZ3RoKSB7CgkJJCgnLnByb2plY3QtY2Fyb3VzZWwnKS5vd2xDYXJvdXNlbCh7CgkJCWxvb3A6dHJ1ZSwKCQkJbWFyZ2luOjYsCgkJCW5hdjp0cnVlLAoJCQlzbWFydFNwZWVkOiA3MDAsCgkJCWF1dG9wbGF5OiA1MDAwLAoJCQluYXZUZXh0OiBbICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtbGVmdCI+PC9zcGFuPicsICc8c3BhbiBjbGFzcz0iZmEgZmEtYW5nbGUtcmlnaHQiPjwvc3Bhbj4nIF0sCgkJCXJlc3BvbnNpdmU6ewoJCQkJMDp7CgkJCQkJaXRlbXM6MQoJCQkJfSwKCQkJCTYwMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTgwMDp7CgkJCQkJaXRlbXM6MgoJCQkJfSwKCQkJCTEwMjQ6ewoJCQkJCWl0ZW1zOjMKCQkJCX0sCgkJCQkxMjAwOnsKCQkJCQlpdGVtczo0CgkJCQl9LAoJCQkJMTQwMDp7CgkJCQkJaXRlbXM6NAoJCQkJfSwKCQkJCTE2MDA6ewoJCQkJCWl0ZW1zOjQKCQkJCX0KCQkJfQoJCX0pOyAgICAJCQoJfQoJCgkKCS8vUHJvZHVjdCBUYWJzCglpZigkKCcucHJvamVjdC10YWInKS5sZW5ndGgpewoJCSQoJy5wcm9qZWN0LXRhYiAucHJvZHVjdC10YWItYnRucyAucC10YWItYnRuJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgewoJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJCXZhciB0YXJnZXQgPSAkKCQodGhpcykuYXR0cignZGF0YS10YWInKSk7CgkJCQoJCQlpZiAoJCh0YXJnZXQpLmhhc0NsYXNzKCdhY3R2ZS10YWInKSl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX1lbHNlewoJCQkJJCgnLnByb2plY3QtdGFiIC5wcm9kdWN0LXRhYi1idG5zIC5wLXRhYi1idG4nKS5yZW1vdmVDbGFzcygnYWN0aXZlLWJ0bicpOwoJCQkJJCh0aGlzKS5hZGRDbGFzcygnYWN0aXZlLWJ0bicpOwoJCQkJJCgnLnByb2plY3QtdGFiIC5wLXRhYnMtY29udGVudCAucC10YWInKS5yZW1vdmVDbGFzcygnYWN0aXZlLXRhYicpOwoJCQkJJCh0YXJnZXQpLmFkZENsYXNzKCdhY3RpdmUtdGFiJyk7CgkJCX0KCQl9KTsKCX0KCQoJCgkKCS8vVGFicyBCb3gKCWlmKCQoJy50YWJzLWJveCcpLmxlbmd0aCl7CgkJJCgnLnRhYnMtYm94IC50YWItYnV0dG9ucyAudGFiLWJ0bicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQl2YXIgdGFyZ2V0ID0gJCgkKHRoaXMpLmF0dHIoJ2RhdGEtdGFiJykpOwoJCQkKCQkJaWYgKCQodGFyZ2V0KS5pcygnOnZpc2libGUnKSl7CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX1lbHNlewoJCQkJdGFyZ2V0LnBhcmVudHMoJy50YWJzLWJveCcpLmZpbmQoJy50YWItYnV0dG9ucycpLmZpbmQoJy50YWItYnRuJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZS1idG4nKTsKCQkJCSQodGhpcykuYWRkQ2xhc3MoJ2FjdGl2ZS1idG4nKTsKCQkJCXRhcmdldC5wYXJlbnRzKCcudGFicy1ib3gnKS5maW5kKCcudGFicy1jb250ZW50JykuZmluZCgnLnRhYicpLmZhZGVPdXQoMCk7CgkJCQl0YXJnZXQucGFyZW50cygnLnRhYnMtYm94JykuZmluZCgnLnRhYnMtY29udGVudCcpLmZpbmQoJy50YWInKS5yZW1vdmVDbGFzcygnYWN0aXZlLXRhYicpOwoJCQkJJCh0YXJnZXQpLmZhZGVJbigzMDApOwoJCQkJJCh0YXJnZXQpLmFkZENsYXNzKCdhY3RpdmUtdGFiJyk7CgkJCX0KCQl9KTsKCX0KCQoJCgkKCS8vTGlnaHRCb3ggLyBGYW5jeWJveAoJaWYoJCgnLmxpZ2h0Ym94LWltYWdlJykubGVuZ3RoKSB7CgkJJCgnLmxpZ2h0Ym94LWltYWdlJykuZmFuY3lib3goewoJCQlvcGVuRWZmZWN0ICA6ICdmYWRlJywKCQkJY2xvc2VFZmZlY3QgOiAnZmFkZScsCgkJCWhlbHBlcnMgOiB7CgkJCQltZWRpYSA6IHt9CgkJCX0KCQl9KTsKCX0KCQoJCgkvL0NvbnRhY3QgRm9ybSBWYWxpZGF0aW9uCglpZigkKCcjY29udGFjdC1mb3JtJykubGVuZ3RoKXsKCQkkKCcjY29udGFjdC1mb3JtJykudmFsaWRhdGUoewoJCQlydWxlczogewoJCQkJdXNlcm5hbWU6IHsKCQkJCQlyZXF1aXJlZDogdHJ1ZQoJCQkJfSwKCQkJCWVtYWlsOiB7CgkJCQkJcmVxdWlyZWQ6IHRydWUsCgkJCQkJZW1haWw6IHRydWUKCQkJCX0sCgkJCQlwaG9uZTogewoJCQkJCXJlcXVpcmVkOiB0cnVlCgkJCQl9LAoJCQkJc2VydmljZTogewoJCQkJCXJlcXVpcmVkOiB0cnVlCgkJCQl9LAoJCQkJbWVzc2FnZTogewoJCQkJCXJlcXVpcmVkOiB0cnVlCgkJCQl9CgkJCX0KCQl9KTsKCX0KCQoJLy9HYWxsZXJ5IEZpbHRlcnMKCWlmKCQoJy5maWx0ZXItbGlzdCcpLmxlbmd0aCl7CgkJJCgnLmZpbHRlci1saXN0JykubWl4SXRVcCh7fSk7Cgl9CgkKCS8vIFNjcm9sbCB0byBhIFNwZWNpZmljIERpdgoJaWYoJCgnLnNjcm9sbC10by10YXJnZXQnKS5sZW5ndGgpewoJCSQoIi5zY3JvbGwtdG8tdGFyZ2V0Iikub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCXZhciB0YXJnZXQgPSAkKHRoaXMpLmF0dHIoJ2RhdGEtdGFyZ2V0Jyk7CgkJICAgLy8gYW5pbWF0ZQoJCSAgICQoJ2h0bWwsIGJvZHknKS5hbmltYXRlKHsKCQkJICAgc2Nyb2xsVG9wOiAkKHRhcmdldCkub2Zmc2V0KCkudG9wCgkJCSB9LCAxNTAwKTsKCQoJCX0pOwoJfQoJCgkKCS8vIEVsZW1lbnRzIEFuaW1hdGlvbgoJaWYoJCgnLndvdycpLmxlbmd0aCl7CgkJdmFyIHdvdyA9IG5ldyBXT1coCgkJICB7CgkJCWJveENsYXNzOiAgICAgJ3dvdycsICAgICAgLy8gYW5pbWF0ZWQgZWxlbWVudCBjc3MgY2xhc3MgKGRlZmF1bHQgaXMgd293KQoJCQlhbmltYXRlQ2xhc3M6ICdhbmltYXRlZCcsIC8vIGFuaW1hdGlvbiBjc3MgY2xhc3MgKGRlZmF1bHQgaXMgYW5pbWF0ZWQpCgkJCW9mZnNldDogICAgICAgMCwgICAgICAgICAgLy8gZGlzdGFuY2UgdG8gdGhlIGVsZW1lbnQgd2hlbiB0cmlnZ2VyaW5nIHRoZSBhbmltYXRpb24gKGRlZmF1bHQgaXMgMCkKCQkJbW9iaWxlOiAgICAgICB0cnVlLCAgICAgICAvLyB0cmlnZ2VyIGFuaW1hdGlvbnMgb24gbW9iaWxlIGRldmljZXMgKGRlZmF1bHQgaXMgdHJ1ZSkKCQkJbGl2ZTogICAgICAgICB0cnVlICAgICAgIC8vIGFjdCBvbiBhc3luY2hyb25vdXNseSBsb2FkZWQgY29udGVudCAoZGVmYXVsdCBpcyB0cnVlKQoJCSAgfQoJCSk7CgkJd293LmluaXQoKTsKCX0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBXaGVuIGRvY3VtZW50IGlzIFNjcm9sbGlnLCBkbwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoJCgkkKHdpbmRvdykub24oJ3Njcm9sbCcsIGZ1bmN0aW9uKCkgewoJCWhlYWRlclN0eWxlKCk7Cgl9KTsKCQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBXaGVuIGRvY3VtZW50IGlzIGxvYWRpbmcsIGRvCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgkKCSQod2luZG93KS5vbignbG9hZCcsIGZ1bmN0aW9uKCkgewoJCWhhbmRsZVByZWxvYWRlcigpOwoJCXNvcnRhYmxlTWFzb25yeSgpOwoJfSk7CQoKfSkod2luZG93LmpRdWVyeSk7"}},"time_used":28,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/color-settings.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.714Z","timestamp":1785129412714,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/color-settings.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 391\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1161,"size_decoded":627,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with CRLF line terminators","md5":"a723adf74aa53f3661755e2acf1cc6a3","sha1":"e4470b5f92576f469e1f8c90fe06a6a8ddd91739","sha256":"f4a5f60c327a6b3ae60a1d92c6adb14f5536aa5f5c69a4c78dbad26cf834832f","sha512":"2cb57446408efb8b79d61bbc8f2215a17bde8e14685534370c16506daa685a452398e9dfe8c1a5c6398643dba532d3cf2f1d5e59616417c59f6a5e7d72933325","ssdeep":"","tlshash":"a9218c65b3aa2ce391bb337dd47984409f351033c1068ba9b93f94840fb844e227af5e","first_seen":"2023-03-07T17:50:04Z","last_seen":"2026-07-27T13:36:13.737707Z","times_seen":205,"resource_available":true,"data":"KGZ1bmN0aW9uICgkKSB7DQogICAgInVzZSBzdHJpY3QiOw0KDQogICAgJCgnLmNvbG9yLXRyaWdnZXInKS5vbignY2xpY2snLCBmdW5jdGlvbiAoKSB7DQogICAgICAgICQodGhpcykucGFyZW50KCkudG9nZ2xlQ2xhc3MoJ3Zpc2libGUtcGFsYXRlJyk7DQogICAgfSk7DQoJDQoJJCgnLmNvbG9yLXBhbGF0ZSAuY29sb3JzLWxpc3QgLnBhbGF0ZScpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KCQl2YXIgbmV3VGhlbWVDb2xvciA9ICQodGhpcykuYXR0cignZGF0YS10aGVtZS1maWxlJyk7DQoJCXZhciB0YXJnZXRDU1NGaWxlID0gJCgnbGlua1tpZD0idGhlbWUtY29sb3ItZmlsZSJdJyk7DQoJICAgJCh0YXJnZXRDU1NGaWxlKS5hdHRyKCdocmVmJyxuZXdUaGVtZUNvbG9yKTsNCgkgICAkKCcuY29sb3ItcGFsYXRlIC5jb2xvcnMtbGlzdCAucGFsYXRlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOw0KICAgICAgICAkKHRoaXMpLmFkZENsYXNzKCdhY3RpdmUnKTsNCgl9KTsNCg0KCQ0KCXZhciBsYXlvdXRDaGFuZ2VyQnRuID0gJCgiLmNvbG9yLXBhbGF0ZSAuYm94LXZlcnNpb24gbGkiKTsNCgl2YXIgYm9keSA9ICQoImJvZHkiKTsNCglsYXlvdXRDaGFuZ2VyQnRuLm9uKCJjbGljayIsIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsNCiAgICAgICAgaWYgKCAkdGhpcy5oYXNDbGFzcygiYm94IikgKSB7DQogICAgICAgICAgICBib2R5LmFkZENsYXNzKCJib3gtbGF5b3V0Iik7DQogICAgICAgIH0gZWxzZSB7DQogICAgICAgIAlib2R5LnJlbW92ZUNsYXNzKCJib3gtbGF5b3V0Iik7DQogICAgCX07DQoJfSk7DQoNCg0KCXZhciBkaXJlY3Rpb25DaGFuZ2VyID0gJCgiLmNvbG9yLXBhbGF0ZSAucnRsLXZlcnNpb24gbGkiKTsNCgl2YXIgd3JhcHBlciA9ICQoIi5wYWdlLXdyYXBwZXIiKTsNCglkaXJlY3Rpb25DaGFuZ2VyLm9uKCJjbGljayIsIGZ1bmN0aW9uKGUpIHsNCiAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKTsNCiAgICAgICAgaWYgKCAkdGhpcy5oYXNDbGFzcygicnRsIikgKSB7DQogICAgICAgICAgICB3cmFwcGVyLmFkZENsYXNzKCJydGwiKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgCXdyYXBwZXIucmVtb3ZlQ2xhc3MoInJ0bCIpOw0KICAgIAl9Ow0KCX0pOw0KDQoNCn0oalF1ZXJ5KSk7"}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/geotrust.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.730Z","timestamp":1785129412730,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/geotrust.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1834\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1834,"size_decoded":2099,"mime_type":"image/png","magic":"PNG image data, 115 x 57, 8-bit/color RGBA, non-interlaced","md5":"c018e1fea3fdc488241b584a4e884ff9","sha1":"452ad80d668396eae54535609f78ea97194175ee","sha256":"d3761f10040ae8c512f44e7dbc7e1a93609184a7b3f8e1d58a7c53774dc826ca","sha512":"60ce126015371d55f1ec336aeeaeb66f88c20f73433b2715ee47b37fb4a62593a8d3ae0ca5f8f61e734bafa0913961ab19f739c3cdcaa572ab1d2112b9a71442","ssdeep":"","tlshash":"cd310be123011cc10a4c4aa1de3b5de66de7c829597a01bda83ad0dd065fd84f9d2e1d","first_seen":"2023-11-06T04:19:17Z","last_seen":"2026-07-27T13:36:13.676104Z","times_seen":88,"resource_available":false,"data":"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"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"www.smartsuppchat.com/loader.js?","fqdn":"www.smartsuppchat.com","domain":"smartsuppchat.com","tld":"com"},"ip":{"addr":"185.76.9.11","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.782Z","timestamp":1785129412782,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1161431244.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:49 GMT","end":"Wed, 02 Sep 2026 14:34:48 GMT"},"fingerprint":{"sha1":"77:06:42:CE:73:9F:CA:05:A3:6E:99:99:F2:3F:B7:EE:E4:60:E9:29","sha256":"E7:6E:68:C5:CD:6C:F6:14:84:A0:18:1A:D7:94:77:7A:28:F6:67:8E:90:58:94:AE:3A:65:6A:B7:95:0F:5D:1B"}}},"request":{"raw":"GET /loader.js? HTTP/1.1\r\nHost: www.smartsuppchat.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:16:59 GMT\r\ncontent-type: application/javascript\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a2663cd-4668\"\r\nexpires: Mon, 08 Jun 2026 06:46:12 GMT\r\nlast-modified: Mon, 08 Jun 2026 06:40:13 GMT\r\nx-77-nzt: k++tDmRH9q0VDeX2KAKFMwCh6EiCxV+M19nusR5aZIUXO+QQgetl9JwmcjfQs1aBh3MZJz8\r\nx-77-nzt-ray: e2f75420acf0338dcbe9666a904bda1d\r\nx-77-cache: HIT\r\nx-77-age: 20\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":18024,"size_decoded":6042,"mime_type":"application/javascript","magic":"JavaScript source, ASCII text, with very long lines (17951)","md5":"218d24439d4e2c0990f35338a7ac220c","sha1":"5a7b913584c1244bf61beab9dc644204d130101c","sha256":"efb497f7159de26ea5e0521d675d909dc063e36d0d23c2ad96fa9109b73ee263","sha512":"17af39bfdc350c9d1f8dd74652641d0c028881ecb3935d2d9fdb763d24136665d135d00219aabac57693112e2314d4fa91b802ba2662a1580aa35c5e0b6e624b","ssdeep":"384:2/xzy2A3wyxNeBWbEgl/EuVaBWbE0rIcvqSI/aQ/UpG:2/xzy2A3wXscuVaAxka05","tlshash":"4182b7cc7691b16543ab61b4843f620ff1376929740d8865b965eae13cb8c8ed037fb8","first_seen":"2026-03-30T19:01:55.527327Z","last_seen":"2026-07-29T06:17:50.029745Z","times_seen":7755,"resource_available":true,"data":"LyohIEZvciBsaWNlbnNlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgbG9hZGVyLnRlbXBsYXRlLmpzLkxJQ0VOU0UudHh0ICovCigoKT0+e3ZhciB0PXs3MTUodCl7dC5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9ITE7LTEhPT1uYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKCJNU0lFIDEwIikmJih0PSEwKTt2YXIgZSxuPVtdLHI9Im9iamVjdCI9PXR5cGVvZiBkb2N1bWVudCYmZG9jdW1lbnQsbz10P3IuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iik6ci5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwsaT0iRE9NQ29udGVudExvYWRlZCIscz1yJiYobz8vXmxvYWRlZHxeYy86L15sb2FkZWR8Xml8XmMvKS50ZXN0KHIucmVhZHlTdGF0ZSk7cmV0dXJuIXMmJnImJnIuYWRkRXZlbnRMaXN0ZW5lcihpLGU9ZnVuY3Rpb24oKXtmb3Ioci5yZW1vdmVFdmVudExpc3RlbmVyKGksZSkscz0xO2U9bi5zaGlmdCgpOyllKCl9KSxmdW5jdGlvbih0KXtzP3NldFRpbWVvdXQodCwwKTpuLnB1c2godCl9fSgpfSw3NjEodCxlLG4peyJ1c2Ugc3RyaWN0Ijtjb25zdCByPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gZS5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBlLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUucmVqZWN0KG4pfSl9KX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHRoaXMoZnVuY3Rpb24oZSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcih0eXBlb2YgdCsiICIrdCsiIGlzIG5vdCBpdGVyYWJsZShjYW5ub3QgcmVhZCBwcm9wZXJ0eSBTeW1ib2woU3ltYm9sLml0ZXJhdG9yKSkiKSk7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCk7aWYoMD09PXIubGVuZ3RoKXJldHVybiBlKFtdKTt2YXIgbz1yLmxlbmd0aDtmdW5jdGlvbiBpKHQsbil7aWYobiYmKCJvYmplY3QiPT10eXBlb2Ygbnx8ImZ1bmN0aW9uIj09dHlwZW9mIG4pKXt2YXIgcz1uLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIHMpcmV0dXJuIHZvaWQgcy5jYWxsKG4sZnVuY3Rpb24oZSl7aSh0LGUpfSxmdW5jdGlvbihuKXtyW3RdPXtzdGF0dXM6InJlamVjdGVkIixyZWFzb246bn0sMD09PS0tbyYmZShyKX0pfXJbdF09e3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpufSwwPT09LS1vJiZlKHIpfWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKWkocyxyW3NdKX0pfTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5uYW1lPSJBZ2dyZWdhdGVFcnJvciIsdGhpcy5lcnJvcnM9dCx0aGlzLm1lc3NhZ2U9ZXx8IiJ9aS5wcm90b3R5cGU9RXJyb3IucHJvdG90eXBlO2NvbnN0IHM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IGUoZnVuY3Rpb24obixyKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIHIobmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbnkgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09by5sZW5ndGgpcmV0dXJuIHIoKTtmb3IodmFyIHM9W10sYT0wO2E8by5sZW5ndGg7YSsrKXRyeXtlLnJlc29sdmUob1thXSkudGhlbihuKS5jYXRjaChmdW5jdGlvbih0KXtzLnB1c2godCkscy5sZW5ndGg9PT1vLmxlbmd0aCYmcihuZXcgaShzLCJBbGwgcHJvbWlzZXMgd2VyZSByZWplY3RlZCIpKX0pfWNhdGNoKHQpe3IodCl9fSl9O3ZhciBhPXNldFRpbWVvdXQ7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gQm9vbGVhbih0JiZ2b2lkIDAhPT10Lmxlbmd0aCl9ZnVuY3Rpb24gdSgpe31mdW5jdGlvbiBsKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb21pc2VzIG11c3QgYmUgY29uc3RydWN0ZWQgdmlhIG5ldyIpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIm5vdCBhIGZ1bmN0aW9uIik7dGhpcy5fc3RhdGU9MCx0aGlzLl9oYW5kbGVkPSExLHRoaXMuX3ZhbHVlPXZvaWQgMCx0aGlzLl9kZWZlcnJlZHM9W10sdyh0LHRoaXMpfWZ1bmN0aW9uIHAodCxlKXtmb3IoOzM9PT10Ll9zdGF0ZTspdD10Ll92YWx1ZTswIT09dC5fc3RhdGU/KHQuX2hhbmRsZWQ9ITAsbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5fc3RhdGU/ZS5vbkZ1bGZpbGxlZDplLm9uUmVqZWN0ZWQ7aWYobnVsbCE9PW4pe3ZhciByO3RyeXtyPW4odC5fdmFsdWUpfWNhdGNoKHQpe3JldHVybiB2b2lkIGQoZS5wcm9taXNlLHQpfWYoZS5wcm9taXNlLHIpfWVsc2UoMT09PXQuX3N0YXRlP2Y6ZCkoZS5wcm9taXNlLHQuX3ZhbHVlKX0pKTp0Ll9kZWZlcnJlZHMucHVzaChlKX1mdW5jdGlvbiBmKHQsZSl7dHJ5e2lmKGU9PT10KXRocm93IG5ldyBUeXBlRXJyb3IoIkEgcHJvbWlzZSBjYW5ub3QgYmUgcmVzb2x2ZWQgd2l0aCBpdHNlbGYuIik7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXt2YXIgbj1lLnRoZW47aWYoZSBpbnN0YW5jZW9mIGwpcmV0dXJuIHQuX3N0YXRlPTMsdC5fdmFsdWU9ZSx2b2lkIGgodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgdygocj1uLG89ZSxmdW5jdGlvbigpe3IuYXBwbHkobyxhcmd1bWVudHMpfSksdCl9dC5fc3RhdGU9MSx0Ll92YWx1ZT1lLGgodCl9Y2F0Y2goZSl7ZCh0LGUpfXZhciByLG99ZnVuY3Rpb24gZCh0LGUpe3QuX3N0YXRlPTIsdC5fdmFsdWU9ZSxoKHQpfWZ1bmN0aW9uIGgodCl7Mj09PXQuX3N0YXRlJiYwPT09dC5fZGVmZXJyZWRzLmxlbmd0aCYmbC5faW1tZWRpYXRlRm4oZnVuY3Rpb24oKXt0Ll9oYW5kbGVkfHxsLl91bmhhbmRsZWRSZWplY3Rpb25Gbih0Ll92YWx1ZSl9KTtmb3IodmFyIGU9MCxuPXQuX2RlZmVycmVkcy5sZW5ndGg7ZTxuO2UrKylwKHQsdC5fZGVmZXJyZWRzW2VdKTt0Ll9kZWZlcnJlZHM9bnVsbH1mdW5jdGlvbiB5KHQsZSxuKXt0aGlzLm9uRnVsZmlsbGVkPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6bnVsbCx0aGlzLm9uUmVqZWN0ZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpudWxsLHRoaXMucHJvbWlzZT1ufWZ1bmN0aW9uIHcodCxlKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbih0KXtufHwobj0hMCxmKGUsdCkpfSxmdW5jdGlvbih0KXtufHwobj0hMCxkKGUsdCkpfSl9Y2F0Y2godCl7aWYobilyZXR1cm47bj0hMCxkKGUsdCl9fWwucHJvdG90eXBlLmNhdGNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRoZW4obnVsbCx0KX0sbC5wcm90b3R5cGUudGhlbj1mdW5jdGlvbih0LGUpe3ZhciBuPW5ldyB0aGlzLmNvbnN0cnVjdG9yKHUpO3JldHVybiBwKHRoaXMsbmV3IHkodCxlLG4pKSxufSxsLnByb3RvdHlwZS5maW5hbGx5PXIsbC5hbGw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBsKGZ1bmN0aW9uKGUsbil7aWYoIWModCkpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgcj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ci5sZW5ndGgpcmV0dXJuIGUoW10pO3ZhciBvPXIubGVuZ3RoO2Z1bmN0aW9uIGkodCxzKXt0cnl7aWYocyYmKCJvYmplY3QiPT10eXBlb2Ygc3x8ImZ1bmN0aW9uIj09dHlwZW9mIHMpKXt2YXIgYT1zLnRoZW47aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEpcmV0dXJuIHZvaWQgYS5jYWxsKHMsZnVuY3Rpb24oZSl7aSh0LGUpfSxuKX1yW3RdPXMsMD09PS0tbyYmZShyKX1jYXRjaCh0KXtuKHQpfX1mb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKylpKHMscltzXSl9KX0sbC5hbnk9cyxsLmFsbFNldHRsZWQ9byxsLnJlc29sdmU9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PWw/dDpuZXcgbChmdW5jdGlvbihlKXtlKHQpfSl9LGwucmVqZWN0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe24odCl9KX0sbC5yYWNlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbChmdW5jdGlvbihlLG4pe2lmKCFjKHQpKXJldHVybiBuKG5ldyBUeXBlRXJyb3IoIlByb21pc2UucmFjZSBhY2NlcHRzIGFuIGFycmF5IikpO2Zvcih2YXIgcj0wLG89dC5sZW5ndGg7cjxvO3IrKylsLnJlc29sdmUodFtyXSkudGhlbihlLG4pfSl9LGwuX2ltbWVkaWF0ZUZuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQpe3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe2EodCwwKX0sbC5fdW5oYW5kbGVkUmVqZWN0aW9uRm49ZnVuY3Rpb24odCl7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFuZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQpfTtjb25zdCB2PWw7dmFyIGc9ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYpcmV0dXJuIHNlbGY7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvdztpZih2b2lkIDAhPT1uLmcpcmV0dXJuIG4uZzt0aHJvdyBuZXcgRXJyb3IoInVuYWJsZSB0byBsb2NhdGUgZ2xvYmFsIG9iamVjdCIpfSgpOyJmdW5jdGlvbiIhPXR5cGVvZiBnLlByb21pc2U/Zy5Qcm9taXNlPXY6KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseXx8KGcuUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1yKSxnLlByb21pc2UuYWxsU2V0dGxlZHx8KGcuUHJvbWlzZS5hbGxTZXR0bGVkPW8pLGcuUHJvbWlzZS5hbnl8fChnLlByb21pc2UuYW55PXMpKX0sMzQ1KHQsZSxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuU21hcnRzdXBwTG9hZGVyPXZvaWQgMDt2YXIgcj1uKDc0MCksbz1uKDg5MyksaT1uKDEzMCkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5vcHRpb25zPXQsdGhpcy53aWRnZXRzPXt9LHRoaXMuY2hhdHM9dGhpcy53aWRnZXRzfXJldHVybiB0LnByb3RvdHlwZS5zZXREZWZhdWx0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpc30sdC5wcm90b3R5cGUuZ2V0Q2hhdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy53aWRnZXRzW3RdfSx0LnByb3RvdHlwZS5nZXRXaWRnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud2lkZ2V0c1t0XX0sdC5wcm90b3R5cGUuY3JlYXRlPWZ1bmN0aW9uKHQsZSxuLHMpe3ZhciBjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7YShjKTt2YXIgdT10aGlzLndpZGdldHNbdF09bmV3IGkuU21hcnRzdXBwV2lkZ2V0KHQsYyxuKTtyZXR1cm4gdS5faW5pdFByb21pc2U9KDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPSgwLG8ucGFyc2VKU09OKSh0KTtyZXR1cm4gZGVsZXRlIGUuZmVhdHVyZXMsdS5pbml0KCgwLG8ubWVyZ2VEZWVwKShuLGUpLG4uZmVhdHVyZXMpLGUmJmUud2lkZ2V0VHJhY2tlckVuYWJsZWQmJigwLHIudHJhY2tPcHRpb25zKSh1Lm9wdGlvbnMsT2JqZWN0LmtleXMoZSkpLHdpbmRvdy5zbWFydHN1cHAuZ2V0QXNzZXRVcmw9dS5nZXRBc3NldFVybC5iaW5kKHUpLHMmJnModm9pZCAwLHUpLHUub3B0aW9ucy5yZW5kZXJUbyYmdS5yZW5kZXIodS5vcHRpb25zLnJlbmRlclRvKSxudWxsfSkuY2F0Y2goZnVuY3Rpb24odCl7cyYmcyh0KX0pLHV9LHQucHJvdG90eXBlLmNyZWF0ZVdpZGdldD1mdW5jdGlvbih0LGUsbil7dmFyIHM9dGhpcyxjPSgwLG8ubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIGEoYyksKDAsby5yZXF1ZXN0KSgiIi5jb25jYXQoYy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KGMua2V5LCIuanNvbiIpKS50aGVuKGZ1bmN0aW9uKGEpe3ZhciB1PSgwLG8ucGFyc2VKU09OKShhKSxsPXMud2lkZ2V0c1t0XT1uZXcgaS5TbWFydHN1cHBXaWRnZXQodCxjLG4pO3JldHVybiBkZWxldGUgZS5mZWF0dXJlcyxsLmluaXQoKDAsby5tZXJnZURlZXApKHUsZSksdS5mZWF0dXJlcyksZSYmZS53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsci50cmFja09wdGlvbnMpKGwub3B0aW9ucyxPYmplY3Qua2V5cyhlKSksd2luZG93LnNtYXJ0c3VwcC5nZXRBc3NldFVybD1sLmdldEFzc2V0VXJsLmJpbmQobCksbH0pfSx0fSgpO2UuU21hcnRzdXBwTG9hZGVyPXM7dmFyIGE9ZnVuY3Rpb24odCl7aWYoIXQuYm9vdHN0cmFwVXJsKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24gYm9vdHN0cmFwVXJsIik7aWYoIXQua2V5KXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBvcHRpb24ga2V5Iil9fSw3NDAodCxlLG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odCxlLG4scil7cmV0dXJuIG5ldyhufHwobj1Qcm9taXNlKSkoZnVuY3Rpb24obyxpKXtmdW5jdGlvbiBzKHQpe3RyeXtjKHIubmV4dCh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYSh0KXt0cnl7YyhyLnRocm93KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiBjKHQpe3ZhciBlO3QuZG9uZT9vKHQudmFsdWUpOihlPXQudmFsdWUsZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSkpLnRoZW4ocyxhKX1jKChyPXIuYXBwbHkodCxlfHxbXSkpLm5leHQoKSl9KX0sbz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0LGUpe3ZhciBuLHIsbyxpLHM9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6YSgwKSx0aHJvdzphKDEpLHJldHVybjphKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxpO2Z1bmN0aW9uIGEoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiBmdW5jdGlvbihhKXtpZihuKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2kmJihpPTAsYVswXSYmKHM9MCkpLHM7KXRyeXtpZihuPTEsciYmKG89MiZhWzBdP3IucmV0dXJuOmFbMF0/ci50aHJvd3x8KChvPXIucmV0dXJuKSYmby5jYWxsKHIpLDApOnIubmV4dCkmJiEobz1vLmNhbGwocixhWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gocj0wLG8mJihhPVsyJmFbMF0sby52YWx1ZV0pLGFbMF0pe2Nhc2UgMDpjYXNlIDE6bz1hO2JyZWFrO2Nhc2UgNDpyZXR1cm4gcy5sYWJlbCsrLHt2YWx1ZTphWzFdLGRvbmU6ITF9O2Nhc2UgNTpzLmxhYmVsKysscj1hWzFdLGE9WzBdO2NvbnRpbnVlO2Nhc2UgNzphPXMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89cy50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1hWzBdJiYyIT09YVswXSkpe3M9MDtjb250aW51ZX1pZigzPT09YVswXSYmKCFvfHxhWzFdPm9bMF0mJmFbMV08b1szXSkpe3MubGFiZWw9YVsxXTticmVha31pZig2PT09YVswXSYmcy5sYWJlbDxvWzFdKXtzLmxhYmVsPW9bMV0sbz1hO2JyZWFrfWlmKG8mJnMubGFiZWw8b1syXSl7cy5sYWJlbD1vWzJdLHMub3BzLnB1c2goYSk7YnJlYWt9b1syXSYmcy5vcHMucG9wKCkscy50cnlzLnBvcCgpO2NvbnRpbnVlfWE9ZS5jYWxsKHQscyl9Y2F0Y2godCl7YT1bNix0XSxyPTB9ZmluYWxseXtuPW89MH1pZig1JmFbMF0pdGhyb3cgYVsxXTtyZXR1cm57dmFsdWU6YVswXT9hWzFdOnZvaWQgMCxkb25lOiEwfX0oW2EsY10pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLnRyYWNrT3BlcmF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIG8odGhpcyxmdW5jdGlvbihuKXtzd2l0Y2gobi5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fHMuaW5kZXhPZihlKT49MHx8YS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSk+PTApcmV0dXJuWzIsITFdO24ubGFiZWw9MTtjYXNlIDE6cmV0dXJuIG4udHJ5cy5wdXNoKFsxLDMsLDRdKSxbNCwoMCxpLnJlcXVlc3QpKHQud2lkZ2V0VHJhY2tlclVybCsiL3RyYWNrL29wZXJhdGlvbj9rZXk9Ii5jb25jYXQodC5rZXksIiZvcGVyYXRpb249IikuY29uY2F0KGUsIiZkb21haW49IikuY29uY2F0KHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkpXTtjYXNlIDI6cmV0dXJuIG4uc2VudCgpLFsyLCEwXTtjYXNlIDM6cmV0dXJuIG4uc2VudCgpLFsyLCExXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUudHJhY2tPcHRpb25zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG47cmV0dXJuIG8odGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOmlmKCF0LndpZGdldFRyYWNrZXJVcmx8fGEuaW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpPj0wKXJldHVyblsyLCExXTtpZigwPT09KG49ZS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGMuaW5kZXhPZih0KTwwfSkpLmxlbmd0aClyZXR1cm5bMiwhMV07ci5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gci50cnlzLnB1c2goWzEsMywsNF0pLFs0LCgwLGkucmVxdWVzdCkodC53aWRnZXRUcmFja2VyVXJsKyIvdHJhY2svb3B0aW9ucz9rZXk9Ii5jb25jYXQodC5rZXksIiZvcHRpb25zPSIpLmNvbmNhdChuLmpvaW4oIiwiKSwiJmRvbWFpbj0iKS5jb25jYXQod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKSldO2Nhc2UgMjpyZXR1cm4gci5zZW50KCksWzIsITBdO2Nhc2UgMzpyZXR1cm4gci5zZW50KCksWzIsITFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX07dmFyIGk9big4OTMpLHM9WyJodG1sOmFwcGx5IiwiY2hhdDptZXNzYWdlIiwib24iXSxhPVsid3d3LnNtYXJ0c3VwcC5jb20iLCJhcHAuc21hcnRzdXBwLmNvbSJdLGM9WyJrZXkiLCJnYU9wdGlvbnMiLCJnYU5hbWUiLCJjb29raWVQcmVmaXgiLCJjb29raWVQYXRoIiwiY3Jvc3NEb21haW5FbmFibGVkIiwicG9zaXRpb24iLCJvcGVuT25UcmlnZ2VyIl19LDg5Myh0LGUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5wYXJzZUpTT049ZS5yZXF1ZXN0PWUuY3JlYXRlTGluaz1lLmNyZWF0ZVNjcmlwdD1lLnJlc29sdmVUYXJnZXRFbGVtZW50PWUubWVyZ2VEZWVwPXZvaWQgMDt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmIm9iamVjdCI9PXR5cGVvZiB0fTtlLm1lcmdlRGVlcD1mdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3JdPWFyZ3VtZW50c1tyXTt2YXIgbz17fTtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9b1tyXSxzPXRbcl07dm9pZCAwIT09cyYmKEFycmF5LmlzQXJyYXkoaSl8fEFycmF5LmlzQXJyYXkocyk/b1tyXT1zOm4oaSkmJm4ocyk/b1tyXT0oMCxlLm1lcmdlRGVlcCkoaSxzKTpvW3JdPXMpfSl9KSxvfSxlLnJlc29sdmVUYXJnZXRFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRWxlbWVudD90OiJzdHJpbmciPT10eXBlb2YgdD9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0KTpkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdfSxlLmNyZWF0ZVNjcmlwdD1mdW5jdGlvbih0LGUpe3ZhciBuPXQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7cmV0dXJuIG4udHlwZT0idGV4dC9qYXZhc2NyaXB0IixuLmNoYXJzZXQ9InV0ZjgiLGUmJihuLnNyYz1lKSxufSxlLmNyZWF0ZUxpbms9ZnVuY3Rpb24odCxlKXt2YXIgbj10LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTtyZXR1cm4gZSYmKG4uaHJlZj1lKSxufSxlLnJlcXVlc3Q9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe2Uub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PWUucmVhZHlTdGF0ZSYmKGUuc3RhdHVzPj0yMDAmJmUuc3RhdHVzPDMwMD9uKGUucmVzcG9uc2UpOnIobmV3IEVycm9yKCJSZXF1ZXN0IGZhaWxlZCB3aXRoIHN0YXR1cyAiLmNvbmNhdChlLnN0YXR1cykpKSl9LGUub3BlbigiR0VUIix0LCEwKSxlLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsInRleHQvcGxhaW4iKSxlLnNlbmQoKX0pfSxlLnBhcnNlSlNPTj1mdW5jdGlvbih0KXtpZihKU09OLnBhcnNlKXJldHVybiBKU09OLnBhcnNlKHQpO2lmKEpTT04uZGVjb2RlKXJldHVybiBKU09OLmRlY29kZSh0KTt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBwYXJzZSBqc29uLiIpfX0sMTMwKHQsZSxuKXsidXNlIHN0cmljdCI7dmFyIHI9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKHQsZSxuLHIpe3JldHVybiBuZXcobnx8KG49UHJvbWlzZSkpKGZ1bmN0aW9uKG8saSl7ZnVuY3Rpb24gcyh0KXt0cnl7YyhyLm5leHQodCkpfWNhdGNoKHQpe2kodCl9fWZ1bmN0aW9uIGEodCl7dHJ5e2Moci50aHJvdyh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gYyh0KXt2YXIgZTt0LmRvbmU/byh0LnZhbHVlKTooZT10LnZhbHVlLGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pKS50aGVuKHMsYSl9Yygocj1yLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSl9LG89dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odCxlKXt2YXIgbixyLG8saSxzPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9bMF0pdGhyb3cgb1sxXTtyZXR1cm4gb1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBpPXtuZXh0OmEoMCksdGhyb3c6YSgxKSxyZXR1cm46YSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBhKGEpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oYSl7aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtpJiYoaT0wLGFbMF0mJihzPTApKSxzOyl0cnl7aWYobj0xLHImJihvPTImYVswXT9yLnJldHVybjphWzBdP3IudGhyb3d8fCgobz1yLnJldHVybikmJm8uY2FsbChyKSwwKTpyLm5leHQpJiYhKG89by5jYWxsKHIsYVsxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKHI9MCxvJiYoYT1bMiZhWzBdLG8udmFsdWVdKSxhWzBdKXtjYXNlIDA6Y2FzZSAxOm89YTticmVhaztjYXNlIDQ6cmV0dXJuIHMubGFiZWwrKyx7dmFsdWU6YVsxXSxkb25lOiExfTtjYXNlIDU6cy5sYWJlbCsrLHI9YVsxXSxhPVswXTtjb250aW51ZTtjYXNlIDc6YT1zLm9wcy5wb3AoKSxzLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvPShvPXMudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09YVswXSYmMiE9PWFbMF0pKXtzPTA7Y29udGludWV9aWYoMz09PWFbMF0mJighb3x8YVsxXT5vWzBdJiZhWzFdPG9bM10pKXtzLmxhYmVsPWFbMV07YnJlYWt9aWYoNj09PWFbMF0mJnMubGFiZWw8b1sxXSl7cy5sYWJlbD1vWzFdLG89YTticmVha31pZihvJiZzLmxhYmVsPG9bMl0pe3MubGFiZWw9b1syXSxzLm9wcy5wdXNoKGEpO2JyZWFrfW9bMl0mJnMub3BzLnBvcCgpLHMudHJ5cy5wb3AoKTtjb250aW51ZX1hPWUuY2FsbCh0LHMpfWNhdGNoKHQpe2E9WzYsdF0scj0wfWZpbmFsbHl7bj1vPTB9aWYoNSZhWzBdKXRocm93IGFbMV07cmV0dXJue3ZhbHVlOmFbMF0/YVsxXTp2b2lkIDAsZG9uZTohMH19KFthLGNdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBXaWRnZXQ9dm9pZCAwO3ZhciBpPW4oNzQwKSxzPW4oODkzKSxhPXdpbmRvdyxjPSItYXBwbGljYXRpb24taWZyYW1lIix1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsbil7aWYodm9pZCAwPT09biYmKG49W10pLHRoaXMuaWQ9dCx0aGlzLm9wdGlvbnM9ZSx0aGlzLl9wdXNoQXBpPW4sdGhpcy5yZW5kZXJlZD0hMSx0aGlzLmFwaT1udWxsLHRoaXMuZWw9bnVsbCx0aGlzLmZyYW1lPW51bGwsdGhpcy52ZXJzaW9uPTIsdGhpcy5pbml0aWFsaXplZD0hMSwhZS5ib290c3RyYXBVcmwpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBib290c3RyYXBVcmwiKTtpZighZS5rZXkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIG9wdGlvbiBrZXkiKX1yZXR1cm4gdC5wcm90b3R5cGUuc2V0T3B0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zPSgwLHMubWVyZ2VEZWVwKSh0aGlzLm9wdGlvbnMsdCksdGhpcy5mZWF0dXJlcyYmKHRoaXMuZmVhdHVyZXMucmF0aW5nfHwodGhpcy5vcHRpb25zLnJhdGluZ0VuYWJsZWQ9ITEpLHRoaXMuZmVhdHVyZXMuZ3JvdXBzfHwodGhpcy5vcHRpb25zLmdyb3VwU2VsZWN0RW5hYmxlZD0hMSksdGhpcy5mZWF0dXJlcy5jdXN0b21pemV8fCh0aGlzLm9wdGlvbnMuaGlkZVdpZGdldD0hMSx0aGlzLm9wdGlvbnMuaGlkZU9mZmxpbmVDaGF0PSExLHRoaXMub3B0aW9ucy5udW1iZXJDb250cm9sPSExLHRoaXMub3B0aW9ucy5yZXF1aXJlTG9naW49ITEsdGhpcy5vcHRpb25zLnByaXZhY3lOb3RpY2VFbmFibGVkPSEwLHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbj0icmlnaHQiKSx0aGlzLmZlYXR1cmVzLmdhfHwodGhpcy5vcHRpb25zLmdvb2dsZUFuYWx5dGljc0VuYWJsZWQ9ITEpKSx0aGlzfSx0LnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKHQsZSl7dGhpcy5mZWF0dXJlcz1lLHRoaXMuc2V0T3B0aW9ucyh0KSx0aGlzLmluaXRpYWxpemVkPSEwLCJhdXRvIj09PXRoaXMub3B0aW9ucy5wb3NpdGlvbiYmKHRoaXMub3B0aW9ucy5wb3NpdGlvbj10aGlzLm9wdGlvbnMucmVuZGVyVG8/InJlbGF0aXZlIjoiZml4ZWQiKX0sdC5wcm90b3R5cGUuY3JlYXRlRnJhbWU9ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtyZXR1cm4gdC5pZD0iIi5jb25jYXQodGhpcy5pZCkuY29uY2F0KGMpLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlNtYXJ0c3VwcCIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0LnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsdC5zdHlsZS50b3A9IjAiLHQuc3R5bGUubGVmdD0iMCIsdC5zdHlsZS53aWR0aD0iMXB4Iix0LnN0eWxlLmhlaWdodD0iMXB4Iix0LnN0eWxlLm9wYWNpdHk9IjAiLHQuc3R5bGUuYm9yZGVyPSJub25lIix0LnN0eWxlLnpJbmRleD0iLTEiLHQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsdH0sdC5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKHQpe3JldHVybiByKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBvKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5faW5pdFByb21pc2U/WzQsdGhpcy5faW5pdFByb21pc2VdOlszLDJdO2Nhc2UgMTpuLnNlbnQoKSxuLmxhYmVsPTI7Y2FzZSAyOmlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQrYykpcmV0dXJuWzJdO2lmKCF0aGlzLmluaXRpYWxpemVkKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGluaXRpYWxpemUgd2lkZ2V0Iik7aWYoIShlPSgwLHMucmVzb2x2ZVRhcmdldEVsZW1lbnQpKHQpKSl0aHJvdyBuZXcgRXJyb3IoInRhcmdldCBlbGVtZW50IG5vdCBmb3VuZCIpO3JldHVybiB0aGlzLnJlbmRlckZyYW1lKGUpLHRoaXMucmVuZGVyZWQ9ITAsWzJdfX0pfSl9LHQucHJvdG90eXBlLnJlbmRlckZyYW1lPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsbj10aGlzLmZyYW1lPXRoaXMuY3JlYXRlRnJhbWUoKTtuLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIHQsaSxhPW51bGwhPT0odD1uLmNvbnRlbnREb2N1bWVudCkmJnZvaWQgMCE9PXQ/dDpudWxsPT09KGk9bi5jb250ZW50V2luZG93KXx8dm9pZCAwPT09aT92b2lkIDA6aS5kb2N1bWVudDtpZighYSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIERvY3VtZW50Iik7dmFyIGM9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLHU9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdO3UuaWQ9ImJvZHkiLHUuZGF0YXNldC5zbWFydHN1cHBJZD1lLmlkLHUuaW5uZXJIVE1MPSc8ZGl2IGlkPSJhcHAiPjwvZGl2Pic7dmFyIGw9InNyYy9tYWluLnRzIixwPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlU2NyaXB0KShhLGUuZ2V0QmFzZVVybCgpKyIvIi5jb25jYXQodCkpO24udHlwZT0ibW9kdWxlIixjLmFwcGVuZENoaWxkKG4pfSxmPWZ1bmN0aW9uKHQpe3ZhciBuPSgwLHMuY3JlYXRlTGluaykoYSwiIi5jb25jYXQoZS5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCkpO24ucmVsPSJzdHlsZXNoZWV0IixuLmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLGMuYXBwZW5kQ2hpbGQobil9O2Uub3B0aW9ucy53aWRnZXRWM0Rldk1vZGU/WyJAdml0ZS9jbGllbnQiLGxdLmZvckVhY2gocCk6cihlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdCxuLHIsaTtyZXR1cm4gbyh0aGlzLGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAscy5yZXF1ZXN0KSgiIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi9tYW5pZmVzdC5qc29uIikpLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuKDAscy5wYXJzZUpTT04pKHQpfSldO2Nhc2UgMTpyZXR1cm4gdD1vLnNlbnQoKSxuPXRbbF0scChuLmZpbGUpLG51bGw9PT0ocj1uLmltcG9ydHMpfHx2b2lkIDA9PT1yfHxyLmZvckVhY2goZnVuY3Rpb24obil7dmFyIHIsbztyPXRbbl0uZmlsZSwobz0oMCxzLmNyZWF0ZUxpbmspKGEsIiIuY29uY2F0KGUuZ2V0QmFzZVVybCgpLCIvIikuY29uY2F0KHIpKSkucmVsPSJtb2R1bGVwcmVsb2FkIixjLmFwcGVuZENoaWxkKG8pfSksbnVsbD09PShpPW4uY3NzKXx8dm9pZCAwPT09aXx8aS5mb3JFYWNoKGYpLGYodFsic3R5bGUuY3NzIl0uZmlsZSksWzJdfX0pfSl9KSx0LmFwcGVuZENoaWxkKG4pfSx0LnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5lbCYmdGhpcy5lbC5wYXJlbnROb2RlJiYodGhpcy5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWwpLHRoaXMuZWw9bnVsbCl9LHQucHJvdG90eXBlLmdldE9wdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbdF0/ZTp0aGlzLm9wdGlvbnNbdF19LHQucHJvdG90eXBlLmdldEJhc2VVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLndpZGdldFYzVXJsfSx0LnByb3RvdHlwZS5nZXRBc3NldFVybD1mdW5jdGlvbih0KXtyZXR1cm4iIi5jb25jYXQodGhpcy5nZXRCYXNlVXJsKCksIi8iKS5jb25jYXQodCl9LHQucHJvdG90eXBlLmdldEludGVybmFsQXBpVXJsPWZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHRoaXMub3B0aW9ucy5ib290c3RyYXBVcmwsIi93aWRnZXQvIikuY29uY2F0KHRoaXMub3B0aW9ucy5rZXksIi9jb2RlLmpzIil9LHQucHJvdG90eXBlLmV4ZWM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YXJndW1lbnRzLmxlbmd0aDtlKyspdFtlXT1hcmd1bWVudHNbZV07dGhpcy5fcHVzaEFwaS5wdXNoKHQpfSx0LnByb3RvdHlwZS5pbnN0YWxsQXBpPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5hcGk9dCxhLnNtYXJ0c3VwcC5hcGk9dCx0aGlzLl9wdXNoQXBpJiYodGhpcy5fcHVzaEFwaS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3ZhciByPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG4sMCk7dHJ5e2Uub3B0aW9ucy53aWRnZXRUcmFja2VyRW5hYmxlZCYmKDAsaS50cmFja09wZXJhdGlvbikoZS5vcHRpb25zLHJbMF0pLHQuZXhlY3V0ZShyKX1jYXRjaCh0KXtjb25zb2xlLmxvZyh0KX19KSx0aGlzLl9wdXNoQXBpLnB1c2g9ZnVuY3Rpb24obil7dmFyIHI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobiwwKTt0cnl7ZS5vcHRpb25zLndpZGdldFRyYWNrZXJFbmFibGVkJiYoMCxpLnRyYWNrT3BlcmF0aW9uKShlLm9wdGlvbnMsclswXSksdC5leGVjdXRlKHIpfWNhdGNoKHQpe2NvbnNvbGUubG9nKHQpfX0pLHRoaXMub3B0aW9ucy5vblN0YXJ0dXApdHJ5e3RoaXMub3B0aW9ucy5vblN0YXJ0dXAodCl9Y2F0Y2godCl7Y29uc29sZS5sb2codCl9fSx0fSgpO2UuU21hcnRzdXBwV2lkZ2V0PXV9fSxlPXt9O2Z1bmN0aW9uIG4ocil7dmFyIG89ZVtyXTtpZih2b2lkIDAhPT1vKXJldHVybiBvLmV4cG9ydHM7dmFyIGk9ZVtyXT17ZXhwb3J0czp7fX07cmV0dXJuIHRbcl0uY2FsbChpLmV4cG9ydHMsaSxpLmV4cG9ydHMsbiksaS5leHBvcnRzfW4uZz1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcylyZXR1cm4gZ2xvYmFsVGhpczt0cnl7cmV0dXJuIHRoaXN8fG5ldyBGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpfWNhdGNoKHQpe2lmKCJvYmplY3QiPT10eXBlb2Ygd2luZG93KXJldHVybiB3aW5kb3d9fSgpLCgoKT0+eyJ1c2Ugc3RyaWN0IjtuKDc2MSk7dmFyIHQ9big3MTUpLGU9bigzNDUpLHI9ImNoYXQiO2lmKHdpbmRvdy5zbWFydHN1cHB8fCh3aW5kb3cuc21hcnRzdXBwPWZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcC5fLnB1c2goYXJndW1lbnRzKX0sd2luZG93LnNtYXJ0c3VwcC5fPVtdKSwhd2luZG93LlNNQVJUU1VQUF9MT0FERUQpe3dpbmRvdy5TTUFSVFNVUFBfTE9BREVEPSEwO3ZhciBvPW5ldyBlLlNtYXJ0c3VwcExvYWRlcih7d2lkZ2V0VmVyc2lvbjozLGJvb3RzdHJhcFVybDoiaHR0cHM6Ly9ib290c3RyYXAuc21hcnRzdXBwY2hhdC5jb20iLGZpbGVzVXJsOiJodHRwczovL2ZpbGVzLnNtYXJ0c3VwcGNkbi5jb20iLHdpZGdldFYzVXJsOiJodHRwczovL3dpZGdldC12My5zbWFydHN1cHBjZG4uY29tIixzdG9yYWdlVXJsOiJodHRwczovL3trZXl9LnN0b3JhZ2Uuc21hcnRzdXBwY2hhdC5jb20iLHdpZGdldEFwaVVybDoiaHR0cHM6Ly9hcGkuc21hcnRzdXBwY2hhdC5jb20iLHpJbmRleDoxZTcscG9zaXRpb246ImF1dG8iLG9yaWVudGF0aW9uOiJyaWdodCIsYXV0b0lubGluZU1vZGU6ITAsd2lkZ2V0VjNEZXZNb2RlOiExfSk7d2luZG93LiRzbWFydHN1cHA9byx3aW5kb3cuc21hcnRzdXBwPU9iamVjdC5hc3NpZ24od2luZG93LnNtYXJ0c3VwcCx7Y2hhdHM6by53aWRnZXRzLGNyZWF0ZTpvLmNyZWF0ZS5iaW5kKG8pLGNyZWF0ZVdpZGdldDpvLmNyZWF0ZVdpZGdldC5iaW5kKG8pLGdldENoYXQ6by5nZXRDaGF0LmJpbmQobyksZ2V0V2lkZ2V0Om8uZ2V0V2lkZ2V0LmJpbmQobyksc2V0RGVmYXVsdHM6by5zZXREZWZhdWx0cy5iaW5kKG8pfSksITEhPT13aW5kb3cuU01BUlRTVVBQX0FVVE9DUkVBVEUmJighMD09PXdpbmRvdy5TTUFSVFNVUFBfQkZDQUNIRSYmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oKXt2YXIgdDtudWxsPT09KHQ9d2luZG93LnNtYXJ0c3VwcC5nZXRXaWRnZXQocikpfHx2b2lkIDA9PT10fHx0LnJlbmRlcigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXt2YXIgdCxlO251bGw9PT0odD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjIi5jb25jYXQociwiLWFwcGxpY2F0aW9uLWlmcmFtZSIpKSl8fHZvaWQgMD09PXR8fHQucmVtb3ZlKCksbnVsbD09PShlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNzbWFydHN1cHAtd2lkZ2V0LWNvbnRhaW5lciIpKXx8dm9pZCAwPT09ZXx8ZS5yZW1vdmUoKX0pKSx0KGZ1bmN0aW9uKCl7d2luZG93LnNtYXJ0c3VwcCgiaHRtbDphcHBseSIsZG9jdW1lbnQpLG8uY3JlYXRlV2lkZ2V0KHIsd2luZG93Ll9zbWFydHN1cHAsd2luZG93LnNtYXJ0c3VwcC5fKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlbmRlcigpfSkuY2F0Y2goZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKHQpfSl9KSl9fSkoKX0pKCk7"}},"time_used":6724,"timings":{"blocked":-1,"dns":29,"connect":8,"send":0,"wait":8,"receive":0,"ssl":6679},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/jquery-ui.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.813Z","timestamp":1785129412813,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/jquery-ui.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 7920\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":37292,"size_decoded":8229,"mime_type":"text/css","magic":"ASCII text, with very long lines (2363), with CRLF line terminators","md5":"1490821f948b63774f6585c96f098c78","sha1":"df3d8641ae9c934d4939bed4b8223ecde5b5d7ed","sha256":"c3b849ad6623aff6d7478892aa60d2cb2391cb812abeba91cabd12c61e8e98a9","sha512":"a2b1016b8aa20a00c7fc5fd0c3e7fb57340a7898239d399b21b87d2fda7f4a67c4e7e820b1095e7a879cc11e51fe09ee12dcbc5f583124bbb4b488a164269c05","ssdeep":"768:29IVwgSrzZIjnT79V96MBiWAVPQ0l5r/cdH4NvEFTfbv:Q2fbv","tlshash":"d6f21eb49b43340d7617d350f2f26bf3de2e1392ee17c96fa49a254992d64a0807f6b0","first_seen":"2023-04-08T03:07:13Z","last_seen":"2026-07-27T14:18:36.421844Z","times_seen":193,"resource_available":false,"data":"LyohIGpRdWVyeSBVSSAtIHYxLjEyLjEgLSAyMDE2LTA5LTE0DQoqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiogSW5jbHVkZXM6IGNvcmUuY3NzLCBhY2NvcmRpb24uY3NzLCBhdXRvY29tcGxldGUuY3NzLCBtZW51LmNzcywgYnV0dG9uLmNzcywgY29udHJvbGdyb3VwLmNzcywgY2hlY2tib3hyYWRpby5jc3MsIGRhdGVwaWNrZXIuY3NzLCBkaWFsb2cuY3NzLCBkcmFnZ2FibGUuY3NzLCByZXNpemFibGUuY3NzLCBwcm9ncmVzc2Jhci5jc3MsIHNlbGVjdGFibGUuY3NzLCBzZWxlY3RtZW51LmNzcywgc2xpZGVyLmNzcywgc29ydGFibGUuY3NzLCBzcGlubmVyLmNzcywgdGFicy5jc3MsIHRvb2x0aXAuY3NzLCB0aGVtZS5jc3MNCiogVG8gdmlldyBhbmQgbW9kaWZ5IHRoaXMgdGhlbWUsIHZpc2l0IGh0dHA6Ly9qcXVlcnl1aS5jb20vdGhlbWVyb2xsZXIvP2ZmRGVmYXVsdD1BcmlhbCUyQ0hlbHZldGljYSUyQ3NhbnMtc2VyaWYmZnNEZWZhdWx0PTFlbSZmd0RlZmF1bHQ9bm9ybWFsJmNvcm5lclJhZGl1cz0zcHgmYmdDb2xvckhlYWRlcj1lOWU5ZTkmYmdUZXh0dXJlSGVhZGVyPWZsYXQmYm9yZGVyQ29sb3JIZWFkZXI9ZGRkZGRkJmZjSGVhZGVyPTMzMzMzMyZpY29uQ29sb3JIZWFkZXI9NDQ0NDQ0JmJnQ29sb3JDb250ZW50PWZmZmZmZiZiZ1RleHR1cmVDb250ZW50PWZsYXQmYm9yZGVyQ29sb3JDb250ZW50PWRkZGRkZCZmY0NvbnRlbnQ9MzMzMzMzJmljb25Db2xvckNvbnRlbnQ9NDQ0NDQ0JmJnQ29sb3JEZWZhdWx0PWY2ZjZmNiZiZ1RleHR1cmVEZWZhdWx0PWZsYXQmYm9yZGVyQ29sb3JEZWZhdWx0PWM1YzVjNSZmY0RlZmF1bHQ9NDU0NTQ1Jmljb25Db2xvckRlZmF1bHQ9Nzc3Nzc3JmJnQ29sb3JIb3Zlcj1lZGVkZWQmYmdUZXh0dXJlSG92ZXI9ZmxhdCZib3JkZXJDb2xvckhvdmVyPWNjY2NjYyZmY0hvdmVyPTJiMmIyYiZpY29uQ29sb3JIb3Zlcj01NTU1NTUmYmdDb2xvckFjdGl2ZT0wMDdmZmYmYmdUZXh0dXJlQWN0aXZlPWZsYXQmYm9yZGVyQ29sb3JBY3RpdmU9MDAzZWZmJmZjQWN0aXZlPWZmZmZmZiZpY29uQ29sb3JBY3RpdmU9ZmZmZmZmJmJnQ29sb3JIaWdobGlnaHQ9ZmZmYTkwJmJnVGV4dHVyZUhpZ2hsaWdodD1mbGF0JmJvcmRlckNvbG9ySGlnaGxpZ2h0PWRhZDU1ZSZmY0hpZ2hsaWdodD03Nzc2MjAmaWNvbkNvbG9ySGlnaGxpZ2h0PTc3NzYyMCZiZ0NvbG9yRXJyb3I9ZmRkZmRmJmJnVGV4dHVyZUVycm9yPWZsYXQmYm9yZGVyQ29sb3JFcnJvcj1mMWE4OTkmZmNFcnJvcj01ZjNmM2YmaWNvbkNvbG9yRXJyb3I9Y2MwMDAwJmJnQ29sb3JPdmVybGF5PWFhYWFhYSZiZ1RleHR1cmVPdmVybGF5PWZsYXQmYmdJbWdPcGFjaXR5T3ZlcmxheT0wJm9wYWNpdHlPdmVybGF5PTMwJmJnQ29sb3JTaGFkb3c9NjY2NjY2JmJnVGV4dHVyZVNoYWRvdz1mbGF0JmJnSW1nT3BhY2l0eVNoYWRvdz0wJm9wYWNpdHlTaGFkb3c9MzAmdGhpY2tuZXNzU2hhZG93PTVweCZvZmZzZXRUb3BTaGFkb3c9MHB4Jm9mZnNldExlZnRTaGFkb3c9MHB4JmNvcm5lclJhZGl1c1NoYWRvdz04cHgNCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLw0KDQovKiBMYXlvdXQgaGVscGVycw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoudWktaGVscGVyLWhpZGRlbiB7DQoJZGlzcGxheTogbm9uZTsNCn0NCi51aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUgew0KCWJvcmRlcjogMDsNCgljbGlwOiByZWN0KDAgMCAwIDApOw0KCWhlaWdodDogMXB4Ow0KCW1hcmdpbjogLTFweDsNCglvdmVyZmxvdzogaGlkZGVuOw0KCXBhZGRpbmc6IDA7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXdpZHRoOiAxcHg7DQp9DQoudWktaGVscGVyLXJlc2V0IHsNCgltYXJnaW46IDA7DQoJcGFkZGluZzogMDsNCglib3JkZXI6IDA7DQoJb3V0bGluZTogMDsNCglsaW5lLWhlaWdodDogMS4zOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCglmb250LXNpemU6IDEwMCU7DQoJbGlzdC1zdHlsZTogbm9uZTsNCn0NCi51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLA0KLnVpLWhlbHBlci1jbGVhcmZpeDphZnRlciB7DQoJY29udGVudDogIiI7DQoJZGlzcGxheTogdGFibGU7DQoJYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsNCn0NCi51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXIgew0KCWNsZWFyOiBib3RoOw0KfQ0KLnVpLWhlbHBlci16Zml4IHsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDEwMCU7DQoJdG9wOiAwOw0KCWxlZnQ6IDA7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCW9wYWNpdHk6IDA7DQoJZmlsdGVyOkFscGhhKE9wYWNpdHk9MCk7IC8qIHN1cHBvcnQ6IElFOCAqLw0KfQ0KDQoudWktZnJvbnQgew0KCXotaW5kZXg6IDEwMDsNCn0NCg0KDQovKiBJbnRlcmFjdGlvbiBDdWVzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi51aS1zdGF0ZS1kaXNhYmxlZCB7DQoJY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7DQoJcG9pbnRlci1ldmVudHM6IG5vbmU7DQp9DQoNCg0KLyogSWNvbnMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KLnVpLWljb24gew0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KCW1hcmdpbi10b3A6IC0uMjVlbTsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJdGV4dC1pbmRlbnQ6IC05OTk5OXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCn0NCg0KLnVpLXdpZGdldC1pY29uLWJsb2NrIHsNCglsZWZ0OiA1MCU7DQoJbWFyZ2luLWxlZnQ6IC04cHg7DQoJZGlzcGxheTogYmxvY2s7DQp9DQoNCi8qIE1pc2MgdmlzdWFscw0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQoNCi8qIE92ZXJsYXlzICovDQoudWktd2lkZ2V0LW92ZXJsYXkgew0KCXBvc2l0aW9uOiBmaXhlZDsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCgl3aWR0aDogMTAwJTsNCgloZWlnaHQ6IDEwMCU7DQp9DQoudWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24taGVhZGVyIHsNCglkaXNwbGF5OiBibG9jazsNCgljdXJzb3I6IHBvaW50ZXI7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCW1hcmdpbjogMnB4IDAgMCAwOw0KCXBhZGRpbmc6IC41ZW0gLjVlbSAuNWVtIC43ZW07DQoJZm9udC1zaXplOiAxMDAlOw0KfQ0KLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnQgew0KCXBhZGRpbmc6IDFlbSAyLjJlbTsNCglib3JkZXItdG9wOiAwOw0KCW92ZXJmbG93OiBhdXRvOw0KfQ0KLnVpLWF1dG9jb21wbGV0ZSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCWN1cnNvcjogZGVmYXVsdDsNCn0NCi51aS1tZW51IHsNCglsaXN0LXN0eWxlOiBub25lOw0KCXBhZGRpbmc6IDA7DQoJbWFyZ2luOiAwOw0KCWRpc3BsYXk6IGJsb2NrOw0KCW91dGxpbmU6IDA7DQp9DQoudWktbWVudSAudWktbWVudSB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KfQ0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbSB7DQoJbWFyZ2luOiAwOw0KCWN1cnNvcjogcG9pbnRlcjsNCgkvKiBzdXBwb3J0OiBJRTEwLCBzZWUgIzg4NDQgKi8NCglsaXN0LXN0eWxlLWltYWdlOiB1cmwoImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8veUg1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlCUkFBNyIpOw0KfQ0KLnVpLW1lbnUgLnVpLW1lbnUtaXRlbS13cmFwcGVyIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJcGFkZGluZzo4cHggMWVtIDhweCAxNXB4Ow0KfQ0KLnVpLW1lbnUgLnVpLW1lbnUtZGl2aWRlciB7DQoJbWFyZ2luOiA1cHggMDsNCgloZWlnaHQ6IDA7DQoJZm9udC1zaXplOiAwOw0KCWxpbmUtaGVpZ2h0OiAwOw0KCWJvcmRlci13aWR0aDogMXB4IDAgMCAwOw0KfQ0KLnVpLW1lbnUgLnVpLXN0YXRlLWZvY3VzLA0KLnVpLW1lbnUgLnVpLXN0YXRlLWFjdGl2ZSB7DQoJbWFyZ2luOiAtMXB4Ow0KfQ0KDQovKiBpY29uIHN1cHBvcnQgKi8NCi51aS1tZW51LWljb25zIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQoudWktbWVudS1pY29ucyAudWktbWVudS1pdGVtLXdyYXBwZXIgew0KCXBhZGRpbmctbGVmdDogMmVtOw0KfQ0KDQovKiBsZWZ0LWFsaWduZWQgKi8NCi51aS1tZW51IC51aS1pY29uIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAwOw0KCWJvdHRvbTogMDsNCglsZWZ0OiAuMmVtOw0KCW1hcmdpbjogYXV0byAwOw0KfQ0KDQovKiByaWdodC1hbGlnbmVkICovDQoudWktbWVudSAudWktbWVudS1pY29uIHsNCglsZWZ0OiBhdXRvOw0KCXJpZ2h0OiAwOw0KfQ0KLnVpLWJ1dHRvbiB7DQoJcGFkZGluZzogLjRlbSAxZW07DQoJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCglsaW5lLWhlaWdodDogbm9ybWFsOw0KCW1hcmdpbi1yaWdodDogLjFlbTsNCgljdXJzb3I6IHBvaW50ZXI7DQoJdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsNCgktbW96LXVzZXItc2VsZWN0OiBub25lOw0KCS1tcy11c2VyLXNlbGVjdDogbm9uZTsNCgl1c2VyLXNlbGVjdDogbm9uZTsNCg0KCS8qIFN1cHBvcnQ6IElFIDw9IDExICovDQoJb3ZlcmZsb3c6IHZpc2libGU7DQp9DQoNCi51aS1idXR0b24sDQoudWktYnV0dG9uOmxpbmssDQoudWktYnV0dG9uOnZpc2l0ZWQsDQoudWktYnV0dG9uOmhvdmVyLA0KLnVpLWJ1dHRvbjphY3RpdmUgew0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCg0KLyogdG8gbWFrZSByb29tIGZvciB0aGUgaWNvbiwgYSB3aWR0aCBuZWVkcyB0byBiZSBzZXQgaGVyZSAqLw0KLnVpLWJ1dHRvbi1pY29uLW9ubHkgew0KCXdpZHRoOiAyZW07DQoJYm94LXNpemluZzogYm9yZGVyLWJveDsNCgl0ZXh0LWluZGVudDogLTk5OTlweDsNCgl3aGl0ZS1zcGFjZTogbm93cmFwOw0KfQ0KDQovKiBubyBpY29uIHN1cHBvcnQgZm9yIGlucHV0IGVsZW1lbnRzICovDQppbnB1dC51aS1idXR0b24udWktYnV0dG9uLWljb24tb25seSB7DQoJdGV4dC1pbmRlbnQ6IDA7DQp9DQoNCi8qIGJ1dHRvbiBpY29uIGVsZW1lbnQocykgKi8NCi51aS1idXR0b24taWNvbi1vbmx5IC51aS1pY29uIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiA1MCU7DQoJbGVmdDogNTAlOw0KCW1hcmdpbi10b3A6IC04cHg7DQoJbWFyZ2luLWxlZnQ6IC04cHg7DQp9DQoNCi51aS1idXR0b24udWktaWNvbi1ub3RleHQgLnVpLWljb24gew0KCXBhZGRpbmc6IDA7DQoJd2lkdGg6IDIuMWVtOw0KCWhlaWdodDogMi4xZW07DQoJdGV4dC1pbmRlbnQ6IC05OTk5cHg7DQoJd2hpdGUtc3BhY2U6IG5vd3JhcDsNCg0KfQ0KDQppbnB1dC51aS1idXR0b24udWktaWNvbi1ub3RleHQgLnVpLWljb24gew0KCXdpZHRoOiBhdXRvOw0KCWhlaWdodDogYXV0bzsNCgl0ZXh0LWluZGVudDogMDsNCgl3aGl0ZS1zcGFjZTogbm9ybWFsOw0KCXBhZGRpbmc6IC40ZW0gMWVtOw0KfQ0KDQovKiB3b3JrYXJvdW5kcyAqLw0KLyogU3VwcG9ydDogRmlyZWZveCA1IC0gNDAgKi8NCmlucHV0LnVpLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciwNCmJ1dHRvbi51aS1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIgew0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAwOw0KfQ0KLnVpLWNvbnRyb2xncm91cCB7DQoJdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQp9DQoudWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtIHsNCglmbG9hdDogbGVmdDsNCgltYXJnaW4tbGVmdDogMDsNCgltYXJnaW4tcmlnaHQ6IDA7DQp9DQoudWktY29udHJvbGdyb3VwID4gLnVpLWNvbnRyb2xncm91cC1pdGVtOmZvY3VzLA0KLnVpLWNvbnRyb2xncm91cCA+IC51aS1jb250cm9sZ3JvdXAtaXRlbS51aS12aXN1YWwtZm9jdXMgew0KCXotaW5kZXg6IDk5OTk7DQp9DQoudWktY29udHJvbGdyb3VwLXZlcnRpY2FsID4gLnVpLWNvbnRyb2xncm91cC1pdGVtIHsNCglkaXNwbGF5OiBibG9jazsNCglmbG9hdDogbm9uZTsNCgl3aWR0aDogMTAwJTsNCgltYXJnaW4tdG9wOiAwOw0KCW1hcmdpbi1ib3R0b206IDA7DQoJdGV4dC1hbGlnbjogbGVmdDsNCn0NCi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLWNvbnRyb2xncm91cC1pdGVtIHsNCglib3gtc2l6aW5nOiBib3JkZXItYm94Ow0KfQ0KLnVpLWNvbnRyb2xncm91cCAudWktY29udHJvbGdyb3VwLWxhYmVsIHsNCglwYWRkaW5nOiAuNGVtIDFlbTsNCn0NCi51aS1jb250cm9sZ3JvdXAgLnVpLWNvbnRyb2xncm91cC1sYWJlbCBzcGFuIHsNCglmb250LXNpemU6IDgwJTsNCn0NCi51aS1jb250cm9sZ3JvdXAtaG9yaXpvbnRhbCAudWktY29udHJvbGdyb3VwLWxhYmVsICsgLnVpLWNvbnRyb2xncm91cC1pdGVtIHsNCglib3JkZXItbGVmdDogbm9uZTsNCn0NCi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLWNvbnRyb2xncm91cC1sYWJlbCArIC51aS1jb250cm9sZ3JvdXAtaXRlbSB7DQoJYm9yZGVyLXRvcDogbm9uZTsNCn0NCi51aS1jb250cm9sZ3JvdXAtaG9yaXpvbnRhbCAudWktY29udHJvbGdyb3VwLWxhYmVsLnVpLXdpZGdldC1jb250ZW50IHsNCglib3JkZXItcmlnaHQ6IG5vbmU7DQp9DQoudWktY29udHJvbGdyb3VwLXZlcnRpY2FsIC51aS1jb250cm9sZ3JvdXAtbGFiZWwudWktd2lkZ2V0LWNvbnRlbnQgew0KCWJvcmRlci1ib3R0b206IG5vbmU7DQp9DQoNCi8qIFNwaW5uZXIgc3BlY2lmaWMgc3R5bGUgZml4ZXMgKi8NCi51aS1jb250cm9sZ3JvdXAtdmVydGljYWwgLnVpLXNwaW5uZXItaW5wdXQgew0KDQoJLyogU3VwcG9ydDogSUU4IG9ubHksIEFuZHJvaWQgPCA0LjQgb25seSAqLw0KCXdpZHRoOiA3NSU7DQoJd2lkdGg6IGNhbGMoIDEwMCUgLSAyLjRlbSApOw0KfQ0KLnVpLWNvbnRyb2xncm91cC12ZXJ0aWNhbCAudWktc3Bpbm5lciAudWktc3Bpbm5lci11cCB7DQoJYm9yZGVyLXRvcC1zdHlsZTogc29saWQ7DQp9DQoNCi51aS1jaGVja2JveHJhZGlvLWxhYmVsIC51aS1pY29uLWJhY2tncm91bmQgew0KCWJveC1zaGFkb3c6IGluc2V0IDFweCAxcHggMXB4ICNjY2M7DQoJYm9yZGVyLXJhZGl1czogLjEyZW07DQoJYm9yZGVyOiBub25lOw0KfQ0KLnVpLWNoZWNrYm94cmFkaW8tcmFkaW8tbGFiZWwgLnVpLWljb24tYmFja2dyb3VuZCB7DQoJd2lkdGg6IDE2cHg7DQoJaGVpZ2h0OiAxNnB4Ow0KCWJvcmRlci1yYWRpdXM6IDFlbTsNCglvdmVyZmxvdzogdmlzaWJsZTsNCglib3JkZXI6IG5vbmU7DQp9DQoudWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbC51aS1jaGVja2JveHJhZGlvLWNoZWNrZWQgLnVpLWljb24sDQoudWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbC51aS1jaGVja2JveHJhZGlvLWNoZWNrZWQ6aG92ZXIgLnVpLWljb24gew0KCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7DQoJd2lkdGg6IDhweDsNCgloZWlnaHQ6IDhweDsNCglib3JkZXItd2lkdGg6IDRweDsNCglib3JkZXItc3R5bGU6IHNvbGlkOw0KfQ0KLnVpLWNoZWNrYm94cmFkaW8tZGlzYWJsZWQgew0KCXBvaW50ZXItZXZlbnRzOiBub25lOw0KfQ0KLnVpLWRhdGVwaWNrZXIgew0KCXdpZHRoOiAxN2VtOw0KCXBhZGRpbmc6IC4yZW0gLjJlbSAwOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1oZWFkZXIgew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCglwYWRkaW5nOiAuMmVtIDA7DQp9DQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2LA0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMnB4Ow0KCXdpZHRoOiAxLjhlbTsNCgloZWlnaHQ6IDEuOGVtOw0KfQ0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciwNCi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIgew0KCXRvcDogMXB4Ow0KfQ0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItcHJldiB7DQoJbGVmdDogMnB4Ow0KfQ0KLnVpLWRhdGVwaWNrZXIgLnVpLWRhdGVwaWNrZXItbmV4dCB7DQoJcmlnaHQ6IDJweDsNCn0NCi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXByZXYtaG92ZXIgew0KCWxlZnQ6IDFweDsNCn0NCi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLW5leHQtaG92ZXIgew0KCXJpZ2h0OiAxcHg7DQp9DQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW4sDQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW4gew0KCWRpc3BsYXk6IGJsb2NrOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglsZWZ0OiA1MCU7DQoJbWFyZ2luLWxlZnQ6IC04cHg7DQoJdG9wOiA1MCU7DQoJbWFyZ2luLXRvcDogLThweDsNCn0NCi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHsNCgltYXJnaW46IDAgMi4zZW07DQoJbGluZS1oZWlnaHQ6IDEuOGVtOw0KCXRleHQtYWxpZ246IGNlbnRlcjsNCn0NCi51aS1kYXRlcGlja2VyIC51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7DQoJZm9udC1zaXplOiAxZW07DQoJbWFyZ2luOiAxcHggMDsNCn0NCi51aS1kYXRlcGlja2VyIHNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLA0KLnVpLWRhdGVwaWNrZXIgc2VsZWN0LnVpLWRhdGVwaWNrZXIteWVhciB7DQoJd2lkdGg6IDQ1JTsNCn0NCi51aS1kYXRlcGlja2VyIHRhYmxlIHsNCgl3aWR0aDogMTAwJTsNCglmb250LXNpemU6IC45ZW07DQoJYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsNCgltYXJnaW46IDAgMCAuNGVtOw0KfQ0KLnVpLWRhdGVwaWNrZXIgdGggew0KCXBhZGRpbmc6IC43ZW0gLjNlbTsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQoJYm9yZGVyOiAwOw0KfQ0KLnVpLWRhdGVwaWNrZXIgdGQgew0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAxcHg7DQp9DQoudWktZGF0ZXBpY2tlciB0ZCBzcGFuLA0KLnVpLWRhdGVwaWNrZXIgdGQgYSB7DQoJZGlzcGxheTogYmxvY2s7DQoJcGFkZGluZzogLjJlbTsNCgl0ZXh0LWFsaWduOiByaWdodDsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHsNCgliYWNrZ3JvdW5kLWltYWdlOiBub25lOw0KCW1hcmdpbjogLjdlbSAwIDAgMDsNCglwYWRkaW5nOiAwIC4yZW07DQoJYm9yZGVyLWxlZnQ6IDA7DQoJYm9yZGVyLXJpZ2h0OiAwOw0KCWJvcmRlci1ib3R0b206IDA7DQp9DQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7DQoJZmxvYXQ6IHJpZ2h0Ow0KCW1hcmdpbjogLjVlbSAuMmVtIC40ZW07DQoJY3Vyc29yOiBwb2ludGVyOw0KCXBhZGRpbmc6IC4yZW0gLjZlbSAuM2VtIC42ZW07DQoJd2lkdGg6IGF1dG87DQoJb3ZlcmZsb3c6IHZpc2libGU7DQp9DQoudWktZGF0ZXBpY2tlciAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQgew0KCWZsb2F0OiBsZWZ0Ow0KfQ0KDQovKiB3aXRoIG11bHRpcGxlIGNhbGVuZGFycyAqLw0KLnVpLWRhdGVwaWNrZXIudWktZGF0ZXBpY2tlci1tdWx0aSB7DQoJd2lkdGg6IGF1dG87DQp9DQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB7DQoJZmxvYXQ6IGxlZnQ7DQp9DQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cCB0YWJsZSB7DQoJd2lkdGg6IDk1JTsNCgltYXJnaW46IDAgYXV0byAuNGVtOw0KfQ0KLnVpLWRhdGVwaWNrZXItbXVsdGktMiAudWktZGF0ZXBpY2tlci1ncm91cCB7DQoJd2lkdGg6IDUwJTsNCn0NCi51aS1kYXRlcGlja2VyLW11bHRpLTMgLnVpLWRhdGVwaWNrZXItZ3JvdXAgew0KCXdpZHRoOiAzMy4zJTsNCn0NCi51aS1kYXRlcGlja2VyLW11bHRpLTQgLnVpLWRhdGVwaWNrZXItZ3JvdXAgew0KCXdpZHRoOiAyNSU7DQp9DQoudWktZGF0ZXBpY2tlci1tdWx0aSAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlciwNCi51aS1kYXRlcGlja2VyLW11bHRpIC51aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSAudWktZGF0ZXBpY2tlci1oZWFkZXIgew0KCWJvcmRlci1sZWZ0LXdpZHRoOiAwOw0KfQ0KLnVpLWRhdGVwaWNrZXItbXVsdGkgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7DQoJY2xlYXI6IGxlZnQ7DQp9DQoudWktZGF0ZXBpY2tlci1yb3ctYnJlYWsgew0KCWNsZWFyOiBib3RoOw0KCXdpZHRoOiAxMDAlOw0KCWZvbnQtc2l6ZTogMDsNCn0NCg0KLyogUlRMIHN1cHBvcnQgKi8NCi51aS1kYXRlcGlja2VyLXJ0bCB7DQoJZGlyZWN0aW9uOiBydGw7DQp9DQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7DQoJcmlnaHQ6IDJweDsNCglsZWZ0OiBhdXRvOw0KfQ0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQgew0KCWxlZnQ6IDJweDsNCglyaWdodDogYXV0bzsNCn0NCi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1wcmV2OmhvdmVyIHsNCglyaWdodDogMXB4Ow0KCWxlZnQ6IGF1dG87DQp9DQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7DQoJbGVmdDogMXB4Ow0KCXJpZ2h0OiBhdXRvOw0KfQ0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgew0KCWNsZWFyOiByaWdodDsNCn0NCi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7DQoJZmxvYXQ6IGxlZnQ7DQp9DQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50LA0KLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHsNCglmbG9hdDogcmlnaHQ7DQp9DQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIsDQoudWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7DQoJYm9yZGVyLXJpZ2h0LXdpZHRoOiAwOw0KCWJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7DQp9DQoNCi8qIEljb25zICovDQoudWktZGF0ZXBpY2tlciAudWktaWNvbiB7DQoJZGlzcGxheTogYmxvY2s7DQoJdGV4dC1pbmRlbnQ6IC05OTk5OXB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsNCglsZWZ0OiAuNWVtOw0KCXRvcDogLjNlbTsNCn0NCi51aS1kaWFsb2cgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDA7DQoJbGVmdDogMDsNCglwYWRkaW5nOiAuMmVtOw0KCW91dGxpbmU6IDA7DQp9DQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXIgew0KCXBhZGRpbmc6IC40ZW0gMWVtOw0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCi51aS1kaWFsb2cgLnVpLWRpYWxvZy10aXRsZSB7DQoJZmxvYXQ6IGxlZnQ7DQoJbWFyZ2luOiAuMWVtIDA7DQoJd2hpdGUtc3BhY2U6IG5vd3JhcDsNCgl3aWR0aDogOTAlOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQp9DQoudWktZGlhbG9nIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2Ugew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglyaWdodDogLjNlbTsNCgl0b3A6IDUwJTsNCgl3aWR0aDogMjBweDsNCgltYXJnaW46IC0xMHB4IDAgMCAwOw0KCXBhZGRpbmc6IDFweDsNCgloZWlnaHQ6IDIwcHg7DQp9DQoudWktZGlhbG9nIC51aS1kaWFsb2ctY29udGVudCB7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCWJvcmRlcjogMDsNCglwYWRkaW5nOiAuNWVtIDFlbTsNCgliYWNrZ3JvdW5kOiBub25lOw0KCW92ZXJmbG93OiBhdXRvOw0KfQ0KLnVpLWRpYWxvZyAudWktZGlhbG9nLWJ1dHRvbnBhbmUgew0KCXRleHQtYWxpZ246IGxlZnQ7DQoJYm9yZGVyLXdpZHRoOiAxcHggMCAwIDA7DQoJYmFja2dyb3VuZC1pbWFnZTogbm9uZTsNCgltYXJnaW4tdG9wOiAuNWVtOw0KCXBhZGRpbmc6IC4zZW0gMWVtIC41ZW0gLjRlbTsNCn0NCi51aS1kaWFsb2cgLnVpLWRpYWxvZy1idXR0b25wYW5lIC51aS1kaWFsb2ctYnV0dG9uc2V0IHsNCglmbG9hdDogcmlnaHQ7DQp9DQoudWktZGlhbG9nIC51aS1kaWFsb2ctYnV0dG9ucGFuZSBidXR0b24gew0KCW1hcmdpbjogLjVlbSAuNGVtIC41ZW0gMDsNCgljdXJzb3I6IHBvaW50ZXI7DQp9DQoudWktZGlhbG9nIC51aS1yZXNpemFibGUtbiB7DQoJaGVpZ2h0OiAycHg7DQoJdG9wOiAwOw0KfQ0KLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLWUgew0KCXdpZHRoOiAycHg7DQoJcmlnaHQ6IDA7DQp9DQoudWktZGlhbG9nIC51aS1yZXNpemFibGUtcyB7DQoJaGVpZ2h0OiAycHg7DQoJYm90dG9tOiAwOw0KfQ0KLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLXcgew0KCXdpZHRoOiAycHg7DQoJbGVmdDogMDsNCn0NCi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSwNCi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zdywNCi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uZSwNCi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1udyB7DQoJd2lkdGg6IDdweDsNCgloZWlnaHQ6IDdweDsNCn0NCi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1zZSB7DQoJcmlnaHQ6IDA7DQoJYm90dG9tOiAwOw0KfQ0KLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLXN3IHsNCglsZWZ0OiAwOw0KCWJvdHRvbTogMDsNCn0NCi51aS1kaWFsb2cgLnVpLXJlc2l6YWJsZS1uZSB7DQoJcmlnaHQ6IDA7DQoJdG9wOiAwOw0KfQ0KLnVpLWRpYWxvZyAudWktcmVzaXphYmxlLW53IHsNCglsZWZ0OiAwOw0KCXRvcDogMDsNCn0NCi51aS1kcmFnZ2FibGUgLnVpLWRpYWxvZy10aXRsZWJhciB7DQoJY3Vyc29yOiBtb3ZlOw0KfQ0KLnVpLWRyYWdnYWJsZS1oYW5kbGUgew0KCS1tcy10b3VjaC1hY3Rpb246IG5vbmU7DQoJdG91Y2gtYWN0aW9uOiBub25lOw0KfQ0KLnVpLXJlc2l6YWJsZSB7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KfQ0KLnVpLXJlc2l6YWJsZS1oYW5kbGUgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCglmb250LXNpemU6IDAuMXB4Ow0KCWRpc3BsYXk6IGJsb2NrOw0KCS1tcy10b3VjaC1hY3Rpb246IG5vbmU7DQoJdG91Y2gtYWN0aW9uOiBub25lOw0KfQ0KLnVpLXJlc2l6YWJsZS1kaXNhYmxlZCAudWktcmVzaXphYmxlLWhhbmRsZSwNCi51aS1yZXNpemFibGUtYXV0b2hpZGUgLnVpLXJlc2l6YWJsZS1oYW5kbGUgew0KCWRpc3BsYXk6IG5vbmU7DQp9DQoudWktcmVzaXphYmxlLW4gew0KCWN1cnNvcjogbi1yZXNpemU7DQoJaGVpZ2h0OiA3cHg7DQoJd2lkdGg6IDEwMCU7DQoJdG9wOiAtNXB4Ow0KCWxlZnQ6IDA7DQp9DQoudWktcmVzaXphYmxlLXMgew0KCWN1cnNvcjogcy1yZXNpemU7DQoJaGVpZ2h0OiA3cHg7DQoJd2lkdGg6IDEwMCU7DQoJYm90dG9tOiAtNXB4Ow0KCWxlZnQ6IDA7DQp9DQoudWktcmVzaXphYmxlLWUgew0KCWN1cnNvcjogZS1yZXNpemU7DQoJd2lkdGg6IDdweDsNCglyaWdodDogLTVweDsNCgl0b3A6IDA7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KLnVpLXJlc2l6YWJsZS13IHsNCgljdXJzb3I6IHctcmVzaXplOw0KCXdpZHRoOiA3cHg7DQoJbGVmdDogLTVweDsNCgl0b3A6IDA7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KLnVpLXJlc2l6YWJsZS1zZSB7DQoJY3Vyc29yOiBzZS1yZXNpemU7DQoJd2lkdGg6IDEycHg7DQoJaGVpZ2h0OiAxMnB4Ow0KCXJpZ2h0OiAxcHg7DQoJYm90dG9tOiAxcHg7DQp9DQoudWktcmVzaXphYmxlLXN3IHsNCgljdXJzb3I6IHN3LXJlc2l6ZTsNCgl3aWR0aDogOXB4Ow0KCWhlaWdodDogOXB4Ow0KCWxlZnQ6IC01cHg7DQoJYm90dG9tOiAtNXB4Ow0KfQ0KLnVpLXJlc2l6YWJsZS1udyB7DQoJY3Vyc29yOiBudy1yZXNpemU7DQoJd2lkdGg6IDlweDsNCgloZWlnaHQ6IDlweDsNCglsZWZ0OiAtNXB4Ow0KCXRvcDogLTVweDsNCn0NCi51aS1yZXNpemFibGUtbmUgew0KCWN1cnNvcjogbmUtcmVzaXplOw0KCXdpZHRoOiA5cHg7DQoJaGVpZ2h0OiA5cHg7DQoJcmlnaHQ6IC01cHg7DQoJdG9wOiAtNXB4Ow0KfQ0KLnVpLXByb2dyZXNzYmFyIHsNCgloZWlnaHQ6IDJlbTsNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KCW92ZXJmbG93OiBoaWRkZW47DQp9DQoudWktcHJvZ3Jlc3NiYXIgLnVpLXByb2dyZXNzYmFyLXZhbHVlIHsNCgltYXJnaW46IC0xcHg7DQoJaGVpZ2h0OiAxMDAlOw0KfQ0KLnVpLXByb2dyZXNzYmFyIC51aS1wcm9ncmVzc2Jhci1vdmVybGF5IHsNCgliYWNrZ3JvdW5kOiB1cmwoImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEtBQW9BSUFCQUFBQUFQLy8veUgvQzA1RlZGTkRRVkJGTWk0d0F3RUFBQUFoK1FRSkFRQUJBQ3dBQUFBQUtBQW9BQUFDa1l3TnFYcmRDNTJEUzA2YTdNRlpJKzRGSEJDS29EZVdLWHF5bVBxR3F4dkpyWFpiTXg3VHRjK3c5WGdVMkZCM2xPeVFSV0VUMklGR2lVOW0xZnJEVnB4WlpjNmJmSHd2NGMxWVhQNmsxVmR5MjkyRmI2VWt1dkZ0WHB2V1N6QStIeWNYSkhVWGlHWUlpTWcyUjZXNDU5Z25XR2ZITmRqSXFEV1ZxZW1IMmVrcE9ia3BPbHBwV1VxWmlxcjZlZHFxV1FBQUlma0VDUUVBQVFBc0FBQUFBQ2dBS0FBQUFwU01nWm5HZmFxY2cxRTJ1dXpEbW1IVUJSOFFpbDk1aGlQS3FXbjNhcXRMc1MxOHk3RzFTek5lb3dXQkVOdFFkK1QxSmt0UDA1bnpQVGRKWmxSNnZVeE5XV2pWK3ZVV2hXTmtXRnd4bDlWcFpSZWRZY2ZsSU9MYWZhYTI4WGRzSC95bmxjYzF1UFZEWnhRSVIwSzI1K2NJQ0Ntb3FDZTVtR2haT2ZlWVNVaDV5SmNKeXJrWldXcGFSOGRvSjJvNE5ZcTYybEFBQUNINUJBa0JBQUVBTEFBQUFBQW9BQ2dBQUFLVkRJNFl5MjJabklOUk5xb3N3MEJ2N2kxZ3lIVWtGajdvU2FXbHUzb3ZDOEd4TnNvNWZsdXozcUxWaEJWZVQvTHo3WlRIeXhMNWREYWxRV1BWT3NRV3RSbnV3WGFGVGo5alZWaDhwbWE5SmpaNHpZU2o1Wk95bWE3dXVvbGZmaCtJUjVhVzk3Y0h1QlVYS0dLWGxLam4rRGlIV01jWUphaDROMGxZQ01sSk9YaXBHUnI1cWRnb1NUcnFXU3E2V0ZsMnlwb2FVQUFBSWZrRUNRRUFBUUFzQUFBQUFDZ0FLQUFBQXBhRWI2SExnZC9pTzdGTld0Y0ZXZSt1Zk9ER2pSZm9pSjJha1NoYnVlYjB3dEk1MHptMDJwYnZ3ZldFTVdCUTF6S0dsTEloc2tpRVBtOVI2dlJYeFY0WnpXVDJ5SE9HcFdNeW9yYmxLbE5wOEhtSEViL2xDWGpjVzdibXRYUDhYdDIyOU9WV1IxZm9kMmVXcU5mSHVNalhDUGtJR05pbGVPaUltVm1DT0Vtb1NmbjN5WGxKV21vSEdocXA2aWxZdVdZcG1UcUtVZ0FBSWZrRUNRRUFBUUFzQUFBQUFDZ0FLQUFBQXBpRUg2a2I1OGJpUTNGTld0TUZXVzNlTlZjb2p1RkdmcW5acVNlYnVTMDZ3NVY4MC9YMDJwS2U4ekZ3UDZFRldPVDFsREZrOHJHRVJoMVRUTk9vY1E2MUhtNFhtMlZleFVIcHpqeW1WaUhyRmJpRUxzZWZWcm42WEtmbnQyUTlHLytYZGllNDk5WEhkMmc0aDdpb09HaFhHSmJvR0FuWFNCbm9Cd0tZeWZpb3ViWkoySG4wUnVSWmFmbFpPaWw1NlpwNmlpb0tTWHBVQUFBaCtRUUpBUUFCQUN3QUFBQUFLQUFvQUFBQ2tvUVJxUnZueHVJN2tVMWExVVU1YmQ1dG5TZU9aWGhtbjVsV0szcU5UV3ZSZFF4UDhxdmFDKy95YVlRelhPN0JNdmFVRW1KUmQzVHNpTUFnc3dtTllyU2daZFlyVFg2dFNIR1pPNzNlenVBdzJ1eHVRK0JiZVpmTXhzZXhZMzUrL1FlNEoxaW5WMGc0eDNXSHVNaElsMmpYT0tUMlErVlU1ZmdvU1VJNTJWZlp5ZmtKR2toYTZqbVkrYWFZZGlycStsUUFBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtXQklLcFllMEwzWU5LVG9xc3dVbHZ6bmlnZDR3aVI0S2hackt0OVVwcWlwNjFpOUUzdk12eFJkSGxiRUZpRVhmazlZQVJZeE9aWkQ2VlEycFV1bkJtdFJYbzFMZjhoTVZWY05sOEphZlYzOGFNMi9GdTVWMTZCbjYzcjZ4dDk3ajA5K01YU0ZpNEJuaUdGYWUzaHpiSDkraFlCemtwdVVoNWFabUh1YW5aT1pnSXV2YkdpTmVvbUNuYXh4YXAydXBhQ1pzcSsxa0FBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtYakk4Qnk1emY0a094VFZyWE5WbHYxWDBkOElHWkdLTG5OcFl0bThMcjljcVZldU9TdmZPVzc5RDlhREhpek5oREppZEZaaE55ZEVhaE9hREg2bm9tdEpqcDF0dXRLb05Xa3ZBNkpxZlJWTEhVL1FVZmF1OWwyeDdHNTRkMWZsOTk1eGNJR0FkWHFNZkJOYWRvWXJoSCtNZzJLQmxwVnBibHVDaVhtTW5aMlNoNEdCcUorY2tJT3FxSjZMbUtTbGxabXNvcTZ3cFFBQUFoK1FRSkFRQUJBQ3dBQUFBQUtBQW9BQUFDbFl4L29Mdm94dUpEa1UxYTFZVVpiSjU5blNkMlpYaFdxYlJhMi9nRjhHdTJEWTNpcXM3eXJxK3hCWUVrWXZGU004YVNTT2JFK1pnUmwxQkhGWk5yN3BSQ2F2WjVCVzIxNDJoWTNBTi96V3RzbWYxMnA5WHh4RmwybHBMbjFyc2V6dGZYWmpkSVdJZjJzNWRJdHdqWUtCZ285eWc1cEhnekpYVEVlR2xadWVucHlQbXBHUW9LT1drWW1TcGFTbnFLaWxlSTJGQUFBQ0g1QkFrQkFBRUFMQUFBQUFBb0FDZ0FBQUtWakIrZ3Urakc0a09SVFZyVmhSbHNubjJkSjNabGVGYXB0RnJiK0NYbU85T296ZUw1VmZQOTlIdkFXaHBpVWRjd2twQkgzODI1QXdZZFU4eFRxbExHaHRDb3NBcktNcHZmYTFtTVJhZTlWdldaZmVCMlhmUGtlTG1tMThsVWNCaitwNWRuTjhqWFozWUlHRWhZdU9VbjQ1YW9DRGtwMTZobDVJallKdmpXS2Nub0dRcHF5UGxwT2hyM2FFbGFxcnE1NkJxN1ZBQUFPdz09Iik7DQoJaGVpZ2h0OiAxMDAlOw0KCWZpbHRlcjogYWxwaGEob3BhY2l0eT0yNSk7IC8qIHN1cHBvcnQ6IElFOCAqLw0KCW9wYWNpdHk6IDAuMjU7DQp9DQoudWktcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSAudWktcHJvZ3Jlc3NiYXItdmFsdWUgew0KCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7DQp9DQoudWktc2VsZWN0YWJsZSB7DQoJLW1zLXRvdWNoLWFjdGlvbjogbm9uZTsNCgl0b3VjaC1hY3Rpb246IG5vbmU7DQp9DQoudWktc2VsZWN0YWJsZS1oZWxwZXIgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl6LWluZGV4OiAxMDA7DQoJYm9yZGVyOiAxcHggZG90dGVkIGJsYWNrOw0KfQ0KLnVpLXNlbGVjdG1lbnUtbWVudSB7DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogMDsNCglsZWZ0OiAwOw0KCWRpc3BsYXk6IG5vbmU7DQp9DQoudWktc2VsZWN0bWVudS1tZW51IC51aS1tZW51IHsNCglvdmVyZmxvdzogYXV0bzsNCglvdmVyZmxvdy14OiBoaWRkZW47DQoJcGFkZGluZy1ib3R0b206IDFweDsNCn0NCi51aS1zZWxlY3RtZW51LW1lbnUgLnVpLW1lbnUgLnVpLXNlbGVjdG1lbnUtb3B0Z3JvdXAgew0KCWZvbnQtc2l6ZTogMWVtOw0KCWZvbnQtd2VpZ2h0OiBib2xkOw0KCWxpbmUtaGVpZ2h0OiAxLjU7DQoJcGFkZGluZzogMnB4IDAuNGVtOw0KCW1hcmdpbjogMC41ZW0gMCAwIDA7DQoJaGVpZ2h0OiBhdXRvOw0KCWJvcmRlcjogMDsNCn0NCi51aS1zZWxlY3RtZW51LW9wZW4gew0KCWRpc3BsYXk6IGJsb2NrOw0KfQ0KLnVpLXNlbGVjdG1lbnUtdGV4dCB7DQoJZGlzcGxheTogYmxvY2s7DQoJbWFyZ2luLXJpZ2h0OiAyMHB4Ow0KCW92ZXJmbG93OiBoaWRkZW47DQoJdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7DQp9DQoudWktc2VsZWN0bWVudS1idXR0b24udWktYnV0dG9uIHsNCgl0ZXh0LWFsaWduOiBsZWZ0Ow0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQoJd2lkdGg6IDE0ZW07DQp9DQoudWktc2VsZWN0bWVudS1pY29uLnVpLWljb24gew0KCWZsb2F0OiByaWdodDsNCgltYXJnaW4tdG9wOiAwOw0KfQ0KLnVpLXNsaWRlciB7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KCXRleHQtYWxpZ246IGxlZnQ7DQp9DQoudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJei1pbmRleDogMjsNCgl3aWR0aDogMS4yZW07DQoJaGVpZ2h0OiAxLjJlbTsNCgljdXJzb3I6IGRlZmF1bHQ7DQoJLW1zLXRvdWNoLWFjdGlvbjogbm9uZTsNCgl0b3VjaC1hY3Rpb246IG5vbmU7DQp9DQoudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2Ugew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl6LWluZGV4OiAxOw0KCWZvbnQtc2l6ZTogLjdlbTsNCglkaXNwbGF5OiBibG9jazsNCglib3JkZXI6IDA7DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOw0KfQ0KDQovKiBzdXBwb3J0OiBJRTggLSBTZWUgIzY3MjcgKi8NCi51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1oYW5kbGUsDQoudWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItcmFuZ2Ugew0KCWZpbHRlcjogaW5oZXJpdDsNCn0NCg0KLnVpLXNsaWRlci1ob3Jpem9udGFsIHsNCgloZWlnaHQ6IC44ZW07DQp9DQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUgew0KCXRvcDogLS4zZW07DQoJbWFyZ2luLWxlZnQ6IC0uNmVtOw0KfQ0KLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItcmFuZ2Ugew0KCXRvcDogMDsNCgloZWlnaHQ6IDEwMCU7DQp9DQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW4gew0KCWxlZnQ6IDA7DQp9DQoudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1tYXggew0KCXJpZ2h0OiAwOw0KfQ0KDQoudWktc2xpZGVyLXZlcnRpY2FsIHsNCgl3aWR0aDogLjhlbTsNCgloZWlnaHQ6IDEwMHB4Ow0KfQ0KLnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZSB7DQoJbGVmdDogLS4zZW07DQoJbWFyZ2luLWxlZnQ6IDA7DQoJbWFyZ2luLWJvdHRvbTogLS42ZW07DQp9DQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2Ugew0KCWxlZnQ6IDA7DQoJd2lkdGg6IDEwMCU7DQp9DQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWluIHsNCglib3R0b206IDA7DQp9DQoudWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4IHsNCgl0b3A6IDA7DQp9DQoudWktc29ydGFibGUtaGFuZGxlIHsNCgktbXMtdG91Y2gtYWN0aW9uOiBub25lOw0KCXRvdWNoLWFjdGlvbjogbm9uZTsNCn0NCi51aS1zcGlubmVyIHsNCglwb3NpdGlvbjogcmVsYXRpdmU7DQoJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCW92ZXJmbG93OiBoaWRkZW47DQoJcGFkZGluZzogMDsNCgl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOw0KfQ0KLnVpLXNwaW5uZXItaW5wdXQgew0KCWJvcmRlcjogbm9uZTsNCgliYWNrZ3JvdW5kOiBub25lOw0KCWNvbG9yOiBpbmhlcml0Ow0KCXBhZGRpbmc6IC4yMjJlbSAwOw0KCW1hcmdpbjogLjJlbSAwOw0KCXZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQoJbWFyZ2luLWxlZnQ6IC40ZW07DQoJbWFyZ2luLXJpZ2h0OiAyZW07DQp9DQoudWktc3Bpbm5lci1idXR0b24gew0KCXdpZHRoOiAxLjZlbTsNCgloZWlnaHQ6IDUwJTsNCglmb250LXNpemU6IC41ZW07DQoJcGFkZGluZzogMDsNCgltYXJnaW46IDA7DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgljdXJzb3I6IGRlZmF1bHQ7DQoJZGlzcGxheTogYmxvY2s7DQoJb3ZlcmZsb3c6IGhpZGRlbjsNCglyaWdodDogMDsNCn0NCi8qIG1vcmUgc3BlY2lmaWNpdHkgcmVxdWlyZWQgaGVyZSB0byBvdmVycmlkZSBkZWZhdWx0IGJvcmRlcnMgKi8NCi51aS1zcGlubmVyIGEudWktc3Bpbm5lci1idXR0b24gew0KCWJvcmRlci10b3Atc3R5bGU6IG5vbmU7DQoJYm9yZGVyLWJvdHRvbS1zdHlsZTogbm9uZTsNCglib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7DQp9DQoudWktc3Bpbm5lci11cCB7DQoJdG9wOiAwOw0KfQ0KLnVpLXNwaW5uZXItZG93biB7DQoJYm90dG9tOiAwOw0KfQ0KLnVpLXRhYnMgew0KCXBvc2l0aW9uOiByZWxhdGl2ZTsvKiBwb3NpdGlvbjogcmVsYXRpdmUgcHJldmVudHMgSUUgc2Nyb2xsIGJ1ZyAoZWxlbWVudCB3aXRoIHBvc2l0aW9uOiByZWxhdGl2ZSBpbnNpZGUgY29udGFpbmVyIHdpdGggb3ZlcmZsb3c6IGF1dG8gYXBwZWFyIGFzICJmaXhlZCIpICovDQoJcGFkZGluZzogLjJlbTsNCn0NCi51aS10YWJzIC51aS10YWJzLW5hdiB7DQoJbWFyZ2luOiAwOw0KCXBhZGRpbmc6IC4yZW0gLjJlbSAwOw0KfQ0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpIHsNCglsaXN0LXN0eWxlOiBub25lOw0KCWZsb2F0OiBsZWZ0Ow0KCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgl0b3A6IDA7DQoJbWFyZ2luOiAxcHggLjJlbSAwIDA7DQoJYm9yZGVyLWJvdHRvbS13aWR0aDogMDsNCglwYWRkaW5nOiAwOw0KCXdoaXRlLXNwYWNlOiBub3dyYXA7DQp9DQoudWktdGFicyAudWktdGFicy1uYXYgLnVpLXRhYnMtYW5jaG9yIHsNCglmbG9hdDogbGVmdDsNCglwYWRkaW5nOiAuNWVtIDFlbTsNCgl0ZXh0LWRlY29yYXRpb246IG5vbmU7DQp9DQoudWktdGFicyAudWktdGFicy1uYXYgbGkudWktdGFicy1hY3RpdmUgew0KCW1hcmdpbi1ib3R0b206IC0xcHg7DQoJcGFkZGluZy1ib3R0b206IDFweDsNCn0NCi51aS10YWJzIC51aS10YWJzLW5hdiBsaS51aS10YWJzLWFjdGl2ZSAudWktdGFicy1hbmNob3IsDQoudWktdGFicyAudWktdGFicy1uYXYgbGkudWktc3RhdGUtZGlzYWJsZWQgLnVpLXRhYnMtYW5jaG9yLA0KLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpLnVpLXRhYnMtbG9hZGluZyAudWktdGFicy1hbmNob3Igew0KCWN1cnNvcjogdGV4dDsNCn0NCi51aS10YWJzLWNvbGxhcHNpYmxlIC51aS10YWJzLW5hdiBsaS51aS10YWJzLWFjdGl2ZSAudWktdGFicy1hbmNob3Igew0KCWN1cnNvcjogcG9pbnRlcjsNCn0NCi51aS10YWJzIC51aS10YWJzLXBhbmVsIHsNCglkaXNwbGF5OiBibG9jazsNCglib3JkZXItd2lkdGg6IDA7DQoJcGFkZGluZzogMWVtIDEuNGVtOw0KCWJhY2tncm91bmQ6IG5vbmU7DQp9DQoudWktdG9vbHRpcCB7DQoJcGFkZGluZzogOHB4Ow0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl6LWluZGV4OiA5OTk5Ow0KCW1heC13aWR0aDogMzAwcHg7DQp9DQpib2R5IC51aS10b29sdGlwIHsNCglib3JkZXItd2lkdGg6IDJweDsNCn0NCi8qIENvbXBvbmVudCBjb250YWluZXJzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi51aS13aWRnZXQgew0KCWZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsNCglmb250LXNpemU6IDFlbTsNCn0NCi51aS13aWRnZXQgLnVpLXdpZGdldCB7DQoJZm9udC1zaXplOiAxZW07DQp9DQoudWktd2lkZ2V0IGlucHV0LA0KLnVpLXdpZGdldCBzZWxlY3QsDQoudWktd2lkZ2V0IHRleHRhcmVhLA0KLnVpLXdpZGdldCBidXR0b24gew0KCWZvbnQtZmFtaWx5OiBBcmlhbCxIZWx2ZXRpY2Esc2Fucy1zZXJpZjsNCglmb250LXNpemU6IDFlbTsNCn0NCi51aS13aWRnZXQudWktd2lkZ2V0LWNvbnRlbnQgew0KCWJvcmRlcjogMXB4IHNvbGlkICNjNWM1YzU7DQp9DQoudWktd2lkZ2V0LWNvbnRlbnQgew0KCWJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7DQoJYmFja2dyb3VuZDogI2ZmZmZmZjsNCgljb2xvcjogIzMzMzMzMzsNCn0NCi51aS13aWRnZXQtY29udGVudCBhIHsNCgljb2xvcjogIzMzMzMzMzsNCn0NCi51aS13aWRnZXQtaGVhZGVyIHsNCglib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkOw0KCWJhY2tncm91bmQ6ICNlOWU5ZTk7DQoJY29sb3I6ICMzMzMzMzM7DQoJZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoudWktd2lkZ2V0LWhlYWRlciBhIHsNCgljb2xvcjogIzMzMzMzMzsNCn0NCg0KLyogSW50ZXJhY3Rpb24gc3RhdGVzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi51aS1zdGF0ZS1kZWZhdWx0LA0KLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1kZWZhdWx0LA0KLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHQsDQoudWktYnV0dG9uLA0KDQovKiBXZSB1c2UgaHRtbCBoZXJlIGJlY2F1c2Ugd2UgbmVlZCBhIGdyZWF0ZXIgc3BlY2lmaWNpdHkgdG8gbWFrZSBzdXJlIGRpc2FibGVkDQp3b3JrcyBwcm9wZXJseSB3aGVuIGNsaWNrZWQgb3IgaG92ZXJlZCAqLw0KaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmhvdmVyLA0KaHRtbCAudWktYnV0dG9uLnVpLXN0YXRlLWRpc2FibGVkOmFjdGl2ZSB7DQoJYm9yZGVyOiAxcHggc29saWQgI2M1YzVjNTsNCgliYWNrZ3JvdW5kOiAjZjZmNmY2Ow0KCWZvbnQtd2VpZ2h0OiBub3JtYWw7DQoJY29sb3I6ICM0NTQ1NDU7DQp9DQoudWktc3RhdGUtZGVmYXVsdCBhLA0KLnVpLXN0YXRlLWRlZmF1bHQgYTpsaW5rLA0KLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLA0KYS51aS1idXR0b24sDQphOmxpbmsudWktYnV0dG9uLA0KYTp2aXNpdGVkLnVpLWJ1dHRvbiwNCi51aS1idXR0b24gew0KCWNvbG9yOiAjNDU0NTQ1Ow0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCi51aS1zdGF0ZS1ob3ZlciwNCi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsDQoudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaG92ZXIsDQoudWktc3RhdGUtZm9jdXMsDQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLA0KLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWZvY3VzLA0KLnVpLWJ1dHRvbjpob3ZlciwNCi51aS1idXR0b246Zm9jdXMgew0KCWJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7DQoJYmFja2dyb3VuZDogI2VkZWRlZDsNCglmb250LXdlaWdodDogbm9ybWFsOw0KCWNvbG9yOiAjMmIyYjJiOw0KfQ0KLnVpLXN0YXRlLWhvdmVyIGEsDQoudWktc3RhdGUtaG92ZXIgYTpob3ZlciwNCi51aS1zdGF0ZS1ob3ZlciBhOmxpbmssDQoudWktc3RhdGUtaG92ZXIgYTp2aXNpdGVkLA0KLnVpLXN0YXRlLWZvY3VzIGEsDQoudWktc3RhdGUtZm9jdXMgYTpob3ZlciwNCi51aS1zdGF0ZS1mb2N1cyBhOmxpbmssDQoudWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLA0KYS51aS1idXR0b246aG92ZXIsDQphLnVpLWJ1dHRvbjpmb2N1cyB7DQoJY29sb3I6ICMyYjJiMmI7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KDQoudWktdmlzdWFsLWZvY3VzIHsNCglib3gtc2hhZG93OiAwIDAgM3B4IDFweCByZ2IoOTQsIDE1OCwgMjE0KTsNCn0NCi51aS1zdGF0ZS1hY3RpdmUsDQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZSwNCi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsDQphLnVpLWJ1dHRvbjphY3RpdmUsDQoudWktYnV0dG9uOmFjdGl2ZSwNCi51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVyIHsNCglib3JkZXI6IDFweCBzb2xpZCAjMDAzZWZmOw0KCWJhY2tncm91bmQ6ICMwMDdmZmY7DQoJZm9udC13ZWlnaHQ6IG5vcm1hbDsNCgljb2xvcjogI2ZmZmZmZjsNCn0NCi51aS1pY29uLWJhY2tncm91bmQsDQoudWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmQgew0KCWJvcmRlcjogIzAwM2VmZjsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOw0KfQ0KLnVpLXN0YXRlLWFjdGl2ZSBhLA0KLnVpLXN0YXRlLWFjdGl2ZSBhOmxpbmssDQoudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZCB7DQoJY29sb3I6ICNmZmZmZmY7DQoJdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KfQ0KDQovKiBJbnRlcmFjdGlvbiBDdWVzDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCi51aS1zdGF0ZS1oaWdobGlnaHQsDQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCwNCi51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1oaWdobGlnaHQgew0KCWJvcmRlcjogMXB4IHNvbGlkICNkYWQ1NWU7DQoJYmFja2dyb3VuZDogI2ZmZmE5MDsNCgljb2xvcjogIzc3NzYyMDsNCn0NCi51aS1zdGF0ZS1jaGVja2VkIHsNCglib3JkZXI6IDFweCBzb2xpZCAjZGFkNTVlOw0KCWJhY2tncm91bmQ6ICNmZmZhOTA7DQp9DQoudWktc3RhdGUtaGlnaGxpZ2h0IGEsDQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWhpZ2hsaWdodCBhLA0KLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodCBhIHsNCgljb2xvcjogIzc3NzYyMDsNCn0NCi51aS1zdGF0ZS1lcnJvciwNCi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IsDQoudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3Igew0KCWJvcmRlcjogMXB4IHNvbGlkICNmMWE4OTk7DQoJYmFja2dyb3VuZDogI2ZkZGZkZjsNCgljb2xvcjogIzVmM2YzZjsNCn0NCi51aS1zdGF0ZS1lcnJvciBhLA0KLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciBhLA0KLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWVycm9yIGEgew0KCWNvbG9yOiAjNWYzZjNmOw0KfQ0KLnVpLXN0YXRlLWVycm9yLXRleHQsDQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWVycm9yLXRleHQsDQoudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dCB7DQoJY29sb3I6ICM1ZjNmM2Y7DQp9DQoudWktcHJpb3JpdHktcHJpbWFyeSwNCi51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwNCi51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1wcmltYXJ5IHsNCglmb250LXdlaWdodDogYm9sZDsNCn0NCi51aS1wcmlvcml0eS1zZWNvbmRhcnksDQoudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXByaW9yaXR5LXNlY29uZGFyeSwNCi51aS13aWRnZXQtaGVhZGVyIC51aS1wcmlvcml0eS1zZWNvbmRhcnkgew0KCW9wYWNpdHk6IC43Ow0KCWZpbHRlcjpBbHBoYShPcGFjaXR5PTcwKTsgLyogc3VwcG9ydDogSUU4ICovDQoJZm9udC13ZWlnaHQ6IG5vcm1hbDsNCn0NCi51aS1zdGF0ZS1kaXNhYmxlZCwNCi51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsDQoudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGlzYWJsZWQgew0KCW9wYWNpdHk6IC4zNTsNCglmaWx0ZXI6QWxwaGEoT3BhY2l0eT0zNSk7IC8qIHN1cHBvcnQ6IElFOCAqLw0KCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7DQp9DQoudWktc3RhdGUtZGlzYWJsZWQgLnVpLWljb24gew0KCWZpbHRlcjpBbHBoYShPcGFjaXR5PTM1KTsgLyogc3VwcG9ydDogSUU4IC0gU2VlICM2MDU5ICovDQp9DQoNCi8qIEljb25zDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCg0KLyogc3RhdGVzIGFuZCBpbWFnZXMgKi8NCi51aS1pY29uIHsNCgl3aWR0aDogMTZweDsNCgloZWlnaHQ6IDE2cHg7DQp9DQoudWktaWNvbiwNCi51aS13aWRnZXQtY29udGVudCAudWktaWNvbiB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIik7DQp9DQoudWktd2lkZ2V0LWhlYWRlciAudWktaWNvbiB7DQoJYmFja2dyb3VuZC1pbWFnZTogdXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIik7DQp9DQoudWktc3RhdGUtaG92ZXIgLnVpLWljb24sDQoudWktc3RhdGUtZm9jdXMgLnVpLWljb24sDQoudWktYnV0dG9uOmhvdmVyIC51aS1pY29uLA0KLnVpLWJ1dHRvbjpmb2N1cyAudWktaWNvbiB7DQoJLypiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmciKTsqLw0KfQ0KLnVpLXN0YXRlLWFjdGl2ZSAudWktaWNvbiwNCi51aS1idXR0b246YWN0aXZlIC51aS1pY29uIHsNCgkvKmJhY2tncm91bmQtaW1hZ2U6IHVybCgiaW1hZ2VzL3VpLWljb25zX2ZmZmZmZl8yNTZ4MjQwLnBuZyIpOyovDQp9DQoudWktc3RhdGUtaGlnaGxpZ2h0IC51aS1pY29uLA0KLnVpLWJ1dHRvbiAudWktc3RhdGUtaGlnaGxpZ2h0LnVpLWljb24gew0KCWJhY2tncm91bmQtaW1hZ2U6IHVybCgiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLmh0bWwiKTsNCn0NCi51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwNCi51aS1zdGF0ZS1lcnJvci10ZXh0IC51aS1pY29uIHsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoImltYWdlcy91aS1pY29uc19jYzAwMDBfMjU2eDI0MC5odG1sIik7DQp9DQoudWktYnV0dG9uIC51aS1pY29uIHsNCgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5odG1sIik7DQp9DQoNCi8qIHBvc2l0aW9uaW5nICovDQoudWktaWNvbi1ibGFuayB7IGJhY2tncm91bmQtcG9zaXRpb246IDE2cHggMTZweDsgfQ0KLnVpLWljb24tY2FyZXQtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwOyB9DQoudWktaWNvbi1jYXJldC0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggMDsgfQ0KLnVpLWljb24tY2FyZXQtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggMDsgfQ0KLnVpLWljb24tY2FyZXQtMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IDA7IH0NCi51aS1pY29uLWNhcmV0LTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NXB4IDA7IH0NCi51aS1pY29uLWNhcmV0LTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAwOyB9DQoudWktaWNvbi1jYXJldC0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAwOyB9DQoudWktaWNvbi1jYXJldC0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IDA7IH0NCi51aS1pY29uLWNhcmV0LTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IDA7IH0NCi51aS1pY29uLWNhcmV0LTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IDA7IH0NCi51aS1pY29uLXRyaWFuZ2xlLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2cHg7IH0NCi51aS1pY29uLXRyaWFuZ2xlLTEtbmUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTZweDsgfQ0KLnVpLWljb24tdHJpYW5nbGUtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE2cHg7IH0NCi51aS1pY29uLXRyaWFuZ2xlLTEtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTZweDsgfQ0KLnVpLWljb24tdHJpYW5nbGUtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY1cHggLTE2cHg7IH0NCi51aS1pY29uLXRyaWFuZ2xlLTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTZweDsgfQ0KLnVpLWljb24tdHJpYW5nbGUtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE2cHg7IH0NCi51aS1pY29uLXRyaWFuZ2xlLTEtbncgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2cHg7IH0NCi51aS1pY29uLXRyaWFuZ2xlLTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNnB4OyB9DQoudWktaWNvbi10cmlhbmdsZS0yLWUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTZweDsgfQ0KLnVpLWljb24tYXJyb3ctMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMzJweDsgfQ0KLnVpLWljb24tYXJyb3ctMS1uZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvdy0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMzJweDsgfQ0KLnVpLWljb24tYXJyb3ctMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvdy0xLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjVweCAtMzJweDsgfQ0KLnVpLWljb24tYXJyb3ctMS1zdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvdy0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMzJweDsgfQ0KLnVpLWljb24tYXJyb3ctMS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMzJweDsgfQ0KLnVpLWljb24tYXJyb3ctMi1uLXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTMycHg7IH0NCi51aS1pY29uLWFycm93LTItbmUtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTMycHg7IH0NCi51aS1pY29uLWFycm93LTItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvdy0yLXNlLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvd3N0b3AtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvd3N0b3AtMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvd3N0b3AtMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvd3N0b3AtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0zMnB4OyB9DQoudWktaWNvbi1hcnJvd3RoaWNrLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IDFweCAtNDhweDsgfQ0KLnVpLWljb24tYXJyb3d0aGljay0xLW5lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTQ4cHg7IH0NCi51aS1pY29uLWFycm93dGhpY2stMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTQ4cHg7IH0NCi51aS1pY29uLWFycm93dGhpY2stMS1zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC00OHB4OyB9DQoudWktaWNvbi1hcnJvd3RoaWNrLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC00OHB4OyB9DQoudWktaWNvbi1hcnJvd3RoaWNrLTEtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNDhweDsgfQ0KLnVpLWljb24tYXJyb3d0aGljay0xLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtNDhweDsgfQ0KLnVpLWljb24tYXJyb3d0aGljay0xLW53IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC00OHB4OyB9DQoudWktaWNvbi1hcnJvd3RoaWNrLTItbi1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC00OHB4OyB9DQoudWktaWNvbi1hcnJvd3RoaWNrLTItbmUtc3cgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTQ0cHggLTQ4cHg7IH0NCi51aS1pY29uLWFycm93dGhpY2stMi1lLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTYwcHggLTQ4cHg7IH0NCi51aS1pY29uLWFycm93dGhpY2stMi1zZS1udyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNDhweDsgfQ0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC00OHB4OyB9DQoudWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTQ4cHg7IH0NCi51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtNDhweDsgfQ0KLnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC00OHB4OyB9DQoudWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTY0cHg7IH0NCi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2cHggLTY0cHg7IH0NCi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTY0cHg7IH0NCi51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTY0cHg7IH0NCi51aS1pY29uLWFycm93cmV0dXJuLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC02NHB4OyB9DQoudWktaWNvbi1hcnJvd3JldHVybi0xLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtNjRweDsgfQ0KLnVpLWljb24tYXJyb3dyZXR1cm4tMS1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTY0cHg7IH0NCi51aS1pY29uLWFycm93cmV0dXJuLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtNjRweDsgfQ0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtNjRweDsgfQ0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtNjRweDsgfQ0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtNjRweDsgfQ0KLnVpLWljb24tYXJyb3dyZWZyZXNoLTEtcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtNjRweDsgfQ0KLnVpLWljb24tYXJyb3ctNCB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTgwcHg7IH0NCi51aS1pY29uLWFycm93LTQtZGlhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC04MHB4OyB9DQoudWktaWNvbi1leHRsaW5rIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTgwcHg7IH0NCi51aS1pY29uLW5ld3dpbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC04MHB4OyB9DQoudWktaWNvbi1yZWZyZXNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTgwcHg7IH0NCi51aS1pY29uLXNodWZmbGUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtODBweDsgfQ0KLnVpLWljb24tdHJhbnNmZXItZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTgwcHg7IH0NCi51aS1pY29uLXRyYW5zZmVydGhpY2stZS13IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC04MHB4OyB9DQoudWktaWNvbi1mb2xkZXItY29sbGFwc2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtOTZweDsgfQ0KLnVpLWljb24tZm9sZGVyLW9wZW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtOTZweDsgfQ0KLnVpLWljb24tZG9jdW1lbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtOTZweDsgfQ0KLnVpLWljb24tZG9jdW1lbnQtYiB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC05NnB4OyB9DQoudWktaWNvbi1ub3RlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTk2cHg7IH0NCi51aS1pY29uLW1haWwtY2xvc2VkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTk2cHg7IH0NCi51aS1pY29uLW1haWwtb3BlbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC05NnB4OyB9DQoudWktaWNvbi1zdWl0Y2FzZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtOTZweDsgfQ0KLnVpLWljb24tY29tbWVudCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtOTZweDsgfQ0KLnVpLWljb24tcGVyc29uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC05NnB4OyB9DQoudWktaWNvbi1wcmludCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNjBweCAtOTZweDsgfQ0KLnVpLWljb24tdHJhc2ggeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTc2cHggLTk2cHg7IH0NCi51aS1pY29uLWxvY2tlZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtOTZweDsgfQ0KLnVpLWljb24tdW5sb2NrZWQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjA4cHggLTk2cHg7IH0NCi51aS1pY29uLWJvb2ttYXJrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC05NnB4OyB9DQoudWktaWNvbi10YWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTk2cHg7IH0NCi51aS1pY29uLWhvbWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMTJweDsgfQ0KLnVpLWljb24tZmxhZyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMTJweDsgfQ0KLnVpLWljb24tY2FsZW5kYXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMTEycHg7IH0NCi51aS1pY29uLWNhcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTEycHg7IH0NCi51aS1pY29uLXBlbmNpbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMTJweDsgfQ0KLnVpLWljb24tY2xvY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTEycHg7IH0NCi51aS1pY29uLWRpc2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTEycHg7IH0NCi51aS1pY29uLWNhbGN1bGF0b3IgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTExMnB4OyB9DQoudWktaWNvbi16b29taW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTExMnB4OyB9DQoudWktaWNvbi16b29tb3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMTJweDsgfQ0KLnVpLWljb24tc2VhcmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMTJweDsgfQ0KLnVpLWljb24td3JlbmNoIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE3NnB4IC0xMTJweDsgfQ0KLnVpLWljb24tZ2VhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTJweCAtMTEycHg7IH0NCi51aS1pY29uLWhlYXJ0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xMTJweDsgfQ0KLnVpLWljb24tc3RhciB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMjRweCAtMTEycHg7IH0NCi51aS1pY29uLWxpbmsgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQwcHggLTExMnB4OyB9DQoudWktaWNvbi1jYW5jZWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xMjhweDsgfQ0KLnVpLWljb24tcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xMjhweDsgfQ0KLnVpLWljb24tcGx1c3RoaWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTEyOHB4OyB9DQoudWktaWNvbi1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC00OHB4IC0xMjhweDsgfQ0KLnVpLWljb24tbWludXN0aGljayB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xMjhweDsgfQ0KLnVpLWljb24tY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMTI4cHg7IH0NCi51aS1pY29uLWNsb3NldGhpY2sgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTI4cHg7IH0NCi51aS1pY29uLWtleSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMTJweCAtMTI4cHg7IH0NCi51aS1pY29uLWxpZ2h0YnVsYiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xMjhweCAtMTI4cHg7IH0NCi51aS1pY29uLXNjaXNzb3JzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xMjhweDsgfQ0KLnVpLWljb24tY2xpcGJvYXJkIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xMjhweDsgfQ0KLnVpLWljb24tY29weSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTI4cHg7IH0NCi51aS1pY29uLWNvbnRhY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTkycHggLTEyOHB4OyB9DQoudWktaWNvbi1pbWFnZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0yMDhweCAtMTI4cHg7IH0NCi51aS1pY29uLXZpZGVvIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIyNHB4IC0xMjhweDsgfQ0KLnVpLWljb24tc2NyaXB0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTI0MHB4IC0xMjhweDsgfQ0KLnVpLWljb24tYWxlcnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNDRweDsgfQ0KLnVpLWljb24taW5mbyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0xNDRweDsgfQ0KLnVpLWljb24tbm90aWNlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTMycHggLTE0NHB4OyB9DQoudWktaWNvbi1oZWxwIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE0NHB4OyB9DQoudWktaWNvbi1jaGVjayB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNDRweDsgfQ0KLnVpLWljb24tYnVsbGV0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTgwcHggLTE0NHB4OyB9DQoudWktaWNvbi1yYWRpby1vbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNDRweDsgfQ0KLnVpLWljb24tcmFkaW8tb2ZmIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xNDRweDsgfQ0KLnVpLWljb24tcGluLXcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE0NHB4OyB9DQoudWktaWNvbi1waW4tcyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTQ0cHg7IH0NCi51aS1pY29uLXBsYXkgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNjBweDsgfQ0KLnVpLWljb24tcGF1c2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTYwcHg7IH0NCi51aS1pY29uLXNlZWstbmV4dCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNjBweDsgfQ0KLnVpLWljb24tc2Vlay1wcmV2IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE2MHB4OyB9DQoudWktaWNvbi1zZWVrLWVuZCB7IGJhY2tncm91bmQtcG9zaXRpb246IC02NHB4IC0xNjBweDsgfQ0KLnVpLWljb24tc2Vlay1zdGFydCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQ0KLyogdWktaWNvbi1zZWVrLWZpcnN0IGlzIGRlcHJlY2F0ZWQsIHVzZSB1aS1pY29uLXNlZWstc3RhcnQgaW5zdGVhZCAqLw0KLnVpLWljb24tc2Vlay1maXJzdCB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNjBweDsgfQ0KLnVpLWljb24tc3RvcCB7IGJhY2tncm91bmQtcG9zaXRpb246IC05NnB4IC0xNjBweDsgfQ0KLnVpLWljb24tZWplY3QgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTEycHggLTE2MHB4OyB9DQoudWktaWNvbi12b2x1bWUtb2ZmIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEyOHB4IC0xNjBweDsgfQ0KLnVpLWljb24tdm9sdW1lLW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE0NHB4IC0xNjBweDsgfQ0KLnVpLWljb24tcG93ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0xNzZweDsgfQ0KLnVpLWljb24tc2lnbmFsLWRpYWcgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTc2cHg7IH0NCi51aS1pY29uLXNpZ25hbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xNzZweDsgfQ0KLnVpLWljb24tYmF0dGVyeS0wIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTE3NnB4OyB9DQoudWktaWNvbi1iYXR0ZXJ5LTEgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMTc2cHg7IH0NCi51aS1pY29uLWJhdHRlcnktMiB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xNzZweDsgfQ0KLnVpLWljb24tYmF0dGVyeS0zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTk2cHggLTE3NnB4OyB9DQoudWktaWNvbi1jaXJjbGUtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE5MnB4OyB9DQoudWktaWNvbi1jaXJjbGUtbWludXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTZweCAtMTkycHg7IH0NCi51aS1pY29uLWNpcmNsZS1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0xOTJweDsgfQ0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMTkycHg7IH0NCi51aS1pY29uLWNpcmNsZS10cmlhbmdsZS1zIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTE5MnB4OyB9DQoudWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0xOTJweDsgfQ0KLnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTZweCAtMTkycHg7IH0NCi51aS1pY29uLWNpcmNsZS1hcnJvdy1lIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTExMnB4IC0xOTJweDsgfQ0KLnVpLWljb24tY2lyY2xlLWFycm93LXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTI4cHggLTE5MnB4OyB9DQoudWktaWNvbi1jaXJjbGUtYXJyb3ctdyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNDRweCAtMTkycHg7IH0NCi51aS1pY29uLWNpcmNsZS1hcnJvdy1uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE2MHB4IC0xOTJweDsgfQ0KLnVpLWljb24tY2lyY2xlLXpvb21pbiB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNzZweCAtMTkycHg7IH0NCi51aS1pY29uLWNpcmNsZS16b29tb3V0IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5MnB4IC0xOTJweDsgfQ0KLnVpLWljb24tY2lyY2xlLWNoZWNrIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwOHB4IC0xOTJweDsgfQ0KLnVpLWljb24tY2lyY2xlc21hbGwtcGx1cyB7IGJhY2tncm91bmQtcG9zaXRpb246IDAgLTIwOHB4OyB9DQoudWktaWNvbi1jaXJjbGVzbWFsbC1taW51cyB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMDhweDsgfQ0KLnVpLWljb24tY2lyY2xlc21hbGwtY2xvc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzJweCAtMjA4cHg7IH0NCi51aS1pY29uLXNxdWFyZXNtYWxsLXBsdXMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDhweCAtMjA4cHg7IH0NCi51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVzIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTY0cHggLTIwOHB4OyB9DQoudWktaWNvbi1zcXVhcmVzbWFsbC1jbG9zZSB7IGJhY2tncm91bmQtcG9zaXRpb246IC04MHB4IC0yMDhweDsgfQ0KLnVpLWljb24tZ3JpcC1kb3R0ZWQtdmVydGljYWwgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIC0yMjRweDsgfQ0KLnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0xNnB4IC0yMjRweDsgfQ0KLnVpLWljb24tZ3JpcC1zb2xpZC12ZXJ0aWNhbCB7IGJhY2tncm91bmQtcG9zaXRpb246IC0zMnB4IC0yMjRweDsgfQ0KLnVpLWljb24tZ3JpcC1zb2xpZC1ob3Jpem9udGFsIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQ4cHggLTIyNHB4OyB9DQoudWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNjRweCAtMjI0cHg7IH0NCi51aS1pY29uLWdyaXAtZGlhZ29uYWwtc2UgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtODBweCAtMjI0cHg7IH0NCg0KDQovKiBNaXNjIHZpc3VhbHMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KDQovKiBDb3JuZXIgcmFkaXVzICovDQoudWktY29ybmVyLWFsbCwNCi51aS1jb3JuZXItdG9wLA0KLnVpLWNvcm5lci1sZWZ0LA0KLnVpLWNvcm5lci10bCB7DQoJYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4Ow0KfQ0KLnVpLWNvcm5lci1hbGwsDQoudWktY29ybmVyLXRvcCwNCi51aS1jb3JuZXItcmlnaHQsDQoudWktY29ybmVyLXRyIHsNCglib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4Ow0KfQ0KLnVpLWNvcm5lci1hbGwsDQoudWktY29ybmVyLWJvdHRvbSwNCi51aS1jb3JuZXItbGVmdCwNCi51aS1jb3JuZXItYmwgew0KCWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDsNCn0NCi51aS1jb3JuZXItYWxsLA0KLnVpLWNvcm5lci1ib3R0b20sDQoudWktY29ybmVyLXJpZ2h0LA0KLnVpLWNvcm5lci1iciB7DQoJYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDNweDsNCn0NCg0KLyogT3ZlcmxheXMgKi8NCi51aS13aWRnZXQtb3ZlcmxheSB7DQoJYmFja2dyb3VuZDogI2FhYWFhYTsNCglvcGFjaXR5OiAuMzsNCglmaWx0ZXI6IEFscGhhKE9wYWNpdHk9MzApOyAvKiBzdXBwb3J0OiBJRTggKi8NCn0NCi51aS13aWRnZXQtc2hhZG93IHsNCgktd2Via2l0LWJveC1zaGFkb3c6IDBweCAwcHggNXB4ICM2NjY2NjY7DQoJYm94LXNoYWRvdzogMHB4IDBweCA1cHggIzY2NjY2NjsNCn0="}},"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":"media.istockphoto.com/id/1561042011/photo/growth-and-development-chart-of-company-in-new-year-2024-development-to-success-and-motivation.jpg?s=612x612\u0026w=0\u0026k=20\u0026c=_n85VLxGQcjCXysD5zix7ylO-Xsnv6ANLHAz-0_RZqc=","fqdn":"media.istockphoto.com","domain":"istockphoto.com","tld":"com"},"ip":{"addr":"108.157.214.70","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.826Z","timestamp":1785129412826,"http_version":"HTTP/1.1","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":"media.gettyimages.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Mon, 10 Nov 2025 00:00:00 GMT","end":"Tue, 08 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"2A:CF:A6:4E:44:B1:DA:FA:BC:7E:92:5C:A4:6E:12:E0:83:00:24:0B","sha256":"A8:86:96:F2:A3:A9:F9:27:90:BB:3B:1C:33:EA:C8:A5:58:EB:E6:4D:5B:B4:36:97:17:54:9D:B8:2B:98:00:0A"}}},"request":{"raw":"GET /id/1561042011/photo/growth-and-development-chart-of-company-in-new-year-2024-development-to-success-and-motivation.jpg?s=612x612\u0026w=0\u0026k=20\u0026c=_n85VLxGQcjCXysD5zix7ylO-Xsnv6ANLHAz-0_RZqc= HTTP/1.1\r\nHost: media.istockphoto.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 200 OK\r\nContent-Type: image/jpeg\r\nContent-Length: 15092\r\nConnection: keep-alive\r\nDate: Sat, 25 Jul 2026 05:09:08 GMT\r\nContent-Disposition: inline; filename=istockphoto-1561042011-612x612.jpg\r\nServer: Kestrel\r\nAccess-Control-Allow-Origin: *\r\nCache-Control: public, max-age=7776000\r\nLast-Modified: Sat, 25 Jul 2026 05:09:08 GMT\r\nX-Cache: Hit from cloudfront\r\nVia: 1.1 301faf3f65621d2ccd9fad88788c128a.cloudfront.net (CloudFront)\r\nX-Amz-Cf-Pop: ARN56-P1\r\nAlt-Svc: h3=\":443\"; ma=86400\r\nX-Amz-Cf-Id: 2iJG1vphQeQ7WCBr0MhPjUueogWyP4hAOEETQ-HHR2fy0J0QRTQKyg==\r\nAge: 173264\r\nStrict-Transport-Security: max-age=60; includeSubDomains; preload\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"OK","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Kestrel","description":"","website":"https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel","common_platform_enumeration":"","icon":"kestrel.svg","categories":["Web servers"]},{"name":"Microsoft ASP.NET","description":"ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages.","website":"https://www.asp.net","common_platform_enumeration":"cpe:2.3:a:microsoft:asp.net:*:*:*:*:*:*:*:*","icon":"Microsoft ASP.NET.svg","categories":["Web frameworks"]},{"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":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]}],"data":{"size":15092,"size_decoded":15736,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16, Exif Standard: [TIFF image data, little-endian, direntries=3, description=Growth and development chart of company in new year 2024. Development to success and motivation,\u0001, xresolution=145, yresolution=153], progressive, precision 8, 612x336, components 3","md5":"5598df1f69d1db755c073e989c04bb10","sha1":"4971cb83cf11ea44b79ef86c96dd8330608945d2","sha256":"b2a4313fb1c5cc4435ba415f80b4c97debd63a000531c9e98b043ec2538de5f9","sha512":"3c49dd01cd448764d77e8015d6ad61309ffd9aa09517a1c8c4426e21bd7353e34ea7533be66209ef80a2fe9908df1b9a47a6e03b5153b4ce8ab319af20f5f941","ssdeep":"384:3nzVslNJzjzD97dQrGkVe2MIrl82o6LSQDv:3zVQNpzDVOe1Ipus","tlshash":"fc629e367b54c082d07d773298d1d38253631ae1ff84ab87d2ceac662d942c62fe52c5","first_seen":"2026-05-04T15:12:22.317149Z","last_seen":"2026-07-27T10:24:20.321599Z","times_seen":6,"resource_available":false,"data":"/9j/4AAQSkZJRgABAQEBLAEsAAD/4QCpRXhpZgAASUkqAAgAAAADAA4BAgBfAAAAMgAAABoBBQABAAAAkQAAABsBBQABAAAAmQAAAAAAAABHcm93dGggYW5kIGRldmVsb3BtZW50IGNoYXJ0IG9mIGNvbXBhbnkgaW4gbmV3IHllYXIgMjAyNC4gRGV2ZWxvcG1lbnQgdG8gc3VjY2VzcyBhbmQgbW90aXZhdGlvbiwBAAABAAAALAEAAAEAAAD/4QXUaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHBob3Rvc2hvcDpDcmVkaXQ9IkdldHR5IEltYWdlcyIgR2V0dHlJbWFnZXNHSUZUOkFzc2V0SUQ9IjE1NjEwNDIwMTEiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHBzOi8vd3d3LmlzdG9ja3Bob3RvLmNvbS9sZWdhbC9saWNlbnNlLWFncmVlbWVudD91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+R2FsZWFudSBNaWhhaTwvcmRmOmxpPjwvcmRmOlNlcT48L2RjOmNyZWF0b3I+PGRjOmRlc2NyaXB0aW9uPjxyZGY6QWx0PjxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+R3Jvd3RoIGFuZCBkZXZlbG9wbWVudCBjaGFydCBvZiBjb21wYW55IGluIG5ldyB5ZWFyIDIwMjQuIERldmVsb3BtZW50IHRvIHN1Y2Nlc3MgYW5kIG1vdGl2YXRpb248L3JkZjpsaT48L3JkZjpBbHQ+PC9kYzpkZXNjcmlwdGlvbj4KPHBsdXM6TGljZW5zb3I+PHJkZjpTZXE+PHJkZjpsaSByZGY6cGFyc2VUeXBlPSdSZXNvdXJjZSc+PHBsdXM6TGljZW5zb3JVUkw+aHR0cHM6Ly93d3cuaXN0b2NrcGhvdG8uY29tL3Bob3RvL2xpY2Vuc2UtZ20xNTYxMDQyMDExLT91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybDwvcGx1czpMaWNlbnNvclVSTD48L3JkZjpsaT48L3JkZjpTZXE+PC9wbHVzOkxpY2Vuc29yPgoJCTwvcmRmOkRlc2NyaXB0aW9uPgoJPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0idyI/Pgr/7QCsUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAI8cAVoAAxslRxwCUAANR2FsZWFudSBNaWhhaRwCeABfR3Jvd3RoIGFuZCBkZXZlbG9wbWVudCBjaGFydCBvZiBjb21wYW55IGluIG5ldyB5ZWFyIDIw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"}},"time_used":52,"timings":{"blocked":-1,"dns":16,"connect":8,"send":0,"wait":11,"receive":1,"ssl":16},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.pexels.com/photos/7897470/pexels-photo-7897470a1a8.jpg?auto=compress\u0026cs=tinysrgb\u0026w=800","fqdn":"images.pexels.com","domain":"pexels.com","tld":"com"},"ip":{"addr":"104.18.66.220","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.831Z","timestamp":1785129412831,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"images.pexels.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 05 Jun 2026 23:55:07 GMT","end":"Thu, 03 Sep 2026 23:55:06 GMT"},"fingerprint":{"sha1":"3E:62:75:25:D7:A1:F4:0B:0A:7C:2E:3F:08:FF:C1:B9:5F:22:BC:D3","sha256":"BB:66:85:21:1F:2E:9C:1F:4A:3D:9F:63:A8:60:94:D6:9B:FD:60:8B:E3:BD:B8:B2:7C:C6:82:C6:0D:66:E7:7D"}}},"request":{"raw":"GET /photos/7897470/pexels-photo-7897470a1a8.jpg?auto=compress\u0026cs=tinysrgb\u0026w=800 HTTP/1.1\r\nHost: images.pexels.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 404 \r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\ncontent-type: text/plain\r\ncontent-length: 27\r\nset-cookie: __cf_bm=WoQUbwqjxcmrxqFCDkIlUAf1NG.KlblzEkV7ZX1H45E-1785129412.8522944-1.0.1.1-ntHxETH9H7re9wdkULn0ZGjVtpdFNQtysbzw2v.lQ4BLSf7v2SELOe6W8kc9uFGifOk3bw4spDHgzGioAhozcnxbU0qfLx6rTTLFKc7LXoaKrGt08xP1QBLcr6VFYc.q; HttpOnly; SameSite=None; Secure; Path=/; Domain=pexels.com; Expires=Mon, 27 Jul 2026 05:46:52 GMT\n_cfuvid=mh1h5KXZNcddEwouQILSCKCxs3c7END2Zk8Xj79vdbY-1785129412.8522944-1.0.1.1-NfaGx0S1z22BA5Q3gJaq8Zo3TmtbkB_RNNi5dsvr6aU; HttpOnly; SameSite=None; Secure; Path=/; Domain=pexels.com\r\ncf-ray: a2192cae5fc656b7-OSL\r\ncf-cache-status: BYPASS\r\nserver: cloudflare\r\nx-request-id: 22094b91-55f2-49dd-90a8-accc057105c2\r\nvary: accept-encoding\r\naccess-control-allow-origin: *\r\npriority: u=4,i\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"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-29T09:56:29.736709Z","times_seen":17595596,"resource_available":true,"data":null}},"time_used":0,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":0,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coin-images.coingecko.com/coins/images/44/large/xrp-symbol-white-128.png?1696501442","fqdn":"coin-images.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.21.63.32","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.187Z","timestamp":1785129413187,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coin-images.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 11 Jun 2026 22:42:48 GMT","end":"Wed, 09 Sep 2026 23:41:15 GMT"},"fingerprint":{"sha1":"7A:6C:D0:D5:FD:4F:F2:F6:0E:21:8F:DB:FC:C2:6A:FB:03:26:BA:A8","sha256":"8F:4C:5D:49:64:66:ED:34:00:50:8C:D4:D9:03:C8:38:40:42:53:9D:67:B3:CD:AA:9E:0E:D5:41:02:8E:46:BA"}}},"request":{"raw":"GET /coins/images/44/large/xrp-symbol-white-128.png?1696501442 HTTP/1.1\r\nHost: coin-images.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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/3 200 \r\nx-amz-id-2: LhtraOG7O4UusfqU2hQ4IeHSHd5E+50CaXu/khwf7tzERv9LBjLjPZMC3vkJWnsQMXox5GWSzdFtfdy5sDGIo5d7Zgu9A1rp\r\nx-amz-request-id: 5X2HY92B73H4G8W0\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nx-amz-replication-status: COMPLETED\r\nlast-modified: Wed, 29 May 2024 02:58:49 GMT\r\netag: \"8c9a8c477f324c88cead49db9a5fc1a2\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: dvTdjQhaHPc3d2gEiPjuvrzI.pMVPEqU\r\naccept-ranges: bytes\r\ncontent-type: image/png\r\nserver-timing: cfExtPri\r\nserver: cloudflare\r\nage: 5826\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Pj8DaxUJ0ulvTBzRvKLxmabPfYISc9xmW0gWRvBtt4qkt2gTSU9qMK%2FI8W2yMLp24HSU8%2FHwJpKB3jb7w3Hh4lznADIVVXZO%2FgqzpREyLf8%2BGpKVh%2FbJA09bFEpsgyFP6nKRjyr8lMLetJwn\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a2192cb08c3d5687-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 12328\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":12328,"size_decoded":13303,"mime_type":"image/png","magic":"PNG image data, 250 x 250, 8-bit/color RGBA, non-interlaced","md5":"8c9a8c477f324c88cead49db9a5fc1a2","sha1":"8a8a7c615c7f00893e4c3374ad134581a053c8ce","sha256":"3672b3785d85e582ef497a6588dbe75cef4c60f982f678549f309fe784400a2b","sha512":"849e4018007f9b5406d4910a2da39689fcf847bce6f8586c7db389066af1efaf9ae8ae5bd374401b285d988a16fc2480be1e813a6ae3e2af78f485efa523fab4","ssdeep":"384:BFv36FCrffjNiI0gXcwWIzS3qJ+GmJQauo:jIqaGK3qJGbuo","tlshash":"56429d3b1465c94a4b535f7ec1ed4bb386f31224cdf224e69d781a02db0e61a2f390da","first_seen":"2024-07-06T20:02:44Z","last_seen":"2026-07-29T06:15:23.459318Z","times_seen":1661,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5AsTCSYzB6Lj6QAALxdJREFUeNrtvVd3G1f6p/sUUiEDzBRzVg7MlGx3u/s/cy7P3dzMp+lPMzfn7qw1a86Zf3fbbtvKEkkFUhTFnBOIXAVUmosCINqdBJAWKdZ+ltmSWzIIEPjVU3vvd79bsiwLwANEgEngvwFjQDMQA2TAhUAguOhkgHfAQ+D/BaZL/5/uAdxAA3AduAe0Y4deBFwg+LLwYMu5CxgBTGAeOJQsy6oD7gL/HbiPbfIw4MW+CIiwCwRfBgagAmngEHgM/A9g1gMMY6d/Crh13s9UIBDUjBsIlb6uABKwDPg9wP+NrfrG836WAoHgTGkGvgUGJcuynmLf17djXwkEAsHlIA/sARnJsqw09iDeh61+gUBwOdCALFCQrNL6mkAguHSY2GE3RdAFgsuNCfYtu0AguLy4Kv8jEAguNyLoAoEDEEEXCByACLpA4ABE0AUCByCCLhA4ABF0gcABiKALBA5ABF0gcAAi6AKBAxBBFwgcgAi6QOAARNAFAgcggi4QOAARdIHAAYigCwQOQARdIHAAIugCgQMQQRcIHIAIukDgAETQBQIHIIIuEDgAEXSBwAGIoAsEDkAEXSBwACLoAoEDEEEXCByACLpA4ABE0AUCByCCLhA4ABF0gcABiKALBA5ABF0gcAAi6AKBAxBBFwgcgAi6QOAARNAFAgcggi4QOAARdIHAAYigCwQOQARdIHAAIugCgQMQQRcIHIAIukDgAETQBQIHIIIuEDgAEXSBwAGIoAsEDkAEXSBwACLoAoEDEEEXCByA57yfwFlgWRamaWGaBqZlgXWqRwMkJAkkScLtduNyievhRcKyrNJ7bmKaJpZlv2eneEQkScLlcuFyuZAkCUk6zeNdPL74oFuWhaZpHBwcsr65SS6Xt98ogBreLMuycLlc+HxeIpEI7W1XaKivP++XKTiBYZioqsLB4RHbOzsoilr7xdiyMEwTj8dDQ30djQ0NxONxgsHAeb/MM+WLDzqWhWEYHB0lmJtfYHtnB1UtoOt6TVdly7Jwu90EAn6uXGllfHSEUCiEX5bP+5UKANM0yeay7Ozs8m5hkbdz86TS6YqJq+PjnUAkEuba0BAul5tgMCiCftGQXC48Hg/RWJTWlma2t3d4t/CeZCqFu3KVr+YDYNmP6XbT1NRIPqeQyWQYGhykuanxvF+uozFNk3xeYWlpmZ8ePWZufoGdnV3yeQWXS+KT32eJkiBMPB438ViMvt4e/H6Z+vo6AgH/eb/UM+eLDzqA1+ulqbGRq0OD7O0fMP3qFYnjYwpqAcMwanpM0zTZ3tklm82Ry+WQfTLRSBi///J9CL4ETNMkk82ytbXNy5lZ/vLdDyyvrGLoOqZpUu0Yvfy3I5EI9aVb9rYrrbQ0N+F2u8/75Z45lyLoAH6/THNzE3du3ySv5Hny9Dkzr16TzeVOmB1Kl/N/8Uj2n1uWRSaTYWV1FbCQZR9qQeXa1SGaGoXZPyemaZJXFJaWVvjbzz/z7PlLNja3yGZz9u269Ymzr6W/WzF5PEZ3VycTY6NMTYzT0dF+aSdeL03Q3W43kXCYa0ODRMJhfF4v6UyG1dV1VFWt2ezJZIoPSysAFIpF/P4A4VAYv1++dDOzFxHTNMlksmxtb/NyZobvfviRxQ/L6JqGp0bzejwewuEwA/19jA0P8/WDKe7euY3P5zvvl/ub4f7Tn/70p/N+EmeFJEl4PB4C/gB+v0wgGEDXdQ6PEqhqbTOz9hKOQV5RUBQV0zBBglAoRCgYPO+XfKkpz64vLi3zl+//xs+PnrC8vEommwXLqvpCaxgGLpeLunic/v5evr4/xddfPaCvr4dwOHypL9yXxuhlXC4XoVCQwYEBgqUgJlMp1tbWURQV3TCqGs253W5M0+I4mcJcWgZA0zSCwQChUBC/LF/a273zxDRNstksm1tbTM/M8sOPP/F+8QO6pv9qKPbplE3e29vN2PAwU5Pj3Lt7uU1e5lIZvcxHs/sJ+P2EQkGKmsbB0RGFms1uYZgGeSWPonwcCkQi4coFRXA2GIaBqqp8WF7hL9/9wI8PH7Oysko2k8U6I5N/8/VX9Pf1Eg6HLrXJy1w6o5exzR5icNA2u2GYJFMp1tc3yOeVqtfZ3W4XpmlyfJzENEpm13XCoRDBQAC/3y/MfgaUTb6xtc3L6Vn+9vNDFhYW0TSt5p/vr00+OTHO3Tu3HGHyMpfS6GVOmj0YCBIOhygUi+wfHlIoFKr+4Fil2V3DMMjn86WhgA5IRCORS1dk8bkpm3xpeYU/f/cDP/78kJWVNbK5LFjUZHJJkiom/+r+FL//5mv6+3oJhYKOMHmZS2v0MmWzDw32EwwG0DSdZCrN+sYG+Vy+KrOXa6ANw+A4mcRcts1u6AbhcAi/X8YfCNQ8hnQy5XXyzc0tXs7M8tPDR8y/W0DXdFxStRdkeyXN6/USDoXo6+1hdOQek+Nj3Ll901EmL3OpjV6mbHa/bI/XI+EwhUKBvYMDikUNV41X9rLZ84qCrukAxKJRggFh9moom3xlZZU/f/c9P/z0kJXVNbLZXE2z66Zpmzwej1VM/u3vvmGgv49g0FkmL3PpjV7G5XIRDocYGugnGAhQKBRIpdOsr2+SzWUxdOMUZrfX2Q3TIBIJI/t8BAL+S1lhddaUTb6xscmL6Vl+fvSEufl39pi8ykCWJ+rKJu/v7WVsZJiJsVFu3byO7OD9Co4wepmPZpcJhUNEIxEURWF//5BiDR+sMoZhkMvnURQFTdMqNgkIs/9LyiZfXV3jz3/9nu9//InV1TVy2VxNY3LTtJAkiMdjDPT38mBqim9//w0DA30EA8FSPbwzcYzRy1TG7CWzK4pCJptlfX2DTCZbmcD5FE6aPZlMslQyu2VaRCNhvB4vwWBAmP1XWBZYlln5uT9/OcOjJ095MzePVtSqDvhHk3s+mnx0mPGxEW5cvyr2J+Awo5c5afZIOEw0EiWXz7N/cFAxci3YZs+RVxSKxSKSy0VdXZyA+KD9AtMsmXxtnT//9Xu++9uPrKyukcvlaxqTlxtRfDT5JH/49ncMDtgTsGLZ04FGL1NZZx8YwO/3k8vbu9TW1jfIpDOnMHuK5ZLZAaKRMO7+fkKhoOPNXg5kJptlbW2dF9OzPH76jDdv5ygWtaqbhZSXO+11ctvk46MjjI2OcPXqkJgUPYEjjV6hZHbZLxONRIhGomSzWfb3T2d23TDI5WyzF4pFXC4XDfV1jr+FNE0TVVVZW9vgz3/9nr9+/zdWVtfIn8LkAPFYjIH+Pu5PTfCHb3/H0OCAMPmvcKzRwd6QKrkkwqEQg/39yLJMJpshryisra2TSqUxTbNqs+uGQTKVYnllpfR9JCKRMAN9fYTCoZp3XX2pnDT56to6L6dnePLsBW/n5ykWilX3aCsH3OvxEAqH6e/rZXxshLGRYYYGBwiFREnyr3G20U/g9XqRfTKxaIxoNEo6k2H/4AC9imW3k0iShK7rFbMXCwXcbjeNDQ2OW+YxTQtVVVhf3+DP331vN40om5zqZ9f/zuST4/zxD7/n6tAgwWBQmPwf4Gijlyl/0MLhEAMDffh8XtLpNGqhwOraOqlkqmqzA+i6XjL7KmDPC0QiYfp7ewmHw3g8l9vsZZNnsxmWV9eYnpnl6bOXzL1bOJ3Jy+vkfb1MjI0yNjrCQH8/4XDovF/yhUUY/Vd4vV5k2Uc8HiMajZBKpdg/PKyqoOYkZbNncznyeYWCWsDr9dDU2IgsX+5STMuyUBSF9Y1N/vzdD/znX79jZWUNRVFq2oX2a5NPlUx+7aow+b9DGP0EH81udx/xeDwkUymKmsbq6hrHySSW+ekf0JNmT50wu9vtJhwK09fXQyQSuXRj9sqYPJNleWWFlzOzPHv+kncLi/ZmorMw+fgoY6PD9Jd+hoJ/jTD6P8E2u0x9XR2RSIREMsnh4ZG97FbDYQEfzZ4ln1dQCyo+r4/mpsZLt8miYvLNLf7y/Q/87798x8rKKoqi1Da7bj8osVjUNvnEGH/847fcuHZVmPwTEUb/B5Q/iJHSjK7L5SaZSmIaBssrqxwfJ6u69fyl2dOslMzu9XgIhYL09fYQi0a/+HX2k7PrS8srvJy2Tf5+8QNq6ZCFak1uWZZt8nCIgb4+JsfHGBsdoa+nW5i8CoTR/yV2WaXsl6mvrycSDnN0fMzh0ZHdO66WR5QktJLZc3kFVS0gyzItzU14vd7zfsGnwrIs8orC5uYWf/3+b/z/f/4LyyurKIpak8nLxKK2yScnxviPP/6eG9evCZNXiTD6v8D+XEqEw2H6e3uQJInjZBIsi6XlFRLHyao+wH9n9tVVwB4mBAMBenu7icdiX6TZy51hFpeWbZO/eMnih6WzM/nEGOOjI/R0dxEOh8/75X5xCKN/Aq5ybbxfpqG+nnAozGEiwVEiUbPZXS4XmqaRzWbtnW+qSiAQ+CLNXj5BZXNrm+9++JH/7z//zPLyCqpaqGl2vUzZ5BPjo/zHH7/l5o3rhITJa0IY/RORJMmeKe/tAeA4lcQlufiwtEQicVz5O5/6WGD3nEul05VDInw+H35Zpq+3h3j8yzC7bfIci0tLvHg5w9MXL1laXiGfV3DXbHIPkXCE/r5epibHGRsZpqerk3BIrJPXigh6FbjdLgKBAJ2dHfyXP3xLPBbnf/4vey+6VtQqy0CfisvlQgIymWzlkIhiocg3Xz9gbGT4wgfdtCzyeYWt7W1+fviY//zr92xubqGdomsPQDgUriyh/eH3v2NwsN/x+wROiwh6lZTN3tvTjWmaJFNJPF4Pi4sfOEoc2/Xzn2r20q+appWOf1oDQJZ9+Hxe+np7qKuru5A96OxTTXMsLn7g+csZnj5/wcrKKrl8DrfLXZPJPR4P0Yht8vuT44yNjtDd1SkOyjgDRNBroGz2rq5O/usf/0A8FkMrFms2e9nc6XTm4/FPhSLaN5pt9gtWG2+aFvl8nq2tbR4+fsr//stf2djcoqgVq27keJJwOFTZoPLt779haGhQHFd9Roig14gk2bPxPd1dpZr2ND5ZZmFhkcRxAonqqr/Ano23zb4O2Gb3eDz09fbSUF93ISahdF0nnc6wuLTEy+lZ2+Sl9k9ud/UmNy0L70mTT00wNjJMV2en2E9+hoignwK3yzZ7T3cX/9d//IFYNIqqqiiKQlHTsMzqZuQ/mj1dMbtaKKDrBqPD9/D7z9duhmmWlgXX+OnnR/z1hx/Z2iqNyWuYT5AkCRcnTD46wre/+5qrQ0OXfh/A50YE/ZSUzd7d1UlR00hn0gT8Ad4tLJBIHFe9Qws+mn11bR3LtDBNk3Q6w7WhAa5caUWWP/9Jrtlsjr39fd4vfmBm9jUvZ2ZZW18nl8vbs+tVPJZl2a/J6/USjUbo77VNPj46QmdnB4GAmHg7a0TQzwBXyey93d34vF6ikYh9RpuqohU1zJrNnmFxaZnE8TGra+v8x7e/48H9KZqbGpE/4+GOmq6zu7fH9OwrHj5+yvPnLzg8SmAYRk0ThZIk2e23QyH6e3sYGx3m9998zfVrQ47bq/+5EEE/I2yzh+jq6qRYLJLJZAkFg8zNL5A4Pq56xxbYZs9msxQKBYpFDdnnQ1ELXB0coLOznYb6ht+8m8r+wQEflpZ5O/eOV6/fMPdugZ3dPYrFIl6vt6Zjkk6a/MHUJGOjw3R1dogltN8QEfQzxOVy2aWsPT3Iskw4HCKby5WCWqza7GVjG4bB8fExz19Os7O3x+bWHUaG73Lj2lXa267g9XqxLHC5qr+YlLGXuACs0pnw9vLZ3Pw7vv/hJ16/ecvaht0SW5KkmnfclU3e19vD2Mgw33z9gJs3rl26HXwXDRH0M6Zs9s6ODlS1QC6XJxIO82ZunuPjZE1mtyyLQrGIfpykWNTQNZ2joyPeL36gu7ODzo4OWltbaGior3nNudz2KpXOkEgk2D84ZHtnh4X3i7ydm2dra4dUOo1hGHg81X9sDMPA6/EQi8fp6+3hwf1JxkdH6OrqELfrnwER9N8Al8tFMBigr68Hv18mGAyQzmQoFotoRa1ytvqnUr4wWJZFLpdj8cMS6+sbhMIh2tquMHz3Dndu36Svp4eW5ib8/sDHNlWlC8vJS0t5f3dJ4FiWPZu+tb3DxuYmq2vrLH5YYnFpicPDI1RVRdP0Sj/8Wn8m5aOLR0fu8c1X97l544aYXf9MiKD/RtgVdLbZR+6p5BWVaDTKmzdvOU7adfK1mN00TYpFDUVRyeZy9lJeocjW9g5NDfXU19fT2FBf6knnwefzEQ6F8JUCZZomum6gFYsUCgWyuTypdIrEcZKjo0Tp64i9gwMODg5RVLV0kZBqOtKofAdQF4/T29vNV/enmBgbpaurU4T8MyKC/htSNnt/Xy+BQICAXyadSqPpOsVCsWqzQ/mUGXfl99lsjveLH1haWgZJIhQMcuVKKw31dfi8PkKhEI2N9QRLt/SGYVAsFsnnVbLZLIdHh2zv7tkts0pr9pZpYpTG6actv3W73RWTj40M8/WDKW7fcubRxeeJCPpvjCRJhEIhOtrbGBm+R6FQ4MmzKK9evyWZTOJyu2toTGVTNrymaZUJtFwuh1oosL9/gMfj/mh0nw+kk0bXSkbPkUqnUVW1MlkoSa7KxN5pjqfyeDzEYzF6e7v5+v4UE+NjdHd3iZCfAyLonwHb7EEG+voIBgJ4vT6SqRSGYVAoFGoyexlJknC73b/Y6aaUTnYth9QObOkPrdIYnY+bSSzL+rvHOC2/MPnwMA/uT3Ln9i0R8nNCBP0zYZs9SEd7G2Mjw+i6zuOnz5h99ZpkKl25RT6LijfDNCsbayoTb1b5efzyOZV/PatKO1038HjcxOMx+np7+Pr+FJMT4/T0dIuQnyMi6J+RitkH+uzjlD1uUuk0q6vrqKqKrutn8n3OMrjV4vN5iZQ2qIzeu8f9qUnu3hEmP29E0D8zUmnCrL29janxMbweL0+ePWd6Zpajo0RlnHwRdqp9KpZloWkaHq+XK81NXLs6xNjoCMN379Db0/3Ftca6jIignwMul4tQMMjQ0CD19XXIso9sNovb7SabzZ163P45Kc8RyLJMPB7j5o3rTI6PMTE+ytDggAj5BUEE/ZyQJAm/LNPU2MTwvbtIkou3c3O8W1hkfX2Dw6Ojysz1ed2G/zPs2X4LsHC53YSDQYYGB7h7+ya3bt5gcKCfK1daay6uEZw94p04Z3w+Lz3dXUQjEZoaG4lGogQCfjxLHlLpNLquY56YXLsIuFwufD67K24kHKatrY37k+M8mJqkt6eburr4he935zQk6yJ9ghyKZVkUNY1kMsn29g6LS8vMzy/wZm6eD0vLpDMZjNJEXblH+ue2fPliYwGyz8eV1lb6+3oZHOxnaKCf/v4+OtvbiUTCF/IuxOkIo18AJElC9vloaW6msaGB1tYWWltaiEQjyLLM7u4umUwWtWDXnOu6/osx/G8RKuvEepxLkvD7ZWTZTzAYIB6PMzjQx52bN7l96yYDA31EIpGq2zsLPh/C6BcMy7IoFApkMlkODg/Z2t5hZXWN5ZVV1jc22d7e4eDwkEwmi2VZuNyuX+yIq9X25cKZk7+3LAsk8PlkrrS2MNDfx0B/H/19vbS3XaG5qYmmxkZisegXtUrgRETQLzi6rrO+scn7xQ98+LDM8uoqG5tbHB4dUSwU0Q0draih6TqmaWAYJoZhVLX3/WR1ncftxu1x4/V48fm8+GSZSCRCb083t29ctyfbBvuJRaNVH7UkOD9E0C84lmW3Vk6nM6QzGY6TKY6Ojjg8OuLwMMHB4SE7O7scHh2Ry+ftPeWptH1EMeXb+o8lsOXmEuVfXS4XXp+XYDBIPBojFo0Si0VpamqkrbWVltZmmpuaqK+vp74uTn193aU4+dVpiKB/YZimiaKqpFJp9g8O2N7eZWNjg929fTLZLJlMhkTimGwuVzG7YZhY1scNK263C8nlqpwpJ8sykUiYhro66urqqK+vo621lc7ODtrbrtDY2CDWw79wRNC/QOwdaDqKqpLPK+RyOfJ5BU3X0DSNYqH48c/yefL5PMViEbBPbg0Fg8h+Ga/Xi+zzIcty6cuH7LN/DQaDhEMhAgE/Pp9P3KJ/4YigX1IMwyCfV8jmcuSyOQrFAgA+n71HPRAI4PN58Xq9eDyeU52VJrj4iKBfUsrVa4ZhoOsahmmCBS63C6/Hg9vtFpNpDkIEXSBwAGLxUyBwACLoAoEDEEEXCByACLpA4ABE0AUCByB2r10SLMtC13W7YKZYRNP0Sm/2f7SfvXyiqdvtxuvx4PF48Hg9ld+LZbfLhQj6JcEwDLsW/jhJInFMJpOlqBUploL/69ZUbpcbn89LIBAgHAoRCocIh0LEYlFisRhe0R3mUiHezS8M0zTJZLOk0xmy2RyKkqdQLJLPKxwfH5M4TpJKpsjmchQ1uyS2fMDDSVwuF16vF7/fTygYIBgMEgwGqYvHaWysJxKO4A/4CZVKYYPBIH7/5zuTXXC2iKB/IZRPZclms6yurfNhaYW19Q12dnY4TCRIp9Pk8goFtVBqP2VgWhaWWdpbzq9u3ZEqt+8utwu3y4XL7SYYDJTC3siVlhba29vo6uygu6uTtiutIuhfKKIy7gJjWRZaUSOVTnOUSJBIHLO3v8/q+gZra+uVJhTHyRS5fA6tqGGalr0l9VcnqPJ3Bz9Zv/g+5W2rXm9py2osRlNjAy0tzVy50kpnRzudHR20tDRTX1dHLBYlGAiI4H8hiKBfUMqdZhKJYxY/LPFmbp6F94usbWyQTKZQ8op9ZrquoetGZdLttJQt7/GUJua8HmSfTDgcoqmpievXhrh39zYDfX20XWklFAza58eJybsLjbh1v2BYlkU6neHg8JDtnR3W1jdYWlphaXmF1fV19g8OKBSKYFmVtlEnv84CeyOMjlI6O92yLDweD3v7+2QyGVKpNGtrG3R0tNPR3kZrSzPxWJxgMCACf0ERRr8glMfguVyOpeVVXr95y+ybNyy8XySROEbJK6gFe/z9Od+y8vcqt5vyer0EAwHCkTAtzU3cvHGdkXt3uX7tKp0d7aKX+wVFvCsXANM0ySsKm5tbvF/8YH99WGJpeYXt7R1UVQU4c3N/Cie/l67rFItFstksieNjEoljcvl8pavN9WtXaW9voy4eE80qLhjC6OeMaZrk8nl2dnb56eFjvvvhb6yvb5LJZlFVpTL+vmicLLiJRML09/Vy59YtRofvcuP6Nerr6/H7ZRH2C4Iw+jmiKApHiWNWVtd4OzfH85czvFt4z/FxslLgclGbQ5Qr8dRCAVVVMQ2TQqFIOpPm4PCIe3dv09/XiyzL5/1UBYignxuGYXB4lGBu/h1Pnj3nybMXbO/soOTt7q1fQpdVSZIqFXTpTIbFDx/Y2dlldW0d3dCJhMM0NTUiy8Ls540I+jmQyWTY3tnlzdw8z1+85M3bedbW18nn8r84iOFLolyBZzep1AmHHqEVNUZH7tHf32cvw4k193NDBP0zYxgGu3v7PHv+ksdPnzE9M8vhUcI+deULDsLJ557JZHj67AW7u3sUNQ1ZlulobyMcDn9xF7DLggj6ZySTybK1vc30zCsePn7C3Pw7Dg4PKRSKZ7Jj7ORRSuUDETnxq41U/sf+N0myq+hKlXSnndW3LAtN0yioBdasDR4+eoJhGNyfHOfq0CBBYfZzQQT9M2GbfI/nL6Z59PQZ0zOvODw6AjizwxFcLtcvTlsth/dkOeyJwtfSP3Y9vPmri0StlC8Sbo8btVBg9tVrkqkUHrebYDBIe8nsor3050UE/TOQyWTZ3N5mZma2ZPIFEsfHaJqGu8by0XIgyyexeDz2MlcsGiMWixKJhAmFQgQDAWRZrhSymKaJoevohlHp/Z5KpUil06TTGTLZLIqiYBimfaJLaRmtFgzDIJPNsrGxyc+PnqDpOg+mJoTZzwER9N8YXTfY29/nxctpHj+xTX5weAhwqioyew3bhctlXyiCwSBXWpppa7vClSuttDQ309BQTzwWIxoJ45NlpNLzKRaLFItFCsUiyWSK7Z0dtnd22d3dY29/n6NEAlVRMS0L0zDsnvA14na7UVSVmdlXpFIpfD77FJj2tpLZXcLsnwMR9N+QTDbL5uYWM7OvePjIHpMnjo/Rdb0mk58ce/v9Mq0tLXS0t9HR1kZrawsNDfXUxePESuEun8ji9//a6HYtu14yen9/L+lUmlQ6zeFRgr39fbZ3dtne2mZ7d4+joyM0TbdPdKkhmOWLy8bmFj/9/JBCocBX96dKZhc74D4HIui/Ebqus7e3z4vpGdvks684ODidycu7ymS/TGNjAzeuXeXu7VvcuX2Lnu4ugsEgHrcbyeUq7Tf/55Nrf38WOpiWXWu/v3/A0vIKr968ZW7uHR9cEqlU2t7jblY/hpck2+z5fJ7p2dek0hn8fj/BYID2tisls4uw/5aIoP8GZLJZNkom//nRE+bn33F8nKzZ5IZh2LfngQDNzU1cu3aVm9ev0dfXQ1dHB+1tbcTjsTN57l6PB79c2pba2MhAfx/LK6u8nZvn3cJ7ksnULza6VINuGBRzOTY2t/jbjz+jKArffHWfoaFBsbf9N0YE/QyxLPuss/39faanZ3n89Bmzs6/Z299HKh1RXAvlZhCtLc1cHRzkm28eMDYyTGNjA35ZPtMqOndpdjwQCNDa2srVoUG2d3dpbGhA03RWVlftfnSl01mrobwDLpfLMTP7ikwmU2pR5ae9vY2IMPtvhvtPf/rTn877SVwWcrkcyyurvJie4aefH/Nmbp7DwyM0TatpfVrXdVwuF60tzdy6cZ0H9yf55qv73Lp5gyutLQT8/ppn7f8V5efqdrnw+XwEAgFCoSCRSBgJiXQ6Q6FQqHSXrfb7m6aJVrSbVuZyOVRVJRqJEI1FcYuTXX8ThNHPgPIGj739A6ZnXtkmf/2avb3TmzwWjTI0OMD9qQkmxse4OjiALMs1BawWXC4X4VCIwYF+4rEYsiyjFgq8f/+Bw6MjCoVC1Y8pSRKSWyJbMnsulyMcDuP3y7S3tRGJCLOfNcLoZ0Aul2dltWzyR7x5O8fR0RHFYu0mlyTJNvnNG3z1YIrJ8TG6OjsIBoPnsifdW5oEjITDxONxDMMgkUigqOrpzK7rFIsa2WwGVVHtdtPRKG53bTP8gn+MMPopsCwLTdfZ299nevYVj58849XrN+zu7QPVz65b2KWpPp+PaDTC0NAgU5MTjI+OMDQ4iM93NhV0tSL7fPT2dBOPxzFNk3Q6jeRycXh4CrNLEplMlunZ1+TzCpFoBJ/PR0d7G5FIRJj9jBBGPwX5fJ7l5Y8mf/12jqOjRM1jcqNk8paWZm7fuslX9yeZnBinq6ODQMB/7htCyq9JLhW9xGMxdN2wC2xOY3bLtLvXaEXS6QyqqhKPx4hGI7jdbhH2M0AYvQZMy0LXNHb39pl5VTL5m7fs7OxWZparoRyOssmvDg4yNTHO2MgIQwP9+Hy+837Jv8DldtPV1UkkEkHTddLpDAuu9xyc0uzpdIaZ2deoqkosGsXj8dDZ0S7MfgYIo9dAPq+wvLLCi5clk795y9FRojK2rn6d3C4xbWlu5k7J5FOT43R1dRDwn7/Jf015l5vP5yMUClJXF0PTNI6OEqhqodIdp5bKv3IVXTKVQlVV6uJ1wuxngDB6FZimiaZp7O7tMfPqNU+ePuf1mzm2d3ZOZXJZ9hGNRLg6NMDkxDhjo8MMXkCT/xq32013ZyeRcJhCoUgmk+Xd+0UOyi2pq8S+SEIqnWb21WuKWpF4PIbb7aazs52oMHvNCKNXgaIo9jp5yeSvTmnyctPHluaPY/KpqQm6OzvwX0CT/5qK2b1eIuEwdXV1FAtFjhIJCqc0u2EYFApFjo+TFAoF6uvqiEaE2WtFGP0TME2Toqaxs7vH7Ks3PH76jNdv59je3gGq7+9WLiH9OLs+wNTEGKMjwwx8gQ0V3aUxeygUQlEUsrkcCwuL7O/vU6ixgg4gmUrx6vUbdMOgLh5Hcrno6uwQZq8BYfRPQFFVlpftMfmPPz/k1es3HB0lKjXotZq8ubmJO7dv8dXUJPenJuju7ryQY/J/R7nBhdfrIRqNUF9XR6GgcnR0TKF4BmZXCxwlEhSLRRrq64lEwsLsVSKM/i8wTZNiscjOzm7F5G/ezrNVMnm1H7STJo9Fo1wdGmRqfIyRkXv09fbg9/vP+yWfCo/HQ3dnJ6FgkFwuRy6v8G7hPXt7+zXXxoNt9tdv5sCCungcgK6uTqKRyGcvHvpSEUb/F6hqgeWVFZ6/nOannx8xewYmtyyL5qYm7ty+WTF5T3cXfr//izdU+efh8XqJx2LU19ehKAqJRIJCsXgqs5umiaKolb0DjQ0NRMLC7J+KMPo/wDTtwwi2d3aYffWGJ0+f83Zunu3tHSzAXaPJZdlHtGTyyYkxRobv0tvTTSAQOO+XfKZ4PR66Ou0in0wmg6KovFtYYPe0Zk+meDM3j8vloq5Undfd3SXM/gkIo/8DCoUCyyurH03+6jWHJZO7TmHypqZG7t6+xVf3J7k/NUlPT/elMPmvKf98vB4PdXV11NfHyeXylXF2zWanbHaFg4NDdF2nqbGRcDgkzP5vEEY/gWmaqIWCPSZ//ZrHT57xdu4d2zu7WJZV8+y6LMvEolGuDQ0xOTHG8PBdero6CQaD5/2Sf1O8Ph+dHe3IskwqlaZQKDL/boHdvT2KxWLV5bLlv3ucTJLP5/F4PMTjMXRdp7enm4gw+z9FBP0EmqaxurrG9Mwrfnr4iFev35I4Pq75w1Nu01QXj3P71k0mJ8Z4MDVBZ0fHF7eEVgvln1g8FuWr+5PEYzF8Pi+FZwUSx8c1hb2Mpml8WFpG0zRSyTSe/+Klt6cLfyCAWwT97xBBp2RyVWVn1654e/z0GXPz79jZ28MyzZpMblmWPbsei3Ltqm3ykXt36ersJBS63Cb/NfZutHa8Xh/JVApd13m38J7d3T3UUgML+PRbeUmSsPho9vLPWdM0+np77AYZwuy/QAQde//36tr6CZO/IXGctCu/ahj3lYMej8e4c+tWxeRdnR34/Zff5P+MeDzGV/enqK+rIxQM8vzlNLt7++Tz+ZpDqek6ix+WKBQKpNJpfD4vPd1dBAIBEfQTODropmmiqCo7O7snTG7PDhumiecUJo/HYly/erVi8s6ODkKh0Hm/5HNFLu0z9/l8KKqKx+Phzdw8G5ubZLM5NF2vlNV+CpIkYVkWieNj8oqC3+8nGolQLBbp6+0VZj+Bo4NuGAbr6xu8mJ7h54dPmH31muPjY6D6JTQ4YfJYjDu3T5i8qxO//GUXw5wldfEYXz+Yoq21hXg8xrPnL/mwvMzxcdLuDV0lkiShaRoL7xdRFIVMNossy3R1dRIUZgccGnTTslDyeXZ295iefcWTp8+Ze/eOvf19DMOovjPMCZPXxWNcO2Hyjo52Qpd8dr1avF4v9XV1uAfdKIpaWRb7sLxsm73Kxh1lsx8nk6iqSjAYJBwOoaoF+vt7iYSF2Z0ZdMNgfWOTF9MzPHz0hJnZV/aYvIatpmUsyyIWi3L7xJi8u6vL0WPyf0c4FGL43h2i0Ujl9McPS8scJ5M1PZ4kSWilib5cLkcum8PvF2YHhwXdsixy+Tw7O7uVHm9z8+/YLxVfVHt0cbk0U5Zl6urilXXykXt36WhvIxi8XBVvZ43b7SYcDtPd3cX42EjlZ7+0vEImm63J7KZp2mYvFAiHQwRDQRRVZbC/z9Enwjgq6IZpsrm5xfOX0zx89ITp2Vf2uJDqt5qeJBaNcvvmTSYnRnlQql13wjr5WREJhxkZvkskGsG07KW2U5td05ibXyCTyaLkFYKBAJ0dHY49680RJbCWZZHL5dnY3OTl9AyPHj/l7dw8u7t2hVb5TPFqHs80TXw+L81NjVy/dpWv7k8yMnyP7q4uwuGQo28Tq8VVOihClmW8Xi8ul4t8XkFVVXRNq7pktjxmzysq2WwWwzQr3XUj4TBer9dx748jjG6aJlvb2zx7/pKHj58wPfOKRHl2/RQmj0aj3Lp5g8mJMXsXWk838gVv/3SRiUWjjA7fIxKOYJb66C0uLZOs0ewul0RR03g7N086naZQKBAMBujsaCcUctbF+FIb3TZ5jvUN2+QPHz9hbn6Bvf39U5nc6/XS3NT0C5N3dXUSdtiH56yRJAmv14tP9iH7fLhd9gmsqqqincLsiqKQy+cxTQPLspBlH+GIs8x+qY1um3zn70xeywYV+NiWOBaNcuvmdSYnxpiamqCvpxufT4zJz4p4LMboyD3C4RC6oQOwuLREMpmqKZgulwtN03j9dp5kKo2maQSDQUeZ/dIaPZPN/tLk7xYqnU5qMblRMnlLcxPXr1/lq6lJRofv0dXZKcbkZ0zF7KVxu322uoJaUCkWNXTdqJz9/qmPVzZ7XsljGCaGaeKXZSIOMfulNLphGOzs7PL02QsePXnKy+kZjhK1j8klScIlSUSjEW7cuM7U+BhTk+P09/Ve+JbMXzLxeJzR0WFCoRC6pgMWix+WSaXTNQXT7XZTLGq8fvOWZDKFaRgEg0E6Otov/bDr0hk9k8mytr7By+lZHj5+wtv5d+zvH9RucsPA6/XQ0tzMjbLJR4fp6uxwzG3feVE+3NHn81aOiM7nFRS1bHYdSXJVVTVrWRaKqqIoCrpuoBsGAb9MJBLB662ujuJL4lIZ3TAMdnZ3efb85S9MbllWTUcXS5KEy+UmGoly4/pVpibGhcnPgfq6OkZHhgkGAxQ1jV+avfrHc7vdFIpFXr1+U5nRDwaDdLS3X9ph2KUxejqdsds/vXjJTw/to4t39/ZRVRUozZh/6pdpVirlWltKJn8wxdjIMJ2dHZf+Nu+iUT5j3uf1EQgGcLs95PN5FEWlUCyiaVrV769hGCh5hbyiUCwUKRQKyLJcmY2/bEU1l8LolgVHiSNev3nLi+lp5uYXODxK4PP58HprO2rYMAzi8Rg3rl9lcmKcyYlxBvr7xDr5OdLQUM/YyDABf4Bi6cinD0vLZLLZUwXz3cJ7FFUlFAxSX1+H1+O9dM1Bvvigl5sFJpNpUqkUkuSira2VhoZ6PB43ElJ5v8QnYuGSXLjdbpqbmhgducfdu7dpv3JFhPwCIMsyXZ0dfPVginDEPgbqKJEALKzq3mjKO2lMwyQajZLJZNna2iYSCYugXzR0XUdRVHRdJxgM0tvTTU93F5ZV09bmyhp7IBCguamJG9ev0tXZIcbkF4iGhnpGI8PU19dRX1/H4eERhmFgmmbNvf08Hg9+WSaTyaKq1R/9fNH54oPucrnw+2VaW5rxeOzlE3fJ5LVgYdm1114f4VCIhoZ6EfILRvkE2iutrZW6+HLVGzW871b5ns+ySl1qwuf9Es8cybKqv+G5aJRLU03TpLa3+sRjnfjvJcmF213dkpzg81F5z8/wI2yvtLgu3WTcpQi6QCD411yuy5ZAIPiHiKALBA5ABF0gcAAi6AKBAxBBFwgcgAi6QOAARNAFAgcggi4QOAARdIHAAYigCwQOQARdIHAAIugCgQMQQRcIHIAIukDgAETQBQIHIIIuEDgAEXSBwAGIoAsEDkAEXSBwACLoAoEDEEEXCByACLpA4ABE0AUCByCCLhA4ABF0gcABiKALBA5ABF0gcAAi6AKBAxBBFwgcgAi6QOAARNAFAgcggi4QOAARdIHAAYigCwQOQARdIHAAIugCgQMQQRcIHIAIukDgAETQBQIHIIIuEDgAEXSBwAGIoAsEDkAEXSBwACLoAoEDEEEXCByACLpA4ABE0AUCByCCLhA4ABF0gcABiKALBA5ABF0gcAAuwCx9CQSCS4oLKAAaIuwCwaXFA6QAGQgjbuUFgsuEARQB3QPsAxHssHvP+5kJBIIzQwW2gLQHeA60AyEgeN7PTCAQnBlp4C2w7gH+H+Aedtibz/uZCQSCM+MQeAS89ABPsBXfB1hAIxAF/ID7vJ+pQCD4JEzsMbkGZLGH5I+BZ8CsZFmWGzvc14Ex4AFwE+gEAuf97AUCwb/FxA54HkgC74HvsYM+Dxx6sK8CR8As9qx7R+nrynk/e4FA8MmY2EvlGewJuBnsTGcA4/8AGDvq9w36UD0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMTEtMTlUMDk6Mzg6NTErMDA6MDAH8zG8AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTExLTE5VDA5OjM4OjUxKzAwOjAwdq6JAAAAAABJRU5ErkJggg=="}},"time_used":25,"timings":{"blocked":9,"dns":0,"connect":0,"send":0,"wait":11,"receive":5,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"wss","addr":"wss://websocket-visitors.smartsupp.com/socket/?EIO=3\u0026transport=websocket","fqdn":"websocket-visitors.smartsupp.com","domain":"smartsupp.com","tld":"com"},"ip":{"addr":"3.122.197.123","port":443,"asn":16509,"as":"AMAZON-02","country":"Germany","country_code":"DE"},"is_navigation_request":false,"resource_type":"websocket","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:17:03.178Z","timestamp":1785129423178,"http_version":"HTTP/1.1","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"*.smartsupp.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M04","organization":"Amazon"},"validity":{"start":"Wed, 24 Jun 2026 00:00:00 GMT","end":"Thu, 07 Jan 2027 23:59:59 GMT"},"fingerprint":{"sha1":"4F:1A:3B:79:00:E3:DC:1F:92:62:7C:DC:85:3A:BE:8C:D1:68:F2:57","sha256":"7F:93:E6:29:5D:CA:78:BD:30:0D:25:11:3B:E2:01:C9:DC:80:3C:80:90:3F:84:D2:72:1B:0D:42:F1:20:13:D9"}}},"request":{"raw":"GET /socket/?EIO=3\u0026transport=websocket HTTP/1.1\r\nHost: websocket-visitors.smartsupp.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-WebSocket-Version: 13\r\nOrigin: https://danis-miners.com\r\nSec-WebSocket-Extensions: permessage-deflate\r\nSec-WebSocket-Key: 8sGhOnjV2R23HwiyfRI6vA==\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: Upgrade\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: websocket\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\nUpgrade: websocket\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/1.1 101 Switching Protocols\r\nDate: Mon, 27 Jul 2026 05:17:03 GMT\r\nConnection: upgrade\r\nUpgrade: websocket\r\nSec-WebSocket-Accept: lN33IuueeYS1rHqAgf+UBM41kro=\r\nSec-WebSocket-Version: 13\r\nWebSocket-Server: uWebSockets\r\n\r\n","headers":null,"cookies":null,"status_code":"101","status_text":"Switching Protocols","fingerprints":null,"data":{"size":0,"size_decoded":224,"mime_type":"text/plain","magic":"","md5":"d41d8cd98f00b204e9800998ecf8427e","sha1":"da39a3ee5e6b4b0d3255bfef95601890afd80709","sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha512":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e","ssdeep":"","tlshash":"","first_seen":"0001-01-01T00:00:00Z","last_seen":"2026-07-29T09:56:29.736709Z","times_seen":17595596,"resource_available":true,"data":""}},"time_used":224,"timings":{"blocked":-1,"dns":74,"connect":96,"send":0,"wait":27,"receive":0,"ssl":28},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/cross-out.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.982Z","timestamp":1785129412982,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/cross-out.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/owl.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 413\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":413,"size_decoded":677,"mime_type":"image/png","magic":"PNG image data, 24 x 24, 8-bit gray+alpha, non-interlaced","md5":"c2e505c1484df83cd00a11419074a252","sha1":"a0a4a00ce0c301a63678a7f45e0a65dce3c6f3a8","sha256":"a39fc0ee1c339bb2a951ab9fa9de737caeeb35d99f59ffd18a09712a0e47bcb8","sha512":"cf1c553739796484c8b5325ae174f9c94a4134ce6b6020c13af6086670e47186b8d00f6d07e865afad929a0f044d53e8db2fa04f60a6fc51c2fa20c300a63249","ssdeep":"","tlshash":"5ee0a3c3e12255e8954f375b015a0641ec734ad346178c148665d6b84e1cbcc9055612","first_seen":"2023-05-10T12:34:23Z","last_seen":"2026-07-27T13:36:13.717011Z","times_seen":504,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiBQoGMAmSEo3YAAAAa0lEQVQ4y62Uyw3AIAxDo06XURmvG7iHqq0QBPykcvUzkG+oKcM8SrVQ6vQsL+lZOmpvGYi1ZarWllKZC8u3R3EbXQ9Y+fsgu0I36Bf0sRT4Yd7x45dg0DCtsHCwNWDzwfaGAwRHFC8BumYu6NbFr8qHEO8AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDUtMTBUMDY6NDg6MDkrMDI6MDBGbF7FAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA1LTEwVDA2OjQ4OjA5KzAyOjAwNzHmeQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII="}},"time_used":29,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":29,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/profitcabininvestmentlogo.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.735Z","timestamp":1785129412735,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/profitcabininvestmentlogo.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 40747\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":40747,"size_decoded":41013,"mime_type":"image/png","magic":"PNG image data, 2399 x 665, 8-bit/color RGBA, non-interlaced","md5":"7308d8463e96dd17dcaaa75c4aa907f4","sha1":"7ad3b8c4b20c94050865146ce36cf25c7f49ff25","sha256":"82b1ae84242bacb9c2a69ba98417e1457d233518d47c9cdb466dcddc4af94efe","sha512":"2d2291d7423589c82037b5ac7a06dd23337a2cc772384733be1255f5fc82ae0ecd5eef974dad37e04813a92a46ae24b9bac59f48786eb6a41e2e24be6a7c659d","ssdeep":"768:i352r6/8S+7u8o/w1ZbxWGOCk8VQKGBtTcmFTR2p5xWwRJ03XK9oAk7g9qK4Yy1R:j6c7fo/w1SOgJtTlR2jgk03tAT9Tok9q","tlshash":"b203e07fa8079ddad6182b3390a95b7037b4078ce1e107e651ab4abeed54cbd76340a0","first_seen":"2026-03-11T03:44:22.991617Z","last_seen":"2026-07-27T10:24:20.316487Z","times_seen":7,"resource_available":false,"data":"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"}},"time_used":33,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/flaticon.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.808Z","timestamp":1785129412808,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/flaticon.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2137\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":12791,"size_decoded":2446,"mime_type":"text/css","magic":"ASCII text","md5":"31c5ac1a6395d6c82c2ee983ca335c4c","sha1":"7b6d1edc6065c302806306e3d9179f970047deee","sha256":"f7674eb53366f325ea3e18d2e6c77e3c6939eab602b9f9e19380caa608d62c6a","sha512":"7cea39ecd5b8e0d3b44a1e3d3ca2b72c0b0b0f7c225db0f33bacfffe16e772a640e1b489f3e3794d52384d3b2ea2df58d42540052f51f98645b4dc2669ae3d43","ssdeep":"192:DX8GefmMVImwffNL0+V9XQZQVwFJ+vFLka9QOWXbB:Dc4fS+kZWwaFLZ6bB","tlshash":"ed42e4b2917f01c44711ea8127ab7240af95b02d99e9fc7dd0426e9dfae5e0983d32dc","first_seen":"2024-08-19T19:39:35.235551Z","last_seen":"2026-07-27T11:34:25.554508Z","times_seen":48,"resource_available":false,"data":"CS8qCiAgCUZsYXRpY29uIGljb24gZm9udDogRmxhdGljb24KICAJQ3JlYXRpb24gZGF0ZTogMTAvMDIvMjAyMCAxMTo0MAogIAkqLwoKQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICJGbGF0aWNvbiI7CiAgc3JjOiB1cmwoIi4uL2ZvbnRzL2ZsYXRpY29uLmVvdCIpOwogIHNyYzogdXJsKCIuLi9mb250cy9mbGF0aWNvbmQ0MWRkNDFkLmVvdCNpZWZpeCIpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSwKICAgICAgIHVybCgiLi4vZm9udHMvZmxhdGljb24ud29mZiIpIGZvcm1hdCgid29mZiIpLAogICAgICAgdXJsKCIuLi9mb250cy9mbGF0aWNvbi50dGYiKSBmb3JtYXQoInRydWV0eXBlIiksCiAgICAgICB1cmwoIi4uL2ZvbnRzL2ZsYXRpY29uLnN2ZyNGbGF0aWNvbiIpIGZvcm1hdCgic3ZnIik7CiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICBmb250LXN0eWxlOiBub3JtYWw7Cn0KCkBtZWRpYSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MCkgewogIEBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICJGbGF0aWNvbiI7CiAgICBzcmM6IHVybCgiLi4vZm9udHMvZmxhdGljb24uc3ZnI0ZsYXRpY29uIikgZm9ybWF0KCJzdmciKTsKICB9Cn0KCltjbGFzc149ImZsYXRpY29uLSJdOmJlZm9yZSwgW2NsYXNzKj0iIGZsYXRpY29uLSJdOmJlZm9yZSwKW2NsYXNzXj0iZmxhdGljb24tIl06YWZ0ZXIsIFtjbGFzcyo9IiBmbGF0aWNvbi0iXTphZnRlciB7ICAgCiAJZm9udC1mYW1pbHk6IEZsYXRpY29uOwoJZm9udC1zdHlsZTogbm9ybWFsOwp9CgouZmxhdGljb24tMjQtaG91cnM6YmVmb3JlIHsgY29udGVudDogIlxmMTAwIjsgfQouZmxhdGljb24tMjQtaG91cnMtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMDEiOyB9Ci5mbGF0aWNvbi1leGFtOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEwMiI7IH0KLmZsYXRpY29uLW9wZW4tYm9vazpiZWZvcmUgeyBjb250ZW50OiAiXGYxMDMiOyB9Ci5mbGF0aWNvbi1ob21lOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEwNCI7IH0KLmZsYXRpY29uLWhvdXNlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEwNSI7IH0KLmZsYXRpY29uLXF1b3RlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEwNiI7IH0KLmZsYXRpY29uLXJpZ2h0LXF1b3RlLXNpZ246YmVmb3JlIHsgY29udGVudDogIlxmMTA3IjsgfQouZmxhdGljb24tcGxhY2Vob2xkZXI6YmVmb3JlIHsgY29udGVudDogIlxmMTA4IjsgfQouZmxhdGljb24tcGxhY2Vob2xkZXItMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMDkiOyB9Ci5mbGF0aWNvbi1wbGFjZWhvbGRlci0yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEwYSI7IH0KLmZsYXRpY29uLXBsYWNlaG9sZGVyLWZpbGxlZC1wb2ludDpiZWZvcmUgeyBjb250ZW50OiAiXGYxMGIiOyB9Ci5mbGF0aWNvbi10ZWxlcGhvbmU6YmVmb3JlIHsgY29udGVudDogIlxmMTBjIjsgfQouZmxhdGljb24tcGhvbmUtY2FsbDpiZWZvcmUgeyBjb250ZW50OiAiXGYxMGQiOyB9Ci5mbGF0aWNvbi1jaGF0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEwZSI7IH0KLmZsYXRpY29uLWNvbW1lbnQ6YmVmb3JlIHsgY29udGVudDogIlxmMTBmIjsgfQouZmxhdGljb24tdGltZXRhYmxlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjExMCI7IH0KLmZsYXRpY29uLXVubGluazpiZWZvcmUgeyBjb250ZW50OiAiXGYxMTEiOyB9Ci5mbGF0aWNvbi1wbGF5LWFycm93OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjExMiI7IH0KLmZsYXRpY29uLXBvcnRmb2xpbzpiZWZvcmUgeyBjb250ZW50OiAiXGYxMTMiOyB9Ci5mbGF0aWNvbi1tb25leS1iYWc6YmVmb3JlIHsgY29udGVudDogIlxmMTE0IjsgfQouZmxhdGljb24tcG9ydGZvbGlvLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTE1IjsgfQouZmxhdGljb24tYXdhcmQ6YmVmb3JlIHsgY29udGVudDogIlxmMTE2IjsgfQouZmxhdGljb24td2lubmVyOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjExNyI7IH0KLmZsYXRpY29uLXRyb3BoeTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMTgiOyB9Ci5mbGF0aWNvbi1tYXA6YmVmb3JlIHsgY29udGVudDogIlxmMTE5IjsgfQouZmxhdGljb24tbWFnbmlmeWluZy1nbGFzczpiZWZvcmUgeyBjb250ZW50OiAiXGYxMWEiOyB9Ci5mbGF0aWNvbi1tYWduaWZ5aW5nLWdsYXNzLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTFiIjsgfQouZmxhdGljb24tbWVudTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMWMiOyB9Ci5mbGF0aWNvbi1zaG9wcGluZy1jYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjExZCI7IH0KLmZsYXRpY29uLXNob3BwaW5nLWNhcnQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMWUiOyB9Ci5mbGF0aWNvbi1iYWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjExZiI7IH0KLmZsYXRpY29uLXBsYXktYnV0dG9uOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEyMCI7IH0KLmZsYXRpY29uLWJhY2stYXJyb3c6YmVmb3JlIHsgY29udGVudDogIlxmMTIxIjsgfQouZmxhdGljb24tZ3Jvd3RoOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEyMiI7IH0KLmZsYXRpY29uLXRhcmdldDpiZWZvcmUgeyBjb250ZW50OiAiXGYxMjMiOyB9Ci5mbGF0aWNvbi1zZXR0aW5nczpiZWZvcmUgeyBjb250ZW50OiAiXGYxMjQiOyB9Ci5mbGF0aWNvbi1hdmF0YXI6YmVmb3JlIHsgY29udGVudDogIlxmMTI1IjsgfQouZmxhdGljb24tc2hhcmU6YmVmb3JlIHsgY29udGVudDogIlxmMTI2IjsgfQouZmxhdGljb24taGVhcnQ6YmVmb3JlIHsgY29udGVudDogIlxmMTI3IjsgfQouZmxhdGljb24tbGlrZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMjgiOyB9Ci5mbGF0aWNvbi1zdGFyOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEyOSI7IH0KLmZsYXRpY29uLWhlYWRwaG9uZXM6YmVmb3JlIHsgY29udGVudDogIlxmMTJhIjsgfQouZmxhdGljb24tZ2FyYmFnZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMmIiOyB9Ci5mbGF0aWNvbi1pbnRlcm5ldDpiZWZvcmUgeyBjb250ZW50OiAiXGYxMmMiOyB9Ci5mbGF0aWNvbi1uZXR3b3JrOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEyZCI7IH0KLmZsYXRpY29uLXNob3BwaW5nLWNhcnQtMjpiZWZvcmUgeyBjb250ZW50OiAiXGYxMmUiOyB9Ci5mbGF0aWNvbi1jb25uZWN0aW9uczpiZWZvcmUgeyBjb250ZW50OiAiXGYxMmYiOyB9Ci5mbGF0aWNvbi1lbnZlbG9wZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMzAiOyB9Ci5mbGF0aWNvbi1lbWFpbDpiZWZvcmUgeyBjb250ZW50OiAiXGYxMzEiOyB9Ci5mbGF0aWNvbi1tZXNzYWdlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEzMiI7IH0KLmZsYXRpY29uLW1lc3NhZ2UtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMzMiOyB9Ci5mbGF0aWNvbi1lLW1haWwtZW52ZWxvcGU6YmVmb3JlIHsgY29udGVudDogIlxmMTM0IjsgfQouZmxhdGljb24taW50ZXJuZXQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxMzUiOyB9Ci5mbGF0aWNvbi1mdWxsLXNjcmVlbjpiZWZvcmUgeyBjb250ZW50OiAiXGYxMzYiOyB9Ci5mbGF0aWNvbi1zZW5kOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEzNyI7IH0KLmZsYXRpY29uLXN1Y2Nlc3M6YmVmb3JlIHsgY29udGVudDogIlxmMTM4IjsgfQouZmxhdGljb24tdGljay1pbnNpZGUtY2lyY2xlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEzOSI7IH0KLmZsYXRpY29uLW1vbml0b3I6YmVmb3JlIHsgY29udGVudDogIlxmMTNhIjsgfQouZmxhdGljb24tbG9jazpiZWZvcmUgeyBjb250ZW50OiAiXGYxM2IiOyB9Ci5mbGF0aWNvbi1leWU6YmVmb3JlIHsgY29udGVudDogIlxmMTNjIjsgfQouZmxhdGljb24tcm9ja2V0LXNoaXA6YmVmb3JlIHsgY29udGVudDogIlxmMTNkIjsgfQouZmxhdGljb24taGVhZHBob25lcy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjEzZSI7IH0KLmZsYXRpY29uLXBpbjpiZWZvcmUgeyBjb250ZW50OiAiXGYxM2YiOyB9Ci5mbGF0aWNvbi1zdG9wd2F0Y2g6YmVmb3JlIHsgY29udGVudDogIlxmMTQwIjsgfQouZmxhdGljb24tZW1haWwtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDEiOyB9Ci5mbGF0aWNvbi1jcm93bjpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDIiOyB9Ci5mbGF0aWNvbi1yaWdodC1xdW90ZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDMiOyB9Ci5mbGF0aWNvbi1tdWx0aXBseTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDQiOyB9Ci5mbGF0aWNvbi1tZWRpYS1wbGF5LXN5bWJvbDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDUiOyB9Ci5mbGF0aWNvbi1hcnJvdy1wb2ludGluZy10by1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDYiOyB9Ci5mbGF0aWNvbi1iYWNrLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTQ3IjsgfQouZmxhdGljb24tYXdhcmQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNDgiOyB9Ci5mbGF0aWNvbi1wZGY6YmVmb3JlIHsgY29udGVudDogIlxmMTQ5IjsgfQouZmxhdGljb24tdXNlcjpiZWZvcmUgeyBjb250ZW50OiAiXGYxNGEiOyB9Ci5mbGF0aWNvbi1sb3VwZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNGIiOyB9Ci5mbGF0aWNvbi1oYW5kc2hha2U6YmVmb3JlIHsgY29udGVudDogIlxmMTRjIjsgfQouZmxhdGljb24tbGluazpiZWZvcmUgeyBjb250ZW50OiAiXGYxNGQiOyB9Ci5mbGF0aWNvbi11c2VyLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTRlIjsgfQouZmxhdGljb24tdHJvcGh5LTE6YmVmb3JlIHsgY29udGVudDogIlxmMTRmIjsgfQouZmxhdGljb24taG91c2UtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNTAiOyB9Ci5mbGF0aWNvbi1iYXItY2hhcnQ6YmVmb3JlIHsgY29udGVudDogIlxmMTUxIjsgfQouZmxhdGljb24tY29pbjpiZWZvcmUgeyBjb250ZW50OiAiXGYxNTIiOyB9Ci5mbGF0aWNvbi1saW5lLWNoYXJ0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE1MyI7IH0KLmZsYXRpY29uLXBsYW5ldC1lYXJ0aDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNTQiOyB9Ci5mbGF0aWNvbi1waWUtY2hhcnQ6YmVmb3JlIHsgY29udGVudDogIlxmMTU1IjsgfQouZmxhdGljb24tbWVnYXBob25lOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE1NiI7IH0KLmZsYXRpY29uLXF1b3RlLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTU3IjsgfQouZmxhdGljb24tY2xvdWQ6YmVmb3JlIHsgY29udGVudDogIlxmMTU4IjsgfQouZmxhdGljb24td2hlZWw6YmVmb3JlIHsgY29udGVudDogIlxmMTU5IjsgfQouZmxhdGljb24tbGlnaHQtYnVsYjpiZWZvcmUgeyBjb250ZW50OiAiXGYxNWEiOyB9Ci5mbGF0aWNvbi1jbG9jazpiZWZvcmUgeyBjb250ZW50OiAiXGYxNWIiOyB9Ci5mbGF0aWNvbi1jbG9jay0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE1YyI7IH0KLmZsYXRpY29uLWFsYXJtLWNsb2NrOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE1ZCI7IH0KLmZsYXRpY29uLWFsYXJtLWNsb2NrLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTVlIjsgfQouZmxhdGljb24tc2hvcHBpbmctYmFnOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE1ZiI7IH0KLmZsYXRpY29uLW1lbnUtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxNjAiOyB9Ci5mbGF0aWNvbi1iaWctYW5jaG9yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2MSI7IH0KLmZsYXRpY29uLXBsYXktYnV0dG9uLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTYyIjsgfQouZmxhdGljb24tZmxhc2g6YmVmb3JlIHsgY29udGVudDogIlxmMTYzIjsgfQouZmxhdGljb24tYWRkOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2NCI7IH0KLmZsYXRpY29uLXBsYWNlaG9sZGVyLTM6YmVmb3JlIHsgY29udGVudDogIlxmMTY1IjsgfQouZmxhdGljb24taW5jcmVhc2Utc2l6ZS1vcHRpb246YmVmb3JlIHsgY29udGVudDogIlxmMTY2IjsgfQouZmxhdGljb24tZG91YmxlLWFuZ2xlLXBvaW50aW5nLXRvLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2NyI7IH0KLmZsYXRpY29uLWxvbmctYXJyb3ctcG9pbnRpbmctdG8tbGVmdDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNjgiOyB9Ci5mbGF0aWNvbi1sb25nLWFycm93LXBvaW50aW5nLXRvLXRoZS1yaWdodDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNjkiOyB9Ci5mbGF0aWNvbi1nYWxsZXJ5OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2YSI7IH0KLmZsYXRpY29uLXJpZ2h0LWFycm93OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2YiI7IH0KLmZsYXRpY29uLXJpZ2h0LWFycm93LWZvcndhcmQ6YmVmb3JlIHsgY29udGVudDogIlxmMTZjIjsgfQouZmxhdGljb24tc3VjY2Vzcy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2ZCI7IH0KLmZsYXRpY29uLXBhcGVyLXBsYW5lOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2ZSI7IH0KLmZsYXRpY29uLWhpZ2gtdm9sdW1lOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE2ZiI7IH0KLmZsYXRpY29uLWxlZnQtYXJyb3c6YmVmb3JlIHsgY29udGVudDogIlxmMTcwIjsgfQouZmxhdGljb24tZ28tYmFjay1sZWZ0LWFycm93OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE3MSI7IH0KLmZsYXRpY29uLWZpbGU6YmVmb3JlIHsgY29udGVudDogIlxmMTcyIjsgfQouZmxhdGljb24tZmlsZS0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE3MyI7IH0KLmZsYXRpY29uLXNoYXJlLXN5bWJvbDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNzQiOyB9Ci5mbGF0aWNvbi1mYXZvdXJpdGVzLWZpbGxlZC1zdGFyLXN5bWJvbDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNzUiOyB9Ci5mbGF0aWNvbi1zdGFyLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTc2IjsgfQouZmxhdGljb24tZ2lmdDpiZWZvcmUgeyBjb250ZW50OiAiXGYxNzciOyB9Ci5mbGF0aWNvbi10aWNrOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE3OCI7IH0KLmZsYXRpY29uLWVtYWlsLTI6YmVmb3JlIHsgY29udGVudDogIlxmMTc5IjsgfQouZmxhdGljb24tdGVsZXBob25lLWF1cmljdWxhci13aXRoLWNhYmxlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE3YSI7IH0KLmZsYXRpY29uLXBsYWNlaG9sZGVyLTQ6YmVmb3JlIHsgY29udGVudDogIlxmMTdiIjsgfQouZmxhdGljb24tY2FsZW5kYXI6YmVmb3JlIHsgY29udGVudDogIlxmMTdjIjsgfQouZmxhdGljb24tc2hvcHBpbmctYmFnLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTdkIjsgfQouZmxhdGljb24tdXAtYXJyb3c6YmVmb3JlIHsgY29udGVudDogIlxmMTdlIjsgfQouZmxhdGljb24tYW5nbGUtYXJyb3ctZG93bjpiZWZvcmUgeyBjb250ZW50OiAiXGYxN2YiOyB9Ci5mbGF0aWNvbi1yaWdodC1hcnJvdy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE4MCI7IH0KLmZsYXRpY29uLWxlZnQtYXJyb3ctMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxODEiOyB9Ci5mbGF0aWNvbi1jaGVjay1zeW1ib2w6YmVmb3JlIHsgY29udGVudDogIlxmMTgyIjsgfQouZmxhdGljb24tcGRmLTE6YmVmb3JlIHsgY29udGVudDogIlxmMTgzIjsgfQouZmxhdGljb24tcG93ZXJwb2ludC1maWxlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE4NCI7IH0KLmZsYXRpY29uLXBsYWNlaG9sZGVyLTU6YmVmb3JlIHsgY29udGVudDogIlxmMTg1IjsgfQouZmxhdGljb24tMjQtaG91cnMtcGhvbmUtc2VydmljZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxODYiOyB9Ci5mbGF0aWNvbi1ob21lLXBhZ2U6YmVmb3JlIHsgY29udGVudDogIlxmMTg3IjsgfQouZmxhdGljb24tc2FmZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxODgiOyB9Ci5mbGF0aWNvbi16b29tLWluY3JlYXNpbmctc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE4OSI7IH0KLmZsYXRpY29uLXpvb20taW46YmVmb3JlIHsgY29udGVudDogIlxmMThhIjsgfQouZmxhdGljb24tZm9sZGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE4YiI7IH0KLmZsYXRpY29uLWNvbW1lbnQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxOGMiOyB9Ci5mbGF0aWNvbi1wYXBlci1wbGFuZS0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE4ZCI7IH0KLmZsYXRpY29uLXNlbmQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxOGUiOyB9Ci5mbGF0aWNvbi1zbWFydHBob25lOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE4ZiI7IH0KLmZsYXRpY29uLTI0LWhvdXJzLTI6YmVmb3JlIHsgY29udGVudDogIlxmMTkwIjsgfQouZmxhdGljb24tZWRpdDpiZWZvcmUgeyBjb250ZW50OiAiXGYxOTEiOyB9Ci5mbGF0aWNvbi1jbG9jay0yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5MiI7IH0KLmZsYXRpY29uLXRodW1iLXVwOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5MyI7IH0KLmZsYXRpY29uLWhhbmQ6YmVmb3JlIHsgY29udGVudDogIlxmMTk0IjsgfQouZmxhdGljb24taG9tZS0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5NSI7IH0KLmZsYXRpY29uLWFkZC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5NiI7IH0KLmZsYXRpY29uLXBsdXMtc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5NyI7IH0KLmZsYXRpY29uLXN1YnN0cmFjdDpiZWZvcmUgeyBjb250ZW50OiAiXGYxOTgiOyB9Ci5mbGF0aWNvbi1zdWJzdHJhY3QtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxOTkiOyB9Ci5mbGF0aWNvbi1wZGYtZmlsZS1mb3JtYXQtc3ltYm9sOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5YSI7IH0KLmZsYXRpY29uLWVkaXQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxOWIiOyB9Ci5mbGF0aWNvbi1zaGllbGQ6YmVmb3JlIHsgY29udGVudDogIlxmMTljIjsgfQouZmxhdGljb24tcGFzczpiZWZvcmUgeyBjb250ZW50OiAiXGYxOWQiOyB9Ci5mbGF0aWNvbi11c2VyLTI6YmVmb3JlIHsgY29udGVudDogIlxmMTllIjsgfQouZmxhdGljb24tdXNlci0zOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjE5ZiI7IH0KLmZsYXRpY29uLWNhbGVuZGFyLTE6YmVmb3JlIHsgY29udGVudDogIlxmMWEwIjsgfQouZmxhdGljb24tc3VwcG9ydDpiZWZvcmUgeyBjb250ZW50OiAiXGYxYTEiOyB9Ci5mbGF0aWNvbi1jdXN0b21lci1zZXJ2aWNlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFhMiI7IH0KLmZsYXRpY29uLXN1cHBvcnQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxYTMiOyB9Ci5mbGF0aWNvbi1iYXJzOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFhNCI7IH0KLmZsYXRpY29uLWRpYWdyYW06YmVmb3JlIHsgY29udGVudDogIlxmMWE1IjsgfQouZmxhdGljb24tY29tYmluZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxYTYiOyB9Ci5mbGF0aWNvbi11c2VyLTQ6YmVmb3JlIHsgY29udGVudDogIlxmMWE3IjsgfQouZmxhdGljb24tcmF0aW5nOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFhOCI7IH0KLmZsYXRpY29uLWhhbmQtc2hha2U6YmVmb3JlIHsgY29udGVudDogIlxmMWE5IjsgfQouZmxhdGljb24tc3VwcG9ydC0yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFhYSI7IH0KLmZsYXRpY29uLXJpZ2h0LWFycm93cy1jb3VwbGU6YmVmb3JlIHsgY29udGVudDogIlxmMWFiIjsgfQouZmxhdGljb24tZG91YmxlLWNoZXZyb246YmVmb3JlIHsgY29udGVudDogIlxmMWFjIjsgfQouZmxhdGljb24tc3RhcnR1cDpiZWZvcmUgeyBjb250ZW50OiAiXGYxYWQiOyB9Ci5mbGF0aWNvbi13YWxsZXQ6YmVmb3JlIHsgY29udGVudDogIlxmMWFlIjsgfQouZmxhdGljb24tdmVyaWZpZWQ6YmVmb3JlIHsgY29udGVudDogIlxmMWFmIjsgfQouZmxhdGljb24tc2VjdXJpdHk6YmVmb3JlIHsgY29udGVudDogIlxmMWIwIjsgfQouZmxhdGljb24tc2hpZWxkLTE6YmVmb3JlIHsgY29udGVudDogIlxmMWIxIjsgfQouZmxhdGljb24tY2hlY2tlZDpiZWZvcmUgeyBjb250ZW50OiAiXGYxYjIiOyB9Ci5mbGF0aWNvbi1sZWZ0LXF1b3RlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiMyI7IH0KLmZsYXRpY29uLXF1b3RlLTI6YmVmb3JlIHsgY29udGVudDogIlxmMWI0IjsgfQouZmxhdGljb24tdHJhdmVsOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiNSI7IH0KLmZsYXRpY29uLW1hcHMtYW5kLWxvY2F0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiNiI7IH0KLmZsYXRpY29uLXBsYWNlOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiNyI7IH0KLmZsYXRpY29uLWVtYWlsLTM6YmVmb3JlIHsgY29udGVudDogIlxmMWI4IjsgfQouZmxhdGljb24tMjQtaG91cnMtMzpiZWZvcmUgeyBjb250ZW50OiAiXGYxYjkiOyB9Ci5mbGF0aWNvbi1jbG9jay0zOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiYSI7IH0KLmZsYXRpY29uLW1lbnUtMjpiZWZvcmUgeyBjb250ZW50OiAiXGYxYmIiOyB9Ci5mbGF0aWNvbi1tZW51LTM6YmVmb3JlIHsgY29udGVudDogIlxmMWJjIjsgfQouZmxhdGljb24tc2VhcmNoOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiZCI7IH0KLmZsYXRpY29uLXBpZS1jaGFydC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFiZSI7IH0KLmZsYXRpY29uLWFuYWx5dGljczpiZWZvcmUgeyBjb250ZW50OiAiXGYxYmYiOyB9Ci5mbGF0aWNvbi1waWUtY2hhcnQtMjpiZWZvcmUgeyBjb250ZW50OiAiXGYxYzAiOyB9Ci5mbGF0aWNvbi1waWUtY2hhcnQtMzpiZWZvcmUgeyBjb250ZW50OiAiXGYxYzEiOyB9Ci5mbGF0aWNvbi1lZmZlY3RpdmU6YmVmb3JlIHsgY29udGVudDogIlxmMWMyIjsgfQouZmxhdGljb24tc2VhcmNoLWVuZ2luZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxYzMiOyB9Ci5mbGF0aWNvbi1wbHVzOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFjNCI7IH0KLmZsYXRpY29uLXBsdXMtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxYzUiOyB9Ci5mbGF0aWNvbi1xdW90ZS0zOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFjNiI7IH0KLmZsYXRpY29uLW1hcHMtYW5kLWZsYWdzOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFjNyI7IH0KLmZsYXRpY29uLWNhbGw6YmVmb3JlIHsgY29udGVudDogIlxmMWM4IjsgfQouZmxhdGljb24tdGVsZXBob25lLTE6YmVmb3JlIHsgY29udGVudDogIlxmMWM5IjsgfQouZmxhdGljb24tZW1haWwtNDpiZWZvcmUgeyBjb250ZW50OiAiXGYxY2EiOyB9Ci5mbGF0aWNvbi11c2VyLTU6YmVmb3JlIHsgY29udGVudDogIlxmMWNiIjsgfQouZmxhdGljb24tdXNlci02OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFjYyI7IH0KLmZsYXRpY29uLWFkZHJlc3M6YmVmb3JlIHsgY29udGVudDogIlxmMWNkIjsgfQouZmxhdGljb24taG9tZS0yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFjZSI7IH0KLmZsYXRpY29uLWhvbWUtMzpiZWZvcmUgeyBjb250ZW50OiAiXGYxY2YiOyB9Ci5mbGF0aWNvbi1hcm91bmQ6YmVmb3JlIHsgY29udGVudDogIlxmMWQwIjsgfQouZmxhdGljb24td29ybGQ6YmVmb3JlIHsgY29udGVudDogIlxmMWQxIjsgfQouZmxhdGljb24tY2xvY2stNDpiZWZvcmUgeyBjb250ZW50OiAiXGYxZDIiOyB9Ci5mbGF0aWNvbi1zY2hlZHVsZTpiZWZvcmUgeyBjb250ZW50OiAiXGYxZDMiOyB9Ci5mbGF0aWNvbi1jb3VudGRvd246YmVmb3JlIHsgY29udGVudDogIlxmMWQ0IjsgfQouZmxhdGljb24tc2hvcHBpbmctY2FydC0zOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFkNSI7IH0KLmZsYXRpY29uLXNob3BwaW5nLWJhZy0yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFkNiI7IH0KLmZsYXRpY29uLWJlbmNobWFyazpiZWZvcmUgeyBjb250ZW50OiAiXGYxZDciOyB9Ci5mbGF0aWNvbi1hbmFseXRpY3MtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxZDgiOyB9Ci5mbGF0aWNvbi1iYXItY2hhcnQtMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxZDkiOyB9Ci5mbGF0aWNvbi10ZWFtOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFkYSI7IH0KLmZsYXRpY29uLXN1cHBvcnQtMzpiZWZvcmUgeyBjb250ZW50OiAiXGYxZGIiOyB9Ci5mbGF0aWNvbi1pbm5vdmF0aW9uOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFkYyI7IH0KLmZsYXRpY29uLW1hY2hpbmUtbGVhcm5pbmc6YmVmb3JlIHsgY29udGVudDogIlxmMWRkIjsgfQouZmxhdGljb24taWRlYTpiZWZvcmUgeyBjb250ZW50OiAiXGYxZGUiOyB9Ci5mbGF0aWNvbi1tYWNoaW5lLWxlYXJuaW5nLTE6YmVmb3JlIHsgY29udGVudDogIlxmMWRmIjsgfQouZmxhdGljb24tdGF4YXRpb246YmVmb3JlIHsgY29udGVudDogIlxmMWUwIjsgfQouZmxhdGljb24tYnVkZ2V0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlMSI7IH0KLmZsYXRpY29uLWluZGV4OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlMiI7IH0KLmZsYXRpY29uLXJldmVudWU6YmVmb3JlIHsgY29udGVudDogIlxmMWUzIjsgfQouZmxhdGljb24taGFuZC0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlNCI7IH0KLmZsYXRpY29uLWNyZWF0aXZpdHk6YmVmb3JlIHsgY29udGVudDogIlxmMWU1IjsgfQouZmxhdGljb24tY29uc3VsdGluZzpiZWZvcmUgeyBjb250ZW50OiAiXGYxZTYiOyB9Ci5mbGF0aWNvbi1wbGFubmluZzpiZWZvcmUgeyBjb250ZW50OiAiXGYxZTciOyB9Ci5mbGF0aWNvbi1wbGFubmluZy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlOCI7IH0KLmZsYXRpY29uLWNyZWF0aXZpdHktMTpiZWZvcmUgeyBjb250ZW50OiAiXGYxZTkiOyB9Ci5mbGF0aWNvbi1hbmFseXNpcy0xOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlYSI7IH0KLmZsYXRpY29uLXJpZ2h0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlYiI7IH0KLmZsYXRpY29uLW5leHQ6YmVmb3JlIHsgY29udGVudDogIlxmMWVjIjsgfQouZmxhdGljb24tc3RhcnQ6YmVmb3JlIHsgY29udGVudDogIlxmMWVkIjsgfQouZmxhdGljb24tc3VpdGNhc2U6YmVmb3JlIHsgY29udGVudDogIlxmMWVlIjsgfQouZmxhdGljb24tZmlsZS0yOmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFlZiI7IH0KLmZsYXRpY29uLWZpbGUtMzpiZWZvcmUgeyBjb250ZW50OiAiXGYxZjAiOyB9Ci5mbGF0aWNvbi1kb2M6YmVmb3JlIHsgY29udGVudDogIlxmMWYxIjsgfQouZmxhdGljb24tZG9jdW1lbnQ6YmVmb3JlIHsgY29udGVudDogIlxmMWYyIjsgfQouZmxhdGljb24tY2hlY2tsaXN0OmJlZm9yZSB7IGNvbnRlbnQ6ICJcZjFmMyI7IH0="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coin-images.coingecko.com/coins/images/2/large/litecoin.png?1696501400","fqdn":"coin-images.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.21.63.32","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.188Z","timestamp":1785129413188,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coin-images.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 11 Jun 2026 22:42:48 GMT","end":"Wed, 09 Sep 2026 23:41:15 GMT"},"fingerprint":{"sha1":"7A:6C:D0:D5:FD:4F:F2:F6:0E:21:8F:DB:FC:C2:6A:FB:03:26:BA:A8","sha256":"8F:4C:5D:49:64:66:ED:34:00:50:8C:D4:D9:03:C8:38:40:42:53:9D:67:B3:CD:AA:9E:0E:D5:41:02:8E:46:BA"}}},"request":{"raw":"GET /coins/images/2/large/litecoin.png?1696501400 HTTP/1.1\r\nHost: coin-images.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\nx-amz-id-2: Vy7WmbYGSJSl6RneukLJDccSsZH0AIhaKzVq51i/PZoFOhlHdjedn/aX84DhAoT6RRDGahwyhNxSnFl2I9ddD1staQtBZ3Uy\r\nx-amz-request-id: RBRRVP0PXD2ZDC8P\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nx-amz-replication-status: COMPLETED\r\nlast-modified: Wed, 29 May 2024 02:40:00 GMT\r\netag: \"2cb0c91b0d82542c140d900d549dddc0\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: 5qPrLUbI5j.JglMI78Hfu1JUQECZPGFM\r\naccept-ranges: bytes\r\ncontent-type: image/png\r\nserver-timing: cfExtPri\r\nserver: cloudflare\r\ncf-polished: ok, orig_size=7680\r\ncf-bgj: h2pri,imgq:85\r\ncf-cache-status: HIT\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=gexoAOvgAXzlAAQP1rc12UsVE297J1ckK8UCdTwv0sdPh7cMsVezxLqtYyEnZ%2Fn6zh5PQm2Iio4s8bANOffSatE8pket4XxT2fFh3Oe8s11fLm7Aj3PTD%2BF3P8IJb%2F9HieK6GtzmN6UI3u67\"}]}\r\npriority: u=4,i\r\nage: 4070\r\ncf-ray: a2192cb07c3b5687-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 5120\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":5120,"size_decoded":6146,"mime_type":"image/png","magic":"PNG image data, 250 x 250, 8-bit gray+alpha, non-interlaced","md5":"7dfe657fc78ddaa9bbf4b180da6eda9c","sha1":"ba56d2cbdb8ec2452e1d9a5e550c277c91dc21df","sha256":"ef3cea3547a0881c98e8d1f1fbe8ef6158365b6cac122ff659a726c0cff19518","sha512":"257a98d541b179e5b9e57a34e01f9d81d1786982690557f8336bc87b07fea94538dcde1c57f134664222774bf4fa3885276d3c17d2b47b23bdaddcc790fc09b7","ssdeep":"96:V50NeZ9yU9UKd9PTq7iFxW4LHiosNR7QAN7u+tGiO4drIkfx34:VqsYwd9OGFxpLHqX7z9tGiO4Bfx34","tlshash":"7fb18ec63f647e5a4304a1808a127d6785f1bd6f1a5cd0a1d713abdad4e8693ad46044","first_seen":"2024-08-02T10:43:53Z","last_seen":"2026-07-29T06:15:23.461476Z","times_seen":472,"resource_available":false,"data":"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"}},"time_used":25,"timings":{"blocked":9,"dns":0,"connect":0,"send":0,"wait":14,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/owl.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.811Z","timestamp":1785129412811,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/owl.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 3704\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":19626,"size_decoded":4013,"mime_type":"text/css","magic":"ASCII text, with very long lines (14311)","md5":"4502ba85128c7faf0358b2ad0c25fdc6","sha1":"c7524ec9ed88c67f77f955e28cb7f7bc48c1eca0","sha256":"7c87520c8a9c86fa72018e0668b20504173b43b839ea3a83a6c6e50edaf04527","sha512":"270e700378c95fae4aab8549e7d7b4d78b5e40c01e0518d764362d74d9e54caaeada7f8008150c2a451f664b2b3c06f37f10f12c4e69e787115023ec0b5ac346","ssdeep":"384:OisGL+Io1SJ/pKzF7Hb+wMyOcQcQ2Wb2AT9T1pIgVc20EjJDVZM0YZR0XJUhs+JQ:OisGL+Io1SzKwwMyOrt2Wb2AT9T1pIgR","tlshash":"5b9262915193220ca02fd7858bc6aa593b3cc412f47219eeb3a77913cb46dcd246bf5b","first_seen":"2023-04-08T04:13:47Z","last_seen":"2026-07-27T13:36:13.690582Z","times_seen":104,"resource_available":false,"data":"LyoqCiAqIE93bCBDYXJvdXNlbCB2Mi4yLjAKICogQ29weXJpZ2h0IDIwMTMtMjAxNiBEYXZpZCBEZXV0c2NoCiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL093bENhcm91c2VsMi9Pd2xDYXJvdXNlbDIvYmxvYi9tYXN0ZXIvTElDRU5TRSkKICovCi8qCiAqICBPd2wgQ2Fyb3VzZWwgLSBDb3JlCiAqLwoub3dsLWNhcm91c2VsIHsgIGRpc3BsYXk6IG5vbmU7ICB3aWR0aDogMTAwJTsgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7ICBwb3NpdGlvbjogcmVsYXRpdmU7ICB6LWluZGV4OiAxOyB9IC5vd2wtY2Fyb3VzZWwgLm93bC1zdGFnZSB7ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgICAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLVk7IH0ub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2U6YWZ0ZXIgeyAgICBjb250ZW50OiAiLiI7ICAgIGRpc3BsYXk6IGJsb2NrOyAgICBjbGVhcjogYm90aDsgICAgdmlzaWJpbGl0eTogaGlkZGVuOyAgICBsaW5lLWhlaWdodDogMDsgICAgaGVpZ2h0OiAwOyB9ICAub3dsLWNhcm91c2VsIC5vd2wtc3RhZ2Utb3V0ZXIgeyAgcG9zaXRpb246IHJlbGF0aXZlOyAgICBvdmVyZmxvdzogaGlkZGVuOyAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCk7IH0KLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0geyAgICBwb3NpdGlvbjogcmVsYXRpdmU7ICAgIG1pbi1oZWlnaHQ6IDFweDsgICAgZmxvYXQ6IGxlZnQ7ICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50OyAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7IH0gIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZyB7ICAgIGRpc3BsYXk6IGJsb2NrOyAgICB3aWR0aDogMTAwJTsgICAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOyB9ICAub3dsLWNhcm91c2VsIC5vd2wtbmF2LmRpc2FibGVkLCAgLm93bC1jYXJvdXNlbCAub3dsLWRvdHMuZGlzYWJsZWQgeyAgICBkaXNwbGF5OiBub25lOyB9ICAub3dsLWNhcm91c2VsIC5vd2wtbmF2IC5vd2wtcHJldiwgIC5vd2wtY2Fyb3VzZWwgLm93bC1uYXYgLm93bC1uZXh0LCAgLm93bC1jYXJvdXNlbCAub3dsLWRvdCB7ICAgIGN1cnNvcjogcG9pbnRlcjsgICAgY3Vyc29yOiBoYW5kOyAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOyAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7ICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgdXNlci1zZWxlY3Q6IG5vbmU7IH0gIC5vd2wtY2Fyb3VzZWwub3dsLWxvYWRlZCB7ICAgIGRpc3BsYXk6IGJsb2NrOyB9ICAub3dsLWNhcm91c2VsLm93bC1sb2FkaW5nIHsgICAgb3BhY2l0eTogMDsgICAgZGlzcGxheTogYmxvY2s7IH0gIC5vd2wtY2Fyb3VzZWwub3dsLWhpZGRlbiB7ICAgIG9wYWNpdHk6IDA7IH0gIC5vd2wtY2Fyb3VzZWwub3dsLXJlZnJlc2ggLm93bC1pdGVtIHsgICAgdmlzaWJpbGl0eTogaGlkZGVuOyB9ICAub3dsLWNhcm91c2VsLm93bC1kcmFnIC5vd2wtaXRlbSB7ICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7ICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7ICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTsgICAgdXNlci1zZWxlY3Q6IG5vbmU7IH0gIC5vd2wtY2Fyb3VzZWwub3dsLWdyYWIgeyAgICBjdXJzb3I6IG1vdmU7ICAgIGN1cnNvcjogZ3JhYjsgfSAgLm93bC1jYXJvdXNlbC5vd2wtcnRsIHsgICAgZGlyZWN0aW9uOiBydGw7IH0gIC5vd2wtY2Fyb3VzZWwub3dsLXJ0bCAub3dsLWl0ZW0geyAgICBmbG9hdDogcmlnaHQ7IH0ubm8tanMgLm93bC1jYXJvdXNlbCB7ICBkaXNwbGF5OiBibG9jazsgfQoub3dsLWNhcm91c2VsIC5hbmltYXRlZCB7ICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTAwMG1zOyAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxMDAwbXM7ICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7IH0ub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtaW4geyAgei1pbmRleDogMDsgfSAub3dsLWNhcm91c2VsIC5vd2wtYW5pbWF0ZWQtb3V0IHsgIHotaW5kZXg6IDE7IH0ub3dsLWNhcm91c2VsIC5mYWRlT3V0IHsgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7ICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0OyB9QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQgeyAgMCUgeyAgICBvcGFjaXR5OiAxOyB9ICAxMDAlIHsgICAgb3BhY2l0eTogMDsgfSB9QGtleWZyYW1lcyBmYWRlT3V0IHsgIDAlIHsgICAgb3BhY2l0eTogMTsgfSAgMTAwJSB7ICAgIG9wYWNpdHk6IDA7IH0gfSAub3dsLWhlaWdodCB7ICB0cmFuc2l0aW9uOiBoZWlnaHQgNTAwbXMgZWFzZS1pbi1vdXQ7IH0gLm93bC1jYXJvdXNlbCAub3dsLWl0ZW0gLm93bC1sYXp5IHsgIG9wYWNpdHk6IDA7ICB0cmFuc2l0aW9uOiBvcGFjaXR5IDQwMG1zIGVhc2U7IH0ub3dsLWNhcm91c2VsIC5vd2wtaXRlbSBpbWcub3dsLWxhenkgeyAgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkOyAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7IH0ub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8td3JhcHBlciB7ICBwb3NpdGlvbjogcmVsYXRpdmU7ICBoZWlnaHQ6IDEwMCU7ICBiYWNrZ3JvdW5kOiAjMDAwOyB9Lm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXktaWNvbiB7ICBwb3NpdGlvbjogYWJzb2x1dGU7ICBoZWlnaHQ6IDgwcHg7ICB3aWR0aDogODBweDsgIGxlZnQ6IDUwJTsgIHRvcDogNTAlOyAgbWFyZ2luLWxlZnQ6IC00MHB4OyAgbWFyZ2luLXRvcDogLTQwcHg7ICBiYWNrZ3JvdW5kOiB1cmwoIm93bC52aWRlby5wbGF5Lmh0bWwiKSBuby1yZXBlYXQ7ICBjdXJzb3I6IHBvaW50ZXI7ICB6LWluZGV4OiAxOyAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMTAwbXMgZWFzZTsgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxMDBtcyBlYXNlOyB9IC5vd2wtY2Fyb3VzZWwgLm93bC12aWRlby1wbGF5LWljb246aG92ZXIgeyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpOyAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLjMsIDEuMyk7IHRyYW5zZm9ybTogc2NhbGUoMS4zLCAxLjMpOyB9Lm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXBsYXlpbmcgLm93bC12aWRlby10biwub3dsLWNhcm91c2VsIC5vd2wtdmlkZW8tcGxheWluZyAub3dsLXZpZGVvLXBsYXktaWNvbiB7ICBkaXNwbGF5OiBub25lOyB9Lm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLXRuIHsgb3BhY2l0eTogMDtoZWlnaHQ6IDEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyAgYmFja2dyb3VuZC1zaXplOiBjb250YWluOyAgdHJhbnNpdGlvbjogb3BhY2l0eSA0MDBtcyBlYXNlOyB9Lm93bC1jYXJvdXNlbCAub3dsLXZpZGVvLWZyYW1lIHtwb3NpdGlvbjogcmVsYXRpdmU7ICB6LWluZGV4OiAxOyBoZWlnaHQ6IDEwMCU7d2lkdGg6IDEwMCU7fQogYm9keXt9dWx7cGFkZGluZzowO21hcmdpbjowO2xpc3Qtc3R5bGU6bm9uZX0ubWVnYW1lbnVfbGlzdHM+bGk+YXtwYWRkaW5nOjEwcHg7Y29sb3I6IzAwMDAwMH0ueHMtY29udGFpbmVye3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6YXV0bzttYXJnaW4tcmlnaHQ6YXV0bztwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MTE0MHB4fS54cy1uYXZiYXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn0ueHMtbmF2YmFyLWJyYW5ke3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOiMwMDAwMDB9LnhzLW5hdmJhci1icmFuZD5oMnttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuZWxlbWVudHNraXQtaGVhZGVyIC5lbGVtZW50c2tpdC1tZW51LWNvbnRhaW5lcntwb3NpdGlvbjpzdGF0aWN9LmVsZW1lbnRza2l0LW1lZ2FtZW51LXBhbmVsPmxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjI1JTtmbG9hdDpsZWZ0fX0ubGFuZ3VhZ2UtY29udGVudCBwe2NvbG9yOiNGRkZGRkY7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLWJvdHRvbTo0MHB4O2ZvbnQtc2l6ZTpyZW0oMjBweCl9LmZsYWctbGlzdHN7dGV4dC1hbGlnbjpjZW50ZXJ9LmZsYWctbGlzdHMgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjI1cHh9LmZsYWctbGlzdHMgbGk6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH0uZmxhZy1saXN0cyBsaSBhe2Rpc3BsYXk6YmxvY2s7Y29sb3I6I0ZGRkZGRjstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuNHMgZWFzZTstby10cmFuc2l0aW9uOmFsbCAwLjRzIGVhc2U7dHJhbnNpdGlvbjphbGwgMC40cyBlYXNlOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW59LmZsYWctbGlzdHMgbGkgYTpob3ZlcntvcGFjaXR5Oi43fS5mbGFnLWxpc3RzIGxpIGEgaW1ne3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7bWFyZ2luLXJpZ2h0OjEwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tb2RhbC1zZWFyY2hQYW5lbCAueHMtc2VhcmNoLWdyb3Vwe3Bvc2l0aW9uOnJlbGF0aXZlfS5tb2RhbC1zZWFyY2hQYW5lbCAueHMtc2VhcmNoLWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKXtoZWlnaHQ6NzBweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6NTBweDtib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7Y29sb3I6I0ZGRkZGRjtwYWRkaW5nOjAgMzBweDt3aWR0aDoxMDAlfS5tb2RhbC1zZWFyY2hQYW5lbCAueHMtc2VhcmNoLWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcntjb2xvcjojRkZGRkZGfS5tb2RhbC1zZWFyY2hQYW5lbCAueHMtc2VhcmNoLWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTo6LW1vei1wbGFjZWhvbGRlcntjb2xvcjojRkZGRkZGfS5tb2RhbC1zZWFyY2hQYW5lbAogLnhzLXNlYXJjaC1ncm91cCBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiNGRkZGRkZ9Lm1vZGFsLXNlYXJjaFBhbmVsIC54cy1zZWFyY2gtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6I0ZGRkZGRn0ubW9kYWwtc2VhcmNoUGFuZWwgLnhzLXNlYXJjaC1ncm91cCAuc2VhcmNoLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowcHg7cGFkZGluZzowO2NvbG9yOiNGRkZGRkY7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtjdXJzb3I6cG9pbnRlcjt0b3A6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2hlaWdodDoxMDAlO3dpZHRoOjcwcHg7Ym9yZGVyLXJhZGl1czowIDUwcHggNTBweCAwfS5tb2RhbC1zZWFyY2hQYW5lbCAueHMtc2VhcmNoLXBhbmVse21heC13aWR0aDo4MDBweDttYXJnaW46MS43NXJlbSBhdXRvfS5tZnAtYmcueHMtcHJvbW8tcG9wdXB7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuODcpO3BhZGRpbmctYm90dG9tOjEwMCU7Ym9yZGVyLXJhZGl1czoxMDAlO292ZXJmbG93OmhpZGRlbjstd2Via2l0LWFuaW1hdGlvbjptZW51LWFuaW1hdGlvbiAuOHMgZWFzZS1vdXQgZm9yd2FyZHM7YW5pbWF0aW9uOm1lbnUtYW5pbWF0aW9uIC44cyBlYXNlLW91dCBmb3J3YXJkc31ALXdlYmtpdC1rZXlmcmFtZXMgbWVudS1hbmltYXRpb257MCV7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuMDQpIHRyYW5zbGF0ZVkoMzAwJSk7dHJhbnNmb3JtOnNjYWxlKDAuMDQpIHRyYW5zbGF0ZVkoMzAwJSl9NDAley13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuMDQpIHRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnNjYWxlKDAuMDQpIHRyYW5zbGF0ZVkoMCk7LXdlYmtpdC10cmFuc2l0aW9uOmVhc2Utb3V0Oy1vLXRyYW5zaXRpb246ZWFzZS1vdXQ7dHJhbnNpdGlvbjplYXNlLW91dH00MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgwKX02MCV7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDAuMDIpIHRyYW5zbGF0ZVkoMHB4KTt0cmFuc2Zvcm06c2NhbGUoMC4wMikgdHJhbnNsYXRlWSgwcHgpfTYxJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgwcHgpO3RyYW5zZm9ybTpzY2FsZSgwLjA0KSB0cmFuc2xhdGVZKDBweCl9OTkuOSV7b3BhY2l0eToxO2hlaWdodDowO3BhZGRpbmctYm90dG9tOjEwMCU7Ym9yZGVyLXJhZGl1czoxMDAlfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgyKSB0cmFuc2xhdGVZKDBweCk7dHJhbnNmb3JtOnNjYWxlKDIpIHRyYW5zbGF0ZVkoMHB4KTtoZWlnaHQ6MTAwJTtwYWRkaW5nLWJvdHRvbTowO2JvcmRlci1yYWRpdXM6MH19QGtleWZyYW1lcyBtZW51LWFuaW1hdGlvbnswJXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgzMDAlKTt0cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgzMDAlKX00MCV7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06c2NhbGUoMC4wNCkgdHJhbnNsYXRlWSgwKTstd2Via2l0LXRyYW5zaXRpb246ZWFzZS1vdXQ7LW8tdHJhbnNpdGlvbjplYXNlLW91dDt0cmFuc2l0aW9uOmVhc2Utb3V0fTQwJXstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjA0KSB0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTpzY2FsZSgwLjA0KSB0cmFuc2xhdGVZKDApfTYwJXtvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMC4wMikgdHJhbnNsYXRlWSgwcHgpO3RyYW5zZm9ybTpzY2FsZSgwLjAyKSB0cmFuc2xhdGVZKDBweCl9NjEle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwLjA0KSB0cmFuc2xhdGVZKDBweCk7dHJhbnNmb3JtOnNjYWxlKDAuMDQpIHRyYW5zbGF0ZVkoMHB4KX05OS45JXtvcGFjaXR5OjE7aGVpZ2h0OjA7cGFkZGluZy1ib3R0b206MTAwJTtib3JkZXItcmFkaXVzOjEwMCV9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDIpIHRyYW5zbGF0ZVkoMHB4KTt0cmFuc2Zvcm06c2NhbGUoMikgdHJhbnNsYXRlWSgwcHgpO2hlaWdodDoxMDAlO3BhZGRpbmctYm90dG9tOjA7Ym9yZGVyLXJhZGl1czowfX0ueHMtcHJvbW8tcG9wdXAgLm1vZGFsLWNvbnRlbnR7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtwYWRkaW5nOjBweDtib3JkZXI6MHB4fS54cy1wcm9tby1wb3B1cCAubWZwLWNsb3Nle2NvbG9yOiNGRkZGRkY7b3BhY2l0eTowOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMXMgZWFzZSAuOHM7LW8tdHJhbnNpdGlvbjphbGwgMXMgZWFzZSAuOHM7dHJhbnNpdGlvbjphbGwgMXMgZWFzZSAuOHM7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAwcHgpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MDBweCl9LnhzLXByb21vLXBvcHVwLm1mcC1yZWFkeSAubWZwLWNsb3Nle29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0ueHMtcHJvbW8tcG9wdXAubXktbWZwLXNsaWRlLWJvdHRvbSAuem9vbS1hbmltLWRpYWxvZ3tvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAxcyBlYXNlIC44czstby10cmFuc2l0aW9uOmFsbCAxcyBlYXNlIC44czt0cmFuc2l0aW9uOmFsbCAxcyBlYXNlIC44czstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MDBweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MDBweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwMHB4KX0ueHMtcHJvbW8tcG9wdXAubXktbWZwLXNsaWRlLWJvdHRvbS5tZnAtcmVhZHkgLnpvb20tYW5pbS1kaWFsb2d7b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5taW5pX2NhcnRfaXRlbXttYXJnaW4tYm90dG9tOjIwcHg7cGFkZGluZy1ib3R0b206MjBweH0ueHMtZW1wdHktY29udGVudHtwYWRkaW5nOjEyMHB4IDMwcHggMzBweH0ueHMtZW1wdHktY29udGVudCAud2lkZ2V0LXRpdGxle2ZvbnQtc2l6ZTpyZW0oMjJweCl9LnhzLWVtcHR5LWNvbnRlbnQgLnhzLXRpdGxle21hcmdpbi1ib3R0b206MjBweDtmb250LXNpemU6cmVtKDE4cHgpfS54cy1lbXB0eS1jb250ZW50IC53b29jb21tZXJjZS1taW5pLWNhcnRfX2VtcHR5LW1lc3NhZ2V7Zm9udC1zaXplOnJlbSgyMHB4KX0ueHMtZW1wdHktY29udGVudCAuZW1wdHktY2FydC1pY29ue2ZvbnQtc2l6ZTpyZW0oNTBweCl9LnNpZGViYXItdGV4dHdpZGdldCAuc2lkZWJhci1sb2dvLXdyYXBlcnttYXJnaW4tYm90dG9tOjMzcHh9LnNpZGViYXItdGV4dHdpZGdldD5we2ZvbnQtc2l6ZTpyZW0oMTVweCk7bGluZS1oZWlnaHQ6MS41O21hcmdpbi1ib3R0b206NDBweH0uc2lkZWJhci10ZXh0d2lkZ2V0IC5zb2NpYWwtbGlzdHttYXJnaW4tYm90dG9tOjMwcHh9LnNpZGVhYnItbGlzdC13aWRnZXR7bWFyZ2luLWJvdHRvbTo0MHB4fS5zaWRlYWJyLWxpc3Qtd2lkZ2V0IGxpe21hcmdpbi1ib3R0b206MjBweH0uc2lkZWFici1saXN0LXdpZGdldCBsaTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MHB4fS5zaWRlYWJyLWxpc3Qtd2lkZ2V0IGltZ3ttYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tdG9wOjNweH0uc2lkZWFici1saXN0LXdpZGdldCBhLC5zaWRlYWJyLWxpc3Qtd2lkZ2V0IHB7bWFyZ2luLWJvdHRvbToycHg7Y29sb3I6IzAwMDAwMDttYXJnaW4tYm90dG9tOjhweDtkaXNwbGF5OmJsb2NrfS5zaWRlYWJyLWxpc3Qtd2lkZ2V0IHNwYW57ZGlzcGxheTpibG9jaztmb250LXNpemU6cmVtKDE0cHgpO2NvbG9yOiMxNzY4ZGR9LnNpZGVhYnItbGlzdC13aWRnZXQgLm1lZGlhLWJvZHl7bGluZS1oZWlnaHQ6MX0uc3Vic2NyaWJlLWZyb217cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWJvdHRvbTo0MHB4fS5zdWJzY3JpYmUtZnJvbSBwe2ZvbnQtc2l6ZTpyZW0oMThweCk7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi1ib3R0b206MTVweDtsaW5lLWhlaWdodDoxO2NvbG9yOiMxNzY4ZGR9LnN1YnNjcmliZS1mcm9tIGxhYmVse3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTotMjRweDtsZWZ0OjBweDttYXJnaW4tYm90dG9tOjA7bGluZS1oZWlnaHQ6MX0uc3Vic2NyaWJlLWZyb20gLmZvcm0tY29udHJvbHtib3JkZXI6MXB4IHNvbGlkICNmNWY1ZjU7aGVpZ2h0OjUwcHg7cGFkZGluZy1sZWZ0OjI1cHh9LnN1YnNjcmliZS1mcm9tIC5zdWItYnRue2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3BhZGRpbmctcmlnaHQ6MjVweDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojMTc2OGRkO2hlaWdodDoxMDAlfS5zdWJzY3JpYmUtZnJvbSAuc3ViLWJ0bjpmb2N1c3tvdXRsaW5lOm5vbmV9LnN1YnNjcmliZS1mcm9tIC5mb3JtLWdyb3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjstd2Via2l0LWJveC1zaGFkb3c6MHB4IDEwcHggMzBweCAwcHggcmdiYSgyMywgMTA0LCAyMjEsIDAuMik7Ym94LXNoYWRvdzowcHggMTBweCAzMHB4IDBweCByZ2JhKDIzLCAxMDQsIDIyMSwgMC4yKTtib3JkZXItcmFkaXVzOjI1cHg7bWFyZ2luLWJvdHRvbTowcHh9LnhzLXNpZGViYXItZ3JvdXAgLnhzLW92ZXJsYXl7bGVmdDoxMDAlO3RvcDowO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTAxO2hlaWdodDoxMDAlO29wYWNpdHk6MDt3aWR0aDoxMDAlO3Zpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjRzIGVhc2UtaW4gLjhzOy1vLXRyYW5zaXRpb246YWxsIC40cyBlYXNlLWluIC44czt0cmFuc2l0aW9uOmFsbCAuNHMgZWFzZS1pbiAuOHM7Y3Vyc29yOnVybCguLi9pbWFnZXMvY3Jvc3Mtb3V0LnBuZyksIHBvaW50ZXJ9LnhzLXNpZGViYXItZ3JvdXAgLndpZGdldC1oZWFkaW5ne3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7cGFkZGluZzoyNXB4fS54cy1zaWRlYmFyLXdpZGdldHtwb3NpdGlvbjpmaXhlZDtyaWdodDotMTAwJTt0b3A6MDtib3R0b206MDt3aWR0aDoxMDAlO21heC13aWR0aDozNjBweDt6LWluZGV4Ojk5OTk5OTtvdmVyZmxvdzpoaWRkZW47b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO2JhY2tncm91bmQtY29sb3I6IzI3MjcyNzstd2Via2l0LXRyYW5zaXRpb246YWxsIDAuNXMgY3ViaWMtYmV6aWVyKDAuOSwgMC4wMywgMCwgMC45NikgMC42czstby10cmFuc2l0aW9uOmFsbCAwLjVzIGN1YmljLWJlemllcigwLjksIDAuMDMsIDAsIDAuOTYpIDAuNnM7dHJhbnNpdGlvbjphbGwgMC41cyBjdWJpYy1iZXppZXIoMC45LCAwLjAzLCAwLCAwLjk2KSAwLjZzO3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MH0ueHMtc2lkZWJhci1ncm91cC5pc0FjdGl2ZSAueHMtb3ZlcmxheXtvcGFjaXR5Oi45O3Zpc2liaWxpdHk6dmlzaWJsZTstd2Via2l0LXRyYW5zaXRpb246YWxsIC44cyBlYXNlLW91dCAwczstby10cmFuc2l0aW9uOmFsbCAuOHMgZWFzZS1vdXQgMHM7dHJhbnNpdGlvbjphbGwgLjhzIGVhc2Utb3V0IDBzO2xlZnQ6MH0ueHMtc2lkZWJhci1ncm91cC5pc0FjdGl2ZSAueHMtc2lkZWJhci13aWRnZXR7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTtyaWdodDowOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC43cyBjdWJpYy1iZXppZXIoMC45LCAwLjAzLCAwLCAwLjk2KSAwLjRzOy1vLXRyYW5zaXRpb246YWxsIDAuN3MgY3ViaWMtYmV6aWVyKDAuOSwgMC4wMywgMCwgMC45NikgMC40czt0cmFuc2l0aW9uOmFsbCAwLjdzIGN1YmljLWJlemllcigwLjksIDAuMDMsIDAsIDAuOTYpIDAuNHN9LnNpZGViYXItdGV4dHdpZGdldHtwYWRkaW5nOjQwcHg7fS5jbG9zZS1zaWRlLXdpZGdldHtjb2xvcjojMTc2OGRkO2ZvbnQtc2l6ZTpyZW0oMTVweCk7ZGlzcGxheTpibG9ja30uc2lkZWJhci13aWRnZXQtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxNTBweDtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuM3MgZWFzZS1pbiAuM3M7LW8tdHJhbnNpdGlvbjphbGwgLjNzIGVhc2UtaW4gLjNzO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlLWluIC4zczstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufS54cy1zaWRlYmFyLWdyb3VwLmlzQWN0aXZlIC5zaWRlYmFyLXdpZGdldC1jb250YWluZXJ7dG9wOjBweDtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1vdXQgMS4yczstby10cmFuc2l0aW9uOmFsbCAxcyBlYXNlLW91dCAxLjJzO3RyYW5zaXRpb246YWxsIDFzIGVhc2Utb3V0IDEuMnM7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbn0ueHMtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtvcGFjaXR5Oi41O3otaW5kZXg6MH0ueHMtYmctYmxhY2t7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwfS54cy1tZW51LXRvb2xzPmxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoxNXB4fS54cy1tZW51LXRvb2xzPmxpOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjB9LnhzLW1lbnUtdG9vbHM+bGk+YXtjb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXYtYWxpZ25tZW50LWR5bmFtaWMsLm5hdi1hbGlnbm1lbnQtZmxleC1zdGFydHstd2Via2l0LWJveC1wYWNrOnN0YXJ0Oy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmVsZW1lbnRza2l0LW1lbnUtY29udGFpbmVye3otaW5kZXg6MTAwMDB9LmVsZW1lbnRza2l0LW5hdmJhci1uYXZ7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbTowO2xpc3Qtc3R5bGU6bm9uZX0uZWxlbWVudHNraXQtbmF2YmFyLW5hdiBsaXtwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZzowcHggMTVweDt9LmVsZW1lbnRza2l0LW5hdmJhci1uYXYgbGk6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmU7fS5lbGVtZW50c2tpdC1uYXZiYXItbmF2IGxpIGF7aGVpZ2h0OjEwMCU7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lfS5lbGVtZW50c2tpdC1uYXZiYXItbmF2IGxpIGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmVsZW1lbnRza2l0LW5hdmJhci1uYXYgbGkuZWxlbWVudHNraXQtbWVnYW1lbnUtaGFze3Bvc2l0aW9uOnN0YXRpY30uZWxlbWVudHNraXQtbmF2YmFyLW5hdj5saT5hey13ZWJraXQtdHJhbnNpdGlvbjphbGwgLjRzIGVhc2U7LW8tdHJhbnNpdGlvbjphbGwgLjRzIGVhc2U7dHJhbnNpdGlvbjphbGwgLjRzIGVhc2U7dGV4dC10cmFuc2Zvcm06bm9uZTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5lbGVtZW50c2tpdC1kcm9wZG93bntwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmU7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO30uZWxlbWVudHNraXQtZHJvcGRvd24+bGk+LmVsZW1lbnRza2l0LWRyb3Bkb3due2xlZnQ6MTAwJTt0b3A6MH0uZWxlbWVudHNraXQtZHJvcGRvd24+bGk+LmVsZW1lbnRza2l0LWRyb3Bkb3duLm9wZW4tZnJvbWxlZnR7bGVmdDphdXRvO3JpZ2h0OjEwMCV9LmVsZW1lbnRza2l0LXN1Ym1lbnUtcGFuZWw+bGk6aG92ZXI+YSwuZWxlbWVudHNraXQtc3VibWVudS1wYW5lbD5saT5hOmhvdmVye2NvbG9yOiMwZDNhNGY7YmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbShyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpLCB0byhyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDEwMCUpO2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KGxlZnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpIDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSAxMDAlKX0uZWxlbWVudHNraXQtbWVnYW1lbnUtcGFuZWx7d2lkdGg6MTAwJTt9LmVsZW1lbnRza2l0LW92ZXJsYXl7ZGlzcGxheTpub25lfS5lbGVtZW50c2tpdC1uYXYtaWRlbnRpdHktcGFuZWx7ZGlzcGxheTpub25lfS5lbGVtZW50c2tpdC1tZW51LWhhbWJ1cmdlcntib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4yKTtmbG9hdDpyaWdodH0uZWxlbWVudHNraXQtbWVudS1oYW1idXJnZXIgLmVsZW1lbnRza2l0LW1lbnUtaGFtYnVyZ2VyLWljb257YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNSl9LmVsZW1lbnRza2l0LW1lbnUtY2xvc2UsLmVsZW1lbnRza2l0LW1lbnUtaGFtYnVyZ2Vye2Rpc3BsYXk6bm9uZTtwYWRkaW5nOjhweDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MC4yNXJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjEwO2N1cnNvcjpwb2ludGVyO3dpZHRoOjQ1cHh9LmVsZW1lbnRza2l0LW1lbnUtY2xvc2UgLmVsZW1lbnRza2l0LW1lbnUtaGFtYnVyZ2VyLWljb24sLmVsZW1lbnRza2l0LW1lbnUtaGFtYnVyZ2VyIC5lbGVtZW50c2tpdC1tZW51LWhhbWJ1cmdlci1pY29ue2hlaWdodDoxcHg7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206NHB4fS5lbGVtZW50c2tpdC1tZW51LWNsb3NlIC5lbGVtZW50c2tpdC1tZW51LWhhbWJ1cmdlci1pY29uOmxhc3QtY2hpbGQsLmVsZW1lbnRza2l0LW1lbnUtaGFtYnVyZ2VyIC5lbGVtZW50c2tpdC1tZW51LWhhbWJ1cmdlci1pY29uOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5lbGVtZW50c2tpdC1tZW51LWNsb3Nle2JvcmRlcjoxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjUpO2NvbG9yOnJnYmEoNTEsIDUxLCA1MSwgMC41KTtmbG9hdDpyaWdodDttYXJnaW4tdG9wOjIwcHg7bWFyZ2luLWxlZnQ6MjBweDttYXJnaW4tcmlnaHQ6MjBweDttYXJnaW4tYm90dG9tOjIwcHh9LmVsZW1lbnRza2l0LWRyb3Bkb3duLWhhczpob3Zlcj5hOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjMWU3M2JlICMxZTczYmUgdHJhbnNwYXJlbnR9LmVsZW1lbnRza2l0LWRyb3Bkb3duLWhhcz5he3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmVsZW1lbnRza2l0LWRyb3Bkb3duLWhhcz5hOmhvdmVyOmFmdGVye2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjMWU3M2JlICMxZTczYmUgdHJhbnNwYXJlbnR9LmVsZW1lbnRza2l0LWRyb3Bkb3duLWhhcz5hOmFmdGVye30uZWxlbWVudHNraXQtc3VibWVudS1wYW5lbCAuZWxlbWVudHNraXQtZHJvcGRvd24taGFzOmhvdmVyPmE6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICMwZDNhNGYgIzBkM2E0ZiB0cmFuc3BhcmVudH0uZWxlbWVudHNraXQtc3VibWVudS1wYW5lbCAuZWxlbWVudHNraXQtZHJvcGRvd24taGFzPmE6aG92ZXI6YWZ0ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50ICMwZDNhNGYgIzBkM2E0ZiB0cmFuc3BhcmVudH1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmVsZW1lbnRza2l0LWRyb3Bkb3duIC5lbGVtZW50c2tpdC1kcm9wZG93bi1oYXM+YTphZnRlcnt9LmVsZW1lbnRza2l0LW1lbnUtY29udGFpbmVye2JhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGZyb20ocmdiYSgyNTUsIDI1NSwgMjU1LCAwKSksIHRvKHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudChib3R0b20sIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5lbGVtZW50c2tpdC1kcm9wZG93bnttaW4td2lkdGg6MjUwcHh9LmVsZW1lbnRza2l0LW5hdmJhci1uYXZ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDt9LmVsZW1lbnRza2l0LW5hdmJhci1uYXY+bGk+YXt9LmVsZW1lbnRza2l0LWRyb3Bkb3duey13ZWJraXQtYm94LXNoYWRvdzowcHggMTBweCAzMHB4IDBweCByZ2JhKDQ1LCA0NSwgNDUsIDAuMik7Ym94LXNoYWRvdzowcHggMTBweCAzMHB4IDBweCByZ2JhKDQ1LCA0NSwgNDUsIDAuMik7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDowcHg7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTBweCk7cG9pbnRlci1ldmVudHM6bm9uZX0uZWxlbWVudHNraXQtZHJvcGRvd24taGFzOmhvdmVyPi5lbGVtZW50c2tpdC1kcm9wZG93bntvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMHB4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwcHgpO3BvaW50ZXItZXZlbnRzOmF1dG99fUBtZWRpYSAobWF4LXdpZHRoOjk5MXB4KXsuZWxlbWVudHNraXQtbWVudS1jb250YWluZXJ7YmFja2dyb3VuZDojZjdmN2Y3O2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbSgjZjdmN2Y3KSwgdG8oI2Y3ZjdmNykpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjZjdmN2Y3IDAlLCAjZjdmN2Y3IDEwMCUpO2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI2Y3ZjdmNyAwJSwgI2Y3ZjdmNyAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCAjZjdmN2Y3IDAlLCAjZjdmN2Y3IDEwMCUpO21heC13aWR0aDozNTBweDt3aWR0aDoxMDAlO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6LTQ1MHB4O2hlaWdodDoxMDAlOy13ZWJraXQtYm94LXNoYWRvdzowcHggMTBweCAzMHB4IDBweCByZ2JhKDI1NSwgMTY1LCAwLCAwKTtib3gtc2hhZG93OjBweCAxMHB4IDMwcHggMHB4IHJnYmEoMjU1LCAxNjUsIDAsIDApO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtwYWRkaW5nLXRvcDoxMHB4O3BhZGRpbmctbGVmdDowcHg7cGFkZGluZy1yaWdodDowcHg7cGFkZGluZy1ib3R0b206MTBweDstd2Via2l0LXRyYW5zaXRpb246bGVmdCA2MDBtcyBjdWJpYy1iZXppZXIoMC42LCAwLjEsIDAuNjgsIDAuNTMpIDBtczstby10cmFuc2l0aW9uOmxlZnQgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4xLCAwLjY4LCAwLjUzKSAwbXM7dHJhbnNpdGlvbjpsZWZ0IDYwMG1zIGN1YmljLWJlemllcigwLjYsIDAuMSwgMC42OCwgMC41MykgMG1zfS5lbGVtZW50c2tpdC1tZW51LWNvbnRhaW5lci5hY3RpdmV7bGVmdDowfS5uby1zY3JvbGxlcntvdmVyZmxvdzpoaWRkZW59LmVsZW1lbnRza2l0LW1lbnUtb3ZlcmxheXtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6NTt0b3A6MDtsZWZ0Oi0xMTAlO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDUxLCA1MSwgNTEsIDAuNSk7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjRzIGVhc2U7LW8tdHJhbnNpdGlvbjphbGwgMC40cyBlYXNlO3RyYW5zaXRpb246YWxsIDAuNHMgZWFzZTtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlOy13ZWJraXQtdHJhbnNpdGlvbjphbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuNiwgMC4xLCAwLjY4LCAwLjUzKSA0MDBtczstby10cmFuc2l0aW9uOmFsbCA2MDBtcyBjdWJpYy1iZXppZXIoMC42LCAwLjEsIDAuNjgsIDAuNTMpIDQwMG1zO3RyYW5zaXRpb246YWxsIDYwMG1zIGN1YmljLWJlemllcigwLjYsIDAuMSwgMC42OCwgMC41MykgNDAwbXN9LmVsZW1lbnRza2l0LW1lbnUtb3ZlcmxheS5hY3RpdmV7bGVmdDowJTstd2Via2l0LXRyYW5zaXRpb246YWxsIDYwMG1zIGN1YmljLWJlemllcigwLjIyLCAwLjYxLCAwLjI0LCAxKSAwbXM7LW8tdHJhbnNpdGlvbjphbGwgNjAwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuNjEsIDAuMjQsIDEpIDBtczt0cmFuc2l0aW9uOmFsbCA2MDBtcyBjdWJpYy1iZXppZXIoMC4yMiwgMC42MSwgMC4yNCwgMSkgMG1zfS5lbGVtZW50c2tpdC1tZW51LWNsb3NlLC5lbGVtZW50c2tpdC1tZW51LWhhbWJ1cmdlcntkaXNwbGF5OmJsb2NrfS5lbGVtZW50c2tpdC1uYXYtaWRlbnRpdHktcGFuZWx7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7ei1pbmRleDo1O3dpZHRoOjEwMCV9LmVsZW1lbnRza2l0LW5hdi1pZGVudGl0eS1wYW5lbCAuZWxlbWVudHNraXQtc2l0ZS10aXRsZXtmbG9hdDpsZWZ0fS5lbGVtZW50c2tpdC1uYXYtaWRlbnRpdHktcGFuZWwgLmVsZW1lbnRza2l0LW1lbnUtY2xvc2V7ZmxvYXQ6cmlnaHR9LmVsZW1lbnRza2l0LW5hdmJhci1uYXZ7cGFkZGluZy10b3A6MTAwcHh9LmVsZW1lbnRza2l0LW5hdmJhci1uYXY+bGk+YXtjb2xvcjojMDAwMDAwO2ZvbnQtc2l6ZToxMnB4O3BhZGRpbmctdG9wOjVweDtwYWRkaW5nLWxlZnQ6MTBweDtwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLWJvdHRvbTo1cHh9LmVsZW1lbnRza2l0LW5hdmJhci1uYXY+bGk+YTpob3Zlcntjb2xvcjojMGQzYTRmfS5lbGVtZW50c2tpdC1uYXZiYXItbmF2PmxpOmhvdmVyPmF7Y29sb3I6IzBkM2E0Zn0uZWxlbWVudHNraXQtc3VibWVudS1wYW5lbD5saT5he2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjEycHg7cGFkZGluZy10b3A6N3B4O3BhZGRpbmctbGVmdDo3cHg7cGFkZGluZy1yaWdodDo3cHg7cGFkZGluZy1ib3R0b206N3B4fS5lbGVtZW50c2tpdC1kcm9wZG93bnttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7Ym9yZGVyOjBweDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7LXdlYmtpdC10cmFuc2l0aW9uOm1heC1oZWlnaHQgMnMgY3ViaWMtYmV6aWVyKDAsIDEsIDAsIDEpOy1vLXRyYW5zaXRpb246bWF4LWhlaWdodCAycyBjdWJpYy1iZXppZXIoMCwgMSwgMCwgMSk7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IDJzIGN1YmljLWJlemllcigwLCAxLCAwLCAxKX0uZWxlbWVudHNraXQtZHJvcGRvd24uZWxlbWVudHNraXQtZHJvcGRvd24tb3BlbnttYXgtaGVpZ2h0OjI1MDBweDtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlOy13ZWJraXQtdHJhbnNpdGlvbjptYXgtaGVpZ2h0IDVzIGVhc2Utb3V0Oy1vLXRyYW5zaXRpb246bWF4LWhlaWdodCA1cyBlYXNlLW91dDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgNXMgZWFzZS1vdXR9LmVsZW1lbnRza2l0LW5hdmJhci1uYXY+LmVsZW1lbnRza2l0LWRyb3Bkb3duLWhhcz4uZWxlbWVudHNraXQtZHJvcGRvd24gbGkgYXtwYWRkaW5nLWxlZnQ6MTVweH19"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/custom-animate.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.814Z","timestamp":1785129412814,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/custom-animate.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 880\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":12242,"size_decoded":1188,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"30c5619a1bcd522040282a3e6e03f1e1","sha1":"240d7bd54cf557527e2149a2fbec9340ac84ead7","sha256":"1767597a5d64130e169130a7c6396ae5c9df674b00a30d5b10443d614d7f5619","sha512":"c5d44999bfde043e6aea7b16157f2391d9f993159093aa7cce5bb37796d7303870b3a23198b0153b3676e6bdf952b65c936b5ebaf89f76e3e29c253df96502bc","ssdeep":"96:wol7i4sDF0971vxx+7i4s4F0I71E8Ll7MzsDFTrCl7HzsDF6gjl74zsDFD4Ll7MJ:eswJR5xn02lnI3Sp3S0ZmqxtuxtY","tlshash":"6d42bfea4440554a47330b775bde9a04dd740ca3aa223cbd72ef450e9f39758238797b","first_seen":"2023-04-18T12:54:11Z","last_seen":"2026-07-27T13:36:13.691231Z","times_seen":114,"resource_available":false,"data":"LmVtcHR5LWFuaW1hdGlvbnsNCiAgICBhbmltYXRpb24tbmFtZTogem9vbUluU3RhYmxlOyANCiAgICBhbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JblN0YWJsZTsgDQogICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtbW96LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5TdGFibGU7IA0KICAgIC1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsgDQogICAgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIC1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW1zLWFuaW1hdGlvbi1uYW1lOiB6b29tSW5TdGFibGU7IA0KICAgIC1tcy1hbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW8tYW5pbWF0aW9uLW5hbWU6IHpvb21JblN0YWJsZTsgDQogICAgLW8tYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsgDQogICAgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQp9DQoNCi5lbXB0eS1hbmltYXRpb257DQogICAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblN0YWJsZTsgDQogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsgDQogICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluU3RhYmxlOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtbW96LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5TdGFibGU7IA0KICAgIC1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsgDQogICAgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC1tcy1hbmltYXRpb24tbmFtZTogem9vbUluU3RhYmxlOyANCiAgICAtbXMtYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsgDQogICAgLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC1tcy1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtby1hbmltYXRpb24tbmFtZTogem9vbUluU3RhYmxlOyANCiAgICAtby1hbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICAtby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQp9DQoNCi5lbXB0eS1hbmltYXRpb257DQogICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcDsgDQogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgDQogICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgDQogICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW1vei1hbmltYXRpb24tbmFtZTogc2xpZGVJblVwOyANCiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IA0KICAgIC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC1tcy1hbmltYXRpb24tbmFtZTogc2xpZGVJblVwOyANCiAgICAtbXMtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgDQogICAgLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7DQogICAgLW1zLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQp9DQoNCi5lbXB0eS1hbmltYXRpb257DQogICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5SaWdodDsgDQogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgDQogICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgDQogICAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW1vei1hbmltYXRpb24tbmFtZTogc2xpZGVJblJpZ2h0OyANCiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IA0KICAgIC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC1tcy1hbmltYXRpb24tbmFtZTogc2xpZGVJblJpZ2h0OyANCiAgICAtbXMtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsgDQogICAgLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7DQogICAgLW1zLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQp9DQoNCi5lbXB0eS1hbmltYXRpb257DQogICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0OyANCiAgICBhbmltYXRpb24tZHVyYXRpb246IDJzOyANCiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0OyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC1tb3otYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0OyANCiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IA0KICAgIC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC1tcy1hbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7IA0KICAgIC1tcy1hbmltYXRpb24tZHVyYXRpb246IDJzOyANCiAgICAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTsNCiAgICAtbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCn0NCg0KLmVtcHR5LWFuaW1hdGlvbnsNCiAgICBhbmltYXRpb24tbmFtZTogc2xpZGVJblVwOyANCiAgICBhbmltYXRpb24tZHVyYXRpb246IDJzOyANCiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcDsgDQogICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtbW96LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7IA0KICAgIC1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsNCiAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7DQogICAgLW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtbXMtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcDsgDQogICAgLW1zLWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7IA0KICAgIC1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOw0KICAgIC1tcy1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlbWUgew0KICAgIDAlIHsNCiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCg0KICAgIDUwJSB7DQogICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsNCiAgICAgICAgb3BhY2l0eTogMC43Ow0KICAgICAgfQ0KICAgIDEwMCUgew0KICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQp9DQpALW1vei1rZXlmcmFtZXMgcm90YXRlbWUgew0KICAgIDAlIHsNCiAgICAgICAgLW1vei10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCg0KICAgIDUwJSB7DQogICAgICAgIC1tb3otdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsNCiAgICAgICAgb3BhY2l0eTogMC43Ow0KICAgICAgfQ0KICAgIDEwMCUgew0KICAgICAgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQp9DQpALW8ta2V5ZnJhbWVzIHJvdGF0ZW1lIHsNCiAgICAwJSB7DQogICAgICAgIC1vLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgfQ0KDQogICAgNTAlIHsNCiAgICAgICAgLW8tdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsNCiAgICAgICAgb3BhY2l0eTogMC43Ow0KICAgICAgfQ0KICAgIDEwMCUgew0KICAgICAgICAtby10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOw0KICAgICAgICBvcGFjaXR5OiAxOw0KICAgICAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZW1lIHsNCiAgICANCiAgICAgMCUgew0KICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICAgICAgb3BhY2l0eTogMTsNCiAgICAgIH0NCg0KICAgIDUwJSB7DQogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7DQogICAgICB9DQogICAgMTAwJSB7DQogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7DQogICAgICAgIG9wYWNpdHk6IDE7DQogICAgICB9DQp9DQoNCi52aWRlby1ib3ggLm92ZXJsYXktYm94IHNwYW46YWZ0ZXJ7DQogICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZW1lOyANCiAgICBhbmltYXRpb24tZHVyYXRpb246IDE1czsgDQogICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KCQ0KCS13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZW1lOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMTVzOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KCQ0KCS1tb3otYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZW1lOyANCiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogMTVzOyANCiAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KCQ0KCS1tcy1hbmltYXRpb24tbmFtZTogcm90YXRlbWU7IA0KICAgIC1tcy1hbmltYXRpb24tZHVyYXRpb246IDE1czsgDQogICAgLW1zLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC1tcy1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQoJDQoJLW8tYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZW1lOyANCiAgICAtby1hbmltYXRpb24tZHVyYXRpb246IDE1czsgDQogICAgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLW8tYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KfQ0KDQovKiBCb2IgVXAgRG93biovDQpALXdlYmtpdC1rZXlmcmFtZXMgZmxvYXRfdXBfZG93biB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICA1MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmxvYXRfdXBfZG93biB7DQogIDAlIHsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgNTAlIHsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCi5lbXB0eS1hbmltYXRpb257DQogICAgYW5pbWF0aW9uLW5hbWU6IGZsb2F0X3VwX2Rvd247IA0KICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7IA0KICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgICANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbG9hdF91cF9kb3duOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogNXM7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogICAgDQogICAgLW1vei1hbmltYXRpb24tbmFtZTogZmxvYXRfdXBfZG93bjsgDQogICAgLW1vei1hbmltYXRpb24tZHVyYXRpb246IDVzOyANCiAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgIA0KICAgIC1tcy1hbmltYXRpb24tbmFtZTogZmxvYXRfdXBfZG93bjsgDQogICAgLW1zLWFuaW1hdGlvbi1kdXJhdGlvbjogNXM7IA0KICAgIC1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICAgIA0KICAgIC1vLWFuaW1hdGlvbi1uYW1lOiBmbG9hdF9sZWZ0X3JpZ2h0OyANCiAgICAtby1hbmltYXRpb24tZHVyYXRpb246IDVzOyANCiAgICAtby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQp9DQoNCi8qIEJvYiAqLw0KQC13ZWJraXQta2V5ZnJhbWVzIGZsb2F0X2xlZnRfcmlnaHQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgNTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHB4KTsNCiAgICBvcGFjaXR5OiAwLjQwOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmxvYXRfbGVmdF9yaWdodCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICA1MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwcHgpOw0KICAgIG9wYWNpdHk6IDAuNDA7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCn0NCg0KLmVtcHR5LWFuaW1hdGlvbnsNCiAgICBhbmltYXRpb24tbmFtZTogZmxvYXRfbGVmdF9yaWdodDsgDQogICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzMHM7IA0KICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsb2F0X2xlZnRfcmlnaHQ7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAzMHM7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtbW96LWFuaW1hdGlvbi1uYW1lOiBmbG9hdF9sZWZ0X3JpZ2h0OyANCiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogMzBzOyANCiAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW1zLWFuaW1hdGlvbi1uYW1lOiBmbG9hdF9sZWZ0X3JpZ2h0OyANCiAgICAtbXMtYW5pbWF0aW9uLWR1cmF0aW9uOiAzMHM7IA0KICAgIC1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW8tYW5pbWF0aW9uLW5hbWU6IGZsb2F0X2xlZnRfcmlnaHQ7IA0KICAgIC1vLWFuaW1hdGlvbi1kdXJhdGlvbjogMzBzOyANCiAgICAtby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmbG9hdF9sZWZ0X3JpZ2h0X3R3byB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDUwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsNCiAgICBvcGFjaXR5OiAwLjgwOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBmbG9hdF9sZWZ0X3JpZ2h0X3R3byB7DQogIDAlIHsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICA1MCUgew0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpOw0KICAgIG9wYWNpdHk6IDAuODA7DQogIH0NCg0KICAxMDAlIHsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCn0NCg0KLmVtcHR5LWFuaW1hdGlvbnsNCiAgICBhbmltYXRpb24tbmFtZTogZmxvYXRfbGVmdF9yaWdodF90d287IA0KICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7IA0KICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCiAgDQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsb2F0X2xlZnRfcmlnaHRfdHdvOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogNXM7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQogIA0KICAtbW96LWFuaW1hdGlvbi1uYW1lOiBmbG9hdF9sZWZ0X3JpZ2h0X3R3bzsgDQogICAgLW1vei1hbmltYXRpb24tZHVyYXRpb246IDVzOyANCiAgICAtbW96LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOw0KICAgIC1tb3otYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW1zLWFuaW1hdGlvbi1uYW1lOiBmbG9hdF9sZWZ0X3JpZ2h0X3R3bzsgDQogICAgLW1zLWFuaW1hdGlvbi1kdXJhdGlvbjogNXM7IA0KICAgIC1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtbXMtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOw0KICANCiAgLW8tYW5pbWF0aW9uLW5hbWU6IGZsb2F0X2xlZnRfcmlnaHRfdHdvOyANCiAgICAtby1hbmltYXRpb24tZHVyYXRpb246IDVzOyANCiAgICAtby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQp9DQoNCg0KQC13ZWJraXQta2V5ZnJhbWVzIHpvb20tZmFkZSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7DQogIH0NCg0KICA1MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgem9vbS1mYWRlIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTsNCiAgfQ0KDQogIDUwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7DQogIH0NCn0NCg0KLmVtcHR5LWFuaW1hdGlvbnsNCiAgICBhbmltYXRpb24tbmFtZTogem9vbS1mYWRlOyANCiAgICBhbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQoJDQoJLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbS1mYWRlOyANCiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7IA0KICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQoJDQoJLW1vei1hbmltYXRpb24tbmFtZTogem9vbS1mYWRlOyANCiAgICAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjogM3M7IA0KICAgIC1tb3otYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQoJDQoJLW1zLWFuaW1hdGlvbi1uYW1lOiB6b29tLWZhZGU7IA0KICAgIC1tcy1hbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQogICAgLW1zLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsNCgkNCgktby1hbmltYXRpb24tbmFtZTogem9vbS1mYWRlOyANCiAgICAtby1hbmltYXRpb24tZHVyYXRpb246IDNzOyANCiAgICAtby1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgICAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7DQp9DQo="}},"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":"images.pexels.com/photos/17486596/pexels-photo-17486596/free-photo-of-woman-and-man-in-suits-in-office.jpeg?auto=compress\u0026cs=tinysrgb\u0026w=800","fqdn":"images.pexels.com","domain":"pexels.com","tld":"com"},"ip":{"addr":"104.18.66.220","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.828Z","timestamp":1785129412828,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"images.pexels.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 05 Jun 2026 23:55:07 GMT","end":"Thu, 03 Sep 2026 23:55:06 GMT"},"fingerprint":{"sha1":"3E:62:75:25:D7:A1:F4:0B:0A:7C:2E:3F:08:FF:C1:B9:5F:22:BC:D3","sha256":"BB:66:85:21:1F:2E:9C:1F:4A:3D:9F:63:A8:60:94:D6:9B:FD:60:8B:E3:BD:B8:B2:7C:C6:82:C6:0D:66:E7:7D"}}},"request":{"raw":"GET /photos/17486596/pexels-photo-17486596/free-photo-of-woman-and-man-in-suits-in-office.jpeg?auto=compress\u0026cs=tinysrgb\u0026w=800 HTTP/1.1\r\nHost: images.pexels.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\ncontent-type: image/avif\r\ncontent-length: 30454\r\nset-cookie: __cf_bm=ToepAGHTX9NyM_Al6fRNdLkTQyTbGlX4UvO_qp6ssiM-1785129412.8512921-1.0.1.1-D88zVndD1kG9lKx0omanrD5rb5yseO.P079dY3DJGvW3bWCV_048pn0rVVKWk2Mt.HaSjW9H.MJFShtnyx.qDqj8H5c6qpFy1fP_p2ywWi8IdslPQ4hFv7e0nsjbdhlF; HttpOnly; SameSite=None; Secure; Path=/; Domain=pexels.com; Expires=Mon, 27 Jul 2026 05:46:52 GMT\n_cfuvid=Sblto7z_DiPVY_FVICf0QjiE0f7iuK68se6nzb5U8UY-1785129412.8512921-1.0.1.1-EVWXICdWUOeqopXOcgXdSPbRiJNfgHJt8YTjXWBJxlI; HttpOnly; SameSite=None; Secure; Path=/; Domain=pexels.com\r\ncf-ray: a2192cae5fc356b7-OSL\r\ncf-cache-status: HIT\r\naccept-ranges: bytes\r\nage: 283017\r\ncache-control: public, max-age=31536000\r\ncontent-disposition: inline; filename=\"pexels-photo-17486596.avif\"\r\nexpires: Tue, 27 Jul 2027 05:16:52 GMT\r\nlast-modified: Mon, 27 Jul 2026 04:09:02 GMT\r\nserver: cloudflare\r\nvary: Accept, accept-encoding\r\ncontent-security-policy: script-src 'none'\r\nx-request-id: 727d901e-ae5d-4865-8bc0-aac18cacf572\r\naccess-control-allow-origin: *\r\npriority: u=4,i\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]}],"data":{"size":30454,"size_decoded":31591,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"ca5c464d53dc6ddc374914e3a6c6846d","sha1":"001b6f20a08609628d89cea4cafa461199c4b872","sha256":"abf43d79b4cd80216051fe579adba7840646cea0f6160db943f28c020f85eb31","sha512":"6655f7ab69082c6b8d6cb2ef50e989403c437bcebe7e7ddf58dc781ce87fe8905dfd65d7c8991e0a905975fa0ac6fd283f0c1d4ba95c863604fff56879cc892a","ssdeep":"768:Xj79Wk8BFr46LIDQaIAfdeKBCr59FZ9ZJ+vGAQg5l:XdqFr4okQBAfkV939ZsOABl","tlshash":"75d2f14b760fc550d46b6f3999cac385c01b928f50aba365fac294995e540ee0ceb8cd","first_seen":"2026-07-27T04:09:44.053698Z","last_seen":"2026-07-27T10:24:20.334231Z","times_seen":5,"resource_available":false,"data":"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"}},"time_used":46,"timings":{"blocked":-1,"dns":4,"connect":16,"send":0,"wait":25,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/background/pattern-8.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.977Z","timestamp":1785129412977,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/background/pattern-8.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 29011\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":29011,"size_decoded":29277,"mime_type":"image/png","magic":"PNG image data, 462 x 514, 8-bit/color RGBA, non-interlaced","md5":"efa81862f72e1393458d4dbd8e482530","sha1":"9ca446753d6cd93c7383069285d5599c1f22bb86","sha256":"3ba1ad3ac18be4767eab994cae143a281637e0062369ee9b8eaeef0d1284af06","sha512":"2f33b6814b8888d14da450cef3a4a4001b57bf2e69036441b487b2ef5dcca0eebd788a597a97f4473a15052be34fe3c44a077c2d421398cba1a815c5d6ca661d","ssdeep":"768:y6ZYrp5Af2KR+07gEd1JEoQJK95I3SzynLqMoItThh:dNw0kMEoqSzm8IBhh","tlshash":"add2e0cdbd54a780b47635a726dba0ca12fad975c4f0aa0c860c9bb417263fd7e540d4","first_seen":"2024-08-19T19:39:35.212795Z","last_seen":"2026-07-27T13:36:13.669576Z","times_seen":84,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAc4AAAICCAYAAABGJC3iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkZEOTNCNDE4NEYyMTExRUE5MjNEOUZBQjVFN0M2NDlCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkZEOTNCNDE5NEYyMTExRUE5MjNEOUZBQjVFN0M2NDlCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkQ5M0I0MTY0RjIxMTFFQTkyM0Q5RkFCNUU3QzY0OUIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RkQ5M0I0MTc0RjIxMTFFQTkyM0Q5RkFCNUU3QzY0OUIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4+aYgVAABtw0lEQVR42uzdh3bcuLI27GK3Wjk622NPOuf77/96zp49M87ZVg6d+A+2qzZLEANAgrHfWkvLstTqQAJ4WCACEQKBGGpE/KX/j0AgKsYaDgECMUgwJWIFaIxDg0CErWAIBKL/MbLQ1D9b4PAgEIATgUAkdXmk6vSCvx8zoHMcIgQi/NUpAoHoL5prCk5Bc8K/B5oIRMAY4xAgEL1Hc6Iuguf8/ToyTQQCGScCgbiL5rrKNDWaJmaEAUEIRPDAqFoEor8XveuU3NO8sTLNG6CJQCDjRCAQSb3dUJmmoLnJv79uEE0MMESsXOAeJwLRPzQ3FZrXXI+3GMurFjJN4IkAnAgEorNobik0rxSay3++Lqm97lngiQCcCASic3V1m5LbK1fqZ22jCTwRgBOBQHSunm5ZaJrvdxjNC+rOQCDgiRh8oJAjEP3INGWt2Uv1M7PQwTl1b/Qs1sVFIONEIBCtoimZpqApmWYX0cRFOQJwIhCI1urmjkLzgn+2y2ie9SCrA54IwIlAIFpB81yhabpnT6k/XaHAEwE4EQhE7XVy10LTrPC110M0gScCcCIQiEbQFGjOGE3zs3lP0QSeCMCJQCAayTQ1mn3NNIEnAnAiEIhW0Dyh4UzvAJ4IFGIEAlEp1hSaMaNpIDX3NOcDQ1O3O5jniUDGiUAggqI5tEwTF+0IwIlAIGpF83gFsjLgiQCcCATCGc09un1Pc9XQBJ4IwIlAILzQFDBOuR7uryCawBMBOBEIhFemqdGcryiawBOBwopAIArRjBlN+dmqo6nbI4y2RSDjRCAQQBMX8wjAiUAgfNDcV3UNaAJPBOBEIBAFaEqmeaJ+NvR5msATATgRCEQwNCXTXOIwAU8E4EQgED+APEhB8wBoAk8E4EQgENloEtAEngjAiUAg3DPNYwvN70ATeCIAJwKByEZz8s/XIdAEngjAiUAg7qJ5qOqToIlME3giACcCgbBCskrJNL9bmeY3oAk8EYATgUDcRnMMNIEnAnAiEAj3THOp0DxiNL8CTeCJAJwIBCI/0zRozoAm8EQATgQCcRvNI647BkfTHbv+z9c9ZJrAEwE4EQhEOpoyEEjQlEzzC9AEngjAiUAg7maaMWeWOtMEmsATATgRCEQKmkuF5n3OND8DTeCJAJwIBAJoAk8EAnAiEN5o3qO73bOC5iegCTwRKFwIBOIumgZHcw9zg9G8Kcg0s+oVNq1uvn3DMUcATgSig2j61CM05MAT0fNAVy0C4Y7m1EIzKnHxiYtVJAgIwIlADArN+yloPmA05Z5mGTARwBOBwoRADBLNUQqaN4xmyC4/dB+2097huCOQcSIQgTPNuAE0cdGKZAEBOBGIQaBpMs3PDaCJAJ4IFCAEYhBomkxzvWE0gXJ7bR+OPQIZJwLhEes5aE6RaSJxQCBQcBCI22jey0HzYwtoAmlkngjAiUAATQAKPBHDC3TVIoAm0cOOoImLWRx3BOBEIHqB5k1H0EQjjuOOAJwIBNBEIw48EYATgQCaaMSBJwJwIhBAE4EAngjAiQCaQBMBPBGAE4FYITTReOP4IwAnAtEKmnXN0zS7qTz552vtn69rHH7giQCcCATQzEfz53++9v/52vvnaw48gScCcCIQQDMfze1/vhb8/13+PjSeaLSBJwJwIhCDQXP2z9ffnG3u1IgnAngiACcCUQuade+nadB8wUgaLF8xzpf8OtuMJ7ptgScCcCIQQJPRlO7Zl/w6ElfcqG4h8wSeCMCJQHQVzRHj2DaaEpcKT3nsDU4X8EQATgRildA09eRnBzSBJ/BEAE4EotNoykCgutF8wQgaAF+TW/er4Lmp/hZ4Ak8E4EQgVgLNTX49g+aVx99fWXgugSfwRABOBGIV0DTZ4htPNDWexO9VMs8pGmbgiQCcCMTQ0HyuMs2yaEpcq88BPIEnAnAiEING0/Wepg+eksXO0DADTwTgRCD6jKZMOdHdsyHnYcr9zYkjnnFGQ4yGGXgiACcCMXg00/Dc4M/m0m0LPIEnAnAiEJ1DUyALhWacg2dk4enSbYuGGHgiACcC0Qk0n6tM821JNH3fk2SZa/yZzWedezTEMYoK8EQATgSij2hWeT8azw1+rjmKAfBEAE4EostoSldp02hKzBSeE+AJPBGAE4HoKpo/UTLlpC00gSfwRABOBAJolow5P+9Y4blA8QCeCMCJQHQFTYPSO0806x6QM1f1EngCTwTgRCCAZgk8CXgCTwTgRCD6hGYb0z4Wqn6uIfMEngjAiQCaNppm4fP7QDMTT3TbAk8E4EQAzVto3qsZTT3lxHU/zC4sMAA8gScCcCKAJtCsgOea9TME8EQATgTQBJrAE3giACcCaAJN4IkAnoATgQCareFpPiemqgBPBOBEAM1W0OzbLiMaT5mqskRxA54IwIkAmkAzO5aq/gJP4IkAnAigCTSBJwJ4Ak4E0ASa9eEp9zyBJ/BEAE4E0HRCU1YEWiU00/Bcs36GAJ4IwIkAmqlomkxzuoJoAk/giQCcCKAJNIEnAngCTsRqoWkWU697wXagCTyBJwJwInqJ5hGXIaAJPBHAE3AiEB1EcxNoAk8E8ASciL6iOWKYmkRzDjSBJwJ4Ak7EENC8x5h1BU0E8ASeCMCJAJoeaMY4XcATeCIAJ6JtNA8puaf5FWgCTwQCcCIQ+WhKpqnRNPc0P1M3BgIBTeCJQABOxEqi+Vyh+QZoAk8EAnAi+hITSrpnm0RzA2gCTwQCcCL6iuaI/w80gScCgQCciBw0D1Sm+Y1Bk4FAXUITATwRCMCJ6ASack/zO/9M0PxC3bmniWwTeCIQgBPROpr7lHTPfud/H9KPKSF1ojkHmsATgQCciL6huUdJ9+wxY3aPf/eZM8JQE6yBJvBEIHobazgEKAOMpmwNdsxIGjDNvpqnjFtINF/Qj3uaZZbRA5r1xExdRK1bP0MgEIATkYHmCaNpYpuxvKgJTVnc4AZoAk8Eok8xwiFYaTR3M9Akxm3GWWEdaL4Bmp3Fc8bHe50RRSAQyDhXPsy9zB3GzCB2Snfvaa1xAxoi2wSayDwRCGSciF7HhEE0X+eUPhBkTGEGiAiam0ATmScCATgRfW4UBc6DjJ6HJVUfda3RnANN4IlAAE5EX8Nkfmf8vUHzXgqe5jEbQBN4Ak8E4nZgHufqxpIbxE1G04yinVIyX9M0kOY+aFZXblG5Qvesf0gvQBfLilwMYZ4nAnDiEABPRlMGDF3zz02WeMiPu/IsU3oZvddA06suRta/wBOBAJyIjsWCYdtReF4xnKZrbt8j6wSa5bLMNQVl3FE4gScCATgRGXjK/E6D5yX9GDxk/n9WABvQLIemHuG8tI4D8ESELm8IwIkIWKEMdteMpOB5zngeMapZeAqaW0DT65hvKDTnGQB1sesWePYvMBAUcCJqugpNw/OEs88sPGUg0BY3/kDTrRHb5H/N8Z/R7VWb+tDoAc9+tfMRYaQ64EQER1PjaaDco2Qt22Mr8zznSqhHzwJNPzSl7rksa4jRtoiysUbJspqAE3AiakAzC08zQOg743mP8TSLv+Oepj+a2yrTnJLbUnaxwhOjbRGuMVFo4pwATkSNaErMFZ5j/vc7g3mPs88Jo/nKE81VjBEl6wMLmr7bqUXq77vU9QY8uxfrXG8XlH8bAAE4EYHQTMNTMs8TzpqkgTSZ5jUOayGau5Tca7oueaERq+cj4InIiA2F5hyHA3AimkPTxnOfy8shJQvAy8jQoqkqq17H9gKgaeM5Bp6IlJCVwEy9xY42gBPREpyCp2nwD9TP3tGP7cjknifwdEMzRHauu22BJ0KjaW6f+N4GQABORGA0pZw8pdsLwRss5Z6nud+57YFnvCJ1a1+heUV+SxcCT4RPmOlg60ATcCK6g6ZesP0DJcvzyYAhM9r2kPE8R+b5XzRlIM9lYDSBJ0LHtkITg/QAJ6JlOO0VgV4xApcqm7Lx3CrAM16BOnWgMs260ASeCI2mAROD9AAnomU0ZT9NjaZczc4ZBLl/Z0aMHlt4XqQ04KuI5iXdnoNZxzxMe6pKl4418KwvdoAm4ET0A01SeMpUlZHCU0bg2niuApqHqk5d8LGIMs5LaECB5+qhucH18gqHA3Ai2oXTBU1KyTzT8NzIyDyHiubIQrPpAJ6rEbtct665/iEAJ6JFPAVNn2X0bDzNlfAJJfdBN/n7eMB16JDKDQRa5W7bCb8v4FkOzRugCTgR3UCz7NZg0m0rS8qZAQunlOy0ssG/jwdYf6R7NuJM87LGc1QGT3mNruE55swTePqhucn16gKHA3Ai+oumjecuP595rjOu5DKI4XpAeJq6c0S372leNnCugOdqxh7QBJyIbqH5k0LzDZWfC7awMk/B84aS9W1vBnBs1xjNUQA064w+4SnlB5GP5jkOB+BEdAPNTW7IqqBp47mt8DSVfcrfr1G/VzYx71/f0+wqmn3Dc1ICT5fRyVHP67OgeQU0ASeiW2iaxuptwGxQ8NyiZOPmCwZTNnHu4wLUgqbc0zwPhGbdkPVlkQRfPKOCch+VqBddCpnWhUwTcCI6AKdppJ6pTDMkmhrPG674sovKJYMp2x71acsjjSZVRLMNtLqOZ0Tlum2zcIxK1o0uoSmZ5hmaNsCJ6A6apnF6R/Xdd1zw1bLguc4NwYy/H1E/7mvJPc0iNLs+8KnLeC5Um1QVz7wMtO5VnEJmmkATcCI6AKdpMJ9amWYd9xtjK5uQzHOk8Fzw91HHM097IJBGs48jhFcFz9AXnE2jeQk0ASeifTgFzQ3G7F0DaGo8p/zaknleM5gT/lkXM0+daco9zSFMBegDnmuULJKwCFQHuo6nWed4G5km4ER0B80nlHTPvm8QTRvPTX6/E85EFy3iGRWgeU/VkTMa1vy5vmSergOGoprrUBNoSqZ5iiYNcCLaBcA0jI8p6Z5tA820zHOk8FyqBnLZ8DGLHNAcSqbZNzwjlXnm4Rk1UI+ayDSBJuBEdAhN6Z790CKaGs8ZQy4Lfk8VnlEDeOaNuDTv576F5pCnAvQl81yn9G7bqMH6VEeYkdo7QBNwIrqD5iOF5scOoJmGp3TbCp4yYGjR8DGLUtA8o9WYP9ene54m5jUjF1EzI3APOdM0vRknaM4AJ6IbaK4rNOtYcKBK42pnnrrbVhZJWAQ6Ti6Nn3m9ByuIZl/wlAsbyTzrxrNuUI9Upgk0ASeiZTSjlEyza2im4SndcVNuKLcY01mFYxR51AMbzVVcSLvLeM5V5rneUOYZoj7moWnK2DGaM8CJaB/NhwrNTwHQrLvhtPGUDXpNo7hNSTduXQ3ZGh+zVc00+4andO1vtJh5VilzZtDZLtAEnIhuoSnds597gKaN5xaXSdkJYsZX5rJxb1zxGOWhaf7ulLAmaF8yT8EzUuU86nj9vM9omjL2HcUMcCLarZjm5w8ouf/ji2ac8vxNN5QyVUXjecU/21WZaBwQzUcFaEYrXNb6lHkSl/eoo3U0UpnmKTJNwIlov2IKmrLKypeSaFIHGkjBc5vLpow4ND/T2yvFgdE0gzPOAmA8ZDyjli6osmKWk3l2qY5KprnP5QxoAk5ERyqldM9+Ib91X7u41qqsbbvD5VMGUVzT7XU84wpoPqZkLdRjyl/eLF7x8tYHPDf4ooqoO3u9RuqiVtBE9yzgRHSgUt6jpHt2CGhm4Wkyz3MLz6uSaD5RaJ4AzcHgud5BPB8qNL+hGAFORLsxUmgaZL4OCE3BcMlQ7jJ0OwpPWdfzwuOzmOd4amWap0BzMHjGDGdX8HzE5fSY6ycCcCJaRvNIofnNEc2+QBBZmee1yjxlcMUVJet7uuBpsHwGNFcGzy3+2U1L78XcCjCrAn0HmoAT0T80+wZAWrfrgqHcS8FTliw7z/msEwtN05hhpZbqeI47WM4ky9xoEc8nXC5N3fySU64RgBPRIJoTRvM75Q/BHwKaGs9Lhece43nJxyQLTxvNb0AzGJ7UcTzbyDyfcnn8qtB0Kd8IwImoCc1DlWkKmlkVckho5uFpELzIyDwNmj9RsjA40KwXzy7N85TFMra4XJi4rvk1nyk0P1co5wjAiQiIpszT1GimVcgholmEp515mgzzuZVpus6fw/3N4eBJDeGp0fyEYgE4Ed1Bc8mN/ywHoCGjaeO5z+V3X2WepvHa5WO2xs//lTB/rik8o47iuV0Rz7xyano1zFxq0zX7EcUBcCLaR/PAyjTnA/p8VbqtFgylnXne8DGTZeK+eKKJbLManqOO4hkznDv8syuPMhrllNfnjKbpmv2AYgA4EUCzq2jaeO4rPLcVmgvOAFwbcKAZLvPsUg9IpLJMXzyjDEijCmjiPifgRNSMpnTPAs18PA8o6So0YUbcblLxVBWgGR7PyDoXcUfKm2wQsMt4xg54ZpVVg6ZZSs/cz3yP0w44Ed1Ac40r9jHjADTzy7B0z0qW84mSe547BXgCzbCxtPBsO/PUZU7w3OEeCvP9pWd51WiiexZwIjqA5j4l3bOC5pAa9tBwmuk5v1AyECjm47jHx0+mqmThCTTrw5M6iueVyjx3+WeueKZlmuh6BZyIDqBpGp2TAaIZupHRaBI3Zp8ofZ5n2vJ8QLMZPOWiZqR+1na503gWZZ7yty/ox6Ltpoy9q1iugS3gRASo1Lp7VtAc6mcNheavfKFhntMM0PhKt0fbjuj2PM99cl/bFhEOz4jL9ojbm2ULxz+t3MnWdHsKz4uMv33BmebHFDSBIeBEtFChdfesaeTnA/+8odDUmaZe3iwLTxmB67urCiIMnhOFaNO9KVnlzsaTLDxd0QSegBPRApqmcTkdOJohGpYiNDWeplHcpWRheMk89yh9M2xEfbFQ508QbRLPvHKXlXn6otnGRSQCcK4cmnsq0wSa4dC0M89dzjx3KFkY3hx7M13lCng2jueEz0fTmWde+ZMeiH2Ved4riSZABJyIGtEUAICmO5oTRzTTMk+N5xV/vwE8Gz2Pdua5zmU/7sB7v7Ayzx1G822NGAJZwIlwrCi7KtM8A5rBM80sPHf4vWzzcZcNstcpmd+HKD6PUcXzrfEcKTyXHSiHMgJ7XV3UnlN3R83qlYwQgHOwDc8OJaNnz1cAzaoNSVU0dWN9xWia97LFx/+avzcXMlPgWRlPV1yl3G9YmWfbeL5gOC/4PeWNtm27bowoWV4S5RZwrgyaixU8Br5o/kL+3bM+eJoG0SwCvsnnZoqiWhrPyPN8SxetxnNWM55RAZqyuMHf5DZVJVR5960bY0rmxy5RJAHnUBuabYXmBdBsHE2JJWeZgqdptC8ZzA2+gp+jyHrjmZeB5nUn2pnnRs14RgVo6oFA5wHwrCPW+DjFfKyQbQLOQTYwW3ycZXWSxYoeB180pXv2cyA0ic/BgpIuWsl0rrgRkrmGwLN85ln0N/bjBcpNvnDZrBHPrLVnH1L66Nkm8Ywc68Ymfz+lZEWmPu7FCzgRmRVhUx3jK6Dp1DD8rDLNkGjameeNynQm/P+5ushBQxS+JyHr76TbdkvVm2lgPIsWbM+actIVPE1Z3VFlc426t/cp4ERUrgAyalC2L1qu6HHwQfOFhebXGt+bxpMouce5UOcNER7NrL+XLHOLj/+WOh91vF8XNCUuqN1u201K5peSyjhn1Nx0HgTgrD3W1bG9AZrOaMpVdB1oxhl4TlPwlF1WEPWgWYTntsLzJgCeVdCUv28KT/u9mmNxQMlep+Y2g9zyAZiAczAxUY1u6O6mITask5RM81uD73XJDfa6qhNyjxOZZ31o5uFpUNjh479dEU/7+X9iND+T+4pAUYnMMw5wTMwxOFI/N/OPr1AEAecQj6dGcxUbXV80nys0v9SEZtF50HjKgIuFyjyBZz1o6ufVXzaeO5xpLTzfXwg07ee54PKy74BnlcUJzEIp99X/T/gYIADnoGKkKsmq3ncog6aMnv3aEpr6cXO6vX/kAplnY3hSRuYpyyXuFuBZNEVG0NSbUJf9vBdcVg4Yz6WFZ1zxOO3ye5X4jkwTcA65QYlUBoMGNR/Nn6xM83uLaOrHL4BnZ/CcMlB6c/K0KV2umaYvmnmfVdZANvfHt/i50/7Gt8yYz/hI/e1Xyt5kGwE4ex+xamzb3O2+L2jqTLMLaALPfuC5b+FZ9D6qoJn3/Gau8SHX878ozKpT5jM+VmXsC3Vj0QUE4GwEz4iS3e7RiN5G85lC81vH0EzDk6wLISyo3fxxyMKzaKGKqmhmfU6D5j0uE/+mH3M9q5ZD85meqr/5BDQB5yrjuQoZiksjupaC5nGHsEx7vqWVeQLPduA0IQtU7HO9ksXYs/CUKSefW0LT51gdcN2QMvzR8Xn7dP4AJ8IZT+m2HTKebaEZN3QegWd3Gl6D54yhMW3XIeM5y0HzXcDP54Nm7ImmxAf6Me2kieMMPLOPS+6IaMDZDJ5D7bZ1RfOpheZJD9C08Ryrzww82/vsNp4HFp6+ixu4fDbz/9/ox5xKVzR1w5tVXg/5/crvTWZ8uiLnsatlekzJMoYx4GwXz6He8yyqdAbLJwrN755opl21xy2dR515As92P/u1hecRQ/akRjQPPdEsKq+CpsS7HDSjgZ7HOrLEsjFS7VThYhuAs5lGd0TDG23bFJr69eKWz+NSXZECz/bxnDJApl6ZLtSdmtA8CIymgf6F+v3bAL0wq4xnUWbv4uCEkrncTn+AaC7zHBKeUQGajxWaxxXR7NJ5jIFn5/A8oGQswTu6e88zFJpnOZ+1DJpRR9DsM54h0Zz5/BECeNaB5liheep5nLp+HoFnc41u0fM+4ExTHivdtjOP520LzTcUdmT5quFZFU3ZFHzpe7EFOIEn0ASeXW10izbLfkHJPc0vDNPIAU/9vFXRJEc0TVfyz+r/rz3QjHt+HruOpve64oATeIZE8xHd7p4dIprAs54GN/L4f8QIPWQ0TXenWcvVjLg9tPCce7zHMmi6lGEbzS5mmn3BU08VKdtmmK7ZTUr25PV+HsAJPH0KKtAEnnU0tkULtNtl8WfOND8ymvK76xQ8zxSebaIZq0zze4/OZ9TRtqhsm6nRvC7b9gBO4FkWSxtNKUsnK4Im8Kwn4yx6jl8ZI4Pmu5RyWoRn02j+ol7jVQk026ofI49z0jTiZdtKs23gFv/9VZVjCziBp10xfCpJFTTjgZ1H4Fn9s7qgeaTQzIosPGcNoBlZaMrvX/YIzXHHbAiFpsk0zRzNy6rHFnCuHp5RRlbp2y1jd8+6ohkP+DyuOp5RjX/riqYPnjaaf9KP+6JV0IytTJMKMs2u1Yc1VafjlstwpNrGEJlmEDQB52rgGWUgWbVyPfZEM16R85iF56psSRbV8De+aObhKaNtfRc38EHzVwvNbz05dxNK9sg1x2Qe4NxWCWkPq9zTDI4m4OwunlWX5/O5R1kWTZ8pJ/GKnceY0heGHwHOxtDMwlMWhn9eI5q6e/ZbT+rFOn8RIzMLdH6rlKORqjdl2kTzebb581yEPN6As5t4RtzwLkoWuLrCF814hc/jckXxjAI+tiqaGk97eb5NCrOM3hDQ3OAvQfOmA2VopN6PrPW9xucsdvxM25w1X4Q+3oCz25mnL551o6nXngWabniOLTzjgeMZKuMMhabElcJTXtNlPqUvmpEDml2KTQvN6w6UH/laWG2iLI+3KGhfzOfZqiPTBJzdb3RHJfCsC05BE5lmtcxzrCr9UPEMcY8zNJryGk8ZColdcluezwfNvx3Q7Er9EDQjzsyuOoIm0d1u2aVqi/Lw1Gie13WsAWd3Y6nwnFDxqv11oTmhZD/NCGhWxnOkLoSGiGfVRRDqQlMPBPrEaMo9z7Jr25ZBs8666hNb6iKi62jaeJo2aT0Fz0bQBJz9wHOs8MzroqijMgqaUk58twZD3MZzQnfveY4HeMFRNuusA80R3Z1y8pXuDhhyxVM+21FJNLuA5xYl3bMGzcuWy5/PPE0bzzm/91rvaQLO/sWCkgnJuqDUXRHXFZoR0AyC54Ir/Ehlnnr6yqriaR77C91eESgUmr9aaJ7x7+wBQ4eUvUiCHVXRbPM8dw1N3fPiOmpW6o2MBB7x55o1gSbg7FfmuabwnFH2iiWh0fTJNNFN64envue5tqKZZxU0o5JoSlxZeLpsSWZ3z77mDLZPaEZNZWYe2abvVBOpNzL3tNHPAzj71+DKdjh6K5y60JRM8xinIOi5XFp4zun2fdDlQD5r5PD7qmhGJdHUeLp228qKQEtK7ve/7cm52KTb9zT7jKb2a10916yBz/Sf9ww4+9XgzhnNsYVnKDhNIXymLqi+UXf3DBzChZB0M61R0gU/GRCeRbuRaDTfUvmpLFFJNCWuHfAUNM15O2WE/ixxntq4t6lHz5rP1IXu2RBo7lIy71S6bevGM0LG2c8Gd8aVYI0rxDRQQRE0RyXQRFTrRdB46my0z3j6olkWFY1nGTQ1ntMMPDWaZsGER5ypfq6Ixr4qB3XFBt3unu3CQKCqy+iZ2GG/5L70kj9nI3gCzn42uFMLz+uKBaVKpolsszqeGwrPmcJzXHOj2iaa5n7ip4po2hAVoVn0GlcpeJq/ea7QNOfH3Mr4Qj+6O8vGIz4GO1x/6zjPehk9mXISt1gGQuxyQlxPtvnzSK/Agp9znZJ7npiOgkjFczMAnlXRRFQ/l7oLfsLnVhqBvuHpuoxeKDTJI9N0Wb/ZxnOPkqX5DJRmgM19hvPG43l1POb3KvV1swY89YLtC2p2nqYcj9jKMkNkmqTaPfs+bWN4jtBu9TZMIfmuspMHJc4n0OzOuZTtrMbcWBM3zBO+uu7L1mR5DZVkmrp7tmqPRRqa5zmgu4wJMPXgZcbFQKTOWZlel2eMcszH4Zo/wwMFXYiEaKQuyppAU9bXHlsXEjIATn4e4uJA39awY8r1JqJk2g0yTsStWHIh2VINrOs9jDQ0v+OQtnouZ3w1LaMFb7iB2OTzO+vB54hy0CwaPet7cZCHZpTy3BpNl8zTPGaX/5WpKjFnnKd0e13Xoh2JpMtX7mu+54zpgu4O+Ku6M5LO7KYNnfMNBaPOLicW4iFCdjyZZrRrsoB/1VtYgHPAEXMBETy3HPAEmt3Hc0RJF96cz+t6Qw1haDhdp5z4wJnXPRvl4EkemacgvKfwPObPck3uW5EJmtI9+45udyVfWhdMVfDUeM8bOuey+bXs4TlRvSeRygRDhawQNEtp17b4GF9Sjbc4AGf/I0rBU26cxzloYvRst/Hc4vq5yefSxjPuaFlMQ1PuaYZC0157Nm8gUJSBJjlkiGl4HvLxN+fhqwNe5t8XlHTPvqX0tZ6v1AXTpMI5zupKrvvifaKgXLOy3tDblG2mZNMazYu6Pz/gHAacpLomtim729ZeESgEmhhRWw+eUz6HknleMqg7lHTjxh0sh11A076ozEKTcjLTOCfzlMywaIk+89if+RiY5zPbmJ0U9BxJt62MsI57Uicl05zQ7TmadeztKfOfb9T/t5tCE3AOC05pcK8Unrrbtg40EfXieUPJfDW5EDKg7lKYaUh1omnAuOeApg+ePmhSTqaZhWVWhip46nuexOcmb7k9uXAw8Zrrm6mH+/wZdvk55D7gTOFpL4xR9Bm7MHhszTKlrukvcj9YBs/tNIkm4BwenDaeciVmKuRjur32LNDsF54yd+1c4blFzc7NqwtNFzzLoEk5GEYOr28/XgYH7Skotih9fIBG8y2fsxdcD3dVZildjDv8c+LPte6I54i6s03ZesqxXtRUL+SesHTbnlOD3dOAc3hwpmWesvcg0OxfLKzMc4cbiWvOXNrCM+oJmml4RiU/p2Q1pJDb5HNwoh5vo2nq4TP+v5n/+YF+DJT6TskGCjKFYoef84yS+4ZZeI7If2eROmKbknVwl3yM1ihZfCE0aNKDtqZ6Axqd6ww4hwmnFGC5JyaPOQmMJu5vNofnNWc6a3xOz/hnB+Q3DanOMtdVNF1ex+fv7cxTFlA/oWQEMfExOOAvszzfS/7beUo9kjVkr1UGek7JHEiNp4xilWkebS6QIWjKVJRz9XkmdHvlolCxYUF93XSbCziHiSZxoX1odeWMqRsLPCOq4SkLXJ9xtnnADW3dO15EPUYzBJw6LlLwvM/nQdA85P+/pmRd28jhPMv0FDmnYwvLDYVmm3N7dxh5ed9nVvnTeEaB8NzkYy5TTiTzbPQ4AM7hovlYdeOccuFyneeJbLO7eBoo9/l87nKWc6Ua6fMazk1R9+YvDaD5b3KfN5n1fKG34bvg97Zntaeme/aIszGTZX4vAbhMT9nOwHPeQqalY9dC8zSj3AmekwB4bvLrxvx6Mt9V7nc2hifgHCaaj1SmecyN6yUl8zxlbiDw6yeelwrPfXV+j1QmGjdQ1gRNlyknPs9fJ5p1ZJ4HdHu5vB3OCl9R9sIirnhKt61eWCDi893WfU1XNCXmAfDcVBcop+o59Pq0Y2po0QfAOSw8pXtWzusJJZOt9YChtYqZJ8DtBp4HCs9j/tk9bmDOAjSsdaOZ9jqh0SwDls9z/aIadIkRn4u3Ad7LJT//uroAkNGkU2oeT43mnNuY2KG9qNJtq7tnT1IyywUlA4YawRNwDgfPtRQ07ftBS3UVWxZPoFnfuSxa79S+ir9IwdMgc19lnssAZSsLzTLds0Wf30bzLCB4Pgu9uzyXLG5AjOSWqn9yW+S44nGWLt9IZVtj9fw3DeK5x+/FB00bzzVPPIvQpJTMc0RYOQjhUPFMYXygzucpZQ+isPH06bYFmvWB6frzNDwP+VwacL4rPPe5LCxLvCcXNIvWnvWJUQ6aae/LF7860XzH328ylJuq0a+C5331GpcKLz1mYZvxrHtkrY3mcYn2QBZ6d8XTFU3dtsUUdjAS4BxoTLiCaTTPHQrYFd1dDzXOKOwR0GwMTN/Hzfl8azy/8c8eUHIPdOnxvvLi15bQ1O+vDH5l/y7tXNhoHlIyEOgDZU9V8TnuD/k4y8ILnygZp9A0nqYM7VRE0zfz9EUzDc/aMk/AOQw0ZfTsGbnfD4pT8LymdidSrxKaIaG18TxkPM888XTdhLotNLMyT9djWjbr1Mc+D00ZCHRREc/HXK8jPhYf1Pu+ZMTknAqeOxR+M2yiZKqTlLPvgS6i8/DcUMfOB00bz42a8MQ8zp6jeY+S0bOnlKxq4gqnTB7Wy391Zf1ToOkHaBqeXxWeB5wpLHuOpp1Bljm2kccx1o91QZMq4vmEz5f0Hr1PqbcXCs9jBdAuXwwvM8qJzz10G80ZX4yFbBs0nrJW74bKNE+p/BSTpUI49F62gLPHaB6pHgOdaUYZSOYVsBtKRqTJ4snAszpuaV9psc7n84H6OqBk9OLUEdA5l4UjC0/TAD3MwdO1ezbUQKCqaFa9ICnTRe6DZlk8DZqP+HVP+HWybp+cM2pyX1syT8FzYX3WyKMHg/jz7daIZhqeE1Xmq6ApIaNtZSP4aaC6ja7aHsaayjSJK9C5Q1dW0dXZjbry6/Kej0PKKE2FNgt/P+fsYaKO+To3ivf5fMviB0WvZ+Np/v2i8Dyi28u+5b1f0z78rjLNt4GOUR1olh0s5PL7PDSLBv644vmU0ST+3RuHHiON5zdKpnuY17pMwdO1B+PIQvNrzW3BjG6vPavnaVYNwXObk4Kq7Rrg7CmaRxaaFx5dWUUVcUrJFkfSvQE868HzPuOxzpmcQek9N1LfGDuzTJvssfqAG8m0yeZ24zfnxx2pC60vnJncZ0DXKHtAyZhf7zfOAMx7+9BRNMtmky7Q5g0EeqXQLHqeIjyfqkzz2EIzKqizZ4zcocJzwq915QFQlIHmlwbaAHsfz9BLCcpUlZ2KPWpRmatjRPtoHlJyTzMPzSoh66DKos2yrBgiXCNuuuQec6P3yrFxMw3rTwzpv3L+RjcIBr3/j8vOgv9uxs8jC5Ff8XPOKOmql40BLrgRvwh4PH4fCJrfC459WjxmJCWOuRGXTPM7P3fs+dxj7rnY5AucA/5+wefPdWm+I0ruL97wBV0TaMoi8Xqa3DUlU3BCxRZ/Rsmil2XLFjLO/qEpV7AXNb2WHi4uc0RnOAXBGnNB0zSSf3tU3gtuWPLuVVJB5nnEf/eZs5MFJft8ytX4kjMhyYBnAY9DnWj6ouiDpl57tsoyemmZ564Dmj6Zp3TN2922RRdn5kJqX2WaTaApF2qk3qNeYWgUuO2Zc5nfI7/561HaG0d0H80DheZljWjqijjn8qE300W4N+BRDpoGr9clnvcmEJ7n/DznDKhpJD/yl9wPnQY+HnWj6ZN15j3ORvM1o1Il07Tx1AvDC1R/ODxP3kbcgucOJV3zawzTPr9uVh2+z+eG+Lx/bKCXScZSSLleWBfudeE549eSvWyLVk6LssRH9AfNixq6L4rwHKn3ssApcQIzLWTE5ElBZhESz6gAz1lDx6QpNH2zShc071PxQCDfW177KtOUdthlqop9XqOczFPjKQPN0jLPBxaaHxrINCPVo5W23q7Gc4MfN/O8SHXBU/aytbfjK3xOwAk0i2JByX3VMfD0BlOjKZlm1YbJFU/duC5awLMtNIswC4mmb8b5lHsdiM+h7Kriujxf0WeR+Y/SbftZ4blv4flQfV4DmEx/qRtOaU/mOa/limdUsrdhxq+/r/B0fg7A2V009+l29+xli+9HT6geEwYLuYJpo/kq4GuXwbPJzLNNNH3xLELze87z+SDzTKH5nY+J7ratimeUguc9xnNi4XlPfV5Tlt5SsyPoXYDWI/03uT2cFpxjn6k3U64TMujLeS9bwAk0y+A5Ap5OV6Z1oVkGT2oQz66jaf/+Fwc0i7ByQVOPnn2pepKawPOTwlMvrmHKzxvq7rQzwXOdktG304Jj77PYQyk8AWe30ZSRlF0qxALnKuPpi+brGt9L1/DsCppFo2ujCmj6ho2mfREVCk/KwHNP4bmt2v0bqna/vS08JfN0Ob8udXXKZV9WSyrEE3B2D025OuoamroQS4FcxW7bMmjW3TB1Bc++oCmPawPNlxmPqwtPEycKz5H1mLzRtl1rd0w530jJPKvUVY3nlMvDIR+TG8DZHzRNXHYUTTvzlOxzlVYXKqqMj+n26Nmmom08gaZ/pumLp+9m5zrz3Kbbax9LBuc6z7NLeNqZZ6iYUrKMoQAqU2JkE4z/TPcBnECzbCzpdrftKuDZVTTbxrMLaLqeIxtNc54eMCqvAqKpR8/mZZpVMk+f+6uyTdmSEfisMNi18OzyinJlMk+fWFCyopNcWOxx2T7gY7UOONtHc49u39O87tH7X65Q5tl1NNvCs0toFp0rjWZsZZpdQLMOPH/iC4OIcfw33V5hSO+qoheG73rmea2Oy4hyulUrZJ+mLsu+tmdcR8z/jwEn0ASew0GzaTy7iGbW+cpDU7pn0+ZE+mZfepeT4xJoVsHT7sJ9bqH5JyVLKkp3pMzzXOs5nlENeMrryFKAshTpC8DZLpq6e/a6x59n6Pc8owI0H3Jj9LpD77luPPuGZto8zards3oHoshC0+WeZhk89/mcLHI+t/ne7EBzz8o0Y3WxK1NVDlXmucag+uyq0gU8N/gCqI7MU4d5HbOY/hhwAk3gWR7OrqJZN559R7No7dkyYWeaoXoebDwnlNyTlXuWct9ygz/nbwyg/H3aOrgyVWXHwnPCx+aqh5nndo2Zp6Bp2rYPgLPZGNPdgUDXA/p8q4Rn19GsC88+oWlCd8++qQnNJxaar6lcN68rnqSQfEjJ5gEPuH2Rdt2cw78off9Wqa9nCs+v/LeyY851T/EcBW5Xb6FpjivgBJrAsxyaD7hhet2D9x8KzwtuQPqMpnTPHgd67Sd8XAXNNwVQlcVU4xmpz3TGbckZ/0y26TIXdH9T8TZlknlu83n9Rkm37aYDnhF1YxRuTMl+npJ5hmhf76BJhHmcQBN4+jbKj7ih7AuaGs/rinje48a0b2i+Vmi+9kCzCDpTFu5baBa915B4mn8/cua8r95LEZpZmafg+Z2S7QQ36fa2Xzq6NhVN8NwMhKdB8zm33+91eQecQBN4Dh9NieuSmecZJfMAiYH43sHzo9E85O/LoOlSVh9xr4NA9Tbg+/fB84gb+IcZaMYe9fWcj9M+n9+xhefSatfW+Gdxx9odyTx3qHy3raApmeaZ3agjgCbwvNvlNDQ0y2aeMrhmU/1M1vOctXy+8tC0u2cFzbSMz7dcPuQLiZihelfD5/DBU1YEOk3JNCPP+ip47vHx0qvmyN6Zslj8grp5DzTmtlbw9M08DZo/8ef+kNazAjjrRVPP01w1NPuCZxqYWWh+L5lZdDHzdMHTnC89EOg1N0RNb4ZdFs0jbjzfKDSrxgNKRuie0t2Nn6OAn6cIz10GTOIVpa+i47M3qeApU1+OuS0bM5hyH3VBYVfs6Qqe65R0z6aiSZiOAjQbLMQj6tY9EddBDY8Vmu8GdE6K8DTn6Te6PRDomJrfDNsVAZlysuSLmyOVaZ4EKnP3FMxn3LCGRNHnsc8U4BJH/L5mns8dZcC8ye3Yqco8x5R0hy570O4Inrv8Ga4c0DSP+5iF5j9fTwAn0Gwq9Nq2de+qkoWizwLZguaDgaCZtkdh1mjbNDSlEWlyM2wfNAU0QXOTM81QaB7x8ZCM7FNNWaXL4/SSfidcPvU9z7NA50Pw3OGysqbq8pT6M27BfI5tSu55XmWgKd2zWWiO+NivAU6g2QaeIbYky8MxDUrf7rAhZZpRxr+UgqdB8RfKn3LSBp5tonnA9TrmRvhLDZ/D9XHPLDT/5mO/LMAzLsjMsuKSwdng15iri985dX/cAqnzloWnoCmZ5nkemuaiCXDWh+YF1bv80xAyz7KbYUcO31eJvqIZZWSWRQ2yxlNWpSmactIkni5oykCg0GiaOr1LSbffN7q9zF6TeD5NQTNW7U0WnnGF97PLXxLndLvbtut4yufLwnPCFyMj7kXIQvMJP9Y85hJwAs02Iqby3baRR/ZZJmQVmDIDgaoOEgmFS1TiPUw5s5IJ9H8xjHnRBJ6uaOqBQGXQjK0MRdDcVmimPW9Uw2dLe4xe0i9t9GwenvOS72WPX3PJYMiKQhdcb2WuZx/w1MdI43lfssgCNM1jPnM5wKhaoNkJPE2hXARqaKqi+ZCzirc52eheRiUrmtLSBJplXlsWBd9TDaDsxNHkZthV0Nzkc1YWTTt2+DllIMwZFa/CUxeeOtPMQjM0nvtcH8zrvFe9EhspePYl88zC8xP/zAlNwAk0u4DnyAPPOiGSTDMPzWfciO3z+z3NeZ/2zhlNoun79/ZAoBNqfjPsLqFpLhrW+XNfZzSqIc9F5FAuBc2XDp+xKp4HXNZlhLJu02Q3ki2FZ1+7bYl7lq4y0DQXKxMbTcAJNLsQS4XnpKBy1wWQNE5fC9B8wg3HjBvvPDybALQONM+p+c2wQ6Dpu/ZsVgO/RcmKOLJYRBPnJcro3XjEvxM0XXpx8vAsOh/mfP9EybzdtM9/nZJ5ykpCfcLzOqO9ETTN5/liowk4gWaX8JTKt15Q+ULj81Rlmu8K0DTn+A8Gdp8bmTw8qwzKqBvPLDQl2sKzTTQ3uQzK5P5Zw+dGP14W3ZBM81XGBViccpGWh2fe+TDH9zn/zcuCi4Y0PHXPUR+6bdMWfxgrND9nZKOAE2h2JhZcWMcq86zrnpJ8PaW79zSjHDT/RcmyY8c5eMYVKm9TDbRG809Kv2fbNJ5tormh0JxR2KXkfO83y+hm4izxtWOZqoKn+fkLfuzfjpm2xvNSZZ1F9bfLbfsjlWle5T0QATS7hucaZ55pQ+mrZFj6b7PuacYFaOosOQ3PuMT7arphttE8K2gcq+6q4oJn22iOuPzNqZ7FOVzPkayDS3zM3pS4EIusv7ng/2fhaaN55fGe9T6YNp4z6g+ezmgCTqDZtYi54Zrw1wbdXqGk7L0j+++y7mnqSv5TDppFeJZpSOueE1gGTclc6s4860Yzr/Fep2Q+cV1oup6v+5Qso3dBxduU+bxGFp57fJxjLg+XJcqXZJ47lHTbrvHPZtT9pfnGXLYnLmgCTqDZVTxnXOn0lkahGhBXNB8XoFkFz7x5lnWtbVoWzbozzy6gKbt8NNXAp31mWQc34vblHYUfVGbjeY9u3+O+rFDOBM9duj1gqOt4Cppr3CZcuf4RAmh2Gc8JJTvRu3b7RAVopk05kb+x0XS5N+eDZ1TwXkOuaVoWTfv5Y9U4hsw8VxHNtON7yGWHGK8PFHahhTw8Iz7GpwHKm8bznJLbLl3F07TtD/g9fnNFE3ACza7jOeUG0+C5xQXbdZCEa6ap41kKmq5YZ+Hpul6u7+pHPsD6opmHT93dtk2hGfH7bgNNHfvcxhAf189U/4hyjSeR+/6qLq9/xedLnlNvhj3tEJ6l0QScQLNveMoAhLhjaLpknnVkEJHD70OiWQbPKAdPe17hqqGp14E12dqXQOfdFc8pH+8R/1sHnmdW5tkFPDWaX6nEXF3ACTS7HjIRXVZzKcLTdSBQaDRdMs86GsEoEJr2Pc2izy+LA+ThaU+NyMNz1dDc5jItx/J74Isml7iqEc9LSvbz1Hi2nXkKmmPONK/LPgkCaPYh87zmxsY0fjuqu6kIzaK1Z9PQrNow+eBZR+YZ6p5m0XvMGzBkoyld0RrPMTfWu3ys9C4nW5QsoxcazbbnGG4wIMSInKZcuAwNz1NK5mjLgL+m8RzR7e7Z0ls+Ak6g2YeQBu+K0czCMwqEJlmNfV14RoGPURqa9opAvvhEBcik4RkXQCB4HlIy8lL20yy7NVhf0JSpVnIc8spwH/Asev1LvgiSzFPw3OZ6t2jouAdDE3ACzT7BSRaeeuj70nqc3k/TBc0/qJ59JIsGDNXROFRBk1Jgjx0aSvue53cHnOZ8/jYUtOv8/6GiKTuJRAxG1kjxsnhWmb5SFk+X17tgPPf5vEq37VZDeAZFE3ACzT6hqTG65EZ3nZLRe7JB9iMq3oTaRnNa41W9jeeE/Lofm0TTBjLOaJzTsmbfAUO/8ONibjgFlU90e7PoEGjKlJOurGKzdChzVbPPruIpZWNNZZ7XNeIZHE3ACTT7CKc0PBcqY5FuIFnj87gAzUfcQLig2Qc8Q6JZlNFEOdmnxnOfsgcM2QOBZJ3YmL+/ILctsPqGplyMVN24fUh4yubYdWSeI0oWNwiGJuAEmn2FU2eee9xIHvL3JtN8n/E3siGwL5pdxjMNzbOc9+ozCCXKyTSzIi/zFDRlWTk9eva9AnSPz+18YJlmHfWgb3ieM5RyYTXh8xW623ZcF5qrDifQ7H+DseDzJvcPl9wYLzPQfMSV33VFoK7jad7L7yloZr3XuOT79/07wfMB3R4wJGia782OHzJ69jVf8JyqOrnDzzEHmp3A84gvZkJ0MQueh4yabOqwQ2G6bSvP0wScQHPojYVpfHcp2Utvl+7uUvJEZZp/c4YjK7Zskf/u9V3AswhN+71mzdOMavq8N1yvBM89SrpnNZp6INCCG9VdPifb3IC7NqQTShZsHxqabeMZ8b914Pk9A88y71kv2B4801xlOIHmcBqJh9wAG4jeU9Jtu894LilZAGHGX0/56lng3OfneEzJ/LKi+2tVG+SqeI4c0cw6lnWtg2rHlBvaR3xs7XmarylZ3CBSvQjn3IBGKXjGDmj2cS9I4HkbzyuFp+v7lq3BJuSxYDvgBJqr1EA84AbYgPOJG8szxmSdz/MG47rkShlxhfrA0H7k/8uo3EOueGPKHlwTqkEui2fWPU3XY5k1TzOq6fw9pWSyvyzcb6Npvy8Z/LXNz7FF+V14q4TmkPCMKb3bVqaaXapzXvS+x3zxa+r+5zrRXDU4geZwGof7jOYp40dWtrJPyfJ88jzmcS8ZGVnyS7oHb/i5vlByf2SXkntzodHMw/O0BjTzjm+VyfdFz/0LN4jEFzd73DC+peIl5mTwlyxLl7XazCqiOVQ8j/hCdk1d/Or73FFO2/6kKTRXCU6gOZxG4Z5C81PK3yy4Am2qn7/mq9miiPl5Z5yp7qTgGTpc8ewjmkfq+MsALlnoQC9wEBfguamQ1BubT7huD/me5hDxTBu0dsb1LQ3Pyxw8zfl/xmXhE2XvKQo4gebKNgiy2e8pX1mmxSN+nJ5vuEnpK9FkDZC54jLykDNPWQnHZXuwMo1bXIBnU2iG6LLVaOqBQCajeMUXMPe5TrqsDiTrFK/z/9f4wmaN63Zb+2kCz3J4Ro54fqFkqkoWnqYM/MSP+dgUmqsAJ9AcTkNwxF/SpZqF5n2VrbzlBnvCKJ1R0kVb9NrX3BjkZZ6R41fWZ9K/z8o8Q6OZ9XnrQvO+QvOYkgFDMhr6tAA9WTBgqjLWEd2ecrJElekNnlSQeZ5yfbvH9Vzuee7T7YUxBE3zu/f8u0ZhAZqIrjcCRwzHWQ6aDxWaMTfUF/w3++rKtaihTss8H1F+t23k+bmystY0PO/3HM0tPhf6nuaMj+0RH9czx8xzxvVZMAWaw8Vzm8tPGp7mMS+4TjeO5pDhBJrDqfyH/GUa168Zf/OAK1msGm0ZILBQeNqZp0tc0+1u21B4ZoXgecDvdbMmNMs2uFlZs31PMwtNG89DxvOcsrvS9f/n6rwCzep4Vjn3TWWenynptt1XF8Lv2kBzqHACzWGhuc+Nah6aR6qRfUN3R9UJnrtcAfdK4Dnl1zKVOe/eXIhBNjF/7g3+vz16uCtwyt+lobmdg6bEVOG5Tel7rGZdXMSoLsEzz67iacrTJ8ZywhnoJ0qmb0VNH+ChwQk0h1PZD/jLoJk1IlampUim+YayVwrRq9IInucl8dzNwbNqJbbvac648SiaqtI0nlloykCglwVoxlbmuc8ZqiueiOrnMxQ4IfGMcvDUZklZmQf+LCsHJ9AcFppyPyMPzSOF5jsqXl5L47lWIfPMGhUaAs3/4c8u3bMfyX2eZ1/QtGPOddWcl01udNENOww8ZyXft77/fsF1TtaejSjptm0Fz6HACTSHU7n3VYXIanxlWoqg+Z7c16RcWnjulsw876vMMySau3R7a7AFv0ZdeIZC875C87jgOeICPNe5IUbm2X88L6jahgqmjv7O/95wO/+ZknmereA5BDiB5rDQlDlbPmj6nm+9pJvgeVERz2WFSpuFphyjuvCMSv5N1kAgQbMseIKnOS8bfJyB5+riadr2/2Ug/+LeFxkw9ImSzbAbx7PvcALN1ULzyELzQ4XzrfEcc4X06SIUPO9R0m1bBs88NO332zaeIdAs+v2Cj+sW3V0pCNF9PCNKRqJXwXON0dxgNGXU9Qkl9zx15lm0whDgBJqDq8R7quAf56B5oBpfXzTT7kUuKFkPVXai9xmcUhVPjeaC0bzIOV5peJ4EPhdtZJppmadpZDcVnoh+4KkXECmLp0bzT0ZT3/M84boqU1XGjOcuFW+AvtJwAs3hVGAfNCXT/FgBzbRM7oorqeB52QCermi6ZJ4nFc6Dy+IHaWjqgUCuaPo8ZsEN4Doly+whuo2nXZ7K4JmGpv2+slYYmtDdXVUAJ9AcJJq7DFcWmocWmp9yznfa2rOu8wIvubLqDZRds0dfPG00/6D8dTb1Ornyfqtuhh0Kze8By0accl7mlOyAskD1aaR3oSyeUUU889DMwlMyz69cd9eawLNvcALN4aF5mdPoywIIpDLNaYVspqjRlszTlC/ZA3Lp2JC44imbUO85oBnnvHYVPMugqTehLoNm7Fk+9OeU/VSJME2lKTibxtOc3/+n0DxzLFOCp+znKXjKZti1dNv2CU6gOZyKu0tJ92wX0NTPIztxmHK2SXdHdkYV8PRBkxyy5zJ4lkXTnnISGk0XPMeq5wExHDwFzXVHNLMWSdB4TlTPUfDMsy9wAs1hoSnds11C08ZT9nqUDZSr4qnRXAZAsyqeXUQz7/EC5ghwDgrPay5rrmgWZZ4HXD5HXBek5ygonn2AE2gOD81Lyp5KccjnWyrEpwbR1M97Q8mej1XxNI3BrwrNf5Pf3oFFn9N3wFBUAs28BdvrRtP+PfAcDp5HXMd80czaz9PGc60OPLsOJ9AcTiXdpeS+QxaaB1am2Qaa+vmnCs8Nuj2n0Oee531Kdjn5MzCaeXie5rzXqEY045LH2+dxwLPfeM4omV5GXLZmFd+P4LnFz31cF55dhhNoDqdy7nmgKY1hm2jq15lxWUzDs6gxmVKynZn5m7/If5d6n8YqazNs+55mFpo/U/ro2a6gaQfw7CeeBrIXXKfkd2VXGErD85zL7X4Knjch8OwqnEBzOLFHyU36swBoNh1l8TQ/e86fXRqMLa7IywqNUFEDVrTCkA+akmkeexyrJhpv4NlfPE0dsgcCVV2eLwvPLa4HJwrPzRB4dhFOoLlaaMqi7lLgP1P3VoqRDZQFz/UCPM33zyi5p/k3l+MHdHtXlbKbX0eUvaVZ3tq2Wa/3Swaaf1PxQKNQaEUt/S3C/xiWPd4TC02DW4jl+bLwlG7bPYWnHrNQempT1+AEmsNCU+4r5KG5pyDoIpq+maf5ekI/7unGnLFdUfqWZGXWts1DU3/vujB8HpqnDsekK40+8GwOzzLHOm3KSYjl+Yre17nC81TV30p4dglOoDksNGUO5HkBmtIAf6F+rEkqeK5R+oChx/Tjfm7axtp6M2zz2fOWqoszQEzLctOutiPKvudZFs06oaz63MCzu3iupWSaIZbnc41zbo/S8JyWwbMrcALN4cSuyjTPUxpzQXNX/c4HzS5kOTJpW1+5EmeTgmbWHqE2nicpn6kKmvbv0/A8GxiawLN5OF0fO6L0FYGqLs/nGxcKzzNKum03yuDZBTiB5rDQFEjOMyDYS8k0+7iA95zxlMzTfG4ZCFS0CL3g+dDKPLPumbqMis1r0ARPGYR1pC5cXlEyXeZlzWiWXUsYePYXzxdc5tIuyNrCc9fCc90Xz7bhtNG8BJq9jZ2UTNPOktIyTZ8K0aXRk3LPc0LJzgw+2bM0EA/4mHzPgcUHzayQ0bb3KVn39SU3TDsM6GnKewiNZlMNP/BsH0/THpjR2mbswqeCc2Xjec0XeqMa8TxWPUfr/PxOeLYJ55gbUo3mNcprb9FMyzR17Ck0TQX5Sv3fKkoWSZC1bb8pNH12VXnIFfg0BawQaMrfyvQYXQfNOXnP7z3kcakD3zJ4AtD28PyJko2olw7nKg3PQ088Xd7zJdeDbW6HpP4649kWnIJmBDQHgeYGo3mRg+aOqhinJc53V+fqyfJ89k4Mro3OFaP5kC86ZuS+OpFPo2bP01znhmPOmWeVYxy3jGRajKj4PjAiHJxpF3k/c13/5vi3Np43NeI5pWS62AkluyKtcZ1Ydg1OoDmc2FaZZhaastSeTDiWgjq0iCs0OjLHc101MiHRNAOB7vH/X/JrmPNxQMlKLmeBPncXYkxJTxYWR2gHzy2+GPzMF4c+vQRN4Lng+rbFZf9GZZ5jxjPOuyoDmoiyaBZlmrv8uAUXzjGf85j8tofqY+Pn854XjNk+IxYaTVl7Vu9sss0XMdeM6tMSr9tVNMeqAY7Jb7EJRLVzLI+Xe/7XJf7WHhthLrT/pmR3nN+5bfEdJGfHJSUja+WCfkHJfryjLsC5BjQHE1t8dZaHpgwWmnNjLXsp3qRUlqKtpPrc6Li+/xN1sVE3mkTJPNs/OSMwV/KPe46mtGlRSuMLPJs/D0TuI1WjFvC85t+vUzLv+YySbQA3s4xsCk6D5h7QHBSaU8pesHxboSlXcQLnvAAZ32y06+Fzr1NAqxtNycxmfD5k8fk8PPtybubqGEwof4Qyor4LxoVq+13/piyeZevgMuU9Cp6xykajNuAEmquFpiwKIJvL6sWUFyt2vHwa6bk6flWjCE07YzTn5TVDup/SGPXpIkZGOgPPdkP2r930PHdl8NyrUBf1yGv92ud5eNYNJ9AcTmxyIzSl/Jv9C1Vpdq3CiAYrO8bWVXBZqH91RHNmXWnf4/bAPr99vb8MPMMezzJwyrZ6vq+VNyUrJJ6yW8sy5THmuS+UY7e6beuEU9DEPM1hoLnugKaErP40UhdOc3UFh7hbgTf4+2mF59DL6BVlmtd8TmUqzBFj+nYgPQPAs308v1GymlhVPKkGPDf5/7Oc95GKZ12NmAwEAprDyTRnnudwRsm8KMlUN7hRXpUuW5+G+R5X/Hcljo8vmpLZHjKe+3x+3tDte9BDuM8sAz0i/ndZ4Rwh/I6XaS/MSlXbVG6BjaJ5uGlTVS49Lj7vcfv2hfL3151xPZHNHRZ1wGmPnr0AmiuHZhqeY5VxTtHI3HncCz5eHwOg+c3x3ByqnoQhopmGZ9q2bMCznnK95IvAB1R+rnBU0Dsgi4/44Clzl5/wY08dPuOML/xN+zUJDSfQHE5sULIEVZVzqPGUbpV4RbJO1wbmPn+9J/fJ4r5o2lg8oh9ThkycW43HEBcNsDNP4NlM2dYrY0WUvSRn3uvUgeczTgzyenjsJRsl81wLCSfQHBaakmmGWHR/TsmN+Fi6O2j4q7q4NC5mpPKvXPHfNoTmY4Z6ylmALD029Pq6pGRxBODZHJ5nXOcfVcSTcsq3D54GcdNN+4WKN2u3X+c/mWcoOPU9zQhoAs0cPOXqcbICeBY1LOaK93/5GPzpkYXbaP5N6fc0s9C8xw3KK27UJlx/gSfw7CKerq+h8Yy4flxYeD7kOmAGF31wfG57UNk0BJz2QKBzoNlrNGWR4zq2d1tYDdaQM08XNP+HH/dvz+P9qyOalJNpvqTknuYF47lH6as7AU9EVdRkcwfBc0R+9zwjx98Jnkd0ez/PKb+uWVrSbCf2puTn/M+/VeEEmkCzDJ66IA4184wK0PydH/OnZ50RNPPmaaZlm1loSlzy+d9hWIY+gAt4rhae6/yaBs3XKX/rlXlWgdN8+AOgCTRLNlq6IK7xz1ZhmT2D5m/8mL9qRFOHGT34IAdNCRnIscXnYzbwcg88m4WzKp4+69LaeG6zUX+H+Bxl4RQ0MRCo/7FOyT3NJrOMpXW1NxQ8i9D8lR/zN1ds18rqMk8zLdt8YmWas4LHX3O7sEX5awsDT0RVPCcN4LnBZZn49S5CtHNl4LQzzQvyG0KPAJq6sY4HlHlGBVm9RvPao8HxRZNS0PzbI4Occv2W7ZaGPnUIeDYLpy+eaevJZl346cc+5ueWe/guU1WcPocvnOieHRaa0j3b5v0sjaeeshIPqOHIQ7No6bcyaMaeaMY5eE4YluXA6wPw7A+eLq9t0HzG9eUvujtVpSjzzH09HzhtNM+AJtAMiKcu/H3DswjNX/gxLzPqTFSApjkOr1LQjANnmnbI4hVjGtY9aODZHTjJEU+fwTsazZeUjBS/dsSz8LVc4QSaQBN4lkPzZ37Mq4I6Yz/Pz1ameVyApb7SfuCBZtHzzbnej1Yg6wSe7cAZEs80NCVuSmSepeG00TzlF0IBApp14SmVpOt4hkLTfq6fuVIT/60vmjeMZqiBPQtV/+MVqCfAsxk87ccW4Vn03I8y0LQHDF3yRakLnhGldNu6wHmkKs0JDX+IOtAEniHQfMGPee3YOyPP94KS7tnXVG5xg5BoakxkZTDgCTyr4pn1mDw8o4poSpg6cm7heeJTZ1zg3FQFaG49OQoP0FxFPF3RfEVu82I1mpJplkHzhvLnaYY4L6tU54FnvVmnL55RCTSz2gxJAGV9dclEi97vf77GDg+64YZ3xP9GyDqB5sDxjAq+8tB8rjLNG4/XEzQl0zx2/NtHlL8ikOsx9sVzVdAAnvWgWfRYVzxtNF3fx32uq8R15i153MMf5zQaOmQi6ZiS+TBTlBGgOUA8yzaEVdB8rtB844mmXrC9ycUKgCfwrBtPvTC84BlZPS1ZaOZd4JlxAD+rzPNfvu3j2ONDXCs814An0BwgnlXRJIbPF80D/jxvPdB8qNB8XQLNuMXjBTwBp+tjbTzPFZpPU9C08UyrNy8sNL2XGR17fljgCTSHimcVNH/iv/dF8ydGkzzRNFfMR3xu31D93bPAE3i2BaeNp6w7+ywHzax4zHWuCE2zS9Dv/LtpHpw+H1TwlFVFgCfQ7DueUYVj/bwimpJpnnigecgV/60Hml3s3gaegLPMfp57jmimdeu6orlO2cvzjUYlGzDzpmX9yk1+MRQYoNlEoyVfsbpwa+tYl+2eNRVYNo72QfM+Y3tTkGnGKV91X9SsSv2PKRkcKZsTRCt6LJq+4JplfF90seiLpol3/O/v/PP/oml+Ni75ASTzlNG2Y/7CaFug2cfMMypxrAXNtyXRlMrpiuY9RtOc2/fqwrVLcyqReSLzdP3svsfH1JsnnLSZLPAhP8d5wWuUQdPskfuNjTvir0tuW81jdscVT7CMthU80W0LNPuIZ+R5rOWeZlk0Y8bPFc0jRtNU/A/U7a2+gCfwDA3nMwZQumf1fp55eD4qieaZ8u1K4Wm6bs1G78fjACdXz/OUL2SeQLNPeEYex/oZP/6dJ5pPrUzz1APNPa5TH6kf+2MCz9XFMwr8OBtNiaLNsKuiqX274Xo44d//FQLOmBvsiWrAgCfQ7BOekeOxropmzH/rumnvIVdsc34/0fA3lQaegNMFTRtPu9vWF03zt39l1EtzPp9z/Sd27iIEnJGFp2SdESo60BwInuuMn6A59XjOp1xBBc1zx789UJmmQXOBIg88VwjOIjTTMk89VcUXzdMMNP/nn69dfh8fOPM8Ggc8oTLaTGeewBNo9h1Pc6yf8O/ee6L5rCSah1xZTX36AjSBJ9DMDY3nnoXmNOV1bTRPHNCUvXSvQsOZhqdknqj4QLNpPEcl8LTrwkSh+aEEmrsl0Dziq2ZTj76i7gDPFYPTF02JLYWmOQf/55hpuqIp5/E/A4bGNZxI4Ak028QzrpB5Rhaaj/j7D+R+z17Q3KFk9KxPpgk0geeQ4fRB03VOrL6nKdvfmX/PAqMpcTOu6UTG3LjL5OAIeALNlipyGTz1PZNP5DfQTbqLJNO88ETTnNtvqCvAc8WyzRBoSvdsRHfXtg2F5n8iFJxRTuap8ZQChQCaTeNJjngavO7z95/Jf3T4Fn8RV1qXvz/kv5kBTeC5gtlmGpouz5m2uIFpH+0BQxQSzZBw5oVp7CdW5gk8gWYbeK5lNGDmZ2bpSDOSdYeP9VcqN7Dtisv7OlfCovOmu2eBJvBctWwzC82i55WVhATNP6x6pvE8ckBTltYrRFPD2QSeyDyBZhuhu3ykG3aTvzYYrR3+3sQFV64qS9mdKzx3uGJPgebK4ylT9ZYDw7MsnFnds0V7vT6jZPyBoHmTcdwFTVOnPzig+bfLBxk3ePI0niPgCTRbwnPOQMl9zwUf30tGcxqoPlwoPLdTziNGz64eniPKHvHdZzzLdNOmjZ51XRTBBc1dSrpnzSChA7q7wlApNG04q548l79d0N0BQ8ATaDYVcsU/568Zf80zymEIPMeczW4ppI8UpkATePYZzzLZZtkpJ2XQ/IszTXt5vrTuWecY19BYuOA5VgWIqFs7PADN4eO55njBFqIuXHJ5X2c8DaKbhMUNVhnP8YDw9IVT8Dsmv9GzZdE85dfQ+3mO6e6+nl4GjQM3GK5/t7AKD/AEmk1EbOG5CFSei+KKy/uE/zWv+xloAs+e4+mL5lPONG00i/CsiqbEKbexD/kCthSaxI1HVgNT58mLKdmSLFLvY5UbEqDZTCxUmdvgchgXQBsFKvPyJaN4L3A6VvYCbsp1PlL1fmm1v11OJnzrhKBpsHrlgebTEmi+5ovUn1RyaP72mpJBgNIWxHV8+KhCwXB9/XV1AOcriifQbD7WuHIRV6i4prpg4ogr9pQr/RY3kiecjSJWM6T9I9X+La3yFnf0ffs8tiyaZTLNa0rmUcsxjawk8YYvWs3m8F8YWq8Y13Bl4fs3uttiFe95As12YqnqgEu3bdm6IGiaiv+ZoRwpuJeEjRBWvRxmddtG1L1u2zJoyj3NV+Q+j9UVTbNd32+UjJmR1b7MJvNvuM595jq4Tsn+0RuMp+yzeepzEMY1HKwqeK7agCGg2S88feuBjeZCXfHKa8pAJdzvBJ4jlYl1EU9fNJ9Qck+zbjRNmBHqsq+mrNhlrwj0B7+fXf4yeB764jmu6aABT6A5RDx9yrNBU1Yh+pySVd5wWR/z15IwNWvVy+FahzPPMmga/E4y0Mx6Tl805TnMZgrvrOOWtYzenP8vO6p44zmu8eABT6DZp0ZLluWbUH7XqUt5FjSLppxM1esCT8TCAc+2APUZQStomszudQ1oHqSg+dHyomjt2ZjfXyk8xzUewBB4DnGqyrpqnIFmNzPPIjzzyvWhlWkuC8rvjG7fn1kSpmYBz6T960Lm6boyUFNo/pqBJqmLDtcF20vhOa7xQIbAc2jzPDf4pMyAZqfxXCuJp14k/otH9jgnrKaFSM88xykXU03j6Tr74jEl3bM+aMqo26poyvM773JSFs9xjQczBJ5rA8Jzgz8P0Ow+nq7dtrpc79PtnVWWnmV2QemDQxDIPNvGMxowmqXwHNd4QEP8zWIgeAqa6J7tT6MVeWSeewrNbyXQtF83IsCJ+FEeJpS9IfuoI9mmge8ho/mmRjTlecxUk08pj/tfRtNcuOoBSa7muOIZjRs4sKHx7FtXlkbzBm1Brxot4ooj3etpsZuBZtWMN8IpQDhknnXi6YLmI5VpNoGmeY0vKY8zx+EZ//tePZfvRWgWnmchM86m8bQHUfQBzQnQHFTmqSuhAVN2OfkesEzGDWUTiO5HrDJPvUGBzqbWauilcEXzIWdkbaIpx+mcoTMrApmFRqYlj8lJCp5rGs9xgwc6BJ72aNsu46kHAgHN4eApmec2JVuFndRQFmNknogMPGXFKQ3ouspIq7bjXUBT5mm6oEnq+QyeRwrPm5LHW+N5yYj/F89x4BPcFJ5d3wx7kwsy0BwenvK1yT8/rbEM6rU8ASjwnHO7InguFJ4xJVPdyi5e7lrGDHwPuOy/rSnT9EWzUTzHNZzgJrttu3jPcxOZ5uDxlCv78wbKHrptETaeG5Ts8WrjqS/affDsEpq/lkQzC89r/ipjUiqe45pO8KoOGNJoXqOeDxZP4krU1MhX4InQZWGWgqcAuqRkw3SXe3w+twM0mm882vEm0UzD86gAz7RjEOVlnuMaT3ATeE6szLPNhbK31JUe0Bw2nrOWGkzgiUjDc9PC0/y7wz+/yckKfdrbLqBpb0NWtC2ZjacMGMp6z3nLGt7Cc1zzCa4bzznjKWt9toXnFjJNRIlyvkvJohjAE+GL55Rx1Pfc5+rfXW6b7P1mfdvlNtFM29TbZS/PNDzvWXi6LiV4B89xQw1Emb9x/bu5yjxl1G2T+xvqTBObEiN80FxXF30+eGK0LULKgoFom8vQFpcjjacsznFFyRzh0GimtfOh0AxhSx6evvEfPMcNNhRl/871qkJGm601iOc2JfcSgCbCB029IpFc8M1qqBuI1cBzi9u+HYWnrFQmePrcl4880LTb+RBTTmKP1yuD5zWVH7x5Mm64wajyt0UNxcy6gvdtiIAmokk0TUYgG+5O1AUf8ET4nuslQ7DDbd+OlXlOObOTjZtdMjl7nqZrPLPQ/FdGdhcCzZjK43lUAc/dcQsnv87nmFKy16VMG6hjbVh94/0SdRrhWG53FJrnlEwhEDx9u22B5+qUnbzzLYhcUnLffJfbPgHUtFWHnH3mTaPSaJ40jGYc4PjUjac5rr+PWy4EdTyHzjzrwBNoIsqiucZoXlgNV2yVW99bDcBzNdBMO+f2KFON514Gnvvc27FMeU7Z5SRUpmlnhaHRLGtEGTz/g6apn+OOFYYQXRdxSua5FghPGaV2w40fAuFSTrcVmpcZV/t25gk8EWXO55Lbpj0LTwH0mrE4sPDUaMrWYFXQvEn5HDaa5jW+Ur3zoaNAeP4XTfN3454VCtfnETw3KFy37TZ/XfMBRyBcyuYmJSsNFd1fkpVhgCeiynmUVa32uSztMwoaz/uM6gmXuyeM5nENaMZ0dxm911R+cYOmM89baP7z9ee4x4XDpdviRuEpjVGZm8ETPvFTsraXQSByQqN55XhlrRf0Bp7AMwSea9x+XSs8TXk0I2a3+KsONCW6iKYrnns2mubYjnteOFwQvVYNmIxe9MXzkJ/vmLDBMMItZHpUTHcnoPviGQFPwFkSzzMLT515Rpx57lKYgUB9Q7MIzz1+77fQJAq/O0pX8LTjKgXPawvZrCkvcp/gkrBoO8It1hSaNyUvtpB5IkLieUBJz5ksAGBA3eFy9m+Pctp1NEPgaeJ5GppdgrMpPGWSsAwcunJodGS+Zp3bRyGGEyNVdnx3qACeiDraRZ15mrJ0yG3hfQbPtIdfHdu3vqBZBc97fKyiNDSlkncl4gae/7PqotjhglN00GXT2DnqMMKjoZoFKtMyEjfmsrhZok4BT+A7YwCm3O4bPM1gtTeULMzRJTTbuiU2turLl7QLiq4tGN0UnlMPPEPsqo5YnYhrKC8LSgYXAU9km2V7HCSjilT7t8G/W28QzTjl/3HK7+NA9dE15J5mxBerpt79whcZd1AYavdE3oHU9zyLum13+F8sdoBoG2TZhxbdtoCz6Dxn7VYi8zRlXe99/v6C0qfZRRXQfP/P16ccxLJ2PanDg6LnsAcCmXu+pntb1rY1n/d6leGUE2gg1Pc8Jxk4CrBY8AABPBFdbQeLzq3g9/2fr5eMpwwYMjHln9kDJZ96oinwmfbyVcnML+9YlNkezRdNuacpGfohA/pfPMcDKTQh8Jxk4CldY5eEqSgI4InoJppUgOYjRvMVJbcTThgE2Qz7ykJRo3lD2WvPajS/0Y9eur8oWXM5bvEYlUWT1MXCHTzHAyo8VfDczMEz5oIwp3p3W0EggCcidDZloyl/I2XI3OPc5p8dKjxtNP9wQNOgc4+f930PLiyK0MzEc9XhdMFzQclm1bjPiegSnlier99tTxNoGvyOVaap7yOaMvOCkgU61iiZqvKgBJoGl+eM9FmN2WYU4G/uLKNH+YP6BE/zme+NUYAz8dQDhhaUDBLCIggI4Ak8uw6nfU/TRtN8/4QhMCNfP/H3a5SM2vZB84yTC5PdfqN6b21FFf/OF02Np5nPfzjqSePQRJgD91HBqKeqXDOiu9ytgUB0JZaEeZ51tj1dPTa+aNoXS/sMp2SHM7q7DvdHyr499YCf55v6u7FKNOKaz0vZvyuLJikL/hj3qBA3mXlupWSessLGNhcMLIiAQOaJzLON1/NBM+387nK2aBD4i8uPTFXRFwz7dHfAkMQFZ537/PgLSjbBPqdmZiH4npe9imhKzAFnPp5jC89rxnMLeCKAJ/Bs6XUiDzTtzFkyLtP9+m9ux+yBQH9Sshn2YQae5u+OGc8jfo1Tfh5T7k4Giuat1BqFNx1Pfc9znILnnAsQAgE8gWeb2WYemvJ3Gs0/uGykjZ69pmSeZx6eyxQ8BefPHTovNpo+C9oPAs628Bxn4LnJcAJPBPBcHTyjGp+7zGNCojlVGWUZPE2bucNt5HVH0VxWtQRw+uEp8+augScCeALPDmSbMk/zmNK7Z8ugSZ546sft8vMbsL5SvYOEqqC5cnC2gacpLBtW5imbnU74dwvCYvCI7uG5Rsn+oMCzu3iGRFM/viyaGsXjHDzjFDzXuY3c5iy4i2jq57FHTxeONh/3vOC2hadcxd/wl6x3uwSeiI7huQCetcWIshcmD92WRR5okieaRSuiLTPwvC7IUGVVouOG23+Nppkq4zoQKO1cRkODsy087W7bGy6YMogIeCKA5+oc25FqR8sC6pttCn56Gb0qaLq87zQ8rx3w3GwYz7Jo+rxODDj9Iy3znHIBROaJAJ6rd2zlQjoqUe/bRHPq+V67jmcdaNqvEw8h4+wSnjdcQKUSLQm7qSCA5yrEkpIep4jcBgq6HM8uoZmHZ9GAoSbwrBPNOzEeSMFto0LLqNqRaoimwBMBPFcyFgqIqOC4lrmn2SaasZVx2SgetZx5GjT/pyk0hwRnV/CMuFDqLZ+AJwJ4rkbIFKAtPq6zkscuDU0ZCNQGmvKe4hwU2+q2bRzNocHZFp43GZnngpKuXOCJAJ6rETLWYUe1BT5tkyuaWcvo1dE9m5dlt4mnjWblFYEAZ3t4jvl9zBSe6LZFAM/ViSlnnrsWnm2iOStZRsrgmbe27WEgPNPQXDZVJscDLLRt4jlReEpXzVJlnjHwRADPlQhpD/b5GF17HsfQaMYlykbZzPOIspfnC5F5ZqHZWPs/HmihbasyT1XmOVKZJ/BEAM/Vi2vGU1bTuaLiCfamjfiZfuwFbAYCva6IZtl7mr7himfVbts8NIva/2D7q44HXGjbxHOioASeCOC5eiHH45K/N5Accv2Xta31MdtkLA2aZnCR2UT6fU/QbApPFzSzzkPQTcmjFSm8TTdCIz7JIz6xUy5AESVzvWaERRIQ3YoR3R4Rel2irq3KBaFv22LmfT9k9CJ1sUKUrO0aMQgfVHvRFzR1mM/z//gzm+f9k9L359SPI37MnxnvZZ9uz9N0QTPvnFWBdDRGAa/l9WJueLLueY6QeSKQea5Um2KO6ynjIO2AHG+DpOmWfUc/dhSZN4hmHe1P6MzzsAY0y55L8x5+H69Ig9AFPOWe5xx4IoDnyrYlMWfyZ4zGCX9/pTLQPqMZGk+D5m8qGy+Dpt0ulz2fIz4Hu+MVahDaxHNNZZ2C50L9DHgigOfw25DIo92gHqOZh6fPPM84IJqux7oQzX++Xo5XrEFoC8+5aoDGwBMBPIFmC2jGFGYbtCp4yiIJN9YxScPzqCE0i87RiAE358JMDfo+XsEGoSv3PIEnAngCzSbRbCvyFklIw/OIkhkf5jP/HzU3kDJK+f9/M03iLuTxijYIwBOBAJ5NtBlRyccPBU05/654mtkI99XPZKT3SUOfI7K+N5nmDmea/x20NF7hBgF4IhDAs852oyyae9TO2rN1I5S3JVlEtwcCXXC5k27bJvDUWf9IoWkWofiuHzNe8QYBeCIQ5fAcI/OsBc39wGjGHTtOWXhu0u2BQH9Yj2sKT0HzV4XmnYUZxmgPOjNVZQQ8ET3Cc7yCeDaB5m8Kx6GhmYdn2kCgtAFDW1TPZtg2mmZU75us1wKcwBOBAJ7h2gmg6RaCpwwEijjz/INuz19tajNsQfMXfv63ea8BOIEnAgE86wOxy2jGNZ0H1+e0BwKZ8nRJySIJUk7sDLUOPE07+7NC8yTvwYCzO3iuAU8E8ASaPUfT9RgcUPpAoLT9PGMr8zRlbSMgnoKm6QZ+V4Qm4ETmiUAAz7DtAtD0Q1PuaX6n9NG2+jPZ3bYbVP2ep2lXXyg0T13+CHACTwQiBJ6TgeMZBX5MV9CMPd57HWia3VCWdLs7dpyReVJG5rnlkiVmvFdB870rmoCzf3hiYXhEV/GcDxzPKEB7IXX8oGNohmrvyqIpIXgeUna3reB5nILnqcexsDPNM58PCjj7hSd2VUEAz+62Ay6P6yKaIdq7qmjaeOrM8zoFzyVnmfsKzz2GtqjcmXujz7msvvdFE3ACTwQCeALNUG1dlPO5f+Xfn+egmYXiQUbmaT/OPP89hnFEt1cBWufHmc3E73PWajLNi4Ljmrr5dYS63kk89UnaUYVgRsmWPBO6vb8nAtGVGHHjJeXzyvNvu3ZBGKKbtg9ohrjfGVVEU79Hg93v/K/5mVlkPe0+5IRfwzzuUl24kSpL8pxTxvbYOhZxyAKB6B6eU3XlBTwRwLPdut91NPV7dEEzZOap0ZTu2djzM00sPF/l4PkL//uVcdykpGduzsd5WuF4/jfQVdttPPPWtl0Qum0R3Y0q3bYxl2ugWb6BL4tmqHZOPjepTDP2zIKJ2zgD5S6XIdPdep1yvPTjdrh9/M4XbPL4RVUwASfwRCCaxNN3V5Uu4Fl1CopG81/82Z+tCJo60/yL0nvEXDfVXvLzCJ57OXieMZw7lCzjVznDBJzAE4FoO/OceeIZdbSON4FmXOJ4dwFNyTSz0PQNG89dSu96XfLrbvMXUTIuJFi7CDiBJwLRdTyjluob0PRH8xdKBgKFQjMtoxwpPGc5eG7lZJ6AE3gCTwTwbKhuA81sNCXT/JvqGbAoKAqeO3ws0/A0I2xlKzI59oATeAJPRG/x9N0Mu0k8q6D5Kzfkq4TmvpVp1oWmRvGCkvma29wezqzPt+RM04zI3eD3FwRPwAk8EYg28Fynbo62LdtFK2jq0bOrhKYJM6r1ZUPtjeC5yZ9D42k/7prhXOefzaq+OOAEnghEG3jOuCErk3nWNWCo7ICgVUbzZ34ug+arhtsZ81qmO1buY27ysZ+lPO6G20mZ+14JT8AJPBGINvEs220reEaBynVZNNN2ObHR/JdDQ91XNCXTfF1D+1K0nm5Myb1M6Yrd4LZvnoOntJHzsm8McAJPBKJNPOdW5ukzYEi6ekcl8QGa5dF8wd+fNYhm3mOvuRxF/G8WnjOrzJS6Fws4gScC0Vc8l/z4NS73cYmGEGi2i2baUn9xyeeRjJL43yWlrxY0p2TjjFLtIeAEnghEF/A05XaDkq40VzwXCk7Bc9EAmr/Sj3uWq4bmc0ruab6h8ovNV+khKMJzjb9fo2ST7LRyUzoAJ/BEILqI5xq5L3o+5zK9Tsli4POCOlkVTdNA/3uF0NyzMk1fNIveY+hyNFbGZeFZesoM4ASewBPRJTwNlpsl8JwpPGWgyAxodg7NJi/C5D5m8N12ACfwBJ6ILuIpmeeE3CetTxnbTYXntEQdBJrpaJru2bdUvDVYlXuVIWOhjkvQLBdwAk/gieginjMGcL0EnmO6vdTatGI9XXU0Y840XdDsWiyt9xfkfQJO4Ak8EV1t8KaMn2Se145/e6Myz231M6C5WmjW9v4AJ/AEnogu43nD+K1n4GmvXyvfX1t4xjnwRjlo/sKArxqaz/n7vqNZSwBO4Ak8EV3PFq4ZP1lv9CqlHqXhd8Xl3WStO+pnLnVRTzlZVTTNPc13QBNwAk/giehfHUnD89LxOS4z8Iwc0FzF7lmgCTiBJ/BEDKRuyBZRBj8ZNXvh+FwXXN4NvLtcrq+AJtAEnMATeCKGXidkQe8qeG4xEpSSta4ymj/x92dAE3ACT+CJGFZ9kMxzj/E0X+eOz3euMs89SralAppAE3ACT+CJGDyeF9zob2XgGVH6fcyzFDzN6NvfgCbQBJzAE3giVgHPfYXnmWM9svE8BJpAE3ACz9B4yv51egNhBKJLeG4zoGeOz3vGf7PJr/GVfgyKsdH8A2giACfwLIPnQuEZqUYLgWi7Hpiyea4yzy0GsCgOGEjpVdnjr3sWmkXL9QFNwIkAnnfwHFGy56HeNR2VCtGF8h9xeTxnDLdz8IwUmr9S0g07pmR1IqAJNAEn8KyM54jRlN9Jdy3ueSK6gKbOPM8sPE8K0JR7mmZu5456rOm2PQaaCMAJPKvgqdf/1N22wBPRZnm3H2vjuc14yuPSppw8peSe5oLLtSyScBHoMwFNwIlYETxNbFDSPStD++fAE9GB8p71GMHzkLNIwdOg+VsOmubn/8dlWk9VqYon0ASciBXBM+KGxnTRLikZQCFfc3V1jqkqiDbKe97vTdk8ZTwFwUeUP+VE7mmecbnPw9O1rANNwIlYETwFzQk3MOfcoExS8MQ8T0TX0JTfLzjTNKNkN7ms/kuh+SgFTYlTurtIwkUJYCKgCTgRw8fTPPcBNxpy1S4g2gOGsEgCoq3yHTn+boeS6SWmjG4whjaaafM00/A8L/mZgCbgRAwUT/OchwrNE7rd1YQVhhB9glPf0/yLkkUSdjLQjGrCE2gCTsRA8TTPdUQ/5rHNLTQJeCI6VK5d0fyVfnS//sFIbjKAREm37cwBkSp4Ak3AiRgonuY57lFyT/OYslcFylskAfc8EXWXaRdUbTTlnuZDBcaILxJPHBEpg2dbaMp7A5qAE1ETnjaa3xwqVdYiCcAT0URZzntM2uIG9kCgPylZ8GAro3clDRofPIEm4EQMGM/73BjMHNEEnog2y3FVNKXb9oQfL3geO2aOJw54xhnvG2gCTsQA8Iy40pl/r7lB8f174InoApp6RaA/KX1xAz0QaMmPMYPhzL3P7/x/lzihZHWhPUp2aLFhsvcDBZqAEzEQPKd8xb3OjQHwRHSx7Bah+QuXZY3mI/67tCknuwxtxNiceL7XM4XnvsIza/NsoAk4EQPCcwk8ET0ps1EGmj8rNBcKTbkwTEPzdy6TBpuPOa8Zl8Az7zkioAk4EcATeCKaKK9RBh6/eKIpczuroqnxjHLwjANnmTaa5vXfA03AiQCeCJRVFzQl0/yLbnfPCpr/TkHz14BoFuEZB84ygSbgRABP4IkolW0aPF5wWf2by9UTheYsB82IsfkY+DNk4RlykZJdur24AdAEnAjgiUD5LPz9rkLzpULzIT9Oum2n6m/LoFkGPI1nqC3JgCbgRABP4InwLpeRwuM5l81XlHTPPrDQzMs0Pzm+r7LlsQ48zXM94+/PgSbgRABP4Iny6IrmTwpNGQh0T6H5Vwqav/DvPzSApsZTRtvuVsQTaAJOBPAEngivcmget8N4zCw0j/gxcq/TRvNnhebnDGiimsqc4LlTAU+gCTgRwBN4IrzLn+BhyuBrRvOJQtOUqZcWmnsWml9aguZMwb/L5fzS83PLPM0PQBNwIlYbzzXgiXLniMcTLjNvGM3HKWjOLTSf8/cfW0STVKao8TSf4crhcz9Vfw80AScCeP6noQOeKG95scN4GBzfMjiPLDRfWWjK4CHzOuZ+5lcLmKilMiWLwG874Ak0AScCeAJPRCk0JdN8p9A8VGi+TkHzJ4Xmt46VHZnTucXv1bz3a+sx2xaaH4Em4EQAT+CJMuaC5mMuB4LmQ4XmPAVNGTxk4rOVaXYpNJ47Fp5b/BkilWkCTMCJAJ7AE2UrN7YtNJeM5oHKNN+koPmUX+MLZ5pdDhvPGf//J/V7oAk4EcATeKJMOaH5iM/7ez73DxSa5udv6e4uJ0/4Nb72AE2JS37Pm4znjkLzI9AEnAjgCTxRllzRnHG2JWju83PIACE709Rofu/ZsZFpKRvq/0ATcCKAJ/BEOXJC8yGfZ0HzPqNJlAwQstF8zN8bNI9LvLc4pfz5lv2qcaXqzxegCTgRwBN4ovwUxZZC82MGmu9T0HzEz//NA804Bck66oJv3FD21BSUccCJAJ7AE+WmEM09/v08Bc1tC82TEtllk3WibKBcA04E8ASeKC+paJqM8hOf03uMZpSDpmwd9t0RzbiDdQRgAk4EGkPgifBG8wGfRxtNyTQ/pKD5QKF52kF8quCJ8gs4EcATeKJ8OKG5sDJNk4F+tNCU7NTEcQ6acY/qB8AEnAg0jsAT5cIJzft83j5baEqmmYbmA4XmWQ/wKToWKKOAE4FG0gnPTeAJNFPQ3FVofhoAmgjAiUAEw/MGeAJNTzTv8/cnQBMBOBHAE3iuMppmWzC7e3YBNBGAE4HGE3iu+nk35/lBCpp2pmmjeU+heQ40EYATATyB56qgKZnmFw80j/j5gSYCcCLQmAJPoJmD5qbKNE+BJgJwItCoAs9VQvMeowg0EYATgQCeOK8No4nzhehs/P8CDAAKqjRDuZlr3wAAAABJRU5ErkJggg=="}},"time_used":37,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":12,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/background/10.jpg","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.981Z","timestamp":1785129412981,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/background/10.jpg HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 103736\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":103736,"size_decoded":104004,"mime_type":"image/jpeg","magic":"JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=12, height=737, bps=158, PhotometricInterpretation=RGB, orientation=upper-left, width=1920], baseline, precision 8, 1920x737, components 3","md5":"583c3b0163caaff8f53cab3d2e1687b4","sha1":"5d487c8b699cf2bb3e3c2e3477096dc8eb1d8dd4","sha256":"691ff9d3222635144a7f37c44d1f2e71a18661472e1d6ae975de68408f6e41e7","sha512":"8609fcb537e530035effb8bab917d944f34c3322a16d28bd060abd4684a8bf24dbe47276dd7c0efaa711621953eff23ad7a738383da8f8e31ecdb3250e18658b","ssdeep":"96:bj7sF47KNr7Uy4lyrMfJP4qsP4XNk47lmYzqknmWrT2QI/k9Hc1UCYZ5KSu18PmG:bj7sFdNrQy4l1I4kInuknJV39QaK+","tlshash":"f6a323095db56b21eca1022683d5b7fb016c7dae11ea178d6c4edc4f3623ace648fd21","first_seen":"2024-06-18T00:47:48Z","last_seen":"2026-07-27T13:36:13.726225Z","times_seen":76,"resource_available":false,"data":"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dEYjUmx0AAAAAAAAAAAAAAAAVG9wIFVudEYjUmx0AAAAAAAAAAAAAAAAU2NsIFVudEYjUHJjQFkAAAAAAAAAAAAQY3JvcFdoZW5QcmludGluZ2Jvb2wAAAAADmNyb3BSZWN0Qm90dG9tbG9uZwAAAAAAAAAMY3JvcFJlY3RMZWZ0bG9uZwAAAAAAAAANY3JvcFJlY3RSaWdodGxvbmcAAAAAAAAAC2Nyb3BSZWN0VG9wbG9uZwAAAAAAOEJJTQPtAAAAAAAQAEgAAAABAAEASAAAAAEAAThCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTScQAAAAAAAKAAEAAAAAAAAAAThCSU0D9QAAAAAASAAvZmYAAQBsZmYABgAAAAAAAQAvZmYAAQChmZoABgAAAAAAAQAyAAAAAQBaAAAABgAAAAAAAQA1AAAAAQAtAAAABgAAAAAAAThCSU0D+AAAAAAAcAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAA4QklNBAAAAAAAAAIAAThCSU0EAgAAAAAABAAAAAA4QklNBDAAAAAAAAIBAThCSU0ELQAAAAAABgABAAAAAjhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAAM5AAAABgAAAAAAAAAAAAAC4QAAB4AAAAACADEAMAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAHgAAAAuEAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAuEAAAAAUmdodGxvbmcAAAeAAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAA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MTY6NDA6MjIgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjQ1NjEwMjMxLTYwMjctNmU0MS1hOWVjLThmY2M3MGUxYzg2MiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyNTU5RjQxNjRGQ0QxMUVBOTcwNERBODkzMEI3OTQwMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphNDg3ODI1ZS1kNDdmLTc1NDEtYTFhNi1jYzJhZjllOTA3ZGIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0xMC0yMlQyMzoxMzo1Ni0wNzowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMTAtMjNUMDI6NDE6MTItMDc6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMTAtMjNUMDI6NDE6MTItMDc6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9IiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmI2ZTlkODEzLTc5YjQtYWY0ZC1hMDk0LWNiOGVmNTgxYTg2ZSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NTYxMDIzMS02MDI3LTZlNDEtYTllYy04ZmNjNzBlMWM4NjIiLz4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YTQ4NzgyNWUtZDQ3Zi03NTQxLWExYTYtY2MyYWY5ZTkwN2RiIiBzdEV2dDp3aGVuPSIyMDIwLTEwLTIzVDAyOjQxOjEyLTA3OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7gAOQWRvYmUAZEAAAAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQICAgICAgICAgICAgICAwMDAwMDAwMDAwMDAwMDAQEBAQEBAQIBAQIDAgICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCALhB4ADAREAAhEBAxEB/90ABADw/8QBogAAAAYCAwEAAAAAAAAAAAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwIIAQkACgsQAAIBAwQBAwMCAwMDAgYJdQECAwQRBRIGIQcTIgAIMRRBMiMVCVFCFmEkMxdScYEYYpElQ6Gx8CY0cgoZwdE1J+FTNoLxkqJEVHNFRjdHYyhVVlcassLS4vJkg3SThGWjs8PT4yk4ZvN1Kjk6SElKWFlaZ2hpanZ3eHl6hYaHiImKlJWWl5iZmqSlpqeoqaq0tba3uLm6xMXGx8jJytTV1tfY2drk5ebn6Onq9PX29/j5+hEAAgEDAgQEAwUEBAQGBgVtAQIDEQQhEgUxBgAiE0FRBzJhFHEIQoEjkRVSoWIWMwmxJMHRQ3LwF+GCNCWSUxhjRPGisiY1GVQ2RWQnCnODk0Z0wtLi8lVldVY3hIWjs8PT4/MpGpSktMTU5PSVpbXF1eX1KEdXZjh2hpamtsbW5vZnd4eXp7fH1+f3SFhoeIiYqLjI2Oj4OUlZaXmJmam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEAPwDUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/Q1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9LUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/T1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9XUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/W1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/19Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9DUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/R1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9PUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/U1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9bUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/X1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9HUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/S1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/09Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9TUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/V1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9fUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/Q1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9LUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/T1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9XUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/W1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/19Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9DUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/R1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9PUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/U1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9bUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/X1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9HUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/S1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/09Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9TUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/V1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9fUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/Q1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9LUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/T1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9XUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/W1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/19Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9DUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/R1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9PUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/U1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9bUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/X1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9HUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/S1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/09Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9TUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/V1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9fUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/Q1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9LUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/T1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9XUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/W1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/19Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9DUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/R1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0tSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9PUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/U1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/1dSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9bUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/X1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/0NSn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9HUp9yH0x1737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvdf/S1Kfch9Mde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3X/09Sn3IfTHXvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691737r3Xvfuvde9+691/9k="}},"time_used":34,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":7,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/assets/shared-CgMCAfor.js","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:17:02.975Z","timestamp":1785129422975,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/shared-CgMCAfor.js HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=1\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:17:02 GMT\r\ncontent-type: application/javascript\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-42705\"\r\nexpires: Wed, 07 Jul 2027 08:30:00 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kw11uThaRivnwp0M7bm0i4pyK07pVWKVOy6/EMpCdCZf6+TEXSEFvXjT+xROrcVtbSfPbPg\r\nx-77-nzt-ray: e2f754206215f709cee9666adc46513a\r\nx-77-cache: HIT\r\nx-77-age: 1716384\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":272133,"size_decoded":92592,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (44710)","md5":"06c5668b0e6d3383e096c45abdbedf9d","sha1":"8d64309e8ec50da59f799336c11685ca7fd15ecc","sha256":"2724b50edb69a23cc951a77f775727b960c857d18d58cfa9a47fe5c094d9b99a","sha512":"c4a86d25f4e86be36db19539b4e3efc70500a48b9664349043d76a1451f8536c8bed7fe22f8ca790fb3ac7e26fa7efbfc37e0c927687966dc08a02442e15f85c","ssdeep":"6144:mLjnOEIL18ad2jJKaQo+tRkYcuBaay+moJG:iOEIZRd29lqj4n+moY","tlshash":"53443ad53294b035439b51e6906f1106f33e5c58580d812cf269ede678baec8a2f7fb8","first_seen":"2026-07-07T11:50:17.748529Z","last_seen":"2026-07-27T07:27:47.884385Z","times_seen":1867,"resource_available":true,"data":"dmFyIGU9T2JqZWN0LmNyZWF0ZSx0PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iscj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyxpPU9iamVjdC5nZXRQcm90b3R5cGVPZixhPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbz0oZSx0KT0+KCk9PihlJiYodD1lKGU9MCkpLHQpLHM9KGUsdCk9PigpPT4odHx8KGUoKHQ9e2V4cG9ydHM6e319KS5leHBvcnRzLHQpLGU9bnVsbCksdC5leHBvcnRzKSxjPShlLG4pPT57bGV0IHI9e307Zm9yKHZhciBpIGluIGUpdChyLGkse2dldDplW2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gbnx8dChyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxsPShlLGksbyxzKT0+e2lmKGkmJnR5cGVvZiBpPT1gb2JqZWN0YHx8dHlwZW9mIGk9PWBmdW5jdGlvbmApZm9yKHZhciBjPXIoaSksbD0wLHU9Yy5sZW5ndGgsZDtsPHU7bCsrKWQ9Y1tsXSwhYS5jYWxsKGUsZCkmJmQhPT1vJiZ0KGUsZCx7Z2V0OihlPT5pW2VdKS5iaW5kKG51bGwsZCksZW51bWVyYWJsZTohKHM9bihpLGQpKXx8cy5lbnVtZXJhYmxlfSk7cmV0dXJuIGV9LHU9KG4scixhKT0+KGE9bj09bnVsbD97fTplKGkobikpLGwocnx8IW58fCFuLl9fZXNNb2R1bGU/dChhLGBkZWZhdWx0YCx7dmFsdWU6bixlbnVtZXJhYmxlOiEwfSk6YSxuKSksZD1lPT5hLmNhbGwoZSxgbW9kdWxlLmV4cG9ydHNgKT9lW2Btb2R1bGUuZXhwb3J0c2BdOmwodCh7fSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZSksZj1BcnJheS5pc0FycmF5LHA9QXJyYXkucHJvdG90eXBlLmluZGV4T2YsbT1BcnJheS5wcm90b3R5cGUuaW5jbHVkZXMsaD1BcnJheS5mcm9tLGc9T2JqZWN0LmRlZmluZVByb3BlcnR5LF89T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcix2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLHk9T2JqZWN0LnByb3RvdHlwZSxlZT1BcnJheS5wcm90b3R5cGUsYj1PYmplY3QuZ2V0UHJvdG90eXBlT2YsdGU9T2JqZWN0LmlzRXh0ZW5zaWJsZTtmdW5jdGlvbiBuZShlKXtyZXR1cm4gdHlwZW9mIGU9PWBmdW5jdGlvbmB9dmFyIHg9KCk9Pnt9O2Z1bmN0aW9uIHJlKGUpe3JldHVybiBlKCl9ZnVuY3Rpb24gaWUoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfWZ1bmN0aW9uIGFlKCl7dmFyIGUsdDtyZXR1cm57cHJvbWlzZTpuZXcgUHJvbWlzZSgobixyKT0+e2U9bix0PXJ9KSxyZXNvbHZlOmUscmVqZWN0OnR9fXZhciBvZT0xPDwyNCxzZT0xMDI0LGNlPTIwNDgsbGU9NDA5Nix1ZT04MTkyLGRlPTE2Mzg0LGZlPTMyNzY4LHBlPTE8PDI1LG1lPTY1NTM2LGhlPTE8PDE5LGdlPTE8PDIwLF9lPTE8PDI1LHZlPTY1NTM2LHllPTE8PDIxLGJlPTE8PDIyLHhlPTE8PDIzLFNlPVN5bWJvbChgJHN0YXRlYCksQ2U9U3ltYm9sKGBsZWdhY3kgcHJvcHNgKSx3ZT1TeW1ib2woYGApLFRlPW5ldyBjbGFzcyBleHRlbmRzIEVycm9ye25hbWU9YFN0YWxlUmVhY3Rpb25FcnJvcmA7bWVzc2FnZT0iVGhlIHJlYWN0aW9uIHRoYXQgY2FsbGVkIGBnZXRBYm9ydFNpZ25hbCgpYCB3YXMgcmUtcnVuIG9yIGRlc3Ryb3llZCJ9LEVlPSEhZ2xvYmFsVGhpcy5kb2N1bWVudD8uY29udGVudFR5cGUmJmdsb2JhbFRoaXMuZG9jdW1lbnQuY29udGVudFR5cGUuaW5jbHVkZXMoYHhtbGApO2Z1bmN0aW9uIERlKGUpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9saWZlY3ljbGVfb3V0c2lkZV9jb21wb25lbnRgKX1mdW5jdGlvbiBPZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9hc3luY19kZXJpdmVkX29ycGhhbmApfWZ1bmN0aW9uIGtlKGUsdCxuKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWFjaF9rZXlfZHVwbGljYXRlYCl9ZnVuY3Rpb24gQWUoZSl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl90ZWFyZG93bmApfWZ1bmN0aW9uIGplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF9pbl91bm93bmVkX2Rlcml2ZWRgKX1mdW5jdGlvbiBNZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvZWZmZWN0X29ycGhhbmApfWZ1bmN0aW9uIE5lKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL2VmZmVjdF91cGRhdGVfZGVwdGhfZXhjZWVkZWRgKX1mdW5jdGlvbiBQZShlKXt0aHJvdyBFcnJvcihgaHR0cHM6Ly9zdmVsdGUuZGV2L2UvcHJvcHNfaW52YWxpZF92YWx1ZWApfWZ1bmN0aW9uIEZlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3NldF9jb250ZXh0X2FmdGVyX2luaXRgKX1mdW5jdGlvbiBJZSgpe3Rocm93IEVycm9yKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9zdGF0ZV9kZXNjcmlwdG9yc19maXhlZGApfWZ1bmN0aW9uIExlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Byb3RvdHlwZV9maXhlZGApfWZ1bmN0aW9uIFJlKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N0YXRlX3Vuc2FmZV9tdXRhdGlvbmApfWZ1bmN0aW9uIHplKCl7dGhyb3cgRXJyb3IoYGh0dHBzOi8vc3ZlbHRlLmRldi9lL3N2ZWx0ZV9ib3VuZGFyeV9yZXNldF9vbmVycm9yYCl9dmFyIEJlPXt9LFM9U3ltYm9sKCksVmU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxgLEhlPWBodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z2AsVWU9YGh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxgO2Z1bmN0aW9uIFdlKCl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9kZXJpdmVkX2luZXJ0YCl9ZnVuY3Rpb24gR2UoZSl7Y29uc29sZS53YXJuKGBodHRwczovL3N2ZWx0ZS5kZXYvZS9oeWRyYXRpb25fbWlzbWF0Y2hgKX1mdW5jdGlvbiBLZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc2VsZWN0X211bHRpcGxlX2ludmFsaWRfdmFsdWVgKX1mdW5jdGlvbiBxZSgpe2NvbnNvbGUud2FybihgaHR0cHM6Ly9zdmVsdGUuZGV2L2Uvc3ZlbHRlX2JvdW5kYXJ5X3Jlc2V0X25vb3BgKX12YXIgQz0hMTtmdW5jdGlvbiBKZShlKXtDPWV9dmFyIHc7ZnVuY3Rpb24gVChlKXtpZihlPT09bnVsbCl0aHJvdyBHZSgpLEJlO3JldHVybiB3PWV9ZnVuY3Rpb24gWWUoKXtyZXR1cm4gVChCbih3KSl9ZnVuY3Rpb24gWGUoZSl7aWYoQyl7aWYoQm4odykhPT1udWxsKXRocm93IEdlKCksQmU7dz1lfX1mdW5jdGlvbiBaZShlPTEpe2lmKEMpe2Zvcih2YXIgdD1lLG49dzt0LS07KW49Qm4obik7dz1ufX1mdW5jdGlvbiBRZShlPSEwKXtmb3IodmFyIHQ9MCxuPXc7Oyl7aWYobi5ub2RlVHlwZT09PTgpe3ZhciByPW4uZGF0YTtpZihyPT09YF1gKXtpZih0PT09MClyZXR1cm4gbjstLXR9ZWxzZSAocj09PWBbYHx8cj09PWBbIWB8fHJbMF09PT1gW2AmJiFpc05hTihOdW1iZXIoci5zbGljZSgxKSkpKSYmKHQrPTEpfXZhciBpPUJuKG4pO2UmJm4ucmVtb3ZlKCksbj1pfX1mdW5jdGlvbiAkZShlKXtpZighZXx8ZS5ub2RlVHlwZSE9PTgpdGhyb3cgR2UoKSxCZTtyZXR1cm4gZS5kYXRhfWZ1bmN0aW9uIGV0KGUpe3JldHVybiBlPT09dGhpcy52fWZ1bmN0aW9uIHR0KGUsdCl7cmV0dXJuIGU9PWU/ZSE9PXR8fHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlfHx0eXBlb2YgZT09YGZ1bmN0aW9uYDp0PT10fWZ1bmN0aW9uIG50KGUpe3JldHVybiF0dChlLHRoaXMudil9dmFyIHJ0PSExLGl0PSExO2Z1bmN0aW9uIGF0KCl7aXQ9ITB9dmFyIEU9bnVsbDtmdW5jdGlvbiBvdChlKXtFPWV9ZnVuY3Rpb24gc3QoZSl7cmV0dXJuIGZ0KGBnZXRDb250ZXh0YCkuZ2V0KGUpfWZ1bmN0aW9uIGN0KGUsdCl7bGV0IG49ZnQoYHNldENvbnRleHRgKTtpZihydCl7dmFyIHI9SS5mOyFGJiZyJjMyJiYhRS5pfHxGZSgpfXJldHVybiBuLnNldChlLHQpLHR9ZnVuY3Rpb24gbHQoZSx0PSExLG4pe0U9e3A6RSxpOiExLGM6bnVsbCxlOm51bGwsczplLHg6bnVsbCxyOkksbDppdCYmIXQ/e3M6bnVsbCx1Om51bGwsJDpbXX06bnVsbH19ZnVuY3Rpb24gdXQoZSl7dmFyIHQ9RSxuPXQuZTtpZihuIT09bnVsbCl7dC5lPW51bGw7Zm9yKHZhciByIG9mIG4pc3Iocil9cmV0dXJuIGUhPT12b2lkIDAmJih0Lng9ZSksdC5pPSEwLEU9dC5wLGU/P3t9fWZ1bmN0aW9uIGR0KCl7cmV0dXJuIWl0fHxFIT09bnVsbCYmRS5sPT09bnVsbH1mdW5jdGlvbiBmdChlKXtyZXR1cm4gRT09PW51bGwmJkRlKGUpLEUuYz8/PW5ldyBNYXAocHQoRSl8fHZvaWQgMCl9ZnVuY3Rpb24gcHQoZSl7bGV0IHQ9ZS5wO2Zvcig7dCE9PW51bGw7KXtsZXQgZT10LmM7aWYoZSE9PW51bGwpcmV0dXJuIGU7dD10LnB9cmV0dXJuIG51bGx9dmFyIG10PVtdO2Z1bmN0aW9uIGh0KCl7dmFyIGU9bXQ7bXQ9W10saWUoZSl9ZnVuY3Rpb24gZ3QoZSl7aWYobXQubGVuZ3RoPT09MCYmIXp0KXt2YXIgdD1tdDtxdWV1ZU1pY3JvdGFzaygoKT0+e3Q9PT1tdCYmaHQoKX0pfW10LnB1c2goZSl9ZnVuY3Rpb24gX3QoKXtmb3IoO210Lmxlbmd0aD4wOylodCgpfWZ1bmN0aW9uIHZ0KGUpe3ZhciB0PUk7aWYodD09PW51bGwpcmV0dXJuIEYuZnw9eGUsZTtpZighKHQuZiYzMjc2OCkmJiEodC5mJjQpKXRocm93IGU7eXQoZSx0KX1mdW5jdGlvbiB5dChlLHQpe2Zvcig7dCE9PW51bGw7KXtpZih0LmYmMTI4KXtpZighKHQuZiYzMjc2OCkpdGhyb3cgZTt0cnl7dC5iLmVycm9yKGUpO3JldHVybn1jYXRjaCh0KXtlPXR9fXQ9dC5wYXJlbnR9dGhyb3cgZX12YXIgYnQ9fihjZXxsZXxzZSk7ZnVuY3Rpb24gRChlLHQpe2UuZj1lLmYmYnR8dH1mdW5jdGlvbiB4dChlKXtlLmYmNTEyfHxlLmRlcHM9PT1udWxsP0QoZSxzZSk6RChlLGxlKX1mdW5jdGlvbiBTdChlKXtpZihlIT09bnVsbClmb3IobGV0IHQgb2YgZSkhKHQuZiYyKXx8ISh0LmYmNjU1MzYpfHwodC5mXj12ZSxTdCh0LmRlcHMpKX1mdW5jdGlvbiBDdChlLHQsbil7ZS5mJjIwNDg/dC5hZGQoZSk6ZS5mJjQwOTYmJm4uYWRkKGUpLFN0KGUuZGVwcyksRChlLHNlKX1mdW5jdGlvbiB3dChlLHQsbil7aWYoZT09bnVsbClyZXR1cm4gdCh2b2lkIDApLG4mJm4odm9pZCAwKSx4O2xldCByPSRyKCgpPT5lLnN1YnNjcmliZSh0LG4pKTtyZXR1cm4gci51bnN1YnNjcmliZT8oKT0+ci51bnN1YnNjcmliZSgpOnJ9dmFyIFR0PVtdO2Z1bmN0aW9uIEV0KGUsdCl7cmV0dXJue3N1YnNjcmliZTpPKGUsdCkuc3Vic2NyaWJlfX1mdW5jdGlvbiBPKGUsdD14KXtsZXQgbj1udWxsLHI9bmV3IFNldDtmdW5jdGlvbiBpKHQpe2lmKHR0KGUsdCkmJihlPXQsbikpe2xldCB0PSFUdC5sZW5ndGg7Zm9yKGxldCB0IG9mIHIpdFsxXSgpLFR0LnB1c2godCxlKTtpZih0KXtmb3IobGV0IGU9MDtlPFR0Lmxlbmd0aDtlKz0yKVR0W2VdWzBdKFR0W2UrMV0pO1R0Lmxlbmd0aD0wfX19ZnVuY3Rpb24gYSh0KXtpKHQoZSkpfWZ1bmN0aW9uIG8obyxzPXgpe2xldCBjPVtvLHNdO3JldHVybiByLmFkZChjKSxyLnNpemU9PT0xJiYobj10KGksYSl8fHgpLG8oZSksKCk9PntyLmRlbGV0ZShjKSxyLnNpemU9PT0wJiZuJiYobigpLG49bnVsbCl9fXJldHVybntzZXQ6aSx1cGRhdGU6YSxzdWJzY3JpYmU6b319ZnVuY3Rpb24gayhlLHQsbil7bGV0IHI9IUFycmF5LmlzQXJyYXkoZSksaT1yP1tlXTplO2lmKCFpLmV2ZXJ5KEJvb2xlYW4pKXRocm93IEVycm9yKGBkZXJpdmVkKCkgZXhwZWN0cyBzdG9yZXMgYXMgaW5wdXQsIGdvdCBhIGZhbHN5IHZhbHVlYCk7bGV0IGE9dC5sZW5ndGg8MjtyZXR1cm4gRXQobiwoZSxuKT0+e2xldCBvPSExLHM9W10sYz0wLGw9eCx1PSgpPT57aWYoYylyZXR1cm47bCgpO2xldCBpPXQocj9zWzBdOnMsZSxuKTthP2UoaSk6bD10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOnh9LGQ9aS5tYXAoKGUsdCk9Pnd0KGUsZT0+e3NbdF09ZSxjJj1+KDE8PHQpLG8mJnUoKX0sKCk9PntjfD0xPDx0fSkpO3JldHVybiBvPSEwLHUoKSxmdW5jdGlvbigpe2llKGQpLGwoKSxvPSExfX0pfWZ1bmN0aW9uIEEoZSl7bGV0IHQ7cmV0dXJuIHd0KGUsZT0+dD1lKSgpLHR9dmFyIER0PSExLE90PSExLGt0PVN5bWJvbCgpO2Z1bmN0aW9uIEF0KGUsdCxuKXtsZXQgcj1uW3RdPz89e3N0b3JlOm51bGwsc291cmNlOnduKHZvaWQgMCksdW5zdWJzY3JpYmU6eH07aWYoci5zdG9yZSE9PWUmJiEoa3QgaW4gbikpaWYoci51bnN1YnNjcmliZSgpLHIuc3RvcmU9ZT8/bnVsbCxlPT1udWxsKXIuc291cmNlLnY9dm9pZCAwLHIudW5zdWJzY3JpYmU9eDtlbHNle3ZhciBpPSEwO3IudW5zdWJzY3JpYmU9d3QoZSxlPT57aT9yLnNvdXJjZS52PWU6VG4oci5zb3VyY2UsZSl9KSxpPSExfXJldHVybiBlJiZrdCBpbiBuP0EoZSk6UihyLnNvdXJjZSl9ZnVuY3Rpb24ganQoZSx0KXtyZXR1cm4gTnQoZSx0KSx0fWZ1bmN0aW9uIE10KCl7bGV0IGU9e307ZnVuY3Rpb24gdCgpe2FyKCgpPT57Zm9yKHZhciB0IGluIGUpZVt0XS51bnN1YnNjcmliZSgpO2coZSxrdCx7ZW51bWVyYWJsZTohMSx2YWx1ZTohMH0pfSl9cmV0dXJuW2UsdF19ZnVuY3Rpb24gTnQoZSx0KXtEdD0hMDt0cnl7ZS5zZXQodCl9ZmluYWxseXtEdD0hMX19ZnVuY3Rpb24gUHQoZSx0LG4pe3JldHVybiBOdChlLG4pLHR9ZnVuY3Rpb24gRnQoZSl7dmFyIHQ9T3Q7dHJ5e3JldHVybiBPdD0hMSxbZSgpLE90XX1maW5hbGx5e090PXR9fXZhciBJdD1uZXcgU2V0LGo9bnVsbCxMdD1udWxsLE09bnVsbCxSdD1udWxsLHp0PSExLEJ0PSExLFZ0PW51bGwsSHQ9bnVsbCxVdD0wLFd0PTEsR3Q9Y2xhc3MgZXtpZD1XdCsrO2N1cnJlbnQ9bmV3IE1hcDtwcmV2aW91cz1uZXcgTWFwOyNlPW5ldyBTZXQ7I3Q9bmV3IFNldDsjbj1uZXcgU2V0OyNyPW5ldyBNYXA7I2k9bmV3IE1hcDsjYT1udWxsOyNvPVtdOyNzPVtdOyNjPW5ldyBTZXQ7I2w9bmV3IFNldDsjdT1uZXcgTWFwOyNkPW5ldyBTZXQ7aXNfZm9yaz0hMTsjZj0hMTsjcD1uZXcgU2V0OyNtKCl7cmV0dXJuIHRoaXMuaXNfZm9ya3x8dGhpcy4jaS5zaXplPjB9I2goKXtmb3IobGV0IG4gb2YgdGhpcy4jcClmb3IobGV0IHIgb2Ygbi4jaS5rZXlzKCkpe2Zvcih2YXIgZT0hMSx0PXI7dC5wYXJlbnQhPT1udWxsOyl7aWYodGhpcy4jdS5oYXModCkpe2U9ITA7YnJlYWt9dD10LnBhcmVudH1pZighZSlyZXR1cm4hMH1yZXR1cm4hMX1za2lwX2VmZmVjdChlKXt0aGlzLiN1LmhhcyhlKXx8dGhpcy4jdS5zZXQoZSx7ZDpbXSxtOltdfSksdGhpcy4jZC5kZWxldGUoZSl9dW5za2lwX2VmZmVjdChlLHQ9ZT0+dGhpcy5zY2hlZHVsZShlKSl7dmFyIG49dGhpcy4jdS5nZXQoZSk7aWYobil7dGhpcy4jdS5kZWxldGUoZSk7Zm9yKHZhciByIG9mIG4uZClEKHIsY2UpLHQocik7Zm9yKHIgb2Ygbi5tKUQocixsZSksdChyKX10aGlzLiNkLmFkZChlKX0jZygpe2lmKFV0Kys+MWUzJiYoSXQuZGVsZXRlKHRoaXMpLHF0KCkpLCF0aGlzLiNtKCkpe2ZvcihsZXQgZSBvZiB0aGlzLiNjKXRoaXMuI2wuZGVsZXRlKGUpLEQoZSxjZSksdGhpcy5zY2hlZHVsZShlKTtmb3IobGV0IGUgb2YgdGhpcy4jbClEKGUsbGUpLHRoaXMuc2NoZWR1bGUoZSl9bGV0IHQ9dGhpcy4jbzt0aGlzLiNvPVtdLHRoaXMuYXBwbHkoKTt2YXIgbj1WdD1bXSxyPVtdLGk9SHQ9W107Zm9yKGxldCBlIG9mIHQpdHJ5e3RoaXMuI18oZSxuLHIpfWNhdGNoKHQpe3Rocm93IGVuKGUpLHR9aWYoaj1udWxsLGkubGVuZ3RoPjApe3ZhciBhPWUuZW5zdXJlKCk7Zm9yKGxldCBlIG9mIGkpYS5zY2hlZHVsZShlKX1pZihWdD1udWxsLEh0PW51bGwsdGhpcy4jbSgpfHx0aGlzLiNoKCkpe3RoaXMuI3YociksdGhpcy4jdihuKTtmb3IobGV0W2UsdF1vZiB0aGlzLiN1KSR0KGUsdCl9ZWxzZXt0aGlzLiNyLnNpemU9PT0wJiZJdC5kZWxldGUodGhpcyksdGhpcy4jYy5jbGVhcigpLHRoaXMuI2wuY2xlYXIoKTtmb3IobGV0IGUgb2YgdGhpcy4jZSllKHRoaXMpO3RoaXMuI2UuY2xlYXIoKSxMdD10aGlzLFl0KHIpLFl0KG4pLEx0PW51bGwsdGhpcy4jYT8ucmVzb2x2ZSgpfXZhciBvPWo7aWYodGhpcy4jby5sZW5ndGg+MCl7bGV0IGU9bz8/PXRoaXM7ZS4jby5wdXNoKC4uLnRoaXMuI28uZmlsdGVyKHQ9PiFlLiNvLmluY2x1ZGVzKHQpKSl9byE9PW51bGwmJihJdC5hZGQobyksby4jZygpKSxydCYmIUl0Lmhhcyh0aGlzKSYmdGhpcy4jeSgpfSNfKGUsdCxuKXtlLmZePXNlO2Zvcih2YXIgcj1lLmZpcnN0O3IhPT1udWxsOyl7dmFyIGk9ci5mLGE9KGkmOTYpIT0wO2lmKCEoYSYmaSYxMDI0fHxpJjgxOTJ8fHRoaXMuI3UuaGFzKHIpKSYmci5mbiE9PW51bGwpe2E/ci5mXj1zZTppJjQ/dC5wdXNoKHIpOnJ0JiZpJjE2Nzc3MjI0P24ucHVzaChyKTpXcihyKSYmKGkmMTYmJnRoaXMuI2wuYWRkKHIpLFlyKHIpKTt2YXIgbz1yLmZpcnN0O2lmKG8hPT1udWxsKXtyPW87Y29udGludWV9fWZvcig7ciE9PW51bGw7KXt2YXIgcz1yLm5leHQ7aWYocyE9PW51bGwpe3I9czticmVha31yPXIucGFyZW50fX19I3YoZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kz0xKUN0KGVbdF0sdGhpcy4jYyx0aGlzLiNsKX1jYXB0dXJlKGUsdCxuPSExKXtlLnYhPT1TJiYhdGhpcy5wcmV2aW91cy5oYXMoZSkmJnRoaXMucHJldmlvdXMuc2V0KGUsZS52KSxlLmYmODM4ODYwOHx8KHRoaXMuY3VycmVudC5zZXQoZSxbdCxuXSksTT8uc2V0KGUsdCkpLHRoaXMuaXNfZm9ya3x8KGUudj10KX1hY3RpdmF0ZSgpe2o9dGhpc31kZWFjdGl2YXRlKCl7aj1udWxsLE09bnVsbH1mbHVzaCgpe3RyeXtCdD0hMCxqPXRoaXMsdGhpcy4jZygpfWZpbmFsbHl7VXQ9MCxSdD1udWxsLFZ0PW51bGwsSHQ9bnVsbCxCdD0hMSxqPW51bGwsTT1udWxsLGJuLmNsZWFyKCl9fWRpc2NhcmQoKXtmb3IobGV0IGUgb2YgdGhpcy4jdCllKHRoaXMpO3RoaXMuI3QuY2xlYXIoKSx0aGlzLiNuLmNsZWFyKCksSXQuZGVsZXRlKHRoaXMpfXJlZ2lzdGVyX2NyZWF0ZWRfZWZmZWN0KGUpe3RoaXMuI3MucHVzaChlKX0jeSgpe2ZvcihsZXQgbCBvZiBJdCl7dmFyIGU9bC5pZDx0aGlzLmlkLHQ9W107Zm9yKGxldFtyLFtpLGFdXW9mIHRoaXMuY3VycmVudCl7aWYobC5jdXJyZW50LmhhcyhyKSl7dmFyIG49bC5jdXJyZW50LmdldChyKVswXTtpZihlJiZpIT09bilsLmN1cnJlbnQuc2V0KHIsW2ksYV0pO2Vsc2UgY29udGludWV9dC5wdXNoKHIpfXZhciByPVsuLi5sLmN1cnJlbnQua2V5cygpXS5maWx0ZXIoZT0+IXRoaXMuY3VycmVudC5oYXMoZSkpO2lmKHIubGVuZ3RoPT09MCllJiZsLmRpc2NhcmQoKTtlbHNlIGlmKHQubGVuZ3RoPjApe2lmKGUpZm9yKGxldCBlIG9mIHRoaXMuI2QpbC51bnNraXBfZWZmZWN0KGUsZT0+e2UuZiY0MTk0MzIwP2wuc2NoZWR1bGUoZSk6bC4jdihbZV0pfSk7bC5hY3RpdmF0ZSgpO3ZhciBpPW5ldyBTZXQsYT1uZXcgTWFwO2Zvcih2YXIgbyBvZiB0KVh0KG8scixpLGEpO2E9bmV3IE1hcDt2YXIgcz1bLi4ubC5jdXJyZW50LmtleXMoKV0uZmlsdGVyKGU9PnRoaXMuY3VycmVudC5oYXMoZSk/dGhpcy5jdXJyZW50LmdldChlKVswXSE9PWU6ITApO2ZvcihsZXQgZSBvZiB0aGlzLiNzKSEoZS5mJjE1NTY0OCkmJlp0KGUscyxhKSYmKGUuZiY0MTk0MzIwPyhEKGUsY2UpLGwuc2NoZWR1bGUoZSkpOmwuI2MuYWRkKGUpKTtpZihsLiNvLmxlbmd0aD4wKXtsLmFwcGx5KCk7Zm9yKHZhciBjIG9mIGwuI28pbC4jXyhjLFtdLFtdKTtsLiNvPVtdfWwuZGVhY3RpdmF0ZSgpfX1mb3IobGV0IGUgb2YgSXQpZS4jcC5oYXModGhpcykmJihlLiNwLmRlbGV0ZSh0aGlzKSxlLiNwLnNpemU9PT0wJiYhZS4jbSgpJiYoZS5hY3RpdmF0ZSgpLGUuI2coKSkpfWluY3JlbWVudChlLHQpe2xldCBuPXRoaXMuI3IuZ2V0KHQpPz8wO2lmKHRoaXMuI3Iuc2V0KHQsbisxKSxlKXtsZXQgZT10aGlzLiNpLmdldCh0KT8/MDt0aGlzLiNpLnNldCh0LGUrMSl9fWRlY3JlbWVudChlLHQsbil7bGV0IHI9dGhpcy4jci5nZXQodCk/PzA7aWYocj09PTE/dGhpcy4jci5kZWxldGUodCk6dGhpcy4jci5zZXQodCxyLTEpLGUpe2xldCBlPXRoaXMuI2kuZ2V0KHQpPz8wO2U9PT0xP3RoaXMuI2kuZGVsZXRlKHQpOnRoaXMuI2kuc2V0KHQsZS0xKX10aGlzLiNmfHxufHwodGhpcy4jZj0hMCxndCgoKT0+e3RoaXMuI2Y9ITEsdGhpcy5mbHVzaCgpfSkpfXRyYW5zZmVyX2VmZmVjdHMoZSx0KXtmb3IobGV0IHQgb2YgZSl0aGlzLiNjLmFkZCh0KTtmb3IobGV0IGUgb2YgdCl0aGlzLiNsLmFkZChlKTtlLmNsZWFyKCksdC5jbGVhcigpfW9uY29tbWl0KGUpe3RoaXMuI2UuYWRkKGUpfW9uZGlzY2FyZChlKXt0aGlzLiN0LmFkZChlKX1vbl9mb3JrX2NvbW1pdChlKXt0aGlzLiNuLmFkZChlKX1ydW5fZm9ya19jb21taXRfY2FsbGJhY2tzKCl7Zm9yKGxldCBlIG9mIHRoaXMuI24pZSh0aGlzKTt0aGlzLiNuLmNsZWFyKCl9c2V0dGxlZCgpe3JldHVybih0aGlzLiNhPz89YWUoKSkucHJvbWlzZX1zdGF0aWMgZW5zdXJlKCl7aWYoaj09PW51bGwpe2xldCB0PWo9bmV3IGU7QnR8fChJdC5hZGQoaiksenR8fGd0KCgpPT57aj09PXQmJnQuZmx1c2goKX0pKX1yZXR1cm4gan1hcHBseSgpe2lmKCFydHx8IXRoaXMuaXNfZm9yayYmSXQuc2l6ZT09PTEpe009bnVsbDtyZXR1cm59TT1uZXcgTWFwO2ZvcihsZXRbZSxbdF1db2YgdGhpcy5jdXJyZW50KU0uc2V0KGUsdCk7Zm9yKGxldCBuIG9mIEl0KWlmKCEobj09PXRoaXN8fG4uaXNfZm9yaykpe3ZhciBlPSExLHQ9ITE7aWYobi5pZDx0aGlzLmlkKWZvcihsZXRbcixbLGldXW9mIG4uY3VycmVudClpfHwoZXx8PXRoaXMuY3VycmVudC5oYXMociksdHx8PSF0aGlzLmN1cnJlbnQuaGFzKHIpKTtpZihlJiZ0KXRoaXMuI3AuYWRkKG4pO2Vsc2UgZm9yKGxldFtlLHRdb2Ygbi5wcmV2aW91cylNLmhhcyhlKXx8TS5zZXQoZSx0KX19c2NoZWR1bGUoZSl7aWYoUnQ9ZSxlLmI/LmlzX3BlbmRpbmcmJmUuZiYxNjc3NzIyOCYmIShlLmYmMzI3NjgpKXtlLmIuZGVmZXJfZWZmZWN0KGUpO3JldHVybn1mb3IodmFyIHQ9ZTt0LnBhcmVudCE9PW51bGw7KXt0PXQucGFyZW50O3ZhciBuPXQuZjtpZihWdCE9PW51bGwmJnQ9PT1JJiYocnR8fChGPT09bnVsbHx8IShGLmYmMikpJiYhRHQpKXJldHVybjtpZihuJjk2KXtpZighKG4mMTAyNCkpcmV0dXJuO3QuZl49c2V9fXRoaXMuI28ucHVzaCh0KX19O2Z1bmN0aW9uIEt0KGUpe3ZhciB0PXp0O3p0PSEwO3RyeXt2YXIgbjtmb3IoZSYmKGohPT1udWxsJiYhai5pc19mb3JrJiZqLmZsdXNoKCksbj1lKCkpOzspe2lmKF90KCksaj09PW51bGwpcmV0dXJuIG47ai5mbHVzaCgpfX1maW5hbGx5e3p0PXR9fWZ1bmN0aW9uIHF0KCl7dHJ5e05lKCl9Y2F0Y2goZSl7eXQoZSxSdCl9fXZhciBKdD1udWxsO2Z1bmN0aW9uIFl0KGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQhPT0wKXtmb3IodmFyIG49MDtuPHQ7KXt2YXIgcj1lW24rK107aWYoIShyLmYmMjQ1NzYpJiZXcihyKSYmKEp0PW5ldyBTZXQsWXIociksci5kZXBzPT09bnVsbCYmci5maXJzdD09PW51bGwmJnIubm9kZXM9PT1udWxsJiZyLnRlYXJkb3duPT09bnVsbCYmci5hYz09PW51bGwmJnhyKHIpLEp0Py5zaXplPjApKXtibi5jbGVhcigpO2ZvcihsZXQgZSBvZiBKdCl7aWYoZS5mJjI0NTc2KWNvbnRpbnVlO2xldCB0PVtlXSxuPWUucGFyZW50O2Zvcig7biE9PW51bGw7KUp0LmhhcyhuKSYmKEp0LmRlbGV0ZShuKSx0LnB1c2gobikpLG49bi5wYXJlbnQ7Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDtlLS0pe2xldCBuPXRbZV07bi5mJjI0NTc2fHxZcihuKX19SnQuY2xlYXIoKX19SnQ9bnVsbH19ZnVuY3Rpb24gWHQoZSx0LG4scil7aWYoIW4uaGFzKGUpJiYobi5hZGQoZSksZS5yZWFjdGlvbnMhPT1udWxsKSlmb3IobGV0IGkgb2YgZS5yZWFjdGlvbnMpe2xldCBlPWkuZjtlJjI/WHQoaSx0LG4scik6ZSY0MTk0MzIwJiYhKGUmMjA0OCkmJlp0KGksdCxyKSYmKEQoaSxjZSksUXQoaSkpfX1mdW5jdGlvbiBadChlLHQsbil7bGV0IHI9bi5nZXQoZSk7aWYociE9PXZvaWQgMClyZXR1cm4gcjtpZihlLmRlcHMhPT1udWxsKWZvcihsZXQgciBvZiBlLmRlcHMpe2lmKG0uY2FsbCh0LHIpKXJldHVybiEwO2lmKHIuZiYyJiZadChyLHQsbikpcmV0dXJuIG4uc2V0KHIsITApLCEwfXJldHVybiBuLnNldChlLCExKSwhMX1mdW5jdGlvbiBRdChlKXtqLnNjaGVkdWxlKGUpfWZ1bmN0aW9uICR0KGUsdCl7aWYoIShlLmYmMzImJmUuZiYxMDI0KSl7ZS5mJjIwNDg/dC5kLnB1c2goZSk6ZS5mJjQwOTYmJnQubS5wdXNoKGUpLEQoZSxzZSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KSR0KG4sdCksbj1uLm5leHR9fWZ1bmN0aW9uIGVuKGUpe0QoZSxzZSk7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KWVuKHQpLHQ9dC5uZXh0fWZ1bmN0aW9uIHRuKGUpe2xldCB0PTAsbj1TbigwKSxyO3JldHVybigpPT57aXIoKSYmKFIobiksZnIoKCk9Pih0PT09MCYmKHI9JHIoKCk9PmUoKCk9PmtuKG4pKSkpLHQrPTEsKCk9PntndCgoKT0+ey0tdCx0PT09MCYmKHI/LigpLHI9dm9pZCAwLGtuKG4pKX0pfSkpKX19dmFyIG5uPW1lfGhlO2Z1bmN0aW9uIHJuKGUsdCxuLHIpe25ldyBhbihlLHQsbixyKX12YXIgYW49Y2xhc3N7cGFyZW50O2lzX3BlbmRpbmc9ITE7dHJhbnNmb3JtX2Vycm9yOyNlOyN0PUM/dzpudWxsOyNuOyNyOyNpOyNhPW51bGw7I289bnVsbDsjcz1udWxsOyNjPW51bGw7I2w9MDsjdT0wOyNkPSExOyNmPW5ldyBTZXQ7I3A9bmV3IFNldDsjbT1udWxsOyNoPXRuKCgpPT4odGhpcy4jbT1Tbih0aGlzLiNsKSwoKT0+e3RoaXMuI209bnVsbH0pKTtjb25zdHJ1Y3RvcihlLHQsbixyKXt0aGlzLiNlPWUsdGhpcy4jbj10LHRoaXMuI3I9ZT0+e3ZhciB0PUk7dC5iPXRoaXMsdC5mfD0xMjgsbihlKX0sdGhpcy5wYXJlbnQ9SS5iLHRoaXMudHJhbnNmb3JtX2Vycm9yPXI/P3RoaXMucGFyZW50Py50cmFuc2Zvcm1fZXJyb3I/PyhlPT5lKSx0aGlzLiNpPW1yKCgpPT57aWYoQyl7bGV0IGU9dGhpcy4jdDtZZSgpO2xldCB0PWUuZGF0YT09PWBbIWA7aWYoZS5kYXRhLnN0YXJ0c1dpdGgoYFs/YCkpe2xldCB0PUpTT04ucGFyc2UoZS5kYXRhLnNsaWNlKDIpKTt0aGlzLiNfKHQpfWVsc2UgdD90aGlzLiN2KCk6dGhpcy4jZygpfWVsc2UgdGhpcy4jeSgpfSxubiksQyYmKHRoaXMuI2U9dyl9I2coKXt0cnl7dGhpcy4jYT1ncigoKT0+dGhpcy4jcih0aGlzLiNlKSl9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I18oZSl7bGV0IHQ9dGhpcy4jbi5mYWlsZWQ7dCYmKHRoaXMuI3M9Z3IoKCk9Pnt0KHRoaXMuI2UsKCk9PmUsKCk9PigpPT57fSl9KSl9I3YoKXtsZXQgZT10aGlzLiNuLnBlbmRpbmc7ZSYmKHRoaXMuaXNfcGVuZGluZz0hMCx0aGlzLiNvPWdyKCgpPT5lKHRoaXMuI2UpKSxndCgoKT0+e3ZhciBlPXRoaXMuI2M9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9em4oKTtlLmFwcGVuZCh0KSx0aGlzLiNhPXRoaXMuI3goKCk9PmdyKCgpPT50aGlzLiNyKHQpKSksdGhpcy4jdT09PTAmJih0aGlzLiNlLmJlZm9yZShlKSx0aGlzLiNjPW51bGwsU3IodGhpcy4jbywoKT0+e3RoaXMuI289bnVsbH0pLHRoaXMuI2IoaikpfSkpfSN5KCl7dHJ5e2lmKHRoaXMuaXNfcGVuZGluZz10aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSx0aGlzLiN1PTAsdGhpcy4jbD0wLHRoaXMuI2E9Z3IoKCk9Pnt0aGlzLiNyKHRoaXMuI2UpfSksdGhpcy4jdT4wKXt2YXIgZT10aGlzLiNjPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtFcih0aGlzLiNhLGUpO2xldCB0PXRoaXMuI24ucGVuZGluZzt0aGlzLiNvPWdyKCgpPT50KHRoaXMuI2UpKX1lbHNlIHRoaXMuI2Ioail9Y2F0Y2goZSl7dGhpcy5lcnJvcihlKX19I2IoZSl7dGhpcy5pc19wZW5kaW5nPSExLGUudHJhbnNmZXJfZWZmZWN0cyh0aGlzLiNmLHRoaXMuI3ApfWRlZmVyX2VmZmVjdChlKXtDdChlLHRoaXMuI2YsdGhpcy4jcCl9aXNfcmVuZGVyZWQoKXtyZXR1cm4hdGhpcy5pc19wZW5kaW5nJiYoIXRoaXMucGFyZW50fHx0aGlzLnBhcmVudC5pc19yZW5kZXJlZCgpKX1oYXNfcGVuZGluZ19zbmlwcGV0KCl7cmV0dXJuISF0aGlzLiNuLnBlbmRpbmd9I3goZSl7dmFyIHQ9SSxuPUYscj1FO05yKHRoaXMuI2kpLE1yKHRoaXMuI2kpLG90KHRoaXMuI2kuY3R4KTt0cnl7cmV0dXJuIEd0LmVuc3VyZSgpLGUoKX1jYXRjaChlKXtyZXR1cm4gdnQoZSksbnVsbH1maW5hbGx5e05yKHQpLE1yKG4pLG90KHIpfX0jUyhlLHQpe2lmKCF0aGlzLmhhc19wZW5kaW5nX3NuaXBwZXQoKSl7dGhpcy5wYXJlbnQmJnRoaXMucGFyZW50LiNTKGUsdCk7cmV0dXJufXRoaXMuI3UrPWUsdGhpcy4jdT09PTAmJih0aGlzLiNiKHQpLHRoaXMuI28mJlNyKHRoaXMuI28sKCk9Pnt0aGlzLiNvPW51bGx9KSx0aGlzLiNjJiY9KHRoaXMuI2UuYmVmb3JlKHRoaXMuI2MpLG51bGwpKX11cGRhdGVfcGVuZGluZ19jb3VudChlLHQpe3RoaXMuI1MoZSx0KSx0aGlzLiNsKz1lLCEoIXRoaXMuI218fHRoaXMuI2QpJiYodGhpcy4jZD0hMCxndCgoKT0+e3RoaXMuI2Q9ITEsdGhpcy4jbSYmRW4odGhpcy4jbSx0aGlzLiNsKX0pKX1nZXRfZWZmZWN0X3BlbmRpbmcoKXtyZXR1cm4gdGhpcy4jaCgpLFIodGhpcy4jbSl9ZXJyb3IoZSl7aWYoIXRoaXMuI24ub25lcnJvciYmIXRoaXMuI24uZmFpbGVkKXRocm93IGU7aj8uaXNfZm9yaz8odGhpcy4jYSYmai5za2lwX2VmZmVjdCh0aGlzLiNhKSx0aGlzLiNvJiZqLnNraXBfZWZmZWN0KHRoaXMuI28pLHRoaXMuI3MmJmouc2tpcF9lZmZlY3QodGhpcy4jcyksai5vbl9mb3JrX2NvbW1pdCgoKT0+e3RoaXMuI0MoZSl9KSk6dGhpcy4jQyhlKX0jQyhlKXt0aGlzLiNhJiY9KFAodGhpcy4jYSksbnVsbCksdGhpcy4jbyYmPShQKHRoaXMuI28pLG51bGwpLHRoaXMuI3MmJj0oUCh0aGlzLiNzKSxudWxsKSxDJiYoVCh0aGlzLiN0KSxaZSgpLFQoUWUoKSkpO3ZhciB0PXRoaXMuI24ub25lcnJvcjtsZXQgbj10aGlzLiNuLmZhaWxlZDt2YXIgcj0hMSxpPSExO2xldCBhPSgpPT57aWYocil7cWUoKTtyZXR1cm59cj0hMCxpJiZ6ZSgpLHRoaXMuI3MhPT1udWxsJiZTcih0aGlzLiNzLCgpPT57dGhpcy4jcz1udWxsfSksdGhpcy4jeCgoKT0+e3RoaXMuI3koKX0pfSxvPWU9Pnt0cnl7aT0hMCx0Py4oZSxhKSxpPSExfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpfW4mJih0aGlzLiNzPXRoaXMuI3goKCk9Pnt0cnl7cmV0dXJuIGdyKCgpPT57dmFyIHQ9STt0LmI9dGhpcyx0LmZ8PTEyOCxuKHRoaXMuI2UsKCk9PmUsKCk9PmEpfSl9Y2F0Y2goZSl7cmV0dXJuIHl0KGUsdGhpcy4jaS5wYXJlbnQpLG51bGx9fSkpfTtndCgoKT0+e3ZhciB0O3RyeXt0PXRoaXMudHJhbnNmb3JtX2Vycm9yKGUpfWNhdGNoKGUpe3l0KGUsdGhpcy4jaSYmdGhpcy4jaS5wYXJlbnQpO3JldHVybn10eXBlb2YgdD09YG9iamVjdGAmJnQmJnR5cGVvZiB0LnRoZW49PWBmdW5jdGlvbmA/dC50aGVuKG8sZT0+eXQoZSx0aGlzLiNpJiZ0aGlzLiNpLnBhcmVudCkpOm8odCl9KX19O2Z1bmN0aW9uIG9uKGUsdCxuLHIpe2xldCBpPWR0KCk/dW46cG47dmFyIGE9ZS5maWx0ZXIoZT0+IWUuc2V0dGxlZCk7aWYobi5sZW5ndGg9PT0wJiZhLmxlbmd0aD09PTApe3IodC5tYXAoaSkpO3JldHVybn12YXIgbz1JLHM9c24oKSxjPWEubGVuZ3RoPT09MT9hWzBdLnByb21pc2U6YS5sZW5ndGg+MT9Qcm9taXNlLmFsbChhLm1hcChlPT5lLnByb21pc2UpKTpudWxsO2Z1bmN0aW9uIGwoZSl7cygpO3RyeXtyKGUpfWNhdGNoKGUpe28uZiYxNjM4NHx8eXQoZSxvKX1jbigpfWlmKG4ubGVuZ3RoPT09MCl7Yy50aGVuKCgpPT5sKHQubWFwKGkpKSk7cmV0dXJufXZhciB1PWxuKCk7ZnVuY3Rpb24gZCgpe1Byb21pc2UuYWxsKG4ubWFwKGU9PmRuKGUpKSkudGhlbihlPT5sKFsuLi50Lm1hcChpKSwuLi5lXSkpLmNhdGNoKGU9Pnl0KGUsbykpLmZpbmFsbHkoKCk9PnUoKSl9Yz9jLnRoZW4oKCk9PntzKCksZCgpLGNuKCl9KTpkKCl9ZnVuY3Rpb24gc24oKXt2YXIgZT1JLHQ9RixuPUUscj1qO3JldHVybiBmdW5jdGlvbihpPSEwKXtOcihlKSxNcih0KSxvdChuKSxpJiYhKGUuZiYxNjM4NCkmJihyPy5hY3RpdmF0ZSgpLHI/LmFwcGx5KCkpfX1mdW5jdGlvbiBjbihlPSEwKXtOcihudWxsKSxNcihudWxsKSxvdChudWxsKSxlJiZqPy5kZWFjdGl2YXRlKCl9ZnVuY3Rpb24gbG4oKXt2YXIgZT1JLHQ9ZS5iLG49aixyPXQuaXNfcmVuZGVyZWQoKTtyZXR1cm4gdC51cGRhdGVfcGVuZGluZ19jb3VudCgxLG4pLG4uaW5jcmVtZW50KHIsZSksKGk9ITEpPT57dC51cGRhdGVfcGVuZGluZ19jb3VudCgtMSxuKSxuLmRlY3JlbWVudChyLGUsaSl9fWZ1bmN0aW9uIHVuKGUpe3ZhciB0PTJ8Y2U7cmV0dXJuIEkhPT1udWxsJiYoSS5mfD1oZSkse2N0eDpFLGRlcHM6bnVsbCxlZmZlY3RzOm51bGwsZXF1YWxzOmV0LGY6dCxmbjplLHJlYWN0aW9uczpudWxsLHJ2OjAsdjpTLHd2OjAscGFyZW50OkksYWM6bnVsbH19ZnVuY3Rpb24gZG4oZSx0LG4pe2xldCByPUk7cj09PW51bGwmJk9lKCk7dmFyIGk9dm9pZCAwLGE9U24oUyksbz0hRixzPW5ldyBNYXA7cmV0dXJuIGRyKCgpPT57dmFyIHQ9SSxuPWFlKCk7aT1uLnByb21pc2U7dHJ5e1Byb21pc2UucmVzb2x2ZShlKCkpLnRoZW4obi5yZXNvbHZlLG4ucmVqZWN0KS5maW5hbGx5KGNuKX1jYXRjaChlKXtuLnJlamVjdChlKSxjbigpfXZhciBjPWo7aWYobyl7aWYodC5mJjMyNzY4KXZhciBsPWxuKCk7aWYoci5iLmlzX3JlbmRlcmVkKCkpcy5nZXQoYyk/LnJlamVjdChUZSkscy5kZWxldGUoYyk7ZWxzZXtmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSk7cy5jbGVhcigpfXMuc2V0KGMsbil9bGV0IHU9KGUsbj12b2lkIDApPT57aWYobCYmbChuPT09VGUpLCEobj09PVRlfHx0LmYmMTYzODQpKXtpZihjLmFjdGl2YXRlKCksbilhLmZ8PXhlLEVuKGEsbik7ZWxzZXthLmYmODM4ODYwOCYmKGEuZl49eGUpLEVuKGEsZSk7Zm9yKGxldFtlLHRdb2Ygcyl7aWYocy5kZWxldGUoZSksZT09PWMpYnJlYWs7dC5yZWplY3QoVGUpfX1jLmRlYWN0aXZhdGUoKX19O24ucHJvbWlzZS50aGVuKHUsZT0+dShudWxsLGV8fGB1bmtub3duYCkpfSksYXIoKCk9Pntmb3IobGV0IGUgb2Ygcy52YWx1ZXMoKSllLnJlamVjdChUZSl9KSxuZXcgUHJvbWlzZShlPT57ZnVuY3Rpb24gdChuKXtmdW5jdGlvbiByKCl7bj09PWk/ZShhKTp0KGkpfW4udGhlbihyLHIpfXQoaSl9KX1mdW5jdGlvbiBmbihlKXtsZXQgdD11bihlKTtyZXR1cm4gcnR8fEZyKHQpLHR9ZnVuY3Rpb24gcG4oZSl7bGV0IHQ9dW4oZSk7cmV0dXJuIHQuZXF1YWxzPW50LHR9ZnVuY3Rpb24gbW4oZSl7dmFyIHQ9ZS5lZmZlY3RzO2lmKHQhPT1udWxsKXtlLmVmZmVjdHM9bnVsbDtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTEpUCh0W25dKX19ZnVuY3Rpb24gaG4oZSl7dmFyIHQsbj1JLHI9ZS5wYXJlbnQ7aWYoIWtyJiZyIT09bnVsbCYmci5mJjI0NTc2KXJldHVybiBXZSgpLGUudjtOcihyKTt0cnl7ZS5mJj1+dmUsbW4oZSksdD1LcihlKX1maW5hbGx5e05yKG4pfXJldHVybiB0fWZ1bmN0aW9uIGduKGUpe3ZhciB0PWhuKGUpO2lmKCFlLmVxdWFscyh0KSYmKGUud3Y9VXIoKSwoIWo/LmlzX2Zvcmt8fGUuZGVwcz09PW51bGwpJiYoaj09PW51bGw/ZS52PXQ6ai5jYXB0dXJlKGUsdCwhMCksZS5kZXBzPT09bnVsbCkpKXtEKGUsc2UpO3JldHVybn1rcnx8KE09PT1udWxsP3h0KGUpOihpcigpfHxqPy5pc19mb3JrKSYmTS5zZXQoZSx0KSl9ZnVuY3Rpb24gX24oZSl7aWYoZS5lZmZlY3RzIT09bnVsbClmb3IobGV0IHQgb2YgZS5lZmZlY3RzKSh0LnRlYXJkb3dufHx0LmFjKSYmKHQudGVhcmRvd24/LigpLHQuYWM/LmFib3J0KFRlKSx0LnRlYXJkb3duPXgsdC5hYz1udWxsLEpyKHQsMCksdnIodCkpfWZ1bmN0aW9uIHZuKGUpe2lmKGUuZWZmZWN0cyE9PW51bGwpZm9yKGxldCB0IG9mIGUuZWZmZWN0cyl0LnRlYXJkb3duJiZZcih0KX12YXIgeW49bmV3IFNldCxibj1uZXcgTWFwLHhuPSExO2Z1bmN0aW9uIFNuKGUsdCl7cmV0dXJue2Y6MCx2OmUscmVhY3Rpb25zOm51bGwsZXF1YWxzOmV0LHJ2OjAsd3Y6MH19ZnVuY3Rpb24gQ24oZSx0KXtsZXQgbj1TbihlLHQpO3JldHVybiBGcihuKSxufWZ1bmN0aW9uIHduKGUsdD0hMSxuPSEwKXtsZXQgcj1TbihlKTtyZXR1cm4gdHx8KHIuZXF1YWxzPW50KSxpdCYmbiYmRSE9PW51bGwmJkUubCE9PW51bGwmJihFLmwucz8/PVtdKS5wdXNoKHIpLHJ9ZnVuY3Rpb24gVG4oZSx0LG49ITEpe3JldHVybiBGIT09bnVsbCYmKCFqcnx8Ri5mJjEzMTA3MikmJmR0KCkmJkYuZiY0MzI1Mzk0JiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSYmUmUoKSxFbihlLG4/am4odCk6dCxIdCl9ZnVuY3Rpb24gRW4oZSx0LG49bnVsbCl7aWYoIWUuZXF1YWxzKHQpKXtibi5zZXQoZSxrcj90OmUudik7dmFyIHI9R3QuZW5zdXJlKCk7aWYoci5jYXB0dXJlKGUsdCksZS5mJjIpe2xldCB0PWU7ZS5mJjIwNDgmJmhuKHQpLE09PT1udWxsJiZ4dCh0KX1lLnd2PVVyKCksQW4oZSxjZSxuKSxkdCgpJiZJIT09bnVsbCYmSS5mJjEwMjQmJiEoSS5mJjk2KSYmKExyPT09bnVsbD9ScihbZV0pOkxyLnB1c2goZSkpLCFyLmlzX2ZvcmsmJnluLnNpemU+MCYmIXhuJiZEbigpfXJldHVybiB0fWZ1bmN0aW9uIERuKCl7eG49ITE7Zm9yKGxldCBlIG9mIHluKWUuZiYxMDI0JiZEKGUsbGUpLFdyKGUpJiZZcihlKTt5bi5jbGVhcigpfWZ1bmN0aW9uIE9uKGUsdD0xKXt2YXIgbj1SKGUpLHI9dD09PTE/bisrOm4tLTtyZXR1cm4gVG4oZSxuKSxyfWZ1bmN0aW9uIGtuKGUpe1RuKGUsZS52KzEpfWZ1bmN0aW9uIEFuKGUsdCxuKXt2YXIgcj1lLnJlYWN0aW9ucztpZihyIT09bnVsbClmb3IodmFyIGk9ZHQoKSxhPXIubGVuZ3RoLG89MDtvPGE7bysrKXt2YXIgcz1yW29dLGM9cy5mO2lmKCEoIWkmJnM9PT1JKSl7dmFyIGw9KGMmY2UpPT09MDtpZihsJiZEKHMsdCksYyYyKXt2YXIgdT1zO00/LmRlbGV0ZSh1KSxjJjY1NTM2fHwoYyY1MTImJihJPT09bnVsbHx8IShJLmYmMjA5NzE1MikpJiYocy5mfD12ZSksQW4odSxsZSxuKSl9ZWxzZSBpZihsKXt2YXIgZD1zO2MmMTYmJkp0IT09bnVsbCYmSnQuYWRkKGQpLG49PT1udWxsP1F0KGQpOm4ucHVzaChkKX19fX1mdW5jdGlvbiBqbihlKXtpZih0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxTZSBpbiBlKXJldHVybiBlO2xldCB0PWIoZSk7aWYodCE9PXkmJnQhPT1lZSlyZXR1cm4gZTt2YXIgbj1uZXcgTWFwLHI9ZihlKSxpPUNuKDApLGE9bnVsbCxvPVZyLHM9ZT0+e2lmKFZyPT09bylyZXR1cm4gZSgpO3ZhciB0PUYsbj1WcjtNcihudWxsKSxIcihvKTt2YXIgcj1lKCk7cmV0dXJuIE1yKHQpLEhyKG4pLHJ9O3JldHVybiByJiZuLnNldChgbGVuZ3RoYCxDbihlLmxlbmd0aCxhKSksbmV3IFByb3h5KGUse2RlZmluZVByb3BlcnR5KGUsdCxyKXsoIShgdmFsdWVgaW4gcil8fHIuY29uZmlndXJhYmxlPT09ITF8fHIuZW51bWVyYWJsZT09PSExfHxyLndyaXRhYmxlPT09ITEpJiZJZSgpO3ZhciBpPW4uZ2V0KHQpO3JldHVybiBpPT09dm9pZCAwP3MoKCk9Pnt2YXIgZT1DbihyLnZhbHVlLGEpO3JldHVybiBuLnNldCh0LGUpLGV9KTpUbihpLHIudmFsdWUsITApLCEwfSxkZWxldGVQcm9wZXJ0eShlLHQpe3ZhciByPW4uZ2V0KHQpO2lmKHI9PT12b2lkIDApe2lmKHQgaW4gZSl7bGV0IGU9cygoKT0+Q24oUyxhKSk7bi5zZXQodCxlKSxrbihpKX19ZWxzZSBUbihyLFMpLGtuKGkpO3JldHVybiEwfSxnZXQodCxyLGkpe2lmKHI9PT1TZSlyZXR1cm4gZTt2YXIgbz1uLmdldChyKSxjPXIgaW4gdDtpZihvPT09dm9pZCAwJiYoIWN8fF8odCxyKT8ud3JpdGFibGUpJiYobz1zKCgpPT5DbihqbihjP3Rbcl06UyksYSkpLG4uc2V0KHIsbykpLG8hPT12b2lkIDApe3ZhciBsPVIobyk7cmV0dXJuIGw9PT1TP3ZvaWQgMDpsfXJldHVybiBSZWZsZWN0LmdldCh0LHIsaSl9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe3ZhciByPVJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYociYmYHZhbHVlYGluIHIpe3ZhciBpPW4uZ2V0KHQpO2kmJihyLnZhbHVlPVIoaSkpfWVsc2UgaWYocj09PXZvaWQgMCl7dmFyIGE9bi5nZXQodCksbz1hPy52O2lmKGEhPT12b2lkIDAmJm8hPT1TKXJldHVybntlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpvLHdyaXRhYmxlOiEwfX1yZXR1cm4gcn0saGFzKGUsdCl7aWYodD09PVNlKXJldHVybiEwO3ZhciByPW4uZ2V0KHQpLGk9ciE9PXZvaWQgMCYmci52IT09U3x8UmVmbGVjdC5oYXMoZSx0KTtyZXR1cm4ociE9PXZvaWQgMHx8SSE9PW51bGwmJighaXx8XyhlLHQpPy53cml0YWJsZSkpJiYocj09PXZvaWQgMCYmKHI9cygoKT0+Q24oaT9qbihlW3RdKTpTLGEpKSxuLnNldCh0LHIpKSxSKHIpPT09Uyk/ITE6aX0sc2V0KGUsdCxvLGMpe3ZhciBsPW4uZ2V0KHQpLHU9dCBpbiBlO2lmKHImJnQ9PT1gbGVuZ3RoYClmb3IodmFyIGQ9bztkPGwudjtkKz0xKXt2YXIgZj1uLmdldChkK2BgKTtmPT09dm9pZCAwP2QgaW4gZSYmKGY9cygoKT0+Q24oUyxhKSksbi5zZXQoZCtgYCxmKSk6VG4oZixTKX1pZihsPT09dm9pZCAwKSghdXx8XyhlLHQpPy53cml0YWJsZSkmJihsPXMoKCk9PkNuKHZvaWQgMCxhKSksVG4obCxqbihvKSksbi5zZXQodCxsKSk7ZWxzZXt1PWwudiE9PVM7dmFyIHA9cygoKT0+am4obykpO1RuKGwscCl9dmFyIG09UmVmbGVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KTtpZihtPy5zZXQmJm0uc2V0LmNhbGwoYyxvKSwhdSl7aWYociYmdHlwZW9mIHQ9PWBzdHJpbmdgKXt2YXIgaD1uLmdldChgbGVuZ3RoYCksZz1OdW1iZXIodCk7TnVtYmVyLmlzSW50ZWdlcihnKSYmZz49aC52JiZUbihoLGcrMSl9a24oaSl9cmV0dXJuITB9LG93bktleXMoZSl7UihpKTt2YXIgdD1SZWZsZWN0Lm93bktleXMoZSkuZmlsdGVyKGU9Pnt2YXIgdD1uLmdldChlKTtyZXR1cm4gdD09PXZvaWQgMHx8dC52IT09U30pO2Zvcih2YXJbcixhXW9mIG4pYS52IT09UyYmIShyIGluIGUpJiZ0LnB1c2gocik7cmV0dXJuIHR9LHNldFByb3RvdHlwZU9mKCl7TGUoKX19KX1mdW5jdGlvbiBNbihlKXt0cnl7aWYodHlwZW9mIGU9PWBvYmplY3RgJiZlJiZTZSBpbiBlKXJldHVybiBlW1NlXX1jYXRjaHt9cmV0dXJuIGV9ZnVuY3Rpb24gTm4oZSx0KXtyZXR1cm4gT2JqZWN0LmlzKE1uKGUpLE1uKHQpKX12YXIgUG4sRm4sSW4sTG47ZnVuY3Rpb24gUm4oKXtpZihQbj09PXZvaWQgMCl7UG49d2luZG93LEZuPS9GaXJlZm94Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO3ZhciBlPUVsZW1lbnQucHJvdG90eXBlLHQ9Tm9kZS5wcm90b3R5cGUsbj1UZXh0LnByb3RvdHlwZTtJbj1fKHQsYGZpcnN0Q2hpbGRgKS5nZXQsTG49Xyh0LGBuZXh0U2libGluZ2ApLmdldCx0ZShlKSYmKGUuX19jbGljaz12b2lkIDAsZS5fX2NsYXNzTmFtZT12b2lkIDAsZS5fX2F0dHJpYnV0ZXM9bnVsbCxlLl9fc3R5bGU9dm9pZCAwLGUuX19lPXZvaWQgMCksdGUobikmJihuLl9fdD12b2lkIDApfX1mdW5jdGlvbiB6bihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSl9ZnVuY3Rpb24gTihlKXtyZXR1cm4gSW4uY2FsbChlKX1mdW5jdGlvbiBCbihlKXtyZXR1cm4gTG4uY2FsbChlKX1mdW5jdGlvbiBWbihlLHQpe2lmKCFDKXJldHVybiBOKGUpO3ZhciBuPU4odyk7aWYobj09PW51bGwpbj13LmFwcGVuZENoaWxkKHpuKCkpO2Vsc2UgaWYodCYmbi5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIG4/LmJlZm9yZShyKSxUKHIpLHJ9cmV0dXJuIHQmJkpuKG4pLFQobiksbn1mdW5jdGlvbiBIbihlLHQ9ITEpe2lmKCFDKXt2YXIgbj1OKGUpO3JldHVybiBuIGluc3RhbmNlb2YgQ29tbWVudCYmbi5kYXRhPT09YGA/Qm4obik6bn1pZih0KXtpZih3Py5ub2RlVHlwZSE9PTMpe3ZhciByPXpuKCk7cmV0dXJuIHc/LmJlZm9yZShyKSxUKHIpLHJ9Sm4odyl9cmV0dXJuIHd9ZnVuY3Rpb24gVW4oZSx0PTEsbj0hMSl7bGV0IHI9Qz93OmU7Zm9yKHZhciBpO3QtLTspaT1yLHI9Qm4ocik7aWYoIUMpcmV0dXJuIHI7aWYobil7aWYocj8ubm9kZVR5cGUhPT0zKXt2YXIgYT16bigpO3JldHVybiByPT09bnVsbD9pPy5hZnRlcihhKTpyLmJlZm9yZShhKSxUKGEpLGF9Sm4ocil9cmV0dXJuIFQocikscn1mdW5jdGlvbiBXbihlKXtlLnRleHRDb250ZW50PWBgfWZ1bmN0aW9uIEduKCl7cmV0dXJuIXJ0fHxKdCE9PW51bGw/ITE6KEkuZiZmZSkhPT0wfWZ1bmN0aW9uIEtuKGUsdCxuKXtsZXQgcj1uP3tpczpufTp2b2lkIDA7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyh0Pz9gaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbGAsZSxyKX1mdW5jdGlvbiBxbihlPWBgKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlKX1mdW5jdGlvbiBKbihlKXtpZihlLm5vZGVWYWx1ZS5sZW5ndGg8NjU1MzYpcmV0dXJuO2xldCB0PWUubmV4dFNpYmxpbmc7Zm9yKDt0IT09bnVsbCYmdC5ub2RlVHlwZT09PTM7KXQucmVtb3ZlKCksZS5ub2RlVmFsdWUrPXQubm9kZVZhbHVlLHQ9ZS5uZXh0U2libGluZ31mdW5jdGlvbiBZbihlLHQpe2lmKHQpe2xldCB0PWRvY3VtZW50LmJvZHk7ZS5hdXRvZm9jdXM9ITAsZ3QoKCk9Pntkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dCYmZS5mb2N1cygpfSl9fWZ1bmN0aW9uIFhuKGUpe0MmJk4oZSkhPT1udWxsJiZXbihlKX12YXIgWm49ITE7ZnVuY3Rpb24gUW4oKXtabnx8KFpuPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoYHJlc2V0YCxlPT57UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2lmKCFlLmRlZmF1bHRQcmV2ZW50ZWQpZm9yKGxldCB0IG9mIGUudGFyZ2V0LmVsZW1lbnRzKXQuX19vbl9yPy4oKX0pfSx7Y2FwdHVyZTohMH0pKX1mdW5jdGlvbiAkbihlKXt2YXIgdD1GLG49STtNcihudWxsKSxOcihudWxsKTt0cnl7cmV0dXJuIGUoKX1maW5hbGx5e01yKHQpLE5yKG4pfX1mdW5jdGlvbiBlcihlLHQsbixyPW4pe2UuYWRkRXZlbnRMaXN0ZW5lcih0LCgpPT4kbihuKSk7bGV0IGk9ZS5fX29uX3I7aT9lLl9fb25fcj0oKT0+e2koKSxyKCEwKX06ZS5fX29uX3I9KCk9PnIoITApLFFuKCl9ZnVuY3Rpb24gdHIoZSl7ST09PW51bGwmJihGPT09bnVsbCYmTWUoZSksamUoKSksa3ImJkFlKGUpfWZ1bmN0aW9uIG5yKGUsdCl7dmFyIG49dC5sYXN0O249PT1udWxsP3QubGFzdD10LmZpcnN0PWU6KG4ubmV4dD1lLGUucHJldj1uLHQubGFzdD1lKX1mdW5jdGlvbiBycihlLHQpe3ZhciBuPUk7biE9PW51bGwmJm4uZiY4MTkyJiYoZXw9dWUpO3ZhciByPXtjdHg6RSxkZXBzOm51bGwsbm9kZXM6bnVsbCxmOmV8Y2V8NTEyLGZpcnN0Om51bGwsZm46dCxsYXN0Om51bGwsbmV4dDpudWxsLHBhcmVudDpuLGI6biYmbi5iLHByZXY6bnVsbCx0ZWFyZG93bjpudWxsLHd2OjAsYWM6bnVsbH07aj8ucmVnaXN0ZXJfY3JlYXRlZF9lZmZlY3Qocik7dmFyIGk9cjtpZihlJjQpVnQ9PT1udWxsP0d0LmVuc3VyZSgpLnNjaGVkdWxlKHIpOlZ0LnB1c2gocik7ZWxzZSBpZih0IT09bnVsbCl7dHJ5e1lyKHIpfWNhdGNoKGUpe3Rocm93IFAociksZX1pLmRlcHM9PT1udWxsJiZpLnRlYXJkb3duPT09bnVsbCYmaS5ub2Rlcz09PW51bGwmJmkuZmlyc3Q9PT1pLmxhc3QmJiEoaS5mJjUyNDI4OCkmJihpPWkuZmlyc3QsZSYxNiYmZSY2NTUzNiYmaSE9PW51bGwmJihpLmZ8PW1lKSl9aWYoaSE9PW51bGwmJihpLnBhcmVudD1uLG4hPT1udWxsJiZucihpLG4pLEYhPT1udWxsJiZGLmYmMiYmIShlJjY0KSkpe3ZhciBhPUY7KGEuZWZmZWN0cz8/PVtdKS5wdXNoKGkpfXJldHVybiByfWZ1bmN0aW9uIGlyKCl7cmV0dXJuIEYhPT1udWxsJiYhanJ9ZnVuY3Rpb24gYXIoZSl7bGV0IHQ9cnIoOCxudWxsKTtyZXR1cm4gRCh0LHNlKSx0LnRlYXJkb3duPWUsdH1mdW5jdGlvbiBvcihlKXt0cihgJGVmZmVjdGApO3ZhciB0PUkuZjtpZighRiYmdCYzMiYmISh0JjMyNzY4KSl7dmFyIG49RTsobi5lPz89W10pLnB1c2goZSl9ZWxzZSByZXR1cm4gc3IoZSl9ZnVuY3Rpb24gc3IoZSl7cmV0dXJuIHJyKDR8Z2UsZSl9ZnVuY3Rpb24gY3IoZSl7cmV0dXJuIHRyKGAkZWZmZWN0LnByZWApLHJyKDh8Z2UsZSl9ZnVuY3Rpb24gbHIoZSl7R3QuZW5zdXJlKCk7bGV0IHQ9cnIoNjR8aGUsZSk7cmV0dXJuKGU9e30pPT5uZXcgUHJvbWlzZShuPT57ZS5vdXRybz9Tcih0LCgpPT57UCh0KSxuKHZvaWQgMCl9KTooUCh0KSxuKHZvaWQgMCkpfSl9ZnVuY3Rpb24gdXIoZSl7cmV0dXJuIHJyKDQsZSl9ZnVuY3Rpb24gZHIoZSl7cmV0dXJuIHJyKGJlfGhlLGUpfWZ1bmN0aW9uIGZyKGUsdD0wKXtyZXR1cm4gcnIoOHx0LGUpfWZ1bmN0aW9uIHByKGUsdD1bXSxuPVtdLHI9W10pe29uKHIsdCxuLHQ9Pntycig4LCgpPT5lKC4uLnQubWFwKFIpKSl9KX1mdW5jdGlvbiBtcihlLHQ9MCl7cmV0dXJuIHJyKDE2fHQsZSl9ZnVuY3Rpb24gaHIoZSx0PTApe3JldHVybiBycihvZXx0LGUpfWZ1bmN0aW9uIGdyKGUpe3JldHVybiBycigzMnxoZSxlKX1mdW5jdGlvbiBfcihlKXt2YXIgdD1lLnRlYXJkb3duO2lmKHQhPT1udWxsKXtsZXQgZT1rcixuPUY7QXIoITApLE1yKG51bGwpO3RyeXt0LmNhbGwobnVsbCl9ZmluYWxseXtBcihlKSxNcihuKX19fWZ1bmN0aW9uIHZyKGUsdD0hMSl7dmFyIG49ZS5maXJzdDtmb3IoZS5maXJzdD1lLmxhc3Q9bnVsbDtuIT09bnVsbDspe2xldCBlPW4uYWM7ZSE9PW51bGwmJiRuKCgpPT57ZS5hYm9ydChUZSl9KTt2YXIgcj1uLm5leHQ7bi5mJjY0P24ucGFyZW50PW51bGw6UChuLHQpLG49cn19ZnVuY3Rpb24geXIoZSl7Zm9yKHZhciB0PWUuZmlyc3Q7dCE9PW51bGw7KXt2YXIgbj10Lm5leHQ7dC5mJjMyfHxQKHQpLHQ9bn19ZnVuY3Rpb24gUChlLHQ9ITApe3ZhciBuPSExOyh0fHxlLmYmMjYyMTQ0KSYmZS5ub2RlcyE9PW51bGwmJmUubm9kZXMuZW5kIT09bnVsbCYmKGJyKGUubm9kZXMuc3RhcnQsZS5ub2Rlcy5lbmQpLG49ITApLEQoZSxwZSksdnIoZSx0JiYhbiksSnIoZSwwKTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpZS5zdG9wKCk7X3IoZSksZS5mXj1wZSxlLmZ8PWRlO3ZhciBpPWUucGFyZW50O2khPT1udWxsJiZpLmZpcnN0IT09bnVsbCYmeHIoZSksZS5uZXh0PWUucHJldj1lLnRlYXJkb3duPWUuY3R4PWUuZGVwcz1lLmZuPWUubm9kZXM9ZS5hYz1lLmI9bnVsbH1mdW5jdGlvbiBicihlLHQpe2Zvcig7ZSE9PW51bGw7KXt2YXIgbj1lPT09dD9udWxsOkJuKGUpO2UucmVtb3ZlKCksZT1ufX1mdW5jdGlvbiB4cihlKXt2YXIgdD1lLnBhcmVudCxuPWUucHJldixyPWUubmV4dDtuIT09bnVsbCYmKG4ubmV4dD1yKSxyIT09bnVsbCYmKHIucHJldj1uKSx0IT09bnVsbCYmKHQuZmlyc3Q9PT1lJiYodC5maXJzdD1yKSx0Lmxhc3Q9PT1lJiYodC5sYXN0PW4pKX1mdW5jdGlvbiBTcihlLHQsbj0hMCl7dmFyIHI9W107Q3IoZSxyLCEwKTt2YXIgaT0oKT0+e24mJlAoZSksdCYmdCgpfSxhPXIubGVuZ3RoO2lmKGE+MCl7dmFyIG89KCk9Pi0tYXx8aSgpO2Zvcih2YXIgcyBvZiByKXMub3V0KG8pfWVsc2UgaSgpfWZ1bmN0aW9uIENyKGUsdCxuKXtpZighKGUuZiY4MTkyKSl7ZS5mXj11ZTt2YXIgcj1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYociE9PW51bGwpZm9yKGxldCBlIG9mIHIpKGUuaXNfZ2xvYmFsfHxuKSYmdC5wdXNoKGUpO2Zvcih2YXIgaT1lLmZpcnN0O2khPT1udWxsOyl7dmFyIGE9aS5uZXh0O2lmKCEoaS5mJjY0KSl7dmFyIG89KGkuZiY2NTUzNikhPTB8fChpLmYmMzIpIT0wJiYoZS5mJjE2KSE9MDtDcihpLHQsbz9uOiExKX1pPWF9fX1mdW5jdGlvbiB3cihlKXtUcihlLCEwKX1mdW5jdGlvbiBUcihlLHQpe2lmKGUuZiY4MTkyKXtlLmZePXVlLGUuZiYxMDI0fHwoRChlLGNlKSxHdC5lbnN1cmUoKS5zY2hlZHVsZShlKSk7Zm9yKHZhciBuPWUuZmlyc3Q7biE9PW51bGw7KXt2YXIgcj1uLm5leHQsaT0obi5mJjY1NTM2KSE9MHx8KG4uZiYzMikhPTA7VHIobixpP3Q6ITEpLG49cn12YXIgYT1lLm5vZGVzJiZlLm5vZGVzLnQ7aWYoYSE9PW51bGwpZm9yKGxldCBlIG9mIGEpKGUuaXNfZ2xvYmFsfHx0KSYmZS5pbigpfX1mdW5jdGlvbiBFcihlLHQpe2lmKGUubm9kZXMpZm9yKHZhciBuPWUubm9kZXMuc3RhcnQscj1lLm5vZGVzLmVuZDtuIT09bnVsbDspe3ZhciBpPW49PT1yP251bGw6Qm4obik7dC5hcHBlbmQobiksbj1pfX12YXIgRHI9bnVsbCxPcj0hMSxrcj0hMTtmdW5jdGlvbiBBcihlKXtrcj1lfXZhciBGPW51bGwsanI9ITE7ZnVuY3Rpb24gTXIoZSl7Rj1lfXZhciBJPW51bGw7ZnVuY3Rpb24gTnIoZSl7ST1lfXZhciBQcj1udWxsO2Z1bmN0aW9uIEZyKGUpe0YhPT1udWxsJiYoIXJ0fHxGLmYmMikmJihQcj09PW51bGw/UHI9W2VdOlByLnB1c2goZSkpfXZhciBMPW51bGwsSXI9MCxMcj1udWxsO2Z1bmN0aW9uIFJyKGUpe0xyPWV9dmFyIHpyPTEsQnI9MCxWcj1CcjtmdW5jdGlvbiBIcihlKXtWcj1lfWZ1bmN0aW9uIFVyKCl7cmV0dXJuKyt6cn1mdW5jdGlvbiBXcihlKXt2YXIgdD1lLmY7aWYodCYyMDQ4KXJldHVybiEwO2lmKHQmMiYmKGUuZiY9fnZlKSx0JjQwOTYpe2Zvcih2YXIgbj1lLmRlcHMscj1uLmxlbmd0aCxpPTA7aTxyO2krKyl7dmFyIGE9bltpXTtpZihXcihhKSYmZ24oYSksYS53dj5lLnd2KXJldHVybiEwfXQmNTEyJiZNPT09bnVsbCYmRChlLHNlKX1yZXR1cm4hMX1mdW5jdGlvbiBHcihlLHQsbj0hMCl7dmFyIHI9ZS5yZWFjdGlvbnM7aWYociE9PW51bGwmJiEoIXJ0JiZQciE9PW51bGwmJm0uY2FsbChQcixlKSkpZm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07YS5mJjI/R3IoYSx0LCExKTp0PT09YSYmKG4/RChhLGNlKTphLmYmMTAyNCYmRChhLGxlKSxRdChhKSl9fWZ1bmN0aW9uIEtyKGUpe3ZhciB0PUwsbj1JcixyPUxyLGk9RixhPVByLG89RSxzPWpyLGM9VnIsbD1lLmY7TD1udWxsLElyPTAsTHI9bnVsbCxGPWwmOTY/bnVsbDplLFByPW51bGwsb3QoZS5jdHgpLGpyPSExLFZyPSsrQnIsZS5hYyE9PW51bGwmJigkbigoKT0+e2UuYWMuYWJvcnQoVGUpfSksZS5hYz1udWxsKTt0cnl7ZS5mfD15ZTt2YXIgdT1lLmZuLGQ9dSgpO2UuZnw9ZmU7dmFyIGY9ZS5kZXBzLHA9aj8uaXNfZm9yaztpZihMIT09bnVsbCl7dmFyIG07aWYocHx8SnIoZSxJciksZiE9PW51bGwmJklyPjApZm9yKGYubGVuZ3RoPUlyK0wubGVuZ3RoLG09MDttPEwubGVuZ3RoO20rKylmW0lyK21dPUxbbV07ZWxzZSBlLmRlcHM9Zj1MO2lmKGlyKCkmJmUuZiY1MTIpZm9yKG09SXI7bTxmLmxlbmd0aDttKyspKGZbbV0ucmVhY3Rpb25zPz89W10pLnB1c2goZSl9ZWxzZSAhcCYmZiE9PW51bGwmJklyPGYubGVuZ3RoJiYoSnIoZSxJciksZi5sZW5ndGg9SXIpO2lmKGR0KCkmJkxyIT09bnVsbCYmIWpyJiZmIT09bnVsbCYmIShlLmYmNjE0NikpZm9yKG09MDttPExyLmxlbmd0aDttKyspR3IoTHJbbV0sZSk7aWYoaSE9PW51bGwmJmkhPT1lKXtpZihCcisrLGkuZGVwcyE9PW51bGwpZm9yKGxldCBlPTA7ZTxuO2UrPTEpaS5kZXBzW2VdLnJ2PUJyO2lmKHQhPT1udWxsKWZvcihsZXQgZSBvZiB0KWUucnY9QnI7THIhPT1udWxsJiYocj09PW51bGw/cj1McjpyLnB1c2goLi4uTHIpKX1yZXR1cm4gZS5mJjgzODg2MDgmJihlLmZePXhlKSxkfWNhdGNoKGUpe3JldHVybiB2dChlKX1maW5hbGx5e2UuZl49eWUsTD10LElyPW4sTHI9cixGPWksUHI9YSxvdChvKSxqcj1zLFZyPWN9fWZ1bmN0aW9uIHFyKGUsdCl7bGV0IG49dC5yZWFjdGlvbnM7aWYobiE9PW51bGwpe3ZhciByPXAuY2FsbChuLGUpO2lmKHIhPT0tMSl7dmFyIGk9bi5sZW5ndGgtMTtpPT09MD9uPXQucmVhY3Rpb25zPW51bGw6KG5bcl09bltpXSxuLnBvcCgpKX19aWYobj09PW51bGwmJnQuZiYyJiYoTD09PW51bGx8fCFtLmNhbGwoTCx0KSkpe3ZhciBhPXQ7YS5mJjUxMiYmKGEuZl49NTEyLGEuZiY9fnZlKSxhLnYhPT1TJiZ4dChhKSxfbihhKSxKcihhLDApfX1mdW5jdGlvbiBKcihlLHQpe3ZhciBuPWUuZGVwcztpZihuIT09bnVsbClmb3IodmFyIHI9dDtyPG4ubGVuZ3RoO3IrKylxcihlLG5bcl0pfWZ1bmN0aW9uIFlyKGUpe3ZhciB0PWUuZjtpZighKHQmMTYzODQpKXtEKGUsc2UpO3ZhciBuPUkscj1PcjtJPWUsT3I9ITA7dHJ5e3QmMTY3NzcyMzI/eXIoZSk6dnIoZSksX3IoZSk7dmFyIGk9S3IoZSk7ZS50ZWFyZG93bj10eXBlb2YgaT09YGZ1bmN0aW9uYD9pOm51bGwsZS53dj16cn1maW5hbGx5e09yPXIsST1ufX19YXN5bmMgZnVuY3Rpb24gWHIoKXtpZihydClyZXR1cm4gbmV3IFByb21pc2UoZT0+e3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+ZSgpKSxzZXRUaW1lb3V0KCgpPT5lKCkpfSk7YXdhaXQgUHJvbWlzZS5yZXNvbHZlKCksS3QoKX1mdW5jdGlvbiBSKGUpe3ZhciB0PShlLmYmMikhPTA7aWYoRHI/LmFkZChlKSxGIT09bnVsbCYmIWpyJiYhKEkhPT1udWxsJiZJLmYmMTYzODQpJiYoUHI9PT1udWxsfHwhbS5jYWxsKFByLGUpKSl7dmFyIG49Ri5kZXBzO2lmKEYuZiYyMDk3MTUyKWUucnY8QnImJihlLnJ2PUJyLEw9PT1udWxsJiZuIT09bnVsbCYmbltJcl09PT1lP0lyKys6TD09PW51bGw/TD1bZV06TC5wdXNoKGUpKTtlbHNleyhGLmRlcHM/Pz1bXSkucHVzaChlKTt2YXIgcj1lLnJlYWN0aW9ucztyPT09bnVsbD9lLnJlYWN0aW9ucz1bRl06bS5jYWxsKHIsRil8fHIucHVzaChGKX19aWYoa3ImJmJuLmhhcyhlKSlyZXR1cm4gYm4uZ2V0KGUpO2lmKHQpe3ZhciBpPWU7aWYoa3Ipe3ZhciBhPWkudjtyZXR1cm4oIShpLmYmMTAyNCkmJmkucmVhY3Rpb25zIT09bnVsbHx8UXIoaSkpJiYoYT1obihpKSksYm4uc2V0KGksYSksYX12YXIgbz0oaS5mJjUxMik9PTAmJiFqciYmRiE9PW51bGwmJihPcnx8KEYuZiY1MTIpIT0wKSxzPShpLmYmZmUpPT09MDtXcihpKSYmKG8mJihpLmZ8PTUxMiksZ24oaSkpLG8mJiFzJiYodm4oaSksWnIoaSkpfWlmKE0/LmhhcyhlKSlyZXR1cm4gTS5nZXQoZSk7aWYoZS5mJjgzODg2MDgpdGhyb3cgZS52O3JldHVybiBlLnZ9ZnVuY3Rpb24gWnIoZSl7aWYoZS5mfD01MTIsZS5kZXBzIT09bnVsbClmb3IobGV0IHQgb2YgZS5kZXBzKSh0LnJlYWN0aW9ucz8/PVtdKS5wdXNoKGUpLHQuZiYyJiYhKHQuZiY1MTIpJiYodm4odCksWnIodCkpfWZ1bmN0aW9uIFFyKGUpe2lmKGUudj09PVMpcmV0dXJuITA7aWYoZS5kZXBzPT09bnVsbClyZXR1cm4hMTtmb3IobGV0IHQgb2YgZS5kZXBzKWlmKGJuLmhhcyh0KXx8dC5mJjImJlFyKHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uICRyKGUpe3ZhciB0PWpyO3RyeXtyZXR1cm4ganI9ITAsZSgpfWZpbmFsbHl7anI9dH19ZnVuY3Rpb24gZWkoZSl7aWYoISh0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxlIGluc3RhbmNlb2YgRXZlbnRUYXJnZXQpKXtpZihTZSBpbiBlKXRpKGUpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoZSkpZm9yKGxldCB0IGluIGUpe2xldCBuPWVbdF07dHlwZW9mIG49PWBvYmplY3RgJiZuJiZTZSBpbiBuJiZ0aShuKX19fWZ1bmN0aW9uIHRpKGUsdD1uZXcgU2V0KXtpZih0eXBlb2YgZT09YG9iamVjdGAmJmUmJiEoZSBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0KSYmIXQuaGFzKGUpKXt0LmFkZChlKSxlIGluc3RhbmNlb2YgRGF0ZSYmZS5nZXRUaW1lKCk7Zm9yKGxldCBuIGluIGUpdHJ5e3RpKGVbbl0sdCl9Y2F0Y2h7fWxldCBuPWIoZSk7aWYobiE9PU9iamVjdC5wcm90b3R5cGUmJm4hPT1BcnJheS5wcm90b3R5cGUmJm4hPT1NYXAucHJvdG90eXBlJiZuIT09U2V0LnByb3RvdHlwZSYmbiE9PURhdGUucHJvdG90eXBlKXtsZXQgdD12KG4pO2ZvcihsZXQgbiBpbiB0KXtsZXQgcj10W25dLmdldDtpZihyKXRyeXtyLmNhbGwoZSl9Y2F0Y2h7fX19fX1mdW5jdGlvbiBuaShlKXtyZXR1cm4gZS5lbmRzV2l0aChgY2FwdHVyZWApJiZlIT09YGdvdHBvaW50ZXJjYXB0dXJlYCYmZSE9PWBsb3N0cG9pbnRlcmNhcHR1cmVgfXZhciByaT1bYGJlZm9yZWlucHV0YCxgY2xpY2tgLGBjaGFuZ2VgLGBkYmxjbGlja2AsYGNvbnRleHRtZW51YCxgZm9jdXNpbmAsYGZvY3Vzb3V0YCxgaW5wdXRgLGBrZXlkb3duYCxga2V5dXBgLGBtb3VzZWRvd25gLGBtb3VzZW1vdmVgLGBtb3VzZW91dGAsYG1vdXNlb3ZlcmAsYG1vdXNldXBgLGBwb2ludGVyZG93bmAsYHBvaW50ZXJtb3ZlYCxgcG9pbnRlcm91dGAsYHBvaW50ZXJvdmVyYCxgcG9pbnRlcnVwYCxgdG91Y2hlbmRgLGB0b3VjaG1vdmVgLGB0b3VjaHN0YXJ0YF07ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIHJpLmluY2x1ZGVzKGUpfXZhciBhaT1gYWxsb3dmdWxsc2NyZWVuLmFzeW5jLmF1dG9mb2N1cy5hdXRvcGxheS5jaGVja2VkLmNvbnRyb2xzLmRlZmF1bHQuZGlzYWJsZWQuZm9ybW5vdmFsaWRhdGUuaW5kZXRlcm1pbmF0ZS5pbmVydC5pc21hcC5sb29wLm11bHRpcGxlLm11dGVkLm5vbW9kdWxlLm5vdmFsaWRhdGUub3Blbi5wbGF5c2lubGluZS5yZWFkb25seS5yZXF1aXJlZC5yZXZlcnNlZC5zZWFtbGVzcy5zZWxlY3RlZC53ZWJraXRkaXJlY3RvcnkuZGVmZXIuZGlzYWJsZXBpY3R1cmVpbnBpY3R1cmUuZGlzYWJsZXJlbW90ZXBsYXliYWNrYC5zcGxpdChgLmApLG9pPXtmb3Jtbm92YWxpZGF0ZTpgZm9ybU5vVmFsaWRhdGVgLGlzbWFwOmBpc01hcGAsbm9tb2R1bGU6YG5vTW9kdWxlYCxwbGF5c2lubGluZTpgcGxheXNJbmxpbmVgLHJlYWRvbmx5OmByZWFkT25seWAsZGVmYXVsdHZhbHVlOmBkZWZhdWx0VmFsdWVgLGRlZmF1bHRjaGVja2VkOmBkZWZhdWx0Q2hlY2tlZGAsc3Jjb2JqZWN0OmBzcmNPYmplY3RgLG5vdmFsaWRhdGU6YG5vVmFsaWRhdGVgLGFsbG93ZnVsbHNjcmVlbjpgYWxsb3dGdWxsc2NyZWVuYCxkaXNhYmxlcGljdHVyZWlucGljdHVyZTpgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVgLGRpc2FibGVyZW1vdGVwbGF5YmFjazpgZGlzYWJsZVJlbW90ZVBsYXliYWNrYH07ZnVuY3Rpb24gc2koZSl7cmV0dXJuIGU9ZS50b0xvd2VyQ2FzZSgpLG9pW2VdPz9lfVsuLi5haV07dmFyIGNpPVtgdG91Y2hzdGFydGAsYHRvdWNobW92ZWBdO2Z1bmN0aW9uIGxpKGUpe3JldHVybiBjaS5pbmNsdWRlcyhlKX12YXIgdWk9U3ltYm9sKGBldmVudHNgKSxkaT1uZXcgU2V0LGZpPW5ldyBTZXQ7ZnVuY3Rpb24gcGkoZSl7aWYoIUMpcmV0dXJuO2UucmVtb3ZlQXR0cmlidXRlKGBvbmxvYWRgKSxlLnJlbW92ZUF0dHJpYnV0ZShgb25lcnJvcmApO2xldCB0PWUuX19lO3QhPT12b2lkIDAmJihlLl9fZT12b2lkIDAscXVldWVNaWNyb3Rhc2soKCk9PntlLmlzQ29ubmVjdGVkJiZlLmRpc3BhdGNoRXZlbnQodCl9KSl9ZnVuY3Rpb24gbWkoZSx0LG4scj17fSl7ZnVuY3Rpb24gaShlKXtpZihyLmNhcHR1cmV8fHlpLmNhbGwodCxlKSwhZS5jYW5jZWxCdWJibGUpcmV0dXJuICRuKCgpPT5uPy5jYWxsKHRoaXMsZSkpfXJldHVybiBlLnN0YXJ0c1dpdGgoYHBvaW50ZXJgKXx8ZS5zdGFydHNXaXRoKGB0b3VjaGApfHxlPT09YHdoZWVsYD9ndCgoKT0+e3QuYWRkRXZlbnRMaXN0ZW5lcihlLGkscil9KTp0LmFkZEV2ZW50TGlzdGVuZXIoZSxpLHIpLGl9ZnVuY3Rpb24gaGkoZSx0LG4scixpKXt2YXIgYT17Y2FwdHVyZTpyLHBhc3NpdmU6aX0sbz1taShlLHQsbixhKTsodD09PWRvY3VtZW50LmJvZHl8fHQ9PT13aW5kb3d8fHQ9PT1kb2N1bWVudHx8dCBpbnN0YW5jZW9mIEhUTUxNZWRpYUVsZW1lbnQpJiZhcigoKT0+e3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLG8sYSl9KX1mdW5jdGlvbiBnaShlLHQsbil7KHRbdWldPz89e30pW2VdPW59ZnVuY3Rpb24gX2koZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZGkuYWRkKGVbdF0pO2Zvcih2YXIgbiBvZiBmaSluKGUpfXZhciB2aT1udWxsO2Z1bmN0aW9uIHlpKGUpe3ZhciB0PXRoaXMsbj10Lm93bmVyRG9jdW1lbnQscj1lLnR5cGUsaT1lLmNvbXBvc2VkUGF0aD8uKCl8fFtdLGE9aVswXXx8ZS50YXJnZXQ7dmk9ZTt2YXIgbz0wLHM9dmk9PT1lJiZlW3VpXTtpZihzKXt2YXIgYz1pLmluZGV4T2Yocyk7aWYoYyE9PS0xJiYodD09PWRvY3VtZW50fHx0PT09d2luZG93KSl7ZVt1aV09dDtyZXR1cm59dmFyIGw9aS5pbmRleE9mKHQpO2lmKGw9PT0tMSlyZXR1cm47Yzw9bCYmKG89Yyl9aWYoYT1pW29dfHxlLnRhcmdldCxhIT09dCl7ZyhlLGBjdXJyZW50VGFyZ2V0YCx7Y29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiBhfHxufX0pO3ZhciB1PUYsZD1JO01yKG51bGwpLE5yKG51bGwpO3RyeXtmb3IodmFyIGYscD1bXTthIT09bnVsbDspe3ZhciBtPWEuYXNzaWduZWRTbG90fHxhLnBhcmVudE5vZGV8fGEuaG9zdHx8bnVsbDt0cnl7dmFyIGg9YVt1aV0/LltyXTtoIT1udWxsJiYoIWEuZGlzYWJsZWR8fGUudGFyZ2V0PT09YSkmJmguY2FsbChhLGUpfWNhdGNoKGUpe2Y/cC5wdXNoKGUpOmY9ZX1pZihlLmNhbmNlbEJ1YmJsZXx8bT09PXR8fG09PT1udWxsKWJyZWFrO2E9bX1pZihmKXtmb3IobGV0IGUgb2YgcClxdWV1ZU1pY3JvdGFzaygoKT0+e3Rocm93IGV9KTt0aHJvdyBmfX1maW5hbGx5e2VbdWldPXQsZGVsZXRlIGUuY3VycmVudFRhcmdldCxNcih1KSxOcihkKX19fXZhciBiaT1nbG9iYWxUaGlzPy53aW5kb3c/LnRydXN0ZWRUeXBlcyYmZ2xvYmFsVGhpcy53aW5kb3cudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShgc3ZlbHRlLXRydXN0ZWQtaHRtbGAse2NyZWF0ZUhUTUw6ZT0+ZX0pO2Z1bmN0aW9uIHhpKGUpe3JldHVybiBiaT8uY3JlYXRlSFRNTChlKT8/ZX1mdW5jdGlvbiBTaShlKXt2YXIgdD1LbihgdGVtcGxhdGVgKTtyZXR1cm4gdC5pbm5lckhUTUw9eGkoZS5yZXBsYWNlQWxsKGA8IT5gLGA8IS0tLS0+YCkpLHQuY29udGVudH1mdW5jdGlvbiBDaShlLHQpe3ZhciBuPUk7bi5ub2Rlcz09PW51bGwmJihuLm5vZGVzPXtzdGFydDplLGVuZDp0LGE6bnVsbCx0Om51bGx9KX1mdW5jdGlvbiB3aShlLHQpe3ZhciBuPSh0JjEpIT0wLHI9KHQmMikhPTAsaSxhPSFlLnN0YXJ0c1dpdGgoYDwhPmApO3JldHVybigpPT57aWYoQylyZXR1cm4gQ2kodyxudWxsKSx3O2k9PT12b2lkIDAmJihpPVNpKGE/ZTpgPCE+YCtlKSxufHwoaT1OKGkpKSk7dmFyIHQ9cnx8Rm4/ZG9jdW1lbnQuaW1wb3J0Tm9kZShpLCEwKTppLmNsb25lTm9kZSghMCk7aWYobil7dmFyIG89Tih0KSxzPXQubGFzdENoaWxkO0NpKG8scyl9ZWxzZSBDaSh0LHQpO3JldHVybiB0fX1mdW5jdGlvbiBUaShlLHQsbj1gc3ZnYCl7dmFyIHI9IWUuc3RhcnRzV2l0aChgPCE+YCksaT0odCYxKSE9MCxhPWA8JHtufT4ke3I/ZTpgPCE+YCtlfTwvJHtufT5gLG87cmV0dXJuKCk9PntpZihDKXJldHVybiBDaSh3LG51bGwpLHc7aWYoIW8pe3ZhciBlPU4oU2koYSkpO2lmKGkpZm9yKG89ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO04oZSk7KW8uYXBwZW5kQ2hpbGQoTihlKSk7ZWxzZSBvPU4oZSl9dmFyIHQ9by5jbG9uZU5vZGUoITApO2lmKGkpe3ZhciBuPU4odCkscj10Lmxhc3RDaGlsZDtDaShuLHIpfWVsc2UgQ2kodCx0KTtyZXR1cm4gdH19ZnVuY3Rpb24gRWkoZSx0KXtyZXR1cm4gVGkoZSx0LGBzdmdgKX1mdW5jdGlvbiBEaShlPWBgKXtpZighQyl7dmFyIHQ9em4oZStgYCk7cmV0dXJuIENpKHQsdCksdH12YXIgbj13O3JldHVybiBuLm5vZGVUeXBlPT09Mz9KbihuKToobi5iZWZvcmUobj16bigpKSxUKG4pKSxDaShuLG4pLG59ZnVuY3Rpb24gT2koKXtpZihDKXJldHVybiBDaSh3LG51bGwpLHc7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHQ9ZG9jdW1lbnQuY3JlYXRlQ29tbWVudChgYCksbj16bigpO3JldHVybiBlLmFwcGVuZCh0LG4pLENpKHQsbiksZX1mdW5jdGlvbiBraShlLHQpe2lmKEMpe3ZhciBuPUk7KCEobi5mJjMyNzY4KXx8bi5ub2Rlcy5lbmQ9PT1udWxsKSYmKG4ubm9kZXMuZW5kPXcpLFllKCk7cmV0dXJufWUhPT1udWxsJiZlLmJlZm9yZSh0KX12YXIgQWk9ITA7ZnVuY3Rpb24gamkoZSx0KXt2YXIgbj10PT1udWxsP2BgOnR5cGVvZiB0PT1gb2JqZWN0YD9gJHt0fWA6dDtuIT09KGUuX190Pz89ZS5ub2RlVmFsdWUpJiYoZS5fX3Q9bixlLm5vZGVWYWx1ZT1gJHtufWApfWZ1bmN0aW9uIE1pKGUsdCl7cmV0dXJuIFBpKGUsdCl9dmFyIE5pPW5ldyBNYXA7ZnVuY3Rpb24gUGkoZSx7dGFyZ2V0OnQsYW5jaG9yOm4scHJvcHM6cj17fSxldmVudHM6aSxjb250ZXh0OmEsaW50cm86bz0hMCx0cmFuc2Zvcm1FcnJvcjpzfSl7Um4oKTt2YXIgYz12b2lkIDAsbD1scigoKT0+e3ZhciBsPW4/P3QuYXBwZW5kQ2hpbGQoem4oKSk7cm4obCx7cGVuZGluZzooKT0+e319LHQ9PntsdCh7fSk7dmFyIG49RTtpZihhJiYobi5jPWEpLGkmJihyLiQkZXZlbnRzPWkpLEMmJkNpKHQsbnVsbCksQWk9byxjPWUodCxyKXx8e30sQWk9ITAsQyYmKEkubm9kZXMuZW5kPXcsdz09PW51bGx8fHcubm9kZVR5cGUhPT04fHx3LmRhdGEhPT1gXWApKXRocm93IEdlKCksQmU7dXQoKX0scyk7dmFyIHU9bmV3IFNldCxkPWU9Pntmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTtpZighdS5oYXMocikpe3UuYWRkKHIpO3ZhciBpPWxpKHIpO2ZvcihsZXQgZSBvZlt0LGRvY3VtZW50XSl7dmFyIGE9TmkuZ2V0KGUpO2E9PT12b2lkIDAmJihhPW5ldyBNYXAsTmkuc2V0KGUsYSkpO3ZhciBvPWEuZ2V0KHIpO289PT12b2lkIDA/KGUuYWRkRXZlbnRMaXN0ZW5lcihyLHlpLHtwYXNzaXZlOml9KSxhLnNldChyLDEpKTphLnNldChyLG8rMSl9fX19O3JldHVybiBkKGgoZGkpKSxmaS5hZGQoZCksKCk9Pntmb3IodmFyIGUgb2YgdSlmb3IobGV0IG4gb2ZbdCxkb2N1bWVudF0pe3ZhciByPU5pLmdldChuKSxpPXIuZ2V0KGUpOy0taT09MD8obi5yZW1vdmVFdmVudExpc3RlbmVyKGUseWkpLHIuZGVsZXRlKGUpLHIuc2l6ZT09PTAmJk5pLmRlbGV0ZShuKSk6ci5zZXQoZSxpKX1maS5kZWxldGUoZCksbCE9PW4mJmwucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQobCl9fSk7cmV0dXJuIEZpLnNldChjLGwpLGN9dmFyIEZpPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIElpKGUsdCl7bGV0IG49RmkuZ2V0KGUpO3JldHVybiBuPyhGaS5kZWxldGUoZSksbih0KSk6UHJvbWlzZS5yZXNvbHZlKCl9dmFyIExpPWNsYXNze2FuY2hvcjsjZT1uZXcgTWFwOyN0PW5ldyBNYXA7I249bmV3IE1hcDsjcj1uZXcgU2V0OyNpPSEwO2NvbnN0cnVjdG9yKGUsdD0hMCl7dGhpcy5hbmNob3I9ZSx0aGlzLiNpPXR9I2E9ZT0+e2lmKHRoaXMuI2UuaGFzKGUpKXt2YXIgdD10aGlzLiNlLmdldChlKSxuPXRoaXMuI3QuZ2V0KHQpO2lmKG4pd3IobiksdGhpcy4jci5kZWxldGUodCk7ZWxzZXt2YXIgcj10aGlzLiNuLmdldCh0KTtyJiYodGhpcy4jdC5zZXQodCxyLmVmZmVjdCksdGhpcy4jbi5kZWxldGUodCksci5mcmFnbWVudC5sYXN0Q2hpbGQucmVtb3ZlKCksdGhpcy5hbmNob3IuYmVmb3JlKHIuZnJhZ21lbnQpLG49ci5lZmZlY3QpfWZvcihsZXRbdCxuXW9mIHRoaXMuI2Upe2lmKHRoaXMuI2UuZGVsZXRlKHQpLHQ9PT1lKWJyZWFrO2xldCByPXRoaXMuI24uZ2V0KG4pO3ImJihQKHIuZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShuKSl9Zm9yKGxldFtlLHJdb2YgdGhpcy4jdCl7aWYoZT09PXR8fHRoaXMuI3IuaGFzKGUpKWNvbnRpbnVlO2xldCBpPSgpPT57aWYoQXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKS5pbmNsdWRlcyhlKSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO0VyKHIsdCksdC5hcHBlbmQoem4oKSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OnIsZnJhZ21lbnQ6dH0pfWVsc2UgUChyKTt0aGlzLiNyLmRlbGV0ZShlKSx0aGlzLiN0LmRlbGV0ZShlKX07dGhpcy4jaXx8IW4/KHRoaXMuI3IuYWRkKGUpLFNyKHIsaSwhMSkpOmkoKX19fTsjbz1lPT57dGhpcy4jZS5kZWxldGUoZSk7bGV0IHQ9QXJyYXkuZnJvbSh0aGlzLiNlLnZhbHVlcygpKTtmb3IobGV0W2Usbl1vZiB0aGlzLiNuKXQuaW5jbHVkZXMoZSl8fChQKG4uZWZmZWN0KSx0aGlzLiNuLmRlbGV0ZShlKSl9O2Vuc3VyZShlLHQpe3ZhciBuPWoscj1HbigpO2lmKHQmJiF0aGlzLiN0LmhhcyhlKSYmIXRoaXMuI24uaGFzKGUpKWlmKHIpe3ZhciBpPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxhPXpuKCk7aS5hcHBlbmQoYSksdGhpcy4jbi5zZXQoZSx7ZWZmZWN0OmdyKCgpPT50KGEpKSxmcmFnbWVudDppfSl9ZWxzZSB0aGlzLiN0LnNldChlLGdyKCgpPT50KHRoaXMuYW5jaG9yKSkpO2lmKHRoaXMuI2Uuc2V0KG4sZSkscil7Zm9yKGxldFt0LHJdb2YgdGhpcy4jdCl0PT09ZT9uLnVuc2tpcF9lZmZlY3Qocik6bi5za2lwX2VmZmVjdChyKTtmb3IobGV0W3Qscl1vZiB0aGlzLiNuKXQ9PT1lP24udW5za2lwX2VmZmVjdChyLmVmZmVjdCk6bi5za2lwX2VmZmVjdChyLmVmZmVjdCk7bi5vbmNvbW1pdCh0aGlzLiNhKSxuLm9uZGlzY2FyZCh0aGlzLiNvKX1lbHNlIEMmJih0aGlzLmFuY2hvcj13KSx0aGlzLiNhKG4pfX07ZnVuY3Rpb24gUmkoZSx0LG49ITEpe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpLGE9bj9tZTowO2Z1bmN0aW9uIG8oZSx0KXtpZihDKXt2YXIgbj0kZShyKTtpZihlIT09cGFyc2VJbnQobi5zdWJzdHJpbmcoMSkpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSx0KSxKZSghMCk7cmV0dXJufX1pLmVuc3VyZShlLHQpfW1yKCgpPT57dmFyIGU9ITE7dCgodCxuPTApPT57ZT0hMCxvKG4sdCl9KSxlfHxvKC0xLG51bGwpfSxhKX12YXIgemk9U3ltYm9sKGBOYU5gKTtmdW5jdGlvbiBCaShlLHQsbil7QyYmWWUoKTt2YXIgcj1uZXcgTGkoZSksaT0hZHQoKTttcigoKT0+e3ZhciBlPXQoKTtlIT09ZSYmKGU9emkpLGkmJnR5cGVvZiBlPT1gb2JqZWN0YCYmZSYmKGU9e30pLHIuZW5zdXJlKGUsbil9KX1mdW5jdGlvbiBWaShlLHQpe3JldHVybiB0fWZ1bmN0aW9uIEhpKGUsdCxuKXtmb3IodmFyIHI9W10saT10Lmxlbmd0aCxhLG89dC5sZW5ndGgscz0wO3M8aTtzKyspe2xldCBuPXRbc107U3IobiwoKT0+e2lmKGEpe2lmKGEucGVuZGluZy5kZWxldGUobiksYS5kb25lLmFkZChuKSxhLnBlbmRpbmcuc2l6ZT09PTApe3ZhciB0PWUub3V0cm9ncm91cHM7VWkoZSxoKGEuZG9uZSkpLHQuZGVsZXRlKGEpLHQuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfX1lbHNlIC0tb30sITEpfWlmKG89PT0wKXt2YXIgYz1yLmxlbmd0aD09PTAmJm4hPT1udWxsO2lmKGMpe3ZhciBsPW4sdT1sLnBhcmVudE5vZGU7V24odSksdS5hcHBlbmQobCksZS5pdGVtcy5jbGVhcigpfVVpKGUsdCwhYyl9ZWxzZSBhPXtwZW5kaW5nOm5ldyBTZXQodCksZG9uZTpuZXcgU2V0fSwoZS5vdXRyb2dyb3Vwcz8/PW5ldyBTZXQpLmFkZChhKX1mdW5jdGlvbiBVaShlLHQsbj0hMCl7dmFyIHI7aWYoZS5wZW5kaW5nLnNpemU+MCl7cj1uZXcgU2V0O2ZvcihsZXQgdCBvZiBlLnBlbmRpbmcudmFsdWVzKCkpZm9yKGxldCBuIG9mIHQpci5hZGQoZS5pdGVtcy5nZXQobikuZSl9Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07cj8uaGFzKGEpPyhhLmZ8PV9lLEVyKGEsZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKSk6UCh0W2ldLG4pfX12YXIgV2k7ZnVuY3Rpb24gR2koZSx0LG4scixpLGE9bnVsbCl7dmFyIG89ZSxzPW5ldyBNYXA7aWYodCY0KXt2YXIgYz1lO289Qz9UKE4oYykpOmMuYXBwZW5kQ2hpbGQoem4oKSl9QyYmWWUoKTt2YXIgbD1udWxsLHU9cG4oKCk9Pnt2YXIgZT1uKCk7cmV0dXJuIGYoZSk/ZTplPT1udWxsP1tdOmgoZSl9KSxkLHA9bmV3IE1hcCxtPSEwO2Z1bmN0aW9uIGcoZSl7di5lZmZlY3QuZiYxNjM4NHx8KHYucGVuZGluZy5kZWxldGUoZSksdi5mYWxsYmFjaz1sLHFpKHYsZCxvLHQsciksbCE9PW51bGwmJihkLmxlbmd0aD09PTA/bC5mJjMzNTU0NDMyPyhsLmZePV9lLFlpKGwsbnVsbCxvKSk6d3IobCk6U3IobCwoKT0+e2w9bnVsbH0pKSl9ZnVuY3Rpb24gXyhlKXt2LnBlbmRpbmcuZGVsZXRlKGUpfXZhciB2PXtlZmZlY3Q6bXIoKCk9PntkPVIodSk7dmFyIGU9ZC5sZW5ndGg7bGV0IGM9ITE7QyYmJGUobyk9PT1gWyFgIT0oZT09PTApJiYobz1RZSgpLFQobyksSmUoITEpLGM9ITApO2Zvcih2YXIgZj1uZXcgU2V0LGg9aix2PUduKCkseT0wO3k8ZTt5Kz0xKXtDJiZ3Lm5vZGVUeXBlPT09OCYmdy5kYXRhPT09YF1gJiYobz13LGM9ITAsSmUoITEpKTt2YXIgZWU9ZFt5XSxiPXIoZWUseSksdGU9bT9udWxsOnMuZ2V0KGIpO3RlPyh0ZS52JiZFbih0ZS52LGVlKSx0ZS5pJiZFbih0ZS5pLHkpLHYmJmgudW5za2lwX2VmZmVjdCh0ZS5lKSk6KHRlPUppKHMsbT9vOldpPz89em4oKSxlZSxiLHksaSx0LG4pLG18fCh0ZS5lLmZ8PV9lKSxzLnNldChiLHRlKSksZi5hZGQoYil9aWYoZT09PTAmJmEmJiFsJiYobT9sPWdyKCgpPT5hKG8pKToobD1ncigoKT0+YShXaT8/PXpuKCkpKSxsLmZ8PV9lKSksZT5mLnNpemUmJmtlKGBgLGBgLGBgKSxDJiZlPjAmJlQoUWUoKSksIW0paWYocC5zZXQoaCxmKSx2KXtmb3IobGV0W2UsdF1vZiBzKWYuaGFzKGUpfHxoLnNraXBfZWZmZWN0KHQuZSk7aC5vbmNvbW1pdChnKSxoLm9uZGlzY2FyZChfKX1lbHNlIGcoaCk7YyYmSmUoITApLFIodSl9KSxmbGFnczp0LGl0ZW1zOnMscGVuZGluZzpwLG91dHJvZ3JvdXBzOm51bGwsZmFsbGJhY2s6bH07bT0hMSxDJiYobz13KX1mdW5jdGlvbiBLaShlKXtmb3IoO2UhPT1udWxsJiYhKGUuZiYzMik7KWU9ZS5uZXh0O3JldHVybiBlfWZ1bmN0aW9uIHFpKGUsdCxuLHIsaSl7dmFyIGE9KHImOCkhPTAsbz10Lmxlbmd0aCxzPWUuaXRlbXMsYz1LaShlLmVmZmVjdC5maXJzdCksbCx1PW51bGwsZCxmPVtdLHA9W10sbSxnLF8sdjtpZihhKWZvcih2PTA7djxvO3YrPTEpbT10W3ZdLGc9aShtLHYpLF89cy5nZXQoZykuZSxfLmYmMzM1NTQ0MzJ8fChfLm5vZGVzPy5hPy5tZWFzdXJlKCksKGQ/Pz1uZXcgU2V0KS5hZGQoXykpO2Zvcih2PTA7djxvO3YrPTEpe2lmKG09dFt2XSxnPWkobSx2KSxfPXMuZ2V0KGcpLmUsZS5vdXRyb2dyb3VwcyE9PW51bGwpZm9yKGxldCB0IG9mIGUub3V0cm9ncm91cHMpdC5wZW5kaW5nLmRlbGV0ZShfKSx0LmRvbmUuZGVsZXRlKF8pO2lmKF8uZiY4MTkyJiYod3IoXyksYSYmKF8ubm9kZXM/LmE/LnVuZml4KCksKGQ/Pz1uZXcgU2V0KS5kZWxldGUoXykpKSxfLmYmMzM1NTQ0MzIpaWYoXy5mXj1fZSxfPT09YylZaShfLG51bGwsbik7ZWxzZXt2YXIgeT11P3UubmV4dDpjO189PT1lLmVmZmVjdC5sYXN0JiYoZS5lZmZlY3QubGFzdD1fLnByZXYpLF8ucHJldiYmKF8ucHJldi5uZXh0PV8ubmV4dCksXy5uZXh0JiYoXy5uZXh0LnByZXY9Xy5wcmV2KSxYaShlLHUsXyksWGkoZSxfLHkpLFlpKF8seSxuKSx1PV8sZj1bXSxwPVtdLGM9S2kodS5uZXh0KTtjb250aW51ZX1pZihfIT09Yyl7aWYobCE9PXZvaWQgMCYmbC5oYXMoXykpe2lmKGYubGVuZ3RoPHAubGVuZ3RoKXt2YXIgZWU9cFswXSxiO3U9ZWUucHJldjt2YXIgdGU9ZlswXSxuZT1mW2YubGVuZ3RoLTFdO2ZvcihiPTA7YjxmLmxlbmd0aDtiKz0xKVlpKGZbYl0sZWUsbik7Zm9yKGI9MDtiPHAubGVuZ3RoO2IrPTEpbC5kZWxldGUocFtiXSk7WGkoZSx0ZS5wcmV2LG5lLm5leHQpLFhpKGUsdSx0ZSksWGkoZSxuZSxlZSksYz1lZSx1PW5lLC0tdixmPVtdLHA9W119ZWxzZSBsLmRlbGV0ZShfKSxZaShfLGMsbiksWGkoZSxfLnByZXYsXy5uZXh0KSxYaShlLF8sdT09PW51bGw/ZS5lZmZlY3QuZmlyc3Q6dS5uZXh0KSxYaShlLHUsXyksdT1fO2NvbnRpbnVlfWZvcihmPVtdLHA9W107YyE9PW51bGwmJmMhPT1fOykobD8/PW5ldyBTZXQpLmFkZChjKSxwLnB1c2goYyksYz1LaShjLm5leHQpO2lmKGM9PT1udWxsKWNvbnRpbnVlfV8uZiYzMzU1NDQzMnx8Zi5wdXNoKF8pLHU9XyxjPUtpKF8ubmV4dCl9aWYoZS5vdXRyb2dyb3VwcyE9PW51bGwpe2ZvcihsZXQgdCBvZiBlLm91dHJvZ3JvdXBzKXQucGVuZGluZy5zaXplPT09MCYmKFVpKGUsaCh0LmRvbmUpKSxlLm91dHJvZ3JvdXBzPy5kZWxldGUodCkpO2Uub3V0cm9ncm91cHMuc2l6ZT09PTAmJihlLm91dHJvZ3JvdXBzPW51bGwpfWlmKGMhPT1udWxsfHxsIT09dm9pZCAwKXt2YXIgeD1bXTtpZihsIT09dm9pZCAwKWZvcihfIG9mIGwpXy5mJjgxOTJ8fHgucHVzaChfKTtmb3IoO2MhPT1udWxsOykhKGMuZiY4MTkyKSYmYyE9PWUuZmFsbGJhY2smJngucHVzaChjKSxjPUtpKGMubmV4dCk7dmFyIHJlPXgubGVuZ3RoO2lmKHJlPjApe3ZhciBpZT1yJjQmJm89PT0wP246bnVsbDtpZihhKXtmb3Iodj0wO3Y8cmU7dis9MSl4W3ZdLm5vZGVzPy5hPy5tZWFzdXJlKCk7Zm9yKHY9MDt2PHJlO3YrPTEpeFt2XS5ub2Rlcz8uYT8uZml4KCl9SGkoZSx4LGllKX19YSYmZ3QoKCk9PntpZihkIT09dm9pZCAwKWZvcihfIG9mIGQpXy5ub2Rlcz8uYT8uYXBwbHkoKX0pfWZ1bmN0aW9uIEppKGUsdCxuLHIsaSxhLG8scyl7dmFyIGM9byYxP28mMTY/U24obik6d24obiwhMSwhMSk6bnVsbCxsPW8mMj9TbihpKTpudWxsO3JldHVybnt2OmMsaTpsLGU6Z3IoKCk9PihhKHQsYz8/bixsPz9pLHMpLCgpPT57ZS5kZWxldGUocil9KSl9fWZ1bmN0aW9uIFlpKGUsdCxuKXtpZihlLm5vZGVzKWZvcih2YXIgcj1lLm5vZGVzLnN0YXJ0LGk9ZS5ub2Rlcy5lbmQsYT10JiYhKHQuZiYzMzU1NDQzMik/dC5ub2Rlcy5zdGFydDpuO3IhPT1udWxsOyl7dmFyIG89Qm4ocik7aWYoYS5iZWZvcmUocikscj09PWkpcmV0dXJuO3I9b319ZnVuY3Rpb24gWGkoZSx0LG4pe3Q9PT1udWxsP2UuZWZmZWN0LmZpcnN0PW46dC5uZXh0PW4sbj09PW51bGw/ZS5lZmZlY3QubGFzdD10Om4ucHJldj10fWZ1bmN0aW9uIFppKGUsdCxuPSExLHI9ITEsaT0hMSxhPSExKXt2YXIgbz1lLHM9YGA7aWYobil7dmFyIGM9ZTtDJiYobz1UKE4oYykpKX1wcigoKT0+e3ZhciBlPUk7aWYocz09PShzPXQoKT8/YGApKXtDJiZZZSgpO3JldHVybn1pZihuJiYhQyl7ZS5ub2Rlcz1udWxsLGMuaW5uZXJIVE1MPXMscyE9PWBgJiZDaShOKGMpLGMubGFzdENoaWxkKTtyZXR1cm59aWYoZS5ub2RlcyE9PW51bGwmJihicihlLm5vZGVzLnN0YXJ0LGUubm9kZXMuZW5kKSxlLm5vZGVzPW51bGwpLHMhPT1gYCl7aWYoQyl7Zm9yKHZhciBhPXcuZGF0YSxsPVllKCksdT1sO2whPT1udWxsJiYobC5ub2RlVHlwZSE9PTh8fGwuZGF0YSE9PWBgKTspdT1sLGw9Qm4obCk7aWYobD09PW51bGwpdGhyb3cgR2UoKSxCZTtDaSh3LHUpLG89VChsKTtyZXR1cm59dmFyIGQ9S24ocj9gc3ZnYDppP2BtYXRoYDpgdGVtcGxhdGVgLHI/SGU6aT9VZTp2b2lkIDApO2QuaW5uZXJIVE1MPXM7dmFyIGY9cnx8aT9kOmQuY29udGVudDtpZihDaShOKGYpLGYubGFzdENoaWxkKSxyfHxpKWZvcig7TihmKTspby5iZWZvcmUoTihmKSk7ZWxzZSBvLmJlZm9yZShmKX19KX1mdW5jdGlvbiBRaShlLHQsLi4ubil7dmFyIHI9bmV3IExpKGUpO21yKCgpPT57bGV0IGU9dCgpPz9udWxsO3IuZW5zdXJlKGUsZSYmKHQ9PmUodCwuLi5uKSkpfSxtZSl9ZnVuY3Rpb24gJGkoZSx0LG4pe3ZhciByO0MmJihyPXcsWWUoKSk7dmFyIGk9bmV3IExpKGUpO21yKCgpPT57dmFyIGU9dCgpPz9udWxsO2lmKEMmJiRlKHIpPT09YFtgIT0oZSE9PW51bGwpKXt2YXIgYT1RZSgpO1QoYSksaS5hbmNob3I9YSxKZSghMSksaS5lbnN1cmUoZSxlJiYodD0+bih0LGUpKSksSmUoITApO3JldHVybn1pLmVuc3VyZShlLGUmJih0PT5uKHQsZSkpKX0sbWUpfXZhciBlYT0oKT0+cGVyZm9ybWFuY2Uubm93KCksdGE9e3RpY2s6ZT0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpLG5vdzooKT0+ZWEoKSx0YXNrczpuZXcgU2V0fTtmdW5jdGlvbiBuYSgpe2xldCBlPXRhLm5vdygpO3RhLnRhc2tzLmZvckVhY2godD0+e3QuYyhlKXx8KHRhLnRhc2tzLmRlbGV0ZSh0KSx0LmYoKSl9KSx0YS50YXNrcy5zaXplIT09MCYmdGEudGljayhuYSl9ZnVuY3Rpb24gcmEoZSl7bGV0IHQ7cmV0dXJuIHRhLnRhc2tzLnNpemU9PT0wJiZ0YS50aWNrKG5hKSx7cHJvbWlzZTpuZXcgUHJvbWlzZShuPT57dGEudGFza3MuYWRkKHQ9e2M6ZSxmOm59KX0pLGFib3J0KCl7dGEudGFza3MuZGVsZXRlKHQpfX19ZnVuY3Rpb24gaWEoZSx0KXskbigoKT0+e2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQodCkpfSl9ZnVuY3Rpb24gYWEoZSl7aWYoZT09PWBmbG9hdGApcmV0dXJuYGNzc0Zsb2F0YDtpZihlPT09YG9mZnNldGApcmV0dXJuYGNzc09mZnNldGA7aWYoZS5zdGFydHNXaXRoKGAtLWApKXJldHVybiBlO2xldCB0PWUuc3BsaXQoYC1gKTtyZXR1cm4gdC5sZW5ndGg9PT0xP3RbMF06dFswXSt0LnNsaWNlKDEpLm1hcChlPT5lWzBdLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSkuam9pbihgYCl9ZnVuY3Rpb24gb2EoZSl7bGV0IHQ9e30sbj1lLnNwbGl0KGA7YCk7Zm9yKGxldCBlIG9mIG4pe2xldFtuLHJdPWUuc3BsaXQoYDpgKTtpZighbnx8cj09PXZvaWQgMClicmVhaztsZXQgaT1hYShuLnRyaW0oKSk7dFtpXT1yLnRyaW0oKX1yZXR1cm4gdH12YXIgc2E9ZT0+ZTtmdW5jdGlvbiBjYShlLHQsbixyKXt2YXIgaT0oZSYxKSE9MCxhPShlJjIpIT0wLG89aSYmYSxzPShlJjQpIT0wLGM9bz9gYm90aGA6aT9gaW5gOmBvdXRgLGwsdT10LmluZXJ0LGQ9dC5zdHlsZS5vdmVyZmxvdyxmLHA7ZnVuY3Rpb24gbSgpe3JldHVybiAkbigoKT0+bD8/PW4oKSh0LHI/LigpPz97fSx7ZGlyZWN0aW9uOmN9KSl9dmFyIGg9e2lzX2dsb2JhbDpzLGluKCl7aWYodC5pbmVydD11LCFpKXtwPy5hYm9ydCgpLHA/LnJlc2V0Py4oKTtyZXR1cm59YXx8Zj8uYWJvcnQoKSxmPWxhKHQsbSgpLHAsMSwoKT0+e2lhKHQsYGludHJvc3RhcnRgKX0sKCk9PntpYSh0LGBpbnRyb2VuZGApLGY/LmFib3J0KCksZj1sPXZvaWQgMCx0LnN0eWxlLm92ZXJmbG93PWR9KX0sb3V0KGUpe2lmKCFhKXtlPy4oKSxsPXZvaWQgMDtyZXR1cm59dC5pbmVydD0hMCxwPWxhKHQsbSgpLGYsMCwoKT0+e2lhKHQsYG91dHJvc3RhcnRgKX0sKCk9PntpYSh0LGBvdXRyb2VuZGApLGU/LigpfSl9LHN0b3A6KCk9PntmPy5hYm9ydCgpLHA/LmFib3J0KCl9fSxnPUk7aWYoKGcubm9kZXMudD8/PVtdKS5wdXNoKGgpLGkmJkFpKXt2YXIgXz1zO2lmKCFfKXtmb3IodmFyIHY9Zy5wYXJlbnQ7diYmdi5mJjY1NTM2Oylmb3IoOyh2PXYucGFyZW50KSYmISh2LmYmMTYpOyk7Xz0hdnx8KHYuZiYzMjc2OCkhPTB9XyYmdXIoKCk9PnskcigoKT0+aC5pbigpKX0pfX1mdW5jdGlvbiBsYShlLHQsbixyLGksYSl7dmFyIG89cj09PTE7aWYobmUodCkpe3ZhciBzLGM9ITE7cmV0dXJuIGd0KCgpPT57Y3x8KHM9bGEoZSx0KHtkaXJlY3Rpb246bz9gaW5gOmBvdXRgfSksbixyLGksYSkpfSkse2Fib3J0OigpPT57Yz0hMCxzPy5hYm9ydCgpfSxkZWFjdGl2YXRlOigpPT5zLmRlYWN0aXZhdGUoKSxyZXNldDooKT0+cy5yZXNldCgpLHQ6KCk9PnMudCgpfX1pZihuPy5kZWFjdGl2YXRlKCksIXQ/LmR1cmF0aW9uJiYhdD8uZGVsYXkpcmV0dXJuIGkoKSxhKCkse2Fib3J0OngsZGVhY3RpdmF0ZTp4LHJlc2V0OngsdDooKT0+cn07bGV0e2RlbGF5Omw9MCxjc3M6dSx0aWNrOmQsZWFzaW5nOmY9c2F9PXQ7dmFyIHA9W107aWYobyYmbj09PXZvaWQgMCYmKGQmJmQoMCwxKSx1KSl7dmFyIG09b2EodSgwLDEpKTtwLnB1c2gobSxtKX12YXIgaD0oKT0+MS1yLGc9ZS5hbmltYXRlKHAse2R1cmF0aW9uOmwsZmlsbDpgZm9yd2FyZHNgfSk7cmV0dXJuIGcub25maW5pc2g9KCk9PntnLmNhbmNlbCgpLGkoKTt2YXIgbz1uPy50KCk/PzEtcjtuPy5hYm9ydCgpO3ZhciBzPXItbyxjPXQuZHVyYXRpb24qTWF0aC5hYnMocyksbD1bXTtpZihjPjApe3ZhciBwPSExO2lmKHUpZm9yKHZhciBtPU1hdGguY2VpbChjLygxZTMvNjApKSxfPTA7Xzw9bTtfKz0xKXt2YXIgdj1vK3MqZihfL20pLHk9b2EodSh2LDEtdikpO2wucHVzaCh5KSxwfHw9eS5vdmVyZmxvdz09PWBoaWRkZW5gfXAmJihlLnN0eWxlLm92ZXJmbG93PWBoaWRkZW5gKSxoPSgpPT57dmFyIGU9Zy5jdXJyZW50VGltZTtyZXR1cm4gbytzKmYoZS9jKX0sZCYmcmEoKCk9PntpZihnLnBsYXlTdGF0ZSE9PWBydW5uaW5nYClyZXR1cm4hMTt2YXIgZT1oKCk7cmV0dXJuIGQoZSwxLWUpLCEwfSl9Zz1lLmFuaW1hdGUobCx7ZHVyYXRpb246YyxmaWxsOmBmb3J3YXJkc2B9KSxnLm9uZmluaXNoPSgpPT57aD0oKT0+cixkPy4ociwxLXIpLGEoKX19LHthYm9ydDooKT0+e2cmJihnLmNhbmNlbCgpLGcuZWZmZWN0PW51bGwsZy5vbmZpbmlzaD14KX0sZGVhY3RpdmF0ZTooKT0+e2E9eH0scmVzZXQ6KCk9PntyPT09MCYmZD8uKDEsMCl9LHQ6KCk9PmgoKX19ZnVuY3Rpb24gdWEoZSx0LG4pe3VyKCgpPT57dmFyIHI9JHIoKCk9PnQoZSxuPy4oKSl8fHt9KTtpZihuJiZyPy51cGRhdGUpe3ZhciBpPSExLGE9e307ZnIoKCk9Pnt2YXIgZT1uKCk7ZWkoZSksaSYmdHQoYSxlKSYmKGE9ZSxyLnVwZGF0ZShlKSl9KSxpPSEwfWlmKHI/LmRlc3Ryb3kpcmV0dXJuKCk9PnIuZGVzdHJveSgpfSl9ZnVuY3Rpb24gZGEoZSx0KXt2YXIgbj12b2lkIDAscjtocigoKT0+e24hPT0obj10KCkpJiYociYmPShQKHIpLG51bGwpLG4mJihyPWdyKCgpPT57dXIoKCk9Pm4oZSkpfSkpKX0pfWZ1bmN0aW9uIGZhKGUpe3ZhciB0LG4scj1gYDtpZih0eXBlb2YgZT09YHN0cmluZ2B8fHR5cGVvZiBlPT1gbnVtYmVyYClyKz1lO2Vsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgKWlmKEFycmF5LmlzQXJyYXkoZSkpe3ZhciBpPWUubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKyllW3RdJiYobj1mYShlW3RdKSkmJihyJiYocis9YCBgKSxyKz1uKX1lbHNlIGZvcihuIGluIGUpZVtuXSYmKHImJihyKz1gIGApLHIrPW4pO3JldHVybiByfWZ1bmN0aW9uIHBhKCl7Zm9yKHZhciBlLHQsbj0wLHI9YGAsaT1hcmd1bWVudHMubGVuZ3RoO248aTtuKyspKGU9YXJndW1lbnRzW25dKSYmKHQ9ZmEoZSkpJiYociYmKHIrPWAgYCkscis9dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gbWEoZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YD9wYShlKTplPz9gYH12YXIgaGE9Wy4uLmAgCQpcclxmXHhBMFx277u/YF07ZnVuY3Rpb24gZ2EoZSx0LG4pe3ZhciByPWU9PW51bGw/YGA6YGArZTtpZih0JiYocj1yP3IrYCBgK3Q6dCksbil7Zm9yKHZhciBpIG9mIE9iamVjdC5rZXlzKG4pKWlmKG5baV0pcj1yP3IrYCBgK2k6aTtlbHNlIGlmKHIubGVuZ3RoKWZvcih2YXIgYT1pLmxlbmd0aCxvPTA7KG89ci5pbmRleE9mKGksbykpPj0wOyl7dmFyIHM9bythOyhvPT09MHx8aGEuaW5jbHVkZXMocltvLTFdKSkmJihzPT09ci5sZW5ndGh8fGhhLmluY2x1ZGVzKHJbc10pKT9yPShvPT09MD9gYDpyLnN1YnN0cmluZygwLG8pKStyLnN1YnN0cmluZyhzKzEpOm89c319cmV0dXJuIHI9PT1gYD9udWxsOnJ9ZnVuY3Rpb24gX2EoZSx0PSExKXt2YXIgbj10P2AgIWltcG9ydGFudDtgOmA7YCxyPWBgO2Zvcih2YXIgaSBvZiBPYmplY3Qua2V5cyhlKSl7dmFyIGE9ZVtpXTthIT1udWxsJiZhIT09YGAmJihyKz1gIGAraStgOiBgK2Erbil9cmV0dXJuIHJ9ZnVuY3Rpb24gdmEoZSl7cmV0dXJuIGVbMF0hPT1gLWB8fGVbMV0hPT1gLWA/ZS50b0xvd2VyQ2FzZSgpOmV9ZnVuY3Rpb24geWEoZSx0KXtpZih0KXt2YXIgbj1gYCxyLGk7aWYoQXJyYXkuaXNBcnJheSh0KT8ocj10WzBdLGk9dFsxXSk6cj10LGUpe2U9U3RyaW5nKGUpLnJlcGxhY2VBbGwoL1xzKlwvXCouKj9cKlwvXHMqL2csYGApLnRyaW0oKTt2YXIgYT0hMSxvPTAscz0hMSxjPVtdO3ImJmMucHVzaCguLi5PYmplY3Qua2V5cyhyKS5tYXAodmEpKSxpJiZjLnB1c2goLi4uT2JqZWN0LmtleXMoaSkubWFwKHZhKSk7dmFyIGw9MCx1PS0xO2xldCB0PWUubGVuZ3RoO2Zvcih2YXIgZD0wO2Q8dDtkKyspe3ZhciBmPWVbZF07aWYocz9mPT09YC9gJiZlW2QtMV09PT1gKmAmJihzPSExKTphP2E9PT1mJiYoYT0hMSk6Zj09PWAvYCYmZVtkKzFdPT09YCpgP3M9ITA6Zj09PWAiYHx8Zj09PWAnYD9hPWY6Zj09PWAoYD9vKys6Zj09PWApYCYmby0tLCFzJiZhPT09ITEmJm89PT0wKXtpZihmPT09YDpgJiZ1PT09LTEpdT1kO2Vsc2UgaWYoZj09PWA7YHx8ZD09PXQtMSl7aWYodSE9PS0xKXt2YXIgcD12YShlLnN1YnN0cmluZyhsLHUpLnRyaW0oKSk7aWYoIWMuaW5jbHVkZXMocCkpe2YhPT1gO2AmJmQrKzt2YXIgbT1lLnN1YnN0cmluZyhsLGQpLnRyaW0oKTtuKz1gIGArbStgO2B9fWw9ZCsxLHU9LTF9fX19cmV0dXJuIHImJihuKz1fYShyKSksaSYmKG4rPV9hKGksITApKSxuPW4udHJpbSgpLG49PT1gYD9udWxsOm59cmV0dXJuIGU9PW51bGw/bnVsbDpTdHJpbmcoZSl9ZnVuY3Rpb24gYmEoZSx0LG4scixpLGEpe3ZhciBvPWUuX19jbGFzc05hbWU7aWYoQ3x8byE9PW58fG89PT12b2lkIDApe3ZhciBzPWdhKG4scixhKTsoIUN8fHMhPT1lLmdldEF0dHJpYnV0ZShgY2xhc3NgKSkmJihzPT1udWxsP2UucmVtb3ZlQXR0cmlidXRlKGBjbGFzc2ApOnQ/ZS5jbGFzc05hbWU9czplLnNldEF0dHJpYnV0ZShgY2xhc3NgLHMpKSxlLl9fY2xhc3NOYW1lPW59ZWxzZSBpZihhJiZpIT09YSlmb3IodmFyIGMgaW4gYSl7dmFyIGw9ISFhW2NdOyhpPT1udWxsfHxsIT09ISFpW2NdKSYmZS5jbGFzc0xpc3QudG9nZ2xlKGMsbCl9cmV0dXJuIGF9ZnVuY3Rpb24geGEoZSx0PXt9LG4scil7Zm9yKHZhciBpIGluIG4pe3ZhciBhPW5baV07dFtpXSE9PWEmJihuW2ldPT1udWxsP2Uuc3R5bGUucmVtb3ZlUHJvcGVydHkoaSk6ZS5zdHlsZS5zZXRQcm9wZXJ0eShpLGEscikpfX1mdW5jdGlvbiBTYShlLHQsbixyKXt2YXIgaT1lLl9fc3R5bGU7aWYoQ3x8aSE9PXQpe3ZhciBhPXlhKHQscik7KCFDfHxhIT09ZS5nZXRBdHRyaWJ1dGUoYHN0eWxlYCkpJiYoYT09bnVsbD9lLnJlbW92ZUF0dHJpYnV0ZShgc3R5bGVgKTplLnN0eWxlLmNzc1RleHQ9YSksZS5fX3N0eWxlPXR9ZWxzZSByJiYoQXJyYXkuaXNBcnJheShyKT8oeGEoZSxuPy5bMF0sclswXSkseGEoZSxuPy5bMV0sclsxXSxgaW1wb3J0YW50YCkpOnhhKGUsbixyKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gQ2EoZSx0LG49ITEpe2lmKGUubXVsdGlwbGUpe2lmKHQ9PW51bGwpcmV0dXJuO2lmKCFmKHQpKXJldHVybiBLZSgpO2Zvcih2YXIgciBvZiBlLm9wdGlvbnMpci5zZWxlY3RlZD10LmluY2x1ZGVzKEVhKHIpKTtyZXR1cm59Zm9yKHIgb2YgZS5vcHRpb25zKWlmKE5uKEVhKHIpLHQpKXtyLnNlbGVjdGVkPSEwO3JldHVybn0oIW58fHQhPT12b2lkIDApJiYoZS5zZWxlY3RlZEluZGV4PS0xKX1mdW5jdGlvbiB3YShlKXt2YXIgdD1uZXcgTXV0YXRpb25PYnNlcnZlcigoKT0+e0NhKGUsZS5fX3ZhbHVlKX0pO3Qub2JzZXJ2ZShlLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMCxhdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbYHZhbHVlYF19KSxhcigoKT0+e3QuZGlzY29ubmVjdCgpfSl9ZnVuY3Rpb24gVGEoZSx0LG49dCl7dmFyIHI9bmV3IFdlYWtTZXQsaT0hMDtlcihlLGBjaGFuZ2VgLHQ9Pnt2YXIgaT10P2Bbc2VsZWN0ZWRdYDpgOmNoZWNrZWRgLGE7aWYoZS5tdWx0aXBsZSlhPVtdLm1hcC5jYWxsKGUucXVlcnlTZWxlY3RvckFsbChpKSxFYSk7ZWxzZXt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoaSk/P2UucXVlcnlTZWxlY3Rvcihgb3B0aW9uOm5vdChbZGlzYWJsZWRdKWApO2E9byYmRWEobyl9bihhKSxlLl9fdmFsdWU9YSxqIT09bnVsbCYmci5hZGQoail9KSx1cigoKT0+e3ZhciBhPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIG89cnQ/THQ6ajtpZihyLmhhcyhvKSlyZXR1cm59aWYoQ2EoZSxhLGkpLGkmJmE9PT12b2lkIDApe3ZhciBzPWUucXVlcnlTZWxlY3RvcihgOmNoZWNrZWRgKTtzIT09bnVsbCYmKGE9RWEocyksbihhKSl9ZS5fX3ZhbHVlPWEsaT0hMX0pLHdhKGUpfWZ1bmN0aW9uIEVhKGUpe3JldHVybmBfX3ZhbHVlYGluIGU/ZS5fX3ZhbHVlOmUudmFsdWV9dmFyIERhPVN5bWJvbChgY2xhc3NgKSxPYT1TeW1ib2woYHN0eWxlYCksa2E9U3ltYm9sKGBpcyBjdXN0b20gZWxlbWVudGApLEFhPVN5bWJvbChgaXMgaHRtbGApLGphPUVlP2BsaW5rYDpgTElOS2AsTWE9RWU/YGlucHV0YDpgSU5QVVRgLE5hPUVlP2BvcHRpb25gOmBPUFRJT05gLFBhPUVlP2BzZWxlY3RgOmBTRUxFQ1RgLEZhPUVlP2Bwcm9ncmVzc2A6YFBST0dSRVNTYDtmdW5jdGlvbiBJYShlKXtpZihDKXt2YXIgdD0hMSxuPSgpPT57aWYoIXQpe2lmKHQ9ITAsZS5oYXNBdHRyaWJ1dGUoYHZhbHVlYCkpe3ZhciBuPWUudmFsdWU7emEoZSxgdmFsdWVgLG51bGwpLGUudmFsdWU9bn1pZihlLmhhc0F0dHJpYnV0ZShgY2hlY2tlZGApKXt2YXIgcj1lLmNoZWNrZWQ7emEoZSxgY2hlY2tlZGAsbnVsbCksZS5jaGVja2VkPXJ9fX07ZS5fX29uX3I9bixndChuKSxRbigpfX1mdW5jdGlvbiBMYShlLHQpe3ZhciBuPUhhKGUpO24udmFsdWU9PT0obi52YWx1ZT10Pz92b2lkIDApfHxlLnZhbHVlPT09dCYmKHQhPT0wfHxlLm5vZGVOYW1lIT09RmEpfHwoZS52YWx1ZT10Pz9gYCl9ZnVuY3Rpb24gUmEoZSx0KXt0P2UuaGFzQXR0cmlidXRlKGBzZWxlY3RlZGApfHxlLnNldEF0dHJpYnV0ZShgc2VsZWN0ZWRgLGBgKTplLnJlbW92ZUF0dHJpYnV0ZShgc2VsZWN0ZWRgKX1mdW5jdGlvbiB6YShlLHQsbixyKXt2YXIgaT1IYShlKTtDJiYoaVt0XT1lLmdldEF0dHJpYnV0ZSh0KSx0PT09YHNyY2B8fHQ9PT1gc3Jjc2V0YHx8dD09PWBocmVmYCYmZS5ub2RlTmFtZT09PWphKXx8aVt0XSE9PShpW3RdPW4pJiYodD09PWBsb2FkaW5nYCYmKGVbd2VdPW4pLG49PW51bGw/ZS5yZW1vdmVBdHRyaWJ1dGUodCk6dHlwZW9mIG4hPWBzdHJpbmdgJiZXYShlKS5pbmNsdWRlcyh0KT9lW3RdPW46ZS5zZXRBdHRyaWJ1dGUodCxuKSl9ZnVuY3Rpb24gQmEoZSx0LG4scixpPSExLGE9ITEpe2lmKEMmJmkmJmUubm9kZU5hbWU9PT1NYSl7dmFyIG89ZTsoby50eXBlPT09YGNoZWNrYm94YD9gZGVmYXVsdENoZWNrZWRgOmBkZWZhdWx0VmFsdWVgKWluIG58fElhKG8pfXZhciBzPUhhKGUpLGM9c1trYV0sbD0hc1tBYV07bGV0IHU9QyYmYzt1JiZKZSghMSk7dmFyIGQ9dHx8e30sZj1lLm5vZGVOYW1lPT09TmE7Zm9yKHZhciBwIGluIHQpcCBpbiBufHwobltwXT1udWxsKTtuLmNsYXNzP24uY2xhc3M9bWEobi5jbGFzcyk6KHJ8fG5bRGFdKSYmKG4uY2xhc3M9bnVsbCksbltPYV0mJihuLnN0eWxlPz89bnVsbCk7dmFyIG09V2EoZSk7Zm9yKGxldCBpIGluIG4pe2xldCBvPW5baV07aWYoZiYmaT09PWB2YWx1ZWAmJm89PW51bGwpe2UudmFsdWU9ZS5fX3ZhbHVlPWBgLGRbaV09bztjb250aW51ZX1pZihpPT09YGNsYXNzYCl7YmEoZSxlLm5hbWVzcGFjZVVSST09PWBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sYCxvLHIsdD8uW0RhXSxuW0RhXSksZFtpXT1vLGRbRGFdPW5bRGFdO2NvbnRpbnVlfWlmKGk9PT1gc3R5bGVgKXtTYShlLG8sdD8uW09hXSxuW09hXSksZFtpXT1vLGRbT2FdPW5bT2FdO2NvbnRpbnVlfXZhciBoPWRbaV07aWYoIShvPT09aCYmIShvPT09dm9pZCAwJiZlLmhhc0F0dHJpYnV0ZShpKSkpKXtkW2ldPW87dmFyIGc9aVswXStpWzFdO2lmKGchPT1gJCRgKWlmKGc9PT1gb25gKXtsZXQgdD17fSxuPWAkJGAraSxyPWkuc2xpY2UoMik7dmFyIF89aWkocik7aWYobmkocikmJihyPXIuc2xpY2UoMCwtNyksdC5jYXB0dXJlPSEwKSwhXyYmaCl7aWYobyE9bnVsbCljb250aW51ZTtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocixkW25dLHQpLGRbbl09bnVsbH1pZihfKWdpKHIsZSxvKSxfaShbcl0pO2Vsc2UgaWYobyE9bnVsbCl7ZnVuY3Rpb24gYShlKXtkW2ldLmNhbGwodGhpcyxlKX1kW25dPW1pKHIsZSxhLHQpfX1lbHNlIGlmKGk9PT1gc3R5bGVgKXphKGUsaSxvKTtlbHNlIGlmKGk9PT1gYXV0b2ZvY3VzYClZbihlLCEhbyk7ZWxzZSBpZighYyYmKGk9PT1gX192YWx1ZWB8fGk9PT1gdmFsdWVgJiZvIT1udWxsKSllLnZhbHVlPWUuX192YWx1ZT1vO2Vsc2UgaWYoaT09PWBzZWxlY3RlZGAmJmYpUmEoZSxvKTtlbHNle3ZhciB2PWk7bHx8KHY9c2kodikpO3ZhciB5PXY9PT1gZGVmYXVsdFZhbHVlYHx8dj09PWBkZWZhdWx0Q2hlY2tlZGA7aWYobz09bnVsbCYmIWMmJiF5KWlmKHNbaV09bnVsbCx2PT09YHZhbHVlYHx8dj09PWBjaGVja2VkYCl7bGV0IG49ZSxyPXQ9PT12b2lkIDA7aWYodj09PWB2YWx1ZWApe2xldCBlPW4uZGVmYXVsdFZhbHVlO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdFZhbHVlPWUsbi52YWx1ZT1uLl9fdmFsdWU9cj9lOm51bGx9ZWxzZXtsZXQgZT1uLmRlZmF1bHRDaGVja2VkO24ucmVtb3ZlQXR0cmlidXRlKHYpLG4uZGVmYXVsdENoZWNrZWQ9ZSxuLmNoZWNrZWQ9cj9lOiExfX1lbHNlIGUucmVtb3ZlQXR0cmlidXRlKGkpO2Vsc2UgeXx8bS5pbmNsdWRlcyh2KSYmKGN8fHR5cGVvZiBvIT1gc3RyaW5nYCk/KGVbdl09byx2IGluIHMmJihzW3ZdPVMpKTp0eXBlb2YgbyE9YGZ1bmN0aW9uYCYmemEoZSx2LG8sYSl9fX1yZXR1cm4gdSYmSmUoITApLGR9ZnVuY3Rpb24gVmEoZSx0LG49W10scj1bXSxpPVtdLGEsbz0hMSxzPSExKXtvbihpLG4scixuPT57dmFyIHI9dm9pZCAwLGk9e30sYz1lLm5vZGVOYW1lPT09UGEsbD0hMTtpZihocigoKT0+e3ZhciB1PXQoLi4ubi5tYXAoUikpLGQ9QmEoZSxyLHUsYSxvLHMpO2wmJmMmJmB2YWx1ZWBpbiB1JiZDYShlLHUudmFsdWUpO2ZvcihsZXQgZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGkpKXVbZV18fFAoaVtlXSk7Zm9yKGxldCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModSkpe3ZhciBmPXVbdF07dC5kZXNjcmlwdGlvbj09PWBAYXR0YWNoYCYmKCFyfHxmIT09clt0XSkmJihpW3RdJiZQKGlbdF0pLGlbdF09Z3IoKCk9PmRhKGUsKCk9PmYpKSksZFt0XT1mfXI9ZH0pLGMpe3ZhciB1PWU7dXIoKCk9PntDYSh1LHIudmFsdWUsITApLHdhKHUpfSl9bD0hMH0pfWZ1bmN0aW9uIEhhKGUpe3JldHVybiBlLl9fYXR0cmlidXRlcz8/PXtba2FdOmUubm9kZU5hbWUuaW5jbHVkZXMoYC1gKSxbQWFdOmUubmFtZXNwYWNlVVJJPT09VmV9fXZhciBVYT1uZXcgTWFwO2Z1bmN0aW9uIFdhKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKGBpc2ApfHxlLm5vZGVOYW1lLG49VWEuZ2V0KHQpO2lmKG4pcmV0dXJuIG47VWEuc2V0KHQsbj1bXSk7Zm9yKHZhciByLGk9ZSxhPUVsZW1lbnQucHJvdG90eXBlO2EhPT1pOyl7Zm9yKHZhciBvIGluIHI9dihpKSxyKXJbb10uc2V0JiZuLnB1c2gobyk7aT1iKGkpfXJldHVybiBufXZhciBHYT1udWxsO2Z1bmN0aW9uIEthKCl7aWYoR2E9PT1udWxsKXt2YXIgZT1Lbihgc2VsZWN0YCk7ZS5pbm5lckhUTUw9eGkoYDxvcHRpb24+PHNwYW4+dDwvc3Bhbj48L29wdGlvbj5gKSxHYT1lLmZpcnN0Q2hpbGQ/LmZpcnN0Q2hpbGQ/Lm5vZGVUeXBlPT09MX1yZXR1cm4gR2F9ZnVuY3Rpb24gcWEoZSx0KXt2YXIgbj1DO0thKCl8fChKZSghMSksZS50ZXh0Q29udGVudD1gYCxlLmFwcGVuZChxbihgYCkpKTt0cnl7dCgpfWZpbmFsbHl7biYmKEM/WGUoZSk6KEplKCEwKSxUKGUpKSl9fWZ1bmN0aW9uIEphKGUsdCxuPXQpe3ZhciByPW5ldyBXZWFrU2V0O2VyKGUsYGlucHV0YCxhc3luYyBpPT57dmFyIGE9aT9lLmRlZmF1bHRWYWx1ZTplLnZhbHVlO2lmKGE9WGEoZSk/WmEoYSk6YSxuKGEpLGohPT1udWxsJiZyLmFkZChqKSxhd2FpdCBYcigpLGEhPT0oYT10KCkpKXt2YXIgbz1lLnNlbGVjdGlvblN0YXJ0LHM9ZS5zZWxlY3Rpb25FbmQsYz1lLnZhbHVlLmxlbmd0aDtpZihlLnZhbHVlPWE/P2BgLHMhPT1udWxsKXt2YXIgbD1lLnZhbHVlLmxlbmd0aDtvPT09cyYmcz09PWMmJmw+Yz8oZS5zZWxlY3Rpb25TdGFydD1sLGUuc2VsZWN0aW9uRW5kPWwpOihlLnNlbGVjdGlvblN0YXJ0PW8sZS5zZWxlY3Rpb25FbmQ9TWF0aC5taW4ocyxsKSl9fX0pLChDJiZlLmRlZmF1bHRWYWx1ZSE9PWUudmFsdWV8fCRyKHQpPT1udWxsJiZlLnZhbHVlKSYmKG4oWGEoZSk/WmEoZS52YWx1ZSk6ZS52YWx1ZSksaiE9PW51bGwmJnIuYWRkKGopKSxmcigoKT0+e3ZhciBuPXQoKTtpZihlPT09ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl7dmFyIGk9cnQ/THQ6ajtpZihyLmhhcyhpKSlyZXR1cm59WGEoZSkmJm49PT1aYShlLnZhbHVlKXx8ZS50eXBlPT09YGRhdGVgJiYhbiYmIWUudmFsdWV8fG4hPT1lLnZhbHVlJiYoZS52YWx1ZT1uPz9gYCl9KX1mdW5jdGlvbiBZYShlLHQsbj10KXtlcihlLGBjaGFuZ2VgLHQ9PntuKHQ/ZS5kZWZhdWx0Q2hlY2tlZDplLmNoZWNrZWQpfSksKEMmJmUuZGVmYXVsdENoZWNrZWQhPT1lLmNoZWNrZWR8fCRyKHQpPT1udWxsKSYmbihlLmNoZWNrZWQpLGZyKCgpPT57ZS5jaGVja2VkPSEhdCgpfSl9ZnVuY3Rpb24gWGEoZSl7dmFyIHQ9ZS50eXBlO3JldHVybiB0PT09YG51bWJlcmB8fHQ9PT1gcmFuZ2VgfWZ1bmN0aW9uIFphKGUpe3JldHVybiBlPT09YGA/bnVsbDorZX1mdW5jdGlvbiBRYShlLHQpe3JldHVybiBlPT09dHx8ZT8uW1NlXT09PXR9ZnVuY3Rpb24gJGEoZT17fSx0LG4scil7dmFyIGk9RS5yLGE9STtyZXR1cm4gdXIoKCk9Pnt2YXIgbyxzO3JldHVybiBmcigoKT0+e289cyxzPXI/LigpfHxbXSwkcigoKT0+e2UhPT1uKC4uLnMpJiYodChlLC4uLnMpLG8mJlFhKG4oLi4ubyksZSkmJnQobnVsbCwuLi5vKSl9KX0pLCgpPT57bGV0IHI9YTtmb3IoO3IhPT1pJiZyLnBhcmVudCE9PW51bGwmJnIucGFyZW50LmYmMzM1NTQ0MzI7KXI9ci5wYXJlbnQ7bGV0IG89KCk9PntzJiZRYShuKC4uLnMpLGUpJiZ0KG51bGwsLi4ucyl9LGM9ci50ZWFyZG93bjtyLnRlYXJkb3duPSgpPT57bygpLGM/LigpfX19KSxlfWZ1bmN0aW9uIGVvKGU9ITEpe2xldCB0PUUsbj10LmwudTtpZighbilyZXR1cm47bGV0IHI9KCk9PmVpKHQucyk7aWYoZSl7bGV0IGU9MCxuPXt9LGk9dW4oKCk9PntsZXQgcj0hMSxpPXQucztmb3IobGV0IGUgaW4gaSlpW2VdIT09bltlXSYmKG5bZV09aVtlXSxyPSEwKTtyZXR1cm4gciYmZSsrLGV9KTtyPSgpPT5SKGkpfW4uYi5sZW5ndGgmJmNyKCgpPT57dG8odCxyKSxpZShuLmIpfSksb3IoKCk9PntsZXQgZT0kcigoKT0+bi5tLm1hcChyZSkpO3JldHVybigpPT57Zm9yKGxldCB0IG9mIGUpdHlwZW9mIHQ9PWBmdW5jdGlvbmAmJnQoKX19KSxuLmEubGVuZ3RoJiZvcigoKT0+e3RvKHQsciksaWUobi5hKX0pfWZ1bmN0aW9uIHRvKGUsdCl7aWYoZS5sLnMpZm9yKGxldCB0IG9mIGUubC5zKVIodCk7dCgpfXZhciBubz17Z2V0KGUsdCl7aWYoIWUuZXhjbHVkZS5pbmNsdWRlcyh0KSlyZXR1cm4gZS5wcm9wc1t0XX0sc2V0KGUsdCl7cmV0dXJuITF9LGdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpe2lmKCFlLmV4Y2x1ZGUuaW5jbHVkZXModCkmJnQgaW4gZS5wcm9wcylyZXR1cm57ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsdmFsdWU6ZS5wcm9wc1t0XX19LGhhcyhlLHQpe3JldHVybiBlLmV4Y2x1ZGUuaW5jbHVkZXModCk/ITE6dCBpbiBlLnByb3BzfSxvd25LZXlzKGUpe3JldHVybiBSZWZsZWN0Lm93bktleXMoZS5wcm9wcykuZmlsdGVyKHQ9PiFlLmV4Y2x1ZGUuaW5jbHVkZXModCkpfX07ZnVuY3Rpb24gcm8oZSx0LG4pe3JldHVybiBuZXcgUHJveHkoe3Byb3BzOmUsZXhjbHVkZTp0fSxubyl9dmFyIGlvPXtnZXQoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpcmV0dXJuIHJbdF19fSxzZXQoZSx0LG4pe2xldCByPWUucHJvcHMubGVuZ3RoO2Zvcig7ci0tOyl7bGV0IGk9ZS5wcm9wc1tyXTtuZShpKSYmKGk9aSgpKTtsZXQgYT1fKGksdCk7aWYoYSYmYS5zZXQpcmV0dXJuIGEuc2V0KG4pLCEwfXJldHVybiExfSxnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KXtsZXQgbj1lLnByb3BzLmxlbmd0aDtmb3IoO24tLTspe2xldCByPWUucHJvcHNbbl07aWYobmUocikmJihyPXIoKSksdHlwZW9mIHI9PWBvYmplY3RgJiZyJiZ0IGluIHIpe2xldCBlPV8ocix0KTtyZXR1cm4gZSYmIWUuY29uZmlndXJhYmxlJiYoZS5jb25maWd1cmFibGU9ITApLGV9fX0saGFzKGUsdCl7aWYodD09PVNlfHx0PT09Q2UpcmV0dXJuITE7Zm9yKGxldCBuIG9mIGUucHJvcHMpaWYobmUobikmJihuPW4oKSksbiE9bnVsbCYmdCBpbiBuKXJldHVybiEwO3JldHVybiExfSxvd25LZXlzKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlLnByb3BzKWlmKG5lKG4pJiYobj1uKCkpLG4pe2ZvcihsZXQgZSBpbiBuKXQuaW5jbHVkZXMoZSl8fHQucHVzaChlKTtmb3IobGV0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhuKSl0LmluY2x1ZGVzKGUpfHx0LnB1c2goZSl9cmV0dXJuIHR9fTtmdW5jdGlvbiBhbyguLi5lKXtyZXR1cm4gbmV3IFByb3h5KHtwcm9wczplfSxpbyl9ZnVuY3Rpb24gb28oZSx0LG4scil7dmFyIGk9IWl0fHwobiYyKSE9MCxhPShuJjgpIT0wLG89KG4mMTYpIT0wLHM9cixjPSEwLGw9KCk9PihjJiYoYz0hMSxzPW8/JHIocik6cikscyk7bGV0IHU7aWYoYSl7dmFyIGQ9U2UgaW4gZXx8Q2UgaW4gZTt1PV8oZSx0KT8uc2V0Pz8oZCYmdCBpbiBlP249PmVbdF09bjp2b2lkIDApfXZhciBmLHA9ITE7YT9bZixwXT1GdCgoKT0+ZVt0XSk6Zj1lW3RdLGY9PT12b2lkIDAmJnIhPT12b2lkIDAmJihmPWwoKSx1JiYoaSYmUGUodCksdShmKSkpO3ZhciBtPWk/KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuPT09dm9pZCAwP2woKTooYz0hMCxuKX06KCk9Pnt2YXIgbj1lW3RdO3JldHVybiBuIT09dm9pZCAwJiYocz12b2lkIDApLG49PT12b2lkIDA/czpufTtpZihpJiYhKG4mNCkpcmV0dXJuIG07aWYodSl7dmFyIGg9ZS4kJGxlZ2FjeTtyZXR1cm4oZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wPygoIWl8fCF0fHxofHxwKSYmdSh0P20oKTplKSxlKTptKCl9KX12YXIgZz0hMSx2PShuJjE/dW46cG4pKCgpPT4oZz0hMSxtKCkpKTthJiZSKHYpO3ZhciB5PUk7cmV0dXJuKGZ1bmN0aW9uKGUsdCl7aWYoYXJndW1lbnRzLmxlbmd0aD4wKXtsZXQgbj10P1Iodik6aSYmYT9qbihlKTplO3JldHVybiBUbih2LG4pLGc9ITAscyE9PXZvaWQgMCYmKHM9biksZX1yZXR1cm4ga3ImJmd8fHkuZiYxNjM4ND92LnY6Uih2KX0pfWZ1bmN0aW9uIHNvKGUpe0U9PT1udWxsJiZEZShgb25Nb3VudGApLGl0JiZFLmwhPT1udWxsP2xvKEUpLm0ucHVzaChlKTpvcigoKT0+e2xldCB0PSRyKGUpO2lmKHR5cGVvZiB0PT1gZnVuY3Rpb25gKXJldHVybiB0fSl9ZnVuY3Rpb24gY28oZSl7RT09PW51bGwmJkRlKGBvbkRlc3Ryb3lgKSxzbygoKT0+KCk9PiRyKGUpKX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1lLmw7cmV0dXJuIHQudT8/PXthOltdLGI6W10sbTpbXX19dmFyIHo9KCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7b246KHQsbik9PntsZXQgcj1lLmdldCh0KTtyP3IucHVzaChuKTplLnNldCh0LFtuXSl9LG9mZjoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJmUuc2V0KHQsci5maWx0ZXIoZT0+ZSE9PW4pKX0sZW1pdDoodCxuKT0+e2xldCByPWUuZ2V0KHQpO3ImJnIuZm9yRWFjaChlPT5lKG4pKX19KX0pKCksdW89YGRhdGEtc21hcnRzdXBwLWlkYCxmbz0oKT0+d2luZG93LnRvcD8/d2luZG93LnBhcmVudCxCPSgpPT53aW5kb3cucGFyZW50LHBvPSgpPT5CKCkuZG9jdW1lbnQsbW89ZT0+ZSYmZS5vd25lckRvY3VtZW50fHxkb2N1bWVudCxobz0oe3ZpZDplfSk9PntsZXQgdD1CKCkuc21hcnRzdXBwfHx7fTt0LnZpZD1lLEIoKS5zbWFydHN1cHA9dH0sZ289YGRlYnVnYCxfbz1lPT57dHJ5e2xldCB0PUIoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShnbyk7aWYoIXQpcmV0dXJuITE7aWYodD09PWV8fHQ9PT1gKmApcmV0dXJuITA7bGV0IG49ZS5tYXRjaCgvXlx3KzovZyk7cmV0dXJuIG4/dD09PWAke25bMF19KmA6ITF9Y2F0Y2h7cmV0dXJuITF9fSx2bz0oKGUsdCk9PihuLC4uLnIpPT57X28oZSkmJmNvbnNvbGUuZGVidWcoYCVjJHtlfWAsYGNvbG9yOiAke3R9O2AsbiwuLi5yKX0pKGBzbWFydHN1cHA6d2lkZ2V0YCxgIzEyMzNkZmApLFY9KCgpPT57bGV0IGU9bnVsbCx0PVtdO3JldHVybiBPYmplY3QuZnJlZXplKHtpbml0Om49PntlPW4sdm8oYHdpZGdldCBvcHRpb25zYCxuKSx0LmZvckVhY2goZT0+ZShuKSl9LGdldE9wdGlvbnM6KCk9PntpZighZSl0aHJvdyBFcnJvcihgV2lkZ2V0IG9wdGlvbnMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LGF3YWl0T3B0aW9uczphc3luYygpPT5lfHxuZXcgUHJvbWlzZShlPT57dC5wdXNoKGUpfSksdXBkYXRlT3B0aW9uczp0PT57ZT17Li4uZSwuLi50fX19KX0pKCkseW89ZT0+e2xldCB0PWUuZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYGJvZHlgKVswXS5nZXRBdHRyaWJ1dGUodW8pO2lmKCF0KXRocm93IEVycm9yKGBNaXNzaW5nIGNoYXQgSUQgYXR0cmlidXRlIG9uIGJvZHkgZWxlbWVudC5gKTtpZighZS5wYXJlbnQuJHNtYXJ0c3VwcCl0aHJvdyBFcnJvcihgU29tZXRoaW5nIHdlbnQgd3JvbmcuIFNlZW1zIGxpa2UgbG9hZGVyLmpzIGRpZCBub3QgaW5pdGlhbGl6ZSB3aWRnZXQuYCk7aWYoIWUucGFyZW50LiRzbWFydHN1cHAuZ2V0V2lkZ2V0KXRocm93IEVycm9yKGBHZXQgd2lkZ2V0IGZ1bmN0aW9uIHdhcyBub3Qgc3VwcGxpZWQgYnkgbG9hZGVyLmpzLmApO3JldHVybiBlLnBhcmVudC4kc21hcnRzdXBwLmdldFdpZGdldCh0KX07ZnVuY3Rpb24gYm8oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgciBpbiBuKWVbcl09bltyXX1yZXR1cm4gZX12YXIgeG89e3JlYWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMF09PT1gImAmJihlPWUuc2xpY2UoMSwtMSkpLGUucmVwbGFjZSgvKCVbXGRBLUZdezJ9KSsvZ2ksZGVjb2RlVVJJQ29tcG9uZW50KX0sd3JpdGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChlKS5yZXBsYWNlKC8lKDJbMzQ2QkZdfDNbQUMtRl18NDB8NVtCREVdfDYwfDdbQkNEXSkvZyxkZWNvZGVVUklDb21wb25lbnQpfX07ZnVuY3Rpb24gU28oZSx0KXtmdW5jdGlvbiBuKG4scixpKXtpZighKHR5cGVvZiBkb2N1bWVudD5gdWApKXtpPWJvKHt9LHQsaSksdHlwZW9mIGkuZXhwaXJlcz09YG51bWJlcmAmJihpLmV4cGlyZXM9bmV3IERhdGUoRGF0ZS5ub3coKStpLmV4cGlyZXMqODY0ZTUpKSxpLmV4cGlyZXMmJj1pLmV4cGlyZXMudG9VVENTdHJpbmcoKSxuPWVuY29kZVVSSUNvbXBvbmVudChuKS5yZXBsYWNlKC8lKDJbMzQ2Ql18NUV8NjB8N0MpL2csZGVjb2RlVVJJQ29tcG9uZW50KS5yZXBsYWNlKC9bKCldL2csZXNjYXBlKTt2YXIgYT1gYDtmb3IodmFyIG8gaW4gaSlpW29dJiYoYSs9YDsgYCtvLGlbb10hPT0hMCYmKGErPWA9YCtpW29dLnNwbGl0KGA7YClbMF0pKTtyZXR1cm4gZG9jdW1lbnQuY29va2llPW4rYD1gK2Uud3JpdGUocixuKSthfX1mdW5jdGlvbiByKHQpe2lmKCEodHlwZW9mIGRvY3VtZW50PmB1YHx8YXJndW1lbnRzLmxlbmd0aCYmIXQpKXtmb3IodmFyIG49ZG9jdW1lbnQuY29va2llP2RvY3VtZW50LmNvb2tpZS5zcGxpdChgOyBgKTpbXSxyPXt9LGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIGE9bltpXS5zcGxpdChgPWApLG89YS5zbGljZSgxKS5qb2luKGA9YCk7dHJ5e3ZhciBzPWRlY29kZVVSSUNvbXBvbmVudChhWzBdKTtpZihyW3NdPWUucmVhZChvLHMpLHQ9PT1zKWJyZWFrfWNhdGNoe319cmV0dXJuIHQ/clt0XTpyfX1yZXR1cm4gT2JqZWN0LmNyZWF0ZSh7c2V0Om4sZ2V0OnIscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7bihlLGBgLGJvKHt9LHQse2V4cGlyZXM6LTF9KSl9LHdpdGhBdHRyaWJ1dGVzOmZ1bmN0aW9uKGUpe3JldHVybiBTbyh0aGlzLmNvbnZlcnRlcixibyh7fSx0aGlzLmF0dHJpYnV0ZXMsZSkpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKGUpe3JldHVybiBTbyhibyh7fSx0aGlzLmNvbnZlcnRlcixlKSx0aGlzLmF0dHJpYnV0ZXMpfX0se2F0dHJpYnV0ZXM6e3ZhbHVlOk9iamVjdC5mcmVlemUodCl9LGNvbnZlcnRlcjp7dmFsdWU6T2JqZWN0LmZyZWV6ZShlKX19KX12YXIgQ289U28oeG8se3BhdGg6YC9gfSksd289YHNzdXBwYCxUbz0oZT0xODIpPT4oe2V4cGlyZXM6ZSxkb21haW46Vi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluLHBhdGg6Vi5nZXRPcHRpb25zKCkuY29va2llUGF0aHx8YC9gLHNhbWVTaXRlOmBzdHJpY3RgLHNlY3VyZTpCKCkubG9jYXRpb24ucHJvdG9jb2w9PT1gaHR0cHM6YH0pLEVvPWU9PmAke1YuZ2V0T3B0aW9ucygpLmNvb2tpZVByZWZpeHx8YGB9JHt3b30uJHtlfWAsRG89KHtuYW1lOmUsdmFsdWU6dCxleHBpcmF0aW9uSW5EYXlzOm49MTgyLG9wdGlvbnM6cn0pPT57Q28uc2V0KEVvKGUpLHQsey4uLlRvKG4pLC4uLnJ9KX0sT289ZT0+Q28uZ2V0KEVvKGUpKSxrbz1lPT57bGV0IHQ9RW8oZSk7aWYoQ28uZ2V0KHQpKXtsZXR7cGF0aDplLGRvbWFpbjpufT1UbygpO0NvLnJlbW92ZSh0LHtwYXRoOmUsZG9tYWluOm59KX19LEFvPWU9Pih0LC4uLm4pPT57ZShgW1NtYXJ0c3VwcF0gJHt0fWAsLi4ubil9LEg9QW8oY29uc29sZS53YXJuKSxqbz1Bbyhjb25zb2xlLmVycm9yKSxNbz0oKT0+e2xldHtrZXk6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7QigpLlNNQVJUU1VQUF9BVVRPQ1JFQVRFPT09ITE/YCR7eW8od2luZG93KS5pZH1fJHt3b31gOndvfV8ke2V9YH0sTm89ZT0+YCR7TW8oKX0ke2U/YF8ke2V9YDpgYH1gLFBvPWU9Pnt0cnl7bGV0IHQ9d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKE5vKGUpKT8/YHt9YDtyZXR1cm4gSlNPTi5wYXJzZSh0KX1jYXRjaHtyZXR1cm57fX19LEZvPShlLHQpPT57dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShObyh0KSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2goZSl7SChgU2V0IHRvIGxvY2FsIHN0b3JhZ2UgZmFpbGVkYCxlKX19LElvPShlLHQpPT57Rm8oey4uLlBvKCksW2VdOlN0cmluZyh0KX0pfSxMbz1lPT57bGV0IHQ9UG8oKTt0W2VdJiYoZGVsZXRlIHRbZV0sRm8odCkpfSxSbz0oKT0+e3dpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShObygpKSx3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oTm8oYGNhcmRzYCkpfSxVPWZ1bmN0aW9uKGUpe3JldHVybiBlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuQXV0aEZvcm09YGF1dGhGb3JtYCxlLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZD1gaXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkYCxlLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQ9YG9wZW5lZGAsZS5NYXJrZXRpbmdDb25zZW50PWBtYXJrZXRpbmdDb25zZW50YCxlLk1lc3NhZ2U9YG1lc3NhZ2VgLGUuUG9wdXBDbG9zZWRBdD1gcG9wdXBDbG9zZWRBdGAsZS5SYXRpbmdUZXh0PWByYXRpbmdUZXh0YCxlLlNvdW5kc0VuYWJsZWQ9YGVuYWJsZVNvdW5kc2AsZS5WaXNpdG9ySWQ9YHZpZGAsZS5WaXNpdHM9YHZpc2l0c2AsZS5UaWNrZXRGb3JtPWB0aWNrZXRGb3JtYCxlLlNlc3Npb25JZD1gc2Vzc2lvbklkYCxlfSh7fSksem89ZT0+e2xldCB0PWBgO3JldHVybiBlPT09VS5WaXNpdG9ySWQmJlYuZ2V0T3B0aW9ucygpLmNvb2tpZURvbWFpbiYmKHQ9T28oZSkpLHR8fFBvKClbZV19LEJvPSh7bmFtZTplLHZhbHVlOnR9KT0+e2U9PT1VLlZpc2l0b3JJZCYmVi5nZXRPcHRpb25zKCkuY29va2llRG9tYWluJiZEbyh7bmFtZTplLHZhbHVlOnR9KSxJbyhlLHQpfSxWbz1lPT57TG8oZSl9O3oub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxlPT57Qm8oe25hbWU6VS5BbmFseXRpY3NDb25zZW50LHZhbHVlOlN0cmluZyhlKX0pfSksei5vbihgbWFya2V0aW5nQ29uc2VudENoYW5nZWRgLGU9PntCbyh7bmFtZTpVLk1hcmtldGluZ0NvbnNlbnQsdmFsdWU6U3RyaW5nKGUpfSl9KTt2YXIgSG89KCk9PiEhVi5nZXRPcHRpb25zKCkuY29uc2VudE1vZGVFbmFibGVkLFVvPSgpPT57bGV0IGU9em8oVS5BbmFseXRpY3NDb25zZW50KT09PWB0cnVlYDtyZXR1cm4hKEhvKCkmJiFlKX0sV289KCk9PntsZXQgZT16byhVLk1hcmtldGluZ0NvbnNlbnQpPT09YHRydWVgO3JldHVybiEoSG8oKSYmIWUpfSxHbz1gbW9kdWxlcHJlbG9hZGAsS289ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IFVSTChlLHQpLmhyZWZ9LHFvPXt9LEpvPWZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1Qcm9taXNlLnJlc29sdmUoKTtpZih0JiZ0Lmxlbmd0aD4wKXtsZXQgZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgbGlua2ApLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgbWV0YVtwcm9wZXJ0eT1jc3Atbm9uY2VdYCksYT1pPy5ub25jZXx8aT8uZ2V0QXR0cmlidXRlKGBub25jZWApO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUubWFwKGU9PlByb21pc2UucmVzb2x2ZShlKS50aGVuKGU9Pih7c3RhdHVzOmBmdWxmaWxsZWRgLHZhbHVlOmV9KSxlPT4oe3N0YXR1czpgcmVqZWN0ZWRgLHJlYXNvbjplfSkpKSl9cj1vKHQubWFwKHQ9PntpZih0PUtvKHQsbiksdCBpbiBxbylyZXR1cm47cW9bdF09ITA7bGV0IHI9dC5lbmRzV2l0aChgLmNzc2ApLGk9cj9gW3JlbD0ic3R5bGVzaGVldCJdYDpgYDtpZihuKWZvcihsZXQgbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtsZXQgaT1lW25dO2lmKGkuaHJlZj09PXQmJighcnx8aS5yZWw9PT1gc3R5bGVzaGVldGApKXJldHVybn1lbHNlIGlmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj0iJHt0fSJdJHtpfWApKXJldHVybjtsZXQgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBsaW5rYCk7aWYoby5yZWw9cj9gc3R5bGVzaGVldGA6R28scnx8KG8uYXM9YHNjcmlwdGApLG8uY3Jvc3NPcmlnaW49YGAsby5ocmVmPXQsYSYmby5zZXRBdHRyaWJ1dGUoYG5vbmNlYCxhKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG8pLHIpcmV0dXJuIG5ldyBQcm9taXNlKChlLG4pPT57by5hZGRFdmVudExpc3RlbmVyKGBsb2FkYCxlKSxvLmFkZEV2ZW50TGlzdGVuZXIoYGVycm9yYCwoKT0+bihFcnJvcihgVW5hYmxlIHRvIHByZWxvYWQgQ1NTIGZvciAke3R9YCkpKX0pfSkpfWZ1bmN0aW9uIGkoZSl7bGV0IHQ9bmV3IEV2ZW50KGB2aXRlOnByZWxvYWRFcnJvcmAse2NhbmNlbGFibGU6ITB9KTtpZih0LnBheWxvYWQ9ZSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh0KSwhdC5kZWZhdWx0UHJldmVudGVkKXRocm93IGV9cmV0dXJuIHIudGhlbih0PT57Zm9yKGxldCBlIG9mIHR8fFtdKWUuc3RhdHVzPT09YHJlamVjdGVkYCYmaShlLnJlYXNvbik7cmV0dXJuIGUoKS5jYXRjaChpKX0pfSxZbz0oKT0+ISFWLmdldE9wdGlvbnMoKS5jcm9zc0RvbWFpbkVuYWJsZWQsWG89KCk9PlYuZ2V0T3B0aW9ucygpLmFsbG93ZWREb21haW5zLmxlbmd0aD4wLFpvPWFzeW5jKCk9Pnt0cnl7bGV0IGU9YXdhaXQgbmV3KGF3YWl0KEpvKCgpPT5pbXBvcnQoYC4vdGh1bWJtYXJrLmVzbS1DUDRDVTB5TC5qc2ApLFtdLGltcG9ydC5tZXRhLnVybCkpKS5UaHVtYm1hcmsoKS5nZXQoKTtyZXR1cm4gdm8oYFZpc2l0b3IgZmluZ2VycHJpbnQgY3JlYXRlZGAsZS50aHVtYm1hcmspLGUudGh1bWJtYXJrfWNhdGNoKGUpe0goYEZhaWxlZCB0byBnZW5lcmF0ZSBmaW5nZXJwcmludDpgLGUpfX0sUW89YXN5bmMoKT0+e2lmKCEoIVlvKCl8fCFYbygpKSlyZXR1cm4gWm8oKX0sJG89KCk9PnpvKFUuVmlzaXRvcklkKXx8bnVsbCxlcz1lPT5Cbyh7bmFtZTpVLlZpc2l0b3JJZCx2YWx1ZTpTdHJpbmcoZSl9KSx0cz0oKT0+e2lmKFdvKCkpcmV0dXJuIHpvKFUuVmlzaXRzKT9OdW1iZXIoem8oVS5WaXNpdHMpKTowfSxucz1lPT57V28oKSYmQm8oe25hbWU6VS5WaXNpdHMsdmFsdWU6U3RyaW5nKGUpfSl9O3oub24oYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCxlPT57ZXx8Vm8oVS5WaXNpdHMpfSk7dmFyIHJzPShlLHQsbik9PntsZXR7c2V0OnIsc3Vic2NyaWJlOml9PU8odCx0PT57bGV0IHI9em8oZSk7ciYmdChuP24ocik6cil9KSxhPXQ9PntCbyh7bmFtZTplLHZhbHVlOlN0cmluZyh0KX0pfTtyZXR1cm57c2V0OmU9PnthKGUpLHIoZSl9LHN1YnNjcmliZTppfX0saXM9KCk9PmBvbnRvdWNoc3RhcnRgaW4gd2luZG93fHxuYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz4wLGFzPSgpPT5bYGlQYWQgU2ltdWxhdG9yYCxgaVBob25lIFNpbXVsYXRvcmAsYGlQb2QgU2ltdWxhdG9yYCxgaVBhZGAsYGlQaG9uZWAsYGlQb2RgXS5pbmNsdWRlcyhuYXZpZ2F0b3IucGxhdGZvcm0pfHxuYXZpZ2F0b3IudXNlckFnZW50LmluY2x1ZGVzKGBNYWNgKSYmYG9udG91Y2hlbmRgaW4gZG9jdW1lbnQsb3M9TyhudWxsKSxzcz1rKFtvcyxPKHt3aWR0aDpCKCkuaW5uZXJXaWR0aCxoZWlnaHQ6QigpLmlubmVySGVpZ2h0fSldLChbZSx0XSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOm59PVYuZ2V0T3B0aW9ucygpO2lmKG4/LmVuZm9yY2VEZXNrdG9wTW9kZSlyZXR1cm4hMTtpZihlKXtsZXR7aXNNb2JpbGU6dCxpc1RhYmxldDpufT1lO2lmKG4pcmV0dXJuITE7aWYodClyZXR1cm4hMH1yZXR1cm4gdC53aWR0aDw0NTB8fHQuaGVpZ2h0PDUwMH0pLGNzPWsoW3NzXSwoW2VdKT0+e2xldHtmdWxsU2NyZWVuRW5hYmxlZDp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4hIShlfHx0KX0pLGxzPWsoW29zXSwoW2VdKT0+ZT8hIWU/LmlzRGVza3RvcCYmIWFzKCk6IWlzKCkpLHVzPWsoW2xzLGNzXSwoW2UsdF0pPT5lJiYhdCk7ayhbb3NdLChbZV0pPT4hIWU/LmlzVGFibGV0KTt2YXIgZHM9KCgpPT57bGV0IGU9Tyh7fSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lO3JldHVybntzdWJzY3JpYmU6dCxhZGQ6ZT0+e24odD0+KHsuLi50LFtlLmlkXTplfSkpfSxyZW1vdmU6ZT0+e24odD0+e2xldHtbZV06biwuLi5yfT10O3JldHVybiByfSl9LGZpbmQ6dD0+QShlKVt0XXx8bnVsbH19KSgpLGZzPWsoW2RzXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKSkscHM9ZT0+KHQsbj0zZTMpPT57bGV0IHI9YGZtLSR7ZX0tJHt0fWAsaT1kcy5maW5kKHIpLGE9MTtpJiYoY2xlYXJUaW1lb3V0KGkudGltZW91dCksYT1pLnJlY3VycmVuY2UrMSk7bGV0IG87cmV0dXJuIG4+MCYmKG89d2luZG93LnNldFRpbWVvdXQoKCk9PnttcyhyKX0sbikpLGRzLmFkZCh7aWQ6cix0eXBlOmUsdGV4dDp0LHRpbWVvdXQ6byxyZWN1cnJlbmNlOmF9KSwoKT0+bXMocil9LG1zPWU9Pntkcy5yZW1vdmUoZSl9LGhzPXBzKGBzdWNjZXNzYCksZ3M9cHMoYGVycm9yYCksX3M9cHMoYHdhcm5pbmdgKSx2cz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLkdvb2Q9NV09YEdvb2RgLGVbZS5Ob3JtYWw9M109YE5vcm1hbGAsZVtlLkJhZD0xXT1gQmFkYCxlfSh7fSkseXM9e1t2cy5Hb29kXTp7dmFsdWU6dnMuR29vZCx0ZXh0OmBhZ2VudFJhdGluZy5nb29kLmZvcm1UZXh0YCxuYW1lOmBnb29kYH0sW3ZzLk5vcm1hbF06e3ZhbHVlOnZzLk5vcm1hbCx0ZXh0OmBhZ2VudFJhdGluZy5ub3JtYWwuZm9ybVRleHRgLG5hbWU6YG5ldXRyYWxgfSxbdnMuQmFkXTp7dmFsdWU6dnMuQmFkLHRleHQ6YGFnZW50UmF0aW5nLmJhZC5mb3JtVGV4dGAsbmFtZTpgYmFkYH19LGJzPU9iamVjdC52YWx1ZXMoeXMpLnNvcnQoKGUsdCk9PnQudmFsdWUtZS52YWx1ZSkseHM9YHJhdGVfZm9ybV9pZGAsU3M9e2lkOnhzLHR5cGU6YG1lc3NhZ2VgLHN1YlR5cGU6YHN5c3RlbWAsY2hhbm5lbDp7dHlwZTpgZGVmYXVsdGAsaWQ6bnVsbH0sY2hhdElkOmBgLHZpc2l0b3JJZDpgYCxncm91cElkOm51bGwsYWdlbnRJZDpudWxsLHRyaWdnZXI6bnVsbCxjcmVhdGVkQXQ6YGAsY29udGVudDp7dHlwZTpgcmF0ZV9mb3JtYCxkYXRhOnt9fSxhdHRhY2htZW50czpbXSxzdWJqZWN0Om51bGwsZm9yd2FyZGVkTWVzc2FnZUlkOm51bGwscGFydGljaXBhbnRzOltdLHJlcGx5VG9NZXNzYWdlSWQ6bnVsbCxkZWxldGVkQXQ6bnVsbCx3aWRnZXRPcHRpb25zOntkaXNhYmxlSW5wdXQ6ITEsZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiExLGRpc2FibGVBdHRhY2htZW50czohMX19LENzPU8obnVsbCksd3M9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjcscz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBjKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNGaW5pdGUoZSkpcmV0dXJuIHQubG9uZz91KGUpOmwoZSk7dGhyb3cgRXJyb3IoYHZhbCBpcyBub3QgYSBub24tZW1wdHkgc3RyaW5nIG9yIGEgdmFsaWQgbnVtYmVyLiB2YWw9YCtKU09OLnN0cmluZ2lmeShlKSl9O2Z1bmN0aW9uIGMoZSl7aWYoZT1TdHJpbmcoZSksIShlLmxlbmd0aD4xMDApKXt2YXIgdD0vXigtPyg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8d2Vla3M/fHd8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIGM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIGMqcztjYXNlYHdlZWtzYDpjYXNlYHdlZWtgOmNhc2Vgd2A6cmV0dXJuIGMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBjKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gYyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIGMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBjKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIGM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gbChlKXt2YXIgdD1NYXRoLmFicyhlKTtyZXR1cm4gdD49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOnQ+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDp0Pj1yP01hdGgucm91bmQoZS9yKStgbWA6dD49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiB1KGUpe3ZhciB0PU1hdGguYWJzKGUpO3JldHVybiB0Pj1hP2QoZSx0LGEsYGRheWApOnQ+PWk/ZChlLHQsaSxgaG91cmApOnQ+PXI/ZChlLHQscixgbWludXRlYCk6dD49bj9kKGUsdCxuLGBzZWNvbmRgKTplK2AgbXNgfWZ1bmN0aW9uIGQoZSx0LG4scil7dmFyIGk9dD49bioxLjU7cmV0dXJuIE1hdGgucm91bmQoZS9uKStgIGArcisoaT9gc2A6YGApfX0pKSxUcz1zKCgoZSx0KT0+e2Z1bmN0aW9uIG4oZSl7bi5kZWJ1Zz1uLG4uZGVmYXVsdD1uLG4uY29lcmNlPWMsbi5kaXNhYmxlPW8sbi5lbmFibGU9aSxuLmVuYWJsZWQ9cyxuLmh1bWFuaXplPXdzKCksbi5kZXN0cm95PWwsT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57blt0XT1lW3RdfSksbi5uYW1lcz1bXSxuLnNraXBzPVtdLG4uZm9ybWF0dGVycz17fTtmdW5jdGlvbiB0KGUpe2xldCB0PTA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdD0odDw8NSktdCtlLmNoYXJDb2RlQXQobiksdHw9MDtyZXR1cm4gbi5jb2xvcnNbTWF0aC5hYnModCklbi5jb2xvcnMubGVuZ3RoXX1uLnNlbGVjdENvbG9yPXQ7ZnVuY3Rpb24gbihlKXtsZXQgdCxpPW51bGwsYSxvO2Z1bmN0aW9uIHMoLi4uZSl7aWYoIXMuZW5hYmxlZClyZXR1cm47bGV0IHI9cyxpPU51bWJlcihuZXcgRGF0ZSk7ci5kaWZmPWktKHR8fGkpLHIucHJldj10LHIuY3Vycj1pLHQ9aSxlWzBdPW4uY29lcmNlKGVbMF0pLHR5cGVvZiBlWzBdIT1gc3RyaW5nYCYmZS51bnNoaWZ0KGAlT2ApO2xldCBhPTA7ZVswXT1lWzBdLnJlcGxhY2UoLyUoW2EtekEtWiVdKS9nLCh0LGkpPT57aWYodD09PWAlJWApcmV0dXJuYCVgO2ErKztsZXQgbz1uLmZvcm1hdHRlcnNbaV07aWYodHlwZW9mIG89PWBmdW5jdGlvbmApe2xldCBuPWVbYV07dD1vLmNhbGwocixuKSxlLnNwbGljZShhLDEpLGEtLX1yZXR1cm4gdH0pLG4uZm9ybWF0QXJncy5jYWxsKHIsZSksKHIubG9nfHxuLmxvZykuYXBwbHkocixlKX1yZXR1cm4gcy5uYW1lc3BhY2U9ZSxzLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLHMuY29sb3I9bi5zZWxlY3RDb2xvcihlKSxzLmV4dGVuZD1yLHMuZGVzdHJveT1uLmRlc3Ryb3ksT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsYGVuYWJsZWRgLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxnZXQ6KCk9Pmk9PT1udWxsPyhhIT09bi5uYW1lc3BhY2VzJiYoYT1uLm5hbWVzcGFjZXMsbz1uLmVuYWJsZWQoZSkpLG8pOmksc2V0OmU9PntpPWV9fSksdHlwZW9mIG4uaW5pdD09YGZ1bmN0aW9uYCYmbi5pbml0KHMpLHN9ZnVuY3Rpb24gcihlLHQpe2xldCByPW4odGhpcy5uYW1lc3BhY2UrKHQ9PT12b2lkIDA/YDpgOnQpK2UpO3JldHVybiByLmxvZz10aGlzLmxvZyxyfWZ1bmN0aW9uIGkoZSl7bi5zYXZlKGUpLG4ubmFtZXNwYWNlcz1lLG4ubmFtZXM9W10sbi5za2lwcz1bXTtsZXQgdD0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnRyaW0oKS5yZXBsYWNlKC9ccysvZyxgLGApLnNwbGl0KGAsYCkuZmlsdGVyKEJvb2xlYW4pO2ZvcihsZXQgZSBvZiB0KWVbMF09PT1gLWA/bi5za2lwcy5wdXNoKGUuc2xpY2UoMSkpOm4ubmFtZXMucHVzaChlKX1mdW5jdGlvbiBhKGUsdCl7bGV0IG49MCxyPTAsaT0tMSxhPTA7Zm9yKDtuPGUubGVuZ3RoOylpZihyPHQubGVuZ3RoJiYodFtyXT09PWVbbl18fHRbcl09PT1gKmApKXRbcl09PT1gKmA/KGk9cixhPW4scisrKToobisrLHIrKyk7ZWxzZSBpZihpIT09LTEpcj1pKzEsYSsrLG49YTtlbHNlIHJldHVybiExO2Zvcig7cjx0Lmxlbmd0aCYmdFtyXT09PWAqYDspcisrO3JldHVybiByPT09dC5sZW5ndGh9ZnVuY3Rpb24gbygpe2xldCBlPVsuLi5uLm5hbWVzLC4uLm4uc2tpcHMubWFwKGU9PmAtYCtlKV0uam9pbihgLGApO3JldHVybiBuLmVuYWJsZShgYCksZX1mdW5jdGlvbiBzKGUpe2ZvcihsZXQgdCBvZiBuLnNraXBzKWlmKGEoZSx0KSlyZXR1cm4hMTtmb3IobGV0IHQgb2Ygbi5uYW1lcylpZihhKGUsdCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEVycm9yP2Uuc3RhY2t8fGUubWVzc2FnZTplfWZ1bmN0aW9uIGwoKXtjb25zb2xlLndhcm4oIkluc3RhbmNlIG1ldGhvZCBgZGVidWcuZGVzdHJveSgpYCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgYGRlYnVnYC4iKX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksRXM9cygoKGUsdCk9PntlLmZvcm1hdEFyZ3M9cixlLnNhdmU9aSxlLmxvYWQ9YSxlLnVzZUNvbG9ycz1uLGUuc3RvcmFnZT1vKCksZS5kZXN0cm95PSgoKT0+e2xldCBlPSExO3JldHVybigpPT57ZXx8KGU9ITAsY29uc29sZS53YXJuKCJJbnN0YW5jZSBtZXRob2QgYGRlYnVnLmRlc3Ryb3koKWAgaXMgZGVwcmVjYXRlZCBhbmQgbm8gbG9uZ2VyIGRvZXMgYW55dGhpbmcuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIG9mIGBkZWJ1Z2AuIikpfX0pKCksZS5jb2xvcnM9YCMwMDAwQ0MuIzAwMDBGRi4jMDAzM0NDLiMwMDMzRkYuIzAwNjZDQy4jMDA2NkZGLiMwMDk5Q0MuIzAwOTlGRi4jMDBDQzAwLiMwMENDMzMuIzAwQ0M2Ni4jMDBDQzk5LiMwMENDQ0MuIzAwQ0NGRi4jMzMwMENDLiMzMzAwRkYuIzMzMzNDQy4jMzMzM0ZGLiMzMzY2Q0MuIzMzNjZGRi4jMzM5OUNDLiMzMzk5RkYuIzMzQ0MwMC4jMzNDQzMzLiMzM0NDNjYuIzMzQ0M5OS4jMzNDQ0NDLiMzM0NDRkYuIzY2MDBDQy4jNjYwMEZGLiM2NjMzQ0MuIzY2MzNGRi4jNjZDQzAwLiM2NkNDMzMuIzk5MDBDQy4jOTkwMEZGLiM5OTMzQ0MuIzk5MzNGRi4jOTlDQzAwLiM5OUNDMzMuI0NDMDAwMC4jQ0MwMDMzLiNDQzAwNjYuI0NDMDA5OS4jQ0MwMENDLiNDQzAwRkYuI0NDMzMwMC4jQ0MzMzMzLiNDQzMzNjYuI0NDMzM5OS4jQ0MzM0NDLiNDQzMzRkYuI0NDNjYwMC4jQ0M2NjMzLiNDQzk5MDAuI0NDOTkzMy4jQ0NDQzAwLiNDQ0NDMzMuI0ZGMDAwMC4jRkYwMDMzLiNGRjAwNjYuI0ZGMDA5OS4jRkYwMENDLiNGRjAwRkYuI0ZGMzMwMC4jRkYzMzMzLiNGRjMzNjYuI0ZGMzM5OS4jRkYzM0NDLiNGRjMzRkYuI0ZGNjYwMC4jRkY2NjMzLiNGRjk5MDAuI0ZGOTkzMy4jRkZDQzAwLiNGRkNDMzNgLnNwbGl0KGAuYCk7ZnVuY3Rpb24gbigpe2lmKHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpKXJldHVybiEwO2lmKHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pKXJldHVybiExO2xldCBlO3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8YHVgJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmKGU9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSYmcGFyc2VJbnQoZVsxXSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZS5sb2c9Y29uc29sZS5kZWJ1Z3x8Y29uc29sZS5sb2d8fCgoKT0+e30pO2Z1bmN0aW9uIGkodCl7dHJ5e3Q/ZS5zdG9yYWdlLnNldEl0ZW0oYGRlYnVnYCx0KTplLnN0b3JhZ2UucmVtb3ZlSXRlbShgZGVidWdgKX1jYXRjaHt9fWZ1bmN0aW9uIGEoKXtsZXQgdDt0cnl7dD1lLnN0b3JhZ2UuZ2V0SXRlbShgZGVidWdgKXx8ZS5zdG9yYWdlLmdldEl0ZW0oYERFQlVHYCl9Y2F0Y2h7fXJldHVybiF0JiZ0eXBlb2YgcHJvY2VzczxgdWAmJmBlbnZgaW4gcHJvY2VzcyYmKHQ9e30uREVCVUcpLHR9ZnVuY3Rpb24gbygpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlfWNhdGNoe319dC5leHBvcnRzPVRzKCkoZSk7dmFye2Zvcm1hdHRlcnM6c309dC5leHBvcnRzO3Muaj1mdW5jdGlvbihlKXt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KGUpfWNhdGNoKGUpe3JldHVybmBbVW5leHBlY3RlZEpTT05QYXJzZUVycm9yXTogYCtlLm1lc3NhZ2V9fX0pKSxEcz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuY3JlYXRlRW1pdHRlcj1lLmNyZWF0ZUNhbGxiYWNrPWUuYm91bmQ9ZS5jcmVhdGVTb2NrZXRFcnJvcj1lLlNvY2tldEVycm9yPWUuZGVidWc9dm9pZCAwLGUuZGVidWc9bigpO2Z1bmN0aW9uIG4oKXt0cnl7cmV0dXJuIEVzKCkoYHNtYXJ0c3VwcDpjbGllbnRgKX1jYXRjaHtyZXR1cm4gZnVuY3Rpb24oKXt9fX12YXIgcj1mdW5jdGlvbihlKXt0KG4sZSk7ZnVuY3Rpb24gbih0LHIpe3ZhciBpPWUuY2FsbCh0aGlzLHQpfHx0aGlzO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoaSxuLnByb3RvdHlwZSksaS5uYW1lPWkuY29uc3RydWN0b3IubmFtZSxpLmNvZGU9ci5jb2RlLGkudHlwZT1yLnR5cGUsaS5ldmVudD1yLmV2ZW50LHImJnIuc3RhY2smJihpLnN0YWNrPWAke2kuc3RhY2t9CkNhdXNlZCBCeTogJHtyLnN0YWNrfWApLGl9cmV0dXJuIG59KEVycm9yKTtlLlNvY2tldEVycm9yPXI7ZnVuY3Rpb24gaShlKXtyZXR1cm4gbmV3IHIoZS5tZXNzYWdlLGUpfWUuY3JlYXRlU29ja2V0RXJyb3I9aTtmdW5jdGlvbiBhKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Wy4uLmFyZ3VtZW50c107ZVt0XS5hcHBseShlLG4pfX1lLmJvdW5kPWE7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBmdW5jdGlvbihuLHIpe24/dChpKG4pKTplKHIpfX1lLmNyZWF0ZUNhbGxiYWNrPW87ZnVuY3Rpb24gcyhlLHQpe3JldHVybiBmdW5jdGlvbihuKXtlLmVtaXQodCxuKX19ZS5jcmVhdGVFbWl0dGVyPXN9KSksT3M9cygoKGUsdCk9Pnt2YXIgbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LHI9YH5gO2Z1bmN0aW9uIGkoKXt9T2JqZWN0LmNyZWF0ZSYmKGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobnVsbCksbmV3IGkoKS5fX3Byb3RvX198fChyPSExKSk7ZnVuY3Rpb24gYShlLHQsbil7dGhpcy5mbj1lLHRoaXMuY29udGV4dD10LHRoaXMub25jZT1ufHwhMX1mdW5jdGlvbiBvKGUsdCxuLGksbyl7aWYodHlwZW9mIG4hPWBmdW5jdGlvbmApdGhyb3cgVHlwZUVycm9yKGBUaGUgbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uYCk7dmFyIHM9bmV3IGEobixpfHxlLG8pLGM9cj9yK3Q6dDtyZXR1cm4gZS5fZXZlbnRzW2NdP2UuX2V2ZW50c1tjXS5mbj9lLl9ldmVudHNbY109W2UuX2V2ZW50c1tjXSxzXTplLl9ldmVudHNbY10ucHVzaChzKTooZS5fZXZlbnRzW2NdPXMsZS5fZXZlbnRzQ291bnQrKyksZX1mdW5jdGlvbiBzKGUsdCl7LS1lLl9ldmVudHNDb3VudD09PTA/ZS5fZXZlbnRzPW5ldyBpOmRlbGV0ZSBlLl9ldmVudHNbdF19ZnVuY3Rpb24gYygpe3RoaXMuX2V2ZW50cz1uZXcgaSx0aGlzLl9ldmVudHNDb3VudD0wfWMucHJvdG90eXBlLmV2ZW50TmFtZXM9ZnVuY3Rpb24oKXt2YXIgZT1bXSx0LGk7aWYodGhpcy5fZXZlbnRzQ291bnQ9PT0wKXJldHVybiBlO2ZvcihpIGluIHQ9dGhpcy5fZXZlbnRzKW4uY2FsbCh0LGkpJiZlLnB1c2gocj9pLnNsaWNlKDEpOmkpO3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2UuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpOmV9LGMucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO2lmKCFuKXJldHVybltdO2lmKG4uZm4pcmV0dXJuW24uZm5dO2Zvcih2YXIgaT0wLGE9bi5sZW5ndGgsbz1BcnJheShhKTtpPGE7aSsrKW9baV09bltpXS5mbjtyZXR1cm4gb30sYy5wcm90b3R5cGUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihlKXt2YXIgdD1yP3IrZTplLG49dGhpcy5fZXZlbnRzW3RdO3JldHVybiBuP24uZm4/MTpuLmxlbmd0aDowfSxjLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUsdCxuLGksYSxvKXt2YXIgcz1yP3IrZTplO2lmKCF0aGlzLl9ldmVudHNbc10pcmV0dXJuITE7dmFyIGM9dGhpcy5fZXZlbnRzW3NdLGw9YXJndW1lbnRzLmxlbmd0aCx1LGQ7aWYoYy5mbil7c3dpdGNoKGMub25jZSYmdGhpcy5yZW1vdmVMaXN0ZW5lcihlLGMuZm4sdm9pZCAwLCEwKSxsKXtjYXNlIDE6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQpLCEwO2Nhc2UgMjpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0KSwhMDtjYXNlIDM6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuKSwhMDtjYXNlIDQ6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGkpLCEwO2Nhc2UgNTpyZXR1cm4gYy5mbi5jYWxsKGMuY29udGV4dCx0LG4saSxhKSwhMDtjYXNlIDY6cmV0dXJuIGMuZm4uY2FsbChjLmNvbnRleHQsdCxuLGksYSxvKSwhMH1mb3IoZD0xLHU9QXJyYXkobC0xKTtkPGw7ZCsrKXVbZC0xXT1hcmd1bWVudHNbZF07Yy5mbi5hcHBseShjLmNvbnRleHQsdSl9ZWxzZXt2YXIgZj1jLmxlbmd0aCxwO2ZvcihkPTA7ZDxmO2QrKylzd2l0Y2goY1tkXS5vbmNlJiZ0aGlzLnJlbW92ZUxpc3RlbmVyKGUsY1tkXS5mbix2b2lkIDAsITApLGwpe2Nhc2UgMTpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0KTticmVhaztjYXNlIDI6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0KTticmVhaztjYXNlIDM6Y1tkXS5mbi5jYWxsKGNbZF0uY29udGV4dCx0LG4pO2JyZWFrO2Nhc2UgNDpjW2RdLmZuLmNhbGwoY1tkXS5jb250ZXh0LHQsbixpKTticmVhaztkZWZhdWx0OmlmKCF1KWZvcihwPTEsdT1BcnJheShsLTEpO3A8bDtwKyspdVtwLTFdPWFyZ3VtZW50c1twXTtjW2RdLmZuLmFwcGx5KGNbZF0uY29udGV4dCx1KX19cmV0dXJuITB9LGMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbyh0aGlzLGUsdCxuLCExKX0sYy5wcm90b3R5cGUub25jZT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG8odGhpcyxlLHQsbiwhMCl9LGMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKGUsdCxuLGkpe3ZhciBhPXI/citlOmU7aWYoIXRoaXMuX2V2ZW50c1thXSlyZXR1cm4gdGhpcztpZighdClyZXR1cm4gcyh0aGlzLGEpLHRoaXM7dmFyIG89dGhpcy5fZXZlbnRzW2FdO2lmKG8uZm4pby5mbj09PXQmJighaXx8by5vbmNlKSYmKCFufHxvLmNvbnRleHQ9PT1uKSYmcyh0aGlzLGEpO2Vsc2V7Zm9yKHZhciBjPTAsbD1bXSx1PW8ubGVuZ3RoO2M8dTtjKyspKG9bY10uZm4hPT10fHxpJiYhb1tjXS5vbmNlfHxuJiZvW2NdLmNvbnRleHQhPT1uKSYmbC5wdXNoKG9bY10pO2wubGVuZ3RoP3RoaXMuX2V2ZW50c1thXT1sLmxlbmd0aD09PTE/bFswXTpsOnModGhpcyxhKX1yZXR1cm4gdGhpc30sYy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBlPyh0PXI/citlOmUsdGhpcy5fZXZlbnRzW3RdJiZzKHRoaXMsdCkpOih0aGlzLl9ldmVudHM9bmV3IGksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhpc30sYy5wcm90b3R5cGUub2ZmPWMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLGMucHJvdG90eXBlLmFkZExpc3RlbmVyPWMucHJvdG90eXBlLm9uLGMucHJlZml4ZWQ9cixjLkV2ZW50RW1pdHRlcj1jLHQhPT12b2lkIDAmJih0LmV4cG9ydHM9Yyl9KSksa3M9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsaT1lLmluZGV4T2YoYFtgKSxhPWUuaW5kZXhPZihgXWApO2khPS0xJiZhIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxpKStlLnN1YnN0cmluZyhpLGEpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKGEsZS5sZW5ndGgpKTtmb3IodmFyIG89bi5leGVjKGV8fGBgKSxzPXt9LGM9MTQ7Yy0tOylzW3JbY11dPW9bY118fGBgO3JldHVybiBpIT0tMSYmYSE9LTEmJihzLnNvdXJjZT10LHMuaG9zdD1zLmhvc3Quc3Vic3RyaW5nKDEscy5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxzLmF1dGhvcml0eT1zLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLHMuaXB2NnVyaT0hMCksc319KSksQXM9cygoKGUsdCk9PntmdW5jdGlvbiBuKGUpe24uZGVidWc9bixuLmRlZmF1bHQ9bixuLmNvZXJjZT1sLG4uZGlzYWJsZT1vLG4uZW5hYmxlPWEsbi5lbmFibGVkPXMsbi5odW1hbml6ZT13cygpLE9iamVjdC5rZXlzKGUpLmZvckVhY2godD0+e25bdF09ZVt0XX0pLG4uaW5zdGFuY2VzPVtdLG4ubmFtZXM9W10sbi5za2lwcz1bXSxuLmZvcm1hdHRlcnM9e307ZnVuY3Rpb24gdChlKXtsZXQgdD0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQ9KHQ8PDUpLXQrZS5jaGFyQ29kZUF0KG4pLHR8PTA7cmV0dXJuIG4uY29sb3JzW01hdGguYWJzKHQpJW4uY29sb3JzLmxlbmd0aF19bi5zZWxlY3RDb2xvcj10O2Z1bmN0aW9uIG4oZSl7bGV0IGE7ZnVuY3Rpb24gbyguLi5lKXtpZighby5lbmFibGVkKXJldHVybjtsZXQgdD1vLHI9TnVtYmVyKG5ldyBEYXRlKTt0LmRpZmY9ci0oYXx8ciksdC5wcmV2PWEsdC5jdXJyPXIsYT1yLGVbMF09bi5jb2VyY2UoZVswXSksdHlwZW9mIGVbMF0hPWBzdHJpbmdgJiZlLnVuc2hpZnQoYCVPYCk7bGV0IGk9MDtlWzBdPWVbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csKHIsYSk9PntpZihyPT09YCUlYClyZXR1cm4gcjtpKys7bGV0IG89bi5mb3JtYXR0ZXJzW2FdO2lmKHR5cGVvZiBvPT1gZnVuY3Rpb25gKXtsZXQgbj1lW2ldO3I9by5jYWxsKHQsbiksZS5zcGxpY2UoaSwxKSxpLS19cmV0dXJuIHJ9KSxuLmZvcm1hdEFyZ3MuY2FsbCh0LGUpLCh0LmxvZ3x8bi5sb2cpLmFwcGx5KHQsZSl9cmV0dXJuIG8ubmFtZXNwYWNlPWUsby5lbmFibGVkPW4uZW5hYmxlZChlKSxvLnVzZUNvbG9ycz1uLnVzZUNvbG9ycygpLG8uY29sb3I9dChlKSxvLmRlc3Ryb3k9cixvLmV4dGVuZD1pLHR5cGVvZiBuLmluaXQ9PWBmdW5jdGlvbmAmJm4uaW5pdChvKSxuLmluc3RhbmNlcy5wdXNoKG8pLG99ZnVuY3Rpb24gcigpe2xldCBlPW4uaW5zdGFuY2VzLmluZGV4T2YodGhpcyk7cmV0dXJuIGU9PT0tMT8hMToobi5pbnN0YW5jZXMuc3BsaWNlKGUsMSksITApfWZ1bmN0aW9uIGkoZSx0KXtsZXQgcj1uKHRoaXMubmFtZXNwYWNlKyh0PT09dm9pZCAwP2A6YDp0KStlKTtyZXR1cm4gci5sb2c9dGhpcy5sb2cscn1mdW5jdGlvbiBhKGUpe24uc2F2ZShlKSxuLm5hbWVzPVtdLG4uc2tpcHM9W107bGV0IHQscj0odHlwZW9mIGU9PWBzdHJpbmdgP2U6YGApLnNwbGl0KC9bXHMsXSsvKSxpPXIubGVuZ3RoO2Zvcih0PTA7dDxpO3QrKylyW3RdJiYoZT1yW3RdLnJlcGxhY2UoL1wqL2csYC4qP2ApLGVbMF09PT1gLWA/bi5za2lwcy5wdXNoKFJlZ0V4cChgXmArZS5zdWJzdHIoMSkrYCRgKSk6bi5uYW1lcy5wdXNoKFJlZ0V4cChgXmArZStgJGApKSk7Zm9yKHQ9MDt0PG4uaW5zdGFuY2VzLmxlbmd0aDt0Kyspe2xldCBlPW4uaW5zdGFuY2VzW3RdO2UuZW5hYmxlZD1uLmVuYWJsZWQoZS5uYW1lc3BhY2UpfX1mdW5jdGlvbiBvKCl7bGV0IGU9Wy4uLm4ubmFtZXMubWFwKGMpLC4uLm4uc2tpcHMubWFwKGMpLm1hcChlPT5gLWArZSldLmpvaW4oYCxgKTtyZXR1cm4gbi5lbmFibGUoYGApLGV9ZnVuY3Rpb24gcyhlKXtpZihlW2UubGVuZ3RoLTFdPT09YCpgKXJldHVybiEwO2xldCB0LHI7Zm9yKHQ9MCxyPW4uc2tpcHMubGVuZ3RoO3Q8cjt0KyspaWYobi5za2lwc1t0XS50ZXN0KGUpKXJldHVybiExO2Zvcih0PTAscj1uLm5hbWVzLmxlbmd0aDt0PHI7dCsrKWlmKG4ubmFtZXNbdF0udGVzdChlKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBjKGUpe3JldHVybiBlLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIsZS50b1N0cmluZygpLmxlbmd0aC0yKS5yZXBsYWNlKC9cLlwqXD8kLyxgKmApfWZ1bmN0aW9uIGwoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX1yZXR1cm4gbi5lbmFibGUobi5sb2FkKCkpLG59dC5leHBvcnRzPW59KSksanM9cygoKGUsdCk9PntlLmxvZz1pLGUuZm9ybWF0QXJncz1yLGUuc2F2ZT1hLGUubG9hZD1vLGUudXNlQ29sb3JzPW4sZS5zdG9yYWdlPXMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmKHdpbmRvdy5wcm9jZXNzLnR5cGU9PT1gcmVuZGVyZXJgfHx3aW5kb3cucHJvY2Vzcy5fX253anMpPyEwOnR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhlZGdlfHRyaWRlbnQpXC8oXGQrKS8pPyExOnR5cGVvZiBkb2N1bWVudDxgdWAmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuV2Via2l0QXBwZWFyYW5jZXx8dHlwZW9mIHdpbmRvdzxgdWAmJndpbmRvdy5jb25zb2xlJiYod2luZG93LmNvbnNvbGUuZmlyZWJ1Z3x8d2luZG93LmNvbnNvbGUuZXhjZXB0aW9uJiZ3aW5kb3cuY29uc29sZS50YWJsZSl8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2ZpcmVmb3hcLyhcZCspLykmJnBhcnNlSW50KFJlZ0V4cC4kMSwxMCk+PTMxfHx0eXBlb2YgbmF2aWdhdG9yPGB1YCYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9hcHBsZXdlYmtpdFwvKFxkKykvKX1mdW5jdGlvbiByKGUpe2lmKGVbMF09KHRoaXMudXNlQ29sb3JzP2AlY2A6YGApK3RoaXMubmFtZXNwYWNlKyh0aGlzLnVzZUNvbG9ycz9gICVjYDpgIGApK2VbMF0rKHRoaXMudXNlQ29sb3JzP2AlYyBgOmAgYCkrYCtgK3QuZXhwb3J0cy5odW1hbml6ZSh0aGlzLmRpZmYpLCF0aGlzLnVzZUNvbG9ycylyZXR1cm47bGV0IG49YGNvbG9yOiBgK3RoaXMuY29sb3I7ZS5zcGxpY2UoMSwwLG4sYGNvbG9yOiBpbmhlcml0YCk7bGV0IHI9MCxpPTA7ZVswXS5yZXBsYWNlKC8lW2EtekEtWiVdL2csZT0+e2UhPT1gJSVgJiYocisrLGU9PT1gJWNgJiYoaT1yKSl9KSxlLnNwbGljZShpLDAsbil9ZnVuY3Rpb24gaSguLi5lKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coLi4uZSl9ZnVuY3Rpb24gYSh0KXt0cnl7dD9lLnN0b3JhZ2Uuc2V0SXRlbShgZGVidWdgLHQpOmUuc3RvcmFnZS5yZW1vdmVJdGVtKGBkZWJ1Z2ApfWNhdGNoe319ZnVuY3Rpb24gbygpe2xldCB0O3RyeXt0PWUuc3RvcmFnZS5nZXRJdGVtKGBkZWJ1Z2ApfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWZ1bmN0aW9uIHMoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZX1jYXRjaHt9fXQuZXhwb3J0cz1BcygpKGUpO3Zhcntmb3JtYXR0ZXJzOmN9PXQuZXhwb3J0cztjLmo9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1jYXRjaChlKXtyZXR1cm5gW1VuZXhwZWN0ZWRKU09OUGFyc2VFcnJvcl06IGArZS5tZXNzYWdlfX19KSksTXM9cygoKGUsdCk9Pnt2YXIgbj1rcygpLHI9anMoKShgc29ja2V0LmlvLWNsaWVudDp1cmxgKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUsdCl7dmFyIGk9ZTt0fHw9dHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24sZT8/PXQucHJvdG9jb2wrYC8vYCt0Lmhvc3QsdHlwZW9mIGU9PWBzdHJpbmdgJiYoZS5jaGFyQXQoMCk9PT1gL2AmJihlPWUuY2hhckF0KDEpPT09YC9gP3QucHJvdG9jb2wrZTp0Lmhvc3QrZSksL14oaHR0cHM/fHdzcz8pOlwvXC8vLnRlc3QoZSl8fChyKGBwcm90b2NvbC1sZXNzIHVybCAlc2AsZSksZT10PT09dm9pZCAwP2BodHRwczovL2ArZTp0LnByb3RvY29sK2AvL2ArZSkscihgcGFyc2UgJXNgLGUpLGk9bihlKSksaS5wb3J0fHwoL14oaHR0cHx3cykkLy50ZXN0KGkucHJvdG9jb2wpP2kucG9ydD1gODBgOi9eKGh0dHB8d3MpcyQvLnRlc3QoaS5wcm90b2NvbCkmJihpLnBvcnQ9YDQ0M2ApKSxpLnBhdGg9aS5wYXRofHxgL2A7dmFyIGE9aS5ob3N0LmluZGV4T2YoYDpgKT09PS0xP2kuaG9zdDpgW2AraS5ob3N0K2BdYDtyZXR1cm4gaS5pZD1pLnByb3RvY29sK2A6Ly9gK2ErYDpgK2kucG9ydCxpLmhyZWY9aS5wcm90b2NvbCtgOi8vYCthKyh0JiZ0LnBvcnQ9PT1pLnBvcnQ/YGA6YDpgK2kucG9ydCksaX19KSksTnM9cygoKGUsdCk9Pnt2YXIgbj0xZTMscj1uKjYwLGk9cio2MCxhPWkqMjQsbz1hKjM2NS4yNTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt0fHw9e307dmFyIG49dHlwZW9mIGU7aWYobj09PWBzdHJpbmdgJiZlLmxlbmd0aD4wKXJldHVybiBzKGUpO2lmKG49PT1gbnVtYmVyYCYmaXNOYU4oZSk9PT0hMSlyZXR1cm4gdC5sb25nP2woZSk6YyhlKTt0aHJvdyBFcnJvcihgdmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD1gK0pTT04uc3RyaW5naWZ5KGUpKX07ZnVuY3Rpb24gcyhlKXtpZihlPVN0cmluZyhlKSwhKGUubGVuZ3RoPjEwMCkpe3ZhciB0PS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWMoZSk7aWYodCl7dmFyIHM9cGFyc2VGbG9hdCh0WzFdKTtzd2l0Y2goKHRbMl18fGBtc2ApLnRvTG93ZXJDYXNlKCkpe2Nhc2VgeWVhcnNgOmNhc2VgeWVhcmA6Y2FzZWB5cnNgOmNhc2VgeXJgOmNhc2VgeWA6cmV0dXJuIHMqbztjYXNlYGRheXNgOmNhc2VgZGF5YDpjYXNlYGRgOnJldHVybiBzKmE7Y2FzZWBob3Vyc2A6Y2FzZWBob3VyYDpjYXNlYGhyc2A6Y2FzZWBocmA6Y2FzZWBoYDpyZXR1cm4gcyppO2Nhc2VgbWludXRlc2A6Y2FzZWBtaW51dGVgOmNhc2VgbWluc2A6Y2FzZWBtaW5gOmNhc2VgbWA6cmV0dXJuIHMqcjtjYXNlYHNlY29uZHNgOmNhc2Vgc2Vjb25kYDpjYXNlYHNlY3NgOmNhc2Vgc2VjYDpjYXNlYHNgOnJldHVybiBzKm47Y2FzZWBtaWxsaXNlY29uZHNgOmNhc2VgbWlsbGlzZWNvbmRgOmNhc2VgbXNlY3NgOmNhc2VgbXNlY2A6Y2FzZWBtc2A6cmV0dXJuIHM7ZGVmYXVsdDpyZXR1cm59fX19ZnVuY3Rpb24gYyhlKXtyZXR1cm4gZT49YT9NYXRoLnJvdW5kKGUvYSkrYGRgOmU+PWk/TWF0aC5yb3VuZChlL2kpK2BoYDplPj1yP01hdGgucm91bmQoZS9yKStgbWA6ZT49bj9NYXRoLnJvdW5kKGUvbikrYHNgOmUrYG1zYH1mdW5jdGlvbiBsKGUpe3JldHVybiB1KGUsYSxgZGF5YCl8fHUoZSxpLGBob3VyYCl8fHUoZSxyLGBtaW51dGVgKXx8dShlLG4sYHNlY29uZGApfHxlK2AgbXNgfWZ1bmN0aW9uIHUoZSx0LG4pe2lmKCEoZTx0KSlyZXR1cm4gZTx0KjEuNT9NYXRoLmZsb29yKGUvdCkrYCBgK246TWF0aC5jZWlsKGUvdCkrYCBgK24rYHNgfX0pKSxQcz1zKCgoZSx0KT0+e2U9dC5leHBvcnRzPXIuZGVidWc9ci5kZWZhdWx0PXIsZS5jb2VyY2U9YyxlLmRpc2FibGU9byxlLmVuYWJsZT1hLGUuZW5hYmxlZD1zLGUuaHVtYW5pemU9TnMoKSxlLmluc3RhbmNlcz1bXSxlLm5hbWVzPVtdLGUuc2tpcHM9W10sZS5mb3JtYXR0ZXJzPXt9O2Z1bmN0aW9uIG4odCl7dmFyIG49MCxyO2ZvcihyIGluIHQpbj0objw8NSktbit0LmNoYXJDb2RlQXQociksbnw9MDtyZXR1cm4gZS5jb2xvcnNbTWF0aC5hYnMobiklZS5jb2xvcnMubGVuZ3RoXX1mdW5jdGlvbiByKHQpe3ZhciByO2Z1bmN0aW9uIGEoKXtpZihhLmVuYWJsZWQpe3ZhciB0PWEsbj0rbmV3IERhdGU7dC5kaWZmPW4tKHJ8fG4pLHQucHJldj1yLHQuY3Vycj1uLHI9bjtmb3IodmFyIGk9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksbz0wO288aS5sZW5ndGg7bysrKWlbb109YXJndW1lbnRzW29dO2lbMF09ZS5jb2VyY2UoaVswXSksdHlwZW9mIGlbMF0hPWBzdHJpbmdgJiZpLnVuc2hpZnQoYCVPYCk7dmFyIHM9MDtpWzBdPWlbMF0ucmVwbGFjZSgvJShbYS16QS1aJV0pL2csZnVuY3Rpb24obixyKXtpZihuPT09YCUlYClyZXR1cm4gbjtzKys7dmFyIGE9ZS5mb3JtYXR0ZXJzW3JdO2lmKHR5cGVvZiBhPT1gZnVuY3Rpb25gKXt2YXIgbz1pW3NdO249YS5jYWxsKHQsbyksaS5zcGxpY2UocywxKSxzLS19cmV0dXJuIG59KSxlLmZvcm1hdEFyZ3MuY2FsbCh0LGkpLChhLmxvZ3x8ZS5sb2d8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSkpLmFwcGx5KHQsaSl9fXJldHVybiBhLm5hbWVzcGFjZT10LGEuZW5hYmxlZD1lLmVuYWJsZWQodCksYS51c2VDb2xvcnM9ZS51c2VDb2xvcnMoKSxhLmNvbG9yPW4odCksYS5kZXN0cm95PWksdHlwZW9mIGUuaW5pdD09YGZ1bmN0aW9uYCYmZS5pbml0KGEpLGUuaW5zdGFuY2VzLnB1c2goYSksYX1mdW5jdGlvbiBpKCl7dmFyIHQ9ZS5pbnN0YW5jZXMuaW5kZXhPZih0aGlzKTtyZXR1cm4gdD09PS0xPyExOihlLmluc3RhbmNlcy5zcGxpY2UodCwxKSwhMCl9ZnVuY3Rpb24gYSh0KXtlLnNhdmUodCksZS5uYW1lcz1bXSxlLnNraXBzPVtdO3ZhciBuLHI9KHR5cGVvZiB0PT1gc3RyaW5nYD90OmBgKS5zcGxpdCgvW1xzLF0rLyksaT1yLmxlbmd0aDtmb3Iobj0wO248aTtuKyspcltuXSYmKHQ9cltuXS5yZXBsYWNlKC9cKi9nLGAuKj9gKSx0WzBdPT09YC1gP2Uuc2tpcHMucHVzaChSZWdFeHAoYF5gK3Quc3Vic3RyKDEpK2AkYCkpOmUubmFtZXMucHVzaChSZWdFeHAoYF5gK3QrYCRgKSkpO2ZvcihuPTA7bjxlLmluc3RhbmNlcy5sZW5ndGg7bisrKXt2YXIgYT1lLmluc3RhbmNlc1tuXTthLmVuYWJsZWQ9ZS5lbmFibGVkKGEubmFtZXNwYWNlKX19ZnVuY3Rpb24gbygpe2UuZW5hYmxlKGBgKX1mdW5jdGlvbiBzKHQpe2lmKHRbdC5sZW5ndGgtMV09PT1gKmApcmV0dXJuITA7dmFyIG4scjtmb3Iobj0wLHI9ZS5za2lwcy5sZW5ndGg7bjxyO24rKylpZihlLnNraXBzW25dLnRlc3QodCkpcmV0dXJuITE7Zm9yKG49MCxyPWUubmFtZXMubGVuZ3RoO248cjtuKyspaWYoZS5uYW1lc1tuXS50ZXN0KHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvcj9lLnN0YWNrfHxlLm1lc3NhZ2U6ZX19KSksRnM9cygoKGUsdCk9PntlPXQuZXhwb3J0cz1QcygpLGUubG9nPWksZS5mb3JtYXRBcmdzPXIsZS5zYXZlPWEsZS5sb2FkPW8sZS51c2VDb2xvcnM9bixlLnN0b3JhZ2U9dHlwZW9mIGNocm9tZTxgdWAmJmNocm9tZS5zdG9yYWdlIT09dm9pZCAwP2Nocm9tZS5zdG9yYWdlLmxvY2FsOnMoKSxlLmNvbG9ycz1gIzAwMDBDQy4jMDAwMEZGLiMwMDMzQ0MuIzAwMzNGRi4jMDA2NkNDLiMwMDY2RkYuIzAwOTlDQy4jMDA5OUZGLiMwMENDMDAuIzAwQ0MzMy4jMDBDQzY2LiMwMENDOTkuIzAwQ0NDQy4jMDBDQ0ZGLiMzMzAwQ0MuIzMzMDBGRi4jMzMzM0NDLiMzMzMzRkYuIzMzNjZDQy4jMzM2NkZGLiMzMzk5Q0MuIzMzOTlGRi4jMzNDQzAwLiMzM0NDMzMuIzMzQ0M2Ni4jMzNDQzk5LiMzM0NDQ0MuIzMzQ0NGRi4jNjYwMENDLiM2NjAwRkYuIzY2MzNDQy4jNjYzM0ZGLiM2NkNDMDAuIzY2Q0MzMy4jOTkwMENDLiM5OTAwRkYuIzk5MzNDQy4jOTkzM0ZGLiM5OUNDMDAuIzk5Q0MzMy4jQ0MwMDAwLiNDQzAwMzMuI0NDMDA2Ni4jQ0MwMDk5LiNDQzAwQ0MuI0NDMDBGRi4jQ0MzMzAwLiNDQzMzMzMuI0NDMzM2Ni4jQ0MzMzk5LiNDQzMzQ0MuI0NDMzNGRi4jQ0M2NjAwLiNDQzY2MzMuI0NDOTkwMC4jQ0M5OTMzLiNDQ0NDMDAuI0NDQ0MzMy4jRkYwMDAwLiNGRjAwMzMuI0ZGMDA2Ni4jRkYwMDk5LiNGRjAwQ0MuI0ZGMDBGRi4jRkYzMzAwLiNGRjMzMzMuI0ZGMzM2Ni4jRkYzMzk5LiNGRjMzQ0MuI0ZGMzNGRi4jRkY2NjAwLiNGRjY2MzMuI0ZGOTkwMC4jRkY5OTMzLiNGRkNDMDAuI0ZGQ0MzM2Auc3BsaXQoYC5gKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudHlwZT09PWByZW5kZXJlcmA/ITA6dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKGVkZ2V8dHJpZGVudClcLyhcZCspLyk/ITE6dHlwZW9mIGRvY3VtZW50PGB1YCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5XZWJraXRBcHBlYXJhbmNlfHx0eXBlb2Ygd2luZG93PGB1YCYmd2luZG93LmNvbnNvbGUmJih3aW5kb3cuY29uc29sZS5maXJlYnVnfHx3aW5kb3cuY29uc29sZS5leGNlcHRpb24mJndpbmRvdy5jb25zb2xlLnRhYmxlKXx8dHlwZW9mIG5hdmlnYXRvcjxgdWAmJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvZmlyZWZveFwvKFxkKykvKSYmcGFyc2VJbnQoUmVnRXhwLiQxLDEwKT49MzF8fHR5cGVvZiBuYXZpZ2F0b3I8YHVgJiZuYXZpZ2F0b3IudXNlckFnZW50JiZuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkubWF0Y2goL2FwcGxld2Via2l0XC8oXGQrKS8pfWUuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2goZSl7cmV0dXJuYFtVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiBgK2UubWVzc2FnZX19O2Z1bmN0aW9uIHIodCl7dmFyIG49dGhpcy51c2VDb2xvcnM7aWYodFswXT0obj9gJWNgOmBgKSt0aGlzLm5hbWVzcGFjZSsobj9gICVjYDpgIGApK3RbMF0rKG4/YCVjIGA6YCBgKStgK2ArZS5odW1hbml6ZSh0aGlzLmRpZmYpLG4pe3ZhciByPWBjb2xvcjogYCt0aGlzLmNvbG9yO3Quc3BsaWNlKDEsMCxyLGBjb2xvcjogaW5oZXJpdGApO3ZhciBpPTAsYT0wO3RbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLGZ1bmN0aW9uKGUpe2UhPT1gJSVgJiYoaSsrLGU9PT1gJWNgJiYoYT1pKSl9KSx0LnNwbGljZShhLDAscil9fWZ1bmN0aW9uIGkoKXtyZXR1cm4gdHlwZW9mIGNvbnNvbGU9PWBvYmplY3RgJiZjb25zb2xlLmxvZyYmRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZS5sb2csY29uc29sZSxhcmd1bWVudHMpfWZ1bmN0aW9uIGEodCl7dHJ5e3Q9PW51bGw/ZS5zdG9yYWdlLnJlbW92ZUl0ZW0oYGRlYnVnYCk6ZS5zdG9yYWdlLmRlYnVnPXR9Y2F0Y2h7fX1mdW5jdGlvbiBvKCl7dmFyIHQ7dHJ5e3Q9ZS5zdG9yYWdlLmRlYnVnfWNhdGNoe31yZXR1cm4hdCYmdHlwZW9mIHByb2Nlc3M8YHVgJiZgZW52YGluIHByb2Nlc3MmJih0PXt9LkRFQlVHKSx0fWUuZW5hYmxlKG8oKSk7ZnVuY3Rpb24gcygpe3RyeXtyZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZX1jYXRjaHt9fX0pKSxJcz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gbi5sZW5ndGg9PT0wJiZkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzfSxuLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKGUpe3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9O2Zvcih2YXIgdD1BcnJheShhcmd1bWVudHMubGVuZ3RoLTEpLG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXSxyPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl0W3ItMV09YXJndW1lbnRzW3JdO2lmKG4pe249bi5zbGljZSgwKTtmb3IodmFyIHI9MCxpPW4ubGVuZ3RoO3I8aTsrK3IpbltyXS5hcHBseSh0aGlzLHQpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3N8fHt9LHRoaXMuX2NhbGxiYWNrc1tgJGArZV18fFtdfSxuLnByb3RvdHlwZS5oYXNMaXN0ZW5lcnM9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxpc3RlbmVycyhlKS5sZW5ndGh9fSkpLExzPXMoKChlLHQpPT57dmFyIG49e30udG9TdHJpbmc7dC5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwoZSk9PWBbb2JqZWN0IEFycmF5XWB9fSkpLFJzPXMoKChlLHQpPT57dC5leHBvcnRzPWE7dmFyIG49dHlwZW9mIEJ1ZmZlcj09YGZ1bmN0aW9uYCYmdHlwZW9mIEJ1ZmZlci5pc0J1ZmZlcj09YGZ1bmN0aW9uYCxyPXR5cGVvZiBBcnJheUJ1ZmZlcj09YGZ1bmN0aW9uYCxpPWZ1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3PT1gZnVuY3Rpb25gP0FycmF5QnVmZmVyLmlzVmlldyhlKTplLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyfTtmdW5jdGlvbiBhKGUpe3JldHVybiBuJiZCdWZmZXIuaXNCdWZmZXIoZSl8fHImJihlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkoZSkpfX0pKSx6cz1zKChlPT57dmFyIHQ9THMoKSxuPVJzKCkscj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGk9dHlwZW9mIEJsb2I9PWBmdW5jdGlvbmB8fHR5cGVvZiBCbG9iPGB1YCYmci5jYWxsKEJsb2IpPT09YFtvYmplY3QgQmxvYkNvbnN0cnVjdG9yXWAsYT10eXBlb2YgRmlsZT09YGZ1bmN0aW9uYHx8dHlwZW9mIEZpbGU8YHVgJiZyLmNhbGwoRmlsZSk9PT1gW29iamVjdCBGaWxlQ29uc3RydWN0b3JdYDtlLmRlY29uc3RydWN0UGFja2V0PWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49ZS5kYXRhLHI9ZTtyZXR1cm4gci5kYXRhPW8obix0KSxyLmF0dGFjaG1lbnRzPXQubGVuZ3RoLHtwYWNrZXQ6cixidWZmZXJzOnR9fTtmdW5jdGlvbiBvKGUscil7aWYoIWUpcmV0dXJuIGU7aWYobihlKSl7dmFyIGk9e19wbGFjZWhvbGRlcjohMCxudW06ci5sZW5ndGh9O3JldHVybiByLnB1c2goZSksaX1lbHNlIGlmKHQoZSkpe2Zvcih2YXIgYT1BcnJheShlLmxlbmd0aCkscz0wO3M8ZS5sZW5ndGg7cysrKWFbc109byhlW3NdLHIpO3JldHVybiBhfWVsc2UgaWYodHlwZW9mIGU9PWBvYmplY3RgJiYhKGUgaW5zdGFuY2VvZiBEYXRlKSl7dmFyIGE9e307Zm9yKHZhciBjIGluIGUpYVtjXT1vKGVbY10scik7cmV0dXJuIGF9cmV0dXJuIGV9ZS5yZWNvbnN0cnVjdFBhY2tldD1mdW5jdGlvbihlLHQpe3JldHVybiBlLmRhdGE9cyhlLmRhdGEsdCksZS5hdHRhY2htZW50cz12b2lkIDAsZX07ZnVuY3Rpb24gcyhlLG4pe2lmKCFlKXJldHVybiBlO2lmKGUmJmUuX3BsYWNlaG9sZGVyPT09ITApe2lmKHR5cGVvZiBlLm51bT09YG51bWJlcmAmJmUubnVtPj0wJiZlLm51bTxuLmxlbmd0aClyZXR1cm4gbltlLm51bV07dGhyb3cgRXJyb3IoYGlsbGVnYWwgYXR0YWNobWVudHNgKX1lbHNlIGlmKHQoZSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXT1zKGVbcl0sbik7ZWxzZSBpZih0eXBlb2YgZT09YG9iamVjdGApZm9yKHZhciBpIGluIGUpZVtpXT1zKGVbaV0sbik7cmV0dXJuIGV9ZS5yZW1vdmVCbG9icz1mdW5jdGlvbihlLHIpe2Z1bmN0aW9uIG8oZSxsLHUpe2lmKCFlKXJldHVybiBlO2lmKGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSl7cysrO3ZhciBkPW5ldyBGaWxlUmVhZGVyO2Qub25sb2FkPWZ1bmN0aW9uKCl7dT91W2xdPXRoaXMucmVzdWx0OmM9dGhpcy5yZXN1bHQsLS1zfHxyKGMpfSxkLnJlYWRBc0FycmF5QnVmZmVyKGUpfWVsc2UgaWYodChlKSlmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKylvKGVbZl0sZixlKTtlbHNlIGlmKHR5cGVvZiBlPT1gb2JqZWN0YCYmIW4oZSkpZm9yKHZhciBwIGluIGUpbyhlW3BdLHAsZSl9dmFyIHM9MCxjPWU7byhjKSxzfHxyKGMpfX0pKSxCcz1zKChlPT57dmFyIHQ9RnMoKShgc29ja2V0LmlvLXBhcnNlcmApLG49SXMoKSxyPXpzKCksaT1McygpLGE9UnMoKTtlLnByb3RvY29sPTQsZS50eXBlcz1bYENPTk5FQ1RgLGBESVNDT05ORUNUYCxgRVZFTlRgLGBBQ0tgLGBFUlJPUmAsYEJJTkFSWV9FVkVOVGAsYEJJTkFSWV9BQ0tgXSxlLkNPTk5FQ1Q9MCxlLkRJU0NPTk5FQ1Q9MSxlLkVWRU5UPTIsZS5BQ0s9MyxlLkVSUk9SPTQsZS5CSU5BUllfRVZFTlQ9NSxlLkJJTkFSWV9BQ0s9NixlLkVuY29kZXI9byxlLkRlY29kZXI9ZDtmdW5jdGlvbiBvKCl7fXZhciBzPWUuRVJST1IrYCJlbmNvZGUgZXJyb3IiYDtvLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24obixyKXt0KGBlbmNvZGluZyBwYWNrZXQgJWpgLG4pLGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGU/dShuLHIpOnIoW2MobildKX07ZnVuY3Rpb24gYyhuKXt2YXIgcj1gYCtuLnR5cGU7aWYoKGUuQklOQVJZX0VWRU5UPT09bi50eXBlfHxlLkJJTkFSWV9BQ0s9PT1uLnR5cGUpJiYocis9bi5hdHRhY2htZW50cytgLWApLG4ubnNwJiZuLm5zcCE9PWAvYCYmKHIrPW4ubnNwK2AsYCksbi5pZCE9bnVsbCYmKHIrPW4uaWQpLG4uZGF0YSE9bnVsbCl7dmFyIGk9bChuLmRhdGEpO2lmKGkhPT0hMSlyKz1pO2Vsc2UgcmV0dXJuIHN9cmV0dXJuIHQoYGVuY29kZWQgJWogYXMgJXNgLG4scikscn1mdW5jdGlvbiBsKGUpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHUoZSx0KXtmdW5jdGlvbiBuKGUpe3ZhciBuPXIuZGVjb25zdHJ1Y3RQYWNrZXQoZSksaT1jKG4ucGFja2V0KSxhPW4uYnVmZmVyczthLnVuc2hpZnQoaSksdChhKX1yLnJlbW92ZUJsb2JzKGUsbil9ZnVuY3Rpb24gZCgpe3RoaXMucmVjb25zdHJ1Y3Rvcj1udWxsfW4oZC5wcm90b3R5cGUpLGQucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt2YXIgbjtpZih0eXBlb2YgdD09YHN0cmluZ2Ape2lmKHRoaXMucmVjb25zdHJ1Y3Rvcil0aHJvdyBFcnJvcihgZ290IHBsYWludGV4dCBkYXRhIHdoZW4gcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtuPWYodCksZS5CSU5BUllfRVZFTlQ9PT1uLnR5cGV8fGUuQklOQVJZX0FDSz09PW4udHlwZT8odGhpcy5yZWNvbnN0cnVjdG9yPW5ldyBtKG4pLHRoaXMucmVjb25zdHJ1Y3Rvci5yZWNvblBhY2suYXR0YWNobWVudHM9PT0wJiZ0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTp0aGlzLmVtaXQoYGRlY29kZWRgLG4pfWVsc2UgaWYoYSh0KXx8dC5iYXNlNjQpaWYodGhpcy5yZWNvbnN0cnVjdG9yKW49dGhpcy5yZWNvbnN0cnVjdG9yLnRha2VCaW5hcnlEYXRhKHQpLG4mJih0aGlzLnJlY29uc3RydWN0b3I9bnVsbCx0aGlzLmVtaXQoYGRlY29kZWRgLG4pKTtlbHNlIHRocm93IEVycm9yKGBnb3QgYmluYXJ5IGRhdGEgd2hlbiBub3QgcmVjb25zdHJ1Y3RpbmcgYSBwYWNrZXRgKTtlbHNlIHRocm93IEVycm9yKGBVbmtub3duIHR5cGU6IGArdCl9O2Z1bmN0aW9uIGYobil7dmFyIHI9MCxhPXt0eXBlOk51bWJlcihuLmNoYXJBdCgwKSl9O2lmKGUudHlwZXNbYS50eXBlXT09bnVsbClyZXR1cm4gaChgdW5rbm93biBwYWNrZXQgdHlwZSBgK2EudHlwZSk7aWYoZS5CSU5BUllfRVZFTlQ9PT1hLnR5cGV8fGUuQklOQVJZX0FDSz09PWEudHlwZSl7Zm9yKHZhciBvPXIrMTtuLmNoYXJBdCgrK3IpIT09YC1gJiZyIT1uLmxlbmd0aDspO3ZhciBzPW4uc3Vic3RyaW5nKG8scik7aWYocyE9TnVtYmVyKHMpfHxuLmNoYXJBdChyKSE9PWAtYCl0aHJvdyBFcnJvcihgSWxsZWdhbCBhdHRhY2htZW50c2ApO2EuYXR0YWNobWVudHM9TnVtYmVyKHMpfWlmKG4uY2hhckF0KHIrMSk9PT1gL2Ape2Zvcih2YXIgbz1yKzE7KytyOyl7dmFyIGM9bi5jaGFyQXQocik7aWYoYz09PWAsYHx8cj09PW4ubGVuZ3RoKWJyZWFrfWEubnNwPW4uc3Vic3RyaW5nKG8scil9ZWxzZSBhLm5zcD1gL2A7dmFyIGw9bi5jaGFyQXQocisxKTtpZihsIT09YGAmJk51bWJlcihsKT09bCl7Zm9yKHZhciBvPXIrMTsrK3I7KXt2YXIgYz1uLmNoYXJBdChyKTtpZihjPT1udWxsfHxOdW1iZXIoYykhPWMpey0tcjticmVha31pZihyPT09bi5sZW5ndGgpYnJlYWt9YS5pZD1OdW1iZXIobi5zdWJzdHJpbmcobyxyKzEpKX1pZihuLmNoYXJBdCgrK3IpKXt2YXIgdT1wKG4uc3Vic3RyKHIpKTtpZih1IT09ITEmJihhLnR5cGU9PT1lLkVSUk9SfHxpKHUpKSlhLmRhdGE9dTtlbHNlIHJldHVybiBoKGBpbnZhbGlkIHBheWxvYWRgKX1yZXR1cm4gdChgZGVjb2RlZCAlcyBhcyAlamAsbixhKSxhfWZ1bmN0aW9uIHAoZSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKGUpfWNhdGNoe3JldHVybiExfX1kLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5yZWNvbnN0cnVjdG9yJiZ0aGlzLnJlY29uc3RydWN0b3IuZmluaXNoZWRSZWNvbnN0cnVjdGlvbigpfTtmdW5jdGlvbiBtKGUpe3RoaXMucmVjb25QYWNrPWUsdGhpcy5idWZmZXJzPVtdfW0ucHJvdG90eXBlLnRha2VCaW5hcnlEYXRhPWZ1bmN0aW9uKGUpe2lmKHRoaXMuYnVmZmVycy5wdXNoKGUpLHRoaXMuYnVmZmVycy5sZW5ndGg9PT10aGlzLnJlY29uUGFjay5hdHRhY2htZW50cyl7dmFyIHQ9ci5yZWNvbnN0cnVjdFBhY2tldCh0aGlzLnJlY29uUGFjayx0aGlzLmJ1ZmZlcnMpO3JldHVybiB0aGlzLmZpbmlzaGVkUmVjb25zdHJ1Y3Rpb24oKSx0fXJldHVybiBudWxsfSxtLnByb3RvdHlwZS5maW5pc2hlZFJlY29uc3RydWN0aW9uPWZ1bmN0aW9uKCl7dGhpcy5yZWNvblBhY2s9bnVsbCx0aGlzLmJ1ZmZlcnM9W119O2Z1bmN0aW9uIGgodCl7cmV0dXJue3R5cGU6ZS5FUlJPUixkYXRhOmBwYXJzZXIgZXJyb3I6IGArdH19fSkpLFZzPXMoKChlLHQpPT57dHJ5e3QuZXhwb3J0cz10eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiZgd2l0aENyZWRlbnRpYWxzYGluIG5ldyBYTUxIdHRwUmVxdWVzdH1jYXRjaHt0LmV4cG9ydHM9ITF9fSkpLEhzPXMoKChlLHQpPT57dC5leHBvcnRzPShmdW5jdGlvbigpe3JldHVybiB0eXBlb2Ygc2VsZjxgdWA/c2VsZjp0eXBlb2Ygd2luZG93PGB1YD93aW5kb3c6RnVuY3Rpb24oYHJldHVybiB0aGlzYCkoKX0pKCl9KSksVXM9cygoKGUsdCk9Pnt2YXIgbj1WcygpLHI9SHMoKTt0LmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS54ZG9tYWluLGk9ZS54c2NoZW1lLGE9ZS5lbmFibGVzWERSO3RyeXtpZih0eXBlb2YgWE1MSHR0cFJlcXVlc3Q8YHVgJiYoIXR8fG4pKXJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3R9Y2F0Y2h7fXRyeXtpZih0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhaSYmYSlyZXR1cm4gbmV3IFhEb21haW5SZXF1ZXN0fWNhdGNoe31pZighdCl0cnl7cmV0dXJuIG5ldyByW1tgQWN0aXZlYCxgT2JqZWN0YF0uam9pbihgWGApXShgTWljcm9zb2Z0LlhNTEhUVFBgKX1jYXRjaHt9fX0pKSxXcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7dmFyIHQ9W10sbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Zvcih2YXIgciBpbiBlKW4uY2FsbChlLHIpJiZ0LnB1c2gocik7cmV0dXJuIHR9fSkpLEdzPXMoKChlLHQpPT57dmFyIG49THMoKSxyPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaT10eXBlb2YgQmxvYj09YGZ1bmN0aW9uYHx8dHlwZW9mIEJsb2I8YHVgJiZyLmNhbGwoQmxvYik9PT1gW29iamVjdCBCbG9iQ29uc3RydWN0b3JdYCxhPXR5cGVvZiBGaWxlPT1gZnVuY3Rpb25gfHx0eXBlb2YgRmlsZTxgdWAmJnIuY2FsbChGaWxlKT09PWBbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl1gO3QuZXhwb3J0cz1vO2Z1bmN0aW9uIG8oZSl7aWYoIWV8fHR5cGVvZiBlIT1gb2JqZWN0YClyZXR1cm4hMTtpZihuKGUpKXtmb3IodmFyIHQ9MCxyPWUubGVuZ3RoO3Q8cjt0KyspaWYobyhlW3RdKSlyZXR1cm4hMDtyZXR1cm4hMX1pZih0eXBlb2YgQnVmZmVyPT1gZnVuY3Rpb25gJiZCdWZmZXIuaXNCdWZmZXImJkJ1ZmZlci5pc0J1ZmZlcihlKXx8dHlwZW9mIEFycmF5QnVmZmVyPT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGkmJmUgaW5zdGFuY2VvZiBCbG9ifHxhJiZlIGluc3RhbmNlb2YgRmlsZSlyZXR1cm4hMDtpZihlLnRvSlNPTiYmdHlwZW9mIGUudG9KU09OPT1gZnVuY3Rpb25gJiZhcmd1bWVudHMubGVuZ3RoPT09MSlyZXR1cm4gbyhlLnRvSlNPTigpLCEwKTtmb3IodmFyIHMgaW4gZSlpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxzKSYmbyhlW3NdKSlyZXR1cm4hMDtyZXR1cm4hMX19KSksS3M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYnl0ZUxlbmd0aDtpZih0fHw9MCxufHw9cixlLnNsaWNlKXJldHVybiBlLnNsaWNlKHQsbik7aWYodDwwJiYodCs9ciksbjwwJiYobis9ciksbj5yJiYobj1yKSx0Pj1yfHx0Pj1ufHxyPT09MClyZXR1cm4gbmV3IEFycmF5QnVmZmVyKDApO2Zvcih2YXIgaT1uZXcgVWludDhBcnJheShlKSxhPW5ldyBVaW50OEFycmF5KG4tdCksbz10LHM9MDtvPG47bysrLHMrKylhW3NdPWlbb107cmV0dXJuIGEuYnVmZmVyfX0pKSxxcz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1uO2Z1bmN0aW9uIG4oZSx0LG4pe3ZhciBpPSExO3JldHVybiBufHw9cixhLmNvdW50PWUsZT09PTA/dCgpOmE7ZnVuY3Rpb24gYShlLHIpe2lmKGEuY291bnQ8PTApdGhyb3cgRXJyb3IoYGFmdGVyIGNhbGxlZCB0b28gbWFueSB0aW1lc2ApOy0tYS5jb3VudCxlPyhpPSEwLHQoZSksdD1uKTphLmNvdW50PT09MCYmIWkmJnQobnVsbCxyKX19ZnVuY3Rpb24gcigpe319KSksSnM9cygoKGUsdCk9Pnt2YXIgbj1TdHJpbmcuZnJvbUNoYXJDb2RlO2Z1bmN0aW9uIHIoZSl7Zm9yKHZhciB0PVtdLG49MCxyPWUubGVuZ3RoLGksYTtuPHI7KWk9ZS5jaGFyQ29kZUF0KG4rKyksaT49NTUyOTYmJmk8PTU2MzE5JiZuPHI/KGE9ZS5jaGFyQ29kZUF0KG4rKyksKGEmNjQ1MTIpPT01NjMyMD90LnB1c2goKChpJjEwMjMpPDwxMCkrKGEmMTAyMykrNjU1MzYpOih0LnB1c2goaSksbi0tKSk6dC5wdXNoKGkpO3JldHVybiB0fWZ1bmN0aW9uIGkoZSl7Zm9yKHZhciB0PWUubGVuZ3RoLHI9LTEsaSxhPWBgOysrcjx0OylpPWVbcl0saT42NTUzNSYmKGktPTY1NTM2LGErPW4oaT4+PjEwJjEwMjN8NTUyOTYpLGk9NTYzMjB8aSYxMDIzKSxhKz1uKGkpO3JldHVybiBhfWZ1bmN0aW9uIGEoZSx0KXtpZihlPj01NTI5NiYmZTw9NTczNDMpe2lmKHQpdGhyb3cgRXJyb3IoYExvbmUgc3Vycm9nYXRlIFUrYCtlLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpK2AgaXMgbm90IGEgc2NhbGFyIHZhbHVlYCk7cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gbyhlLHQpe3JldHVybiBuKGU+PnQmNjN8MTI4KX1mdW5jdGlvbiBzKGUsdCl7aWYoIShlJjQyOTQ5NjcxNjgpKXJldHVybiBuKGUpO3ZhciByPWBgO3JldHVybiBlJjQyOTQ5NjUyNDg/ZSY0Mjk0OTAxNzYwP2UmNDI5Mjg3MDE0NHx8KHI9bihlPj4xOCY3fDI0MCkscis9byhlLDEyKSxyKz1vKGUsNikpOihhKGUsdCl8fChlPTY1NTMzKSxyPW4oZT4+MTImMTV8MjI0KSxyKz1vKGUsNikpOnI9bihlPj42JjMxfDE5Mikscis9bihlJjYzfDEyOCkscn1mdW5jdGlvbiBjKGUsdCl7dHx8PXt9O2Zvcih2YXIgbj0hMSE9PXQuc3RyaWN0LGk9cihlKSxhPWkubGVuZ3RoLG89LTEsYyxsPWBgOysrbzxhOyljPWlbb10sbCs9cyhjLG4pO3JldHVybiBsfWZ1bmN0aW9uIGwoKXtpZihwPj1mKXRocm93IEVycm9yKGBJbnZhbGlkIGJ5dGUgaW5kZXhgKTt2YXIgZT1kW3BdJjI1NTtpZihwKyssKGUmMTkyKT09MTI4KXJldHVybiBlJjYzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9ZnVuY3Rpb24gdShlKXt2YXIgdCxuLHIsaSxvO2lmKHA+Zil0aHJvdyBFcnJvcihgSW52YWxpZCBieXRlIGluZGV4YCk7aWYocD09ZilyZXR1cm4hMTtpZih0PWRbcF0mMjU1LHArKywhKHQmMTI4KSlyZXR1cm4gdDtpZigodCYyMjQpPT0xOTIpe2lmKG49bCgpLG89KHQmMzEpPDw2fG4sbz49MTI4KXJldHVybiBvO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQwKT09MjI0KXtpZihuPWwoKSxyPWwoKSxvPSh0JjE1KTw8MTJ8bjw8NnxyLG8+PTIwNDgpcmV0dXJuIGEobyxlKT9vOjY1NTMzO3Rocm93IEVycm9yKGBJbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlYCl9aWYoKHQmMjQ4KT09MjQwJiYobj1sKCkscj1sKCksaT1sKCksbz0odCY3KTw8MTh8bjw8MTJ8cjw8NnxpLG8+PTY1NTM2JiZvPD0xMTE0MTExKSlyZXR1cm4gbzt0aHJvdyBFcnJvcihgSW52YWxpZCBVVEYtOCBkZXRlY3RlZGApfXZhciBkLGYscDtmdW5jdGlvbiBtKGUsdCl7dHx8PXt9O3ZhciBuPSExIT09dC5zdHJpY3Q7ZD1yKGUpLGY9ZC5sZW5ndGgscD0wO2Zvcih2YXIgYT1bXSxvOyhvPXUobikpIT09ITE7KWEucHVzaChvKTtyZXR1cm4gaShhKX10LmV4cG9ydHM9e3ZlcnNpb246YDIuMS4yYCxlbmNvZGU6YyxkZWNvZGU6bX19KSksWXM9cygoZT0+eyhmdW5jdGlvbih0KXtlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgbj1uZXcgVWludDhBcnJheShlKSxyLGk9bi5sZW5ndGgsYT1gYDtmb3Iocj0wO3I8aTtyKz0zKWErPXRbbltyXT4+Ml0sYSs9dFsobltyXSYzKTw8NHxuW3IrMV0+PjRdLGErPXRbKG5bcisxXSYxNSk8PDJ8bltyKzJdPj42XSxhKz10W25bcisyXSY2M107cmV0dXJuIGklMz09Mj9hPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkrYD1gOmklMz09MSYmKGE9YS5zdWJzdHJpbmcoMCxhLmxlbmd0aC0yKStgPT1gKSxhfSxlLmRlY29kZT1mdW5jdGlvbihlKXt2YXIgbj1lLmxlbmd0aCouNzUscj1lLmxlbmd0aCxpLGE9MCxvLHMsYyxsO2VbZS5sZW5ndGgtMV09PT1gPWAmJihuLS0sZVtlLmxlbmd0aC0yXT09PWA9YCYmbi0tKTt2YXIgdT1uZXcgQXJyYXlCdWZmZXIobiksZD1uZXcgVWludDhBcnJheSh1KTtmb3IoaT0wO2k8cjtpKz00KW89dC5pbmRleE9mKGVbaV0pLHM9dC5pbmRleE9mKGVbaSsxXSksYz10LmluZGV4T2YoZVtpKzJdKSxsPXQuaW5kZXhPZihlW2krM10pLGRbYSsrXT1vPDwyfHM+PjQsZFthKytdPShzJjE1KTw8NHxjPj4yLGRbYSsrXT0oYyYzKTw8NnxsJjYzO3JldHVybiB1fX0pKGBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvYCl9KSksWHM9cygoKGUsdCk9Pnt2YXIgbj1uPT09dm9pZCAwP3R5cGVvZiBXZWJLaXRCbG9iQnVpbGRlcjxgdWA/V2ViS2l0QmxvYkJ1aWxkZXI6dHlwZW9mIE1TQmxvYkJ1aWxkZXI8YHVgP01TQmxvYkJ1aWxkZXI6dHlwZW9mIE1vekJsb2JCdWlsZGVyPGB1YD9Nb3pCbG9iQnVpbGRlcjohMTpuLHI9KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQmxvYihbYGhpYF0pLnNpemU9PT0yfWNhdGNoe3JldHVybiExfX0pKCksaT1yJiYoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIG5ldyBCbG9iKFtuZXcgVWludDhBcnJheShbMSwyXSldKS5zaXplPT09Mn1jYXRjaHtyZXR1cm4hMX19KSgpLGE9biYmbi5wcm90b3R5cGUuYXBwZW5kJiZuLnByb3RvdHlwZS5nZXRCbG9iO2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGUubWFwKGZ1bmN0aW9uKGUpe2lmKGUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpe3ZhciB0PWUuYnVmZmVyO2lmKGUuYnl0ZUxlbmd0aCE9PXQuYnl0ZUxlbmd0aCl7dmFyIG49bmV3IFVpbnQ4QXJyYXkoZS5ieXRlTGVuZ3RoKTtuLnNldChuZXcgVWludDhBcnJheSh0LGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpKSx0PW4uYnVmZmVyfXJldHVybiB0fXJldHVybiBlfSl9ZnVuY3Rpb24gcyhlLHQpe3R8fD17fTt2YXIgcj1uZXcgbjtyZXR1cm4gbyhlKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IuYXBwZW5kKGUpfSksdC50eXBlP3IuZ2V0QmxvYih0LnR5cGUpOnIuZ2V0QmxvYigpfWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gbmV3IEJsb2IobyhlKSx0fHx7fSl9dHlwZW9mIEJsb2I8YHVgJiYocy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUsYy5wcm90b3R5cGU9QmxvYi5wcm90b3R5cGUpLHQuZXhwb3J0cz0oZnVuY3Rpb24oKXtpZihyKXJldHVybiBpP0Jsb2I6YztpZihhKXJldHVybiBzfSkoKX0pKSxacz1zKChlPT57dmFyIHQ9V3MoKSxuPUdzKCkscj1LcygpLGk9cXMoKSxhPUpzKCksbzt0eXBlb2YgQXJyYXlCdWZmZXI8YHVgJiYobz1ZcygpKTt2YXIgcz10eXBlb2YgbmF2aWdhdG9yPGB1YCYmL0FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGM9dHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9QaGFudG9tSlMvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLGw9c3x8YztlLnByb3RvY29sPTM7dmFyIHU9ZS5wYWNrZXRzPXtvcGVuOjAsY2xvc2U6MSxwaW5nOjIscG9uZzozLG1lc3NhZ2U6NCx1cGdyYWRlOjUsbm9vcDo2fSxkPXQodSksZj17dHlwZTpgZXJyb3JgLGRhdGE6YHBhcnNlciBlcnJvcmB9LHA9WHMoKTtlLmVuY29kZVBhY2tldD1mdW5jdGlvbihlLHQsbixyKXt0eXBlb2YgdD09YGZ1bmN0aW9uYCYmKHI9dCx0PSExKSx0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpPWUuZGF0YT09PXZvaWQgMD92b2lkIDA6ZS5kYXRhLmJ1ZmZlcnx8ZS5kYXRhO2lmKHR5cGVvZiBBcnJheUJ1ZmZlcjxgdWAmJmkgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gaChlLHQscik7aWYocCE9PXZvaWQgMCYmaSBpbnN0YW5jZW9mIHApcmV0dXJuIF8oZSx0LHIpO2lmKGkmJmkuYmFzZTY0KXJldHVybiBtKGUscik7dmFyIG89dVtlLnR5cGVdO3JldHVybiBlLmRhdGEhPT12b2lkIDAmJihvKz1uP2EuZW5jb2RlKFN0cmluZyhlLmRhdGEpLHtzdHJpY3Q6ITF9KTpTdHJpbmcoZS5kYXRhKSkscihgYCtvKX07ZnVuY3Rpb24gbSh0LG4pe3JldHVybiBuKGBiYCtlLnBhY2tldHNbdC50eXBlXSt0LmRhdGEuZGF0YSl9ZnVuY3Rpb24gaCh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7dmFyIGk9dC5kYXRhLGE9bmV3IFVpbnQ4QXJyYXkoaSksbz1uZXcgVWludDhBcnJheSgxK2kuYnl0ZUxlbmd0aCk7b1swXT11W3QudHlwZV07Zm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspb1tzKzFdPWFbc107cmV0dXJuIHIoby5idWZmZXIpfWZ1bmN0aW9uIGcodCxuLHIpe2lmKCFuKXJldHVybiBlLmVuY29kZUJhc2U2NFBhY2tldCh0LHIpO3ZhciBpPW5ldyBGaWxlUmVhZGVyO3JldHVybiBpLm9ubG9hZD1mdW5jdGlvbigpe2UuZW5jb2RlUGFja2V0KHt0eXBlOnQudHlwZSxkYXRhOmkucmVzdWx0fSxuLCEwLHIpfSxpLnJlYWRBc0FycmF5QnVmZmVyKHQuZGF0YSl9ZnVuY3Rpb24gXyh0LG4scil7aWYoIW4pcmV0dXJuIGUuZW5jb2RlQmFzZTY0UGFja2V0KHQscik7aWYobClyZXR1cm4gZyh0LG4scik7dmFyIGk9bmV3IFVpbnQ4QXJyYXkoMSk7cmV0dXJuIGlbMF09dVt0LnR5cGVdLHIobmV3IHAoW2kuYnVmZmVyLHQuZGF0YV0pKX1lLmVuY29kZUJhc2U2NFBhY2tldD1mdW5jdGlvbih0LG4pe3ZhciByPWBiYCtlLnBhY2tldHNbdC50eXBlXTtpZihwIT09dm9pZCAwJiZ0LmRhdGEgaW5zdGFuY2VvZiBwKXt2YXIgaT1uZXcgRmlsZVJlYWRlcjtyZXR1cm4gaS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT1pLnJlc3VsdC5zcGxpdChgLGApWzFdO24ocitlKX0saS5yZWFkQXNEYXRhVVJMKHQuZGF0YSl9dmFyIGE7dHJ5e2E9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KHQuZGF0YSkpfWNhdGNoe2Zvcih2YXIgbz1uZXcgVWludDhBcnJheSh0LmRhdGEpLHM9QXJyYXkoby5sZW5ndGgpLGM9MDtjPG8ubGVuZ3RoO2MrKylzW2NdPW9bY107YT1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscyl9cmV0dXJuIHIrPWJ0b2EoYSksbihyKX0sZS5kZWNvZGVQYWNrZXQ9ZnVuY3Rpb24odCxuLGkpe2lmKHQ9PT12b2lkIDApcmV0dXJuIGY7aWYodHlwZW9mIHQ9PWBzdHJpbmdgKXtpZih0LmNoYXJBdCgwKT09PWBiYClyZXR1cm4gZS5kZWNvZGVCYXNlNjRQYWNrZXQodC5zdWJzdHIoMSksbik7aWYoaSYmKHQ9dih0KSx0PT09ITEpKXJldHVybiBmO3ZhciBhPXQuY2hhckF0KDApO3JldHVybiBOdW1iZXIoYSkhPWF8fCFkW2FdP2Y6dC5sZW5ndGg+MT97dHlwZTpkW2FdLGRhdGE6dC5zdWJzdHJpbmcoMSl9Ont0eXBlOmRbYV19fXZhciBhPW5ldyBVaW50OEFycmF5KHQpWzBdLG89cih0LDEpO3JldHVybiBwJiZuPT09YGJsb2JgJiYobz1uZXcgcChbb10pKSx7dHlwZTpkW2FdLGRhdGE6b319O2Z1bmN0aW9uIHYoZSl7dHJ5e2U9YS5kZWNvZGUoZSx7c3RyaWN0OiExfSl9Y2F0Y2h7cmV0dXJuITF9cmV0dXJuIGV9ZS5kZWNvZGVCYXNlNjRQYWNrZXQ9ZnVuY3Rpb24oZSx0KXt2YXIgbj1kW2UuY2hhckF0KDApXTtpZighbylyZXR1cm57dHlwZTpuLGRhdGE6e2Jhc2U2NDohMCxkYXRhOmUuc3Vic3RyKDEpfX07dmFyIHI9by5kZWNvZGUoZS5zdWJzdHIoMSkpO3JldHVybiB0PT09YGJsb2JgJiZwJiYocj1uZXcgcChbcl0pKSx7dHlwZTpuLGRhdGE6cn19LGUuZW5jb2RlUGF5bG9hZD1mdW5jdGlvbih0LHIsaSl7dHlwZW9mIHI9PWBmdW5jdGlvbmAmJihpPXIscj1udWxsKTt2YXIgYT1uKHQpO2lmKHImJmEpcmV0dXJuIHAmJiFsP2UuZW5jb2RlUGF5bG9hZEFzQmxvYih0LGkpOmUuZW5jb2RlUGF5bG9hZEFzQXJyYXlCdWZmZXIodCxpKTtpZighdC5sZW5ndGgpcmV0dXJuIGkoYDA6YCk7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gZS5sZW5ndGgrYDpgK2V9ZnVuY3Rpb24gcyh0LG4pe2UuZW5jb2RlUGFja2V0KHQsYT9yOiExLCExLGZ1bmN0aW9uKGUpe24obnVsbCxvKGUpKX0pfXkodCxzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGkodC5qb2luKGBgKSl9KX07ZnVuY3Rpb24geShlLHQsbil7Zm9yKHZhciByPUFycmF5KGUubGVuZ3RoKSxhPWkoZS5sZW5ndGgsbiksbz1mdW5jdGlvbihlLG4saSl7dChuLGZ1bmN0aW9uKHQsbil7cltlXT1uLGkodCxyKX0pfSxzPTA7czxlLmxlbmd0aDtzKyspbyhzLGVbc10sYSl9ZS5kZWNvZGVQYXlsb2FkPWZ1bmN0aW9uKHQsbixyKXtpZih0eXBlb2YgdCE9YHN0cmluZ2ApcmV0dXJuIGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5KHQsbixyKTt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKHI9bixuPW51bGwpO3ZhciBpO2lmKHQ9PT1gYClyZXR1cm4gcihmLDAsMSk7Zm9yKHZhciBhPWBgLG8scyxjPTAsbD10Lmxlbmd0aDtjPGw7YysrKXt2YXIgdT10LmNoYXJBdChjKTtpZih1IT09YDpgKXthKz11O2NvbnRpbnVlfWlmKGE9PT1gYHx8YSE9KG89TnVtYmVyKGEpKXx8KHM9dC5zdWJzdHIoYysxLG8pLGEhPXMubGVuZ3RoKSlyZXR1cm4gcihmLDAsMSk7aWYocy5sZW5ndGgpe2lmKGk9ZS5kZWNvZGVQYWNrZXQocyxuLCExKSxmLnR5cGU9PT1pLnR5cGUmJmYuZGF0YT09PWkuZGF0YSlyZXR1cm4gcihmLDAsMSk7aWYoITE9PT1yKGksYytvLGwpKXJldHVybn1jKz1vLGE9YGB9aWYoYSE9PWBgKXJldHVybiByKGYsMCwxKX0sZS5lbmNvZGVQYXlsb2FkQXNBcnJheUJ1ZmZlcj1mdW5jdGlvbih0LG4pe2lmKCF0Lmxlbmd0aClyZXR1cm4gbihuZXcgQXJyYXlCdWZmZXIoMCkpO2Z1bmN0aW9uIHIodCxuKXtlLmVuY29kZVBhY2tldCh0LCEwLCEwLGZ1bmN0aW9uKGUpe3JldHVybiBuKG51bGwsZSl9KX15KHQscixmdW5jdGlvbihlLHQpe3ZhciByPXQucmVkdWNlKGZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ9PWBzdHJpbmdgP3QubGVuZ3RoOnQuYnl0ZUxlbmd0aDtyZXR1cm4gZStuLnRvU3RyaW5nKCkubGVuZ3RoK24rMn0sMCksaT1uZXcgVWludDhBcnJheShyKSxhPTA7cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD10eXBlb2YgZT09YHN0cmluZ2Asbj1lO2lmKHQpe2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbz0wO288ZS5sZW5ndGg7bysrKXJbb109ZS5jaGFyQ29kZUF0KG8pO249ci5idWZmZXJ9dD9pW2ErK109MDppW2ErK109MTtmb3IodmFyIHM9bi5ieXRlTGVuZ3RoLnRvU3RyaW5nKCksbz0wO288cy5sZW5ndGg7bysrKWlbYSsrXT1wYXJzZUludChzW29dKTtpW2ErK109MjU1O2Zvcih2YXIgcj1uZXcgVWludDhBcnJheShuKSxvPTA7bzxyLmxlbmd0aDtvKyspaVthKytdPXJbb119KSxuKGkuYnVmZmVyKX0pfSxlLmVuY29kZVBheWxvYWRBc0Jsb2I9ZnVuY3Rpb24odCxuKXtmdW5jdGlvbiByKHQsbil7ZS5lbmNvZGVQYWNrZXQodCwhMCwhMCxmdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtpZih0WzBdPTEsdHlwZW9mIGU9PWBzdHJpbmdgKXtmb3IodmFyIHI9bmV3IFVpbnQ4QXJyYXkoZS5sZW5ndGgpLGk9MDtpPGUubGVuZ3RoO2krKylyW2ldPWUuY2hhckNvZGVBdChpKTtlPXIuYnVmZmVyLHRbMF09MH1mb3IodmFyIGE9KGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9lLmJ5dGVMZW5ndGg6ZS5zaXplKS50b1N0cmluZygpLG89bmV3IFVpbnQ4QXJyYXkoYS5sZW5ndGgrMSksaT0wO2k8YS5sZW5ndGg7aSsrKW9baV09cGFyc2VJbnQoYVtpXSk7b1thLmxlbmd0aF09MjU1LHAmJm4obnVsbCxuZXcgcChbdC5idWZmZXIsby5idWZmZXIsZV0pKX0pfXkodCxyLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4obmV3IHAodCkpfSl9LGUuZGVjb2RlUGF5bG9hZEFzQmluYXJ5PWZ1bmN0aW9uKHQsbixpKXt0eXBlb2Ygbj09YGZ1bmN0aW9uYCYmKGk9bixuPW51bGwpO2Zvcih2YXIgYT10LG89W107YS5ieXRlTGVuZ3RoPjA7KXtmb3IodmFyIHM9bmV3IFVpbnQ4QXJyYXkoYSksYz1zWzBdPT09MCxsPWBgLHU9MTtzW3VdIT09MjU1O3UrKyl7aWYobC5sZW5ndGg+MzEwKXJldHVybiBpKGYsMCwxKTtsKz1zW3VdfWE9cihhLDIrbC5sZW5ndGgpLGw9cGFyc2VJbnQobCk7dmFyIGQ9cihhLDAsbCk7aWYoYyl0cnl7ZD1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoZCkpfWNhdGNoe3ZhciBwPW5ldyBVaW50OEFycmF5KGQpO2Q9YGA7Zm9yKHZhciB1PTA7dTxwLmxlbmd0aDt1KyspZCs9U3RyaW5nLmZyb21DaGFyQ29kZShwW3VdKX1vLnB1c2goZCksYT1yKGEsbCl9dmFyIG09by5sZW5ndGg7by5mb3JFYWNoKGZ1bmN0aW9uKHQscil7aShlLmRlY29kZVBhY2tldCh0LG4sITApLHIsbSl9KX19KSksUXM9cygoKGUsdCk9Pnt2YXIgbj1acygpLHI9SXMoKTt0LmV4cG9ydHM9aTtmdW5jdGlvbiBpKGUpe3RoaXMucGF0aD1lLnBhdGgsdGhpcy5ob3N0bmFtZT1lLmhvc3RuYW1lLHRoaXMucG9ydD1lLnBvcnQsdGhpcy5zZWN1cmU9ZS5zZWN1cmUsdGhpcy5xdWVyeT1lLnF1ZXJ5LHRoaXMudGltZXN0YW1wUGFyYW09ZS50aW1lc3RhbXBQYXJhbSx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPWUudGltZXN0YW1wUmVxdWVzdHMsdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMuYWdlbnQ9ZS5hZ2VudHx8ITEsdGhpcy5zb2NrZXQ9ZS5zb2NrZXQsdGhpcy5lbmFibGVzWERSPWUuZW5hYmxlc1hEUix0aGlzLndpdGhDcmVkZW50aWFscz1lLndpdGhDcmVkZW50aWFscyx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5mb3JjZU5vZGU9ZS5mb3JjZU5vZGUsdGhpcy5pc1JlYWN0TmF0aXZlPWUuaXNSZWFjdE5hdGl2ZSx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0aGlzLmxvY2FsQWRkcmVzcz1lLmxvY2FsQWRkcmVzc31yKGkucHJvdG90eXBlKSxpLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUsdCl7dmFyIG49RXJyb3IoZSk7cmV0dXJuIG4udHlwZT1gVHJhbnNwb3J0RXJyb3JgLG4uZGVzY3JpcHRpb249dCx0aGlzLmVtaXQoYGVycm9yYCxuKSx0aGlzfSxpLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgfHx0aGlzLnJlYWR5U3RhdGU9PT1gYCkmJih0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuZG9PcGVuKCkpLHRoaXN9LGkucHJvdG90eXBlLmNsb3NlPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKSYmKHRoaXMuZG9DbG9zZSgpLHRoaXMub25DbG9zZSgpKSx0aGlzfSxpLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYCl0aGlzLndyaXRlKGUpO2Vsc2UgdGhyb3cgRXJyb3IoYFRyYW5zcG9ydCBub3Qgb3BlbmApfSxpLnByb3RvdHlwZS5vbk9wZW49ZnVuY3Rpb24oKXt0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMud3JpdGFibGU9ITAsdGhpcy5lbWl0KGBvcGVuYCl9LGkucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt2YXIgdD1uLmRlY29kZVBhY2tldChlLHRoaXMuc29ja2V0LmJpbmFyeVR5cGUpO3RoaXMub25QYWNrZXQodCl9LGkucHJvdG90eXBlLm9uUGFja2V0PWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0saS5wcm90b3R5cGUub25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCl9fSkpLCRzPXMoKGU9PntlLmVuY29kZT1mdW5jdGlvbihlKXt2YXIgdD1gYDtmb3IodmFyIG4gaW4gZSllLmhhc093blByb3BlcnR5KG4pJiYodC5sZW5ndGgmJih0Kz1gJmApLHQrPWVuY29kZVVSSUNvbXBvbmVudChuKStgPWArZW5jb2RlVVJJQ29tcG9uZW50KGVbbl0pKTtyZXR1cm4gdH0sZS5kZWNvZGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49ZS5zcGxpdChgJmApLHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBhPW5bcl0uc3BsaXQoYD1gKTt0W2RlY29kZVVSSUNvbXBvbmVudChhWzBdKV09ZGVjb2RlVVJJQ29tcG9uZW50KGFbMV0pfXJldHVybiB0fX0pKSxlYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWZ1bmN0aW9uKCl7fTtuLnByb3RvdHlwZT10LnByb3RvdHlwZSxlLnByb3RvdHlwZT1uZXcgbixlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lfX0pKSx0Yz1zKCgoZSx0KT0+e3ZhciBuPWAwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei1fYC5zcGxpdChgYCkscj02NCxpPXt9LGE9MCxvPTAscztmdW5jdGlvbiBjKGUpe3ZhciB0PWBgO2RvIHQ9bltlJXJdK3QsZT1NYXRoLmZsb29yKGUvcik7d2hpbGUoZT4wKTtyZXR1cm4gdH1mdW5jdGlvbiBsKGUpe3ZhciB0PTA7Zm9yKG89MDtvPGUubGVuZ3RoO28rKyl0PXQqcitpW2UuY2hhckF0KG8pXTtyZXR1cm4gdH1mdW5jdGlvbiB1KCl7dmFyIGU9YygrbmV3IERhdGUpO3JldHVybiBlPT09cz9lK2AuYCtjKGErKyk6KGE9MCxzPWUpfWZvcig7bzxyO28rKylpW25bb11dPW87dS5lbmNvZGU9Yyx1LmRlY29kZT1sLHQuZXhwb3J0cz11fSkpLG5jPXMoKChlLHQpPT57dmFyIG49UXMoKSxyPSRzKCksaT1acygpLGE9ZWMoKSxvPXRjKCkscz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmdgKTt0LmV4cG9ydHM9bDt2YXIgYz0oZnVuY3Rpb24oKXtyZXR1cm4gbmV3KFVzKCkpKHt4ZG9tYWluOiExfSkucmVzcG9uc2VUeXBlIT1udWxsfSkoKTtmdW5jdGlvbiBsKGUpe3ZhciB0PWUmJmUuZm9yY2VCYXNlNjQ7KCFjfHx0KSYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLG4uY2FsbCh0aGlzLGUpfWEobCxuKSxsLnByb3RvdHlwZS5uYW1lPWBwb2xsaW5nYCxsLnByb3RvdHlwZS5kb09wZW49ZnVuY3Rpb24oKXt0aGlzLnBvbGwoKX0sbC5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLnJlYWR5U3RhdGU9YHBhdXNpbmdgO2Z1bmN0aW9uIG4oKXtzKGBwYXVzZWRgKSx0LnJlYWR5U3RhdGU9YHBhdXNlZGAsZSgpfWlmKHRoaXMucG9sbGluZ3x8IXRoaXMud3JpdGFibGUpe3ZhciByPTA7dGhpcy5wb2xsaW5nJiYocyhgd2UgYXJlIGN1cnJlbnRseSBwb2xsaW5nIC0gd2FpdGluZyB0byBwYXVzZWApLHIrKyx0aGlzLm9uY2UoYHBvbGxDb21wbGV0ZWAsZnVuY3Rpb24oKXtzKGBwcmUtcGF1c2UgcG9sbGluZyBjb21wbGV0ZWApLC0tcnx8bigpfSkpLHRoaXMud3JpdGFibGV8fChzKGB3ZSBhcmUgY3VycmVudGx5IHdyaXRpbmcgLSB3YWl0aW5nIHRvIHBhdXNlYCkscisrLHRoaXMub25jZShgZHJhaW5gLGZ1bmN0aW9uKCl7cyhgcHJlLXBhdXNlIHdyaXRpbmcgY29tcGxldGVgKSwtLXJ8fG4oKX0pKX1lbHNlIG4oKX0sbC5wcm90b3R5cGUucG9sbD1mdW5jdGlvbigpe3MoYHBvbGxpbmdgKSx0aGlzLnBvbGxpbmc9ITAsdGhpcy5kb1BvbGwoKSx0aGlzLmVtaXQoYHBvbGxgKX0sbC5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cyhgcG9sbGluZyBnb3QgZGF0YSAlc2AsZSksaS5kZWNvZGVQYXlsb2FkKGUsdGhpcy5zb2NrZXQuYmluYXJ5VHlwZSxmdW5jdGlvbihlLG4scil7aWYodC5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0Lm9uT3BlbigpLGUudHlwZT09PWBjbG9zZWApcmV0dXJuIHQub25DbG9zZSgpLCExO3Qub25QYWNrZXQoZSl9KSx0aGlzLnJlYWR5U3RhdGUhPT1gY2xvc2VkYCYmKHRoaXMucG9sbGluZz0hMSx0aGlzLmVtaXQoYHBvbGxDb21wbGV0ZWApLHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD90aGlzLnBvbGwoKTpzKGBpZ25vcmluZyBwb2xsIC0gdHJhbnNwb3J0IHN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSkpfSxsLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztmdW5jdGlvbiB0KCl7cyhgd3JpdGluZyBjbG9zZSBwYWNrZXRgKSxlLndyaXRlKFt7dHlwZTpgY2xvc2VgfV0pfXRoaXMucmVhZHlTdGF0ZT09PWBvcGVuYD8ocyhgdHJhbnNwb3J0IG9wZW4gLSBjbG9zaW5nYCksdCgpKToocyhgdHJhbnNwb3J0IG5vdCBvcGVuIC0gZGVmZXJyaW5nIGNsb3NlYCksdGhpcy5vbmNlKGBvcGVuYCx0KSl9LGwucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy53cml0YWJsZT0hMTt2YXIgbj1mdW5jdGlvbigpe3Qud3JpdGFibGU9ITAsdC5lbWl0KGBkcmFpbmApfTtpLmVuY29kZVBheWxvYWQoZSx0aGlzLnN1cHBvcnRzQmluYXJ5LGZ1bmN0aW9uKGUpe3QuZG9Xcml0ZShlLG4pfSl9LGwucHJvdG90eXBlLnVyaT1mdW5jdGlvbigpe3ZhciBlPXRoaXMucXVlcnl8fHt9LHQ9dGhpcy5zZWN1cmU/YGh0dHBzYDpgaHR0cGAsbj1gYDshMSE9PXRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksIXRoaXMuc3VwcG9ydHNCaW5hcnkmJiFlLnNpZCYmKGUuYjY0PTEpLGU9ci5lbmNvZGUoZSksdGhpcy5wb3J0JiYodD09PWBodHRwc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YGh0dHBgJiZOdW1iZXIodGhpcy5wb3J0KSE9PTgwKSYmKG49YDpgK3RoaXMucG9ydCksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgaT10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhpP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfX0pKSxyYz1zKCgoZSx0KT0+e3ZhciBuPVVzKCkscj1uYygpLGk9SXMoKSxhPWVjKCksbz1GcygpKGBlbmdpbmUuaW8tY2xpZW50OnBvbGxpbmcteGhyYCkscz1IcygpO3QuZXhwb3J0cz1sLHQuZXhwb3J0cy5SZXF1ZXN0PXU7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe2lmKHIuY2FsbCh0aGlzLGUpLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLmV4dHJhSGVhZGVycz1lLmV4dHJhSGVhZGVycyx0eXBlb2YgbG9jYXRpb248YHVgKXt2YXIgdD1sb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgLG49bG9jYXRpb24ucG9ydDtufHw9dD80NDM6ODAsdGhpcy54ZD10eXBlb2YgbG9jYXRpb248YHVgJiZlLmhvc3RuYW1lIT09bG9jYXRpb24uaG9zdG5hbWV8fG4hPT1lLnBvcnQsdGhpcy54cz1lLnNlY3VyZSE9PXR9fWEobCxyKSxsLnByb3RvdHlwZS5zdXBwb3J0c0JpbmFyeT0hMCxsLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiBlfHw9e30sZS51cmk9dGhpcy51cmkoKSxlLnhkPXRoaXMueGQsZS54cz10aGlzLnhzLGUuYWdlbnQ9dGhpcy5hZ2VudHx8ITEsZS5zdXBwb3J0c0JpbmFyeT10aGlzLnN1cHBvcnRzQmluYXJ5LGUuZW5hYmxlc1hEUj10aGlzLmVuYWJsZXNYRFIsZS53aXRoQ3JlZGVudGlhbHM9dGhpcy53aXRoQ3JlZGVudGlhbHMsZS5wZng9dGhpcy5wZngsZS5rZXk9dGhpcy5rZXksZS5wYXNzcGhyYXNlPXRoaXMucGFzc3BocmFzZSxlLmNlcnQ9dGhpcy5jZXJ0LGUuY2E9dGhpcy5jYSxlLmNpcGhlcnM9dGhpcy5jaXBoZXJzLGUucmVqZWN0VW5hdXRob3JpemVkPXRoaXMucmVqZWN0VW5hdXRob3JpemVkLGUucmVxdWVzdFRpbWVvdXQ9dGhpcy5yZXF1ZXN0VGltZW91dCxlLmV4dHJhSGVhZGVycz10aGlzLmV4dHJhSGVhZGVycyxuZXcgdShlKX0sbC5wcm90b3R5cGUuZG9Xcml0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXR5cGVvZiBlIT1gc3RyaW5nYCYmZSE9PXZvaWQgMCxyPXRoaXMucmVxdWVzdCh7bWV0aG9kOmBQT1NUYCxkYXRhOmUsaXNCaW5hcnk6bn0pLGk9dGhpcztyLm9uKGBzdWNjZXNzYCx0KSxyLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7aS5vbkVycm9yKGB4aHIgcG9zdCBlcnJvcmAsZSl9KSx0aGlzLnNlbmRYaHI9cn0sbC5wcm90b3R5cGUuZG9Qb2xsPWZ1bmN0aW9uKCl7byhgeGhyIHBvbGxgKTt2YXIgZT10aGlzLnJlcXVlc3QoKSx0PXRoaXM7ZS5vbihgZGF0YWAsZnVuY3Rpb24oZSl7dC5vbkRhdGEoZSl9KSxlLm9uKGBlcnJvcmAsZnVuY3Rpb24oZSl7dC5vbkVycm9yKGB4aHIgcG9sbCBlcnJvcmAsZSl9KSx0aGlzLnBvbGxYaHI9ZX07ZnVuY3Rpb24gdShlKXt0aGlzLm1ldGhvZD1lLm1ldGhvZHx8YEdFVGAsdGhpcy51cmk9ZS51cmksdGhpcy54ZD0hIWUueGQsdGhpcy54cz0hIWUueHMsdGhpcy5hc3luYz0hMSE9PWUuYXN5bmMsdGhpcy5kYXRhPWUuZGF0YT09PXZvaWQgMD9udWxsOmUuZGF0YSx0aGlzLmFnZW50PWUuYWdlbnQsdGhpcy5pc0JpbmFyeT1lLmlzQmluYXJ5LHRoaXMuc3VwcG9ydHNCaW5hcnk9ZS5zdXBwb3J0c0JpbmFyeSx0aGlzLmVuYWJsZXNYRFI9ZS5lbmFibGVzWERSLHRoaXMud2l0aENyZWRlbnRpYWxzPWUud2l0aENyZWRlbnRpYWxzLHRoaXMucmVxdWVzdFRpbWVvdXQ9ZS5yZXF1ZXN0VGltZW91dCx0aGlzLnBmeD1lLnBmeCx0aGlzLmtleT1lLmtleSx0aGlzLnBhc3NwaHJhc2U9ZS5wYXNzcGhyYXNlLHRoaXMuY2VydD1lLmNlcnQsdGhpcy5jYT1lLmNhLHRoaXMuY2lwaGVycz1lLmNpcGhlcnMsdGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ9ZS5yZWplY3RVbmF1dGhvcml6ZWQsdGhpcy5leHRyYUhlYWRlcnM9ZS5leHRyYUhlYWRlcnMsdGhpcy5jcmVhdGUoKX1pZihpKHUucHJvdG90eXBlKSx1LnByb3RvdHlwZS5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgZT17YWdlbnQ6dGhpcy5hZ2VudCx4ZG9tYWluOnRoaXMueGQseHNjaGVtZTp0aGlzLnhzLGVuYWJsZXNYRFI6dGhpcy5lbmFibGVzWERSfTtlLnBmeD10aGlzLnBmeCxlLmtleT10aGlzLmtleSxlLnBhc3NwaHJhc2U9dGhpcy5wYXNzcGhyYXNlLGUuY2VydD10aGlzLmNlcnQsZS5jYT10aGlzLmNhLGUuY2lwaGVycz10aGlzLmNpcGhlcnMsZS5yZWplY3RVbmF1dGhvcml6ZWQ9dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQ7dmFyIHQ9dGhpcy54aHI9bmV3IG4oZSkscj10aGlzO3RyeXtvKGB4aHIgb3BlbiAlczogJXNgLHRoaXMubWV0aG9kLHRoaXMudXJpKSx0Lm9wZW4odGhpcy5tZXRob2QsdGhpcy51cmksdGhpcy5hc3luYyk7dHJ5e2lmKHRoaXMuZXh0cmFIZWFkZXJzKWZvcih2YXIgaSBpbiB0LnNldERpc2FibGVIZWFkZXJDaGVjayYmdC5zZXREaXNhYmxlSGVhZGVyQ2hlY2soITApLHRoaXMuZXh0cmFIZWFkZXJzKXRoaXMuZXh0cmFIZWFkZXJzLmhhc093blByb3BlcnR5KGkpJiZ0LnNldFJlcXVlc3RIZWFkZXIoaSx0aGlzLmV4dHJhSGVhZGVyc1tpXSl9Y2F0Y2h7fWlmKHRoaXMubWV0aG9kPT09YFBPU1RgKXRyeXt0aGlzLmlzQmluYXJ5P3Quc2V0UmVxdWVzdEhlYWRlcihgQ29udGVudC10eXBlYCxgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYCk6dC5zZXRSZXF1ZXN0SGVhZGVyKGBDb250ZW50LXR5cGVgLGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgKX1jYXRjaHt9dHJ5e3Quc2V0UmVxdWVzdEhlYWRlcihgQWNjZXB0YCxgKi8qYCl9Y2F0Y2h7fWB3aXRoQ3JlZGVudGlhbHNgaW4gdCYmKHQud2l0aENyZWRlbnRpYWxzPXRoaXMud2l0aENyZWRlbnRpYWxzKSx0aGlzLnJlcXVlc3RUaW1lb3V0JiYodC50aW1lb3V0PXRoaXMucmVxdWVzdFRpbWVvdXQpLHRoaXMuaGFzWERSKCk/KHQub25sb2FkPWZ1bmN0aW9uKCl7ci5vbkxvYWQoKX0sdC5vbmVycm9yPWZ1bmN0aW9uKCl7ci5vbkVycm9yKHQucmVzcG9uc2VUZXh0KX0pOnQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYodC5yZWFkeVN0YXRlPT09Mil0cnl7dmFyIGU9dC5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCk7KHIuc3VwcG9ydHNCaW5hcnkmJmU9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8ZT09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmKHQucmVzcG9uc2VUeXBlPWBhcnJheWJ1ZmZlcmApfWNhdGNoe310LnJlYWR5U3RhdGU9PT00JiYodC5zdGF0dXM9PT0yMDB8fHQuc3RhdHVzPT09MTIyMz9yLm9uTG9hZCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLm9uRXJyb3IodHlwZW9mIHQuc3RhdHVzPT1gbnVtYmVyYD90LnN0YXR1czowKX0sMCkpfSxvKGB4aHIgZGF0YSAlc2AsdGhpcy5kYXRhKSx0LnNlbmQodGhpcy5kYXRhKX1jYXRjaChlKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5vbkVycm9yKGUpfSwwKTtyZXR1cm59dHlwZW9mIGRvY3VtZW50PGB1YCYmKHRoaXMuaW5kZXg9dS5yZXF1ZXN0c0NvdW50KyssdS5yZXF1ZXN0c1t0aGlzLmluZGV4XT10aGlzKX0sdS5wcm90b3R5cGUub25TdWNjZXNzPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KGBzdWNjZXNzYCksdGhpcy5jbGVhbnVwKCl9LHUucHJvdG90eXBlLm9uRGF0YT1mdW5jdGlvbihlKXt0aGlzLmVtaXQoYGRhdGFgLGUpLHRoaXMub25TdWNjZXNzKCl9LHUucHJvdG90eXBlLm9uRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5jbGVhbnVwKCEwKX0sdS5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbihlKXtpZighKHRoaXMueGhyPT09dm9pZCAwfHx0aGlzLnhocj09PW51bGwpKXtpZih0aGlzLmhhc1hEUigpP3RoaXMueGhyLm9ubG9hZD10aGlzLnhoci5vbmVycm9yPWM6dGhpcy54aHIub25yZWFkeXN0YXRlY2hhbmdlPWMsZSl0cnl7dGhpcy54aHIuYWJvcnQoKX1jYXRjaHt9dHlwZW9mIGRvY3VtZW50PGB1YCYmZGVsZXRlIHUucmVxdWVzdHNbdGhpcy5pbmRleF0sdGhpcy54aHI9bnVsbH19LHUucHJvdG90eXBlLm9uTG9hZD1mdW5jdGlvbigpe3ZhciBlO3RyeXt2YXIgdDt0cnl7dD10aGlzLnhoci5nZXRSZXNwb25zZUhlYWRlcihgQ29udGVudC1UeXBlYCl9Y2F0Y2h7fWU9KHQ9PT1gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtYHx8dD09PWBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07IGNoYXJzZXQ9VVRGLThgKSYmdGhpcy54aHIucmVzcG9uc2V8fHRoaXMueGhyLnJlc3BvbnNlVGV4dH1jYXRjaChlKXt0aGlzLm9uRXJyb3IoZSl9ZSE9bnVsbCYmdGhpcy5vbkRhdGEoZSl9LHUucHJvdG90eXBlLmhhc1hEUj1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgWERvbWFpblJlcXVlc3Q8YHVgJiYhdGhpcy54cyYmdGhpcy5lbmFibGVzWERSfSx1LnByb3RvdHlwZS5hYm9ydD1mdW5jdGlvbigpe3RoaXMuY2xlYW51cCgpfSx1LnJlcXVlc3RzQ291bnQ9MCx1LnJlcXVlc3RzPXt9LHR5cGVvZiBkb2N1bWVudDxgdWApe2lmKHR5cGVvZiBhdHRhY2hFdmVudD09YGZ1bmN0aW9uYClhdHRhY2hFdmVudChgb251bmxvYWRgLGYpO2Vsc2UgaWYodHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmApe3ZhciBkPWBvbnBhZ2VoaWRlYGluIHM/YHBhZ2VoaWRlYDpgdW5sb2FkYDthZGRFdmVudExpc3RlbmVyKGQsZiwhMSl9fWZ1bmN0aW9uIGYoKXtmb3IodmFyIGUgaW4gdS5yZXF1ZXN0cyl1LnJlcXVlc3RzLmhhc093blByb3BlcnR5KGUpJiZ1LnJlcXVlc3RzW2VdLmFib3J0KCl9fSkpLGljPXMoKChlLHQpPT57dmFyIG49bmMoKSxyPWVjKCksaT1IcygpO3QuZXhwb3J0cz1sO3ZhciBhPS9cbi9nLG89L1xcbi9nLHM7ZnVuY3Rpb24gYygpe31mdW5jdGlvbiBsKGUpe24uY2FsbCh0aGlzLGUpLHRoaXMucXVlcnk9dGhpcy5xdWVyeXx8e30sc3x8PWkuX19fZWlvPWkuX19fZWlvfHxbXSx0aGlzLmluZGV4PXMubGVuZ3RoO3ZhciB0PXRoaXM7cy5wdXNoKGZ1bmN0aW9uKGUpe3Qub25EYXRhKGUpfSksdGhpcy5xdWVyeS5qPXRoaXMuaW5kZXgsdHlwZW9mIGFkZEV2ZW50TGlzdGVuZXI9PWBmdW5jdGlvbmAmJmFkZEV2ZW50TGlzdGVuZXIoYGJlZm9yZXVubG9hZGAsZnVuY3Rpb24oKXt0LnNjcmlwdCYmKHQuc2NyaXB0Lm9uZXJyb3I9Yyl9LCExKX1yKGwsbiksbC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITEsbC5wcm90b3R5cGUuZG9DbG9zZT1mdW5jdGlvbigpe3RoaXMuc2NyaXB0JiY9KHRoaXMuc2NyaXB0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zY3JpcHQpLG51bGwpLHRoaXMuZm9ybSYmKHRoaXMuZm9ybS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZm9ybSksdGhpcy5mb3JtPW51bGwsdGhpcy5pZnJhbWU9bnVsbCksbi5wcm90b3R5cGUuZG9DbG9zZS5jYWxsKHRoaXMpfSxsLnByb3RvdHlwZS5kb1BvbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgc2NyaXB0YCk7dGhpcy5zY3JpcHQmJj0odGhpcy5zY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnNjcmlwdCksbnVsbCksdC5hc3luYz0hMCx0LnNyYz10aGlzLnVyaSgpLHQub25lcnJvcj1mdW5jdGlvbih0KXtlLm9uRXJyb3IoYGpzb25wIHBvbGwgZXJyb3JgLHQpfTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShgc2NyaXB0YClbMF07bj9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQsbik6KGRvY3VtZW50LmhlYWR8fGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHQpLHRoaXMuc2NyaXB0PXQsdHlwZW9mIG5hdmlnYXRvcjxgdWAmJi9nZWNrby9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZSl9LDEwMCl9LGwucHJvdG90eXBlLmRvV3JpdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKCF0aGlzLmZvcm0pe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGZvcm1gKSxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYHRleHRhcmVhYCkscz10aGlzLmlmcmFtZUlkPWBlaW9faWZyYW1lX2ArdGhpcy5pbmRleCxjO3IuY2xhc3NOYW1lPWBzb2NrZXRpb2Asci5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHIuc3R5bGUudG9wPWAtMTAwMHB4YCxyLnN0eWxlLmxlZnQ9YC0xMDAwcHhgLHIudGFyZ2V0PXMsci5tZXRob2Q9YFBPU1RgLHIuc2V0QXR0cmlidXRlKGBhY2NlcHQtY2hhcnNldGAsYHV0Zi04YCksaS5uYW1lPWBkYCxyLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQociksdGhpcy5mb3JtPXIsdGhpcy5hcmVhPWl9dGhpcy5mb3JtLmFjdGlvbj10aGlzLnVyaSgpO2Z1bmN0aW9uIGwoKXt1KCksdCgpfWZ1bmN0aW9uIHUoKXtpZihuLmlmcmFtZSl0cnl7bi5mb3JtLnJlbW92ZUNoaWxkKG4uaWZyYW1lKX1jYXRjaChlKXtuLm9uRXJyb3IoYGpzb25wIHBvbGxpbmcgaWZyYW1lIHJlbW92YWwgZXJyb3JgLGUpfXRyeXt2YXIgZT1gPGlmcmFtZSBzcmM9ImphdmFzY3JpcHQ6MCIgbmFtZT0iYCtuLmlmcmFtZUlkK2AiPmA7Yz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpfWNhdGNoe2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaWZyYW1lYCksYy5uYW1lPW4uaWZyYW1lSWQsYy5zcmM9YGphdmFzY3JpcHQ6MGB9Yy5pZD1uLmlmcmFtZUlkLG4uZm9ybS5hcHBlbmRDaGlsZChjKSxuLmlmcmFtZT1jfXUoKSxlPWUucmVwbGFjZShvLGBcXApgKSx0aGlzLmFyZWEudmFsdWU9ZS5yZXBsYWNlKGEsYFxcbmApO3RyeXt0aGlzLmZvcm0uc3VibWl0KCl9Y2F0Y2h7fXRoaXMuaWZyYW1lLmF0dGFjaEV2ZW50P3RoaXMuaWZyYW1lLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe24uaWZyYW1lLnJlYWR5U3RhdGU9PT1gY29tcGxldGVgJiZsKCl9OnRoaXMuaWZyYW1lLm9ubG9hZD1sfX0pKSxhYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz17fX0pKSxvYz1zKCgoZSx0KT0+e3ZhciBuPVFzKCkscj1acygpLGk9JHMoKSxhPWVjKCksbz10YygpLHM9RnMoKShgZW5naW5lLmlvLWNsaWVudDp3ZWJzb2NrZXRgKSxjLGw7aWYodHlwZW9mIFdlYlNvY2tldDxgdWA/Yz1XZWJTb2NrZXQ6dHlwZW9mIHNlbGY8YHVgJiYoYz1zZWxmLldlYlNvY2tldHx8c2VsZi5Nb3pXZWJTb2NrZXQpLHR5cGVvZiB3aW5kb3c+YHVgKXRyeXtsPWFjKCl9Y2F0Y2h7fXZhciB1PWN8fGw7dC5leHBvcnRzPWQ7ZnVuY3Rpb24gZChlKXtlJiZlLmZvcmNlQmFzZTY0JiYodGhpcy5zdXBwb3J0c0JpbmFyeT0hMSksdGhpcy5wZXJNZXNzYWdlRGVmbGF0ZT1lLnBlck1lc3NhZ2VEZWZsYXRlLHRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0PWMmJiFlLmZvcmNlTm9kZSx0aGlzLnByb3RvY29scz1lLnByb3RvY29scyx0aGlzLnVzaW5nQnJvd3NlcldlYlNvY2tldHx8KHU9bCksbi5jYWxsKHRoaXMsZSl9YShkLG4pLGQucHJvdG90eXBlLm5hbWU9YHdlYnNvY2tldGAsZC5wcm90b3R5cGUuc3VwcG9ydHNCaW5hcnk9ITAsZC5wcm90b3R5cGUuZG9PcGVuPWZ1bmN0aW9uKCl7aWYodGhpcy5jaGVjaygpKXt2YXIgZT10aGlzLnVyaSgpLHQ9dGhpcy5wcm90b2NvbHMsbj17fTt0aGlzLmlzUmVhY3ROYXRpdmV8fChuLmFnZW50PXRoaXMuYWdlbnQsbi5wZXJNZXNzYWdlRGVmbGF0ZT10aGlzLnBlck1lc3NhZ2VEZWZsYXRlLG4ucGZ4PXRoaXMucGZ4LG4ua2V5PXRoaXMua2V5LG4ucGFzc3BocmFzZT10aGlzLnBhc3NwaHJhc2Usbi5jZXJ0PXRoaXMuY2VydCxuLmNhPXRoaXMuY2Esbi5jaXBoZXJzPXRoaXMuY2lwaGVycyxuLnJlamVjdFVuYXV0aG9yaXplZD10aGlzLnJlamVjdFVuYXV0aG9yaXplZCksdGhpcy5leHRyYUhlYWRlcnMmJihuLmhlYWRlcnM9dGhpcy5leHRyYUhlYWRlcnMpLHRoaXMubG9jYWxBZGRyZXNzJiYobi5sb2NhbEFkZHJlc3M9dGhpcy5sb2NhbEFkZHJlc3MpO3RyeXt0aGlzLndzPXRoaXMudXNpbmdCcm93c2VyV2ViU29ja2V0JiYhdGhpcy5pc1JlYWN0TmF0aXZlP3Q/bmV3IHUoZSx0KTpuZXcgdShlKTpuZXcgdShlLHQsbil9Y2F0Y2goZSl7cmV0dXJuIHRoaXMuZW1pdChgZXJyb3JgLGUpfXRoaXMud3MuYmluYXJ5VHlwZT09PXZvaWQgMCYmKHRoaXMuc3VwcG9ydHNCaW5hcnk9ITEpLHRoaXMud3Muc3VwcG9ydHMmJnRoaXMud3Muc3VwcG9ydHMuYmluYXJ5Pyh0aGlzLnN1cHBvcnRzQmluYXJ5PSEwLHRoaXMud3MuYmluYXJ5VHlwZT1gbm9kZWJ1ZmZlcmApOnRoaXMud3MuYmluYXJ5VHlwZT1gYXJyYXlidWZmZXJgLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcnMoKX19LGQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXJzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLndzLm9ub3Blbj1mdW5jdGlvbigpe2Uub25PcGVuKCl9LHRoaXMud3Mub25jbG9zZT1mdW5jdGlvbigpe2Uub25DbG9zZSgpfSx0aGlzLndzLm9ubWVzc2FnZT1mdW5jdGlvbih0KXtlLm9uRGF0YSh0LmRhdGEpfSx0aGlzLndzLm9uZXJyb3I9ZnVuY3Rpb24odCl7ZS5vbkVycm9yKGB3ZWJzb2NrZXQgZXJyb3JgLHQpfX0sZC5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0aGlzLndyaXRhYmxlPSExO2Zvcih2YXIgbj1lLmxlbmd0aCxpPTAsYT1uO2k8YTtpKyspKGZ1bmN0aW9uKGUpe3IuZW5jb2RlUGFja2V0KGUsdC5zdXBwb3J0c0JpbmFyeSxmdW5jdGlvbihyKXtpZighdC51c2luZ0Jyb3dzZXJXZWJTb2NrZXQpe3ZhciBpPXt9O2Uub3B0aW9ucyYmKGkuY29tcHJlc3M9ZS5vcHRpb25zLmNvbXByZXNzKSx0LnBlck1lc3NhZ2VEZWZsYXRlJiYodHlwZW9mIHI9PWBzdHJpbmdgP0J1ZmZlci5ieXRlTGVuZ3RoKHIpOnIubGVuZ3RoKTx0LnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZCYmKGkuY29tcHJlc3M9ITEpfXRyeXt0LnVzaW5nQnJvd3NlcldlYlNvY2tldD90LndzLnNlbmQocik6dC53cy5zZW5kKHIsaSl9Y2F0Y2h7cyhgd2Vic29ja2V0IGNsb3NlZCBiZWZvcmUgb25jbG9zZSBldmVudGApfS0tbnx8bygpfSl9KShlW2ldKTtmdW5jdGlvbiBvKCl7dC5lbWl0KGBmbHVzaGApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LndyaXRhYmxlPSEwLHQuZW1pdChgZHJhaW5gKX0sMCl9fSxkLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKCl7bi5wcm90b3R5cGUub25DbG9zZS5jYWxsKHRoaXMpfSxkLnByb3RvdHlwZS5kb0Nsb3NlPWZ1bmN0aW9uKCl7dGhpcy53cyE9PXZvaWQgMCYmdGhpcy53cy5jbG9zZSgpfSxkLnByb3RvdHlwZS51cmk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnF1ZXJ5fHx7fSx0PXRoaXMuc2VjdXJlP2B3c3NgOmB3c2Asbj1gYDt0aGlzLnBvcnQmJih0PT09YHdzc2AmJk51bWJlcih0aGlzLnBvcnQpIT09NDQzfHx0PT09YHdzYCYmTnVtYmVyKHRoaXMucG9ydCkhPT04MCkmJihuPWA6YCt0aGlzLnBvcnQpLHRoaXMudGltZXN0YW1wUmVxdWVzdHMmJihlW3RoaXMudGltZXN0YW1wUGFyYW1dPW8oKSksdGhpcy5zdXBwb3J0c0JpbmFyeXx8KGUuYjY0PTEpLGU9aS5lbmNvZGUoZSksZS5sZW5ndGgmJihlPWA/YCtlKTt2YXIgcj10aGlzLmhvc3RuYW1lLmluZGV4T2YoYDpgKSE9PS0xO3JldHVybiB0K2A6Ly9gKyhyP2BbYCt0aGlzLmhvc3RuYW1lK2BdYDp0aGlzLmhvc3RuYW1lKStuK3RoaXMucGF0aCtlfSxkLnByb3RvdHlwZS5jaGVjaz1mdW5jdGlvbigpe3JldHVybiEhdSYmIShgX19pbml0aWFsaXplYGluIHUmJnRoaXMubmFtZT09PWQucHJvdG90eXBlLm5hbWUpfX0pKSxzYz1zKChlPT57dmFyIHQ9VXMoKSxuPXJjKCkscj1pYygpLGk9b2MoKTtlLnBvbGxpbmc9YSxlLndlYnNvY2tldD1pO2Z1bmN0aW9uIGEoZSl7dmFyIGksYT0hMSxvPSExLHM9ITEhPT1lLmpzb25wO2lmKHR5cGVvZiBsb2NhdGlvbjxgdWApe3ZhciBjPWxvY2F0aW9uLnByb3RvY29sPT09YGh0dHBzOmAsbD1sb2NhdGlvbi5wb3J0O2x8fD1jPzQ0Mzo4MCxhPWUuaG9zdG5hbWUhPT1sb2NhdGlvbi5ob3N0bmFtZXx8bCE9PWUucG9ydCxvPWUuc2VjdXJlIT09Y31pZihlLnhkb21haW49YSxlLnhzY2hlbWU9byxpPW5ldyB0KGUpLGBvcGVuYGluIGkmJiFlLmZvcmNlSlNPTlApcmV0dXJuIG5ldyBuKGUpO2lmKCFzKXRocm93IEVycm9yKGBKU09OUCBkaXNhYmxlZGApO3JldHVybiBuZXcgcihlKX19KSksY2M9cygoKGUsdCk9Pnt2YXIgbj1bXS5pbmRleE9mO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKG4pcmV0dXJuIGUuaW5kZXhPZih0KTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilpZihlW3JdPT09dClyZXR1cm4gcjtyZXR1cm4tMX19KSksbGM9cygoKGUsdCk9Pnt2YXIgbj0vXig/Oig/IVteOkBdKzpbXjpAXC9dKkApKGh0dHB8aHR0cHN8d3N8d3NzKTpcL1wvKT8oKD86KChbXjpAXSopKD86OihbXjpAXSopKT8pP0ApPygoPzpbYS1mMC05XXswLDR9Oil7Miw3fVthLWYwLTldezAsNH18W146XC8/I10qKSg/OjooXGQqKSk/KSgoKFwvKD86W14/I10oPyFbXj8jXC9dKlwuW14/I1wvLl0rKD86Wz8jXXwkKSkpKlwvPyk/KFtePyNcL10qKSkoPzpcPyhbXiNdKikpPyg/OiMoLiopKT8pLyxyPVtgc291cmNlYCxgcHJvdG9jb2xgLGBhdXRob3JpdHlgLGB1c2VySW5mb2AsYHVzZXJgLGBwYXNzd29yZGAsYGhvc3RgLGBwb3J0YCxgcmVsYXRpdmVgLGBwYXRoYCxgZGlyZWN0b3J5YCxgZmlsZWAsYHF1ZXJ5YCxgYW5jaG9yYF07dC5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWUsbz1lLmluZGV4T2YoYFtgKSxzPWUuaW5kZXhPZihgXWApO28hPS0xJiZzIT0tMSYmKGU9ZS5zdWJzdHJpbmcoMCxvKStlLnN1YnN0cmluZyhvLHMpLnJlcGxhY2UoLzovZyxgO2ApK2Uuc3Vic3RyaW5nKHMsZS5sZW5ndGgpKTtmb3IodmFyIGM9bi5leGVjKGV8fGBgKSxsPXt9LHU9MTQ7dS0tOylsW3JbdV1dPWNbdV18fGBgO3JldHVybiBvIT0tMSYmcyE9LTEmJihsLnNvdXJjZT10LGwuaG9zdD1sLmhvc3Quc3Vic3RyaW5nKDEsbC5ob3N0Lmxlbmd0aC0xKS5yZXBsYWNlKC87L2csYDpgKSxsLmF1dGhvcml0eT1sLmF1dGhvcml0eS5yZXBsYWNlKGBbYCxgYCkucmVwbGFjZShgXWAsYGApLnJlcGxhY2UoLzsvZyxgOmApLGwuaXB2NnVyaT0hMCksbC5wYXRoTmFtZXM9aShsLGwucGF0aCksbC5xdWVyeUtleT1hKGwsbC5xdWVyeSksbH07ZnVuY3Rpb24gaShlLHQpe3ZhciBuPXQucmVwbGFjZSgvXC97Miw5fS9nLGAvYCkuc3BsaXQoYC9gKTtyZXR1cm4odC5zdWJzdHIoMCwxKT09YC9gfHx0Lmxlbmd0aD09PTApJiZuLnNwbGljZSgwLDEpLHQuc3Vic3RyKHQubGVuZ3RoLTEsMSk9PWAvYCYmbi5zcGxpY2Uobi5sZW5ndGgtMSwxKSxufWZ1bmN0aW9uIGEoZSx0KXt2YXIgbj17fTtyZXR1cm4gdC5yZXBsYWNlKC8oPzpefCYpKFteJj1dKik9PyhbXiZdKikvZyxmdW5jdGlvbihlLHQscil7dCYmKG5bdF09cil9KSxufX0pKSx1Yz1zKCgoZSx0KT0+e3ZhciBuPXNjKCkscj1JcygpLGk9RnMoKShgZW5naW5lLmlvLWNsaWVudDpzb2NrZXRgKSxhPWNjKCksbz1acygpLHM9bGMoKSxjPSRzKCk7dC5leHBvcnRzPWw7ZnVuY3Rpb24gbChlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGwpKXJldHVybiBuZXcgbChlLHQpO3R8fD17fSxlJiZ0eXBlb2YgZT09YG9iamVjdGAmJih0PWUsZT1udWxsKSxlPyhlPXMoZSksdC5ob3N0bmFtZT1lLmhvc3QsdC5zZWN1cmU9ZS5wcm90b2NvbD09PWBodHRwc2B8fGUucHJvdG9jb2w9PT1gd3NzYCx0LnBvcnQ9ZS5wb3J0LGUucXVlcnkmJih0LnF1ZXJ5PWUucXVlcnkpKTp0Lmhvc3QmJih0Lmhvc3RuYW1lPXModC5ob3N0KS5ob3N0KSx0aGlzLnNlY3VyZT10LnNlY3VyZT09bnVsbD90eXBlb2YgbG9jYXRpb248YHVgJiZsb2NhdGlvbi5wcm90b2NvbD09PWBodHRwczpgOnQuc2VjdXJlLHQuaG9zdG5hbWUmJiF0LnBvcnQmJih0LnBvcnQ9dGhpcy5zZWN1cmU/YDQ0M2A6YDgwYCksdGhpcy5hZ2VudD10LmFnZW50fHwhMSx0aGlzLmhvc3RuYW1lPXQuaG9zdG5hbWV8fCh0eXBlb2YgbG9jYXRpb248YHVgP2xvY2F0aW9uLmhvc3RuYW1lOmBsb2NhbGhvc3RgKSx0aGlzLnBvcnQ9dC5wb3J0fHwodHlwZW9mIGxvY2F0aW9uPGB1YCYmbG9jYXRpb24ucG9ydD9sb2NhdGlvbi5wb3J0OnRoaXMuc2VjdXJlPzQ0Mzo4MCksdGhpcy5xdWVyeT10LnF1ZXJ5fHx7fSx0eXBlb2YgdGhpcy5xdWVyeT09YHN0cmluZ2AmJih0aGlzLnF1ZXJ5PWMuZGVjb2RlKHRoaXMucXVlcnkpKSx0aGlzLnVwZ3JhZGU9ITEhPT10LnVwZ3JhZGUsdGhpcy5wYXRoPSh0LnBhdGh8fGAvZW5naW5lLmlvYCkucmVwbGFjZSgvXC8kLyxgYCkrYC9gLHRoaXMuZm9yY2VKU09OUD0hIXQuZm9yY2VKU09OUCx0aGlzLmpzb25wPSExIT09dC5qc29ucCx0aGlzLmZvcmNlQmFzZTY0PSEhdC5mb3JjZUJhc2U2NCx0aGlzLmVuYWJsZXNYRFI9ISF0LmVuYWJsZXNYRFIsdGhpcy53aXRoQ3JlZGVudGlhbHM9ITEhPT10LndpdGhDcmVkZW50aWFscyx0aGlzLnRpbWVzdGFtcFBhcmFtPXQudGltZXN0YW1wUGFyYW18fGB0YCx0aGlzLnRpbWVzdGFtcFJlcXVlc3RzPXQudGltZXN0YW1wUmVxdWVzdHMsdGhpcy50cmFuc3BvcnRzPXQudHJhbnNwb3J0c3x8W2Bwb2xsaW5nYCxgd2Vic29ja2V0YF0sdGhpcy50cmFuc3BvcnRPcHRpb25zPXQudHJhbnNwb3J0T3B0aW9uc3x8e30sdGhpcy5yZWFkeVN0YXRlPWBgLHRoaXMud3JpdGVCdWZmZXI9W10sdGhpcy5wcmV2QnVmZmVyTGVuPTAsdGhpcy5wb2xpY3lQb3J0PXQucG9saWN5UG9ydHx8ODQzLHRoaXMucmVtZW1iZXJVcGdyYWRlPXQucmVtZW1iZXJVcGdyYWRlfHwhMSx0aGlzLmJpbmFyeVR5cGU9bnVsbCx0aGlzLm9ubHlCaW5hcnlVcGdyYWRlcz10Lm9ubHlCaW5hcnlVcGdyYWRlcyx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPSExPT09dC5wZXJNZXNzYWdlRGVmbGF0ZT8hMTp0LnBlck1lc3NhZ2VEZWZsYXRlfHx7fSwhMD09PXRoaXMucGVyTWVzc2FnZURlZmxhdGUmJih0aGlzLnBlck1lc3NhZ2VEZWZsYXRlPXt9KSx0aGlzLnBlck1lc3NhZ2VEZWZsYXRlJiZ0aGlzLnBlck1lc3NhZ2VEZWZsYXRlLnRocmVzaG9sZD09bnVsbCYmKHRoaXMucGVyTWVzc2FnZURlZmxhdGUudGhyZXNob2xkPTEwMjQpLHRoaXMucGZ4PXQucGZ4fHxudWxsLHRoaXMua2V5PXQua2V5fHxudWxsLHRoaXMucGFzc3BocmFzZT10LnBhc3NwaHJhc2V8fG51bGwsdGhpcy5jZXJ0PXQuY2VydHx8bnVsbCx0aGlzLmNhPXQuY2F8fG51bGwsdGhpcy5jaXBoZXJzPXQuY2lwaGVyc3x8bnVsbCx0aGlzLnJlamVjdFVuYXV0aG9yaXplZD10LnJlamVjdFVuYXV0aG9yaXplZD09PXZvaWQgMD8hMDp0LnJlamVjdFVuYXV0aG9yaXplZCx0aGlzLmZvcmNlTm9kZT0hIXQuZm9yY2VOb2RlLHRoaXMuaXNSZWFjdE5hdGl2ZT10eXBlb2YgbmF2aWdhdG9yPGB1YCYmdHlwZW9mIG5hdmlnYXRvci5wcm9kdWN0PT1gc3RyaW5nYCYmbmF2aWdhdG9yLnByb2R1Y3QudG9Mb3dlckNhc2UoKT09PWByZWFjdG5hdGl2ZWAsKHR5cGVvZiBzZWxmPmB1YHx8dGhpcy5pc1JlYWN0TmF0aXZlKSYmKHQuZXh0cmFIZWFkZXJzJiZPYmplY3Qua2V5cyh0LmV4dHJhSGVhZGVycykubGVuZ3RoPjAmJih0aGlzLmV4dHJhSGVhZGVycz10LmV4dHJhSGVhZGVycyksdC5sb2NhbEFkZHJlc3MmJih0aGlzLmxvY2FsQWRkcmVzcz10LmxvY2FsQWRkcmVzcykpLHRoaXMuaWQ9bnVsbCx0aGlzLnVwZ3JhZGVzPW51bGwsdGhpcy5waW5nSW50ZXJ2YWw9bnVsbCx0aGlzLnBpbmdUaW1lb3V0PW51bGwsdGhpcy5waW5nSW50ZXJ2YWxUaW1lcj1udWxsLHRoaXMucGluZ1RpbWVvdXRUaW1lcj1udWxsLHRoaXMub3BlbigpfWwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPSExLHIobC5wcm90b3R5cGUpLGwucHJvdG9jb2w9by5wcm90b2NvbCxsLlNvY2tldD1sLGwuVHJhbnNwb3J0PVFzKCksbC50cmFuc3BvcnRzPXNjKCksbC5wYXJzZXI9WnMoKSxsLnByb3RvdHlwZS5jcmVhdGVUcmFuc3BvcnQ9ZnVuY3Rpb24oZSl7aShgY3JlYXRpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXUodGhpcy5xdWVyeSk7dC5FSU89by5wcm90b2NvbCx0LnRyYW5zcG9ydD1lO3ZhciByPXRoaXMudHJhbnNwb3J0T3B0aW9uc1tlXXx8e307cmV0dXJuIHRoaXMuaWQmJih0LnNpZD10aGlzLmlkKSxuZXcgbltlXSh7cXVlcnk6dCxzb2NrZXQ6dGhpcyxhZ2VudDpyLmFnZW50fHx0aGlzLmFnZW50LGhvc3RuYW1lOnIuaG9zdG5hbWV8fHRoaXMuaG9zdG5hbWUscG9ydDpyLnBvcnR8fHRoaXMucG9ydCxzZWN1cmU6ci5zZWN1cmV8fHRoaXMuc2VjdXJlLHBhdGg6ci5wYXRofHx0aGlzLnBhdGgsZm9yY2VKU09OUDpyLmZvcmNlSlNPTlB8fHRoaXMuZm9yY2VKU09OUCxqc29ucDpyLmpzb25wfHx0aGlzLmpzb25wLGZvcmNlQmFzZTY0OnIuZm9yY2VCYXNlNjR8fHRoaXMuZm9yY2VCYXNlNjQsZW5hYmxlc1hEUjpyLmVuYWJsZXNYRFJ8fHRoaXMuZW5hYmxlc1hEUix3aXRoQ3JlZGVudGlhbHM6ci53aXRoQ3JlZGVudGlhbHN8fHRoaXMud2l0aENyZWRlbnRpYWxzLHRpbWVzdGFtcFJlcXVlc3RzOnIudGltZXN0YW1wUmVxdWVzdHN8fHRoaXMudGltZXN0YW1wUmVxdWVzdHMsdGltZXN0YW1wUGFyYW06ci50aW1lc3RhbXBQYXJhbXx8dGhpcy50aW1lc3RhbXBQYXJhbSxwb2xpY3lQb3J0OnIucG9saWN5UG9ydHx8dGhpcy5wb2xpY3lQb3J0LHBmeDpyLnBmeHx8dGhpcy5wZngsa2V5OnIua2V5fHx0aGlzLmtleSxwYXNzcGhyYXNlOnIucGFzc3BocmFzZXx8dGhpcy5wYXNzcGhyYXNlLGNlcnQ6ci5jZXJ0fHx0aGlzLmNlcnQsY2E6ci5jYXx8dGhpcy5jYSxjaXBoZXJzOnIuY2lwaGVyc3x8dGhpcy5jaXBoZXJzLHJlamVjdFVuYXV0aG9yaXplZDpyLnJlamVjdFVuYXV0aG9yaXplZHx8dGhpcy5yZWplY3RVbmF1dGhvcml6ZWQscGVyTWVzc2FnZURlZmxhdGU6ci5wZXJNZXNzYWdlRGVmbGF0ZXx8dGhpcy5wZXJNZXNzYWdlRGVmbGF0ZSxleHRyYUhlYWRlcnM6ci5leHRyYUhlYWRlcnN8fHRoaXMuZXh0cmFIZWFkZXJzLGZvcmNlTm9kZTpyLmZvcmNlTm9kZXx8dGhpcy5mb3JjZU5vZGUsbG9jYWxBZGRyZXNzOnIubG9jYWxBZGRyZXNzfHx0aGlzLmxvY2FsQWRkcmVzcyxyZXF1ZXN0VGltZW91dDpyLnJlcXVlc3RUaW1lb3V0fHx0aGlzLnJlcXVlc3RUaW1lb3V0LHByb3RvY29sczpyLnByb3RvY29sc3x8dm9pZCAwLGlzUmVhY3ROYXRpdmU6dGhpcy5pc1JlYWN0TmF0aXZlfSl9O2Z1bmN0aW9uIHUoZSl7dmFyIHQ9e307Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHR9bC5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlO2lmKHRoaXMucmVtZW1iZXJVcGdyYWRlJiZsLnByaW9yV2Vic29ja2V0U3VjY2VzcyYmdGhpcy50cmFuc3BvcnRzLmluZGV4T2YoYHdlYnNvY2tldGApIT09LTEpZT1gd2Vic29ja2V0YDtlbHNlIGlmKHRoaXMudHJhbnNwb3J0cy5sZW5ndGg9PT0wKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmVtaXQoYGVycm9yYCxgTm8gdHJhbnNwb3J0cyBhdmFpbGFibGVgKX0sMCk7cmV0dXJufWVsc2UgZT10aGlzLnRyYW5zcG9ydHNbMF07dGhpcy5yZWFkeVN0YXRlPWBvcGVuaW5nYDt0cnl7ZT10aGlzLmNyZWF0ZVRyYW5zcG9ydChlKX1jYXRjaHt0aGlzLnRyYW5zcG9ydHMuc2hpZnQoKSx0aGlzLm9wZW4oKTtyZXR1cm59ZS5vcGVuKCksdGhpcy5zZXRUcmFuc3BvcnQoZSl9LGwucHJvdG90eXBlLnNldFRyYW5zcG9ydD1mdW5jdGlvbihlKXtpKGBzZXR0aW5nIHRyYW5zcG9ydCAlc2AsZS5uYW1lKTt2YXIgdD10aGlzO3RoaXMudHJhbnNwb3J0JiYoaShgY2xlYXJpbmcgZXhpc3RpbmcgdHJhbnNwb3J0ICVzYCx0aGlzLnRyYW5zcG9ydC5uYW1lKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSksdGhpcy50cmFuc3BvcnQ9ZSxlLm9uKGBkcmFpbmAsZnVuY3Rpb24oKXt0Lm9uRHJhaW4oKX0pLm9uKGBwYWNrZXRgLGZ1bmN0aW9uKGUpe3Qub25QYWNrZXQoZSl9KS5vbihgZXJyb3JgLGZ1bmN0aW9uKGUpe3Qub25FcnJvcihlKX0pLm9uKGBjbG9zZWAsZnVuY3Rpb24oKXt0Lm9uQ2xvc2UoYHRyYW5zcG9ydCBjbG9zZWApfSl9LGwucHJvdG90eXBlLnByb2JlPWZ1bmN0aW9uKGUpe2koYHByb2JpbmcgdHJhbnNwb3J0ICIlcyJgLGUpO3ZhciB0PXRoaXMuY3JlYXRlVHJhbnNwb3J0KGUse3Byb2JlOjF9KSxuPSExLHI9dGhpcztsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz0hMTtmdW5jdGlvbiBhKCl7aWYoci5vbmx5QmluYXJ5VXBncmFkZXMpe3ZhciBhPSF0aGlzLnN1cHBvcnRzQmluYXJ5JiZyLnRyYW5zcG9ydC5zdXBwb3J0c0JpbmFyeTtufHw9YX1ufHwoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgb3BlbmVkYCxlKSx0LnNlbmQoW3t0eXBlOmBwaW5nYCxkYXRhOmBwcm9iZWB9XSksdC5vbmNlKGBwYWNrZXRgLGZ1bmN0aW9uKGEpe2lmKCFuKWlmKGEudHlwZT09PWBwb25nYCYmYS5kYXRhPT09YHByb2JlYCl7aWYoaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgcG9uZ2AsZSksci51cGdyYWRpbmc9ITAsci5lbWl0KGB1cGdyYWRpbmdgLHQpLCF0KXJldHVybjtsLnByaW9yV2Vic29ja2V0U3VjY2Vzcz10Lm5hbWU9PT1gd2Vic29ja2V0YCxpKGBwYXVzaW5nIGN1cnJlbnQgdHJhbnNwb3J0ICIlcyJgLHIudHJhbnNwb3J0Lm5hbWUpLHIudHJhbnNwb3J0LnBhdXNlKGZ1bmN0aW9uKCl7bnx8ci5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJihpKGBjaGFuZ2luZyB0cmFuc3BvcnQgYW5kIHNlbmRpbmcgdXBncmFkZSBwYWNrZXRgKSxmKCksci5zZXRUcmFuc3BvcnQodCksdC5zZW5kKFt7dHlwZTpgdXBncmFkZWB9XSksci5lbWl0KGB1cGdyYWRlYCx0KSx0PW51bGwsci51cGdyYWRpbmc9ITEsci5mbHVzaCgpKX0pfWVsc2V7aShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkYCxlKTt2YXIgbz1FcnJvcihgcHJvYmUgZXJyb3JgKTtvLnRyYW5zcG9ydD10Lm5hbWUsci5lbWl0KGB1cGdyYWRlRXJyb3JgLG8pfX0pKX1mdW5jdGlvbiBvKCl7bnx8KG49ITAsZigpLHQuY2xvc2UoKSx0PW51bGwpfWZ1bmN0aW9uIHMobil7dmFyIGE9RXJyb3IoYHByb2JlIGVycm9yOiBgK24pO2EudHJhbnNwb3J0PXQubmFtZSxvKCksaShgcHJvYmUgdHJhbnNwb3J0ICIlcyIgZmFpbGVkIGJlY2F1c2Ugb2YgZXJyb3I6ICVzYCxlLG4pLHIuZW1pdChgdXBncmFkZUVycm9yYCxhKX1mdW5jdGlvbiBjKCl7cyhgdHJhbnNwb3J0IGNsb3NlZGApfWZ1bmN0aW9uIHUoKXtzKGBzb2NrZXQgY2xvc2VkYCl9ZnVuY3Rpb24gZChlKXt0JiZlLm5hbWUhPT10Lm5hbWUmJihpKGAiJXMiIHdvcmtzIC0gYWJvcnRpbmcgIiVzImAsZS5uYW1lLHQubmFtZSksbygpKX1mdW5jdGlvbiBmKCl7dC5yZW1vdmVMaXN0ZW5lcihgb3BlbmAsYSksdC5yZW1vdmVMaXN0ZW5lcihgZXJyb3JgLHMpLHQucmVtb3ZlTGlzdGVuZXIoYGNsb3NlYCxjKSxyLnJlbW92ZUxpc3RlbmVyKGBjbG9zZWAsdSksci5yZW1vdmVMaXN0ZW5lcihgdXBncmFkaW5nYCxkKX10Lm9uY2UoYG9wZW5gLGEpLHQub25jZShgZXJyb3JgLHMpLHQub25jZShgY2xvc2VgLGMpLHRoaXMub25jZShgY2xvc2VgLHUpLHRoaXMub25jZShgdXBncmFkaW5nYCxkKSx0Lm9wZW4oKX0sbC5wcm90b3R5cGUub25PcGVuPWZ1bmN0aW9uKCl7aWYoaShgc29ja2V0IG9wZW5gKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLGwucHJpb3JXZWJzb2NrZXRTdWNjZXNzPXRoaXMudHJhbnNwb3J0Lm5hbWU9PT1gd2Vic29ja2V0YCx0aGlzLmVtaXQoYG9wZW5gKSx0aGlzLmZsdXNoKCksdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gJiZ0aGlzLnVwZ3JhZGUmJnRoaXMudHJhbnNwb3J0LnBhdXNlKXtpKGBzdGFydGluZyB1cGdyYWRlIHByb2Jlc2ApO2Zvcih2YXIgZT0wLHQ9dGhpcy51cGdyYWRlcy5sZW5ndGg7ZTx0O2UrKyl0aGlzLnByb2JlKHRoaXMudXBncmFkZXNbZV0pfX0sbC5wcm90b3R5cGUub25QYWNrZXQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYClzd2l0Y2goaShgc29ja2V0IHJlY2VpdmU6IHR5cGUgIiVzIiwgZGF0YSAiJXMiYCxlLnR5cGUsZS5kYXRhKSx0aGlzLmVtaXQoYHBhY2tldGAsZSksdGhpcy5lbWl0KGBoZWFydGJlYXRgKSxlLnR5cGUpe2Nhc2Vgb3BlbmA6dGhpcy5vbkhhbmRzaGFrZShKU09OLnBhcnNlKGUuZGF0YSkpO2JyZWFrO2Nhc2VgcG9uZ2A6dGhpcy5zZXRQaW5nKCksdGhpcy5lbWl0KGBwb25nYCk7YnJlYWs7Y2FzZWBlcnJvcmA6dmFyIHQ9RXJyb3IoYHNlcnZlciBlcnJvcmApO3QuY29kZT1lLmRhdGEsdGhpcy5vbkVycm9yKHQpO2JyZWFrO2Nhc2VgbWVzc2FnZWA6dGhpcy5lbWl0KGBkYXRhYCxlLmRhdGEpLHRoaXMuZW1pdChgbWVzc2FnZWAsZS5kYXRhKTticmVha31lbHNlIGkoYHBhY2tldCByZWNlaXZlZCB3aXRoIHNvY2tldCByZWFkeVN0YXRlICIlcyJgLHRoaXMucmVhZHlTdGF0ZSl9LGwucHJvdG90eXBlLm9uSGFuZHNoYWtlPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgaGFuZHNoYWtlYCxlKSx0aGlzLmlkPWUuc2lkLHRoaXMudHJhbnNwb3J0LnF1ZXJ5LnNpZD1lLnNpZCx0aGlzLnVwZ3JhZGVzPXRoaXMuZmlsdGVyVXBncmFkZXMoZS51cGdyYWRlcyksdGhpcy5waW5nSW50ZXJ2YWw9ZS5waW5nSW50ZXJ2YWwsdGhpcy5waW5nVGltZW91dD1lLnBpbmdUaW1lb3V0LHRoaXMub25PcGVuKCksdGhpcy5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJih0aGlzLnNldFBpbmcoKSx0aGlzLnJlbW92ZUxpc3RlbmVyKGBoZWFydGJlYXRgLHRoaXMub25IZWFydGJlYXQpLHRoaXMub24oYGhlYXJ0YmVhdGAsdGhpcy5vbkhlYXJ0YmVhdCkpfSxsLnByb3RvdHlwZS5vbkhlYXJ0YmVhdD1mdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKTt2YXIgdD10aGlzO3QucGluZ1RpbWVvdXRUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZWFkeVN0YXRlIT09YGNsb3NlZGAmJnQub25DbG9zZShgcGluZyB0aW1lb3V0YCl9LGV8fHQucGluZ0ludGVydmFsK3QucGluZ1RpbWVvdXQpfSxsLnByb3RvdHlwZS5zZXRQaW5nPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQoZS5waW5nSW50ZXJ2YWxUaW1lciksZS5waW5nSW50ZXJ2YWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aShgd3JpdGluZyBwaW5nIHBhY2tldCAtIGV4cGVjdGluZyBwb25nIHdpdGhpbiAlc21zYCxlLnBpbmdUaW1lb3V0KSxlLnBpbmcoKSxlLm9uSGVhcnRiZWF0KGUucGluZ1RpbWVvdXQpfSxlLnBpbmdJbnRlcnZhbCl9LGwucHJvdG90eXBlLnBpbmc9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuc2VuZFBhY2tldChgcGluZ2AsZnVuY3Rpb24oKXtlLmVtaXQoYHBpbmdgKX0pfSxsLnByb3RvdHlwZS5vbkRyYWluPWZ1bmN0aW9uKCl7dGhpcy53cml0ZUJ1ZmZlci5zcGxpY2UoMCx0aGlzLnByZXZCdWZmZXJMZW4pLHRoaXMucHJldkJ1ZmZlckxlbj0wLHRoaXMud3JpdGVCdWZmZXIubGVuZ3RoPT09MD90aGlzLmVtaXQoYGRyYWluYCk6dGhpcy5mbHVzaCgpfSxsLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe3RoaXMucmVhZHlTdGF0ZSE9PWBjbG9zZWRgJiZ0aGlzLnRyYW5zcG9ydC53cml0YWJsZSYmIXRoaXMudXBncmFkaW5nJiZ0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCYmKGkoYGZsdXNoaW5nICVkIHBhY2tldHMgaW4gc29ja2V0YCx0aGlzLndyaXRlQnVmZmVyLmxlbmd0aCksdGhpcy50cmFuc3BvcnQuc2VuZCh0aGlzLndyaXRlQnVmZmVyKSx0aGlzLnByZXZCdWZmZXJMZW49dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGgsdGhpcy5lbWl0KGBmbHVzaGApKX0sbC5wcm90b3R5cGUud3JpdGU9bC5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuc2VuZFBhY2tldChgbWVzc2FnZWAsZSx0LG4pLHRoaXN9LGwucHJvdG90eXBlLnNlbmRQYWNrZXQ9ZnVuY3Rpb24oZSx0LG4scil7aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmAmJihyPXQsdD12b2lkIDApLHR5cGVvZiBuPT1gZnVuY3Rpb25gJiYocj1uLG49bnVsbCksISh0aGlzLnJlYWR5U3RhdGU9PT1gY2xvc2luZ2B8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zZWRgKSl7bnx8PXt9LG4uY29tcHJlc3M9ITEhPT1uLmNvbXByZXNzO3ZhciBpPXt0eXBlOmUsZGF0YTp0LG9wdGlvbnM6bn07dGhpcy5lbWl0KGBwYWNrZXRDcmVhdGVgLGkpLHRoaXMud3JpdGVCdWZmZXIucHVzaChpKSxyJiZ0aGlzLm9uY2UoYGZsdXNoYCxyKSx0aGlzLmZsdXNoKCl9fSxsLnByb3RvdHlwZS5jbG9zZT1mdW5jdGlvbigpe2lmKHRoaXMucmVhZHlTdGF0ZT09PWBvcGVuaW5nYHx8dGhpcy5yZWFkeVN0YXRlPT09YG9wZW5gKXt0aGlzLnJlYWR5U3RhdGU9YGNsb3NpbmdgO3ZhciBlPXRoaXM7dGhpcy53cml0ZUJ1ZmZlci5sZW5ndGg/dGhpcy5vbmNlKGBkcmFpbmAsZnVuY3Rpb24oKXt0aGlzLnVwZ3JhZGluZz9yKCk6dCgpfSk6dGhpcy51cGdyYWRpbmc/cigpOnQoKX1mdW5jdGlvbiB0KCl7ZS5vbkNsb3NlKGBmb3JjZWQgY2xvc2VgKSxpKGBzb2NrZXQgY2xvc2luZyAtIHRlbGxpbmcgdHJhbnNwb3J0IHRvIGNsb3NlYCksZS50cmFuc3BvcnQuY2xvc2UoKX1mdW5jdGlvbiBuKCl7ZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZWAsbiksZS5yZW1vdmVMaXN0ZW5lcihgdXBncmFkZUVycm9yYCxuKSx0KCl9ZnVuY3Rpb24gcigpe2Uub25jZShgdXBncmFkZWAsbiksZS5vbmNlKGB1cGdyYWRlRXJyb3JgLG4pfXJldHVybiB0aGlzfSxsLnByb3RvdHlwZS5vbkVycm9yPWZ1bmN0aW9uKGUpe2koYHNvY2tldCBlcnJvciAlamAsZSksbC5wcmlvcldlYnNvY2tldFN1Y2Nlc3M9ITEsdGhpcy5lbWl0KGBlcnJvcmAsZSksdGhpcy5vbkNsb3NlKGB0cmFuc3BvcnQgZXJyb3JgLGUpfSxsLnByb3RvdHlwZS5vbkNsb3NlPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgfHx0aGlzLnJlYWR5U3RhdGU9PT1gb3BlbmB8fHRoaXMucmVhZHlTdGF0ZT09PWBjbG9zaW5nYCl7aShgc29ja2V0IGNsb3NlIHdpdGggcmVhc29uOiAiJXMiYCxlKTt2YXIgbj10aGlzO2NsZWFyVGltZW91dCh0aGlzLnBpbmdJbnRlcnZhbFRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5waW5nVGltZW91dFRpbWVyKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoYGNsb3NlYCksdGhpcy50cmFuc3BvcnQuY2xvc2UoKSx0aGlzLnRyYW5zcG9ydC5yZW1vdmVBbGxMaXN0ZW5lcnMoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5pZD1udWxsLHRoaXMuZW1pdChgY2xvc2VgLGUsdCksbi53cml0ZUJ1ZmZlcj1bXSxuLnByZXZCdWZmZXJMZW49MH19LGwucHJvdG90eXBlLmZpbHRlclVwZ3JhZGVzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTAscj1lLmxlbmd0aDtuPHI7bisrKX5hKHRoaXMudHJhbnNwb3J0cyxlW25dKSYmdC5wdXNoKGVbbl0pO3JldHVybiB0fX0pKSxkYz1zKCgoZSx0KT0+e3QuZXhwb3J0cz11YygpLHQuZXhwb3J0cy5wYXJzZXI9WnMoKX0pKSxmYz1zKCgoZSx0KT0+e3QhPT12b2lkIDAmJih0LmV4cG9ydHM9bik7ZnVuY3Rpb24gbihlKXtpZihlKXJldHVybiByKGUpfWZ1bmN0aW9uIHIoZSl7Zm9yKHZhciB0IGluIG4ucHJvdG90eXBlKWVbdF09bi5wcm90b3R5cGVbdF07cmV0dXJuIGV9bi5wcm90b3R5cGUub249bi5wcm90b3R5cGUuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fSwodGhpcy5fY2FsbGJhY2tzW2AkYCtlXT10aGlzLl9jYWxsYmFja3NbYCRgK2VdfHxbXSkucHVzaCh0KSx0aGlzfSxuLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3RoaXMub2ZmKGUsbiksdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIG4uZm49dCx0aGlzLm9uKGUsbiksdGhpc30sbi5wcm90b3R5cGUub2ZmPW4ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPW4ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1uLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7aWYodGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sYXJndW1lbnRzLmxlbmd0aD09MClyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXt9LHRoaXM7dmFyIG49dGhpcy5fY2FsbGJhY2tzW2AkYCtlXTtpZighbilyZXR1cm4gdGhpcztpZihhcmd1bWVudHMubGVuZ3RoPT0xKXJldHVybiBkZWxldGUgdGhpcy5fY2FsbGJhY2tzW2AkYCtlXSx0aGlzO2Zvcih2YXIgcixpPTA7aTxuLmxlbmd0aDtpKyspaWYocj1uW2ldLHI9PT10fHxyLmZuPT09dCl7bi5zcGxpY2UoaSwxKTticmVha31yZXR1cm4gdGhpc30sbi5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbihlKXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHx7fTt2YXIgdD1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKSxuPXRoaXMuX2NhbGxiYWNrc1tgJGArZV07aWYobil7bj1uLnNsaWNlKDApO2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpOysrciluW3JdLmFwcGx5KHRoaXMsdCl9cmV0dXJuIHRoaXN9LG4ucHJvdG90eXBlLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fY2FsbGJhY2tzPXRoaXMuX2NhbGxiYWNrc3x8e30sdGhpcy5fY2FsbGJhY2tzW2AkYCtlXXx8W119LG4ucHJvdG90eXBlLmhhc0xpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4hIXRoaXMubGlzdGVuZXJzKGUpLmxlbmd0aH19KSkscGM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUsdCl7dmFyIG49W107dHx8PTA7Zm9yKHZhciByPXR8fDA7cjxlLmxlbmd0aDtyKyspbltyLXRdPWVbcl07cmV0dXJuIG59fSkpLG1jPXMoKChlLHQpPT57dC5leHBvcnRzPW47ZnVuY3Rpb24gbihlLHQsbil7cmV0dXJuIGUub24odCxuKSx7ZGVzdHJveTpmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIodCxuKX19fX0pKSxoYz1zKCgoZSx0KT0+e3ZhciBuPVtdLnNsaWNlO3QuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKHR5cGVvZiB0PT1gc3RyaW5nYCYmKHQ9ZVt0XSksdHlwZW9mIHQhPWBmdW5jdGlvbmApdGhyb3cgRXJyb3IoYGJpbmQoKSByZXF1aXJlcyBhIGZ1bmN0aW9uYCk7dmFyIHI9bi5jYWxsKGFyZ3VtZW50cywyKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdC5hcHBseShlLHIuY29uY2F0KG4uY2FsbChhcmd1bWVudHMpKSl9fX0pKSxnYz1zKChlPT57ZS5lbmNvZGU9ZnVuY3Rpb24oZSl7dmFyIHQ9YGA7Zm9yKHZhciBuIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShuKSYmKHQubGVuZ3RoJiYodCs9YCZgKSx0Kz1lbmNvZGVVUklDb21wb25lbnQobikrYD1gK2VuY29kZVVSSUNvbXBvbmVudChlW25dKSk7cmV0dXJuIHR9LGUuZGVjb2RlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD17fSxuPWUuc3BsaXQoYCZgKSxyPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgYT1uW3JdLnNwbGl0KGA9YCk7dFtkZWNvZGVVUklDb21wb25lbnQoYVswXSldPWRlY29kZVVSSUNvbXBvbmVudChhWzFdKX1yZXR1cm4gdH19KSksX2M9cygoKGUsdCk9Pnt2YXIgbj1CcygpLHI9ZmMoKSxpPXBjKCksYT1tYygpLG89aGMoKSxzPWpzKCkoYHNvY2tldC5pby1jbGllbnQ6c29ja2V0YCksYz1nYygpLGw9R3MoKTt0LmV4cG9ydHM9ZT1mO3ZhciB1PXtjb25uZWN0OjEsY29ubmVjdF9lcnJvcjoxLGNvbm5lY3RfdGltZW91dDoxLGNvbm5lY3Rpbmc6MSxkaXNjb25uZWN0OjEsZXJyb3I6MSxyZWNvbm5lY3Q6MSxyZWNvbm5lY3RfYXR0ZW1wdDoxLHJlY29ubmVjdF9mYWlsZWQ6MSxyZWNvbm5lY3RfZXJyb3I6MSxyZWNvbm5lY3Rpbmc6MSxwaW5nOjEscG9uZzoxfSxkPXIucHJvdG90eXBlLmVtaXQ7ZnVuY3Rpb24gZihlLHQsbil7dGhpcy5pbz1lLHRoaXMubnNwPXQsdGhpcy5qc29uPXRoaXMsdGhpcy5pZHM9MCx0aGlzLmFja3M9e30sdGhpcy5yZWNlaXZlQnVmZmVyPVtdLHRoaXMuc2VuZEJ1ZmZlcj1bXSx0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLmRpc2Nvbm5lY3RlZD0hMCx0aGlzLmZsYWdzPXt9LG4mJm4ucXVlcnkmJih0aGlzLnF1ZXJ5PW4ucXVlcnkpLHRoaXMuaW8uYXV0b0Nvbm5lY3QmJnRoaXMub3BlbigpfXIoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnN1YkV2ZW50cz1mdW5jdGlvbigpe2lmKCF0aGlzLnN1YnMpe3ZhciBlPXRoaXMuaW87dGhpcy5zdWJzPVthKGUsYG9wZW5gLG8odGhpcyxgb25vcGVuYCkpLGEoZSxgcGFja2V0YCxvKHRoaXMsYG9ucGFja2V0YCkpLGEoZSxgY2xvc2VgLG8odGhpcyxgb25jbG9zZWApKV19fSxmLnByb3RvdHlwZS5vcGVuPWYucHJvdG90eXBlLmNvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0ZWQ/dGhpczoodGhpcy5zdWJFdmVudHMoKSx0aGlzLmlvLm9wZW4oKSx0aGlzLmlvLnJlYWR5U3RhdGU9PT1gb3BlbmAmJnRoaXMub25vcGVuKCksdGhpcy5lbWl0KGBjb25uZWN0aW5nYCksdGhpcyl9LGYucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1pKGFyZ3VtZW50cyk7cmV0dXJuIGUudW5zaGlmdChgbWVzc2FnZWApLHRoaXMuZW1pdC5hcHBseSh0aGlzLGUpLHRoaXN9LGYucHJvdG90eXBlLmVtaXQ9ZnVuY3Rpb24oZSl7aWYodS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gZC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpczt2YXIgdD1pKGFyZ3VtZW50cykscj17dHlwZToodGhpcy5mbGFncy5iaW5hcnk9PT12b2lkIDA/bCh0KTp0aGlzLmZsYWdzLmJpbmFyeSk/bi5CSU5BUllfRVZFTlQ6bi5FVkVOVCxkYXRhOnR9O3JldHVybiByLm9wdGlvbnM9e30sci5vcHRpb25zLmNvbXByZXNzPSF0aGlzLmZsYWdzfHwhMSE9PXRoaXMuZmxhZ3MuY29tcHJlc3MsdHlwZW9mIHRbdC5sZW5ndGgtMV09PWBmdW5jdGlvbmAmJihzKGBlbWl0dGluZyBwYWNrZXQgd2l0aCBhY2sgaWQgJWRgLHRoaXMuaWRzKSx0aGlzLmFja3NbdGhpcy5pZHNdPXQucG9wKCksci5pZD10aGlzLmlkcysrKSx0aGlzLmNvbm5lY3RlZD90aGlzLnBhY2tldChyKTp0aGlzLnNlbmRCdWZmZXIucHVzaChyKSx0aGlzLmZsYWdzPXt9LHRoaXN9LGYucHJvdG90eXBlLnBhY2tldD1mdW5jdGlvbihlKXtlLm5zcD10aGlzLm5zcCx0aGlzLmlvLnBhY2tldChlKX0sZi5wcm90b3R5cGUub25vcGVuPWZ1bmN0aW9uKCl7aWYocyhgdHJhbnNwb3J0IGlzIG9wZW4gLSBjb25uZWN0aW5nYCksdGhpcy5uc3AhPT1gL2ApaWYodGhpcy5xdWVyeSl7dmFyIGU9dHlwZW9mIHRoaXMucXVlcnk9PWBvYmplY3RgP2MuZW5jb2RlKHRoaXMucXVlcnkpOnRoaXMucXVlcnk7cyhgc2VuZGluZyBjb25uZWN0IHBhY2tldCB3aXRoIHF1ZXJ5ICVzYCxlKSx0aGlzLnBhY2tldCh7dHlwZTpuLkNPTk5FQ1QscXVlcnk6ZX0pfWVsc2UgdGhpcy5wYWNrZXQoe3R5cGU6bi5DT05ORUNUfSl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7cyhgY2xvc2UgKCVzKWAsZSksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITAsZGVsZXRlIHRoaXMuaWQsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxlKX0sZi5wcm90b3R5cGUub25wYWNrZXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uc3A9PT10aGlzLm5zcCxyPWUudHlwZT09PW4uRVJST1ImJmUubnNwPT09YC9gO2lmKCEoIXQmJiFyKSlzd2l0Y2goZS50eXBlKXtjYXNlIG4uQ09OTkVDVDp0aGlzLm9uY29ubmVjdCgpO2JyZWFrO2Nhc2Ugbi5FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkJJTkFSWV9FVkVOVDp0aGlzLm9uZXZlbnQoZSk7YnJlYWs7Y2FzZSBuLkFDSzp0aGlzLm9uYWNrKGUpO2JyZWFrO2Nhc2Ugbi5CSU5BUllfQUNLOnRoaXMub25hY2soZSk7YnJlYWs7Y2FzZSBuLkRJU0NPTk5FQ1Q6dGhpcy5vbmRpc2Nvbm5lY3QoKTticmVhaztjYXNlIG4uRVJST1I6dGhpcy5lbWl0KGBlcnJvcmAsZS5kYXRhKTticmVha319LGYucHJvdG90eXBlLm9uZXZlbnQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhfHxbXTtzKGBlbWl0dGluZyBldmVudCAlamAsdCksZS5pZCE9bnVsbCYmKHMoYGF0dGFjaGluZyBhY2sgY2FsbGJhY2sgdG8gZXZlbnRgKSx0LnB1c2godGhpcy5hY2soZS5pZCkpKSx0aGlzLmNvbm5lY3RlZD9kLmFwcGx5KHRoaXMsdCk6dGhpcy5yZWNlaXZlQnVmZmVyLnB1c2godCl9LGYucHJvdG90eXBlLmFjaz1mdW5jdGlvbihlKXt2YXIgdD10aGlzLHI9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIXIpe3I9ITA7dmFyIGE9aShhcmd1bWVudHMpO3MoYHNlbmRpbmcgYWNrICVqYCxhKSx0LnBhY2tldCh7dHlwZTpsKGEpP24uQklOQVJZX0FDSzpuLkFDSyxpZDplLGRhdGE6YX0pfX19LGYucHJvdG90eXBlLm9uYWNrPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWNrc1tlLmlkXTt0eXBlb2YgdD09YGZ1bmN0aW9uYD8ocyhgY2FsbGluZyBhY2sgJXMgd2l0aCAlamAsZS5pZCxlLmRhdGEpLHQuYXBwbHkodGhpcyxlLmRhdGEpLGRlbGV0ZSB0aGlzLmFja3NbZS5pZF0pOnMoYGJhZCBhY2sgJXNgLGUuaWQpfSxmLnByb3RvdHlwZS5vbmNvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLmNvbm5lY3RlZD0hMCx0aGlzLmRpc2Nvbm5lY3RlZD0hMSx0aGlzLmVtaXQoYGNvbm5lY3RgKSx0aGlzLmVtaXRCdWZmZXJlZCgpfSxmLnByb3RvdHlwZS5lbWl0QnVmZmVyZWQ9ZnVuY3Rpb24oKXt2YXIgZTtmb3IoZT0wO2U8dGhpcy5yZWNlaXZlQnVmZmVyLmxlbmd0aDtlKyspZC5hcHBseSh0aGlzLHRoaXMucmVjZWl2ZUJ1ZmZlcltlXSk7Zm9yKHRoaXMucmVjZWl2ZUJ1ZmZlcj1bXSxlPTA7ZTx0aGlzLnNlbmRCdWZmZXIubGVuZ3RoO2UrKyl0aGlzLnBhY2tldCh0aGlzLnNlbmRCdWZmZXJbZV0pO3RoaXMuc2VuZEJ1ZmZlcj1bXX0sZi5wcm90b3R5cGUub25kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cyhgc2VydmVyIGRpc2Nvbm5lY3QgKCVzKWAsdGhpcy5uc3ApLHRoaXMuZGVzdHJveSgpLHRoaXMub25jbG9zZShgaW8gc2VydmVyIGRpc2Nvbm5lY3RgKX0sZi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2lmKHRoaXMuc3Vicyl7Zm9yKHZhciBlPTA7ZTx0aGlzLnN1YnMubGVuZ3RoO2UrKyl0aGlzLnN1YnNbZV0uZGVzdHJveSgpO3RoaXMuc3Vicz1udWxsfXRoaXMuaW8uZGVzdHJveSh0aGlzKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3RlZCYmKHMoYHBlcmZvcm1pbmcgZGlzY29ubmVjdCAoJXMpYCx0aGlzLm5zcCksdGhpcy5wYWNrZXQoe3R5cGU6bi5ESVNDT05ORUNUfSkpLHRoaXMuZGVzdHJveSgpLHRoaXMuY29ubmVjdGVkJiZ0aGlzLm9uY2xvc2UoYGlvIGNsaWVudCBkaXNjb25uZWN0YCksdGhpc30sZi5wcm90b3R5cGUuY29tcHJlc3M9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuY29tcHJlc3M9ZSx0aGlzfSxmLnByb3RvdHlwZS5iaW5hcnk9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZmxhZ3MuYmluYXJ5PWUsdGhpc319KSksdmM9cygoKGUsdCk9Pnt0LmV4cG9ydHM9bjtmdW5jdGlvbiBuKGUpe2V8fD17fSx0aGlzLm1zPWUubWlufHwxMDAsdGhpcy5tYXg9ZS5tYXh8fDFlNCx0aGlzLmZhY3Rvcj1lLmZhY3Rvcnx8Mix0aGlzLmppdHRlcj1lLmppdHRlcj4wJiZlLmppdHRlcjw9MT9lLmppdHRlcjowLHRoaXMuYXR0ZW1wdHM9MH1uLnByb3RvdHlwZS5kdXJhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXRoaXMubXMqdGhpcy5mYWN0b3IqKisgdGhpcy5hdHRlbXB0cysrO2lmKHRoaXMuaml0dGVyKXt2YXIgdD1NYXRoLnJhbmRvbSgpLG49TWF0aC5mbG9vcih0KnRoaXMuaml0dGVyKmUpO2U9TWF0aC5mbG9vcih0KjEwKSYxP2UrbjplLW59cmV0dXJuIE1hdGgubWluKGUsdGhpcy5tYXgpfDB9LG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5hdHRlbXB0cz0wfSxuLnByb3RvdHlwZS5zZXRNaW49ZnVuY3Rpb24oZSl7dGhpcy5tcz1lfSxuLnByb3RvdHlwZS5zZXRNYXg9ZnVuY3Rpb24oZSl7dGhpcy5tYXg9ZX0sbi5wcm90b3R5cGUuc2V0Sml0dGVyPWZ1bmN0aW9uKGUpe3RoaXMuaml0dGVyPWV9fSkpLHljPXMoKChlLHQpPT57dmFyIG49ZGMoKSxyPV9jKCksaT1mYygpLGE9QnMoKSxvPW1jKCkscz1oYygpLGM9anMoKShgc29ja2V0LmlvLWNsaWVudDptYW5hZ2VyYCksbD1jYygpLHU9dmMoKSxkPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dC5leHBvcnRzPWY7ZnVuY3Rpb24gZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGYpKXJldHVybiBuZXcgZihlLHQpO2UmJnR5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9LHQucGF0aD10LnBhdGh8fGAvc29ja2V0LmlvYCx0aGlzLm5zcHM9e30sdGhpcy5zdWJzPVtdLHRoaXMub3B0cz10LHRoaXMucmVjb25uZWN0aW9uKHQucmVjb25uZWN0aW9uIT09ITEpLHRoaXMucmVjb25uZWN0aW9uQXR0ZW1wdHModC5yZWNvbm5lY3Rpb25BdHRlbXB0c3x8MS8wKSx0aGlzLnJlY29ubmVjdGlvbkRlbGF5KHQucmVjb25uZWN0aW9uRGVsYXl8fDFlMyksdGhpcy5yZWNvbm5lY3Rpb25EZWxheU1heCh0LnJlY29ubmVjdGlvbkRlbGF5TWF4fHw1ZTMpLHRoaXMucmFuZG9taXphdGlvbkZhY3Rvcih0LnJhbmRvbWl6YXRpb25GYWN0b3J8fC41KSx0aGlzLmJhY2tvZmY9bmV3IHUoe21pbjp0aGlzLnJlY29ubmVjdGlvbkRlbGF5KCksbWF4OnRoaXMucmVjb25uZWN0aW9uRGVsYXlNYXgoKSxqaXR0ZXI6dGhpcy5yYW5kb21pemF0aW9uRmFjdG9yKCl9KSx0aGlzLnRpbWVvdXQodC50aW1lb3V0PT1udWxsPzJlNDp0LnRpbWVvdXQpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLnVyaT1lLHRoaXMuY29ubmVjdGluZz1bXSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5lbmNvZGluZz0hMSx0aGlzLnBhY2tldEJ1ZmZlcj1bXTt2YXIgbj10LnBhcnNlcnx8YTt0aGlzLmVuY29kZXI9bmV3IG4uRW5jb2Rlcix0aGlzLmRlY29kZXI9bmV3IG4uRGVjb2Rlcix0aGlzLmF1dG9Db25uZWN0PXQuYXV0b0Nvbm5lY3QhPT0hMSx0aGlzLmF1dG9Db25uZWN0JiZ0aGlzLm9wZW4oKX1mLnByb3RvdHlwZS5lbWl0QWxsPWZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuZW1pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJnRoaXMubnNwc1tlXS5lbWl0LmFwcGx5KHRoaXMubnNwc1tlXSxhcmd1bWVudHMpfSxmLnByb3RvdHlwZS51cGRhdGVTb2NrZXRJZHM9ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5uc3BzKWQuY2FsbCh0aGlzLm5zcHMsZSkmJih0aGlzLm5zcHNbZV0uaWQ9dGhpcy5nZW5lcmF0ZUlkKGUpKX0sZi5wcm90b3R5cGUuZ2VuZXJhdGVJZD1mdW5jdGlvbihlKXtyZXR1cm4oZT09PWAvYD9gYDplK2AjYCkrdGhpcy5lbmdpbmUuaWR9LGkoZi5wcm90b3R5cGUpLGYucHJvdG90eXBlLnJlY29ubmVjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uPSEhZSx0aGlzKTp0aGlzLl9yZWNvbm5lY3Rpb259LGYucHJvdG90eXBlLnJlY29ubmVjdGlvbkF0dGVtcHRzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9yZWNvbm5lY3Rpb25BdHRlbXB0cz1lLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzfSxmLnByb3RvdHlwZS5yZWNvbm5lY3Rpb25EZWxheT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fcmVjb25uZWN0aW9uRGVsYXk9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRNaW4oZSksdGhpcyk6dGhpcy5fcmVjb25uZWN0aW9uRGVsYXl9LGYucHJvdG90eXBlLnJhbmRvbWl6YXRpb25GYWN0b3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JhbmRvbWl6YXRpb25GYWN0b3I9ZSx0aGlzLmJhY2tvZmYmJnRoaXMuYmFja29mZi5zZXRKaXR0ZXIoZSksdGhpcyk6dGhpcy5fcmFuZG9taXphdGlvbkZhY3Rvcn0sZi5wcm90b3R5cGUucmVjb25uZWN0aW9uRGVsYXlNYXg9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4PWUsdGhpcy5iYWNrb2ZmJiZ0aGlzLmJhY2tvZmYuc2V0TWF4KGUpLHRoaXMpOnRoaXMuX3JlY29ubmVjdGlvbkRlbGF5TWF4fSxmLnByb3RvdHlwZS50aW1lb3V0PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLl90aW1lb3V0PWUsdGhpcyk6dGhpcy5fdGltZW91dH0sZi5wcm90b3R5cGUubWF5YmVSZWNvbm5lY3RPbk9wZW49ZnVuY3Rpb24oKXshdGhpcy5yZWNvbm5lY3RpbmcmJnRoaXMuX3JlY29ubmVjdGlvbiYmdGhpcy5iYWNrb2ZmLmF0dGVtcHRzPT09MCYmdGhpcy5yZWNvbm5lY3QoKX0sZi5wcm90b3R5cGUub3Blbj1mLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKGUsdCl7aWYoYyhgcmVhZHlTdGF0ZSAlc2AsdGhpcy5yZWFkeVN0YXRlKSx+dGhpcy5yZWFkeVN0YXRlLmluZGV4T2YoYG9wZW5gKSlyZXR1cm4gdGhpcztjKGBvcGVuaW5nICVzYCx0aGlzLnVyaSksdGhpcy5lbmdpbmU9bih0aGlzLnVyaSx0aGlzLm9wdHMpO3ZhciByPXRoaXMuZW5naW5lLGk9dGhpczt0aGlzLnJlYWR5U3RhdGU9YG9wZW5pbmdgLHRoaXMuc2tpcFJlY29ubmVjdD0hMTt2YXIgYT1vKHIsYG9wZW5gLGZ1bmN0aW9uKCl7aS5vbm9wZW4oKSxlJiZlKCl9KSxzPW8ocixgZXJyb3JgLGZ1bmN0aW9uKHQpe2lmKGMoYGNvbm5lY3RfZXJyb3JgKSxpLmNsZWFudXAoKSxpLnJlYWR5U3RhdGU9YGNsb3NlZGAsaS5lbWl0QWxsKGBjb25uZWN0X2Vycm9yYCx0KSxlKXt2YXIgbj1FcnJvcihgQ29ubmVjdGlvbiBlcnJvcmApO24uZGF0YT10LGUobil9ZWxzZSBpLm1heWJlUmVjb25uZWN0T25PcGVuKCl9KTtpZighMSE9PXRoaXMuX3RpbWVvdXQpe3ZhciBsPXRoaXMuX3RpbWVvdXQ7YyhgY29ubmVjdCBhdHRlbXB0IHdpbGwgdGltZW91dCBhZnRlciAlZGAsbCk7dmFyIHU9c2V0VGltZW91dChmdW5jdGlvbigpe2MoYGNvbm5lY3QgYXR0ZW1wdCB0aW1lZCBvdXQgYWZ0ZXIgJWRgLGwpLGEuZGVzdHJveSgpLHIuY2xvc2UoKSxyLmVtaXQoYGVycm9yYCxgdGltZW91dGApLGkuZW1pdEFsbChgY29ubmVjdF90aW1lb3V0YCxsKX0sbCk7dGhpcy5zdWJzLnB1c2goe2Rlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodSl9fSl9cmV0dXJuIHRoaXMuc3Vicy5wdXNoKGEpLHRoaXMuc3Vicy5wdXNoKHMpLHRoaXN9LGYucHJvdG90eXBlLm9ub3Blbj1mdW5jdGlvbigpe2MoYG9wZW5gKSx0aGlzLmNsZWFudXAoKSx0aGlzLnJlYWR5U3RhdGU9YG9wZW5gLHRoaXMuZW1pdChgb3BlbmApO3ZhciBlPXRoaXMuZW5naW5lO3RoaXMuc3Vicy5wdXNoKG8oZSxgZGF0YWAscyh0aGlzLGBvbmRhdGFgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcGluZ2Ascyh0aGlzLGBvbnBpbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgcG9uZ2Ascyh0aGlzLGBvbnBvbmdgKSkpLHRoaXMuc3Vicy5wdXNoKG8oZSxgZXJyb3JgLHModGhpcyxgb25lcnJvcmApKSksdGhpcy5zdWJzLnB1c2gobyhlLGBjbG9zZWAscyh0aGlzLGBvbmNsb3NlYCkpKSx0aGlzLnN1YnMucHVzaChvKHRoaXMuZGVjb2RlcixgZGVjb2RlZGAscyh0aGlzLGBvbmRlY29kZWRgKSkpfSxmLnByb3RvdHlwZS5vbnBpbmc9ZnVuY3Rpb24oKXt0aGlzLmxhc3RQaW5nPW5ldyBEYXRlLHRoaXMuZW1pdEFsbChgcGluZ2ApfSxmLnByb3RvdHlwZS5vbnBvbmc9ZnVuY3Rpb24oKXt0aGlzLmVtaXRBbGwoYHBvbmdgLG5ldyBEYXRlLXRoaXMubGFzdFBpbmcpfSxmLnByb3RvdHlwZS5vbmRhdGE9ZnVuY3Rpb24oZSl7dGhpcy5kZWNvZGVyLmFkZChlKX0sZi5wcm90b3R5cGUub25kZWNvZGVkPWZ1bmN0aW9uKGUpe3RoaXMuZW1pdChgcGFja2V0YCxlKX0sZi5wcm90b3R5cGUub25lcnJvcj1mdW5jdGlvbihlKXtjKGBlcnJvcmAsZSksdGhpcy5lbWl0QWxsKGBlcnJvcmAsZSl9LGYucHJvdG90eXBlLnNvY2tldD1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMubnNwc1tlXTtpZighbil7bj1uZXcgcih0aGlzLGUsdCksdGhpcy5uc3BzW2VdPW47dmFyIGk9dGhpcztuLm9uKGBjb25uZWN0aW5nYCxhKSxuLm9uKGBjb25uZWN0YCxmdW5jdGlvbigpe24uaWQ9aS5nZW5lcmF0ZUlkKGUpfSksdGhpcy5hdXRvQ29ubmVjdCYmYSgpfWZ1bmN0aW9uIGEoKXt+bChpLmNvbm5lY3Rpbmcsbil8fGkuY29ubmVjdGluZy5wdXNoKG4pfXJldHVybiBufSxmLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKGUpe3ZhciB0PWwodGhpcy5jb25uZWN0aW5nLGUpO350JiZ0aGlzLmNvbm5lY3Rpbmcuc3BsaWNlKHQsMSksIXRoaXMuY29ubmVjdGluZy5sZW5ndGgmJnRoaXMuY2xvc2UoKX0sZi5wcm90b3R5cGUucGFja2V0PWZ1bmN0aW9uKGUpe2MoYHdyaXRpbmcgcGFja2V0ICVqYCxlKTt2YXIgdD10aGlzO2UucXVlcnkmJmUudHlwZT09PTAmJihlLm5zcCs9YD9gK2UucXVlcnkpLHQuZW5jb2Rpbmc/dC5wYWNrZXRCdWZmZXIucHVzaChlKToodC5lbmNvZGluZz0hMCx0aGlzLmVuY29kZXIuZW5jb2RlKGUsZnVuY3Rpb24obil7Zm9yKHZhciByPTA7cjxuLmxlbmd0aDtyKyspdC5lbmdpbmUud3JpdGUobltyXSxlLm9wdGlvbnMpO3QuZW5jb2Rpbmc9ITEsdC5wcm9jZXNzUGFja2V0UXVldWUoKX0pKX0sZi5wcm90b3R5cGUucHJvY2Vzc1BhY2tldFF1ZXVlPWZ1bmN0aW9uKCl7aWYodGhpcy5wYWNrZXRCdWZmZXIubGVuZ3RoPjAmJiF0aGlzLmVuY29kaW5nKXt2YXIgZT10aGlzLnBhY2tldEJ1ZmZlci5zaGlmdCgpO3RoaXMucGFja2V0KGUpfX0sZi5wcm90b3R5cGUuY2xlYW51cD1mdW5jdGlvbigpe2MoYGNsZWFudXBgKTtmb3IodmFyIGU9dGhpcy5zdWJzLmxlbmd0aCx0PTA7dDxlO3QrKyl0aGlzLnN1YnMuc2hpZnQoKS5kZXN0cm95KCk7dGhpcy5wYWNrZXRCdWZmZXI9W10sdGhpcy5lbmNvZGluZz0hMSx0aGlzLmxhc3RQaW5nPW51bGwsdGhpcy5kZWNvZGVyLmRlc3Ryb3koKX0sZi5wcm90b3R5cGUuY2xvc2U9Zi5wcm90b3R5cGUuZGlzY29ubmVjdD1mdW5jdGlvbigpe2MoYGRpc2Nvbm5lY3RgKSx0aGlzLnNraXBSZWNvbm5lY3Q9ITAsdGhpcy5yZWNvbm5lY3Rpbmc9ITEsdGhpcy5yZWFkeVN0YXRlPT09YG9wZW5pbmdgJiZ0aGlzLmNsZWFudXAoKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLnJlYWR5U3RhdGU9YGNsb3NlZGAsdGhpcy5lbmdpbmUmJnRoaXMuZW5naW5lLmNsb3NlKCl9LGYucHJvdG90eXBlLm9uY2xvc2U9ZnVuY3Rpb24oZSl7Yyhgb25jbG9zZWApLHRoaXMuY2xlYW51cCgpLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMucmVhZHlTdGF0ZT1gY2xvc2VkYCx0aGlzLmVtaXQoYGNsb3NlYCxlKSx0aGlzLl9yZWNvbm5lY3Rpb24mJiF0aGlzLnNraXBSZWNvbm5lY3QmJnRoaXMucmVjb25uZWN0KCl9LGYucHJvdG90eXBlLnJlY29ubmVjdD1mdW5jdGlvbigpe2lmKHRoaXMucmVjb25uZWN0aW5nfHx0aGlzLnNraXBSZWNvbm5lY3QpcmV0dXJuIHRoaXM7dmFyIGU9dGhpcztpZih0aGlzLmJhY2tvZmYuYXR0ZW1wdHM+PXRoaXMuX3JlY29ubmVjdGlvbkF0dGVtcHRzKWMoYHJlY29ubmVjdCBmYWlsZWRgKSx0aGlzLmJhY2tvZmYucmVzZXQoKSx0aGlzLmVtaXRBbGwoYHJlY29ubmVjdF9mYWlsZWRgKSx0aGlzLnJlY29ubmVjdGluZz0hMTtlbHNle3ZhciB0PXRoaXMuYmFja29mZi5kdXJhdGlvbigpO2MoYHdpbGwgd2FpdCAlZG1zIGJlZm9yZSByZWNvbm5lY3QgYXR0ZW1wdGAsdCksdGhpcy5yZWNvbm5lY3Rpbmc9ITA7dmFyIG49c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2tpcFJlY29ubmVjdHx8KGMoYGF0dGVtcHRpbmcgcmVjb25uZWN0YCksZS5lbWl0QWxsKGByZWNvbm5lY3RfYXR0ZW1wdGAsZS5iYWNrb2ZmLmF0dGVtcHRzKSxlLmVtaXRBbGwoYHJlY29ubmVjdGluZ2AsZS5iYWNrb2ZmLmF0dGVtcHRzKSwhZS5za2lwUmVjb25uZWN0JiZlLm9wZW4oZnVuY3Rpb24odCl7dD8oYyhgcmVjb25uZWN0IGF0dGVtcHQgZXJyb3JgKSxlLnJlY29ubmVjdGluZz0hMSxlLnJlY29ubmVjdCgpLGUuZW1pdEFsbChgcmVjb25uZWN0X2Vycm9yYCx0LmRhdGEpKTooYyhgcmVjb25uZWN0IHN1Y2Nlc3NgKSxlLm9ucmVjb25uZWN0KCkpfSkpfSx0KTt0aGlzLnN1YnMucHVzaCh7ZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dChuKX19KX19LGYucHJvdG90eXBlLm9ucmVjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5iYWNrb2ZmLmF0dGVtcHRzO3RoaXMucmVjb25uZWN0aW5nPSExLHRoaXMuYmFja29mZi5yZXNldCgpLHRoaXMudXBkYXRlU29ja2V0SWRzKCksdGhpcy5lbWl0QWxsKGByZWNvbm5lY3RgLGUpfX0pKSxiYz1zKCgoZSx0KT0+e3ZhciBuPU1zKCkscj1CcygpLGk9eWMoKSxhPWpzKCkoYHNvY2tldC5pby1jbGllbnRgKTt0LmV4cG9ydHM9ZT1zO3ZhciBvPWUubWFuYWdlcnM9e307ZnVuY3Rpb24gcyhlLHQpe3R5cGVvZiBlPT1gb2JqZWN0YCYmKHQ9ZSxlPXZvaWQgMCksdHx8PXt9O3ZhciByPW4oZSkscz1yLnNvdXJjZSxjPXIuaWQsbD1yLnBhdGgsdT1vW2NdJiZsIGluIG9bY10ubnNwcyxkPXQuZm9yY2VOZXd8fHRbYGZvcmNlIG5ldyBjb25uZWN0aW9uYF18fCExPT09dC5tdWx0aXBsZXh8fHUsZjtyZXR1cm4gZD8oYShgaWdub3Jpbmcgc29ja2V0IGNhY2hlIGZvciAlc2AscyksZj1pKHMsdCkpOihvW2NdfHwoYShgbmV3IGlvIGluc3RhbmNlIGZvciAlc2Ascyksb1tjXT1pKHMsdCkpLGY9b1tjXSksci5xdWVyeSYmIXQucXVlcnkmJih0LnF1ZXJ5PXIucXVlcnkpLGYuc29ja2V0KHIucGF0aCx0KX1lLnByb3RvY29sPXIucHJvdG9jb2wsZS5jb25uZWN0PXMsZS5NYW5hZ2VyPXljKCksZS5Tb2NrZXQ9X2MoKX0pKSx4Yz1jKHtkZWZhdWx0OigpPT5TY30pO2Z1bmN0aW9uIFNjKGUsdCl7cmV0dXJuIHR8fD17fSxuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe3ZhciBpPW5ldyBYTUxIdHRwUmVxdWVzdCxhPVtdLG89W10scz17fSxjPWZ1bmN0aW9uKCl7cmV0dXJue29rOihpLnN0YXR1cy8xMDB8MCk9PTIsc3RhdHVzVGV4dDppLnN0YXR1c1RleHQsc3RhdHVzOmkuc3RhdHVzLHVybDppLnJlc3BvbnNlVVJMLHRleHQ6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkucmVzcG9uc2VUZXh0KX0sanNvbjpmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoaS5yZXNwb25zZVRleHQpLnRoZW4oSlNPTi5wYXJzZSl9LGJsb2I6ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFtpLnJlc3BvbnNlXSkpfSxjbG9uZTpjLGhlYWRlcnM6e2tleXM6ZnVuY3Rpb24oKXtyZXR1cm4gYX0sZW50cmllczpmdW5jdGlvbigpe3JldHVybiBvfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHNbZS50b0xvd2VyQ2FzZSgpXX0saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKClpbiBzfX19fTtmb3IodmFyIGwgaW4gaS5vcGVuKHQubWV0aG9kfHxgZ2V0YCxlLCEwKSxpLm9ubG9hZD1mdW5jdGlvbigpe2kuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkucmVwbGFjZSgvXiguKj8pOlteXFNcbl0qKFtcc1xTXSo/KSQvZ20sZnVuY3Rpb24oZSx0LG4pe2EucHVzaCh0PXQudG9Mb3dlckNhc2UoKSksby5wdXNoKFt0LG5dKSxzW3RdPXNbdF0/c1t0XStgLGArbjpufSksbihjKCkpfSxpLm9uZXJyb3I9cixpLndpdGhDcmVkZW50aWFscz10LmNyZWRlbnRpYWxzPT1gaW5jbHVkZWAsdC5oZWFkZXJzKWkuc2V0UmVxdWVzdEhlYWRlcihsLHQuaGVhZGVyc1tsXSk7aS5zZW5kKHQuYm9keXx8bnVsbCl9KX12YXIgQ2M9bygoKCk9Pnt9KSksd2M9cygoKGUsdCk9Pnt0LmV4cG9ydHM9c2VsZi5mZXRjaHx8KHNlbGYuZmV0Y2g9KENjKCksZCh4YykpLmRlZmF1bHR8fChDYygpLGQoeGMpKSl9KSksVGM9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLmZldGNoQmFsYW5jZXJDb25maWc9dm9pZCAwO3ZhciBuPURzKCkscj10KHdjKCkpO2UuZmV0Y2hCYWxhbmNlckNvbmZpZz1mdW5jdGlvbihlKXtyZXR1cm4oMCxuLmRlYnVnKShgdXNpbmcgYmFsYW5jZXIgJHtlfSB0byBnZXQgd2Vic29ja2V0IHVybGApLCgwLHIuZGVmYXVsdCkoYCR7ZX1gKS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGU/LnVybCYmZT8udG9rZW4/KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIHVybCAke2U/LnVybH0gYW5kIHRva2VuICR7ZT8udG9rZW59YCksZSk6KCgwLG4uZGVidWcpKGBiYWxhbmNlciByZXR1cm5zIGludmFsaWQgcmVzcG9uc2VgKSxudWxsKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybigwLG4uZGVidWcpKGBmYWlsZWQgdG8gcmVzb2x2ZSB1cmw6ICR7ZS5tZXNzYWdlfWApLG51bGx9KX19KSksRWM9cygoZT0+e3ZhciB0PWUmJmUuX19leHRlbmRzfHwoZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbih0LG4pe3JldHVybiBlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihlLHQpe2UuX19wcm90b19fPXR9fHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKX0sZSh0LG4pfTtyZXR1cm4gZnVuY3Rpb24odCxuKXtpZih0eXBlb2YgbiE9YGZ1bmN0aW9uYCYmbiE9PW51bGwpdGhyb3cgVHlwZUVycm9yKGBDbGFzcyBleHRlbmRzIHZhbHVlIGArU3RyaW5nKG4pK2AgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbGApO2UodCxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KSgpLG49ZSYmZS5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihlLHQsbil7aWYobnx8YXJndW1lbnRzLmxlbmd0aD09PTIpZm9yKHZhciByPTAsaT10Lmxlbmd0aCxhO3I8aTtyKyspKGF8fCEociBpbiB0KSkmJihhfHw9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCwwLHIpLGFbcl09dFtyXSk7cmV0dXJuIGUuY29uY2F0KGF8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQpKX0scj1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRNb2NrPXZvaWQgMDt2YXIgaT1EcygpO2UuU29ja2V0TW9jaz1mdW5jdGlvbihlKXt0KHIsZSk7ZnVuY3Rpb24gcih0KXt2YXIgbj1lLmNhbGwodGhpcyl8fHRoaXM7cmV0dXJuIG4ub3B0aW9ucz10LG4uaWQ9YG1vY2tgLG4uY29ubmVjdGVkPSExLG4uZGlzY29ubmVjdGVkPSEwLG4uYmluYXJ5VHlwZT1gYmxvYmAsbn1yZXR1cm4gci5wcm90b3R5cGUub3Blbj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuKDAsaS5kZWJ1ZykoYFNvY2tldElPTW9jazogY29ubmVjdGApLHRoaXMub25jZShgdmlzaXRvci5jb25uZWN0YCxmdW5jdGlvbih0LG4pe24obnVsbCxlLm9wdGlvbnMuY29ubmVjdERhdGEpfSksdGhpcy5jb25uZWN0ZWQ9ITAsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBjb25uZWN0YCksdGhpc30sci5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXtyZXR1cm4oMCxpLmRlYnVnKShgU29ja2V0SU9Nb2NrOiBkaXNjb25uZWN0YCksdGhpcy5jb25uZWN0ZWQ9ITEsdGhpcy5kaXNjb25uZWN0ZWQ9ITEsdGhpcy5lbWl0KGBkaXNjb25uZWN0YCxgaW8gY2xpZW50IGRpc2Nvbm5lY3RgKSx0aGlzfSxyLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKHQpe3ZhciByPVsuLi5hcmd1bWVudHNdLnNsaWNlKDEpO3JldHVybiBpLmRlYnVnLmFwcGx5KHZvaWQgMCxuKFtgU29ja2V0SU9Nb2NrOiBlbWl0YF0sciwhMSkpLCh0PT09YGNvbm5lY3RgfHx0PT09YGRpc2Nvbm5lY3RgfHx0PT09YHZpc2l0b3IuY29ubmVjdGApJiZlLnByb3RvdHlwZS5lbWl0LmFwcGx5KHRoaXMsbihbdF0sciwhMSkpLHRoaXN9LHIucHJvdG90eXBlLnNlbmQ9ZnVuY3Rpb24oKXt2YXIgZT1bLi4uYXJndW1lbnRzXTtyZXR1cm4gdGhpcy5lbWl0LmFwcGx5KHRoaXMsbihbZVswXV0sZS5zbGljZSgxKSwhMSkpfSxyLnByb3RvdHlwZS5jb21wcmVzcz1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxyLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BlbigpfSxyLnByb3RvdHlwZS5kaXNjb25uZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvc2UoKX0sci5wcm90b3R5cGUuaGFzTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmxpc3RlbmVyQ291bnQoZSk9PT0wfSxyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuYWRkTGlzdGVuZXIoZSx0KSx0aGlzfSxyLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMucmVtb3ZlTGlzdGVuZXIoZSx0KSx0aGlzfSxyfShyKE9zKCkpLmRlZmF1bHQpfSkpLERjPXMoKGU9Pnt2YXIgdD1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiB0PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbj1lJiZlLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pO3ZhciBpPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKTsoIWl8fChgZ2V0YGluIGk/IXQuX19lc01vZHVsZTppLndyaXRhYmxlfHxpLmNvbmZpZ3VyYWJsZSkpJiYoaT17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtuXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLGkpfSk6KGZ1bmN0aW9uKGUsdCxuLHIpe3I9PT12b2lkIDAmJihyPW4pLGVbcl09dFtuXX0pKSxyPWUmJmUuX19leHBvcnRTdGFyfHxmdW5jdGlvbihlLHQpe2Zvcih2YXIgciBpbiBlKXIhPT1gZGVmYXVsdGAmJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSYmbih0LGUscil9LGk9ZSYmZS5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGUsdCxuLHIpe2Z1bmN0aW9uIGkoZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBuP2U6bmV3IG4oZnVuY3Rpb24odCl7dChlKX0pfXJldHVybiBuZXcobnx8PVByb21pc2UpKGZ1bmN0aW9uKG4sYSl7ZnVuY3Rpb24gbyhlKXt0cnl7YyhyLm5leHQoZSkpfWNhdGNoKGUpe2EoZSl9fWZ1bmN0aW9uIHMoZSl7dHJ5e2Moci50aHJvdyhlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gYyhlKXtlLmRvbmU/bihlLnZhbHVlKTppKGUudmFsdWUpLnRoZW4obyxzKX1jKChyPXIuYXBwbHkoZSx0fHxbXSkpLm5leHQoKSl9KX0sYT1lJiZlLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihlLHQpe3ZhciBuPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZihhWzBdJjEpdGhyb3cgYVsxXTtyZXR1cm4gYVsxXX0sdHJ5czpbXSxvcHM6W119LHIsaSxhLG89T2JqZWN0LmNyZWF0ZSgodHlwZW9mIEl0ZXJhdG9yPT1gZnVuY3Rpb25gP0l0ZXJhdG9yOk9iamVjdCkucHJvdG90eXBlKTtyZXR1cm4gby5uZXh0PXMoMCksby50aHJvdz1zKDEpLG8ucmV0dXJuPXMoMiksdHlwZW9mIFN5bWJvbD09YGZ1bmN0aW9uYCYmKG9bU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksbztmdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gYyhbZSx0XSl9fWZ1bmN0aW9uIGMocyl7aWYocil0aHJvdyBUeXBlRXJyb3IoYEdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5gKTtmb3IoO28mJihvPTAsc1swXSYmKG49MCkpLG47KXRyeXtpZihyPTEsaSYmKGE9c1swXSYyP2kucmV0dXJuOnNbMF0/aS50aHJvd3x8KChhPWkucmV0dXJuKSYmYS5jYWxsKGkpLDApOmkubmV4dCkmJiEoYT1hLmNhbGwoaSxzWzFdKSkuZG9uZSlyZXR1cm4gYTtzd2l0Y2goaT0wLGEmJihzPVtzWzBdJjIsYS52YWx1ZV0pLHNbMF0pe2Nhc2UgMDpjYXNlIDE6YT1zO2JyZWFrO2Nhc2UgNDpyZXR1cm4gbi5sYWJlbCsrLHt2YWx1ZTpzWzFdLGRvbmU6ITF9O2Nhc2UgNTpuLmxhYmVsKyssaT1zWzFdLHM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpzPW4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKChhPW4udHJ5cywhKGE9YS5sZW5ndGg+MCYmYVthLmxlbmd0aC0xXSkpJiYoc1swXT09PTZ8fHNbMF09PT0yKSl7bj0wO2NvbnRpbnVlfWlmKHNbMF09PT0zJiYoIWF8fHNbMV0+YVswXSYmc1sxXTxhWzNdKSl7bi5sYWJlbD1zWzFdO2JyZWFrfWlmKHNbMF09PT02JiZuLmxhYmVsPGFbMV0pe24ubGFiZWw9YVsxXSxhPXM7YnJlYWt9aWYoYSYmbi5sYWJlbDxhWzJdKXtuLmxhYmVsPWFbMl0sbi5vcHMucHVzaChzKTticmVha31hWzJdJiZuLm9wcy5wb3AoKSxuLnRyeXMucG9wKCk7Y29udGludWV9cz10LmNhbGwoZSxuKX1jYXRjaChlKXtzPVs2LGVdLGk9MH1maW5hbGx5e3I9YT0wfWlmKHNbMF0mNSl0aHJvdyBzWzFdO3JldHVybnt2YWx1ZTpzWzBdP3NbMV06dm9pZCAwLGRvbmU6ITB9fX0sbz1lJiZlLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj12b2lkIDA7dmFyIHM9RHMoKSxjPW8oT3MoKSksbD1vKGJjKCkpLHU9VGMoKSxkPXt0cmFuc3BvcnRzOltgd2Vic29ja2V0YF0scGF0aDpgL3NvY2tldGAscmVjb25uZWN0aW9uOiEwLHJlY29ubmVjdGlvbkRlbGF5OjFlMyxyZWNvbm5lY3Rpb25EZWxheU1heDo1ZTMscmVjb25uZWN0aW9uQXR0ZW1wdHM6MS8wfTtlLmRlZmF1bHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5mb3JjZVJlY29ubmVjdD0hMSx0aGlzLmlkZW50aXR5PW51bGwsdGhpcy5jb25uZWN0aW9uPW51bGwsdGhpcy5jb25uZWN0Q2FsbGJhY2s9bnVsbCx0aGlzLmRpc2Nvbm5lY3RDYWxsYmFjaz1udWxsLHRoaXMuaW5pdERhdGE9bnVsbCx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITEsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9MCx0aGlzLmVtaXR0ZXI9bmV3IGMuZGVmYXVsdCx0aGlzLnNlbmRCdWZmZXI9W10sdGhpcy5vcHRpb25zLm9wdGlvbnM9dCh0KHQoe30sZCksdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMX0pfXJldHVybiBlLnByb3RvdHlwZS5pbml0Q29ubmVjdGlvbj1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlO3JldHVybiBhKHRoaXMsZnVuY3Rpb24obil7c3dpdGNoKG4ubGFiZWwpe2Nhc2UgMDppZih0aGlzLmNvbm5lY3Rpb24pdGhyb3cgRXJyb3IoYENvbm5lY3Rpb24gYWxyZWFkeSBleGlzdHNgKTtyZXR1cm4gdGhpcy5vcHRpb25zLnNvY2tldD8oKDAscy5kZWJ1ZykoYHVzaW5nIHNvY2tldCAke3RoaXMub3B0aW9ucy5zb2NrZXQuaWR9YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMSx0aGlzLnNldENvbm5lY3Rpb24odGhpcy5vcHRpb25zLnNvY2tldCksWzMsNF0pOlszLDFdO2Nhc2UgMTpyZXR1cm4gdGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsP1s0LCgwLHUuZmV0Y2hCYWxhbmNlckNvbmZpZykodGhpcy5vcHRpb25zLmJhbGFuY2VyVXJsKV06WzMsM107Y2FzZSAyOnJldHVybiBlPW4uc2VudCgpLCgwLHMuZGVidWcpKGBjcmVhdGluZyBzb2NrZXQgdG8gJHtlLnVybH0gd2l0aCB0b2tlbiAke2UudG9rZW59YCksdGhpcy5pbnRlcm5hbFJlY29ubmVjdGlvbj0hMCx0aGlzLnNldENvbm5lY3Rpb24oKDAsbC5kZWZhdWx0KShlLnVybCx0KHQoe30sdGhpcy5vcHRpb25zLm9wdGlvbnMpLHthdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITEscXVlcnk6e3Rva2VuOmUudG9rZW59fSkpLCEwKSxbMyw0XTtjYXNlIDM6aWYodGhpcy5vcHRpb25zLnVybCkoMCxzLmRlYnVnKShgY3JlYXRpbmcgc29ja2V0IHRvICR7dGhpcy5vcHRpb25zLnVybH1gKSx0aGlzLmludGVybmFsUmVjb25uZWN0aW9uPSExLHRoaXMuc2V0Q29ubmVjdGlvbigoMCxsLmRlZmF1bHQpKHRoaXMub3B0aW9ucy51cmwsdCh0KHt9LHRoaXMub3B0aW9ucy5vcHRpb25zKSx7YXV0b0Nvbm5lY3Q6ITF9KSkpO2Vsc2UgdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgcGFyYW1ldGVyIHVybGApO24ubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LGUucHJvdG90eXBlLnNldENvbm5lY3Rpb249ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO249PT12b2lkIDAmJihuPSExKSx0aGlzLmNvbm5lY3Rpb249ZSx0aGlzLmZvcmNlUmVjb25uZWN0PSExLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpb249bixlLm9uKGBjb25uZWN0X2Vycm9yYCxmdW5jdGlvbihlKXtyLmludGVybmFsUmVjb25uZWN0aW9uJiYoci5jb25uZWN0Q2FsbGJhY2s9bnVsbCwoMCxzLmRlYnVnKShgY29ubmVjdGlvbiB3YXMgbm90IHJlY29ubmVjdGVkYCksci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdF9lcnJvcmAsZSksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uQXR0ZW1wdHM+ci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQrMT9yLnJlY29ubmVjdChyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdCsxKTpyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGAsci5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQpKX0pLGUub24oYGNvbm5lY3RgLGZ1bmN0aW9uKCl7KDAscy5kZWJ1ZykoYHNvY2tldCB3YXMgY29ubmVjdGVkYCksci5pbml0aWFsaXplZD0hMSxyLmludGVybmFsUmVjb25uZWN0aW5nPygoMCxzLmRlYnVnKShgY29ubmVjdGlvbiBpcyByZWNvbm5lY3RlZGApLHIuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RgKSxyLmludGVybmFsUmVjb25uZWN0aW5nPSExLHIuaW50ZXJuYWxSZWNvbm5lY3RpbmdBdHRlbXB0PTApOnIuZW1pdHRlci5lbWl0KGBjb25uZWN0YCksci5pbml0aWFsaXplKCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4oMCxzLmRlYnVnKShgc29ja2V0IHdhcyBpbml0aWFsaXplZGApLHIub25Jbml0aWFsaXplZChlKSxyLmNvbm5lY3RDYWxsYmFjayYmPShyLmNvbm5lY3RDYWxsYmFjayhudWxsLGUpLG51bGwpLGV9KS5jYXRjaChmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBub3QgaW5pdGlhbGl6ZWQgYCx0KHt9LGUpKSxyLm9uSW5pdGlhbGl6ZUVycm9yKGUpLHIuY29ubmVjdENhbGxiYWNrJiY9KHIuY29ubmVjdENhbGxiYWNrKGUpLG51bGwpfSl9KSxlLm9uKGBkaXNjb25uZWN0YCxmdW5jdGlvbihlKXsoMCxzLmRlYnVnKShgc29ja2V0IHdhcyBkaXNjb25uZWN0ZWQgcmVhc29uPScke2V9J2ApLHIuaW5pdGlhbGl6ZWQ9ITEsKCFyLmludGVybmFsUmVjb25uZWN0aW5nfHxyLmludGVybmFsUmVjb25uZWN0aW5nQXR0ZW1wdD09PTEpJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYGRpc2Nvbm5lY3RgLGUpLHIuZGlzY29ubmVjdENhbGxiYWNrJiY9KHIuZGlzY29ubmVjdENhbGxiYWNrKCksbnVsbCl9LDEwMCksci5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uJiZyLmludGVybmFsUmVjb25uZWN0aW9uJiYhci5pbnRlcm5hbFJlY29ubmVjdGluZyYmKHIuZm9yY2VSZWNvbm5lY3R8fGUhPT1gaW8gc2VydmVyIGRpc2Nvbm5lY3RgKSYmci5yZWNvbm5lY3QoKX0pLGUub24oYHJlY29ubmVjdGluZ2AsZnVuY3Rpb24oZSl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGluZ2AsZSl9KSxlLm9uKGByZWNvbm5lY3RgLGZ1bmN0aW9uKCl7ci5lbWl0dGVyLmVtaXQoYHJlY29ubmVjdGApfSksZS5vbihgcmVjb25uZWN0X2F0dGVtcHRgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSl9KSxlLm9uKGByZWNvbm5lY3RfZXJyb3JgLGZ1bmN0aW9uKGUpe3IuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfZXJyb3JgLGUpfSksZS5vbihgcmVjb25uZWN0X2ZhaWxlZGAsZnVuY3Rpb24oKXtyLmVtaXR0ZXIuZW1pdChgcmVjb25uZWN0X2ZhaWxlZGApfSksZS5vbihgZm9yY2VfcmVjb25uZWN0YCxmdW5jdGlvbigpeygwLHMuZGVidWcpKGByZWNlaXZlZCBldmVudCBmb3JjZV9yZWNvbm5lY3QsIHNldHRpbmcgZmxhZyBmb3JjZVJlY29ubmVjdCA9IHRydWVgKSxyLmZvcmNlUmVjb25uZWN0PSEwfSl9LGUucHJvdG90eXBlLmdldENvbm5lY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb25uZWN0aW9ufSxlLnByb3RvdHlwZS5pc0Nvbm5lY3RlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbm5lY3Rpb24/LmNvbm5lY3RlZHx8ITF9LGUucHJvdG90eXBlLmlzSW5pdGlhbGl6ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0aWFsaXplZH0sZS5wcm90b3R5cGUuZ2V0SW5pdERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbml0RGF0YX0sZS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBpKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIGEodGhpcyxmdW5jdGlvbih0KXtzd2l0Y2godC5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmNvbm5lY3Rpb24/WzMsMl06WzQsdGhpcy5pbml0Q29ubmVjdGlvbigpXTtjYXNlIDE6dC5zZW50KCksdC5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMixuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2UuaW5pdGlhbGl6ZWQ/dChlLmluaXREYXRhKTooKDAscy5kZWJ1ZykoYHN0YXJ0aW5nIGNvbm5lY3RpbmdgKSxlLmNvbm5lY3RDYWxsYmFjaz0oMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pLGUuY29ubmVjdGlvbi5vcGVuKCkpfSldfX0pfSl9LGUucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4peyFlLmNvbm5lY3Rpb258fGUuY29ubmVjdGlvbi5kaXNjb25uZWN0ZWQ/KGUuY29ubmVjdGlvbj1udWxsLHQoKSk6KCgwLHMuZGVidWcpKGBzdGFydGluZyBkaXNjb25uZWN0aW5nYCksZS5kaXNjb25uZWN0Q2FsbGJhY2s9KDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSxlLmNvbm5lY3Rpb24uY2xvc2UoKSxlLmNvbm5lY3Rpb249bnVsbCl9KX0sZS5wcm90b3R5cGUucmVjb25uZWN0PWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIGU9PT12b2lkIDAmJihlPTEpLHRoaXMuaW50ZXJuYWxSZWNvbm5lY3Rpbmc9ITAsdGhpcy5pbnRlcm5hbFJlY29ubmVjdGluZ0F0dGVtcHQ9ZSx0aGlzLmRpc2Nvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKCl7dmFyIG49TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheU1heC10Lm9wdGlvbnMub3B0aW9ucy5yZWNvbm5lY3Rpb25EZWxheSkrdC5vcHRpb25zLm9wdGlvbnMucmVjb25uZWN0aW9uRGVsYXkpO3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIHdpbGwgcmVjb25uZWN0IGluICR7bn1tc2ApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RpbmdgLGUpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoZSxuKX0pfSkudGhlbihmdW5jdGlvbigpe3JldHVybigwLHMuZGVidWcpKGBjb25uZWN0aW9uIGlzIHN0YXJ0aW5nIHJlY29ubmVjdGApLHQuZW1pdHRlci5lbWl0KGByZWNvbm5lY3RfYXR0ZW1wdGAsZSksdC5jb25uZWN0KCl9KX0sZS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihlKXtlKHt9KX0pfSxlLnByb3RvdHlwZS5vbkluaXRpYWxpemVkPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7dGhpcy5pbml0aWFsaXplZHx8KHRoaXMuaW5pdGlhbGl6ZWQ9ITAsdGhpcy5pbml0RGF0YT1lLCgwLHMuZGVidWcpKGBlbWl0IGluaXRpYWxpemVkYCksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVkYCxlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYodC5zZW5kQnVmZmVyLmxlbmd0aD4wKXsoMCxzLmRlYnVnKShgc2VuZGluZyBidWZmZXJlZCAke3Quc2VuZEJ1ZmZlci5sZW5ndGh9IGV2ZW50c2ApO2Zvcih2YXIgZT0wO2U8dC5zZW5kQnVmZmVyLmxlbmd0aDtlKyspe3ZhciBuPXQuc2VuZEJ1ZmZlcltlXTt0LmNvbm5lY3Rpb24uZW1pdChuLm5hbWUsbi5kYXRhLG4uY2FsbGJhY2spfXQuc2VuZEJ1ZmZlcj1bXX19LDEpKX0sZS5wcm90b3R5cGUub25Jbml0aWFsaXplRXJyb3I9ZnVuY3Rpb24oZSl7dGhpcy5kaXNjb25uZWN0KCksKDAscy5kZWJ1ZykoYGVtaXQgaW5pdGlhbGl6ZV9lcnJvcmAsdCh7fSxlKSksdGhpcy5lbWl0dGVyLmVtaXQoYGluaXRpYWxpemVfZXJyb3JgLGUpfSxlLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGUsdCxuKXt0aGlzLmluaXRpYWxpemVkP3RoaXMuY29ubmVjdGlvbi5lbWl0KGUsdCxuKTp0aGlzLnNlbmRCdWZmZXIucHVzaCh7bmFtZTplLGRhdGE6dCxjYWxsYmFjazpufSl9LGUucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGUucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtmb3IodmFyIGUsdD1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W25dPWFyZ3VtZW50c1tuXTtyZXR1cm4oZT10aGlzLmVtaXR0ZXIpLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseShlLHQpLHRoaXN9LGV9KCk7dmFyIGY9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmLlNvY2tldEVycm9yfX0pLHIoRWMoKSxlKX0pKSxPYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2V4dGVuZHN8fChmdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGUsdCl7ZS5fX3Byb3RvX189dH18fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsbikmJihlW25dPXRbbl0pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT1gZnVuY3Rpb25gJiZuIT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoYENsYXNzIGV4dGVuZHMgdmFsdWUgYCtTdHJpbmcobikrYCBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsYCk7ZSh0LG4pO2Z1bmN0aW9uIHIoKXt0aGlzLmNvbnN0cnVjdG9yPXR9dC5wcm90b3R5cGU9bj09PW51bGw/T2JqZWN0LmNyZWF0ZShuKTooci5wcm90b3R5cGU9bi5wcm90b3R5cGUsbmV3IHIpfX0pKCksbj1lJiZlLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBuPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuPTEscj1hcmd1bWVudHMubGVuZ3RoO248cjtuKyspZm9yKHZhciBpIGluIHQ9YXJndW1lbnRzW25dLHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSxuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0scj1lJiZlLl9fYXdhaXRlcnx8ZnVuY3Rpb24oZSx0LG4scil7ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIG4/ZTpuZXcgbihmdW5jdGlvbih0KXt0KGUpfSl9cmV0dXJuIG5ldyhufHw9UHJvbWlzZSkoZnVuY3Rpb24obixhKXtmdW5jdGlvbiBvKGUpe3RyeXtjKHIubmV4dChlKSl9Y2F0Y2goZSl7YShlKX19ZnVuY3Rpb24gcyhlKXt0cnl7YyhyLnRocm93KGUpKX1jYXRjaChlKXthKGUpfX1mdW5jdGlvbiBjKGUpe2UuZG9uZT9uKGUudmFsdWUpOmkoZS52YWx1ZSkudGhlbihvLHMpfWMoKHI9ci5hcHBseShlLHR8fFtdKSkubmV4dCgpKX0pfSxpPWUmJmUuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGUsdCl7dmFyIG49e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKGFbMF0mMSl0aHJvdyBhWzFdO3JldHVybiBhWzFdfSx0cnlzOltdLG9wczpbXX0scixpLGEsbz1PYmplY3QuY3JlYXRlKCh0eXBlb2YgSXRlcmF0b3I9PWBmdW5jdGlvbmA/SXRlcmF0b3I6T2JqZWN0KS5wcm90b3R5cGUpO3JldHVybiBvLm5leHQ9cygwKSxvLnRocm93PXMoMSksby5yZXR1cm49cygyKSx0eXBlb2YgU3ltYm9sPT1gZnVuY3Rpb25gJiYob1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBjKFtlLHRdKX19ZnVuY3Rpb24gYyhzKXtpZihyKXRocm93IFR5cGVFcnJvcihgR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLmApO2Zvcig7byYmKG89MCxzWzBdJiYobj0wKSksbjspdHJ5e2lmKHI9MSxpJiYoYT1zWzBdJjI/aS5yZXR1cm46c1swXT9pLnRocm93fHwoKGE9aS5yZXR1cm4pJiZhLmNhbGwoaSksMCk6aS5uZXh0KSYmIShhPWEuY2FsbChpLHNbMV0pKS5kb25lKXJldHVybiBhO3N3aXRjaChpPTAsYSYmKHM9W3NbMF0mMixhLnZhbHVlXSksc1swXSl7Y2FzZSAwOmNhc2UgMTphPXM7YnJlYWs7Y2FzZSA0OnJldHVybiBuLmxhYmVsKysse3ZhbHVlOnNbMV0sZG9uZTohMX07Y2FzZSA1Om4ubGFiZWwrKyxpPXNbMV0scz1bMF07Y29udGludWU7Y2FzZSA3OnM9bi5vcHMucG9wKCksbi50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoKGE9bi50cnlzLCEoYT1hLmxlbmd0aD4wJiZhW2EubGVuZ3RoLTFdKSkmJihzWzBdPT09Nnx8c1swXT09PTIpKXtuPTA7Y29udGludWV9aWYoc1swXT09PTMmJighYXx8c1sxXT5hWzBdJiZzWzFdPGFbM10pKXtuLmxhYmVsPXNbMV07YnJlYWt9aWYoc1swXT09PTYmJm4ubGFiZWw8YVsxXSl7bi5sYWJlbD1hWzFdLGE9czticmVha31pZihhJiZuLmxhYmVsPGFbMl0pe24ubGFiZWw9YVsyXSxuLm9wcy5wdXNoKHMpO2JyZWFrfWFbMl0mJm4ub3BzLnBvcCgpLG4udHJ5cy5wb3AoKTtjb250aW51ZX1zPXQuY2FsbChlLG4pfWNhdGNoKGUpe3M9WzYsZV0saT0wfWZpbmFsbHl7cj1hPTB9aWYoc1swXSY1KXRocm93IHNbMV07cmV0dXJue3ZhbHVlOnNbMF0/c1sxXTp2b2lkIDAsZG9uZTohMH19fSxhPWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLldlYnNvY2tldFZpc2l0b3JDbGllbnQ9dm9pZCAwO3ZhciBvPWEoRGMoKSkscz1EcygpLGM9ZnVuY3Rpb24oZSl7dChhLGUpO2Z1bmN0aW9uIGEodCl7dmFyIG49ZS5jYWxsKHRoaXMsdC5jb25uZWN0aW9uKXx8dGhpcztyZXR1cm4gbi5zZXJ2ZXJWZXJzaW9uPW51bGwsbi51cGRhdGVkVmFsdWVzPXt9LG4uY29ubmVjdERhdGE9dC5kYXRhLG4uaWRlbnRpdHk9bnVsbCxufXJldHVybiBhLnByb3RvdHlwZS5zZXRDb25uZWN0aW9uPWZ1bmN0aW9uKHQpe2UucHJvdG90eXBlLnNldENvbm5lY3Rpb24uY2FsbCh0aGlzLHQpLHQub24oYHNlcnZlci5lcnJvcmAsKDAscy5ib3VuZCkodGhpcyxgb25TZXJ2ZXJFcnJvcmApKSx0Lm9uKGBhY2NvdW50LnVwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhY2NvdW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQudXBkYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGFnZW50LnVwZGF0ZWRgKSksdC5vbihgYWdlbnQuc3RhdHVzX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBhZ2VudC5zdGF0dXNfdXBkYXRlZGApKSx0Lm9uKGBhZ2VudC5yZW1vdmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgYWdlbnQucmVtb3ZlZGApKSx0Lm9uKGB2aXNpdG9yLnVwZGF0ZWRgLCgwLHMuYm91bmQpKHRoaXMsYG9uVmlzaXRvclVwZGF0ZWRgKSksdC5vbihgY2hhdC51cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC51cGRhdGVkYCkpLHQub24oYGNoYXQuYWdlbnRfam9pbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF9qb2luZWRgKSksdC5vbihgY2hhdC5hZ2VudF9hc3NpZ25lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfYXNzaWduZWRgKSksdC5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCkpLHQub24oYGNoYXQuYWdlbnRfbGVmdGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuYWdlbnRfbGVmdGApKSx0Lm9uKGBjaGF0Lm9wZW5lZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQub3BlbmVkYCkpLHQub24oYGNoYXQuc2VydmVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5zZXJ2ZWRgKSksdC5vbihgY2hhdC5jbG9zZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LmNsb3NlZGApKSx0Lm9uKGBjaGF0LnZpc2l0b3JfY2xvc2VkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC52aXNpdG9yX2Nsb3NlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgKSksdC5vbihgY2hhdC5tZXNzYWdlX3VwZGF0ZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGApKSx0Lm9uKGBjaGF0Lm1lc3NhZ2VfZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQubWVzc2FnZV9kZWxldGVkYCkpLHQub24oYGNoYXQuYWdlbnRfdHlwaW5nYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5hZ2VudF90eXBpbmdgKSksdC5vbihgY2hhdC5yYXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0ZWRgKSksdC5vbihgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgY2hhdC5yYXRpbmdfY2FuY2VsbGVkYCkpLHQub24oYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQucmF0aW5nX3N1Z2dlc3RlZGApKSx0Lm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuY29udGFjdF9yZWFkYCkpLHQub24oYGNoYXQuZGVsZXRlZGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQuZGVsZXRlZGApKSx0Lm9uKGBjaGF0LnRpY2tldF9mb3JtX2ZpbmlzaGAsKDAscy5jcmVhdGVFbWl0dGVyKSh0aGlzLmVtaXR0ZXIsYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCkpLHQub24oYGNoYXQudHJhbnNjcmlwdF9wZGZgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjaGF0LnRyYW5zY3JpcHRfcGRmYCkpLHQub24oYGNvbnRhY3QuYWNxdWlyZWRgLCgwLHMuY3JlYXRlRW1pdHRlcikodGhpcy5lbWl0dGVyLGBjb250YWN0LmFjcXVpcmVkYCkpLHQub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCwoMCxzLmNyZWF0ZUVtaXR0ZXIpKHRoaXMuZW1pdHRlcixgaWRlbnRpdHkuc3RhdHVzX3VwZGF0ZWRgKSl9LGEucHJvdG90eXBlLm9uPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZW1pdHRlci5vbihlLHQpLHRoaXN9LGEucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5lbWl0dGVyLm9uY2UoZSx0KSx0aGlzfSxhLnByb3RvdHlwZS5nZXRJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlkZW50aXR5P3RoaXMuaWRlbnRpdHkuaWQ6bnVsbH0sYS5wcm90b3R5cGUuZ2V0SWRlbnRpdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pZGVudGl0eX0sYS5wcm90b3R5cGUuY29ubmVjdD1mdW5jdGlvbigpe3JldHVybiBlLnByb3RvdHlwZS5jb25uZWN0LmNhbGwodGhpcyl9LGEucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cyx2b2lkIDAsZnVuY3Rpb24odCl7dmFyIG49dGhpcztyZXR1cm4gdD09PXZvaWQgMCYmKHQ9ITEpLGkodGhpcyxmdW5jdGlvbihyKXtzd2l0Y2goci5sYWJlbCl7Y2FzZSAwOnJldHVybiB0P1s0LG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7bi5zZW5kKGB2aXNpdG9yLmxvZ291dGAse30sKDAscy5jcmVhdGVDYWxsYmFjaykoZSx0KSl9KV06WzMsMl07Y2FzZSAxOnIuc2VudCgpLHIubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzIsZS5wcm90b3R5cGUuZGlzY29ubmVjdC5jYWxsKHRoaXMpXX19KX0pfSxhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGU9PT12b2lkIDAmJihlPXt9KSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLGUpdGhpcy5pZGVudGl0eVt0XT1lW3RdLHRoaXMudXBkYXRlZFZhbHVlc1t0XT1lW3RdO3RoaXMuc2F2ZVZpc2l0b3JWYWx1ZXMoKX0sYS5wcm90b3R5cGUuYXV0aGVudGljYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYHZpc2l0b3IuYXV0aGVudGljYXRlYCx7dmFsdWVzOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7cmV0dXJuIHQ9PT12b2lkIDAmJih0PW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24ocixpKXtuLnNlbmQoYHZpc2l0b3Iubm90aWZ5YCx7bmFtZTplLHZhbHVlOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRSZWFkPWZ1bmN0aW9uKCl7dGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSx0aGlzLnNlbmQoYGNoYXQucmVhZGAsbnVsbCl9LGEucHJvdG90eXBlLmNoYXRUeXBpbmc9ZnVuY3Rpb24oZSx0KXt0PT09dm9pZCAwJiYodD1udWxsKSx0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLHRoaXMuc2VuZChgY2hhdC50eXBpbmdgLHt0eXBpbmc6e2lzOmUsdGV4dDp0fX0pfSxhLnByb3RvdHlwZS5jaGF0TWVzc2FnZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lm1lc3NhZ2VgLGUsKDAscy5jcmVhdGVDYWxsYmFjaykobixyKSl9KX0sYS5wcm90b3R5cGUuY2hhdENsb3NlPWZ1bmN0aW9uKGUpe2U9PT12b2lkIDAmJihlPW51bGwpLHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksdGhpcy5zZW5kKGBjaGF0LmNsb3NlYCx7dHlwZTplfSl9LGEucHJvdG90eXBlLmNoYXRVcGxvYWRJbml0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbih0LG4pe2Uuc2VuZChgY2hhdC51cGxvYWRfaW5pdGAsbnVsbCwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5jaGF0VXBsb2FkRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudXBsb2FkX2ZpbmlzaGAse3VwbG9hZFRva2VuOmV9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRUcmFuc2NyaXB0PWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztyZXR1cm4gdGhpcy5jaGVja1NlcnZlclZlcnNpb24oKSxuZXcgUHJvbWlzZShmdW5jdGlvbihyLGkpe24uc2VuZChgY2hhdC50cmFuc2NyaXB0YCx7ZW1haWw6ZSxsYW5nOnR9LCgwLHMuY3JlYXRlQ2FsbGJhY2spKHIsaSkpfSl9LGEucHJvdG90eXBlLmNoYXRUaWNrZXRGb3JtRmluaXNoPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQudGlja2V0X2Zvcm1fZmluaXNoYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlSW5pdD1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQucmF0ZV9pbml0YCxudWxsLCgwLHMuY3JlYXRlQ2FsbGJhY2spKHQsbikpfSl9LGEucHJvdG90eXBlLmNoYXRSYXRlPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXt0LnNlbmQoYGNoYXQucmF0ZWAsZSwoMCxzLmNyZWF0ZUNhbGxiYWNrKShuLHIpKX0pfSxhLnByb3RvdHlwZS5jaGF0VHJhbnNjcmlwdFBkZj1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuY2hlY2tTZXJ2ZXJWZXJzaW9uKCksbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLnNlbmQoYGNoYXQudHJhbnNjcmlwdF9wZGZgLG51bGwsKDAscy5jcmVhdGVDYWxsYmFjaykodCxuKSl9KX0sYS5wcm90b3R5cGUubGlua09wZW5lZD1mdW5jdGlvbihlKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmNoZWNrU2VydmVyVmVyc2lvbigpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG4scil7dC5zZW5kKGBjaGF0Lmxpbmtfb3BlbmVkYCxlLCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JDb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcyx0PW4oe3ZlcnNpb246YS5DTElFTlRfVkVSU0lPTn0sdGhpcy5jb25uZWN0RGF0YSk7Zm9yKHZhciByIGluIHRoaXMudXBkYXRlZFZhbHVlcyl0W3JdPXRoaXMudXBkYXRlZFZhbHVlc1tyXTtpZih0aGlzLnVwZGF0ZWRWYWx1ZXM9e30sdGhpcy5pZGVudGl0eSlmb3IodmFyIHIgaW4gdGhpcy5pZGVudGl0eSlbYGJhbm5lZEF0YCxgY2hhdElkYCxgc3RhdHVzYF0uaW5jbHVkZXMocil8fCh0W3JdPXRoaXMuaWRlbnRpdHlbcl0pO3JldHVybiB0aGlzLmVtaXR0ZXIuZW1pdChgaW5pdGlhbGl6ZWAsdCksbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5jb25uZWN0YCx0LCgwLHMuY3JlYXRlQ2FsbGJhY2spKG4scikpfSl9LGEucHJvdG90eXBlLnZpc2l0b3JEaXNjb25uZWN0PWZ1bmN0aW9uKCl7dmFyIGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odCxuKXtlLmNvbm5lY3Rpb24uZW1pdChgdmlzaXRvci5kaXNjb25uZWN0YCx7fSwoMCxzLmNyZWF0ZUNhbGxiYWNrKSh0LG4pKX0pfSxhLnByb3RvdHlwZS5vblZpc2l0b3JVcGRhdGVkPWZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLmNoYW5nZXMpYS5pZGVudGl0eVByb3BlcnRpZXMuaW5jbHVkZXMobikmJih0aGlzLmlkZW50aXR5JiYodGhpcy5pZGVudGl0eVtuXT1lLmNoYW5nZXNbbl0pLHRbbl09ZS5jaGFuZ2VzW25dKTtPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5sZW5ndGg+MCYmdGhpcy5lbWl0dGVyLmVtaXQoYHZpc2l0b3IudXBkYXRlZGAsdCl9LGEucHJvdG90eXBlLm9uU2VydmVyRXJyb3I9ZnVuY3Rpb24oZSl7dmFyIHQ9KDAscy5jcmVhdGVTb2NrZXRFcnJvcikoZSk7dGhpcy5lbWl0dGVyLmVtaXQoYGVycm9yYCx0KX0sYS5wcm90b3R5cGUuaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMudmlzaXRvckNvbm5lY3QoKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiBlLnNlcnZlclZlcnNpb249dC5zZXJ2ZXJWZXJzaW9uLGUuaWRlbnRpdHk9bihuKHt9LHQudmlzaXRvcikse3ZhcmlhYmxlczpuKHt9LHQudmlzaXRvci52YXJpYWJsZXMpfSksdH0pfSxhLnByb3RvdHlwZS5zYXZlVmlzaXRvclZhbHVlcz1mdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5pbml0aWFsaXplZCYmc2V0VGltZW91dChmdW5jdGlvbigpe2lmKCEoIWUuaW5pdGlhbGl6ZWR8fE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUudXBkYXRlZFZhbHVlcykubGVuZ3RoPT09MCkpe3ZhciB0PXt9O2Zvcih2YXIgbiBpbiBlLnVwZGF0ZWRWYWx1ZXMpdFtuXT1lLnVwZGF0ZWRWYWx1ZXNbbl07ZS5zZW5kKGB2aXNpdG9yLnVwZGF0ZWAse3ZhbHVlczp0fSksZS51cGRhdGVkVmFsdWVzPXt9fX0sMSl9LGEucHJvdG90eXBlLmNoZWNrU2VydmVyVmVyc2lvbj1mdW5jdGlvbigpe2lmKHRoaXMuc2VydmVyVmVyc2lvbj09PW51bGwpdGhyb3cgRXJyb3IoYENsaWVudCBub3QgeWV0IGNvbm5lY3RlZCB0byBzZXJ2ZXJgKX0sYS5DTElFTlRfVkVSU0lPTj02LGEuaWRlbnRpdHlQcm9wZXJ0aWVzPVtgaWRgLGBuYW1lYCxgZW1haWxgLGBwaG9uZWAsYGNoYXRJZGAsYHZhcmlhYmxlc2AsYGxhbmdgLGBncm91cGAsYGJhbm5lZEF0YCxgdHJpZ2dlcmFibGVgLGB2aXNpdHNgLGBnZHByQXBwcm92ZWRgXSxhfShvLmRlZmF1bHQpO2UuV2Vic29ja2V0VmlzaXRvckNsaWVudD1jLChmdW5jdGlvbihlKXsoZnVuY3Rpb24oZSl7ZS5XaWRnZXRPcGVuPWB3aWRnZXRfb3BlbmAsZS5XaWRnZXRTaG93PWB3aWRnZXRfc2hvd2AsZS5WaXNpdG9yQWN0aXZlPWB2aXNpdG9yX2FjdGl2ZWAsZS5WaXNpdG9ySW5hY3RpdmU9YHZpc2l0b3JfaW5hY3RpdmVgfSkoZS5FdmVudE5hbWV8fD17fSl9KShjfHwoZS5XZWJzb2NrZXRWaXNpdG9yQ2xpZW50PWM9e30pKX0pKSxrYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLEFjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5SYXRpbmdUYXJnZXQ9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLkFnZW50PWBhZ2VudGAsZS5BaT1gYWlgfSkodHx8KGUuUmF0aW5nVGFyZ2V0PXQ9e30pKX0pKSxqYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj1lLk1lc3NhZ2VEZWxpdmVyeVN0YXR1cz1lLkFnZW50RGV2aWNlUGxhdGZvcm09ZS5BZ2VudERldmljZVR5cGU9ZS5WaXNpdG9yU3RhdHVzPWUuQ2hhdFJlYWRJbmZvVHlwZT1lLkNoYXRTdGF0dXM9ZS5BZ2VudFN0YXR1cz1lLkFjY291bnRTdGF0dXM9dm9pZCAwLGUuQWNjb3VudFN0YXR1cz17T25saW5lOmBvbmxpbmVgLE9mZmxpbmU6YG9mZmxpbmVgLE9mZmxpbmVXaXRoQUk6YG9mZmxpbmVXaXRoQWlgfSxlLkFnZW50U3RhdHVzPXtPbmxpbmU6YG9ubGluZWAsT2ZmbGluZTpgb2ZmbGluZWB9LGUuQ2hhdFN0YXR1cz17UGVuZGluZzpgcGVuZGluZ2AsT3Blbjpgb3BlbmAsQ2xvc2VkOmBjbG9zZWRgLFNlcnZlZDpgc2VydmVkYH0sZS5DaGF0UmVhZEluZm9UeXBlPXtBZ2VudDpgYWdlbnRgLENvbnRhY3Q6YGNvbnRhY3RgfSxlLlZpc2l0b3JTdGF0dXM9e0FjdGl2ZTpgYWN0aXZlYCxDbGlja2VkOmBjbGlja2VkYCxJZGxlOmBpZGxlYCxTZXJ2ZWQ6YHNlcnZlZGAsVW5zZXJ2ZWQ6YHVuc2VydmVkYCxUcmlnZ2VyZWQ6YHRyaWdnZXJlZGB9LGUuQWdlbnREZXZpY2VUeXBlPXtCcm93c2VyOmBicm93c2VyYCxNb2JpbGU6YG1vYmlsZWAsWG1wcDpgeG1wcGAsT3RoZXI6YG90aGVyYH0sZS5BZ2VudERldmljZVBsYXRmb3JtPXtJT1M6YGlvc2AsQU5EUk9JRDpgYW5kcm9pZGB9LGUuTWVzc2FnZURlbGl2ZXJ5U3RhdHVzPXtPazpgb2tgLFBlcm1hbmVudEZhaWw6YHBlcm1hbmVudF9mYWlsYCxUZW1wb3JhcnlGYWlsOmB0ZW1wb3JhcnlfZmFpbGAsQ29tcGxhaW5lZDpgY29tcGxhaW5lZGAsU2Vlbjpgc2VlbmB9LGUuTWVzc2FnZURlbGl2ZXJ5RmFpbFJlYXNvbj17RmFjZWJvb2syNGhXaW5kb3c6YGZhY2Vib29rLm91dHNpZGVfYWxsb3dlZF93aW5kb3dgLEluc3RhZ3JhbUV4Y2VlZGVkRmlsZVNpemU6YGluc3RhZ3JhbS5leGNlZWRlZF9maWxlX3NpemVgLEluc3RhZ3JhbVVua25vd246YGluc3RhZ3JhbS51bmtub3duYCxJbnN0YWdyYW1VbnN1cHBvcnRlZEZpbGVUeXBlOmBpbnN0YWdyYW0udW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVuc3VwcG9ydGVkRmlsZTpgd2hhdHNhcHAudW5zdXBwb3J0ZWRfZmlsZV90eXBlYCxXaGF0c2FwcFVua25vd246YHdoYXRzYXBwLnVua25vd25gfX0pKSxNYz1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Tb2NrZXRFcnJvcj1lLmRlZmF1bHQ9dm9pZCAwO3ZhciByPU9jKCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYGRlZmF1bHRgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByLldlYnNvY2tldFZpc2l0b3JDbGllbnR9fSksbihPYygpLGUpLG4oa2MoKSxlKSxuKEFjKCksZSk7dmFyIGk9RHMoKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgU29ja2V0RXJyb3JgLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBpLlNvY2tldEVycm9yfX0pLG4oamMoKSxlKX0pKSxOYz1PKG51bGwpLFBjPU8oITEpLEZjPU8oW10pLEljPWU9PntGYy51cGRhdGUodD0+Wy4uLnQsZV0pfSxMYz0oKT0+e2xldCBlO3JldHVybiBGYy51cGRhdGUodD0+KGU9dC5wb3AoKSx0KSksZT8/bnVsbH0sUmM9KCk9PkEoRmMpLmxlbmd0aD09PTAsemM9ayhOYyxlPT5lIT09bnVsbCksQmM9KGUse3VzZVN0YWNrOnQ9ITF9PXt9KT0+e05jLnVwZGF0ZShuPT4odCYmbiYmSWMobiksUGMuc2V0KG4hPT1udWxsKSxlKSl9LFZjPSgpPT57bGV0IGU9bnVsbDtSYygpfHwoZT1MYygpKSxOYy5zZXQoZSl9LEhjPWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3B0aW9ucz0wXT1gT3B0aW9uc2AsZVtlLkdkcHJBbmRQcml2YWN5PTFdPWBHZHByQW5kUHJpdmFjeWAsZVtlLkF1dGhGb3JtPTJdPWBBdXRoRm9ybWAsZVtlLkNsb3NlQ2hhdD0zXT1gQ2xvc2VDaGF0YCxlW2UuQ2hhdFJhdGluZz00XT1gQ2hhdFJhdGluZ2AsZVtlLlRpY2tldEZvcm09NV09YFRpY2tldEZvcm1gLGV9KHt9KSxVYz0xZTMsV2M9U3ltYm9sKGBjb250ZW50TGlzdEl0ZW1gKSxHYz1TeW1ib2woYGNvbnRlbnRNZXNzYWdlQXR0YWNobWVudGApLEtjPWAtcmVwbGllc2AscWM9LjM1LEpjPTVlMyxZYz1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pfSkpLFhjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5DYXJkQWN0aW9uVHlwZT1lLkNhcmRzTGF5b3V0PXZvaWQgMCxlLkNhcmRzTGF5b3V0PXtDYXJvdXNlbDpgY2Fyb3VzZWxgfSxlLkNhcmRBY3Rpb25UeXBlPXtPcGVuVXJsOmBvcGVuX3VybGB9fSkpLFpjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSl9KSksUWM9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLlJhdGluZ1RhcmdldD1lLkdyb3VwVHlwZT1lLkNoYW5uZWxUeXBlPWUuTWVzc2FnZVN1YlR5cGU9ZS5NZXNzYWdlVHlwZT1lLkF0dGFjaG1lbnRJbnZhbGlkUmVhc29uPWUuQXR0YWNobWVudFR5cGU9ZS5NZXNzYWdlQWN0aW9uVHlwZT12b2lkIDAsZS5NZXNzYWdlQWN0aW9uVHlwZT17VGV4dDpgdGV4dGAsT3BlblVybDpgb3Blbl91cmxgfSxlLkF0dGFjaG1lbnRUeXBlPXtDYXJkczpgY2FyZHNgLEZpbGU6YGZpbGVgLEltYWdlOmBpbWFnZWAsTWVkaWE6YG1lZGlhYCxJbnZhbGlkOmBpbnZhbGlkYH0sZS5BdHRhY2htZW50SW52YWxpZFJlYXNvbj17SW52YWxpZFNpemU6YGludmFsaWRfc2l6ZWAsSW52YWxpZFR5cGU6YGludmFsaWRfdHlwZWB9LGUuTWVzc2FnZVR5cGU9e01lc3NhZ2U6YG1lc3NhZ2VgLE5vdGU6YG5vdGVgLEV2ZW50OmBldmVudGAsSGVscDpgaGVscGB9LGUuTWVzc2FnZVN1YlR5cGU9e0FnZW50OmBhZ2VudGAsQ29udGFjdDpgY29udGFjdGAsVHJpZ2dlcjpgdHJpZ2dlcmAsQm90OmBib3RgLFN5c3RlbTpgc3lzdGVtYCxBZ2VudEV4dGVybmFsOmBhZ2VudF9leHRlcm5hbGAsRm91bmRFbWFpbDpgZm91bmRfZW1haWxgLENoYXRSZXNvbHZlOmBjaGF0X3Jlc29sdmVgLEVtYWlsOmBlbWFpbGB9LGUuQ2hhbm5lbFR5cGU9e0RlZmF1bHQ6YGRlZmF1bHRgLEVtYWlsOmBlbWFpbGAsRW1haWxJbnRlZ3JhdGlvbjpgZW1haWxfaW50ZWdyYXRpb25gLEZhY2Vib29rTWVzc2VuZ2VyOmBmYWNlYm9va19tZXNzZW5nZXJgLEdtYWlsOmBnbWFpbGAsU21hcnRzdXBwOmBzbWFydHN1cHBgLEluc3RhZ3JhbTpgaW5zdGFncmFtYCxXaGF0c2FwcDpgd2hhdHNhcHBgfTt2YXIgdDsoZnVuY3Rpb24oZSl7ZS5haT1gYWlgLGUuY2hhdGJvdD1gY2hhdGJvdGAsZS5tZXNzYWdlPWBtZXNzYWdlYH0pKHR8fChlLkdyb3VwVHlwZT10PXt9KSk7dmFyIG47KGZ1bmN0aW9uKGUpe2UuQWdlbnQ9YGFnZW50YCxlLkFpPWBhaWB9KShufHwoZS5SYXRpbmdUYXJnZXQ9bj17fSkpfSkpLCRjPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5QYXJ0aWNpcGFudFR5cGU9dm9pZCAwO3ZhciB0OyhmdW5jdGlvbihlKXtlLmZyb209YGZyb21gLGUudG89YHRvYCxlLmNjPWBjY2AsZS5iY2M9YGJjY2B9KSh0fHwoZS5QYXJ0aWNpcGFudFR5cGU9dD17fSkpfSkpLGVsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5NZXNzYWdlQ29udGVudFR5cGU9ZS5NZXNzYWdlQ29udGVudD12b2lkIDA7dmFyIHQ7KGZ1bmN0aW9uKGUpeyhmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLFVwbG9hZDpgdXBsb2FkYCxSYXRlRm9ybTpgcmF0ZV9mb3JtYCxUaWNrZXRGb3JtOmB0aWNrZXRfZm9ybWAsRW1haWw6YGVtYWlsYH19KShlLk1lc3NhZ2V8fD17fSksKGZ1bmN0aW9uKGUpe2UuVHlwZT17QWdlbnRKb2luOmBhZ2VudF9qb2luYCxBZ2VudEFzc2lnbjpgYWdlbnRfYXNzaWduYCxBZ2VudFVuYXNzaWduOmBhZ2VudF91bmFzc2lnbmAsQWdlbnRMZWF2ZTpgYWdlbnRfbGVhdmVgLENoYXRDbG9zZTpgY2hhdF9jbG9zZWAsQ2hhdFZpc2l0b3JDbG9zZTpgY2hhdF92aXNpdG9yX2Nsb3NlYH19KShlLkV2ZW50fHw9e30pLChmdW5jdGlvbihlKXtlLlR5cGU9e1RleHQ6YHRleHRgLEZvdW5kRW1haWw6YGZvdW5kX2VtYWlsYH19KShlLkhlbHB8fD17fSl9KSh0fHwoZS5NZXNzYWdlQ29udGVudD10PXt9KSksZS5NZXNzYWdlQ29udGVudFR5cGU9ey4uLnQuTWVzc2FnZS5UeXBlLC4uLnQuRXZlbnQuVHlwZSwuLi50LkhlbHAuVHlwZX19KSksdGw9cygoZT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KX0pKSxubD1zKChlPT57dmFyIHQ9ZSYmZS5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlPyhmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsbik7KCFpfHwoYGdldGBpbiBpPyF0Ll9fZXNNb2R1bGU6aS53cml0YWJsZXx8aS5jb25maWd1cmFibGUpKSYmKGk9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRbbl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUscixpKX0pOihmdW5jdGlvbihlLHQsbixyKXtyPT09dm9pZCAwJiYocj1uKSxlW3JdPXRbbl19KSksbj1lJiZlLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSxuKXtmb3IodmFyIHIgaW4gZSlyIT09YGRlZmF1bHRgJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4scikmJnQobixlLHIpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksbihZYygpLGUpLG4oWGMoKSxlKSxuKFpjKCksZSksbihRYygpLGUpLG4oJGMoKSxlKSxuKGVsKCksZSksbih0bCgpLGUpfSkpLHJsPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIG9mIHQpe2xldCB0PVN0cmluZyhyW2VdKTtuW3RdPXJ9cmV0dXJuIG59LGlsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09Tyh7fSk7cmV0dXJue3N1YnNjcmliZTplLHNldEdyb3VwczplPT57dChybChga2V5YCxlKSl9fX0pKCksYWw9ayhbaWxdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpKSxvbD17YXV0aEZvcm1EcmF3ZXI6YGF1dGhGb3JtRHJhd2VyYCxhdXRoRm9ybVByaXZhY3lOb3RpY2U6YGF1dGhGb3JtUHJpdmFjeU5vdGljZWAsYXV0aEZvcm1Qcml2YWN5Tm90aWNlU3dpdGNoOmBhdXRoRm9ybVByaXZhY3lOb3RpY2VTd2l0Y2hgLGF1dGhGb3JtU3VibWl0QnV0dG9uOmBhdXRoRm9ybVN1Ym1pdEJ1dHRvbmAsYXZhdGFyQWdlbnQ6YGF2YXRhckFnZW50YCxhdmF0YXJCb3Q6YGF2YXRhckJvdGAsYXZhdGFyR3JvdXA6YGF2YXRhckdyb3VwYCxhdmF0YXJJbmZvOmBhdmF0YXJJbmZvYCxidXR0b25BdHRhY2htZW50OmBidXR0b25BdHRhY2htZW50YCxidXR0b25DbG9zZUNoYXQ6YGJ1dHRvbkNsb3NlQ2hhdGAsYnV0dG9uQ2xvc2VEcmF3ZXI6YGJ1dHRvbkNsb3NlRHJhd2VyYCxidXR0b25Db2xsYXBzZUNoYXQ6YGJ1dHRvbkNvbGxhcHNlQ2hhdGAsYnV0dG9uRW1vamk6YGJ1dHRvbkVtb2ppYCxidXR0b25FeHBhbmRDaGF0OmBidXR0b25FeHBhbmRDaGF0YCxidXR0b25NaW5pbWl6ZUNoYXQ6YGJ1dHRvbk1pbmltaXplQ2hhdGAsYnV0dG9uT3B0aW9uczpgYnV0dG9uT3B0aW9uc2AsYnV0dG9uU2VuZDpgYnV0dG9uU2VuZGAsY2hhdFJhdGluZ0RyYXdlcjpgY2hhdFJhdGluZ0RyYXdlcmAsY2hhdFJhdGluZ0Vtb2ppQnV0dG9uOmBjaGF0UmF0aW5nRW1vamlgLGNoYXRSYXRpbmdTZW5kQnV0dG9uOmBjaGF0UmF0aW5nU2VuZEJ1dHRvbmAsY2hhdFJhdGluZ1RleHRhcmVhOmBjaGF0UmF0aW5nVGV4dGFyZWFgLGNoYXRSYXRpbmdGZWVkYmFja0J1dHRvbjpgY2hhdFJhdGluZ0ZlZWRiYWNrQnV0dG9uYCxjaGF0UmF0aW5nQnV0dG9uQWk6YGNoYXRSYXRpbmdCdXR0b25BaWAsY2hhdFJhdGluZ0J1dHRvbkFnZW50OmBjaGF0UmF0aW5nQnV0dG9uQWdlbnRgLGNsb3NlQ2hhdENvbmZpcm1CdXR0b246YGNsb3NlQ2hhdENvbmZpcm1CdXR0b25gLGNsb3NlQ2hhdERlY2xpbmVCdXR0b246YGNsb3NlQ2hhdERlY2xpbmVCdXR0b25gLGNsb3NlQ2hhdERyYXdlcjpgY2xvc2VDaGF0RHJhd2VyYCxmbGFzaE1lc3NhZ2U6YGZsYXNoTWVzc2FnZWAsZ2RwckRyYXdlcjpgZ2RwckRyYXdlcmAsaGVhZGVyVGl0bGU6YGhlYWRlclRpdGxlYCxoZWFkZXJTdGF0dXM6YGhlYWRlclN0YXR1c2AsaGVhZGVyQmFkZ2U6YGhlYWRlckJhZGdlYCxpbmxpbmVFbW9qaVBpY2tlcjpgaW5saW5lRW1vamlQaWNrZXJgLG1lc3NhZ2VBdHRhY2htZW50OmBtZXNzYWdlQXR0YWNobWVudGAsbWVzc2FnZUFnZW50OmBtZXNzYWdlQWdlbnRgLG1lc3NhZ2VCb3Q6YG1lc3NhZ2VCb3RgLG1lc3NhZ2VCb3RSZXBseTpgbWVzc2FnZUJvdFJlcGx5YCxtZXNzYWdlQm90QmFjazpgbWVzc2FnZUJvdEJhY2tgLG1lc3NhZ2VDb250YWN0OmBtZXNzYWdlQ29udGFjdGAsbWVzc2FnZUZpbGU6YG1lc3NhZ2VGaWxlYCxtZXNzYWdlR3JvdXA6YG1lc3NhZ2VHcm91cGAsbWVzc2FnZUltYWdlOmBtZXNzYWdlSW1hZ2VgLG9wdGlvbnNBY2Nlc3NpYmlsaXR5OmBvcHRpb25zQWNjZXNzaWJpbGl0eWAsb3B0aW9uc0RyYXdlcjpgb3B0aW9uc0RyYXdlcmAsb3B0aW9uc0V4cGFuZENoYXQ6YG9wdGlvbnNFeHBhbmRDaGF0YCxvcHRpb25zUHJpdmFjeU5vdGljZTpgb3B0aW9uc1ByaXZhY3lOb3RpY2VgLG9wdGlvbnNTb3VuZHM6YG9wdGlvbnNTb3VuZHNgLG9wdGlvbnNUcmFuc2NyaXB0OmBvcHRpb25zVHJhbnNjcmlwdGAscG9wdXA6YHBvcHVwYCxwb3B1cE1lc3NhZ2U6YHBvcHVwTWVzc2FnZWAscG9wdXBCdXR0b246YHBvcHVwQnV0dG9uYCxwb3B1cEJ1dHRvbkNsb3NlOmBwb3B1cEJ1dHRvbkNsb3NlYCxwcm9kdWN0Q2FyZDpgcHJvZHVjdENhcmRgLHByb2R1Y3RDYXJkQXJyb3dMZWZ0OmBwcm9kdWN0Q2FyZEFycm93TGVmdGAscHJvZHVjdENhcmRBcnJvd1JpZ2h0OmBwcm9kdWN0Q2FyZEFycm93UmlnaHRgLHByb2R1Y3RDYXJkQnV0dG9uOmBwcm9kdWN0Q2FyZEJ1dHRvbmAscHJvZHVjdENhcmRDYXJvdXNlbDpgcHJvZHVjdENhcmRDYXJvdXNlbGAscHJvZHVjdENhcmREZXNjcmlwdGlvbjpgcHJvZHVjdENhcmREZXNjcmlwdGlvbmAscHJvZHVjdENhcmRJbWFnZTpgcHJvZHVjdENhcmRJbWFnZWAscHJvZHVjdENhcmRJbmZvOmBwcm9kdWN0Q2FyZEluZm9gLHByb2R1Y3RDYXJkVGl0bGU6YHByb2R1Y3RDYXJkVGl0bGVgLHN5c3RlbU1lc3NhZ2U6YHN5c3RlbU1lc3NhZ2VgLHRleHRhcmVhOmB0ZXh0YXJlYWAsdGV4dGFyZWFQcmV2aWV3RmlsZTpgdGV4dGFyZWFQcmV2aWV3RmlsZWAsdGV4dGFyZWFQcmV2aWV3SW1hZ2U6YHRleHRhcmVhUHJldmlld0ltYWdlYCx0cmFuc2NyaXB0SW5wdXQ6YHRyYW5zY3JpcHRJbnB1dGAsdHJhbnNjcmlwdFNlbmRCdXR0b246YHRyYW5zY3JpcHRTZW5kYCx0aWNrZXRGb3JtRHJhd2VyOmB0aWNrZXRGb3JtRHJhd2VyYCx0aWNrZXRGb3JtU3VibWl0QnV0dG9uOmB0aWNrZXRGb3JtU3VibWl0QnV0dG9uYCx3aWRnZXRCdXR0b246YHdpZGdldEJ1dHRvbmAsd2lkZ2V0QnV0dG9uRnJhbWU6YHdpZGdldEJ1dHRvbkZyYW1lYCx3aWRnZXRCdXR0b25UZXh0OmB3aWRnZXRCdXR0b250ZXh0YCx3aWRnZXRJbWFnZVByZXZpZXc6YHdpZGdldEltYWdlUHJldmlld2Asd2lkZ2V0TWVzc2VuZ2VyOmB3aWRnZXRNZXNzZW5nZXJgLHdpZGdldE1lc3NlbmdlckZyYW1lOmB3aWRnZXRNZXNzZW5nZXJGcmFtZWAsd2lkZ2V0T25saW5lQmFkZ2U6YHdpZGdldE9ubGluZUJhZGdlYCx3aWRnZXRQb3B1cEZyYW1lOmB3aWRnZXRQb3B1cEZyYW1lYCx3aWRnZXRUeXBpbmdGcmFtZTpgd2lkZ2V0VHlwaW5nRnJhbWVgLHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2U6YHdpZGdldFVucmVhZE1lc3NhZ2VzQmFkZ2VgLHdpZGdldEhlYWRlcjpgd2lkZ2V0SGVhZGVyYH0sc2w9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb21gLGNsPWAvcG93ZXJlZC1ieS1zbWFydHN1cHBgLGxsPVtgY3NgLGBlc2AsYGZyYCxgaHVgLGBpdGAsYGRlYCxgbmxgLGBwbGBdLHVsPWBodHRwczovL3d3dy5zbWFydHN1cHAuY29tL215LWRhdGEtYW5kLWdkcHJgLGRsPU8oITEpLGZsPXJzKFUuU2Vzc2lvbklkLGBgKSxwbD0oKT0+e2xldHtwcm90b2NvbDplLGhvc3Q6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuYCR7ZT09PWBodHRwYD9gaHR0cGA6YGh0dHBzYH06Ly8ke3R9YH0sbWw9KCk9PntsZXR7bW9iaWxlU2RrOmUsdmlzaXRvcklkOnR9PVYuZ2V0T3B0aW9ucygpO2lmKGUmJnQpcmV0dXJuIHQ7dHJ5e3JldHVybiAkbygpfWNhdGNoKGUpe3JldHVybiBIKFN0cmluZyhlKSksbnVsbH19LGhsPShlLHQpPT57bGV0IG49Zm8oKS5sb2NhdGlvbi5ocmVmO3JldHVybiBlJiZ0JiYobj1gJHtufSR7bi5pbmNsdWRlcyhgP2ApP2AmYDpgP2B9c3MtYm90LXJ1bj0ke3R9YCksbn0sZ2w9KCk9PntKLmNsZWFyTWVzc2FnZXMoKSxtZCgpLEd1LmNsZWFyQXNzaWduZWRBZ2VudElkcygpLFJvKCksa28oVS5WaXNpdG9ySWQpfSxfbD1lPT57dHJ5e2VzKGUpfWNhdGNoKGUpe0goU3RyaW5nKGUpKX19LHZsPWFzeW5jKGU9ITEpPT57bGV0e2tleTp0LGxhbmc6bixpc1ByZXZpZXdNb2RlOnIscHJldmlld1dpdGhvdXRSZXNldDppLHNpdGVQbGF0Zm9ybTphLHRyaWdnZXJhYmxlOm8sX2NoYXRNYXhSZW9wZW5UaW1lOnMsYm90SWQ6Y309Vi5nZXRPcHRpb25zKCk7KHImJiFpfHxlKSYmZ2woKTtsZXQgbD1tbCgpLHU9QShsYik7cmV0dXJue2tleTp0LGlkOmwsY2xpZW50RmluZ2VycHJpbnQ6YXdhaXQgUW8oKSxpc1ByZXZpZXdNb2RlOnIsc2l0ZVBsYXRmb3JtOmEsdHJpZ2dlcmFibGU6byxfY2hhdE1heFJlb3BlblRpbWU6cyxuYW1lOnUubmFtZSxlbWFpbDp1LmVtYWlsLHBob25lOnUucGhvbmUsZ3JvdXA6dS5ncm91cCxsYW5nOnUubGFuZz8/bix2YXJpYWJsZXM6dS52YXJpYWJsZXMsd2lkZ2V0VmVyc2lvbjpgMy4wYCx2aXNpdHM6dHMoKSxpc1dpZGdldFZpc2libGU6QShSXyksaXNXaWRnZXRPcGVuOkEoWCkscGFnZVVybDpobChyLGMpLHBhZ2VUaXRsZTpmbygpLmRvY3VtZW50LnRpdGxlLGRvbWFpbjpmbygpLmxvY2F0aW9uLmhvc3RuYW1lfHxgdW5rbm93bmAscmVmZXJlcjpmbygpLmRvY3VtZW50LnJlZmVycmVyLGJ1bmRsZVZlcnNpb246YGMwNmQ0NWMzM2UwOTk4ZWYyZDMwNDYyZmI1Nzg3OTYzM2MxZGY1Y2FgfX0seWw9KGUsdCk9PntsZXR7aXNQcmV2aWV3TW9kZTpufT1WLmdldE9wdGlvbnMoKTshZSYmdCE9PUEoZmwpJiYhbiYmKGdsKCksQShYKSYmWC5zZXQoITEpKSxmbC5zZXQodCl9LGJsPSgoKT0+e2xldHtzdWJzY3JpYmU6ZSxzZXQ6dH09TygpO3JldHVybntzdWJzY3JpYmU6ZSxpbml0aWFsaXplOmU9PnQoZSl9fSkoKSx4bD1gRklMRWAsU2w9MmUzLENsPWU9PmUuc3BsaXQoYC9gKVswXT09PWBpbWFnZWAsd2w9ZT0+ISFlLm1hdGNoKC9edmlkZW9cLyg/Om1wNHx3ZWJtfG9nZyl7MX0kLyk7YXN5bmMgZnVuY3Rpb24gVGwoZSl7aWYoIUZpbGVSZWFkZXIpcmV0dXJuIGpvKGBGaWxlUmVhZGVyIG5vdCBzdXBwb3J0ZWRgKSxudWxsO2xldCB0PW5ldyBGaWxlUmVhZGVyO3JldHVybiBuZXcgUHJvbWlzZShuPT57dC5vbmxvYWQ9KCk9PntpZighdC5yZXN1bHQpe24obnVsbCk7cmV0dXJufW4odHlwZW9mIHQucmVzdWx0PT1gc3RyaW5nYCYmdC5yZXN1bHQuc3RhcnRzV2l0aChgZGF0YTppbWFnZWApP3QucmVzdWx0Om51bGwpfSx0Lm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIGxvYWQgaW1hZ2UgZGF0YWApLG4obnVsbCl9LHQucmVhZEFzRGF0YVVSTChlKX0pfWFzeW5jIGZ1bmN0aW9uIEVsKGUpe3JldHVybiBuZXcgUHJvbWlzZSh0PT57bGV0IG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgaW1nYCk7bi5vbmxvYWQ9KCk9Pnt0KHt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0pfSxuLm9uZXJyb3I9KCk9PntqbyhgRmFpbGVkIHRvIG9idGFpbiBpbWFnZSBkaW1lbnNpb25zYCksdChudWxsKX0sbi5zcmM9ZX0pfWZ1bmN0aW9uIERsKGUpe3JldHVybntob3Jpem9udGFsOmUud2lkdGg+ZS5oZWlnaHQsdmVydGljYWw6ZS5oZWlnaHQ+ZS53aWR0aH19dmFyIE9sPWBhci5hei5iZy5ici5icy5jYS5jbi5jcy5kYS5kZS5lbC5lbi5lcy5ldC5mYS5maS5maWwuZnIuaGUuaGkuaHIuaHUuaXMuaXQuamEua2EubHQubHYubWsubmwubm8ucGwucHQucm8ucnUuc2suc2wuc3Iuc3YudGgudHIudHcudWtgLnNwbGl0KGAuYCksa2w9cygoZT0+e3ZhciB0PWUmJmUuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLGBfX2VzTW9kdWxlYCx7dmFsdWU6ITB9KSxlLkZldGNoQWRhcHRlcj12b2lkIDA7dmFyIG49dChhYygpKTtlLkZldGNoQWRhcHRlcj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMub3B0aW9ucz17fSx0aGlzLm9wdGlvbnM9ZX1hc3luYyByZXF1ZXN0KGUsdCxyLGksYSl7bGV0IG89ey4uLnRoaXMub3B0aW9ucywuLi5hfSxzPWk/YD9gK24uZGVmYXVsdC5zdHJpbmdpZnkoaSk6YGA7dHJ5e2xldCBuPWF3YWl0IGZldGNoKGAke28uYmFzZVVSTHx8YGB9JHt0fSR7c31gLHttZXRob2Q6ZSxib2R5OnI/SlNPTi5zdHJpbmdpZnkocik6bnVsbCwuLi5vfSk7cmV0dXJue3N0YXR1czpuLnN0YXR1cyxzdGF0dXNUZXh0Om4uc3RhdHVzVGV4dCxkYXRhOmF3YWl0IG4uanNvbigpLGhlYWRlcnM6Wy4uLm4uaGVhZGVycy5lbnRyaWVzKCldLnJlZHVjZSgoZSxbdCxuXSk9PihlW3RdPW4sZSkse30pfX1jYXRjaChlKXt0aHJvdyBlLmlzT3BlbkFwaUVycm9yPSEwLGV9fXdpdGhPcHRpb25zKHQpe3JldHVybiBuZXcgZSh0KX19fSkpLEFsPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5Qcm9qZWN0TmFtZT1lLkVycm9yQ29kZT12b2lkIDAsZS5FcnJvckNvZGU9e0JhZFJlcXVlc3Q6YGJhZF9yZXF1ZXN0YCxOb3RBbGxvd2VkOmBub3RfYWxsb3dlZGAsTm90Rm91bmQ6YG5vdF9mb3VuZGAsRm9yYmlkZGVuOmBmb3JiaWRkZW5gLFRvb01hbnlSZXF1ZXN0czpgdG9vX21hbnlfcmVxdWVzdHNgLFVuYXV0aG9yaXplZDpgdW5hdXRob3JpemVkYCxVbnByb2Nlc3NhYmxlOmB1bnByb2Nlc3NhYmxlYH0sZS5Qcm9qZWN0TmFtZT17V2lkZ2V0OmB3aWRnZXRgLENoYXRib3Q6YGNoYXRib3RgfX0pKSxqbD1zKChlPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLGUuVHJhbnNsYXRpb25zQ2xpZW50UmF3PWUuVHJhbnNsYXRpb25zQ2xpZW50PXZvaWQgMCxlLlRyYW5zbGF0aW9uc0NsaWVudD1jbGFzc3tjb25zdHJ1Y3RvcihlKXt0aGlzLmFkYXB0ZXI9ZSx0aGlzLnJhdz1uZXcgdCh0aGlzLmFkYXB0ZXIpfWdldERlZmF1bHRzKGUsdCxyKXtyZXR1cm4gdGhpcy5hZGFwdGVyLnJlcXVlc3QoYGdldGAsYC8ke2V9L3RyYW5zbGF0aW9ucy9sYW5nLyR7dH0vZGVmYXVsdHNgLG51bGwsbnVsbCxyKS50aGVuKG4pfX07dmFyIHQ9Y2xhc3N7Y29uc3RydWN0b3IoZSl7dGhpcy5hZGFwdGVyPWV9Z2V0RGVmYXVsdHMoZSx0LG4pe3JldHVybiB0aGlzLmFkYXB0ZXIucmVxdWVzdChgZ2V0YCxgLyR7ZX0vdHJhbnNsYXRpb25zL2xhbmcvJHt0fS9kZWZhdWx0c2AsbnVsbCxudWxsLG4pfX07ZS5UcmFuc2xhdGlvbnNDbGllbnRSYXc9dDtmdW5jdGlvbiBuKGUpe3JldHVybiBlLmRhdGF9fSkpLE1sPXMoKGU9PntPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxgX19lc01vZHVsZWAse3ZhbHVlOiEwfSksZS5TbWFydHN1cHBUcmFuc2xhdGlvbnNDbGllbnRBcGk9dm9pZCAwO3ZhciB0PWpsKCksbj1jbGFzcyBle2NvbnN0cnVjdG9yKGUpe3RoaXMuYWRhcHRlcj1lLHRoaXMudHJhbnNsYXRpb25zPW5ldyB0LlRyYW5zbGF0aW9uc0NsaWVudChlKX13aXRoT3B0aW9ucyh0KXtyZXR1cm4gbmV3IGUodGhpcy5hZGFwdGVyLndpdGhPcHRpb25zKHQpKX19O2UuU21hcnRzdXBwVHJhbnNsYXRpb25zQ2xpZW50QXBpPW4sZS5kZWZhdWx0PW59KSksTmw9cygoZT0+e3ZhciB0PWUmJmUuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT8oZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9bik7dmFyIGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LG4pOyghaXx8KGBnZXRgaW4gaT8hdC5fX2VzTW9kdWxlOmkud3JpdGFibGV8fGkuY29uZmlndXJhYmxlKSkmJihpPXtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0W25dfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIsaSl9KTooZnVuY3Rpb24oZSx0LG4scil7cj09PXZvaWQgMCYmKHI9biksZVtyXT10W25dfSkpLG49ZSYmZS5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsbil7Zm9yKHZhciByIGluIGUpciE9PWBkZWZhdWx0YCYmIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHIpJiZ0KG4sZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsYF9fZXNNb2R1bGVgLHt2YWx1ZTohMH0pLG4oQWwoKSxlKSxuKE1sKCksZSksbihqbCgpLGUpLGUuZGVmYXVsdD1NbCgpLlNtYXJ0c3VwcFRyYW5zbGF0aW9uc0NsaWVudEFwaX0pKSxQbD1rbCgpLEZsPU5sKCksSWw9ZT0+T2wuaW5jbHVkZXMoZSksTGw9ZT0+SWwoZSk/ZTpgZW5gLFJsPSgpPT57bGV0e2xhbmc6ZX09Vi5nZXRPcHRpb25zKCkse2xhbmc6dH09QShsYik7cmV0dXJuIExsKHQ/P2UpfTtmdW5jdGlvbiB6bCgpe3JldHVybiBuZXcgRmwuVHJhbnNsYXRpb25zQ2xpZW50KG5ldyBQbC5GZXRjaEFkYXB0ZXIoe2Jhc2VVUkw6YCR7Vi5nZXRPcHRpb25zKCkudHJhbnNsYXRpb25zQmFzZVVybH0vYXBpL3YxYH0pKX12YXIgQmw9YXN5bmMgZT0+emwoKS5nZXREZWZhdWx0cyhGbC5Qcm9qZWN0TmFtZS5XaWRnZXQsZSksVmw9KGUsdCk9PntsZXR7dHJhbnNsYXRlczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm57Li4uZSwuLi5uW3RdJiZuW3RdfX0sSGw9TyhgZW5gKSxVbD1PKHt9KSxXbD1hc3luYyBlPT57dHJ5e2xldCB0PVZsKGF3YWl0IEJsKGUpLGUpO1VsLnVwZGF0ZShuPT4oey4uLm4sW2VdOnR9KSl9Y2F0Y2h7am8oYEZldGNoIHRyYW5zbGF0aW9ucyBvZiAnJHtlfScgbGFuZ3VhZ2UgZmFpbGVkLmApfX0sR2w9YXN5bmMgZT0+e0EoVWwpW2VdfHxhd2FpdCBXbChlKSxIbC5zZXQoZSl9LEtsPWFzeW5jKCk9PntsZXQgZT1SbCgpO0hsLnNldChlKSxhd2FpdCBXbChlKX0scWw9ZT0+e2xldCB0PUEoSGwpLG49ey4uLkEoVWwpW3RdLC4uLmV9O1VsLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LEpsPShlLHQsbik9PntsZXQgcj1BKFVsKSxpPWB8JHt0fXxgO2lmKE9iamVjdC5rZXlzKHIpLmxlbmd0aD09PTApcmV0dXJuIGk7bGV0IGE9cltlXT8uW3RdfHxpO3JldHVybiBPYmplY3Qua2V5cyhuKS5tYXAoZT0+e2xldCB0PVJlZ0V4cChgeyR7ZX19YCxgZ2ApO2E9YS5yZXBsYWNlKHQsbltlXSl9KSxhfSxXPWsoW0hsLFVsXSwoW2VdKT0+KHQsbj17fSk9PkpsKGUsdCxuKSksWWw9KCgpPT57bGV0IGU9TyhbXSkse3N1YnNjcmliZTp0LHVwZGF0ZTpufT1lLHI9KCk9PkEoZSkubWFwKGU9PmUuZmlsZSksaT0odCxuKT0+KG58fEEoZSkpLmZpbmQoZT0+ZS5maWxlLm5hbWU9PT10KXx8bnVsbCxhPWU9Pih7ZmlsZTplLHByZXZpZXc6e30scHJldmlld1N0YXRlOmBub25lYCx1cGxvYWRTdGF0dXM6YG5vbmVgfSksbz1lPT57bGV0IHQ9QXJyYXkuaXNBcnJheShlKT9lOltlXTtuKGU9PmUubGVuZ3RoK3QubGVuZ3RoPjU/KGdzKGAke0EoVykoYGZpbGVVcGxvYWQudG9vTWFueUZpbGVzYCl9IDVgKSxlKTpbLi4uZSwuLi50Lm1hcChhKV0pLG0odCl9LHM9ZT0+e24odD0+dC5maWx0ZXIodD0+dC5maWxlIT09ZSkpfSxjPSgpPT5BKGUpLmxlbmd0aCxsPSgpPT5jKCk+PTUsdT0oKT0+ZS5zZXQoW10pLGQ9KCk9PntlLnVwZGF0ZShlPT4oZS5mb3JFYWNoKGU9PmUudXBsb2FkU3RhdHVzPWBpbi1wcm9ncmVzc2ApLGUpKX0sZj10PT57ZS51cGRhdGUoZT0+e2xldCBuPWkodCxlKTtyZXR1cm4gbiYmKG4udXBsb2FkU3RhdHVzPWBkb25lYCksZX0pfSxwPWU9PmkoZS5uYW1lKT8ucHJldmlld1N0YXRlIT09YG5vbmVgLG09ZT0+e2UuZm9yRWFjaChlPT52b2lkIGgoZSkpfSxoPWFzeW5jIHQ9PntpZihwKHQpKXJldHVybjtsZXQgbj1hd2FpdCBUbCh0KSxyPW4/YXdhaXQgRWwobik6bnVsbCxhPXI/RGwocik6bnVsbDtlLnVwZGF0ZShlPT57bGV0IG89aSh0Lm5hbWUsZSk7cmV0dXJuIG8/KG8ucHJldmlld1N0YXRlPWByZWFkeWAsby5wcmV2aWV3PXtkYXRhOm4sZGltZW5zaW9uczpyLG9yaWVudGF0aW9uOmF9LFsuLi5lXSk6ZX0pfTtyZXR1cm57c3Vic2NyaWJlOnQsZ2V0RmlsZXM6cixmaW5kOmksYWRkOm8scmVtb3ZlOnMsY291bnQ6Yyxpc0xpbWl0UmVhY2hlZDpsLGNsZWFyOnUsc2V0VXBsb2FkaW5nU3RhdHVzOmQsc2V0RmlsZVVwbG9hZGVkOmZ9fSkoKSxYbD0oKCk9PntsZXQgZT1bXTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cHVzaDp0PT57ZS5wdXNoKHQpfSxleGVjdXRlQWxsOigpPT57Zm9yKDtlLmxlbmd0aD4wOyl7bGV0IHQ9ZS5zaGlmdCgpO3QmJnQoKX19fSl9KSgpLFpsPSgpPT57bGV0e3dpZGdldFYzVXJsOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke2V9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1haS1pZGVudGl0eS5wbmdgfSxRbD1lPT4oey4uLmUsYXZhdGFyVXJsOmUuYXZhdGFyVXJsfHxabCgpfSksJGw9KCgpPT57bGV0e3VwZGF0ZTplLHN1YnNjcmliZTp0LHNldDpufT1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0SWRlbnRpdGllczplPT57bihybChgaWRgLGUubWFwKFFsKSkpfSxhZGRJZGVudGl0eTp0PT57ZShlPT4oey4uLmUsW3QuaWRdOnR9KSl9LHVwZGF0ZUlkZW50aXR5Oih0LG4pPT57ZShlPT5lW3RdP3suLi5lLFt0XTp7Li4uZVt0XSwuLi5ufX06ZSl9fX0pKCksRz1ubCgpLEs9dShNYygpLDEpLGV1PWU9Pnt2byhgaW5pdCBkYXRhYCxlKSxkbC5zZXQoITApLHlsKGUuY2hhdCxlLnNlc3Npb25JZCk7bGV0IHQ9ZS52aXNpdG9yLmlkO19sKHQpLG5zKGUudmlzaXRvci52aXNpdHMpLE11LnNldFZpc2l0b3JEYXRhKGUudmlzaXRvciksaG8oe3ZpZDp0fSksYmwuaW5pdGlhbGl6ZShlLmZpbGVVcGxvYWQpLG9zLnNldChlLmJyb3dzZXIpLEJ1LnNldEFnZW50cyhlLmFjY291bnQuYWdlbnRzKSwkbC5zZXRJZGVudGl0aWVzKGUuYWNjb3VudC5ib3RJZGVudGl0aWVzKSxlLmNoYXQ/LnZpcnR1YWxBZ2VudCE9PXZvaWQgMCYmQnUuc2V0VmlydHVhbEFnZW50KGUuY2hhdD8udmlydHVhbEFnZW50KSxpbC5zZXRHcm91cHMoZS5hY2NvdW50Lmdyb3VwcyksaGQoZS5hY2NvdW50LnN0YXR1cyksZS5jaGF0JiYocXAoKSYmaWQuc2V0KGUuY2hhdC5yYXRpbmdTdWdnZXN0ZWRUYXJnZXR8fG51bGwpLGVkLnNldChlLmNoYXQuc3RhdHVzKSxkZChlLmNoYXQuaXNDbG9zZWQpLHJkLnNldChlLmNoYXQudW5yZWFkSW5mby5sYXN0UmVhZEF0KSxKLnNldE1lc3NhZ2VzKGUuY2hhdC5tZXNzYWdlcy5maWx0ZXIoZT0+IVpmKGUpKSksR3Uuc2V0QXNzaWduZWRBZ2VudElkcyhlLmNoYXQuYXNzaWduZWRJZHM/P1tdKSxlLmNoYXQud2lkZ2V0T3B0aW9ucyYmWHUudXBkYXRlR2VuZXJhbE9wdGlvbnMoZS5jaGF0LndpZGdldE9wdGlvbnMpKSxDXy5zZXQoITApLHouZW1pdChgd2lkZ2V0SW5pdGAsITApLFhsLmV4ZWN1dGVBbGwoKX0sdHU9ZT0+e2NvbnNvbGUuZXJyb3IoZSl9LG51PSgpPT57ZGwuc2V0KCExKX0scnU9KHtjaGF0SWQ6ZX0pPT57TXAuc2V0KCExKSxhZC5zZXQoZSksZWQuc2V0KEsuQ2hhdFN0YXR1cy5PcGVuKSxYdS5zZXRNZXNzYWdlT3B0aW9ucyh7ZGlzYWJsZUF0dGFjaG1lbnRzOiExfSl9LGl1PSgpPT57ZWQuc2V0KEsuQ2hhdFN0YXR1cy5TZXJ2ZWQpLGRkKCExKX0sYXU9KHttZXNzYWdlOmV9KT0+e2xldHtjbG9zZVR5cGU6dCxhZ2VudElkOm59PWUuY29udGVudC5kYXRhOyh0PT09YGFnZW50X2Nsb3NlYHx8dD09PWBib3RfY2xvc2VgKSYmKEd1LnNldEFzc2lnbmVkQWdlbnRJZHMoW10pLGVkLnNldChLLkNoYXRTdGF0dXMuQ2xvc2VkKSxKLmFkZE1lc3NhZ2UoZSksei5lbWl0KGBjaGF0Q2xvc2VkYCxlKSx0PT09YGFnZW50X2Nsb3NlYCYmUW0obj9BKFZ1KG4pKT8uZnVsbG5hbWU6dm9pZCAwKSl9LG91PSh7bWVzc2FnZTplfSk9PntxcCgpJiZZcCh4cyksZGQoITAse2J5VmlzaXRvcjohMH0pLEouYWRkTWVzc2FnZShlKSx6LmVtaXQoYGNoYXRWaXNpdG9yQ2xvc2VkYCxlKSxabSgpfSxzdT0oe2NoYW5nZXM6ZX0pPT57ZS53aWRnZXRPcHRpb25zJiZYdS51cGRhdGVHZW5lcmFsT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLGUuaXNDbG9zZWQhPT12b2lkIDAmJmRkKGUuaXNDbG9zZWQpLGUudmlydHVhbEFnZW50IT09dm9pZCAwJiZCdS5zZXRWaXJ0dWFsQWdlbnQoZS52aXJ0dWFsQWdlbnQpfSxjdT1hc3luYyh7bWVzc2FnZTplfSk9PntpZihaZihlKSlyZXR1cm47bGV0IHQ9QSh6XykmJllmKGUpOyFBKFgpJiZRZihlKSYmIXQ/QXAoZSk6YXdhaXQgSi5hZGRNZXNzYWdlKGUpLF9kKCksZS53aWRnZXRPcHRpb25zJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpLHQmJlVfKCksei5lbWl0KGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxsdT1lPT57Y3UoZSl9LHV1PSh7bWVzc2FnZUlkOmUsZGVsZXRlZEF0OnR9KT0+e0EoSilbZV0/LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNoYXRSZXNvbHZlP0ouZGVsZXRlTWVzc2FnZShlKTpKLm1hcmtNZXNzYWdlQXNEZWxldGVkKGUsdCl9LGR1PSh7bWVzc2FnZTplfSk9PntKLnJlcGxhY2VNZXNzYWdlKGUpLGUud2lkZ2V0T3B0aW9ucyYmZS5pZD09PUEoQnApJiZYdS5zZXRNZXNzYWdlT3B0aW9ucyhlLndpZGdldE9wdGlvbnMpfSxmdT0oe21lc3NhZ2U6ZSxhZ2VudDp0fSk9PntHdS5hZGRBc3NpZ25lZEFnZW50SWQoZS5jb250ZW50LmRhdGEuYWdlbnRJZCksSi5hZGRNZXNzYWdlKGUpLHouZW1pdChgYWdlbnRKb2luZWRgLHQpfSxwdT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLmFnZW50SWQpLEouYWRkTWVzc2FnZShlKX0sbXU9KHttZXNzYWdlOmV9KT0+e0d1LmFkZEFzc2lnbmVkQWdlbnRJZChlLmNvbnRlbnQuZGF0YS5hc3NpZ25lZCksSi5hZGRNZXNzYWdlKGUpfSxodT0oe21lc3NhZ2U6ZX0pPT57R3UucmVtb3ZlQXNzaWduZWRBZ2VudElkKGUuY29udGVudC5kYXRhLnVuYXNzaWduZWQpLEouYWRkTWVzc2FnZShlKX0sZ3U9ZT0+eyFlLnR5cGluZy5pcyYmQShNcCl8fG5kLnNldChlLnR5cGluZy5pcyl9LF91PWU9PntyZC5zZXQoZS5sYXN0UmVhZEF0KX0sdnU9KHttZXNzYWdlOmUscmF0aW5nOnR9KT0+e0oudXBkYXRlTWVzc2FnZVJhdGluZyhlKSx6LmVtaXQoYGNoYXRSYXRlZGAsdCl9LHl1PWU9Pnt6LmVtaXQoYHRyYW5zY3JpcHRQZGZgLGUpfSxidT0oe2lkOmUsY2hhbmdlczp0fSk9PntCdS51cGRhdGVBZ2VudChlLHQpfSx4dT0oe2lkOmUsc3RhdHVzOnR9KT0+e0J1LnVwZGF0ZUFnZW50KGUse3N0YXR1czp0fSl9LFN1PSh7c3RhdHVzOmV9KT0+e2hkKGUpfSxDdT1lPT57TXUudXBkYXRlVmlzaXRvckRhdGEoZSl9LHd1PWU9Pnt6LmVtaXQoYGNvbnRhY3RBY3F1aXJlZGAsZSl9LFR1PWU9PnsocXAoKXx8SnAoKSkmJmlkLnNldChlLnJhdGluZ1N1Z2dlc3RlZFRhcmdldCl9LEV1PSgpPT57QShpZCkmJmlkLnNldChudWxsKX0sRHU9KHtpZDplLGlzQWN0aXZlOnR9KT0+eyRsLnVwZGF0ZUlkZW50aXR5KGUse2lzQWN0aXZlOnR9KX0sT3U9RGMoKSxrdT1hc3luYyBlPT57bGV0IHQ9YXdhaXQgVi5hd2FpdE9wdGlvbnMoKTtyZXR1cm4gbmV3IEsuV2Vic29ja2V0VmlzaXRvckNsaWVudCh7ZGF0YTplLGNvbm5lY3Rpb246e3VybDpwbCgpLHNvY2tldDp0Lm1vY2s/bmV3IE91LlNvY2tldE1vY2sodC5tb2NrKTp2b2lkIDAsYmFsYW5jZXJVcmw6dC5iYWxhbmNlclVybCxvcHRpb25zOntwYXRoOmAvc29ja2V0YCxhdXRvQ29ubmVjdDohMSxyZWNvbm5lY3Rpb246ITB9fX0pfSxBdT0oKT0+e2xldCBlPW51bGwsdD0oKT0+ISFlLG49KCk9PntpZighZSl0aHJvdyBFcnJvcihgVmlzaXRvciBjbGllbnQgaXMgbm90IGluaXRpYWxpemVkYCk7cmV0dXJuIGV9LHI9YXN5bmMgdD0+e2U9YXdhaXQga3UoYXdhaXQgdmwodCkpLGUmJihqdShlKSxhd2FpdCBlLmNvbm5lY3QoKS5jYXRjaChlPT57am8oYEZhaWxlZCBjb25uZWN0IHRvIHNlcnZlci5gLGUpfSkpfTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Z2V0Q2xpZW50Om4saW5pdENsaWVudDpyLHJlbG9hZENsaWVudDphc3luYyh0LG4pPT57YXdhaXQgZT8uZGlzY29ubmVjdCgpLHQmJlYudXBkYXRlT3B0aW9ucyh7bW9jazp0fSksYXdhaXQgcihuKX0saXNJbml0aWFsaXplZDp0fSl9LGp1PWU9PntlLm9uKGBpbml0aWFsaXplZGAsZXUpLGUub24oYGVycm9yYCx0dSksZS5vbihgZGlzY29ubmVjdGAsbnUpLGUub24oYGNoYXQub3BlbmVkYCxydSksZS5vbihgY2hhdC5zZXJ2ZWRgLGl1KSxlLm9uKGBjaGF0LmNsb3NlZGAsYXUpLGUub24oYGNoYXQudmlzaXRvcl9jbG9zZWRgLG91KSxlLm9uKGBjaGF0LnVwZGF0ZWRgLHN1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfcmVjZWl2ZWRgLGx1KSxlLm9uKGBjaGF0Lm1lc3NhZ2VfdXBkYXRlZGAsZHUpLGUub24oYGNoYXQubWVzc2FnZV9kZWxldGVkYCx1dSksZS5vbihgY2hhdC5hZ2VudF9qb2luZWRgLGZ1KSxlLm9uKGBjaGF0LmFnZW50X2xlZnRgLHB1KSxlLm9uKGBjaGF0LmFnZW50X2Fzc2lnbmVkYCxtdSksZS5vbihgY2hhdC5hZ2VudF91bmFzc2lnbmVkYCxodSksZS5vbihgY2hhdC5hZ2VudF90eXBpbmdgLGd1KSxlLm9uKGBjaGF0LmNvbnRhY3RfcmVhZGAsX3UpLGUub24oYGNoYXQucmF0ZWRgLHZ1KSxlLm9uKGBjaGF0LnJhdGluZ19zdWdnZXN0ZWRgLFR1KSxlLm9uKGBjaGF0LnJhdGluZ19jYW5jZWxsZWRgLEV1KSxlLm9uKGBjaGF0LnRyYW5zY3JpcHRfcGRmYCx5dSksZS5vbihgYWdlbnQudXBkYXRlZGAsYnUpLGUub24oYGFnZW50LnN0YXR1c191cGRhdGVkYCx4dSksZS5vbihgYWNjb3VudC51cGRhdGVkYCxTdSksZS5vbihgdmlzaXRvci51cGRhdGVkYCxDdSksZS5vbihgY29udGFjdC5hY3F1aXJlZGAsd3UpLGUub24oYGlkZW50aXR5LnN0YXR1c191cGRhdGVkYCxEdSl9LHE9QXUoKSxNdT0oKCk9PntsZXQgZT1PKG51bGwpLHtzdWJzY3JpYmU6dCxzZXQ6bix1cGRhdGU6cn09ZSxpPWU9PntuKGUpfSxhPWU9PntyKHQ9PnQ/ey4uLnQsLi4uZX06bnVsbCl9LG89KGUsdCk9Pnt0cnl7cS5nZXRDbGllbnQoKS51cGRhdGUoe1tlXTp0fSl9Y2F0Y2godCl7am8oYFVwZGF0ZSBvZiB2aXNpdG9yIHByb3BlcnR5ICcke2V9JyBmYWlsZWQuYCxTdHJpbmcodCkpfX07cmV0dXJue3N1YnNjcmliZTp0LHNldFZpc2l0b3JEYXRhOmksdXBkYXRlVmlzaXRvckRhdGE6YSx1cGRhdGVWaXNpdG9yUHJvcGVydHk6KGUsdCk9PntpZighQShDXykpe3ViKGUsdCk7cmV0dXJufWEoe1tlXTp0fSksbyhlLHQpfSx1cGRhdGVWaXNpdG9yVmFyaWFibGVzOnQ9PntpZighQShDXykpe3ViKGB2YXJpYWJsZXNgLHQpO3JldHVybn1sZXQgbj1BKGUpO2lmKCFuKXJldHVybjtsZXQgcj1uLnZhcmlhYmxlczthKHt2YXJpYWJsZXM6ey4uLnIsLi4udH19KTtsZXQgaT17fTtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGU9Pnt0W2VdIT09cltlXSYmKGk9ey4uLmksW2VdOnRbZV19KX0pLE9iamVjdC5rZXlzKGkpLmxlbmd0aCE9PTAmJm8oYHZhcmlhYmxlc2AsaSl9LHVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YTp0PT57aWYoIUEoQ18pKXt1YihgY29udGFjdERhdGFgLHtwcm9wZXJ0aWVzOnR9KTtyZXR1cm59bGV0IG49QShlKTtpZighbilyZXR1cm47bGV0IHI9bj8uY29udGFjdERhdGE/LnByb3BlcnRpZXM7YSh7dmFyaWFibGVzOnsuLi5yLC4uLnR9fSk7bGV0IGk9e307T2JqZWN0LmtleXModCkuZm9yRWFjaChlPT57KCFyfHx0W2VdIT09cltlXSkmJihpPXsuLi5pLFtlXTp0W2VdfSl9KSxPYmplY3Qua2V5cyhpKS5sZW5ndGghPT0wJiZvKGBjb250YWN0RGF0YWAse3Byb3BlcnRpZXM6dH0pfX19KSgpLE51PShlLHQpPT5lLmhhc093blByb3BlcnR5KHQpLFB1PWU9PnR5cGVvZiBlPT1gYm9vbGVhbmAsRnU9ZT0+dHlwZW9mIGU9PWBudW1iZXJgLEl1PWU9PnR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiYhQXJyYXkuaXNBcnJheShlKSxMdT1lPT50eXBlb2YgZT09YHN0cmluZ2B8fGUgaW5zdGFuY2VvZiBTdHJpbmcsUnU9ZT0+THUoZSl8fEZ1KGUpfHxQdShlKSx6dT1lPT57bGV0IHQ9e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+e2xldCByPWVbbl07UnUocik/dFtuXT1yOkl1KHIpJiZOdShyLGB2YWx1ZWApJiZSdShyLnZhbHVlKSYmKHRbbl09ci52YWx1ZSl9KSx0fSxCdT0oKCk9PntsZXR7dXBkYXRlOmUsc3Vic2NyaWJlOnQsc2V0Om59PU8oe30pO3JldHVybntzdWJzY3JpYmU6dCxzZXRBZ2VudHM6ZT0+e24ocmwoYGlkYCxlKSl9LGFkZEFnZW50OnQ9PntlKGU9Pih7Li4uZSxbdC5pZF06dH0pKX0sdXBkYXRlQWdlbnQ6KHQsbik9PntlKGU9PmVbdF0/ey4uLmUsW3RdOnsuLi5lW3RdLC4uLm59fTplKX0sc2V0VmlydHVhbEFnZW50OnQ9PntsZXR7ZGVzY3JpcHRpb246bixhdmF0YXI6cixuYW1lOml9PXQsYT17fTtuJiYoYS5kZXNjcmlwdGlvbj1uKSxyJiYoYS5hdmF0YXI9ciksaSYmKGEuZnVsbG5hbWU9aSksZShlPT4oT2JqZWN0LmtleXMoZSkuZm9yRWFjaCh0PT57ZVt0XT17Li4uZVt0XSwuLi5hfX0pLGUpKX19fSkoKSxWdT1lPT5rKFtCdV0sKFt0XSk9PnRbZV0/P251bGwpLEh1PWsoW2soW0J1XSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+IWUuZGlzYWJsZWQpKSxNdV0sKFtlLHRdKT0+e2xldCBuPXQ/Lmdyb3VwO3JldHVybiFufHxuPT09YGRlZmF1bHRgP2U6ZS5maWx0ZXIoZT0+ZS5ncm91cHMubGVuZ3RoPT09MHx8ZS5ncm91cHMuaW5jbHVkZXMobikpfSksVXU9ayhbSHVdLChbZV0pPT5lLmZpbHRlcihlPT5lLnN0YXR1cz09PUsuQWdlbnRTdGF0dXMuT25saW5lKSksV3U9ZT0+e2lmKGUpcmV0dXJuYCR7ZX0/c2l6ZT04MGA7bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvZGVmYXVsdC1hdmF0YXIucG5nYH0sR3U9KCgpPT57bGV0e3N1YnNjcmliZTplLHNldDp0LHVwZGF0ZTpufT1PKFtdKTtyZXR1cm57c3Vic2NyaWJlOmUsc2V0QXNzaWduZWRBZ2VudElkczplPT57dChlKX0sYWRkQXNzaWduZWRBZ2VudElkOmU9PntuKHQ9PlsuLi5uZXcgU2V0KFsuLi50LGVdKV0pfSxyZW1vdmVBc3NpZ25lZEFnZW50SWQ6ZT0+e24odD0+dC5maWx0ZXIodD0+dCE9PWUpKX0sY2xlYXJBc3NpZ25lZEFnZW50SWRzOigpPT57dChbXSl9fX0pKCksS3U9ayhbR3UsQnVdLChbZSx0XSk9PmUubWFwKGU9PnRbZV0pLmZpbHRlcihCb29sZWFuKSkscXU9ayhbS3VdLChbZV0pPT5lLmxlbmd0aD4wKSxKdT1rKFtLdV0sKFtlXSk9PmUuZmlsdGVyKGU9PiFlLmRpc2FibGVkKSksWXU9ayhbS3VdLChbZV0pPT5lLnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLFh1PSgoKT0+e2xldCBlPU8oe2Rpc2FibGVBdHRhY2htZW50czohMSxkaXNhYmxlQXV0aGVudGljYXRpb246ITEsZGlzYWJsZUlucHV0OiExfSksdD1PKHt9KTtyZXR1cm57c3Vic2NyaWJlOmsoW2UsdF0sKFtlLHRdKT0+KHsuLi5lLC4uLnR9KSkuc3Vic2NyaWJlLHVwZGF0ZUdlbmVyYWxPcHRpb25zOnQ9PntlLnVwZGF0ZShlPT4oey4uLmUsLi4udH0pKX0sc2V0TWVzc2FnZU9wdGlvbnM6ZT0+e3Quc2V0KGUpfX19KSgpLFp1PWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXR0YWNobWVudHMpLFF1PWZ1bmN0aW9uKGUpe3JldHVybiBlW2UuT3Blbj0wXT1gT3BlbmAsZVtlLkNsb3NlZD0xXT1gQ2xvc2VkYCxlW2UuQ2xvc2VkQnlWaXNpdG9yPTJdPWBDbG9zZWRCeVZpc2l0b3JgLGV9KHt9KSwkdT1PKEsuQWNjb3VudFN0YXR1cy5PZmZsaW5lKSxlZD1PKG51bGwpLHRkPU8oUXUuT3BlbiksbmQ9TyghMSkscmQ9TyhudWxsKSxpZD1PKG51bGwpLGFkPU8oYGApLG9kPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5QZW5kaW5nKTtrKFtlZF0sKFtlXSk9PmUhPT1udWxsKTt2YXIgc2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLlNlcnZlZCksY2Q9ayhbZWRdLChbZV0pPT5lPT09Sy5DaGF0U3RhdHVzLk9wZW4pLGxkPWsoW2VkXSwoW2VdKT0+ZT09PUsuQ2hhdFN0YXR1cy5DbG9zZWQpLHVkPWsoW3NkLHRkXSwoW2UsdF0pPT5lJiZ0PT09UXUuT3BlbiksZGQ9KGUse2J5VmlzaXRvcjp0PSExfT17fSk9PntlP3RkLnNldCh0P1F1LkNsb3NlZEJ5VmlzaXRvcjpRdS5DbG9zZWQpOnRkLnNldChRdS5PcGVuKX0sZmQ9ayhbJHUsSnVdLChbZSx0XSk9PnQubGVuZ3RoPT09MD9lPT09Sy5BY2NvdW50U3RhdHVzLk9ubGluZTp0LnNvbWUoZT0+ZS5zdGF0dXM9PT1LLkFnZW50U3RhdHVzLk9ubGluZSkpLHBkPWsoW1h1XSwoW2VdKT0+ZS5kaXNhYmxlQXV0aGVudGljYXRpb24pLG1kPSgpPT57bmQuc2V0KCExKSxlZC5zZXQobnVsbCksZGQoITEpLHJkLnNldChudWxsKX0saGQ9ZT0+e2U9PT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZVdpdGhBST8kdS5zZXQoSy5BY2NvdW50U3RhdHVzLk9ubGluZSk6JHUuc2V0KGUpfSxnZD0oKT0+e3JkLnNldChuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkpLHEuZ2V0Q2xpZW50KCkuY2hhdFJlYWQoKX0sX2Q9KCk9PntsZXQgZT1wbygpLnZpc2liaWxpdHlTdGF0ZT09PWB2aXNpYmxlYDshQShMcCl8fCFBKFgpfHwhZXx8IUEoTl8pfHxnZCgpfSx2ZD1lPT4oey4uLlNzLGNoYXRJZDpBKGFkKSxjcmVhdGVkQXQ6bmV3IERhdGUoKS50b0lTT1N0cmluZygpLGNvbnRlbnQ6ey4uLlNzLmNvbnRlbnQsZGF0YTp7dGFyZ2V0OmV9fX0pLHlkPSgpPT57ZGQoITAse2J5VmlzaXRvcjohMH0pLHEuZ2V0Q2xpZW50KCkuY2hhdENsb3NlKCksVmMoKSxxcCgpfHxXXygpfSxiZD1hc3luYyBlPT57YXdhaXQgSi5hZGRNZXNzYWdlKHZkKGUpKX0seGQ9KCk9PntKLmRlbGV0ZU1lc3NhZ2UoeHMpfTtmdW5jdGlvbiBTZChlKXtyZXR1cm4gZS5sZW5ndGg9PT0wP251bGw6ZVtlLmxlbmd0aC0xXX12YXIgQ2Q9ZT0+ZS5zbGljZSgoZS5sYXN0SW5kZXhPZihgLmApLTE+Pj4wKSsyKS50b0xvd2VyQ2FzZSgpLHdkPWU9PntsZXQgdD1lLG49MCxyPVtgQmAsYEtCYCxgTUJgLGBHQmBdO2Zvcig7dD49MTAyNCYmbjxyLmxlbmd0aC0xOyl0Lz0xMDI0LG4rKztyZXR1cm57c2l6ZTpNYXRoLmZsb29yKHQpLHVuaXQ6cltuXX19LFRkPWU9PntsZXQgdD1TZChlLnNwbGl0KGAuYCkpO3JldHVybiB0P3QudG9VcHBlckNhc2UoKTp4bH0sRWQ9KGUsdCk9PmAke2V9P25hbWU9JHt0fWAsRGQ9YXN5bmMoZSx0KT0+e2xldCBuPXEuZ2V0Q2xpZW50KCkscj1bXTtmb3IobGV0e2ZpbGU6aX1vZiBlKXtsZXQgZT1hd2FpdCBuLmNoYXRVcGxvYWRJbml0KCksYT1uZXcgRm9ybURhdGE7YS5hcHBlbmQoYGZpbGVgLGksaS5uYW1lKTt0cnl7aWYoIShhd2FpdCBmZXRjaChlLnVybCx7bWV0aG9kOmBwb3N0YCxib2R5OmF9KSkub2spdGhyb3cgRXJyb3IoYFVwbG9hZCBmYWlsZWRgKTtyLnB1c2goZS50b2tlbil9Y2F0Y2h7am8oYEZpbGUgWyR7aS5uYW1lfV0gdXBsb2FkIGZhaWxlZGApLGdzKEEoVykoYGZpbGVVcGxvYWQuZmlsZXNXZXJlbnRQcm9jZXNzZWRgKSl9ZmluYWxseXt0KGkpfX1yZXR1cm4gcn0sT2Q9YXN5bmMgZT0+e2xldCB0PXEuZ2V0Q2xpZW50KCk7dHJ5e2F3YWl0IHQuY2hhdFVwbG9hZEZpbmlzaChlKX1jYXRjaHtqbyhgRmFpbGVkIHRvIGZpbmlzaCBmaWxlIHVwbG9hZCBmb3IgJHtlfWApfX0sa2Q9MWUzLEFkPTZlNCxqZD0zNmU1LE1kPTg2NGU1LE5kPTI2MjhlNixQZD0zMTUzNmU2LEZkPWU9Pk1hdGguZmxvb3IoZS9BZCkqQWQsSWQ9KGUsdCk9PkZkKG5ldyBEYXRlKGUpLmdldFRpbWUoKSk9PT1GZChuZXcgRGF0ZSh0KS5nZXRUaW1lKCkpLExkPShlLHQpPT57bGV0IG49bmV3IERhdGUoZSkscj1uZXcgRGF0ZSh0KTtyZXR1cm4gbi5nZXREYXRlKCk9PT1yLmdldERhdGUoKSYmbi5nZXRNb250aCgpPT09ci5nZXRNb250aCgpJiZuLmdldEZ1bGxZZWFyKCk9PT1yLmdldEZ1bGxZZWFyKCl9LFJkPShlLHQpPT5lLmdldFRpbWUoKS10LmdldFRpbWUoKSx6ZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse2hvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxCZD1uZXcgSW50bC5EYXRlVGltZUZvcm1hdCh2b2lkIDAse3llYXI6YG51bWVyaWNgLG1vbnRoOmBudW1lcmljYCxkYXk6YG51bWVyaWNgLGhvdXI6YG51bWVyaWNgLG1pbnV0ZTpgbnVtZXJpY2B9KSxWZD1lPT5MZChuZXcgRGF0ZSxlKT96ZDpCZCxIZD0oKT0+dHlwZW9mIEludGw8YHVgJiZgUmVsYXRpdmVUaW1lRm9ybWF0YGluIEludGwsVWQ9ZT0+SGQoKT9uZXcgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQoZSx7bnVtZXJpYzpgYXV0b2B9KTpudWxsLFdkPVt7dW5pdDpgeWVhcmAsYW1vdW50OlBkfSx7dW5pdDpgbW9udGhgLGFtb3VudDpOZH0se3VuaXQ6YGRheWAsYW1vdW50Ok1kfSx7dW5pdDpgaG91cmAsYW1vdW50OmpkfSx7dW5pdDpgbWludXRlYCxhbW91bnQ6QWR9LHt1bml0OmBzZWNvbmRgLGFtb3VudDprZH1dLEdkPShlLHQpPT57bGV0IG49VWQodCk7aWYoIW4pcmV0dXJuIEgoYFJlbGF0aXZlIHRpbWUgZm9ybWF0IG5vdCBzdXBwb3J0ZWRgKSxgYDtmb3IobGV0e3VuaXQ6dCxhbW91bnQ6cn1vZiBXZCl7aWYodD09PWBzZWNvbmRgKXJldHVybiBuLmZvcm1hdCgwLGBzZWNvbmRgKTtpZihNYXRoLmFicyhlKT5yKXJldHVybiBuLmZvcm1hdChNYXRoLnJvdW5kKGUvciksdCl9cmV0dXJuYGB9LEtkPShlLHQ9MzAwKT0+e2xldCBuO3JldHVybiguLi5yKT0+e258fD0oZSguLi5yKSxzZXRUaW1lb3V0KCgpPT5uPW51bGwsdCkpfX0scWQ9L1tcMC1cdUQ3RkZcdUUwMDAtXHVGRkZGXXxbXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl18W1x1RDgwMC1cdURCRkZdKD8hW1x1REMwMC1cdURGRkZdKXwoPzpbXlx1RDgwMC1cdURCRkZdfF4pW1x1REMwMC1cdURGRkZdLyxKZD0vW1wwLVx4MUZceDdGLVx4OUZdLyxZZD0vWyEtIyUtXCosLVwvOjtcP0BcWy1cXV9ce1x9XHhBMVx4QTdceEFCXHhCNlx4QjdceEJCXHhCRlx1MDM3RVx1MDM4N1x1MDU1QS1cdTA1NUZcdTA1ODlcdTA1OEFcdTA1QkVcdTA1QzBcdTA1QzNcdTA1QzZcdTA1RjNcdTA1RjRcdTA2MDlcdTA2MEFcdTA2MENcdTA2MERcdTA2MUJcdTA2MUQtXHUwNjFGXHUwNjZBLVx1MDY2RFx1MDZENFx1MDcwMC1cdTA3MERcdTA3RjctXHUwN0Y5XHUwODMwLVx1MDgzRVx1MDg1RVx1MDk2NFx1MDk2NVx1MDk3MFx1MDlGRFx1MEE3Nlx1MEFGMFx1MEM3N1x1MEM4NFx1MERGNFx1MEU0Rlx1MEU1QVx1MEU1Qlx1MEYwNC1cdTBGMTJcdTBGMTRcdTBGM0EtXHUwRjNEXHUwRjg1XHUwRkQwLVx1MEZENFx1MEZEOVx1MEZEQVx1MTA0QS1cdTEwNEZcdTEwRkJcdTEzNjAtXHUxMzY4XHUxNDAwXHUxNjZFXHUxNjlCXHUxNjlDXHUxNkVCLVx1MTZFRFx1MTczNVx1MTczNlx1MTdENC1cdTE3RDZcdTE3RDgtXHUxN0RBXHUxODAwLVx1MTgwQVx1MTk0NFx1MTk0NVx1MUExRVx1MUExRlx1MUFBMC1cdTFBQTZcdTFBQTgtXHUxQUFEXHUxQjVBLVx1MUI2MFx1MUI3RFx1MUI3RVx1MUJGQy1cdTFCRkZcdTFDM0ItXHUxQzNGXHUxQzdFXHUxQzdGXHUxQ0MwLVx1MUNDN1x1MUNEM1x1MjAxMC1cdTIwMjdcdTIwMzAtXHUyMDQzXHUyMDQ1LVx1MjA1MVx1MjA1My1cdTIwNUVcdTIwN0RcdTIwN0VcdTIwOERcdTIwOEVcdTIzMDgtXHUyMzBCXHUyMzI5XHUyMzJBXHUyNzY4LVx1Mjc3NVx1MjdDNVx1MjdDNlx1MjdFNi1cdTI3RUZcdTI5ODMtXHUyOTk4XHUyOUQ4LVx1MjlEQlx1MjlGQ1x1MjlGRFx1MkNGOS1cdTJDRkNcdTJDRkVcdTJDRkZcdTJENzBcdTJFMDAtXHUyRTJFXHUyRTMwLVx1MkU0Rlx1MkU1Mi1cdTJFNURcdTMwMDEtXHUzMDAzXHUzMDA4LVx1MzAxMVx1MzAxNC1cdTMwMUZcdTMwMzBcdTMwM0RcdTMwQTBcdTMwRkJcdUE0RkVcdUE0RkZcdUE2MEQtXHVBNjBGXHVBNjczXHVBNjdFXHVBNkYyLVx1QTZGN1x1QTg3NC1cdUE4NzdcdUE4Q0VcdUE4Q0ZcdUE4RjgtXHVBOEZBXHVBOEZDXHVBOTJFXHVBOTJGXHVBOTVGXHVBOUMxLVx1QTlDRFx1QTlERVx1QTlERlx1QUE1Qy1cdUFBNUZcdUFBREVcdUFBREZcdUFBRjBcdUFBRjFcdUFCRUJcdUZEM0VcdUZEM0ZcdUZFMTAtXHVGRTE5XHVGRTMwLVx1RkU1Mlx1RkU1NC1cdUZFNjFcdUZFNjNcdUZFNjhcdUZFNkFcdUZFNkJcdUZGMDEtXHVGRjAzXHVGRjA1LVx1RkYwQVx1RkYwQy1cdUZGMEZcdUZGMUFcdUZGMUJcdUZGMUZcdUZGMjBcdUZGM0ItXHVGRjNEXHVGRjNGXHVGRjVCXHVGRjVEXHVGRjVGLVx1RkY2NV18XHVEODAwW1x1REQwMC1cdUREMDJcdURGOUZcdURGRDBdfFx1RDgwMVx1REQ2RnxcdUQ4MDJbXHVEQzU3XHVERDFGXHVERDNGXHVERTUwLVx1REU1OFx1REU3Rlx1REVGMC1cdURFRjZcdURGMzktXHVERjNGXHVERjk5LVx1REY5Q118XHVEODAzW1x1REVBRFx1REY1NS1cdURGNTlcdURGODYtXHVERjg5XXxcdUQ4MDRbXHVEQzQ3LVx1REM0RFx1RENCQlx1RENCQ1x1RENCRS1cdURDQzFcdURENDAtXHVERDQzXHVERDc0XHVERDc1XHVEREM1LVx1RERDOFx1RERDRFx1REREQlx1RERERC1cdUREREZcdURFMzgtXHVERTNEXHVERUE5XXxcdUQ4MDVbXHVEQzRCLVx1REM0Rlx1REM1QVx1REM1Qlx1REM1RFx1RENDNlx1RERDMS1cdURERDdcdURFNDEtXHVERTQzXHVERTYwLVx1REU2Q1x1REVCOVx1REYzQy1cdURGM0VdfFx1RDgwNltcdURDM0JcdURENDQtXHVERDQ2XHVEREUyXHVERTNGLVx1REU0Nlx1REU5QS1cdURFOUNcdURFOUUtXHVERUEyXHVERjAwLVx1REYwOV18XHVEODA3W1x1REM0MS1cdURDNDVcdURDNzBcdURDNzFcdURFRjdcdURFRjhcdURGNDMtXHVERjRGXHVERkZGXXxcdUQ4MDlbXHVEQzcwLVx1REM3NF18XHVEODBCW1x1REZGMVx1REZGMl18XHVEODFBW1x1REU2RVx1REU2Rlx1REVGNVx1REYzNy1cdURGM0JcdURGNDRdfFx1RDgxQltcdURFOTctXHVERTlBXHVERkUyXXxcdUQ4MkZcdURDOUZ8XHVEODM2W1x1REU4Ny1cdURFOEJdfFx1RDgzQVtcdURENUVcdURENUZdLyxYZD0vWyBceEEwXHUxNjgwXHUyMDAwLVx1MjAwQVx1MjAyOFx1MjAyOVx1MjAyRlx1MjA1Rlx1MzAwMF0vO2Z1bmN0aW9uIFpkKGUpe2xldCB0PXt9O2V8fD17fSx0LnNyY19Bbnk9cWQuc291cmNlLHQuc3JjX0NjPUpkLnNvdXJjZSx0LnNyY19aPVhkLnNvdXJjZSx0LnNyY19QPVlkLnNvdXJjZSx0LnNyY19aUENjPVt0LnNyY19aLHQuc3JjX1AsdC5zcmNfQ2NdLmpvaW4oYHxgKSx0LnNyY19aQ2M9W3Quc3JjX1osdC5zcmNfQ2NdLmpvaW4oYHxgKTtsZXQgbj1gWz48772cXWA7cmV0dXJuIHQuc3JjX3BzZXVkb19sZXR0ZXI9YCg/Oig/IWArbitgfGArdC5zcmNfWlBDYytgKWArdC5zcmNfQW55K2ApYCx0LnNyY19pcDQ9YCg/OigyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSgyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pYCx0LnNyY19hdXRoPWAoPzooPzooPyFgK3Quc3JjX1pDYytgfFtAL1xcW1xcXSgpXSkuKStAKT9gLHQuc3JjX3BvcnQ9YCg/OjooPzo2KD86WzAtNF1cXGR7M318NSg/OlswLTRdXFxkezJ9fDUoPzpbMC0yXVxcZHwzWzAtNV0pKSl8WzEtNV0/XFxkezEsNH0pKT9gLHQuc3JjX2hvc3RfdGVybWluYXRvcj1gKD89JHxgK24rYHxgK3Quc3JjX1pQQ2MrYCkoPyFgKyhlW2AtLS1gXT9gLSg/IS0tKXxgOmAtfGApK2BffDpcXGR8XFwuLXxcXC4oPyEkfGArdC5zcmNfWlBDYytgKSlgLHQuc3JjX3BhdGg9YCg/OlsvPyNdKD86KD8hYCt0LnNyY19aQ2MrYHxbPjzvvZxdfFsoKVtcXF17fS4sIic/IVxcLTtdKS58XFxbKD86KD8hYCt0LnNyY19aQ2MrYHxcXF0pLikqXFxdfFxcKCg/Oig/IWArdC5zcmNfWkNjK2B8WyldKS4pKlxcKXxcXHsoPzooPyFgK3Quc3JjX1pDYytgfFt9XSkuKSpcXH18XFwiKD86KD8hYCt0LnNyY19aQ2MrYHxbIl0pLikrXFwifFxcJyg/Oig/IWArdC5zcmNfWkNjK2B8WyddKS4pK1xcJ3xcXCcoPz1gK3Quc3JjX3BzZXVkb19sZXR0ZXIrYHxbLV0pfFxcLnsyLH1bYS16QS1aMC05JS8mXXxcXC4oPyFgK3Quc3JjX1pDYytgfFsuXXwkKXxgKyhlW2AtLS1gXT9gXFwtKD8hLS0oPzpbXi1dfCQpKSg/Oi0qKXxgOmBcXC0rfGApK2AsKD8hYCt0LnNyY19aQ2MrYHwkKXw7KD8hYCt0LnNyY19aQ2MrYHwkKXxcXCErKD8hYCt0LnNyY19aQ2MrYHxbIV18JCl8XFw/KD8hYCt0LnNyY19aQ2MrYHxbP118JCkpK3xcXC8pP2AsdC5zcmNfZW1haWxfbmFtZT1gW1xcLTs6Jj1cXCtcXCQsXFwuYS16QS1aMC05X11bXFwtOzomPVxcK1xcJCxcXCJcXC5hLXpBLVowLTlfXSpgLHQuc3JjX3huPWB4bi0tW2EtejAtOVxcLV17MSw1OX1gLHQuc3JjX2RvbWFpbl9yb290PWAoPzpgK3Quc3JjX3huK2B8YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2B7MSw2M30pYCx0LnNyY19kb21haW49YCg/OmArdC5zcmNfeG4rYHwoPzpgK3Quc3JjX3BzZXVkb19sZXR0ZXIrYCl8KD86YCt0LnNyY19wc2V1ZG9fbGV0dGVyK2AoPzotfGArdC5zcmNfcHNldWRvX2xldHRlcitgKXswLDYxfWArdC5zcmNfcHNldWRvX2xldHRlcitgKSlgLHQuc3JjX2hvc3Q9YCg/Oig/Oig/Oig/OmArdC5zcmNfZG9tYWluK2ApXFwuKSpgK3Quc3JjX2RvbWFpbitgKSlgLHQudHBsX2hvc3RfZnV6enk9YCg/OmArdC5zcmNfaXA0K2B8KD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpKWAsdC50cGxfaG9zdF9ub19pcF9mdXp6eT1gKD86KD86KD86YCt0LnNyY19kb21haW4rYClcXC4pKyg/OiVUTERTJSkpYCx0LnNyY19ob3N0X3N0cmljdD10LnNyY19ob3N0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnNyY19ob3N0X3BvcnRfc3RyaWN0PXQuc3JjX2hvc3QrdC5zcmNfcG9ydCt0LnNyY19ob3N0X3Rlcm1pbmF0b3IsdC50cGxfaG9zdF9wb3J0X2Z1enp5X3N0cmljdD10LnRwbF9ob3N0X2Z1enp5K3Quc3JjX3BvcnQrdC5zcmNfaG9zdF90ZXJtaW5hdG9yLHQudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3Q9dC50cGxfaG9zdF9ub19pcF9mdXp6eSt0LnNyY19wb3J0K3Quc3JjX2hvc3RfdGVybWluYXRvcix0LnRwbF9ob3N0X2Z1enp5X3Rlc3Q9YGxvY2FsaG9zdHx3d3dcXC58XFwuXFxkezEsM31cXC58KD86XFwuKD86JVRMRFMlKSg/OmArdC5zcmNfWlBDYytgfD58JCkpYCx0LnRwbF9lbWFpbF9mdXp6eT1gKF58YCtuK2B8InxcXCh8YCt0LnNyY19aQ2MrYCkoYCt0LnNyY19lbWFpbF9uYW1lK2BAYCt0LnRwbF9ob3N0X2Z1enp5X3N0cmljdCtgKWAsdC50cGxfbGlua19mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdC50cGxfbGlua19ub19pcF9mdXp6eT0iKF58KD8hWy46L1xcLV9AXSkoPzpbJCs8PT5eYHzvvZxdfCIrdC5zcmNfWlBDYysiKSkoKD8hWyQrPD0+XmB8772cXSkiK3QudHBsX2hvc3RfcG9ydF9ub19pcF9mdXp6eV9zdHJpY3QrdC5zcmNfcGF0aCtgKWAsdH1mdW5jdGlvbiBRZChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLmZvckVhY2goZnVuY3Rpb24odCl7dCYmT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtlW25dPXRbbl19KX0pLGV9ZnVuY3Rpb24gJGQoZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKX1mdW5jdGlvbiBlZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBTdHJpbmddYH1mdW5jdGlvbiB0ZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBPYmplY3RdYH1mdW5jdGlvbiBuZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBSZWdFeHBdYH1mdW5jdGlvbiByZihlKXtyZXR1cm4gJGQoZSk9PT1gW29iamVjdCBGdW5jdGlvbl1gfWZ1bmN0aW9uIGFmKGUpe3JldHVybiBlLnJlcGxhY2UoL1suPyorXiRbXF1cXCgpe318LV0vZyxgXFwkJmApfXZhciBvZj17ZnV6enlMaW5rOiEwLGZ1enp5RW1haWw6ITAsZnV6enlJUDohMX07ZnVuY3Rpb24gc2YoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGV8fHt9KS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZXx8b2YuaGFzT3duUHJvcGVydHkodCl9LCExKX12YXIgY2Y9eyJodHRwOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLmh0dHB8fChuLnJlLmh0dHA9UmVnRXhwKGBeXFwvXFwvYCtuLnJlLnNyY19hdXRoK24ucmUuc3JjX2hvc3RfcG9ydF9zdHJpY3Qrbi5yZS5zcmNfcGF0aCxgaWApKSxuLnJlLmh0dHAudGVzdChyKT9yLm1hdGNoKG4ucmUuaHR0cClbMF0ubGVuZ3RoOjB9fSwiaHR0cHM6IjpgaHR0cDpgLCJmdHA6IjpgaHR0cDpgLCIvLyI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm5vX2h0dHB8fChuLnJlLm5vX2h0dHA9UmVnRXhwKGBeYCtuLnJlLnNyY19hdXRoK2AoPzpsb2NhbGhvc3R8KD86KD86YCtuLnJlLnNyY19kb21haW4rYClcXC4pK2Arbi5yZS5zcmNfZG9tYWluX3Jvb3QrYClgK24ucmUuc3JjX3BvcnQrbi5yZS5zcmNfaG9zdF90ZXJtaW5hdG9yK24ucmUuc3JjX3BhdGgsYGlgKSksbi5yZS5ub19odHRwLnRlc3Qocik/dD49MyYmZVt0LTNdPT09YDpgfHx0Pj0zJiZlW3QtM109PT1gL2A/MDpyLm1hdGNoKG4ucmUubm9faHR0cClbMF0ubGVuZ3RoOjB9fSwibWFpbHRvOiI6e3ZhbGlkYXRlOmZ1bmN0aW9uKGUsdCxuKXtsZXQgcj1lLnNsaWNlKHQpO3JldHVybiBuLnJlLm1haWx0b3x8KG4ucmUubWFpbHRvPVJlZ0V4cChgXmArbi5yZS5zcmNfZW1haWxfbmFtZStgQGArbi5yZS5zcmNfaG9zdF9zdHJpY3QsYGlgKSksbi5yZS5tYWlsdG8udGVzdChyKT9yLm1hdGNoKG4ucmUubWFpbHRvKVswXS5sZW5ndGg6MH19fSxsZj1gYVtjZGVmZ2lsbW5vcXJzdHV3eHpdfGJbYWJkZWZnaGlqbW5vcnN0dnd5el18Y1thY2RmZ2hpa2xtbm9ydXZ3eHl6XXxkW2Vqa21vel18ZVtjZWdyc3R1XXxmW2lqa21vcl18Z1thYmRlZmdoaWxtbnBxcnN0dXd5XXxoW2ttbnJ0dV18aVtkZWxtbm9xcnN0XXxqW2Vtb3BdfGtbZWdoaW1ucHJ3eXpdfGxbYWJjaWtyc3R1dnldfG1bYWNkZWdoa2xtbm9wcXJzdHV2d3h5el18blthY2VmZ2lsb3BydXpdfG9tfHBbYWVmZ2hrbG1ucnN0d3ldfHFhfHJbZW9zdXddfHNbYWJjZGVnaGlqa2xtbm9ydHV2eHl6XXx0W2NkZmdoamtsbW5vcnR2d3pdfHVbYWdrc3l6XXx2W2FjZWdpbnVdfHdbZnNdfHlbZXRdfHpbYW13XWAsdWY9YGJpenxjb218ZWR1fGdvdnxuZXR8b3JnfHByb3x3ZWJ8eHh4fGFlcm98YXNpYXxjb29wfGluZm98bXVzZXVtfG5hbWV8c2hvcHzRgNGEYC5zcGxpdChgfGApO2Z1bmN0aW9uIGRmKGUpe2UuX19pbmRleF9fPS0xLGUuX190ZXh0X2NhY2hlX189YGB9ZnVuY3Rpb24gZmYoZSl7cmV0dXJuIGZ1bmN0aW9uKHQsbil7bGV0IHI9dC5zbGljZShuKTtyZXR1cm4gZS50ZXN0KHIpP3IubWF0Y2goZSlbMF0ubGVuZ3RoOjB9fWZ1bmN0aW9uIHBmKCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7dC5ub3JtYWxpemUoZSl9fWZ1bmN0aW9uIG1mKGUpe2xldCB0PWUucmU9WmQoZS5fX29wdHNfXyksbj1lLl9fdGxkc19fLnNsaWNlKCk7ZS5vbkNvbXBpbGUoKSxlLl9fdGxkc19yZXBsYWNlZF9ffHxuLnB1c2gobGYpLG4ucHVzaCh0LnNyY194biksdC5zcmNfdGxkcz1uLmpvaW4oYHxgKTtmdW5jdGlvbiByKGUpe3JldHVybiBlLnJlcGxhY2UoYCVUTERTJWAsdC5zcmNfdGxkcyl9dC5lbWFpbF9mdXp6eT1SZWdFeHAocih0LnRwbF9lbWFpbF9mdXp6eSksYGlgKSx0LmxpbmtfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19mdXp6eSksYGlgKSx0Lmxpbmtfbm9faXBfZnV6enk9UmVnRXhwKHIodC50cGxfbGlua19ub19pcF9mdXp6eSksYGlgKSx0Lmhvc3RfZnV6enlfdGVzdD1SZWdFeHAocih0LnRwbF9ob3N0X2Z1enp5X3Rlc3QpLGBpYCk7bGV0IGk9W107ZS5fX2NvbXBpbGVkX189e307ZnVuY3Rpb24gYShlLHQpe3Rocm93IEVycm9yKGAoTGlua2lmeUl0KSBJbnZhbGlkIHNjaGVtYSAiYCtlK2AiOiBgK3QpfU9iamVjdC5rZXlzKGUuX19zY2hlbWFzX18pLmZvckVhY2goZnVuY3Rpb24odCl7bGV0IG49ZS5fX3NjaGVtYXNfX1t0XTtpZihuPT09bnVsbClyZXR1cm47bGV0IHI9e3ZhbGlkYXRlOm51bGwsbGluazpudWxsfTtpZihlLl9fY29tcGlsZWRfX1t0XT1yLHRmKG4pKXtuZihuLnZhbGlkYXRlKT9yLnZhbGlkYXRlPWZmKG4udmFsaWRhdGUpOnJmKG4udmFsaWRhdGUpP3IudmFsaWRhdGU9bi52YWxpZGF0ZTphKHQsbikscmYobi5ub3JtYWxpemUpP3Iubm9ybWFsaXplPW4ubm9ybWFsaXplOm4ubm9ybWFsaXplP2EodCxuKTpyLm5vcm1hbGl6ZT1wZigpO3JldHVybn1pZihlZihuKSl7aS5wdXNoKHQpO3JldHVybn1hKHQsbil9KSxpLmZvckVhY2goZnVuY3Rpb24odCl7ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0mJihlLl9fY29tcGlsZWRfX1t0XS52YWxpZGF0ZT1lLl9fY29tcGlsZWRfX1tlLl9fc2NoZW1hc19fW3RdXS52YWxpZGF0ZSxlLl9fY29tcGlsZWRfX1t0XS5ub3JtYWxpemU9ZS5fX2NvbXBpbGVkX19bZS5fX3NjaGVtYXNfX1t0XV0ubm9ybWFsaXplKX0pLGUuX19jb21waWxlZF9fW2BgXT17dmFsaWRhdGU6bnVsbCxub3JtYWxpemU6cGYoKX07bGV0IG89T2JqZWN0LmtleXMoZS5fX2NvbXBpbGVkX18pLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MCYmZS5fX2NvbXBpbGVkX19bdF19KS5tYXAoYWYpLmpvaW4oYHxgKTtlLnJlLnNjaGVtYV90ZXN0PVJlZ0V4cChgKF58KD8hXykoPzpbPjzvvZxdfGArdC5zcmNfWlBDYytgKSkoYCtvK2ApYCxgaWApLGUucmUuc2NoZW1hX3NlYXJjaD1SZWdFeHAoYChefCg/IV8pKD86Wz48772cXXxgK3Quc3JjX1pQQ2MrYCkpKGArbytgKWAsYGlnYCksZS5yZS5zY2hlbWFfYXRfc3RhcnQ9UmVnRXhwKGBeYCtlLnJlLnNjaGVtYV9zZWFyY2guc291cmNlLGBpYCksZS5yZS5wcmV0ZXN0PVJlZ0V4cChgKGArZS5yZS5zY2hlbWFfdGVzdC5zb3VyY2UrYCl8KGArZS5yZS5ob3N0X2Z1enp5X3Rlc3Quc291cmNlK2ApfEBgLGBpYCksZGYoZSl9ZnVuY3Rpb24gaGYoZSx0KXtsZXQgbj1lLl9faW5kZXhfXyxyPWUuX19sYXN0X2luZGV4X18saT1lLl9fdGV4dF9jYWNoZV9fLnNsaWNlKG4scik7dGhpcy5zY2hlbWE9ZS5fX3NjaGVtYV9fLnRvTG93ZXJDYXNlKCksdGhpcy5pbmRleD1uK3QsdGhpcy5sYXN0SW5kZXg9cit0LHRoaXMucmF3PWksdGhpcy50ZXh0PWksdGhpcy51cmw9aX1mdW5jdGlvbiBnZihlLHQpe2xldCBuPW5ldyBoZihlLHQpO3JldHVybiBlLl9fY29tcGlsZWRfX1tuLnNjaGVtYV0ubm9ybWFsaXplKG4sZSksbn1mdW5jdGlvbiBfZihlLHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIF9mKSlyZXR1cm4gbmV3IF9mKGUsdCk7dHx8c2YoZSkmJih0PWUsZT17fSksdGhpcy5fX29wdHNfXz1RZCh7fSxvZix0KSx0aGlzLl9faW5kZXhfXz0tMSx0aGlzLl9fbGFzdF9pbmRleF9fPS0xLHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9fdGV4dF9jYWNoZV9fPWBgLHRoaXMuX19zY2hlbWFzX189UWQoe30sY2YsZSksdGhpcy5fX2NvbXBpbGVkX189e30sdGhpcy5fX3RsZHNfXz11Zix0aGlzLl9fdGxkc19yZXBsYWNlZF9fPSExLHRoaXMucmU9e30sbWYodGhpcyl9X2YucHJvdG90eXBlLmFkZD1mdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9fc2NoZW1hc19fW2VdPXQsbWYodGhpcyksdGhpc30sX2YucHJvdG90eXBlLnNldD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fX29wdHNfXz1RZCh0aGlzLl9fb3B0c19fLGUpLHRoaXN9LF9mLnByb3RvdHlwZS50ZXN0PWZ1bmN0aW9uKGUpe2lmKHRoaXMuX190ZXh0X2NhY2hlX189ZSx0aGlzLl9faW5kZXhfXz0tMSwhZS5sZW5ndGgpcmV0dXJuITE7bGV0IHQsbixyLGksYSxvLHMsYyxsO2lmKHRoaXMucmUuc2NoZW1hX3Rlc3QudGVzdChlKSl7Zm9yKHM9dGhpcy5yZS5zY2hlbWFfc2VhcmNoLHMubGFzdEluZGV4PTA7KHQ9cy5leGVjKGUpKSE9PW51bGw7KWlmKGk9dGhpcy50ZXN0U2NoZW1hQXQoZSx0WzJdLHMubGFzdEluZGV4KSxpKXt0aGlzLl9fc2NoZW1hX189dFsyXSx0aGlzLl9faW5kZXhfXz10LmluZGV4K3RbMV0ubGVuZ3RoLHRoaXMuX19sYXN0X2luZGV4X189dC5pbmRleCt0WzBdLmxlbmd0aCtpO2JyZWFrfX1yZXR1cm4gdGhpcy5fX29wdHNfXy5mdXp6eUxpbmsmJnRoaXMuX19jb21waWxlZF9fW2BodHRwOmBdJiYoYz1lLnNlYXJjaCh0aGlzLnJlLmhvc3RfZnV6enlfdGVzdCksYz49MCYmKHRoaXMuX19pbmRleF9fPDB8fGM8dGhpcy5fX2luZGV4X18pJiYobj1lLm1hdGNoKHRoaXMuX19vcHRzX18uZnV6enlJUD90aGlzLnJlLmxpbmtfZnV6enk6dGhpcy5yZS5saW5rX25vX2lwX2Z1enp5KSkhPT1udWxsJiYoYT1uLmluZGV4K25bMV0ubGVuZ3RoLCh0aGlzLl9faW5kZXhfXzwwfHxhPHRoaXMuX19pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gYCx0aGlzLl9faW5kZXhfXz1hLHRoaXMuX19sYXN0X2luZGV4X189bi5pbmRleCtuWzBdLmxlbmd0aCkpKSx0aGlzLl9fb3B0c19fLmZ1enp5RW1haWwmJnRoaXMuX19jb21waWxlZF9fW2BtYWlsdG86YF0mJihsPWUuaW5kZXhPZihgQGApLGw+PTAmJihyPWUubWF0Y2godGhpcy5yZS5lbWFpbF9mdXp6eSkpIT09bnVsbCYmKGE9ci5pbmRleCtyWzFdLmxlbmd0aCxvPXIuaW5kZXgrclswXS5sZW5ndGgsKHRoaXMuX19pbmRleF9fPDB8fGE8dGhpcy5fX2luZGV4X198fGE9PT10aGlzLl9faW5kZXhfXyYmbz50aGlzLl9fbGFzdF9pbmRleF9fKSYmKHRoaXMuX19zY2hlbWFfXz1gbWFpbHRvOmAsdGhpcy5fX2luZGV4X189YSx0aGlzLl9fbGFzdF9pbmRleF9fPW8pKSksdGhpcy5fX2luZGV4X18+PTB9LF9mLnByb3RvdHlwZS5wcmV0ZXN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnJlLnByZXRlc3QudGVzdChlKX0sX2YucHJvdG90eXBlLnRlc3RTY2hlbWFBdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuX19jb21waWxlZF9fW3QudG9Mb3dlckNhc2UoKV0/dGhpcy5fX2NvbXBpbGVkX19bdC50b0xvd2VyQ2FzZSgpXS52YWxpZGF0ZShlLG4sdGhpcyk6MH0sX2YucHJvdG90eXBlLm1hdGNoPWZ1bmN0aW9uKGUpe2xldCB0PVtdLG49MDt0aGlzLl9faW5kZXhfXz49MCYmdGhpcy5fX3RleHRfY2FjaGVfXz09PWUmJih0LnB1c2goZ2YodGhpcyxuKSksbj10aGlzLl9fbGFzdF9pbmRleF9fKTtsZXQgcj1uP2Uuc2xpY2Uobik6ZTtmb3IoO3RoaXMudGVzdChyKTspdC5wdXNoKGdmKHRoaXMsbikpLHI9ci5zbGljZSh0aGlzLl9fbGFzdF9pbmRleF9fKSxuKz10aGlzLl9fbGFzdF9pbmRleF9fO3JldHVybiB0Lmxlbmd0aD90Om51bGx9LF9mLnByb3RvdHlwZS5tYXRjaEF0U3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fX3RleHRfY2FjaGVfXz1lLHRoaXMuX19pbmRleF9fPS0xLCFlLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgdD10aGlzLnJlLnNjaGVtYV9hdF9zdGFydC5leGVjKGUpO2lmKCF0KXJldHVybiBudWxsO2xldCBuPXRoaXMudGVzdFNjaGVtYUF0KGUsdFsyXSx0WzBdLmxlbmd0aCk7cmV0dXJuIG4/KHRoaXMuX19zY2hlbWFfXz10WzJdLHRoaXMuX19pbmRleF9fPXQuaW5kZXgrdFsxXS5sZW5ndGgsdGhpcy5fX2xhc3RfaW5kZXhfXz10LmluZGV4K3RbMF0ubGVuZ3RoK24sZ2YodGhpcywwKSk6bnVsbH0sX2YucHJvdG90eXBlLnRsZHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1BcnJheS5pc0FycmF5KGUpP2U6W2VdLHQ/KHRoaXMuX190bGRzX189dGhpcy5fX3RsZHNfXy5jb25jYXQoZSkuc29ydCgpLmZpbHRlcihmdW5jdGlvbihlLHQsbil7cmV0dXJuIGUhPT1uW3QtMV19KS5yZXZlcnNlKCksbWYodGhpcyksdGhpcyk6KHRoaXMuX190bGRzX189ZS5zbGljZSgpLHRoaXMuX190bGRzX3JlcGxhY2VkX189ITAsbWYodGhpcyksdGhpcyl9LF9mLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oZSl7ZS5zY2hlbWF8fChlLnVybD1gaHR0cDovL2ArZS51cmwpLGUuc2NoZW1hPT09YG1haWx0bzpgJiYhL15tYWlsdG86L2kudGVzdChlLnVybCkmJihlLnVybD1gbWFpbHRvOmArZS51cmwpfSxfZi5wcm90b3R5cGUub25Db21waWxlPWZ1bmN0aW9uKCl7fTt2YXIgdmY9SlNPTi5wYXJzZShgWyJhYWEiLCJhYXJwIiwiYWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjIiwiYWNhZGVteSIsImFjY2VudHVyZSIsImFjY291bnRhbnQiLCJhY2NvdW50YW50cyIsImFjbyIsImFjdG9yIiwiYWQiLCJhZHMiLCJhZHVsdCIsImFlIiwiYWVnIiwiYWVybyIsImFldG5hIiwiYWYiLCJhZmwiLCJhZnJpY2EiLCJhZyIsImFnYWtoYW4iLCJhZ2VuY3kiLCJhaSIsImFpZyIsImFpcmJ1cyIsImFpcmZvcmNlIiwiYWlydGVsIiwiYWtkbiIsImFsIiwiYWxpYmFiYSIsImFsaXBheSIsImFsbGZpbmFueiIsImFsbHN0YXRlIiwiYWxseSIsImFsc2FjZSIsImFsc3RvbSIsImFtIiwiYW1hem9uIiwiYW1lcmljYW5leHByZXNzIiwiYW1lcmljYW5mYW1pbHkiLCJhbWV4IiwiYW1mYW0iLCJhbWljYSIsImFtc3RlcmRhbSIsImFuYWx5dGljcyIsImFuZHJvaWQiLCJhbnF1YW4iLCJhbnoiLCJhbyIsImFvbCIsImFwYXJ0bWVudHMiLCJhcHAiLCJhcHBsZSIsImFxIiwiYXF1YXJlbGxlIiwiYXIiLCJhcmFiIiwiYXJhbWNvIiwiYXJjaGkiLCJhcm15IiwiYXJwYSIsImFydCIsImFydGUiLCJhcyIsImFzZGEiLCJhc2lhIiwiYXNzb2NpYXRlcyIsImF0IiwiYXRobGV0YSIsImF0dG9ybmV5IiwiYXUiLCJhdWN0aW9uIiwiYXVkaSIsImF1ZGlibGUiLCJhdWRpbyIsImF1c3Bvc3QiLCJhdXRob3IiLCJhdXRvIiwiYXV0b3MiLCJhdyIsImF3cyIsImF4IiwiYXhhIiwiYXoiLCJhenVyZSIsImJhIiwiYmFieSIsImJhaWR1IiwiYmFuYW1leCIsImJhbmQiLCJiYW5rIiwiYmFyIiwiYmFyY2Vsb25hIiwiYmFyY2xheWNhcmQiLCJiYXJjbGF5cyIsImJhcmVmb290IiwiYmFyZ2FpbnMiLCJiYXNlYmFsbCIsImJhc2tldGJhbGwiLCJiYXVoYXVzIiwiYmF5ZXJuIiwiYmIiLCJiYmMiLCJiYnQiLCJiYnZhIiwiYmNnIiwiYmNuIiwiYmQiLCJiZSIsImJlYXRzIiwiYmVhdXR5IiwiYmVlciIsImJlcmxpbiIsImJlc3QiLCJiZXN0YnV5IiwiYmV0IiwiYmYiLCJiZyIsImJoIiwiYmhhcnRpIiwiYmkiLCJiaWJsZSIsImJpZCIsImJpa2UiLCJiaW5nIiwiYmluZ28iLCJiaW8iLCJiaXoiLCJiaiIsImJsYWNrIiwiYmxhY2tmcmlkYXkiLCJibG9ja2J1c3RlciIsImJsb2ciLCJibG9vbWJlcmciLCJibHVlIiwiYm0iLCJibXMiLCJibXciLCJibiIsImJucHBhcmliYXMiLCJibyIsImJvYXRzIiwiYm9laHJpbmdlciIsImJvZmEiLCJib20iLCJib25kIiwiYm9vIiwiYm9vayIsImJvb2tpbmciLCJib3NjaCIsImJvc3RpayIsImJvc3RvbiIsImJvdCIsImJvdXRpcXVlIiwiYm94IiwiYnIiLCJicmFkZXNjbyIsImJyaWRnZXN0b25lIiwiYnJvYWR3YXkiLCJicm9rZXIiLCJicm90aGVyIiwiYnJ1c3NlbHMiLCJicyIsImJ0IiwiYnVpbGQiLCJidWlsZGVycyIsImJ1c2luZXNzIiwiYnV5IiwiYnV6eiIsImJ2IiwiYnciLCJieSIsImJ6IiwiYnpoIiwiY2EiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbm9uIiwiY2FwZXRvd24iLCJjYXBpdGFsIiwiY2FwaXRhbG9uZSIsImNhciIsImNhcmF2YW4iLCJjYXJkcyIsImNhcmUiLCJjYXJlZXIiLCJjYXJlZXJzIiwiY2FycyIsImNhc2EiLCJjYXNlIiwiY2FzaCIsImNhc2lubyIsImNhdCIsImNhdGVyaW5nIiwiY2F0aG9saWMiLCJjYmEiLCJjYm4iLCJjYnJlIiwiY2MiLCJjZCIsImNlbnRlciIsImNlbyIsImNlcm4iLCJjZiIsImNmYSIsImNmZCIsImNnIiwiY2giLCJjaGFuZWwiLCJjaGFubmVsIiwiY2hhcml0eSIsImNoYXNlIiwiY2hhdCIsImNoZWFwIiwiY2hpbnRhaSIsImNocmlzdG1hcyIsImNocm9tZSIsImNodXJjaCIsImNpIiwiY2lwcmlhbmkiLCJjaXJjbGUiLCJjaXNjbyIsImNpdGFkZWwiLCJjaXRpIiwiY2l0aWMiLCJjaXR5IiwiY2siLCJjbCIsImNsYWltcyIsImNsZWFuaW5nIiwiY2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNtIiwiY24iLCJjbyIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbSIsImNvbW1iYW5rIiwiY29tbXVuaXR5IiwiY29tcGFueSIsImNvbXBhcmUiLCJjb21wdXRlciIsImNvbXNlYyIsImNvbmRvcyIsImNvbnN0cnVjdGlvbiIsImNvbnN1bHRpbmciLCJjb250YWN0IiwiY29udHJhY3RvcnMiLCJjb29raW5nIiwiY29vbCIsImNvb3AiLCJjb3JzaWNhIiwiY291bnRyeSIsImNvdXBvbiIsImNvdXBvbnMiLCJjb3Vyc2VzIiwiY3BhIiwiY3IiLCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3UiLCJjdWlzaW5lbGxhIiwiY3YiLCJjdyIsImN4IiwiY3kiLCJjeW1ydSIsImN5b3UiLCJjeiIsImRhZCIsImRhbmNlIiwiZGF0YSIsImRhdGUiLCJkYXRpbmciLCJkYXRzdW4iLCJkYXkiLCJkY2xrIiwiZGRzIiwiZGUiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRldiIsImRobCIsImRpYW1vbmRzIiwiZGlldCIsImRpZ2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRqIiwiZGsiLCJkbSIsImRucCIsImRvIiwiZG9jcyIsImRvY3RvciIsImRvZyIsImRvbWFpbnMiLCJkb3QiLCJkb3dubG9hZCIsImRyaXZlIiwiZHR2IiwiZHViYWkiLCJkdXBvbnQiLCJkdXJiYW4iLCJkdmFnIiwiZHZyIiwiZHoiLCJlYXJ0aCIsImVhdCIsImVjIiwiZWNvIiwiZWRla2EiLCJlZHUiLCJlZHVjYXRpb24iLCJlZSIsImVnIiwiZW1haWwiLCJlbWVyY2siLCJlbmVyZ3kiLCJlbmdpbmVlciIsImVuZ2luZWVyaW5nIiwiZW50ZXJwcmlzZXMiLCJlcHNvbiIsImVxdWlwbWVudCIsImVyIiwiZXJpY3Nzb24iLCJlcm5pIiwiZXMiLCJlc3EiLCJlc3RhdGUiLCJldCIsImV1IiwiZXVyb3Zpc2lvbiIsImV1cyIsImV2ZW50cyIsImV4Y2hhbmdlIiwiZXhwZXJ0IiwiZXhwb3NlZCIsImV4cHJlc3MiLCJleHRyYXNwYWNlIiwiZmFnZSIsImZhaWwiLCJmYWlyd2luZHMiLCJmYWl0aCIsImZhbWlseSIsImZhbiIsImZhbnMiLCJmYXJtIiwiZmFybWVycyIsImZhc2hpb24iLCJmYXN0IiwiZmVkZXgiLCJmZWVkYmFjayIsImZlcnJhcmkiLCJmZXJyZXJvIiwiZmkiLCJmaWRlbGl0eSIsImZpZG8iLCJmaWxtIiwiZmluYWwiLCJmaW5hbmNlIiwiZmluYW5jaWFsIiwiZmlyZSIsImZpcmVzdG9uZSIsImZpcm1kYWxlIiwiZmlzaCIsImZpc2hpbmciLCJmaXQiLCJmaXRuZXNzIiwiZmoiLCJmayIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmbSIsImZvIiwiZm9vIiwiZm9vZCIsImZvb3RiYWxsIiwiZm9yZCIsImZvcmV4IiwiZm9yc2FsZSIsImZvcnVtIiwiZm91bmRhdGlvbiIsImZveCIsImZyIiwiZnJlZSIsImZyZXNlbml1cyIsImZybCIsImZyb2dhbnMiLCJmcm9udGllciIsImZ0ciIsImZ1aml0c3UiLCJmdW4iLCJmdW5kIiwiZnVybml0dXJlIiwiZnV0Ym9sIiwiZnlpIiwiZ2EiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJkZW4iLCJnYXkiLCJnYiIsImdiaXoiLCJnZCIsImdkbiIsImdlIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZiIsImdnIiwiZ2dlZSIsImdoIiwiZ2kiLCJnaWZ0IiwiZ2lmdHMiLCJnaXZlcyIsImdpdmluZyIsImdsIiwiZ2xhc3MiLCJnbGUiLCJnbG9iYWwiLCJnbG9ibyIsImdtIiwiZ21haWwiLCJnbWJoIiwiZ21vIiwiZ214IiwiZ24iLCJnb2RhZGR5IiwiZ29sZCIsImdvbGRwb2ludCIsImdvbGYiLCJnb28iLCJnb29keWVhciIsImdvb2ciLCJnb29nbGUiLCJnb3AiLCJnb3QiLCJnb3YiLCJncCIsImdxIiwiZ3IiLCJncmFpbmdlciIsImdyYXBoaWNzIiwiZ3JhdGlzIiwiZ3JlZW4iLCJncmlwZSIsImdyb2NlcnkiLCJncm91cCIsImdzIiwiZ3QiLCJndSIsImd1Y2NpIiwiZ3VnZSIsImd1aWRlIiwiZ3VpdGFycyIsImd1cnUiLCJndyIsImd5IiwiaGFpciIsImhhbWJ1cmciLCJoYW5nb3V0IiwiaGF1cyIsImhibyIsImhkZmMiLCJoZGZjYmFuayIsImhlYWx0aCIsImhlYWx0aGNhcmUiLCJoZWxwIiwiaGVsc2lua2kiLCJoZXJlIiwiaGVybWVzIiwiaGlwaG9wIiwiaGlzYW1pdHN1IiwiaGl0YWNoaSIsImhpdiIsImhrIiwiaGt0IiwiaG0iLCJobiIsImhvY2tleSIsImhvbGRpbmdzIiwiaG9saWRheSIsImhvbWVkZXBvdCIsImhvbWVnb29kcyIsImhvbWVzIiwiaG9tZXNlbnNlIiwiaG9uZGEiLCJob3JzZSIsImhvc3BpdGFsIiwiaG9zdCIsImhvc3RpbmciLCJob3QiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJociIsImhzYmMiLCJodCIsImh1IiwiaHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImlkIiwiaWUiLCJpZWVlIiwiaWZtIiwiaWthbm8iLCJpbCIsImltIiwiaW1hbWF0IiwiaW1kYiIsImltbW8iLCJpbW1vYmlsaWVuIiwiaW4iLCJpbmMiLCJpbmR1c3RyaWVzIiwiaW5maW5pdGkiLCJpbmZvIiwiaW5nIiwiaW5rIiwiaW5zdGl0dXRlIiwiaW5zdXJhbmNlIiwiaW5zdXJlIiwiaW50IiwiaW50ZXJuYXRpb25hbCIsImludHVpdCIsImludmVzdG1lbnRzIiwiaW8iLCJpcGlyYW5nYSIsImlxIiwiaXIiLCJpcmlzaCIsImlzIiwiaXNtYWlsaSIsImlzdCIsImlzdGFuYnVsIiwiaXQiLCJpdGF1IiwiaXR2IiwiamFndWFyIiwiamF2YSIsImpjYiIsImplIiwiamVlcCIsImpldHp0IiwiamV3ZWxyeSIsImppbyIsImpsbCIsImptIiwiam1wIiwiam5qIiwiam8iLCJqb2JzIiwiam9idXJnIiwiam90Iiwiam95IiwianAiLCJqcG1vcmdhbiIsImpwcnMiLCJqdWVnb3MiLCJqdW5pcGVyIiwia2F1ZmVuIiwia2RkaSIsImtlIiwia2Vycnlob3RlbHMiLCJrZXJyeXByb3BlcnRpZXMiLCJrZmgiLCJrZyIsImtoIiwia2kiLCJraWEiLCJraWRzIiwia2ltIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrbSIsImtuIiwia29lbG4iLCJrb21hdHN1Iiwia29zaGVyIiwia3AiLCJrcG1nIiwia3BuIiwia3IiLCJrcmQiLCJrcmVkIiwia3Vva2dyb3VwIiwia3ciLCJreSIsImt5b3RvIiwia3oiLCJsYSIsImxhY2FpeGEiLCJsYW1ib3JnaGluaSIsImxhbWVyIiwibGFuZCIsImxhbmRyb3ZlciIsImxhbnhlc3MiLCJsYXNhbGxlIiwibGF0IiwibGF0aW5vIiwibGF0cm9iZSIsImxhdyIsImxhd3llciIsImxiIiwibGMiLCJsZHMiLCJsZWFzZSIsImxlY2xlcmMiLCJsZWZyYWsiLCJsZWdhbCIsImxlZ28iLCJsZXh1cyIsImxnYnQiLCJsaSIsImxpZGwiLCJsaWZlIiwibGlmZWluc3VyYW5jZSIsImxpZmVzdHlsZSIsImxpZ2h0aW5nIiwibGlrZSIsImxpbGx5IiwibGltaXRlZCIsImxpbW8iLCJsaW5jb2xuIiwibGluayIsImxpdmUiLCJsaXZpbmciLCJsayIsImxsYyIsImxscCIsImxvYW4iLCJsb2FucyIsImxvY2tlciIsImxvY3VzIiwibG9sIiwibG9uZG9uIiwibG90dGUiLCJsb3R0byIsImxvdmUiLCJscGwiLCJscGxmaW5hbmNpYWwiLCJsciIsImxzIiwibHQiLCJsdGQiLCJsdGRhIiwibHUiLCJsdW5kYmVjayIsImx1eGUiLCJsdXh1cnkiLCJsdiIsImx5IiwibWEiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwibWFya2V0cyIsIm1hcnJpb3R0IiwibWFyc2hhbGxzIiwibWF0dGVsIiwibWJhIiwibWMiLCJtY2tpbnNleSIsIm1kIiwibWUiLCJtZWQiLCJtZWRpYSIsIm1lZXQiLCJtZWxib3VybmUiLCJtZW1lIiwibWVtb3JpYWwiLCJtZW4iLCJtZW51IiwibWVyY2ttc2QiLCJtZyIsIm1oIiwibWlhbWkiLCJtaWNyb3NvZnQiLCJtaWwiLCJtaW5pIiwibWludCIsIm1pdCIsIm1pdHN1YmlzaGkiLCJtayIsIm1sIiwibWxiIiwibWxzIiwibW0iLCJtbWEiLCJtbiIsIm1vIiwibW9iaSIsIm1vYmlsZSIsIm1vZGEiLCJtb2UiLCJtb2kiLCJtb20iLCJtb25hc2giLCJtb25leSIsIm1vbnN0ZXIiLCJtb3Jtb24iLCJtb3J0Z2FnZSIsIm1vc2NvdyIsIm1vdG8iLCJtb3RvcmN5Y2xlcyIsIm1vdiIsIm1vdmllIiwibXAiLCJtcSIsIm1yIiwibXMiLCJtc2QiLCJtdCIsIm10biIsIm10ciIsIm11IiwibXVzZXVtIiwibXVzaWMiLCJtdiIsIm13IiwibXgiLCJteSIsIm16IiwibmEiLCJuYWIiLCJuYWdveWEiLCJuYW1lIiwibmF2eSIsIm5iYSIsIm5jIiwibmUiLCJuZWMiLCJuZXQiLCJuZXRiYW5rIiwibmV0ZmxpeCIsIm5ldHdvcmsiLCJuZXVzdGFyIiwibmV3IiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZiIsIm5mbCIsIm5nIiwibmdvIiwibmhrIiwibmkiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJubCIsIm5vIiwibm9raWEiLCJub3J0b24iLCJub3ciLCJub3dydXoiLCJub3d0diIsIm5wIiwibnIiLCJucmEiLCJucnciLCJudHQiLCJudSIsIm55YyIsIm56Iiwib2JpIiwib2JzZXJ2ZXIiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGxvIiwib20iLCJvbWVnYSIsIm9uZSIsIm9uZyIsIm9ubCIsIm9ubGluZSIsIm9vbyIsIm9wZW4iLCJvcmFjbGUiLCJvcmFuZ2UiLCJvcmciLCJvcmdhbmljIiwib3JpZ2lucyIsIm9zYWthIiwib3RzdWthIiwib3R0Iiwib3ZoIiwicGEiLCJwYWdlIiwicGFuYXNvbmljIiwicGFyaXMiLCJwYXJzIiwicGFydG5lcnMiLCJwYXJ0cyIsInBhcnR5IiwicGF5IiwicGNjdyIsInBlIiwicGV0IiwicGYiLCJwZml6ZXIiLCJwZyIsInBoIiwicGhhcm1hY3kiLCJwaGQiLCJwaGlsaXBzIiwicGhvbmUiLCJwaG90byIsInBob3RvZ3JhcGh5IiwicGhvdG9zIiwicGh5c2lvIiwicGljcyIsInBpY3RldCIsInBpY3R1cmVzIiwicGlkIiwicGluIiwicGluZyIsInBpbmsiLCJwaW9uZWVyIiwicGl6emEiLCJwayIsInBsIiwicGxhY2UiLCJwbGF5IiwicGxheXN0YXRpb24iLCJwbHVtYmluZyIsInBsdXMiLCJwbSIsInBuIiwicG5jIiwicG9obCIsInBva2VyIiwicG9saXRpZSIsInBvcm4iLCJwb3N0IiwicHIiLCJwcmF4aSIsInByZXNzIiwicHJpbWUiLCJwcm8iLCJwcm9kIiwicHJvZHVjdGlvbnMiLCJwcm9mIiwicHJvZ3Jlc3NpdmUiLCJwcm9tbyIsInByb3BlcnRpZXMiLCJwcm9wZXJ0eSIsInByb3RlY3Rpb24iLCJwcnUiLCJwcnVkZW50aWFsIiwicHMiLCJwdCIsInB1YiIsInB3IiwicHdjIiwicHkiLCJxYSIsInFwb24iLCJxdWViZWMiLCJxdWVzdCIsInJhY2luZyIsInJhZGlvIiwicmUiLCJyZWFkIiwicmVhbGVzdGF0ZSIsInJlYWx0b3IiLCJyZWFsdHkiLCJyZWNpcGVzIiwicmVkIiwicmVkdW1icmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJhbnQiLCJyZXZpZXciLCJyZXZpZXdzIiwicmV4cm90aCIsInJpY2giLCJyaWNoYXJkbGkiLCJyaWNvaCIsInJpbCIsInJpbyIsInJpcCIsInJvIiwicm9ja3MiLCJyb2RlbyIsInJvZ2VycyIsInJvb20iLCJycyIsInJzdnAiLCJydSIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3IiwicndlIiwicnl1a3l1Iiwic2EiLCJzYWFybGFuZCIsInNhZmUiLCJzYWZldHkiLCJzYWt1cmEiLCJzYWxlIiwic2Fsb24iLCJzYW1zY2x1YiIsInNhbXN1bmciLCJzYW5kdmlrIiwic2FuZHZpa2Nvcm9tYW50Iiwic2Fub2ZpIiwic2FwIiwic2FybCIsInNhcyIsInNhdmUiLCJzYXhvIiwic2IiLCJzYmkiLCJzYnMiLCJzYyIsInNjYiIsInNjaGFlZmZsZXIiLCJzY2htaWR0Iiwic2Nob2xhcnNoaXBzIiwic2Nob29sIiwic2NodWxlIiwic2Nod2FyeiIsInNjaWVuY2UiLCJzY290Iiwic2QiLCJzZSIsInNlYXJjaCIsInNlYXQiLCJzZWN1cmUiLCJzZWN1cml0eSIsInNlZWsiLCJzZWxlY3QiLCJzZW5lciIsInNlcnZpY2VzIiwic2V2ZW4iLCJzZXciLCJzZXgiLCJzZXh5Iiwic2ZyIiwic2ciLCJzaCIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hlbGwiLCJzaGlhIiwic2hpa3NoYSIsInNob2VzIiwic2hvcCIsInNob3BwaW5nIiwic2hvdWppIiwic2hvdyIsInNpIiwic2lsayIsInNpbmEiLCJzaW5nbGVzIiwic2l0ZSIsInNqIiwic2siLCJza2kiLCJza2luIiwic2t5Iiwic2t5cGUiLCJzbCIsInNsaW5nIiwic20iLCJzbWFydCIsInNtaWxlIiwic24iLCJzbmNmIiwic28iLCJzb2NjZXIiLCJzb2NpYWwiLCJzb2Z0YmFuayIsInNvZnR3YXJlIiwic29odSIsInNvbGFyIiwic29sdXRpb25zIiwic29uZyIsInNvbnkiLCJzb3kiLCJzcGEiLCJzcGFjZSIsInNwb3J0Iiwic3BvdCIsInNyIiwic3JsIiwic3MiLCJzdCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJzdGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJzdSIsInN1Y2tzIiwic3VwcGxpZXMiLCJzdXBwbHkiLCJzdXBwb3J0Iiwic3VyZiIsInN1cmdlcnkiLCJzdXp1a2kiLCJzdiIsInN3YXRjaCIsInN3aXNzIiwic3giLCJzeSIsInN5ZG5leSIsInN5c3RlbXMiLCJzeiIsInRhYiIsInRhaXBlaSIsInRhbGsiLCJ0YW9iYW8iLCJ0YXJnZXQiLCJ0YXRhbW90b3JzIiwidGF0YXIiLCJ0YXR0b28iLCJ0YXgiLCJ0YXhpIiwidGMiLCJ0Y2kiLCJ0ZCIsInRkayIsInRlYW0iLCJ0ZWNoIiwidGVjaG5vbG9neSIsInRlbCIsInRlbWFzZWsiLCJ0ZW5uaXMiLCJ0ZXZhIiwidGYiLCJ0ZyIsInRoIiwidGhkIiwidGhlYXRlciIsInRoZWF0cmUiLCJ0aWFhIiwidGlja2V0cyIsInRpZW5kYSIsInRpcHMiLCJ0aXJlcyIsInRpcm9sIiwidGoiLCJ0am1heHgiLCJ0angiLCJ0ayIsInRrbWF4eCIsInRsIiwidG0iLCJ0bWFsbCIsInRuIiwidG8iLCJ0b2RheSIsInRva3lvIiwidG9vbHMiLCJ0b3AiLCJ0b3JheSIsInRvc2hpYmEiLCJ0b3RhbCIsInRvdXJzIiwidG93biIsInRveW90YSIsInRveXMiLCJ0ciIsInRyYWRlIiwidHJhZGluZyIsInRyYWluaW5nIiwidHJhdmVsIiwidHJhdmVsZXJzIiwidHJhdmVsZXJzaW5zdXJhbmNlIiwidHJ1c3QiLCJ0cnYiLCJ0dCIsInR1YmUiLCJ0dWkiLCJ0dW5lcyIsInR1c2h1IiwidHYiLCJ0dnMiLCJ0dyIsInR6IiwidWEiLCJ1YmFuayIsInVicyIsInVnIiwidWsiLCJ1bmljb20iLCJ1bml2ZXJzaXR5IiwidW5vIiwidW9sIiwidXBzIiwidXMiLCJ1eSIsInV6IiwidmEiLCJ2YWNhdGlvbnMiLCJ2YW5hIiwidmFuZ3VhcmQiLCJ2YyIsInZlIiwidmVnYXMiLCJ2ZW50dXJlcyIsInZlcmlzaWduIiwidmVybcO2Z2Vuc2JlcmF0ZXIiLCJ2ZXJtw7ZnZW5zYmVyYXR1bmciLCJ2ZXJzaWNoZXJ1bmciLCJ2ZXQiLCJ2ZyIsInZpIiwidmlhamVzIiwidmlkZW8iLCJ2aWciLCJ2aWtpbmciLCJ2aWxsYXMiLCJ2aW4iLCJ2aXAiLCJ2aXJnaW4iLCJ2aXNhIiwidmlzaW9uIiwidml2YSIsInZpdm8iLCJ2bGFhbmRlcmVuIiwidm4iLCJ2b2RrYSIsInZvbHZvIiwidm90ZSIsInZvdGluZyIsInZvdG8iLCJ2b3lhZ2UiLCJ2dSIsIndhbGVzIiwid2FsbWFydCIsIndhbHRlciIsIndhbmciLCJ3YW5nZ291Iiwid2F0Y2giLCJ3YXRjaGVzIiwid2VhdGhlciIsIndlYXRoZXJjaGFubmVsIiwid2ViY2FtIiwid2ViZXIiLCJ3ZWJzaXRlIiwid2VkIiwid2VkZGluZyIsIndlaWJvIiwid2VpciIsIndmIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwid2luZSIsIndpbm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsIndzIiwid3RjIiwid3RmIiwieGJveCIsInhlcm94IiwieGlodWFuIiwieGluIiwieHh4IiwieHl6IiwieWFjaHRzIiwieWFob28iLCJ5YW1heHVuIiwieWFuZGV4IiwieWUiLCJ5b2RvYmFzaGkiLCJ5b2dhIiwieW9rb2hhbWEiLCJ5b3UiLCJ5b3V0dWJlIiwieXQiLCJ5dW4iLCJ6YSIsInphcHBvcyIsInphcmEiLCJ6ZXJvIiwiemlwIiwiem0iLCJ6b25lIiwienVlcmljaCIsInp3IiwizrXOuyIsIs61z4UiLCLQsdCzIiwi0LHQtdC7Iiwi0LTQtdGC0LgiLCLQtdGOIiwi0LrQsNGC0L7Qu9C40LoiLCLQutC+0LwiLCLQvNC60LQiLCLQvNC+0L0iLCLQvNC+0YHQutCy0LAiLCLQvtC90LvQsNC50L0iLCLQvtGA0LMiLCLRgNGD0YEiLCLRgNGEIiwi0YHQsNC50YIiLCLRgdGA0LEiLCLRg9C60YAiLCLSm9Cw0LciLCLVsNWh1bUiLCLXmdep16jXkNecIiwi16fXldedIiwi2KfYqNmI2LjYqNmKIiwi2KfYsdin2YXZg9mIIiwi2KfZhNin2LHYr9mGIiwi2KfZhNio2K3YsdmK2YYiLCLYp9mE2KzYstin2KbYsSIsItin2YTYs9i52YjYr9mK2KkiLCLYp9mE2LnZhNmK2KfZhiIsItin2YTZhdi62LHYqCIsItin2YXYp9ix2KfYqiIsItin24zYsdin2YYiLCLYqNin2LHYqiIsItio2KfYstin2LEiLCLYqNmK2KrZgyIsItio2r7Yp9ix2KoiLCLYqtmI2YbYsyIsItiz2YjYr9in2YYiLCLYs9mI2LHZitipIiwi2LTYqNmD2KkiLCLYudix2KfZgiIsIti52LHYqCIsIti52YXYp9mGIiwi2YHZhNiz2LfZitmGIiwi2YLYt9ixIiwi2YPYp9ir2YjZhNmK2YMiLCLZg9mI2YUiLCLZhdi12LEiLCLZhdmE2YrYs9mK2KciLCLZhdmI2LHZitiq2KfZhtmK2KciLCLZhdmI2YLYuSIsItmH2YXYsdin2YciLCLZvtin2qnYs9iq2KfZhiIsItqA2KfYsdiqIiwi4KSV4KWJ4KSuIiwi4KSo4KWH4KSfIiwi4KSt4KS+4KSw4KSkIiwi4KSt4KS+4KSw4KSk4KSu4KWNIiwi4KSt4KS+4KSw4KWL4KSkIiwi4KS44KSC4KSX4KSg4KSoIiwi4Kas4Ka+4KaC4Kay4Ka+Iiwi4Kat4Ka+4Kaw4KakIiwi4Kat4Ka+4Kew4KakIiwi4Kit4Ki+4Kiw4KikIiwi4Kqt4Kq+4Kqw4KqkIiwi4Kyt4Ky+4Kyw4KykIiwi4K6H4K6o4K+N4K6k4K6/4K6v4K6+Iiwi4K6H4K6y4K6Z4K+N4K6V4K+IIiwi4K6a4K6/4K6Z4K+N4K6V4K6q4K+N4K6q4K+C4K6w4K+NIiwi4LCt4LC+4LCw4LCk4LGNIiwi4LKt4LK+4LKw4LKkIiwi4LSt4LS+4LSw4LSk4LSCIiwi4La94LaC4Laa4LePIiwi4LiE4Lit4LihIiwi4LmE4LiX4LiiIiwi4Lql4Lqy4LqnIiwi4YOS4YOUIiwi44G/44KT44GqIiwi44Ki44Oe44K+44OzIiwi44Kv44Op44Km44OJIiwi44Kw44O844Kw44OrIiwi44Kz44OgIiwi44K544OI44KiIiwi44K744O844OrIiwi44OV44Kh44OD44K344On44OzIiwi44Od44Kk44Oz44OIIiwi5LiW55WMIiwi5Lit5L+hIiwi5Lit5Zu9Iiwi5Lit5ZyLIiwi5Lit5paH572RIiwi5Lqa6ams6YCKIiwi5LyB5LiaIiwi5L2b5bGxIiwi5L+h5oGvIiwi5YGl5bq3Iiwi5YWr5Y2mIiwi5YWs5Y+4Iiwi5YWs55uKIiwi5Y+w5rm+Iiwi5Y+w54GjIiwi5ZWG5Z+OIiwi5ZWG5bqXIiwi5ZWG5qCHIiwi5ZiJ6YeMIiwi5ZiJ6YeM5aSn6YWS5bqXIiwi5Zyo57q/Iiwi5aSn5ou/Iiwi5aSp5Li75pWZIiwi5aix5LmQIiwi5a626Zu7Iiwi5bm/5LicIiwi5b6u5Y2aIiwi5oWI5ZaEIiwi5oiR54ix5L2gIiwi5omL5py6Iiwi5oub6IGYIiwi5pS/5YqhIiwi5pS/5bqcIiwi5paw5Yqg5Z2hIiwi5paw6Ze7Iiwi5pe25bCaIiwi5pu457GNIiwi5py65p6EIiwi5reh6ams6ZShIiwi5ri45oiPIiwi5r6z6ZaAIiwi54K555yLIiwi56e75YqoIiwi57uE57uH5py65p6EIiwi572R5Z2AIiwi572R5bqXIiwi572R56uZIiwi572R57ucIiwi6IGU6YCaIiwi6LC35q2MIiwi6LSt54mpIiwi6YCa6LKpIiwi6ZuG5ZuiIiwi6Zu76KiK55uI56eRIiwi6aOe5Yip5rWmIiwi6aOf5ZOBIiwi6aSQ5Y6FIiwi6aaZ5qC86YeM5ouJIiwi6aaZ5rivIiwi64u364S3Iiwi64u37Lu0Iiwi7IK87ISxIiwi7ZWc6rWtIl1gKSx5Zj0vXlstISMkJSYnKisvMC05PT9BLVpeX2EtemB7fH1+XShcLj9bLSEjJCUmJyorLzAtOT0/QS1aXl9hLXpge3x9fl0pKkBbYS16QS1aMC05XSgtKlwuP1thLXpBLVowLTldKSpcLlthLXpBLVpdKC0/W2EtekEtWjAtOV0pKyQvLGJmPS8oKD86d3d3Lik/W15ccy5dK1wuW15ccy9dK1wvW15ccy5dKykvLHhmPS9bJjw+IiddL2csU2Y9ZT0+e2xldCB0PXsiJiI6YCZhbXA7YCwiPCI6YCZsdDtgLCI+IjpgJmd0O2AsJyInOmAmcXVvdDtgLCInIjpgJiMzOTtgfSxuPVJlZ0V4cCh4Zi5zb3VyY2UpO3JldHVybiBlJiZuLnRlc3QoZSk/ZS5yZXBsYWNlKHhmLGU9PnRbZV0pOmV8fGBgfSxDZj1gb3ZlcmZsb3c6IGhpZGRlbjsgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94OyAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOyAtd2Via2l0LWxpbmUtY2xhbXA6IDE7IGxpbmUtY2xhbXA6IDE7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtgLHdmPW5ldyBfZigpLnRsZHModmYpLnNldCh7ZnV6enlJUDohMH0pLFRmPW5ldyBfZigpLnRsZHModmYpLEVmPShlLHQsbik9PntsZXQgcj1CKCkubG9jYXRpb24uaG9zdG5hbWU7cmV0dXJuYDxhIGhyZWY9IiR7ZX0iIHRhcmdldD0iJHtyLmxlbmd0aD4wJiZlLmluY2x1ZGVzKHIpP2BfcGFyZW50YDpgX2JsYW5rYH0iIHJlbD0ibm9yZWZlcnJlciBub29wZW5lciIgdGl0bGU9IiR7ZX0iIHN0eWxlPSIke24/LmNsYW1wJiYhbj8ucmVwbGFjZVRleHQ/Q2Y6YGB9Ij4ke3R9PC9hPmB9LERmPShlLHQpPT57aWYoZT09PWBgKXJldHVybiBlO2xldCBuPXdmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBTZihlKTtsZXQgcj1gYCxpPTA7cmV0dXJuIG4uZm9yRWFjaChuPT57bGV0IGE9YGAsbz1gYCxzPU9mKGUsbiksYz10Py5jbGFtcCYmbi50ZXh0Lmxlbmd0aD4zMCYmIXM7bi5pbmRleD5pJiYoYT1lLnN1YnN0cmluZyhpLG4uaW5kZXgpKSxvPUVmKG4udXJsLG4udGV4dCx7Li4udCxjbGFtcDpjfSksaT1uLmxhc3RJbmRleCxzJiYoYT1hLnN1YnN0cmluZygwLGEubGVuZ3RoLTEpLGkrPTEpLGMmJiFrZihlLG4pJiYobz1gXG4ke299XG5gLGE9YS50cmltRW5kKCksZVtpXT8ubWF0Y2goL1xzLykmJihpKz0xKSkscis9U2YoYSkrb30pLGUubGVuZ3RoPmkmJihyKz1TZihlLnN1YnN0cmluZyhpKSkpLHJ9LE9mPShlLHQpPT5lW3QuaW5kZXgtMV09PT1gImAmJmVbdC5sYXN0SW5kZXhdPT09YCJgLGtmPShlLHQpPT4hISh0LmluZGV4PD0xJiZlLnN1YnN0cmluZyh0Lmxhc3RJbmRleCx0Lmxhc3RJbmRleCszKS5tYXRjaCgvW1xuXHJdKy8pfHxlLnN1YnN0cmluZyh0LmluZGV4LTMsdC5pbmRleCkubWF0Y2goL1tcblxyXSsvKSYmZS5zdWJzdHJpbmcodC5sYXN0SW5kZXgsdC5sYXN0SW5kZXgrMykubWF0Y2goL1tcblxyXSsvKXx8ZS5zdWJzdHJpbmcodC5pbmRleC0zLHQuaW5kZXgpLm1hdGNoKC9bXG5ccl0rLykmJnQubGFzdEluZGV4PmUubGVuZ3RoLTN8fHQuaW5kZXg8PTEmJnQubGFzdEluZGV4Pj1lLmxlbmd0aC0yKSxBZj1lPT5lLnJlcGxhY2UoL15odHRwcz86XC9cLy8sYGApLnJlcGxhY2UoL153d3dcLi8sYGApLnJlcGxhY2UoL1wvKyQvLGBgKS50b0xvd2VyQ2FzZSgpLGpmPWU9PntsZXQgdD1bYG1haWx0bzpgLGBmdHA6YCxgLy9gXSxuPVRmLm1hdGNoKGUpO2lmKCFuKXJldHVybiBudWxsO2xldCByPW5ldyBTZXQ7cmV0dXJuIG4uZmlsdGVyKGU9PntpZih0LmluY2x1ZGVzKGUuc2NoZW1hKSlyZXR1cm4hMTtsZXQgbj1BZihlLnVybCk7cmV0dXJuIHIuaGFzKG4pPyExOihyLmFkZChuKSwhMCl9KX0sTWY9KCk9PlBvKGBjYXJkc2ApLE5mPWU9PntGbyh7Li4uZX0sYGNhcmRzYCl9LFBmPWFzeW5jIGU9PntsZXQgdD1uZXcgSGVhZGVycyx7d2lkZ2V0QXBpVXJsOm59PVYuZ2V0T3B0aW9ucygpO3QuYXBwZW5kKGBDb250ZW50LVR5cGVgLGBhcHBsaWNhdGlvbi9qc29uYCk7bGV0IHI9SlNPTi5zdHJpbmdpZnkoe2xpbmtzOmV9KTt0cnl7bGV0IGU9YXdhaXQgZmV0Y2goYCR7bn0vbGlua3MvcHJldmlld2Ase21ldGhvZDpgUE9TVGAsaGVhZGVyczp0LGJvZHk6cn0pO3JldHVybiBlLm9rJiZlLmpzb24/YXdhaXQgZS5qc29uKCk6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19LEZmPWU9PmUuZmluZChlPT5lLnR5cGU9PT1gb3Blbl91cmxgKT8udmFsdWV8fGBgLElmPWU9PntsZXQgdD1lLmZpbHRlcihlPT5lLnRpdGxlJiZlLmltYWdlJiYhUmYoRmYoZS5hY3Rpb25zKSkpO3JldHVybiB0Lmxlbmd0aCYmZS5sZW5ndGg+MT9lOnQubGVuZ3RoPT09MT90OltdfSxMZj1lPT57bGV0IHQ9bmV3IERhdGUoKS5nZXRUaW1lKCk7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2gobj0+eyghZVtuXS5leHBpcmF0aW9ufHxlW25dLmV4cGlyYXRpb24mJmVbbl0uZXhwaXJhdGlvbjx0KSYmZGVsZXRlIGVbbl19KSxlfSxSZj1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dH09QShibCksbj1lLm1hdGNoKC8oXC4pKFteLl17Myw0fSkkL20pO3JldHVybiBuJiZuWzJdJiZ0LmluY2x1ZGVzKG5bMl0pfSx6Zj1hc3luYyBlPT57dHJ5e2F3YWl0IHEuZ2V0Q2xpZW50KCkubGlua09wZW5lZCh7dXJsOmV9KX1jYXRjaChlKXtqbyhgU2VuZGluZyBsaW5rIG9wZW5lZCBhbmFseXRpY3MgZXZlbnQgZmFpbGVkYCxTdHJpbmcoZSkpfX0sQmY9KGUsdCk9PntpZighdClyZXR1cm47bGV0IG49YXN5bmMgbj0+e2xldCByPW4udGFyZ2V0LmNsb3Nlc3QoYGFgKTtyJiZlLmNvbnRhaW5zKHIpJiZ0JiZhd2FpdCB6ZihyLmhyZWYpfSxyPWU9PnZvaWQgbihlKSxpPWU9PntlLmJ1dHRvbiE9PTImJm4oZSl9LGE9ZT0+dm9pZCBuKGUpO3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXIoYGNsaWNrYCxyKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGF1eGNsaWNrYCxpKSxlLmFkZEV2ZW50TGlzdGVuZXIoYGNvbnRleHRtZW51YCxhKSx7ZGVzdHJveSgpe2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY2xpY2tgLHIpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYXV4Y2xpY2tgLGkpLGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihgY29udGV4dG1lbnVgLGEpfX19LFZmPSExLEhmPU8oKSxVZj1PKCExKSxXZj1PKCExKSxHZj0oZSx0LG4pPT57bGV0IHI9e30saT1uZXcgRGF0ZSgpLmdldFRpbWUoKStNZDtlLmZvckVhY2goKGUsbik9PnJbZV09e2V4cGlyYXRpb246aSxjYXJkOnRbbl19KTtsZXQgYT17Li4ubiwuLi5yfTtIZi5zZXQoYSksTmYoYSl9LEtmPWFzeW5jKGUsdCxuPSExKT0+e2xldCByPVtdLGk9e3R5cGU6YGNhcmRzYCxsYXlvdXQ6YGNhcm91c2VsYCxpdGVtczpbXX07VmZ8fD0oSGYuc2V0KE1mKCkpLCEwKTtsZXQgYT1qZihlKTtpZighYSlyZXR1cm4gbnVsbDtsZXQgbz1MZihBKEhmKSkscz1bXTtpZihhLmZvckVhY2godD0+e09mKGUsdCl8fChvW3QudXJsXT9yLnB1c2gob1t0LnVybF0uY2FyZCk6cy5wdXNoKHQudXJsKSl9KSxzLmxlbmd0aD4wKXt0JiZVZi5zZXQoITApLG4mJldmLnNldCghMCk7bGV0IGU9YXdhaXQgUGYocyk7ZSYmKEdmKHMsZSxvKSxyPVsuLi5yLC4uLmVdKX1yZXR1cm4gaS5pdGVtcz1JZihyKSxVZi5zZXQoITEpLFdmLnNldCghMSksaS5pdGVtcy5sZW5ndGg+MD9pOm51bGx9LHFmPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbnRhY3RNZXNzYWdlPWBjb250YWN0LW1lc3NhZ2VgLGUuQWdlbnRNZXNzYWdlPWBhZ2VudC1tZXNzYWdlYCxlLkJvdE1lc3NhZ2U9YGJvdC1tZXNzYWdlYCxlLkJvdFJlcGxpZXM9YGJvdC1yZXBsaWVzYCxlfSh7fSksSmY9YXN5bmMoe3RleHQ6ZSxxdWlja1JlcGx5OnR9KT0+e3RyeXtsZXQgbj1CKCkubG9jYXRpb24uaHJlZjtyZXR1cm4gYXdhaXQgcS5nZXRDbGllbnQoKS5jaGF0TWVzc2FnZSh7Y29udGVudDp7dHlwZTpHLk1lc3NhZ2VDb250ZW50VHlwZS5UZXh0LHRleHQ6ZX0scXVpY2tSZXBseTp0LHBhZ2VVcmw6bn0pPz9udWxsfWNhdGNoe3JldHVybiBudWxsfX0sWWY9ZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3R8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuVHJpZ2dlcixYZj1lPT5lLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlN5c3RlbSxaZj1lPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk5vdGUsUWY9ZT0+IWUuZGVsZXRlZEF0JiYhWmYoZSkmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxZZihlKSksJGY9ZT0+YGh0bWxgaW4gZSYmISFlLmh0bWwsZXA9ZT0+YHRleHRgaW4gZSYmISFlLnRleHQsdHA9KGUsdCk9Pm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCktbmV3IERhdGUodC5jcmVhdGVkQXQpLmdldFRpbWUoKSxucD0oZSx0KT0+dD09PXFmLkJvdFJlcGxpZXM/YCR7ZS5pZH0tcmVwbGllc2A6ZS5pZCxycD1lPT57bGV0IHQ9e2lzUmlnaHQ6ITEsaXNMZWZ0OiExfSxuPXtpc1ByaW1hcnk6ITEsaXNTZWNvbmRhcnk6ITF9O3N3aXRjaChlKXtjYXNlIHFmLkNvbnRhY3RNZXNzYWdlOnQuaXNSaWdodD0hMCxuLmlzUHJpbWFyeT0hMDticmVhaztkZWZhdWx0OnQuaXNMZWZ0PSEwLG4uaXNTZWNvbmRhcnk9ITB9cmV0dXJue2FsaWduOnQsdmFyaWFudDpufX0saXA9ZT0+ISFlLmFnZW50SWR8fGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiZlLmNvbnRlbnQudHlwZSE9PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlRpY2tldEZvcm0sYXA9KGUsdCk9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuU3lzdGVtfHx0PT09cWYuQm90UmVwbGllc3x8ZS5jb250ZW50LnR5cGU9PT1HLk1lc3NhZ2VDb250ZW50VHlwZS5UaWNrZXRGb3JtLG9wPWU9PntsZXQgdD1bXSxuPW51bGwscj1udWxsO2ZvcihsZXQgaSBvZiBlKXtpZihpLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiYoaS5jb250ZW50LmRhdGEudGFyZ2V0PT09Ry5SYXRpbmdUYXJnZXQuQWkmJiFKcCgpfHxpLmNvbnRlbnQuZGF0YS50YXJnZXQ9PT1HLlJhdGluZ1RhcmdldC5BZ2VudCYmIXFwKCkpKWNvbnRpbnVlO24mJiFocChpLG4pJiYodC5wdXNoKG4pLG49bnVsbCxyPW51bGwpLG58fD1zcChpKTtsZXQgZT1scChpLG4pO2lmKHIpe2xldCB0PV9wKHIpLG49ZHAocik7ZS5uZWlnaGJvcnMuaGFzVG9wPXQsbi5hbnkubmVpZ2hib3JzLmhhc0JvdHRvbT10LG4uYXR0YWNobWVudENvbnRleHQmJihuLmF0dGFjaG1lbnRDb250ZXh0LmV4dHJhU3BhY2VzLmhhc0JvdHRvbT15cChuLmF0dGFjaG1lbnRDb250ZXh0LmF0dGFjaG1lbnQpKX1sZXQgYT1mcChpKTtpZihhJiZ1cChhLGUsciksbi5tZXNzYWdlc0NvbnRleHQucHVzaChlKSxyPWUsKFlmKGkpfHxYZihpKSkmJlRwKGkpKXt0LnB1c2gobik7bGV0IGU9Y3AoaSk7ZS5tZXNzYWdlc0NvbnRleHQucHVzaChscChpLGUpKSx0LnB1c2goZSksbj1udWxsfX1yZXR1cm4gbiYmdC5wdXNoKG4pLHR9LHNwPWU9PntsZXQgdD1ncChlKSxuPWUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXIse2FsaWduOnIsdmFyaWFudDppfT1ycCh0KTtyZXR1cm57dHlwZTp0LGlzQm90Om4saWQ6bnAoZSx0KSxkYXRlOmUuY3JlYXRlZEF0LGFnZW50SWQ6ZS5hZ2VudElkLGFsaWduOnIsdmFyaWFudDppLG1lc3NhZ2VzQ29udGV4dDpbXSxzaG93QXZhdGFyOmlwKGUpLHVzZUZ1bGxXaWR0aDphcChlLHQpfX0sY3A9ZT0+e2xldCB0PXFmLkJvdFJlcGxpZXMse2FsaWduOm4sdmFyaWFudDpyfT1ycCh0KTtyZXR1cm57dHlwZTpxZi5Cb3RSZXBsaWVzLGlzQm90OiEwLGlkOm5wKGUsdCksZGF0ZTplLmNyZWF0ZWRBdCxhZ2VudElkOmUuYWdlbnRJZCxhbGlnbjpuLHZhcmlhbnQ6cixtZXNzYWdlc0NvbnRleHQ6W10sc2hvd0F2YXRhcjohMSx1c2VGdWxsV2lkdGg6YXAoZSx0KX19LGxwPShlLHQpPT4oe2dyb3VwOnQsbWVzc2FnZTplLG5laWdoYm9yczp7aGFzVG9wOiExLGhhc0JvdHRvbTohMX0sYXR0YWNobWVudHNDb250ZXh0OltdfSksdXA9KGUsdCxuKT0+e2xldCByPW51bGw7Zm9yKGxldCBpIG9mIGUpe2xldCBlPXZwKGkpLGE9e2hhc1RvcDohMSxoYXNCb3R0b206ITF9LG89eXAoaSkscz17aGFzVG9wOm8saGFzQm90dG9tOiExfTtpZihyKXtsZXQgdD12cChyLmF0dGFjaG1lbnQpLG49eXAoci5hdHRhY2htZW50KTtyLm5laWdoYm9ycy5oYXNCb3R0b209dCYmZSxhLmhhc1RvcD10JiZlLHIuZXh0cmFTcGFjZXMuaGFzQm90dG9tPSFvJiZufWVsc2UgaWYodC5uZWlnaGJvcnMuaGFzQm90dG9tPWUsYS5oYXNUb3A9ZSxwcCh0Lm1lc3NhZ2UpKWlmKGEuaGFzVG9wPSExLHQubmVpZ2hib3JzLmhhc1RvcD0hMSx0Lm5laWdoYm9ycy5oYXNCb3R0b209ITEsbil7bGV0IHQ9X3Aobikscj1kcChuKTthLmhhc1RvcD10JiZlLHIuYW55Lm5laWdoYm9ycy5oYXNCb3R0b209dCYmZTtsZXQgaT1yLmF0dGFjaG1lbnRDb250ZXh0O2kmJihpLmV4dHJhU3BhY2VzLmhhc0JvdHRvbT0hbyYmeXAoaS5hdHRhY2htZW50KSl9ZWxzZSBzLmhhc1RvcD0hMTtsZXQgYz17YXR0YWNobWVudDppLG5laWdoYm9yczphLGV4dHJhU3BhY2VzOnMsbWVzc2FnZUNvbnRleHQ6dH07dC5hdHRhY2htZW50c0NvbnRleHQucHVzaChjKSxyPXsuLi5jfX19LGRwPWU9PntsZXQgdD1TZChlLmF0dGFjaG1lbnRzQ29udGV4dCl8fHZvaWQgMDtyZXR1cm57YXR0YWNobWVudENvbnRleHQ6dCxhbnk6dHx8ZX19LGZwPWU9PmU/ZS5jb250ZW50Py50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuVXBsb2FkP1tlLmNvbnRlbnQuZGF0YV06ZS5hdHRhY2htZW50czpbXSxwcD1lPT4hZS5jb250ZW50LnRleHQsbXA9ZT0+e3RyeXtsZXQgdD1CKCkubG9jYXRpb24uaG9zdG5hbWUsbj1uZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGUsYHRleHQvaHRtbGApO3JldHVybiBuLnF1ZXJ5U2VsZWN0b3JBbGwoYGFbaHJlZl1gKS5mb3JFYWNoKGU9PntsZXQgbj1lLmdldEF0dHJpYnV0ZShgaHJlZmApfHxgYDtuPW4ucmVwbGFjZSgvXmh0dHBzPzpcL1wvIj9odHRwcz86XC9cLy8sYGh0dHBzOi8vYCksbj1uLnJlcGxhY2UoL14iK3wiKyQvZyxgYCksZS5zZXRBdHRyaWJ1dGUoYGhyZWZgLG4pO2xldCByPXQubGVuZ3RoPjAmJm4uaW5jbHVkZXModCk7ZS5oYXNBdHRyaWJ1dGUoYHRhcmdldGApfHxlLnNldEF0dHJpYnV0ZShgdGFyZ2V0YCxyP2BfcGFyZW50YDpgX2JsYW5rYCksZS5oYXNBdHRyaWJ1dGUoYHJlbGApfHxlLnNldEF0dHJpYnV0ZShgcmVsYCxgbm9vcGVuZXIgbm9yZWZlcnJlcmApfSksbi5ib2R5LmlubmVySFRNTH1jYXRjaHtyZXR1cm4gZX19LGhwPShlLHQpPT57bGV0IG49Z3AoZSkscj1uPT09cWYuQWdlbnRNZXNzYWdlJiZlLmFnZW50SWQ9PT10LmFnZW50SWQsaT1uPT09cWYuQ29udGFjdE1lc3NhZ2UsYT1lLnN1YlR5cGUhPT1HLk1lc3NhZ2VTdWJUeXBlLkJvdHx8KGUuY29udGVudC5xdWlja1JlcGxpZXN8fFtdKS5sZW5ndGg9PT0wO3JldHVybiB0LnR5cGU9PT1uJiYocnx8aSkmJmEmJklkKHQuZGF0ZSxlLmNyZWF0ZWRBdCl9LGdwPWU9Pntzd2l0Y2goZS5zdWJUeXBlKXtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQWdlbnQ6cmV0dXJuIHFmLkFnZW50TWVzc2FnZTtjYXNlIEcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdDpyZXR1cm4gcWYuQ29udGFjdE1lc3NhZ2U7Y2FzZSBHLk1lc3NhZ2VTdWJUeXBlLkJvdDpyZXR1cm4gcWYuQm90TWVzc2FnZX1yZXR1cm4gbnVsbH0sX3A9ZT0+e2xldCB0PWUuYXR0YWNobWVudHNDb250ZXh0Lmxlbmd0aDtyZXR1cm4hKHQ+MCYmZS5hdHRhY2htZW50c0NvbnRleHRbdC0xXS5hdHRhY2htZW50LnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUpfSx2cD1lPT5lLnR5cGUhPT1HLkF0dGFjaG1lbnRUeXBlLkZpbGUmJmUudHlwZSE9PUcuQXR0YWNobWVudFR5cGUuQ2FyZHMseXA9ZT0+ISFlJiYoZS50eXBlPT09Ry5BdHRhY2htZW50VHlwZS5GaWxlfHxlLnR5cGU9PT1HLkF0dGFjaG1lbnRUeXBlLkNhcmRzKSxicD0oKT0+e2xldCBlPWdfKCk7ZS52b2x1bWU9cWMsZS5hZGRFdmVudExpc3RlbmVyKGBjYW5wbGF5dGhyb3VnaGAsKCk9PntlLnBsYXkoKS5jYXRjaChlPT5IKGBDb3VsZCBub3QgcGxheSBtZXNzYWdlIHNvdW5kLmAsZSkpfSl9LHhwPUtkKGJwLEpjKSxTcD1lPT5lLmZpbHRlcihlPT5lLnR5cGU9PT1HLk1lc3NhZ2VUeXBlLk1lc3NhZ2UmJihlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkFnZW50fHxlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QpKSxDcD0oZSx0PSEwKT0+e2xldCBuPWUucmVkdWNlKChlLHQpPT4oZS5wdXNoKHQpLHQuY29udGVudC50eXBlPT09Ry5NZXNzYWdlQ29udGVudFR5cGUuQ2hhdENsb3NlfHx0LmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLkNoYXRWaXNpdG9yQ2xvc2U/W106ZSksW10pO3JldHVybiB0P24uZmlsdGVyKGU9PmUudHlwZT09PUcuTWVzc2FnZVR5cGUuTWVzc2FnZSYmZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5TeXN0ZW0pOm59LHdwPWU9PntsZXQgdD17fTtyZXR1cm4gZS5mb3JFYWNoKGU9PntlLnRyaWdnZXImJih0W2UudHJpZ2dlci5pZF09e3NlbnQ6ITB9KX0pLHR9LFRwPWU9PiEhKGUuY29udGVudC5xdWlja1JlcGxpZXMmJmUuY29udGVudC5xdWlja1JlcGxpZXMubGVuZ3RoPjApLEVwPWFzeW5jKGUsdD0hMSk9PntsZXQgbj1RZihlKSxyPSF0JiZuO2lmKGBodG1sYGluIGUuY29udGVudCYmZS5jb250ZW50Lmh0bWwmJihlLmNvbnRlbnQuaHRtbD1tcChlLmNvbnRlbnQuaHRtbCkpLGUuY29udGVudD8udGV4dCYmVi5nZXRPcHRpb25zKCkudXJsQ2FyZHNFbmFibGVkJiZlLmF0dGFjaG1lbnRzLmxlbmd0aD09PTApe2xldCB0PWF3YWl0IEtmKGUuY29udGVudC50ZXh0LGUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCxyKTt0JiZ0Lml0ZW1zLmxlbmd0aD4wJiZlLmF0dGFjaG1lbnRzLnB1c2godCl9cmV0dXJuIG5kLnNldCghMSksZX0sRHA9YXN5bmMgZT0+KFYuZ2V0T3B0aW9ucygpLnVybENhcmRzRW5hYmxlZCYmYXdhaXQgUHJvbWlzZS5hbGwoZS5tYXAoYXN5bmMgZT0+YXdhaXQgRXAoZSkpKSxlKSxPcD1lPT5lLmZpbmRJbmRleChlPT5lLm1lc3NhZ2UuY2hhbm5lbC50eXBlPT09YGVtYWlsYCk+LTEsa3A9ZT0+ZS5maW5kKGU9PmUubWVzc2FnZT8udHJpZ2dlcj8uaWRlbnRpdHlJZCk/Lm1lc3NhZ2U/LnRyaWdnZXI/LmlkZW50aXR5SWQsSj0oKCk9PntsZXQgZT1PKHt9KSx7c3Vic2NyaWJlOnQsdXBkYXRlOm4sc2V0OnJ9PWUsaT1hc3luYyBlPT57cihybChgaWRgLGF3YWl0IERwKGUpKSl9LGE9YXN5bmMgZT0+e2xldCB0PWF3YWl0IEVwKGUpO1lmKGUpJiZNcC5zZXQoITEpLG4obj0+KHsuLi5uLFtlLmlkXTp0fSkpLGpwKHQpfSxvPWFzeW5jIGU9PntpZighQShScCkuc29tZSh0PT50LmlkPT09ZS5pZCkpcmV0dXJuO2xldCB0PUEoQnApPT09ZS5pZD9hd2FpdCBFcChlLCEwKTplO24obj0+KHsuLi5uLFtlLmlkXTp0fSkpfTtyZXR1cm57c3Vic2NyaWJlOnQsc2V0TWVzc2FnZXM6aSxhZGRNZXNzYWdlOmEsZGVsZXRlTWVzc2FnZTplPT57bih0PT57bGV0e1tlXTpuLC4uLnJ9PXQ7cmV0dXJuIHJ9KX0sbWFya01lc3NhZ2VBc0RlbGV0ZWQ6KHQscik9PntsZXQgaT1BKGUpW3RdO2kmJm4oZT0+KHsuLi5lLFtpLmlkXTp7Li4uaSxkZWxldGVkQXQ6cj8/bmV3IERhdGUoKS50b0lTT1N0cmluZygpfX0pKX0scmVwbGFjZU1lc3NhZ2U6byx1cGRhdGVNZXNzYWdlUmF0aW5nOmU9PntBKGlkKT09PWUuY29udGVudC5kYXRhPy50YXJnZXQmJnhkKCksbih0PT4hZXx8ZS5jb250ZW50LnR5cGUhPT1HLk1lc3NhZ2VDb250ZW50VHlwZS5SYXRlRm9ybT97Li4udH06KHRbZS5pZF18fFlwKGUuaWQpLHsuLi50LFtlLmlkXTplfSkpfSxzZW5kTWVzc2FnZTphc3luYyhlLHQpPT57S3Auc2V0KGUpO2xldCBuPWF3YWl0IEpmKHt0ZXh0OmV9KTtuJiYoS3Auc2V0KG51bGwpLGF3YWl0IGEobiksei5lbWl0KGBtZXNzYWdlU2VudGAsbiksd2goQSgkdSkpKSxhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChlPT5PZChlKSkpfSxzZW5kQm90UmVwbHk6YXN5bmMoZSx0LG4pPT57bGV0IHI9YXdhaXQgSmYoe3RleHQ6dCxxdWlja1JlcGx5OntyZXBseVRvOmUscGF5bG9hZDpufX0pO24uaXNHb0JhY2tCdXR0b258fEptKHQpLHImJmF3YWl0IG8ocil9LGNsZWFyTWVzc2FnZXM6KCk9PntyKHt9KX19fSkoKSxBcD1lPT57QShSXyl8fElfKCksUV8oKSxzZXRUaW1lb3V0KCgpPT57Si5hZGRNZXNzYWdlKGUpLCRfKCl9LDE2MDApfSxqcD1lPT57ZSYmQShEXykmJkEoUl8pJiYhKEEoa18pJiZBKFgpKSYmX18oZSkmJnhwKCl9LE1wPU8oITEpLE5wPWsoW0pdLChbZV0pPT57bGV0IHQ9T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoUWYpO3JldHVybiB0P1NkKHQuc29ydCgoZSx0KT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpLmdldFRpbWUoKS1uZXcgRGF0ZSh0LmNyZWF0ZWRBdCkuZ2V0VGltZSgpKSk6bnVsbH0pLFBwPWsoW0oscmRdLChbZSx0XSk9PntsZXQgbj1PYmplY3QudmFsdWVzKGUpLmZpbHRlcihRZik7cmV0dXJuIHQ/bi5maWx0ZXIoZT0+bmV3IERhdGUoZS5jcmVhdGVkQXQpPm5ldyBEYXRlKHQpKTpufSksRnA9ayhbUHBdLChbZV0pPT5TZChlKSksSXA9ayhbUHBdLChbZV0pPT5lLmxlbmd0aCksTHA9ayhbSXBdLChbZV0pPT5lPjApLFJwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLnNvcnQodHApKSx6cD1rKFtScF0sKFtlXSk9Pm9wKGUpKSxCcD1rKFtScF0sKFtlXSk9PlNkKGUpPy5pZD8/bnVsbCksVnA9ayhbSl0sKFtlXSk9PlNkKE9iamVjdC52YWx1ZXMoZSkuZmlsdGVyKGU9PnR5cGVvZiBlLndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD09YGJvb2xlYW5gKSk/LndpZGdldE9wdGlvbnM/LmRpc2FibGVJbnB1dD8/ITEpLEhwPWsoW0pdLChbZV0pPT5PYmplY3QudmFsdWVzKGUpLmZpbHRlcihlPT5lLnN1YlR5cGU9PT1gY29udGFjdGB8fGUuc3ViVHlwZT09PWBhZ2VudGApLmxlbmd0aD4wKSxVcD1rKFtKXSwoW2VdKT0+T2JqZWN0LnZhbHVlcyhlKS5maWx0ZXIoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KS5sZW5ndGg+MCksV3A9ayhbSixDc10sKFtlLHRdLG4pPT57aWYodCl7bGV0IHI9ZVt0XTtyJiZyLmNvbnRlbnQudHlwZT09PUcuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtJiZuKHttZXNzYWdlSWQ6ci5pZCx2YWx1ZTpyLmNvbnRlbnQuZGF0YT8udmFsdWUsdGV4dDpyLmNvbnRlbnQuZGF0YT8udGV4dCx0YXJnZXQ6ci5jb250ZW50LmRhdGE/LnRhcmdldH0pfWVsc2UgbihudWxsKX0pLEdwPWsoW1JwXSwoW2VdKT0+ZS5zbGljZSgpLnJldmVyc2UoKS5maW5kKGU9PmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCl8fG51bGwpLEtwPU8obnVsbCkscXA9KCk9PiEhVi5nZXRPcHRpb25zKCkucmF0aW5nRW5hYmxlZCxKcD0oKT0+ISFWLmdldE9wdGlvbnMoKS5haVJhdGluZ0VuYWJsZWQsWXA9ZT0+e0NzLnNldChlKSxCYyhIYy5DaGF0UmF0aW5nKX0sWHA9YXN5bmMoe21lc3NhZ2VJZDplLHJhdGluZzp7dGV4dDp0LHZhbHVlOm59LG9uU3VjY2VzczpyfSk9PntsZXQgaT1BKEopW2VdLGE9ZT09PWByYXRlX2Zvcm1faWRgP3ZvaWQgMDplO3RyeXthd2FpdCBxLmdldENsaWVudCgpLmNoYXRSYXRlKHttZXNzYWdlSWQ6YSx2YWx1ZTpuLHRleHQ6dD8/dm9pZCAwfSksciYmcigpfWNhdGNoKGUpe2kmJmF3YWl0IEoucmVwbGFjZU1lc3NhZ2UoaSksam8oYENoYXQgcmF0aW5nIGZhaWxlZC5gLFN0cmluZyhlKSksZ3MoQShXKShgZm9ybS5zdWJtaXQuZXJyb3JgKSl9fSxacD1lPT57bGV0e3dpZGdldFYzVXJsOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybmAke3R9L2Fzc2V0cy9pbWFnZXMvcmF0aW5nLyR7ZX0uc3ZnYH0sUXA9LyhHLShbQS1aLDAtOV0qKSkvZywkcD1bXSxlbT0hMSx0bSxubT0hMSxybSxpbT1lPT5lLm1hdGNoKFFwKSxhbT0oKT0+e2xldHtnb29nbGVBbmFseXRpY3NFbmFibGVkOmV9PVYuZ2V0T3B0aW9ucygpO3RtPXdpbmRvdy50b3B8fHdpbmRvdyxlJiYodG0uZ3RhZyYmKHJtPXRtLmd0YWcsbm09ITApLHoub24oYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCxvbSksIWVtJiZVbygpJiZzbSgpKX0sb209ZT0+eyFlbSYmZSYmc20oKX0sc209KCk9PntsZXR7Z2FLZXk6ZSxnYU9wdGlvbnM6dCxnb29nbGVBbmFseXRpY3NNYW51YWw6bixnb29nbGVBbmFseXRpY3NNZWFzdXJlbWVudElkczpyfT1WLmdldE9wdGlvbnMoKSxpPXR8fHtjb29raWVEb21haW46YGF1dG9gfTtpZihlKWltKGUpJiYkcC5wdXNoKHtrZXk6ZSxvcHRpb25zOml9KTtlbHNlIGlmKG4mJnIpci5mb3JFYWNoKGU9PntpbShlKSYmJHAucHVzaCh7a2V5OmUsb3B0aW9uczppfSl9KTtlbHNlIHRyeXskcC5wdXNoKC4uLmNtKCkpfWNhdGNoKGUpe3ZvKGBFcnJvciBkdXJpbmcgZ2V0dGluZyBHQSB0b3AgdHJhY2tlcnNgLGUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6ZSl9JHAubGVuZ3RoPjAmJiFubSYmbG0oKSwkcC5sZW5ndGg9PT0wP3ZvKGBObyBHQSB0byBzZXR1cGApOihkbSgpLGVtPSEwLHZvKGBHQSBpbml0aWFsaXplZGApKX0sY209KCk9PntsZXQgZT1bXTtyZXR1cm4gdG0uZ29vZ2xlX3RhZ19tYW5hZ2VyJiZPYmplY3Qua2V5cyh0bS5nb29nbGVfdGFnX21hbmFnZXIpLmZvckVhY2godD0+e2ltKHQpJiZlLnB1c2goe2tleTp0LG9wdGlvbnM6e2Nvb2tpZURvbWFpbjpgYXV0b2B9fSl9KSxlfSxsbT0oKT0+e2xldCBlPXRtLmRvY3VtZW50LHtoZWFkOnR9PWUsbj1lLmNyZWF0ZUVsZW1lbnQoYHNjcmlwdGApO24uaWQ9YGd0YWdgLG4udHlwZT1gdGV4dC9qYXZhc2NyaXB0YCxuLmFzeW5jPSEwLG4uc3JjPWBodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzYCx0Lmluc2VydEJlZm9yZShuLHQuZmlyc3RDaGlsZCksdG0uZGF0YUxheWVyPXRtLmRhdGFMYXllcnx8W10sdG0uZ3RhZz1mdW5jdGlvbigpe3RtLmRhdGFMYXllci5wdXNoKGFyZ3VtZW50cyl9LHJtPXRtLmd0YWcscm0oYGpzYCxuZXcgRGF0ZSl9LHVtPSgpPT57bGV0IGU9W107aWYobm0pe2xldCB0PWNtKCk7JHAuZm9yRWFjaChuPT57dC5maW5kKCh7a2V5OmV9KT0+ZT09PW4ua2V5KXx8ZS5wdXNoKG4pfSl9ZWxzZSBlPVsuLi4kcF07cmV0dXJuIGV9LGRtPSgpPT57dW0oKS5mb3JFYWNoKGU9PntsZXR7a2V5OnQsb3B0aW9uczpufT1lLHI9e307bj8ocj17Y29va2llX2RvbWFpbjpuLmNvb2tpZURvbWFpbn0sbi5uYW1lJiYoci5uYW1lPW4ubmFtZSkpOnI9e2Nvb2tpZV9kb21haW46dG0/LmxvY2F0aW9uLmhvc3RuYW1lfHxgYH0sci5zZW5kX3BhZ2Vfdmlldz0hMSxybShgY29uZmlnYCx0LHIpfSl9LGZtPShlLHQpPT57bGV0e2dvb2dsZUFuYWx5dGljc0VuYWJsZWQ6bn09Vi5nZXRPcHRpb25zKCk7aWYoISghbnx8IXRtLmd0YWd8fCFVbygpfHx0bS5kb2N1bWVudC5oaWRkZW4pKXRyeXskcC5mb3JFYWNoKG49Pnt0LnNlbmRfdG89bi5rZXkscm0oYGV2ZW50YCxlLHQpLHZvKGBTbWFydHN1cHA6IEdBIGV2ZW50ICR7ZX0gLSAke0pTT04uc3RyaW5naWZ5KHQpfWApfSl9Y2F0Y2goZSl7dm8oYFNtYXJ0c3VwcDogR0EgZXJyb3I6YCxlIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOmUpfX0scG09YFZpc2l0b3Jfc3RhcnRlZF9jb252ZXJzYXRpb25gLG1tPWBWaXNpdG9yX2Nsb3NlZF9jb252ZXJzYXRpb25gLGhtPWBUcmlnZ2VyX21lc3NhZ2Vfc2VudGAsZ209YFRyaWdnZXJfbWVzc2FnZV92aWV3ZWRgLF9tPWBUcmlnZ2VyX3Zpc2l0b3JfcmVhY3Rpb25gLHZtPWBBdXRvX21lc3NhZ2Vfc2VudGAseW09YEF1dG9fbWVzc2FnZV92aWV3ZWRgLGJtPWBBdXRvX21lc3NhZ2VfdmlzaXRvcl9yZWFjdGlvbmAseG09YENoYXRib3Rfc2VudGAsU209YENoYXRib3Rfdmlld2VkYCxDbT1gQ2hhdGJvdF9pbnRlcmFjdGlvbmAsd209YENoYXRib3RfYnV0dG9uX2ludGVyYWN0aW9uYCxUbT1gQ2hhdGJvdF92aXNpdG9yX3JlYWN0aW9uYCxFbT1gQWlfY2hhdGJvdF9zZW50YCxEbT1gQWlfY2hhdGJvdF9pbnRlcmFjdGlvbmAsT209YEFpX2NoYXRib3RfdmlzaXRvcl9yZWFjdGlvbmAsa209YEFnZW50X3NlcnZlZF9jb252ZXJzYXRpb25gLEFtPWBBZ2VudF9jbG9zZWRfY29udmVyc2F0aW9uYCxqbT1gQ29udGFjdF9hY3F1aXJlZGAsTW09YEF1dGhfZm9ybV9maWxsZWRgLE5tPWBPZmZsaW5lX21lc3NhZ2Vfc2VudGAsUG09YEZlZWRiYWNrX3NlbnRgLEZtPWBGZWVkYmFja190ZXh0X3NlbnRgLEltPWBVcmxfY2FyZF9vcGVuZWRgLExtPWBDaGF0Ym94X29wZW5lZGAsUm09e2V2ZW50X2NhdGVnb3J5OmBTbWFydHN1cHBfdjNgLG5vbl9pbnRlcmFjdGlvbjohMH0sWT0oZSx0KT0+e2ZtKGUsey4uLlJtLC4uLnR9KX0sem09KGU9YGApPT5ZKGhtLHtldmVudF9sYWJlbDplfSksQm09ZT0+WShnbSx7ZXZlbnRfbGFiZWw6ZX0pLFZtPShlPWBgKT0+WShfbSx7ZXZlbnRfbGFiZWw6ZX0pLEhtPShlPWBgKT0+WSh2bSx7ZXZlbnRfbGFiZWw6ZX0pLFVtPWU9PlkoeW0se2V2ZW50X2xhYmVsOmV9KSxXbT0oZT1gYCk9PlkoYm0se2V2ZW50X2xhYmVsOmV9KSxHbT0oZT1gYCk9PlkoeG0se2V2ZW50X2xhYmVsOmV9KSxLbT1lPT5ZKFNtLHtldmVudF9sYWJlbDplfSkscW09KGU9YGApPT5ZKENtLHtldmVudF9sYWJlbDplfSksSm09KGU9YGApPT5ZKHdtLHtldmVudF9sYWJlbDplfSksWW09KGU9YGApPT5ZKFRtLHtldmVudF9sYWJlbDplfSksWG09KCk9PlkocG0pLFptPSgpPT5ZKG1tKSxRbT1lPT5ZKEFtLHtldmVudF9sYWJlbDplfSksJG09ZT0+WShrbSx7ZXZlbnRfbGFiZWw6ZX0pLGVoPSgpPT5ZKE1tKSx0aD0oKT0+WShObSksbmg9KGUsdCk9PntsZXQgbj17ZXZlbnRfbGFiZWw6dHx8dnNbZV18fGBgLHZhbHVlOmV9O1kodD9GbTpQbSxuKX0scmg9ZT0+WShqbSx7ZXZlbnRfbGFiZWw6ZX0pLGloPWU9PlkoSW0se2V2ZW50X2xhYmVsOmV9KSxhaD0oZT1gYCk9PlkoRW0se2V2ZW50X2xhYmVsOmV9KSxvaD0oZT1gYCk9PlkoRG0se2V2ZW50X2xhYmVsOmV9KSxzaD0oZT1gYCk9PlkoT20se2V2ZW50X2xhYmVsOmV9KSxjaD0oKT0+WShMbSksbGg9ITEsdWg9e30sZGg9KCk9PntsaD0hMX0sZmg9KCk9Pnt1aD13cChBKFJwKSl9LHBoPShlLHQpPT5saD8hMTpDcChlKS5sZW5ndGg9PT0xJiZ0PT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0PyhsaD0hMCwhMCk6ITEsbWg9KGUsdCk9PntsZXQgbj1lLnRyaWdnZXI/LmlkfHxgYDtyZXR1cm4gdC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiZlLnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJiF1aFtuXT8udmlzaXRvclJlc3BvbmRlZD8odWhbbl0udmlzaXRvclJlc3BvbmRlZD0hMCwhMCk6ITF9LGhoPShlLHQpPT57bGV0IG49ZS50cmlnZ2VyPy5pZHx8YGA7cmV0dXJuIHQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQ29udGFjdCYmISh0LmNvbnRlbnQucXVpY2tSZXBsaWVzfHx0LmNvbnRlbnQucXVpY2tSZXBseSkmJmUuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90JiYhdWhbbl0/LnZpc2l0b3JSZXNwb25kZWQmJm4/KHVoW25dLnZpc2l0b3JSZXNwb25kZWQ9ITAsITApOiExfSxnaD0oZSx0KT0+e2xldCBuPWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiB0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLkNvbnRhY3QmJmUudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmIXVoW25dPy5yZWFjdGVkPyh1aFtuXS5yZWFjdGVkPSEwLCEwKTohMX0sX2g9ZT0+e2xldCB0PWUudHJpZ2dlcj8uaWR8fGBgO3JldHVybiBlLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYhdWhbdF0/LnJlYWN0ZWQ/KHVoW3RdLnJlYWN0ZWQ9ITAsITApOiExfSx2aD0oZSx0LG49ITEpPT57aWYoZS5sZW5ndGg+MCYmIW4pe2xldCB0PWUuc2xpY2UoLTIpLmZpbHRlcihlPT5lLnRyaWdnZXIpO3JldHVybiB0P3RbdC5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZTpgYH1lbHNlIHJldHVybiB0LnRyaWdnZXI/dC50cmlnZ2VyLm5hbWU6YGB9LHloPWU9PntsZXQgdD1BKFJwKTt4aCh0LGUpLFNoKHQsZSkscGgodCxlLnN1YlR5cGUpJiZYbSgpfSxiaD1lPT57bGV0IHQ9ZSxuPUEoUnApLmZpbHRlcihlPT5lLnRyaWdnZXIpO24mJm4ubGVuZ3RoPjAmJih0PW5bbi5sZW5ndGgtMV0udHJpZ2dlcj8ubmFtZT8/ZSkscmgodCl9LHhoPShlLHQpPT57bGV0IG49dC50cmlnZ2VyPy5pZHx8YGA7dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJiF1aFtuXT8uc2VudCYmKHQudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuY2hhdGJvdCYmKEdtKHZoKGUsdCwhMCkpLHVoW25dPXtzZW50OiEwfSksdC50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5tZXNzYWdlJiYoSG0odmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSx0LnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLmFpJiYoYWgodmgoZSx0LCEwKSksdWhbbl09e3NlbnQ6ITB9KSk7bGV0IHI9ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtyJiYoaGgocix0KT8oci50cmlnZ2VyPy5ncm91cFR5cGU9PT1HLkdyb3VwVHlwZS5jaGF0Ym90JiZZbSh2aChlLHQpKSxyLnRyaWdnZXI/Lmdyb3VwVHlwZT09PUcuR3JvdXBUeXBlLm1lc3NhZ2UmJldtKHZoKGUsdCkpLHIudHJpZ2dlcj8uZ3JvdXBUeXBlPT09Ry5Hcm91cFR5cGUuYWkmJnNoKHZoKGUsdCkpKTpnaChyLHQpP3FtKHZoKGUsdCkpOl9oKHQpJiZvaCh2aChlLHQpKSl9LFNoPShlLHQpPT57dC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5UcmlnZ2VyJiYoem0odD8udHJpZ2dlcj8ubmFtZSksdWhbdC50cmlnZ2VyPy5pZHx8YGBdPXtzZW50OiEwfSk7bGV0IG49ZS5sZW5ndGg+MT9lW2UubGVuZ3RoLTJdOnZvaWQgMDtuJiZtaChuLHQpJiZWbSh2aChlLHQpKX0sQ2g9KCk9PntsZXQgZT1BKFBwKS5maWx0ZXIoZT0+ZS50cmlnZ2VyKSx0PWVbZS5sZW5ndGgtMV07dCYmdC50cmlnZ2VyJiYodC5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Cb3QmJnQuY29udGVudC5xdWlja1JlcGxpZXM/S20odC50cmlnZ2VyLm5hbWUpOnQuc3ViVHlwZT09PUcuTWVzc2FnZVN1YlR5cGUuQm90P1VtKHQudHJpZ2dlci5uYW1lKTp0LnN1YlR5cGU9PT1HLk1lc3NhZ2VTdWJUeXBlLlRyaWdnZXImJkJtKHQudHJpZ2dlci5uYW1lKSl9LHdoPWU9PntlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJnRoKCl9O3oub24oYG1lc3NhZ2VSZWNlaXZlZGAseWgpLHoub24oYGFnZW50Sm9pbmVkYCxlPT57JG0oZS5mdWxsbmFtZSl9KSx6Lm9uKGBjaGF0UmF0ZWRgLGU9PntuaChlLnZhbHVlLGUudGV4dCl9KSx6Lm9uKGBjaGF0Q2xvc2VkYCwoKT0+e2RoKCl9KSx6Lm9uKGBjaGF0VmlzaXRvckNsb3NlZGAsKCk9PntkaCgpfSksei5vbihgY29udGFjdEFjcXVpcmVkYCwoe2FjcXVpcmVkQnk6ZX0pPT57YmgoZSl9KSxYbC5wdXNoKGZoKTt2YXIgVGg9e0Fycm93RG93bjpgQXJyb3dEb3duYCxBcnJvd1VwOmBBcnJvd1VwYCxFbnRlcjpgRW50ZXJgLEVzY2FwZTpgRXNjYXBlYCxUYWI6YFRhYmB9LEVoPTJlMyxEaD0yZTMsT2g9ZT0+ZS5maWx0ZXIoZT0+IWUuaXNIaWRkZW4pLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbHVlLGUpLHt9KSxraD1lPT5lLnJlZHVjZSgoZSx0KT0+KGVbdC5uYW1lXT10LnZhbGlkYXRvcnMsZSkse30pLEFoPShlLHQsbik9PntlLnVwZGF0ZShlPT4oey4uLmUsW3RdOm59KSl9LGpoPShlLHQpPT57bGV0IG49e307Zm9yKGxldCByIGluIGUpbltyXT10O3JldHVybiBufSxNaD0oKT0+TWF0aC5yYW5kb20oKS50b1N0cmluZygzNiksTmg9ZT0+e2lmKCFlKXJldHVybiExO2xldCB0PWUuc3BsaXQoYEBgKTtpZih0Lmxlbmd0aCE9PTIpcmV0dXJuITE7bGV0IG49dFswXSxyPXRbMV07cmV0dXJuIG4ubGVuZ3RoPjY0fHxyLmxlbmd0aD4yNTV8fHIuc3BsaXQoYC5gKS5zb21lKGU9PmUubGVuZ3RoPjYzKT8hMTp5Zi50ZXN0KGUpfSxQaD1udWxsLEZoPWU9PntsZXQgdD1lLmluaXRpYWxWYWx1ZXN8fHt9LHt2YWxpZGF0b3JzOm4sb25DaGFuZ2U6cixvblN1Ym1pdDppfT1lLGE9KCk9Pih7Li4udH0pLG89amgodCxQaCkscz1PKGEoKSksYz1PKG8pLGw9TyhqaCh0LCExKSksdT1PKCExKSxkPWsoYyxlPT5PYmplY3QudmFsdWVzKGUpLmV2ZXJ5KGU9PmU9PT1QaCkpLGY9KCk9PntPYmplY3QuZW50cmllcyhBKHMpKS5mb3JFYWNoKChbZSx0XSk9PntlZShlLHQpfSl9LHA9ZT0+e2xldCB0PWUudGFyZ2V0O3QmJl8odC5uYW1lfHx0LmlkLHQudmFsdWUpfSxtPWFzeW5jIGU9PntpZihlJiZlLnByZXZlbnREZWZhdWx0JiZlLnByZXZlbnREZWZhdWx0KCksdS5zZXQoITApLGYoKSwhQShkKSl7dS5zZXQoITEpO3JldHVybn1jLnNldChvKSxhd2FpdCBpKEEocykpLHUuc2V0KCExKX0saD0oZSx7c2hvdWxkVmFsaWRhdGU6dD0hMX09e30pPT57cy51cGRhdGUodD0+KHsuLi50LC4uLmV9KSksdCYmZigpfSxnPShlLHQpPT57XyhlLHQpfSxfPShlLHQpPT57dihlLHQpLGVlKGUsdCksciYmcihlLHQpfSx2PShlLHQpPT57QWgocyxlLHQpfSx5PShlLHQpPT57QWgobCxlLHQpfSxlZT0oZSx0KT0+e3koZSx0KTtsZXQgcj1uW2VdO2lmKHIpZm9yKGxldCBuIG9mIHIpe2xldHt0eXBlOnIsaXNWYWxpZDppfT1uKHQpO2lmKEFoKGMsZSxpP1BoOnIpLCFpKXJldHVybn19O3JldHVybntmb3JtOnMsZXJyb3JzOmMsaXNWYWxpZDpkLGlzU3VibWl0dGluZzp1LGhhbmRsZUNoYW5nZTpwLGhhbmRsZVN1Ym1pdDptLHNldEZpZWxkVmFsdWU6ZyxzZXRWYWx1ZXM6aH19LEloPWZ1bmN0aW9uKGUpe3JldHVybiBlLlRleHQ9YHRleHRgLGUuQ2hlY2tib3g9YGNoZWNrYm94YCxlLlNlbGVjdD1gc2VsZWN0YCxlfSh7fSksTGg9KCk9PmU9PntsZXQgdD0hMDtyZXR1cm4gZT8/KHQ9ITEpLEx1KGUpJiYodD1lLnRyaW0oKS5sZW5ndGg+MCkse3R5cGU6YHJlcXVpcmVkYCxpc1ZhbGlkOnR9fSxSaD0oKT0+ZT0+KHt0eXBlOmBjaGVja2VkYCxpc1ZhbGlkOkx1KGUpP2U9PT1gdHJ1ZWA6ZT09PSEwfSksemg9KCk9PmU9Pih7dHlwZTpgZW1haWxgLGlzVmFsaWQ6TmgoU3RyaW5nKGUpKX0pLEJoPSgpPT5lPT4oe3R5cGU6YHBob25lYCxpc1ZhbGlkOi9eWytdKlsoXXswLDF9WzAtOV17MSw0fVspXXswLDF9Wy1zLi8wLTldKiQvLnRlc3QoU3RyaW5nKGUpKX0pLFZoPU8odm9pZCAwKSxIaD1lPT57bGV0e2VtYWlsQ29udHJvbDp0fT1WLmdldE9wdGlvbnMoKSxuPSEhZT8uZW1haWw7cmV0dXJuIHQmJiFufSxVaD1lPT57bGV0e25hbWVDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5uYW1lO3JldHVybiB0JiYhbn0sV2g9ZT0+e2xldHtudW1iZXJDb250cm9sOnR9PVYuZ2V0T3B0aW9ucygpLG49ISFlPy5waG9uZTtyZXR1cm4hIXQmJiFufSxHaD0oKT0+e2xldHtncm91cFNlbGVjdEVuYWJsZWQ6ZX09Vi5nZXRPcHRpb25zKCksdD1BKGFsKTtyZXR1cm4hIWUmJnQubGVuZ3RoPjB9LEtoPSgpPT57bGV0e3ByaXZhY3lOb3RpY2VFbmFibGVkOmUscHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1jZygpO3JldHVybiEhZSYmdCYmIW59LHFoPWU9PntsZXR7cHJpdmFjeU5vdGljZUVuYWJsZWQ6dH09Vi5nZXRPcHRpb25zKCksbj0hIWU/LnZhcmlhYmxlcz8ucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQ7cmV0dXJuISF0JiYhbn0sSmg9KCk9Pih7dHlwZTpJaC5UZXh0LHN1YlR5cGU6YGVtYWlsYCxuYW1lOmBlbWFpbGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmVtYWlsYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0ueW91ckVtYWlsYCx2YWx1ZTpgYCx2YWxpZGF0b3JzOltMaCgpLHpoKCldLG1heExlbmd0aDoyNTV9KSxZaD0oKT0+KHt0eXBlOkloLlRleHQsc3ViVHlwZTpgdGV4dGAsbmFtZTpgbmFtZWAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLm5hbWVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyTmFtZWAsdmFsdWU6YGAsdmFsaWRhdG9yczpbTGgoKV0sbWF4TGVuZ3RoOjI1NX0pLFhoPSgpPT4oe3R5cGU6SWguVGV4dCxzdWJUeXBlOmB0ZWxgLG5hbWU6YHBob25lYCxsYWJlbDpgYXV0aEZvcm0ubGFiZWwucGhvbmVgLHBsYWNlaG9sZGVyOmBhdXRoRm9ybS55b3VyUGhvbmVgLHZhbHVlOmBgLHZhbGlkYXRvcnM6W0xoKCksQmgoKV0sbWF4TGVuZ3RoOjMyfSksWmg9ZT0+e2xldCB0PUEoYWwpO3JldHVybnt0eXBlOkloLlNlbGVjdCxuYW1lOmBncm91cGAsbGFiZWw6YGF1dGhGb3JtLmxhYmVsLmdyb3VwYCxwbGFjZWhvbGRlcjpgYXV0aEZvcm0uZ3JvdXBgLHZhbHVlOmU/Lmdyb3VwPz9gYCx2YWxpZGF0b3JzOltMaCgpXSxvcHRpb25zOnQubWFwKGU9Pih7dGV4dDplLm5hbWUsdmFsdWU6ZS5rZXl9KSl9fSxRaD0oKT0+KHt0eXBlOkloLkNoZWNrYm94LG5hbWU6YHBlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50YCxsYWJlbDpgYXV0aEZvcm0uYWNjZXB0VGVybXNgLHZhbHVlOiExLHZhbGlkYXRvcnM6W1JoKCldfSksJGg9KCk9Pih7dHlwZTpJaC5DaGVja2JveCxuYW1lOmBwZXJzb25hbERhdGFQcm9jZXNzaW5nQ29uc2VudGAsbGFiZWw6YHRvcEJhci5nZHByVGl0bGVgLHZhbHVlOiExLHZhbGlkYXRvcnM6W10saXNIaWRkZW46ITB9KSxlZz1lPT4oe3Nob3dFbWFpbDpIaChlKSxzaG93TmFtZTpVaChlKSxzaG93UGhvbmU6V2goZSksc2hvd0dyb3VwczpHaCgpLHNob3dDb25zZW50OktoKCl9KSx0Zz1lPT4oe3Nob3dFbWFpbDohIWUuZW1haWxDb250cm9sLHNob3dOYW1lOiEhZS5uYW1lQ29udHJvbCxzaG93UGhvbmU6ISFlLm51bWJlckNvbnRyb2wsc2hvd0dyb3VwczohIWUuZ3JvdXBTZWxlY3RFbmFibGVkLHNob3dDb25zZW50OiEhZS5wcml2YWN5Tm90aWNlRW5hYmxlZCYmZS5wcml2YWN5Tm90aWNlQ2hlY2tSZXF1aXJlZH0pLG5nPWU9Pk9iamVjdC52YWx1ZXMoZWcoZSkpLnNvbWUoZT0+ZSkscmc9KGUsdCk9PntsZXQgbj1bXSx7c2hvd0VtYWlsOnIsc2hvd05hbWU6aSxzaG93UGhvbmU6YSxzaG93R3JvdXBzOm8sc2hvd0NvbnNlbnQ6c309dD90Zyh0KTplZyhlKTtyZXR1cm4gaSYmbi5wdXNoKFloKCkpLHImJm4ucHVzaChKaCgpKSxhJiZuLnB1c2goWGgoKSksbyYmbi5wdXNoKFpoKGUpKSxzP24ucHVzaChRaCgpKTpuLmxlbmd0aD4wJiYodD90Py5wcml2YWN5Tm90aWNlRW5hYmxlZDpxaChlKSkmJm4ucHVzaCgkaCgpKSxufSxpZz0oKT0+e2xldCBlPXpvKFUuQXV0aEZvcm0pO2lmKCFlKXJldHVybiBudWxsO3RyeXtyZXR1cm4gSlNPTi5wYXJzZShlKX1jYXRjaHtyZXR1cm4gbnVsbH19LGFnPShlLHQpPT57bGV0IG49aWcoKSxyPXtbZV06dH0saT1uP3suLi5uLC4uLnJ9OnI7Qm8oe25hbWU6VS5BdXRoRm9ybSx2YWx1ZTpKU09OLnN0cmluZ2lmeShpKX0pfSxvZz0oKT0+e0xvKFUuQXV0aEZvcm0pfSxzZz0oKT0+ISFBKE11KT8udmFyaWFibGVzPy5hdXRoZW50aWNhdGVkLGNnPSgpPT5BKE11KT8uZ2RwckFwcHJvdmVkfHwhMSxsZz0oKT0+e2xldHtpc1ByZXZpZXdNb2RlOmV9PVYuZ2V0T3B0aW9ucygpO2lmKGV8fEEocGQpfHxzZygpfHwhbmcoQShNdSkpKXJldHVybiExO2xldHtyZXF1aXJlTG9naW46dH09Vi5nZXRPcHRpb25zKCksbj1BKCR1KT09PUsuQWNjb3VudFN0YXR1cy5PZmZsaW5lLHI9QShVdSkubGVuZ3RoPjA7cmV0dXJuISF0fHxufHwhbiYmIXJ9LHVnPWFzeW5jIGU9PntsZXR7cHJpdmFjeU5vdGljZUNoZWNrUmVxdWlyZWQ6dH09Vi5nZXRPcHRpb25zKCksbj1BKE11KSxyPW4/Lm5hbWU/P2UubmFtZSxpPW4/LmVtYWlsPz9lLmVtYWlsLGE9bj8ucGhvbmU/P2UucGhvbmUsbz1lLmdyb3VwPz9uPy5ncm91cCxzPWUucGVyc29uYWxEYXRhUHJvY2Vzc2luZ0NvbnNlbnQsYz17Li4uciYme25hbWU6cn0sLi4uaSYme2VtYWlsOml9LC4uLmEmJntwaG9uZTphfSwuLi5vJiZ7Z3JvdXA6b30sLi4ucyYmdCYme3BlcnNvbmFsRGF0YVByb2Nlc3NpbmdDb25zZW50OnN9fTthd2FpdCBxLmdldENsaWVudCgpLmF1dGhlbnRpY2F0ZShjKSxlaCgpLGF3YWl0IHVfKCksVmMoKX0sZGc9YGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vQGVtb2ppLW1hcnQvZGF0YWAsZmc9UmVnRXhwKGA6KFthLXpBLVowLTlfLV0rKTpgLGBnYCkscGc9bnVsbCxtZz1udWxsLGhnPW51bGwsZ2c9TyhbXSksX2c9YXN5bmMoKT0+cGd8fGhnfHwoaGc9ZmV0Y2goZGcpLnRoZW4oZT0+ZS5qc29uKCkpLnRoZW4oZT0+KHBnPWUsZSkpLmNhdGNoKGU9Pnt0aHJvdyB2byhgRmFpbGVkIHRvIGxvYWQgZW1vamkgZGF0YWAsZSksaGc9bnVsbCxlfSksaGcpLHZnPWU9Pk9iamVjdC52YWx1ZXMoZS5lbW9qaXMpLm1hcChlPT4oe2lkOmUuaWQsbmFtZTplLm5hbWUsbmF0aXZlOmUuc2tpbnNbMF0/Lm5hdGl2ZT8/YGAsa2V5d29yZHM6ZS5rZXl3b3Jkcz8/W119KSkseWc9e3N1YnNjcmliZTpnZy5zdWJzY3JpYmUsYXN5bmMgbG9hZFJhd0RhdGEoKXtyZXR1cm4gX2coKX0sYXN5bmMgbG9hZERhdGEoKXtyZXR1cm4gbWd8fChtZz12Zyhhd2FpdCBfZygpKSxnZy5zZXQobWcpLG1nKX0sZ2V0QnlJZChlKXtsZXQgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG1nPy5maW5kKGU9PmUuaWQudG9Mb3dlckNhc2UoKT09PXQpfSxpc0xvYWRlZCgpe3JldHVybiBtZyE9PW51bGx9fSxiZz1lPT55Zy5pc0xvYWRlZCgpP2UucmVwbGFjZShmZywoZSx0KT0+e2xldCBuPXlnLmdldEJ5SWQodCk7cmV0dXJuIG4/bi5uYXRpdmU6ZX0pOmUseGc9MjAsU2c9eyI6KSI6YPCfmYJgLCI6LSkiOmDwn5mCYCwiOkQiOmDwn5iAYCwiOi1EIjpg8J+YgGAsIjspIjpg8J+YiWAsIjstKSI6YPCfmIlgLCI8MyI6YOKdpO+4j2AsIjooIjpg8J+YnmAsIjotKCI6YPCfmJ5gLCI6UCI6YPCfmJtgLCI6LVAiOmDwn5ibYCwiOi1vIjpg8J+YrmAsIjpPIjpg8J+YrmAsIjovIjpg8J+YlWAsIjotLyI6YPCfmJVgfSxDZz1lPT57bGV0IHQ9YCgke2U/YCR8YDpgYH0gKWA7cmV0dXJuIG5ldyBSZWdFeHAoT2JqZWN0LmtleXMoU2cpLm1hcChlPT5gJHtlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXVxcXS9nLGBcXCQmYCl9JHt0fWApLmpvaW4oYHxgKSxgZ2lgKX0sd2c9KGUsdD0hMSk9PntsZXQgbj1DZyh0KTtyZXR1cm4gZS5yZXBsYWNlKG4sZT0+e2xldCB0PU9iamVjdC5rZXlzKFNnKS5maW5kKHQ9PmUudG9VcHBlckNhc2UoKS5pbmNsdWRlcyh0KSk7aWYoIXQpcmV0dXJuIGU7bGV0IG49ZS5lbmRzV2l0aChgIGApP2AgYDpgYDtyZXR1cm5gJHtTZ1t0XX0ke259YH0pfSxUZz0oZSx0LG49eGcpPT57aWYoIWV8fGUubGVuZ3RoPDIpcmV0dXJuW107bGV0IHI9ZS50b0xvd2VyQ2FzZSgpLGk9W10sYT1bXSxvPVtdLHM9W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PWUuaWQudG9Mb3dlckNhc2UoKSxuPWUubmFtZS50b0xvd2VyQ2FzZSgpO2lmKHQuc3RhcnRzV2l0aChyKSl7aS5wdXNoKGUpO2NvbnRpbnVlfWlmKHQuaW5jbHVkZXMocikpe2EucHVzaChlKTtjb250aW51ZX1pZihuLmluY2x1ZGVzKHIpKXtvLnB1c2goZSk7Y29udGludWV9ZS5rZXl3b3Jkcy5zb21lKGU9PmUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhyKSkmJnMucHVzaChlKX1yZXR1cm5bLi4uaSwuLi5hLC4uLm8sLi4uc10uc2xpY2UoMCxuKX0sRWc9KGUsdCk9PntsZXQgbj1lLnNsaWNlKDAsdCkscj1uLmxhc3RJbmRleE9mKGA6YCk7aWYocj09PS0xKXJldHVybiBudWxsO2xldCBpPW4uc2xpY2UocisxKTtyZXR1cm4gUmVnRXhwKGBeW2EtekEtWjAtOV8tXSokYCkudGVzdChpKSYmaS5sZW5ndGg+PTI/aTpudWxsfSxEZz0oZSx0LG4pPT57bGV0IHI9ZS5zbGljZSgwLHQpLGk9ZS5zbGljZSh0KSxhPXIubGFzdEluZGV4T2YoYDpgKTtpZihhPT09LTEpcmV0dXJue25ld1RleHQ6ZSxuZXdDdXJzb3JQb3NpdGlvbjp0fTtsZXQgbz1lLnNsaWNlKDAsYSkscz1pLmxlbmd0aD09PTA/bitgIGA6bjtyZXR1cm57bmV3VGV4dDpvK3MraSxuZXdDdXJzb3JQb3NpdGlvbjphK3MubGVuZ3RofX0sT2c9KGUsdD0zMDApPT57bGV0IG47cmV0dXJuKC4uLnIpPT57Y2xlYXJUaW1lb3V0KG4pLG49c2V0VGltZW91dCgoKT0+ZSguLi5yKSx0KX19LGtnPTNlMyxBZz1bYHNtYXJ0c3VwcC5kZXZgLGBzbWFydHN1cHBjaGF0LmxvY2BdLGpnPWZ1bmN0aW9uKGUpe3JldHVybiBlLkRlZmF1bHQ9YGJsYWNrYmVycnkyLm1wM2AsZX0oe30pLE1nPWZ1bmN0aW9uKGUpe3JldHVybiBlLkNvbm5lY3Rpbmc9YGNvbm5lY3RpbmdgLGUuQ29ubmVjdGVkPWBjb25uZWN0ZWRgLGUuRGlzY29ubmVjdGVkPWBkaXNjb25uZWN0ZWRgLGV9KHt9KSxOZz1mdW5jdGlvbihlKXtyZXR1cm4gZS5JbWFnZT1gaW1hZ2VgLGUuVmlkZW89YHZpZGVvYCxlfSh7fSksUGc9TyghMSksRmc9TyghMSksSWc9TyghMSk7QigpLmFkZEV2ZW50TGlzdGVuZXIoYG9mZmxpbmVgLCgpPT5QZy5zZXQoITApKSxCKCkuYWRkRXZlbnRMaXN0ZW5lcihgb25saW5lYCwoKT0+UGcuc2V0KCExKSk7dmFyIExnPWsoW2RsLFBnLElnXSwoW2UsdCxuXSk9Pm4/TWcuQ29ubmVjdGVkOiFlfHx0P01nLkRpc2Nvbm5lY3RlZDpNZy5Db25uZWN0ZWQsTWcuQ29ubmVjdGluZyksUmcsemc9T2coZT0+e2UmJiFSZyYmKFJnPV9zKEEoVykoYGVycm9yLm5vSW50ZXJuZXRgKSwwKSksIWUmJlJnJiYoUmcoKSxSZz12b2lkIDApfSxrZyk7TGcuc3Vic2NyaWJlKGU9PntlPT09TWcuRGlzY29ubmVjdGVkJiYoRmcuc2V0KCEwKSx6ZyghMCkpLGU9PT1NZy5Db25uZWN0ZWQmJihGZy5zZXQoITEpLHpnKCExKSl9KTt2YXIgQmc9KGUsdCxuKT0+ZT09PU1nLkRpc2Nvbm5lY3RlZHx8IXR8fG4sVmc9KCk9PkJnKEEoTGcpLEEoSHApLEEoWHUpLmRpc2FibGVBdHRhY2htZW50cyksSGc9TyghMSksVWc9ZT0+e2lmKEEoSGcpKXtIKGBUaGVyZSBpcyBhbHJlYWR5IGZpbGUgdXBsb2FkIGluIHByb2dyZXNzYCk7cmV0dXJufWlmKGUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9V2coZSk7dC5sZW5ndGg+MCYmWWwuYWRkKHQpfSxXZz1lPT5lLmxlbmd0aD41PyhncyhgJHtBKFcpKGBmaWxlVXBsb2FkLnRvb01hbnlGaWxlc2ApfSA1YCksW10pOmUuZmlsdGVyKGU9PkdnKGUpKSxHZz1lPT57bGV0e2FjY2VwdGVkRmlsZUV4dGVuc2lvbnM6dCxhY2NlcHRlZEZpbGVUeXBlczpuLG1heEZpbGVTaXplOnJ9PUEoYmwpO2lmKCFlKXJldHVybiExO2xldCBpPXQuaW5jbHVkZXMoQ2QoZS5uYW1lKSksYT1uLnNvbWUodD0+dD09PWUudHlwZSk7aWYoVmcoKSlyZXR1cm4gSChgRmlsZSB1cGxvYWQgaXMgZGlzYWJsZWRgKSwhMTtpZighQShIcCkpcmV0dXJuIGdzKEEoVykoYHdhcm5pbmdCYXIudXBsb2FkRmlsZU5vdEZpcnN0YCkpLCExO2lmKGUuc2l6ZT5yKXtsZXQgZT13ZChyKTtyZXR1cm4gZ3MoYCR7QShXKShgZmlsZVVwbG9hZC5maWxlVG9vQmlnYCl9ICR7ZS5zaXplfSAke2UudW5pdH1gKSwhMX1yZXR1cm4gaXx8YT8hMDooZ3MoQShXKShgZmlsZVVwbG9hZC5iYWRGaWxlVHlwZWApKSwhMSl9LEtnPSgpPT5ZbC5jb3VudCgpPT09MD9bXTooWWwuc2V0VXBsb2FkaW5nU3RhdHVzKCksRGQoQShZbCksZT0+WWwuc2V0RmlsZVVwbG9hZGVkKGUubmFtZSkpKSxxZz0xMCxKZz0xZTQsWWc9M2U0LFhnPTIwLFpnPWU9PntpZihlLmxlbmd0aD4wJiZlLmxlbmd0aCVxZz09PTApe2xldCB0PWUuc2xpY2UoLXFnKSxuPW5ldyBEYXRlKGVbZS5sZW5ndGgtMV0uY3JlYXRlZEF0KS5nZXRUaW1lKCk7aWYobmV3IERhdGUoKS5nZXRUaW1lKCktbj5ZZ3x8IXQuZXZlcnkoZT0+ZS5zdWJUeXBlPT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0KSlyZXR1cm4hMTtpZihuLW5ldyBEYXRlKHRbMF0uY3JlYXRlZEF0KS5nZXRUaW1lKCk8SmcpcmV0dXJuITB9cmV0dXJuITF9LFFnPWU9PntsZXQgdD1qZihlKTtyZXR1cm4gdD90Lmxlbmd0aD5YZzohMX0sJGc9TygpLGVfPU8oITEpLHRfPU8oKSxuXz0yMDAscl89TyghMSksaV89ayhbJGddLChbZV0pPT5lPT09dm9pZCAwP3pvKFUuTWVzc2FnZSk/P2BgOmUpLGFfPWsoW2lfXSwoW2VdKT0+ZS50cmltKCkubGVuZ3RoPT09MCksb189ZT0+eyRnLnNldChiZyh3ZyhlKSkpfSxzXz0oZSx0KT0+e2xldCBuPUEoaV8pPz9gYCxyPWAke24uc2xpY2UoMCx0KX0ke2V9JHtuLnNsaWNlKHQpfWA7JGcuc2V0KHIpfSxjXz0oKT0+e0EoZV8pfHwocS5nZXRDbGllbnQoKS5jaGF0VHlwaW5nKCEwKSxlXy5zZXQoITApKX0sbF89KCk9PntBKGVfKSYmKHEuZ2V0Q2xpZW50KCkuY2hhdFR5cGluZyghMSksZV8uc2V0KCExKSl9LHVfPWFzeW5jKGU9W10pPT57aWYoQShhXykmJmUubGVuZ3RoPT09MClyZXR1cm47bGV0IHQ9Ymcod2coQShpXyksITApKS50cmltKCk7YXdhaXQgSi5zZW5kTWVzc2FnZSh0LGUpLG9fKGBgKSxsXygpLHJfLnNldCghMCksZ2QoKX0sZF89T2coYXN5bmMoKT0+e2xldCBlPVlsLmNvdW50KCk+MDtpZihBKGFfKSYmIWUpcmV0dXJuO2lmKCFBKFgpJiZsZygpJiZVXygpLGZfKCkmJiFlKXtfcyhBKFcpKGB3YXJuaW5nQmFyLnNhbWVNZXNzYWdlVHdpY2VgKSk7cmV0dXJufWlmKFpnKEEoUnApKSl7X3MoQShXKShgd2FybmluZ0Jhci5zcGFtUHJvdGVjdGlvbmApKTtyZXR1cm59aWYoQShIZykpe2pvKEEoVykoYGNoYXQuZmlsZVVwbG9hZC5lcnJvci5zdGlsbFVwbG9hZGluZ2ApKTtyZXR1cm59aWYoQShVZikpe19zKEEoVykoYGNhcmQuc2VuZGluZ0luUHJvZ3Jlc3NgKSk7cmV0dXJufWlmKFFnKEEoaV8pKSl7X3MoQShXKShgY2FyZC5saW5rc0xpbWl0UmVhY2hlZGApKTtyZXR1cm59aWYobGcoKSl7QmMoSGMuQXV0aEZvcm0pO3JldHVybn1sZXQgdD1bXTtlJiYoSGcuc2V0KCEwKSx0PWF3YWl0IEtnKCksWWwuY2xlYXIoKSxIZy5zZXQoITEpKSxhd2FpdCB1Xyh0KX0sbl8pLGZfPSgpPT57bGV0IGU9QShHcCksdD1BKEtwKSxuPUEoaV8pLnRyaW0oKTtyZXR1cm4gZSYmbj09PWUuY29udGVudC50ZXh0fHx0JiZuPT09dH0scF89ZT0+e2xldCB0PSgpPT57X2QoKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpLCgpPT5lLnJlbW92ZUV2ZW50TGlzdGVuZXIoYHZpc2liaWxpdHljaGFuZ2VgLHQpKSl9LG1fPWU9PntsZXQgdD0oKT0+e0EoWCkmJldfKCEwKX07c28oKCk9PihlLmFkZEV2ZW50TGlzdGVuZXIoYHBvcHN0YXRlYCx0KSwoKT0+ZS5yZW1vdmVFdmVudExpc3RlbmVyKGBwb3BzdGF0ZWAsdCkpKX0saF89KCk9PntsZXQgZT1CKCkuX3NtYXJ0c3VwcHx8e307ZS5hcHBWZXJzaW9uPWAwLjAuMWAsZS5jb21taXRIYXNoPWBjMDZkNDVjMzNlMDk5OGVmMmQzMDQ2MmZiNTc4Nzk2MzNjMWRmNWNhYCxlLmNvbW1pdEluZm89YGMwNmQ0NWMzM2UwOTk4ZWYyZDMwNDYyZmI1Nzg3OTYzM2MxZGY1Y2EgLSBNZXJnZSBwdWxsIHJlcXVlc3QgIzQ1MiBmcm9tIHNtYXJ0c3VwcC9kZXZlbG9wIC0gMjAyNi0wNy0wNyAxMDoyMjoyOCArMDIwMGAsQigpLl9zbWFydHN1cHA9ZX0sZ189KGU9amcuRGVmYXVsdCk9PntsZXR7d2lkZ2V0VjNVcmw6dH09Vi5nZXRPcHRpb25zKCksbj1uZXcgQXVkaW8oYCR7dH0vYXNzZXRzL3NvdW5kcy8ke2V9YCk7cmV0dXJuIG4uY3Jvc3NPcmlnaW49YGFub255bW91c2Asbi5sb2FkKCksbn0sX189ZT0+ZS5zdWJUeXBlIT09Ry5NZXNzYWdlU3ViVHlwZS5Db250YWN0JiYhW0cuTWVzc2FnZUNvbnRlbnRUeXBlLlJhdGVGb3JtLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50Sm9pbixHLk1lc3NhZ2VDb250ZW50VHlwZS5BZ2VudExlYXZlLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50QXNzaWduLEcuTWVzc2FnZUNvbnRlbnRUeXBlLkFnZW50VW5hc3NpZ25dLmluY2x1ZGVzKGUuY29udGVudC50eXBlKSx2Xz1lPT57cS5pc0luaXRpYWxpemVkKCkmJnEuZ2V0Q2xpZW50KCkubm90aWZ5KGUpfSx5Xz0oKT0+e1YuZ2V0T3B0aW9ucygpLmlzUHJldmlld01vZGV8fHZfKEsuV2Vic29ja2V0VmlzaXRvckNsaWVudC5FdmVudE5hbWUuV2lkZ2V0T3Blbil9LGJfPSgpPT52XyhLLldlYnNvY2tldFZpc2l0b3JDbGllbnQuRXZlbnROYW1lLldpZGdldFNob3cpLHhfPSgpPT5kb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT1gdmlzaWJsZWAsU189KCk9PntpZihBKHNzKSl7VF8uc2V0KCEwKTtsZXQgZT1CKCk7ZS5oaXN0b3J5LnB1c2hTdGF0ZShudWxsLGBgLGUubG9jYXRpb24uaHJlZil9fSxDXz1PKCExKSx3Xz1PKCExKSxUXz1PKCExKSxFXz1lPT4hIUFnLmZpbmQodD0+ZS5pbmNsdWRlcyh0KSksRF89TyghMCk7Vi5hd2FpdE9wdGlvbnMoKS50aGVuKGU9PntsZXQgdD16byhVLlNvdW5kc0VuYWJsZWQpO3Q/RF8uc2V0KHQ9PT1gdHJ1ZWApOnR5cGVvZiBlLmVuYWJsZVNvdW5kcz09YGJvb2xlYW5gJiZEXy5zZXQoZS5lbmFibGVTb3VuZHMpLHdfLnNldChFXyhlLmJvb3RzdHJhcFVybCkpfSk7dmFyIE9fPWU9PntEXy5zZXQoZSksQm8oe25hbWU6VS5Tb3VuZHNFbmFibGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLGUmJmJwKCl9LGtfPU8oeF8oKSksQV89T2coKCk9PmtfLnNldCh4XygpKSw1MDApO0IoKS5hZGRFdmVudExpc3RlbmVyKGB2aXNpYmlsaXR5Y2hhbmdlYCwoKT0+e0FfKCl9KTt2YXIgal89TygwKSxNXz0oKT0+al8udXBkYXRlKGU9PmUrMSksTl89TyghMCksUF89KGUsdCk9Pih2byhgd2lkZ2V0IHZpc2libGU6ICR7U3RyaW5nKHQpfSA9PiByZWFzb246ICR7ZX1gKSx0JiZ0IT09QShSXykmJmJfKCksdCksRl89TygpLElfPSgpPT5GXy5zZXQoITApLExfPSgpPT5GXy5zZXQoITEpLFJfPWsoW011LHNzLEZfLGVkLG9kLGsoWyR1LFJwLGFfLG9kXSwoW2UsdCxuLHJdKT0+e2xldHtoaWRlT2ZmbGluZUNoYXQ6aSxpc1ByZXZpZXdNb2RlOmF9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09Sy5BY2NvdW50U3RhdHVzLk9mZmxpbmUmJiEhaSYmU3AodCkubGVuZ3RoPT09MCYmbiYmIXImJiFhfSldLChbZSx0LG4scixpLGFdKT0+e2xldHtoaWRlTW9iaWxlV2lkZ2V0Om8saGlkZVdpZGdldDpzfT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZT8uYmFubmVkQXQ/UF8oYHZpc2l0b3IgaXMgYmFubmVkYCwhMSk6dCYmbz9QXyhgb3B0aW9uICdoaWRlTW9iaWxlV2lkZ2V0JyBpcyB0cnVlYCwhMSk6dHlwZW9mIG49PWBib29sZWFuYD9QXyhgc2V0IGJ5IEFQSSBjb21tYW5kYCxuKTpyJiYhaT9QXyhgY2hhdCBzdGF0dXMgaXMgbm90IHBlbmRpbmdgLCEwKTphP1BfKGBvcHRpb24gJ2hpZGVPZmZsaW5lQ2hhdCcgaXMgdHJ1ZWAsITEpOlBfKGBvcHRpb24gJ2hpZGVXaWRnZXQnIGlzICR7U3RyaW5nKHMpfWAsIXMpfSksel89ayhbc3NdLChbZV0pPT57bGV0e29wZW5PblRyaWdnZXI6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIHQmJiFlfSksQl89W10sVl89ZT0+KEJfLnB1c2goZSksKCk9PntsZXQgdD1CXy5pbmRleE9mKGUpO3QhPT0tMSYmQl8uc3BsaWNlKHQsMSl9KSxIXz0oKT0+Ql8ubGVuZ3RoPT09MD8hMTooQl8ucG9wKCkoKSwhMCksWD1ycyhVLklzTWVzc2VuZ2VyRnJhbWVPcGVuZWQsITEsZT0+IUEoc3MpJiZlPT09YHRydWVgKSxVXz0oZT0hMSk9PntsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpO3Q/LmRpc2FibGVPcGVuTWVzc2VuZ2VyJiYhZXx8KGNoKCksU18oKSxYLnNldCghMCksZXYoKSxDaCgpLHlfKCkpfSxXXz1lPT57aWYoQShzcykmJkEoVF8pJiYhZSlyZXR1cm4gVF8uc2V0KCExKSxCKCkuaGlzdG9yeS5iYWNrKCk7ei5lbWl0KGBtZXNzZW5nZXJDbG9zZWAsITApLFguc2V0KCExKX0sR189ZT0+e2lmKCFlKXJldHVybjtsZXR7d2lkZ2V0QmxvY2tpbmdPcHRpb25zOnR9PVYuZ2V0T3B0aW9ucygpLG49ZT0+e2lmKGUua2V5PT09VGguRXNjYXBlKXtpZihIXygpfHx0Py5kaXNhYmxlQ2xvc2VCdXR0b24pcmV0dXJuO1dfKCl9fSxyPWUub3duZXJEb2N1bWVudDtyZXR1cm4gci5hZGRFdmVudExpc3RlbmVyKGBrZXlkb3duYCxuLCEwKSx7ZGVzdHJveSgpe3IucmVtb3ZlRXZlbnRMaXN0ZW5lcihga2V5ZG93bmAsbiwhMCl9fX0sS189ayhbQ18sUl8sWF0sKFtlLHQsbl0pPT5lJiZ0JiZuKTtmdW5jdGlvbiBxXygpe2xldCBlPU8oITEpLHtzdWJzY3JpYmU6dH09ZSxuPW51bGw7cmV0dXJue3N1YnNjcmliZTp0LGhhbmRsZURyYWdPdmVyOih0LHI9ITApPT57ciYmdC5wcmV2ZW50RGVmYXVsdCgpLEEoZSl8fGUuc2V0KCEwKSxuJiZjbGVhclRpbWVvdXQobiksbj13aW5kb3cuc2V0VGltZW91dCgoKT0+e2Uuc2V0KCExKX0sMjAwKX0saGFuZGxlRHJvcDp0PT57dC5wcmV2ZW50RGVmYXVsdCgpLG4mJmNsZWFyVGltZW91dChuKSxlLnNldCghMSk7bGV0IHI9dC5kYXRhVHJhbnNmZXI/LmZpbGVzP1suLi50LmRhdGFUcmFuc2Zlci5maWxlc106W107cmV0dXJuIHIubGVuZ3RoPT09MCYmX3MoYERyb3BwZWQgaXRlbShzKSBhcmUgbm90IHByb2Nlc3NhYmxlIGZpbGVzYCkse2Ryb3BwZWRGaWxlczpyfX19fXZhciBKXz1xXygpLFlfPWsoW0NfLFJfLFhdLChbZSx0LG5dKT0+ZSYmdCYmIW4pLFhfPU8oITEpLFpfPU8oITEpLFFfPSgpPT57WF8uc2V0KCEwKSxaXy5zZXQoITEpfSwkXz0oKT0+e1pfLnNldCghMCksWF8uc2V0KCExKX0sZXY9KGU9ITEpPT57Wl8uc2V0KCExKSxlJiZCbyh7bmFtZTpVLlBvcHVwQ2xvc2VkQXQsdmFsdWU6bmV3IERhdGUoKS50b0lTT1N0cmluZygpfSl9LHR2PWsoW3NzXSwoW2VdKT0+e2xldHttb2JpbGVQb3B1cHNFbmFibGVkOnR9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPyEhdDohMH0pLG52PWsoW05wXSwoW2VdKT0+e2xldCB0PXpvKFUuUG9wdXBDbG9zZWRBdCk/P251bGw7cmV0dXJuIXR8fCFlPyEwOm5ldyBEYXRlKGUuY3JlYXRlZEF0KS5nZXRUaW1lKCk+bmV3IERhdGUodCkuZ2V0VGltZSgpfSkscnY9ayhbQ18sUl8sWF8sWCx0dl0sKFtlLHQsbixyLGldKT0+ZSYmdCYmbiYmIXImJmkpLGl2PWsoW0NfLFJfLFpfLFgsTnAsbnYsdHYsV2ZdLChbZSx0LG4scixpLGEsbyxzXSk9PmUmJnQmJm4mJmkmJmEmJiFyJiZvJiYhcyksYXY9e3doaXRlOmAjZmZmZmZmYCxzbGF0ZTEwMDpgI2YxZjVmOWAsc2xhdGUyMDA6YCNlMmU4ZjBgLHNsYXRlMzAwOmAjY2JkNWUxYCxzbGF0ZTkwMDpgIzBmMTcyYWAsYmx1ZTcwMDpgIzFkNGVkOGAsc21hcnRzdXBwQmx1ZTpgIzEyMzNkZmB9O2Z1bmN0aW9uIFooZSx0KXtzdihlKSYmKGU9YDEwMCVgKTtsZXQgbj1jdihlKTtyZXR1cm4gZT10PT09MzYwP2U6TWF0aC5taW4odCxNYXRoLm1heCgwLHBhcnNlRmxvYXQoZSkpKSxuJiYoZT1wYXJzZUludChTdHJpbmcoZSp0KSwxMCkvMTAwKSxNYXRoLmFicyhlLXQpPDFlLTY/MTooZT10PT09MzYwPyhlPDA/ZSV0K3Q6ZSV0KS9wYXJzZUZsb2F0KFN0cmluZyh0KSk6ZSV0L3BhcnNlRmxvYXQoU3RyaW5nKHQpKSxlKX1mdW5jdGlvbiBvdihlKXtyZXR1cm4gTWF0aC5taW4oMSxNYXRoLm1heCgwLGUpKX1mdW5jdGlvbiBzdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYC5gKSE9PS0xJiZwYXJzZUZsb2F0KGUpPT09MX1mdW5jdGlvbiBjdihlKXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmluZGV4T2YoYCVgKSE9PS0xfWZ1bmN0aW9uIGx2KGUpe3JldHVybiBlPXBhcnNlRmxvYXQoZSksKGlzTmFOKGUpfHxlPDB8fGU+MSkmJihlPTEpLGV9ZnVuY3Rpb24gdXYoZSl7cmV0dXJuIE51bWJlcihlKTw9MT9gJHtOdW1iZXIoZSkqMTAwfSVgOmV9ZnVuY3Rpb24gZHYoZSl7cmV0dXJuIGUubGVuZ3RoPT09MT9gMGArZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZnYoZSx0LG4pe3JldHVybntyOlooZSwyNTUpKjI1NSxnOloodCwyNTUpKjI1NSxiOloobiwyNTUpKjI1NX19ZnVuY3Rpb24gcHYoZSx0LG4pe2U9WihlLDI1NSksdD1aKHQsMjU1KSxuPVoobiwyNTUpO2xldCByPU1hdGgubWF4KGUsdCxuKSxpPU1hdGgubWluKGUsdCxuKSxhPTAsbz0wLHM9KHIraSkvMjtpZihyPT09aSlvPTAsYT0wO2Vsc2V7bGV0IGM9ci1pO3N3aXRjaChvPXM+LjU/Yy8oMi1yLWkpOmMvKHIraSkscil7Y2FzZSBlOmE9KHQtbikvYysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvYysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL2MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOm8sbDpzfX1mdW5jdGlvbiBtdihlLHQsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmLS1uLG48MS82P2UrKHQtZSkqKDYqbik6bjwxLzI/dDpuPDIvMz9lKyh0LWUpKigyLzMtbikqNjplfWZ1bmN0aW9uIGh2KGUsdCxuKXtsZXQgcixpLGE7aWYoZT1aKGUsMzYwKSx0PVoodCwxMDApLG49WihuLDEwMCksdD09PTApaT1uLGE9bixyPW47ZWxzZXtsZXQgbz1uPC41P24qKDErdCk6bit0LW4qdCxzPTIqbi1vO3I9bXYocyxvLGUrMS8zKSxpPW12KHMsbyxlKSxhPW12KHMsbyxlLTEvMyl9cmV0dXJue3I6cioyNTUsZzppKjI1NSxiOmEqMjU1fX1mdW5jdGlvbiBndihlLHQsbil7ZT1aKGUsMjU1KSx0PVoodCwyNTUpLG49WihuLDI1NSk7bGV0IHI9TWF0aC5tYXgoZSx0LG4pLGk9TWF0aC5taW4oZSx0LG4pLGE9MCxvPXIscz1yLWksYz1yPT09MD8wOnMvcjtpZihyPT09aSlhPTA7ZWxzZXtzd2l0Y2gocil7Y2FzZSBlOmE9KHQtbikvcysodDxuPzY6MCk7YnJlYWs7Y2FzZSB0OmE9KG4tZSkvcysyO2JyZWFrO2Nhc2UgbjphPShlLXQpL3MrNDticmVhaztkZWZhdWx0OmJyZWFrfWEvPTZ9cmV0dXJue2g6YSxzOmMsdjpvfX1mdW5jdGlvbiBfdihlLHQsbil7ZT1aKGUsMzYwKSo2LHQ9Wih0LDEwMCksbj1aKG4sMTAwKTtsZXQgcj1NYXRoLmZsb29yKGUpLGk9ZS1yLGE9biooMS10KSxvPW4qKDEtaSp0KSxzPW4qKDEtKDEtaSkqdCksYz1yJTYsbD1bbixvLGEsYSxzLG5dW2NdLHU9W3MsbixuLG8sYSxhXVtjXSxkPVthLGEscyxuLG4sb11bY107cmV0dXJue3I6bCoyNTUsZzp1KjI1NSxiOmQqMjU1fX1mdW5jdGlvbiB2dihlLHQsbixyKXtsZXQgaT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSldO3JldHVybiByJiZpWzBdLnN0YXJ0c1dpdGgoaVswXS5jaGFyQXQoMSkpJiZpWzFdLnN0YXJ0c1dpdGgoaVsxXS5jaGFyQXQoMSkpJiZpWzJdLnN0YXJ0c1dpdGgoaVsyXS5jaGFyQXQoMSkpP2lbMF0uY2hhckF0KDApK2lbMV0uY2hhckF0KDApK2lbMl0uY2hhckF0KDApOmkuam9pbihgYCl9ZnVuY3Rpb24geXYoZSx0LG4scixpKXtsZXQgYT1bZHYoTWF0aC5yb3VuZChlKS50b1N0cmluZygxNikpLGR2KE1hdGgucm91bmQodCkudG9TdHJpbmcoMTYpKSxkdihNYXRoLnJvdW5kKG4pLnRvU3RyaW5nKDE2KSksZHYoU3YocikpXTtyZXR1cm4gaSYmYVswXS5zdGFydHNXaXRoKGFbMF0uY2hhckF0KDEpKSYmYVsxXS5zdGFydHNXaXRoKGFbMV0uY2hhckF0KDEpKSYmYVsyXS5zdGFydHNXaXRoKGFbMl0uY2hhckF0KDEpKSYmYVszXS5zdGFydHNXaXRoKGFbM10uY2hhckF0KDEpKT9hWzBdLmNoYXJBdCgwKSthWzFdLmNoYXJBdCgwKSthWzJdLmNoYXJBdCgwKSthWzNdLmNoYXJBdCgwKTphLmpvaW4oYGApfWZ1bmN0aW9uIGJ2KGUsdCxuLHIpe2xldCBpPWUvMTAwLGE9dC8xMDAsbz1uLzEwMCxzPXIvMTAwO3JldHVybntyOjI1NSooMS1pKSooMS1zKSxnOjI1NSooMS1hKSooMS1zKSxiOjI1NSooMS1vKSooMS1zKX19ZnVuY3Rpb24geHYoZSx0LG4pe2xldCByPTEtZS8yNTUsaT0xLXQvMjU1LGE9MS1uLzI1NSxvPU1hdGgubWluKHIsaSxhKTtyZXR1cm4gbz09PTE/KHI9MCxpPTAsYT0wKToocj0oci1vKS8oMS1vKSoxMDAsaT0oaS1vKS8oMS1vKSoxMDAsYT0oYS1vKS8oMS1vKSoxMDApLG8qPTEwMCx7YzpNYXRoLnJvdW5kKHIpLG06TWF0aC5yb3VuZChpKSx5Ok1hdGgucm91bmQoYSksazpNYXRoLnJvdW5kKG8pfX1mdW5jdGlvbiBTdihlKXtyZXR1cm4gTWF0aC5yb3VuZChwYXJzZUZsb2F0KGUpKjI1NSkudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIEN2KGUpe3JldHVybiB3dihlKS8yNTV9ZnVuY3Rpb24gd3YoZSl7cmV0dXJuIHBhcnNlSW50KGUsMTYpfWZ1bmN0aW9uIFR2KGUpe3JldHVybntyOmU+PjE2LGc6KGUmNjUyODApPj44LGI6ZSYyNTV9fXZhciBFdj17YWxpY2VibHVlOmAjZjBmOGZmYCxhbnRpcXVld2hpdGU6YCNmYWViZDdgLGFxdWE6YCMwMGZmZmZgLGFxdWFtYXJpbmU6YCM3ZmZmZDRgLGF6dXJlOmAjZjBmZmZmYCxiZWlnZTpgI2Y1ZjVkY2AsYmlzcXVlOmAjZmZlNGM0YCxibGFjazpgIzAwMDAwMGAsYmxhbmNoZWRhbG1vbmQ6YCNmZmViY2RgLGJsdWU6YCMwMDAwZmZgLGJsdWV2aW9sZXQ6YCM4YTJiZTJgLGJyb3duOmAjYTUyYTJhYCxidXJseXdvb2Q6YCNkZWI4ODdgLGNhZGV0Ymx1ZTpgIzVmOWVhMGAsY2hhcnRyZXVzZTpgIzdmZmYwMGAsY2hvY29sYXRlOmAjZDI2OTFlYCxjb3JhbDpgI2ZmN2Y1MGAsY29ybmZsb3dlcmJsdWU6YCM2NDk1ZWRgLGNvcm5zaWxrOmAjZmZmOGRjYCxjcmltc29uOmAjZGMxNDNjYCxjeWFuOmAjMDBmZmZmYCxkYXJrYmx1ZTpgIzAwMDA4YmAsZGFya2N5YW46YCMwMDhiOGJgLGRhcmtnb2xkZW5yb2Q6YCNiODg2MGJgLGRhcmtncmF5OmAjYTlhOWE5YCxkYXJrZ3JlZW46YCMwMDY0MDBgLGRhcmtncmV5OmAjYTlhOWE5YCxkYXJra2hha2k6YCNiZGI3NmJgLGRhcmttYWdlbnRhOmAjOGIwMDhiYCxkYXJrb2xpdmVncmVlbjpgIzU1NmIyZmAsZGFya29yYW5nZTpgI2ZmOGMwMGAsZGFya29yY2hpZDpgIzk5MzJjY2AsZGFya3JlZDpgIzhiMDAwMGAsZGFya3NhbG1vbjpgI2U5OTY3YWAsZGFya3NlYWdyZWVuOmAjOGZiYzhmYCxkYXJrc2xhdGVibHVlOmAjNDgzZDhiYCxkYXJrc2xhdGVncmF5OmAjMmY0ZjRmYCxkYXJrc2xhdGVncmV5OmAjMmY0ZjRmYCxkYXJrdHVycXVvaXNlOmAjMDBjZWQxYCxkYXJrdmlvbGV0OmAjOTQwMGQzYCxkZWVwcGluazpgI2ZmMTQ5M2AsZGVlcHNreWJsdWU6YCMwMGJmZmZgLGRpbWdyYXk6YCM2OTY5NjlgLGRpbWdyZXk6YCM2OTY5NjlgLGRvZGdlcmJsdWU6YCMxZTkwZmZgLGZpcmVicmljazpgI2IyMjIyMmAsZmxvcmFsd2hpdGU6YCNmZmZhZjBgLGZvcmVzdGdyZWVuOmAjMjI4YjIyYCxmdWNoc2lhOmAjZmYwMGZmYCxnYWluc2Jvcm86YCNkY2RjZGNgLGdob3N0d2hpdGU6YCNmOGY4ZmZgLGdvbGRlbnJvZDpgI2RhYTUyMGAsZ29sZDpgI2ZmZDcwMGAsZ3JheTpgIzgwODA4MGAsZ3JlZW46YCMwMDgwMDBgLGdyZWVueWVsbG93OmAjYWRmZjJmYCxncmV5OmAjODA4MDgwYCxob25leWRldzpgI2YwZmZmMGAsaG90cGluazpgI2ZmNjliNGAsaW5kaWFucmVkOmAjY2Q1YzVjYCxpbmRpZ286YCM0YjAwODJgLGl2b3J5OmAjZmZmZmYwYCxraGFraTpgI2YwZTY4Y2AsbGF2ZW5kZXJibHVzaDpgI2ZmZjBmNWAsbGF2ZW5kZXI6YCNlNmU2ZmFgLGxhd25ncmVlbjpgIzdjZmMwMGAsbGVtb25jaGlmZm9uOmAjZmZmYWNkYCxsaWdodGJsdWU6YCNhZGQ4ZTZgLGxpZ2h0Y29yYWw6YCNmMDgwODBgLGxpZ2h0Y3lhbjpgI2UwZmZmZmAsbGlnaHRnb2xkZW5yb2R5ZWxsb3c6YCNmYWZhZDJgLGxpZ2h0Z3JheTpgI2QzZDNkM2AsbGlnaHRncmVlbjpgIzkwZWU5MGAsbGlnaHRncmV5OmAjZDNkM2QzYCxsaWdodHBpbms6YCNmZmI2YzFgLGxpZ2h0c2FsbW9uOmAjZmZhMDdhYCxsaWdodHNlYWdyZWVuOmAjMjBiMmFhYCxsaWdodHNreWJsdWU6YCM4N2NlZmFgLGxpZ2h0c2xhdGVncmF5OmAjNzc4ODk5YCxsaWdodHNsYXRlZ3JleTpgIzc3ODg5OWAsbGlnaHRzdGVlbGJsdWU6YCNiMGM0ZGVgLGxpZ2h0eWVsbG93OmAjZmZmZmUwYCxsaW1lOmAjMDBmZjAwYCxsaW1lZ3JlZW46YCMzMmNkMzJgLGxpbmVuOmAjZmFmMGU2YCxtYWdlbnRhOmAjZmYwMGZmYCxtYXJvb246YCM4MDAwMDBgLG1lZGl1bWFxdWFtYXJpbmU6YCM2NmNkYWFgLG1lZGl1bWJsdWU6YCMwMDAwY2RgLG1lZGl1bW9yY2hpZDpgI2JhNTVkM2AsbWVkaXVtcHVycGxlOmAjOTM3MGRiYCxtZWRpdW1zZWFncmVlbjpgIzNjYjM3MWAsbWVkaXVtc2xhdGVibHVlOmAjN2I2OGVlYCxtZWRpdW1zcHJpbmdncmVlbjpgIzAwZmE5YWAsbWVkaXVtdHVycXVvaXNlOmAjNDhkMWNjYCxtZWRpdW12aW9sZXRyZWQ6YCNjNzE1ODVgLG1pZG5pZ2h0Ymx1ZTpgIzE5MTk3MGAsbWludGNyZWFtOmAjZjVmZmZhYCxtaXN0eXJvc2U6YCNmZmU0ZTFgLG1vY2Nhc2luOmAjZmZlNGI1YCxuYXZham93aGl0ZTpgI2ZmZGVhZGAsbmF2eTpgIzAwMDA4MGAsb2xkbGFjZTpgI2ZkZjVlNmAsb2xpdmU6YCM4MDgwMDBgLG9saXZlZHJhYjpgIzZiOGUyM2Asb3JhbmdlOmAjZmZhNTAwYCxvcmFuZ2VyZWQ6YCNmZjQ1MDBgLG9yY2hpZDpgI2RhNzBkNmAscGFsZWdvbGRlbnJvZDpgI2VlZThhYWAscGFsZWdyZWVuOmAjOThmYjk4YCxwYWxldHVycXVvaXNlOmAjYWZlZWVlYCxwYWxldmlvbGV0cmVkOmAjZGI3MDkzYCxwYXBheWF3aGlwOmAjZmZlZmQ1YCxwZWFjaHB1ZmY6YCNmZmRhYjlgLHBlcnU6YCNjZDg1M2ZgLHBpbms6YCNmZmMwY2JgLHBsdW06YCNkZGEwZGRgLHBvd2RlcmJsdWU6YCNiMGUwZTZgLHB1cnBsZTpgIzgwMDA4MGAscmViZWNjYXB1cnBsZTpgIzY2MzM5OWAscmVkOmAjZmYwMDAwYCxyb3N5YnJvd246YCNiYzhmOGZgLHJveWFsYmx1ZTpgIzQxNjllMWAsc2FkZGxlYnJvd246YCM4YjQ1MTNgLHNhbG1vbjpgI2ZhODA3MmAsc2FuZHlicm93bjpgI2Y0YTQ2MGAsc2VhZ3JlZW46YCMyZThiNTdgLHNlYXNoZWxsOmAjZmZmNWVlYCxzaWVubmE6YCNhMDUyMmRgLHNpbHZlcjpgI2MwYzBjMGAsc2t5Ymx1ZTpgIzg3Y2VlYmAsc2xhdGVibHVlOmAjNmE1YWNkYCxzbGF0ZWdyYXk6YCM3MDgwOTBgLHNsYXRlZ3JleTpgIzcwODA5MGAsc25vdzpgI2ZmZmFmYWAsc3ByaW5nZ3JlZW46YCMwMGZmN2ZgLHN0ZWVsYmx1ZTpgIzQ2ODJiNGAsdGFuOmAjZDJiNDhjYCx0ZWFsOmAjMDA4MDgwYCx0aGlzdGxlOmAjZDhiZmQ4YCx0b21hdG86YCNmZjYzNDdgLHR1cnF1b2lzZTpgIzQwZTBkMGAsdmlvbGV0OmAjZWU4MmVlYCx3aGVhdDpgI2Y1ZGViM2Asd2hpdGU6YCNmZmZmZmZgLHdoaXRlc21va2U6YCNmNWY1ZjVgLHllbGxvdzpgI2ZmZmYwMGAseWVsbG93Z3JlZW46YCM5YWNkMzJgfTtmdW5jdGlvbiBEdihlKXtsZXQgdD17cjowLGc6MCxiOjB9LG49MSxyPW51bGwsaT1udWxsLGE9bnVsbCxvPSExLHM9ITE7cmV0dXJuIHR5cGVvZiBlPT1gc3RyaW5nYCYmKGU9TXYoZSkpLHR5cGVvZiBlPT1gb2JqZWN0YCYmKE52KGUucikmJk52KGUuZykmJk52KGUuYik/KHQ9ZnYoZS5yLGUuZyxlLmIpLG89ITAscz1TdHJpbmcoZS5yKS5zdWJzdHIoLTEpPT09YCVgP2BwcmdiYDpgcmdiYCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS52KT8ocj11dihlLnMpLGk9dXYoZS52KSx0PV92KGUuaCxyLGkpLG89ITAscz1gaHN2YCk6TnYoZS5oKSYmTnYoZS5zKSYmTnYoZS5sKT8ocj11dihlLnMpLGE9dXYoZS5sKSx0PWh2KGUuaCxyLGEpLG89ITAscz1gaHNsYCk6TnYoZS5jKSYmTnYoZS5tKSYmTnYoZS55KSYmTnYoZS5rKSYmKHQ9YnYoZS5jLGUubSxlLnksZS5rKSxvPSEwLHM9YGNteWtgKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxgYWApJiYobj1lLmEpKSxuPWx2KG4pLHtvazpvLGZvcm1hdDplLmZvcm1hdHx8cyxyOk1hdGgubWluKDI1NSxNYXRoLm1heCh0LnIsMCkpLGc6TWF0aC5taW4oMjU1LE1hdGgubWF4KHQuZywwKSksYjpNYXRoLm1pbigyNTUsTWF0aC5tYXgodC5iLDApKSxhOm59fXZhciBPdj1gKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pYCxrdj1gW1xcc3xcXChdKyhgK092K2ApWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlcXHMqXFwpP2AsQXY9YFtcXHN8XFwoXSsoYCtPditgKVssfFxcc10rKCg/OlstXFwrXT9cXGQqXFwuXFxkKyU/KXwoPzpbLVxcK10/XFxkKyU/KSlbLHxcXHNdKygoPzpbLVxcK10/XFxkKlxcLlxcZCslPyl8KD86Wy1cXCtdP1xcZCslPykpWyx8XFxzXSsoKD86Wy1cXCtdP1xcZCpcXC5cXGQrJT8pfCg/OlstXFwrXT9cXGQrJT8pKVxccypcXCk/YCxqdj17Q1NTX1VOSVQ6bmV3IFJlZ0V4cChPdikscmdiOlJlZ0V4cChgcmdiYCtrdikscmdiYTpSZWdFeHAoYHJnYmFgK0F2KSxoc2w6UmVnRXhwKGBoc2xgK2t2KSxoc2xhOlJlZ0V4cChgaHNsYWArQXYpLGhzdjpSZWdFeHAoYGhzdmAra3YpLGhzdmE6UmVnRXhwKGBoc3ZhYCtBdiksY215azpSZWdFeHAoYGNteWtgK0F2KSxoZXgzOi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg2Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxoZXg0Oi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfTtmdW5jdGlvbiBNdihlKXtpZihlPWUudHJpbSgpLnRvTG93ZXJDYXNlKCksZS5sZW5ndGg9PT0wKXJldHVybiExO2xldCB0PSExO2lmKEV2W2VdKWU9RXZbZV0sdD0hMDtlbHNlIGlmKGU9PT1gdHJhbnNwYXJlbnRgKXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OmBuYW1lYH07bGV0IG49anYucmdiLmV4ZWMoZSk7cmV0dXJuIG4/e3I6blsxXSxnOm5bMl0sYjpuWzNdfToobj1qdi5yZ2JhLmV4ZWMoZSksbj97cjpuWzFdLGc6blsyXSxiOm5bM10sYTpuWzRdfToobj1qdi5oc2wuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLGw6blszXX06KG49anYuaHNsYS5leGVjKGUpLG4/e2g6blsxXSxzOm5bMl0sbDpuWzNdLGE6bls0XX06KG49anYuaHN2LmV4ZWMoZSksbj97aDpuWzFdLHM6blsyXSx2Om5bM119OihuPWp2LmhzdmEuZXhlYyhlKSxuP3toOm5bMV0sczpuWzJdLHY6blszXSxhOm5bNF19OihuPWp2LmNteWsuZXhlYyhlKSxuP3tjOm5bMV0sbTpuWzJdLHk6blszXSxrOm5bNF19OihuPWp2LmhleDguZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxhOkN2KG5bNF0pLGZvcm1hdDp0P2BuYW1lYDpgaGV4OGB9OihuPWp2LmhleDYuZXhlYyhlKSxuP3tyOnd2KG5bMV0pLGc6d3YoblsyXSksYjp3dihuWzNdKSxmb3JtYXQ6dD9gbmFtZWA6YGhleGB9OihuPWp2LmhleDQuZXhlYyhlKSxuP3tyOnd2KG5bMV0rblsxXSksZzp3dihuWzJdK25bMl0pLGI6d3YoblszXStuWzNdKSxhOkN2KG5bNF0rbls0XSksZm9ybWF0OnQ/YG5hbWVgOmBoZXg4YH06KG49anYuaGV4My5leGVjKGUpLG4/e3I6d3YoblsxXStuWzFdKSxnOnd2KG5bMl0rblsyXSksYjp3dihuWzNdK25bM10pLGZvcm1hdDp0P2BuYW1lYDpgaGV4YH06ITEpKSkpKSkpKSkpfWZ1bmN0aW9uIE52KGUpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmA/IU51bWJlci5pc05hTihlKTpqdi5DU1NfVU5JVC50ZXN0KGUpfXZhciBQdj1jbGFzcyBle2NvbnN0cnVjdG9yKHQ9YGAsbj17fSl7aWYodCBpbnN0YW5jZW9mIGUpcmV0dXJuIHQ7dHlwZW9mIHQ9PWBudW1iZXJgJiYodD1Udih0KSksdGhpcy5vcmlnaW5hbElucHV0PXQ7bGV0IHI9RHYodCk7dGhpcy5vcmlnaW5hbElucHV0PXQsdGhpcy5yPXIucix0aGlzLmc9ci5nLHRoaXMuYj1yLmIsdGhpcy5hPXIuYSx0aGlzLnJvdW5kQT1NYXRoLnJvdW5kKDEwMCp0aGlzLmEpLzEwMCx0aGlzLmZvcm1hdD1uLmZvcm1hdD8/ci5mb3JtYXQsdGhpcy5ncmFkaWVudFR5cGU9bi5ncmFkaWVudFR5cGUsdGhpcy5yPDEmJih0aGlzLnI9TWF0aC5yb3VuZCh0aGlzLnIpKSx0aGlzLmc8MSYmKHRoaXMuZz1NYXRoLnJvdW5kKHRoaXMuZykpLHRoaXMuYjwxJiYodGhpcy5iPU1hdGgucm91bmQodGhpcy5iKSksdGhpcy5pc1ZhbGlkPXIub2t9aXNEYXJrKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH1pc0xpZ2h0KCl7cmV0dXJuIXRoaXMuaXNEYXJrKCl9Z2V0QnJpZ2h0bmVzcygpe2xldCBlPXRoaXMudG9SZ2IoKTtyZXR1cm4oZS5yKjI5OStlLmcqNTg3K2UuYioxMTQpLzFlM31nZXRMdW1pbmFuY2UoKXtsZXQgZT10aGlzLnRvUmdiKCksdCxuLHIsaT1lLnIvMjU1LGE9ZS5nLzI1NSxvPWUuYi8yNTU7cmV0dXJuIHQ9aTw9LjAzOTI4P2kvMTIuOTI6KChpKy4wNTUpLzEuMDU1KSoqMi40LG49YTw9LjAzOTI4P2EvMTIuOTI6KChhKy4wNTUpLzEuMDU1KSoqMi40LHI9bzw9LjAzOTI4P28vMTIuOTI6KChvKy4wNTUpLzEuMDU1KSoqMi40LC4yMTI2KnQrLjcxNTIqbisuMDcyMipyfWdldEFscGhhKCl7cmV0dXJuIHRoaXMuYX1zZXRBbHBoYShlKXtyZXR1cm4gdGhpcy5hPWx2KGUpLHRoaXMucm91bmRBPU1hdGgucm91bmQoMTAwKnRoaXMuYSkvMTAwLHRoaXN9aXNNb25vY2hyb21lKCl7bGV0e3M6ZX09dGhpcy50b0hzbCgpO3JldHVybiBlPT09MH10b0hzdigpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLHY6ZS52LGE6dGhpcy5hfX10b0hzdlN0cmluZygpe2xldCBlPWd2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLnYqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHN2KCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc3ZhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hzbCgpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKTtyZXR1cm57aDplLmgqMzYwLHM6ZS5zLGw6ZS5sLGE6dGhpcy5hfX10b0hzbFN0cmluZygpe2xldCBlPXB2KHRoaXMucix0aGlzLmcsdGhpcy5iKSx0PU1hdGgucm91bmQoZS5oKjM2MCksbj1NYXRoLnJvdW5kKGUucyoxMDApLHI9TWF0aC5yb3VuZChlLmwqMTAwKTtyZXR1cm4gdGhpcy5hPT09MT9gaHNsKCR7dH0sICR7bn0lLCAke3J9JSlgOmBoc2xhKCR7dH0sICR7bn0lLCAke3J9JSwgJHt0aGlzLnJvdW5kQX0pYH10b0hleChlPSExKXtyZXR1cm4gdnYodGhpcy5yLHRoaXMuZyx0aGlzLmIsZSl9dG9IZXhTdHJpbmcoZT0hMSl7cmV0dXJuYCNgK3RoaXMudG9IZXgoZSl9dG9IZXg4KGU9ITEpe3JldHVybiB5dih0aGlzLnIsdGhpcy5nLHRoaXMuYix0aGlzLmEsZSl9dG9IZXg4U3RyaW5nKGU9ITEpe3JldHVybmAjYCt0aGlzLnRvSGV4OChlKX10b0hleFNob3J0U3RyaW5nKGU9ITEpe3JldHVybiB0aGlzLmE9PT0xP3RoaXMudG9IZXhTdHJpbmcoZSk6dGhpcy50b0hleDhTdHJpbmcoZSl9dG9SZ2IoKXtyZXR1cm57cjpNYXRoLnJvdW5kKHRoaXMuciksZzpNYXRoLnJvdW5kKHRoaXMuZyksYjpNYXRoLnJvdW5kKHRoaXMuYiksYTp0aGlzLmF9fXRvUmdiU3RyaW5nKCl7bGV0IGU9TWF0aC5yb3VuZCh0aGlzLnIpLHQ9TWF0aC5yb3VuZCh0aGlzLmcpLG49TWF0aC5yb3VuZCh0aGlzLmIpO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlfSwgJHt0fSwgJHtufSlgOmByZ2JhKCR7ZX0sICR7dH0sICR7bn0sICR7dGhpcy5yb3VuZEF9KWB9dG9QZXJjZW50YWdlUmdiKCl7bGV0IGU9ZT0+YCR7TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApfSVgO3JldHVybntyOmUodGhpcy5yKSxnOmUodGhpcy5nKSxiOmUodGhpcy5iKSxhOnRoaXMuYX19dG9QZXJjZW50YWdlUmdiU3RyaW5nKCl7bGV0IGU9ZT0+TWF0aC5yb3VuZChaKGUsMjU1KSoxMDApO3JldHVybiB0aGlzLmE9PT0xP2ByZ2IoJHtlKHRoaXMucil9JSwgJHtlKHRoaXMuZyl9JSwgJHtlKHRoaXMuYil9JSlgOmByZ2JhKCR7ZSh0aGlzLnIpfSUsICR7ZSh0aGlzLmcpfSUsICR7ZSh0aGlzLmIpfSUsICR7dGhpcy5yb3VuZEF9KWB9dG9DbXlrKCl7cmV0dXJuey4uLnh2KHRoaXMucix0aGlzLmcsdGhpcy5iKX19dG9DbXlrU3RyaW5nKCl7bGV0e2M6ZSxtOnQseTpuLGs6cn09eHYodGhpcy5yLHRoaXMuZyx0aGlzLmIpO3JldHVybmBjbXlrKCR7ZX0sICR7dH0sICR7bn0sICR7cn0pYH10b05hbWUoKXtpZih0aGlzLmE9PT0wKXJldHVybmB0cmFuc3BhcmVudGA7aWYodGhpcy5hPDEpcmV0dXJuITE7bGV0IGU9YCNgK3Z2KHRoaXMucix0aGlzLmcsdGhpcy5iLCExKTtmb3IobGV0W3Qsbl1vZiBPYmplY3QuZW50cmllcyhFdikpaWYoZT09PW4pcmV0dXJuIHQ7cmV0dXJuITF9dG9TdHJpbmcoZSl7bGV0IHQ9ISFlO2U/Pz10aGlzLmZvcm1hdDtsZXQgbj0hMSxyPXRoaXMuYTwxJiZ0aGlzLmE+PTA7cmV0dXJuIXQmJnImJihlLnN0YXJ0c1dpdGgoYGhleGApfHxlPT09YG5hbWVgKT9lPT09YG5hbWVgJiZ0aGlzLmE9PT0wP3RoaXMudG9OYW1lKCk6dGhpcy50b1JnYlN0cmluZygpOihlPT09YHJnYmAmJihuPXRoaXMudG9SZ2JTdHJpbmcoKSksZT09PWBwcmdiYCYmKG49dGhpcy50b1BlcmNlbnRhZ2VSZ2JTdHJpbmcoKSksKGU9PT1gaGV4YHx8ZT09PWBoZXg2YCkmJihuPXRoaXMudG9IZXhTdHJpbmcoKSksZT09PWBoZXgzYCYmKG49dGhpcy50b0hleFN0cmluZyghMCkpLGU9PT1gaGV4NGAmJihuPXRoaXMudG9IZXg4U3RyaW5nKCEwKSksZT09PWBoZXg4YCYmKG49dGhpcy50b0hleDhTdHJpbmcoKSksZT09PWBuYW1lYCYmKG49dGhpcy50b05hbWUoKSksZT09PWBoc2xgJiYobj10aGlzLnRvSHNsU3RyaW5nKCkpLGU9PT1gaHN2YCYmKG49dGhpcy50b0hzdlN0cmluZygpKSxlPT09YGNteWtgJiYobj10aGlzLnRvQ215a1N0cmluZygpKSxufHx0aGlzLnRvSGV4U3RyaW5nKCkpfXRvTnVtYmVyKCl7cmV0dXJuKE1hdGgucm91bmQodGhpcy5yKTw8MTYpKyhNYXRoLnJvdW5kKHRoaXMuZyk8PDgpK01hdGgucm91bmQodGhpcy5iKX1jbG9uZSgpe3JldHVybiBuZXcgZSh0aGlzLnRvU3RyaW5nKCkpfWxpZ2h0ZW4odD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLmwrPXQvMTAwLG4ubD1vdihuLmwpLG5ldyBlKG4pfWJyaWdodGVuKHQ9MTApe2xldCBuPXRoaXMudG9SZ2IoKTtyZXR1cm4gbi5yPU1hdGgubWF4KDAsTWF0aC5taW4oMjU1LG4uci1NYXRoLnJvdW5kKDI1NSotKHQvMTAwKSkpKSxuLmc9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsbi5nLU1hdGgucm91bmQoMjU1Ki0odC8xMDApKSkpLG4uYj1NYXRoLm1heCgwLE1hdGgubWluKDI1NSxuLmItTWF0aC5yb3VuZCgyNTUqLSh0LzEwMCkpKSksbmV3IGUobil9ZGFya2VuKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5sLT10LzEwMCxuLmw9b3Yobi5sKSxuZXcgZShuKX10aW50KGU9MTApe3JldHVybiB0aGlzLm1peChgd2hpdGVgLGUpfXNoYWRlKGU9MTApe3JldHVybiB0aGlzLm1peChgYmxhY2tgLGUpfWRlc2F0dXJhdGUodD0xMCl7bGV0IG49dGhpcy50b0hzbCgpO3JldHVybiBuLnMtPXQvMTAwLG4ucz1vdihuLnMpLG5ldyBlKG4pfXNhdHVyYXRlKHQ9MTApe2xldCBuPXRoaXMudG9Ic2woKTtyZXR1cm4gbi5zKz10LzEwMCxuLnM9b3Yobi5zKSxuZXcgZShuKX1ncmV5c2NhbGUoKXtyZXR1cm4gdGhpcy5kZXNhdHVyYXRlKDEwMCl9c3Bpbih0KXtsZXQgbj10aGlzLnRvSHNsKCkscj0obi5oK3QpJTM2MDtyZXR1cm4gbi5oPXI8MD8zNjArcjpyLG5ldyBlKG4pfW1peCh0LG49NTApe2xldCByPXRoaXMudG9SZ2IoKSxpPW5ldyBlKHQpLnRvUmdiKCksYT1uLzEwMDtyZXR1cm4gbmV3IGUoe3I6KGkuci1yLnIpKmErci5yLGc6KGkuZy1yLmcpKmErci5nLGI6KGkuYi1yLmIpKmErci5iLGE6KGkuYS1yLmEpKmErci5hfSl9YW5hbG9nb3VzKHQ9NixuPTMwKXtsZXQgcj10aGlzLnRvSHNsKCksaT0zNjAvbixhPVt0aGlzXTtmb3Ioci5oPShyLmgtKGkqdD4+MSkrNzIwKSUzNjA7LS10OylyLmg9KHIuaCtpKSUzNjAsYS5wdXNoKG5ldyBlKHIpKTtyZXR1cm4gYX1jb21wbGVtZW50KCl7bGV0IHQ9dGhpcy50b0hzbCgpO3JldHVybiB0Lmg9KHQuaCsxODApJTM2MCxuZXcgZSh0KX1tb25vY2hyb21hdGljKHQ9Nil7bGV0IG49dGhpcy50b0hzdigpLHtoOnJ9PW4se3M6aX09bix7djphfT1uLG89W10scz0xL3Q7Zm9yKDt0LS07KW8ucHVzaChuZXcgZSh7aDpyLHM6aSx2OmF9KSksYT0oYStzKSUxO3JldHVybiBvfXNwbGl0Y29tcGxlbWVudCgpe2xldCB0PXRoaXMudG9Ic2woKSx7aDpufT10O3JldHVyblt0aGlzLG5ldyBlKHtoOihuKzcyKSUzNjAsczp0LnMsbDp0Lmx9KSxuZXcgZSh7aDoobisyMTYpJTM2MCxzOnQucyxsOnQubH0pXX1vbkJhY2tncm91bmQodCl7bGV0IG49dGhpcy50b1JnYigpLHI9bmV3IGUodCkudG9SZ2IoKSxpPW4uYStyLmEqKDEtbi5hKTtyZXR1cm4gbmV3IGUoe3I6KG4ucipuLmErci5yKnIuYSooMS1uLmEpKS9pLGc6KG4uZypuLmErci5nKnIuYSooMS1uLmEpKS9pLGI6KG4uYipuLmErci5iKnIuYSooMS1uLmEpKS9pLGE6aX0pfXRyaWFkKCl7cmV0dXJuIHRoaXMucG9seWFkKDMpfXRldHJhZCgpe3JldHVybiB0aGlzLnBvbHlhZCg0KX1wb2x5YWQodCl7bGV0IG49dGhpcy50b0hzbCgpLHtoOnJ9PW4saT1bdGhpc10sYT0zNjAvdDtmb3IobGV0IG89MTtvPHQ7bysrKWkucHVzaChuZXcgZSh7aDoocitvKmEpJTM2MCxzOm4ucyxsOm4ubH0pKTtyZXR1cm4gaX1lcXVhbHModCl7bGV0IG49bmV3IGUodCk7cmV0dXJuIHRoaXMuZm9ybWF0PT09YGNteWtgfHxuLmZvcm1hdD09PWBjbXlrYD90aGlzLnRvQ215a1N0cmluZygpPT09bi50b0NteWtTdHJpbmcoKTp0aGlzLnRvUmdiU3RyaW5nKCk9PT1uLnRvUmdiU3RyaW5nKCl9fTtmdW5jdGlvbiBGdihlLHQpe2xldCBuPW5ldyBQdihlKSxyPW5ldyBQdih0KTtyZXR1cm4oTWF0aC5tYXgobi5nZXRMdW1pbmFuY2UoKSxyLmdldEx1bWluYW5jZSgpKSsuMDUpLyhNYXRoLm1pbihuLmdldEx1bWluYW5jZSgpLHIuZ2V0THVtaW5hbmNlKCkpKy4wNSl9dmFyIEl2PS4yOTksTHY9LjU4NyxSdj0uMTE0LHp2PTE4MCxCdj0tMjAsVnY9LS4yNSxIdj0uMixVdj0tNSxXdj0uMDMsR3Y9LjUsS3Y9NSxxdj0oZSx0KT0+bmV3IFB2KGUpLmRhcmtlbih0KS50b0hleFN0cmluZygpLEp2PWU9PntsZXQgdD1uZXcgUHYoZSkudG9SZ2IoKTtyZXR1cm5gJHt0LnJ9LCAke3QuZ30sICR7dC5ifWB9LFl2PWU9Pi9eI1swLTlBLUZdezZ9JC9pLnRlc3QoZSksWHY9ZT0+e2xldHtyOnQsZzpuLGI6cn09bmV3IFB2KGUpLnRvUmdiKCk7cmV0dXJuIE1hdGguc3FydCh0KnQqSXYrbipuKkx2K3IqcipSdik+enZ9LFp2PWU9PntsZXQgdD1uZXcgUHYoZSkse3M6bixsOnJ9PXQudG9Ic2woKTtyZXR1cm4gdC5zcGluKEJ2KS5kZXNhdHVyYXRlKG4qVnYpLmxpZ2h0ZW4ocipIdikudG9IZXhTdHJpbmcoKX0sUXY9KGUsdD1Hdik9PntsZXQgbj1uZXcgUHYoZSkse3M6cixsOml9PW4udG9Ic2woKTtyZXR1cm4gbi5zcGluKFV2KS5zYXR1cmF0ZShyKld2KS5kYXJrZW4oaSp0KS50b0hleFN0cmluZygpfSwkdj1lPT57bGV0e2NvbG9yOnQsY29sb3IyOm4sY29sb3JHcmFkaWVudDpyfT1lO3JldHVybiByP24/e2Zyb206dCx0bzpufTpYdih0KT97ZnJvbTp0LHRvOlF2KHQpfTp7ZnJvbTpadih0KSx0bzp0fTp7ZnJvbTp0LHRvOnR9fSxleT1lPT5YdihlKT9hdi5zbGF0ZTkwMDphdi53aGl0ZSx0eT1lPT5YdihlKT8uMTouMixueT1lPT57aWYoWHYoZSkpe2xldCB0PW5ldyBQdihlKS5nZXRMdW1pbmFuY2UoKTtyZXR1cm4gdD4uOD9xdihlLCgxMCp0KSoqdCk6ZX1yZXR1cm4gZX0scnk9KGUsdCk9PntsZXQgbj10Py5iYWNrZ3JvdW5kQ29sb3I/P2Uscj0wLGk9bmV3IFB2KGUpLGE9RnYobixpKSxvPXQ/LmZvcmNlTGlnaHRCZz8/bmV3IFB2KG4pLmlzTGlnaHQoKTtmb3IoO2E8My43NSYmcjwyMDspaT1vP2kuZGFya2VuKDUpOmkubGlnaHRlbig1KSxhPUZ2KG4saSkscisrO3JldHVybiBpLnRvSGV4U3RyaW5nKCl9LGl5PShlLHQpPT57bGV0IG49cnkoZSx7YmFja2dyb3VuZENvbG9yOmF2LndoaXRlfSkscj1yeShlKSxpPW5ldyBQdihlKS5pc0xpZ2h0KCksYT1uZXcgUHYodCkuaXNMaWdodCgpO3JldHVybiBpJiZhP3I9cnkodCk6IWkmJiFhP3I9cnkoZSk6aSYmIWE/cj1yeSh0LHtmb3JjZUxpZ2h0Qmc6ITB9KTohaSYmYSYmKHI9cnkoZSx7Zm9yY2VMaWdodEJnOiExfSkpLHtwcmltYXJ5Om4sc2Vjb25kYXJ5OnJ9fSxRPShlLHQsbik9PntlLmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pfSxheT0oZSx0KT0+e2xldHtjb2xvcjpufT10LHI9JHYodCksaT1yLmZyb209PT1gI2ZmZmZmZmAmJnIuZnJvbT09PXIudG8/e2Zyb206YXYuc2xhdGUzMDAsdG86YXYuc2xhdGUzMDB9OnIsYT1leShuKTtRKGUsYC0tY29sb3ItcHJpbWFyeWAsbiksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudGAsYSksUShlLGAtLWNvbG9yLXByaW1hcnktY29udGVudC1yZ2JgLEp2KGEpKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1mcm9tYCxyLmZyb20pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvYCxyLnRvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tZnJvbWAsaS5mcm9tKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1ncmFkaWVudC1idXR0b24tdG9gLGkudG8pLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLWZyb21gLHF2KHIuZnJvbSxLdikpLFEoZSxgLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWhvdmVyLXRvYCxxdihyLnRvLEt2KSk7bGV0IG89bnkobik7UShlLGAtLWNvbG9yLXByaW1hcnktYnV0dG9uYCxvKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24taG92ZXJgLHF2KG8sMTApKSxRKGUsYC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudGAsYSksUShlLGAtLW9wYWNpdHktcHJpbWFyeS1jb250ZW50YCxTdHJpbmcodHkobikpKTtsZXQgcz1peShyLmZyb20sci50byk7UShlLGAtLWNvbG9yLXByaW1hcnktZm9jdXNgLHMucHJpbWFyeSksUShlLGAtLWNvbG9yLXNlY29uZGFyeS1mb2N1c2Ascy5zZWNvbmRhcnkpfSxveT0oKCk9PntsZXR7c3Vic2NyaWJlOmUsc2V0OnR9PU8oe2NvbG9yOmF2LnNtYXJ0c3VwcEJsdWUsY29sb3IyOm51bGwsY29sb3JHcmFkaWVudDohMH0pO3JldHVybntzdWJzY3JpYmU6ZSxzZXRUaGVtZUNvbG9yOmU9PntsZXR7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9PWU7aWYoIVl2KG4pKXtIKGBQcm92aWRlZCBjb2xvciAnJHtufScgaXMgbm90IHZhbGlkLiBEZWZhdWx0IGNvbG9yIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLmApO3JldHVybn1lbHNlIGlmKGkmJnImJiFZdihyKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7cn0nIGlzIG5vdCB2YWxpZC4gRGVmYXVsdCBjb2xvciB3aWxsIGJlIHVzZWQgaW5zdGVhZC5gKTtyZXR1cm59dCh7Y29sb3I6bixjb2xvcjI6cixjb2xvckdyYWRpZW50Oml9KX19fSkoKSxzeT0yNCxjeT0xMixseT03Mix1eT0zODAsZHk9NjcyLGZ5PTU2MCxweT04NDAsbXk9ZT0+YCR7ZX1weGAsaHk9ZT0+e2lmKGUpcmV0dXJuIEx1KGUpP3BhcnNlSW50KGUsMTApOmV9LGd5PShlLHQpPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczpufT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8bj8uaGVhZGxlc3NNb2RlP3t3aWR0aDpgMTAwJWAsaGVpZ2h0OmAxMDAlYH06dD97d2lkdGg6ZnksaGVpZ2h0OnB5fTp7d2lkdGg6dXksaGVpZ2h0OmR5fX0sX3k9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS5ib3JkZXJSYWRpdXM9bXkoMjApLHQ/LmhlYWRsZXNzTW9kZT9lLnN0eWxlLmJveFNoYWRvdz1gbm9uZWA6dD8ubGltaXRTaGFkb3c/ZS5zdHlsZS5ib3hTaGFkb3c9YHJnYmEoMCwgMCwgMCwgMC4yNSkgMHB4IDVweCAxMnB4YDplLnN0eWxlLmJveFNoYWRvdz1gcmdiYSgwLCAwLCAwLCAwLjE2KSAwcHggNXB4IDQwcHhgfSx2eT0oKT0+e2xldHtvZmZzZXRZOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBoeShlKT8/c3l9LHl5PSgpPT57bGV0e29mZnNldFg6ZX09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGh5KGUpPz9jeX0sYnk9ZT0+e2xldHt3aWRnZXRCbG9ja2luZ09wdGlvbnM6dH09Vi5nZXRPcHRpb25zKCk7cmV0dXJuIGV8fHQ/LmhlYWRsZXNzTW9kZT8wOnN5fSx4eT1lPT57bGV0e3dpZGdldEJsb2NraW5nT3B0aW9uczp0fT1WLmdldE9wdGlvbnMoKTtyZXR1cm4gZXx8dD8uaGVhZGxlc3NNb2RlPzA6Y3l9LFN5PSgpPT57bGV0e3Bvc2l0aW9uOmV9PVYuZ2V0T3B0aW9ucygpO3JldHVybiBlPT09YGZpeGVkYH0sQ3k9ZT0+e1N5KCkmJihlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGApfSx3eT0oZSx0KT0+e1N5KCkmJihlLnN0eWxlLmJvdHRvbT1teSh0KSl9LFR5PShlLHQpPT57aWYoU3koKSl7bGV0e29yaWVudGF0aW9uOm59PVYuZ2V0T3B0aW9ucygpO249PT1gcmlnaHRgPyhlLnN0eWxlLmxlZnQ9YGluaXRpYWxgLGUuc3R5bGUucmlnaHQ9bXkodCkpOihlLnN0eWxlLmxlZnQ9bXkodCksZS5zdHlsZS5yaWdodD1gaW5pdGlhbGApfX0sRXk9ZT0+e2xldHt6SW5kZXg6dH09Vi5nZXRPcHRpb25zKCk7ZS5zdHlsZS56SW5kZXg9U3RyaW5nKHQ/P2BhdXRvYCl9LER5PWU9PntsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBpZnJhbWVgKTtyZXR1cm4gdC5zdHlsZS5wb3NpdGlvbj1gYWJzb2x1dGVgLHQuc3R5bGUud2lkdGg9YDEwMCVgLHQuc3R5bGUuaGVpZ2h0PWAxMDAlYCx0LnN0eWxlLmJvcmRlcj1gbm9uZWAsdC5zdHlsZS5kaXNwbGF5PWBibG9ja2AsdC5zdHlsZS50ZXh0QWxpZ249YGxlZnRgLHQuc3R5bGUubWFyZ2luPWAwYCx0LnN0eWxlLnBhZGRpbmc9YDBgLHQuc3R5bGUudG9wPWAwYCx0LnN0eWxlLmxlZnQ9YDBgLHQuc3R5bGUub3BhY2l0eT1gMWAsZSYmZSh0KSx0LmdldEF0dHJpYnV0ZShgc3R5bGVgKT8/YGB9LE95PWU9PntDeShlKSx3eShlLHZ5KCkpLFR5KGUseXkoKSksRXkoZSl9LGt5PShlLHQpPT57Q3koZSksd3koZSxieSh0KSksVHkoZSx4eSh0KSksRXkoZSksdHx8X3koZSl9LEF5PWU9PntDeShlKSx3eShlLHZ5KCkrbHkpLFR5KGUseXkoKSksRXkoZSl9LGp5PWU9PntlLnN0eWxlLnBvc2l0aW9uPWBmaXhlZGAsZS5zdHlsZS53aWR0aD1gMTAwJWAsZS5zdHlsZS5oZWlnaHQ9YDEwMCVgLHd5KGUsMCksVHkoZSwwKSxFeShlKX0sTXk9ZT0+e095KGUpfSxOeT0oZSx0KT0+e2t5KGUsdCl9LFB5PWU9PntBeShlKX0sRnk9ZT0+e0F5KGUpfSxJeT1lPT57ankoZSl9LEx5PU8oMzAwKSxSeT1PKDE2Niksenk9TyghMSksQnk9Tyh2b2lkIDApLFZ5PWsoW3NzLEJ5XSwoW2UsdF0pPT57bGV0e2J1dHRvblN0eWxlOm59PVYuZ2V0T3B0aW9ucygpO3JldHVybiB0P3Q9PT1gYnViYmxlYDplfHxuPT09YGJ1YmJsZWB9KSxIeT1rKFtWeSxMeV0sKFtlLHRdKT0+ZT81Njp0KSxVeT1PKHZvaWQgMCksV3k9ayhbY3MsVXldLChbZSx0XSk9PmU/ITA6KHQ/P1YuZ2V0T3B0aW9ucygpLmhlYWRlclN0eWxlKT09PWBjb21wYWN0YCksR3k9ayhbV3ldLChbZV0pPT5lPzc2OjExNCksS3k9TygpLHF5PWsoW0t5XSwoW2VdKT0+ZT09PXZvaWQgMD96byhVLklzTWVzc2VuZ2VyRnJhbWVFeHBhbmRlZCk9PT1gdHJ1ZWA6ZSksSnk9ZT0+e0JvKHtuYW1lOlUuSXNNZXNzZW5nZXJGcmFtZUV4cGFuZGVkLHZhbHVlOmUudG9TdHJpbmcoKX0pLEt5LnNldChlKX0sJD1mdW5jdGlvbihlKXtyZXR1cm4gZS5OYW1lPWBuYW1lYCxlLkdyb3VwPWBncm91cGAsZS5FbWFpbD1gZW1haWxgLGUuUGhvbmU9YHBob25lYCxlLlZhcmlhYmxlcz1gdmFyaWFibGVzYCxlLkNvbnRhY3REYXRhPWBjb250YWN0RGF0YWAsZS5MYW5ndWFnZT1gbGFuZ3VhZ2VgLGUuQ2hhdENsb3NlPWBjaGF0OmNsb3NlYCxlLkNoYXRPcGVuPWBjaGF0Om9wZW5gLGUuQ2hhdFNob3c9YGNoYXQ6c2hvd2AsZS5DaGF0SGlkZT1gY2hhdDpoaWRlYCxlLlRoZW1lQ29sb3I9YHRoZW1lOmNvbG9yYCxlLkNoYXRNZXNzYWdlPWBjaGF0Om1lc3NhZ2VgLGUuQ2hhdFNlbmQ9YGNoYXQ6c2VuZGAsZS5IdG1sQXBwbHk9YGh0bWw6YXBwbHlgLGUuT249YG9uYCxlLkFuYWx5dGljc0NvbnNlbnQ9YGFuYWx5dGljc0NvbnNlbnRgLGUuTWFya2V0aW5nQ29uc2VudD1gbWFya2V0aW5nQ29uc2VudGAsZS5PcGVuUmF0ZUZvcm09YG9wZW5SYXRlRm9ybWAsZS5PcGVuQXV0aEZvcm09YG9wZW5BdXRoRm9ybWAsZS5XaWRnZXRTdGF0dXM9YHdpZGdldFN0YXR1c2AsZS5UcmFuc2xhdGlvbnM9YHRyYW5zbGF0aW9uc2AsZS5BdXRoRm9ybUZpZWxkcz1gYXV0aEZvcm1GaWVsZHNgLGUuQnV0dG9uU3R5bGU9YGJ1dHRvblN0eWxlYCxlLkhlYWRlclN0eWxlPWBoZWFkZXJTdHlsZWAsZS5QcmV2aWV3VHJhbnNsYXRlPWBwcmV2aWV3VHJhbnNsYXRlYCxlLkRpc2FibGVDb25uZWN0aW9uU3RhdHVzPWBkaXNhYmxlQ29ubmVjdGlvblN0YXR1c2AsZS5SZWxvYWRXaXRoTW9ja0RhdGE9YHJlbG9hZFdpdGhNb2NrRGF0YWAsZS5SZWxvYWQ9YHJlbG9hZGAsZS5Cb3RJZGVudGl0eVVwZGF0ZT1gYm90SWRlbnRpdHk6dXBkYXRlYCxlfSh7fSksWXk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuTWVzc2FnZVNlbnQ9YG1lc3NhZ2Vfc2VudGAsZS5NZXNzYWdlUmVjZWl2ZWQ9YG1lc3NhZ2VfcmVjZWl2ZWRgLGUuTWVzc2VuZ2VyQ2xvc2U9YG1lc3Nlbmdlcl9jbG9zZWAsZS5XaWRnZXRJbml0PWB3aWRnZXRfaW5pdGAsZX0oe30pLFh5PWU9Pnt6Lm9uKGBtZXNzYWdlU2VudGAsZSl9LFp5PWU9Pnt6Lm9uKGBtZXNzYWdlUmVjZWl2ZWRgLGUpfSxReT1lPT57ei5vbihgbWVzc2VuZ2VyQ2xvc2VgLGUpfSwkeT1lPT57ei5vbihgd2lkZ2V0SW5pdGAsZSl9LGViPXtbWXkuTWVzc2FnZVNlbnRdOlh5LFtZeS5NZXNzYWdlUmVjZWl2ZWRdOlp5LFtZeS5NZXNzZW5nZXJDbG9zZV06UXksW1l5LldpZGdldEluaXRdOiR5fSx0Yj0oZSx0KT0+e2xldCBuPWViW2VdO24mJm4odCl9LG5iPWBodHRwczovL2RvY3Muc21hcnRzdXBwLmNvbS9jaGF0LWJveC9gLHJiPWAke25ifWxvY2FsaXphdGlvbi8jc3VwcG9ydGVkLWxhbmd1YWdlc2AsaWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLXZpc2l0b3ItZGF0YWAsYWI9YCR7bmJ9dmlzaXRvci1pZGVudGlmaWNhdGlvbi8jY3VzdG9tLWNvbnRhY3QtZGF0YWAsb2I9YCR7bmJ9amF2YXNjcmlwdC1hcGkvZXZlbnRzL2Asc2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vaGVscC9jb29raWUtY29uc2VudC8jd2hlcmUtdG8tZW5hYmxlLWNvb2tpZS1jb25zZW50LWluLXNtYXJ0c3VwcGAsY2I9YGh0dHBzOi8vd3d3LnNtYXJ0c3VwcC5jb20vcHJpY2luZ2AsbGI9Tyh7fSksdWI9KGUsdCk9PntsYi51cGRhdGUobj0+KHsuLi5uLFtlXTp0fSkpfSxkYj1lPT5PYmplY3QudmFsdWVzKCQpLnNvbWUodD0+dD09PWUpLGZiPShlLHQpPT5MdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgc3RyaW5nLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLHBiPShlLHQpPT5QdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgYm9vbGVhbi4gU2VlICR7bmJ9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKSxtYj0oZSx0KT0+dHlwZW9mIHQ9PWBmdW5jdGlvbmA/ITA6KEgoYFBhcmFtZXRlciBvZiAnJHtlfScgQVBJIGNvbW1hbmQgbXVzdCBiZSB0eXBlIGZ1bmN0aW9uLiBTZWUgJHtuYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGhiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHtpYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLGdiPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LiBTZWUgJHthYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCksITEpLF9iPShlLHQpPT5JdSh0KT8hMDooSChgUGFyYW1ldGVyIG9mICcke2V9JyBBUEkgY29tbWFuZCBtdXN0IGJlIHR5cGUgb2JqZWN0LmApLCExKSx2Yj0oZSx0KT0+IUl1KHQpfHwhKGBpZGBpbiB0KXx8IUx1KHQuaWQpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgYmUgdHlwZSBvYmplY3QgYW5kIGhhcyBhIHZhbGlkICdpZCcgcHJvcGVydHkuYCksITEpOmBuYW1lYGluIHQmJiFMdSh0Lm5hbWUpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICduYW1lJyBwcm9wZXJ0eS5gKSwhMSk6YGF2YXRhclVybGBpbiB0JiYhTHUodC5hdmF0YXJVcmwpPyhIKGBQYXJhbWV0ZXIgb2YgJyR7ZX0nIEFQSSBjb21tYW5kIG11c3QgaGF2ZSBhIHZhbGlkICdhdmF0YXJVcmwnIHByb3BlcnR5LmApLCExKTohMCx5Yj0oZSx0KT0+e2xldCBuPU9iamVjdC52YWx1ZXMoWXkpO3JldHVybiBuLmluY2x1ZGVzKHQpPyEwOihIKGBVbmtub3duIGV2ZW50OiAnJHt0fScuIEF2YWlsYWJsZSBldmVudCBuYW1lcyBhcmU6ICR7bi5qb2luKGAsIGApfS4gU2VlICR7b2J9IGZvciBtb3JlIGluZm9ybWF0aW9uLmApLCExKX0sYmI9ZT0+e0goYFVua25vd24gQVBJIGNvbW1hbmQ6ICcke2V9Jy4gU2VlICR7bmJ9IHRvIGNoZWNrIGF2YWlsYWJsZSBBUEkgY29tbWFuZHMuYCl9LHhiPSgpPT4hIVYuZ2V0T3B0aW9ucygpLmZlYXR1cmVzPy5hcGksU2I9KCk9PiEhVi5nZXRPcHRpb25zKCkuZmVhdHVyZXM/Lmdyb3VwcyxDYj0oKT0+Vi5nZXRPcHRpb25zKCkuaXNQcmV2aWV3TW9kZSx3Yj0oKT0+IXhiKCkmJiFDYigpPyhIKGBDaGF0IGJveCBBUEkgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxUYj0oKT0+IXhiKCl8fCFTYigpPyhIKGBDaGF0IGJveCBHcm91cHMgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC4gU2VlICR7Y2J9IHRvIHVwZ3JhZGUgeW91ciBwYWNrYWdlLmApLCExKTohMCxFYj0oKT0+e0hvKCl8fEgoYEVuYWJsZSBtYW5hZ2luZyBjb29raWUgY29uc2VudCBpbiB3aWRnZXQgc2V0dGluZ3MgdG8gYWxsb3cgdGhpcyBjb21tYW5kLiBTZWUgJHtzYn0gZm9yIG1vcmUgaW5mb3JtYXRpb24uYCl9LERiPSgpPT57bGV0IGU9KCk9PntVXyghMCksSV8oKX07aWYoIUEoQ18pKXtYbC5wdXNoKGUpO3JldHVybn1lKCl9LE9iPSgpPT57aWYod2IoKSl7aWYoIUEoQ18pKXtYbC5wdXNoKFdfKTtyZXR1cm59V18oKX19LGtiPSgpPT57d2IoKSYmSV8oKX0sQWI9KCk9Pnt3YigpJiZMXygpfSxqYj0oZSx0KT0+e2lmKHdiKCkmJmU9PT0kLkxhbmd1YWdlJiZmYihlLHQpKXtpZighSWwodCkpe0goYFByb3ZpZGVkIGxhbmd1YWdlICcke3R9JyBpcyBub3Qgc3VwcG9ydGVkLiBTZWUgJHtyYn0gdG8gY2hlY2sgc3VwcG9ydGVkIGxhbmd1YWdlcy5gKTtyZXR1cm59aWYoIUEoQ18pKXt1YihgbGFuZ2AsdCk7cmV0dXJufUdsKHQpfX0sTWI9KGUsdCk9PntsZXQgbixyPW51bGwsaT0hMDtpZih3YigpKXtpZih0eXBlb2YgdD09YHN0cmluZ2AmJmZiKGUsdCkpbj10O2Vsc2UgaWYoaGIoZSx0KSl7aWYobj10LmNvbG9yLHI9dC5jb2xvcjIsaT10LmNvbG9yR3JhZGllbnQsIXBiKGUsaSkpcmV0dXJufWVsc2UgcmV0dXJuO2lmKCFZdihuKSl7SChgUHJvdmlkZWQgY29sb3IgJyR7bn0nIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHVzZSBoZXggY29sb3IgY29kZS5gKTtyZXR1cm59ZWxzZSBpZihpJiZyJiYhWXYocikpe0goYFByb3ZpZGVkIGNvbG9yICcke3J9JyBpcyBub3QgdmFsaWQuIERlZmF1bHQgY29sb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuYCk7cmV0dXJufW95LnNldFRoZW1lQ29sb3Ioe2NvbG9yOm4sY29sb3IyOnIsY29sb3JHcmFkaWVudDppfSl9fSxOYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJm9fKHQpfSxQYj0oZSx0KT0+e3diKCkmJmZiKGUsdCkmJihvXyh0KSxkXygpKX0sRmI9KGUsdCxuKT0+e2ZiKGUsdCkmJnliKGUsdCkmJm1iKGUsbikmJnRiKHQsbil9LEliPShlLHQpPT57aGIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclZhcmlhYmxlcyh6dSh0KSl9LExiPShlLHQpPT57ZSE9PSQuTmFtZSYmZSE9PSQuRW1haWwmJmUhPT0kLlBob25lJiZlIT09JC5Hcm91cHx8ZmIoZSx0KSYmTXUudXBkYXRlVmlzaXRvclByb3BlcnR5KGUsdCl9LFJiPShlLHQpPT57aWYoIVRiKCl8fCFmYihlLHQpKXJldHVybjtsZXQgbj1BKGlsKVt0XTtpZihBKENfKSYmIW4pe0goYEdyb3VwIHdpdGgga2V5ICcke3R9JyBkb2VzIG5vdCBleGlzdC4gUGxlYXNlIHByb3ZpZGUgY29ycmVjdCBncm91cCBrZXkgZnJvbSB5b3VyIGdyb3VwIHNldHRpbmdzLmApO3JldHVybn1MYihlLHQpfSx6Yj0oZSx0KT0+e2diKGUsdCkmJk11LnVwZGF0ZVZpc2l0b3JDb250YWN0RGF0YSh0KX0sQmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYGFuYWx5dGljc0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sVmI9KGUsdCk9PntwYihlLHQpJiYoRWIoKSx6LmVtaXQoYG1hcmtldGluZ0NvbnNlbnRDaGFuZ2VkYCwhIXQpKX0sSGI9KCk9PntZcChBKEJwKXx8YGApfSxVYj0oKT0+e0JjKEhjLkF1dGhGb3JtKX0sV2I9KGUsdCk9PntmYihlLHQpJiYodCE9PUsuQWNjb3VudFN0YXR1cy5PbmxpbmUmJnQhPT1LLkFjY291bnRTdGF0dXMuT2ZmbGluZXx8JHUuc2V0KHQpKX0sR2I9KGUsdCk9PntoYihlLHQpJiZxbCh0KX0sS2I9KGUsdCk9PntoYihlLHQpJiYoQShWaCl8fFZoLnNldChWLmdldE9wdGlvbnMoKSksVmgudXBkYXRlKGU9Pih7Li4uZSwuLi50fSkpKX0scWI9KGUsdCk9PntmYihlLHQpJiZCeS5zZXQodCl9LEpiPShlLHQpPT57aWYoZT09PSQuSGVhZGVyU3R5bGUmJmZiKGUsdCkpe2lmKHQhPT1gY29tcGFjdGAmJnQhPT1gc3RhbmRhcmRgKXtIKGBQcm92aWRlZCBoZWFkZXIgc3R5bGUgJyR7dH0nIGlzIG5vdCB2YWxpZC4gVXNlICdjb21wYWN0JyBvciAnc3RhbmRhcmQnLmApO3JldHVybn1VeS5zZXQodCl9fSxZYj0oKT0+e2xldCBlPSgpPT57fTtlPUhsLnN1YnNjcmliZSgoKT0+e0EoUnApLmZvckVhY2goZT0+e2xldCB0PWUuY29udGVudD8uZGF0YXx8YGA7dHlwZW9mIHQ9PWBzdHJpbmdgJiZ0Lm1hdGNoKC93aWRnZXRQcmV2aWV3XC4uKi8pJiYoZS5jb250ZW50LnRleHQ9QShXKSh0KSxKLnJlcGxhY2VNZXNzYWdlKGUpKX0pLGUoKX0pfSxYYj0oZSx0KT0+e3BiKGUsdCkmJklnLnNldCh0KX0sWmI9KGUsdCk9PntfYihlLHQpJiZxLnJlbG9hZENsaWVudCh0KX0sUWI9KGUsdCk9PntwYihlLHQpJiZxLnJlbG9hZENsaWVudCh2b2lkIDAsdCl9LCRiPShlLHQpPT57aWYoIXZiKGUsdCkpcmV0dXJuO2xldHtpZDpuLC4uLnJ9PXQ7JGwudXBkYXRlSWRlbnRpdHkobixyKX0sZXg9e3ZlcnNpb246YGMwNmQ0NWMzM2UwOTk4ZWYyZDMwNDYyZmI1Nzg3OTYzM2MxZGY1Y2FgLGV4ZWN1dGU6ZT0+e2xldCB0PWVbMF07aWYodHlwZW9mIHQ9PWBmdW5jdGlvbmApe3J4KHQpO3JldHVybn1pZighZGIodCkpe2JiKFN0cmluZyh0KSk7cmV0dXJufW54KHQsZVsxXSwuLi5lLnNsaWNlKDIpKX0sZXhlYzpmdW5jdGlvbiguLi5lKXt0aGlzLmV4ZWN1dGUoZSl9fSx0eD17WyQuQ2hhdE9wZW5dOkRiLFskLkNoYXRDbG9zZV06T2IsWyQuQ2hhdFNob3ddOmtiLFskLkNoYXRIaWRlXTpBYixbJC5DaGF0TWVzc2FnZV06TmIsWyQuQ2hhdFNlbmRdOlBiLFskLkxhbmd1YWdlXTpqYixbJC5UaGVtZUNvbG9yXTpNYixbJC5IZWFkZXJTdHlsZV06SmIsWyQuT25dOkZiLFskLlZhcmlhYmxlc106SWIsWyQuQ29udGFjdERhdGFdOnpiLFskLk5hbWVdOkxiLFskLkdyb3VwXTpSYixbJC5FbWFpbF06TGIsWyQuUGhvbmVdOkxiLFskLkFuYWx5dGljc0NvbnNlbnRdOkJiLFskLk1hcmtldGluZ0NvbnNlbnRdOlZiLFskLkh0bWxBcHBseV06bnVsbCxbJC5PcGVuUmF0ZUZvcm1dOkhiLFskLk9wZW5BdXRoRm9ybV06VWIsWyQuV2lkZ2V0U3RhdHVzXTpXYixbJC5UcmFuc2xhdGlvbnNdOkdiLFskLkF1dGhGb3JtRmllbGRzXTpLYixbJC5CdXR0b25TdHlsZV06cWIsWyQuUHJldmlld1RyYW5zbGF0ZV06WWIsWyQuRGlzYWJsZUNvbm5lY3Rpb25TdGF0dXNdOlhiLFskLlJlbG9hZFdpdGhNb2NrRGF0YV06WmIsWyQuUmVsb2FkXTpRYixbJC5Cb3RJZGVudGl0eVVwZGF0ZV06JGJ9LG54PShlLHQsLi4ubik9PntsZXQgcj10eFtlXTtpZihyPT09dm9pZCAwKXtiYihlKTtyZXR1cm59ciE9PW51bGwmJihyKGUsdCwuLi5uKSx2byhg8J+nmeKAjeKZgu+4j1tBUEldICR7ZX0ke3Q/YDpgOmBgfWAsdD8/YGApKX0scng9ZT0+e0EoQ18pP2UoKTpYbC5wdXNoKGUpfTt0eXBlb2Ygd2luZG93PGB1YCYmKCh3aW5kb3cuX19zdmVsdGU/Pz17fSkudj8/PW5ldyBTZXQpLmFkZChgNWApO3ZhciBpeD1lPT5lO2Z1bmN0aW9uIGF4KGUpe2xldCB0PWUtMTtyZXR1cm4gdCp0KnQrMX1mdW5jdGlvbiBveChlKXtsZXQgdD10eXBlb2YgZT09YHN0cmluZ2AmJmUubWF0Y2goL15ccyooLT9bXGQuXSspKFteXHNdKilccyokLyk7cmV0dXJuIHQ/W3BhcnNlRmxvYXQodFsxXSksdFsyXXx8YHB4YF06W2UsYHB4YF19ZnVuY3Rpb24gc3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWl4fT17fSl7bGV0IGk9K2dldENvbXB1dGVkU3R5bGUoZSkub3BhY2l0eTtyZXR1cm57ZGVsYXk6dCxkdXJhdGlvbjpuLGVhc2luZzpyLGNzczplPT5gb3BhY2l0eTogJHtlKml9YH19ZnVuY3Rpb24gY3goZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHg6aT0wLHk6YT0wLG9wYWNpdHk6bz0wfT17fSl7bGV0IHM9Z2V0Q29tcHV0ZWRTdHlsZShlKSxjPStzLm9wYWNpdHksbD1zLnRyYW5zZm9ybT09PWBub25lYD9gYDpzLnRyYW5zZm9ybSx1PWMqKDEtbyksW2QsZl09b3goaSksW3AsbV09b3goYSk7cmV0dXJue2RlbGF5OnQsZHVyYXRpb246bixlYXNpbmc6cixjc3M6KGUsdCk9PmAKCQkJdHJhbnNmb3JtOiAke2x9IHRyYW5zbGF0ZSgkeygxLWUpKmR9JHtmfSwgJHsoMS1lKSpwfSR7bX0pOwoJCQlvcGFjaXR5OiAke2MtdSp0fWB9fWZ1bmN0aW9uIGx4KGUse2RlbGF5OnQ9MCxkdXJhdGlvbjpuPTQwMCxlYXNpbmc6cj1heCxheGlzOmk9YHlgfT17fSl7bGV0IGE9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPSthLm9wYWNpdHkscz1pPT09YHlgP2BoZWlnaHRgOmB3aWR0aGAsYz1wYXJzZUZsb2F0KGFbc10pLGw9aT09PWB5YD9bYHRvcGAsYGJvdHRvbWBdOltgbGVmdGAsYHJpZ2h0YF0sdT1sLm1hcChlPT5gJHtlWzBdLnRvVXBwZXJDYXNlKCl9JHtlLnNsaWNlKDEpfWApLGQ9cGFyc2VGbG9hdChhW2BwYWRkaW5nJHt1WzBdfWBdKSxmPXBhcnNlRmxvYXQoYVtgcGFkZGluZyR7dVsxXX1gXSkscD1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVswXX1gXSksbT1wYXJzZUZsb2F0KGFbYG1hcmdpbiR7dVsxXX1gXSksaD1wYXJzZUZsb2F0KGFbYGJvcmRlciR7dVswXX1XaWR0aGBdKSxnPXBhcnNlRmxvYXQoYVtgYm9yZGVyJHt1WzFdfVdpZHRoYF0pO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOmU9PmBvdmVyZmxvdzogaGlkZGVuO29wYWNpdHk6ICR7TWF0aC5taW4oZSoyMCwxKSpvfTske3N9OiAke2UqY31weDtwYWRkaW5nLSR7bFswXX06ICR7ZSpkfXB4O3BhZGRpbmctJHtsWzFdfTogJHtlKmZ9cHg7bWFyZ2luLSR7bFswXX06ICR7ZSpwfXB4O21hcmdpbi0ke2xbMV19OiAke2UqbX1weDtib3JkZXItJHtsWzBdfS13aWR0aDogJHtlKmh9cHg7Ym9yZGVyLSR7bFsxXX0td2lkdGg6ICR7ZSpnfXB4O21pbi0ke3N9OiAwYH19ZnVuY3Rpb24gdXgoZSx7ZGVsYXk6dD0wLGR1cmF0aW9uOm49NDAwLGVhc2luZzpyPWF4LHN0YXJ0Omk9MCxvcGFjaXR5OmE9MH09e30pe2xldCBvPWdldENvbXB1dGVkU3R5bGUoZSkscz0rby5vcGFjaXR5LGM9by50cmFuc2Zvcm09PT1gbm9uZWA/YGA6by50cmFuc2Zvcm0sbD0xLWksdT1zKigxLWEpO3JldHVybntkZWxheTp0LGR1cmF0aW9uOm4sZWFzaW5nOnIsY3NzOihlLHQpPT5gCgkJCXRyYW5zZm9ybTogJHtjfSBzY2FsZSgkezEtbCp0fSk7CgkJCW9wYWNpdHk6ICR7cy11KnR9CgkJYH19YXQoKTt2YXIgZHg9d2koYDxkaXY+PC9kaXY+YCk7ZnVuY3Rpb24gZngoZSx0KXtsdCh0LCEwKTtsZXQgbj1vbyh0LGBoZWlnaHRgLDMsMjApLHI9b28odCxgd2lkdGhgLDMsYDEwMCVgKSxpPW9vKHQsYGNvbG9yU2NoZW1lYCwzLGBncmF5YCksYT1vbyh0LGByb3VuZGVkU3R5bGVgLDMsYHJvdW5kZWQtZnVsbGApLG89Zm4oKCk9PmAke2EoKX0gYW5pbWF0ZS1wdWxzZWApO3ZhciBzPWR4KCk7bGV0IGM7cHIoZT0+e2JhKHMsMSxtYShbUihvKSxpKCk9PT1gZ3JheWAmJmBiZy1ncmF5LTIwMGAsaSgpPT09YGRhcmtHcmF5YCYmYGJnLWdyYXktMzAwYF0pKSxjPVNhKHMsYGAsYyxlKX0sWygpPT4oe2hlaWdodDpteShuKCkpLHdpZHRoOkZ1KHIoKSk/bXkocigpKTpyKCl9KV0pLGtpKGUscyksdXQoKX1mdW5jdGlvbiBweChlLHQpe2xldCBuPW9vKHQsYHNpemVgLDMsMjApO2Z4KGUse2NvbG9yU2NoZW1lOmBkYXJrR3JheWAsZ2V0IHdpZHRoKCl7cmV0dXJuIG4oKX0sZ2V0IGhlaWdodCgpe3JldHVybiBuKCl9fSl9dmFyIG14PUVpKGA8c3ZnPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE4IDZMNiAxOE02IDZsMTIgMTIiPjwvcGF0aD48L3N2Zz5gKTtmdW5jdGlvbiBoeChlLHQpe2xldCBuPXJvKHQsW2AkJHNsb3RzYCxgJCRldmVudHNgLGAkJGxlZ2FjeWBdKTt2YXIgcj1teCgpO1ZhKHIsKCk9Pih7dmlld0JveDpgMCAwIDI0IDI0YCx3aWR0aDpgMS4yZW1gLGhlaWdodDpgMS4yZW1gLC4uLm59KSksa2koZSxyKX12YXIgZ3g9d2koYDxidXR0b24gdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdj48IT48L2Rpdj48L2J1dHRvbj5gKTtmdW5jdGlvbiBfeChlLHQpe2x0KHQsITApO2xldCBuPW9vKHQsYGljb25PcmllbnRhdGlvbmAsMyxgcmlnaHRgKSxyPW9vKHQsYGljb25BbmltYXRpb25gLDMsYG5vbmVgKSxpPW9vKHQsYGljb25TY2FsZWAsMywhMSksYT1vbyh0LGBzaXplYCwzLGBtZGApLG89b28odCxgdmFyaWFudGAsMyxgZ2hvc3RgKSxzPW9vKHQsYGZvY3VzYCwzLGBwcmltYXJ5YCksYz1mbigoKT0+bigpPT09YHJpZ2h0YD8xOi0xKSxsPWZuKCgpPT5pKCk/MS40OjEuMiksdT1mbigoKT0+dC5pY29uKSxkPWU9PntlLnN0b3BQcm9wYWdhdGlvbigpLHQub25DbGljayYmdC5vbkNsaWNrKGUpfTt2YXIgZj1neCgpLHA9Vm4oZik7JGkoVm4ocCksKCk9PlIodSksKGUsdCk9Pnt0KGUse3dpZHRoOmAxZW1gLGhlaWdodDpgMWVtYH0pfSksWGUocCksWGUoZikscHIoZT0+e2JhKGYsMSxlLGBzdmVsdGUteXdvZm1sYCksZi5kaXNhYmxlZD10LmRpc2FibGVkLHphKGYsYGRhdGEtdGVzdGlkYCx0LnRlc3RJZCksemEoZixgYXJpYS1sYWJlbGAsdC5pY29uRGVzY3JpcHRpb24pLHphKGYsYGFyaWEtZGlzYWJsZWRgLHQuZGlzYWJsZWQpLGJhKHAsMSxtYShbYHctZnVsbCBoLWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJgLHIoKT09PWBzcGluYCYmYGFuaW1hdGUtc3BpbmBdKSksU2EocCxgdHJhbnNmb3JtOiBzY2FsZSgke1IobCl9KSBzY2FsZVgoJHtSKGMpfSk7YCl9LFsoKT0+bWEoW2BidG4gYnRuLSR7bygpfSBidG4tJHthKCl9YCwhIXQuZGlzYWJsZWQmJmBidG4tZGlzYWJsZWRgLGlzKCk/YGN1cnNvci1hdXRvYDpgY3Vyc29yLXBvaW50ZXJgLHMoKT09PWBwcmltYXJ5YCYmYGJ1dHRvbi1mb2N1c2AscygpPT09YHNlY29uZGFyeWAmJmBidXR0b24tZm9jdXMtc2Vjb25kYXJ5YF0pXSksZ2koYGNsaWNrYCxmLGQpLGtpKGUsZiksdXQoKX1faShbYGNsaWNrYF0pO2V4cG9ydHtkXyBhcyAkLGp0IGFzICRpLFNsIGFzICRuLGFvIGFzICRyLCRmIGFzICR0LCRfIGFzIEEsZ2kgYXMgQWksc2QgYXMgQW4sc3MgYXMgQXIsVGggYXMgQXQsS18gYXMgQixWbiBhcyBCaSxVdSBhcyBCbixqbyBhcyBCcixIcCBhcyBCdCxGeSBhcyBDLElpIGFzIENpLF9kIGFzIENuLGJzIGFzIENyLHpoIGFzIEN0LG95IGFzIEQsRWkgYXMgRGksbmQgYXMgRG4sX3MgYXMgRHIsTWggYXMgRHQsbXkgYXMgRSx3aSBhcyBFaSxlZCBhcyBFbixocyBhcyBFcixGaCBhcyBFdCxKXyBhcyBGLCRyIGFzIEZpLEt1IGFzIEZuLHpvIGFzIEZyLFpwIGFzIEZ0LE9fIGFzIEcsVG4gYXMgR2ksJGwgYXMgR24scG8gYXMgR3IsenAgYXMgR3QsTl8gYXMgSCxVbiBhcyBIaSxMdSBhcyBIbix5byBhcyBIcixNcCBhcyBIdCxYIGFzIEkscHIgYXMgSWksWXUgYXMgSW4sVm8gYXMgSXIsWXAgYXMgSXQsbV8gYXMgSixwbiBhcyBKaSxIbCBhcyBKbix6IGFzIEpyLFJwIGFzIEp0LGdfIGFzIEssQ24gYXMgS2ksWWwgYXMgS24sQiBhcyBLcixKIGFzIEt0LEdfIGFzIEwsb3IgYXMgTGkscXUgYXMgTG4sQm8gYXMgTHIsWHAgYXMgTHQscnYgYXMgTSxwaSBhcyBNaSxpZCBhcyBNbixhcyBhcyBNcixFaCBhcyBNdCxZXyBhcyBOLFIgYXMgTmksWnUgYXMgTm4saXMgYXMgTnIsaWggYXMgTnQsYXkgYXMgTyxEaSBhcyBPaSxsZCBhcyBPbixscyBhcyBPcixraCBhcyBPdCxXXyBhcyBQLFhyIGFzIFBpLEd1IGFzIFBuLEpvIGFzIFByLGFtIGFzIFB0LGlfIGFzIFEsUHQgYXMgUWksd2wgYXMgUW4scm8gYXMgUXIsT3AgYXMgUXQsVV8gYXMgUixjciBhcyBSaSxXdSBhcyBSbixVIGFzIFJyLFdwIGFzIFJ0LFB5IGFzIFMsamkgYXMgU2ksZ2QgYXMgU24seXMgYXMgU3IsYWcgYXMgU3QsZ3kgYXMgVCxPaSBhcyBUaSx1ZCBhcyBUbixmcyBhcyBUcixJaCBhcyBUdCxqXyBhcyBVLGpuIGFzIFVpLE11IGFzIFVuLFYgYXMgVXIsQnAgYXMgVXQsTV8gYXMgVixIbiBhcyBWaSxWdSBhcyBWbixIIGFzIFZyLFZwIGFzIFZ0LERfIGFzIFcsd24gYXMgV2kscSBhcyBXbix2byBhcyBXcixGcCBhcyBXdCxzXyBhcyBYLE10IGFzIFhpLFJsIGFzIFhuLHNvIGFzIFhyLElwIGFzIFh0LHBfIGFzIFksZm4gYXMgWWksVyBhcyBZbixjbyBhcyBZcixQcCBhcyBZdCxhXyBhcyBaLEF0IGFzIFppLENsIGFzIFpuLG9vIGFzIFpyLGtwIGFzIFp0LFJ5IGFzIF8sR2kgYXMgX2ksVGQgYXMgX24sTmMgYXMgX3IsdWcgYXMgX3Qsc3ggYXMgYSxsdCBhcyBhYSxWYSBhcyBhaSxCZiBhcyBhbixsbCBhcyBhcixVZyBhcyBhdCxOeSBhcyBiLFJpIGFzIGJpLHlkIGFzIGJuLENzIGFzIGJyLGlnIGFzIGJ0LGx4IGFzIGMsWGUgYXMgY2EsVGEgYXMgY2ksU2YgYXMgY24sUWMgYXMgY3IsVmcgYXMgY3QsSHkgYXMgZCxtYSBhcyBkaSxHZCBhcyBkbixXYyBhcyBkcixOZyBhcyBkdCxrIGFzIGVhLGVvIGFzIGVpLGVwIGFzIGVuLGJsIGFzIGVyLG9fIGFzIGV0LHp5IGFzIGYsdWEgYXMgZmksVmQgYXMgZm4sR2MgYXMgZnIsT2cgYXMgZnQsR3kgYXMgZyxaaSBhcyBnaSx3ZCBhcyBnbixCYyBhcyBncix5ZyBhcyBndCxWeSBhcyBoLFFpIGFzIGhpLEVkIGFzIGhuLHpjIGFzIGhyLFRnIGFzIGh0LGZ4IGFzIGksdXQgYXMgaWEscWEgYXMgaWksRmYgYXMgaW4sc2wgYXMgaXIsdF8gYXMgaXQsaXYgYXMgaixoaSBhcyBqaSxmZCBhcyBqbix1cyBhcyBqcixEaCBhcyBqdCxldiBhcyBrLF9pIGFzIGtpLGNkIGFzIGtuLGNzIGFzIGtyLE9oIGFzIGt0LGV4IGFzIGwseCBhcyBsYSxTYSBhcyBsaSxiZiBhcyBsbixVYyBhcyBscixMZyBhcyBsdCxxeSBhcyBtLCRpIGFzIG1pLHpkIGFzIG1uLFZjIGFzIG1yLERnIGFzIG10LGh4IGFzIG4sTyBhcyBuYSxZYSBhcyBuaSxxZiBhcyBubix1bCBhcyBucixjXyBhcyBudCxjeCBhcyBvLGN0IGFzIG9hLHphIGFzIG9pLHpmIGFzIG9uLG9sIGFzIG9yLEhnIGFzIG90LFd5IGFzIHAsY2EgYXMgcGksSGQgYXMgcG4sSGMgYXMgcHIsRWcgYXMgcHQsaF8gYXMgcSxPbiBhcyBxaSxLbCBhcyBxbixtbyBhcyBxcixOcCBhcyBxdCxweCBhcyByLHN0IGFzIHJhLEphIGFzIHJpLFVmIGFzIHJuLGNsIGFzIHJyLGxfIGFzIHJ0LHV4IGFzIHMsWmUgYXMgc2EsTGEgYXMgc2ksRGYgYXMgc24sbmwgYXMgc3IsQmcgYXMgc3QsX3ggYXMgdCxBIGFzIHRhLCRhIGFzIHRpLFRwIGFzIHRuLGRsIGFzIHRyLHJfIGFzIHR0LEx5IGFzIHUsdSBhcyB1YSxiYSBhcyB1aSxSZCBhcyB1bixLYyBhcyB1cixGZyBhcyB1dCxKeSBhcyB2LFZpIGFzIHZpLFNkIGFzIHZuLFBjIGFzIHZyLHJnIGFzIHZ0LER5IGFzIHcsa2kgYXMgd2ksJHUgYXMgd24sZ3MgYXMgd3IsTGggYXMgd3QsSXkgYXMgeCxNaSBhcyB4aSx4ZCBhcyB4bix4cyBhcyB4cixvZyBhcyB4dCxNeSBhcyB5LEJpIGFzIHlpLGJkIGFzIHluLE1jIGFzIHlyLFZoIGFzIHl0LFZfIGFzIHosWG4gYXMgemksSHUgYXMgem4sTG8gYXMgenIsVXAgYXMgenR9OwovLyMgc291cmNlTWFwcGluZ1VSTD1zaGFyZWQtQ2dNQ0Fmb3IuanMubWFw"}},"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":"widget-v3.smartsuppcdn.com/assets/style-CliJwUTR.css","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:17:02.978Z","timestamp":1785129422978,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /assets/style-CliJwUTR.css HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: style\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=2\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:17:02 GMT\r\ncontent-type: text/css\r\naccess-control-allow-origin: *\r\ncache-control: max-age=31536000, public, immutable\r\netag: W/\"6a4cb803-8d68\"\r\nexpires: Wed, 07 Jul 2027 08:30:01 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: kziWch4nVn2CahUj40BDPOj9j5u5rU3LAalMv1shG5hGkPay0jOueT+kMSrj3sHqMtzTFQc\r\nx-77-nzt-ray: e2f754206215f709cee9666a950e763a\r\nx-77-cache: HIT\r\nx-77-age: 1716380\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":36200,"size_decoded":8208,"mime_type":"text/css","magic":"ASCII text, with very long lines (36187)","md5":"840dfdb09fc1a11a5c3a5b5f808e3160","sha1":"46140a50b100fa33b974027c13bb9f2de5c784b7","sha256":"b5b9a339413a55a0d828ab6be236e2a495594a19fb3283f846c607d7b6996ad7","sha512":"61e37700ee60ed584c8ae7b6313c5dddf6950c9664aa57f32bb4a70d775b1a1d5bfc249c6c1238495ef2cb7e12bae5f00c4ddb3df4dde44a01081117b74e2ba2","ssdeep":"384:F8fY2l091g7Tc6/WYtGLadKzSVX8Kj6+eZcrNSN56qB56YR9evZLLq51vZLLq5G:F8wM091gTcCWYtG4XqcrNSN56DwQ43","tlshash":"05f2966daad9093dac23c179e3f8e58c911af5d5df3226daf74239008ac17ff0986514","first_seen":"2026-07-07T11:50:17.712499Z","last_seen":"2026-07-29T06:17:50.057674Z","times_seen":2912,"resource_available":false,"data":"LmJ0bi5zdmVsdGUteXdvZm1se2JvcmRlci1yYWRpdXM6OTk5OXB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6LjI1cmVtO2ZvbnQtc2l6ZToxLjEyNXJlbTtsaW5lLWhlaWdodDoxLjc1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmlubGluZS1mbGV4fS5idG4tcHJpbWFyeS5zdmVsdGUteXdvZm1se2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1wcmltYXJ5LnN2ZWx0ZS15d29mbWw6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tZ2hvc3Quc3ZlbHRlLXl3b2ZtbDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6LjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYnRuLXN1Y2Nlc3Muc3ZlbHRlLXl3b2ZtbHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiAxODUgMTI5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5idG4tc3VjY2Vzcy5zdmVsdGUteXdvZm1sOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDUgMTUwIDEwNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5idG4tc20uc3ZlbHRlLXl3b2ZtbHt3aWR0aDoxLjVyZW07aGVpZ2h0OjEuNXJlbX0uYnRuLW1kLnN2ZWx0ZS15d29mbWx7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbX0uYnRuLWxnLnN2ZWx0ZS15d29mbWx7d2lkdGg6Mi43NXJlbTtoZWlnaHQ6Mi43NXJlbX0uYnRuLXhsLnN2ZWx0ZS15d29mbWx7d2lkdGg6M3JlbTtoZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS15d29mbWx7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjJ9LmJ0bi1kaXNhYmxlZC5zdmVsdGUteXdvZm1sOmhvdmVyOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDB9Kiw6YmVmb3JlLDphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDowO2JvcmRlci1jb2xvcjp2YXIoLS11bi1kZWZhdWx0LWJvcmRlci1jb2xvciwjZTVlN2ViKX06YmVmb3JlLDphZnRlcnstLXVuLWNvbnRlbnQ6IiJ9aHRtbCw6aG9zdHstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTt0YWItc2l6ZTo0O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6bm9ybWFsOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDtmb250LWZhbWlseTp1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO2xpbmUtaGVpZ2h0OjEuNX1ib2R5e2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOjB9aHJ7aGVpZ2h0OjA7Y29sb3I6aW5oZXJpdDtib3JkZXItdG9wLXdpZHRoOjFweH1hYmJyOndoZXJlKFt0aXRsZV0pey13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWQ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSBkb3R0ZWR9aDEsaDIsaDMsaDQsaDUsaDZ7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC13ZWlnaHQ6aW5oZXJpdH1he2NvbG9yOmluaGVyaXQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb246aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246aW5oZXJpdH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9Y29kZSxrYmQsc2FtcCxwcmV7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDtmb250LXZhcmlhdGlvbi1zZXR0aW5nczpub3JtYWw7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxMaWJlcmF0aW9uIE1vbm8sQ291cmllciBOZXcsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfXRhYmxle3RleHQtaW5kZW50OjA7Ym9yZGVyLWNvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWJ1dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7Zm9udC1mZWF0dXJlLXNldHRpbmdzOmluaGVyaXQ7Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZToxMDAlO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9YnV0dG9uLFt0eXBlPWJ1dHRvbl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JhY2tncm91bmQtaW1hZ2U6bm9uZX06LW1vei1mb2N1c3Jpbmd7b3V0bGluZTphdXRvfTotbW96LXVpLWludmFsaWR7Ym94LXNoYWRvdzpub25lfXByb2dyZXNze3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b306Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257aGVpZ2h0OmF1dG99W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkO291dGxpbmUtb2Zmc2V0Oi0ycHh9Ojotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lfTo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtmb250OmluaGVyaXR9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbX1ibG9ja3F1b3RlLGRsLGRkLGgxLGgyLGgzLGg0LGg1LGg2LGhyLGZpZ3VyZSxwLHByZXttYXJnaW46MH1maWVsZHNldHttYXJnaW46MDtwYWRkaW5nOjB9bGVnZW5ke3BhZGRpbmc6MH1vbCx1bCxtZW51e21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlOm5vbmV9ZGlhbG9ne3BhZGRpbmc6MH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9aW5wdXQ6OnBsYWNlaG9sZGVyLHRleHRhcmVhOjpwbGFjZWhvbGRlcntvcGFjaXR5OjE7Y29sb3I6IzljYTNhZn1idXR0b24sW3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn06ZGlzYWJsZWR7Y3Vyc29yOmRlZmF1bHR9aW1nLHN2Zyx2aWRlbyxjYW52YXMsYXVkaW8saWZyYW1lLGVtYmVkLG9iamVjdHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZGlzcGxheTpibG9ja31pbWcsdmlkZW97bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99W2hpZGRlbl06d2hlcmUoOm5vdChbaGlkZGVuPXVudGlsLWZvdW5kXSkpe2Rpc3BsYXk6bm9uZX0qLDpiZWZvcmUsOmFmdGVyLDo6YmFja2Ryb3B7LS11bi1yb3RhdGU6MDstLXVuLXJvdGF0ZS14OjA7LS11bi1yb3RhdGUteTowOy0tdW4tcm90YXRlLXo6MDstLXVuLXNjYWxlLXg6MTstLXVuLXNjYWxlLXk6MTstLXVuLXNjYWxlLXo6MTstLXVuLXNrZXcteDowOy0tdW4tc2tldy15OjA7LS11bi10cmFuc2xhdGUteDowOy0tdW4tdHJhbnNsYXRlLXk6MDstLXVuLXRyYW5zbGF0ZS16OjA7LS11bi1wYW4teDogOy0tdW4tcGFuLXk6IDstLXVuLXBpbmNoLXpvb206IDstLXVuLXNjcm9sbC1zbmFwLXN0cmljdG5lc3M6cHJveGltaXR5Oy0tdW4tb3JkaW5hbDogOy0tdW4tc2xhc2hlZC16ZXJvOiA7LS11bi1udW1lcmljLWZpZ3VyZTogOy0tdW4tbnVtZXJpYy1zcGFjaW5nOiA7LS11bi1udW1lcmljLWZyYWN0aW9uOiA7LS11bi1ib3JkZXItc3BhY2luZy14OjA7LS11bi1ib3JkZXItc3BhY2luZy15OjA7LS11bi1yaW5nLW9mZnNldC1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1zaGFkb3c6MCAwICMwMDAwOy0tdW4tc2hhZG93LWluc2V0OiA7LS11bi1zaGFkb3c6MCAwICMwMDAwOy0tdW4tcmluZy1pbnNldDogOy0tdW4tcmluZy1vZmZzZXQtd2lkdGg6MHB4Oy0tdW4tcmluZy1vZmZzZXQtY29sb3I6I2ZmZjstLXVuLXJpbmctd2lkdGg6MHB4Oy0tdW4tcmluZy1jb2xvcjojOTNjNWZkODA7LS11bi1ibHVyOiA7LS11bi1icmlnaHRuZXNzOiA7LS11bi1jb250cmFzdDogOy0tdW4tZHJvcC1zaGFkb3c6IDstLXVuLWdyYXlzY2FsZTogOy0tdW4taHVlLXJvdGF0ZTogOy0tdW4taW52ZXJ0OiA7LS11bi1zYXR1cmF0ZTogOy0tdW4tc2VwaWE6IDstLXVuLWJhY2tkcm9wLWJsdXI6IDstLXVuLWJhY2tkcm9wLWJyaWdodG5lc3M6IDstLXVuLWJhY2tkcm9wLWNvbnRyYXN0OiA7LS11bi1iYWNrZHJvcC1ncmF5c2NhbGU6IDstLXVuLWJhY2tkcm9wLWh1ZS1yb3RhdGU6IDstLXVuLWJhY2tkcm9wLWludmVydDogOy0tdW4tYmFja2Ryb3Atb3BhY2l0eTogOy0tdW4tYmFja2Ryb3Atc2F0dXJhdGU6IDstLXVuLWJhY2tkcm9wLXNlcGlhOiB9LmZsZXgtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0uYnV0dG9uLWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6MXB4O291dGxpbmUtc3R5bGU6c29saWR9LmJ1dHRvbi1mb2N1cy1zZWNvbmRhcnk6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLXdpZHRoOjJweDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktZm9jdXMpIDtvdXRsaW5lLWNvbG9yOnZhcigtLWNvbG9yLXNlY29uZGFyeS1mb2N1cykgO291dGxpbmUtb2Zmc2V0OjFweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzOmZvY3VzLXZpc2libGV7b3V0bGluZS13aWR0aDoycHg7b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5jb250ZW50LWZvY3VzLXNlY29uZGFyeTpmb2N1cy12aXNpYmxle291dGxpbmUtd2lkdGg6MnB4O291dGxpbmUtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1mb2N1cykgO291dGxpbmUtY29sb3I6dmFyKC0tY29sb3Itc2Vjb25kYXJ5LWZvY3VzKSA7b3V0bGluZS1vZmZzZXQ6LTVweDtvdXRsaW5lLXN0eWxlOnNvbGlkfS5cW2NsaXBcOnJlY3RcKDBcLDBcLDBcLDBcKVxde2NsaXA6cmVjdCgwLDAsMCwwKX0uc3Itb25seXtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlci13aWR0aDowO3dpZHRoOjFweDtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O3BhZGRpbmc6MDtwb3NpdGlvbjphYnNvbHV0ZTtvdmVyZmxvdzpoaWRkZW59LnBvaW50ZXItZXZlbnRzLWF1dG97cG9pbnRlci1ldmVudHM6YXV0b30ucG9pbnRlci1ldmVudHMtbm9uZXtwb2ludGVyLWV2ZW50czpub25lfS5hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0uZml4ZWR7cG9zaXRpb246Zml4ZWR9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5zdGlja3l7cG9zaXRpb246c3RpY2t5fS4tYm90dG9tLTRcLjV7Ym90dG9tOi0xLjEyNXJlbX0uLXJpZ2h0LVxbNHB4XF17cmlnaHQ6LTRweH0uLXRvcC1cWzRweFxde3RvcDotNHB4fS5ib3R0b20tXFstOHB4XF17Ym90dG9tOi04cHh9LmJvdHRvbS0we2JvdHRvbTowfS5ib3R0b20tM3tib3R0b206Ljc1cmVtfS5ib3R0b20tZnVsbHtib3R0b206MTAwJX0ubGVmdC1cWzJweFxde2xlZnQ6MnB4fS5sZWZ0LTB7bGVmdDowfS5sZWZ0LTFcLzJ7bGVmdDo1MCV9LmxlZnQtMntsZWZ0Oi41cmVtfS5sZWZ0LTNcLjd7bGVmdDouOTI1cmVtfS5yaWdodC1cWzE2cHhcXXtyaWdodDoxNnB4fS5yaWdodC0we3JpZ2h0OjB9LnJpZ2h0LTBcLjV7cmlnaHQ6LjEyNXJlbX0ucmlnaHQtMntyaWdodDouNXJlbX0ucmlnaHQtM3tyaWdodDouNzVyZW19LnRvcC1cWzJweFxde3RvcDoycHh9LnRvcC0we3RvcDowfS50b3AtMnt0b3A6LjVyZW19LnRvcC0ze3RvcDouNzVyZW19LnRvcC0zXC43e3RvcDouOTI1cmVtfS50b3AtMzB7dG9wOjcuNXJlbX0udG9wLTQwe3RvcDoxMHJlbX0ubGluZS1jbGFtcC0xey13ZWJraXQtbGluZS1jbGFtcDoxO2xpbmUtY2xhbXA6MTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LmxpbmUtY2xhbXAtMnstd2Via2l0LWxpbmUtY2xhbXA6MjtsaW5lLWNsYW1wOjI7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS5saW5lLWNsYW1wLTN7LXdlYmtpdC1saW5lLWNsYW1wOjM7bGluZS1jbGFtcDozOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDtkaXNwbGF5Oi13ZWJraXQtYm94O292ZXJmbG93OmhpZGRlbn0ubGluZS1jbGFtcC01ey13ZWJraXQtbGluZS1jbGFtcDo1O2xpbmUtY2xhbXA6NTstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7ZGlzcGxheTotd2Via2l0LWJveDtvdmVyZmxvdzpoaWRkZW59LnotMXt6LWluZGV4OjF9LnotMTB7ei1pbmRleDoxMH0uei0xMDB7ei1pbmRleDoxMDB9LnotNTB7ei1pbmRleDo1MH0uZ3JpZHtkaXNwbGF5OmdyaWR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0fS4tbS1weHttYXJnaW46LTFweH0ubS0ze21hcmdpbjouNzVyZW19Lm0tYXV0b3ttYXJnaW46YXV0b30ubTE1e21hcmdpbjozLjc1cmVtfS5tMTZ7bWFyZ2luOjRyZW19Lm0xOHttYXJnaW46NC41cmVtfS5tMjF7bWFyZ2luOjUuMjVyZW19Lm0yMnttYXJnaW46NS41cmVtfS5tNnttYXJnaW46MS41cmVtfS5tN3ttYXJnaW46MS43NXJlbX0ubTh7bWFyZ2luOjJyZW19Lm05e21hcmdpbjoyLjI1cmVtfS5teC0ye21hcmdpbi1sZWZ0Oi41cmVtO21hcmdpbi1yaWdodDouNXJlbX0ubXgtM3ttYXJnaW4tbGVmdDouNzVyZW07bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXgtNHttYXJnaW4tbGVmdDoxcmVtO21hcmdpbi1yaWdodDoxcmVtfS5teS0ze21hcmdpbi10b3A6Ljc1cmVtO21hcmdpbi1ib3R0b206Ljc1cmVtfS5teS00e21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW19Li1tdC0ze21hcmdpbi10b3A6LS43NXJlbX0ubWItXFsycHhcXXttYXJnaW4tYm90dG9tOjJweH0ubWItMHttYXJnaW4tYm90dG9tOjB9Lm1iLTEsLm5vdC1sYXN0LW9mLXR5cGVcOm1iLTE6bm90KDpsYXN0LW9mLXR5cGUpe21hcmdpbi1ib3R0b206LjI1cmVtfS5tYi0ye21hcmdpbi1ib3R0b206LjVyZW19Lm1iLTN7bWFyZ2luLWJvdHRvbTouNzVyZW19Lm1iLTR7bWFyZ2luLWJvdHRvbToxcmVtfS5tYi02e21hcmdpbi1ib3R0b206MS41cmVtfS5tbC0wXC41e21hcmdpbi1sZWZ0Oi4xMjVyZW19Lm1sLTF7bWFyZ2luLWxlZnQ6LjI1cmVtfS5tbC0ye21hcmdpbi1sZWZ0Oi41cmVtfS5tbC0ze21hcmdpbi1sZWZ0Oi43NXJlbX0ubWwtNHttYXJnaW4tbGVmdDoxcmVtfS5tbC04e21hcmdpbi1sZWZ0OjJyZW19Lm1yLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbX0ubXItMVwuNXttYXJnaW4tcmlnaHQ6LjM3NXJlbX0ubXItMTB7bWFyZ2luLXJpZ2h0OjIuNXJlbX0ubXItMnttYXJnaW4tcmlnaHQ6LjVyZW19Lm1yLTN7bWFyZ2luLXJpZ2h0Oi43NXJlbX0ubXItNHttYXJnaW4tcmlnaHQ6MXJlbX0ubXQtXFsxcHhcXXttYXJnaW4tdG9wOjFweH0ubXQtMFwuNXttYXJnaW4tdG9wOi4xMjVyZW19Lm10LTJ7bWFyZ2luLXRvcDouNXJlbX0ubXQtM3ttYXJnaW4tdG9wOi43NXJlbX0ubXQtNHttYXJnaW4tdG9wOjFyZW19Lm10LTZ7bWFyZ2luLXRvcDoxLjVyZW19Lm10LTh7bWFyZ2luLXRvcDoycmVtfS5maXJzdC1vZi10eXBlXDptdC0yOmZpcnN0LW9mLXR5cGV7bWFyZ2luLXRvcDouNXJlbX0uaW5saW5le2Rpc3BsYXk6aW5saW5lfS5ibG9ja3tkaXNwbGF5OmJsb2NrfS5pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhpZGRlbntkaXNwbGF5Om5vbmV9LmgtXFsxXC4yZW1cXXtoZWlnaHQ6MS4yZW19LmgtXFsxZW1cXXtoZWlnaHQ6MWVtfS5oLVxbNTBweFxde2hlaWdodDo1MHB4fS5oLTF7aGVpZ2h0Oi4yNXJlbX0uaC0xMHtoZWlnaHQ6Mi41cmVtfS5oLTExe2hlaWdodDoyLjc1cmVtfS5oLTEye2hlaWdodDozcmVtfS5oLTJ7aGVpZ2h0Oi41cmVtfS5oLTJcLjV7aGVpZ2h0Oi42MjVyZW19LmgtMjB7aGVpZ2h0OjVyZW19LmgtMzB7aGVpZ2h0OjcuNXJlbX0uaC00e2hlaWdodDoxcmVtfS5oLTQwe2hlaWdodDoxMHJlbX0uaC00MDBweHtoZWlnaHQ6NDAwcHh9LmgtNXtoZWlnaHQ6MS4yNXJlbX0uaC01NHB4e2hlaWdodDo1NHB4fS5oLTZ7aGVpZ2h0OjEuNXJlbX0uaC02MHB4e2hlaWdodDo2MHB4fS5oLTY0cHh7aGVpZ2h0OjY0cHh9LmgtN3toZWlnaHQ6MS43NXJlbX0uaC04e2hlaWdodDoycmVtfS5oLWZ1bGx7aGVpZ2h0OjEwMCV9LmgtcHh7aGVpZ2h0OjFweH0ubWF4LWgtXFsxMjVweFxde21heC1oZWlnaHQ6MTI1cHh9Lm1heC1oLVxbMjQwcHhcXXttYXgtaGVpZ2h0OjI0MHB4fS5tYXgtaC1cWzMycHhcXXttYXgtaGVpZ2h0OjMycHh9Lm1heC1oLTEzMnB4e21heC1oZWlnaHQ6MTMycHh9Lm1heC1oLTY0e21heC1oZWlnaHQ6MTZyZW19Lm1heC1oLTgwdmh7bWF4LWhlaWdodDo4MHZofS5tYXgtaC04NnttYXgtaGVpZ2h0OjIxLjVyZW19Lm1heC1oLWZ1bGx7bWF4LWhlaWdodDoxMDAlfS5tYXgtdy1cWzgwXCVcXXttYXgtd2lkdGg6ODAlfS5tYXgtdy1cWzg1XCVcXXttYXgtd2lkdGg6ODUlfS5tYXgtdy1cW2NhbGNcKDEwMFwlLTE1MHB4XClcXXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTUwcHgpfS5tYXgtdy1mdWxse21heC13aWR0aDoxMDAlfS5taW4taC1cWzE2cHhcXXttaW4taGVpZ2h0OjE2cHh9Lm1pbi13LVxbMTZweFxde21pbi13aWR0aDoxNnB4fS5taW4tdy0we21pbi13aWR0aDowfS5taW4tdy01e21pbi13aWR0aDoxLjI1cmVtfS5taW4tdy01XC41e21pbi13aWR0aDoxLjM3NXJlbX0ubWluLXctNnttaW4td2lkdGg6MS41cmVtfS53LVxbMVwuMmVtXF17d2lkdGg6MS4yZW19LnctXFsxZW1cXXt3aWR0aDoxZW19LnctXFs1MHB4XF17d2lkdGg6NTBweH0udy0we3dpZHRoOjB9LnctMXt3aWR0aDouMjVyZW19LnctMTF7d2lkdGg6Mi43NXJlbX0udy0xMTZ7d2lkdGg6MjlyZW19LnctMTJ7d2lkdGg6M3JlbX0udy0ye3dpZHRoOi41cmVtfS53LTJcLjV7d2lkdGg6LjYyNXJlbX0udy0yODBweHt3aWR0aDoyODBweH0udy0zNDhweHt3aWR0aDozNDhweH0udy00e3dpZHRoOjFyZW19LnctNXt3aWR0aDoxLjI1cmVtfS53LTUye3dpZHRoOjEzcmVtfS53LTU2e3dpZHRoOjE0cmVtfS53LTZ7d2lkdGg6MS41cmVtfS53LTYwcHh7d2lkdGg6NjBweH0udy03e3dpZHRoOjEuNzVyZW19LnctOHt3aWR0aDoycmVtfS53LWZ1bGx7d2lkdGg6MTAwJX0udy1tYXh7d2lkdGg6bWF4LWNvbnRlbnR9LnctcHh7d2lkdGg6MXB4fS5mbGV4e2Rpc3BsYXk6ZmxleH0uaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleH0uZmxleC0xe2ZsZXg6MX0uZmxleC1ub25le2ZsZXg6bm9uZX0uZmxleC1zaHJpbmt7ZmxleC1zaHJpbms6MX0uZmxleC1zaHJpbmstMCwuc2hyaW5rLTB7ZmxleC1zaHJpbms6MH0uZmxleC1ncm93LC5ncm93e2ZsZXgtZ3JvdzoxfS5mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmZsZXgtY29se2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZmxleC13cmFwe2ZsZXgtd3JhcDp3cmFwfS4tdHJhbnNsYXRlLXgtMVwvMnstLXVuLXRyYW5zbGF0ZS14Oi01MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNsYXRlLXgtZnVsbHstLXVuLXRyYW5zbGF0ZS14OjEwMCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpzY2FsZS0xMTV7LS11bi1zY2FsZS14OjEuMTU7LS11bi1zY2FsZS15OjEuMTU7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0uaG92ZXJcOnNjYWxlLTEyMDpob3ZlcnstLXVuLXNjYWxlLXg6MS4yOy0tdW4tc2NhbGUteToxLjI7dHJhbnNmb3JtOnRyYW5zbGF0ZVgodmFyKC0tdW4tdHJhbnNsYXRlLXgpKSB0cmFuc2xhdGVZKHZhcigtLXVuLXRyYW5zbGF0ZS15KSkgdHJhbnNsYXRlWih2YXIoLS11bi10cmFuc2xhdGUteikpIHJvdGF0ZSh2YXIoLS11bi1yb3RhdGUpKSByb3RhdGVYKHZhcigtLXVuLXJvdGF0ZS14KSkgcm90YXRlWSh2YXIoLS11bi1yb3RhdGUteSkpIHJvdGF0ZVoodmFyKC0tdW4tcm90YXRlLXopKSBza2V3WCh2YXIoLS11bi1za2V3LXgpKSBza2V3WSh2YXIoLS11bi1za2V3LXkpKSBzY2FsZVgodmFyKC0tdW4tc2NhbGUteCkpIHNjYWxlWSh2YXIoLS11bi1zY2FsZS15KSkgc2NhbGVaKHZhcigtLXVuLXNjYWxlLXopKX0udHJhbnNmb3Jte3RyYW5zZm9ybTp0cmFuc2xhdGVYKHZhcigtLXVuLXRyYW5zbGF0ZS14KSkgdHJhbnNsYXRlWSh2YXIoLS11bi10cmFuc2xhdGUteSkpIHRyYW5zbGF0ZVoodmFyKC0tdW4tdHJhbnNsYXRlLXopKSByb3RhdGUodmFyKC0tdW4tcm90YXRlKSkgcm90YXRlWCh2YXIoLS11bi1yb3RhdGUteCkpIHJvdGF0ZVkodmFyKC0tdW4tcm90YXRlLXkpKSByb3RhdGVaKHZhcigtLXVuLXJvdGF0ZS16KSkgc2tld1godmFyKC0tdW4tc2tldy14KSkgc2tld1kodmFyKC0tdW4tc2tldy15KSkgc2NhbGVYKHZhcigtLXVuLXNjYWxlLXgpKSBzY2FsZVkodmFyKC0tdW4tc2NhbGUteSkpIHNjYWxlWih2YXIoLS11bi1zY2FsZS16KSl9QGtleWZyYW1lcyBwdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fUBrZXlmcmFtZXMgcHVzaC10by1sZWZ0ezAle21hcmdpbi1yaWdodDotNTAlO3RyYW5zZm9ybTpzY2FsZSgwKX10b3ttYXJnaW4tcmlnaHQ6aW5oZXJpdDt0cmFuc2Zvcm06c2NhbGUoMSl9fUBrZXlmcmFtZXMgc3BpbnswJXtyb3RhdGU6MGRlZ310b3tyb3RhdGU6MzYwZGVnfX1Aa2V5ZnJhbWVzIHR5cGluZ3swJSw1MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MjUle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC02cHgpfX0uYW5pbWF0ZS1wdWxzZXthbmltYXRpb246MnMgY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkgaW5maW5pdGUgcHVsc2V9LmFuaW1hdGUtcHVzaC10by1sZWZ0e2FuaW1hdGlvbjouMjVzIGVhc2UtaW4tb3V0IHB1c2gtdG8tbGVmdH0uYW5pbWF0ZS1zcGlue2FuaW1hdGlvbjoxcyBsaW5lYXIgaW5maW5pdGUgc3Bpbn0uYW5pbWF0ZS10eXBpbmd7YW5pbWF0aW9uOi44cyBlYXNlLWluLW91dCB0eXBpbmd9LmN1cnNvci1hdXRve2N1cnNvcjphdXRvfS5jdXJzb3ItcG9pbnRlciwuaG92ZXJcOmN1cnNvci1wb2ludGVyOmhvdmVye2N1cnNvcjpwb2ludGVyfS5jdXJzb3Itbm90LWFsbG93ZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5zZWxlY3Qtbm9uZXstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0ucmVzaXple3Jlc2l6ZTpib3RofS5yZXNpemUtbm9uZXtyZXNpemU6bm9uZX0uc2Nyb2xsLW10LTJ7c2Nyb2xsLW1hcmdpbi10b3A6LjVyZW19Lmxpc3QtZGVjaW1hbHtsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbH0ubGlzdC1kaXNje2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5jb250ZW50LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlcn0uaXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uaXRlbXMtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZX0uc2VsZi1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaH0uanVzdGlmeS1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uanVzdGlmeS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmdhcC0ye2dhcDouNXJlbX0uZ2FwLTN7Z2FwOi43NXJlbX0uc3BhY2UteC0yPjpub3QoW2hpZGRlbl0pfjpub3QoW2hpZGRlbl0pey0tdW4tc3BhY2UteC1yZXZlcnNlOjA7bWFyZ2luLWxlZnQ6Y2FsYyguNXJlbSAqIGNhbGMoMSAtIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpKTttYXJnaW4tcmlnaHQ6Y2FsYyguNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS14LTU+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS14LXJldmVyc2U6MDttYXJnaW4tbGVmdDpjYWxjKDEuMjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS14LXJldmVyc2UpKSk7bWFyZ2luLXJpZ2h0OmNhbGMoMS4yNXJlbSAqIHZhcigtLXVuLXNwYWNlLXgtcmV2ZXJzZSkpfS5zcGFjZS15LTI+Om5vdChbaGlkZGVuXSl+Om5vdChbaGlkZGVuXSl7LS11bi1zcGFjZS15LXJldmVyc2U6MDttYXJnaW4tdG9wOmNhbGMoLjVyZW0gKiBjYWxjKDEgLSB2YXIoLS11bi1zcGFjZS15LXJldmVyc2UpKSk7bWFyZ2luLWJvdHRvbTpjYWxjKC41cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktND46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxcmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxcmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9LnNwYWNlLXktNT46bm90KFtoaWRkZW5dKX46bm90KFtoaWRkZW5dKXstLXVuLXNwYWNlLXktcmV2ZXJzZTowO21hcmdpbi10b3A6Y2FsYygxLjI1cmVtICogY2FsYygxIC0gdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSkpO21hcmdpbi1ib3R0b206Y2FsYygxLjI1cmVtICogdmFyKC0tdW4tc3BhY2UteS1yZXZlcnNlKSl9Lm92ZXJmbG93LWF1dG97b3ZlcmZsb3c6YXV0b30ub3ZlcmZsb3ctY2xpcHtvdmVyZmxvdzpjbGlwfS5vdmVyZmxvdy1oaWRkZW57b3ZlcmZsb3c6aGlkZGVufS5vdmVyZmxvdy14LWhpZGRlbntvdmVyZmxvdy14OmhpZGRlbn0ub3ZlcmZsb3cteS1hdXRve292ZXJmbG93LXk6YXV0b30ub3ZlcmZsb3cteS1zY3JvbGx7b3ZlcmZsb3cteTpzY3JvbGx9Lm92ZXJzY3JvbGwtY29udGFpbntvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LnRydW5jYXRle3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0udGV4dC1lbGxpcHNpc3t0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53aGl0ZXNwYWNlLW5vcm1hbHt3aGl0ZS1zcGFjZTpub3JtYWx9LndoaXRlc3BhY2Utbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0ud2hpdGVzcGFjZS1wcmV7d2hpdGUtc3BhY2U6cHJlfS53aGl0ZXNwYWNlLXByZS13cmFwe3doaXRlLXNwYWNlOnByZS13cmFwfS5icmVhay13b3Jkc3tvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9LmJyZWFrLWFsbHt3b3JkLWJyZWFrOmJyZWFrLWFsbH0uYm9yZGVyLC5ib3JkZXItMXtib3JkZXItd2lkdGg6MXB4fS5ib3JkZXItMHtib3JkZXItd2lkdGg6MH0uYm9yZGVyLTJ7Ym9yZGVyLXdpZHRoOjJweH0uYm9yZGVyLXQtMntib3JkZXItdG9wLXdpZHRoOjJweH0uYm9yZGVyLWdyYXktMzAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci1ncmVlbi00MDB7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoNzQgMjIyIDEyOC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItcHJpbWFyeXtib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeSl9LmJvcmRlci1wcmltYXJ5LWJ1dHRvbntib3JkZXItY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pfS5ib3JkZXItcmVkLTUwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uYm9yZGVyLXNsYXRlLTIwMHstLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5ib3JkZXItd2hpdGV7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKX0uZm9jdXNcOmJvcmRlci1ibHVlLTUwMDpmb2N1c3stLXVuLWJvcmRlci1vcGFjaXR5OjE7Ym9yZGVyLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9LmJvcmRlci10LW5ldXRyYWwtMTAwey0tdW4tYm9yZGVyLW9wYWNpdHk6MTstLXVuLWJvcmRlci10b3Atb3BhY2l0eTp2YXIoLS11bi1ib3JkZXItb3BhY2l0eSk7Ym9yZGVyLXRvcC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYm9yZGVyLXRvcC1vcGFjaXR5KSl9LmJvcmRlci1yb3VuZGVkLWZ1bGwsLnJvdW5kZWQtZnVsbHtib3JkZXItcmFkaXVzOjk5OTlweH0ucm91bmRlZC0yLC5yb3VuZGVkLWxne2JvcmRlci1yYWRpdXM6LjVyZW19LnJvdW5kZWQtMnhse2JvcmRlci1yYWRpdXM6MXJlbX0ucm91bmRlZC0zeGwsLnJvdW5kZWQtNntib3JkZXItcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1tZHtib3JkZXItcmFkaXVzOi4zNzVyZW19LnJvdW5kZWQteGx7Ym9yZGVyLXJhZGl1czouNzVyZW19LnJvdW5kZWQtbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0ucm91bmRlZC1sLTN4bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW19LnJvdW5kZWQtci0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC10LTZ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5yb3VuZGVkLWxiLTN4bHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1sdC0zeGx7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoxLjVyZW19LnJvdW5kZWQtcmItM3hse2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjEuNXJlbX0ucm91bmRlZC1ydC0zeGx7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5ib3JkZXItZGFzaGVke2JvcmRlci1zdHlsZTpkYXNoZWR9LmJvcmRlci1ub25le2JvcmRlci1zdHlsZTpub25lfS5iZy1ibGFja3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ibGFja1wvODB7YmFja2dyb3VuZC1jb2xvcjojMDAwY30uYmctZW1lcmFsZC01MDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTYgMTg1IDEyOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjkgMjMxIDIzNS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTMwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1ncmF5LTQwMFwvXFtcLjk1XF17YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjJ9LmJnLWdyYXktNjAwXC9cW1wuOTVcXXtiYWNrZ3JvdW5kLWNvbG9yOiM0YjU1NjNmMn0uYmctZ3JlZW4tNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDc0IDIyMiAxMjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctZ3JlZW4tNTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDM0IDE5NyA5NC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDUgMjQ1IDI0NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1uZXV0cmFsLTEwMFwvNTB7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1ODB9LmJnLW5ldXRyYWwtNjAwXC80MHtiYWNrZ3JvdW5kLWNvbG9yOiM1MjUyNTI2Nn0uYmctb3JhbmdlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDkgMTE1IDIyL3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXByaW1hcnktYnV0dG9ue2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIH0uYmctcmVkLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMzkgNjggNjgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctcmVkLTYwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtMTAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTIwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjYgMjMyIDI0MC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy1zbGF0ZS0zMDB7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjAzIDIxMyAyMjUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uYmctc2xhdGUtNDAwey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLXNsYXRlLTUwMHstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5iZy10cmFuc3BhcmVudHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5iZy13aGl0ZXstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUgMjU1IDI1NS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1ibGFjazpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy1lbWVyYWxkLTYwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYig1IDE1MCAxMDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uaG92ZXItYmctcHJpbWFyeS1idXR0b24taG92ZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5ob3Zlci1iZy1wcmltYXJ5LWJ1dHRvbjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmhvdmVyLWJnLXNsYXRlLTEwMDpob3ZlcnstLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDEgMjQ1IDI0OS92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS5ob3Zlci1iZy10cmFuc3BhcmVudDpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwfS5ob3Zlclw6Ymctc2xhdGUtMTAwOmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJnLW9wYWNpdHktMTAsLmhvdmVyLWJnLW9wYWNpdHktMTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5Oi4xfS5mcm9tLXdoaXRlXC8xMDB7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlOy0tdW4tZ3JhZGllbnQtZnJvbTojZmZmIHZhcigtLXVuLWdyYWRpZW50LWZyb20tcG9zaXRpb24pOy0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwIHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKTstLXVuLWdyYWRpZW50LXN0b3BzOnZhcigtLXVuLWdyYWRpZW50LWZyb20pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnZpYS13aGl0ZVwvNDB7LS11bi1ncmFkaWVudC12aWEtcG9zaXRpb246NTAlOy0tdW4tZ3JhZGllbnQtdG86I2ZmZjA7LS11bi1ncmFkaWVudC1zdG9wczp2YXIoLS11bi1ncmFkaWVudC1mcm9tKSwgI2ZmZjYgdmFyKC0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uKSwgdmFyKC0tdW4tZ3JhZGllbnQtdG8pfS52aWEtd2hpdGVcLzUwey0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjUwJTstLXVuLWdyYWRpZW50LXRvOiNmZmYwOy0tdW4tZ3JhZGllbnQtc3RvcHM6dmFyKC0tdW4tZ3JhZGllbnQtZnJvbSksICNmZmZmZmY4MCB2YXIoLS11bi1ncmFkaWVudC12aWEtcG9zaXRpb24pLCB2YXIoLS11bi1ncmFkaWVudC10byl9LnRvLXRyYW5zcGFyZW50ey0tdW4tZ3JhZGllbnQtdG8tcG9zaXRpb246MTAwJTstLXVuLWdyYWRpZW50LXRvOnRyYW5zcGFyZW50IHZhcigtLXVuLWdyYWRpZW50LXRvLXBvc2l0aW9uKX0uZnJvbS0wXCV7LS11bi1ncmFkaWVudC1mcm9tLXBvc2l0aW9uOjAlfS52aWEtNTBcJXstLXVuLWdyYWRpZW50LXZpYS1wb3NpdGlvbjo1MCV9LnZpYS03MFwley0tdW4tZ3JhZGllbnQtdmlhLXBvc2l0aW9uOjcwJX0uYmctZ3JhZGllbnQtdG8tdHstLXVuLWdyYWRpZW50LXNoYXBlOnRvIHRvcCBpbiBva2xjaDstLXVuLWdyYWRpZW50OnZhcigtLXVuLWdyYWRpZW50LXNoYXBlKSwgdmFyKC0tdW4tZ3JhZGllbnQtc3RvcHMpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHZhcigtLXVuLWdyYWRpZW50KSl9LmZpbGwtY3VycmVudHtmaWxsOmN1cnJlbnRDb2xvcn0uZmlsbC1wcmltYXJ5LWJ1dHRvbntmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LmZpbGwtcHJpbWFyeS1idXR0b24tY29udGVudHtmaWxsOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0ub2JqZWN0LWNvbnRhaW57b2JqZWN0LWZpdDpjb250YWlufS5wLTB7cGFkZGluZzowfS5wLTBcLjh7cGFkZGluZzouMnJlbX0ucC0xe3BhZGRpbmc6LjI1cmVtfS5wLTFcLjV7cGFkZGluZzouMzc1cmVtfS5wLTJ7cGFkZGluZzouNXJlbX0ucC0ze3BhZGRpbmc6Ljc1cmVtfS5wLTR7cGFkZGluZzoxcmVtfS5wLTh7cGFkZGluZzoycmVtfS5weCwucHgtNHtwYWRkaW5nLWxlZnQ6MXJlbTtwYWRkaW5nLXJpZ2h0OjFyZW19LnB4LTF7cGFkZGluZy1sZWZ0Oi4yNXJlbTtwYWRkaW5nLXJpZ2h0Oi4yNXJlbX0ucHgtMntwYWRkaW5nLWxlZnQ6LjVyZW07cGFkZGluZy1yaWdodDouNXJlbX0ucHgtM3twYWRkaW5nLWxlZnQ6Ljc1cmVtO3BhZGRpbmctcmlnaHQ6Ljc1cmVtfS5weC04e3BhZGRpbmctbGVmdDoycmVtO3BhZGRpbmctcmlnaHQ6MnJlbX0ucHktMXtwYWRkaW5nLXRvcDouMjVyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5weS0ye3BhZGRpbmctdG9wOi41cmVtO3BhZGRpbmctYm90dG9tOi41cmVtfS5weS0yXC41e3BhZGRpbmctdG9wOi42MjVyZW07cGFkZGluZy1ib3R0b206LjYyNXJlbX0ucHktM3twYWRkaW5nLXRvcDouNzVyZW07cGFkZGluZy1ib3R0b206Ljc1cmVtfS5wYi0we3BhZGRpbmctYm90dG9tOjB9LnBiLTF7cGFkZGluZy1ib3R0b206LjI1cmVtfS5wYi0ye3BhZGRpbmctYm90dG9tOi41cmVtfS5wYi0ze3BhZGRpbmctYm90dG9tOi43NXJlbX0ucGItNHtwYWRkaW5nLWJvdHRvbToxcmVtfS5wbC0ye3BhZGRpbmctbGVmdDouNXJlbX0ucGwtNCwuZ3JvdXA6aG92ZXIgLmdyb3VwLWhvdmVyXDpub3QtZmlyc3RcOnBsLTQ6bm90KDpmaXJzdC1jaGlsZCl7cGFkZGluZy1sZWZ0OjFyZW19LnByLTF7cGFkZGluZy1yaWdodDouMjVyZW19LnByLTR7cGFkZGluZy1yaWdodDoxcmVtfS5wdC0xe3BhZGRpbmctdG9wOi4yNXJlbX0ucHQtNntwYWRkaW5nLXRvcDoxLjVyZW19LnB0LTl7cGFkZGluZy10b3A6Mi4yNXJlbX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtMnhse2ZvbnQtc2l6ZToxLjVyZW07bGluZS1oZWlnaHQ6MnJlbX0udGV4dC1iYXNle2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNXJlbX0udGV4dC1iYXNlLWlucHV0e2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuMjVyZW19LnRleHQtbGd7Zm9udC1zaXplOjEuMTI1cmVtO2xpbmUtaGVpZ2h0OjEuNzVyZW19LnRleHQtc217Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS4yNXJlbX0udGV4dC14c3tmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjFyZW19LnRleHQtYmxhY2t7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMCAwIDAvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LWdyYXktMzAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwOSAyMTMgMjE5L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1ncmF5LTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDcgMTE0IDEyOC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtbmV1dHJhbC00MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTYzIDE2MyAxNjMvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LW5ldXRyYWwtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDExNSAxMTUgMTE1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1wcmltYXJ5e2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnkpIH0udGV4dC1wcmltYXJ5LWJ1dHRvbntjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgfS50ZXh0LXByaW1hcnktYnV0dG9uLWNvbnRlbnR7Y29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24tY29udGVudCkgfS50ZXh0LXByaW1hcnktY29udGVudHtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWNvbnRlbnQpIH0udGV4dC1yZWQtNTAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNDAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDE0OCAxNjMgMTg0L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3Itc2xhdGUtNTAwLC50ZXh0LXNsYXRlLTUwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LnRleHQtc2xhdGUtNjAwey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDcxIDg1IDEwNS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmNvbG9yLXNsYXRlLTgwMCwudGV4dC1zbGF0ZS04MDB7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS50ZXh0LXdoaXRley0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDI1NSAyNTUgMjU1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uaG92ZXItdGV4dC1wcmltYXJ5LWJ1dHRvbi1jb250ZW50OmhvdmVye2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uaG92ZXJcOnRleHQtZ3JheS00MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMTU2IDE2MyAxNzUvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6dGV4dC1zbGF0ZS04MDA6aG92ZXJ7LS11bi10ZXh0LW9wYWNpdHk6MTtjb2xvcjpyZ2IoMzAgNDEgNTkvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5wbGFjZWhvbGRlclw6dGV4dC1zbGF0ZS0zMDA6OnBsYWNlaG9sZGVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDIwMyAyMTMgMjI1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0uY29sb3ItcmVkLTYwMHstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigyMjAgMzggMzgvdmFyKC0tdW4tdGV4dC1vcGFjaXR5KSkgfS5ob3Zlclw6Y29sb3Itc2xhdGUtNzAwOmhvdmVyey0tdW4tdGV4dC1vcGFjaXR5OjE7Y29sb3I6cmdiKDUxIDY1IDg1L3ZhcigtLXVuLXRleHQtb3BhY2l0eSkpIH0udGV4dC1vcGFjaXR5LTIwey0tdW4tdGV4dC1vcGFjaXR5Oi4yfS5mb250LTIwMHtmb250LXdlaWdodDoyMDB9LmZvbnQtNTAwLC5mb250LW1lZGl1bXtmb250LXdlaWdodDo1MDB9LmZvbnQtYm9sZHtmb250LXdlaWdodDo3MDB9LmZvbnQtbGlnaHR7Zm9udC13ZWlnaHQ6MzAwfS5mb250LXNlbWlib2xke2ZvbnQtd2VpZ2h0OjYwMH0ubGVhZGluZy1cWzIycHhcXXtsaW5lLWhlaWdodDoyMnB4fS5sZWFkaW5nLTRcLjV7bGluZS1oZWlnaHQ6MS4xMjVyZW19LmxlYWRpbmctNVwuNXtsaW5lLWhlaWdodDoxLjM3NXJlbX0ubGVhZGluZy02e2xpbmUtaGVpZ2h0OjEuNXJlbX0ubGVhZGluZy1ub3JtYWx7bGluZS1oZWlnaHQ6MS41fS5pdGFsaWN7Zm9udC1zdHlsZTppdGFsaWN9LnVuZGVybGluZXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm5vLXVuZGVybGluZSwuaG92ZXItbm8tdW5kZXJsaW5lOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5vcGFjaXR5LTEwe29wYWNpdHk6LjF9Lm9wYWNpdHktMTAwe29wYWNpdHk6MX0ub3BhY2l0eS0yMHtvcGFjaXR5Oi4yfS5vcGFjaXR5LTMwe29wYWNpdHk6LjN9Lm9wYWNpdHktNjB7b3BhY2l0eTouNn0uc2hhZG93ey0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxcHggM3B4IDAgdmFyKC0tdW4tc2hhZG93LWNvbG9yLCMwMDAwMDAxYSksdmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uc2hhZG93LWxney0tdW4tc2hhZG93OnZhcigtLXVuLXNoYWRvdy1pbnNldCkgMCAxMHB4IDE1cHggLTNweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgNHB4IDZweCAtNHB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctbWR7LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDRweCA2cHggLTFweCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDFhKSx2YXIoLS11bi1zaGFkb3ctaW5zZXQpIDAgMnB4IDRweCAtMnB4IHZhcigtLXVuLXNoYWRvdy1jb2xvciwjMDAwMDAwMWEpO2JveC1zaGFkb3c6dmFyKC0tdW4tcmluZy1vZmZzZXQtc2hhZG93KSwgdmFyKC0tdW4tcmluZy1zaGFkb3cpLCB2YXIoLS11bi1zaGFkb3cpfS5zaGFkb3ctc217LS11bi1zaGFkb3c6dmFyKC0tdW4tc2hhZG93LWluc2V0KSAwIDFweCAycHggMCB2YXIoLS11bi1zaGFkb3ctY29sb3IsIzAwMDAwMDBkKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpvdXRsaW5lLTI6Zm9jdXMtd2l0aGlue291dGxpbmUtd2lkdGg6MnB4fS5mb2N1cy13aXRoaW5cOm91dGxpbmUtcHJpbWFyeS1mb2N1czpmb2N1cy13aXRoaW57b3V0bGluZS1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWZvY3VzKSB9Lm91dGxpbmUsLmZvY3VzLXdpdGhpblw6b3V0bGluZS1zb2xpZDpmb2N1cy13aXRoaW57b3V0bGluZS1zdHlsZTpzb2xpZH0ub3V0bGluZS1ub25lLC5mb2N1c1w6b3V0bGluZS1ub25lOmZvY3VzLC5mb2N1cy12aXNpYmxlXDpvdXRsaW5lLW5vbmU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDoycHg7b3V0bGluZToycHggc29saWQgIzAwMDB9LmZvY3VzLXdpdGhpblw6cmluZy0zOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctd2lkdGg6M3B4Oy0tdW4tcmluZy1vZmZzZXQtc2hhZG93OnZhcigtLXVuLXJpbmctaW5zZXQpIDAgMCAwIHZhcigtLXVuLXJpbmctb2Zmc2V0LXdpZHRoKSB2YXIoLS11bi1yaW5nLW9mZnNldC1jb2xvcik7LS11bi1yaW5nLXNoYWRvdzp2YXIoLS11bi1yaW5nLWluc2V0KSAwIDAgMCBjYWxjKHZhcigtLXVuLXJpbmctd2lkdGgpICsgdmFyKC0tdW4tcmluZy1vZmZzZXQtd2lkdGgpKSB2YXIoLS11bi1yaW5nLWNvbG9yKTtib3gtc2hhZG93OnZhcigtLXVuLXJpbmctb2Zmc2V0LXNoYWRvdyksIHZhcigtLXVuLXJpbmctc2hhZG93KSwgdmFyKC0tdW4tc2hhZG93KX0uZm9jdXMtd2l0aGluXDpyaW5nLW9mZnNldC0xOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb2Zmc2V0LXdpZHRoOjFweH0uZm9jdXMtd2l0aGluXDpyaW5nLWJsdWUtNDAwOmZvY3VzLXdpdGhpbnstLXVuLXJpbmctb3BhY2l0eToxOy0tdW4tcmluZy1jb2xvcjpyZ2IoOTYgMTY1IDI1MC92YXIoLS11bi1yaW5nLW9wYWNpdHkpKSB9LmZvY3VzXDpyaW5nLWJsdWUtNTAwOmZvY3Vzey0tdW4tcmluZy1vcGFjaXR5OjE7LS11bi1yaW5nLWNvbG9yOnJnYig1OSAxMzAgMjQ2L3ZhcigtLXVuLXJpbmctb3BhY2l0eSkpIH0udHJhbnNpdGlvbnt0cmFuc2l0aW9uLXByb3BlcnR5OmNvbG9yLGJhY2tncm91bmQtY29sb3IsYm9yZGVyLWNvbG9yLHRleHQtZGVjb3JhdGlvbi1jb2xvcixmaWxsLHN0cm9rZSxvcGFjaXR5LGJveC1zaGFkb3csdHJhbnNmb3JtLGZpbHRlciwtd2Via2l0LWJhY2tkcm9wLWZpbHRlcixiYWNrZHJvcC1maWx0ZXI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLWFsbHt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tY29sb3Jze3RyYW5zaXRpb24tcHJvcGVydHk6Y29sb3IsYmFja2dyb3VuZC1jb2xvcixib3JkZXItY29sb3IsdGV4dC1kZWNvcmF0aW9uLWNvbG9yLGZpbGwsc3Ryb2tlO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0udHJhbnNpdGlvbi1vcGFjaXR5e3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24tcGFkZGluZy00MDB7dHJhbnNpdGlvbi1wcm9wZXJ0eTpwYWRkaW5nO3RyYW5zaXRpb24tZHVyYXRpb246LjRzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS50cmFuc2l0aW9uLXRyYW5zZm9ybXt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRyYW5zaXRpb24td2lkdGgtMjUwe3RyYW5zaXRpb24tcHJvcGVydHk6d2lkdGg7dHJhbnNpdGlvbi1kdXJhdGlvbjouMjVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5kdXJhdGlvbi0xNTB7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzfS5kdXJhdGlvbi0zMDB7dHJhbnNpdGlvbi1kdXJhdGlvbjouM3N9LmR1cmF0aW9uLTc1e3RyYW5zaXRpb24tZHVyYXRpb246NzVtc30uZGVsYXktMHt0cmFuc2l0aW9uLWRlbGF5OjBzfS5lYXNlLWluLW91dHt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uZWFzZS1vdXR7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKDAsMCwuMiwxKX0uY29udGVudC1cW1wiXCJcXXtjb250ZW50OiIifS5iZy1wcmltYXJ5LWdyYWRpZW50e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDgwZGVnLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LXRvKSAxMzAlKX0uYmctcHJpbWFyeS1ncmFkaWVudC1idXR0b257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtYnV0dG9uLWZyb20pLCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYWRpZW50LWJ1dHRvbi10bykgMTMwJSl9LmJnLXByaW1hcnktZ3JhZGllbnQtaG92ZXI6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoODBkZWcsIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItZnJvbSksIHZhcigtLWNvbG9yLXByaW1hcnktZ3JhZGllbnQtaG92ZXItdG8pIDEzMCUpfS5saW5lLWNsYW1wLTV7LXdlYmtpdC1saW5lLWNsYW1wOjU7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7b3ZlcmZsb3c6aGlkZGVufS50eXBpbmctaW5kaWNhdG9yLnN2ZWx0ZS1zNDB4Z2t7Ym9yZGVyLXJhZGl1czo5OTk5cHh9LnR5cGluZy1pbmRpY2F0b3Iuc20uc3ZlbHRlLXM0MHhna3t3aWR0aDouMjVyZW07aGVpZ2h0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci5tZC5zdmVsdGUtczQweGdre3dpZHRoOi41cmVtO2hlaWdodDouNXJlbX0udHlwaW5nLWluZGljYXRvci5pbmRpY2F0b3ItY29sb3ItYmxhY2suc3ZlbHRlLXM0MHhna3stLXVuLWJnLW9wYWNpdHk6MTtiYWNrZ3JvdW5kLWNvbG9yOnJnYigwIDAgMC92YXIoLS11bi1iZy1vcGFjaXR5KSkgfS50eXBpbmctaW5kaWNhdG9yLmluZGljYXRvci1jb2xvci1ncmF5LnN2ZWx0ZS1zNDB4Z2t7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMTAwIDExNiAxMzkvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0udHlwaW5nLWluZGljYXRvci5zdmVsdGUtczQweGdrOm5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4yNXJlbX0udHlwaW5nLWluZGljYXRvci1zZWNvbmQuc3ZlbHRlLXM0MHhna3thbmltYXRpb24tZGVsYXk6LjFzfS50eXBpbmctaW5kaWNhdG9yLXRoaXJkLnN2ZWx0ZS1zNDB4Z2t7YW5pbWF0aW9uLWRlbGF5Oi4yc30uYnRuLnN2ZWx0ZS0xZTg0bjd3e2JvcmRlci1yYWRpdXM6MS41cmVtO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDoxcmVtO3BhZGRpbmctcmlnaHQ6MXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmFsbDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246Y3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTppbmxpbmUtZmxleH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3d7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbikgO2NvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uLWNvbnRlbnQpIH0uYnRuLXByaW1hcnkuc3ZlbHRlLTFlODRuN3c6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1ob3ZlcikgfS5idG4tb3V0bGluZS5zdmVsdGUtMWU4NG43d3tib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbik7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigwIDAgMC92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSB9LmJ0bi1vdXRsaW5lLnN2ZWx0ZS0xZTg0bjd3OmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSB9LmJ0bi1yYWlzZWQuc3ZlbHRlLTFlODRuN3d7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1IDI1NSAyNTUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDstLXVuLXRleHQtb3BhY2l0eToxO2NvbG9yOnJnYigxMDAgMTE2IDEzOS92YXIoLS11bi10ZXh0LW9wYWNpdHkpKSA7Ym94LXNoYWRvdzowIDJweCA2cHggIzAwMDAwMDI5fS5idG4tcmFpc2VkLnN2ZWx0ZS0xZTg0bjd3OmhvdmVyey0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0MSAyNDUgMjQ5L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmJ0bi1zbS5zdmVsdGUtMWU4NG43d3toZWlnaHQ6MnJlbX0uYnRuLW1kLnN2ZWx0ZS0xZTg0bjd3e2hlaWdodDoyLjVyZW19LmJ0bi1sZy5zdmVsdGUtMWU4NG43d3toZWlnaHQ6M3JlbX0uYnRuLWRpc2FibGVkLnN2ZWx0ZS0xZTg0bjd3e2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi4yfS5kYXJrLnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojNGI1NTYzZjI7cGFkZGluZzouNXJlbSAuNzVyZW19LmxpZ2h0LnN2ZWx0ZS1zajk5aDN7YmFja2dyb3VuZC1jb2xvcjojOWNhM2FmZjI7cGFkZGluZzouMjVyZW0gLjVyZW19c3ZnLnN2ZWx0ZS15aXhoYXR7ZmlsbDpjdXJyZW50Q29sb3I7d2lkdGg6MWVtO2hlaWdodDoxZW19LmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpke2p1c3RpZnktY29udGVudDpzdGFydDthbGlnbi1pdGVtczpzdGFydDt3aWR0aDoxMDAlfS5jYXJvdXNlbC5zdmVsdGUtMTBxcWp6ZDpob3ZlciAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCksLmNhcm91c2VsLnN2ZWx0ZS0xMHFxanpkOmZvY3VzLXdpdGhpbiAuYnV0dG9uOndoZXJlKC5zdmVsdGUtMTBxcWp6ZCl7b3BhY2l0eToxfS5idXR0b24uc3ZlbHRlLTEwcXFqemR7b3BhY2l0eTowO3otaW5kZXg6MTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwO2JvcmRlcjpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuNHM7cG9zaXRpb246YWJzb2x1dGV9LmxlZnQuc3ZlbHRlLTEwcXFqemR7bGVmdDotMWVtfS5yaWdodC5zdmVsdGUtMTBxcWp6ZHtyaWdodDotMWVtfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCB1bHttYXJnaW4tcmlnaHQ6LjI1cmVtO3BhZGRpbmctbGVmdDoxcmVtO2xpc3Qtc3R5bGUtdHlwZTpkaXNjfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBsaTpub3QoOmZpcnN0LWNoaWxkKSwubWVzc2FnZS1jb250ZW50LWh0bWwgbGk+dWwsLm1lc3NhZ2UtY29udGVudC1odG1sIGxpPm9se21hcmdpbi10b3A6LjVyZW19Lm1lc3NhZ2UtY29udGVudC1odG1sIG9se21hcmdpbi1yaWdodDouMjVyZW07cGFkZGluZy1sZWZ0OjFyZW07bGlzdC1zdHlsZS10eXBlOmRlY2ltYWx9Lm1lc3NhZ2UtY29udGVudC1odG1sIGF7dGV4dC1kZWNvcmF0aW9uLWxpbmU6dW5kZXJsaW5lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5tZXNzYWdlLWNvbnRlbnQtaHRtbCAqe3doaXRlLXNwYWNlOm5vcm1hbDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmR9Lm1lc3NhZ2UtY29udGVudC10ZXh0LnN2ZWx0ZS1uZmIweW17b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcH0ubWVzc2FnZS1jb250ZW50LXRleHQgYXt0ZXh0LWRlY29yYXRpb24tbGluZTp1bmRlcmxpbmV9Lm1lc3NhZ2UtY29udGVudC10ZXh0IGE6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6Zmlyc3Qtb2YtdHlwZXt6LWluZGV4OjN9LmF2YXRhci1ncm91cC1pdGVtLnN2ZWx0ZS15ZnhhN3Q6bnRoLW9mLXR5cGUoMil7ei1pbmRleDoyfS5hdmF0YXItZ3JvdXAtaXRlbS5zdmVsdGUteWZ4YTd0Om50aC1vZi10eXBlKDMpe3otaW5kZXg6MX0uYXZhdGFyLXNtLnN2ZWx0ZS15ZnhhN3Q6bm90KDpmaXJzdC1jaGlsZCl7bWFyZ2luLWxlZnQ6LTEycHh9LmF2YXRhci1tZC5zdmVsdGUteWZ4YTd0Om5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi0xNnB4fS5hdmF0YXItbGcuc3ZlbHRlLXlmeGE3dDpub3QoOmZpcnN0LWNoaWxkKXttYXJnaW4tbGVmdDotMjJweH0ucmVtb3ZlSWNvbi5zdmVsdGUtMTFmM2Jkd3tvcGFjaXR5OjA7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5O3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKX0uYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6aG92ZXIgLnJlbW92ZUljb246d2hlcmUoLnN2ZWx0ZS0xMWYzYmR3KSwuYXR0YWNobWVudFdyYXBwZXIuc3ZlbHRlLTExZjNiZHc6Zm9jdXMtd2l0aGluIC5yZW1vdmVJY29uOndoZXJlKC5zdmVsdGUtMTFmM2Jkdyl7b3BhY2l0eToxfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2V7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3Njcm9sbGJhci13aWR0aDpub25lO2ZsZXg6MTttYXgtaGVpZ2h0OjMycHg7bWFyZ2luLXRvcDouNzVyZW07bWFyZ2luLWJvdHRvbTouNzVyZW07ZGlzcGxheTpncmlkO292ZXJmbG93OmhpZGRlbiBhdXRvfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGV4dGFyZWEtY29udGFpbmVyLXJlc2l6YWJsZS5zdmVsdGUtMXRsOWxjZXttYXgtaGVpZ2h0OjEyNXB4fS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdGV4dGFyZWEtdmFsdWUpICIgIjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkfS50ZXh0YXJlYS1jb250YWluZXIuc3ZlbHRlLTF0bDlsY2U6YWZ0ZXIsdGV4dGFyZWEuc3ZlbHRlLTF0bDlsY2V7Zm9udC1zaXplOmluaGVyaXQ7Z3JpZC1hcmVhOjEvMS8yLzI7bWFyZ2luLWxlZnQ6MXJlbTttYXJnaW4tcmlnaHQ6Ljc1cmVtfXRleHRhcmVhLnN2ZWx0ZS0xdGw5bGNlOjpwbGFjZWhvbGRlcnt3b3JkLWJyZWFrOmJyZWFrLWFsbDtvdmVyZmxvdzpoaWRkZW59ZW0tZW1vamktcGlja2Vyey0tYm9yZGVyLXJhZGl1czoxMnB4Oy0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1jb2xvcjpyZ2IoMjI2IDIzMiAyNDAvdmFyKC0tdW4tYm9yZGVyLW9wYWNpdHkpKTtib3JkZXItcmFkaXVzOi43NXJlbTt3aWR0aDoxMDAlO2hlaWdodDo0MDBweDttYXgtaGVpZ2h0Ojgwdmg7cGFkZGluZy10b3A6LjI1cmVtO2JveC1zaGFkb3c6MCAxcHggMTVweCAxcHggIzAwMDAwMDFmfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em97LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI5IDIzMSAyMzUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIDtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoyLjc1cmVtO2hlaWdodDoxLjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpjb2xvcixiYWNrZ3JvdW5kLWNvbG9yLGJvcmRlci1jb2xvcix0ZXh0LWRlY29yYXRpb24tY29sb3IsZmlsbCxzdHJva2U7dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguNCwwLC4yLDEpfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86Zm9jdXN7b3V0bGluZS1vZmZzZXQ6MnB4O291dGxpbmU6MnB4IHNvbGlkICMwMDAwfS5zd2l0Y2guc3ZlbHRlLTF5emZ6em86YWZ0ZXJ7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci13aWR0aDoxcHg7Ym9yZGVyLWNvbG9yOnJnYigyMDkgMjEzIDIxOS92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSA7Y29udGVudDoiIjtib3JkZXItcmFkaXVzOjk5OTlweDt3aWR0aDoxLjI1cmVtO2hlaWdodDoxLjI1cmVtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4fS5zd2l0Y2guY2hlY2tlZC5zdmVsdGUtMXl6Znp6b3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNvbG9yLXByaW1hcnktYnV0dG9uKSB9LnN3aXRjaC5jaGVja2VkLnN2ZWx0ZS0xeXpmenpvOmFmdGVyey0tdW4tdHJhbnNsYXRlLXg6MTAwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWCh2YXIoLS11bi10cmFuc2xhdGUteCkpIHRyYW5zbGF0ZVkodmFyKC0tdW4tdHJhbnNsYXRlLXkpKSB0cmFuc2xhdGVaKHZhcigtLXVuLXRyYW5zbGF0ZS16KSkgcm90YXRlKHZhcigtLXVuLXJvdGF0ZSkpIHJvdGF0ZVgodmFyKC0tdW4tcm90YXRlLXgpKSByb3RhdGVZKHZhcigtLXVuLXJvdGF0ZS15KSkgcm90YXRlWih2YXIoLS11bi1yb3RhdGUteikpIHNrZXdYKHZhcigtLXVuLXNrZXcteCkpIHNrZXdZKHZhcigtLXVuLXNrZXcteSkpIHNjYWxlWCh2YXIoLS11bi1zY2FsZS14KSkgc2NhbGVZKHZhcigtLXVuLXNjYWxlLXkpKSBzY2FsZVoodmFyKC0tdW4tc2NhbGUteikpOy0tdW4tYmctb3BhY2l0eToxO2JhY2tncm91bmQtY29sb3I6cmdiKDI0NSAyNDUgMjQ1L3ZhcigtLXVuLWJnLW9wYWNpdHkpKSB9LmludmFsaWQuc3ZlbHRlLTEyZjRjMWcsLmludmFsaWQuc3ZlbHRlLTE5bTN1Y3l7LS11bi1ib3JkZXItb3BhY2l0eToxO2JvcmRlci1jb2xvcjpyZ2IoMjM5IDY4IDY4L3ZhcigtLXVuLWJvcmRlci1vcGFjaXR5KSl9c2VsZWN0LnN2ZWx0ZS04aDVycTR7YXBwZWFyYW5jZTpub25lO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzZCNzI4MCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTYgOCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAuNXJlbSBjZW50ZXI7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToxLjVlbSAxLjVlbX0uaW52YWxpZC5zdmVsdGUtOGg1cnE0ey0tdW4tYm9yZGVyLW9wYWNpdHk6MTtib3JkZXItY29sb3I6cmdiKDIzOSA2OCA2OC92YXIoLS11bi1ib3JkZXItb3BhY2l0eSkpfS5pY29uLnN2ZWx0ZS0xcnNhMnF2e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeS1idXR0b24pIDtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5LWJ1dHRvbi1jb250ZW50KSA7Ym9yZGVyLXJhZGl1czoxLjVyZW07cGFkZGluZzouNXJlbTtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0uZHJhd2VyLWJ1dHRvbi5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtib3JkZXItcmFkaXVzOi41cmVtO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07dHJhbnNpdGlvbjpjb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJhY2tncm91bmQtY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxib3JkZXItY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx0ZXh0LWRlY29yYXRpb24tY29sb3IgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxmaWxsIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksc3Ryb2tlIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSk7ZGlzcGxheTpmbGV4fS5kcmF3ZXItYnV0dG9uLnN2ZWx0ZS1qNmV4cTA6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0uZHJhd2VyLWJ1dHRvbi1kaXNhYmxlZC5zdmVsdGUtajZleHEwe3RleHQtYWxpZ246bGVmdDtvcGFjaXR5Oi4zO2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTtkaXNwbGF5OmZsZXh9LmRyYXdlci1idXR0b24tZGlzYWJsZWQuc3ZlbHRlLWo2ZXhxMDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWR9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGN7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlci1yYWRpdXM6LjVyZW07YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCU7cGFkZGluZzouNXJlbTt0cmFuc2l0aW9uOmNvbG9yIDc1bXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSksYmFja2dyb3VuZC1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGJvcmRlci1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLHRleHQtZGVjb3JhdGlvbi1jb2xvciA3NW1zIGN1YmljLWJlemllciguNCwwLC4yLDEpLGZpbGwgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxzdHJva2UgNzVtcyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtkaXNwbGF5OmZsZXh9LmRyYXdlci1zd2l0Y2guc3ZlbHRlLTFqZXN4dGM6aG92ZXJ7LS11bi1iZy1vcGFjaXR5OjE7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjQ1IDI0NSAyNDUvdmFyKC0tdW4tYmctb3BhY2l0eSkpIH0ubWVzc2FnZS1jb250ZW50LnN2ZWx0ZS0xZ2Z2aGk2e292ZXJmbG93LXdyYXA6YnJlYWstd29yZDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXB9Lm1lc3NhZ2UtY29udGVudC1sZWZ0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6LjI1cmVtIDEuNXJlbSAxLjVyZW0gLjI1cmVtfS5tZXNzYWdlLWNvbnRlbnQtbGVmdC1maXJzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LWxlZnQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjEuNXJlbX0ubWVzc2FnZS1jb250ZW50LXJpZ2h0LnN2ZWx0ZS0xZ2Z2aGk2e2JvcmRlci1yYWRpdXM6MS41cmVtIC4yNXJlbSAuMjVyZW0gMS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtZmlyc3Quc3ZlbHRlLTFnZnZoaTZ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MS41cmVtfS5tZXNzYWdlLWNvbnRlbnQtcmlnaHQtbGFzdC5zdmVsdGUtMWdmdmhpNntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czoxLjVyZW19LmNvdW50LWFuaW1hdGUuc3ZlbHRlLTIyOGM3bnthbmltYXRpb246LjJzIGN1YmljLWJlemllciguNCwyLC42LDEpIHN2ZWx0ZS0yMjhjN24tcG9wLXNjYWxlfUBrZXlmcmFtZXMgc3ZlbHRlLTIyOGM3bi1wb3Atc2NhbGV7MCV7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xKX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fQovKiR2aXRlJDoxKi8="}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/responsive.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.479Z","timestamp":1785129412479,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/responsive.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 4172\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":28401,"size_decoded":4481,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"f140b58fd294e165e9de441bdeb0cca3","sha1":"247f1ac6880448c8b241f2705c0225a152d06642","sha256":"4aa6744498d9199d2542f93c2607387a2a28ef4b1bb9c78061386f4e03fb919b","sha512":"cc3a5cea50360e6a5883abe2638b8319276f48674c7687917c11047d3abefca102f28125538bc2c2512df8d9649156c5b478656df56085255419249c9d0edd83","ssdeep":"768:LRYSkaoHj1QCf7T51wvMiUIqLSr/KJc6OLhUE8/YNw2:7","tlshash":"5ad2f027b45a700d17a34356fbba2ea4fdb4d026d7a741f1f8328229c2e14ad47d1adc","first_seen":"2024-06-18T00:47:48Z","last_seen":"2026-07-27T13:36:13.693268Z","times_seen":99,"resource_available":false,"data":"LyogU29sdmEgSFRNTCBUZW1wbGF0ZSovDQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTAwMHB4KXsNCgkNCgkucGFnZS13cmFwcGVyew0KCQlvdmVyZmxvdzpoaWRkZW47DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveHsNCgkJZGlzcGxheTpibG9jazsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxlZnQsDQoJLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyew0KCQlwYWRkaW5nLWxlZnQ6NDBweDsNCgl9DQoJDQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTYwMHB4KXsNCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5vcHRpb25zLWJveCAuY2FydC1ib3h7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxlZnQsDQoJLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyew0KCQlwYWRkaW5nLWxlZnQ6MjE1cHg7DQoJfQ0KCQ0KCS5ydGwgLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxlZnQsDQoJLnJ0bCAuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5pbm5lci1jb250YWluZXJ7DQoJCXBhZGRpbmctbGVmdDowcHg7DQoJCXBhZGRpbmctcmlnaHQ6MjE1cHg7DQoJfQ0KCQ0KfQ0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEzNDBweCl7DQoNCgkucGFnZS13cmFwcGVyew0KCQlvdmVyZmxvdzpoaWRkZW47CQ0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5vcHRpb25zLWJveCAuY2FydC1ib3h7DQoJCWRpc3BsYXk6YmxvY2s7DQoJfQ0KCQ0KfQ0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDExNDBweCl7DQoJDQoJLm1haW4taGVhZGVyew0KCQltYXJnaW46MHB4ICFpbXBvcnRhbnQ7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10aHJlZSAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiBhew0KCQlwYWRkaW5nOjI1cHggMHB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5pbmZvLWJveGVkIC5pbmZvLWJveHsNCgkJbWFyZ2luLWxlZnQ6MTVweDsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10aHJlZSAubWFpbi1tZW51ew0KCQltYXJnaW4tcmlnaHQ6MHB4Ow0KCX0NCgkNCgkubWFpbi1mb290ZXIgLmZvb3Rlci10aXRsZXsNCgkJbWFyZ2luLXRvcDowcHg7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1sZWZ0IC5waG9uZSBzcGFuLA0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1sZWZ0IC5waG9uZXsNCgkJZm9udC1zaXplOjEzcHg7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXVwcGVyIC51cHBlci1yaWdodHsNCgkJdG9wOjBweDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdXBwZXJ7DQoJCW1hcmdpbi1ib3R0b206MHB4Ow0KCX0NCgkNCgkucGFnZS13cmFwcGVyew0KCQlvdmVyZmxvdzpoaWRkZW47CQ0KCX0NCgkNCgkubWFpbi1oZWFkZXIgLmluZm8tYm94ew0KCQltYXJnaW4tbGVmdDoyNXB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiBhew0KCQlmb250LXNpemU6MTRweDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5uYXYtb3V0ZXIgLm91dGVyLWJveCAuc2VhcmNoLWJveC1vdXRlcnsNCgkJbWFyZ2luLXJpZ2h0OjBweDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gLm1lZ2EtbWVudXsNCgkJLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgkJLW1vei10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgkJLW1zLXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCQktby10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgkJdHJhbnNmb3JtOiBzY2FsZVkoMSk7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSAubWVnYS1tZW51LWJhciBoM3sNCgkJZm9udC1zaXplOjE2cHg7CQ0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgLmNvbHVtbiA+IHVsID4gbGkgPiBhew0KCQlmb250LXNpemU6MTVweDsJDQoJfQ0KCQ0KCS5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdGhyZWUgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsNCgkJZm9udC1zaXplOjE0cHg7DQoJfQ0KCQ0KCS5tYWluLXNsaWRlci10aHJlZSAuc29jaWFsLW5hdiwNCgkubWFpbi1zbGlkZXItdGhyZWUgLnRleHQtYm94ZWQsDQoJLm1haW4taGVhZGVyLmhlYWRlci1zdHlsZS10aHJlZSAub3B0aW9ucy1ib3ggLmJ0bi1ib3gsDQoJLm1haW4taGVhZGVyLmhlYWRlci1zdHlsZS10d28gLm9wdGlvbnMtYm94LA0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaTo6YmVmb3Jlew0KCQlkaXNwbGF5Om5vbmU7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdGhyZWUgLmhlYWRlci1sb3dlciAuaW5uZXItY29udGFpbmVyOmJlZm9yZXsNCgkJcmlnaHQ6MHB4Ow0KCX0NCgkNCgkubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXRocmVlIC5vcHRpb25zLWJveHsNCgkJbWFyZ2luLWxlZnQ6MjVweDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpew0KCQltYXJnaW4tcmlnaHQ6MjVweDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsNCgkJcGFkZGluZzoxNXB4IDBweDsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsNCgkJcGFkZGluZzoyNXB4IDBweDsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyIC5sb2dvLWJveHsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCWZsb2F0OmxlZnQ7DQoJCXRvcDowcHg7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1sZWZ0LA0KCS5mYXEtcGFnZS1zZWN0aW9uIC5mb3JtLWNvbHVtbiAuaW5uZXItY29sdW1uLA0KCS5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lcnsNCgkJcGFkZGluZy1sZWZ0OjBweDsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyIC5sb2dvLWJveHsNCgkJbWFyZ2luLXJpZ2h0OjYwcHg7DQoJCXBhZGRpbmc6NXB4IDUwcHggNXB4IDE1cHg7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lciAubG9nby1ib3g6OmJlZm9yZXsNCgkJYm9yZGVyLWJvdHRvbTo4MHB4IHNvbGlkICMyMjIyMjI7DQoJfQ0KCQ0KCS5tYWluLXNsaWRlci10aHJlZSAuc2xpZGV7DQoJCXBhZGRpbmc6MjgwcHggMHB4IDE1MHB4Ow0KCX0NCgkNCgkuc2VydmljZS1ibG9jayAuaW5uZXItYm94ew0KCQlwYWRkaW5nLWxlZnQ6MjBweDsNCgkJcGFkZGluZy1yaWdodDoyMHB4Ow0KCX0NCgkNCgkuaW50cm9kdWN0aW9uLXNlY3Rpb24gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW4gLnNlYy10aXRsZSBoMiBicnsNCgkJZGlzcGxheTpub25lOw0KCX0NCgkNCgkuY29udGFjdC1zZWN0aW9uIC5mb3JtLWNvbHVtbiAuaW5uZXItY29sdW1uew0KCQlwYWRkaW5nOjBweDsNCgl9DQoJDQoJLmNhbGwtdG8tYWN0aW9uLXNlY3Rpb24gLmlubmVyLWNvbnRhaW5lcnsNCgkJcGFkZGluZy1sZWZ0OjUwcHg7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmJ0bi1ib3ggLnRoZW1lLWJ0bnsNCgkJbWFyZ2luLXJpZ2h0OjBweDsNCgkJbWFyZ2luLWJvdHRvbToyMHB4Ow0KCX0NCgkNCgkud2UtYXJlLXNlY3Rpb257DQoJCXBhZGRpbmctdG9wOjEwMHB4Ow0KCX0NCgkNCgkuZmVhdHVyZWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW57DQoJCXBhZGRpbmctbGVmdDowcHg7DQoJfQ0KCQ0KCS5mZWF0dXJlZC1zZWN0aW9uLXR3byAuYmxvY2tzLWNvbHVtbiAuZmVhdHVyZS1ibG9jazpudGgtY2hpbGQoMiksDQoJLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5ibG9ja3MtY29sdW1uIC5mZWF0dXJlLWJsb2NrOm50aC1jaGlsZCgzKXsNCgkJbWFyZ2luLXRvcDowcHg7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbnsNCgkJcGFkZGluZy1sZWZ0OjIwcHg7DQoJfQ0KCQ0KCS5ydGwgLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxpc3R7DQoJCW1hcmdpbi1sZWZ0OjE1cHg7DQoJfQ0KCQ0KCS5ydGwgLm1haW4taGVhZGVyIC5vcHRpb25zLWJveHsNCgkJbWFyZ2luLXJpZ2h0OjI1cHg7DQoJfQ0KCQ0KCS5ydGwgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpew0KCQltYXJnaW4tcmlnaHQ6MHB4Ow0KCQltYXJnaW4tbGVmdDoyNXB4Ow0KCX0NCgkNCgkucnRsIC5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lcnsNCgkJcGFkZGluZy1yaWdodDozMzBweDsNCgl9DQoJDQoJLnJ0bCAuaGVhZGVyLXN0eWxlLXRocmVlIC5oZWFkZXItbG93ZXIgLmlubmVyLWNvbnRhaW5lciAubG9nby1ib3h7DQoJCW1hcmdpbi1sZWZ0OjIwcHg7DQoJfQ0KCQ0KCQ0KCQ0KfQ0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwMjVweCl7DQoJDQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY4cHgpew0KCQ0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsLA0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bCwNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiAubWVnYS1tZW51ew0KCQlkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7DQoJCXZpc2liaWxpdHk6aGlkZGVuOw0KCQlvcGFjaXR5OjA7DQoJfQ0KCQ0KfQ0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCl7DQoJDQoJLm1haW4taGVhZGVyIC5pbmZvLWJveHsNCgkJbWFyZ2luLWxlZnQ6MHB4Ow0KCQltYXJnaW4tcmlnaHQ6MTVweDsNCgl9DQoJDQoJLnJ0bCAuZmVhdHVyZWQtc2VjdGlvbi10d28gLmJsb2Nrcy1jb2x1bW4sDQoJLnJ0bCAud2UtYXJlLXNlY3Rpb24gLnRpdGxlLWNvbHVtbnsNCgkJb3JkZXI6MTsNCgl9DQoJDQoJLnJ0bCAuaGVhZGVyLXN0eWxlLXR3byAubmF2LW91dGVyIC5tYWluLW1lbnV7DQoJCXdpZHRoOmF1dG87DQoJfQ0KCQ0KCS5ydGwgLmhlYWRlci1zdHlsZS10aHJlZSAuaGVhZGVyLWxvd2VyIC5pbm5lci1jb250YWluZXIgLmxvZ28tYm94ew0KCQltYXJnaW4tbGVmdDoxOHB4Ow0KCX0NCgkNCgkucnRsIC5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1sZWZ0LA0KCS5ydGwgLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyew0KCQlwYWRkaW5nLXJpZ2h0OjBweDsNCgl9DQoJDQoJLnJ0bCAuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5pbm5lci1jb250YWluZXIgLmxvZ28tYm94ew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgl9DQoJDQoJLmNhbGwtdG8tYWN0aW9uLXNlY3Rpb24gLmJ0bi1jb2x1bW4gLmlubmVyLWNvbHVtbiwNCgkuY291bnRlci1zZWN0aW9uIC5mYWN0LWNvdW50ZXIgLmNvdW50ZXItY29sdW1uLA0KCS5zZXJ2aWNlcy1zZWN0aW9uIC5vd2wtZG90cywNCgkuc2VydmljZXMtc2VjdGlvbiAuY29uc3VsdHsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmJ0bi1ib3ggLnRoZW1lLWJ0bnsNCgkJbWFyZ2luLXJpZ2h0OjMwcHg7DQoJfQ0KCQ0KCS5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC50aXRsZS1jb2x1bW4gLmNvbnRlbnR7DQoJCXBhZGRpbmc6MHB4Ow0KCQlib3JkZXI6bm9uZTsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJfQ0KCQ0KCS5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC5pbm5lci1jb250YWluZXJ7DQoJCXBhZGRpbmc6MzBweCAyMHB4Ow0KCX0NCgkNCgkuaW50cm9kdWN0aW9uLXNlY3Rpb24gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW57DQoJCXBhZGRpbmctdG9wOjYwcHg7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdGhyZWUgLmhlYWRlci1sb3dlcnsNCgkJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOw0KCX0NCgkNCgkuc2VydmljZXMtc2VjdGlvbiAuaW5uZXItY29udGFpbmVyew0KCQltYXJnaW4tdG9wOjEwMHB4Ow0KCX0NCgkNCgkubWFpbi1zbGlkZXItdGhyZWUgLnNsaWRlOmJlZm9yZXsNCgkJd2lkdGg6NzAlOw0KCX0NCgkNCgkuc2VydmljZXMtc2VjdGlvbiAucGF0ZXJuLWxheWVyew0KCQl0b3A6LTEwMHB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXRocmVlIC5oZWFkZXItbG93ZXIgLmlubmVyLWNvbnRhaW5lcnsNCgkJcGFkZGluZy1sZWZ0OjBweDsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10aHJlZSAuaGVhZGVyLWxvd2VyIC5pbm5lci1jb250YWluZXI6YmVmb3Jlew0KCQlib3JkZXItcmFkaXVzOjBweDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5pbmZvLWJveDpsYXN0LWNoaWxkew0KCQltYXJnaW4tcmlnaHQ6MHB4Ow0KCX0NCgkNCgkubWFpbi1oZWFkZXIgLm1haW4tYm94IC5sb2dvLWJveCB7DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCQlsZWZ0OjBweDsNCgkJdG9wOjBweDsNCgkJcmlnaHQ6MHB4Ow0KCQlib3R0b206MHB4Ow0KCQltYXJnaW46MHB4Ow0KCQl0ZXh0LWFsaWduOmxlZnQ7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdHdvIC5vcHRpb25zLWJveHsNCgkJZGlzcGxheTpibG9jazsNCgkJdG9wOjBweDsNCgkJcmlnaHQ6MHB4Ow0KCQlsZWZ0OmF1dG87DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCwNCgkubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXR3byAub3B0aW9ucy1ib3ggLmJ0bi1ib3h7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLm5hdi1vdXRlciAubWFpbi1tZW51ew0KCQl3aWR0aDoxMDAlOw0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLm5hdi1vdXRlcnsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCWZsb2F0OmxlZnQ7DQoJCXdpZHRoOjEwMCU7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lciAubG9nby1ib3g6YmVmb3JlLA0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1saXN0LA0KCS5maXhlZC1oZWFkZXIgLnN0aWNreS1oZWFkZXJ7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsNCgkJZm9udC1zaXplOjE0cHg7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAub3B0aW9ucy1ib3h7DQoJCW1hcmdpbi10b3A6MHB4Ow0KCQlwb3NpdGlvbjphYnNvbHV0ZTsNCgkJbGVmdDowcHg7DQoJCXRvcDo1cHg7DQoJCXotaW5kZXg6MTI7DQoJCWRpc3BsYXk6bm9uZTsNCgkJcmlnaHQ6YXV0bzsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdXBwZXIgLnVwcGVyLXJpZ2h0ew0KCQlwYWRkaW5nLXRvcDowcHg7DQoJCXdpZHRoOjEwMCU7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkuZHJvcGRvd24gPiBhOjpiZWZvcmV7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdXBwZXIgLmxvZ28tYm94ew0KCQl3aWR0aDoxMDAlOw0KCQl0ZXh0LWFsaWduOmNlbnRlcjsNCgl9DQoJDQoJLm1haW4tc2xpZGVyIC5zbGlkZXsNCgkJcGFkZGluZzoxNzBweCAwcHggMTUwcHg7DQoJfQ0KCQ0KCS5tYWluLXNsaWRlci10d28gLmNvbnRlbnQtYm94ZWR7DQoJCXdpZHRoOjEwMCU7DQoJCWZsb2F0OmxlZnQ7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvLmZpeGVkLWhlYWRlciAuaGVhZGVyLXVwcGVyew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgl9DQoJDQoJLmNhbGwtdG8tYWN0aW9uLXNlY3Rpb24gLmlubmVyLWNvbnRhaW5lcnsNCgkJbWFyZ2luLXRvcDo5NXB4Ow0KCX0NCgkNCgkubWFpbi1zbGlkZXItdHdvIC5zbGlkZXsNCgkJcGFkZGluZzoxNTBweCAwcHg7DQoJfQ0KCQ0KCQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbnsNCgkJcGFkZGluZy1sZWZ0OjE1cHg7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuaW1hZ2UtY29sdW1uLA0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4sDQoJLmZsdWlkLXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4sDQoJLmZsdWlkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbnsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXdpZHRoOjEwMCU7DQoJCWRpc3BsYXk6YmxvY2s7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbiwNCgkuZmx1aWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW57DQoJCW1heC13aWR0aDoxMDAlOw0KCQlwYWRkaW5nLWxlZnQ6MTVweDsNCgkJbWFyZ2luLWxlZnQ6MHB4Ow0KCQlwYWRkaW5nLXJpZ2h0OjE1cHg7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuaW1hZ2UtY29sdW1uLA0KCS5mbHVpZC1zZWN0aW9uLXR3byAuaW1hZ2UtY29sdW1uew0KCQliYWNrZ3JvdW5kLWltYWdlOm5vbmUgIWltcG9ydGFudDsNCgkJbWFyZ2luLWxlZnQ6MHB4Ow0KCX0NCgkNCgkuZmx1aWQtc2VjdGlvbi1vbmUgLmltYWdlLWNvbHVtbiAuaW1hZ2UtYm94LA0KCS5mbHVpZC1zZWN0aW9uLXR3byAuaW1hZ2UtY29sdW1uIC5pbWFnZS1ib3h7DQoJCWRpc3BsYXk6YmxvY2s7DQoJfQ0KCQ0KCS5wcm9qZWN0cy1zZWN0aW9uIC5zZWMtdGl0bGUgLnB1bGwtcmlnaHR7DQoJCXdpZHRoOjEwMCU7DQoJfQ0KCQ0KCS52aWRlby1zZWN0aW9uIC5zZWMtdGl0bGUgaDIgYnJ7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLnRlYW0tYmxvY2stdHdvew0KCQltYXJnaW4tYm90dG9tOjcwcHg7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW57DQoJCXBhZGRpbmctdG9wOjgwcHg7DQoJfQ0KCQ0KCS5mbHVpZC1zZWN0aW9uLXR3byAubG93ZXItY29udGVudCAuY29udGVudC1ib3h7DQoJCXBhZGRpbmc6MzVweCAzNXB4Ow0KCX0NCgkNCgkuZmx1aWQtc2VjdGlvbi10d28gLmluZm8tbGlzdCBsaXsNCgkJbWFyZ2luLXJpZ2h0OjIwcHg7DQoJCXBhZGRpbmctcmlnaHQ6MjBweDsNCgl9DQoJDQoJLnRlc3RpbW9uaWFsLWJsb2NrLXR3b3sNCgkJbWFyZ2luLWJvdHRvbTo1MHB4Ow0KCX0NCgkNCgkucGFnZS10aXRsZXsNCgkJcGFkZGluZzoxNjBweCAwcHggMTAwcHg7DQoJfQ0KCQ0KCS5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAuaW1hZ2UgLnByb2plY3QtaW5mb3sNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXJpZ2h0OjBweDsNCgkJbWFyZ2luLXRvcDozMHB4Ow0KCQltYXgtd2lkdGg6MTAwJTsNCgl9DQoJDQoJLnJ0bCAuY2FsbC10by1hY3Rpb24tc2VjdGlvbiAudGl0bGUtY29sdW1uew0KCQlvcmRlcjoxOw0KCX0NCgkNCgkucnRsIC5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC5idG4tY29sdW1uew0KCQlvcmRlcjoyOw0KCX0NCgkNCgkucnRsIC5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC50aXRsZS1jb2x1bW4gLmNvbnRlbnR7DQoJCXBhZGRpbmctcmlnaHQ6MHB4Ow0KCQlib3JkZXI6bm9uZTsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJfQ0KCQ0KCS5ydGwgLmNhbGwtdG8tYWN0aW9uLXNlY3Rpb24gLmJ0bi1jb2x1bW4gLmlubmVyLWNvbHVtbnsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJCXBhZGRpbmctdG9wOjBweDsNCgkJbWFyZ2luLXRvcDowcHg7DQoJfQ0KCQ0KCS5ydGwgLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5pbWFnZSAucHJvamVjdC1pbmZvew0KCQlsZWZ0OjBweDsNCgl9DQoJDQp9DQoNCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpew0KCQ0KCS5oZWFkZXItdXBwZXIgLmxvZ28tb3V0ZXIgew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgkJbGVmdDowcHg7DQoJCXRvcDowcHg7DQoJCXJpZ2h0OjBweDsNCgkJYm90dG9tOjBweDsNCgkJd2lkdGg6MTAwJTsNCgkJbWFyZ2luOjBweDsNCgl9DQoJDQoJLnNlYy10aXRsZSAudGV4dCBiciwNCgkuc2VjLXRpdGxlLXR3byAudGV4dCBicnsNCgkJZGlzcGxheTpub25lOw0KCX0NCgkJDQoJLm1haW4tbWVudXsNCgkJd2lkdGg6MTAwJTsNCgl9DQoJDQoJLm1haW4tbWVudSAuY29sbGFwc2Ugew0KCSAgIG1heC1oZWlnaHQ6MzAwcHg7DQoJCW92ZXJmbG93OmF1dG87DQoJCWZsb2F0Om5vbmU7DQoJCXdpZHRoOjEwMCU7DQoJCXBhZGRpbmc6MTBweCAwcHggMHB4Ow0KCQlib3JkZXI6bm9uZTsNCgkJbWFyZ2luOjBweCAwcHggMTVweDsNCgkJLW1zLWJvcmRlci1yYWRpdXM6M3B4Ow0KCQktbW96LWJvcmRlci1yYWRpdXM6M3B4Ow0KCQktd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Ow0KCQktby1ib3JkZXItcmFkaXVzOjNweDsNCgkJYm9yZGVyLXJhZGl1czozcHg7DQoJCWJveC1zaGFkb3c6bm9uZTsNCiAgIH0NCiAgIA0KCS5tYWluLW1lbnUgLmNvbGxhcHNlLmluLA0KCS5tYWluLW1lbnUgLmNvbGxhcHNpbmd7DQoJCXBhZGRpbmc6MTBweCAwcHggMHB4Ow0KCQlib3JkZXI6bm9uZTsNCgkJbWFyZ2luOjBweCAwcHggMTVweDsNCgkJLW1zLWJvcmRlci1yYWRpdXM6M3B4Ow0KCQktbW96LWJvcmRlci1yYWRpdXM6M3B4Ow0KCQktd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4Ow0KCQktby1ib3JkZXItcmFkaXVzOjNweDsNCgkJYm9yZGVyLXJhZGl1czozcHg7DQoJCWJveC1zaGFkb3c6bm9uZTsJDQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1oZWFkZXJ7DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCQlmbG9hdDpub25lOw0KCQlkaXNwbGF5OmJsb2NrOw0KCQl0ZXh0LWFsaWduOnJpZ2h0Ow0KCQl3aWR0aDoxMDAlOw0KCQlwYWRkaW5nOjE1cHggMHB4Ow0KCQlyaWdodDowcHg7DQoJCXotaW5kZXg6MTI7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1oZWFkZXIgLm5hdmJhci10b2dnbGV7DQoJCWRpc3BsYXk6aW5saW5lLWJsb2NrOw0KCQl6LWluZGV4OjEyOw0KCQlib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7DQoJCWZsb2F0Om5vbmU7DQoJCW1hcmdpbjowcHggMHB4IDBweCAwcHg7DQoJCWJvcmRlci1yYWRpdXM6MHB4Ow0KCQliYWNrZ3JvdW5kOiNmYmI5MDg7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1oZWFkZXIgLm5hdmJhci10b2dnbGUgLmljb24tYmFyew0KCQliYWNrZ3JvdW5kOiNmZmZmZmY7CQ0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbnsNCgkJZmxvYXQ6bm9uZSAhaW1wb3J0YW50Ow0KCQltYXJnaW46MHB4ICFpbXBvcnRhbnQ7DQoJCXdpZHRoOjEwMCUgIWltcG9ydGFudDsNCgkJYmFja2dyb3VuZDojMmMyYzJjOw0KCQlib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7DQoJCWJvcmRlci10b3A6bm9uZTsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaXsNCgkJbWFyZ2luOjBweCAhaW1wb3J0YW50Ow0KCQlmbG9hdDpub25lICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmc6MHB4ICFpbXBvcnRhbnQ7DQoJCXdpZHRoOjEwMCU7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IGEsDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWw6YmVmb3Jlew0KCQlib3JkZXI6bm9uZTsJDQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGkgPiBhew0KCQlwYWRkaW5nOjEwcHggMTBweCAhaW1wb3J0YW50Ow0KCQlib3JkZXI6bm9uZSAhaW1wb3J0YW50Ow0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uIGxpLmRyb3Bkb3duID4gYTphZnRlciwNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkuZHJvcGRvd24gPiBhOmJlZm9yZSwNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpID4gYTo6YmVmb3JlLA0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpID4gYTo6YmVmb3Jlew0KCQljb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7DQoJCXJpZ2h0OjE1cHg7DQoJCWZvbnQtc2l6ZToxNnB4Ow0KCQlkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaSA+IHVsLA0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpID4gdWx7DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCQlib3JkZXI6bm9uZTsNCgkJZmxvYXQ6bm9uZTsNCgkJdmlzaWJpbGl0eTp2aXNpYmxlOw0KCQlvcGFjaXR5OjE7DQoJCWRpc3BsYXk6bm9uZTsNCgkJbWFyZ2luOjBweDsNCgkJbGVmdDphdXRvICFpbXBvcnRhbnQ7DQoJCXJpZ2h0OmF1dG8gIWltcG9ydGFudDsNCgkJdG9wOmF1dG8gIWltcG9ydGFudDsNCgkJcGFkZGluZzowcHg7DQoJCW91dGxpbmU6bm9uZTsNCgkJd2lkdGg6MTAwJTsNCgkJYmFja2dyb3VuZDojMmMyYzJjOw0KCQktd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4Ow0KCQktbXMtYm9yZGVyLXJhZGl1czowcHg7DQoJCS1vLWJvcmRlci1yYWRpdXM6MHB4Ow0KCQktbW96LWJvcmRlci1yYWRpdXM6MHB4Ow0KCQlib3JkZXItcmFkaXVzOjBweDsNCgkJdHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7DQoJCS13ZWJraXQtdHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7DQoJCS1tcy10cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDsNCgkJLW8tdHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7DQoJCS1tb3otdHJhbnNpdGlvbjpub25lICFpbXBvcnRhbnQ7DQoJfQ0KCQkNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gdWwsDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bHsNCgkJYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwxKSAhaW1wb3J0YW50OwkNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaSwNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSwNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGl7DQoJCWJvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMSkgIWltcG9ydGFudDsNCgkJYm9yZGVyLWJvdHRvbTpub25lOw0KCQlvcGFjaXR5OjEgIWltcG9ydGFudDsNCgkJdG9wOjBweCAhaW1wb3J0YW50Ow0KCQlsZWZ0OjBweCAhaW1wb3J0YW50Ow0KCQl2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaTpmaXJzdC1jaGlsZHsNCgkJYm9yZGVyOm5vbmU7CQ0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gYSwNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IGEsDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bCA+IGxpID4gYXsNCgkJcGFkZGluZzoxMHB4IDEwcHggIWltcG9ydGFudDsNCgkJbGluZS1oZWlnaHQ6MjJweDsNCgkJY29sb3I6I2ZmZmZmZjsNCgkJYmFja2dyb3VuZDojMmMyYzJjOw0KCQl0ZXh0LWFsaWduOmxlZnQ7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGkgPiBhOmhvdmVyLA0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGkgPiBhOmFjdGl2ZSwNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gYTpmb2N1cywNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgLmNvbHVtbiA+IHVsID4gbGkgPiBhew0KCQliYWNrZ3JvdW5kOiNmYmI5MDg7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGk6aG92ZXIgPiBhLA0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpOmhvdmVyID4gYSwNCgkubWFpbi1tZW51IC5uYXZiYXItY29sbGFwc2UgPiAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGk6aG92ZXIgPiBhLA0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uID4gbGkuY3VycmVudCA+IGEsDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gPiBsaS5jdXJyZW50LW1lbnUtaXRlbSA+IGEsDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpIC5tZWdhLW1lbnUtYmFyIC5jb2x1bW4gPiB1bCA+IGxpID4gYXsNCgkJYmFja2dyb3VuZDojMmMyYzJjOw0KCQljb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZSA+IC5uYXZpZ2F0aW9uIGxpLmRyb3Bkb3duIC5kcm9wZG93bi1idG4sDQoJLmhlYWRlci1zdHlsZS10d28gLm5hdi1vdXRlciAuYnRuLW91dGVyew0KCQlkaXNwbGF5OmJsb2NrOw0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAubWFpbi1ib3ggLmxvZ28tYm94OjphZnRlciwNCgkubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXR3byAubmF2LW91dGVyIC5vdXRlci1ib3gsDQoJLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gLm5hdmlnYXRpb24gbGkuZHJvcGRvd246YWZ0ZXIsDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWw6YmVmb3Jlew0KCQlkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsJDQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAuYnRuLW91dGVyew0KCQlsZWZ0OjBweDsNCgkJdG9wOjBweDsNCgkJcmlnaHQ6YXV0bzsNCgkJbWFyZ2luLXRvcDoxNXB4Ow0KCQl0ZXh0LWFsaWduOmxlZnQ7DQoJCXotaW5kZXg6MTI7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAubWFpbi1ib3ggLmxvZ28tYm94ew0KCQlmbG9hdDpub25lOw0KCQl0ZXh0LWFsaWduOmNlbnRlcjsNCgkJcGFkZGluZy1ib3R0b206MTBweDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5vcHRpb25zLWJveHsNCgkJZGlzcGxheTpibG9jazsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10aHJlZSAubmF2LW91dGVyIC5vdXRlci1ib3h7DQoJCWRpc3BsYXk6YmxvY2s7DQoJCXBvc2l0aW9uOmFic29sdXRlOw0KCQlsZWZ0OjBweDsNCgkJdG9wOjRweDsNCgkJei1pbmRleDoxMjsNCgkJbWFyZ2luLWxlZnQ6MHB4Ow0KCQltYXJnaW4tdG9wOjEwcHg7DQoJfQ0KCQ0KCS5zaWRlYmFyLXBhZ2UtY29udGFpbmVyIC5jb21tZW50cy1hcmVhIC5jb21tZW50LWJveC5yZXBseS1jb21tZW50ew0KCQltYXJnaW4tbGVmdDowcHg7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAuaW5mby1ib3h7DQoJCXBhZGRpbmctbGVmdDowcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCQl3aWR0aDoxMDAlOw0KCQltYXJnaW4tcmlnaHQ6MHB4Ow0KCX0NCgkNCgkubWFpbi1oZWFkZXIgLmluZm8tYm94IC5pY29uLWJveHsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCW1hcmdpbjowIGF1dG87DQoJCW1hcmdpbi1ib3R0b206MTVweDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5tYWluLWJveCAub3V0ZXItY29udGFpbmVyew0KCQlwYWRkaW5nOjBweDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItbG93ZXIgLm91dGVyLWJveHsNCgkJcG9zaXRpb246YWJzb2x1dGU7DQoJCXotaW5kZXg6MTI7DQoJfQ0KCQ0KCS5oZWFkZXItdG9wLXR3byAudG9wLXJpZ2h0ew0KCQlkaXNwbGF5Om5vbmU7DQoJfQ0KCQ0KCS5tYWluLWZvb3RlciAuZm9vdGVyLXVwcGVyIC5wdWxsLWxlZnQsDQoJLm1haW4tZm9vdGVyIC5mb290ZXItdXBwZXIgLnB1bGwtcmlnaHR7DQoJCXdpZHRoOjEwMCU7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCX0NCgkNCgkubWFpbi1mb290ZXIgLmZvb3Rlci11cHBlciAuc3Vic2NyaWJlLWZvcm17DQoJCXdpZHRoOjEwMCU7DQoJCW1hcmdpbi10b3A6MzBweDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpLmhhcy1tZWdhLW1lbnV7DQoJCXBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7CQ0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgLmNvbHVtbnsNCgkJcGFkZGluZzowcHg7DQoJCW1hcmdpbjowcHg7CQ0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiAubWVnYS1tZW51ew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgkJd2lkdGg6MTAwJTsNCgkJcGFkZGluZzowcHggIWltcG9ydGFudDsNCgkJYmFja2dyb3VuZDpub25lICFpbXBvcnRhbnQ7DQoJCW1hcmdpbjowcHggIWltcG9ydGFudDsNCgkJbGVmdDowcHggIWltcG9ydGFudDsNCgkJdG9wOjBweCAhaW1wb3J0YW50OwkNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gLm1lZ2EtbWVudSAucm93ew0KCQltYXJnaW46MHB4Ow0KCQl3aWR0aDoxMDAlOwkNCgl9DQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gLm1lZ2EtbWVudTpiZWZvcmUsDQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpIC5tZWdhLW1lbnUtYmFyIGgzew0KCQljb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7DQoJCXJpZ2h0OjE1cHg7DQoJCWZvbnQtc2l6ZToxNnB4Ow0KCQlkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsNCgl9DQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gLm1lZ2EtbWVudSwNCgkubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgPiB1bHsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCWJvcmRlcjpub25lOw0KCQlmbG9hdDpub25lOw0KCQl2aXNpYmlsaXR5OnZpc2libGU7DQoJCW9wYWNpdHk6MTsNCgkJZGlzcGxheTpub25lOw0KCQltYXJnaW46MHB4Ow0KCQlsZWZ0OmF1dG8gIWltcG9ydGFudDsNCgkJcmlnaHQ6YXV0byAhaW1wb3J0YW50Ow0KCQl0b3A6YXV0byAhaW1wb3J0YW50Ow0KCQlwYWRkaW5nOjBweDsNCgkJb3V0bGluZTpub25lOw0KCQl3aWR0aDoxMDAlOw0KCQliYWNrZ3JvdW5kOiMyYzJjMmM7DQoJCS13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7DQoJCS1tcy1ib3JkZXItcmFkaXVzOjBweDsNCgkJLW8tYm9yZGVyLXJhZGl1czowcHg7DQoJCS1tb3otYm9yZGVyLXJhZGl1czowcHg7DQoJCWJvcmRlci1yYWRpdXM6MHB4Ow0KCQl0cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDsNCgkJLXdlYmtpdC10cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDsNCgkJLW1zLXRyYW5zaXRpb246bm9uZSAhaW1wb3J0YW50Ow0KCQktby10cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDsNCgkJLW1vei10cmFuc2l0aW9uOm5vbmUgIWltcG9ydGFudDsNCgkJLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7DQoJCS1tcy1ib3gtc2hhZG93Om5vbmU7DQoJCS1vLWJveC1zaGFkb3c6bm9uZTsNCgkJLW1vei1ib3gtc2hhZG93Om5vbmU7DQoJCWJveC1zaGFkb3c6bm9uZTsNCgl9DQoJLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpIC5tZWdhLW1lbnUtYmFyIC5jb2x1bW4gPiB1bCA+IGxpew0KCQlib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDEpICFpbXBvcnRhbnQ7DQoJCWJvcmRlci1ib3R0b206bm9uZTsNCgkJb3BhY2l0eToxICFpbXBvcnRhbnQ7DQoJCXRvcDowcHggIWltcG9ydGFudDsNCgkJbGVmdDowcHggIWltcG9ydGFudDsNCgkJdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7DQoJfQ0KCQ0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSAubWVnYS1tZW51LWJhciAuY29sdW1uID4gdWwgPiBsaSA+IGF7DQoJCXBhZGRpbmc6IDEwcHggMTBweCAhaW1wb3J0YW50Ow0KCQlsaW5lLWhlaWdodDoyMnB4Ow0KCQljb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7DQoJCWJhY2tncm91bmQ6I2ZmYjIwMDsNCgkJdGV4dC1hbGlnbjpsZWZ0Ow0KCQlmb250LXNpemU6MTRweDsNCgkJZm9udC13ZWlnaHQ6NjAwOw0KCQl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7DQoJfQ0KCS5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSAubWVnYS1tZW51LWJhciAuY29sdW1uID4gdWwgPiBsaSA+IGE6aG92ZXJ7DQoJCWJhY2tncm91bmQ6I2ZmYjIwMDsNCgl9DQoJDQoJLm1haW4tbWVudSAubmF2YmFyLWhlYWRlciAubmF2YmFyLXRvZ2dsZXJ7DQoJCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCgkJei1pbmRleDogMTI7DQoJCXdpZHRoOiA1MHB4Ow0KCQloZWlnaHQ6IDQwcHg7DQoJCWZsb2F0OiBub25lOw0KCQlwYWRkaW5nOiAwcHg7DQoJCXRleHQtYWxpZ246IGNlbnRlcjsNCgkJYm9yZGVyLXJhZGl1czogMHB4Ow0KCQliYWNrZ3JvdW5kOiAjZmRhNzAwOw0KCQlib3JkZXI6IDFweCBzb2xpZCAjZmRhNzAwOw0KCX0NCgkNCgkubWFpbi1tZW51IC5uYXZiYXItaGVhZGVyIC5uYXZiYXItdG9nZ2xlciAuaWNvbi1iYXJ7DQoJCXBvc2l0aW9uOiByZWxhdGl2ZTsNCgkJYmFja2dyb3VuZDogI2ZmZmZmZjsNCgkJaGVpZ2h0OiAycHg7DQoJCXdpZHRoOiAyNnB4Ow0KCQlkaXNwbGF5OiBibG9jazsNCgkJbWFyZ2luOjAgYXV0bzsNCgkJbWFyZ2luOjVweCAxMXB4Ow0KCX0NCgkNCgkubWFpbi1oZWFkZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCAuY2FydC1wYW5lbHsNCgkJbGVmdDowcHggIWltcG9ydGFudDsNCgkJcmlnaHQ6YXV0bzsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5mby1ib3hlZCAuaW5mby1ib3h7DQoJCW1hcmdpbi1sZWZ0OjBweDsNCgl9DQoJDQoJLm1haW4tc2xpZGVyIC5zbGlkZXsNCgkJcGFkZGluZy10b3A6MTUwcHg7DQoJCXBhZGRpbmctYm90dG9tOjEwMHB4Ow0KCX0NCgkNCgkubmF2LW91dGVyIC5tb2JpbGUtbmF2LXRvZ2dsZXJ7DQoJCWRpc3BsYXk6IGJsb2NrOw0KCQltYXJnaW46IDA7DQoJCXBhZGRpbmc6IDEycHggMHB4Ow0KCQltYXJnaW4tbGVmdDogMjBweDsNCgkJZm9udC1zaXplOjI2cHg7DQoJfQ0KCQ0KCSNuYXZiYXJTdXBwb3J0ZWRDb250ZW50ew0KCQlkaXNwbGF5OmJsb2NrOw0KCX0NCgkNCgkubWFpbi1tZW51IHsNCgkJd2lkdGg6IDEwMCU7DQoJCWRpc3BsYXk6IG5vbmU7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtb25lIC5oZWFkZXItbG93ZXIgLm5hdi1vdXRlcjpiZWZvcmUsDQoJLm1vYmlsZS1tZW51IC5uYXZpZ2F0aW9uIGxpLmhhcy1tZWdhLW1lbnV7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLm1haW4taGVhZGVyLmhlYWRlci1zdHlsZS1vbmUgLmhlYWRlci1sb3dlcnsNCgkJYmFja2dyb3VuZC1jb2xvcjojMjIyMjIyOw0KCX0NCgkNCgkubWFpbi1oZWFkZXIgLm9wdGlvbnMtYm94ew0KCQl0b3A6OHB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5pbm5lci1jb250YWluZXIgLmxvZ28tYm94ew0KCQl3aWR0aDphdXRvOw0KCQltYXJnaW4tcmlnaHQ6MHB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAubmF2LW91dGVyew0KCQlmbG9hdDpub25lOw0KCX0NCgkNCgkudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveCAudGV4dCBiciwNCgkubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdGhyZWUsDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxlZnR7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAuc29jaWFsLW5hdnsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXRvcDowcHg7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCX0NCgkNCgkubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXRocmVlIC5vcHRpb25zLWJveHsNCgkJdG9wOjBweDsNCgkJDQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdGhyZWV7DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCX0NCgkNCgkubWFpbi1zbGlkZXIgLnNsaWRlew0KCQlwYWRkaW5nOjE1MHB4IDBweCAxNTBweDsNCgl9DQoJDQoJaDF7DQoJCWZvbnQtc2l6ZTo0MHB4Ow0KCX0NCgkNCgkubWFpbi1zbGlkZXItdGhyZWUgLnNsaWRlew0KCQlwYWRkaW5nOjIwMHB4IDBweCAxNTBweDsNCgl9DQoJDQoJLm1haW4tZm9vdGVyIC5mb290ZXItYm90dG9tIC5wdWxsLWxlZnQsDQoJLm1haW4tZm9vdGVyIC5mb290ZXItYm90dG9tIC5wdWxsLXJpZ2h0ew0KCQl3aWR0aDoxMDAlOw0KCQl0ZXh0LWFsaWduOmNlbnRlcjsNCgl9DQoJDQoJLmZhY3QtY291bnRlci10d28gLmNvbHVtbnsNCgkJcGFkZGluZy1sZWZ0OjBweDsNCgkJZGlzcGxheTpibG9jazsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJfQ0KCQ0KCS5mYWN0LWNvdW50ZXItdHdvIC5jb2x1bW4gLmlubmVyIC5jb3VudC1vdXRlcnsNCgkJcGFkZGluZy1sZWZ0OjBweDsNCgl9DQoJDQoJLmZhY3QtY291bnRlci10d28gLmNvbHVtbiAuaW5uZXIgLmljb257DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCQltYXJnaW46MCBhdXRvOw0KCQltYXJnaW4tYm90dG9tOjI1cHg7DQoJfQ0KCQ0KCS5wcmljZS1ibG9jay5hY3RpdmV7DQoJCXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOw0KCX0NCgkNCgkuZmx1aWQtc2VjdGlvbi10d28gLmxvd2VyLWNvbnRlbnQsDQoJLnByb2Nlc3Mtc2VjdGlvbjpiZWZvcmUsDQoJLnNlYy10aXRsZSBoMiBicnsNCgkJZGlzcGxheTpub25lOw0KCX0NCgkNCgkudGVhbS1zZWN0aW9uLXR3b3sNCgkJcGFkZGluZy1ib3R0b206NTBweDsNCgl9DQoJDQoJLndlLWFyZS1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAuaW5uZXItY29sdW1uew0KCQlwYWRkaW5nOjBweDsNCgkJYm9yZGVyOjBweDsNCgl9DQoJDQoJLndlLWFyZS1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAudGV4dHsNCgkJbWF4LXdpZHRoOjEwMCU7DQoJfQ0KCQ0KCS53ZS1hcmUtc2VjdGlvbiAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbiAucHVsbC1yaWdodHsNCgkJd2lkdGg6MTAwJTsNCgl9DQoJDQoJLndlLWFyZS1zZWN0aW9uLA0KCS5mZWF0dXJlZC1zZWN0aW9uLXR3b3sNCgkJcGFkZGluZy1ib3R0b206MTAwcHg7DQoJfQ0KCQ0KCS5mb290ZXItc3R5bGUtdHdvIC5sb3dlci1ib3ggLmZvb3Rlci1jb2x1bW57DQoJCXdpZHRoOjEwMCU7DQoJfQ0KCQ0KCS5mb290ZXItc3R5bGUtdHdvIC5mb290ZXItYm90dG9tIC5wdWxsLWxlZnQsDQoJLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci1ib3R0b20gLnB1bGwtcmlnaHR7DQoJCXdpZHRoOjEwMCU7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCX0NCgkNCgkubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXRocmVlIC5vcHRpb25zLWJveCAuYnRuLWJveHsNCgkJZGlzcGxheTpibG9jazsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28gLm5hdi1vdXRlciAubW9iaWxlLW5hdi10b2dnbGVyLA0KCS5oZWFkZXItc3R5bGUtdGhyZWUgLm5hdi1vdXRlciAubW9iaWxlLW5hdi10b2dnbGVyew0KCQljb2xvcjojMDAwMDAwOw0KCQl3aWR0aDo0MHB4Ow0KCQloZWlnaHQ6IDgwcHg7DQoJCWxpbmUtaGVpZ2h0OiA2MnB4Ow0KCX0NCgkNCgkubmV3cy1wb3N0czpiZWZvcmUsDQoJLm1haW4taGVhZGVyLmhlYWRlci1zdHlsZS10aHJlZSAub3B0aW9ucy1ib3gsDQoJLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAub3B0aW9ucy1ib3h7DQoJCWRpc3BsYXk6bm9uZTsNCgl9DQoJDQoJLnBhZ2UtdGl0bGV7DQoJCXBhZGRpbmc6MTAwcHggMHB4IDEwMHB4Ow0KCX0NCgkNCgkuZXJyb3Itc2VjdGlvbiBoMnsNCgkJZm9udC1zaXplOjMycHg7DQoJfQ0KCQ0KCS5jb21taW5nLXNvb24gLmNvbnRlbnQgLmNvbnRlbnQtaW5uZXIgaDJ7DQoJCWZvbnQtc2l6ZTo2MHB4Ow0KCQltYXJnaW4tYm90dG9tOjMwcHg7DQoJfQ0KCQ0KCS5ibG9nLWRldGFpbCAuaW5uZXItYm94IC50d28tY29sdW1uIC5pbWFnZXsNCgkJbWFyZ2luLWJvdHRvbTozMHB4Ow0KCX0NCgkNCgkucHJvamVjdHMtZGV0YWlsLXNlY3Rpb24gLmxvd2VyLWNvbnRlbnQgLnR3by1jb2x1bW4gaW1new0KCQl3aWR0aDoxMDAlOw0KCQlkaXNwbGF5OmJsb2NrOw0KCQltYXJnaW4tYm90dG9tOjI1cHg7DQoJfQ0KCQ0KCS5uZXdzLXBvc3RzIC5wcmV2LXBvc3QsDQoJLm5ld3MtcG9zdHMgLm5leHQtcG9zdHsNCgkJd2lkdGg6MTAwJTsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJCXBhZGRpbmc6MHB4Ow0KCX0NCgkNCgkubmV3cy1wb3N0cyAubmV4dC1wb3N0IC5pbWFnZSwNCgkubmV3cy1wb3N0cyAucHJldi1wb3N0IC5pbWFnZXsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXRvcDowcHg7DQoJCW1hcmdpbjowIGF1dG87DQoJCW1hcmdpbi1ib3R0b206MTVweDsNCgl9DQoJDQoJLm5ld3MtcG9zdHMgLnByZXYtcG9zdHsNCgkJbWFyZ2luLWJvdHRvbToyNXB4Ow0KCX0NCgkNCgkuc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3ggLmF1dGhvci10aHVtYnsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCW1hcmdpbi1ib3R0b206MjBweDsNCgl9DQoJDQoJLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnR7DQoJCXBhZGRpbmc6MHB4Ow0KCQlib3JkZXI6bm9uZTsNCgl9DQoJDQoJLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IC50aGVtZS1idG57DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCQlyaWdodDowcHg7DQoJfQ0KCQ0KCS5jYXJ0LXNlY3Rpb24gLmNhcnQtb3B0aW9ucyAudGhlbWUtYnRuLA0KCS5jYXJ0LXNlY3Rpb24gLmNhcnQtb3B0aW9ucyAucHVsbC1sZWZ0LA0KCS5jYXJ0LXNlY3Rpb24gLmNhcnQtb3B0aW9ucyAucHVsbC1yaWdodHsNCgkJd2lkdGg6MTAwJTsNCgl9DQoJDQoJLmNhcnQtc2VjdGlvbiAuYXBwbHktY291cG9uIC5mb3JtLWdyb3Vwew0KCQltYXJnaW4tcmlnaHQ6MHB4Ow0KCQl3aWR0aDoxMDAlOw0KCX0NCgkNCgkuY2FydC1zZWN0aW9uIC5hcHBseS1jb3Vwb24gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdew0KCQl3aWR0aDoxMDAlOw0KCQltYXJnaW4tYm90dG9tOjBweDsNCgl9DQoJDQoJLnJ0bCAubWFpbi1oZWFkZXIgLmluZm8tYm94ew0KCQlwYWRkaW5nLXJpZ2h0OjBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJfQ0KCQ0KCS5ydGwgLm1haW4tZm9vdGVyIC5mb290ZXItYm90dG9tIC5wdWxsLXJpZ2h0ew0KCQl0ZXh0LWFsaWduOmNlbnRlcjsNCgl9DQoJDQoJLnJ0bCAuZmFjdC1jb3VudGVyLXR3byAuY291bnQtb3V0ZXJ7DQoJCXBhZGRpbmctcmlnaHQ6MHB4Ow0KCQl0ZXh0LWFsaWduOmNlbnRlcjsNCgl9DQoJDQoJLnJ0bCAubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXRocmVlIC5uYXYtb3V0ZXJ7DQoJCWZsb2F0OmxlZnQ7DQoJfQ0KCQ0KCS5ydGwgLndlLWFyZS1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAudGV4dHsNCgkJdGV4dC1hbGlnbjpyaWdodDsNCgl9DQoJDQoJLnJ0bCAuc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudHsNCgkJcGFkZGluZy1yaWdodDowcHg7DQoJfQ0KCQ0KCS5ydGwgLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IC50aGVtZS1idG57DQoJCWxlZnQ6MHB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3by5maXhlZC1oZWFkZXIgLmhlYWRlci11cHBlcnsNCgkJcG9zaXRpb246Zml4ZWQ7DQoJfQ0KCQ0KfQ0KDQpAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU5OXB4KXsNCgkNCgkuc2VhcmNoLXBvcHVwIC5zZWFyY2gtZm9ybSBmaWVsZHNldCBpbnB1dFt0eXBlPSJzdWJtaXQiXXsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXdpZHRoOjEwMCU7DQoJCWRpc3BsYXk6YmxvY2s7DQoJCWJvcmRlci1yYWRpdXM6OHB4Ow0KCX0NCgkNCgkuc2VhcmNoLXBvcHVwIC5zZWFyY2gtZm9ybSBmaWVsZHNldCBpbnB1dFt0eXBlPSJzZWFyY2giXXsNCgkJcGFkZGluZy1yaWdodDoyMHB4Ow0KCX0NCg0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLWxlZnR7DQoJCXdpZHRoOjEwMCU7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCX0NCgkNCgkubWFpbi1zbGlkZXItdHdvIC5saW5rLWJveCAudGhlbWUtYnRuew0KCQltYXJnaW4tcmlnaHQ6MTBweDsNCgl9DQoJDQoJLnNlYy10aXRsZSBoMiBiciwNCgkubWFpbi1zbGlkZXItdHdvIC50ZXh0IGJyLA0KCS5jb21taW5nLXNvb24gLmNvbnRlbnQgLmNvbnRlbnQtaW5uZXIgLnRleHQgYnIsDQoJLmNvbnRhY3Qtc2VjdGlvbi10d28gLmltYWdlLWNvbHVtbiAuaW1hZ2U6YmVmb3JlLA0KCS5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLXJpZ2h0ew0KCQlkaXNwbGF5Om5vbmU7DQoJfQ0KCQ0KCS5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLmlubmVyLWNvbHVtbnsNCgkJcGFkZGluZy1yaWdodDowcHg7DQoJfQ0KCQ0KCS5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLm51bWJlci1ib3h7DQoJCW1hcmdpbi10b3A6NDBweDsNCgl9DQoJDQoJLm1haW4tc2xpZGVyIC5vd2wtZG90c3sNCgkJcmlnaHQ6MjBweDsNCgl9DQoJDQoJLnByb2plY3QtYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94ew0KCQlwYWRkaW5nOjI1cHggMjBweDsNCgl9DQoJDQoJaDJ7DQoJCWZvbnQtc2l6ZTozMHB4OwkNCgl9DQoJDQoJLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94ew0KCQlsZWZ0OjE1cHg7DQoJfQ0KCQ0KCS5wcm9qZWN0cy1zZWN0aW9uIC5sb3dlci10ZXh0ew0KCQl0ZXh0LWFsaWduOmNlbnRlcjsNCgl9DQoJDQoJLnByb2plY3RzLXNlY3Rpb24gLm93bC1kb3Rzew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgkJdG9wOjBweDsNCgkJYm90dG9tOjBweDsNCgkJdGV4dC1hbGlnbjpjZW50ZXI7DQoJfQ0KCQ0KCS5wYWdlLXRpdGxlIC5wdWxsLXJpZ2h0ew0KCQl3aWR0aDoxMDAlOw0KCX0NCgkNCgkucGFnZS1icmVhZGNydW1iew0KCQltYXJnaW4tdG9wOjEwcHg7DQoJfQ0KCQ0KCS5lcnJvci1zZWN0aW9uIGgxew0KCQlmb250LXNpemU6MTAwcHg7DQoJfQ0KCQ0KCS5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zIC5zb2NpYWwtYm94ew0KCQl3aWR0aDoxMDAlOw0KCQltYXJnaW4tdG9wOjEwcHg7DQoJfQ0KCQ0KCS5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zIC5zb2NpYWwtYm94IGxpew0KCQltYXJnaW4tbGVmdDowcHg7DQoJCW1hcmdpbi1yaWdodDoxNXB4Ow0KCX0NCgkNCgkuaW50cm9kdWN0aW9uLXNlY3Rpb24gLmltYWdlLWNvbHVtbiAuaW5uZXItY29sdW1uew0KCQlwYWRkaW5nOjBweDsNCgl9DQoJDQoJLmludHJvZHVjdGlvbi1zZWN0aW9uIC5pbWFnZS1jb2x1bW4gLmltYWdlIC5wcm9qZWN0c3sNCgkJcGFkZGluZzoyMnB4IDIwcHg7DQoJCWxlZnQ6MHB4Ow0KCX0NCgkNCgkuc3R5bGVkLWZvcm0gLmZvcm0tZ3JvdXAuc29jaWFsLWxpbmtzLXR3bywNCgkuc3R5bGVkLWZvcm0gLnN1Ym1pdC10ZXh0ew0KCQl3aWR0aDoxMDAlOw0KCX0NCgkNCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NzlweCkgew0KCQ0KCS5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdHdvIC5vcHRpb25zLWJveHsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXdpZHRoOjEwMCU7DQoJfQ0KCQ0KCS5tYWluLWhlYWRlciAub3B0aW9ucy1ib3ggLmdyaWQtYm94ew0KCQlmbG9hdDpsZWZ0Ow0KCQlib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGRkZGQ7DQoJfQ0KCQ0KCS5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lciAubG9nby1ib3h7DQoJCXBhZGRpbmc6NXB4IDE1cHggNXB4Ow0KCX0NCgkNCgkuaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5zZWFyY2gtYm94LW91dGVyew0KCQlmbG9hdDpyaWdodDsNCgl9DQoJDQoJLm1haW4taGVhZGVyIC5vcHRpb25zLWJveCAuYnRuLWJveHsNCgkJZGlzcGxheTpub25lOw0KCX0NCgkNCgkubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLW9uZSAub3B0aW9ucy1ib3ggLmdyaWQtYm94LA0KCS5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdGhyZWUgLm9wdGlvbnMtYm94IC5ncmlkLWJveHsNCgkJYm9yZGVyOm5vbmU7DQoJfQ0KCQ0KCWgxew0KCQlmb250LXNpemU6MzJweDsNCgl9DQoJDQoJLm1haW4tc2xpZGVyIC5saW5rLWJveCAudmlkZW8tYm94ew0KCQltYXJnaW4tcmlnaHQ6MjBweDsNCgl9DQoJDQoJLm1haW4tc2xpZGVyLXRocmVlIC5saW5rLWJveCAudGhlbWUtYnRuLA0KCS5tYWluLXNsaWRlci10d28gLmxpbmstYm94IC50aGVtZS1idG57DQoJCW1hcmdpbi1ib3R0b206MTJweDsNCgl9DQoJDQoJLmxpc3Qtc3R5bGUtdHdvIGxpew0KCQlwYWRkaW5nLWxlZnQ6MHB4Ow0KCX0NCgkNCgkubGlzdC1zdHlsZS10d28gbGkgLmljb257DQoJCXBvc2l0aW9uOnJlbGF0aXZlOw0KCQltYXJnaW4tYm90dG9tOjIwcHg7DQoJfQ0KCQ0KCS5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC5pbm5lci1jb250YWluZXI6OmJlZm9yZXsNCgkJYmFja2dyb3VuZC1zaXplOmNvdmVyOw0KCX0NCgkNCgloMnsNCgkJZm9udC1zaXplOjI2cHg7CQ0KCX0NCgkNCgkuZmVhdHVyZS1ibG9jay10d28gLmlubmVyLWJveHsNCgkJcGFkZGluZy1sZWZ0OjBweDsNCgl9DQoJDQoJLmZlYXR1cmUtYmxvY2stdHdvIC5pbm5lci1ib3ggLmljb24tYm94ew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgkJdG9wOjBweDsNCgkJbWFyZ2luLWJvdHRvbToyNXB4Ow0KCX0NCgkNCgkuZmVhdHVyZWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5saW5rLWJveCAudmlkZW8tYm94ew0KCQltYXJnaW4tYm90dG9tOjI1cHg7DQoJfQ0KCQ0KCS5mb290ZXItc3R5bGUtdHdvIC5sb3dlci1ib3ggLmZvb3Rlci1jb2x1bW4gLmZvb3Rlci13aWRnZXR7DQoJCXBhZGRpbmctbGVmdDoyMHB4Ow0KCQlwYWRkaW5nLXJpZ2h0OjIwcHg7DQoJfQ0KCQ0KCS5jb21taW5nLXNvb24gLmVtYWlsZWQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJzdWJtaXQiXSwgLmNvbW1pbmctc29vbiAuZW1haWxlZC1mb3JtIGJ1dHRvbnsNCgkJcG9zaXRpb246cmVsYXRpdmU7DQoJCXRvcDowcHg7DQoJCXJpZ2h0OjBweDsNCgkJd2lkdGg6MTAwJTsNCgkJbWFyZ2luLXRvcDoxMnB4Ow0KCX0NCgkNCgkuYWNjb3JkaW9uLWJveCAuYmxvY2sgLmFjYy1idG57DQoJCXBhZGRpbmc6MTNweCAxNXB4IDEzcHggMTVweDsNCgl9DQoJDQoJLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5pY29uLW91dGVyew0KCQlwb3NpdGlvbjpyZWxhdGl2ZTsNCgkJYm9yZGVyOjFweCBzb2xpZCAjZDdkN2Q3Ow0KCX0NCgkNCgkuc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzIC50YWItYnRucyAudGFiLWJ0bnsNCgkJd2lkdGg6MTAwJTsNCgkJbWFyZ2luLWJvdHRvbTo4cHg7DQoJCXRleHQtYWxpZ246Y2VudGVyOw0KCX0NCgkNCgkucnRsIC5tYWluLWhlYWRlciAuaGVhZGVyLWxvd2VyIC5zZWFyY2gtYm94LW91dGVyew0KCQltYXJnaW4tbGVmdDowcHg7DQoJfQ0KCQ0KCS5ydGwgLmxpc3Qtc3R5bGUtdHdvIGxpew0KCQlwYWRkaW5nLXJpZ2h0OjBweDsNCgl9DQoJDQoJLnJ0bCAuZmVhdHVyZS1ibG9jay10d28gLmlubmVyLWJveHsNCgkJcGFkZGluZy1yaWdodDowcHg7DQoJfQ0KCQ0KCS5ydGwgLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5hY2MtYnRuew0KCQlwYWRkaW5nOjEzcHggMTVweCAxM3B4IDE1cHg7DQoJfQ0KCQ0KCS5ydGwgLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5pY29uLW91dGVyew0KCQlib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkN2Q3ZDc7DQoJfQ0KCQ0KCS5ydGwgLnNlYXJjaC1wb3B1cCAuc2VhcmNoLWZvcm0gZmllbGRzZXQgaW5wdXRbdHlwZT0ic2VhcmNoIl17DQoJCXBhZGRpbmc6MjBweCAyMHB4IDIwcHggMjBweDsNCgl9DQoJDQoJLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtbmF2IGxpew0KCQltYXJnaW4tcmlnaHQ6MTBweDsNCgl9DQoJDQoJLnBvcnRmb2xpby1zZWN0aW9uIC5maWx0ZXJzIC5maWx0ZXItdGFic3sNCgkJcGFkZGluZzowcHggMTVweDsNCgl9DQoJDQoJLmhlYWRlci1zdHlsZS10d28uZml4ZWQtaGVhZGVyIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lciAubG9nby1ib3h7DQoJCXBhZGRpbmc6NXB4IDE1cHg7DQoJfQ0KCQ0KfQ0K"}},"time_used":40,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":16,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/bootstrap.min.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.700Z","timestamp":1785129412700,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/bootstrap.min.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 9521\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":37051,"size_decoded":9758,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32039)","md5":"a6b40b3ce40edb17d2a7504a14584679","sha1":"ba02f42b09dae9954e8ce169bcfd56c8363ffc40","sha256":"948d847179045bed3e8e2a13621680921366e4a6fdca222693f4a465eb5c7a7c","sha512":"ea770c8fbeeafd4c6824ff8e4cf0dd81735118838217e658101a59ab2121d74bf1f5d0624b249c796b8a859a565268023375096dabdd9c0935a0e60df6e53e3f","ssdeep":"768:o2rGy27UwlNqMl95qNmCFejhqs8snmiOCSFXfbx8Gf3Zq7Q:Jg73zhq02vbJ3ZKQ","tlshash":"fbf28606b23031a147efb1e1525b020e7239696ee906907c78b99af53db9c48717bf3d","first_seen":"2023-03-07T01:10:50Z","last_seen":"2026-07-27T13:50:48.672522Z","times_seen":460,"resource_available":true,"data":"LyohCiAqIEJvb3RzdHJhcCB2My4zLjcgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE2IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MXx8YlswXT4zKXRocm93IG5ldyBFcnJvcigiQm9vdHN0cmFwJ3MgSmF2YVNjcmlwdCByZXF1aXJlcyBqUXVlcnkgdmVyc2lvbiAxLjkuMSBvciBoaWdoZXIsIGJ1dCBsb3dlciB0aGFuIHZlcnNpb24gNCIpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvb3RzdHJhcCIpLGI9e1dlYmtpdFRyYW5zaXRpb246IndlYmtpdFRyYW5zaXRpb25FbmQiLE1velRyYW5zaXRpb246InRyYW5zaXRpb25lbmQiLE9UcmFuc2l0aW9uOiJvVHJhbnNpdGlvbkVuZCBvdHJhbnNpdGlvbmVuZCIsdHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCJ9O2Zvcih2YXIgYyBpbiBiKWlmKHZvaWQgMCE9PWEuc3R5bGVbY10pcmV0dXJue2VuZDpiW2NdfTtyZXR1cm4hMX1hLmZuLmVtdWxhdGVUcmFuc2l0aW9uRW5kPWZ1bmN0aW9uKGIpe3ZhciBjPSExLGQ9dGhpczthKHRoaXMpLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe2M9ITB9KTt2YXIgZT1mdW5jdGlvbigpe2N8fGEoZCkudHJpZ2dlcihhLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQpfTtyZXR1cm4gc2V0VGltZW91dChlLGIpLHRoaXN9LGEoZnVuY3Rpb24oKXthLnN1cHBvcnQudHJhbnNpdGlvbj1iKCksYS5zdXBwb3J0LnRyYW5zaXRpb24mJihhLmV2ZW50LnNwZWNpYWwuYnNUcmFuc2l0aW9uRW5kPXtiaW5kVHlwZTphLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsZGVsZWdhdGVUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxoYW5kbGU6ZnVuY3Rpb24oYil7aWYoYShiLnRhcmdldCkuaXModGhpcykpcmV0dXJuIGIuaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjciLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YSgiIyI9PT1mP1tdOmYpO2ImJmIucHJldmVudERlZmF1bHQoKSxnLmxlbmd0aHx8KGc9ZS5jbG9zZXN0KCIuYWxlcnQiKSksZy50cmlnZ2VyKGI9YS5FdmVudCgiY2xvc2UuYnMuYWxlcnQiKSksYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KGcucmVtb3ZlQ2xhc3MoImluIiksYS5zdXBwb3J0LnRyYW5zaXRpb24mJmcuaGFzQ2xhc3MoImZhZGUiKT9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixjKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmMoKSl9O3ZhciBlPWEuZm4uYWxlcnQ7YS5mbi5hbGVydD1iLGEuZm4uYWxlcnQuQ29uc3RydWN0b3I9ZCxhLmZuLmFsZXJ0Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5hbGVydD1lLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5hbGVydC5kYXRhLWFwaSIsYyxkLnByb3RvdHlwZS5jbG9zZSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5idXR0b24iKSxmPSJvYmplY3QiPT10eXBlb2YgYiYmYjtlfHxkLmRhdGEoImJzLmJ1dHRvbiIsZT1uZXcgYyh0aGlzLGYpKSwidG9nZ2xlIj09Yj9lLnRvZ2dsZSgpOmImJmUuc2V0U3RhdGUoYil9KX12YXIgYz1mdW5jdGlvbihiLGQpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYy5ERUZBVUxUUyxkKSx0aGlzLmlzTG9hZGluZz0hMX07Yy5WRVJTSU9OPSIzLjMuNyIsYy5ERUZBVUxUUz17bG9hZGluZ1RleHQ6ImxvYWRpbmcuLi4ifSxjLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihiKXt2YXIgYz0iZGlzYWJsZWQiLGQ9dGhpcy4kZWxlbWVudCxlPWQuaXMoImlucHV0Iik/InZhbCI6Imh0bWwiLGY9ZC5kYXRhKCk7Yis9IlRleHQiLG51bGw9PWYucmVzZXRUZXh0JiZkLmRhdGEoInJlc2V0VGV4dCIsZFtlXSgpKSxzZXRUaW1lb3V0KGEucHJveHkoZnVuY3Rpb24oKXtkW2VdKG51bGw9PWZbYl0/dGhpcy5vcHRpb25zW2JdOmZbYl0pLCJsb2FkaW5nVGV4dCI9PWI/KHRoaXMuaXNMb2FkaW5nPSEwLGQuYWRkQ2xhc3MoYykuYXR0cihjLGMpLnByb3AoYywhMCkpOnRoaXMuaXNMb2FkaW5nJiYodGhpcy5pc0xvYWRpbmc9ITEsZC5yZW1vdmVDbGFzcyhjKS5yZW1vdmVBdHRyKGMpLnByb3AoYywhMSkpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KS5jbG9zZXN0KCIuYnRuIik7Yi5jYWxsKGQsInRvZ2dsZSIpLGEoYy50YXJnZXQpLmlzKCdpbnB1dFt0eXBlPSJyYWRpbyJdLCBpbnB1dFt0eXBlPSJjaGVja2JveCJdJyl8fChjLnByZXZlbnREZWZhdWx0KCksZC5pcygiaW5wdXQsYnV0dG9uIik/ZC50cmlnZ2VyKCJmb2N1cyIpOmQuZmluZCgiaW5wdXQ6dmlzaWJsZSxidXR0b246dmlzaWJsZSIpLmZpcnN0KCkudHJpZ2dlcigiZm9jdXMiKSl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjciLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO2lmKCEoYT50aGlzLiRpdGVtcy5sZW5ndGgtMXx8YTwwKSlyZXR1cm4gdGhpcy5zbGlkaW5nP3RoaXMuJGVsZW1lbnQub25lKCJzbGlkLmJzLmNhcm91c2VsIixmdW5jdGlvbigpe2IudG8oYSl9KTpjPT1hP3RoaXMucGF1c2UoKS5jeWNsZSgpOnRoaXMuc2xpZGUoYT5jPyJuZXh0IjoicHJldiIsdGhpcy4kaXRlbXMuZXEoYSkpfSxjLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSEwKSx0aGlzLiRlbGVtZW50LmZpbmQoIi5uZXh0LCAucHJldiIpLmxlbmd0aCYmYS5zdXBwb3J0LnRyYW5zaXRpb24mJih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKSx0aGlzLmN5Y2xlKCEwKSksdGhpcy5pbnRlcnZhbD1jbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXN9LGMucHJvdG90eXBlLm5leHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5zbGlkaW5nKXJldHVybiB0aGlzLnNsaWRlKCJuZXh0Iil9LGMucHJvdG90eXBlLnByZXY9ZnVuY3Rpb24oKXtpZighdGhpcy5zbGlkaW5nKXJldHVybiB0aGlzLnNsaWRlKCJwcmV2Iil9LGMucHJvdG90eXBlLnNsaWRlPWZ1bmN0aW9uKGIsZCl7dmFyIGU9dGhpcy4kZWxlbWVudC5maW5kKCIuaXRlbS5hY3RpdmUiKSxmPWR8fHRoaXMuZ2V0SXRlbUZvckRpcmVjdGlvbihiLGUpLGc9dGhpcy5pbnRlcnZhbCxoPSJuZXh0Ij09Yj8ibGVmdCI6InJpZ2h0IixpPXRoaXM7aWYoZi5oYXNDbGFzcygiYWN0aXZlIikpcmV0dXJuIHRoaXMuc2xpZGluZz0hMTt2YXIgaj1mWzBdLGs9YS5FdmVudCgic2xpZGUuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmosZGlyZWN0aW9uOmh9KTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoayksIWsuaXNEZWZhdWx0UHJldmVudGVkKCkpe2lmKHRoaXMuc2xpZGluZz0hMCxnJiZ0aGlzLnBhdXNlKCksdGhpcy4kaW5kaWNhdG9ycy5sZW5ndGgpe3RoaXMuJGluZGljYXRvcnMuZmluZCgiLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKTt2YXIgbD1hKHRoaXMuJGluZGljYXRvcnMuY2hpbGRyZW4oKVt0aGlzLmdldEl0ZW1JbmRleChmKV0pO2wmJmwuYWRkQ2xhc3MoImFjdGl2ZSIpfXZhciBtPWEuRXZlbnQoInNsaWQuYnMuY2Fyb3VzZWwiLHtyZWxhdGVkVGFyZ2V0OmosZGlyZWN0aW9uOmh9KTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoInNsaWRlIik/KGYuYWRkQ2xhc3MoYiksZlswXS5vZmZzZXRXaWR0aCxlLmFkZENsYXNzKGgpLGYuYWRkQ2xhc3MoaCksZS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtmLnJlbW92ZUNsYXNzKFtiLGhdLmpvaW4oIiAiKSkuYWRkQ2xhc3MoImFjdGl2ZSIpLGUucmVtb3ZlQ2xhc3MoWyJhY3RpdmUiLGhdLmpvaW4oIiAiKSksaS5zbGlkaW5nPSExLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLiRlbGVtZW50LnRyaWdnZXIobSl9LDApfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKSk6KGUucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLGYuYWRkQ2xhc3MoImFjdGl2ZSIpLHRoaXMuc2xpZGluZz0hMSx0aGlzLiRlbGVtZW50LnRyaWdnZXIobSkpLGcmJnRoaXMuY3ljbGUoKSx0aGlzfX07dmFyIGQ9YS5mbi5jYXJvdXNlbDthLmZuLmNhcm91c2VsPWIsYS5mbi5jYXJvdXNlbC5Db25zdHJ1Y3Rvcj1jLGEuZm4uY2Fyb3VzZWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNhcm91c2VsPWQsdGhpc307dmFyIGU9ZnVuY3Rpb24oYyl7dmFyIGQsZT1hKHRoaXMpLGY9YShlLmF0dHIoImRhdGEtdGFyZ2V0Iil8fChkPWUuYXR0cigiaHJlZiIpKSYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKTtpZihmLmhhc0NsYXNzKCJjYXJvdXNlbCIpKXt2YXIgZz1hLmV4dGVuZCh7fSxmLmRhdGEoKSxlLmRhdGEoKSksaD1lLmF0dHIoImRhdGEtc2xpZGUtdG8iKTtoJiYoZy5pbnRlcnZhbD0hMSksYi5jYWxsKGYsZyksaCYmZi5kYXRhKCJicy5jYXJvdXNlbCIpLnRvKGgpLGMucHJldmVudERlZmF1bHQoKX19O2EoZG9jdW1lbnQpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlXSIsZSkub24oImNsaWNrLmJzLmNhcm91c2VsLmRhdGEtYXBpIiwiW2RhdGEtc2xpZGUtdG9dIixlKSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtcmlkZT0iY2Fyb3VzZWwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpO2IuY2FsbChjLGMuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjLGQ9Yi5hdHRyKCJkYXRhLXRhcmdldCIpfHwoYz1iLmF0dHIoImhyZWYiKSkmJmMucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKTtyZXR1cm4gYShkKX1mdW5jdGlvbiBjKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5jb2xsYXBzZSIpLGY9YS5leHRlbmQoe30sZC5ERUZBVUxUUyxjLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpOyFlJiZmLnRvZ2dsZSYmL3Nob3d8aGlkZS8udGVzdChiKSYmKGYudG9nZ2xlPSExKSxlfHxjLmRhdGEoImJzLmNvbGxhcHNlIixlPW5ldyBkKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXSgpfSl9dmFyIGQ9ZnVuY3Rpb24oYixjKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYyksdGhpcy4kdHJpZ2dlcj1hKCdbZGF0YS10b2dnbGU9ImNvbGxhcHNlIl1baHJlZj0iIycrYi5pZCsnIl0sW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtdGFyZ2V0PSIjJytiLmlkKyciXScpLHRoaXMudHJhbnNpdGlvbmluZz1udWxsLHRoaXMub3B0aW9ucy5wYXJlbnQ/dGhpcy4kcGFyZW50PXRoaXMuZ2V0UGFyZW50KCk6dGhpcy5hZGRBcmlhQW5kQ29sbGFwc2VkQ2xhc3ModGhpcy4kZWxlbWVudCx0aGlzLiR0cmlnZ2VyKSx0aGlzLm9wdGlvbnMudG9nZ2xlJiZ0aGlzLnRvZ2dsZSgpfTtkLlZFUlNJT049IjMuMy43IixkLlRSQU5TSVRJT05fRFVSQVRJT049MzUwLGQuREVGQVVMVFM9e3RvZ2dsZTohMH0sZC5wcm90b3R5cGUuZGltZW5zaW9uPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudC5oYXNDbGFzcygid2lkdGgiKTtyZXR1cm4gYT8id2lkdGgiOiJoZWlnaHQifSxkLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7aWYoIXRoaXMudHJhbnNpdGlvbmluZyYmIXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiLGU9dGhpcy4kcGFyZW50JiZ0aGlzLiRwYXJlbnQuY2hpbGRyZW4oIi5wYW5lbCIpLmNoaWxkcmVuKCIuaW4sIC5jb2xsYXBzaW5nIik7aWYoIShlJiZlLmxlbmd0aCYmKGI9ZS5kYXRhKCJicy5jb2xsYXBzZSIpLGImJmIudHJhbnNpdGlvbmluZykpKXt2YXIgZj1hLkV2ZW50KCJzaG93LmJzLmNvbGxhcHNlIik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGYpLCFmLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtlJiZlLmxlbmd0aCYmKGMuY2FsbChlLCJoaWRlIiksYnx8ZS5kYXRhKCJicy5jb2xsYXBzZSIsbnVsbCkpO3ZhciBnPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2UiKS5hZGRDbGFzcygiY29sbGFwc2luZyIpW2ddKDApLmF0dHIoImFyaWEtZXhwYW5kZWQiLCEwKSx0aGlzLiR0cmlnZ2VyLnJlbW92ZUNsYXNzKCJjb2xsYXBzZWQiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy50cmFuc2l0aW9uaW5nPTE7dmFyIGg9ZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJjb2xsYXBzaW5nIikuYWRkQ2xhc3MoImNvbGxhcHNlIGluIilbZ10oIiIpLHRoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuY29sbGFwc2UiKX07aWYoIWEuc3VwcG9ydC50cmFuc2l0aW9uKXJldHVybiBoLmNhbGwodGhpcyk7dmFyIGk9YS5jYW1lbENhc2UoWyJzY3JvbGwiLGddLmpvaW4oIi0iKSk7dGhpcy4kZWxlbWVudC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShoLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pW2ddKHRoaXMuJGVsZW1lbnRbMF1baV0pfX19fSxkLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKCl7aWYoIXRoaXMudHJhbnNpdGlvbmluZyYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiaW4iKSl7dmFyIGI9YS5FdmVudCgiaGlkZS5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSwhYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGM9dGhpcy5kaW1lbnNpb24oKTt0aGlzLiRlbGVtZW50W2NdKHRoaXMuJGVsZW1lbnRbY10oKSlbMF0ub2Zmc2V0SGVpZ2h0LHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoImNvbGxhcHNpbmciKS5yZW1vdmVDbGFzcygiY29sbGFwc2UgaW4iKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSksdGhpcy4kdHJpZ2dlci5hZGRDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBlPWZ1bmN0aW9uKCl7dGhpcy50cmFuc2l0aW9uaW5nPTAsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSIpLnRyaWdnZXIoImhpZGRlbi5icy5jb2xsYXBzZSIpfTtyZXR1cm4gYS5zdXBwb3J0LnRyYW5zaXRpb24/dm9pZCB0aGlzLiRlbGVtZW50W2NdKDApLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixhLnByb3h5KGUsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGQuVFJBTlNJVElPTl9EVVJBVElPTik6ZS5jYWxsKHRoaXMpfX19LGQucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbigpe3RoaXNbdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiaW4iKT8iaGlkZSI6InNob3ciXSgpfSxkLnByb3RvdHlwZS5nZXRQYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gYSh0aGlzLm9wdGlvbnMucGFyZW50KS5maW5kKCdbZGF0YS10b2dnbGU9ImNvbGxhcHNlIl1bZGF0YS1wYXJlbnQ9IicrdGhpcy5vcHRpb25zLnBhcmVudCsnIl0nKS5lYWNoKGEucHJveHkoZnVuY3Rpb24oYyxkKXt2YXIgZT1hKGQpO3RoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKGIoZSksZSl9LHRoaXMpKS5lbmQoKX0sZC5wcm90b3R5cGUuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzPWZ1bmN0aW9uKGEsYil7dmFyIGM9YS5oYXNDbGFzcygiaW4iKTthLmF0dHIoImFyaWEtZXhwYW5kZWQiLGMpLGIudG9nZ2xlQ2xhc3MoImNvbGxhcHNlZCIsIWMpLmF0dHIoImFyaWEtZXhwYW5kZWQiLGMpfTt2YXIgZT1hLmZuLmNvbGxhcHNlO2EuZm4uY29sbGFwc2U9YyxhLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yPWQsYS5mbi5jb2xsYXBzZS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uY29sbGFwc2U9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY29sbGFwc2UuZGF0YS1hcGkiLCdbZGF0YS10b2dnbGU9ImNvbGxhcHNlIl0nLGZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7ZS5hdHRyKCJkYXRhLXRhcmdldCIpfHxkLnByZXZlbnREZWZhdWx0KCk7dmFyIGY9YihlKSxnPWYuZGF0YSgiYnMuY29sbGFwc2UiKSxoPWc/InRvZ2dsZSI6ZS5kYXRhKCk7Yy5jYWxsKGYsaCl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7dmFyIGM9Yi5hdHRyKCJkYXRhLXRhcmdldCIpO2N8fChjPWIuYXR0cigiaHJlZiIpLGM9YyYmLyNbQS1aYS16XS8udGVzdChjKSYmYy5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKTt2YXIgZD1jJiZhKGMpO3JldHVybiBkJiZkLmxlbmd0aD9kOmIucGFyZW50KCl9ZnVuY3Rpb24gYyhjKXtjJiYzPT09Yy53aGljaHx8KGEoZSkucmVtb3ZlKCksYShmKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWIoZCksZj17cmVsYXRlZFRhcmdldDp0aGlzfTtlLmhhc0NsYXNzKCJvcGVuIikmJihjJiYiY2xpY2siPT1jLnR5cGUmJi9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoYy50YXJnZXQudGFnTmFtZSkmJmEuY29udGFpbnMoZVswXSxjLnRhcmdldCl8fChlLnRyaWdnZXIoYz1hLkV2ZW50KCJoaWRlLmJzLmRyb3Bkb3duIixmKSksYy5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8KGQuYXR0cigiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksZS5yZW1vdmVDbGFzcygib3BlbiIpLnRyaWdnZXIoYS5FdmVudCgiaGlkZGVuLmJzLmRyb3Bkb3duIixmKSkpKSl9KSl9ZnVuY3Rpb24gZChiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxkPWMuZGF0YSgiYnMuZHJvcGRvd24iKTtkfHxjLmRhdGEoImJzLmRyb3Bkb3duIixkPW5ldyBnKHRoaXMpKSwic3RyaW5nIj09dHlwZW9mIGImJmRbYl0uY2FsbChjKX0pfXZhciBlPSIuZHJvcGRvd24tYmFja2Ryb3AiLGY9J1tkYXRhLXRvZ2dsZT0iZHJvcGRvd24iXScsZz1mdW5jdGlvbihiKXthKGIpLm9uKCJjbGljay5icy5kcm9wZG93biIsdGhpcy50b2dnbGUpfTtnLlZFUlNJT049IjMuMy43IixnLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oZCl7dmFyIGU9YSh0aGlzKTtpZighZS5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGY9YihlKSxnPWYuaGFzQ2xhc3MoIm9wZW4iKTtpZihjKCksIWcpeyJvbnRvdWNoc3RhcnQiaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYhZi5jbG9zZXN0KCIubmF2YmFyLW5hdiIpLmxlbmd0aCYmYShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuYWRkQ2xhc3MoImRyb3Bkb3duLWJhY2tkcm9wIikuaW5zZXJ0QWZ0ZXIoYSh0aGlzKSkub24oImNsaWNrIixjKTt2YXIgaD17cmVsYXRlZFRhcmdldDp0aGlzfTtpZihmLnRyaWdnZXIoZD1hLkV2ZW50KCJzaG93LmJzLmRyb3Bkb3duIixoKSksZC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47ZS50cmlnZ2VyKCJmb2N1cyIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIiksZi50b2dnbGVDbGFzcygib3BlbiIpLnRyaWdnZXIoYS5FdmVudCgic2hvd24uYnMuZHJvcGRvd24iLGgpKX1yZXR1cm4hMX19LGcucHJvdG90eXBlLmtleWRvd249ZnVuY3Rpb24oYyl7aWYoLygzOHw0MHwyN3wzMikvLnRlc3QoYy53aGljaCkmJiEvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpKXt2YXIgZD1hKHRoaXMpO2lmKGMucHJldmVudERlZmF1bHQoKSxjLnN0b3BQcm9wYWdhdGlvbigpLCFkLmlzKCIuZGlzYWJsZWQsIDpkaXNhYmxlZCIpKXt2YXIgZT1iKGQpLGc9ZS5oYXNDbGFzcygib3BlbiIpO2lmKCFnJiYyNyE9Yy53aGljaHx8ZyYmMjc9PWMud2hpY2gpcmV0dXJuIDI3PT1jLndoaWNoJiZlLmZpbmQoZikudHJpZ2dlcigiZm9jdXMiKSxkLnRyaWdnZXIoImNsaWNrIik7dmFyIGg9IiBsaTpub3QoLmRpc2FibGVkKTp2aXNpYmxlIGEiLGk9ZS5maW5kKCIuZHJvcGRvd24tbWVudSIraCk7aWYoaS5sZW5ndGgpe3ZhciBqPWkuaW5kZXgoYy50YXJnZXQpOzM4PT1jLndoaWNoJiZqPjAmJmotLSw0MD09Yy53aGljaCYmajxpLmxlbmd0aC0xJiZqKyssfmp8fChqPTApLGkuZXEoaikudHJpZ2dlcigiZm9jdXMiKX19fX07dmFyIGg9YS5mbi5kcm9wZG93bjthLmZuLmRyb3Bkb3duPWQsYS5mbi5kcm9wZG93bi5Db25zdHJ1Y3Rvcj1nLGEuZm4uZHJvcGRvd24ubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmRyb3Bkb3duPWgsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIixjKS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLCIuZHJvcGRvd24gZm9ybSIsZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX0pLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS50b2dnbGUpLm9uKCJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIixmLGcucHJvdG90eXBlLmtleWRvd24pLm9uKCJrZXlkb3duLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duLW1lbnUiLGcucHJvdG90eXBlLmtleWRvd24pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiLGQpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1hKHRoaXMpLGY9ZS5kYXRhKCJicy5tb2RhbCIpLGc9YS5leHRlbmQoe30sYy5ERUZBVUxUUyxlLmRhdGEoKSwib2JqZWN0Ij09dHlwZW9mIGImJmIpO2Z8fGUuZGF0YSgiYnMubW9kYWwiLGY9bmV3IGModGhpcyxnKSksInN0cmluZyI9PXR5cGVvZiBiP2ZbYl0oZCk6Zy5zaG93JiZmLnNob3coZCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMub3B0aW9ucz1jLHRoaXMuJGJvZHk9YShkb2N1bWVudC5ib2R5KSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy4kZGlhbG9nPXRoaXMuJGVsZW1lbnQuZmluZCgiLm1vZGFsLWRpYWxvZyIpLHRoaXMuJGJhY2tkcm9wPW51bGwsdGhpcy5pc1Nob3duPW51bGwsdGhpcy5vcmlnaW5hbEJvZHlQYWQ9bnVsbCx0aGlzLnNjcm9sbGJhcldpZHRoPTAsdGhpcy5pZ25vcmVCYWNrZHJvcENsaWNrPSExLHRoaXMub3B0aW9ucy5yZW1vdGUmJnRoaXMuJGVsZW1lbnQuZmluZCgiLm1vZGFsLWNvbnRlbnQiKS5sb2FkKHRoaXMub3B0aW9ucy5yZW1vdGUsYS5wcm94eShmdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQudHJpZ2dlcigibG9hZGVkLmJzLm1vZGFsIil9LHRoaXMpKX07Yy5WRVJTSU9OPSIzLjMuNyIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTMwMCxjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2JhY2tkcm9wOiEwLGtleWJvYXJkOiEwLHNob3c6ITB9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pc1Nob3duP3RoaXMuaGlkZSgpOnRoaXMuc2hvdyhhKX0sYy5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbihiKXt2YXIgZD10aGlzLGU9YS5FdmVudCgic2hvdy5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO3RoaXMuJGVsZW1lbnQudHJpZ2dlcihlKSx0aGlzLmlzU2hvd258fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fCh0aGlzLmlzU2hvd249ITAsdGhpcy5jaGVja1Njcm9sbGJhcigpLHRoaXMuc2V0U2Nyb2xsYmFyKCksdGhpcy4kYm9keS5hZGRDbGFzcygibW9kYWwtb3BlbiIpLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIiwnW2RhdGEtZGlzbWlzcz0ibW9kYWwiXScsYS5wcm94eSh0aGlzLmhpZGUsdGhpcykpLHRoaXMuJGRpYWxvZy5vbigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKCl7ZC4kZWxlbWVudC5vbmUoIm1vdXNldXAuZGlzbWlzcy5icy5tb2RhbCIsZnVuY3Rpb24oYil7YShiLnRhcmdldCkuaXMoZC4kZWxlbWVudCkmJihkLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITApfSl9KSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7dmFyIGU9YS5zdXBwb3J0LnRyYW5zaXRpb24mJmQuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKTtkLiRlbGVtZW50LnBhcmVudCgpLmxlbmd0aHx8ZC4kZWxlbWVudC5hcHBlbmRUbyhkLiRib2R5KSxkLiRlbGVtZW50LnNob3coKS5zY3JvbGxUb3AoMCksZC5hZGp1c3REaWFsb2coKSxlJiZkLiRlbGVtZW50WzBdLm9mZnNldFdpZHRoLGQuJGVsZW1lbnQuYWRkQ2xhc3MoImluIiksZC5lbmZvcmNlRm9jdXMoKTt2YXIgZj1hLkV2ZW50KCJzaG93bi5icy5tb2RhbCIse3JlbGF0ZWRUYXJnZXQ6Yn0pO2U/ZC4kZGlhbG9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmdW5jdGlvbigpe2QuJGVsZW1lbnQudHJpZ2dlcigiZm9jdXMiKS50cmlnZ2VyKGYpfSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pKX0sYy5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbihiKXtiJiZiLnByZXZlbnREZWZhdWx0KCksYj1hLkV2ZW50KCJoaWRlLmJzLm1vZGFsIiksdGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpLHRoaXMuaXNTaG93biYmIWIuaXNEZWZhdWx0UHJldmVudGVkKCkmJih0aGlzLmlzU2hvd249ITEsdGhpcy5lc2NhcGUoKSx0aGlzLnJlc2l6ZSgpLGEoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImluIikub2ZmKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIikub2ZmKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiKSx0aGlzLiRkaWFsb2cub2ZmKCJtb3VzZWRvd24uZGlzbWlzcy5icy5tb2RhbCIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/dGhpcy4kZWxlbWVudC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eSh0aGlzLmhpZGVNb2RhbCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTp0aGlzLmhpZGVNb2RhbCgpKX0sYy5wcm90b3R5cGUuZW5mb3JjZUZvY3VzPWZ1bmN0aW9uKCl7YShkb2N1bWVudCkub2ZmKCJmb2N1c2luLmJzLm1vZGFsIikub24oImZvY3VzaW4uYnMubW9kYWwiLGEucHJveHkoZnVuY3Rpb24oYSl7ZG9jdW1lbnQ9PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudFswXT09PWEudGFyZ2V0fHx0aGlzLiRlbGVtZW50LmhhcyhhLnRhcmdldCkubGVuZ3RofHx0aGlzLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIil9LHRoaXMpKX0sYy5wcm90b3R5cGUuZXNjYXBlPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMua2V5Ym9hcmQ/dGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpezI3PT1hLndoaWNoJiZ0aGlzLmhpZGUoKX0sdGhpcykpOnRoaXMuaXNTaG93bnx8dGhpcy4kZWxlbWVudC5vZmYoImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt0aGlzLmlzU2hvd24/YSh3aW5kb3cpLm9uKCJyZXNpemUuYnMubW9kYWwiLGEucHJveHkodGhpcy5oYW5kbGVVcGRhdGUsdGhpcykpOmEod2luZG93KS5vZmYoInJlc2l6ZS5icy5tb2RhbCIpfSxjLnByb3RvdHlwZS5oaWRlTW9kYWw9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMuJGVsZW1lbnQuaGlkZSgpLHRoaXMuYmFja2Ryb3AoZnVuY3Rpb24oKXthLiRib2R5LnJlbW92ZUNsYXNzKCJtb2RhbC1vcGVuIiksYS5yZXNldEFkanVzdG1lbnRzKCksYS5yZXNldFNjcm9sbGJhcigpLGEuJGVsZW1lbnQudHJpZ2dlcigiaGlkZGVuLmJzLm1vZGFsIil9KX0sYy5wcm90b3R5cGUucmVtb3ZlQmFja2Ryb3A9ZnVuY3Rpb24oKXt0aGlzLiRiYWNrZHJvcCYmdGhpcy4kYmFja2Ryb3AucmVtb3ZlKCksdGhpcy4kYmFja2Ryb3A9bnVsbH0sYy5wcm90b3R5cGUuYmFja2Ryb3A9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT8iZmFkZSI6IiI7aWYodGhpcy5pc1Nob3duJiZ0aGlzLm9wdGlvbnMuYmFja2Ryb3Ape3ZhciBmPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZlO2lmKHRoaXMuJGJhY2tkcm9wPWEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJtb2RhbC1iYWNrZHJvcCAiK2UpLmFwcGVuZFRvKHRoaXMuJGJvZHkpLHRoaXMuJGVsZW1lbnQub24oImNsaWNrLmRpc21pc3MuYnMubW9kYWwiLGEucHJveHkoZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz92b2lkKHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSk6dm9pZChhLnRhcmdldD09PWEuY3VycmVudFRhcmdldCYmKCJzdGF0aWMiPT10aGlzLm9wdGlvbnMuYmFja2Ryb3A/dGhpcy4kZWxlbWVudFswXS5mb2N1cygpOnRoaXMuaGlkZSgpKSl9LHRoaXMpKSxmJiZ0aGlzLiRiYWNrZHJvcFswXS5vZmZzZXRXaWR0aCx0aGlzLiRiYWNrZHJvcC5hZGRDbGFzcygiaW4iKSwhYilyZXR1cm47Zj90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYikuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpiKCl9ZWxzZSBpZighdGhpcy5pc1Nob3duJiZ0aGlzLiRiYWNrZHJvcCl7dGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoImluIik7dmFyIGc9ZnVuY3Rpb24oKXtkLnJlbW92ZUJhY2tkcm9wKCksYiYmYigpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGJhY2tkcm9wLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixnKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLkJBQ0tEUk9QX1RSQU5TSVRJT05fRFVSQVRJT04pOmcoKX1lbHNlIGImJmIoKX0sYy5wcm90b3R5cGUuaGFuZGxlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5hZGp1c3REaWFsb2coKX0sYy5wcm90b3R5cGUuYWRqdXN0RGlhbG9nPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudFswXS5zY3JvbGxIZWlnaHQ+ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDt0aGlzLiRlbGVtZW50LmNzcyh7cGFkZGluZ0xlZnQ6IXRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJmE/dGhpcy5zY3JvbGxiYXJXaWR0aDoiIixwYWRkaW5nUmlnaHQ6dGhpcy5ib2R5SXNPdmVyZmxvd2luZyYmIWE/dGhpcy5zY3JvbGxiYXJXaWR0aDoiIn0pfSxjLnByb3RvdHlwZS5yZXNldEFkanVzdG1lbnRzPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiIiLHBhZGRpbmdSaWdodDoiIn0pfSxjLnByb3RvdHlwZS5jaGVja1Njcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXdpbmRvdy5pbm5lcldpZHRoO2lmKCFhKXt2YXIgYj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7YT1iLnJpZ2h0LU1hdGguYWJzKGIubGVmdCl9dGhpcy5ib2R5SXNPdmVyZmxvd2luZz1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoPGEsdGhpcy5zY3JvbGxiYXJXaWR0aD10aGlzLm1lYXN1cmVTY3JvbGxiYXIoKX0sYy5wcm90b3R5cGUuc2V0U2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9cGFyc2VJbnQodGhpcy4kYm9keS5jc3MoInBhZGRpbmctcmlnaHQiKXx8MCwxMCk7dGhpcy5vcmlnaW5hbEJvZHlQYWQ9ZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHR8fCIiLHRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJnRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0IixhK3RoaXMuc2Nyb2xsYmFyV2lkdGgpfSxjLnByb3RvdHlwZS5yZXNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3RoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iix0aGlzLm9yaWdpbmFsQm9keVBhZCl9LGMucHJvdG90eXBlLm1lYXN1cmVTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0ibW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUiLHRoaXMuJGJvZHkuYXBwZW5kKGEpO3ZhciBiPWEub2Zmc2V0V2lkdGgtYS5jbGllbnRXaWR0aDtyZXR1cm4gdGhpcy4kYm9keVswXS5yZW1vdmVDaGlsZChhKSxifTt2YXIgZD1hLmZuLm1vZGFsO2EuZm4ubW9kYWw9YixhLmZuLm1vZGFsLkNvbnN0cnVjdG9yPWMsYS5mbi5tb2RhbC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4ubW9kYWw9ZCx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMubW9kYWwuZGF0YS1hcGkiLCdbZGF0YS10b2dnbGU9Im1vZGFsIl0nLGZ1bmN0aW9uKGMpe3ZhciBkPWEodGhpcyksZT1kLmF0dHIoImhyZWYiKSxmPWEoZC5hdHRyKCJkYXRhLXRhcmdldCIpfHxlJiZlLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIikpLGc9Zi5kYXRhKCJicy5tb2RhbCIpPyJ0b2dnbGUiOmEuZXh0ZW5kKHtyZW1vdGU6IS8jLy50ZXN0KGUpJiZlfSxmLmRhdGEoKSxkLmRhdGEoKSk7ZC5pcygiYSIpJiZjLnByZXZlbnREZWZhdWx0KCksZi5vbmUoInNob3cuYnMubW9kYWwiLGZ1bmN0aW9uKGEpe2EuaXNEZWZhdWx0UHJldmVudGVkKCl8fGYub25lKCJoaWRkZW4uYnMubW9kYWwiLGZ1bmN0aW9uKCl7ZC5pcygiOnZpc2libGUiKSYmZC50cmlnZ2VyKCJmb2N1cyIpfSl9KSxiLmNhbGwoZixnLHRoaXMpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50b29sdGlwIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7IWUmJi9kZXN0cm95fGhpZGUvLnRlc3QoYil8fChlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy43IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO2lmKGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c291dCI9PWIudHlwZT8iZm9jdXMiOiJob3ZlciJdPSExKSwhYy5pc0luU3RhdGVUcnVlKCkpcmV0dXJuIGNsZWFyVGltZW91dChjLnRpbWVvdXQpLGMuaG92ZXJTdGF0ZT0ib3V0IixjLm9wdGlvbnMuZGVsYXkmJmMub3B0aW9ucy5kZWxheS5oaWRlP3ZvaWQoYy50aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXsib3V0Ij09Yy5ob3ZlclN0YXRlJiZjLmhpZGUoKX0sYy5vcHRpb25zLmRlbGF5LmhpZGUpKTpjLmhpZGUoKX0sYy5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe3ZhciBiPWEuRXZlbnQoInNob3cuYnMuIit0aGlzLnR5cGUpO2lmKHRoaXMuaGFzQ29udGVudCgpJiZ0aGlzLmVuYWJsZWQpe3RoaXMuJGVsZW1lbnQudHJpZ2dlcihiKTt2YXIgZD1hLmNvbnRhaW5zKHRoaXMuJGVsZW1lbnRbMF0ub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsdGhpcy4kZWxlbWVudFswXSk7aWYoYi5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8IWQpcmV0dXJuO3ZhciBlPXRoaXMsZj10aGlzLnRpcCgpLGc9dGhpcy5nZXRVSUQodGhpcy50eXBlKTt0aGlzLnNldENvbnRlbnQoKSxmLmF0dHIoImlkIixnKSx0aGlzLiRlbGVtZW50LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGcpLHRoaXMub3B0aW9ucy5hbmltYXRpb24mJmYuYWRkQ2xhc3MoImZhZGUiKTt2YXIgaD0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLnBsYWNlbWVudD90aGlzLm9wdGlvbnMucGxhY2VtZW50LmNhbGwodGhpcyxmWzBdLHRoaXMuJGVsZW1lbnRbMF0pOnRoaXMub3B0aW9ucy5wbGFjZW1lbnQsaT0vXHM/YXV0bz9ccz8vaSxqPWkudGVzdChoKTtqJiYoaD1oLnJlcGxhY2UoaSwiIil8fCJ0b3AiKSxmLmRldGFjaCgpLmNzcyh7dG9wOjAsbGVmdDowLGRpc3BsYXk6ImJsb2NrIn0pLmFkZENsYXNzKGgpLmRhdGEoImJzLiIrdGhpcy50eXBlLHRoaXMpLHRoaXMub3B0aW9ucy5jb250YWluZXI/Zi5hcHBlbmRUbyh0aGlzLm9wdGlvbnMuY29udGFpbmVyKTpmLmluc2VydEFmdGVyKHRoaXMuJGVsZW1lbnQpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcigiaW5zZXJ0ZWQuYnMuIit0aGlzLnR5cGUpO3ZhciBrPXRoaXMuZ2V0UG9zaXRpb24oKSxsPWZbMF0ub2Zmc2V0V2lkdGgsbT1mWzBdLm9mZnNldEhlaWdodDtpZihqKXt2YXIgbj1oLG89dGhpcy5nZXRQb3NpdGlvbih0aGlzLiR2aWV3cG9ydCk7aD0iYm90dG9tIj09aCYmay5ib3R0b20rbT5vLmJvdHRvbT8idG9wIjoidG9wIj09aCYmay50b3AtbTxvLnRvcD8iYm90dG9tIjoicmlnaHQiPT1oJiZrLnJpZ2h0K2w+by53aWR0aD8ibGVmdCI6ImxlZnQiPT1oJiZrLmxlZnQtbDxvLmxlZnQ/InJpZ2h0IjpoLGYucmVtb3ZlQ2xhc3MobikuYWRkQ2xhc3MoaCl9dmFyIHA9dGhpcy5nZXRDYWxjdWxhdGVkT2Zmc2V0KGgsayxsLG0pO3RoaXMuYXBwbHlQbGFjZW1lbnQocCxoKTt2YXIgcT1mdW5jdGlvbigpe3ZhciBhPWUuaG92ZXJTdGF0ZTtlLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLiIrZS50eXBlKSxlLmhvdmVyU3RhdGU9bnVsbCwib3V0Ij09YSYmZS5sZWF2ZShlKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJHRpcC5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLHEpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6cSgpfX0sYy5wcm90b3R5cGUuYXBwbHlQbGFjZW1lbnQ9ZnVuY3Rpb24oYixjKXt2YXIgZD10aGlzLnRpcCgpLGU9ZFswXS5vZmZzZXRXaWR0aCxmPWRbMF0ub2Zmc2V0SGVpZ2h0LGc9cGFyc2VJbnQoZC5jc3MoIm1hcmdpbi10b3AiKSwxMCksaD1wYXJzZUludChkLmNzcygibWFyZ2luLWxlZnQiKSwxMCk7aXNOYU4oZykmJihnPTApLGlzTmFOKGgpJiYoaD0wKSxiLnRvcCs9ZyxiLmxlZnQrPWgsYS5vZmZzZXQuc2V0T2Zmc2V0KGRbMF0sYS5leHRlbmQoe3VzaW5nOmZ1bmN0aW9uKGEpe2QuY3NzKHt0b3A6TWF0aC5yb3VuZChhLnRvcCksbGVmdDpNYXRoLnJvdW5kKGEubGVmdCl9KX19LGIpLDApLGQuYWRkQ2xhc3MoImluIik7dmFyIGk9ZFswXS5vZmZzZXRXaWR0aCxqPWRbMF0ub2Zmc2V0SGVpZ2h0OyJ0b3AiPT1jJiZqIT1mJiYoYi50b3A9Yi50b3ArZi1qKTt2YXIgaz10aGlzLmdldFZpZXdwb3J0QWRqdXN0ZWREZWx0YShjLGIsaSxqKTtrLmxlZnQ/Yi5sZWZ0Kz1rLmxlZnQ6Yi50b3ArPWsudG9wO3ZhciBsPS90b3B8Ym90dG9tLy50ZXN0KGMpLG09bD8yKmsubGVmdC1lK2k6MiprLnRvcC1mK2osbj1sPyJvZmZzZXRXaWR0aCI6Im9mZnNldEhlaWdodCI7ZC5vZmZzZXQoYiksdGhpcy5yZXBsYWNlQXJyb3cobSxkWzBdW25dLGwpfSxjLnByb3RvdHlwZS5yZXBsYWNlQXJyb3c9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuYXJyb3coKS5jc3MoYz8ibGVmdCI6InRvcCIsNTAqKDEtYS9iKSsiJSIpLmNzcyhjPyJ0b3AiOiJsZWZ0IiwiIil9LGMucHJvdG90eXBlLnNldENvbnRlbnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnRpcCgpLGI9dGhpcy5nZXRUaXRsZSgpO2EuZmluZCgiLnRvb2x0aXAtaW5uZXIiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLnJlbW92ZUNsYXNzKCJmYWRlIGluIHRvcCBib3R0b20gbGVmdCByaWdodCIpfSxjLnByb3RvdHlwZS5oaWRlPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGQoKXsiaW4iIT1lLmhvdmVyU3RhdGUmJmYuZGV0YWNoKCksZS4kZWxlbWVudCYmZS4kZWxlbWVudC5yZW1vdmVBdHRyKCJhcmlhLWRlc2NyaWJlZGJ5IikudHJpZ2dlcigiaGlkZGVuLmJzLiIrZS50eXBlKSxiJiZiKCl9dmFyIGU9dGhpcyxmPWEodGhpcy4kdGlwKSxnPWEuRXZlbnQoImhpZGUuYnMuIit0aGlzLnR5cGUpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSwhZy5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm4gZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXN9LGMucHJvdG90eXBlLmZpeFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kZWxlbWVudDsoYS5hdHRyKCJ0aXRsZSIpfHwic3RyaW5nIiE9dHlwZW9mIGEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpKSYmYS5hdHRyKCJkYXRhLW9yaWdpbmFsLXRpdGxlIixhLmF0dHIoInRpdGxlIil8fCIiKS5hdHRyKCJ0aXRsZSIsIiIpfSxjLnByb3RvdHlwZS5oYXNDb250ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VGl0bGUoKX0sYy5wcm90b3R5cGUuZ2V0UG9zaXRpb249ZnVuY3Rpb24oYil7Yj1ifHx0aGlzLiRlbGVtZW50O3ZhciBjPWJbMF0sZD0iQk9EWSI9PWMudGFnTmFtZSxlPWMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bnVsbD09ZS53aWR0aCYmKGU9YS5leHRlbmQoe30sZSx7d2lkdGg6ZS5yaWdodC1lLmxlZnQsaGVpZ2h0OmUuYm90dG9tLWUudG9wfSkpO3ZhciBmPXdpbmRvdy5TVkdFbGVtZW50JiZjIGluc3RhbmNlb2Ygd2luZG93LlNWR0VsZW1lbnQsZz1kP3t0b3A6MCxsZWZ0OjB9OmY/bnVsbDpiLm9mZnNldCgpLGg9e3Njcm9sbDpkP2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wOmIuc2Nyb2xsVG9wKCl9LGk9ZD97d2lkdGg6YSh3aW5kb3cpLndpZHRoKCksaGVpZ2h0OmEod2luZG93KS5oZWlnaHQoKX06bnVsbDtyZXR1cm4gYS5leHRlbmQoe30sZSxoLGksZyl9LGMucHJvdG90eXBlLmdldENhbGN1bGF0ZWRPZmZzZXQ9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuImJvdHRvbSI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToidG9wIj09YT97dG9wOmIudG9wLWQsbGVmdDpiLmxlZnQrYi53aWR0aC8yLWMvMn06ImxlZnQiPT1hP3t0b3A6Yi50b3ArYi5oZWlnaHQvMi1kLzIsbGVmdDpiLmxlZnQtY306e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdCtiLndpZHRofX0sYy5wcm90b3R5cGUuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXt0b3A6MCxsZWZ0OjB9O2lmKCF0aGlzLiR2aWV3cG9ydClyZXR1cm4gZTt2YXIgZj10aGlzLm9wdGlvbnMudmlld3BvcnQmJnRoaXMub3B0aW9ucy52aWV3cG9ydC5wYWRkaW5nfHwwLGc9dGhpcy5nZXRQb3NpdGlvbih0aGlzLiR2aWV3cG9ydCk7aWYoL3JpZ2h0fGxlZnQvLnRlc3QoYSkpe3ZhciBoPWIudG9wLWYtZy5zY3JvbGwsaT1iLnRvcCtmLWcuc2Nyb2xsK2Q7aDxnLnRvcD9lLnRvcD1nLnRvcC1oOmk+Zy50b3ArZy5oZWlnaHQmJihlLnRvcD1nLnRvcCtnLmhlaWdodC1pKX1lbHNle3ZhciBqPWIubGVmdC1mLGs9Yi5sZWZ0K2YrYztqPGcubGVmdD9lLmxlZnQ9Zy5sZWZ0LWo6az5nLnJpZ2h0JiYoZS5sZWZ0PWcubGVmdCtnLndpZHRoLWspfXJldHVybiBlfSxjLnByb3RvdHlwZS5nZXRUaXRsZT1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kZWxlbWVudCxjPXRoaXMub3B0aW9ucztyZXR1cm4gYT1iLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKXx8KCJmdW5jdGlvbiI9PXR5cGVvZiBjLnRpdGxlP2MudGl0bGUuY2FsbChiWzBdKTpjLnRpdGxlKX0sYy5wcm90b3R5cGUuZ2V0VUlEPWZ1bmN0aW9uKGEpe2RvIGErPX5+KDFlNipNYXRoLnJhbmRvbSgpKTt3aGlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk7cmV0dXJuIGF9LGMucHJvdG90eXBlLnRpcD1mdW5jdGlvbigpe2lmKCF0aGlzLiR0aXAmJih0aGlzLiR0aXA9YSh0aGlzLm9wdGlvbnMudGVtcGxhdGUpLDEhPXRoaXMuJHRpcC5sZW5ndGgpKXRocm93IG5ldyBFcnJvcih0aGlzLnR5cGUrIiBgdGVtcGxhdGVgIG9wdGlvbiBtdXN0IGNvbnNpc3Qgb2YgZXhhY3RseSAxIHRvcC1sZXZlbCBlbGVtZW50ISIpO3JldHVybiB0aGlzLiR0aXB9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi50b29sdGlwLWFycm93Iil9LGMucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMH0sYy5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hMX0sYy5wcm90b3R5cGUudG9nZ2xlRW5hYmxlZD1mdW5jdGlvbigpe3RoaXMuZW5hYmxlZD0hdGhpcy5lbmFibGVkfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYil7dmFyIGM9dGhpcztiJiYoYz1hKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpLGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpKSxiPyhjLmluU3RhdGUuY2xpY2s9IWMuaW5TdGF0ZS5jbGljayxjLmlzSW5TdGF0ZVRydWUoKT9jLmVudGVyKGMpOmMubGVhdmUoYykpOmMudGlwKCkuaGFzQ2xhc3MoImluIik/Yy5sZWF2ZShjKTpjLmVudGVyKGMpfSxjLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KSx0aGlzLmhpZGUoZnVuY3Rpb24oKXthLiRlbGVtZW50Lm9mZigiLiIrYS50eXBlKS5yZW1vdmVEYXRhKCJicy4iK2EudHlwZSksYS4kdGlwJiZhLiR0aXAuZGV0YWNoKCksYS4kdGlwPW51bGwsYS4kYXJyb3c9bnVsbCxhLiR2aWV3cG9ydD1udWxsLGEuJGVsZW1lbnQ9bnVsbH0pfTt2YXIgZD1hLmZuLnRvb2x0aXA7YS5mbi50b29sdGlwPWIsYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yPWMsYS5mbi50b29sdGlwLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi50b29sdGlwPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy5wb3BvdmVyIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7IWUmJi9kZXN0cm95fGhpZGUvLnRlc3QoYil8fChlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyJTIwcmVxdWlyZXMlMjB0b29sdGlwLmh0bWwiKTtjLlZFUlNJT049IjMuMy43IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNyIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpewp0aGlzLmFjdGl2ZVRhcmdldD1iLHRoaXMuY2xlYXIoKTt2YXIgYz10aGlzLnNlbGVjdG9yKydbZGF0YS10YXJnZXQ9IicrYisnIl0sJyt0aGlzLnNlbGVjdG9yKydbaHJlZj0iJytiKyciXScsZD1hKGMpLnBhcmVudHMoImxpIikuYWRkQ2xhc3MoImFjdGl2ZSIpO2QucGFyZW50KCIuZHJvcGRvd24tbWVudSIpLmxlbmd0aCYmKGQ9ZC5jbG9zZXN0KCJsaS5kcm9wZG93biIpLmFkZENsYXNzKCJhY3RpdmUiKSksZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNyIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjciLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gZTxjJiYidG9wIjtpZigiYm90dG9tIj09dGhpcy5hZmZpeGVkKXJldHVybiBudWxsIT1jPyEoZSt0aGlzLnVucGluPD1mLnRvcCkmJiJib3R0b20iOiEoZStnPD1hLWQpJiYiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmZTw9Yz8idG9wIjpudWxsIT1kJiZpK2o+PWEtZCYmImJvdHRvbSJ9LGMucHJvdG90eXBlLmdldFBpbm5lZE9mZnNldD1mdW5jdGlvbigpe2lmKHRoaXMucGlubmVkT2Zmc2V0KXJldHVybiB0aGlzLnBpbm5lZE9mZnNldDt0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKGMuUkVTRVQpLmFkZENsYXNzKCJhZmZpeCIpO3ZhciBhPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxiPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCk7cmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0PWIudG9wLWF9LGMucHJvdG90eXBlLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wPWZ1bmN0aW9uKCl7c2V0VGltZW91dChhLnByb3h5KHRoaXMuY2hlY2tQb3NpdGlvbix0aGlzKSwxKX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbj1mdW5jdGlvbigpe2lmKHRoaXMuJGVsZW1lbnQuaXMoIjp2aXNpYmxlIikpe3ZhciBiPXRoaXMuJGVsZW1lbnQuaGVpZ2h0KCksZD10aGlzLm9wdGlvbnMub2Zmc2V0LGU9ZC50b3AsZj1kLmJvdHRvbSxnPU1hdGgubWF4KGEoZG9jdW1lbnQpLmhlaWdodCgpLGEoZG9jdW1lbnQuYm9keSkuaGVpZ2h0KCkpOyJvYmplY3QiIT10eXBlb2YgZCYmKGY9ZT1kKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmKGU9ZC50b3AodGhpcy4kZWxlbWVudCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoZj1kLmJvdHRvbSh0aGlzLiRlbGVtZW50KSk7dmFyIGg9dGhpcy5nZXRTdGF0ZShnLGIsZSxmKTtpZih0aGlzLmFmZml4ZWQhPWgpe251bGwhPXRoaXMudW5waW4mJnRoaXMuJGVsZW1lbnQuY3NzKCJ0b3AiLCIiKTt2YXIgaT0iYWZmaXgiKyhoPyItIitoOiIiKSxqPWEuRXZlbnQoaSsiLmJzLmFmZml4Iik7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGopLGouaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO3RoaXMuYWZmaXhlZD1oLHRoaXMudW5waW49ImJvdHRvbSI9PWg/dGhpcy5nZXRQaW5uZWRPZmZzZXQoKTpudWxsLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoaSkudHJpZ2dlcihpLnJlcGxhY2UoImFmZml4IiwiYWZmaXhlZCIpKyIuYnMuYWZmaXgiKX0iYm90dG9tIj09aCYmdGhpcy4kZWxlbWVudC5vZmZzZXQoe3RvcDpnLWItZn0pfX07dmFyIGQ9YS5mbi5hZmZpeDthLmZuLmFmZml4PWIsYS5mbi5hZmZpeC5Db25zdHJ1Y3Rvcj1jLGEuZm4uYWZmaXgubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmFmZml4PWQsdGhpc30sYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXNweT0iYWZmaXgiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGQ9Yy5kYXRhKCk7ZC5vZmZzZXQ9ZC5vZmZzZXR8fHt9LG51bGwhPWQub2Zmc2V0Qm90dG9tJiYoZC5vZmZzZXQuYm90dG9tPWQub2Zmc2V0Qm90dG9tKSxudWxsIT1kLm9mZnNldFRvcCYmKGQub2Zmc2V0LnRvcD1kLm9mZnNldFRvcCksYi5jYWxsKGMsZCl9KX0pfShqUXVlcnkpOw=="}},"time_used":43,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":20,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery-ui.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.712Z","timestamp":1785129412712,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/jquery-ui.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 122544\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":539425,"size_decoded":122783,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (1002), with CRLF line terminators","md5":"8ec0db1cb8ed2395c5df4e11be0d86e9","sha1":"d91e3c65e262d7e0021a926d228b9f6ad9aef4a9","sha256":"97bca2a8204372f21c29bc2d6ceeb192eab0719f1d154e1073f04acd8d2f0064","sha512":"0bbe5fd8a7991d8f0bb43a0dff3bc1130f5e2514524fcca9dc4662815155644d44a550ba2ffd92e86177c024d28319dc28a39d007c01bfde6bdbfe3d429c8f71","ssdeep":"12288:BEebHeg/md/AHhsncaL8ata+3XIdCgTf9kDUUB:EoHhsncaL8ata+3XIBf9kDUUB","tlshash":"66b4c7d5334f226f86ea3359983a9289e63dc075d202807d789d58dd25a8c2843b7ffd","first_seen":"2023-03-07T12:02:47Z","last_seen":"2026-07-29T00:40:16.355088Z","times_seen":1267,"resource_available":true,"data":"LyohIGpRdWVyeSBVSSAtIHYxLjEyLjEgLSAyMDE2LTA5LTE0DQoqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiogSW5jbHVkZXM6IHdpZGdldC5qcywgcG9zaXRpb24uanMsIGRhdGEuanMsIGRpc2FibGUtc2VsZWN0aW9uLmpzLCBlZmZlY3QuanMsIGVmZmVjdHMvZWZmZWN0LWJsaW5kLmpzLCBlZmZlY3RzL2VmZmVjdC1ib3VuY2UuanMsIGVmZmVjdHMvZWZmZWN0LWNsaXAuanMsIGVmZmVjdHMvZWZmZWN0LWRyb3AuanMsIGVmZmVjdHMvZWZmZWN0LWV4cGxvZGUuanMsIGVmZmVjdHMvZWZmZWN0LWZhZGUuanMsIGVmZmVjdHMvZWZmZWN0LWZvbGQuanMsIGVmZmVjdHMvZWZmZWN0LWhpZ2hsaWdodC5qcywgZWZmZWN0cy9lZmZlY3QtcHVmZi5qcywgZWZmZWN0cy9lZmZlY3QtcHVsc2F0ZS5qcywgZWZmZWN0cy9lZmZlY3Qtc2NhbGUuanMsIGVmZmVjdHMvZWZmZWN0LXNoYWtlLmpzLCBlZmZlY3RzL2VmZmVjdC1zaXplLmpzLCBlZmZlY3RzL2VmZmVjdC1zbGlkZS5qcywgZWZmZWN0cy9lZmZlY3QtdHJhbnNmZXIuanMsIGZvY3VzYWJsZS5qcywgZm9ybS1yZXNldC1taXhpbi5qcywganF1ZXJ5LTEtNy5qcywga2V5Y29kZS5qcywgbGFiZWxzLmpzLCBzY3JvbGwtcGFyZW50LmpzLCB0YWJiYWJsZS5qcywgdW5pcXVlLWlkLmpzLCB3aWRnZXRzL2FjY29yZGlvbi5qcywgd2lkZ2V0cy9hdXRvY29tcGxldGUuanMsIHdpZGdldHMvYnV0dG9uLmpzLCB3aWRnZXRzL2NoZWNrYm94cmFkaW8uanMsIHdpZGdldHMvY29udHJvbGdyb3VwLmpzLCB3aWRnZXRzL2RhdGVwaWNrZXIuanMsIHdpZGdldHMvZGlhbG9nLmpzLCB3aWRnZXRzL2RyYWdnYWJsZS5qcywgd2lkZ2V0cy9kcm9wcGFibGUuanMsIHdpZGdldHMvbWVudS5qcywgd2lkZ2V0cy9tb3VzZS5qcywgd2lkZ2V0cy9wcm9ncmVzc2Jhci5qcywgd2lkZ2V0cy9yZXNpemFibGUuanMsIHdpZGdldHMvc2VsZWN0YWJsZS5qcywgd2lkZ2V0cy9zZWxlY3RtZW51LmpzLCB3aWRnZXRzL3NsaWRlci5qcywgd2lkZ2V0cy9zb3J0YWJsZS5qcywgd2lkZ2V0cy9zcGlubmVyLmpzLCB3aWRnZXRzL3RhYnMuanMsIHdpZGdldHMvdG9vbHRpcC5qcw0KKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yczsgTGljZW5zZWQgTUlUICovDQoNCihmdW5jdGlvbiggZmFjdG9yeSApIHsNCglpZiAoIHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCApIHsNCg0KCQkvLyBBTUQuIFJlZ2lzdGVyIGFzIGFuIGFub255bW91cyBtb2R1bGUuDQoJCWRlZmluZShbICJqcXVlcnkiIF0sIGZhY3RvcnkgKTsNCgl9IGVsc2Ugew0KDQoJCS8vIEJyb3dzZXIgZ2xvYmFscw0KCQlmYWN0b3J5KCBqUXVlcnkgKTsNCgl9DQp9KGZ1bmN0aW9uKCAkICkgew0KDQokLnVpID0gJC51aSB8fCB7fTsNCg0KdmFyIHZlcnNpb24gPSAkLnVpLnZlcnNpb24gPSAiMS4xMi4xIjsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBXaWRnZXQgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IFdpZGdldA0KLy8+Pmdyb3VwOiBDb3JlDQovLz4+ZGVzY3JpcHRpb246IFByb3ZpZGVzIGEgZmFjdG9yeSBmb3IgY3JlYXRpbmcgc3RhdGVmdWwgd2lkZ2V0cyB3aXRoIGEgY29tbW9uIEFQSS4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9qUXVlcnkud2lkZ2V0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL3dpZGdldC8NCg0KDQoNCnZhciB3aWRnZXRVdWlkID0gMDsNCnZhciB3aWRnZXRTbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTsNCg0KJC5jbGVhbkRhdGEgPSAoIGZ1bmN0aW9uKCBvcmlnICkgew0KCXJldHVybiBmdW5jdGlvbiggZWxlbXMgKSB7DQoJCXZhciBldmVudHMsIGVsZW0sIGk7DQoJCWZvciAoIGkgPSAwOyAoIGVsZW0gPSBlbGVtc1sgaSBdICkgIT0gbnVsbDsgaSsrICkgew0KCQkJdHJ5IHsNCg0KCQkJCS8vIE9ubHkgdHJpZ2dlciByZW1vdmUgd2hlbiBuZWNlc3NhcnkgdG8gc2F2ZSB0aW1lDQoJCQkJZXZlbnRzID0gJC5fZGF0YSggZWxlbSwgImV2ZW50cyIgKTsNCgkJCQlpZiAoIGV2ZW50cyAmJiBldmVudHMucmVtb3ZlICkgew0KCQkJCQkkKCBlbGVtICkudHJpZ2dlckhhbmRsZXIoICJyZW1vdmUiICk7DQoJCQkJfQ0KDQoJCQkvLyBIdHRwOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC84MjM1DQoJCQl9IGNhdGNoICggZSApIHt9DQoJCX0NCgkJb3JpZyggZWxlbXMgKTsNCgl9Ow0KfSApKCAkLmNsZWFuRGF0YSApOw0KDQokLndpZGdldCA9IGZ1bmN0aW9uKCBuYW1lLCBiYXNlLCBwcm90b3R5cGUgKSB7DQoJdmFyIGV4aXN0aW5nQ29uc3RydWN0b3IsIGNvbnN0cnVjdG9yLCBiYXNlUHJvdG90eXBlOw0KDQoJLy8gUHJveGllZFByb3RvdHlwZSBhbGxvd3MgdGhlIHByb3ZpZGVkIHByb3RvdHlwZSB0byByZW1haW4gdW5tb2RpZmllZA0KCS8vIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYXMgYSBtaXhpbiBmb3IgbXVsdGlwbGUgd2lkZ2V0cyAoIzg4NzYpDQoJdmFyIHByb3hpZWRQcm90b3R5cGUgPSB7fTsNCg0KCXZhciBuYW1lc3BhY2UgPSBuYW1lLnNwbGl0KCAiLiIgKVsgMCBdOw0KCW5hbWUgPSBuYW1lLnNwbGl0KCAiLiIgKVsgMSBdOw0KCXZhciBmdWxsTmFtZSA9IG5hbWVzcGFjZSArICItIiArIG5hbWU7DQoNCglpZiAoICFwcm90b3R5cGUgKSB7DQoJCXByb3RvdHlwZSA9IGJhc2U7DQoJCWJhc2UgPSAkLldpZGdldDsNCgl9DQoNCglpZiAoICQuaXNBcnJheSggcHJvdG90eXBlICkgKSB7DQoJCXByb3RvdHlwZSA9ICQuZXh0ZW5kLmFwcGx5KCBudWxsLCBbIHt9IF0uY29uY2F0KCBwcm90b3R5cGUgKSApOw0KCX0NCg0KCS8vIENyZWF0ZSBzZWxlY3RvciBmb3IgcGx1Z2luDQoJJC5leHByWyAiOiIgXVsgZnVsbE5hbWUudG9Mb3dlckNhc2UoKSBdID0gZnVuY3Rpb24oIGVsZW0gKSB7DQoJCXJldHVybiAhISQuZGF0YSggZWxlbSwgZnVsbE5hbWUgKTsNCgl9Ow0KDQoJJFsgbmFtZXNwYWNlIF0gPSAkWyBuYW1lc3BhY2UgXSB8fCB7fTsNCglleGlzdGluZ0NvbnN0cnVjdG9yID0gJFsgbmFtZXNwYWNlIF1bIG5hbWUgXTsNCgljb25zdHJ1Y3RvciA9ICRbIG5hbWVzcGFjZSBdWyBuYW1lIF0gPSBmdW5jdGlvbiggb3B0aW9ucywgZWxlbWVudCApIHsNCg0KCQkvLyBBbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgIm5ldyIga2V5d29yZA0KCQlpZiAoICF0aGlzLl9jcmVhdGVXaWRnZXQgKSB7DQoJCQlyZXR1cm4gbmV3IGNvbnN0cnVjdG9yKCBvcHRpb25zLCBlbGVtZW50ICk7DQoJCX0NCg0KCQkvLyBBbGxvdyBpbnN0YW50aWF0aW9uIHdpdGhvdXQgaW5pdGlhbGl6aW5nIGZvciBzaW1wbGUgaW5oZXJpdGFuY2UNCgkJLy8gbXVzdCB1c2UgIm5ldyIga2V5d29yZCAodGhlIGNvZGUgYWJvdmUgYWx3YXlzIHBhc3NlcyBhcmdzKQ0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQl0aGlzLl9jcmVhdGVXaWRnZXQoIG9wdGlvbnMsIGVsZW1lbnQgKTsNCgkJfQ0KCX07DQoNCgkvLyBFeHRlbmQgd2l0aCB0aGUgZXhpc3RpbmcgY29uc3RydWN0b3IgdG8gY2Fycnkgb3ZlciBhbnkgc3RhdGljIHByb3BlcnRpZXMNCgkkLmV4dGVuZCggY29uc3RydWN0b3IsIGV4aXN0aW5nQ29uc3RydWN0b3IsIHsNCgkJdmVyc2lvbjogcHJvdG90eXBlLnZlcnNpb24sDQoNCgkJLy8gQ29weSB0aGUgb2JqZWN0IHVzZWQgdG8gY3JlYXRlIHRoZSBwcm90b3R5cGUgaW4gY2FzZSB3ZSBuZWVkIHRvDQoJCS8vIHJlZGVmaW5lIHRoZSB3aWRnZXQgbGF0ZXINCgkJX3Byb3RvOiAkLmV4dGVuZCgge30sIHByb3RvdHlwZSApLA0KDQoJCS8vIFRyYWNrIHdpZGdldHMgdGhhdCBpbmhlcml0IGZyb20gdGhpcyB3aWRnZXQgaW4gY2FzZSB0aGlzIHdpZGdldCBpcw0KCQkvLyByZWRlZmluZWQgYWZ0ZXIgYSB3aWRnZXQgaW5oZXJpdHMgZnJvbSBpdA0KCQlfY2hpbGRDb25zdHJ1Y3RvcnM6IFtdDQoJfSApOw0KDQoJYmFzZVByb3RvdHlwZSA9IG5ldyBiYXNlKCk7DQoNCgkvLyBXZSBuZWVkIHRvIG1ha2UgdGhlIG9wdGlvbnMgaGFzaCBhIHByb3BlcnR5IGRpcmVjdGx5IG9uIHRoZSBuZXcgaW5zdGFuY2UNCgkvLyBvdGhlcndpc2Ugd2UnbGwgbW9kaWZ5IHRoZSBvcHRpb25zIGhhc2ggb24gdGhlIHByb3RvdHlwZSB0aGF0IHdlJ3JlDQoJLy8gaW5oZXJpdGluZyBmcm9tDQoJYmFzZVByb3RvdHlwZS5vcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgYmFzZVByb3RvdHlwZS5vcHRpb25zICk7DQoJJC5lYWNoKCBwcm90b3R5cGUsIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHsNCgkJaWYgKCAhJC5pc0Z1bmN0aW9uKCB2YWx1ZSApICkgew0KCQkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gdmFsdWU7DQoJCQlyZXR1cm47DQoJCX0NCgkJcHJveGllZFByb3RvdHlwZVsgcHJvcCBdID0gKCBmdW5jdGlvbigpIHsNCgkJCWZ1bmN0aW9uIF9zdXBlcigpIHsNCgkJCQlyZXR1cm4gYmFzZS5wcm90b3R5cGVbIHByb3AgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQl9DQoNCgkJCWZ1bmN0aW9uIF9zdXBlckFwcGx5KCBhcmdzICkgew0KCQkJCXJldHVybiBiYXNlLnByb3RvdHlwZVsgcHJvcCBdLmFwcGx5KCB0aGlzLCBhcmdzICk7DQoJCQl9DQoNCgkJCXJldHVybiBmdW5jdGlvbigpIHsNCgkJCQl2YXIgX19zdXBlciA9IHRoaXMuX3N1cGVyOw0KCQkJCXZhciBfX3N1cGVyQXBwbHkgPSB0aGlzLl9zdXBlckFwcGx5Ow0KCQkJCXZhciByZXR1cm5WYWx1ZTsNCg0KCQkJCXRoaXMuX3N1cGVyID0gX3N1cGVyOw0KCQkJCXRoaXMuX3N1cGVyQXBwbHkgPSBfc3VwZXJBcHBseTsNCg0KCQkJCXJldHVyblZhbHVlID0gdmFsdWUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KDQoJCQkJdGhpcy5fc3VwZXIgPSBfX3N1cGVyOw0KCQkJCXRoaXMuX3N1cGVyQXBwbHkgPSBfX3N1cGVyQXBwbHk7DQoNCgkJCQlyZXR1cm4gcmV0dXJuVmFsdWU7DQoJCQl9Ow0KCQl9ICkoKTsNCgl9ICk7DQoJY29uc3RydWN0b3IucHJvdG90eXBlID0gJC53aWRnZXQuZXh0ZW5kKCBiYXNlUHJvdG90eXBlLCB7DQoNCgkJLy8gVE9ETzogcmVtb3ZlIHN1cHBvcnQgZm9yIHdpZGdldEV2ZW50UHJlZml4DQoJCS8vIGFsd2F5cyB1c2UgdGhlIG5hbWUgKyBhIGNvbG9uIGFzIHRoZSBwcmVmaXgsIGUuZy4sIGRyYWdnYWJsZTpzdGFydA0KCQkvLyBkb24ndCBwcmVmaXggZm9yIHdpZGdldHMgdGhhdCBhcmVuJ3QgRE9NLWJhc2VkDQoJCXdpZGdldEV2ZW50UHJlZml4OiBleGlzdGluZ0NvbnN0cnVjdG9yID8gKCBiYXNlUHJvdG90eXBlLndpZGdldEV2ZW50UHJlZml4IHx8IG5hbWUgKSA6IG5hbWUNCgl9LCBwcm94aWVkUHJvdG90eXBlLCB7DQoJCWNvbnN0cnVjdG9yOiBjb25zdHJ1Y3RvciwNCgkJbmFtZXNwYWNlOiBuYW1lc3BhY2UsDQoJCXdpZGdldE5hbWU6IG5hbWUsDQoJCXdpZGdldEZ1bGxOYW1lOiBmdWxsTmFtZQ0KCX0gKTsNCg0KCS8vIElmIHRoaXMgd2lkZ2V0IGlzIGJlaW5nIHJlZGVmaW5lZCB0aGVuIHdlIG5lZWQgdG8gZmluZCBhbGwgd2lkZ2V0cyB0aGF0DQoJLy8gYXJlIGluaGVyaXRpbmcgZnJvbSBpdCBhbmQgcmVkZWZpbmUgYWxsIG9mIHRoZW0gc28gdGhhdCB0aGV5IGluaGVyaXQgZnJvbQ0KCS8vIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGlzIHdpZGdldC4gV2UncmUgZXNzZW50aWFsbHkgdHJ5aW5nIHRvIHJlcGxhY2Ugb25lDQoJLy8gbGV2ZWwgaW4gdGhlIHByb3RvdHlwZSBjaGFpbi4NCglpZiAoIGV4aXN0aW5nQ29uc3RydWN0b3IgKSB7DQoJCSQuZWFjaCggZXhpc3RpbmdDb25zdHJ1Y3Rvci5fY2hpbGRDb25zdHJ1Y3RvcnMsIGZ1bmN0aW9uKCBpLCBjaGlsZCApIHsNCgkJCXZhciBjaGlsZFByb3RvdHlwZSA9IGNoaWxkLnByb3RvdHlwZTsNCg0KCQkJLy8gUmVkZWZpbmUgdGhlIGNoaWxkIHdpZGdldCB1c2luZyB0aGUgc2FtZSBwcm90b3R5cGUgdGhhdCB3YXMNCgkJCS8vIG9yaWdpbmFsbHkgdXNlZCwgYnV0IGluaGVyaXQgZnJvbSB0aGUgbmV3IHZlcnNpb24gb2YgdGhlIGJhc2UNCgkJCSQud2lkZ2V0KCBjaGlsZFByb3RvdHlwZS5uYW1lc3BhY2UgKyAiLiIgKyBjaGlsZFByb3RvdHlwZS53aWRnZXROYW1lLCBjb25zdHJ1Y3RvciwNCgkJCQljaGlsZC5fcHJvdG8gKTsNCgkJfSApOw0KDQoJCS8vIFJlbW92ZSB0aGUgbGlzdCBvZiBleGlzdGluZyBjaGlsZCBjb25zdHJ1Y3RvcnMgZnJvbSB0aGUgb2xkIGNvbnN0cnVjdG9yDQoJCS8vIHNvIHRoZSBvbGQgY2hpbGQgY29uc3RydWN0b3JzIGNhbiBiZSBnYXJiYWdlIGNvbGxlY3RlZA0KCQlkZWxldGUgZXhpc3RpbmdDb25zdHJ1Y3Rvci5fY2hpbGRDb25zdHJ1Y3RvcnM7DQoJfSBlbHNlIHsNCgkJYmFzZS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaCggY29uc3RydWN0b3IgKTsNCgl9DQoNCgkkLndpZGdldC5icmlkZ2UoIG5hbWUsIGNvbnN0cnVjdG9yICk7DQoNCglyZXR1cm4gY29uc3RydWN0b3I7DQp9Ow0KDQokLndpZGdldC5leHRlbmQgPSBmdW5jdGlvbiggdGFyZ2V0ICkgew0KCXZhciBpbnB1dCA9IHdpZGdldFNsaWNlLmNhbGwoIGFyZ3VtZW50cywgMSApOw0KCXZhciBpbnB1dEluZGV4ID0gMDsNCgl2YXIgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGg7DQoJdmFyIGtleTsNCgl2YXIgdmFsdWU7DQoNCglmb3IgKCA7IGlucHV0SW5kZXggPCBpbnB1dExlbmd0aDsgaW5wdXRJbmRleCsrICkgew0KCQlmb3IgKCBrZXkgaW4gaW5wdXRbIGlucHV0SW5kZXggXSApIHsNCgkJCXZhbHVlID0gaW5wdXRbIGlucHV0SW5kZXggXVsga2V5IF07DQoJCQlpZiAoIGlucHV0WyBpbnB1dEluZGV4IF0uaGFzT3duUHJvcGVydHkoIGtleSApICYmIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7DQoNCgkJCQkvLyBDbG9uZSBvYmplY3RzDQoJCQkJaWYgKCAkLmlzUGxhaW5PYmplY3QoIHZhbHVlICkgKSB7DQoJCQkJCXRhcmdldFsga2V5IF0gPSAkLmlzUGxhaW5PYmplY3QoIHRhcmdldFsga2V5IF0gKSA/DQoJCQkJCQkkLndpZGdldC5leHRlbmQoIHt9LCB0YXJnZXRbIGtleSBdLCB2YWx1ZSApIDoNCg0KCQkJCQkJLy8gRG9uJ3QgZXh0ZW5kIHN0cmluZ3MsIGFycmF5cywgZXRjLiB3aXRoIG9iamVjdHMNCgkJCQkJCSQud2lkZ2V0LmV4dGVuZCgge30sIHZhbHVlICk7DQoNCgkJCQkvLyBDb3B5IGV2ZXJ5dGhpbmcgZWxzZSBieSByZWZlcmVuY2UNCgkJCQl9IGVsc2Ugew0KCQkJCQl0YXJnZXRbIGtleSBdID0gdmFsdWU7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCXJldHVybiB0YXJnZXQ7DQp9Ow0KDQokLndpZGdldC5icmlkZ2UgPSBmdW5jdGlvbiggbmFtZSwgb2JqZWN0ICkgew0KCXZhciBmdWxsTmFtZSA9IG9iamVjdC5wcm90b3R5cGUud2lkZ2V0RnVsbE5hbWUgfHwgbmFtZTsNCgkkLmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdmFyIGlzTWV0aG9kQ2FsbCA9IHR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIjsNCgkJdmFyIGFyZ3MgPSB3aWRnZXRTbGljZS5jYWxsKCBhcmd1bWVudHMsIDEgKTsNCgkJdmFyIHJldHVyblZhbHVlID0gdGhpczsNCg0KCQlpZiAoIGlzTWV0aG9kQ2FsbCApIHsNCg0KCQkJLy8gSWYgdGhpcyBpcyBhbiBlbXB0eSBjb2xsZWN0aW9uLCB3ZSBuZWVkIHRvIGhhdmUgdGhlIGluc3RhbmNlIG1ldGhvZA0KCQkJLy8gcmV0dXJuIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIHRoZSBqUXVlcnkgaW5zdGFuY2UNCgkJCWlmICggIXRoaXMubGVuZ3RoICYmIG9wdGlvbnMgPT09ICJpbnN0YW5jZSIgKSB7DQoJCQkJcmV0dXJuVmFsdWUgPSB1bmRlZmluZWQ7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBtZXRob2RWYWx1ZTsNCgkJCQkJdmFyIGluc3RhbmNlID0gJC5kYXRhKCB0aGlzLCBmdWxsTmFtZSApOw0KDQoJCQkJCWlmICggb3B0aW9ucyA9PT0gImluc3RhbmNlIiApIHsNCgkJCQkJCXJldHVyblZhbHVlID0gaW5zdGFuY2U7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0NCg0KCQkJCQlpZiAoICFpbnN0YW5jZSApIHsNCgkJCQkJCXJldHVybiAkLmVycm9yKCAiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiICsgbmFtZSArDQoJCQkJCQkJIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIiArDQoJCQkJCQkJImF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIiArIG9wdGlvbnMgKyAiJyIgKTsNCgkJCQkJfQ0KDQoJCQkJCWlmICggISQuaXNGdW5jdGlvbiggaW5zdGFuY2VbIG9wdGlvbnMgXSApIHx8IG9wdGlvbnMuY2hhckF0KCAwICkgPT09ICJfIiApIHsNCgkJCQkJCXJldHVybiAkLmVycm9yKCAibm8gc3VjaCBtZXRob2QgJyIgKyBvcHRpb25zICsgIicgZm9yICIgKyBuYW1lICsNCgkJCQkJCQkiIHdpZGdldCBpbnN0YW5jZSIgKTsNCgkJCQkJfQ0KDQoJCQkJCW1ldGhvZFZhbHVlID0gaW5zdGFuY2VbIG9wdGlvbnMgXS5hcHBseSggaW5zdGFuY2UsIGFyZ3MgKTsNCg0KCQkJCQlpZiAoIG1ldGhvZFZhbHVlICE9PSBpbnN0YW5jZSAmJiBtZXRob2RWYWx1ZSAhPT0gdW5kZWZpbmVkICkgew0KCQkJCQkJcmV0dXJuVmFsdWUgPSBtZXRob2RWYWx1ZSAmJiBtZXRob2RWYWx1ZS5qcXVlcnkgPw0KCQkJCQkJCXJldHVyblZhbHVlLnB1c2hTdGFjayggbWV0aG9kVmFsdWUuZ2V0KCkgKSA6DQoJCQkJCQkJbWV0aG9kVmFsdWU7DQoJCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJCX0NCgkJCQl9ICk7DQoJCQl9DQoJCX0gZWxzZSB7DQoNCgkJCS8vIEFsbG93IG11bHRpcGxlIGhhc2hlcyB0byBiZSBwYXNzZWQgb24gaW5pdA0KCQkJaWYgKCBhcmdzLmxlbmd0aCApIHsNCgkJCQlvcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kLmFwcGx5KCBudWxsLCBbIG9wdGlvbnMgXS5jb25jYXQoIGFyZ3MgKSApOw0KCQkJfQ0KDQoJCQl0aGlzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCXZhciBpbnN0YW5jZSA9ICQuZGF0YSggdGhpcywgZnVsbE5hbWUgKTsNCgkJCQlpZiAoIGluc3RhbmNlICkgew0KCQkJCQlpbnN0YW5jZS5vcHRpb24oIG9wdGlvbnMgfHwge30gKTsNCgkJCQkJaWYgKCBpbnN0YW5jZS5faW5pdCApIHsNCgkJCQkJCWluc3RhbmNlLl9pbml0KCk7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQkkLmRhdGEoIHRoaXMsIGZ1bGxOYW1lLCBuZXcgb2JqZWN0KCBvcHRpb25zLCB0aGlzICkgKTsNCgkJCQl9DQoJCQl9ICk7DQoJCX0NCg0KCQlyZXR1cm4gcmV0dXJuVmFsdWU7DQoJfTsNCn07DQoNCiQuV2lkZ2V0ID0gZnVuY3Rpb24oIC8qIG9wdGlvbnMsIGVsZW1lbnQgKi8gKSB7fTsNCiQuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycyA9IFtdOw0KDQokLldpZGdldC5wcm90b3R5cGUgPSB7DQoJd2lkZ2V0TmFtZTogIndpZGdldCIsDQoJd2lkZ2V0RXZlbnRQcmVmaXg6ICIiLA0KCWRlZmF1bHRFbGVtZW50OiAiPGRpdj4iLA0KDQoJb3B0aW9uczogew0KCQljbGFzc2VzOiB7fSwNCgkJZGlzYWJsZWQ6IGZhbHNlLA0KDQoJCS8vIENhbGxiYWNrcw0KCQljcmVhdGU6IG51bGwNCgl9LA0KDQoJX2NyZWF0ZVdpZGdldDogZnVuY3Rpb24oIG9wdGlvbnMsIGVsZW1lbnQgKSB7DQoJCWVsZW1lbnQgPSAkKCBlbGVtZW50IHx8IHRoaXMuZGVmYXVsdEVsZW1lbnQgfHwgdGhpcyApWyAwIF07DQoJCXRoaXMuZWxlbWVudCA9ICQoIGVsZW1lbnQgKTsNCgkJdGhpcy51dWlkID0gd2lkZ2V0VXVpZCsrOw0KCQl0aGlzLmV2ZW50TmFtZXNwYWNlID0gIi4iICsgdGhpcy53aWRnZXROYW1lICsgdGhpcy51dWlkOw0KDQoJCXRoaXMuYmluZGluZ3MgPSAkKCk7DQoJCXRoaXMuaG92ZXJhYmxlID0gJCgpOw0KCQl0aGlzLmZvY3VzYWJsZSA9ICQoKTsNCgkJdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cCA9IHt9Ow0KDQoJCWlmICggZWxlbWVudCAhPT0gdGhpcyApIHsNCgkJCSQuZGF0YSggZWxlbWVudCwgdGhpcy53aWRnZXRGdWxsTmFtZSwgdGhpcyApOw0KCQkJdGhpcy5fb24oIHRydWUsIHRoaXMuZWxlbWVudCwgew0KCQkJCXJlbW92ZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQlpZiAoIGV2ZW50LnRhcmdldCA9PT0gZWxlbWVudCApIHsNCgkJCQkJCXRoaXMuZGVzdHJveSgpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfSApOw0KCQkJdGhpcy5kb2N1bWVudCA9ICQoIGVsZW1lbnQuc3R5bGUgPw0KDQoJCQkJLy8gRWxlbWVudCB3aXRoaW4gdGhlIGRvY3VtZW50DQoJCQkJZWxlbWVudC5vd25lckRvY3VtZW50IDoNCg0KCQkJCS8vIEVsZW1lbnQgaXMgd2luZG93IG9yIGRvY3VtZW50DQoJCQkJZWxlbWVudC5kb2N1bWVudCB8fCBlbGVtZW50ICk7DQoJCQl0aGlzLndpbmRvdyA9ICQoIHRoaXMuZG9jdW1lbnRbIDAgXS5kZWZhdWx0VmlldyB8fCB0aGlzLmRvY3VtZW50WyAwIF0ucGFyZW50V2luZG93ICk7DQoJCX0NCg0KCQl0aGlzLm9wdGlvbnMgPSAkLndpZGdldC5leHRlbmQoIHt9LA0KCQkJdGhpcy5vcHRpb25zLA0KCQkJdGhpcy5fZ2V0Q3JlYXRlT3B0aW9ucygpLA0KCQkJb3B0aW9ucyApOw0KDQoJCXRoaXMuX2NyZWF0ZSgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5fc2V0T3B0aW9uRGlzYWJsZWQoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApOw0KCQl9DQoNCgkJdGhpcy5fdHJpZ2dlciggImNyZWF0ZSIsIG51bGwsIHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpICk7DQoJCXRoaXMuX2luaXQoKTsNCgl9LA0KDQoJX2dldENyZWF0ZU9wdGlvbnM6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4ge307DQoJfSwNCg0KCV9nZXRDcmVhdGVFdmVudERhdGE6ICQubm9vcCwNCg0KCV9jcmVhdGU6ICQubm9vcCwNCg0KCV9pbml0OiAkLm5vb3AsDQoNCglkZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuX2Rlc3Ryb3koKTsNCgkJJC5lYWNoKCB0aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwLCBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJCXRoYXQuX3JlbW92ZUNsYXNzKCB2YWx1ZSwga2V5ICk7DQoJCX0gKTsNCg0KCQkvLyBXZSBjYW4gcHJvYmFibHkgcmVtb3ZlIHRoZSB1bmJpbmQgY2FsbHMgaW4gMi4wDQoJCS8vIGFsbCBldmVudCBiaW5kaW5ncyBzaG91bGQgZ28gdGhyb3VnaCB0aGlzLl9vbigpDQoJCXRoaXMuZWxlbWVudA0KCQkJLm9mZiggdGhpcy5ldmVudE5hbWVzcGFjZSApDQoJCQkucmVtb3ZlRGF0YSggdGhpcy53aWRnZXRGdWxsTmFtZSApOw0KCQl0aGlzLndpZGdldCgpDQoJCQkub2ZmKCB0aGlzLmV2ZW50TmFtZXNwYWNlICkNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1kaXNhYmxlZCIgKTsNCg0KCQkvLyBDbGVhbiB1cCBldmVudHMgYW5kIHN0YXRlcw0KCQl0aGlzLmJpbmRpbmdzLm9mZiggdGhpcy5ldmVudE5hbWVzcGFjZSApOw0KCX0sDQoNCglfZGVzdHJveTogJC5ub29wLA0KDQoJd2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuZWxlbWVudDsNCgl9LA0KDQoJb3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIG9wdGlvbnMgPSBrZXk7DQoJCXZhciBwYXJ0czsNCgkJdmFyIGN1ck9wdGlvbjsNCgkJdmFyIGk7DQoNCgkJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAwICkgew0KDQoJCQkvLyBEb24ndCByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIGludGVybmFsIGhhc2gNCgkJCXJldHVybiAkLndpZGdldC5leHRlbmQoIHt9LCB0aGlzLm9wdGlvbnMgKTsNCgkJfQ0KDQoJCWlmICggdHlwZW9mIGtleSA9PT0gInN0cmluZyIgKSB7DQoNCgkJCS8vIEhhbmRsZSBuZXN0ZWQga2V5cywgZS5nLiwgImZvby5iYXIiID0+IHsgZm9vOiB7IGJhcjogX19fIH0gfQ0KCQkJb3B0aW9ucyA9IHt9Ow0KCQkJcGFydHMgPSBrZXkuc3BsaXQoICIuIiApOw0KCQkJa2V5ID0gcGFydHMuc2hpZnQoKTsNCgkJCWlmICggcGFydHMubGVuZ3RoICkgew0KCQkJCWN1ck9wdGlvbiA9IG9wdGlvbnNbIGtleSBdID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgdGhpcy5vcHRpb25zWyBrZXkgXSApOw0KCQkJCWZvciAoIGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrICkgew0KCQkJCQljdXJPcHRpb25bIHBhcnRzWyBpIF0gXSA9IGN1ck9wdGlvblsgcGFydHNbIGkgXSBdIHx8IHt9Ow0KCQkJCQljdXJPcHRpb24gPSBjdXJPcHRpb25bIHBhcnRzWyBpIF0gXTsNCgkJCQl9DQoJCQkJa2V5ID0gcGFydHMucG9wKCk7DQoJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAxICkgew0KCQkJCQlyZXR1cm4gY3VyT3B0aW9uWyBrZXkgXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGN1ck9wdGlvblsga2V5IF07DQoJCQkJfQ0KCQkJCWN1ck9wdGlvblsga2V5IF0gPSB2YWx1ZTsNCgkJCX0gZWxzZSB7DQoJCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoID09PSAxICkgew0KCQkJCQlyZXR1cm4gdGhpcy5vcHRpb25zWyBrZXkgXSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IHRoaXMub3B0aW9uc1sga2V5IF07DQoJCQkJfQ0KCQkJCW9wdGlvbnNbIGtleSBdID0gdmFsdWU7DQoJCQl9DQoJCX0NCg0KCQl0aGlzLl9zZXRPcHRpb25zKCBvcHRpb25zICk7DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCV9zZXRPcHRpb25zOiBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdmFyIGtleTsNCg0KCQlmb3IgKCBrZXkgaW4gb3B0aW9ucyApIHsNCgkJCXRoaXMuX3NldE9wdGlvbigga2V5LCBvcHRpb25zWyBrZXkgXSApOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImNsYXNzZXMiICkgew0KCQkJdGhpcy5fc2V0T3B0aW9uQ2xhc3NlcyggdmFsdWUgKTsNCgkJfQ0KDQoJCXRoaXMub3B0aW9uc1sga2V5IF0gPSB2YWx1ZTsNCg0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXRoaXMuX3NldE9wdGlvbkRpc2FibGVkKCB2YWx1ZSApOw0KCQl9DQoNCgkJcmV0dXJuIHRoaXM7DQoJfSwNCg0KCV9zZXRPcHRpb25DbGFzc2VzOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXZhciBjbGFzc0tleSwgZWxlbWVudHMsIGN1cnJlbnRFbGVtZW50czsNCg0KCQlmb3IgKCBjbGFzc0tleSBpbiB2YWx1ZSApIHsNCgkJCWN1cnJlbnRFbGVtZW50cyA9IHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbIGNsYXNzS2V5IF07DQoJCQlpZiAoIHZhbHVlWyBjbGFzc0tleSBdID09PSB0aGlzLm9wdGlvbnMuY2xhc3Nlc1sgY2xhc3NLZXkgXSB8fA0KCQkJCQkhY3VycmVudEVsZW1lbnRzIHx8DQoJCQkJCSFjdXJyZW50RWxlbWVudHMubGVuZ3RoICkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkvLyBXZSBhcmUgZG9pbmcgdGhpcyB0byBjcmVhdGUgYSBuZXcgalF1ZXJ5IG9iamVjdCBiZWNhdXNlIHRoZSBfcmVtb3ZlQ2xhc3MoKSBjYWxsDQoJCQkvLyBvbiB0aGUgbmV4dCBsaW5lIGlzIGdvaW5nIHRvIGRlc3Ryb3kgdGhlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBlbGVtZW50cyBiZWluZw0KCQkJLy8gdHJhY2tlZC4gV2UgbmVlZCB0byBzYXZlIGEgY29weSBvZiB0aGlzIGNvbGxlY3Rpb24gc28gdGhhdCB3ZSBjYW4gYWRkIHRoZSBuZXcgY2xhc3Nlcw0KCQkJLy8gYmVsb3cuDQoJCQllbGVtZW50cyA9ICQoIGN1cnJlbnRFbGVtZW50cy5nZXQoKSApOw0KCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIGN1cnJlbnRFbGVtZW50cywgY2xhc3NLZXkgKTsNCg0KCQkJLy8gV2UgZG9uJ3QgdXNlIF9hZGRDbGFzcygpIGhlcmUsIGJlY2F1c2UgdGhhdCB1c2VzIHRoaXMub3B0aW9ucy5jbGFzc2VzDQoJCQkvLyBmb3IgZ2VuZXJhdGluZyB0aGUgc3RyaW5nIG9mIGNsYXNzZXMuIFdlIHdhbnQgdG8gdXNlIHRoZSB2YWx1ZSBwYXNzZWQgaW4gZnJvbQ0KCQkJLy8gX3NldE9wdGlvbigpLCB0aGlzIGlzIHRoZSBuZXcgdmFsdWUgb2YgdGhlIGNsYXNzZXMgb3B0aW9uIHdoaWNoIHdhcyBwYXNzZWQgdG8NCgkJCS8vIF9zZXRPcHRpb24oKS4gV2UgcGFzcyB0aGlzIHZhbHVlIGRpcmVjdGx5IHRvIF9jbGFzc2VzKCkuDQoJCQllbGVtZW50cy5hZGRDbGFzcyggdGhpcy5fY2xhc3Nlcyggew0KCQkJCWVsZW1lbnQ6IGVsZW1lbnRzLA0KCQkJCWtleXM6IGNsYXNzS2V5LA0KCQkJCWNsYXNzZXM6IHZhbHVlLA0KCQkJCWFkZDogdHJ1ZQ0KCQkJfSApICk7DQoJCX0NCgl9LA0KDQoJX3NldE9wdGlvbkRpc2FibGVkOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXRoaXMuX3RvZ2dsZUNsYXNzKCB0aGlzLndpZGdldCgpLCB0aGlzLndpZGdldEZ1bGxOYW1lICsgIi1kaXNhYmxlZCIsIG51bGwsICEhdmFsdWUgKTsNCg0KCQkvLyBJZiB0aGUgd2lkZ2V0IGlzIGJlY29taW5nIGRpc2FibGVkLCB0aGVuIG5vdGhpbmcgaXMgaW50ZXJhY3RpdmUNCgkJaWYgKCB2YWx1ZSApIHsNCgkJCXRoaXMuX3JlbW92ZUNsYXNzKCB0aGlzLmhvdmVyYWJsZSwgbnVsbCwgInVpLXN0YXRlLWhvdmVyIiApOw0KCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuZm9jdXNhYmxlLCBudWxsLCAidWktc3RhdGUtZm9jdXMiICk7DQoJCX0NCgl9LA0KDQoJZW5hYmxlOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoIHsgZGlzYWJsZWQ6IGZhbHNlIH0gKTsNCgl9LA0KDQoJZGlzYWJsZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLl9zZXRPcHRpb25zKCB7IGRpc2FibGVkOiB0cnVlIH0gKTsNCgl9LA0KDQoJX2NsYXNzZXM6IGZ1bmN0aW9uKCBvcHRpb25zICkgew0KCQl2YXIgZnVsbCA9IFtdOw0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJb3B0aW9ucyA9ICQuZXh0ZW5kKCB7DQoJCQllbGVtZW50OiB0aGlzLmVsZW1lbnQsDQoJCQljbGFzc2VzOiB0aGlzLm9wdGlvbnMuY2xhc3NlcyB8fCB7fQ0KCQl9LCBvcHRpb25zICk7DQoNCgkJZnVuY3Rpb24gcHJvY2Vzc0NsYXNzU3RyaW5nKCBjbGFzc2VzLCBjaGVja09wdGlvbiApIHsNCgkJCXZhciBjdXJyZW50LCBpOw0KCQkJZm9yICggaSA9IDA7IGkgPCBjbGFzc2VzLmxlbmd0aDsgaSsrICkgew0KCQkJCWN1cnJlbnQgPSB0aGF0LmNsYXNzZXNFbGVtZW50TG9va3VwWyBjbGFzc2VzWyBpIF0gXSB8fCAkKCk7DQoJCQkJaWYgKCBvcHRpb25zLmFkZCApIHsNCgkJCQkJY3VycmVudCA9ICQoICQudW5pcXVlKCBjdXJyZW50LmdldCgpLmNvbmNhdCggb3B0aW9ucy5lbGVtZW50LmdldCgpICkgKSApOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWN1cnJlbnQgPSAkKCBjdXJyZW50Lm5vdCggb3B0aW9ucy5lbGVtZW50ICkuZ2V0KCkgKTsNCgkJCQl9DQoJCQkJdGhhdC5jbGFzc2VzRWxlbWVudExvb2t1cFsgY2xhc3Nlc1sgaSBdIF0gPSBjdXJyZW50Ow0KCQkJCWZ1bGwucHVzaCggY2xhc3Nlc1sgaSBdICk7DQoJCQkJaWYgKCBjaGVja09wdGlvbiAmJiBvcHRpb25zLmNsYXNzZXNbIGNsYXNzZXNbIGkgXSBdICkgew0KCQkJCQlmdWxsLnB1c2goIG9wdGlvbnMuY2xhc3Nlc1sgY2xhc3Nlc1sgaSBdIF0gKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQl0aGlzLl9vbiggb3B0aW9ucy5lbGVtZW50LCB7DQoJCQkicmVtb3ZlIjogIl91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQiDQoJCX0gKTsNCg0KCQlpZiAoIG9wdGlvbnMua2V5cyApIHsNCgkJCXByb2Nlc3NDbGFzc1N0cmluZyggb3B0aW9ucy5rZXlzLm1hdGNoKCAvXFMrL2cgKSB8fCBbXSwgdHJ1ZSApOw0KCQl9DQoJCWlmICggb3B0aW9ucy5leHRyYSApIHsNCgkJCXByb2Nlc3NDbGFzc1N0cmluZyggb3B0aW9ucy5leHRyYS5tYXRjaCggL1xTKy9nICkgfHwgW10gKTsNCgkJfQ0KDQoJCXJldHVybiBmdWxsLmpvaW4oICIgIiApOw0KCX0sDQoNCglfdW50cmFja0NsYXNzZXNFbGVtZW50OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJJC5lYWNoKCB0aGF0LmNsYXNzZXNFbGVtZW50TG9va3VwLCBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJCWlmICggJC5pbkFycmF5KCBldmVudC50YXJnZXQsIHZhbHVlICkgIT09IC0xICkgew0KCQkJCXRoYXQuY2xhc3Nlc0VsZW1lbnRMb29rdXBbIGtleSBdID0gJCggdmFsdWUubm90KCBldmVudC50YXJnZXQgKS5nZXQoKSApOw0KCQkJfQ0KCQl9ICk7DQoJfSwNCg0KCV9yZW1vdmVDbGFzczogZnVuY3Rpb24oIGVsZW1lbnQsIGtleXMsIGV4dHJhICkgew0KCQlyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3MoIGVsZW1lbnQsIGtleXMsIGV4dHJhLCBmYWxzZSApOw0KCX0sDQoNCglfYWRkQ2xhc3M6IGZ1bmN0aW9uKCBlbGVtZW50LCBrZXlzLCBleHRyYSApIHsNCgkJcmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKCBlbGVtZW50LCBrZXlzLCBleHRyYSwgdHJ1ZSApOw0KCX0sDQoNCglfdG9nZ2xlQ2xhc3M6IGZ1bmN0aW9uKCBlbGVtZW50LCBrZXlzLCBleHRyYSwgYWRkICkgew0KCQlhZGQgPSAoIHR5cGVvZiBhZGQgPT09ICJib29sZWFuIiApID8gYWRkIDogZXh0cmE7DQoJCXZhciBzaGlmdCA9ICggdHlwZW9mIGVsZW1lbnQgPT09ICJzdHJpbmciIHx8IGVsZW1lbnQgPT09IG51bGwgKSwNCgkJCW9wdGlvbnMgPSB7DQoJCQkJZXh0cmE6IHNoaWZ0ID8ga2V5cyA6IGV4dHJhLA0KCQkJCWtleXM6IHNoaWZ0ID8gZWxlbWVudCA6IGtleXMsDQoJCQkJZWxlbWVudDogc2hpZnQgPyB0aGlzLmVsZW1lbnQgOiBlbGVtZW50LA0KCQkJCWFkZDogYWRkDQoJCQl9Ow0KCQlvcHRpb25zLmVsZW1lbnQudG9nZ2xlQ2xhc3MoIHRoaXMuX2NsYXNzZXMoIG9wdGlvbnMgKSwgYWRkICk7DQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCglfb246IGZ1bmN0aW9uKCBzdXBwcmVzc0Rpc2FibGVkQ2hlY2ssIGVsZW1lbnQsIGhhbmRsZXJzICkgew0KCQl2YXIgZGVsZWdhdGVFbGVtZW50Ow0KCQl2YXIgaW5zdGFuY2UgPSB0aGlzOw0KDQoJCS8vIE5vIHN1cHByZXNzRGlzYWJsZWRDaGVjayBmbGFnLCBzaHVmZmxlIGFyZ3VtZW50cw0KCQlpZiAoIHR5cGVvZiBzdXBwcmVzc0Rpc2FibGVkQ2hlY2sgIT09ICJib29sZWFuIiApIHsNCgkJCWhhbmRsZXJzID0gZWxlbWVudDsNCgkJCWVsZW1lbnQgPSBzdXBwcmVzc0Rpc2FibGVkQ2hlY2s7DQoJCQlzdXBwcmVzc0Rpc2FibGVkQ2hlY2sgPSBmYWxzZTsNCgkJfQ0KDQoJCS8vIE5vIGVsZW1lbnQgYXJndW1lbnQsIHNodWZmbGUgYW5kIHVzZSB0aGlzLmVsZW1lbnQNCgkJaWYgKCAhaGFuZGxlcnMgKSB7DQoJCQloYW5kbGVycyA9IGVsZW1lbnQ7DQoJCQllbGVtZW50ID0gdGhpcy5lbGVtZW50Ow0KCQkJZGVsZWdhdGVFbGVtZW50ID0gdGhpcy53aWRnZXQoKTsNCgkJfSBlbHNlIHsNCgkJCWVsZW1lbnQgPSBkZWxlZ2F0ZUVsZW1lbnQgPSAkKCBlbGVtZW50ICk7DQoJCQl0aGlzLmJpbmRpbmdzID0gdGhpcy5iaW5kaW5ncy5hZGQoIGVsZW1lbnQgKTsNCgkJfQ0KDQoJCSQuZWFjaCggaGFuZGxlcnMsIGZ1bmN0aW9uKCBldmVudCwgaGFuZGxlciApIHsNCgkJCWZ1bmN0aW9uIGhhbmRsZXJQcm94eSgpIHsNCg0KCQkJCS8vIEFsbG93IHdpZGdldHMgdG8gY3VzdG9taXplIHRoZSBkaXNhYmxlZCBoYW5kbGluZw0KCQkJCS8vIC0gZGlzYWJsZWQgYXMgYW4gYXJyYXkgaW5zdGVhZCBvZiBib29sZWFuDQoJCQkJLy8gLSBkaXNhYmxlZCBjbGFzcyBhcyBtZXRob2QgZm9yIGRpc2FibGluZyBpbmRpdmlkdWFsIHBhcnRzDQoJCQkJaWYgKCAhc3VwcHJlc3NEaXNhYmxlZENoZWNrICYmDQoJCQkJCQkoIGluc3RhbmNlLm9wdGlvbnMuZGlzYWJsZWQgPT09IHRydWUgfHwNCgkJCQkJCSQoIHRoaXMgKS5oYXNDbGFzcyggInVpLXN0YXRlLWRpc2FibGVkIiApICkgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJcmV0dXJuICggdHlwZW9mIGhhbmRsZXIgPT09ICJzdHJpbmciID8gaW5zdGFuY2VbIGhhbmRsZXIgXSA6IGhhbmRsZXIgKQ0KCQkJCQkuYXBwbHkoIGluc3RhbmNlLCBhcmd1bWVudHMgKTsNCgkJCX0NCg0KCQkJLy8gQ29weSB0aGUgZ3VpZCBzbyBkaXJlY3QgdW5iaW5kaW5nIHdvcmtzDQoJCQlpZiAoIHR5cGVvZiBoYW5kbGVyICE9PSAic3RyaW5nIiApIHsNCgkJCQloYW5kbGVyUHJveHkuZ3VpZCA9IGhhbmRsZXIuZ3VpZCA9DQoJCQkJCWhhbmRsZXIuZ3VpZCB8fCBoYW5kbGVyUHJveHkuZ3VpZCB8fCAkLmd1aWQrKzsNCgkJCX0NCg0KCQkJdmFyIG1hdGNoID0gZXZlbnQubWF0Y2goIC9eKFtcdzotXSopXHMqKC4qKSQvICk7DQoJCQl2YXIgZXZlbnROYW1lID0gbWF0Y2hbIDEgXSArIGluc3RhbmNlLmV2ZW50TmFtZXNwYWNlOw0KCQkJdmFyIHNlbGVjdG9yID0gbWF0Y2hbIDIgXTsNCg0KCQkJaWYgKCBzZWxlY3RvciApIHsNCgkJCQlkZWxlZ2F0ZUVsZW1lbnQub24oIGV2ZW50TmFtZSwgc2VsZWN0b3IsIGhhbmRsZXJQcm94eSApOw0KCQkJfSBlbHNlIHsNCgkJCQllbGVtZW50Lm9uKCBldmVudE5hbWUsIGhhbmRsZXJQcm94eSApOw0KCQkJfQ0KCQl9ICk7DQoJfSwNCg0KCV9vZmY6IGZ1bmN0aW9uKCBlbGVtZW50LCBldmVudE5hbWUgKSB7DQoJCWV2ZW50TmFtZSA9ICggZXZlbnROYW1lIHx8ICIiICkuc3BsaXQoICIgIiApLmpvaW4oIHRoaXMuZXZlbnROYW1lc3BhY2UgKyAiICIgKSArDQoJCQl0aGlzLmV2ZW50TmFtZXNwYWNlOw0KCQllbGVtZW50Lm9mZiggZXZlbnROYW1lICkub2ZmKCBldmVudE5hbWUgKTsNCg0KCQkvLyBDbGVhciB0aGUgc3RhY2sgdG8gYXZvaWQgbWVtb3J5IGxlYWtzICgjMTAwNTYpDQoJCXRoaXMuYmluZGluZ3MgPSAkKCB0aGlzLmJpbmRpbmdzLm5vdCggZWxlbWVudCApLmdldCgpICk7DQoJCXRoaXMuZm9jdXNhYmxlID0gJCggdGhpcy5mb2N1c2FibGUubm90KCBlbGVtZW50ICkuZ2V0KCkgKTsNCgkJdGhpcy5ob3ZlcmFibGUgPSAkKCB0aGlzLmhvdmVyYWJsZS5ub3QoIGVsZW1lbnQgKS5nZXQoKSApOw0KCX0sDQoNCglfZGVsYXk6IGZ1bmN0aW9uKCBoYW5kbGVyLCBkZWxheSApIHsNCgkJZnVuY3Rpb24gaGFuZGxlclByb3h5KCkgew0KCQkJcmV0dXJuICggdHlwZW9mIGhhbmRsZXIgPT09ICJzdHJpbmciID8gaW5zdGFuY2VbIGhhbmRsZXIgXSA6IGhhbmRsZXIgKQ0KCQkJCS5hcHBseSggaW5zdGFuY2UsIGFyZ3VtZW50cyApOw0KCQl9DQoJCXZhciBpbnN0YW5jZSA9IHRoaXM7DQoJCXJldHVybiBzZXRUaW1lb3V0KCBoYW5kbGVyUHJveHksIGRlbGF5IHx8IDAgKTsNCgl9LA0KDQoJX2hvdmVyYWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXRoaXMuaG92ZXJhYmxlID0gdGhpcy5ob3ZlcmFibGUuYWRkKCBlbGVtZW50ICk7DQoJCXRoaXMuX29uKCBlbGVtZW50LCB7DQoJCQltb3VzZWVudGVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKSwgbnVsbCwgInVpLXN0YXRlLWhvdmVyIiApOw0KCQkJfSwNCgkJCW1vdXNlbGVhdmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQl0aGlzLl9yZW1vdmVDbGFzcyggJCggZXZlbnQuY3VycmVudFRhcmdldCApLCBudWxsLCAidWktc3RhdGUtaG92ZXIiICk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KDQoJX2ZvY3VzYWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXRoaXMuZm9jdXNhYmxlID0gdGhpcy5mb2N1c2FibGUuYWRkKCBlbGVtZW50ICk7DQoJCXRoaXMuX29uKCBlbGVtZW50LCB7DQoJCQlmb2N1c2luOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKSwgbnVsbCwgInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfSwNCgkJCWZvY3Vzb3V0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKSwgbnVsbCwgInVpLXN0YXRlLWZvY3VzIiApOw0KCQkJfQ0KCQl9ICk7DQoJfSwNCg0KCV90cmlnZ2VyOiBmdW5jdGlvbiggdHlwZSwgZXZlbnQsIGRhdGEgKSB7DQoJCXZhciBwcm9wLCBvcmlnOw0KCQl2YXIgY2FsbGJhY2sgPSB0aGlzLm9wdGlvbnNbIHR5cGUgXTsNCg0KCQlkYXRhID0gZGF0YSB8fCB7fTsNCgkJZXZlbnQgPSAkLkV2ZW50KCBldmVudCApOw0KCQlldmVudC50eXBlID0gKCB0eXBlID09PSB0aGlzLndpZGdldEV2ZW50UHJlZml4ID8NCgkJCXR5cGUgOg0KCQkJdGhpcy53aWRnZXRFdmVudFByZWZpeCArIHR5cGUgKS50b0xvd2VyQ2FzZSgpOw0KDQoJCS8vIFRoZSBvcmlnaW5hbCBldmVudCBtYXkgY29tZSBmcm9tIGFueSBlbGVtZW50DQoJCS8vIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlIHRhcmdldCBvbiB0aGUgbmV3IGV2ZW50DQoJCWV2ZW50LnRhcmdldCA9IHRoaXMuZWxlbWVudFsgMCBdOw0KDQoJCS8vIENvcHkgb3JpZ2luYWwgZXZlbnQgcHJvcGVydGllcyBvdmVyIHRvIHRoZSBuZXcgZXZlbnQNCgkJb3JpZyA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQ7DQoJCWlmICggb3JpZyApIHsNCgkJCWZvciAoIHByb3AgaW4gb3JpZyApIHsNCgkJCQlpZiAoICEoIHByb3AgaW4gZXZlbnQgKSApIHsNCgkJCQkJZXZlbnRbIHByb3AgXSA9IG9yaWdbIHByb3AgXTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQl0aGlzLmVsZW1lbnQudHJpZ2dlciggZXZlbnQsIGRhdGEgKTsNCgkJcmV0dXJuICEoICQuaXNGdW5jdGlvbiggY2FsbGJhY2sgKSAmJg0KCQkJY2FsbGJhY2suYXBwbHkoIHRoaXMuZWxlbWVudFsgMCBdLCBbIGV2ZW50IF0uY29uY2F0KCBkYXRhICkgKSA9PT0gZmFsc2UgfHwNCgkJCWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICk7DQoJfQ0KfTsNCg0KJC5lYWNoKCB7IHNob3c6ICJmYWRlSW4iLCBoaWRlOiAiZmFkZU91dCIgfSwgZnVuY3Rpb24oIG1ldGhvZCwgZGVmYXVsdEVmZmVjdCApIHsNCgkkLldpZGdldC5wcm90b3R5cGVbICJfIiArIG1ldGhvZCBdID0gZnVuY3Rpb24oIGVsZW1lbnQsIG9wdGlvbnMsIGNhbGxiYWNrICkgew0KCQlpZiAoIHR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiApIHsNCgkJCW9wdGlvbnMgPSB7IGVmZmVjdDogb3B0aW9ucyB9Ow0KCQl9DQoNCgkJdmFyIGhhc09wdGlvbnM7DQoJCXZhciBlZmZlY3ROYW1lID0gIW9wdGlvbnMgPw0KCQkJbWV0aG9kIDoNCgkJCW9wdGlvbnMgPT09IHRydWUgfHwgdHlwZW9mIG9wdGlvbnMgPT09ICJudW1iZXIiID8NCgkJCQlkZWZhdWx0RWZmZWN0IDoNCgkJCQlvcHRpb25zLmVmZmVjdCB8fCBkZWZhdWx0RWZmZWN0Ow0KDQoJCW9wdGlvbnMgPSBvcHRpb25zIHx8IHt9Ow0KCQlpZiAoIHR5cGVvZiBvcHRpb25zID09PSAibnVtYmVyIiApIHsNCgkJCW9wdGlvbnMgPSB7IGR1cmF0aW9uOiBvcHRpb25zIH07DQoJCX0NCg0KCQloYXNPcHRpb25zID0gISQuaXNFbXB0eU9iamVjdCggb3B0aW9ucyApOw0KCQlvcHRpb25zLmNvbXBsZXRlID0gY2FsbGJhY2s7DQoNCgkJaWYgKCBvcHRpb25zLmRlbGF5ICkgew0KCQkJZWxlbWVudC5kZWxheSggb3B0aW9ucy5kZWxheSApOw0KCQl9DQoNCgkJaWYgKCBoYXNPcHRpb25zICYmICQuZWZmZWN0cyAmJiAkLmVmZmVjdHMuZWZmZWN0WyBlZmZlY3ROYW1lIF0gKSB7DQoJCQllbGVtZW50WyBtZXRob2QgXSggb3B0aW9ucyApOw0KCQl9IGVsc2UgaWYgKCBlZmZlY3ROYW1lICE9PSBtZXRob2QgJiYgZWxlbWVudFsgZWZmZWN0TmFtZSBdICkgew0KCQkJZWxlbWVudFsgZWZmZWN0TmFtZSBdKCBvcHRpb25zLmR1cmF0aW9uLCBvcHRpb25zLmVhc2luZywgY2FsbGJhY2sgKTsNCgkJfSBlbHNlIHsNCgkJCWVsZW1lbnQucXVldWUoIGZ1bmN0aW9uKCBuZXh0ICkgew0KCQkJCSQoIHRoaXMgKVsgbWV0aG9kIF0oKTsNCgkJCQlpZiAoIGNhbGxiYWNrICkgew0KCQkJCQljYWxsYmFjay5jYWxsKCBlbGVtZW50WyAwIF0gKTsNCgkJCQl9DQoJCQkJbmV4dCgpOw0KCQkJfSApOw0KCQl9DQoJfTsNCn0gKTsNCg0KdmFyIHdpZGdldCA9ICQud2lkZ2V0Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFBvc2l0aW9uIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vcG9zaXRpb24vDQogKi8NCg0KLy8+PmxhYmVsOiBQb3NpdGlvbg0KLy8+Pmdyb3VwOiBDb3JlDQovLz4+ZGVzY3JpcHRpb246IFBvc2l0aW9ucyBlbGVtZW50cyByZWxhdGl2ZSB0byBvdGhlciBlbGVtZW50cy4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9wb3NpdGlvbi8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9wb3NpdGlvbi8NCg0KDQooIGZ1bmN0aW9uKCkgew0KdmFyIGNhY2hlZFNjcm9sbGJhcldpZHRoLA0KCW1heCA9IE1hdGgubWF4LA0KCWFicyA9IE1hdGguYWJzLA0KCXJob3Jpem9udGFsID0gL2xlZnR8Y2VudGVyfHJpZ2h0LywNCglydmVydGljYWwgPSAvdG9wfGNlbnRlcnxib3R0b20vLA0KCXJvZmZzZXQgPSAvW1wrXC1dXGQrKFwuW1xkXSspPyU/LywNCglycG9zaXRpb24gPSAvXlx3Ky8sDQoJcnBlcmNlbnQgPSAvJSQvLA0KCV9wb3NpdGlvbiA9ICQuZm4ucG9zaXRpb247DQoNCmZ1bmN0aW9uIGdldE9mZnNldHMoIG9mZnNldHMsIHdpZHRoLCBoZWlnaHQgKSB7DQoJcmV0dXJuIFsNCgkJcGFyc2VGbG9hdCggb2Zmc2V0c1sgMCBdICkgKiAoIHJwZXJjZW50LnRlc3QoIG9mZnNldHNbIDAgXSApID8gd2lkdGggLyAxMDAgOiAxICksDQoJCXBhcnNlRmxvYXQoIG9mZnNldHNbIDEgXSApICogKCBycGVyY2VudC50ZXN0KCBvZmZzZXRzWyAxIF0gKSA/IGhlaWdodCAvIDEwMCA6IDEgKQ0KCV07DQp9DQoNCmZ1bmN0aW9uIHBhcnNlQ3NzKCBlbGVtZW50LCBwcm9wZXJ0eSApIHsNCglyZXR1cm4gcGFyc2VJbnQoICQuY3NzKCBlbGVtZW50LCBwcm9wZXJ0eSApLCAxMCApIHx8IDA7DQp9DQoNCmZ1bmN0aW9uIGdldERpbWVuc2lvbnMoIGVsZW0gKSB7DQoJdmFyIHJhdyA9IGVsZW1bIDAgXTsNCglpZiAoIHJhdy5ub2RlVHlwZSA9PT0gOSApIHsNCgkJcmV0dXJuIHsNCgkJCXdpZHRoOiBlbGVtLndpZHRoKCksDQoJCQloZWlnaHQ6IGVsZW0uaGVpZ2h0KCksDQoJCQlvZmZzZXQ6IHsgdG9wOiAwLCBsZWZ0OiAwIH0NCgkJfTsNCgl9DQoJaWYgKCAkLmlzV2luZG93KCByYXcgKSApIHsNCgkJcmV0dXJuIHsNCgkJCXdpZHRoOiBlbGVtLndpZHRoKCksDQoJCQloZWlnaHQ6IGVsZW0uaGVpZ2h0KCksDQoJCQlvZmZzZXQ6IHsgdG9wOiBlbGVtLnNjcm9sbFRvcCgpLCBsZWZ0OiBlbGVtLnNjcm9sbExlZnQoKSB9DQoJCX07DQoJfQ0KCWlmICggcmF3LnByZXZlbnREZWZhdWx0ICkgew0KCQlyZXR1cm4gew0KCQkJd2lkdGg6IDAsDQoJCQloZWlnaHQ6IDAsDQoJCQlvZmZzZXQ6IHsgdG9wOiByYXcucGFnZVksIGxlZnQ6IHJhdy5wYWdlWCB9DQoJCX07DQoJfQ0KCXJldHVybiB7DQoJCXdpZHRoOiBlbGVtLm91dGVyV2lkdGgoKSwNCgkJaGVpZ2h0OiBlbGVtLm91dGVySGVpZ2h0KCksDQoJCW9mZnNldDogZWxlbS5vZmZzZXQoKQ0KCX07DQp9DQoNCiQucG9zaXRpb24gPSB7DQoJc2Nyb2xsYmFyV2lkdGg6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIGNhY2hlZFNjcm9sbGJhcldpZHRoICE9PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gY2FjaGVkU2Nyb2xsYmFyV2lkdGg7DQoJCX0NCgkJdmFyIHcxLCB3MiwNCgkJCWRpdiA9ICQoICI8ZGl2ICIgKw0KCQkJCSJzdHlsZT0nZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo1MHB4O2hlaWdodDo1MHB4O292ZXJmbG93OmhpZGRlbjsnPiIgKw0KCQkJCSI8ZGl2IHN0eWxlPSdoZWlnaHQ6MTAwcHg7d2lkdGg6YXV0bzsnPjwvZGl2PjwvZGl2PiIgKSwNCgkJCWlubmVyRGl2ID0gZGl2LmNoaWxkcmVuKClbIDAgXTsNCg0KCQkkKCAiYm9keSIgKS5hcHBlbmQoIGRpdiApOw0KCQl3MSA9IGlubmVyRGl2Lm9mZnNldFdpZHRoOw0KCQlkaXYuY3NzKCAib3ZlcmZsb3ciLCAic2Nyb2xsIiApOw0KDQoJCXcyID0gaW5uZXJEaXYub2Zmc2V0V2lkdGg7DQoNCgkJaWYgKCB3MSA9PT0gdzIgKSB7DQoJCQl3MiA9IGRpdlsgMCBdLmNsaWVudFdpZHRoOw0KCQl9DQoNCgkJZGl2LnJlbW92ZSgpOw0KDQoJCXJldHVybiAoIGNhY2hlZFNjcm9sbGJhcldpZHRoID0gdzEgLSB3MiApOw0KCX0sDQoJZ2V0U2Nyb2xsSW5mbzogZnVuY3Rpb24oIHdpdGhpbiApIHsNCgkJdmFyIG92ZXJmbG93WCA9IHdpdGhpbi5pc1dpbmRvdyB8fCB3aXRoaW4uaXNEb2N1bWVudCA/ICIiIDoNCgkJCQl3aXRoaW4uZWxlbWVudC5jc3MoICJvdmVyZmxvdy14IiApLA0KCQkJb3ZlcmZsb3dZID0gd2l0aGluLmlzV2luZG93IHx8IHdpdGhpbi5pc0RvY3VtZW50ID8gIiIgOg0KCQkJCXdpdGhpbi5lbGVtZW50LmNzcyggIm92ZXJmbG93LXkiICksDQoJCQloYXNPdmVyZmxvd1ggPSBvdmVyZmxvd1ggPT09ICJzY3JvbGwiIHx8DQoJCQkJKCBvdmVyZmxvd1ggPT09ICJhdXRvIiAmJiB3aXRoaW4ud2lkdGggPCB3aXRoaW4uZWxlbWVudFsgMCBdLnNjcm9sbFdpZHRoICksDQoJCQloYXNPdmVyZmxvd1kgPSBvdmVyZmxvd1kgPT09ICJzY3JvbGwiIHx8DQoJCQkJKCBvdmVyZmxvd1kgPT09ICJhdXRvIiAmJiB3aXRoaW4uaGVpZ2h0IDwgd2l0aGluLmVsZW1lbnRbIDAgXS5zY3JvbGxIZWlnaHQgKTsNCgkJcmV0dXJuIHsNCgkJCXdpZHRoOiBoYXNPdmVyZmxvd1kgPyAkLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCkgOiAwLA0KCQkJaGVpZ2h0OiBoYXNPdmVyZmxvd1ggPyAkLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCkgOiAwDQoJCX07DQoJfSwNCglnZXRXaXRoaW5JbmZvOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdmFyIHdpdGhpbkVsZW1lbnQgPSAkKCBlbGVtZW50IHx8IHdpbmRvdyApLA0KCQkJaXNXaW5kb3cgPSAkLmlzV2luZG93KCB3aXRoaW5FbGVtZW50WyAwIF0gKSwNCgkJCWlzRG9jdW1lbnQgPSAhIXdpdGhpbkVsZW1lbnRbIDAgXSAmJiB3aXRoaW5FbGVtZW50WyAwIF0ubm9kZVR5cGUgPT09IDksDQoJCQloYXNPZmZzZXQgPSAhaXNXaW5kb3cgJiYgIWlzRG9jdW1lbnQ7DQoJCXJldHVybiB7DQoJCQllbGVtZW50OiB3aXRoaW5FbGVtZW50LA0KCQkJaXNXaW5kb3c6IGlzV2luZG93LA0KCQkJaXNEb2N1bWVudDogaXNEb2N1bWVudCwNCgkJCW9mZnNldDogaGFzT2Zmc2V0ID8gJCggZWxlbWVudCApLm9mZnNldCgpIDogeyBsZWZ0OiAwLCB0b3A6IDAgfSwNCgkJCXNjcm9sbExlZnQ6IHdpdGhpbkVsZW1lbnQuc2Nyb2xsTGVmdCgpLA0KCQkJc2Nyb2xsVG9wOiB3aXRoaW5FbGVtZW50LnNjcm9sbFRvcCgpLA0KCQkJd2lkdGg6IHdpdGhpbkVsZW1lbnQub3V0ZXJXaWR0aCgpLA0KCQkJaGVpZ2h0OiB3aXRoaW5FbGVtZW50Lm91dGVySGVpZ2h0KCkNCgkJfTsNCgl9DQp9Ow0KDQokLmZuLnBvc2l0aW9uID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJaWYgKCAhb3B0aW9ucyB8fCAhb3B0aW9ucy5vZiApIHsNCgkJcmV0dXJuIF9wb3NpdGlvbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJfQ0KDQoJLy8gTWFrZSBhIGNvcHksIHdlIGRvbid0IHdhbnQgdG8gbW9kaWZ5IGFyZ3VtZW50cw0KCW9wdGlvbnMgPSAkLmV4dGVuZCgge30sIG9wdGlvbnMgKTsNCg0KCXZhciBhdE9mZnNldCwgdGFyZ2V0V2lkdGgsIHRhcmdldEhlaWdodCwgdGFyZ2V0T2Zmc2V0LCBiYXNlUG9zaXRpb24sIGRpbWVuc2lvbnMsDQoJCXRhcmdldCA9ICQoIG9wdGlvbnMub2YgKSwNCgkJd2l0aGluID0gJC5wb3NpdGlvbi5nZXRXaXRoaW5JbmZvKCBvcHRpb25zLndpdGhpbiApLA0KCQlzY3JvbGxJbmZvID0gJC5wb3NpdGlvbi5nZXRTY3JvbGxJbmZvKCB3aXRoaW4gKSwNCgkJY29sbGlzaW9uID0gKCBvcHRpb25zLmNvbGxpc2lvbiB8fCAiZmxpcCIgKS5zcGxpdCggIiAiICksDQoJCW9mZnNldHMgPSB7fTsNCg0KCWRpbWVuc2lvbnMgPSBnZXREaW1lbnNpb25zKCB0YXJnZXQgKTsNCglpZiAoIHRhcmdldFsgMCBdLnByZXZlbnREZWZhdWx0ICkgew0KDQoJCS8vIEZvcmNlIGxlZnQgdG9wIHRvIGFsbG93IGZsaXBwaW5nDQoJCW9wdGlvbnMuYXQgPSAibGVmdCB0b3AiOw0KCX0NCgl0YXJnZXRXaWR0aCA9IGRpbWVuc2lvbnMud2lkdGg7DQoJdGFyZ2V0SGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHQ7DQoJdGFyZ2V0T2Zmc2V0ID0gZGltZW5zaW9ucy5vZmZzZXQ7DQoNCgkvLyBDbG9uZSB0byByZXVzZSBvcmlnaW5hbCB0YXJnZXRPZmZzZXQgbGF0ZXINCgliYXNlUG9zaXRpb24gPSAkLmV4dGVuZCgge30sIHRhcmdldE9mZnNldCApOw0KDQoJLy8gRm9yY2UgbXkgYW5kIGF0IHRvIGhhdmUgdmFsaWQgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwgcG9zaXRpb25zDQoJLy8gaWYgYSB2YWx1ZSBpcyBtaXNzaW5nIG9yIGludmFsaWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGNlbnRlcg0KCSQuZWFjaCggWyAibXkiLCAiYXQiIF0sIGZ1bmN0aW9uKCkgew0KCQl2YXIgcG9zID0gKCBvcHRpb25zWyB0aGlzIF0gfHwgIiIgKS5zcGxpdCggIiAiICksDQoJCQlob3Jpem9udGFsT2Zmc2V0LA0KCQkJdmVydGljYWxPZmZzZXQ7DQoNCgkJaWYgKCBwb3MubGVuZ3RoID09PSAxICkgew0KCQkJcG9zID0gcmhvcml6b250YWwudGVzdCggcG9zWyAwIF0gKSA/DQoJCQkJcG9zLmNvbmNhdCggWyAiY2VudGVyIiBdICkgOg0KCQkJCXJ2ZXJ0aWNhbC50ZXN0KCBwb3NbIDAgXSApID8NCgkJCQkJWyAiY2VudGVyIiBdLmNvbmNhdCggcG9zICkgOg0KCQkJCQlbICJjZW50ZXIiLCAiY2VudGVyIiBdOw0KCQl9DQoJCXBvc1sgMCBdID0gcmhvcml6b250YWwudGVzdCggcG9zWyAwIF0gKSA/IHBvc1sgMCBdIDogImNlbnRlciI7DQoJCXBvc1sgMSBdID0gcnZlcnRpY2FsLnRlc3QoIHBvc1sgMSBdICkgPyBwb3NbIDEgXSA6ICJjZW50ZXIiOw0KDQoJCS8vIENhbGN1bGF0ZSBvZmZzZXRzDQoJCWhvcml6b250YWxPZmZzZXQgPSByb2Zmc2V0LmV4ZWMoIHBvc1sgMCBdICk7DQoJCXZlcnRpY2FsT2Zmc2V0ID0gcm9mZnNldC5leGVjKCBwb3NbIDEgXSApOw0KCQlvZmZzZXRzWyB0aGlzIF0gPSBbDQoJCQlob3Jpem9udGFsT2Zmc2V0ID8gaG9yaXpvbnRhbE9mZnNldFsgMCBdIDogMCwNCgkJCXZlcnRpY2FsT2Zmc2V0ID8gdmVydGljYWxPZmZzZXRbIDAgXSA6IDANCgkJXTsNCg0KCQkvLyBSZWR1Y2UgdG8ganVzdCB0aGUgcG9zaXRpb25zIHdpdGhvdXQgdGhlIG9mZnNldHMNCgkJb3B0aW9uc1sgdGhpcyBdID0gWw0KCQkJcnBvc2l0aW9uLmV4ZWMoIHBvc1sgMCBdIClbIDAgXSwNCgkJCXJwb3NpdGlvbi5leGVjKCBwb3NbIDEgXSApWyAwIF0NCgkJXTsNCgl9ICk7DQoNCgkvLyBOb3JtYWxpemUgY29sbGlzaW9uIG9wdGlvbg0KCWlmICggY29sbGlzaW9uLmxlbmd0aCA9PT0gMSApIHsNCgkJY29sbGlzaW9uWyAxIF0gPSBjb2xsaXNpb25bIDAgXTsNCgl9DQoNCglpZiAoIG9wdGlvbnMuYXRbIDAgXSA9PT0gInJpZ2h0IiApIHsNCgkJYmFzZVBvc2l0aW9uLmxlZnQgKz0gdGFyZ2V0V2lkdGg7DQoJfSBlbHNlIGlmICggb3B0aW9ucy5hdFsgMCBdID09PSAiY2VudGVyIiApIHsNCgkJYmFzZVBvc2l0aW9uLmxlZnQgKz0gdGFyZ2V0V2lkdGggLyAyOw0KCX0NCg0KCWlmICggb3B0aW9ucy5hdFsgMSBdID09PSAiYm90dG9tIiApIHsNCgkJYmFzZVBvc2l0aW9uLnRvcCArPSB0YXJnZXRIZWlnaHQ7DQoJfSBlbHNlIGlmICggb3B0aW9ucy5hdFsgMSBdID09PSAiY2VudGVyIiApIHsNCgkJYmFzZVBvc2l0aW9uLnRvcCArPSB0YXJnZXRIZWlnaHQgLyAyOw0KCX0NCg0KCWF0T2Zmc2V0ID0gZ2V0T2Zmc2V0cyggb2Zmc2V0cy5hdCwgdGFyZ2V0V2lkdGgsIHRhcmdldEhlaWdodCApOw0KCWJhc2VQb3NpdGlvbi5sZWZ0ICs9IGF0T2Zmc2V0WyAwIF07DQoJYmFzZVBvc2l0aW9uLnRvcCArPSBhdE9mZnNldFsgMSBdOw0KDQoJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCXZhciBjb2xsaXNpb25Qb3NpdGlvbiwgdXNpbmcsDQoJCQllbGVtID0gJCggdGhpcyApLA0KCQkJZWxlbVdpZHRoID0gZWxlbS5vdXRlcldpZHRoKCksDQoJCQllbGVtSGVpZ2h0ID0gZWxlbS5vdXRlckhlaWdodCgpLA0KCQkJbWFyZ2luTGVmdCA9IHBhcnNlQ3NzKCB0aGlzLCAibWFyZ2luTGVmdCIgKSwNCgkJCW1hcmdpblRvcCA9IHBhcnNlQ3NzKCB0aGlzLCAibWFyZ2luVG9wIiApLA0KCQkJY29sbGlzaW9uV2lkdGggPSBlbGVtV2lkdGggKyBtYXJnaW5MZWZ0ICsgcGFyc2VDc3MoIHRoaXMsICJtYXJnaW5SaWdodCIgKSArDQoJCQkJc2Nyb2xsSW5mby53aWR0aCwNCgkJCWNvbGxpc2lvbkhlaWdodCA9IGVsZW1IZWlnaHQgKyBtYXJnaW5Ub3AgKyBwYXJzZUNzcyggdGhpcywgIm1hcmdpbkJvdHRvbSIgKSArDQoJCQkJc2Nyb2xsSW5mby5oZWlnaHQsDQoJCQlwb3NpdGlvbiA9ICQuZXh0ZW5kKCB7fSwgYmFzZVBvc2l0aW9uICksDQoJCQlteU9mZnNldCA9IGdldE9mZnNldHMoIG9mZnNldHMubXksIGVsZW0ub3V0ZXJXaWR0aCgpLCBlbGVtLm91dGVySGVpZ2h0KCkgKTsNCg0KCQlpZiAoIG9wdGlvbnMubXlbIDAgXSA9PT0gInJpZ2h0IiApIHsNCgkJCXBvc2l0aW9uLmxlZnQgLT0gZWxlbVdpZHRoOw0KCQl9IGVsc2UgaWYgKCBvcHRpb25zLm15WyAwIF0gPT09ICJjZW50ZXIiICkgew0KCQkJcG9zaXRpb24ubGVmdCAtPSBlbGVtV2lkdGggLyAyOw0KCQl9DQoNCgkJaWYgKCBvcHRpb25zLm15WyAxIF0gPT09ICJib3R0b20iICkgew0KCQkJcG9zaXRpb24udG9wIC09IGVsZW1IZWlnaHQ7DQoJCX0gZWxzZSBpZiAoIG9wdGlvbnMubXlbIDEgXSA9PT0gImNlbnRlciIgKSB7DQoJCQlwb3NpdGlvbi50b3AgLT0gZWxlbUhlaWdodCAvIDI7DQoJCX0NCg0KCQlwb3NpdGlvbi5sZWZ0ICs9IG15T2Zmc2V0WyAwIF07DQoJCXBvc2l0aW9uLnRvcCArPSBteU9mZnNldFsgMSBdOw0KDQoJCWNvbGxpc2lvblBvc2l0aW9uID0gew0KCQkJbWFyZ2luTGVmdDogbWFyZ2luTGVmdCwNCgkJCW1hcmdpblRvcDogbWFyZ2luVG9wDQoJCX07DQoNCgkJJC5lYWNoKCBbICJsZWZ0IiwgInRvcCIgXSwgZnVuY3Rpb24oIGksIGRpciApIHsNCgkJCWlmICggJC51aS5wb3NpdGlvblsgY29sbGlzaW9uWyBpIF0gXSApIHsNCgkJCQkkLnVpLnBvc2l0aW9uWyBjb2xsaXNpb25bIGkgXSBdWyBkaXIgXSggcG9zaXRpb24sIHsNCgkJCQkJdGFyZ2V0V2lkdGg6IHRhcmdldFdpZHRoLA0KCQkJCQl0YXJnZXRIZWlnaHQ6IHRhcmdldEhlaWdodCwNCgkJCQkJZWxlbVdpZHRoOiBlbGVtV2lkdGgsDQoJCQkJCWVsZW1IZWlnaHQ6IGVsZW1IZWlnaHQsDQoJCQkJCWNvbGxpc2lvblBvc2l0aW9uOiBjb2xsaXNpb25Qb3NpdGlvbiwNCgkJCQkJY29sbGlzaW9uV2lkdGg6IGNvbGxpc2lvbldpZHRoLA0KCQkJCQljb2xsaXNpb25IZWlnaHQ6IGNvbGxpc2lvbkhlaWdodCwNCgkJCQkJb2Zmc2V0OiBbIGF0T2Zmc2V0WyAwIF0gKyBteU9mZnNldFsgMCBdLCBhdE9mZnNldCBbIDEgXSArIG15T2Zmc2V0WyAxIF0gXSwNCgkJCQkJbXk6IG9wdGlvbnMubXksDQoJCQkJCWF0OiBvcHRpb25zLmF0LA0KCQkJCQl3aXRoaW46IHdpdGhpbiwNCgkJCQkJZWxlbTogZWxlbQ0KCQkJCX0gKTsNCgkJCX0NCgkJfSApOw0KDQoJCWlmICggb3B0aW9ucy51c2luZyApIHsNCg0KCQkJLy8gQWRkcyBmZWVkYmFjayBhcyBzZWNvbmQgYXJndW1lbnQgdG8gdXNpbmcgY2FsbGJhY2ssIGlmIHByZXNlbnQNCgkJCXVzaW5nID0gZnVuY3Rpb24oIHByb3BzICkgew0KCQkJCXZhciBsZWZ0ID0gdGFyZ2V0T2Zmc2V0LmxlZnQgLSBwb3NpdGlvbi5sZWZ0LA0KCQkJCQlyaWdodCA9IGxlZnQgKyB0YXJnZXRXaWR0aCAtIGVsZW1XaWR0aCwNCgkJCQkJdG9wID0gdGFyZ2V0T2Zmc2V0LnRvcCAtIHBvc2l0aW9uLnRvcCwNCgkJCQkJYm90dG9tID0gdG9wICsgdGFyZ2V0SGVpZ2h0IC0gZWxlbUhlaWdodCwNCgkJCQkJZmVlZGJhY2sgPSB7DQoJCQkJCQl0YXJnZXQ6IHsNCgkJCQkJCQllbGVtZW50OiB0YXJnZXQsDQoJCQkJCQkJbGVmdDogdGFyZ2V0T2Zmc2V0LmxlZnQsDQoJCQkJCQkJdG9wOiB0YXJnZXRPZmZzZXQudG9wLA0KCQkJCQkJCXdpZHRoOiB0YXJnZXRXaWR0aCwNCgkJCQkJCQloZWlnaHQ6IHRhcmdldEhlaWdodA0KCQkJCQkJfSwNCgkJCQkJCWVsZW1lbnQ6IHsNCgkJCQkJCQllbGVtZW50OiBlbGVtLA0KCQkJCQkJCWxlZnQ6IHBvc2l0aW9uLmxlZnQsDQoJCQkJCQkJdG9wOiBwb3NpdGlvbi50b3AsDQoJCQkJCQkJd2lkdGg6IGVsZW1XaWR0aCwNCgkJCQkJCQloZWlnaHQ6IGVsZW1IZWlnaHQNCgkJCQkJCX0sDQoJCQkJCQlob3Jpem9udGFsOiByaWdodCA8IDAgPyAibGVmdCIgOiBsZWZ0ID4gMCA/ICJyaWdodCIgOiAiY2VudGVyIiwNCgkJCQkJCXZlcnRpY2FsOiBib3R0b20gPCAwID8gInRvcCIgOiB0b3AgPiAwID8gImJvdHRvbSIgOiAibWlkZGxlIg0KCQkJCQl9Ow0KCQkJCWlmICggdGFyZ2V0V2lkdGggPCBlbGVtV2lkdGggJiYgYWJzKCBsZWZ0ICsgcmlnaHQgKSA8IHRhcmdldFdpZHRoICkgew0KCQkJCQlmZWVkYmFjay5ob3Jpem9udGFsID0gImNlbnRlciI7DQoJCQkJfQ0KCQkJCWlmICggdGFyZ2V0SGVpZ2h0IDwgZWxlbUhlaWdodCAmJiBhYnMoIHRvcCArIGJvdHRvbSApIDwgdGFyZ2V0SGVpZ2h0ICkgew0KCQkJCQlmZWVkYmFjay52ZXJ0aWNhbCA9ICJtaWRkbGUiOw0KCQkJCX0NCgkJCQlpZiAoIG1heCggYWJzKCBsZWZ0ICksIGFicyggcmlnaHQgKSApID4gbWF4KCBhYnMoIHRvcCApLCBhYnMoIGJvdHRvbSApICkgKSB7DQoJCQkJCWZlZWRiYWNrLmltcG9ydGFudCA9ICJob3Jpem9udGFsIjsNCgkJCQl9IGVsc2Ugew0KCQkJCQlmZWVkYmFjay5pbXBvcnRhbnQgPSAidmVydGljYWwiOw0KCQkJCX0NCgkJCQlvcHRpb25zLnVzaW5nLmNhbGwoIHRoaXMsIHByb3BzLCBmZWVkYmFjayApOw0KCQkJfTsNCgkJfQ0KDQoJCWVsZW0ub2Zmc2V0KCAkLmV4dGVuZCggcG9zaXRpb24sIHsgdXNpbmc6IHVzaW5nIH0gKSApOw0KCX0gKTsNCn07DQoNCiQudWkucG9zaXRpb24gPSB7DQoJZml0OiB7DQoJCWxlZnQ6IGZ1bmN0aW9uKCBwb3NpdGlvbiwgZGF0YSApIHsNCgkJCXZhciB3aXRoaW4gPSBkYXRhLndpdGhpbiwNCgkJCQl3aXRoaW5PZmZzZXQgPSB3aXRoaW4uaXNXaW5kb3cgPyB3aXRoaW4uc2Nyb2xsTGVmdCA6IHdpdGhpbi5vZmZzZXQubGVmdCwNCgkJCQlvdXRlcldpZHRoID0gd2l0aGluLndpZHRoLA0KCQkJCWNvbGxpc2lvblBvc0xlZnQgPSBwb3NpdGlvbi5sZWZ0IC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LA0KCQkJCW92ZXJMZWZ0ID0gd2l0aGluT2Zmc2V0IC0gY29sbGlzaW9uUG9zTGVmdCwNCgkJCQlvdmVyUmlnaHQgPSBjb2xsaXNpb25Qb3NMZWZ0ICsgZGF0YS5jb2xsaXNpb25XaWR0aCAtIG91dGVyV2lkdGggLSB3aXRoaW5PZmZzZXQsDQoJCQkJbmV3T3ZlclJpZ2h0Ow0KDQoJCQkvLyBFbGVtZW50IGlzIHdpZGVyIHRoYW4gd2l0aGluDQoJCQlpZiAoIGRhdGEuY29sbGlzaW9uV2lkdGggPiBvdXRlcldpZHRoICkgew0KDQoJCQkJLy8gRWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciB0aGUgbGVmdCBzaWRlIG9mIHdpdGhpbg0KCQkJCWlmICggb3ZlckxlZnQgPiAwICYmIG92ZXJSaWdodCA8PSAwICkgew0KCQkJCQluZXdPdmVyUmlnaHQgPSBwb3NpdGlvbi5sZWZ0ICsgb3ZlckxlZnQgKyBkYXRhLmNvbGxpc2lvbldpZHRoIC0gb3V0ZXJXaWR0aCAtDQoJCQkJCQl3aXRoaW5PZmZzZXQ7DQoJCQkJCXBvc2l0aW9uLmxlZnQgKz0gb3ZlckxlZnQgLSBuZXdPdmVyUmlnaHQ7DQoNCgkJCQkvLyBFbGVtZW50IGlzIGluaXRpYWxseSBvdmVyIHJpZ2h0IHNpZGUgb2Ygd2l0aGluDQoJCQkJfSBlbHNlIGlmICggb3ZlclJpZ2h0ID4gMCAmJiBvdmVyTGVmdCA8PSAwICkgew0KCQkJCQlwb3NpdGlvbi5sZWZ0ID0gd2l0aGluT2Zmc2V0Ow0KDQoJCQkJLy8gRWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciBib3RoIGxlZnQgYW5kIHJpZ2h0IHNpZGVzIG9mIHdpdGhpbg0KCQkJCX0gZWxzZSB7DQoJCQkJCWlmICggb3ZlckxlZnQgPiBvdmVyUmlnaHQgKSB7DQoJCQkJCQlwb3NpdGlvbi5sZWZ0ID0gd2l0aGluT2Zmc2V0ICsgb3V0ZXJXaWR0aCAtIGRhdGEuY29sbGlzaW9uV2lkdGg7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlwb3NpdGlvbi5sZWZ0ID0gd2l0aGluT2Zmc2V0Ow0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkvLyBUb28gZmFyIGxlZnQgLT4gYWxpZ24gd2l0aCBsZWZ0IGVkZ2UNCgkJCX0gZWxzZSBpZiAoIG92ZXJMZWZ0ID4gMCApIHsNCgkJCQlwb3NpdGlvbi5sZWZ0ICs9IG92ZXJMZWZ0Ow0KDQoJCQkvLyBUb28gZmFyIHJpZ2h0IC0+IGFsaWduIHdpdGggcmlnaHQgZWRnZQ0KCQkJfSBlbHNlIGlmICggb3ZlclJpZ2h0ID4gMCApIHsNCgkJCQlwb3NpdGlvbi5sZWZ0IC09IG92ZXJSaWdodDsNCg0KCQkJLy8gQWRqdXN0IGJhc2VkIG9uIHBvc2l0aW9uIGFuZCBtYXJnaW4NCgkJCX0gZWxzZSB7DQoJCQkJcG9zaXRpb24ubGVmdCA9IG1heCggcG9zaXRpb24ubGVmdCAtIGNvbGxpc2lvblBvc0xlZnQsIHBvc2l0aW9uLmxlZnQgKTsNCgkJCX0NCgkJfSwNCgkJdG9wOiBmdW5jdGlvbiggcG9zaXRpb24sIGRhdGEgKSB7DQoJCQl2YXIgd2l0aGluID0gZGF0YS53aXRoaW4sDQoJCQkJd2l0aGluT2Zmc2V0ID0gd2l0aGluLmlzV2luZG93ID8gd2l0aGluLnNjcm9sbFRvcCA6IHdpdGhpbi5vZmZzZXQudG9wLA0KCQkJCW91dGVySGVpZ2h0ID0gZGF0YS53aXRoaW4uaGVpZ2h0LA0KCQkJCWNvbGxpc2lvblBvc1RvcCA9IHBvc2l0aW9uLnRvcCAtIGRhdGEuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLA0KCQkJCW92ZXJUb3AgPSB3aXRoaW5PZmZzZXQgLSBjb2xsaXNpb25Qb3NUb3AsDQoJCQkJb3ZlckJvdHRvbSA9IGNvbGxpc2lvblBvc1RvcCArIGRhdGEuY29sbGlzaW9uSGVpZ2h0IC0gb3V0ZXJIZWlnaHQgLSB3aXRoaW5PZmZzZXQsDQoJCQkJbmV3T3ZlckJvdHRvbTsNCg0KCQkJLy8gRWxlbWVudCBpcyB0YWxsZXIgdGhhbiB3aXRoaW4NCgkJCWlmICggZGF0YS5jb2xsaXNpb25IZWlnaHQgPiBvdXRlckhlaWdodCApIHsNCg0KCQkJCS8vIEVsZW1lbnQgaXMgaW5pdGlhbGx5IG92ZXIgdGhlIHRvcCBvZiB3aXRoaW4NCgkJCQlpZiAoIG92ZXJUb3AgPiAwICYmIG92ZXJCb3R0b20gPD0gMCApIHsNCgkJCQkJbmV3T3ZlckJvdHRvbSA9IHBvc2l0aW9uLnRvcCArIG92ZXJUb3AgKyBkYXRhLmNvbGxpc2lvbkhlaWdodCAtIG91dGVySGVpZ2h0IC0NCgkJCQkJCXdpdGhpbk9mZnNldDsNCgkJCQkJcG9zaXRpb24udG9wICs9IG92ZXJUb3AgLSBuZXdPdmVyQm90dG9tOw0KDQoJCQkJLy8gRWxlbWVudCBpcyBpbml0aWFsbHkgb3ZlciBib3R0b20gb2Ygd2l0aGluDQoJCQkJfSBlbHNlIGlmICggb3ZlckJvdHRvbSA+IDAgJiYgb3ZlclRvcCA8PSAwICkgew0KCQkJCQlwb3NpdGlvbi50b3AgPSB3aXRoaW5PZmZzZXQ7DQoNCgkJCQkvLyBFbGVtZW50IGlzIGluaXRpYWxseSBvdmVyIGJvdGggdG9wIGFuZCBib3R0b20gb2Ygd2l0aGluDQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYgKCBvdmVyVG9wID4gb3ZlckJvdHRvbSApIHsNCgkJCQkJCXBvc2l0aW9uLnRvcCA9IHdpdGhpbk9mZnNldCArIG91dGVySGVpZ2h0IC0gZGF0YS5jb2xsaXNpb25IZWlnaHQ7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlwb3NpdGlvbi50b3AgPSB3aXRoaW5PZmZzZXQ7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCS8vIFRvbyBmYXIgdXAgLT4gYWxpZ24gd2l0aCB0b3ANCgkJCX0gZWxzZSBpZiAoIG92ZXJUb3AgPiAwICkgew0KCQkJCXBvc2l0aW9uLnRvcCArPSBvdmVyVG9wOw0KDQoJCQkvLyBUb28gZmFyIGRvd24gLT4gYWxpZ24gd2l0aCBib3R0b20gZWRnZQ0KCQkJfSBlbHNlIGlmICggb3ZlckJvdHRvbSA+IDAgKSB7DQoJCQkJcG9zaXRpb24udG9wIC09IG92ZXJCb3R0b207DQoNCgkJCS8vIEFkanVzdCBiYXNlZCBvbiBwb3NpdGlvbiBhbmQgbWFyZ2luDQoJCQl9IGVsc2Ugew0KCQkJCXBvc2l0aW9uLnRvcCA9IG1heCggcG9zaXRpb24udG9wIC0gY29sbGlzaW9uUG9zVG9wLCBwb3NpdGlvbi50b3AgKTsNCgkJCX0NCgkJfQ0KCX0sDQoJZmxpcDogew0KCQlsZWZ0OiBmdW5jdGlvbiggcG9zaXRpb24sIGRhdGEgKSB7DQoJCQl2YXIgd2l0aGluID0gZGF0YS53aXRoaW4sDQoJCQkJd2l0aGluT2Zmc2V0ID0gd2l0aGluLm9mZnNldC5sZWZ0ICsgd2l0aGluLnNjcm9sbExlZnQsDQoJCQkJb3V0ZXJXaWR0aCA9IHdpdGhpbi53aWR0aCwNCgkJCQlvZmZzZXRMZWZ0ID0gd2l0aGluLmlzV2luZG93ID8gd2l0aGluLnNjcm9sbExlZnQgOiB3aXRoaW4ub2Zmc2V0LmxlZnQsDQoJCQkJY29sbGlzaW9uUG9zTGVmdCA9IHBvc2l0aW9uLmxlZnQgLSBkYXRhLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpbkxlZnQsDQoJCQkJb3ZlckxlZnQgPSBjb2xsaXNpb25Qb3NMZWZ0IC0gb2Zmc2V0TGVmdCwNCgkJCQlvdmVyUmlnaHQgPSBjb2xsaXNpb25Qb3NMZWZ0ICsgZGF0YS5jb2xsaXNpb25XaWR0aCAtIG91dGVyV2lkdGggLSBvZmZzZXRMZWZ0LA0KCQkJCW15T2Zmc2V0ID0gZGF0YS5teVsgMCBdID09PSAibGVmdCIgPw0KCQkJCQktZGF0YS5lbGVtV2lkdGggOg0KCQkJCQlkYXRhLm15WyAwIF0gPT09ICJyaWdodCIgPw0KCQkJCQkJZGF0YS5lbGVtV2lkdGggOg0KCQkJCQkJMCwNCgkJCQlhdE9mZnNldCA9IGRhdGEuYXRbIDAgXSA9PT0gImxlZnQiID8NCgkJCQkJZGF0YS50YXJnZXRXaWR0aCA6DQoJCQkJCWRhdGEuYXRbIDAgXSA9PT0gInJpZ2h0IiA/DQoJCQkJCQktZGF0YS50YXJnZXRXaWR0aCA6DQoJCQkJCQkwLA0KCQkJCW9mZnNldCA9IC0yICogZGF0YS5vZmZzZXRbIDAgXSwNCgkJCQluZXdPdmVyUmlnaHQsDQoJCQkJbmV3T3ZlckxlZnQ7DQoNCgkJCWlmICggb3ZlckxlZnQgPCAwICkgew0KCQkJCW5ld092ZXJSaWdodCA9IHBvc2l0aW9uLmxlZnQgKyBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0ICsgZGF0YS5jb2xsaXNpb25XaWR0aCAtDQoJCQkJCW91dGVyV2lkdGggLSB3aXRoaW5PZmZzZXQ7DQoJCQkJaWYgKCBuZXdPdmVyUmlnaHQgPCAwIHx8IG5ld092ZXJSaWdodCA8IGFicyggb3ZlckxlZnQgKSApIHsNCgkJCQkJcG9zaXRpb24ubGVmdCArPSBteU9mZnNldCArIGF0T2Zmc2V0ICsgb2Zmc2V0Ow0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoIG92ZXJSaWdodCA+IDAgKSB7DQoJCQkJbmV3T3ZlckxlZnQgPSBwb3NpdGlvbi5sZWZ0IC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0ICsgbXlPZmZzZXQgKw0KCQkJCQlhdE9mZnNldCArIG9mZnNldCAtIG9mZnNldExlZnQ7DQoJCQkJaWYgKCBuZXdPdmVyTGVmdCA+IDAgfHwgYWJzKCBuZXdPdmVyTGVmdCApIDwgb3ZlclJpZ2h0ICkgew0KCQkJCQlwb3NpdGlvbi5sZWZ0ICs9IG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQ7DQoJCQkJfQ0KCQkJfQ0KCQl9LA0KCQl0b3A6IGZ1bmN0aW9uKCBwb3NpdGlvbiwgZGF0YSApIHsNCgkJCXZhciB3aXRoaW4gPSBkYXRhLndpdGhpbiwNCgkJCQl3aXRoaW5PZmZzZXQgPSB3aXRoaW4ub2Zmc2V0LnRvcCArIHdpdGhpbi5zY3JvbGxUb3AsDQoJCQkJb3V0ZXJIZWlnaHQgPSB3aXRoaW4uaGVpZ2h0LA0KCQkJCW9mZnNldFRvcCA9IHdpdGhpbi5pc1dpbmRvdyA/IHdpdGhpbi5zY3JvbGxUb3AgOiB3aXRoaW4ub2Zmc2V0LnRvcCwNCgkJCQljb2xsaXNpb25Qb3NUb3AgPSBwb3NpdGlvbi50b3AgLSBkYXRhLmNvbGxpc2lvblBvc2l0aW9uLm1hcmdpblRvcCwNCgkJCQlvdmVyVG9wID0gY29sbGlzaW9uUG9zVG9wIC0gb2Zmc2V0VG9wLA0KCQkJCW92ZXJCb3R0b20gPSBjb2xsaXNpb25Qb3NUb3AgKyBkYXRhLmNvbGxpc2lvbkhlaWdodCAtIG91dGVySGVpZ2h0IC0gb2Zmc2V0VG9wLA0KCQkJCXRvcCA9IGRhdGEubXlbIDEgXSA9PT0gInRvcCIsDQoJCQkJbXlPZmZzZXQgPSB0b3AgPw0KCQkJCQktZGF0YS5lbGVtSGVpZ2h0IDoNCgkJCQkJZGF0YS5teVsgMSBdID09PSAiYm90dG9tIiA/DQoJCQkJCQlkYXRhLmVsZW1IZWlnaHQgOg0KCQkJCQkJMCwNCgkJCQlhdE9mZnNldCA9IGRhdGEuYXRbIDEgXSA9PT0gInRvcCIgPw0KCQkJCQlkYXRhLnRhcmdldEhlaWdodCA6DQoJCQkJCWRhdGEuYXRbIDEgXSA9PT0gImJvdHRvbSIgPw0KCQkJCQkJLWRhdGEudGFyZ2V0SGVpZ2h0IDoNCgkJCQkJCTAsDQoJCQkJb2Zmc2V0ID0gLTIgKiBkYXRhLm9mZnNldFsgMSBdLA0KCQkJCW5ld092ZXJUb3AsDQoJCQkJbmV3T3ZlckJvdHRvbTsNCgkJCWlmICggb3ZlclRvcCA8IDAgKSB7DQoJCQkJbmV3T3ZlckJvdHRvbSA9IHBvc2l0aW9uLnRvcCArIG15T2Zmc2V0ICsgYXRPZmZzZXQgKyBvZmZzZXQgKyBkYXRhLmNvbGxpc2lvbkhlaWdodCAtDQoJCQkJCW91dGVySGVpZ2h0IC0gd2l0aGluT2Zmc2V0Ow0KCQkJCWlmICggbmV3T3ZlckJvdHRvbSA8IDAgfHwgbmV3T3ZlckJvdHRvbSA8IGFicyggb3ZlclRvcCApICkgew0KCQkJCQlwb3NpdGlvbi50b3AgKz0gbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldDsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCBvdmVyQm90dG9tID4gMCApIHsNCgkJCQluZXdPdmVyVG9wID0gcG9zaXRpb24udG9wIC0gZGF0YS5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3AgKyBteU9mZnNldCArIGF0T2Zmc2V0ICsNCgkJCQkJb2Zmc2V0IC0gb2Zmc2V0VG9wOw0KCQkJCWlmICggbmV3T3ZlclRvcCA+IDAgfHwgYWJzKCBuZXdPdmVyVG9wICkgPCBvdmVyQm90dG9tICkgew0KCQkJCQlwb3NpdGlvbi50b3AgKz0gbXlPZmZzZXQgKyBhdE9mZnNldCArIG9mZnNldDsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9LA0KCWZsaXBmaXQ6IHsNCgkJbGVmdDogZnVuY3Rpb24oKSB7DQoJCQkkLnVpLnBvc2l0aW9uLmZsaXAubGVmdC5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkkLnVpLnBvc2l0aW9uLmZpdC5sZWZ0LmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfSwNCgkJdG9wOiBmdW5jdGlvbigpIHsNCgkJCSQudWkucG9zaXRpb24uZmxpcC50b3AuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJJC51aS5wb3NpdGlvbi5maXQudG9wLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfQ0KCX0NCn07DQoNCn0gKSgpOw0KDQp2YXIgcG9zaXRpb24gPSAkLnVpLnBvc2l0aW9uOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIDpkYXRhIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiA6ZGF0YSBTZWxlY3Rvcg0KLy8+Pmdyb3VwOiBDb3JlDQovLz4+ZGVzY3JpcHRpb246IFNlbGVjdHMgZWxlbWVudHMgd2hpY2ggaGF2ZSBkYXRhIHN0b3JlZCB1bmRlciB0aGUgc3BlY2lmaWVkIGtleS4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9kYXRhLXNlbGVjdG9yLw0KDQoNCnZhciBkYXRhID0gJC5leHRlbmQoICQuZXhwclsgIjoiIF0sIHsNCglkYXRhOiAkLmV4cHIuY3JlYXRlUHNldWRvID8NCgkJJC5leHByLmNyZWF0ZVBzZXVkbyggZnVuY3Rpb24oIGRhdGFOYW1lICkgew0KCQkJcmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkgew0KCQkJCXJldHVybiAhISQuZGF0YSggZWxlbSwgZGF0YU5hbWUgKTsNCgkJCX07DQoJCX0gKSA6DQoNCgkJLy8gU3VwcG9ydDogalF1ZXJ5IDwxLjgNCgkJZnVuY3Rpb24oIGVsZW0sIGksIG1hdGNoICkgew0KCQkJcmV0dXJuICEhJC5kYXRhKCBlbGVtLCBtYXRjaFsgMyBdICk7DQoJCX0NCn0gKTsNCg0KLyohDQogKiBqUXVlcnkgVUkgRGlzYWJsZSBTZWxlY3Rpb24gMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IGRpc2FibGVTZWxlY3Rpb24NCi8vPj5ncm91cDogQ29yZQ0KLy8+PmRlc2NyaXB0aW9uOiBEaXNhYmxlIHNlbGVjdGlvbiBvZiB0ZXh0IGNvbnRlbnQgd2l0aGluIHRoZSBzZXQgb2YgbWF0Y2hlZCBlbGVtZW50cy4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9kaXNhYmxlU2VsZWN0aW9uLw0KDQovLyBUaGlzIGZpbGUgaXMgZGVwcmVjYXRlZA0KDQoNCnZhciBkaXNhYmxlU2VsZWN0aW9uID0gJC5mbi5leHRlbmQoIHsNCglkaXNhYmxlU2VsZWN0aW9uOiAoIGZ1bmN0aW9uKCkgew0KCQl2YXIgZXZlbnRUeXBlID0gIm9uc2VsZWN0c3RhcnQiIGluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoICJkaXYiICkgPw0KCQkJInNlbGVjdHN0YXJ0IiA6DQoJCQkibW91c2Vkb3duIjsNCg0KCQlyZXR1cm4gZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gdGhpcy5vbiggZXZlbnRUeXBlICsgIi51aS1kaXNhYmxlU2VsZWN0aW9uIiwgZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQl9ICk7DQoJCX07DQoJfSApKCksDQoNCgllbmFibGVTZWxlY3Rpb246IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5vZmYoICIudWktZGlzYWJsZVNlbGVjdGlvbiIgKTsNCgl9DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogRWZmZWN0cyBDb3JlDQovLz4+Z3JvdXA6IEVmZmVjdHMNCi8vIGpzY3M6ZGlzYWJsZSBtYXhpbXVtTGluZUxlbmd0aA0KLy8+PmRlc2NyaXB0aW9uOiBFeHRlbmRzIHRoZSBpbnRlcm5hbCBqUXVlcnkgZWZmZWN0cy4gSW5jbHVkZXMgbW9ycGhpbmcgYW5kIGVhc2luZy4gUmVxdWlyZWQgYnkgYWxsIG90aGVyIGVmZmVjdHMuDQovLyBqc2NzOmVuYWJsZSBtYXhpbXVtTGluZUxlbmd0aA0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2NhdGVnb3J5L2VmZmVjdHMtY29yZS8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9lZmZlY3QvDQoNCg0KDQp2YXIgZGF0YVNwYWNlID0gInVpLWVmZmVjdHMtIiwNCglkYXRhU3BhY2VTdHlsZSA9ICJ1aS1lZmZlY3RzLXN0eWxlIiwNCglkYXRhU3BhY2VBbmltYXRlZCA9ICJ1aS1lZmZlY3RzLWFuaW1hdGVkIiwNCg0KCS8vIENyZWF0ZSBhIGxvY2FsIGpRdWVyeSBiZWNhdXNlIGpRdWVyeSBDb2xvciByZWxpZXMgb24gaXQgYW5kIHRoZQ0KCS8vIGdsb2JhbCBtYXkgbm90IGV4aXN0IHdpdGggQU1EIGFuZCBhIGN1c3RvbSBidWlsZCAoIzEwMTk5KQ0KCWpRdWVyeSA9ICQ7DQoNCiQuZWZmZWN0cyA9IHsNCgllZmZlY3Q6IHt9DQp9Ow0KDQovKiENCiAqIGpRdWVyeSBDb2xvciBBbmltYXRpb25zIHYyLjEuMg0KICogaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktY29sb3INCiAqDQogKiBDb3B5cmlnaHQgMjAxNCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICogRGF0ZTogV2VkIEphbiAxNiAwODo0NzowOSAyMDEzIC0wNjAwDQogKi8NCiggZnVuY3Rpb24oIGpRdWVyeSwgdW5kZWZpbmVkICkgew0KDQoJdmFyIHN0ZXBIb29rcyA9ICJiYWNrZ3JvdW5kQ29sb3IgYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyTGVmdENvbG9yIGJvcmRlclJpZ2h0Q29sb3IgIiArDQoJCSJib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiLA0KDQoJLy8gUGx1c2VxdWFscyB0ZXN0IGZvciArPSAxMDAgLT0gMTAwDQoJcnBsdXNlcXVhbHMgPSAvXihbXC0rXSk9XHMqKFxkK1wuP1xkKikvLA0KDQoJLy8gQSBzZXQgb2YgUkUncyB0aGF0IGNhbiBtYXRjaCBzdHJpbmdzIGFuZCBnZW5lcmF0ZSBjb2xvciB0dXBsZXMuDQoJc3RyaW5nUGFyc2VycyA9IFsgew0KCQkJcmU6IC9yZ2JhP1woXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sDQoJCQlwYXJzZTogZnVuY3Rpb24oIGV4ZWNSZXN1bHQgKSB7DQoJCQkJcmV0dXJuIFsNCgkJCQkJZXhlY1Jlc3VsdFsgMSBdLA0KCQkJCQlleGVjUmVzdWx0WyAyIF0sDQoJCQkJCWV4ZWNSZXN1bHRbIDMgXSwNCgkJCQkJZXhlY1Jlc3VsdFsgNCBdDQoJCQkJXTsNCgkJCX0NCgkJfSwgew0KCQkJcmU6IC9yZ2JhP1woXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sDQoJCQlwYXJzZTogZnVuY3Rpb24oIGV4ZWNSZXN1bHQgKSB7DQoJCQkJcmV0dXJuIFsNCgkJCQkJZXhlY1Jlc3VsdFsgMSBdICogMi41NSwNCgkJCQkJZXhlY1Jlc3VsdFsgMiBdICogMi41NSwNCgkJCQkJZXhlY1Jlc3VsdFsgMyBdICogMi41NSwNCgkJCQkJZXhlY1Jlc3VsdFsgNCBdDQoJCQkJXTsNCgkJCX0NCgkJfSwgew0KDQoJCQkvLyBUaGlzIHJlZ2V4IGlnbm9yZXMgQS1GIGJlY2F1c2UgaXQncyBjb21wYXJlZCBhZ2FpbnN0IGFuIGFscmVhZHkgbG93ZXJjYXNlZCBzdHJpbmcNCgkJCXJlOiAvIyhbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KS8sDQoJCQlwYXJzZTogZnVuY3Rpb24oIGV4ZWNSZXN1bHQgKSB7DQoJCQkJcmV0dXJuIFsNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDEgXSwgMTYgKSwNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDIgXSwgMTYgKSwNCgkJCQkJcGFyc2VJbnQoIGV4ZWNSZXN1bHRbIDMgXSwgMTYgKQ0KCQkJCV07DQoJCQl9DQoJCX0sIHsNCg0KCQkJLy8gVGhpcyByZWdleCBpZ25vcmVzIEEtRiBiZWNhdXNlIGl0J3MgY29tcGFyZWQgYWdhaW5zdCBhbiBhbHJlYWR5IGxvd2VyY2FzZWQgc3RyaW5nDQoJCQlyZTogLyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkvLA0KCQkJcGFyc2U6IGZ1bmN0aW9uKCBleGVjUmVzdWx0ICkgew0KCQkJCXJldHVybiBbDQoJCQkJCXBhcnNlSW50KCBleGVjUmVzdWx0WyAxIF0gKyBleGVjUmVzdWx0WyAxIF0sIDE2ICksDQoJCQkJCXBhcnNlSW50KCBleGVjUmVzdWx0WyAyIF0gKyBleGVjUmVzdWx0WyAyIF0sIDE2ICksDQoJCQkJCXBhcnNlSW50KCBleGVjUmVzdWx0WyAzIF0gKyBleGVjUmVzdWx0WyAzIF0sIDE2ICkNCgkJCQldOw0KCQkJfQ0KCQl9LCB7DQoJCQlyZTogL2hzbGE/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sDQoJCQlzcGFjZTogImhzbGEiLA0KCQkJcGFyc2U6IGZ1bmN0aW9uKCBleGVjUmVzdWx0ICkgew0KCQkJCXJldHVybiBbDQoJCQkJCWV4ZWNSZXN1bHRbIDEgXSwNCgkJCQkJZXhlY1Jlc3VsdFsgMiBdIC8gMTAwLA0KCQkJCQlleGVjUmVzdWx0WyAzIF0gLyAxMDAsDQoJCQkJCWV4ZWNSZXN1bHRbIDQgXQ0KCQkJCV07DQoJCQl9DQoJCX0gXSwNCg0KCS8vIEpRdWVyeS5Db2xvciggKQ0KCWNvbG9yID0galF1ZXJ5LkNvbG9yID0gZnVuY3Rpb24oIGNvbG9yLCBncmVlbiwgYmx1ZSwgYWxwaGEgKSB7DQoJCXJldHVybiBuZXcgalF1ZXJ5LkNvbG9yLmZuLnBhcnNlKCBjb2xvciwgZ3JlZW4sIGJsdWUsIGFscGhhICk7DQoJfSwNCglzcGFjZXMgPSB7DQoJCXJnYmE6IHsNCgkJCXByb3BzOiB7DQoJCQkJcmVkOiB7DQoJCQkJCWlkeDogMCwNCgkJCQkJdHlwZTogImJ5dGUiDQoJCQkJfSwNCgkJCQlncmVlbjogew0KCQkJCQlpZHg6IDEsDQoJCQkJCXR5cGU6ICJieXRlIg0KCQkJCX0sDQoJCQkJYmx1ZTogew0KCQkJCQlpZHg6IDIsDQoJCQkJCXR5cGU6ICJieXRlIg0KCQkJCX0NCgkJCX0NCgkJfSwNCg0KCQloc2xhOiB7DQoJCQlwcm9wczogew0KCQkJCWh1ZTogew0KCQkJCQlpZHg6IDAsDQoJCQkJCXR5cGU6ICJkZWdyZWVzIg0KCQkJCX0sDQoJCQkJc2F0dXJhdGlvbjogew0KCQkJCQlpZHg6IDEsDQoJCQkJCXR5cGU6ICJwZXJjZW50Ig0KCQkJCX0sDQoJCQkJbGlnaHRuZXNzOiB7DQoJCQkJCWlkeDogMiwNCgkJCQkJdHlwZTogInBlcmNlbnQiDQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfSwNCglwcm9wVHlwZXMgPSB7DQoJCSJieXRlIjogew0KCQkJZmxvb3I6IHRydWUsDQoJCQltYXg6IDI1NQ0KCQl9LA0KCQkicGVyY2VudCI6IHsNCgkJCW1heDogMQ0KCQl9LA0KCQkiZGVncmVlcyI6IHsNCgkJCW1vZDogMzYwLA0KCQkJZmxvb3I6IHRydWUNCgkJfQ0KCX0sDQoJc3VwcG9ydCA9IGNvbG9yLnN1cHBvcnQgPSB7fSwNCg0KCS8vIEVsZW1lbnQgZm9yIHN1cHBvcnQgdGVzdHMNCglzdXBwb3J0RWxlbSA9IGpRdWVyeSggIjxwPiIgKVsgMCBdLA0KDQoJLy8gQ29sb3JzID0galF1ZXJ5LkNvbG9yLm5hbWVzDQoJY29sb3JzLA0KDQoJLy8gTG9jYWwgYWxpYXNlcyBvZiBmdW5jdGlvbnMgY2FsbGVkIG9mdGVuDQoJZWFjaCA9IGpRdWVyeS5lYWNoOw0KDQovLyBEZXRlcm1pbmUgcmdiYSBzdXBwb3J0IGltbWVkaWF0ZWx5DQpzdXBwb3J0RWxlbS5zdHlsZS5jc3NUZXh0ID0gImJhY2tncm91bmQtY29sb3I6cmdiYSgxLDEsMSwuNSkiOw0Kc3VwcG9ydC5yZ2JhID0gc3VwcG9ydEVsZW0uc3R5bGUuYmFja2dyb3VuZENvbG9yLmluZGV4T2YoICJyZ2JhIiApID4gLTE7DQoNCi8vIERlZmluZSBjYWNoZSBuYW1lIGFuZCBhbHBoYSBwcm9wZXJ0aWVzDQovLyBmb3IgcmdiYSBhbmQgaHNsYSBzcGFjZXMNCmVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJc3BhY2UuY2FjaGUgPSAiXyIgKyBzcGFjZU5hbWU7DQoJc3BhY2UucHJvcHMuYWxwaGEgPSB7DQoJCWlkeDogMywNCgkJdHlwZTogInBlcmNlbnQiLA0KCQlkZWY6IDENCgl9Ow0KfSApOw0KDQpmdW5jdGlvbiBjbGFtcCggdmFsdWUsIHByb3AsIGFsbG93RW1wdHkgKSB7DQoJdmFyIHR5cGUgPSBwcm9wVHlwZXNbIHByb3AudHlwZSBdIHx8IHt9Ow0KDQoJaWYgKCB2YWx1ZSA9PSBudWxsICkgew0KCQlyZXR1cm4gKCBhbGxvd0VtcHR5IHx8ICFwcm9wLmRlZiApID8gbnVsbCA6IHByb3AuZGVmOw0KCX0NCg0KCS8vIH5+IGlzIGFuIHNob3J0IHdheSBvZiBkb2luZyBmbG9vciBmb3IgcG9zaXRpdmUgbnVtYmVycw0KCXZhbHVlID0gdHlwZS5mbG9vciA/IH5+dmFsdWUgOiBwYXJzZUZsb2F0KCB2YWx1ZSApOw0KDQoJLy8gSUUgd2lsbCBwYXNzIGluIGVtcHR5IHN0cmluZ3MgYXMgdmFsdWUgZm9yIGFscGhhLA0KCS8vIHdoaWNoIHdpbGwgaGl0IHRoaXMgY2FzZQ0KCWlmICggaXNOYU4oIHZhbHVlICkgKSB7DQoJCXJldHVybiBwcm9wLmRlZjsNCgl9DQoNCglpZiAoIHR5cGUubW9kICkgew0KDQoJCS8vIFdlIGFkZCBtb2QgYmVmb3JlIG1vZGRpbmcgdG8gbWFrZSBzdXJlIHRoYXQgbmVnYXRpdmVzIHZhbHVlcw0KCQkvLyBnZXQgY29udmVydGVkIHByb3Blcmx5OiAtMTAgLT4gMzUwDQoJCXJldHVybiAoIHZhbHVlICsgdHlwZS5tb2QgKSAlIHR5cGUubW9kOw0KCX0NCg0KCS8vIEZvciBub3cgYWxsIHByb3BlcnR5IHR5cGVzIHdpdGhvdXQgbW9kIGhhdmUgbWluIGFuZCBtYXgNCglyZXR1cm4gMCA+IHZhbHVlID8gMCA6IHR5cGUubWF4IDwgdmFsdWUgPyB0eXBlLm1heCA6IHZhbHVlOw0KfQ0KDQpmdW5jdGlvbiBzdHJpbmdQYXJzZSggc3RyaW5nICkgew0KCXZhciBpbnN0ID0gY29sb3IoKSwNCgkJcmdiYSA9IGluc3QuX3JnYmEgPSBbXTsNCg0KCXN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpOw0KDQoJZWFjaCggc3RyaW5nUGFyc2VycywgZnVuY3Rpb24oIGksIHBhcnNlciApIHsNCgkJdmFyIHBhcnNlZCwNCgkJCW1hdGNoID0gcGFyc2VyLnJlLmV4ZWMoIHN0cmluZyApLA0KCQkJdmFsdWVzID0gbWF0Y2ggJiYgcGFyc2VyLnBhcnNlKCBtYXRjaCApLA0KCQkJc3BhY2VOYW1lID0gcGFyc2VyLnNwYWNlIHx8ICJyZ2JhIjsNCg0KCQlpZiAoIHZhbHVlcyApIHsNCgkJCXBhcnNlZCA9IGluc3RbIHNwYWNlTmFtZSBdKCB2YWx1ZXMgKTsNCg0KCQkJLy8gSWYgdGhpcyB3YXMgYW4gcmdiYSBwYXJzZSB0aGUgYXNzaWdubWVudCBtaWdodCBoYXBwZW4gdHdpY2UNCgkJCS8vIG9oIHdlbGwuLi4uDQoJCQlpbnN0WyBzcGFjZXNbIHNwYWNlTmFtZSBdLmNhY2hlIF0gPSBwYXJzZWRbIHNwYWNlc1sgc3BhY2VOYW1lIF0uY2FjaGUgXTsNCgkJCXJnYmEgPSBpbnN0Ll9yZ2JhID0gcGFyc2VkLl9yZ2JhOw0KDQoJCQkvLyBFeGl0IGVhY2goIHN0cmluZ1BhcnNlcnMgKSBoZXJlIGJlY2F1c2Ugd2UgbWF0Y2hlZA0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJfSApOw0KDQoJLy8gRm91bmQgYSBzdHJpbmdQYXJzZXIgdGhhdCBoYW5kbGVkIGl0DQoJaWYgKCByZ2JhLmxlbmd0aCApIHsNCg0KCQkvLyBJZiB0aGlzIGNhbWUgZnJvbSBhIHBhcnNlZCBzdHJpbmcsIGZvcmNlICJ0cmFuc3BhcmVudCIgd2hlbiBhbHBoYSBpcyAwDQoJCS8vIGNocm9tZSwgKGFuZCBtYXliZSBvdGhlcnMpIHJldHVybiAidHJhbnNwYXJlbnQiIGFzIHJnYmEoMCwwLDAsMCkNCgkJaWYgKCByZ2JhLmpvaW4oKSA9PT0gIjAsMCwwLDAiICkgew0KCQkJalF1ZXJ5LmV4dGVuZCggcmdiYSwgY29sb3JzLnRyYW5zcGFyZW50ICk7DQoJCX0NCgkJcmV0dXJuIGluc3Q7DQoJfQ0KDQoJLy8gTmFtZWQgY29sb3JzDQoJcmV0dXJuIGNvbG9yc1sgc3RyaW5nIF07DQp9DQoNCmNvbG9yLmZuID0galF1ZXJ5LmV4dGVuZCggY29sb3IucHJvdG90eXBlLCB7DQoJcGFyc2U6IGZ1bmN0aW9uKCByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSApIHsNCgkJaWYgKCByZWQgPT09IHVuZGVmaW5lZCApIHsNCgkJCXRoaXMuX3JnYmEgPSBbIG51bGwsIG51bGwsIG51bGwsIG51bGwgXTsNCgkJCXJldHVybiB0aGlzOw0KCQl9DQoJCWlmICggcmVkLmpxdWVyeSB8fCByZWQubm9kZVR5cGUgKSB7DQoJCQlyZWQgPSBqUXVlcnkoIHJlZCApLmNzcyggZ3JlZW4gKTsNCgkJCWdyZWVuID0gdW5kZWZpbmVkOw0KCQl9DQoNCgkJdmFyIGluc3QgPSB0aGlzLA0KCQkJdHlwZSA9IGpRdWVyeS50eXBlKCByZWQgKSwNCgkJCXJnYmEgPSB0aGlzLl9yZ2JhID0gW107DQoNCgkJLy8gTW9yZSB0aGFuIDEgYXJndW1lbnQgc3BlY2lmaWVkIC0gYXNzdW1lICggcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgKQ0KCQlpZiAoIGdyZWVuICE9PSB1bmRlZmluZWQgKSB7DQoJCQlyZWQgPSBbIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhIF07DQoJCQl0eXBlID0gImFycmF5IjsNCgkJfQ0KDQoJCWlmICggdHlwZSA9PT0gInN0cmluZyIgKSB7DQoJCQlyZXR1cm4gdGhpcy5wYXJzZSggc3RyaW5nUGFyc2UoIHJlZCApIHx8IGNvbG9ycy5fZGVmYXVsdCApOw0KCQl9DQoNCgkJaWYgKCB0eXBlID09PSAiYXJyYXkiICkgew0KCQkJZWFjaCggc3BhY2VzLnJnYmEucHJvcHMsIGZ1bmN0aW9uKCBrZXksIHByb3AgKSB7DQoJCQkJcmdiYVsgcHJvcC5pZHggXSA9IGNsYW1wKCByZWRbIHByb3AuaWR4IF0sIHByb3AgKTsNCgkJCX0gKTsNCgkJCXJldHVybiB0aGlzOw0KCQl9DQoNCgkJaWYgKCB0eXBlID09PSAib2JqZWN0IiApIHsNCgkJCWlmICggcmVkIGluc3RhbmNlb2YgY29sb3IgKSB7DQoJCQkJZWFjaCggc3BhY2VzLCBmdW5jdGlvbiggc3BhY2VOYW1lLCBzcGFjZSApIHsNCgkJCQkJaWYgKCByZWRbIHNwYWNlLmNhY2hlIF0gKSB7DQoJCQkJCQlpbnN0WyBzcGFjZS5jYWNoZSBdID0gcmVkWyBzcGFjZS5jYWNoZSBdLnNsaWNlKCk7DQoJCQkJCX0NCgkJCQl9ICk7DQoJCQl9IGVsc2Ugew0KCQkJCWVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJCQkJCXZhciBjYWNoZSA9IHNwYWNlLmNhY2hlOw0KCQkJCQllYWNoKCBzcGFjZS5wcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCg0KCQkJCQkJLy8gSWYgdGhlIGNhY2hlIGRvZXNuJ3QgZXhpc3QsIGFuZCB3ZSBrbm93IGhvdyB0byBjb252ZXJ0DQoJCQkJCQlpZiAoICFpbnN0WyBjYWNoZSBdICYmIHNwYWNlLnRvICkgew0KDQoJCQkJCQkJLy8gSWYgdGhlIHZhbHVlIHdhcyBudWxsLCB3ZSBkb24ndCBuZWVkIHRvIGNvcHkgaXQNCgkJCQkJCQkvLyBpZiB0aGUga2V5IHdhcyBhbHBoYSwgd2UgZG9uJ3QgbmVlZCB0byBjb3B5IGl0IGVpdGhlcg0KCQkJCQkJCWlmICgga2V5ID09PSAiYWxwaGEiIHx8IHJlZFsga2V5IF0gPT0gbnVsbCApIHsNCgkJCQkJCQkJcmV0dXJuOw0KCQkJCQkJCX0NCgkJCQkJCQlpbnN0WyBjYWNoZSBdID0gc3BhY2UudG8oIGluc3QuX3JnYmEgKTsNCgkJCQkJCX0NCg0KCQkJCQkJLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHdoZXJlIHdlIGFsbG93IG51bGxzIGZvciBBTEwgcHJvcGVydGllcy4NCgkJCQkJCS8vIGNhbGwgY2xhbXAgd2l0aCBhbHdheXNBbGxvd0VtcHR5DQoJCQkJCQlpbnN0WyBjYWNoZSBdWyBwcm9wLmlkeCBdID0gY2xhbXAoIHJlZFsga2V5IF0sIHByb3AsIHRydWUgKTsNCgkJCQkJfSApOw0KDQoJCQkJCS8vIEV2ZXJ5dGhpbmcgZGVmaW5lZCBidXQgYWxwaGE/DQoJCQkJCWlmICggaW5zdFsgY2FjaGUgXSAmJg0KCQkJCQkJCWpRdWVyeS5pbkFycmF5KCBudWxsLCBpbnN0WyBjYWNoZSBdLnNsaWNlKCAwLCAzICkgKSA8IDAgKSB7DQoNCgkJCQkJCS8vIFVzZSB0aGUgZGVmYXVsdCBvZiAxDQoJCQkJCQlpbnN0WyBjYWNoZSBdWyAzIF0gPSAxOw0KCQkJCQkJaWYgKCBzcGFjZS5mcm9tICkgew0KCQkJCQkJCWluc3QuX3JnYmEgPSBzcGFjZS5mcm9tKCBpbnN0WyBjYWNoZSBdICk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9ICk7DQoJCQl9DQoJCQlyZXR1cm4gdGhpczsNCgkJfQ0KCX0sDQoJaXM6IGZ1bmN0aW9uKCBjb21wYXJlICkgew0KCQl2YXIgaXMgPSBjb2xvciggY29tcGFyZSApLA0KCQkJc2FtZSA9IHRydWUsDQoJCQlpbnN0ID0gdGhpczsNCg0KCQllYWNoKCBzcGFjZXMsIGZ1bmN0aW9uKCBfLCBzcGFjZSApIHsNCgkJCXZhciBsb2NhbENhY2hlLA0KCQkJCWlzQ2FjaGUgPSBpc1sgc3BhY2UuY2FjaGUgXTsNCgkJCWlmICggaXNDYWNoZSApIHsNCgkJCQlsb2NhbENhY2hlID0gaW5zdFsgc3BhY2UuY2FjaGUgXSB8fCBzcGFjZS50byAmJiBzcGFjZS50byggaW5zdC5fcmdiYSApIHx8IFtdOw0KCQkJCWVhY2goIHNwYWNlLnByb3BzLCBmdW5jdGlvbiggXywgcHJvcCApIHsNCgkJCQkJaWYgKCBpc0NhY2hlWyBwcm9wLmlkeCBdICE9IG51bGwgKSB7DQoJCQkJCQlzYW1lID0gKCBpc0NhY2hlWyBwcm9wLmlkeCBdID09PSBsb2NhbENhY2hlWyBwcm9wLmlkeCBdICk7DQoJCQkJCQlyZXR1cm4gc2FtZTsNCgkJCQkJfQ0KCQkJCX0gKTsNCgkJCX0NCgkJCXJldHVybiBzYW1lOw0KCQl9ICk7DQoJCXJldHVybiBzYW1lOw0KCX0sDQoJX3NwYWNlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHVzZWQgPSBbXSwNCgkJCWluc3QgPSB0aGlzOw0KCQllYWNoKCBzcGFjZXMsIGZ1bmN0aW9uKCBzcGFjZU5hbWUsIHNwYWNlICkgew0KCQkJaWYgKCBpbnN0WyBzcGFjZS5jYWNoZSBdICkgew0KCQkJCXVzZWQucHVzaCggc3BhY2VOYW1lICk7DQoJCQl9DQoJCX0gKTsNCgkJcmV0dXJuIHVzZWQucG9wKCk7DQoJfSwNCgl0cmFuc2l0aW9uOiBmdW5jdGlvbiggb3RoZXIsIGRpc3RhbmNlICkgew0KCQl2YXIgZW5kID0gY29sb3IoIG90aGVyICksDQoJCQlzcGFjZU5hbWUgPSBlbmQuX3NwYWNlKCksDQoJCQlzcGFjZSA9IHNwYWNlc1sgc3BhY2VOYW1lIF0sDQoJCQlzdGFydENvbG9yID0gdGhpcy5hbHBoYSgpID09PSAwID8gY29sb3IoICJ0cmFuc3BhcmVudCIgKSA6IHRoaXMsDQoJCQlzdGFydCA9IHN0YXJ0Q29sb3JbIHNwYWNlLmNhY2hlIF0gfHwgc3BhY2UudG8oIHN0YXJ0Q29sb3IuX3JnYmEgKSwNCgkJCXJlc3VsdCA9IHN0YXJ0LnNsaWNlKCk7DQoNCgkJZW5kID0gZW5kWyBzcGFjZS5jYWNoZSBdOw0KCQllYWNoKCBzcGFjZS5wcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCgkJCXZhciBpbmRleCA9IHByb3AuaWR4LA0KCQkJCXN0YXJ0VmFsdWUgPSBzdGFydFsgaW5kZXggXSwNCgkJCQllbmRWYWx1ZSA9IGVuZFsgaW5kZXggXSwNCgkJCQl0eXBlID0gcHJvcFR5cGVzWyBwcm9wLnR5cGUgXSB8fCB7fTsNCg0KCQkJLy8gSWYgbnVsbCwgZG9uJ3Qgb3ZlcnJpZGUgc3RhcnQgdmFsdWUNCgkJCWlmICggZW5kVmFsdWUgPT09IG51bGwgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQkvLyBJZiBudWxsIC0gdXNlIGVuZA0KCQkJaWYgKCBzdGFydFZhbHVlID09PSBudWxsICkgew0KCQkJCXJlc3VsdFsgaW5kZXggXSA9IGVuZFZhbHVlOw0KCQkJfSBlbHNlIHsNCgkJCQlpZiAoIHR5cGUubW9kICkgew0KCQkJCQlpZiAoIGVuZFZhbHVlIC0gc3RhcnRWYWx1ZSA+IHR5cGUubW9kIC8gMiApIHsNCgkJCQkJCXN0YXJ0VmFsdWUgKz0gdHlwZS5tb2Q7DQoJCQkJCX0gZWxzZSBpZiAoIHN0YXJ0VmFsdWUgLSBlbmRWYWx1ZSA+IHR5cGUubW9kIC8gMiApIHsNCgkJCQkJCXN0YXJ0VmFsdWUgLT0gdHlwZS5tb2Q7DQoJCQkJCX0NCgkJCQl9DQoJCQkJcmVzdWx0WyBpbmRleCBdID0gY2xhbXAoICggZW5kVmFsdWUgLSBzdGFydFZhbHVlICkgKiBkaXN0YW5jZSArIHN0YXJ0VmFsdWUsIHByb3AgKTsNCgkJCX0NCgkJfSApOw0KCQlyZXR1cm4gdGhpc1sgc3BhY2VOYW1lIF0oIHJlc3VsdCApOw0KCX0sDQoJYmxlbmQ6IGZ1bmN0aW9uKCBvcGFxdWUgKSB7DQoNCgkJLy8gSWYgd2UgYXJlIGFscmVhZHkgb3BhcXVlIC0gcmV0dXJuIG91cnNlbGYNCgkJaWYgKCB0aGlzLl9yZ2JhWyAzIF0gPT09IDEgKSB7DQoJCQlyZXR1cm4gdGhpczsNCgkJfQ0KDQoJCXZhciByZ2IgPSB0aGlzLl9yZ2JhLnNsaWNlKCksDQoJCQlhID0gcmdiLnBvcCgpLA0KCQkJYmxlbmQgPSBjb2xvciggb3BhcXVlICkuX3JnYmE7DQoNCgkJcmV0dXJuIGNvbG9yKCBqUXVlcnkubWFwKCByZ2IsIGZ1bmN0aW9uKCB2LCBpICkgew0KCQkJcmV0dXJuICggMSAtIGEgKSAqIGJsZW5kWyBpIF0gKyBhICogdjsNCgkJfSApICk7DQoJfSwNCgl0b1JnYmFTdHJpbmc6IGZ1bmN0aW9uKCkgew0KCQl2YXIgcHJlZml4ID0gInJnYmEoIiwNCgkJCXJnYmEgPSBqUXVlcnkubWFwKCB0aGlzLl9yZ2JhLCBmdW5jdGlvbiggdiwgaSApIHsNCgkJCQlyZXR1cm4gdiA9PSBudWxsID8gKCBpID4gMiA/IDEgOiAwICkgOiB2Ow0KCQkJfSApOw0KDQoJCWlmICggcmdiYVsgMyBdID09PSAxICkgew0KCQkJcmdiYS5wb3AoKTsNCgkJCXByZWZpeCA9ICJyZ2IoIjsNCgkJfQ0KDQoJCXJldHVybiBwcmVmaXggKyByZ2JhLmpvaW4oKSArICIpIjsNCgl9LA0KCXRvSHNsYVN0cmluZzogZnVuY3Rpb24oKSB7DQoJCXZhciBwcmVmaXggPSAiaHNsYSgiLA0KCQkJaHNsYSA9IGpRdWVyeS5tYXAoIHRoaXMuaHNsYSgpLCBmdW5jdGlvbiggdiwgaSApIHsNCgkJCQlpZiAoIHYgPT0gbnVsbCApIHsNCgkJCQkJdiA9IGkgPiAyID8gMSA6IDA7DQoJCQkJfQ0KDQoJCQkJLy8gQ2F0Y2ggMSBhbmQgMg0KCQkJCWlmICggaSAmJiBpIDwgMyApIHsNCgkJCQkJdiA9IE1hdGgucm91bmQoIHYgKiAxMDAgKSArICIlIjsNCgkJCQl9DQoJCQkJcmV0dXJuIHY7DQoJCQl9ICk7DQoNCgkJaWYgKCBoc2xhWyAzIF0gPT09IDEgKSB7DQoJCQloc2xhLnBvcCgpOw0KCQkJcHJlZml4ID0gImhzbCgiOw0KCQl9DQoJCXJldHVybiBwcmVmaXggKyBoc2xhLmpvaW4oKSArICIpIjsNCgl9LA0KCXRvSGV4U3RyaW5nOiBmdW5jdGlvbiggaW5jbHVkZUFscGhhICkgew0KCQl2YXIgcmdiYSA9IHRoaXMuX3JnYmEuc2xpY2UoKSwNCgkJCWFscGhhID0gcmdiYS5wb3AoKTsNCg0KCQlpZiAoIGluY2x1ZGVBbHBoYSApIHsNCgkJCXJnYmEucHVzaCggfn4oIGFscGhhICogMjU1ICkgKTsNCgkJfQ0KDQoJCXJldHVybiAiIyIgKyBqUXVlcnkubWFwKCByZ2JhLCBmdW5jdGlvbiggdiApIHsNCg0KCQkJLy8gRGVmYXVsdCB0byAwIHdoZW4gbnVsbHMgZXhpc3QNCgkJCXYgPSAoIHYgfHwgMCApLnRvU3RyaW5nKCAxNiApOw0KCQkJcmV0dXJuIHYubGVuZ3RoID09PSAxID8gIjAiICsgdiA6IHY7DQoJCX0gKS5qb2luKCAiIiApOw0KCX0sDQoJdG9TdHJpbmc6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5fcmdiYVsgMyBdID09PSAwID8gInRyYW5zcGFyZW50IiA6IHRoaXMudG9SZ2JhU3RyaW5nKCk7DQoJfQ0KfSApOw0KY29sb3IuZm4ucGFyc2UucHJvdG90eXBlID0gY29sb3IuZm47DQoNCi8vIEhzbGEgY29udmVyc2lvbnMgYWRhcHRlZCBmcm9tOg0KLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9tYWFzaGFhY2svc291cmNlL2Jyb3dzZS9wYWNrYWdlcy9ncmFwaGljcy90cnVuay9zcmMvZ3JhcGhpY3MvY29sb3JzL0hVRTJSR0IuYXM/cj01MDIxDQoNCmZ1bmN0aW9uIGh1ZTJyZ2IoIHAsIHEsIGggKSB7DQoJaCA9ICggaCArIDEgKSAlIDE7DQoJaWYgKCBoICogNiA8IDEgKSB7DQoJCXJldHVybiBwICsgKCBxIC0gcCApICogaCAqIDY7DQoJfQ0KCWlmICggaCAqIDIgPCAxICkgew0KCQlyZXR1cm4gcTsNCgl9DQoJaWYgKCBoICogMyA8IDIgKSB7DQoJCXJldHVybiBwICsgKCBxIC0gcCApICogKCAoIDIgLyAzICkgLSBoICkgKiA2Ow0KCX0NCglyZXR1cm4gcDsNCn0NCg0Kc3BhY2VzLmhzbGEudG8gPSBmdW5jdGlvbiggcmdiYSApIHsNCglpZiAoIHJnYmFbIDAgXSA9PSBudWxsIHx8IHJnYmFbIDEgXSA9PSBudWxsIHx8IHJnYmFbIDIgXSA9PSBudWxsICkgew0KCQlyZXR1cm4gWyBudWxsLCBudWxsLCBudWxsLCByZ2JhWyAzIF0gXTsNCgl9DQoJdmFyIHIgPSByZ2JhWyAwIF0gLyAyNTUsDQoJCWcgPSByZ2JhWyAxIF0gLyAyNTUsDQoJCWIgPSByZ2JhWyAyIF0gLyAyNTUsDQoJCWEgPSByZ2JhWyAzIF0sDQoJCW1heCA9IE1hdGgubWF4KCByLCBnLCBiICksDQoJCW1pbiA9IE1hdGgubWluKCByLCBnLCBiICksDQoJCWRpZmYgPSBtYXggLSBtaW4sDQoJCWFkZCA9IG1heCArIG1pbiwNCgkJbCA9IGFkZCAqIDAuNSwNCgkJaCwgczsNCg0KCWlmICggbWluID09PSBtYXggKSB7DQoJCWggPSAwOw0KCX0gZWxzZSBpZiAoIHIgPT09IG1heCApIHsNCgkJaCA9ICggNjAgKiAoIGcgLSBiICkgLyBkaWZmICkgKyAzNjA7DQoJfSBlbHNlIGlmICggZyA9PT0gbWF4ICkgew0KCQloID0gKCA2MCAqICggYiAtIHIgKSAvIGRpZmYgKSArIDEyMDsNCgl9IGVsc2Ugew0KCQloID0gKCA2MCAqICggciAtIGcgKSAvIGRpZmYgKSArIDI0MDsNCgl9DQoNCgkvLyBDaHJvbWEgKGRpZmYpID09IDAgbWVhbnMgZ3JleXNjYWxlIHdoaWNoLCBieSBkZWZpbml0aW9uLCBzYXR1cmF0aW9uID0gMCUNCgkvLyBvdGhlcndpc2UsIHNhdHVyYXRpb24gaXMgYmFzZWQgb24gdGhlIHJhdGlvIG9mIGNocm9tYSAoZGlmZikgdG8gbGlnaHRuZXNzIChhZGQpDQoJaWYgKCBkaWZmID09PSAwICkgew0KCQlzID0gMDsNCgl9IGVsc2UgaWYgKCBsIDw9IDAuNSApIHsNCgkJcyA9IGRpZmYgLyBhZGQ7DQoJfSBlbHNlIHsNCgkJcyA9IGRpZmYgLyAoIDIgLSBhZGQgKTsNCgl9DQoJcmV0dXJuIFsgTWF0aC5yb3VuZCggaCApICUgMzYwLCBzLCBsLCBhID09IG51bGwgPyAxIDogYSBdOw0KfTsNCg0Kc3BhY2VzLmhzbGEuZnJvbSA9IGZ1bmN0aW9uKCBoc2xhICkgew0KCWlmICggaHNsYVsgMCBdID09IG51bGwgfHwgaHNsYVsgMSBdID09IG51bGwgfHwgaHNsYVsgMiBdID09IG51bGwgKSB7DQoJCXJldHVybiBbIG51bGwsIG51bGwsIG51bGwsIGhzbGFbIDMgXSBdOw0KCX0NCgl2YXIgaCA9IGhzbGFbIDAgXSAvIDM2MCwNCgkJcyA9IGhzbGFbIDEgXSwNCgkJbCA9IGhzbGFbIDIgXSwNCgkJYSA9IGhzbGFbIDMgXSwNCgkJcSA9IGwgPD0gMC41ID8gbCAqICggMSArIHMgKSA6IGwgKyBzIC0gbCAqIHMsDQoJCXAgPSAyICogbCAtIHE7DQoNCglyZXR1cm4gWw0KCQlNYXRoLnJvdW5kKCBodWUycmdiKCBwLCBxLCBoICsgKCAxIC8gMyApICkgKiAyNTUgKSwNCgkJTWF0aC5yb3VuZCggaHVlMnJnYiggcCwgcSwgaCApICogMjU1ICksDQoJCU1hdGgucm91bmQoIGh1ZTJyZ2IoIHAsIHEsIGggLSAoIDEgLyAzICkgKSAqIDI1NSApLA0KCQlhDQoJXTsNCn07DQoNCmVhY2goIHNwYWNlcywgZnVuY3Rpb24oIHNwYWNlTmFtZSwgc3BhY2UgKSB7DQoJdmFyIHByb3BzID0gc3BhY2UucHJvcHMsDQoJCWNhY2hlID0gc3BhY2UuY2FjaGUsDQoJCXRvID0gc3BhY2UudG8sDQoJCWZyb20gPSBzcGFjZS5mcm9tOw0KDQoJLy8gTWFrZXMgcmdiYSgpIGFuZCBoc2xhKCkNCgljb2xvci5mblsgc3BhY2VOYW1lIF0gPSBmdW5jdGlvbiggdmFsdWUgKSB7DQoNCgkJLy8gR2VuZXJhdGUgYSBjYWNoZSBmb3IgdGhpcyBzcGFjZSBpZiBpdCBkb2Vzbid0IGV4aXN0DQoJCWlmICggdG8gJiYgIXRoaXNbIGNhY2hlIF0gKSB7DQoJCQl0aGlzWyBjYWNoZSBdID0gdG8oIHRoaXMuX3JnYmEgKTsNCgkJfQ0KCQlpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gdGhpc1sgY2FjaGUgXS5zbGljZSgpOw0KCQl9DQoNCgkJdmFyIHJldCwNCgkJCXR5cGUgPSBqUXVlcnkudHlwZSggdmFsdWUgKSwNCgkJCWFyciA9ICggdHlwZSA9PT0gImFycmF5IiB8fCB0eXBlID09PSAib2JqZWN0IiApID8gdmFsdWUgOiBhcmd1bWVudHMsDQoJCQlsb2NhbCA9IHRoaXNbIGNhY2hlIF0uc2xpY2UoKTsNCg0KCQllYWNoKCBwcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCgkJCXZhciB2YWwgPSBhcnJbIHR5cGUgPT09ICJvYmplY3QiID8ga2V5IDogcHJvcC5pZHggXTsNCgkJCWlmICggdmFsID09IG51bGwgKSB7DQoJCQkJdmFsID0gbG9jYWxbIHByb3AuaWR4IF07DQoJCQl9DQoJCQlsb2NhbFsgcHJvcC5pZHggXSA9IGNsYW1wKCB2YWwsIHByb3AgKTsNCgkJfSApOw0KDQoJCWlmICggZnJvbSApIHsNCgkJCXJldCA9IGNvbG9yKCBmcm9tKCBsb2NhbCApICk7DQoJCQlyZXRbIGNhY2hlIF0gPSBsb2NhbDsNCgkJCXJldHVybiByZXQ7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gY29sb3IoIGxvY2FsICk7DQoJCX0NCgl9Ow0KDQoJLy8gTWFrZXMgcmVkKCkgZ3JlZW4oKSBibHVlKCkgYWxwaGEoKSBodWUoKSBzYXR1cmF0aW9uKCkgbGlnaHRuZXNzKCkNCgllYWNoKCBwcm9wcywgZnVuY3Rpb24oIGtleSwgcHJvcCApIHsNCg0KCQkvLyBBbHBoYSBpcyBpbmNsdWRlZCBpbiBtb3JlIHRoYW4gb25lIHNwYWNlDQoJCWlmICggY29sb3IuZm5bIGtleSBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWNvbG9yLmZuWyBrZXkgXSA9IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJCXZhciB2dHlwZSA9IGpRdWVyeS50eXBlKCB2YWx1ZSApLA0KCQkJCWZuID0gKCBrZXkgPT09ICJhbHBoYSIgPyAoIHRoaXMuX2hzbGEgPyAiaHNsYSIgOiAicmdiYSIgKSA6IHNwYWNlTmFtZSApLA0KCQkJCWxvY2FsID0gdGhpc1sgZm4gXSgpLA0KCQkJCWN1ciA9IGxvY2FsWyBwcm9wLmlkeCBdLA0KCQkJCW1hdGNoOw0KDQoJCQlpZiAoIHZ0eXBlID09PSAidW5kZWZpbmVkIiApIHsNCgkJCQlyZXR1cm4gY3VyOw0KCQkJfQ0KDQoJCQlpZiAoIHZ0eXBlID09PSAiZnVuY3Rpb24iICkgew0KCQkJCXZhbHVlID0gdmFsdWUuY2FsbCggdGhpcywgY3VyICk7DQoJCQkJdnR5cGUgPSBqUXVlcnkudHlwZSggdmFsdWUgKTsNCgkJCX0NCgkJCWlmICggdmFsdWUgPT0gbnVsbCAmJiBwcm9wLmVtcHR5ICkgew0KCQkJCXJldHVybiB0aGlzOw0KCQkJfQ0KCQkJaWYgKCB2dHlwZSA9PT0gInN0cmluZyIgKSB7DQoJCQkJbWF0Y2ggPSBycGx1c2VxdWFscy5leGVjKCB2YWx1ZSApOw0KCQkJCWlmICggbWF0Y2ggKSB7DQoJCQkJCXZhbHVlID0gY3VyICsgcGFyc2VGbG9hdCggbWF0Y2hbIDIgXSApICogKCBtYXRjaFsgMSBdID09PSAiKyIgPyAxIDogLTEgKTsNCgkJCQl9DQoJCQl9DQoJCQlsb2NhbFsgcHJvcC5pZHggXSA9IHZhbHVlOw0KCQkJcmV0dXJuIHRoaXNbIGZuIF0oIGxvY2FsICk7DQoJCX07DQoJfSApOw0KfSApOw0KDQovLyBBZGQgY3NzSG9vayBhbmQgLmZ4LnN0ZXAgZnVuY3Rpb24gZm9yIGVhY2ggbmFtZWQgaG9vay4NCi8vIGFjY2VwdCBhIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2YgcHJvcGVydGllcw0KY29sb3IuaG9vayA9IGZ1bmN0aW9uKCBob29rICkgew0KCXZhciBob29rcyA9IGhvb2suc3BsaXQoICIgIiApOw0KCWVhY2goIGhvb2tzLCBmdW5jdGlvbiggaSwgaG9vayApIHsNCgkJalF1ZXJ5LmNzc0hvb2tzWyBob29rIF0gPSB7DQoJCQlzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHsNCgkJCQl2YXIgcGFyc2VkLCBjdXJFbGVtLA0KCQkJCQliYWNrZ3JvdW5kQ29sb3IgPSAiIjsNCg0KCQkJCWlmICggdmFsdWUgIT09ICJ0cmFuc3BhcmVudCIgJiYgKCBqUXVlcnkudHlwZSggdmFsdWUgKSAhPT0gInN0cmluZyIgfHwNCgkJCQkJCSggcGFyc2VkID0gc3RyaW5nUGFyc2UoIHZhbHVlICkgKSApICkgew0KCQkJCQl2YWx1ZSA9IGNvbG9yKCBwYXJzZWQgfHwgdmFsdWUgKTsNCgkJCQkJaWYgKCAhc3VwcG9ydC5yZ2JhICYmIHZhbHVlLl9yZ2JhWyAzIF0gIT09IDEgKSB7DQoJCQkJCQljdXJFbGVtID0gaG9vayA9PT0gImJhY2tncm91bmRDb2xvciIgPyBlbGVtLnBhcmVudE5vZGUgOiBlbGVtOw0KCQkJCQkJd2hpbGUgKA0KCQkJCQkJCSggYmFja2dyb3VuZENvbG9yID09PSAiIiB8fCBiYWNrZ3JvdW5kQ29sb3IgPT09ICJ0cmFuc3BhcmVudCIgKSAmJg0KCQkJCQkJCWN1ckVsZW0gJiYgY3VyRWxlbS5zdHlsZQ0KCQkJCQkJKSB7DQoJCQkJCQkJdHJ5IHsNCgkJCQkJCQkJYmFja2dyb3VuZENvbG9yID0galF1ZXJ5LmNzcyggY3VyRWxlbSwgImJhY2tncm91bmRDb2xvciIgKTsNCgkJCQkJCQkJY3VyRWxlbSA9IGN1ckVsZW0ucGFyZW50Tm9kZTsNCgkJCQkJCQl9IGNhdGNoICggZSApIHsNCgkJCQkJCQl9DQoJCQkJCQl9DQoNCgkJCQkJCXZhbHVlID0gdmFsdWUuYmxlbmQoIGJhY2tncm91bmRDb2xvciAmJiBiYWNrZ3JvdW5kQ29sb3IgIT09ICJ0cmFuc3BhcmVudCIgPw0KCQkJCQkJCWJhY2tncm91bmRDb2xvciA6DQoJCQkJCQkJIl9kZWZhdWx0IiApOw0KCQkJCQl9DQoNCgkJCQkJdmFsdWUgPSB2YWx1ZS50b1JnYmFTdHJpbmcoKTsNCgkJCQl9DQoJCQkJdHJ5IHsNCgkJCQkJZWxlbS5zdHlsZVsgaG9vayBdID0gdmFsdWU7DQoJCQkJfSBjYXRjaCAoIGUgKSB7DQoNCgkJCQkJLy8gV3JhcHBlZCB0byBwcmV2ZW50IElFIGZyb20gdGhyb3dpbmcgZXJyb3JzIG9uICJpbnZhbGlkIiB2YWx1ZXMgbGlrZQ0KCQkJCQkvLyAnYXV0bycgb3IgJ2luaGVyaXQnDQoJCQkJfQ0KCQkJfQ0KCQl9Ow0KCQlqUXVlcnkuZnguc3RlcFsgaG9vayBdID0gZnVuY3Rpb24oIGZ4ICkgew0KCQkJaWYgKCAhZnguY29sb3JJbml0ICkgew0KCQkJCWZ4LnN0YXJ0ID0gY29sb3IoIGZ4LmVsZW0sIGhvb2sgKTsNCgkJCQlmeC5lbmQgPSBjb2xvciggZnguZW5kICk7DQoJCQkJZnguY29sb3JJbml0ID0gdHJ1ZTsNCgkJCX0NCgkJCWpRdWVyeS5jc3NIb29rc1sgaG9vayBdLnNldCggZnguZWxlbSwgZnguc3RhcnQudHJhbnNpdGlvbiggZnguZW5kLCBmeC5wb3MgKSApOw0KCQl9Ow0KCX0gKTsNCg0KfTsNCg0KY29sb3IuaG9vayggc3RlcEhvb2tzICk7DQoNCmpRdWVyeS5jc3NIb29rcy5ib3JkZXJDb2xvciA9IHsNCglleHBhbmQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdmFyIGV4cGFuZGVkID0ge307DQoNCgkJZWFjaCggWyAiVG9wIiwgIlJpZ2h0IiwgIkJvdHRvbSIsICJMZWZ0IiBdLCBmdW5jdGlvbiggaSwgcGFydCApIHsNCgkJCWV4cGFuZGVkWyAiYm9yZGVyIiArIHBhcnQgKyAiQ29sb3IiIF0gPSB2YWx1ZTsNCgkJfSApOw0KCQlyZXR1cm4gZXhwYW5kZWQ7DQoJfQ0KfTsNCg0KLy8gQmFzaWMgY29sb3IgbmFtZXMgb25seS4NCi8vIFVzYWdlIG9mIGFueSBvZiB0aGUgb3RoZXIgY29sb3IgbmFtZXMgcmVxdWlyZXMgYWRkaW5nIHlvdXJzZWxmIG9yIGluY2x1ZGluZw0KLy8ganF1ZXJ5LmNvbG9yLnN2Zy1uYW1lcy5qcy4NCmNvbG9ycyA9IGpRdWVyeS5Db2xvci5uYW1lcyA9IHsNCg0KCS8vIDQuMS4gQmFzaWMgY29sb3Iga2V5d29yZHMNCglhcXVhOiAiIzAwZmZmZiIsDQoJYmxhY2s6ICIjMDAwMDAwIiwNCglibHVlOiAiIzAwMDBmZiIsDQoJZnVjaHNpYTogIiNmZjAwZmYiLA0KCWdyYXk6ICIjODA4MDgwIiwNCglncmVlbjogIiMwMDgwMDAiLA0KCWxpbWU6ICIjMDBmZjAwIiwNCgltYXJvb246ICIjODAwMDAwIiwNCgluYXZ5OiAiIzAwMDA4MCIsDQoJb2xpdmU6ICIjODA4MDAwIiwNCglwdXJwbGU6ICIjODAwMDgwIiwNCglyZWQ6ICIjZmYwMDAwIiwNCglzaWx2ZXI6ICIjYzBjMGMwIiwNCgl0ZWFsOiAiIzAwODA4MCIsDQoJd2hpdGU6ICIjZmZmZmZmIiwNCgl5ZWxsb3c6ICIjZmZmZjAwIiwNCg0KCS8vIDQuMi4zLiAidHJhbnNwYXJlbnQiIGNvbG9yIGtleXdvcmQNCgl0cmFuc3BhcmVudDogWyBudWxsLCBudWxsLCBudWxsLCAwIF0sDQoNCglfZGVmYXVsdDogIiNmZmZmZmYiDQp9Ow0KDQp9ICkoIGpRdWVyeSApOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBDTEFTUyBBTklNQVRJT05TICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQooIGZ1bmN0aW9uKCkgew0KDQp2YXIgY2xhc3NBbmltYXRpb25BY3Rpb25zID0gWyAiYWRkIiwgInJlbW92ZSIsICJ0b2dnbGUiIF0sDQoJc2hvcnRoYW5kU3R5bGVzID0gew0KCQlib3JkZXI6IDEsDQoJCWJvcmRlckJvdHRvbTogMSwNCgkJYm9yZGVyQ29sb3I6IDEsDQoJCWJvcmRlckxlZnQ6IDEsDQoJCWJvcmRlclJpZ2h0OiAxLA0KCQlib3JkZXJUb3A6IDEsDQoJCWJvcmRlcldpZHRoOiAxLA0KCQltYXJnaW46IDEsDQoJCXBhZGRpbmc6IDENCgl9Ow0KDQokLmVhY2goDQoJWyAiYm9yZGVyTGVmdFN0eWxlIiwgImJvcmRlclJpZ2h0U3R5bGUiLCAiYm9yZGVyQm90dG9tU3R5bGUiLCAiYm9yZGVyVG9wU3R5bGUiIF0sDQoJZnVuY3Rpb24oIF8sIHByb3AgKSB7DQoJCSQuZnguc3RlcFsgcHJvcCBdID0gZnVuY3Rpb24oIGZ4ICkgew0KCQkJaWYgKCBmeC5lbmQgIT09ICJub25lIiAmJiAhZnguc2V0QXR0ciB8fCBmeC5wb3MgPT09IDEgJiYgIWZ4LnNldEF0dHIgKSB7DQoJCQkJalF1ZXJ5LnN0eWxlKCBmeC5lbGVtLCBwcm9wLCBmeC5lbmQgKTsNCgkJCQlmeC5zZXRBdHRyID0gdHJ1ZTsNCgkJCX0NCgkJfTsNCgl9DQopOw0KDQpmdW5jdGlvbiBnZXRFbGVtZW50U3R5bGVzKCBlbGVtICkgew0KCXZhciBrZXksIGxlbiwNCgkJc3R5bGUgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgPw0KCQkJZWxlbS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoIGVsZW0sIG51bGwgKSA6DQoJCQllbGVtLmN1cnJlbnRTdHlsZSwNCgkJc3R5bGVzID0ge307DQoNCglpZiAoIHN0eWxlICYmIHN0eWxlLmxlbmd0aCAmJiBzdHlsZVsgMCBdICYmIHN0eWxlWyBzdHlsZVsgMCBdIF0gKSB7DQoJCWxlbiA9IHN0eWxlLmxlbmd0aDsNCgkJd2hpbGUgKCBsZW4tLSApIHsNCgkJCWtleSA9IHN0eWxlWyBsZW4gXTsNCgkJCWlmICggdHlwZW9mIHN0eWxlWyBrZXkgXSA9PT0gInN0cmluZyIgKSB7DQoJCQkJc3R5bGVzWyAkLmNhbWVsQ2FzZSgga2V5ICkgXSA9IHN0eWxlWyBrZXkgXTsNCgkJCX0NCgkJfQ0KDQoJLy8gU3VwcG9ydDogT3BlcmEsIElFIDw5DQoJfSBlbHNlIHsNCgkJZm9yICgga2V5IGluIHN0eWxlICkgew0KCQkJaWYgKCB0eXBlb2Ygc3R5bGVbIGtleSBdID09PSAic3RyaW5nIiApIHsNCgkJCQlzdHlsZXNbIGtleSBdID0gc3R5bGVbIGtleSBdOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJcmV0dXJuIHN0eWxlczsNCn0NCg0KZnVuY3Rpb24gc3R5bGVEaWZmZXJlbmNlKCBvbGRTdHlsZSwgbmV3U3R5bGUgKSB7DQoJdmFyIGRpZmYgPSB7fSwNCgkJbmFtZSwgdmFsdWU7DQoNCglmb3IgKCBuYW1lIGluIG5ld1N0eWxlICkgew0KCQl2YWx1ZSA9IG5ld1N0eWxlWyBuYW1lIF07DQoJCWlmICggb2xkU3R5bGVbIG5hbWUgXSAhPT0gdmFsdWUgKSB7DQoJCQlpZiAoICFzaG9ydGhhbmRTdHlsZXNbIG5hbWUgXSApIHsNCgkJCQlpZiAoICQuZnguc3RlcFsgbmFtZSBdIHx8ICFpc05hTiggcGFyc2VGbG9hdCggdmFsdWUgKSApICkgew0KCQkJCQlkaWZmWyBuYW1lIF0gPSB2YWx1ZTsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoNCglyZXR1cm4gZGlmZjsNCn0NCg0KLy8gU3VwcG9ydDogalF1ZXJ5IDwxLjgNCmlmICggISQuZm4uYWRkQmFjayApIHsNCgkkLmZuLmFkZEJhY2sgPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiB0aGlzLmFkZCggc2VsZWN0b3IgPT0gbnVsbCA/DQoJCQl0aGlzLnByZXZPYmplY3QgOiB0aGlzLnByZXZPYmplY3QuZmlsdGVyKCBzZWxlY3RvciApDQoJCSk7DQoJfTsNCn0NCg0KJC5lZmZlY3RzLmFuaW1hdGVDbGFzcyA9IGZ1bmN0aW9uKCB2YWx1ZSwgZHVyYXRpb24sIGVhc2luZywgY2FsbGJhY2sgKSB7DQoJdmFyIG8gPSAkLnNwZWVkKCBkdXJhdGlvbiwgZWFzaW5nLCBjYWxsYmFjayApOw0KDQoJcmV0dXJuIHRoaXMucXVldWUoIGZ1bmN0aW9uKCkgew0KCQl2YXIgYW5pbWF0ZWQgPSAkKCB0aGlzICksDQoJCQliYXNlQ2xhc3MgPSBhbmltYXRlZC5hdHRyKCAiY2xhc3MiICkgfHwgIiIsDQoJCQlhcHBseUNsYXNzQ2hhbmdlLA0KCQkJYWxsQW5pbWF0aW9ucyA9IG8uY2hpbGRyZW4gPyBhbmltYXRlZC5maW5kKCAiKiIgKS5hZGRCYWNrKCkgOiBhbmltYXRlZDsNCg0KCQkvLyBNYXAgdGhlIGFuaW1hdGVkIG9iamVjdHMgdG8gc3RvcmUgdGhlIG9yaWdpbmFsIHN0eWxlcy4NCgkJYWxsQW5pbWF0aW9ucyA9IGFsbEFuaW1hdGlvbnMubWFwKCBmdW5jdGlvbigpIHsNCgkJCXZhciBlbCA9ICQoIHRoaXMgKTsNCgkJCXJldHVybiB7DQoJCQkJZWw6IGVsLA0KCQkJCXN0YXJ0OiBnZXRFbGVtZW50U3R5bGVzKCB0aGlzICkNCgkJCX07DQoJCX0gKTsNCg0KCQkvLyBBcHBseSBjbGFzcyBjaGFuZ2UNCgkJYXBwbHlDbGFzc0NoYW5nZSA9IGZ1bmN0aW9uKCkgew0KCQkJJC5lYWNoKCBjbGFzc0FuaW1hdGlvbkFjdGlvbnMsIGZ1bmN0aW9uKCBpLCBhY3Rpb24gKSB7DQoJCQkJaWYgKCB2YWx1ZVsgYWN0aW9uIF0gKSB7DQoJCQkJCWFuaW1hdGVkWyBhY3Rpb24gKyAiQ2xhc3MiIF0oIHZhbHVlWyBhY3Rpb24gXSApOw0KCQkJCX0NCgkJCX0gKTsNCgkJfTsNCgkJYXBwbHlDbGFzc0NoYW5nZSgpOw0KDQoJCS8vIE1hcCBhbGwgYW5pbWF0ZWQgb2JqZWN0cyBhZ2FpbiAtIGNhbGN1bGF0ZSBuZXcgc3R5bGVzIGFuZCBkaWZmDQoJCWFsbEFuaW1hdGlvbnMgPSBhbGxBbmltYXRpb25zLm1hcCggZnVuY3Rpb24oKSB7DQoJCQl0aGlzLmVuZCA9IGdldEVsZW1lbnRTdHlsZXMoIHRoaXMuZWxbIDAgXSApOw0KCQkJdGhpcy5kaWZmID0gc3R5bGVEaWZmZXJlbmNlKCB0aGlzLnN0YXJ0LCB0aGlzLmVuZCApOw0KCQkJcmV0dXJuIHRoaXM7DQoJCX0gKTsNCg0KCQkvLyBBcHBseSBvcmlnaW5hbCBjbGFzcw0KCQlhbmltYXRlZC5hdHRyKCAiY2xhc3MiLCBiYXNlQ2xhc3MgKTsNCg0KCQkvLyBNYXAgYWxsIGFuaW1hdGVkIG9iamVjdHMgYWdhaW4gLSB0aGlzIHRpbWUgY29sbGVjdGluZyBhIHByb21pc2UNCgkJYWxsQW5pbWF0aW9ucyA9IGFsbEFuaW1hdGlvbnMubWFwKCBmdW5jdGlvbigpIHsNCgkJCXZhciBzdHlsZUluZm8gPSB0aGlzLA0KCQkJCWRmZCA9ICQuRGVmZXJyZWQoKSwNCgkJCQlvcHRzID0gJC5leHRlbmQoIHt9LCBvLCB7DQoJCQkJCXF1ZXVlOiBmYWxzZSwNCgkJCQkJY29tcGxldGU6IGZ1bmN0aW9uKCkgew0KCQkJCQkJZGZkLnJlc29sdmUoIHN0eWxlSW5mbyApOw0KCQkJCQl9DQoJCQkJfSApOw0KDQoJCQl0aGlzLmVsLmFuaW1hdGUoIHRoaXMuZGlmZiwgb3B0cyApOw0KCQkJcmV0dXJuIGRmZC5wcm9taXNlKCk7DQoJCX0gKTsNCg0KCQkvLyBPbmNlIGFsbCBhbmltYXRpb25zIGhhdmUgY29tcGxldGVkOg0KCQkkLndoZW4uYXBwbHkoICQsIGFsbEFuaW1hdGlvbnMuZ2V0KCkgKS5kb25lKCBmdW5jdGlvbigpIHsNCg0KCQkJLy8gU2V0IHRoZSBmaW5hbCBjbGFzcw0KCQkJYXBwbHlDbGFzc0NoYW5nZSgpOw0KDQoJCQkvLyBGb3IgZWFjaCBhbmltYXRlZCBlbGVtZW50LA0KCQkJLy8gY2xlYXIgYWxsIGNzcyBwcm9wZXJ0aWVzIHRoYXQgd2VyZSBhbmltYXRlZA0KCQkJJC5lYWNoKCBhcmd1bWVudHMsIGZ1bmN0aW9uKCkgew0KCQkJCXZhciBlbCA9IHRoaXMuZWw7DQoJCQkJJC5lYWNoKCB0aGlzLmRpZmYsIGZ1bmN0aW9uKCBrZXkgKSB7DQoJCQkJCWVsLmNzcygga2V5LCAiIiApOw0KCQkJCX0gKTsNCgkJCX0gKTsNCg0KCQkJLy8gVGhpcyBpcyBndWFybnRlZWQgdG8gYmUgdGhlcmUgaWYgeW91IHVzZSBqUXVlcnkuc3BlZWQoKQ0KCQkJLy8gaXQgYWxzbyBoYW5kbGVzIGRlcXVldWluZyB0aGUgbmV4dCBhbmltLi4uDQoJCQlvLmNvbXBsZXRlLmNhbGwoIGFuaW1hdGVkWyAwIF0gKTsNCgkJfSApOw0KCX0gKTsNCn07DQoNCiQuZm4uZXh0ZW5kKCB7DQoJYWRkQ2xhc3M6ICggZnVuY3Rpb24oIG9yaWcgKSB7DQoJCXJldHVybiBmdW5jdGlvbiggY2xhc3NOYW1lcywgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7DQoJCQlyZXR1cm4gc3BlZWQgPw0KCQkJCSQuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCggdGhpcywNCgkJCQkJeyBhZGQ6IGNsYXNzTmFtZXMgfSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSA6DQoJCQkJb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCX07DQoJfSApKCAkLmZuLmFkZENsYXNzICksDQoNCglyZW1vdmVDbGFzczogKCBmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBjbGFzc05hbWVzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHsNCgkJCXJldHVybiBhcmd1bWVudHMubGVuZ3RoID4gMSA/DQoJCQkJJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQl7IHJlbW92ZTogY2xhc3NOYW1lcyB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIDoNCgkJCQlvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJfTsNCgl9ICkoICQuZm4ucmVtb3ZlQ2xhc3MgKSwNCg0KCXRvZ2dsZUNsYXNzOiAoIGZ1bmN0aW9uKCBvcmlnICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIGNsYXNzTmFtZXMsIGZvcmNlLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApIHsNCgkJCWlmICggdHlwZW9mIGZvcmNlID09PSAiYm9vbGVhbiIgfHwgZm9yY2UgPT09IHVuZGVmaW5lZCApIHsNCgkJCQlpZiAoICFzcGVlZCApIHsNCg0KCQkJCQkvLyBXaXRob3V0IHNwZWVkIHBhcmFtZXRlcg0KCQkJCQlyZXR1cm4gb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJcmV0dXJuICQuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCggdGhpcywNCgkJCQkJCSggZm9yY2UgPyB7IGFkZDogY2xhc3NOYW1lcyB9IDogeyByZW1vdmU6IGNsYXNzTmFtZXMgfSApLA0KCQkJCQkJc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KDQoJCQkJLy8gV2l0aG91dCBmb3JjZSBwYXJhbWV0ZXINCgkJCQlyZXR1cm4gJC5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKCB0aGlzLA0KCQkJCQl7IHRvZ2dsZTogY2xhc3NOYW1lcyB9LCBmb3JjZSwgc3BlZWQsIGVhc2luZyApOw0KCQkJfQ0KCQl9Ow0KCX0gKSggJC5mbi50b2dnbGVDbGFzcyApLA0KDQoJc3dpdGNoQ2xhc3M6IGZ1bmN0aW9uKCByZW1vdmUsIGFkZCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7DQoJCXJldHVybiAkLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwoIHRoaXMsIHsNCgkJCWFkZDogYWRkLA0KCQkJcmVtb3ZlOiByZW1vdmUNCgkJfSwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTsNCgl9DQp9ICk7DQoNCn0gKSgpOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVGRkVDVFMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiggZnVuY3Rpb24oKSB7DQoNCmlmICggJC5leHByICYmICQuZXhwci5maWx0ZXJzICYmICQuZXhwci5maWx0ZXJzLmFuaW1hdGVkICkgew0KCSQuZXhwci5maWx0ZXJzLmFuaW1hdGVkID0gKCBmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkgew0KCQkJcmV0dXJuICEhJCggZWxlbSApLmRhdGEoIGRhdGFTcGFjZUFuaW1hdGVkICkgfHwgb3JpZyggZWxlbSApOw0KCQl9Ow0KCX0gKSggJC5leHByLmZpbHRlcnMuYW5pbWF0ZWQgKTsNCn0NCg0KaWYgKCAkLnVpQmFja0NvbXBhdCAhPT0gZmFsc2UgKSB7DQoJJC5leHRlbmQoICQuZWZmZWN0cywgew0KDQoJCS8vIFNhdmVzIGEgc2V0IG9mIHByb3BlcnRpZXMgaW4gYSBkYXRhIHN0b3JhZ2UNCgkJc2F2ZTogZnVuY3Rpb24oIGVsZW1lbnQsIHNldCApIHsNCgkJCXZhciBpID0gMCwgbGVuZ3RoID0gc2V0Lmxlbmd0aDsNCgkJCWZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkgew0KCQkJCWlmICggc2V0WyBpIF0gIT09IG51bGwgKSB7DQoJCQkJCWVsZW1lbnQuZGF0YSggZGF0YVNwYWNlICsgc2V0WyBpIF0sIGVsZW1lbnRbIDAgXS5zdHlsZVsgc2V0WyBpIF0gXSApOw0KCQkJCX0NCgkJCX0NCgkJfSwNCg0KCQkvLyBSZXN0b3JlcyBhIHNldCBvZiBwcmV2aW91c2x5IHNhdmVkIHByb3BlcnRpZXMgZnJvbSBhIGRhdGEgc3RvcmFnZQ0KCQlyZXN0b3JlOiBmdW5jdGlvbiggZWxlbWVudCwgc2V0ICkgew0KCQkJdmFyIHZhbCwgaSA9IDAsIGxlbmd0aCA9IHNldC5sZW5ndGg7DQoJCQlmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHsNCgkJCQlpZiAoIHNldFsgaSBdICE9PSBudWxsICkgew0KCQkJCQl2YWwgPSBlbGVtZW50LmRhdGEoIGRhdGFTcGFjZSArIHNldFsgaSBdICk7DQoJCQkJCWVsZW1lbnQuY3NzKCBzZXRbIGkgXSwgdmFsICk7DQoJCQkJfQ0KCQkJfQ0KCQl9LA0KDQoJCXNldE1vZGU6IGZ1bmN0aW9uKCBlbCwgbW9kZSApIHsNCgkJCWlmICggbW9kZSA9PT0gInRvZ2dsZSIgKSB7DQoJCQkJbW9kZSA9IGVsLmlzKCAiOmhpZGRlbiIgKSA/ICJzaG93IiA6ICJoaWRlIjsNCgkJCX0NCgkJCXJldHVybiBtb2RlOw0KCQl9LA0KDQoJCS8vIFdyYXBzIHRoZSBlbGVtZW50IGFyb3VuZCBhIHdyYXBwZXIgdGhhdCBjb3BpZXMgcG9zaXRpb24gcHJvcGVydGllcw0KCQljcmVhdGVXcmFwcGVyOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCg0KCQkJLy8gSWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSB3cmFwcGVkLCByZXR1cm4gaXQNCgkJCWlmICggZWxlbWVudC5wYXJlbnQoKS5pcyggIi51aS1lZmZlY3RzLXdyYXBwZXIiICkgKSB7DQoJCQkJcmV0dXJuIGVsZW1lbnQucGFyZW50KCk7DQoJCQl9DQoNCgkJCS8vIFdyYXAgdGhlIGVsZW1lbnQNCgkJCXZhciBwcm9wcyA9IHsNCgkJCQkJd2lkdGg6IGVsZW1lbnQub3V0ZXJXaWR0aCggdHJ1ZSApLA0KCQkJCQloZWlnaHQ6IGVsZW1lbnQub3V0ZXJIZWlnaHQoIHRydWUgKSwNCgkJCQkJImZsb2F0IjogZWxlbWVudC5jc3MoICJmbG9hdCIgKQ0KCQkJCX0sDQoJCQkJd3JhcHBlciA9ICQoICI8ZGl2PjwvZGl2PiIgKQ0KCQkJCQkuYWRkQ2xhc3MoICJ1aS1lZmZlY3RzLXdyYXBwZXIiICkNCgkJCQkJLmNzcyggew0KCQkJCQkJZm9udFNpemU6ICIxMDAlIiwNCgkJCQkJCWJhY2tncm91bmQ6ICJ0cmFuc3BhcmVudCIsDQoJCQkJCQlib3JkZXI6ICJub25lIiwNCgkJCQkJCW1hcmdpbjogMCwNCgkJCQkJCXBhZGRpbmc6IDANCgkJCQkJfSApLA0KDQoJCQkJLy8gU3RvcmUgdGhlIHNpemUgaW4gY2FzZSB3aWR0aC9oZWlnaHQgYXJlIGRlZmluZWQgaW4gJSAtIEZpeGVzICM1MjQ1DQoJCQkJc2l6ZSA9IHsNCgkJCQkJd2lkdGg6IGVsZW1lbnQud2lkdGgoKSwNCgkJCQkJaGVpZ2h0OiBlbGVtZW50LmhlaWdodCgpDQoJCQkJfSwNCgkJCQlhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50Ow0KDQoJCQkvLyBTdXBwb3J0OiBGaXJlZm94DQoJCQkvLyBGaXJlZm94IGluY29ycmVjdGx5IGV4cG9zZXMgYW5vbnltb3VzIGNvbnRlbnQNCgkJCS8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTU2MTY2NA0KCQkJdHJ5IHsNCgkJCQlhY3RpdmUuaWQ7DQoJCQl9IGNhdGNoICggZSApIHsNCgkJCQlhY3RpdmUgPSBkb2N1bWVudC5ib2R5Ow0KCQkJfQ0KDQoJCQllbGVtZW50LndyYXAoIHdyYXBwZXIgKTsNCg0KCQkJLy8gRml4ZXMgIzc1OTUgLSBFbGVtZW50cyBsb3NlIGZvY3VzIHdoZW4gd3JhcHBlZC4NCgkJCWlmICggZWxlbWVudFsgMCBdID09PSBhY3RpdmUgfHwgJC5jb250YWlucyggZWxlbWVudFsgMCBdLCBhY3RpdmUgKSApIHsNCgkJCQkkKCBhY3RpdmUgKS50cmlnZ2VyKCAiZm9jdXMiICk7DQoJCQl9DQoNCgkJCS8vIEhvdGZpeCBmb3IgalF1ZXJ5IDEuNCBzaW5jZSBzb21lIGNoYW5nZSBpbiB3cmFwKCkgc2VlbXMgdG8gYWN0dWFsbHkNCgkJCS8vIGxvc2UgdGhlIHJlZmVyZW5jZSB0byB0aGUgd3JhcHBlZCBlbGVtZW50DQoJCQl3cmFwcGVyID0gZWxlbWVudC5wYXJlbnQoKTsNCg0KCQkJLy8gVHJhbnNmZXIgcG9zaXRpb25pbmcgcHJvcGVydGllcyB0byB0aGUgd3JhcHBlcg0KCQkJaWYgKCBlbGVtZW50LmNzcyggInBvc2l0aW9uIiApID09PSAic3RhdGljIiApIHsNCgkJCQl3cmFwcGVyLmNzcyggeyBwb3NpdGlvbjogInJlbGF0aXZlIiB9ICk7DQoJCQkJZWxlbWVudC5jc3MoIHsgcG9zaXRpb246ICJyZWxhdGl2ZSIgfSApOw0KCQkJfSBlbHNlIHsNCgkJCQkkLmV4dGVuZCggcHJvcHMsIHsNCgkJCQkJcG9zaXRpb246IGVsZW1lbnQuY3NzKCAicG9zaXRpb24iICksDQoJCQkJCXpJbmRleDogZWxlbWVudC5jc3MoICJ6LWluZGV4IiApDQoJCQkJfSApOw0KCQkJCSQuZWFjaCggWyAidG9wIiwgImxlZnQiLCAiYm90dG9tIiwgInJpZ2h0IiBdLCBmdW5jdGlvbiggaSwgcG9zICkgew0KCQkJCQlwcm9wc1sgcG9zIF0gPSBlbGVtZW50LmNzcyggcG9zICk7DQoJCQkJCWlmICggaXNOYU4oIHBhcnNlSW50KCBwcm9wc1sgcG9zIF0sIDEwICkgKSApIHsNCgkJCQkJCXByb3BzWyBwb3MgXSA9ICJhdXRvIjsNCgkJCQkJfQ0KCQkJCX0gKTsNCgkJCQllbGVtZW50LmNzcyggew0KCQkJCQlwb3NpdGlvbjogInJlbGF0aXZlIiwNCgkJCQkJdG9wOiAwLA0KCQkJCQlsZWZ0OiAwLA0KCQkJCQlyaWdodDogImF1dG8iLA0KCQkJCQlib3R0b206ICJhdXRvIg0KCQkJCX0gKTsNCgkJCX0NCgkJCWVsZW1lbnQuY3NzKCBzaXplICk7DQoNCgkJCXJldHVybiB3cmFwcGVyLmNzcyggcHJvcHMgKS5zaG93KCk7DQoJCX0sDQoNCgkJcmVtb3ZlV3JhcHBlcjogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCQl2YXIgYWN0aXZlID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsNCg0KCQkJaWYgKCBlbGVtZW50LnBhcmVudCgpLmlzKCAiLnVpLWVmZmVjdHMtd3JhcHBlciIgKSApIHsNCgkJCQllbGVtZW50LnBhcmVudCgpLnJlcGxhY2VXaXRoKCBlbGVtZW50ICk7DQoNCgkJCQkvLyBGaXhlcyAjNzU5NSAtIEVsZW1lbnRzIGxvc2UgZm9jdXMgd2hlbiB3cmFwcGVkLg0KCQkJCWlmICggZWxlbWVudFsgMCBdID09PSBhY3RpdmUgfHwgJC5jb250YWlucyggZWxlbWVudFsgMCBdLCBhY3RpdmUgKSApIHsNCgkJCQkJJCggYWN0aXZlICkudHJpZ2dlciggImZvY3VzIiApOw0KCQkJCX0NCgkJCX0NCg0KCQkJcmV0dXJuIGVsZW1lbnQ7DQoJCX0NCgl9ICk7DQp9DQoNCiQuZXh0ZW5kKCAkLmVmZmVjdHMsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCg0KCWRlZmluZTogZnVuY3Rpb24oIG5hbWUsIG1vZGUsIGVmZmVjdCApIHsNCgkJaWYgKCAhZWZmZWN0ICkgew0KCQkJZWZmZWN0ID0gbW9kZTsNCgkJCW1vZGUgPSAiZWZmZWN0IjsNCgkJfQ0KDQoJCSQuZWZmZWN0cy5lZmZlY3RbIG5hbWUgXSA9IGVmZmVjdDsNCgkJJC5lZmZlY3RzLmVmZmVjdFsgbmFtZSBdLm1vZGUgPSBtb2RlOw0KDQoJCXJldHVybiBlZmZlY3Q7DQoJfSwNCg0KCXNjYWxlZERpbWVuc2lvbnM6IGZ1bmN0aW9uKCBlbGVtZW50LCBwZXJjZW50LCBkaXJlY3Rpb24gKSB7DQoJCWlmICggcGVyY2VudCA9PT0gMCApIHsNCgkJCXJldHVybiB7DQoJCQkJaGVpZ2h0OiAwLA0KCQkJCXdpZHRoOiAwLA0KCQkJCW91dGVySGVpZ2h0OiAwLA0KCQkJCW91dGVyV2lkdGg6IDANCgkJCX07DQoJCX0NCg0KCQl2YXIgeCA9IGRpcmVjdGlvbiAhPT0gImhvcml6b250YWwiID8gKCAoIHBlcmNlbnQgfHwgMTAwICkgLyAxMDAgKSA6IDEsDQoJCQl5ID0gZGlyZWN0aW9uICE9PSAidmVydGljYWwiID8gKCAoIHBlcmNlbnQgfHwgMTAwICkgLyAxMDAgKSA6IDE7DQoNCgkJcmV0dXJuIHsNCgkJCWhlaWdodDogZWxlbWVudC5oZWlnaHQoKSAqIHksDQoJCQl3aWR0aDogZWxlbWVudC53aWR0aCgpICogeCwNCgkJCW91dGVySGVpZ2h0OiBlbGVtZW50Lm91dGVySGVpZ2h0KCkgKiB5LA0KCQkJb3V0ZXJXaWR0aDogZWxlbWVudC5vdXRlcldpZHRoKCkgKiB4DQoJCX07DQoNCgl9LA0KDQoJY2xpcFRvQm94OiBmdW5jdGlvbiggYW5pbWF0aW9uICkgew0KCQlyZXR1cm4gew0KCQkJd2lkdGg6IGFuaW1hdGlvbi5jbGlwLnJpZ2h0IC0gYW5pbWF0aW9uLmNsaXAubGVmdCwNCgkJCWhlaWdodDogYW5pbWF0aW9uLmNsaXAuYm90dG9tIC0gYW5pbWF0aW9uLmNsaXAudG9wLA0KCQkJbGVmdDogYW5pbWF0aW9uLmNsaXAubGVmdCwNCgkJCXRvcDogYW5pbWF0aW9uLmNsaXAudG9wDQoJCX07DQoJfSwNCg0KCS8vIEluamVjdHMgcmVjZW50bHkgcXVldWVkIGZ1bmN0aW9ucyB0byBiZSBmaXJzdCBpbiBsaW5lIChhZnRlciAiaW5wcm9ncmVzcyIpDQoJdW5zaGlmdDogZnVuY3Rpb24oIGVsZW1lbnQsIHF1ZXVlTGVuZ3RoLCBjb3VudCApIHsNCgkJdmFyIHF1ZXVlID0gZWxlbWVudC5xdWV1ZSgpOw0KDQoJCWlmICggcXVldWVMZW5ndGggPiAxICkgew0KCQkJcXVldWUuc3BsaWNlLmFwcGx5KCBxdWV1ZSwNCgkJCQlbIDEsIDAgXS5jb25jYXQoIHF1ZXVlLnNwbGljZSggcXVldWVMZW5ndGgsIGNvdW50ICkgKSApOw0KCQl9DQoJCWVsZW1lbnQuZGVxdWV1ZSgpOw0KCX0sDQoNCglzYXZlU3R5bGU6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQllbGVtZW50LmRhdGEoIGRhdGFTcGFjZVN0eWxlLCBlbGVtZW50WyAwIF0uc3R5bGUuY3NzVGV4dCApOw0KCX0sDQoNCglyZXN0b3JlU3R5bGU6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQllbGVtZW50WyAwIF0uc3R5bGUuY3NzVGV4dCA9IGVsZW1lbnQuZGF0YSggZGF0YVNwYWNlU3R5bGUgKSB8fCAiIjsNCgkJZWxlbWVudC5yZW1vdmVEYXRhKCBkYXRhU3BhY2VTdHlsZSApOw0KCX0sDQoNCgltb2RlOiBmdW5jdGlvbiggZWxlbWVudCwgbW9kZSApIHsNCgkJdmFyIGhpZGRlbiA9IGVsZW1lbnQuaXMoICI6aGlkZGVuIiApOw0KDQoJCWlmICggbW9kZSA9PT0gInRvZ2dsZSIgKSB7DQoJCQltb2RlID0gaGlkZGVuID8gInNob3ciIDogImhpZGUiOw0KCQl9DQoJCWlmICggaGlkZGVuID8gbW9kZSA9PT0gImhpZGUiIDogbW9kZSA9PT0gInNob3ciICkgew0KCQkJbW9kZSA9ICJub25lIjsNCgkJfQ0KCQlyZXR1cm4gbW9kZTsNCgl9LA0KDQoJLy8gVHJhbnNsYXRlcyBhIFt0b3AsbGVmdF0gYXJyYXkgaW50byBhIGJhc2VsaW5lIHZhbHVlDQoJZ2V0QmFzZWxpbmU6IGZ1bmN0aW9uKCBvcmlnaW4sIG9yaWdpbmFsICkgew0KCQl2YXIgeSwgeDsNCg0KCQlzd2l0Y2ggKCBvcmlnaW5bIDAgXSApIHsNCgkJY2FzZSAidG9wIjoNCgkJCXkgPSAwOw0KCQkJYnJlYWs7DQoJCWNhc2UgIm1pZGRsZSI6DQoJCQl5ID0gMC41Ow0KCQkJYnJlYWs7DQoJCWNhc2UgImJvdHRvbSI6DQoJCQl5ID0gMTsNCgkJCWJyZWFrOw0KCQlkZWZhdWx0Og0KCQkJeSA9IG9yaWdpblsgMCBdIC8gb3JpZ2luYWwuaGVpZ2h0Ow0KCQl9DQoNCgkJc3dpdGNoICggb3JpZ2luWyAxIF0gKSB7DQoJCWNhc2UgImxlZnQiOg0KCQkJeCA9IDA7DQoJCQlicmVhazsNCgkJY2FzZSAiY2VudGVyIjoNCgkJCXggPSAwLjU7DQoJCQlicmVhazsNCgkJY2FzZSAicmlnaHQiOg0KCQkJeCA9IDE7DQoJCQlicmVhazsNCgkJZGVmYXVsdDoNCgkJCXggPSBvcmlnaW5bIDEgXSAvIG9yaWdpbmFsLndpZHRoOw0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCXg6IHgsDQoJCQl5OiB5DQoJCX07DQoJfSwNCg0KCS8vIENyZWF0ZXMgYSBwbGFjZWhvbGRlciBlbGVtZW50IHNvIHRoYXQgdGhlIG9yaWdpbmFsIGVsZW1lbnQgY2FuIGJlIG1hZGUgYWJzb2x1dGUNCgljcmVhdGVQbGFjZWhvbGRlcjogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCXZhciBwbGFjZWhvbGRlciwNCgkJCWNzc1Bvc2l0aW9uID0gZWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSwNCgkJCXBvc2l0aW9uID0gZWxlbWVudC5wb3NpdGlvbigpOw0KDQoJCS8vIExvY2sgaW4gbWFyZ2lucyBmaXJzdCB0byBhY2NvdW50IGZvciBmb3JtIGVsZW1lbnRzLCB3aGljaA0KCQkvLyB3aWxsIGNoYW5nZSBtYXJnaW4gaWYgeW91IGV4cGxpY2l0bHkgc2V0IGhlaWdodA0KCQkvLyBzZWU6IGh0dHA6Ly9qc2ZpZGRsZS5uZXQvSlpTTXQvMy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzM4MA0KCQkvLyBTdXBwb3J0OiBTYWZhcmkNCgkJZWxlbWVudC5jc3MoIHsNCgkJCW1hcmdpblRvcDogZWxlbWVudC5jc3MoICJtYXJnaW5Ub3AiICksDQoJCQltYXJnaW5Cb3R0b206IGVsZW1lbnQuY3NzKCAibWFyZ2luQm90dG9tIiApLA0KCQkJbWFyZ2luTGVmdDogZWxlbWVudC5jc3MoICJtYXJnaW5MZWZ0IiApLA0KCQkJbWFyZ2luUmlnaHQ6IGVsZW1lbnQuY3NzKCAibWFyZ2luUmlnaHQiICkNCgkJfSApDQoJCS5vdXRlcldpZHRoKCBlbGVtZW50Lm91dGVyV2lkdGgoKSApDQoJCS5vdXRlckhlaWdodCggZWxlbWVudC5vdXRlckhlaWdodCgpICk7DQoNCgkJaWYgKCAvXihzdGF0aWN8cmVsYXRpdmUpLy50ZXN0KCBjc3NQb3NpdGlvbiApICkgew0KCQkJY3NzUG9zaXRpb24gPSAiYWJzb2x1dGUiOw0KDQoJCQlwbGFjZWhvbGRlciA9ICQoICI8IiArIGVsZW1lbnRbIDAgXS5ub2RlTmFtZSArICI+IiApLmluc2VydEFmdGVyKCBlbGVtZW50ICkuY3NzKCB7DQoNCgkJCQkvLyBDb252ZXJ0IGlubGluZSB0byBpbmxpbmUgYmxvY2sgdG8gYWNjb3VudCBmb3IgaW5saW5lIGVsZW1lbnRzDQoJCQkJLy8gdGhhdCB0dXJuIHRvIGlubGluZSBibG9jayBiYXNlZCBvbiBjb250ZW50IChsaWtlIGltZykNCgkJCQlkaXNwbGF5OiAvXihpbmxpbmV8cnVieSkvLnRlc3QoIGVsZW1lbnQuY3NzKCAiZGlzcGxheSIgKSApID8NCgkJCQkJImlubGluZS1ibG9jayIgOg0KCQkJCQkiYmxvY2siLA0KCQkJCXZpc2liaWxpdHk6ICJoaWRkZW4iLA0KDQoJCQkJLy8gTWFyZ2lucyBuZWVkIHRvIGJlIHNldCB0byBhY2NvdW50IGZvciBtYXJnaW4gY29sbGFwc2UNCgkJCQltYXJnaW5Ub3A6IGVsZW1lbnQuY3NzKCAibWFyZ2luVG9wIiApLA0KCQkJCW1hcmdpbkJvdHRvbTogZWxlbWVudC5jc3MoICJtYXJnaW5Cb3R0b20iICksDQoJCQkJbWFyZ2luTGVmdDogZWxlbWVudC5jc3MoICJtYXJnaW5MZWZ0IiApLA0KCQkJCW1hcmdpblJpZ2h0OiBlbGVtZW50LmNzcyggIm1hcmdpblJpZ2h0IiApLA0KCQkJCSJmbG9hdCI6IGVsZW1lbnQuY3NzKCAiZmxvYXQiICkNCgkJCX0gKQ0KCQkJLm91dGVyV2lkdGgoIGVsZW1lbnQub3V0ZXJXaWR0aCgpICkNCgkJCS5vdXRlckhlaWdodCggZWxlbWVudC5vdXRlckhlaWdodCgpICkNCgkJCS5hZGRDbGFzcyggInVpLWVmZmVjdHMtcGxhY2Vob2xkZXIiICk7DQoNCgkJCWVsZW1lbnQuZGF0YSggZGF0YVNwYWNlICsgInBsYWNlaG9sZGVyIiwgcGxhY2Vob2xkZXIgKTsNCgkJfQ0KDQoJCWVsZW1lbnQuY3NzKCB7DQoJCQlwb3NpdGlvbjogY3NzUG9zaXRpb24sDQoJCQlsZWZ0OiBwb3NpdGlvbi5sZWZ0LA0KCQkJdG9wOiBwb3NpdGlvbi50b3ANCgkJfSApOw0KDQoJCXJldHVybiBwbGFjZWhvbGRlcjsNCgl9LA0KDQoJcmVtb3ZlUGxhY2Vob2xkZXI6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgZGF0YUtleSA9IGRhdGFTcGFjZSArICJwbGFjZWhvbGRlciIsDQoJCQkJcGxhY2Vob2xkZXIgPSBlbGVtZW50LmRhdGEoIGRhdGFLZXkgKTsNCg0KCQlpZiAoIHBsYWNlaG9sZGVyICkgew0KCQkJcGxhY2Vob2xkZXIucmVtb3ZlKCk7DQoJCQllbGVtZW50LnJlbW92ZURhdGEoIGRhdGFLZXkgKTsNCgkJfQ0KCX0sDQoNCgkvLyBSZW1vdmVzIGEgcGxhY2Vob2xkZXIgaWYgaXQgZXhpc3RzIGFuZCByZXN0b3Jlcw0KCS8vIHByb3BlcnRpZXMgdGhhdCB3ZXJlIG1vZGlmaWVkIGR1cmluZyBwbGFjZWhvbGRlciBjcmVhdGlvbg0KCWNsZWFuVXA6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQkkLmVmZmVjdHMucmVzdG9yZVN0eWxlKCBlbGVtZW50ICk7DQoJCSQuZWZmZWN0cy5yZW1vdmVQbGFjZWhvbGRlciggZWxlbWVudCApOw0KCX0sDQoNCglzZXRUcmFuc2l0aW9uOiBmdW5jdGlvbiggZWxlbWVudCwgbGlzdCwgZmFjdG9yLCB2YWx1ZSApIHsNCgkJdmFsdWUgPSB2YWx1ZSB8fCB7fTsNCgkJJC5lYWNoKCBsaXN0LCBmdW5jdGlvbiggaSwgeCApIHsNCgkJCXZhciB1bml0ID0gZWxlbWVudC5jc3NVbml0KCB4ICk7DQoJCQlpZiAoIHVuaXRbIDAgXSA+IDAgKSB7DQoJCQkJdmFsdWVbIHggXSA9IHVuaXRbIDAgXSAqIGZhY3RvciArIHVuaXRbIDEgXTsNCgkJCX0NCgkJfSApOw0KCQlyZXR1cm4gdmFsdWU7DQoJfQ0KfSApOw0KDQovLyBSZXR1cm4gYW4gZWZmZWN0IG9wdGlvbnMgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gcGFyYW1ldGVyczoNCmZ1bmN0aW9uIF9ub3JtYWxpemVBcmd1bWVudHMoIGVmZmVjdCwgb3B0aW9ucywgc3BlZWQsIGNhbGxiYWNrICkgew0KDQoJLy8gQWxsb3cgcGFzc2luZyBhbGwgb3B0aW9ucyBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyDQoJaWYgKCAkLmlzUGxhaW5PYmplY3QoIGVmZmVjdCApICkgew0KCQlvcHRpb25zID0gZWZmZWN0Ow0KCQllZmZlY3QgPSBlZmZlY3QuZWZmZWN0Ow0KCX0NCg0KCS8vIENvbnZlcnQgdG8gYW4gb2JqZWN0DQoJZWZmZWN0ID0geyBlZmZlY3Q6IGVmZmVjdCB9Ow0KDQoJLy8gQ2F0Y2ggKGVmZmVjdCwgbnVsbCwgLi4uKQ0KCWlmICggb3B0aW9ucyA9PSBudWxsICkgew0KCQlvcHRpb25zID0ge307DQoJfQ0KDQoJLy8gQ2F0Y2ggKGVmZmVjdCwgY2FsbGJhY2spDQoJaWYgKCAkLmlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHsNCgkJY2FsbGJhY2sgPSBvcHRpb25zOw0KCQlzcGVlZCA9IG51bGw7DQoJCW9wdGlvbnMgPSB7fTsNCgl9DQoNCgkvLyBDYXRjaCAoZWZmZWN0LCBzcGVlZCwgPykNCglpZiAoIHR5cGVvZiBvcHRpb25zID09PSAibnVtYmVyIiB8fCAkLmZ4LnNwZWVkc1sgb3B0aW9ucyBdICkgew0KCQljYWxsYmFjayA9IHNwZWVkOw0KCQlzcGVlZCA9IG9wdGlvbnM7DQoJCW9wdGlvbnMgPSB7fTsNCgl9DQoNCgkvLyBDYXRjaCAoZWZmZWN0LCBvcHRpb25zLCBjYWxsYmFjaykNCglpZiAoICQuaXNGdW5jdGlvbiggc3BlZWQgKSApIHsNCgkJY2FsbGJhY2sgPSBzcGVlZDsNCgkJc3BlZWQgPSBudWxsOw0KCX0NCg0KCS8vIEFkZCBvcHRpb25zIHRvIGVmZmVjdA0KCWlmICggb3B0aW9ucyApIHsNCgkJJC5leHRlbmQoIGVmZmVjdCwgb3B0aW9ucyApOw0KCX0NCg0KCXNwZWVkID0gc3BlZWQgfHwgb3B0aW9ucy5kdXJhdGlvbjsNCgllZmZlY3QuZHVyYXRpb24gPSAkLmZ4Lm9mZiA/IDAgOg0KCQl0eXBlb2Ygc3BlZWQgPT09ICJudW1iZXIiID8gc3BlZWQgOg0KCQlzcGVlZCBpbiAkLmZ4LnNwZWVkcyA/ICQuZnguc3BlZWRzWyBzcGVlZCBdIDoNCgkJJC5meC5zcGVlZHMuX2RlZmF1bHQ7DQoNCgllZmZlY3QuY29tcGxldGUgPSBjYWxsYmFjayB8fCBvcHRpb25zLmNvbXBsZXRlOw0KDQoJcmV0dXJuIGVmZmVjdDsNCn0NCg0KZnVuY3Rpb24gc3RhbmRhcmRBbmltYXRpb25PcHRpb24oIG9wdGlvbiApIHsNCg0KCS8vIFZhbGlkIHN0YW5kYXJkIHNwZWVkcyAobm90aGluZywgbnVtYmVyLCBuYW1lZCBzcGVlZCkNCglpZiAoICFvcHRpb24gfHwgdHlwZW9mIG9wdGlvbiA9PT0gIm51bWJlciIgfHwgJC5meC5zcGVlZHNbIG9wdGlvbiBdICkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvLyBJbnZhbGlkIHN0cmluZ3MgLSB0cmVhdCBhcyAibm9ybWFsIiBzcGVlZA0KCWlmICggdHlwZW9mIG9wdGlvbiA9PT0gInN0cmluZyIgJiYgISQuZWZmZWN0cy5lZmZlY3RbIG9wdGlvbiBdICkgew0KCQlyZXR1cm4gdHJ1ZTsNCgl9DQoNCgkvLyBDb21wbGV0ZSBjYWxsYmFjaw0KCWlmICggJC5pc0Z1bmN0aW9uKCBvcHRpb24gKSApIHsNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLy8gT3B0aW9ucyBoYXNoIChidXQgbm90IG5hbWluZyBhbiBlZmZlY3QpDQoJaWYgKCB0eXBlb2Ygb3B0aW9uID09PSAib2JqZWN0IiAmJiAhb3B0aW9uLmVmZmVjdCApIHsNCgkJcmV0dXJuIHRydWU7DQoJfQ0KDQoJLy8gRGlkbid0IG1hdGNoIGFueSBzdGFuZGFyZCBBUEkNCglyZXR1cm4gZmFsc2U7DQp9DQoNCiQuZm4uZXh0ZW5kKCB7DQoJZWZmZWN0OiBmdW5jdGlvbiggLyogZWZmZWN0LCBvcHRpb25zLCBzcGVlZCwgY2FsbGJhY2sgKi8gKSB7DQoJCXZhciBhcmdzID0gX25vcm1hbGl6ZUFyZ3VtZW50cy5hcHBseSggdGhpcywgYXJndW1lbnRzICksDQoJCQllZmZlY3RNZXRob2QgPSAkLmVmZmVjdHMuZWZmZWN0WyBhcmdzLmVmZmVjdCBdLA0KCQkJZGVmYXVsdE1vZGUgPSBlZmZlY3RNZXRob2QubW9kZSwNCgkJCXF1ZXVlID0gYXJncy5xdWV1ZSwNCgkJCXF1ZXVlTmFtZSA9IHF1ZXVlIHx8ICJmeCIsDQoJCQljb21wbGV0ZSA9IGFyZ3MuY29tcGxldGUsDQoJCQltb2RlID0gYXJncy5tb2RlLA0KCQkJbW9kZXMgPSBbXSwNCgkJCXByZWZpbHRlciA9IGZ1bmN0aW9uKCBuZXh0ICkgew0KCQkJCXZhciBlbCA9ICQoIHRoaXMgKSwNCgkJCQkJbm9ybWFsaXplZE1vZGUgPSAkLmVmZmVjdHMubW9kZSggZWwsIG1vZGUgKSB8fCBkZWZhdWx0TW9kZTsNCg0KCQkJCS8vIFNlbnRpbmVsIGZvciBkdWNrLXB1bmNoaW5nIHRoZSA6YW5pbWF0ZWQgcHN1ZWRvLXNlbGVjdG9yDQoJCQkJZWwuZGF0YSggZGF0YVNwYWNlQW5pbWF0ZWQsIHRydWUgKTsNCg0KCQkJCS8vIFNhdmUgZWZmZWN0IG1vZGUgZm9yIGxhdGVyIHVzZSwNCgkJCQkvLyB3ZSBjYW4ndCBqdXN0IGNhbGwgJC5lZmZlY3RzLm1vZGUgYWdhaW4gbGF0ZXIsDQoJCQkJLy8gYXMgdGhlIC5zaG93KCkgYmVsb3cgZGVzdHJveXMgdGhlIGluaXRpYWwgc3RhdGUNCgkJCQltb2Rlcy5wdXNoKCBub3JtYWxpemVkTW9kZSApOw0KDQoJCQkJLy8gU2VlICQudWlCYWNrQ29tcGF0IGluc2lkZSBvZiBydW4oKSBmb3IgcmVtb3ZhbCBvZiBkZWZhdWx0TW9kZSBpbiAxLjEzDQoJCQkJaWYgKCBkZWZhdWx0TW9kZSAmJiAoIG5vcm1hbGl6ZWRNb2RlID09PSAic2hvdyIgfHwNCgkJCQkJCSggbm9ybWFsaXplZE1vZGUgPT09IGRlZmF1bHRNb2RlICYmIG5vcm1hbGl6ZWRNb2RlID09PSAiaGlkZSIgKSApICkgew0KCQkJCQllbC5zaG93KCk7DQoJCQkJfQ0KDQoJCQkJaWYgKCAhZGVmYXVsdE1vZGUgfHwgbm9ybWFsaXplZE1vZGUgIT09ICJub25lIiApIHsNCgkJCQkJJC5lZmZlY3RzLnNhdmVTdHlsZSggZWwgKTsNCgkJCQl9DQoNCgkJCQlpZiAoICQuaXNGdW5jdGlvbiggbmV4dCApICkgew0KCQkJCQluZXh0KCk7DQoJCQkJfQ0KCQkJfTsNCg0KCQlpZiAoICQuZngub2ZmIHx8ICFlZmZlY3RNZXRob2QgKSB7DQoNCgkJCS8vIERlbGVnYXRlIHRvIHRoZSBvcmlnaW5hbCBtZXRob2QgKGUuZy4sIC5zaG93KCkpIGlmIHBvc3NpYmxlDQoJCQlpZiAoIG1vZGUgKSB7DQoJCQkJcmV0dXJuIHRoaXNbIG1vZGUgXSggYXJncy5kdXJhdGlvbiwgY29tcGxldGUgKTsNCgkJCX0gZWxzZSB7DQoJCQkJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJCWlmICggY29tcGxldGUgKSB7DQoJCQkJCQljb21wbGV0ZS5jYWxsKCB0aGlzICk7DQoJCQkJCX0NCgkJCQl9ICk7DQoJCQl9DQoJCX0NCg0KCQlmdW5jdGlvbiBydW4oIG5leHQgKSB7DQoJCQl2YXIgZWxlbSA9ICQoIHRoaXMgKTsNCg0KCQkJZnVuY3Rpb24gY2xlYW51cCgpIHsNCgkJCQllbGVtLnJlbW92ZURhdGEoIGRhdGFTcGFjZUFuaW1hdGVkICk7DQoNCgkJCQkkLmVmZmVjdHMuY2xlYW5VcCggZWxlbSApOw0KDQoJCQkJaWYgKCBhcmdzLm1vZGUgPT09ICJoaWRlIiApIHsNCgkJCQkJZWxlbS5oaWRlKCk7DQoJCQkJfQ0KDQoJCQkJZG9uZSgpOw0KCQkJfQ0KDQoJCQlmdW5jdGlvbiBkb25lKCkgew0KCQkJCWlmICggJC5pc0Z1bmN0aW9uKCBjb21wbGV0ZSApICkgew0KCQkJCQljb21wbGV0ZS5jYWxsKCBlbGVtWyAwIF0gKTsNCgkJCQl9DQoNCgkJCQlpZiAoICQuaXNGdW5jdGlvbiggbmV4dCApICkgew0KCQkJCQluZXh0KCk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBPdmVycmlkZSBtb2RlIG9wdGlvbiBvbiBhIHBlciBlbGVtZW50IGJhc2lzLA0KCQkJLy8gYXMgdG9nZ2xlIGNhbiBiZSBlaXRoZXIgc2hvdyBvciBoaWRlIGRlcGVuZGluZyBvbiBlbGVtZW50IHN0YXRlDQoJCQlhcmdzLm1vZGUgPSBtb2Rlcy5zaGlmdCgpOw0KDQoJCQlpZiAoICQudWlCYWNrQ29tcGF0ICE9PSBmYWxzZSAmJiAhZGVmYXVsdE1vZGUgKSB7DQoJCQkJaWYgKCBlbGVtLmlzKCAiOmhpZGRlbiIgKSA/IG1vZGUgPT09ICJoaWRlIiA6IG1vZGUgPT09ICJzaG93IiApIHsNCg0KCQkJCQkvLyBDYWxsIHRoZSBjb3JlIG1ldGhvZCB0byB0cmFjayAib2xkZGlzcGxheSIgcHJvcGVybHkNCgkJCQkJZWxlbVsgbW9kZSBdKCk7DQoJCQkJCWRvbmUoKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQllZmZlY3RNZXRob2QuY2FsbCggZWxlbVsgMCBdLCBhcmdzLCBkb25lICk7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQlpZiAoIGFyZ3MubW9kZSA9PT0gIm5vbmUiICkgew0KDQoJCQkJCS8vIENhbGwgdGhlIGNvcmUgbWV0aG9kIHRvIHRyYWNrICJvbGRkaXNwbGF5IiBwcm9wZXJseQ0KCQkJCQllbGVtWyBtb2RlIF0oKTsNCgkJCQkJZG9uZSgpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWVmZmVjdE1ldGhvZC5jYWxsKCBlbGVtWyAwIF0sIGFyZ3MsIGNsZWFudXAgKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQkvLyBSdW4gcHJlZmlsdGVyIG9uIGFsbCBlbGVtZW50cyBmaXJzdCB0byBlbnN1cmUgdGhhdA0KCQkvLyBhbnkgc2hvd2luZyBvciBoaWRpbmcgaGFwcGVucyBiZWZvcmUgcGxhY2Vob2xkZXIgY3JlYXRpb24sDQoJCS8vIHdoaWNoIGVuc3VyZXMgdGhhdCBhbnkgbGF5b3V0IGNoYW5nZXMgYXJlIGNvcnJlY3RseSBjYXB0dXJlZC4NCgkJcmV0dXJuIHF1ZXVlID09PSBmYWxzZSA/DQoJCQl0aGlzLmVhY2goIHByZWZpbHRlciApLmVhY2goIHJ1biApIDoNCgkJCXRoaXMucXVldWUoIHF1ZXVlTmFtZSwgcHJlZmlsdGVyICkucXVldWUoIHF1ZXVlTmFtZSwgcnVuICk7DQoJfSwNCg0KCXNob3c6ICggZnVuY3Rpb24oIG9yaWcgKSB7DQoJCXJldHVybiBmdW5jdGlvbiggb3B0aW9uICkgew0KCQkJaWYgKCBzdGFuZGFyZEFuaW1hdGlvbk9wdGlvbiggb3B0aW9uICkgKSB7DQoJCQkJcmV0dXJuIG9yaWcuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJfSBlbHNlIHsNCgkJCQl2YXIgYXJncyA9IF9ub3JtYWxpemVBcmd1bWVudHMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApOw0KCQkJCWFyZ3MubW9kZSA9ICJzaG93IjsNCgkJCQlyZXR1cm4gdGhpcy5lZmZlY3QuY2FsbCggdGhpcywgYXJncyApOw0KCQkJfQ0KCQl9Ow0KCX0gKSggJC5mbi5zaG93ICksDQoNCgloaWRlOiAoIGZ1bmN0aW9uKCBvcmlnICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIG9wdGlvbiApIHsNCgkJCWlmICggc3RhbmRhcmRBbmltYXRpb25PcHRpb24oIG9wdGlvbiApICkgew0KCQkJCXJldHVybiBvcmlnLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdmFyIGFyZ3MgPSBfbm9ybWFsaXplQXJndW1lbnRzLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTsNCgkJCQlhcmdzLm1vZGUgPSAiaGlkZSI7DQoJCQkJcmV0dXJuIHRoaXMuZWZmZWN0LmNhbGwoIHRoaXMsIGFyZ3MgKTsNCgkJCX0NCgkJfTsNCgl9ICkoICQuZm4uaGlkZSApLA0KDQoJdG9nZ2xlOiAoIGZ1bmN0aW9uKCBvcmlnICkgew0KCQlyZXR1cm4gZnVuY3Rpb24oIG9wdGlvbiApIHsNCgkJCWlmICggc3RhbmRhcmRBbmltYXRpb25PcHRpb24oIG9wdGlvbiApIHx8IHR5cGVvZiBvcHRpb24gPT09ICJib29sZWFuIiApIHsNCgkJCQlyZXR1cm4gb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQl9IGVsc2Ugew0KCQkJCXZhciBhcmdzID0gX25vcm1hbGl6ZUFyZ3VtZW50cy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQkJYXJncy5tb2RlID0gInRvZ2dsZSI7DQoJCQkJcmV0dXJuIHRoaXMuZWZmZWN0LmNhbGwoIHRoaXMsIGFyZ3MgKTsNCgkJCX0NCgkJfTsNCgl9ICkoICQuZm4udG9nZ2xlICksDQoNCgljc3NVbml0OiBmdW5jdGlvbigga2V5ICkgew0KCQl2YXIgc3R5bGUgPSB0aGlzLmNzcygga2V5ICksDQoJCQl2YWwgPSBbXTsNCg0KCQkkLmVhY2goIFsgImVtIiwgInB4IiwgIiUiLCAicHQiIF0sIGZ1bmN0aW9uKCBpLCB1bml0ICkgew0KCQkJaWYgKCBzdHlsZS5pbmRleE9mKCB1bml0ICkgPiAwICkgew0KCQkJCXZhbCA9IFsgcGFyc2VGbG9hdCggc3R5bGUgKSwgdW5pdCBdOw0KCQkJfQ0KCQl9ICk7DQoJCXJldHVybiB2YWw7DQoJfSwNCg0KCWNzc0NsaXA6IGZ1bmN0aW9uKCBjbGlwT2JqICkgew0KCQlpZiAoIGNsaXBPYmogKSB7DQoJCQlyZXR1cm4gdGhpcy5jc3MoICJjbGlwIiwgInJlY3QoIiArIGNsaXBPYmoudG9wICsgInB4ICIgKyBjbGlwT2JqLnJpZ2h0ICsgInB4ICIgKw0KCQkJCWNsaXBPYmouYm90dG9tICsgInB4ICIgKyBjbGlwT2JqLmxlZnQgKyAicHgpIiApOw0KCQl9DQoJCXJldHVybiBwYXJzZUNsaXAoIHRoaXMuY3NzKCAiY2xpcCIgKSwgdGhpcyApOw0KCX0sDQoNCgl0cmFuc2ZlcjogZnVuY3Rpb24oIG9wdGlvbnMsIGRvbmUgKSB7DQoJCXZhciBlbGVtZW50ID0gJCggdGhpcyApLA0KCQkJdGFyZ2V0ID0gJCggb3B0aW9ucy50byApLA0KCQkJdGFyZ2V0Rml4ZWQgPSB0YXJnZXQuY3NzKCAicG9zaXRpb24iICkgPT09ICJmaXhlZCIsDQoJCQlib2R5ID0gJCggImJvZHkiICksDQoJCQlmaXhUb3AgPSB0YXJnZXRGaXhlZCA/IGJvZHkuc2Nyb2xsVG9wKCkgOiAwLA0KCQkJZml4TGVmdCA9IHRhcmdldEZpeGVkID8gYm9keS5zY3JvbGxMZWZ0KCkgOiAwLA0KCQkJZW5kUG9zaXRpb24gPSB0YXJnZXQub2Zmc2V0KCksDQoJCQlhbmltYXRpb24gPSB7DQoJCQkJdG9wOiBlbmRQb3NpdGlvbi50b3AgLSBmaXhUb3AsDQoJCQkJbGVmdDogZW5kUG9zaXRpb24ubGVmdCAtIGZpeExlZnQsDQoJCQkJaGVpZ2h0OiB0YXJnZXQuaW5uZXJIZWlnaHQoKSwNCgkJCQl3aWR0aDogdGFyZ2V0LmlubmVyV2lkdGgoKQ0KCQkJfSwNCgkJCXN0YXJ0UG9zaXRpb24gPSBlbGVtZW50Lm9mZnNldCgpLA0KCQkJdHJhbnNmZXIgPSAkKCAiPGRpdiBjbGFzcz0ndWktZWZmZWN0cy10cmFuc2Zlcic+PC9kaXY+IiApDQoJCQkJLmFwcGVuZFRvKCAiYm9keSIgKQ0KCQkJCS5hZGRDbGFzcyggb3B0aW9ucy5jbGFzc05hbWUgKQ0KCQkJCS5jc3MoIHsNCgkJCQkJdG9wOiBzdGFydFBvc2l0aW9uLnRvcCAtIGZpeFRvcCwNCgkJCQkJbGVmdDogc3RhcnRQb3NpdGlvbi5sZWZ0IC0gZml4TGVmdCwNCgkJCQkJaGVpZ2h0OiBlbGVtZW50LmlubmVySGVpZ2h0KCksDQoJCQkJCXdpZHRoOiBlbGVtZW50LmlubmVyV2lkdGgoKSwNCgkJCQkJcG9zaXRpb246IHRhcmdldEZpeGVkID8gImZpeGVkIiA6ICJhYnNvbHV0ZSINCgkJCQl9ICkNCgkJCQkuYW5pbWF0ZSggYW5pbWF0aW9uLCBvcHRpb25zLmR1cmF0aW9uLCBvcHRpb25zLmVhc2luZywgZnVuY3Rpb24oKSB7DQoJCQkJCXRyYW5zZmVyLnJlbW92ZSgpOw0KCQkJCQlpZiAoICQuaXNGdW5jdGlvbiggZG9uZSApICkgew0KCQkJCQkJZG9uZSgpOw0KCQkJCQl9DQoNCgkJCQl9ICk7DQoJfQ0KfSApOw0KDQpmdW5jdGlvbiBwYXJzZUNsaXAoIHN0ciwgZWxlbWVudCApIHsNCgkJdmFyIG91dGVyV2lkdGggPSBlbGVtZW50Lm91dGVyV2lkdGgoKSwNCgkJCW91dGVySGVpZ2h0ID0gZWxlbWVudC5vdXRlckhlaWdodCgpLA0KCQkJY2xpcFJlZ2V4ID0gL15yZWN0XCgoLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0/XGQrJXxhdXRvKSw/XHMqKC0/XGQqXC4/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0bylcKSQvLA0KCQkJdmFsdWVzID0gY2xpcFJlZ2V4LmV4ZWMoIHN0ciApIHx8IFsgIiIsIDAsIG91dGVyV2lkdGgsIG91dGVySGVpZ2h0LCAwIF07DQoNCgkJcmV0dXJuIHsNCgkJCXRvcDogcGFyc2VGbG9hdCggdmFsdWVzWyAxIF0gKSB8fCAwLA0KCQkJcmlnaHQ6IHZhbHVlc1sgMiBdID09PSAiYXV0byIgPyBvdXRlcldpZHRoIDogcGFyc2VGbG9hdCggdmFsdWVzWyAyIF0gKSwNCgkJCWJvdHRvbTogdmFsdWVzWyAzIF0gPT09ICJhdXRvIiA/IG91dGVySGVpZ2h0IDogcGFyc2VGbG9hdCggdmFsdWVzWyAzIF0gKSwNCgkJCWxlZnQ6IHBhcnNlRmxvYXQoIHZhbHVlc1sgNCBdICkgfHwgMA0KCQl9Ow0KfQ0KDQokLmZ4LnN0ZXAuY2xpcCA9IGZ1bmN0aW9uKCBmeCApIHsNCglpZiAoICFmeC5jbGlwSW5pdCApIHsNCgkJZnguc3RhcnQgPSAkKCBmeC5lbGVtICkuY3NzQ2xpcCgpOw0KCQlpZiAoIHR5cGVvZiBmeC5lbmQgPT09ICJzdHJpbmciICkgew0KCQkJZnguZW5kID0gcGFyc2VDbGlwKCBmeC5lbmQsIGZ4LmVsZW0gKTsNCgkJfQ0KCQlmeC5jbGlwSW5pdCA9IHRydWU7DQoJfQ0KDQoJJCggZnguZWxlbSApLmNzc0NsaXAoIHsNCgkJdG9wOiBmeC5wb3MgKiAoIGZ4LmVuZC50b3AgLSBmeC5zdGFydC50b3AgKSArIGZ4LnN0YXJ0LnRvcCwNCgkJcmlnaHQ6IGZ4LnBvcyAqICggZnguZW5kLnJpZ2h0IC0gZnguc3RhcnQucmlnaHQgKSArIGZ4LnN0YXJ0LnJpZ2h0LA0KCQlib3R0b206IGZ4LnBvcyAqICggZnguZW5kLmJvdHRvbSAtIGZ4LnN0YXJ0LmJvdHRvbSApICsgZnguc3RhcnQuYm90dG9tLA0KCQlsZWZ0OiBmeC5wb3MgKiAoIGZ4LmVuZC5sZWZ0IC0gZnguc3RhcnQubGVmdCApICsgZnguc3RhcnQubGVmdA0KCX0gKTsNCn07DQoNCn0gKSgpOw0KDQovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVBU0lORyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCiggZnVuY3Rpb24oKSB7DQoNCi8vIEJhc2VkIG9uIGVhc2luZyBlcXVhdGlvbnMgZnJvbSBSb2JlcnQgUGVubmVyIChodHRwOi8vd3d3LnJvYmVydHBlbm5lci5jb20vZWFzaW5nKQ0KDQp2YXIgYmFzZUVhc2luZ3MgPSB7fTsNCg0KJC5lYWNoKCBbICJRdWFkIiwgIkN1YmljIiwgIlF1YXJ0IiwgIlF1aW50IiwgIkV4cG8iIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkgew0KCWJhc2VFYXNpbmdzWyBuYW1lIF0gPSBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIE1hdGgucG93KCBwLCBpICsgMiApOw0KCX07DQp9ICk7DQoNCiQuZXh0ZW5kKCBiYXNlRWFzaW5ncywgew0KCVNpbmU6IGZ1bmN0aW9uKCBwICkgew0KCQlyZXR1cm4gMSAtIE1hdGguY29zKCBwICogTWF0aC5QSSAvIDIgKTsNCgl9LA0KCUNpcmM6IGZ1bmN0aW9uKCBwICkgew0KCQlyZXR1cm4gMSAtIE1hdGguc3FydCggMSAtIHAgKiBwICk7DQoJfSwNCglFbGFzdGljOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIHAgPT09IDAgfHwgcCA9PT0gMSA/IHAgOg0KCQkJLU1hdGgucG93KCAyLCA4ICogKCBwIC0gMSApICkgKiBNYXRoLnNpbiggKCAoIHAgLSAxICkgKiA4MCAtIDcuNSApICogTWF0aC5QSSAvIDE1ICk7DQoJfSwNCglCYWNrOiBmdW5jdGlvbiggcCApIHsNCgkJcmV0dXJuIHAgKiBwICogKCAzICogcCAtIDIgKTsNCgl9LA0KCUJvdW5jZTogZnVuY3Rpb24oIHAgKSB7DQoJCXZhciBwb3cyLA0KCQkJYm91bmNlID0gNDsNCg0KCQl3aGlsZSAoIHAgPCAoICggcG93MiA9IE1hdGgucG93KCAyLCAtLWJvdW5jZSApICkgLSAxICkgLyAxMSApIHt9DQoJCXJldHVybiAxIC8gTWF0aC5wb3coIDQsIDMgLSBib3VuY2UgKSAtIDcuNTYyNSAqIE1hdGgucG93KCAoIHBvdzIgKiAzIC0gMiApIC8gMjIgLSBwLCAyICk7DQoJfQ0KfSApOw0KDQokLmVhY2goIGJhc2VFYXNpbmdzLCBmdW5jdGlvbiggbmFtZSwgZWFzZUluICkgew0KCSQuZWFzaW5nWyAiZWFzZUluIiArIG5hbWUgXSA9IGVhc2VJbjsNCgkkLmVhc2luZ1sgImVhc2VPdXQiICsgbmFtZSBdID0gZnVuY3Rpb24oIHAgKSB7DQoJCXJldHVybiAxIC0gZWFzZUluKCAxIC0gcCApOw0KCX07DQoJJC5lYXNpbmdbICJlYXNlSW5PdXQiICsgbmFtZSBdID0gZnVuY3Rpb24oIHAgKSB7DQoJCXJldHVybiBwIDwgMC41ID8NCgkJCWVhc2VJbiggcCAqIDIgKSAvIDIgOg0KCQkJMSAtIGVhc2VJbiggcCAqIC0yICsgMiApIC8gMjsNCgl9Ow0KfSApOw0KDQp9ICkoKTsNCg0KdmFyIGVmZmVjdCA9ICQuZWZmZWN0czsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEJsaW5kIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBCbGluZCBFZmZlY3QNCi8vPj5ncm91cDogRWZmZWN0cw0KLy8+PmRlc2NyaXB0aW9uOiBCbGluZHMgdGhlIGVsZW1lbnQuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vYmxpbmQtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0QmxpbmQgPSAkLmVmZmVjdHMuZGVmaW5lKCAiYmxpbmQiLCAiaGlkZSIsIGZ1bmN0aW9uKCBvcHRpb25zLCBkb25lICkgew0KCXZhciBtYXAgPSB7DQoJCQl1cDogWyAiYm90dG9tIiwgInRvcCIgXSwNCgkJCXZlcnRpY2FsOiBbICJib3R0b20iLCAidG9wIiBdLA0KCQkJZG93bjogWyAidG9wIiwgImJvdHRvbSIgXSwNCgkJCWxlZnQ6IFsgInJpZ2h0IiwgImxlZnQiIF0sDQoJCQlob3Jpem9udGFsOiBbICJyaWdodCIsICJsZWZ0IiBdLA0KCQkJcmlnaHQ6IFsgImxlZnQiLCAicmlnaHQiIF0NCgkJfSwNCgkJZWxlbWVudCA9ICQoIHRoaXMgKSwNCgkJZGlyZWN0aW9uID0gb3B0aW9ucy5kaXJlY3Rpb24gfHwgInVwIiwNCgkJc3RhcnQgPSBlbGVtZW50LmNzc0NsaXAoKSwNCgkJYW5pbWF0ZSA9IHsgY2xpcDogJC5leHRlbmQoIHt9LCBzdGFydCApIH0sDQoJCXBsYWNlaG9sZGVyID0gJC5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKCBlbGVtZW50ICk7DQoNCglhbmltYXRlLmNsaXBbIG1hcFsgZGlyZWN0aW9uIF1bIDAgXSBdID0gYW5pbWF0ZS5jbGlwWyBtYXBbIGRpcmVjdGlvbiBdWyAxIF0gXTsNCg0KCWlmICggb3B0aW9ucy5tb2RlID09PSAic2hvdyIgKSB7DQoJCWVsZW1lbnQuY3NzQ2xpcCggYW5pbWF0ZS5jbGlwICk7DQoJCWlmICggcGxhY2Vob2xkZXIgKSB7DQoJCQlwbGFjZWhvbGRlci5jc3MoICQuZWZmZWN0cy5jbGlwVG9Cb3goIGFuaW1hdGUgKSApOw0KCQl9DQoNCgkJYW5pbWF0ZS5jbGlwID0gc3RhcnQ7DQoJfQ0KDQoJaWYgKCBwbGFjZWhvbGRlciApIHsNCgkJcGxhY2Vob2xkZXIuYW5pbWF0ZSggJC5lZmZlY3RzLmNsaXBUb0JveCggYW5pbWF0ZSApLCBvcHRpb25zLmR1cmF0aW9uLCBvcHRpb25zLmVhc2luZyApOw0KCX0NCg0KCWVsZW1lbnQuYW5pbWF0ZSggYW5pbWF0ZSwgew0KCQlxdWV1ZTogZmFsc2UsDQoJCWR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLA0KCQllYXNpbmc6IG9wdGlvbnMuZWFzaW5nLA0KCQljb21wbGV0ZTogZG9uZQ0KCX0gKTsNCn0gKTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEJvdW5jZSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogQm91bmNlIEVmZmVjdA0KLy8+Pmdyb3VwOiBFZmZlY3RzDQovLz4+ZGVzY3JpcHRpb246IEJvdW5jZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBuIHRpbWVzLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2JvdW5jZS1lZmZlY3QvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZWZmZWN0Lw0KDQoNCg0KdmFyIGVmZmVjdHNFZmZlY3RCb3VuY2UgPSAkLmVmZmVjdHMuZGVmaW5lKCAiYm91bmNlIiwgZnVuY3Rpb24oIG9wdGlvbnMsIGRvbmUgKSB7DQoJdmFyIHVwQW5pbSwgZG93bkFuaW0sIHJlZlZhbHVlLA0KCQllbGVtZW50ID0gJCggdGhpcyApLA0KDQoJCS8vIERlZmF1bHRzOg0KCQltb2RlID0gb3B0aW9ucy5tb2RlLA0KCQloaWRlID0gbW9kZSA9PT0gImhpZGUiLA0KCQlzaG93ID0gbW9kZSA9PT0gInNob3ciLA0KCQlkaXJlY3Rpb24gPSBvcHRpb25zLmRpcmVjdGlvbiB8fCAidXAiLA0KCQlkaXN0YW5jZSA9IG9wdGlvbnMuZGlzdGFuY2UsDQoJCXRpbWVzID0gb3B0aW9ucy50aW1lcyB8fCA1LA0KDQoJCS8vIE51bWJlciBvZiBpbnRlcm5hbCBhbmltYXRpb25zDQoJCWFuaW1zID0gdGltZXMgKiAyICsgKCBzaG93IHx8IGhpZGUgPyAxIDogMCApLA0KCQlzcGVlZCA9IG9wdGlvbnMuZHVyYXRpb24gLyBhbmltcywNCgkJZWFzaW5nID0gb3B0aW9ucy5lYXNpbmcsDQoNCgkJLy8gVXRpbGl0eToNCgkJcmVmID0gKCBkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIgKSA/ICJ0b3AiIDogImxlZnQiLA0KCQltb3Rpb24gPSAoIGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJsZWZ0IiApLA0KCQlpID0gMCwNCg0KCQlxdWV1ZWxlbiA9IGVsZW1lbnQucXVldWUoKS5sZW5ndGg7DQoNCgkkLmVmZmVjdHMuY3JlYXRlUGxhY2Vob2xkZXIoIGVsZW1lbnQgKTsNCg0KCXJlZlZhbHVlID0gZWxlbWVudC5jc3MoIHJlZiApOw0KDQoJLy8gRGVmYXVsdCBkaXN0YW5jZSBmb3IgdGhlIEJJR0dFU1QgYm91bmNlIGlzIHRoZSBvdXRlciBEaXN0YW5jZSAvIDMNCglpZiAoICFkaXN0YW5jZSApIHsNCgkJZGlzdGFuY2UgPSBlbGVtZW50WyByZWYgPT09ICJ0b3AiID8gIm91dGVySGVpZ2h0IiA6ICJvdXRlcldpZHRoIiBdKCkgLyAzOw0KCX0NCg0KCWlmICggc2hvdyApIHsNCgkJZG93bkFuaW0gPSB7IG9wYWNpdHk6IDEgfTsNCgkJZG93bkFuaW1bIHJlZiBdID0gcmVmVmFsdWU7DQoNCgkJLy8gSWYgd2UgYXJlIHNob3dpbmcsIGZvcmNlIG9wYWNpdHkgMCBhbmQgc2V0IHRoZSBpbml0aWFsIHBvc2l0aW9uDQoJCS8vIHRoZW4gZG8gdGhlICJmaXJzdCIgYW5pbWF0aW9uDQoJCWVsZW1lbnQNCgkJCS5jc3MoICJvcGFjaXR5IiwgMCApDQoJCQkuY3NzKCByZWYsIG1vdGlvbiA/IC1kaXN0YW5jZSAqIDIgOiBkaXN0YW5jZSAqIDIgKQ0KCQkJLmFuaW1hdGUoIGRvd25BbmltLCBzcGVlZCwgZWFzaW5nICk7DQoJfQ0KDQoJLy8gU3RhcnQgYXQgdGhlIHNtYWxsZXN0IGRpc3RhbmNlIGlmIHdlIGFyZSBoaWRpbmcNCglpZiAoIGhpZGUgKSB7DQoJCWRpc3RhbmNlID0gZGlzdGFuY2UgLyBNYXRoLnBvdyggMiwgdGltZXMgLSAxICk7DQoJfQ0KDQoJZG93bkFuaW0gPSB7fTsNCglkb3duQW5pbVsgcmVmIF0gPSByZWZWYWx1ZTsNCg0KCS8vIEJvdW5jZXMgdXAvZG93bi9sZWZ0L3JpZ2h0IHRoZW4gYmFjayB0byAwIC0tIHRpbWVzICogMiBhbmltYXRpb25zIGhhcHBlbiBoZXJlDQoJZm9yICggOyBpIDwgdGltZXM7IGkrKyApIHsNCgkJdXBBbmltID0ge307DQoJCXVwQW5pbVsgcmVmIF0gPSAoIG1vdGlvbiA/ICItPSIgOiAiKz0iICkgKyBkaXN0YW5jZTsNCg0KCQllbGVtZW50DQoJCQkuYW5pbWF0ZSggdXBBbmltLCBzcGVlZCwgZWFzaW5nICkNCgkJCS5hbmltYXRlKCBkb3duQW5pbSwgc3BlZWQsIGVhc2luZyApOw0KDQoJCWRpc3RhbmNlID0gaGlkZSA/IGRpc3RhbmNlICogMiA6IGRpc3RhbmNlIC8gMjsNCgl9DQoNCgkvLyBMYXN0IEJvdW5jZSB3aGVuIEhpZGluZw0KCWlmICggaGlkZSApIHsNCgkJdXBBbmltID0geyBvcGFjaXR5OiAwIH07DQoJCXVwQW5pbVsgcmVmIF0gPSAoIG1vdGlvbiA/ICItPSIgOiAiKz0iICkgKyBkaXN0YW5jZTsNCg0KCQllbGVtZW50LmFuaW1hdGUoIHVwQW5pbSwgc3BlZWQsIGVhc2luZyApOw0KCX0NCg0KCWVsZW1lbnQucXVldWUoIGRvbmUgKTsNCg0KCSQuZWZmZWN0cy51bnNoaWZ0KCBlbGVtZW50LCBxdWV1ZWxlbiwgYW5pbXMgKyAxICk7DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBDbGlwIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBDbGlwIEVmZmVjdA0KLy8+Pmdyb3VwOiBFZmZlY3RzDQovLz4+ZGVzY3JpcHRpb246IENsaXBzIHRoZSBlbGVtZW50IG9uIGFuZCBvZmYgbGlrZSBhbiBvbGQgVFYuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vY2xpcC1lZmZlY3QvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZWZmZWN0Lw0KDQoNCg0KdmFyIGVmZmVjdHNFZmZlY3RDbGlwID0gJC5lZmZlY3RzLmRlZmluZSggImNsaXAiLCAiaGlkZSIsIGZ1bmN0aW9uKCBvcHRpb25zLCBkb25lICkgew0KCXZhciBzdGFydCwNCgkJYW5pbWF0ZSA9IHt9LA0KCQllbGVtZW50ID0gJCggdGhpcyApLA0KCQlkaXJlY3Rpb24gPSBvcHRpb25zLmRpcmVjdGlvbiB8fCAidmVydGljYWwiLA0KCQlib3RoID0gZGlyZWN0aW9uID09PSAiYm90aCIsDQoJCWhvcml6b250YWwgPSBib3RoIHx8IGRpcmVjdGlvbiA9PT0gImhvcml6b250YWwiLA0KCQl2ZXJ0aWNhbCA9IGJvdGggfHwgZGlyZWN0aW9uID09PSAidmVydGljYWwiOw0KDQoJc3RhcnQgPSBlbGVtZW50LmNzc0NsaXAoKTsNCglhbmltYXRlLmNsaXAgPSB7DQoJCXRvcDogdmVydGljYWwgPyAoIHN0YXJ0LmJvdHRvbSAtIHN0YXJ0LnRvcCApIC8gMiA6IHN0YXJ0LnRvcCwNCgkJcmlnaHQ6IGhvcml6b250YWwgPyAoIHN0YXJ0LnJpZ2h0IC0gc3RhcnQubGVmdCApIC8gMiA6IHN0YXJ0LnJpZ2h0LA0KCQlib3R0b206IHZlcnRpY2FsID8gKCBzdGFydC5ib3R0b20gLSBzdGFydC50b3AgKSAvIDIgOiBzdGFydC5ib3R0b20sDQoJCWxlZnQ6IGhvcml6b250YWwgPyAoIHN0YXJ0LnJpZ2h0IC0gc3RhcnQubGVmdCApIC8gMiA6IHN0YXJ0LmxlZnQNCgl9Ow0KDQoJJC5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKCBlbGVtZW50ICk7DQoNCglpZiAoIG9wdGlvbnMubW9kZSA9PT0gInNob3ciICkgew0KCQllbGVtZW50LmNzc0NsaXAoIGFuaW1hdGUuY2xpcCApOw0KCQlhbmltYXRlLmNsaXAgPSBzdGFydDsNCgl9DQoNCgllbGVtZW50LmFuaW1hdGUoIGFuaW1hdGUsIHsNCgkJcXVldWU6IGZhbHNlLA0KCQlkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbiwNCgkJZWFzaW5nOiBvcHRpb25zLmVhc2luZywNCgkJY29tcGxldGU6IGRvbmUNCgl9ICk7DQoNCn0gKTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIERyb3AgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IERyb3AgRWZmZWN0DQovLz4+Z3JvdXA6IEVmZmVjdHMNCi8vPj5kZXNjcmlwdGlvbjogTW92ZXMgYW4gZWxlbWVudCBpbiBvbmUgZGlyZWN0aW9uIGFuZCBoaWRlcyBpdCBhdCB0aGUgc2FtZSB0aW1lLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2Ryb3AtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0RHJvcCA9ICQuZWZmZWN0cy5kZWZpbmUoICJkcm9wIiwgImhpZGUiLCBmdW5jdGlvbiggb3B0aW9ucywgZG9uZSApIHsNCg0KCXZhciBkaXN0YW5jZSwNCgkJZWxlbWVudCA9ICQoIHRoaXMgKSwNCgkJbW9kZSA9IG9wdGlvbnMubW9kZSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCgkJZGlyZWN0aW9uID0gb3B0aW9ucy5kaXJlY3Rpb24gfHwgImxlZnQiLA0KCQlyZWYgPSAoIGRpcmVjdGlvbiA9PT0gInVwIiB8fCBkaXJlY3Rpb24gPT09ICJkb3duIiApID8gInRvcCIgOiAibGVmdCIsDQoJCW1vdGlvbiA9ICggZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiICkgPyAiLT0iIDogIis9IiwNCgkJb3Bwb3NpdGVNb3Rpb24gPSAoIG1vdGlvbiA9PT0gIis9IiApID8gIi09IiA6ICIrPSIsDQoJCWFuaW1hdGlvbiA9IHsNCgkJCW9wYWNpdHk6IDANCgkJfTsNCg0KCSQuZWZmZWN0cy5jcmVhdGVQbGFjZWhvbGRlciggZWxlbWVudCApOw0KDQoJZGlzdGFuY2UgPSBvcHRpb25zLmRpc3RhbmNlIHx8DQoJCWVsZW1lbnRbIHJlZiA9PT0gInRvcCIgPyAib3V0ZXJIZWlnaHQiIDogIm91dGVyV2lkdGgiIF0oIHRydWUgKSAvIDI7DQoNCglhbmltYXRpb25bIHJlZiBdID0gbW90aW9uICsgZGlzdGFuY2U7DQoNCglpZiAoIHNob3cgKSB7DQoJCWVsZW1lbnQuY3NzKCBhbmltYXRpb24gKTsNCg0KCQlhbmltYXRpb25bIHJlZiBdID0gb3Bwb3NpdGVNb3Rpb24gKyBkaXN0YW5jZTsNCgkJYW5pbWF0aW9uLm9wYWNpdHkgPSAxOw0KCX0NCg0KCS8vIEFuaW1hdGUNCgllbGVtZW50LmFuaW1hdGUoIGFuaW1hdGlvbiwgew0KCQlxdWV1ZTogZmFsc2UsDQoJCWR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLA0KCQllYXNpbmc6IG9wdGlvbnMuZWFzaW5nLA0KCQljb21wbGV0ZTogZG9uZQ0KCX0gKTsNCn0gKTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEV4cGxvZGUgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IEV4cGxvZGUgRWZmZWN0DQovLz4+Z3JvdXA6IEVmZmVjdHMNCi8vIGpzY3M6ZGlzYWJsZSBtYXhpbXVtTGluZUxlbmd0aA0KLy8+PmRlc2NyaXB0aW9uOiBFeHBsb2RlcyBhbiBlbGVtZW50IGluIGFsbCBkaXJlY3Rpb25zIGludG8gbiBwaWVjZXMuIEltcGxvZGVzIGFuIGVsZW1lbnQgdG8gaXRzIG9yaWdpbmFsIHdob2xlbmVzcy4NCi8vIGpzY3M6ZW5hYmxlIG1heGltdW1MaW5lTGVuZ3RoDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZXhwbG9kZS1lZmZlY3QvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZWZmZWN0Lw0KDQoNCg0KdmFyIGVmZmVjdHNFZmZlY3RFeHBsb2RlID0gJC5lZmZlY3RzLmRlZmluZSggImV4cGxvZGUiLCAiaGlkZSIsIGZ1bmN0aW9uKCBvcHRpb25zLCBkb25lICkgew0KDQoJdmFyIGksIGosIGxlZnQsIHRvcCwgbXgsIG15LA0KCQlyb3dzID0gb3B0aW9ucy5waWVjZXMgPyBNYXRoLnJvdW5kKCBNYXRoLnNxcnQoIG9wdGlvbnMucGllY2VzICkgKSA6IDMsDQoJCWNlbGxzID0gcm93cywNCgkJZWxlbWVudCA9ICQoIHRoaXMgKSwNCgkJbW9kZSA9IG9wdGlvbnMubW9kZSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCg0KCQkvLyBTaG93IGFuZCB0aGVuIHZpc2liaWxpdHk6aGlkZGVuIHRoZSBlbGVtZW50IGJlZm9yZSBjYWxjdWxhdGluZyBvZmZzZXQNCgkJb2Zmc2V0ID0gZWxlbWVudC5zaG93KCkuY3NzKCAidmlzaWJpbGl0eSIsICJoaWRkZW4iICkub2Zmc2V0KCksDQoNCgkJLy8gV2lkdGggYW5kIGhlaWdodCBvZiBhIHBpZWNlDQoJCXdpZHRoID0gTWF0aC5jZWlsKCBlbGVtZW50Lm91dGVyV2lkdGgoKSAvIGNlbGxzICksDQoJCWhlaWdodCA9IE1hdGguY2VpbCggZWxlbWVudC5vdXRlckhlaWdodCgpIC8gcm93cyApLA0KCQlwaWVjZXMgPSBbXTsNCg0KCS8vIENoaWxkcmVuIGFuaW1hdGUgY29tcGxldGU6DQoJZnVuY3Rpb24gY2hpbGRDb21wbGV0ZSgpIHsNCgkJcGllY2VzLnB1c2goIHRoaXMgKTsNCgkJaWYgKCBwaWVjZXMubGVuZ3RoID09PSByb3dzICogY2VsbHMgKSB7DQoJCQlhbmltQ29tcGxldGUoKTsNCgkJfQ0KCX0NCg0KCS8vIENsb25lIHRoZSBlbGVtZW50IGZvciBlYWNoIHJvdyBhbmQgY2VsbC4NCglmb3IgKCBpID0gMDsgaSA8IHJvd3M7IGkrKyApIHsgLy8gPT09Pg0KCQl0b3AgPSBvZmZzZXQudG9wICsgaSAqIGhlaWdodDsNCgkJbXkgPSBpIC0gKCByb3dzIC0gMSApIC8gMjsNCg0KCQlmb3IgKCBqID0gMDsgaiA8IGNlbGxzOyBqKysgKSB7IC8vIHx8fA0KCQkJbGVmdCA9IG9mZnNldC5sZWZ0ICsgaiAqIHdpZHRoOw0KCQkJbXggPSBqIC0gKCBjZWxscyAtIDEgKSAvIDI7DQoNCgkJCS8vIENyZWF0ZSBhIGNsb25lIG9mIHRoZSBub3cgaGlkZGVuIG1haW4gZWxlbWVudCB0aGF0IHdpbGwgYmUgYWJzb2x1dGUgcG9zaXRpb25lZA0KCQkJLy8gd2l0aGluIGEgd3JhcHBlciBkaXYgb2ZmIHRoZSAtbGVmdCBhbmQgLXRvcCBlcXVhbCB0byBzaXplIG9mIG91ciBwaWVjZXMNCgkJCWVsZW1lbnQNCgkJCQkuY2xvbmUoKQ0KCQkJCS5hcHBlbmRUbyggImJvZHkiICkNCgkJCQkud3JhcCggIjxkaXY+PC9kaXY+IiApDQoJCQkJLmNzcyggew0KCQkJCQlwb3NpdGlvbjogImFic29sdXRlIiwNCgkJCQkJdmlzaWJpbGl0eTogInZpc2libGUiLA0KCQkJCQlsZWZ0OiAtaiAqIHdpZHRoLA0KCQkJCQl0b3A6IC1pICogaGVpZ2h0DQoJCQkJfSApDQoNCgkJCQkvLyBTZWxlY3QgdGhlIHdyYXBwZXIgLSBtYWtlIGl0IG92ZXJmbG93OiBoaWRkZW4gYW5kIGFic29sdXRlIHBvc2l0aW9uZWQgYmFzZWQgb24NCgkJCQkvLyB3aGVyZSB0aGUgb3JpZ2luYWwgd2FzIGxvY2F0ZWQgK2xlZnQgYW5kICt0b3AgZXF1YWwgdG8gdGhlIHNpemUgb2YgcGllY2VzDQoJCQkJLnBhcmVudCgpDQoJCQkJCS5hZGRDbGFzcyggInVpLWVmZmVjdHMtZXhwbG9kZSIgKQ0KCQkJCQkuY3NzKCB7DQoJCQkJCQlwb3NpdGlvbjogImFic29sdXRlIiwNCgkJCQkJCW92ZXJmbG93OiAiaGlkZGVuIiwNCgkJCQkJCXdpZHRoOiB3aWR0aCwNCgkJCQkJCWhlaWdodDogaGVpZ2h0LA0KCQkJCQkJbGVmdDogbGVmdCArICggc2hvdyA/IG14ICogd2lkdGggOiAwICksDQoJCQkJCQl0b3A6IHRvcCArICggc2hvdyA/IG15ICogaGVpZ2h0IDogMCApLA0KCQkJCQkJb3BhY2l0eTogc2hvdyA/IDAgOiAxDQoJCQkJCX0gKQ0KCQkJCQkuYW5pbWF0ZSggew0KCQkJCQkJbGVmdDogbGVmdCArICggc2hvdyA/IDAgOiBteCAqIHdpZHRoICksDQoJCQkJCQl0b3A6IHRvcCArICggc2hvdyA/IDAgOiBteSAqIGhlaWdodCApLA0KCQkJCQkJb3BhY2l0eTogc2hvdyA/IDEgOiAwDQoJCQkJCX0sIG9wdGlvbnMuZHVyYXRpb24gfHwgNTAwLCBvcHRpb25zLmVhc2luZywgY2hpbGRDb21wbGV0ZSApOw0KCQl9DQoJfQ0KDQoJZnVuY3Rpb24gYW5pbUNvbXBsZXRlKCkgew0KCQllbGVtZW50LmNzcyggew0KCQkJdmlzaWJpbGl0eTogInZpc2libGUiDQoJCX0gKTsNCgkJJCggcGllY2VzICkucmVtb3ZlKCk7DQoJCWRvbmUoKTsNCgl9DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBGYWRlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBGYWRlIEVmZmVjdA0KLy8+Pmdyb3VwOiBFZmZlY3RzDQovLz4+ZGVzY3JpcHRpb246IEZhZGVzIHRoZSBlbGVtZW50Lg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2ZhZGUtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0RmFkZSA9ICQuZWZmZWN0cy5kZWZpbmUoICJmYWRlIiwgInRvZ2dsZSIsIGZ1bmN0aW9uKCBvcHRpb25zLCBkb25lICkgew0KCXZhciBzaG93ID0gb3B0aW9ucy5tb2RlID09PSAic2hvdyI7DQoNCgkkKCB0aGlzICkNCgkJLmNzcyggIm9wYWNpdHkiLCBzaG93ID8gMCA6IDEgKQ0KCQkuYW5pbWF0ZSggew0KCQkJb3BhY2l0eTogc2hvdyA/IDEgOiAwDQoJCX0sIHsNCgkJCXF1ZXVlOiBmYWxzZSwNCgkJCWR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLA0KCQkJZWFzaW5nOiBvcHRpb25zLmVhc2luZywNCgkJCWNvbXBsZXRlOiBkb25lDQoJCX0gKTsNCn0gKTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBFZmZlY3RzIEZvbGQgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IEZvbGQgRWZmZWN0DQovLz4+Z3JvdXA6IEVmZmVjdHMNCi8vPj5kZXNjcmlwdGlvbjogRm9sZHMgYW4gZWxlbWVudCBmaXJzdCBob3Jpem9udGFsbHkgYW5kIHRoZW4gdmVydGljYWxseS4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9mb2xkLWVmZmVjdC8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9lZmZlY3QvDQoNCg0KDQp2YXIgZWZmZWN0c0VmZmVjdEZvbGQgPSAkLmVmZmVjdHMuZGVmaW5lKCAiZm9sZCIsICJoaWRlIiwgZnVuY3Rpb24oIG9wdGlvbnMsIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBlbGVtZW50ID0gJCggdGhpcyApLA0KCQltb2RlID0gb3B0aW9ucy5tb2RlLA0KCQlzaG93ID0gbW9kZSA9PT0gInNob3ciLA0KCQloaWRlID0gbW9kZSA9PT0gImhpZGUiLA0KCQlzaXplID0gb3B0aW9ucy5zaXplIHx8IDE1LA0KCQlwZXJjZW50ID0gLyhbMC05XSspJS8uZXhlYyggc2l6ZSApLA0KCQlob3JpekZpcnN0ID0gISFvcHRpb25zLmhvcml6Rmlyc3QsDQoJCXJlZiA9IGhvcml6Rmlyc3QgPyBbICJyaWdodCIsICJib3R0b20iIF0gOiBbICJib3R0b20iLCAicmlnaHQiIF0sDQoJCWR1cmF0aW9uID0gb3B0aW9ucy5kdXJhdGlvbiAvIDIsDQoNCgkJcGxhY2Vob2xkZXIgPSAkLmVmZmVjdHMuY3JlYXRlUGxhY2Vob2xkZXIoIGVsZW1lbnQgKSwNCg0KCQlzdGFydCA9IGVsZW1lbnQuY3NzQ2xpcCgpLA0KCQlhbmltYXRpb24xID0geyBjbGlwOiAkLmV4dGVuZCgge30sIHN0YXJ0ICkgfSwNCgkJYW5pbWF0aW9uMiA9IHsgY2xpcDogJC5leHRlbmQoIHt9LCBzdGFydCApIH0sDQoNCgkJZGlzdGFuY2UgPSBbIHN0YXJ0WyByZWZbIDAgXSBdLCBzdGFydFsgcmVmWyAxIF0gXSBdLA0KDQoJCXF1ZXVlbGVuID0gZWxlbWVudC5xdWV1ZSgpLmxlbmd0aDsNCg0KCWlmICggcGVyY2VudCApIHsNCgkJc2l6ZSA9IHBhcnNlSW50KCBwZXJjZW50WyAxIF0sIDEwICkgLyAxMDAgKiBkaXN0YW5jZVsgaGlkZSA/IDAgOiAxIF07DQoJfQ0KCWFuaW1hdGlvbjEuY2xpcFsgcmVmWyAwIF0gXSA9IHNpemU7DQoJYW5pbWF0aW9uMi5jbGlwWyByZWZbIDAgXSBdID0gc2l6ZTsNCglhbmltYXRpb24yLmNsaXBbIHJlZlsgMSBdIF0gPSAwOw0KDQoJaWYgKCBzaG93ICkgew0KCQllbGVtZW50LmNzc0NsaXAoIGFuaW1hdGlvbjIuY2xpcCApOw0KCQlpZiAoIHBsYWNlaG9sZGVyICkgew0KCQkJcGxhY2Vob2xkZXIuY3NzKCAkLmVmZmVjdHMuY2xpcFRvQm94KCBhbmltYXRpb24yICkgKTsNCgkJfQ0KDQoJCWFuaW1hdGlvbjIuY2xpcCA9IHN0YXJ0Ow0KCX0NCg0KCS8vIEFuaW1hdGUNCgllbGVtZW50DQoJCS5xdWV1ZSggZnVuY3Rpb24oIG5leHQgKSB7DQoJCQlpZiAoIHBsYWNlaG9sZGVyICkgew0KCQkJCXBsYWNlaG9sZGVyDQoJCQkJCS5hbmltYXRlKCAkLmVmZmVjdHMuY2xpcFRvQm94KCBhbmltYXRpb24xICksIGR1cmF0aW9uLCBvcHRpb25zLmVhc2luZyApDQoJCQkJCS5hbmltYXRlKCAkLmVmZmVjdHMuY2xpcFRvQm94KCBhbmltYXRpb24yICksIGR1cmF0aW9uLCBvcHRpb25zLmVhc2luZyApOw0KCQkJfQ0KDQoJCQluZXh0KCk7DQoJCX0gKQ0KCQkuYW5pbWF0ZSggYW5pbWF0aW9uMSwgZHVyYXRpb24sIG9wdGlvbnMuZWFzaW5nICkNCgkJLmFuaW1hdGUoIGFuaW1hdGlvbjIsIGR1cmF0aW9uLCBvcHRpb25zLmVhc2luZyApDQoJCS5xdWV1ZSggZG9uZSApOw0KDQoJJC5lZmZlY3RzLnVuc2hpZnQoIGVsZW1lbnQsIHF1ZXVlbGVuLCA0ICk7DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBIaWdobGlnaHQgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IEhpZ2hsaWdodCBFZmZlY3QNCi8vPj5ncm91cDogRWZmZWN0cw0KLy8+PmRlc2NyaXB0aW9uOiBIaWdobGlnaHRzIHRoZSBiYWNrZ3JvdW5kIG9mIGFuIGVsZW1lbnQgaW4gYSBkZWZpbmVkIGNvbG9yIGZvciBhIGN1c3RvbSBkdXJhdGlvbi4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9oaWdobGlnaHQtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0SGlnaGxpZ2h0ID0gJC5lZmZlY3RzLmRlZmluZSggImhpZ2hsaWdodCIsICJzaG93IiwgZnVuY3Rpb24oIG9wdGlvbnMsIGRvbmUgKSB7DQoJdmFyIGVsZW1lbnQgPSAkKCB0aGlzICksDQoJCWFuaW1hdGlvbiA9IHsNCgkJCWJhY2tncm91bmRDb2xvcjogZWxlbWVudC5jc3MoICJiYWNrZ3JvdW5kQ29sb3IiICkNCgkJfTsNCg0KCWlmICggb3B0aW9ucy5tb2RlID09PSAiaGlkZSIgKSB7DQoJCWFuaW1hdGlvbi5vcGFjaXR5ID0gMDsNCgl9DQoNCgkkLmVmZmVjdHMuc2F2ZVN0eWxlKCBlbGVtZW50ICk7DQoNCgllbGVtZW50DQoJCS5jc3MoIHsNCgkJCWJhY2tncm91bmRJbWFnZTogIm5vbmUiLA0KCQkJYmFja2dyb3VuZENvbG9yOiBvcHRpb25zLmNvbG9yIHx8ICIjZmZmZjk5Ig0KCQl9ICkNCgkJLmFuaW1hdGUoIGFuaW1hdGlvbiwgew0KCQkJcXVldWU6IGZhbHNlLA0KCQkJZHVyYXRpb246IG9wdGlvbnMuZHVyYXRpb24sDQoJCQllYXNpbmc6IG9wdGlvbnMuZWFzaW5nLA0KCQkJY29tcGxldGU6IGRvbmUNCgkJfSApOw0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgU2l6ZSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogU2l6ZSBFZmZlY3QNCi8vPj5ncm91cDogRWZmZWN0cw0KLy8+PmRlc2NyaXB0aW9uOiBSZXNpemUgYW4gZWxlbWVudCB0byBhIHNwZWNpZmllZCB3aWR0aCBhbmQgaGVpZ2h0Lg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NpemUtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0U2l6ZSA9ICQuZWZmZWN0cy5kZWZpbmUoICJzaXplIiwgZnVuY3Rpb24oIG9wdGlvbnMsIGRvbmUgKSB7DQoNCgkvLyBDcmVhdGUgZWxlbWVudA0KCXZhciBiYXNlbGluZSwgZmFjdG9yLCB0ZW1wLA0KCQllbGVtZW50ID0gJCggdGhpcyApLA0KDQoJCS8vIENvcHkgZm9yIGNoaWxkcmVuDQoJCWNQcm9wcyA9IFsgImZvbnRTaXplIiBdLA0KCQl2UHJvcHMgPSBbICJib3JkZXJUb3BXaWR0aCIsICJib3JkZXJCb3R0b21XaWR0aCIsICJwYWRkaW5nVG9wIiwgInBhZGRpbmdCb3R0b20iIF0sDQoJCWhQcm9wcyA9IFsgImJvcmRlckxlZnRXaWR0aCIsICJib3JkZXJSaWdodFdpZHRoIiwgInBhZGRpbmdMZWZ0IiwgInBhZGRpbmdSaWdodCIgXSwNCg0KCQkvLyBTZXQgb3B0aW9ucw0KCQltb2RlID0gb3B0aW9ucy5tb2RlLA0KCQlyZXN0b3JlID0gbW9kZSAhPT0gImVmZmVjdCIsDQoJCXNjYWxlID0gb3B0aW9ucy5zY2FsZSB8fCAiYm90aCIsDQoJCW9yaWdpbiA9IG9wdGlvbnMub3JpZ2luIHx8IFsgIm1pZGRsZSIsICJjZW50ZXIiIF0sDQoJCXBvc2l0aW9uID0gZWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSwNCgkJcG9zID0gZWxlbWVudC5wb3NpdGlvbigpLA0KCQlvcmlnaW5hbCA9ICQuZWZmZWN0cy5zY2FsZWREaW1lbnNpb25zKCBlbGVtZW50ICksDQoJCWZyb20gPSBvcHRpb25zLmZyb20gfHwgb3JpZ2luYWwsDQoJCXRvID0gb3B0aW9ucy50byB8fCAkLmVmZmVjdHMuc2NhbGVkRGltZW5zaW9ucyggZWxlbWVudCwgMCApOw0KDQoJJC5lZmZlY3RzLmNyZWF0ZVBsYWNlaG9sZGVyKCBlbGVtZW50ICk7DQoNCglpZiAoIG1vZGUgPT09ICJzaG93IiApIHsNCgkJdGVtcCA9IGZyb207DQoJCWZyb20gPSB0bzsNCgkJdG8gPSB0ZW1wOw0KCX0NCg0KCS8vIFNldCBzY2FsaW5nIGZhY3Rvcg0KCWZhY3RvciA9IHsNCgkJZnJvbTogew0KCQkJeTogZnJvbS5oZWlnaHQgLyBvcmlnaW5hbC5oZWlnaHQsDQoJCQl4OiBmcm9tLndpZHRoIC8gb3JpZ2luYWwud2lkdGgNCgkJfSwNCgkJdG86IHsNCgkJCXk6IHRvLmhlaWdodCAvIG9yaWdpbmFsLmhlaWdodCwNCgkJCXg6IHRvLndpZHRoIC8gb3JpZ2luYWwud2lkdGgNCgkJfQ0KCX07DQoNCgkvLyBTY2FsZSB0aGUgY3NzIGJveA0KCWlmICggc2NhbGUgPT09ICJib3giIHx8IHNjYWxlID09PSAiYm90aCIgKSB7DQoNCgkJLy8gVmVydGljYWwgcHJvcHMgc2NhbGluZw0KCQlpZiAoIGZhY3Rvci5mcm9tLnkgIT09IGZhY3Rvci50by55ICkgew0KCQkJZnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbGVtZW50LCB2UHJvcHMsIGZhY3Rvci5mcm9tLnksIGZyb20gKTsNCgkJCXRvID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGVsZW1lbnQsIHZQcm9wcywgZmFjdG9yLnRvLnksIHRvICk7DQoJCX0NCg0KCQkvLyBIb3Jpem9udGFsIHByb3BzIHNjYWxpbmcNCgkJaWYgKCBmYWN0b3IuZnJvbS54ICE9PSBmYWN0b3IudG8ueCApIHsNCgkJCWZyb20gPSAkLmVmZmVjdHMuc2V0VHJhbnNpdGlvbiggZWxlbWVudCwgaFByb3BzLCBmYWN0b3IuZnJvbS54LCBmcm9tICk7DQoJCQl0byA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBlbGVtZW50LCBoUHJvcHMsIGZhY3Rvci50by54LCB0byApOw0KCQl9DQoJfQ0KDQoJLy8gU2NhbGUgdGhlIGNvbnRlbnQNCglpZiAoIHNjYWxlID09PSAiY29udGVudCIgfHwgc2NhbGUgPT09ICJib3RoIiApIHsNCg0KCQkvLyBWZXJ0aWNhbCBwcm9wcyBzY2FsaW5nDQoJCWlmICggZmFjdG9yLmZyb20ueSAhPT0gZmFjdG9yLnRvLnkgKSB7DQoJCQlmcm9tID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGVsZW1lbnQsIGNQcm9wcywgZmFjdG9yLmZyb20ueSwgZnJvbSApOw0KCQkJdG8gPSAkLmVmZmVjdHMuc2V0VHJhbnNpdGlvbiggZWxlbWVudCwgY1Byb3BzLCBmYWN0b3IudG8ueSwgdG8gKTsNCgkJfQ0KCX0NCg0KCS8vIEFkanVzdCB0aGUgcG9zaXRpb24gcHJvcGVydGllcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgb3JpZ2luIHBvaW50cw0KCWlmICggb3JpZ2luICkgew0KCQliYXNlbGluZSA9ICQuZWZmZWN0cy5nZXRCYXNlbGluZSggb3JpZ2luLCBvcmlnaW5hbCApOw0KCQlmcm9tLnRvcCA9ICggb3JpZ2luYWwub3V0ZXJIZWlnaHQgLSBmcm9tLm91dGVySGVpZ2h0ICkgKiBiYXNlbGluZS55ICsgcG9zLnRvcDsNCgkJZnJvbS5sZWZ0ID0gKCBvcmlnaW5hbC5vdXRlcldpZHRoIC0gZnJvbS5vdXRlcldpZHRoICkgKiBiYXNlbGluZS54ICsgcG9zLmxlZnQ7DQoJCXRvLnRvcCA9ICggb3JpZ2luYWwub3V0ZXJIZWlnaHQgLSB0by5vdXRlckhlaWdodCApICogYmFzZWxpbmUueSArIHBvcy50b3A7DQoJCXRvLmxlZnQgPSAoIG9yaWdpbmFsLm91dGVyV2lkdGggLSB0by5vdXRlcldpZHRoICkgKiBiYXNlbGluZS54ICsgcG9zLmxlZnQ7DQoJfQ0KCWVsZW1lbnQuY3NzKCBmcm9tICk7DQoNCgkvLyBBbmltYXRlIHRoZSBjaGlsZHJlbiBpZiBkZXNpcmVkDQoJaWYgKCBzY2FsZSA9PT0gImNvbnRlbnQiIHx8IHNjYWxlID09PSAiYm90aCIgKSB7DQoNCgkJdlByb3BzID0gdlByb3BzLmNvbmNhdCggWyAibWFyZ2luVG9wIiwgIm1hcmdpbkJvdHRvbSIgXSApLmNvbmNhdCggY1Byb3BzICk7DQoJCWhQcm9wcyA9IGhQcm9wcy5jb25jYXQoIFsgIm1hcmdpbkxlZnQiLCAibWFyZ2luUmlnaHQiIF0gKTsNCg0KCQkvLyBPbmx5IGFuaW1hdGUgY2hpbGRyZW4gd2l0aCB3aWR0aCBhdHRyaWJ1dGVzIHNwZWNpZmllZA0KCQkvLyBUT0RPOiBpcyB0aGlzIHJpZ2h0PyBzaG91bGQgd2UgaW5jbHVkZSBhbnl0aGluZyB3aXRoIGNzcyB3aWR0aCBzcGVjaWZpZWQgYXMgd2VsbA0KCQllbGVtZW50LmZpbmQoICIqW3dpZHRoXSIgKS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCXZhciBjaGlsZCA9ICQoIHRoaXMgKSwNCgkJCQljaGlsZE9yaWdpbmFsID0gJC5lZmZlY3RzLnNjYWxlZERpbWVuc2lvbnMoIGNoaWxkICksDQoJCQkJY2hpbGRGcm9tID0gew0KCQkJCQloZWlnaHQ6IGNoaWxkT3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLmZyb20ueSwNCgkJCQkJd2lkdGg6IGNoaWxkT3JpZ2luYWwud2lkdGggKiBmYWN0b3IuZnJvbS54LA0KCQkJCQlvdXRlckhlaWdodDogY2hpbGRPcmlnaW5hbC5vdXRlckhlaWdodCAqIGZhY3Rvci5mcm9tLnksDQoJCQkJCW91dGVyV2lkdGg6IGNoaWxkT3JpZ2luYWwub3V0ZXJXaWR0aCAqIGZhY3Rvci5mcm9tLngNCgkJCQl9LA0KCQkJCWNoaWxkVG8gPSB7DQoJCQkJCWhlaWdodDogY2hpbGRPcmlnaW5hbC5oZWlnaHQgKiBmYWN0b3IudG8ueSwNCgkJCQkJd2lkdGg6IGNoaWxkT3JpZ2luYWwud2lkdGggKiBmYWN0b3IudG8ueCwNCgkJCQkJb3V0ZXJIZWlnaHQ6IGNoaWxkT3JpZ2luYWwuaGVpZ2h0ICogZmFjdG9yLnRvLnksDQoJCQkJCW91dGVyV2lkdGg6IGNoaWxkT3JpZ2luYWwud2lkdGggKiBmYWN0b3IudG8ueA0KCQkJCX07DQoNCgkJCS8vIFZlcnRpY2FsIHByb3BzIHNjYWxpbmcNCgkJCWlmICggZmFjdG9yLmZyb20ueSAhPT0gZmFjdG9yLnRvLnkgKSB7DQoJCQkJY2hpbGRGcm9tID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGNoaWxkLCB2UHJvcHMsIGZhY3Rvci5mcm9tLnksIGNoaWxkRnJvbSApOw0KCQkJCWNoaWxkVG8gPSAkLmVmZmVjdHMuc2V0VHJhbnNpdGlvbiggY2hpbGQsIHZQcm9wcywgZmFjdG9yLnRvLnksIGNoaWxkVG8gKTsNCgkJCX0NCg0KCQkJLy8gSG9yaXpvbnRhbCBwcm9wcyBzY2FsaW5nDQoJCQlpZiAoIGZhY3Rvci5mcm9tLnggIT09IGZhY3Rvci50by54ICkgew0KCQkJCWNoaWxkRnJvbSA9ICQuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKCBjaGlsZCwgaFByb3BzLCBmYWN0b3IuZnJvbS54LCBjaGlsZEZyb20gKTsNCgkJCQljaGlsZFRvID0gJC5lZmZlY3RzLnNldFRyYW5zaXRpb24oIGNoaWxkLCBoUHJvcHMsIGZhY3Rvci50by54LCBjaGlsZFRvICk7DQoJCQl9DQoNCgkJCWlmICggcmVzdG9yZSApIHsNCgkJCQkkLmVmZmVjdHMuc2F2ZVN0eWxlKCBjaGlsZCApOw0KCQkJfQ0KDQoJCQkvLyBBbmltYXRlIGNoaWxkcmVuDQoJCQljaGlsZC5jc3MoIGNoaWxkRnJvbSApOw0KCQkJY2hpbGQuYW5pbWF0ZSggY2hpbGRUbywgb3B0aW9ucy5kdXJhdGlvbiwgb3B0aW9ucy5lYXNpbmcsIGZ1bmN0aW9uKCkgew0KDQoJCQkJLy8gUmVzdG9yZSBjaGlsZHJlbg0KCQkJCWlmICggcmVzdG9yZSApIHsNCgkJCQkJJC5lZmZlY3RzLnJlc3RvcmVTdHlsZSggY2hpbGQgKTsNCgkJCQl9DQoJCQl9ICk7DQoJCX0gKTsNCgl9DQoNCgkvLyBBbmltYXRlDQoJZWxlbWVudC5hbmltYXRlKCB0bywgew0KCQlxdWV1ZTogZmFsc2UsDQoJCWR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLA0KCQllYXNpbmc6IG9wdGlvbnMuZWFzaW5nLA0KCQljb21wbGV0ZTogZnVuY3Rpb24oKSB7DQoNCgkJCXZhciBvZmZzZXQgPSBlbGVtZW50Lm9mZnNldCgpOw0KDQoJCQlpZiAoIHRvLm9wYWNpdHkgPT09IDAgKSB7DQoJCQkJZWxlbWVudC5jc3MoICJvcGFjaXR5IiwgZnJvbS5vcGFjaXR5ICk7DQoJCQl9DQoNCgkJCWlmICggIXJlc3RvcmUgKSB7DQoJCQkJZWxlbWVudA0KCQkJCQkuY3NzKCAicG9zaXRpb24iLCBwb3NpdGlvbiA9PT0gInN0YXRpYyIgPyAicmVsYXRpdmUiIDogcG9zaXRpb24gKQ0KCQkJCQkub2Zmc2V0KCBvZmZzZXQgKTsNCg0KCQkJCS8vIE5lZWQgdG8gc2F2ZSBzdHlsZSBoZXJlIHNvIHRoYXQgYXV0b21hdGljIHN0eWxlIHJlc3RvcmF0aW9uDQoJCQkJLy8gZG9lc24ndCByZXN0b3JlIHRvIHRoZSBvcmlnaW5hbCBzdHlsZXMgZnJvbSBiZWZvcmUgdGhlIGFuaW1hdGlvbi4NCgkJCQkkLmVmZmVjdHMuc2F2ZVN0eWxlKCBlbGVtZW50ICk7DQoJCQl9DQoNCgkJCWRvbmUoKTsNCgkJfQ0KCX0gKTsNCg0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgU2NhbGUgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IFNjYWxlIEVmZmVjdA0KLy8+Pmdyb3VwOiBFZmZlY3RzDQovLz4+ZGVzY3JpcHRpb246IEdyb3dzIG9yIHNocmlua3MgYW4gZWxlbWVudCBhbmQgaXRzIGNvbnRlbnQuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vc2NhbGUtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0U2NhbGUgPSAkLmVmZmVjdHMuZGVmaW5lKCAic2NhbGUiLCBmdW5jdGlvbiggb3B0aW9ucywgZG9uZSApIHsNCg0KCS8vIENyZWF0ZSBlbGVtZW50DQoJdmFyIGVsID0gJCggdGhpcyApLA0KCQltb2RlID0gb3B0aW9ucy5tb2RlLA0KCQlwZXJjZW50ID0gcGFyc2VJbnQoIG9wdGlvbnMucGVyY2VudCwgMTAgKSB8fA0KCQkJKCBwYXJzZUludCggb3B0aW9ucy5wZXJjZW50LCAxMCApID09PSAwID8gMCA6ICggbW9kZSAhPT0gImVmZmVjdCIgPyAwIDogMTAwICkgKSwNCg0KCQluZXdPcHRpb25zID0gJC5leHRlbmQoIHRydWUsIHsNCgkJCWZyb206ICQuZWZmZWN0cy5zY2FsZWREaW1lbnNpb25zKCBlbCApLA0KCQkJdG86ICQuZWZmZWN0cy5zY2FsZWREaW1lbnNpb25zKCBlbCwgcGVyY2VudCwgb3B0aW9ucy5kaXJlY3Rpb24gfHwgImJvdGgiICksDQoJCQlvcmlnaW46IG9wdGlvbnMub3JpZ2luIHx8IFsgIm1pZGRsZSIsICJjZW50ZXIiIF0NCgkJfSwgb3B0aW9ucyApOw0KDQoJLy8gRmFkZSBvcHRpb24gdG8gc3VwcG9ydCBwdWZmDQoJaWYgKCBvcHRpb25zLmZhZGUgKSB7DQoJCW5ld09wdGlvbnMuZnJvbS5vcGFjaXR5ID0gMTsNCgkJbmV3T3B0aW9ucy50by5vcGFjaXR5ID0gMDsNCgl9DQoNCgkkLmVmZmVjdHMuZWZmZWN0LnNpemUuY2FsbCggdGhpcywgbmV3T3B0aW9ucywgZG9uZSApOw0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgUHVmZiAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogUHVmZiBFZmZlY3QNCi8vPj5ncm91cDogRWZmZWN0cw0KLy8+PmRlc2NyaXB0aW9uOiBDcmVhdGVzIGEgcHVmZiBlZmZlY3QgYnkgc2NhbGluZyB0aGUgZWxlbWVudCB1cCBhbmQgaGlkaW5nIGl0IGF0IHRoZSBzYW1lIHRpbWUuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vcHVmZi1lZmZlY3QvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZWZmZWN0Lw0KDQoNCg0KdmFyIGVmZmVjdHNFZmZlY3RQdWZmID0gJC5lZmZlY3RzLmRlZmluZSggInB1ZmYiLCAiaGlkZSIsIGZ1bmN0aW9uKCBvcHRpb25zLCBkb25lICkgew0KCXZhciBuZXdPcHRpb25zID0gJC5leHRlbmQoIHRydWUsIHt9LCBvcHRpb25zLCB7DQoJCWZhZGU6IHRydWUsDQoJCXBlcmNlbnQ6IHBhcnNlSW50KCBvcHRpb25zLnBlcmNlbnQsIDEwICkgfHwgMTUwDQoJfSApOw0KDQoJJC5lZmZlY3RzLmVmZmVjdC5zY2FsZS5jYWxsKCB0aGlzLCBuZXdPcHRpb25zLCBkb25lICk7DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBQdWxzYXRlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBQdWxzYXRlIEVmZmVjdA0KLy8+Pmdyb3VwOiBFZmZlY3RzDQovLz4+ZGVzY3JpcHRpb246IFB1bHNhdGVzIGFuIGVsZW1lbnQgbiB0aW1lcyBieSBjaGFuZ2luZyB0aGUgb3BhY2l0eSB0byB6ZXJvIGFuZCBiYWNrLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3B1bHNhdGUtZWZmZWN0Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2VmZmVjdC8NCg0KDQoNCnZhciBlZmZlY3RzRWZmZWN0UHVsc2F0ZSA9ICQuZWZmZWN0cy5kZWZpbmUoICJwdWxzYXRlIiwgInNob3ciLCBmdW5jdGlvbiggb3B0aW9ucywgZG9uZSApIHsNCgl2YXIgZWxlbWVudCA9ICQoIHRoaXMgKSwNCgkJbW9kZSA9IG9wdGlvbnMubW9kZSwNCgkJc2hvdyA9IG1vZGUgPT09ICJzaG93IiwNCgkJaGlkZSA9IG1vZGUgPT09ICJoaWRlIiwNCgkJc2hvd2hpZGUgPSBzaG93IHx8IGhpZGUsDQoNCgkJLy8gU2hvd2luZyBvciBoaWRpbmcgbGVhdmVzIG9mZiB0aGUgImxhc3QiIGFuaW1hdGlvbg0KCQlhbmltcyA9ICggKCBvcHRpb25zLnRpbWVzIHx8IDUgKSAqIDIgKSArICggc2hvd2hpZGUgPyAxIDogMCApLA0KCQlkdXJhdGlvbiA9IG9wdGlvbnMuZHVyYXRpb24gLyBhbmltcywNCgkJYW5pbWF0ZVRvID0gMCwNCgkJaSA9IDEsDQoJCXF1ZXVlbGVuID0gZWxlbWVudC5xdWV1ZSgpLmxlbmd0aDsNCg0KCWlmICggc2hvdyB8fCAhZWxlbWVudC5pcyggIjp2aXNpYmxlIiApICkgew0KCQllbGVtZW50LmNzcyggIm9wYWNpdHkiLCAwICkuc2hvdygpOw0KCQlhbmltYXRlVG8gPSAxOw0KCX0NCg0KCS8vIEFuaW1zIC0gMSBvcGFjaXR5ICJ0b2dnbGVzIg0KCWZvciAoIDsgaSA8IGFuaW1zOyBpKysgKSB7DQoJCWVsZW1lbnQuYW5pbWF0ZSggeyBvcGFjaXR5OiBhbmltYXRlVG8gfSwgZHVyYXRpb24sIG9wdGlvbnMuZWFzaW5nICk7DQoJCWFuaW1hdGVUbyA9IDEgLSBhbmltYXRlVG87DQoJfQ0KDQoJZWxlbWVudC5hbmltYXRlKCB7IG9wYWNpdHk6IGFuaW1hdGVUbyB9LCBkdXJhdGlvbiwgb3B0aW9ucy5lYXNpbmcgKTsNCg0KCWVsZW1lbnQucXVldWUoIGRvbmUgKTsNCg0KCSQuZWZmZWN0cy51bnNoaWZ0KCBlbGVtZW50LCBxdWV1ZWxlbiwgYW5pbXMgKyAxICk7DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBTaGFrZSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogU2hha2UgRWZmZWN0DQovLz4+Z3JvdXA6IEVmZmVjdHMNCi8vPj5kZXNjcmlwdGlvbjogU2hha2VzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgbiB0aW1lcy4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zaGFrZS1lZmZlY3QvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZWZmZWN0Lw0KDQoNCg0KdmFyIGVmZmVjdHNFZmZlY3RTaGFrZSA9ICQuZWZmZWN0cy5kZWZpbmUoICJzaGFrZSIsIGZ1bmN0aW9uKCBvcHRpb25zLCBkb25lICkgew0KDQoJdmFyIGkgPSAxLA0KCQllbGVtZW50ID0gJCggdGhpcyApLA0KCQlkaXJlY3Rpb24gPSBvcHRpb25zLmRpcmVjdGlvbiB8fCAibGVmdCIsDQoJCWRpc3RhbmNlID0gb3B0aW9ucy5kaXN0YW5jZSB8fCAyMCwNCgkJdGltZXMgPSBvcHRpb25zLnRpbWVzIHx8IDMsDQoJCWFuaW1zID0gdGltZXMgKiAyICsgMSwNCgkJc3BlZWQgPSBNYXRoLnJvdW5kKCBvcHRpb25zLmR1cmF0aW9uIC8gYW5pbXMgKSwNCgkJcmVmID0gKCBkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIgKSA/ICJ0b3AiIDogImxlZnQiLA0KCQlwb3NpdGl2ZU1vdGlvbiA9ICggZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiICksDQoJCWFuaW1hdGlvbiA9IHt9LA0KCQlhbmltYXRpb24xID0ge30sDQoJCWFuaW1hdGlvbjIgPSB7fSwNCg0KCQlxdWV1ZWxlbiA9IGVsZW1lbnQucXVldWUoKS5sZW5ndGg7DQoNCgkkLmVmZmVjdHMuY3JlYXRlUGxhY2Vob2xkZXIoIGVsZW1lbnQgKTsNCg0KCS8vIEFuaW1hdGlvbg0KCWFuaW1hdGlvblsgcmVmIF0gPSAoIHBvc2l0aXZlTW90aW9uID8gIi09IiA6ICIrPSIgKSArIGRpc3RhbmNlOw0KCWFuaW1hdGlvbjFbIHJlZiBdID0gKCBwb3NpdGl2ZU1vdGlvbiA/ICIrPSIgOiAiLT0iICkgKyBkaXN0YW5jZSAqIDI7DQoJYW5pbWF0aW9uMlsgcmVmIF0gPSAoIHBvc2l0aXZlTW90aW9uID8gIi09IiA6ICIrPSIgKSArIGRpc3RhbmNlICogMjsNCg0KCS8vIEFuaW1hdGUNCgllbGVtZW50LmFuaW1hdGUoIGFuaW1hdGlvbiwgc3BlZWQsIG9wdGlvbnMuZWFzaW5nICk7DQoNCgkvLyBTaGFrZXMNCglmb3IgKCA7IGkgPCB0aW1lczsgaSsrICkgew0KCQllbGVtZW50DQoJCQkuYW5pbWF0ZSggYW5pbWF0aW9uMSwgc3BlZWQsIG9wdGlvbnMuZWFzaW5nICkNCgkJCS5hbmltYXRlKCBhbmltYXRpb24yLCBzcGVlZCwgb3B0aW9ucy5lYXNpbmcgKTsNCgl9DQoNCgllbGVtZW50DQoJCS5hbmltYXRlKCBhbmltYXRpb24xLCBzcGVlZCwgb3B0aW9ucy5lYXNpbmcgKQ0KCQkuYW5pbWF0ZSggYW5pbWF0aW9uLCBzcGVlZCAvIDIsIG9wdGlvbnMuZWFzaW5nICkNCgkJLnF1ZXVlKCBkb25lICk7DQoNCgkkLmVmZmVjdHMudW5zaGlmdCggZWxlbWVudCwgcXVldWVsZW4sIGFuaW1zICsgMSApOw0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEVmZmVjdHMgU2xpZGUgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IFNsaWRlIEVmZmVjdA0KLy8+Pmdyb3VwOiBFZmZlY3RzDQovLz4+ZGVzY3JpcHRpb246IFNsaWRlcyBhbiBlbGVtZW50IGluIGFuZCBvdXQgb2YgdGhlIHZpZXdwb3J0Lg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3NsaWRlLWVmZmVjdC8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9lZmZlY3QvDQoNCg0KDQp2YXIgZWZmZWN0c0VmZmVjdFNsaWRlID0gJC5lZmZlY3RzLmRlZmluZSggInNsaWRlIiwgInNob3ciLCBmdW5jdGlvbiggb3B0aW9ucywgZG9uZSApIHsNCgl2YXIgc3RhcnRDbGlwLCBzdGFydFJlZiwNCgkJZWxlbWVudCA9ICQoIHRoaXMgKSwNCgkJbWFwID0gew0KCQkJdXA6IFsgImJvdHRvbSIsICJ0b3AiIF0sDQoJCQlkb3duOiBbICJ0b3AiLCAiYm90dG9tIiBdLA0KCQkJbGVmdDogWyAicmlnaHQiLCAibGVmdCIgXSwNCgkJCXJpZ2h0OiBbICJsZWZ0IiwgInJpZ2h0IiBdDQoJCX0sDQoJCW1vZGUgPSBvcHRpb25zLm1vZGUsDQoJCWRpcmVjdGlvbiA9IG9wdGlvbnMuZGlyZWN0aW9uIHx8ICJsZWZ0IiwNCgkJcmVmID0gKCBkaXJlY3Rpb24gPT09ICJ1cCIgfHwgZGlyZWN0aW9uID09PSAiZG93biIgKSA/ICJ0b3AiIDogImxlZnQiLA0KCQlwb3NpdGl2ZU1vdGlvbiA9ICggZGlyZWN0aW9uID09PSAidXAiIHx8IGRpcmVjdGlvbiA9PT0gImxlZnQiICksDQoJCWRpc3RhbmNlID0gb3B0aW9ucy5kaXN0YW5jZSB8fA0KCQkJZWxlbWVudFsgcmVmID09PSAidG9wIiA/ICJvdXRlckhlaWdodCIgOiAib3V0ZXJXaWR0aCIgXSggdHJ1ZSApLA0KCQlhbmltYXRpb24gPSB7fTsNCg0KCSQuZWZmZWN0cy5jcmVhdGVQbGFjZWhvbGRlciggZWxlbWVudCApOw0KDQoJc3RhcnRDbGlwID0gZWxlbWVudC5jc3NDbGlwKCk7DQoJc3RhcnRSZWYgPSBlbGVtZW50LnBvc2l0aW9uKClbIHJlZiBdOw0KDQoJLy8gRGVmaW5lIGhpZGUgYW5pbWF0aW9uDQoJYW5pbWF0aW9uWyByZWYgXSA9ICggcG9zaXRpdmVNb3Rpb24gPyAtMSA6IDEgKSAqIGRpc3RhbmNlICsgc3RhcnRSZWY7DQoJYW5pbWF0aW9uLmNsaXAgPSBlbGVtZW50LmNzc0NsaXAoKTsNCglhbmltYXRpb24uY2xpcFsgbWFwWyBkaXJlY3Rpb24gXVsgMSBdIF0gPSBhbmltYXRpb24uY2xpcFsgbWFwWyBkaXJlY3Rpb24gXVsgMCBdIF07DQoNCgkvLyBSZXZlcnNlIHRoZSBhbmltYXRpb24gaWYgd2UncmUgc2hvd2luZw0KCWlmICggbW9kZSA9PT0gInNob3ciICkgew0KCQllbGVtZW50LmNzc0NsaXAoIGFuaW1hdGlvbi5jbGlwICk7DQoJCWVsZW1lbnQuY3NzKCByZWYsIGFuaW1hdGlvblsgcmVmIF0gKTsNCgkJYW5pbWF0aW9uLmNsaXAgPSBzdGFydENsaXA7DQoJCWFuaW1hdGlvblsgcmVmIF0gPSBzdGFydFJlZjsNCgl9DQoNCgkvLyBBY3R1YWxseSBhbmltYXRlDQoJZWxlbWVudC5hbmltYXRlKCBhbmltYXRpb24sIHsNCgkJcXVldWU6IGZhbHNlLA0KCQlkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbiwNCgkJZWFzaW5nOiBvcHRpb25zLmVhc2luZywNCgkJY29tcGxldGU6IGRvbmUNCgl9ICk7DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRWZmZWN0cyBUcmFuc2ZlciAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogVHJhbnNmZXIgRWZmZWN0DQovLz4+Z3JvdXA6IEVmZmVjdHMNCi8vPj5kZXNjcmlwdGlvbjogRGlzcGxheXMgYSB0cmFuc2ZlciBlZmZlY3QgZnJvbSBvbmUgZWxlbWVudCB0byBhbm90aGVyLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3RyYW5zZmVyLWVmZmVjdC8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9lZmZlY3QvDQoNCg0KDQp2YXIgZWZmZWN0Ow0KaWYgKCAkLnVpQmFja0NvbXBhdCAhPT0gZmFsc2UgKSB7DQoJZWZmZWN0ID0gJC5lZmZlY3RzLmRlZmluZSggInRyYW5zZmVyIiwgZnVuY3Rpb24oIG9wdGlvbnMsIGRvbmUgKSB7DQoJCSQoIHRoaXMgKS50cmFuc2Zlciggb3B0aW9ucywgZG9uZSApOw0KCX0gKTsNCn0NCnZhciBlZmZlY3RzRWZmZWN0VHJhbnNmZXIgPSBlZmZlY3Q7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRm9jdXNhYmxlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiA6Zm9jdXNhYmxlIFNlbGVjdG9yDQovLz4+Z3JvdXA6IENvcmUNCi8vPj5kZXNjcmlwdGlvbjogU2VsZWN0cyBlbGVtZW50cyB3aGljaCBjYW4gYmUgZm9jdXNlZC4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9mb2N1c2FibGUtc2VsZWN0b3IvDQoNCg0KDQovLyBTZWxlY3RvcnMNCiQudWkuZm9jdXNhYmxlID0gZnVuY3Rpb24oIGVsZW1lbnQsIGhhc1RhYmluZGV4ICkgew0KCXZhciBtYXAsIG1hcE5hbWUsIGltZywgZm9jdXNhYmxlSWZWaXNpYmxlLCBmaWVsZHNldCwNCgkJbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQoNCglpZiAoICJhcmVhIiA9PT0gbm9kZU5hbWUgKSB7DQoJCW1hcCA9IGVsZW1lbnQucGFyZW50Tm9kZTsNCgkJbWFwTmFtZSA9IG1hcC5uYW1lOw0KCQlpZiAoICFlbGVtZW50LmhyZWYgfHwgIW1hcE5hbWUgfHwgbWFwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJtYXAiICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoJCWltZyA9ICQoICJpbWdbdXNlbWFwPScjIiArIG1hcE5hbWUgKyAiJ10iICk7DQoJCXJldHVybiBpbWcubGVuZ3RoID4gMCAmJiBpbWcuaXMoICI6dmlzaWJsZSIgKTsNCgl9DQoNCglpZiAoIC9eKGlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvLnRlc3QoIG5vZGVOYW1lICkgKSB7DQoJCWZvY3VzYWJsZUlmVmlzaWJsZSA9ICFlbGVtZW50LmRpc2FibGVkOw0KDQoJCWlmICggZm9jdXNhYmxlSWZWaXNpYmxlICkgew0KDQoJCQkvLyBGb3JtIGNvbnRyb2xzIHdpdGhpbiBhIGRpc2FibGVkIGZpZWxkc2V0IGFyZSBkaXNhYmxlZC4NCgkJCS8vIEhvd2V2ZXIsIGNvbnRyb2xzIHdpdGhpbiB0aGUgZmllbGRzZXQncyBsZWdlbmQgZG8gbm90IGdldCBkaXNhYmxlZC4NCgkJCS8vIFNpbmNlIGNvbnRyb2xzIGdlbmVyYWxseSBhcmVuJ3QgcGxhY2VkIGluc2lkZSBsZWdlbmRzLCB3ZSBza2lwDQoJCQkvLyB0aGlzIHBvcnRpb24gb2YgdGhlIGNoZWNrLg0KCQkJZmllbGRzZXQgPSAkKCBlbGVtZW50ICkuY2xvc2VzdCggImZpZWxkc2V0IiApWyAwIF07DQoJCQlpZiAoIGZpZWxkc2V0ICkgew0KCQkJCWZvY3VzYWJsZUlmVmlzaWJsZSA9ICFmaWVsZHNldC5kaXNhYmxlZDsNCgkJCX0NCgkJfQ0KCX0gZWxzZSBpZiAoICJhIiA9PT0gbm9kZU5hbWUgKSB7DQoJCWZvY3VzYWJsZUlmVmlzaWJsZSA9IGVsZW1lbnQuaHJlZiB8fCBoYXNUYWJpbmRleDsNCgl9IGVsc2Ugew0KCQlmb2N1c2FibGVJZlZpc2libGUgPSBoYXNUYWJpbmRleDsNCgl9DQoNCglyZXR1cm4gZm9jdXNhYmxlSWZWaXNpYmxlICYmICQoIGVsZW1lbnQgKS5pcyggIjp2aXNpYmxlIiApICYmIHZpc2libGUoICQoIGVsZW1lbnQgKSApOw0KfTsNCg0KLy8gU3VwcG9ydDogSUUgOCBvbmx5DQovLyBJRSA4IGRvZXNuJ3QgcmVzb2x2ZSBpbmhlcml0IHRvIHZpc2libGUvaGlkZGVuIGZvciBjb21wdXRlZCB2YWx1ZXMNCmZ1bmN0aW9uIHZpc2libGUoIGVsZW1lbnQgKSB7DQoJdmFyIHZpc2liaWxpdHkgPSBlbGVtZW50LmNzcyggInZpc2liaWxpdHkiICk7DQoJd2hpbGUgKCB2aXNpYmlsaXR5ID09PSAiaW5oZXJpdCIgKSB7DQoJCWVsZW1lbnQgPSBlbGVtZW50LnBhcmVudCgpOw0KCQl2aXNpYmlsaXR5ID0gZWxlbWVudC5jc3MoICJ2aXNpYmlsaXR5IiApOw0KCX0NCglyZXR1cm4gdmlzaWJpbGl0eSAhPT0gImhpZGRlbiI7DQp9DQoNCiQuZXh0ZW5kKCAkLmV4cHJbICI6IiBdLCB7DQoJZm9jdXNhYmxlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJcmV0dXJuICQudWkuZm9jdXNhYmxlKCBlbGVtZW50LCAkLmF0dHIoIGVsZW1lbnQsICJ0YWJpbmRleCIgKSAhPSBudWxsICk7DQoJfQ0KfSApOw0KDQp2YXIgZm9jdXNhYmxlID0gJC51aS5mb2N1c2FibGU7DQoNCg0KDQoNCi8vIFN1cHBvcnQ6IElFOCBPbmx5DQovLyBJRTggZG9lcyBub3Qgc3VwcG9ydCB0aGUgZm9ybSBhdHRyaWJ1dGUgYW5kIHdoZW4gaXQgaXMgc3VwcGxpZWQuIEl0IG92ZXJ3cml0ZXMgdGhlIGZvcm0gcHJvcA0KLy8gd2l0aCBhIHN0cmluZywgc28gd2UgbmVlZCB0byBmaW5kIHRoZSBwcm9wZXIgZm9ybS4NCnZhciBmb3JtID0gJC5mbi5mb3JtID0gZnVuY3Rpb24oKSB7DQoJcmV0dXJuIHR5cGVvZiB0aGlzWyAwIF0uZm9ybSA9PT0gInN0cmluZyIgPyB0aGlzLmNsb3Nlc3QoICJmb3JtIiApIDogJCggdGhpc1sgMCBdLmZvcm0gKTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRm9ybSBSZXNldCBNaXhpbiAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogRm9ybSBSZXNldCBNaXhpbg0KLy8+Pmdyb3VwOiBDb3JlDQovLz4+ZGVzY3JpcHRpb246IFJlZnJlc2ggaW5wdXQgd2lkZ2V0cyB3aGVuIHRoZWlyIGZvcm0gaXMgcmVzZXQNCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9mb3JtLXJlc2V0LW1peGluLw0KDQoNCg0KdmFyIGZvcm1SZXNldE1peGluID0gJC51aS5mb3JtUmVzZXRNaXhpbiA9IHsNCglfZm9ybVJlc2V0SGFuZGxlcjogZnVuY3Rpb24oKSB7DQoJCXZhciBmb3JtID0gJCggdGhpcyApOw0KDQoJCS8vIFdhaXQgZm9yIHRoZSBmb3JtIHJlc2V0IHRvIGFjdHVhbGx5IGhhcHBlbiBiZWZvcmUgcmVmcmVzaGluZw0KCQlzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsNCgkJCXZhciBpbnN0YW5jZXMgPSBmb3JtLmRhdGEoICJ1aS1mb3JtLXJlc2V0LWluc3RhbmNlcyIgKTsNCgkJCSQuZWFjaCggaW5zdGFuY2VzLCBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLnJlZnJlc2goKTsNCgkJCX0gKTsNCgkJfSApOw0KCX0sDQoNCglfYmluZEZvcm1SZXNldEhhbmRsZXI6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmZvcm0gPSB0aGlzLmVsZW1lbnQuZm9ybSgpOw0KCQlpZiAoICF0aGlzLmZvcm0ubGVuZ3RoICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdmFyIGluc3RhbmNlcyA9IHRoaXMuZm9ybS5kYXRhKCAidWktZm9ybS1yZXNldC1pbnN0YW5jZXMiICkgfHwgW107DQoJCWlmICggIWluc3RhbmNlcy5sZW5ndGggKSB7DQoNCgkJCS8vIFdlIGRvbid0IHVzZSBfb24oKSBoZXJlIGJlY2F1c2Ugd2UgdXNlIGEgc2luZ2xlIGV2ZW50IGhhbmRsZXIgcGVyIGZvcm0NCgkJCXRoaXMuZm9ybS5vbiggInJlc2V0LnVpLWZvcm0tcmVzZXQiLCB0aGlzLl9mb3JtUmVzZXRIYW5kbGVyICk7DQoJCX0NCgkJaW5zdGFuY2VzLnB1c2goIHRoaXMgKTsNCgkJdGhpcy5mb3JtLmRhdGEoICJ1aS1mb3JtLXJlc2V0LWluc3RhbmNlcyIsIGluc3RhbmNlcyApOw0KCX0sDQoNCglfdW5iaW5kRm9ybVJlc2V0SGFuZGxlcjogZnVuY3Rpb24oKSB7DQoJCWlmICggIXRoaXMuZm9ybS5sZW5ndGggKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgaW5zdGFuY2VzID0gdGhpcy5mb3JtLmRhdGEoICJ1aS1mb3JtLXJlc2V0LWluc3RhbmNlcyIgKTsNCgkJaW5zdGFuY2VzLnNwbGljZSggJC5pbkFycmF5KCB0aGlzLCBpbnN0YW5jZXMgKSwgMSApOw0KCQlpZiAoIGluc3RhbmNlcy5sZW5ndGggKSB7DQoJCQl0aGlzLmZvcm0uZGF0YSggInVpLWZvcm0tcmVzZXQtaW5zdGFuY2VzIiwgaW5zdGFuY2VzICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmZvcm0NCgkJCQkucmVtb3ZlRGF0YSggInVpLWZvcm0tcmVzZXQtaW5zdGFuY2VzIiApDQoJCQkJLm9mZiggInJlc2V0LnVpLWZvcm0tcmVzZXQiICk7DQoJCX0NCgl9DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFN1cHBvcnQgZm9yIGpRdWVyeSBjb3JlIDEuNy54IDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKg0KICovDQoNCi8vPj5sYWJlbDogalF1ZXJ5IDEuNyBTdXBwb3J0DQovLz4+Z3JvdXA6IENvcmUNCi8vPj5kZXNjcmlwdGlvbjogU3VwcG9ydCB2ZXJzaW9uIDEuNy54IG9mIGpRdWVyeSBjb3JlDQoNCg0KDQovLyBTdXBwb3J0OiBqUXVlcnkgMS43IG9ubHkNCi8vIE5vdCBhIGdyZWF0IHdheSB0byBjaGVjayB2ZXJzaW9ucywgYnV0IHNpbmNlIHdlIG9ubHkgc3VwcG9ydCAxLjcrIGFuZCBvbmx5DQovLyBuZWVkIHRvIGRldGVjdCA8MS44LCB0aGlzIGlzIGEgc2ltcGxlIGNoZWNrIHRoYXQgc2hvdWxkIHN1ZmZpY2UuIENoZWNraW5nDQovLyBmb3IgIjEuNy4iIHdvdWxkIGJlIGEgYml0IHNhZmVyLCBidXQgdGhlIHZlcnNpb24gc3RyaW5nIGlzIDEuNywgbm90IDEuNy4wDQovLyBhbmQgd2UnbGwgbmV2ZXIgcmVhY2ggMS43MC4wIChpZiB3ZSBkbywgd2UgY2VydGFpbmx5IHdvbid0IGJlIHN1cHBvcnRpbmcNCi8vIDEuNyBhbnltb3JlKS4gU2VlICMxMTE5NyBmb3Igd2h5IHdlJ3JlIG5vdCB1c2luZyBmZWF0dXJlIGRldGVjdGlvbi4NCmlmICggJC5mbi5qcXVlcnkuc3Vic3RyaW5nKCAwLCAzICkgPT09ICIxLjciICkgew0KDQoJLy8gU2V0dGVycyBmb3IgLmlubmVyV2lkdGgoKSwgLmlubmVySGVpZ2h0KCksIC5vdXRlcldpZHRoKCksIC5vdXRlckhlaWdodCgpDQoJLy8gVW5saWtlIGpRdWVyeSBDb3JlIDEuOCssIHRoZXNlIG9ubHkgc3VwcG9ydCBudW1lcmljIHZhbHVlcyB0byBzZXQgdGhlDQoJLy8gZGltZW5zaW9ucyBpbiBwaXhlbHMNCgkkLmVhY2goIFsgIldpZHRoIiwgIkhlaWdodCIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7DQoJCXZhciBzaWRlID0gbmFtZSA9PT0gIldpZHRoIiA/IFsgIkxlZnQiLCAiUmlnaHQiIF0gOiBbICJUb3AiLCAiQm90dG9tIiBdLA0KCQkJdHlwZSA9IG5hbWUudG9Mb3dlckNhc2UoKSwNCgkJCW9yaWcgPSB7DQoJCQkJaW5uZXJXaWR0aDogJC5mbi5pbm5lcldpZHRoLA0KCQkJCWlubmVySGVpZ2h0OiAkLmZuLmlubmVySGVpZ2h0LA0KCQkJCW91dGVyV2lkdGg6ICQuZm4ub3V0ZXJXaWR0aCwNCgkJCQlvdXRlckhlaWdodDogJC5mbi5vdXRlckhlaWdodA0KCQkJfTsNCg0KCQlmdW5jdGlvbiByZWR1Y2UoIGVsZW0sIHNpemUsIGJvcmRlciwgbWFyZ2luICkgew0KCQkJJC5lYWNoKCBzaWRlLCBmdW5jdGlvbigpIHsNCgkJCQlzaXplIC09IHBhcnNlRmxvYXQoICQuY3NzKCBlbGVtLCAicGFkZGluZyIgKyB0aGlzICkgKSB8fCAwOw0KCQkJCWlmICggYm9yZGVyICkgew0KCQkJCQlzaXplIC09IHBhcnNlRmxvYXQoICQuY3NzKCBlbGVtLCAiYm9yZGVyIiArIHRoaXMgKyAiV2lkdGgiICkgKSB8fCAwOw0KCQkJCX0NCgkJCQlpZiAoIG1hcmdpbiApIHsNCgkJCQkJc2l6ZSAtPSBwYXJzZUZsb2F0KCAkLmNzcyggZWxlbSwgIm1hcmdpbiIgKyB0aGlzICkgKSB8fCAwOw0KCQkJCX0NCgkJCX0gKTsNCgkJCXJldHVybiBzaXplOw0KCQl9DQoNCgkJJC5mblsgImlubmVyIiArIG5hbWUgXSA9IGZ1bmN0aW9uKCBzaXplICkgew0KCQkJaWYgKCBzaXplID09PSB1bmRlZmluZWQgKSB7DQoJCQkJcmV0dXJuIG9yaWdbICJpbm5lciIgKyBuYW1lIF0uY2FsbCggdGhpcyApOw0KCQkJfQ0KDQoJCQlyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQkkKCB0aGlzICkuY3NzKCB0eXBlLCByZWR1Y2UoIHRoaXMsIHNpemUgKSArICJweCIgKTsNCgkJCX0gKTsNCgkJfTsNCg0KCQkkLmZuWyAib3V0ZXIiICsgbmFtZSBdID0gZnVuY3Rpb24oIHNpemUsIG1hcmdpbiApIHsNCgkJCWlmICggdHlwZW9mIHNpemUgIT09ICJudW1iZXIiICkgew0KCQkJCXJldHVybiBvcmlnWyAib3V0ZXIiICsgbmFtZSBdLmNhbGwoIHRoaXMsIHNpemUgKTsNCgkJCX0NCg0KCQkJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJJCggdGhpcyApLmNzcyggdHlwZSwgcmVkdWNlKCB0aGlzLCBzaXplLCB0cnVlLCBtYXJnaW4gKSArICJweCIgKTsNCgkJCX0gKTsNCgkJfTsNCgl9ICk7DQoNCgkkLmZuLmFkZEJhY2sgPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiB0aGlzLmFkZCggc2VsZWN0b3IgPT0gbnVsbCA/DQoJCQl0aGlzLnByZXZPYmplY3QgOiB0aGlzLnByZXZPYmplY3QuZmlsdGVyKCBzZWxlY3RvciApDQoJCSk7DQoJfTsNCn0NCg0KOw0KLyohDQogKiBqUXVlcnkgVUkgS2V5Y29kZSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogS2V5Y29kZQ0KLy8+Pmdyb3VwOiBDb3JlDQovLz4+ZGVzY3JpcHRpb246IFByb3ZpZGUga2V5Y29kZXMgYXMga2V5bmFtZXMNCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9qUXVlcnkudWkua2V5Q29kZS8NCg0KDQp2YXIga2V5Y29kZSA9ICQudWkua2V5Q29kZSA9IHsNCglCQUNLU1BBQ0U6IDgsDQoJQ09NTUE6IDE4OCwNCglERUxFVEU6IDQ2LA0KCURPV046IDQwLA0KCUVORDogMzUsDQoJRU5URVI6IDEzLA0KCUVTQ0FQRTogMjcsDQoJSE9NRTogMzYsDQoJTEVGVDogMzcsDQoJUEFHRV9ET1dOOiAzNCwNCglQQUdFX1VQOiAzMywNCglQRVJJT0Q6IDE5MCwNCglSSUdIVDogMzksDQoJU1BBQ0U6IDMyLA0KCVRBQjogOSwNCglVUDogMzgNCn07DQoNCg0KDQoNCi8vIEludGVybmFsIHVzZSBvbmx5DQp2YXIgZXNjYXBlU2VsZWN0b3IgPSAkLnVpLmVzY2FwZVNlbGVjdG9yID0gKCBmdW5jdGlvbigpIHsNCgl2YXIgc2VsZWN0b3JFc2NhcGUgPSAvKFshIiMkJSYnKCkqKywuLzo7PD0+P0BbXF1eYHt8fX5dKS9nOw0KCXJldHVybiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiBzZWxlY3Rvci5yZXBsYWNlKCBzZWxlY3RvckVzY2FwZSwgIlxcJDEiICk7DQoJfTsNCn0gKSgpOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIExhYmVscyAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogbGFiZWxzDQovLz4+Z3JvdXA6IENvcmUNCi8vPj5kZXNjcmlwdGlvbjogRmluZCBhbGwgdGhlIGxhYmVscyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBpbnB1dA0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2xhYmVscy8NCg0KDQoNCnZhciBsYWJlbHMgPSAkLmZuLmxhYmVscyA9IGZ1bmN0aW9uKCkgew0KCXZhciBhbmNlc3Rvciwgc2VsZWN0b3IsIGlkLCBsYWJlbHMsIGFuY2VzdG9yczsNCg0KCS8vIENoZWNrIGNvbnRyb2wubGFiZWxzIGZpcnN0DQoJaWYgKCB0aGlzWyAwIF0ubGFiZWxzICYmIHRoaXNbIDAgXS5sYWJlbHMubGVuZ3RoICkgew0KCQlyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHRoaXNbIDAgXS5sYWJlbHMgKTsNCgl9DQoNCgkvLyBTdXBwb3J0OiBJRSA8PSAxMSwgRkYgPD0gMzcsIEFuZHJvaWQgPD0gMi4zIG9ubHkNCgkvLyBBYm92ZSBicm93c2VycyBkbyBub3Qgc3VwcG9ydCBjb250cm9sLmxhYmVscy4gRXZlcnl0aGluZyBiZWxvdyBpcyB0byBzdXBwb3J0IHRoZW0NCgkvLyBhcyB3ZWxsIGFzIGRvY3VtZW50IGZyYWdtZW50cy4gY29udHJvbC5sYWJlbHMgZG9lcyBub3Qgd29yayBvbiBkb2N1bWVudCBmcmFnbWVudHMNCglsYWJlbHMgPSB0aGlzLmVxKCAwICkucGFyZW50cyggImxhYmVsIiApOw0KDQoJLy8gTG9vayBmb3IgdGhlIGxhYmVsIGJhc2VkIG9uIHRoZSBpZA0KCWlkID0gdGhpcy5hdHRyKCAiaWQiICk7DQoJaWYgKCBpZCApIHsNCg0KCQkvLyBXZSBkb24ndCBzZWFyY2ggYWdhaW5zdCB0aGUgZG9jdW1lbnQgaW4gY2FzZSB0aGUgZWxlbWVudA0KCQkvLyBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgRE9NDQoJCWFuY2VzdG9yID0gdGhpcy5lcSggMCApLnBhcmVudHMoKS5sYXN0KCk7DQoNCgkJLy8gR2V0IGEgZnVsbCBzZXQgb2YgdG9wIGxldmVsIGFuY2VzdG9ycw0KCQlhbmNlc3RvcnMgPSBhbmNlc3Rvci5hZGQoIGFuY2VzdG9yLmxlbmd0aCA/IGFuY2VzdG9yLnNpYmxpbmdzKCkgOiB0aGlzLnNpYmxpbmdzKCkgKTsNCg0KCQkvLyBDcmVhdGUgYSBzZWxlY3RvciBmb3IgdGhlIGxhYmVsIGJhc2VkIG9uIHRoZSBpZA0KCQlzZWxlY3RvciA9ICJsYWJlbFtmb3I9JyIgKyAkLnVpLmVzY2FwZVNlbGVjdG9yKCBpZCApICsgIiddIjsNCg0KCQlsYWJlbHMgPSBsYWJlbHMuYWRkKCBhbmNlc3RvcnMuZmluZCggc2VsZWN0b3IgKS5hZGRCYWNrKCBzZWxlY3RvciApICk7DQoNCgl9DQoNCgkvLyBSZXR1cm4gd2hhdGV2ZXIgd2UgaGF2ZSBmb3VuZCBmb3IgbGFiZWxzDQoJcmV0dXJuIHRoaXMucHVzaFN0YWNrKCBsYWJlbHMgKTsNCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU2Nyb2xsIFBhcmVudCAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogc2Nyb2xsUGFyZW50DQovLz4+Z3JvdXA6IENvcmUNCi8vPj5kZXNjcmlwdGlvbjogR2V0IHRoZSBjbG9zZXN0IGFuY2VzdG9yIGVsZW1lbnQgdGhhdCBpcyBzY3JvbGxhYmxlLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3Njcm9sbFBhcmVudC8NCg0KDQoNCnZhciBzY3JvbGxQYXJlbnQgPSAkLmZuLnNjcm9sbFBhcmVudCA9IGZ1bmN0aW9uKCBpbmNsdWRlSGlkZGVuICkgew0KCXZhciBwb3NpdGlvbiA9IHRoaXMuY3NzKCAicG9zaXRpb24iICksDQoJCWV4Y2x1ZGVTdGF0aWNQYXJlbnQgPSBwb3NpdGlvbiA9PT0gImFic29sdXRlIiwNCgkJb3ZlcmZsb3dSZWdleCA9IGluY2x1ZGVIaWRkZW4gPyAvKGF1dG98c2Nyb2xsfGhpZGRlbikvIDogLyhhdXRvfHNjcm9sbCkvLA0KCQlzY3JvbGxQYXJlbnQgPSB0aGlzLnBhcmVudHMoKS5maWx0ZXIoIGZ1bmN0aW9uKCkgew0KCQkJdmFyIHBhcmVudCA9ICQoIHRoaXMgKTsNCgkJCWlmICggZXhjbHVkZVN0YXRpY1BhcmVudCAmJiBwYXJlbnQuY3NzKCAicG9zaXRpb24iICkgPT09ICJzdGF0aWMiICkgew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCXJldHVybiBvdmVyZmxvd1JlZ2V4LnRlc3QoIHBhcmVudC5jc3MoICJvdmVyZmxvdyIgKSArIHBhcmVudC5jc3MoICJvdmVyZmxvdy15IiApICsNCgkJCQlwYXJlbnQuY3NzKCAib3ZlcmZsb3cteCIgKSApOw0KCQl9ICkuZXEoIDAgKTsNCg0KCXJldHVybiBwb3NpdGlvbiA9PT0gImZpeGVkIiB8fCAhc2Nyb2xsUGFyZW50Lmxlbmd0aCA/DQoJCSQoIHRoaXNbIDAgXS5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50ICkgOg0KCQlzY3JvbGxQYXJlbnQ7DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFRhYmJhYmxlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiA6dGFiYmFibGUgU2VsZWN0b3INCi8vPj5ncm91cDogQ29yZQ0KLy8+PmRlc2NyaXB0aW9uOiBTZWxlY3RzIGVsZW1lbnRzIHdoaWNoIGNhbiBiZSB0YWJiZWQgdG8uDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vdGFiYmFibGUtc2VsZWN0b3IvDQoNCg0KDQp2YXIgdGFiYmFibGUgPSAkLmV4dGVuZCggJC5leHByWyAiOiIgXSwgew0KCXRhYmJhYmxlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJdmFyIHRhYkluZGV4ID0gJC5hdHRyKCBlbGVtZW50LCAidGFiaW5kZXgiICksDQoJCQloYXNUYWJpbmRleCA9IHRhYkluZGV4ICE9IG51bGw7DQoJCXJldHVybiAoICFoYXNUYWJpbmRleCB8fCB0YWJJbmRleCA+PSAwICkgJiYgJC51aS5mb2N1c2FibGUoIGVsZW1lbnQsIGhhc1RhYmluZGV4ICk7DQoJfQ0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFVuaXF1ZSBJRCAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogdW5pcXVlSWQNCi8vPj5ncm91cDogQ29yZQ0KLy8+PmRlc2NyaXB0aW9uOiBGdW5jdGlvbnMgdG8gZ2VuZXJhdGUgYW5kIHJlbW92ZSB1bmlxdWVJZCdzDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vdW5pcXVlSWQvDQoNCg0KDQp2YXIgdW5pcXVlSWQgPSAkLmZuLmV4dGVuZCggew0KCXVuaXF1ZUlkOiAoIGZ1bmN0aW9uKCkgew0KCQl2YXIgdXVpZCA9IDA7DQoNCgkJcmV0dXJuIGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJaWYgKCAhdGhpcy5pZCApIHsNCgkJCQkJdGhpcy5pZCA9ICJ1aS1pZC0iICsgKCArK3V1aWQgKTsNCgkJCQl9DQoJCQl9ICk7DQoJCX07DQoJfSApKCksDQoNCglyZW1vdmVVbmlxdWVJZDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJaWYgKCAvXnVpLWlkLVxkKyQvLnRlc3QoIHRoaXMuaWQgKSApIHsNCgkJCQkkKCB0aGlzICkucmVtb3ZlQXR0ciggImlkIiApOw0KCQkJfQ0KCQl9ICk7DQoJfQ0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIEFjY29yZGlvbiAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogQWNjb3JkaW9uDQovLz4+Z3JvdXA6IFdpZGdldHMNCi8vIGpzY3M6ZGlzYWJsZSBtYXhpbXVtTGluZUxlbmd0aA0KLy8+PmRlc2NyaXB0aW9uOiBEaXNwbGF5cyBjb2xsYXBzaWJsZSBjb250ZW50IHBhbmVscyBmb3IgcHJlc2VudGluZyBpbmZvcm1hdGlvbiBpbiBhIGxpbWl0ZWQgYW1vdW50IG9mIHNwYWNlLg0KLy8ganNjczplbmFibGUgbWF4aW11bUxpbmVMZW5ndGgNCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9hY2NvcmRpb24vDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vYWNjb3JkaW9uLw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvcmUuY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvYWNjb3JkaW9uLmNzcw0KLy8+PmNzcy50aGVtZTogLi4vLi4vdGhlbWVzL2Jhc2UvdGhlbWUuY3NzDQoNCg0KDQp2YXIgd2lkZ2V0c0FjY29yZGlvbiA9ICQud2lkZ2V0KCAidWkuYWNjb3JkaW9uIiwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCW9wdGlvbnM6IHsNCgkJYWN0aXZlOiAwLA0KCQlhbmltYXRlOiB7fSwNCgkJY2xhc3Nlczogew0KCQkJInVpLWFjY29yZGlvbi1oZWFkZXIiOiAidWktY29ybmVyLXRvcCIsDQoJCQkidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiOiAidWktY29ybmVyLWFsbCIsDQoJCQkidWktYWNjb3JkaW9uLWNvbnRlbnQiOiAidWktY29ybmVyLWJvdHRvbSINCgkJfSwNCgkJY29sbGFwc2libGU6IGZhbHNlLA0KCQlldmVudDogImNsaWNrIiwNCgkJaGVhZGVyOiAiPiBsaSA+IDpmaXJzdC1jaGlsZCwgPiA6bm90KGxpKTpldmVuIiwNCgkJaGVpZ2h0U3R5bGU6ICJhdXRvIiwNCgkJaWNvbnM6IHsNCgkJCWFjdGl2ZUhlYWRlcjogInVpLWljb24tdHJpYW5nbGUtMS1zIiwNCgkJCWhlYWRlcjogInVpLWljb24tdHJpYW5nbGUtMS1lIg0KCQl9LA0KDQoJCS8vIENhbGxiYWNrcw0KCQlhY3RpdmF0ZTogbnVsbCwNCgkJYmVmb3JlQWN0aXZhdGU6IG51bGwNCgl9LA0KDQoJaGlkZVByb3BzOiB7DQoJCWJvcmRlclRvcFdpZHRoOiAiaGlkZSIsDQoJCWJvcmRlckJvdHRvbVdpZHRoOiAiaGlkZSIsDQoJCXBhZGRpbmdUb3A6ICJoaWRlIiwNCgkJcGFkZGluZ0JvdHRvbTogImhpZGUiLA0KCQloZWlnaHQ6ICJoaWRlIg0KCX0sDQoNCglzaG93UHJvcHM6IHsNCgkJYm9yZGVyVG9wV2lkdGg6ICJzaG93IiwNCgkJYm9yZGVyQm90dG9tV2lkdGg6ICJzaG93IiwNCgkJcGFkZGluZ1RvcDogInNob3ciLA0KCQlwYWRkaW5nQm90dG9tOiAic2hvdyIsDQoJCWhlaWdodDogInNob3ciDQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLnByZXZTaG93ID0gdGhpcy5wcmV2SGlkZSA9ICQoKTsNCgkJdGhpcy5fYWRkQ2xhc3MoICJ1aS1hY2NvcmRpb24iLCAidWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIgKTsNCgkJdGhpcy5lbGVtZW50LmF0dHIoICJyb2xlIiwgInRhYmxpc3QiICk7DQoNCgkJLy8gRG9uJ3QgYWxsb3cgY29sbGFwc2libGU6IGZhbHNlIGFuZCBhY3RpdmU6IGZhbHNlIC8gbnVsbA0KCQlpZiAoICFvcHRpb25zLmNvbGxhcHNpYmxlICYmICggb3B0aW9ucy5hY3RpdmUgPT09IGZhbHNlIHx8IG9wdGlvbnMuYWN0aXZlID09IG51bGwgKSApIHsNCgkJCW9wdGlvbnMuYWN0aXZlID0gMDsNCgkJfQ0KDQoJCXRoaXMuX3Byb2Nlc3NQYW5lbHMoKTsNCg0KCQkvLyBoYW5kbGUgbmVnYXRpdmUgdmFsdWVzDQoJCWlmICggb3B0aW9ucy5hY3RpdmUgPCAwICkgew0KCQkJb3B0aW9ucy5hY3RpdmUgKz0gdGhpcy5oZWFkZXJzLmxlbmd0aDsNCgkJfQ0KCQl0aGlzLl9yZWZyZXNoKCk7DQoJfSwNCg0KCV9nZXRDcmVhdGVFdmVudERhdGE6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gew0KCQkJaGVhZGVyOiB0aGlzLmFjdGl2ZSwNCgkJCXBhbmVsOiAhdGhpcy5hY3RpdmUubGVuZ3RoID8gJCgpIDogdGhpcy5hY3RpdmUubmV4dCgpDQoJCX07DQoJfSwNCg0KCV9jcmVhdGVJY29uczogZnVuY3Rpb24oKSB7DQoJCXZhciBpY29uLCBjaGlsZHJlbiwNCgkJCWljb25zID0gdGhpcy5vcHRpb25zLmljb25zOw0KDQoJCWlmICggaWNvbnMgKSB7DQoJCQlpY29uID0gJCggIjxzcGFuPiIgKTsNCgkJCXRoaXMuX2FkZENsYXNzKCBpY29uLCAidWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiwgInVpLWljb24gIiArIGljb25zLmhlYWRlciApOw0KCQkJaWNvbi5wcmVwZW5kVG8oIHRoaXMuaGVhZGVycyApOw0KCQkJY2hpbGRyZW4gPSB0aGlzLmFjdGl2ZS5jaGlsZHJlbiggIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iICk7DQoJCQl0aGlzLl9yZW1vdmVDbGFzcyggY2hpbGRyZW4sIGljb25zLmhlYWRlciApDQoJCQkJLl9hZGRDbGFzcyggY2hpbGRyZW4sIG51bGwsIGljb25zLmFjdGl2ZUhlYWRlciApDQoJCQkJLl9hZGRDbGFzcyggdGhpcy5oZWFkZXJzLCAidWktYWNjb3JkaW9uLWljb25zIiApOw0KCQl9DQoJfSwNCg0KCV9kZXN0cm95SWNvbnM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5oZWFkZXJzLCAidWktYWNjb3JkaW9uLWljb25zIiApOw0KCQl0aGlzLmhlYWRlcnMuY2hpbGRyZW4oICIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiApLnJlbW92ZSgpOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciBjb250ZW50czsNCg0KCQkvLyBDbGVhbiB1cCBtYWluIGVsZW1lbnQNCgkJdGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoICJyb2xlIiApOw0KDQoJCS8vIENsZWFuIHVwIGhlYWRlcnMNCgkJdGhpcy5oZWFkZXJzDQoJCQkucmVtb3ZlQXR0ciggInJvbGUgYXJpYS1leHBhbmRlZCBhcmlhLXNlbGVjdGVkIGFyaWEtY29udHJvbHMgdGFiSW5kZXgiICkNCgkJCS5yZW1vdmVVbmlxdWVJZCgpOw0KDQoJCXRoaXMuX2Rlc3Ryb3lJY29ucygpOw0KDQoJCS8vIENsZWFuIHVwIGNvbnRlbnQgcGFuZWxzDQoJCWNvbnRlbnRzID0gdGhpcy5oZWFkZXJzLm5leHQoKQ0KCQkJLmNzcyggImRpc3BsYXkiLCAiIiApDQoJCQkucmVtb3ZlQXR0ciggInJvbGUgYXJpYS1oaWRkZW4gYXJpYS1sYWJlbGxlZGJ5IiApDQoJCQkucmVtb3ZlVW5pcXVlSWQoKTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSAhPT0gImNvbnRlbnQiICkgew0KCQkJY29udGVudHMuY3NzKCAiaGVpZ2h0IiwgIiIgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJaWYgKCBrZXkgPT09ICJhY3RpdmUiICkgew0KDQoJCQkvLyBfYWN0aXZhdGUoKSB3aWxsIGhhbmRsZSBpbnZhbGlkIHZhbHVlcyBhbmQgdXBkYXRlIHRoaXMub3B0aW9ucw0KCQkJdGhpcy5fYWN0aXZhdGUoIHZhbHVlICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImV2ZW50IiApIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLmV2ZW50ICkgew0KCQkJCXRoaXMuX29mZiggdGhpcy5oZWFkZXJzLCB0aGlzLm9wdGlvbnMuZXZlbnQgKTsNCgkJCX0NCgkJCXRoaXMuX3NldHVwRXZlbnRzKCB2YWx1ZSApOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQkvLyBTZXR0aW5nIGNvbGxhcHNpYmxlOiBmYWxzZSB3aGlsZSBjb2xsYXBzZWQ7IG9wZW4gZmlyc3QgcGFuZWwNCgkJaWYgKCBrZXkgPT09ICJjb2xsYXBzaWJsZSIgJiYgIXZhbHVlICYmIHRoaXMub3B0aW9ucy5hY3RpdmUgPT09IGZhbHNlICkgew0KCQkJdGhpcy5fYWN0aXZhdGUoIDAgKTsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiaWNvbnMiICkgew0KCQkJdGhpcy5fZGVzdHJveUljb25zKCk7DQoJCQlpZiAoIHZhbHVlICkgew0KCQkJCXRoaXMuX2NyZWF0ZUljb25zKCk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX3NldE9wdGlvbkRpc2FibGVkOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXRoaXMuX3N1cGVyKCB2YWx1ZSApOw0KDQoJCXRoaXMuZWxlbWVudC5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIHZhbHVlICk7DQoNCgkJLy8gU3VwcG9ydDogSUU4IE9ubHkNCgkJLy8gIzUzMzIgLyAjNjA1OSAtIG9wYWNpdHkgZG9lc24ndCBjYXNjYWRlIHRvIHBvc2l0aW9uZWQgZWxlbWVudHMgaW4gSUUNCgkJLy8gc28gd2UgbmVlZCB0byBhZGQgdGhlIGRpc2FibGVkIGNsYXNzIHRvIHRoZSBoZWFkZXJzIGFuZCBwYW5lbHMNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIG51bGwsICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKTsNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIHRoaXMuaGVhZGVycy5hZGQoIHRoaXMuaGVhZGVycy5uZXh0KCkgKSwgbnVsbCwgInVpLXN0YXRlLWRpc2FibGVkIiwNCgkJCSEhdmFsdWUgKTsNCgl9LA0KDQoJX2tleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCBldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXZhciBrZXlDb2RlID0gJC51aS5rZXlDb2RlLA0KCQkJbGVuZ3RoID0gdGhpcy5oZWFkZXJzLmxlbmd0aCwNCgkJCWN1cnJlbnRJbmRleCA9IHRoaXMuaGVhZGVycy5pbmRleCggZXZlbnQudGFyZ2V0ICksDQoJCQl0b0ZvY3VzID0gZmFsc2U7DQoNCgkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJY2FzZSBrZXlDb2RlLlJJR0hUOg0KCQljYXNlIGtleUNvZGUuRE9XTjoNCgkJCXRvRm9jdXMgPSB0aGlzLmhlYWRlcnNbICggY3VycmVudEluZGV4ICsgMSApICUgbGVuZ3RoIF07DQoJCQlicmVhazsNCgkJY2FzZSBrZXlDb2RlLkxFRlQ6DQoJCWNhc2Uga2V5Q29kZS5VUDoNCgkJCXRvRm9jdXMgPSB0aGlzLmhlYWRlcnNbICggY3VycmVudEluZGV4IC0gMSArIGxlbmd0aCApICUgbGVuZ3RoIF07DQoJCQlicmVhazsNCgkJY2FzZSBrZXlDb2RlLlNQQUNFOg0KCQljYXNlIGtleUNvZGUuRU5URVI6DQoJCQl0aGlzLl9ldmVudEhhbmRsZXIoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSBrZXlDb2RlLkhPTUU6DQoJCQl0b0ZvY3VzID0gdGhpcy5oZWFkZXJzWyAwIF07DQoJCQlicmVhazsNCgkJY2FzZSBrZXlDb2RlLkVORDoNCgkJCXRvRm9jdXMgPSB0aGlzLmhlYWRlcnNbIGxlbmd0aCAtIDEgXTsNCgkJCWJyZWFrOw0KCQl9DQoNCgkJaWYgKCB0b0ZvY3VzICkgew0KCQkJJCggZXZlbnQudGFyZ2V0ICkuYXR0ciggInRhYkluZGV4IiwgLTEgKTsNCgkJCSQoIHRvRm9jdXMgKS5hdHRyKCAidGFiSW5kZXgiLCAwICk7DQoJCQkkKCB0b0ZvY3VzICkudHJpZ2dlciggImZvY3VzIiApOw0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfQ0KCX0sDQoNCglfcGFuZWxLZXlEb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLlVQICYmIGV2ZW50LmN0cmxLZXkgKSB7DQoJCQkkKCBldmVudC5jdXJyZW50VGFyZ2V0ICkucHJldigpLnRyaWdnZXIoICJmb2N1cyIgKTsNCgkJfQ0KCX0sDQoNCglyZWZyZXNoOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMuX3Byb2Nlc3NQYW5lbHMoKTsNCg0KCQkvLyBXYXMgY29sbGFwc2VkIG9yIG5vIHBhbmVsDQoJCWlmICggKCBvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgJiYgb3B0aW9ucy5jb2xsYXBzaWJsZSA9PT0gdHJ1ZSApIHx8DQoJCQkJIXRoaXMuaGVhZGVycy5sZW5ndGggKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoNCgkJLy8gYWN0aXZlIGZhbHNlIG9ubHkgd2hlbiBjb2xsYXBzaWJsZSBpcyB0cnVlDQoJCX0gZWxzZSBpZiAoIG9wdGlvbnMuYWN0aXZlID09PSBmYWxzZSApIHsNCgkJCXRoaXMuX2FjdGl2YXRlKCAwICk7DQoNCgkJLy8gd2FzIGFjdGl2ZSwgYnV0IGFjdGl2ZSBwYW5lbCBpcyBnb25lDQoJCX0gZWxzZSBpZiAoIHRoaXMuYWN0aXZlLmxlbmd0aCAmJiAhJC5jb250YWlucyggdGhpcy5lbGVtZW50WyAwIF0sIHRoaXMuYWN0aXZlWyAwIF0gKSApIHsNCg0KCQkJLy8gYWxsIHJlbWFpbmluZyBwYW5lbCBhcmUgZGlzYWJsZWQNCgkJCWlmICggdGhpcy5oZWFkZXJzLmxlbmd0aCA9PT0gdGhpcy5oZWFkZXJzLmZpbmQoICIudWktc3RhdGUtZGlzYWJsZWQiICkubGVuZ3RoICkgew0KCQkJCW9wdGlvbnMuYWN0aXZlID0gZmFsc2U7DQoJCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoNCgkJCS8vIGFjdGl2YXRlIHByZXZpb3VzIHBhbmVsDQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuX2FjdGl2YXRlKCBNYXRoLm1heCggMCwgb3B0aW9ucy5hY3RpdmUgLSAxICkgKTsNCgkJCX0NCg0KCQkvLyB3YXMgYWN0aXZlLCBhY3RpdmUgcGFuZWwgc3RpbGwgZXhpc3RzDQoJCX0gZWxzZSB7DQoNCgkJCS8vIG1ha2Ugc3VyZSBhY3RpdmUgaW5kZXggaXMgY29ycmVjdA0KCQkJb3B0aW9ucy5hY3RpdmUgPSB0aGlzLmhlYWRlcnMuaW5kZXgoIHRoaXMuYWN0aXZlICk7DQoJCX0NCg0KCQl0aGlzLl9kZXN0cm95SWNvbnMoKTsNCg0KCQl0aGlzLl9yZWZyZXNoKCk7DQoJfSwNCg0KCV9wcm9jZXNzUGFuZWxzOiBmdW5jdGlvbigpIHsNCgkJdmFyIHByZXZIZWFkZXJzID0gdGhpcy5oZWFkZXJzLA0KCQkJcHJldlBhbmVscyA9IHRoaXMucGFuZWxzOw0KDQoJCXRoaXMuaGVhZGVycyA9IHRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMuaGVhZGVyICk7DQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmhlYWRlcnMsICJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiwNCgkJCSJ1aS1zdGF0ZS1kZWZhdWx0IiApOw0KDQoJCXRoaXMucGFuZWxzID0gdGhpcy5oZWFkZXJzLm5leHQoKS5maWx0ZXIoICI6bm90KC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUpIiApLmhpZGUoKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMucGFuZWxzLCAidWktYWNjb3JkaW9uLWNvbnRlbnQiLCAidWktaGVscGVyLXJlc2V0IHVpLXdpZGdldC1jb250ZW50IiApOw0KDQoJCS8vIEF2b2lkIG1lbW9yeSBsZWFrcyAoIzEwMDU2KQ0KCQlpZiAoIHByZXZQYW5lbHMgKSB7DQoJCQl0aGlzLl9vZmYoIHByZXZIZWFkZXJzLm5vdCggdGhpcy5oZWFkZXJzICkgKTsNCgkJCXRoaXMuX29mZiggcHJldlBhbmVscy5ub3QoIHRoaXMucGFuZWxzICkgKTsNCgkJfQ0KCX0sDQoNCglfcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXZhciBtYXhIZWlnaHQsDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJaGVpZ2h0U3R5bGUgPSBvcHRpb25zLmhlaWdodFN0eWxlLA0KCQkJcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudCgpOw0KDQoJCXRoaXMuYWN0aXZlID0gdGhpcy5fZmluZEFjdGl2ZSggb3B0aW9ucy5hY3RpdmUgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuYWN0aXZlLCAidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCAidWktc3RhdGUtYWN0aXZlIiApDQoJCQkuX3JlbW92ZUNsYXNzKCB0aGlzLmFjdGl2ZSwgInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5hY3RpdmUubmV4dCgpLCAidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIiApOw0KCQl0aGlzLmFjdGl2ZS5uZXh0KCkuc2hvdygpOw0KDQoJCXRoaXMuaGVhZGVycw0KCQkJLmF0dHIoICJyb2xlIiwgInRhYiIgKQ0KCQkJLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCXZhciBoZWFkZXIgPSAkKCB0aGlzICksDQoJCQkJCWhlYWRlcklkID0gaGVhZGVyLnVuaXF1ZUlkKCkuYXR0ciggImlkIiApLA0KCQkJCQlwYW5lbCA9IGhlYWRlci5uZXh0KCksDQoJCQkJCXBhbmVsSWQgPSBwYW5lbC51bmlxdWVJZCgpLmF0dHIoICJpZCIgKTsNCgkJCQloZWFkZXIuYXR0ciggImFyaWEtY29udHJvbHMiLCBwYW5lbElkICk7DQoJCQkJcGFuZWwuYXR0ciggImFyaWEtbGFiZWxsZWRieSIsIGhlYWRlcklkICk7DQoJCQl9ICkNCgkJCS5uZXh0KCkNCgkJCQkuYXR0ciggInJvbGUiLCAidGFicGFuZWwiICk7DQoNCgkJdGhpcy5oZWFkZXJzDQoJCQkubm90KCB0aGlzLmFjdGl2ZSApDQoJCQkJLmF0dHIoIHsNCgkJCQkJImFyaWEtc2VsZWN0ZWQiOiAiZmFsc2UiLA0KCQkJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQoJCQkJCXRhYkluZGV4OiAtMQ0KCQkJCX0gKQ0KCQkJCS5uZXh0KCkNCgkJCQkJLmF0dHIoIHsNCgkJCQkJCSJhcmlhLWhpZGRlbiI6ICJ0cnVlIg0KCQkJCQl9ICkNCgkJCQkJLmhpZGUoKTsNCg0KCQkvLyBNYWtlIHN1cmUgYXQgbGVhc3Qgb25lIGhlYWRlciBpcyBpbiB0aGUgdGFiIG9yZGVyDQoJCWlmICggIXRoaXMuYWN0aXZlLmxlbmd0aCApIHsNCgkJCXRoaXMuaGVhZGVycy5lcSggMCApLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYWN0aXZlLmF0dHIoIHsNCgkJCQkiYXJpYS1zZWxlY3RlZCI6ICJ0cnVlIiwNCgkJCQkiYXJpYS1leHBhbmRlZCI6ICJ0cnVlIiwNCgkJCQl0YWJJbmRleDogMA0KCQkJfSApDQoJCQkJLm5leHQoKQ0KCQkJCQkuYXR0ciggew0KCQkJCQkJImFyaWEtaGlkZGVuIjogImZhbHNlIg0KCQkJCQl9ICk7DQoJCX0NCg0KCQl0aGlzLl9jcmVhdGVJY29ucygpOw0KDQoJCXRoaXMuX3NldHVwRXZlbnRzKCBvcHRpb25zLmV2ZW50ICk7DQoNCgkJaWYgKCBoZWlnaHRTdHlsZSA9PT0gImZpbGwiICkgew0KCQkJbWF4SGVpZ2h0ID0gcGFyZW50LmhlaWdodCgpOw0KCQkJdGhpcy5lbGVtZW50LnNpYmxpbmdzKCAiOnZpc2libGUiICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCg0KCQkJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJbWF4SGVpZ2h0IC09IGVsZW0ub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0gKTsNCg0KCQkJdGhpcy5oZWFkZXJzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCW1heEhlaWdodCAtPSAkKCB0aGlzICkub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0gKTsNCg0KCQkJdGhpcy5oZWFkZXJzLm5leHQoKQ0KCQkJCS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQkJJCggdGhpcyApLmhlaWdodCggTWF0aC5tYXgoIDAsIG1heEhlaWdodCAtDQoJCQkJCQkkKCB0aGlzICkuaW5uZXJIZWlnaHQoKSArICQoIHRoaXMgKS5oZWlnaHQoKSApICk7DQoJCQkJfSApDQoJCQkJLmNzcyggIm92ZXJmbG93IiwgImF1dG8iICk7DQoJCX0gZWxzZSBpZiAoIGhlaWdodFN0eWxlID09PSAiYXV0byIgKSB7DQoJCQltYXhIZWlnaHQgPSAwOw0KCQkJdGhpcy5oZWFkZXJzLm5leHQoKQ0KCQkJCS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQkJdmFyIGlzVmlzaWJsZSA9ICQoIHRoaXMgKS5pcyggIjp2aXNpYmxlIiApOw0KCQkJCQlpZiAoICFpc1Zpc2libGUgKSB7DQoJCQkJCQkkKCB0aGlzICkuc2hvdygpOw0KCQkJCQl9DQoJCQkJCW1heEhlaWdodCA9IE1hdGgubWF4KCBtYXhIZWlnaHQsICQoIHRoaXMgKS5jc3MoICJoZWlnaHQiLCAiIiApLmhlaWdodCgpICk7DQoJCQkJCWlmICggIWlzVmlzaWJsZSApIHsNCgkJCQkJCSQoIHRoaXMgKS5oaWRlKCk7DQoJCQkJCX0NCgkJCQl9ICkNCgkJCQkuaGVpZ2h0KCBtYXhIZWlnaHQgKTsNCgkJfQ0KCX0sDQoNCglfYWN0aXZhdGU6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJdmFyIGFjdGl2ZSA9IHRoaXMuX2ZpbmRBY3RpdmUoIGluZGV4IClbIDAgXTsNCg0KCQkvLyBUcnlpbmcgdG8gYWN0aXZhdGUgdGhlIGFscmVhZHkgYWN0aXZlIHBhbmVsDQoJCWlmICggYWN0aXZlID09PSB0aGlzLmFjdGl2ZVsgMCBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gVHJ5aW5nIHRvIGNvbGxhcHNlLCBzaW11bGF0ZSBhIGNsaWNrIG9uIHRoZSBjdXJyZW50bHkgYWN0aXZlIGhlYWRlcg0KCQlhY3RpdmUgPSBhY3RpdmUgfHwgdGhpcy5hY3RpdmVbIDAgXTsNCg0KCQl0aGlzLl9ldmVudEhhbmRsZXIoIHsNCgkJCXRhcmdldDogYWN0aXZlLA0KCQkJY3VycmVudFRhcmdldDogYWN0aXZlLA0KCQkJcHJldmVudERlZmF1bHQ6ICQubm9vcA0KCQl9ICk7DQoJfSwNCg0KCV9maW5kQWN0aXZlOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7DQoJCXJldHVybiB0eXBlb2Ygc2VsZWN0b3IgPT09ICJudW1iZXIiID8gdGhpcy5oZWFkZXJzLmVxKCBzZWxlY3RvciApIDogJCgpOw0KCX0sDQoNCglfc2V0dXBFdmVudHM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGV2ZW50cyA9IHsNCgkJCWtleWRvd246ICJfa2V5ZG93biINCgkJfTsNCgkJaWYgKCBldmVudCApIHsNCgkJCSQuZWFjaCggZXZlbnQuc3BsaXQoICIgIiApLCBmdW5jdGlvbiggaW5kZXgsIGV2ZW50TmFtZSApIHsNCgkJCQlldmVudHNbIGV2ZW50TmFtZSBdID0gIl9ldmVudEhhbmRsZXIiOw0KCQkJfSApOw0KCQl9DQoNCgkJdGhpcy5fb2ZmKCB0aGlzLmhlYWRlcnMuYWRkKCB0aGlzLmhlYWRlcnMubmV4dCgpICkgKTsNCgkJdGhpcy5fb24oIHRoaXMuaGVhZGVycywgZXZlbnRzICk7DQoJCXRoaXMuX29uKCB0aGlzLmhlYWRlcnMubmV4dCgpLCB7IGtleWRvd246ICJfcGFuZWxLZXlEb3duIiB9ICk7DQoJCXRoaXMuX2hvdmVyYWJsZSggdGhpcy5oZWFkZXJzICk7DQoJCXRoaXMuX2ZvY3VzYWJsZSggdGhpcy5oZWFkZXJzICk7DQoJfSwNCg0KCV9ldmVudEhhbmRsZXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGFjdGl2ZUNoaWxkcmVuLCBjbGlja2VkQ2hpbGRyZW4sDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJYWN0aXZlID0gdGhpcy5hY3RpdmUsDQoJCQljbGlja2VkID0gJCggZXZlbnQuY3VycmVudFRhcmdldCApLA0KCQkJY2xpY2tlZElzQWN0aXZlID0gY2xpY2tlZFsgMCBdID09PSBhY3RpdmVbIDAgXSwNCgkJCWNvbGxhcHNpbmcgPSBjbGlja2VkSXNBY3RpdmUgJiYgb3B0aW9ucy5jb2xsYXBzaWJsZSwNCgkJCXRvU2hvdyA9IGNvbGxhcHNpbmcgPyAkKCkgOiBjbGlja2VkLm5leHQoKSwNCgkJCXRvSGlkZSA9IGFjdGl2ZS5uZXh0KCksDQoJCQlldmVudERhdGEgPSB7DQoJCQkJb2xkSGVhZGVyOiBhY3RpdmUsDQoJCQkJb2xkUGFuZWw6IHRvSGlkZSwNCgkJCQluZXdIZWFkZXI6IGNvbGxhcHNpbmcgPyAkKCkgOiBjbGlja2VkLA0KCQkJCW5ld1BhbmVsOiB0b1Nob3cNCgkJCX07DQoNCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCg0KCQlpZiAoDQoNCgkJCQkvLyBjbGljayBvbiBhY3RpdmUgaGVhZGVyLCBidXQgbm90IGNvbGxhcHNpYmxlDQoJCQkJKCBjbGlja2VkSXNBY3RpdmUgJiYgIW9wdGlvbnMuY29sbGFwc2libGUgKSB8fA0KDQoJCQkJLy8gYWxsb3cgY2FuY2VsaW5nIGFjdGl2YXRpb24NCgkJCQkoIHRoaXMuX3RyaWdnZXIoICJiZWZvcmVBY3RpdmF0ZSIsIGV2ZW50LCBldmVudERhdGEgKSA9PT0gZmFsc2UgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCW9wdGlvbnMuYWN0aXZlID0gY29sbGFwc2luZyA/IGZhbHNlIDogdGhpcy5oZWFkZXJzLmluZGV4KCBjbGlja2VkICk7DQoNCgkJLy8gV2hlbiB0aGUgY2FsbCB0byAuX3RvZ2dsZSgpIGNvbWVzIGFmdGVyIHRoZSBjbGFzcyBjaGFuZ2VzDQoJCS8vIGl0IGNhdXNlcyBhIHZlcnkgb2RkIGJ1ZyBpbiBJRSA4IChzZWUgIzY3MjApDQoJCXRoaXMuYWN0aXZlID0gY2xpY2tlZElzQWN0aXZlID8gJCgpIDogY2xpY2tlZDsNCgkJdGhpcy5fdG9nZ2xlKCBldmVudERhdGEgKTsNCg0KCQkvLyBTd2l0Y2ggY2xhc3Nlcw0KCQkvLyBjb3JuZXIgY2xhc3NlcyBvbiB0aGUgcHJldmlvdXNseSBhY3RpdmUgaGVhZGVyIHN0YXkgYWZ0ZXIgdGhlIGFuaW1hdGlvbg0KCQl0aGlzLl9yZW1vdmVDbGFzcyggYWN0aXZlLCAidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQlpZiAoIG9wdGlvbnMuaWNvbnMgKSB7DQoJCQlhY3RpdmVDaGlsZHJlbiA9IGFjdGl2ZS5jaGlsZHJlbiggIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iICk7DQoJCQl0aGlzLl9yZW1vdmVDbGFzcyggYWN0aXZlQ2hpbGRyZW4sIG51bGwsIG9wdGlvbnMuaWNvbnMuYWN0aXZlSGVhZGVyICkNCgkJCQkuX2FkZENsYXNzKCBhY3RpdmVDaGlsZHJlbiwgbnVsbCwgb3B0aW9ucy5pY29ucy5oZWFkZXIgKTsNCgkJfQ0KDQoJCWlmICggIWNsaWNrZWRJc0FjdGl2ZSApIHsNCgkJCXRoaXMuX3JlbW92ZUNsYXNzKCBjbGlja2VkLCAidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiICkNCgkJCQkuX2FkZENsYXNzKCBjbGlja2VkLCAidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJaWYgKCBvcHRpb25zLmljb25zICkgew0KCQkJCWNsaWNrZWRDaGlsZHJlbiA9IGNsaWNrZWQuY2hpbGRyZW4oICIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiApOw0KCQkJCXRoaXMuX3JlbW92ZUNsYXNzKCBjbGlja2VkQ2hpbGRyZW4sIG51bGwsIG9wdGlvbnMuaWNvbnMuaGVhZGVyICkNCgkJCQkJLl9hZGRDbGFzcyggY2xpY2tlZENoaWxkcmVuLCBudWxsLCBvcHRpb25zLmljb25zLmFjdGl2ZUhlYWRlciApOw0KCQkJfQ0KDQoJCQl0aGlzLl9hZGRDbGFzcyggY2xpY2tlZC5uZXh0KCksICJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiICk7DQoJCX0NCgl9LA0KDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGRhdGEgKSB7DQoJCXZhciB0b1Nob3cgPSBkYXRhLm5ld1BhbmVsLA0KCQkJdG9IaWRlID0gdGhpcy5wcmV2U2hvdy5sZW5ndGggPyB0aGlzLnByZXZTaG93IDogZGF0YS5vbGRQYW5lbDsNCg0KCQkvLyBIYW5kbGUgYWN0aXZhdGluZyBhIHBhbmVsIGR1cmluZyB0aGUgYW5pbWF0aW9uIGZvciBhbm90aGVyIGFjdGl2YXRpb24NCgkJdGhpcy5wcmV2U2hvdy5hZGQoIHRoaXMucHJldkhpZGUgKS5zdG9wKCB0cnVlLCB0cnVlICk7DQoJCXRoaXMucHJldlNob3cgPSB0b1Nob3c7DQoJCXRoaXMucHJldkhpZGUgPSB0b0hpZGU7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuYW5pbWF0ZSApIHsNCgkJCXRoaXMuX2FuaW1hdGUoIHRvU2hvdywgdG9IaWRlLCBkYXRhICk7DQoJCX0gZWxzZSB7DQoJCQl0b0hpZGUuaGlkZSgpOw0KCQkJdG9TaG93LnNob3coKTsNCgkJCXRoaXMuX3RvZ2dsZUNvbXBsZXRlKCBkYXRhICk7DQoJCX0NCg0KCQl0b0hpZGUuYXR0ciggew0KCQkJImFyaWEtaGlkZGVuIjogInRydWUiDQoJCX0gKTsNCgkJdG9IaWRlLnByZXYoKS5hdHRyKCB7DQoJCQkiYXJpYS1zZWxlY3RlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSINCgkJfSApOw0KDQoJCS8vIGlmIHdlJ3JlIHN3aXRjaGluZyBwYW5lbHMsIHJlbW92ZSB0aGUgb2xkIGhlYWRlciBmcm9tIHRoZSB0YWIgb3JkZXINCgkJLy8gaWYgd2UncmUgb3BlbmluZyBmcm9tIGNvbGxhcHNlZCBzdGF0ZSwgcmVtb3ZlIHRoZSBwcmV2aW91cyBoZWFkZXIgZnJvbSB0aGUgdGFiIG9yZGVyDQoJCS8vIGlmIHdlJ3JlIGNvbGxhcHNpbmcsIHRoZW4ga2VlcCB0aGUgY29sbGFwc2luZyBoZWFkZXIgaW4gdGhlIHRhYiBvcmRlcg0KCQlpZiAoIHRvU2hvdy5sZW5ndGggJiYgdG9IaWRlLmxlbmd0aCApIHsNCgkJCXRvSGlkZS5wcmV2KCkuYXR0ciggew0KCQkJCSJ0YWJJbmRleCI6IC0xLA0KCQkJCSJhcmlhLWV4cGFuZGVkIjogImZhbHNlIg0KCQkJfSApOw0KCQl9IGVsc2UgaWYgKCB0b1Nob3cubGVuZ3RoICkgew0KCQkJdGhpcy5oZWFkZXJzLmZpbHRlciggZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuIHBhcnNlSW50KCAkKCB0aGlzICkuYXR0ciggInRhYkluZGV4IiApLCAxMCApID09PSAwOw0KCQkJfSApDQoJCQkJLmF0dHIoICJ0YWJJbmRleCIsIC0xICk7DQoJCX0NCg0KCQl0b1Nob3cNCgkJCS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAiZmFsc2UiICkNCgkJCS5wcmV2KCkNCgkJCQkuYXR0ciggew0KCQkJCQkiYXJpYS1zZWxlY3RlZCI6ICJ0cnVlIiwNCgkJCQkJImFyaWEtZXhwYW5kZWQiOiAidHJ1ZSIsDQoJCQkJCXRhYkluZGV4OiAwDQoJCQkJfSApOw0KCX0sDQoNCglfYW5pbWF0ZTogZnVuY3Rpb24oIHRvU2hvdywgdG9IaWRlLCBkYXRhICkgew0KCQl2YXIgdG90YWwsIGVhc2luZywgZHVyYXRpb24sDQoJCQl0aGF0ID0gdGhpcywNCgkJCWFkanVzdCA9IDAsDQoJCQlib3hTaXppbmcgPSB0b1Nob3cuY3NzKCAiYm94LXNpemluZyIgKSwNCgkJCWRvd24gPSB0b1Nob3cubGVuZ3RoICYmDQoJCQkJKCAhdG9IaWRlLmxlbmd0aCB8fCAoIHRvU2hvdy5pbmRleCgpIDwgdG9IaWRlLmluZGV4KCkgKSApLA0KCQkJYW5pbWF0ZSA9IHRoaXMub3B0aW9ucy5hbmltYXRlIHx8IHt9LA0KCQkJb3B0aW9ucyA9IGRvd24gJiYgYW5pbWF0ZS5kb3duIHx8IGFuaW1hdGUsDQoJCQljb21wbGV0ZSA9IGZ1bmN0aW9uKCkgew0KCQkJCXRoYXQuX3RvZ2dsZUNvbXBsZXRlKCBkYXRhICk7DQoJCQl9Ow0KDQoJCWlmICggdHlwZW9mIG9wdGlvbnMgPT09ICJudW1iZXIiICkgew0KCQkJZHVyYXRpb24gPSBvcHRpb25zOw0KCQl9DQoJCWlmICggdHlwZW9mIG9wdGlvbnMgPT09ICJzdHJpbmciICkgew0KCQkJZWFzaW5nID0gb3B0aW9uczsNCgkJfQ0KDQoJCS8vIGZhbGwgYmFjayBmcm9tIG9wdGlvbnMgdG8gYW5pbWF0aW9uIGluIGNhc2Ugb2YgcGFydGlhbCBkb3duIHNldHRpbmdzDQoJCWVhc2luZyA9IGVhc2luZyB8fCBvcHRpb25zLmVhc2luZyB8fCBhbmltYXRlLmVhc2luZzsNCgkJZHVyYXRpb24gPSBkdXJhdGlvbiB8fCBvcHRpb25zLmR1cmF0aW9uIHx8IGFuaW1hdGUuZHVyYXRpb247DQoNCgkJaWYgKCAhdG9IaWRlLmxlbmd0aCApIHsNCgkJCXJldHVybiB0b1Nob3cuYW5pbWF0ZSggdGhpcy5zaG93UHJvcHMsIGR1cmF0aW9uLCBlYXNpbmcsIGNvbXBsZXRlICk7DQoJCX0NCgkJaWYgKCAhdG9TaG93Lmxlbmd0aCApIHsNCgkJCXJldHVybiB0b0hpZGUuYW5pbWF0ZSggdGhpcy5oaWRlUHJvcHMsIGR1cmF0aW9uLCBlYXNpbmcsIGNvbXBsZXRlICk7DQoJCX0NCg0KCQl0b3RhbCA9IHRvU2hvdy5zaG93KCkub3V0ZXJIZWlnaHQoKTsNCgkJdG9IaWRlLmFuaW1hdGUoIHRoaXMuaGlkZVByb3BzLCB7DQoJCQlkdXJhdGlvbjogZHVyYXRpb24sDQoJCQllYXNpbmc6IGVhc2luZywNCgkJCXN0ZXA6IGZ1bmN0aW9uKCBub3csIGZ4ICkgew0KCQkJCWZ4Lm5vdyA9IE1hdGgucm91bmQoIG5vdyApOw0KCQkJfQ0KCQl9ICk7DQoJCXRvU2hvdw0KCQkJLmhpZGUoKQ0KCQkJLmFuaW1hdGUoIHRoaXMuc2hvd1Byb3BzLCB7DQoJCQkJZHVyYXRpb246IGR1cmF0aW9uLA0KCQkJCWVhc2luZzogZWFzaW5nLA0KCQkJCWNvbXBsZXRlOiBjb21wbGV0ZSwNCgkJCQlzdGVwOiBmdW5jdGlvbiggbm93LCBmeCApIHsNCgkJCQkJZngubm93ID0gTWF0aC5yb3VuZCggbm93ICk7DQoJCQkJCWlmICggZngucHJvcCAhPT0gImhlaWdodCIgKSB7DQoJCQkJCQlpZiAoIGJveFNpemluZyA9PT0gImNvbnRlbnQtYm94IiApIHsNCgkJCQkJCQlhZGp1c3QgKz0gZngubm93Ow0KCQkJCQkJfQ0KCQkJCQl9IGVsc2UgaWYgKCB0aGF0Lm9wdGlvbnMuaGVpZ2h0U3R5bGUgIT09ICJjb250ZW50IiApIHsNCgkJCQkJCWZ4Lm5vdyA9IE1hdGgucm91bmQoIHRvdGFsIC0gdG9IaWRlLm91dGVySGVpZ2h0KCkgLSBhZGp1c3QgKTsNCgkJCQkJCWFkanVzdCA9IDA7DQoJCQkJCX0NCgkJCQl9DQoJCQl9ICk7DQoJfSwNCg0KCV90b2dnbGVDb21wbGV0ZTogZnVuY3Rpb24oIGRhdGEgKSB7DQoJCXZhciB0b0hpZGUgPSBkYXRhLm9sZFBhbmVsLA0KCQkJcHJldiA9IHRvSGlkZS5wcmV2KCk7DQoNCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRvSGlkZSwgInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIgKTsNCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHByZXYsICJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIgKQ0KCQkJLl9hZGRDbGFzcyggcHJldiwgInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiApOw0KDQoJCS8vIFdvcmsgYXJvdW5kIGZvciByZW5kZXJpbmcgYnVnIGluIElFICgjNTQyMSkNCgkJaWYgKCB0b0hpZGUubGVuZ3RoICkgew0KCQkJdG9IaWRlLnBhcmVudCgpWyAwIF0uY2xhc3NOYW1lID0gdG9IaWRlLnBhcmVudCgpWyAwIF0uY2xhc3NOYW1lOw0KCQl9DQoJCXRoaXMuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIG51bGwsIGRhdGEgKTsNCgl9DQp9ICk7DQoNCg0KDQp2YXIgc2FmZUFjdGl2ZUVsZW1lbnQgPSAkLnVpLnNhZmVBY3RpdmVFbGVtZW50ID0gZnVuY3Rpb24oIGRvY3VtZW50ICkgew0KCXZhciBhY3RpdmVFbGVtZW50Ow0KDQoJLy8gU3VwcG9ydDogSUUgOSBvbmx5DQoJLy8gSUU5IHRocm93cyBhbiAiVW5zcGVjaWZpZWQgZXJyb3IiIGFjY2Vzc2luZyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGZyb20gYW4gPGlmcmFtZT4NCgl0cnkgew0KCQlhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsNCgl9IGNhdGNoICggZXJyb3IgKSB7DQoJCWFjdGl2ZUVsZW1lbnQgPSBkb2N1bWVudC5ib2R5Ow0KCX0NCg0KCS8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5DQoJLy8gSUUgbWF5IHJldHVybiBudWxsIGluc3RlYWQgb2YgYW4gZWxlbWVudA0KCS8vIEludGVyZXN0aW5nbHksIHRoaXMgb25seSBzZWVtcyB0byBvY2N1ciB3aGVuIE5PVCBpbiBhbiBpZnJhbWUNCglpZiAoICFhY3RpdmVFbGVtZW50ICkgew0KCQlhY3RpdmVFbGVtZW50ID0gZG9jdW1lbnQuYm9keTsNCgl9DQoNCgkvLyBTdXBwb3J0OiBJRSAxMSBvbmx5DQoJLy8gSUUxMSByZXR1cm5zIGEgc2VlbWluZ2x5IGVtcHR5IG9iamVjdCBpbiBzb21lIGNhc2VzIHdoZW4gYWNjZXNzaW5nDQoJLy8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBmcm9tIGFuIDxpZnJhbWU+DQoJaWYgKCAhYWN0aXZlRWxlbWVudC5ub2RlTmFtZSApIHsNCgkJYWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmJvZHk7DQoJfQ0KDQoJcmV0dXJuIGFjdGl2ZUVsZW1lbnQ7DQp9Ow0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIE1lbnUgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IE1lbnUNCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8+PmRlc2NyaXB0aW9uOiBDcmVhdGVzIG5lc3RhYmxlIG1lbnVzLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL21lbnUvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vbWVudS8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9jb3JlLmNzcw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL21lbnUuY3NzDQovLz4+Y3NzLnRoZW1lOiAuLi8uLi90aGVtZXMvYmFzZS90aGVtZS5jc3MNCg0KDQoNCnZhciB3aWRnZXRzTWVudSA9ICQud2lkZ2V0KCAidWkubWVudSIsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCglkZWZhdWx0RWxlbWVudDogIjx1bD4iLA0KCWRlbGF5OiAzMDAsDQoJb3B0aW9uczogew0KCQlpY29uczogew0KCQkJc3VibWVudTogInVpLWljb24tY2FyZXQtMS1lIg0KCQl9LA0KCQlpdGVtczogIj4gKiIsDQoJCW1lbnVzOiAidWwiLA0KCQlwb3NpdGlvbjogew0KCQkJbXk6ICJsZWZ0IHRvcCIsDQoJCQlhdDogInJpZ2h0IHRvcCINCgkJfSwNCgkJcm9sZTogIm1lbnUiLA0KDQoJCS8vIENhbGxiYWNrcw0KCQlibHVyOiBudWxsLA0KCQlmb2N1czogbnVsbCwNCgkJc2VsZWN0OiBudWxsDQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmFjdGl2ZU1lbnUgPSB0aGlzLmVsZW1lbnQ7DQoNCgkJLy8gRmxhZyB1c2VkIHRvIHByZXZlbnQgZmlyaW5nIG9mIHRoZSBjbGljayBoYW5kbGVyDQoJCS8vIGFzIHRoZSBldmVudCBidWJibGVzIHVwIHRocm91Z2ggbmVzdGVkIG1lbnVzDQoJCXRoaXMubW91c2VIYW5kbGVkID0gZmFsc2U7DQoJCXRoaXMuZWxlbWVudA0KCQkJLnVuaXF1ZUlkKCkNCgkJCS5hdHRyKCB7DQoJCQkJcm9sZTogdGhpcy5vcHRpb25zLnJvbGUsDQoJCQkJdGFiSW5kZXg6IDANCgkJCX0gKTsNCg0KCQl0aGlzLl9hZGRDbGFzcyggInVpLW1lbnUiLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiApOw0KCQl0aGlzLl9vbiggew0KDQoJCQkvLyBQcmV2ZW50IGZvY3VzIGZyb20gc3RpY2tpbmcgdG8gbGlua3MgaW5zaWRlIG1lbnUgYWZ0ZXIgY2xpY2tpbmcNCgkJCS8vIHRoZW0gKGZvY3VzIHNob3VsZCBhbHdheXMgc3RheSBvbiBVTCBkdXJpbmcgbmF2aWdhdGlvbikuDQoJCQkibW91c2Vkb3duIC51aS1tZW51LWl0ZW0iOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCX0sDQoJCQkiY2xpY2sgLnVpLW1lbnUtaXRlbSI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQl2YXIgdGFyZ2V0ID0gJCggZXZlbnQudGFyZ2V0ICk7DQoJCQkJdmFyIGFjdGl2ZSA9ICQoICQudWkuc2FmZUFjdGl2ZUVsZW1lbnQoIHRoaXMuZG9jdW1lbnRbIDAgXSApICk7DQoJCQkJaWYgKCAhdGhpcy5tb3VzZUhhbmRsZWQgJiYgdGFyZ2V0Lm5vdCggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKS5sZW5ndGggKSB7DQoJCQkJCXRoaXMuc2VsZWN0KCBldmVudCApOw0KDQoJCQkJCS8vIE9ubHkgc2V0IHRoZSBtb3VzZUhhbmRsZWQgZmxhZyBpZiB0aGUgZXZlbnQgd2lsbCBidWJibGUsIHNlZSAjOTQ2OS4NCgkJCQkJaWYgKCAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHsNCgkJCQkJCXRoaXMubW91c2VIYW5kbGVkID0gdHJ1ZTsNCgkJCQkJfQ0KDQoJCQkJCS8vIE9wZW4gc3VibWVudSBvbiBjbGljaw0KCQkJCQlpZiAoIHRhcmdldC5oYXMoICIudWktbWVudSIgKS5sZW5ndGggKSB7DQoJCQkJCQl0aGlzLmV4cGFuZCggZXZlbnQgKTsNCgkJCQkJfSBlbHNlIGlmICggIXRoaXMuZWxlbWVudC5pcyggIjpmb2N1cyIgKSAmJg0KCQkJCQkJCWFjdGl2ZS5jbG9zZXN0KCAiLnVpLW1lbnUiICkubGVuZ3RoICkgew0KDQoJCQkJCQkvLyBSZWRpcmVjdCBmb2N1cyB0byB0aGUgbWVudQ0KCQkJCQkJdGhpcy5lbGVtZW50LnRyaWdnZXIoICJmb2N1cyIsIFsgdHJ1ZSBdICk7DQoNCgkJCQkJCS8vIElmIHRoZSBhY3RpdmUgaXRlbSBpcyBvbiB0aGUgdG9wIGxldmVsLCBsZXQgaXQgc3RheSBhY3RpdmUuDQoJCQkJCQkvLyBPdGhlcndpc2UsIGJsdXIgdGhlIGFjdGl2ZSBpdGVtIHNpbmNlIGl0IGlzIG5vIGxvbmdlciB2aXNpYmxlLg0KCQkJCQkJaWYgKCB0aGlzLmFjdGl2ZSAmJiB0aGlzLmFjdGl2ZS5wYXJlbnRzKCAiLnVpLW1lbnUiICkubGVuZ3RoID09PSAxICkgew0KCQkJCQkJCWNsZWFyVGltZW91dCggdGhpcy50aW1lciApOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfSwNCgkJCSJtb3VzZWVudGVyIC51aS1tZW51LWl0ZW0iOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJCQkvLyBJZ25vcmUgbW91c2UgZXZlbnRzIHdoaWxlIHR5cGVhaGVhZCBpcyBhY3RpdmUsIHNlZSAjMTA0NTguDQoJCQkJLy8gUHJldmVudHMgZm9jdXNpbmcgdGhlIHdyb25nIGl0ZW0gd2hlbiB0eXBlYWhlYWQgY2F1c2VzIGEgc2Nyb2xsIHdoaWxlIHRoZSBtb3VzZQ0KCQkJCS8vIGlzIG92ZXIgYW4gaXRlbSBpbiB0aGUgbWVudQ0KCQkJCWlmICggdGhpcy5wcmV2aW91c0ZpbHRlciApIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCg0KCQkJCXZhciBhY3R1YWxUYXJnZXQgPSAkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLW1lbnUtaXRlbSIgKSwNCgkJCQkJdGFyZ2V0ID0gJCggZXZlbnQuY3VycmVudFRhcmdldCApOw0KDQoJCQkJLy8gSWdub3JlIGJ1YmJsZWQgZXZlbnRzIG9uIHBhcmVudCBpdGVtcywgc2VlICMxMTY0MQ0KCQkJCWlmICggYWN0dWFsVGFyZ2V0WyAwIF0gIT09IHRhcmdldFsgMCBdICkgew0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJLy8gUmVtb3ZlIHVpLXN0YXRlLWFjdGl2ZSBjbGFzcyBmcm9tIHNpYmxpbmdzIG9mIHRoZSBuZXdseSBmb2N1c2VkIG1lbnUgaXRlbQ0KCQkJCS8vIHRvIGF2b2lkIGEganVtcCBjYXVzZWQgYnkgYWRqYWNlbnQgZWxlbWVudHMgYm90aCBoYXZpbmcgYSBjbGFzcyB3aXRoIGEgYm9yZGVyDQoJCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRhcmdldC5zaWJsaW5ncygpLmNoaWxkcmVuKCAiLnVpLXN0YXRlLWFjdGl2ZSIgKSwNCgkJCQkJbnVsbCwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQl0aGlzLmZvY3VzKCBldmVudCwgdGFyZ2V0ICk7DQoJCQl9LA0KCQkJbW91c2VsZWF2ZTogImNvbGxhcHNlQWxsIiwNCgkJCSJtb3VzZWxlYXZlIC51aS1tZW51IjogImNvbGxhcHNlQWxsIiwNCgkJCWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIGtlZXBBY3RpdmVJdGVtICkgew0KDQoJCQkJLy8gSWYgdGhlcmUncyBhbHJlYWR5IGFuIGFjdGl2ZSBpdGVtLCBrZWVwIGl0IGFjdGl2ZQ0KCQkJCS8vIElmIG5vdCwgYWN0aXZhdGUgdGhlIGZpcnN0IGl0ZW0NCgkJCQl2YXIgaXRlbSA9IHRoaXMuYWN0aXZlIHx8IHRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKS5lcSggMCApOw0KDQoJCQkJaWYgKCAha2VlcEFjdGl2ZUl0ZW0gKSB7DQoJCQkJCXRoaXMuZm9jdXMoIGV2ZW50LCBpdGVtICk7DQoJCQkJfQ0KCQkJfSwNCgkJCWJsdXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQl0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBub3RDb250YWluZWQgPSAhJC5jb250YWlucygNCgkJCQkJCXRoaXMuZWxlbWVudFsgMCBdLA0KCQkJCQkJJC51aS5zYWZlQWN0aXZlRWxlbWVudCggdGhpcy5kb2N1bWVudFsgMCBdICkNCgkJCQkJKTsNCgkJCQkJaWYgKCBub3RDb250YWluZWQgKSB7DQoJCQkJCQl0aGlzLmNvbGxhcHNlQWxsKCBldmVudCApOw0KCQkJCQl9DQoJCQkJfSApOw0KCQkJfSwNCgkJCWtleWRvd246ICJfa2V5ZG93biINCgkJfSApOw0KDQoJCXRoaXMucmVmcmVzaCgpOw0KDQoJCS8vIENsaWNrcyBvdXRzaWRlIG9mIGEgbWVudSBjb2xsYXBzZSBhbnkgb3BlbiBtZW51cw0KCQl0aGlzLl9vbiggdGhpcy5kb2N1bWVudCwgew0KCQkJY2xpY2s6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoIHRoaXMuX2Nsb3NlT25Eb2N1bWVudENsaWNrKCBldmVudCApICkgew0KCQkJCQl0aGlzLmNvbGxhcHNlQWxsKCBldmVudCApOw0KCQkJCX0NCg0KCQkJCS8vIFJlc2V0IHRoZSBtb3VzZUhhbmRsZWQgZmxhZw0KCQkJCXRoaXMubW91c2VIYW5kbGVkID0gZmFsc2U7DQoJCQl9DQoJCX0gKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaXRlbXMgPSB0aGlzLmVsZW1lbnQuZmluZCggIi51aS1tZW51LWl0ZW0iICkNCgkJCQkucmVtb3ZlQXR0ciggInJvbGUgYXJpYS1kaXNhYmxlZCIgKSwNCgkJCXN1Ym1lbnVzID0gaXRlbXMuY2hpbGRyZW4oICIudWktbWVudS1pdGVtLXdyYXBwZXIiICkNCgkJCQkucmVtb3ZlVW5pcXVlSWQoKQ0KCQkJCS5yZW1vdmVBdHRyKCAidGFiSW5kZXggcm9sZSBhcmlhLWhhc3BvcHVwIiApOw0KDQoJCS8vIERlc3Ryb3kgKHN1YiltZW51cw0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVBdHRyKCAiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiApDQoJCQkuZmluZCggIi51aS1tZW51IiApLmFkZEJhY2soKQ0KCQkJCS5yZW1vdmVBdHRyKCAicm9sZSBhcmlhLWxhYmVsbGVkYnkgYXJpYS1leHBhbmRlZCBhcmlhLWhpZGRlbiBhcmlhLWRpc2FibGVkICIgKw0KCQkJCQkidGFiSW5kZXgiICkNCgkJCQkucmVtb3ZlVW5pcXVlSWQoKQ0KCQkJCS5zaG93KCk7DQoNCgkJc3VibWVudXMuY2hpbGRyZW4oKS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCXZhciBlbGVtID0gJCggdGhpcyApOw0KCQkJaWYgKCBlbGVtLmRhdGEoICJ1aS1tZW51LXN1Ym1lbnUtY2FyZXQiICkgKSB7DQoJCQkJZWxlbS5yZW1vdmUoKTsNCgkJCX0NCgkJfSApOw0KCX0sDQoNCglfa2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgbWF0Y2gsIHByZXYsIGNoYXJhY3Rlciwgc2tpcCwNCgkJCXByZXZlbnREZWZhdWx0ID0gdHJ1ZTsNCg0KCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQljYXNlICQudWkua2V5Q29kZS5QQUdFX1VQOg0KCQkJdGhpcy5wcmV2aW91c1BhZ2UoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJdGhpcy5uZXh0UGFnZSggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJdGhpcy5fbW92ZSggImZpcnN0IiwgImZpcnN0IiwgZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQl0aGlzLl9tb3ZlKCAibGFzdCIsICJsYXN0IiwgZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5VUDoNCgkJCXRoaXMucHJldmlvdXMoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuRE9XTjoNCgkJCXRoaXMubmV4dCggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5MRUZUOg0KCQkJdGhpcy5jb2xsYXBzZSggZXZlbnQgKTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5SSUdIVDoNCgkJCWlmICggdGhpcy5hY3RpdmUgJiYgIXRoaXMuYWN0aXZlLmlzKCAiLnVpLXN0YXRlLWRpc2FibGVkIiApICkgew0KCQkJCXRoaXMuZXhwYW5kKCBldmVudCApOw0KCQkJfQ0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLkVOVEVSOg0KCQljYXNlICQudWkua2V5Q29kZS5TUEFDRToNCgkJCXRoaXMuX2FjdGl2YXRlKCBldmVudCApOw0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLkVTQ0FQRToNCgkJCXRoaXMuY29sbGFwc2UoIGV2ZW50ICk7DQoJCQlicmVhazsNCgkJZGVmYXVsdDoNCgkJCXByZXZlbnREZWZhdWx0ID0gZmFsc2U7DQoJCQlwcmV2ID0gdGhpcy5wcmV2aW91c0ZpbHRlciB8fCAiIjsNCgkJCXNraXAgPSBmYWxzZTsNCg0KCQkJLy8gU3VwcG9ydCBudW1iZXIgcGFkIHZhbHVlcw0KCQkJY2hhcmFjdGVyID0gZXZlbnQua2V5Q29kZSA+PSA5NiAmJiBldmVudC5rZXlDb2RlIDw9IDEwNSA/DQoJCQkJKCBldmVudC5rZXlDb2RlIC0gOTYgKS50b1N0cmluZygpIDogU3RyaW5nLmZyb21DaGFyQ29kZSggZXZlbnQua2V5Q29kZSApOw0KDQoJCQljbGVhclRpbWVvdXQoIHRoaXMuZmlsdGVyVGltZXIgKTsNCg0KCQkJaWYgKCBjaGFyYWN0ZXIgPT09IHByZXYgKSB7DQoJCQkJc2tpcCA9IHRydWU7DQoJCQl9IGVsc2Ugew0KCQkJCWNoYXJhY3RlciA9IHByZXYgKyBjaGFyYWN0ZXI7DQoJCQl9DQoNCgkJCW1hdGNoID0gdGhpcy5fZmlsdGVyTWVudUl0ZW1zKCBjaGFyYWN0ZXIgKTsNCgkJCW1hdGNoID0gc2tpcCAmJiBtYXRjaC5pbmRleCggdGhpcy5hY3RpdmUubmV4dCgpICkgIT09IC0xID8NCgkJCQl0aGlzLmFjdGl2ZS5uZXh0QWxsKCAiLnVpLW1lbnUtaXRlbSIgKSA6DQoJCQkJbWF0Y2g7DQoNCgkJCS8vIElmIG5vIG1hdGNoZXMgb24gdGhlIGN1cnJlbnQgZmlsdGVyLCByZXNldCB0byB0aGUgbGFzdCBjaGFyYWN0ZXIgcHJlc3NlZA0KCQkJLy8gdG8gbW92ZSBkb3duIHRoZSBtZW51IHRvIHRoZSBmaXJzdCBpdGVtIHRoYXQgc3RhcnRzIHdpdGggdGhhdCBjaGFyYWN0ZXINCgkJCWlmICggIW1hdGNoLmxlbmd0aCApIHsNCgkJCQljaGFyYWN0ZXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCBldmVudC5rZXlDb2RlICk7DQoJCQkJbWF0Y2ggPSB0aGlzLl9maWx0ZXJNZW51SXRlbXMoIGNoYXJhY3RlciApOw0KCQkJfQ0KDQoJCQlpZiAoIG1hdGNoLmxlbmd0aCApIHsNCgkJCQl0aGlzLmZvY3VzKCBldmVudCwgbWF0Y2ggKTsNCgkJCQl0aGlzLnByZXZpb3VzRmlsdGVyID0gY2hhcmFjdGVyOw0KCQkJCXRoaXMuZmlsdGVyVGltZXIgPSB0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQkJCWRlbGV0ZSB0aGlzLnByZXZpb3VzRmlsdGVyOw0KCQkJCX0sIDEwMDAgKTsNCgkJCX0gZWxzZSB7DQoJCQkJZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXI7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIHByZXZlbnREZWZhdWx0ICkgew0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJfQ0KCX0sDQoNCglfYWN0aXZhdGU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCB0aGlzLmFjdGl2ZSAmJiAhdGhpcy5hY3RpdmUuaXMoICIudWktc3RhdGUtZGlzYWJsZWQiICkgKSB7DQoJCQlpZiAoIHRoaXMuYWN0aXZlLmNoaWxkcmVuKCAiW2FyaWEtaGFzcG9wdXA9J3RydWUnXSIgKS5sZW5ndGggKSB7DQoJCQkJdGhpcy5leHBhbmQoIGV2ZW50ICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuc2VsZWN0KCBldmVudCApOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCXJlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl2YXIgbWVudXMsIGl0ZW1zLCBuZXdTdWJtZW51cywgbmV3SXRlbXMsIG5ld1dyYXBwZXJzLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlpY29uID0gdGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUsDQoJCQlzdWJtZW51cyA9IHRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMubWVudXMgKTsNCg0KCQl0aGlzLl90b2dnbGVDbGFzcyggInVpLW1lbnUtaWNvbnMiLCBudWxsLCAhIXRoaXMuZWxlbWVudC5maW5kKCAiLnVpLWljb24iICkubGVuZ3RoICk7DQoNCgkJLy8gSW5pdGlhbGl6ZSBuZXN0ZWQgbWVudXMNCgkJbmV3U3VibWVudXMgPSBzdWJtZW51cy5maWx0ZXIoICI6bm90KC51aS1tZW51KSIgKQ0KCQkJLmhpZGUoKQ0KCQkJLmF0dHIoIHsNCgkJCQlyb2xlOiB0aGlzLm9wdGlvbnMucm9sZSwNCgkJCQkiYXJpYS1oaWRkZW4iOiAidHJ1ZSIsDQoJCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiDQoJCQl9ICkNCgkJCS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQl2YXIgbWVudSA9ICQoIHRoaXMgKSwNCgkJCQkJaXRlbSA9IG1lbnUucHJldigpLA0KCQkJCQlzdWJtZW51Q2FyZXQgPSAkKCAiPHNwYW4+IiApLmRhdGEoICJ1aS1tZW51LXN1Ym1lbnUtY2FyZXQiLCB0cnVlICk7DQoNCgkJCQl0aGF0Ll9hZGRDbGFzcyggc3VibWVudUNhcmV0LCAidWktbWVudS1pY29uIiwgInVpLWljb24gIiArIGljb24gKTsNCgkJCQlpdGVtDQoJCQkJCS5hdHRyKCAiYXJpYS1oYXNwb3B1cCIsICJ0cnVlIiApDQoJCQkJCS5wcmVwZW5kKCBzdWJtZW51Q2FyZXQgKTsNCgkJCQltZW51LmF0dHIoICJhcmlhLWxhYmVsbGVkYnkiLCBpdGVtLmF0dHIoICJpZCIgKSApOw0KCQkJfSApOw0KDQoJCXRoaXMuX2FkZENsYXNzKCBuZXdTdWJtZW51cywgInVpLW1lbnUiLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWZyb250IiApOw0KDQoJCW1lbnVzID0gc3VibWVudXMuYWRkKCB0aGlzLmVsZW1lbnQgKTsNCgkJaXRlbXMgPSBtZW51cy5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKTsNCg0KCQkvLyBJbml0aWFsaXplIG1lbnUtaXRlbXMgY29udGFpbmluZyBzcGFjZXMgYW5kL29yIGRhc2hlcyBvbmx5IGFzIGRpdmlkZXJzDQoJCWl0ZW1zLm5vdCggIi51aS1tZW51LWl0ZW0iICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgaXRlbSA9ICQoIHRoaXMgKTsNCgkJCWlmICggdGhhdC5faXNEaXZpZGVyKCBpdGVtICkgKSB7DQoJCQkJdGhhdC5fYWRkQ2xhc3MoIGl0ZW0sICJ1aS1tZW51LWRpdmlkZXIiLCAidWktd2lkZ2V0LWNvbnRlbnQiICk7DQoJCQl9DQoJCX0gKTsNCg0KCQkvLyBEb24ndCByZWZyZXNoIGxpc3QgaXRlbXMgdGhhdCBhcmUgYWxyZWFkeSBhZGFwdGVkDQoJCW5ld0l0ZW1zID0gaXRlbXMubm90KCAiLnVpLW1lbnUtaXRlbSwgLnVpLW1lbnUtZGl2aWRlciIgKTsNCgkJbmV3V3JhcHBlcnMgPSBuZXdJdGVtcy5jaGlsZHJlbigpDQoJCQkubm90KCAiLnVpLW1lbnUiICkNCgkJCQkudW5pcXVlSWQoKQ0KCQkJCS5hdHRyKCB7DQoJCQkJCXRhYkluZGV4OiAtMSwNCgkJCQkJcm9sZTogdGhpcy5faXRlbVJvbGUoKQ0KCQkJCX0gKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIG5ld0l0ZW1zLCAidWktbWVudS1pdGVtIiApDQoJCQkuX2FkZENsYXNzKCBuZXdXcmFwcGVycywgInVpLW1lbnUtaXRlbS13cmFwcGVyIiApOw0KDQoJCS8vIEFkZCBhcmlhLWRpc2FibGVkIGF0dHJpYnV0ZSB0byBhbnkgZGlzYWJsZWQgbWVudSBpdGVtDQoJCWl0ZW1zLmZpbHRlciggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKS5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsICJ0cnVlIiApOw0KDQoJCS8vIElmIHRoZSBhY3RpdmUgaXRlbSBoYXMgYmVlbiByZW1vdmVkLCBibHVyIHRoZSBtZW51DQoJCWlmICggdGhpcy5hY3RpdmUgJiYgISQuY29udGFpbnMoIHRoaXMuZWxlbWVudFsgMCBdLCB0aGlzLmFjdGl2ZVsgMCBdICkgKSB7DQoJCQl0aGlzLmJsdXIoKTsNCgkJfQ0KCX0sDQoNCglfaXRlbVJvbGU6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gew0KCQkJbWVudTogIm1lbnVpdGVtIiwNCgkJCWxpc3Rib3g6ICJvcHRpb24iDQoJCX1bIHRoaXMub3B0aW9ucy5yb2xlIF07DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImljb25zIiApIHsNCgkJCXZhciBpY29ucyA9IHRoaXMuZWxlbWVudC5maW5kKCAiLnVpLW1lbnUtaWNvbiIgKTsNCgkJCXRoaXMuX3JlbW92ZUNsYXNzKCBpY29ucywgbnVsbCwgdGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUgKQ0KCQkJCS5fYWRkQ2xhc3MoIGljb25zLCBudWxsLCB2YWx1ZS5zdWJtZW51ICk7DQoJCX0NCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCgl9LA0KDQoJX3NldE9wdGlvbkRpc2FibGVkOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXRoaXMuX3N1cGVyKCB2YWx1ZSApOw0KDQoJCXRoaXMuZWxlbWVudC5hdHRyKCAiYXJpYS1kaXNhYmxlZCIsIFN0cmluZyggdmFsdWUgKSApOw0KCQl0aGlzLl90b2dnbGVDbGFzcyggbnVsbCwgInVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApOw0KCX0sDQoNCglmb2N1czogZnVuY3Rpb24oIGV2ZW50LCBpdGVtICkgew0KCQl2YXIgbmVzdGVkLCBmb2N1c2VkLCBhY3RpdmVQYXJlbnQ7DQoJCXRoaXMuYmx1ciggZXZlbnQsIGV2ZW50ICYmIGV2ZW50LnR5cGUgPT09ICJmb2N1cyIgKTsNCg0KCQl0aGlzLl9zY3JvbGxJbnRvVmlldyggaXRlbSApOw0KDQoJCXRoaXMuYWN0aXZlID0gaXRlbS5maXJzdCgpOw0KDQoJCWZvY3VzZWQgPSB0aGlzLmFjdGl2ZS5jaGlsZHJlbiggIi51aS1tZW51LWl0ZW0td3JhcHBlciIgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIGZvY3VzZWQsIG51bGwsICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoNCgkJLy8gT25seSB1cGRhdGUgYXJpYS1hY3RpdmVkZXNjZW5kYW50IGlmIHRoZXJlJ3MgYSByb2xlDQoJCS8vIG90aGVyd2lzZSB3ZSBhc3N1bWUgZm9jdXMgaXMgbWFuYWdlZCBlbHNld2hlcmUNCgkJaWYgKCB0aGlzLm9wdGlvbnMucm9sZSApIHsNCgkJCXRoaXMuZWxlbWVudC5hdHRyKCAiYXJpYS1hY3RpdmVkZXNjZW5kYW50IiwgZm9jdXNlZC5hdHRyKCAiaWQiICkgKTsNCgkJfQ0KDQoJCS8vIEhpZ2hsaWdodCBhY3RpdmUgcGFyZW50IG1lbnUgaXRlbSwgaWYgYW55DQoJCWFjdGl2ZVBhcmVudCA9IHRoaXMuYWN0aXZlDQoJCQkucGFyZW50KCkNCgkJCQkuY2xvc2VzdCggIi51aS1tZW51LWl0ZW0iICkNCgkJCQkJLmNoaWxkcmVuKCAiLnVpLW1lbnUtaXRlbS13cmFwcGVyIiApOw0KCQl0aGlzLl9hZGRDbGFzcyggYWN0aXZlUGFyZW50LCBudWxsLCAidWktc3RhdGUtYWN0aXZlIiApOw0KDQoJCWlmICggZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gImtleWRvd24iICkgew0KCQkJdGhpcy5fY2xvc2UoKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5fY2xvc2UoKTsNCgkJCX0sIHRoaXMuZGVsYXkgKTsNCgkJfQ0KDQoJCW5lc3RlZCA9IGl0ZW0uY2hpbGRyZW4oICIudWktbWVudSIgKTsNCgkJaWYgKCBuZXN0ZWQubGVuZ3RoICYmIGV2ZW50ICYmICggL15tb3VzZS8udGVzdCggZXZlbnQudHlwZSApICkgKSB7DQoJCQl0aGlzLl9zdGFydE9wZW5pbmcoIG5lc3RlZCApOw0KCQl9DQoJCXRoaXMuYWN0aXZlTWVudSA9IGl0ZW0ucGFyZW50KCk7DQoNCgkJdGhpcy5fdHJpZ2dlciggImZvY3VzIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICk7DQoJfSwNCg0KCV9zY3JvbGxJbnRvVmlldzogZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCXZhciBib3JkZXJUb3AsIHBhZGRpbmdUb3AsIG9mZnNldCwgc2Nyb2xsLCBlbGVtZW50SGVpZ2h0LCBpdGVtSGVpZ2h0Ow0KCQlpZiAoIHRoaXMuX2hhc1Njcm9sbCgpICkgew0KCQkJYm9yZGVyVG9wID0gcGFyc2VGbG9hdCggJC5jc3MoIHRoaXMuYWN0aXZlTWVudVsgMCBdLCAiYm9yZGVyVG9wV2lkdGgiICkgKSB8fCAwOw0KCQkJcGFkZGluZ1RvcCA9IHBhcnNlRmxvYXQoICQuY3NzKCB0aGlzLmFjdGl2ZU1lbnVbIDAgXSwgInBhZGRpbmdUb3AiICkgKSB8fCAwOw0KCQkJb2Zmc2V0ID0gaXRlbS5vZmZzZXQoKS50b3AgLSB0aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wIC0gYm9yZGVyVG9wIC0gcGFkZGluZ1RvcDsNCgkJCXNjcm9sbCA9IHRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKTsNCgkJCWVsZW1lbnRIZWlnaHQgPSB0aGlzLmFjdGl2ZU1lbnUuaGVpZ2h0KCk7DQoJCQlpdGVtSGVpZ2h0ID0gaXRlbS5vdXRlckhlaWdodCgpOw0KDQoJCQlpZiAoIG9mZnNldCA8IDAgKSB7DQoJCQkJdGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcCggc2Nyb2xsICsgb2Zmc2V0ICk7DQoJCQl9IGVsc2UgaWYgKCBvZmZzZXQgKyBpdGVtSGVpZ2h0ID4gZWxlbWVudEhlaWdodCApIHsNCgkJCQl0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKCBzY3JvbGwgKyBvZmZzZXQgLSBlbGVtZW50SGVpZ2h0ICsgaXRlbUhlaWdodCApOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCWJsdXI6IGZ1bmN0aW9uKCBldmVudCwgZnJvbUZvY3VzICkgew0KCQlpZiAoICFmcm9tRm9jdXMgKSB7DQoJCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJfQ0KDQoJCWlmICggIXRoaXMuYWN0aXZlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuYWN0aXZlLmNoaWxkcmVuKCAiLnVpLW1lbnUtaXRlbS13cmFwcGVyIiApLA0KCQkJbnVsbCwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAiYmx1ciIsIGV2ZW50LCB7IGl0ZW06IHRoaXMuYWN0aXZlIH0gKTsNCgkJdGhpcy5hY3RpdmUgPSBudWxsOw0KCX0sDQoNCglfc3RhcnRPcGVuaW5nOiBmdW5jdGlvbiggc3VibWVudSApIHsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoNCgkJLy8gRG9uJ3Qgb3BlbiBpZiBhbHJlYWR5IG9wZW4gZml4ZXMgYSBGaXJlZm94IGJ1ZyB0aGF0IGNhdXNlZCBhIC41IHBpeGVsDQoJCS8vIHNoaWZ0IGluIHRoZSBzdWJtZW51IHBvc2l0aW9uIHdoZW4gbW91c2luZyBvdmVyIHRoZSBjYXJldCBpY29uDQoJCWlmICggc3VibWVudS5hdHRyKCAiYXJpYS1oaWRkZW4iICkgIT09ICJ0cnVlIiApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQl0aGlzLl9jbG9zZSgpOw0KCQkJdGhpcy5fb3Blbiggc3VibWVudSApOw0KCQl9LCB0aGlzLmRlbGF5ICk7DQoJfSwNCg0KCV9vcGVuOiBmdW5jdGlvbiggc3VibWVudSApIHsNCgkJdmFyIHBvc2l0aW9uID0gJC5leHRlbmQoIHsNCgkJCW9mOiB0aGlzLmFjdGl2ZQ0KCQl9LCB0aGlzLm9wdGlvbnMucG9zaXRpb24gKTsNCg0KCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJdGhpcy5lbGVtZW50LmZpbmQoICIudWktbWVudSIgKS5ub3QoIHN1Ym1lbnUucGFyZW50cyggIi51aS1tZW51IiApICkNCgkJCS5oaWRlKCkNCgkJCS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAidHJ1ZSIgKTsNCg0KCQlzdWJtZW51DQoJCQkuc2hvdygpDQoJCQkucmVtb3ZlQXR0ciggImFyaWEtaGlkZGVuIiApDQoJCQkuYXR0ciggImFyaWEtZXhwYW5kZWQiLCAidHJ1ZSIgKQ0KCQkJLnBvc2l0aW9uKCBwb3NpdGlvbiApOw0KCX0sDQoNCgljb2xsYXBzZUFsbDogZnVuY3Rpb24oIGV2ZW50LCBhbGwgKSB7DQoJCWNsZWFyVGltZW91dCggdGhpcy50aW1lciApOw0KCQl0aGlzLnRpbWVyID0gdGhpcy5fZGVsYXkoIGZ1bmN0aW9uKCkgew0KDQoJCQkvLyBJZiB3ZSB3ZXJlIHBhc3NlZCBhbiBldmVudCwgbG9vayBmb3IgdGhlIHN1Ym1lbnUgdGhhdCBjb250YWlucyB0aGUgZXZlbnQNCgkJCXZhciBjdXJyZW50TWVudSA9IGFsbCA/IHRoaXMuZWxlbWVudCA6DQoJCQkJJCggZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggdGhpcy5lbGVtZW50LmZpbmQoICIudWktbWVudSIgKSApOw0KDQoJCQkvLyBJZiB3ZSBmb3VuZCBubyB2YWxpZCBzdWJtZW51IGFuY2VzdG9yLCB1c2UgdGhlIG1haW4gbWVudSB0byBjbG9zZSBhbGwNCgkJCS8vIHN1YiBtZW51cyBhbnl3YXkNCgkJCWlmICggIWN1cnJlbnRNZW51Lmxlbmd0aCApIHsNCgkJCQljdXJyZW50TWVudSA9IHRoaXMuZWxlbWVudDsNCgkJCX0NCg0KCQkJdGhpcy5fY2xvc2UoIGN1cnJlbnRNZW51ICk7DQoNCgkJCXRoaXMuYmx1ciggZXZlbnQgKTsNCg0KCQkJLy8gV29yayBhcm91bmQgYWN0aXZlIGl0ZW0gc3RheWluZyBhY3RpdmUgYWZ0ZXIgbWVudSBpcyBibHVycmVkDQoJCQl0aGlzLl9yZW1vdmVDbGFzcyggY3VycmVudE1lbnUuZmluZCggIi51aS1zdGF0ZS1hY3RpdmUiICksIG51bGwsICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoNCgkJCXRoaXMuYWN0aXZlTWVudSA9IGN1cnJlbnRNZW51Ow0KCQl9LCB0aGlzLmRlbGF5ICk7DQoJfSwNCg0KCS8vIFdpdGggbm8gYXJndW1lbnRzLCBjbG9zZXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgbWVudSAtIGlmIG5vdGhpbmcgaXMgYWN0aXZlDQoJLy8gaXQgY2xvc2VzIGFsbCBtZW51cy4gIElmIHBhc3NlZCBhbiBhcmd1bWVudCwgaXQgd2lsbCBzZWFyY2ggZm9yIG1lbnVzIEJFTE9XDQoJX2Nsb3NlOiBmdW5jdGlvbiggc3RhcnRNZW51ICkgew0KCQlpZiAoICFzdGFydE1lbnUgKSB7DQoJCQlzdGFydE1lbnUgPSB0aGlzLmFjdGl2ZSA/IHRoaXMuYWN0aXZlLnBhcmVudCgpIDogdGhpcy5lbGVtZW50Ow0KCQl9DQoNCgkJc3RhcnRNZW51LmZpbmQoICIudWktbWVudSIgKQ0KCQkJLmhpZGUoKQ0KCQkJLmF0dHIoICJhcmlhLWhpZGRlbiIsICJ0cnVlIiApDQoJCQkuYXR0ciggImFyaWEtZXhwYW5kZWQiLCAiZmFsc2UiICk7DQoJfSwNCg0KCV9jbG9zZU9uRG9jdW1lbnRDbGljazogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlyZXR1cm4gISQoIGV2ZW50LnRhcmdldCApLmNsb3Nlc3QoICIudWktbWVudSIgKS5sZW5ndGg7DQoJfSwNCg0KCV9pc0RpdmlkZXI6IGZ1bmN0aW9uKCBpdGVtICkgew0KDQoJCS8vIE1hdGNoIGh5cGhlbiwgZW0gZGFzaCwgZW4gZGFzaA0KCQlyZXR1cm4gIS9bXlwtXHUyMDE0XHUyMDEzXHNdLy50ZXN0KCBpdGVtLnRleHQoKSApOw0KCX0sDQoNCgljb2xsYXBzZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgbmV3SXRlbSA9IHRoaXMuYWN0aXZlICYmDQoJCQl0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KCAiLnVpLW1lbnUtaXRlbSIsIHRoaXMuZWxlbWVudCApOw0KCQlpZiAoIG5ld0l0ZW0gJiYgbmV3SXRlbS5sZW5ndGggKSB7DQoJCQl0aGlzLl9jbG9zZSgpOw0KCQkJdGhpcy5mb2N1cyggZXZlbnQsIG5ld0l0ZW0gKTsNCgkJfQ0KCX0sDQoNCglleHBhbmQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG5ld0l0ZW0gPSB0aGlzLmFjdGl2ZSAmJg0KCQkJdGhpcy5hY3RpdmUNCgkJCQkuY2hpbGRyZW4oICIudWktbWVudSAiICkNCgkJCQkJLmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApDQoJCQkJCQkuZmlyc3QoKTsNCg0KCQlpZiAoIG5ld0l0ZW0gJiYgbmV3SXRlbS5sZW5ndGggKSB7DQoJCQl0aGlzLl9vcGVuKCBuZXdJdGVtLnBhcmVudCgpICk7DQoNCgkJCS8vIERlbGF5IHNvIEZpcmVmb3ggd2lsbCBub3QgaGlkZSBhY3RpdmVkZXNjZW5kYW50IGNoYW5nZSBpbiBleHBhbmRpbmcgc3VibWVudSBmcm9tIEFUDQoJCQl0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5mb2N1cyggZXZlbnQsIG5ld0l0ZW0gKTsNCgkJCX0gKTsNCgkJfQ0KCX0sDQoNCgluZXh0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXRoaXMuX21vdmUoICJuZXh0IiwgImZpcnN0IiwgZXZlbnQgKTsNCgl9LA0KDQoJcHJldmlvdXM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdGhpcy5fbW92ZSggInByZXYiLCAibGFzdCIsIGV2ZW50ICk7DQoJfSwNCg0KCWlzRmlyc3RJdGVtOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuYWN0aXZlICYmICF0aGlzLmFjdGl2ZS5wcmV2QWxsKCAiLnVpLW1lbnUtaXRlbSIgKS5sZW5ndGg7DQoJfSwNCg0KCWlzTGFzdEl0ZW06IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5hY3RpdmUgJiYgIXRoaXMuYWN0aXZlLm5leHRBbGwoICIudWktbWVudS1pdGVtIiApLmxlbmd0aDsNCgl9LA0KDQoJX21vdmU6IGZ1bmN0aW9uKCBkaXJlY3Rpb24sIGZpbHRlciwgZXZlbnQgKSB7DQoJCXZhciBuZXh0Ow0KCQlpZiAoIHRoaXMuYWN0aXZlICkgew0KCQkJaWYgKCBkaXJlY3Rpb24gPT09ICJmaXJzdCIgfHwgZGlyZWN0aW9uID09PSAibGFzdCIgKSB7DQoJCQkJbmV4dCA9IHRoaXMuYWN0aXZlDQoJCQkJCVsgZGlyZWN0aW9uID09PSAiZmlyc3QiID8gInByZXZBbGwiIDogIm5leHRBbGwiIF0oICIudWktbWVudS1pdGVtIiApDQoJCQkJCS5lcSggLTEgKTsNCgkJCX0gZWxzZSB7DQoJCQkJbmV4dCA9IHRoaXMuYWN0aXZlDQoJCQkJCVsgZGlyZWN0aW9uICsgIkFsbCIgXSggIi51aS1tZW51LWl0ZW0iICkNCgkJCQkJLmVxKCAwICk7DQoJCQl9DQoJCX0NCgkJaWYgKCAhbmV4dCB8fCAhbmV4dC5sZW5ndGggfHwgIXRoaXMuYWN0aXZlICkgew0KCQkJbmV4dCA9IHRoaXMuYWN0aXZlTWVudS5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKVsgZmlsdGVyIF0oKTsNCgkJfQ0KDQoJCXRoaXMuZm9jdXMoIGV2ZW50LCBuZXh0ICk7DQoJfSwNCg0KCW5leHRQYWdlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBpdGVtLCBiYXNlLCBoZWlnaHQ7DQoNCgkJaWYgKCAhdGhpcy5hY3RpdmUgKSB7DQoJCQl0aGlzLm5leHQoIGV2ZW50ICk7DQoJCQlyZXR1cm47DQoJCX0NCgkJaWYgKCB0aGlzLmlzTGFzdEl0ZW0oKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuX2hhc1Njcm9sbCgpICkgew0KCQkJYmFzZSA9IHRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcDsNCgkJCWhlaWdodCA9IHRoaXMuZWxlbWVudC5oZWlnaHQoKTsNCgkJCXRoaXMuYWN0aXZlLm5leHRBbGwoICIudWktbWVudS1pdGVtIiApLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCWl0ZW0gPSAkKCB0aGlzICk7DQoJCQkJcmV0dXJuIGl0ZW0ub2Zmc2V0KCkudG9wIC0gYmFzZSAtIGhlaWdodCA8IDA7DQoJCQl9ICk7DQoNCgkJCXRoaXMuZm9jdXMoIGV2ZW50LCBpdGVtICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmZvY3VzKCBldmVudCwgdGhpcy5hY3RpdmVNZW51LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApDQoJCQkJWyAhdGhpcy5hY3RpdmUgPyAiZmlyc3QiIDogImxhc3QiIF0oKSApOw0KCQl9DQoJfSwNCg0KCXByZXZpb3VzUGFnZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgaXRlbSwgYmFzZSwgaGVpZ2h0Ow0KCQlpZiAoICF0aGlzLmFjdGl2ZSApIHsNCgkJCXRoaXMubmV4dCggZXZlbnQgKTsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuaXNGaXJzdEl0ZW0oKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlpZiAoIHRoaXMuX2hhc1Njcm9sbCgpICkgew0KCQkJYmFzZSA9IHRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcDsNCgkJCWhlaWdodCA9IHRoaXMuZWxlbWVudC5oZWlnaHQoKTsNCgkJCXRoaXMuYWN0aXZlLnByZXZBbGwoICIudWktbWVudS1pdGVtIiApLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCWl0ZW0gPSAkKCB0aGlzICk7DQoJCQkJcmV0dXJuIGl0ZW0ub2Zmc2V0KCkudG9wIC0gYmFzZSArIGhlaWdodCA+IDA7DQoJCQl9ICk7DQoNCgkJCXRoaXMuZm9jdXMoIGV2ZW50LCBpdGVtICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmZvY3VzKCBldmVudCwgdGhpcy5hY3RpdmVNZW51LmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApLmZpcnN0KCkgKTsNCgkJfQ0KCX0sDQoNCglfaGFzU2Nyb2xsOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpIDwgdGhpcy5lbGVtZW50LnByb3AoICJzY3JvbGxIZWlnaHQiICk7DQoJfSwNCg0KCXNlbGVjdDogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCS8vIFRPRE86IEl0IHNob3VsZCBuZXZlciBiZSBwb3NzaWJsZSB0byBub3QgaGF2ZSBhbiBhY3RpdmUgaXRlbSBhdCB0aGlzDQoJCS8vIHBvaW50LCBidXQgdGhlIHRlc3RzIGRvbid0IHRyaWdnZXIgbW91c2VlbnRlciBiZWZvcmUgY2xpY2suDQoJCXRoaXMuYWN0aXZlID0gdGhpcy5hY3RpdmUgfHwgJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1tZW51LWl0ZW0iICk7DQoJCXZhciB1aSA9IHsgaXRlbTogdGhpcy5hY3RpdmUgfTsNCgkJaWYgKCAhdGhpcy5hY3RpdmUuaGFzKCAiLnVpLW1lbnUiICkubGVuZ3RoICkgew0KCQkJdGhpcy5jb2xsYXBzZUFsbCggZXZlbnQsIHRydWUgKTsNCgkJfQ0KCQl0aGlzLl90cmlnZ2VyKCAic2VsZWN0IiwgZXZlbnQsIHVpICk7DQoJfSwNCg0KCV9maWx0ZXJNZW51SXRlbXM6IGZ1bmN0aW9uKCBjaGFyYWN0ZXIgKSB7DQoJCXZhciBlc2NhcGVkQ2hhcmFjdGVyID0gY2hhcmFjdGVyLnJlcGxhY2UoIC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCAiXFwkJiIgKSwNCgkJCXJlZ2V4ID0gbmV3IFJlZ0V4cCggIl4iICsgZXNjYXBlZENoYXJhY3RlciwgImkiICk7DQoNCgkJcmV0dXJuIHRoaXMuYWN0aXZlTWVudQ0KCQkJLmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcyApDQoNCgkJCQkvLyBPbmx5IG1hdGNoIG9uIGl0ZW1zLCBub3QgZGl2aWRlcnMgb3Igb3RoZXIgY29udGVudCAoIzEwNTcxKQ0KCQkJCS5maWx0ZXIoICIudWktbWVudS1pdGVtIiApDQoJCQkJCS5maWx0ZXIoIGZ1bmN0aW9uKCkgew0KCQkJCQkJcmV0dXJuIHJlZ2V4LnRlc3QoDQoJCQkJCQkJJC50cmltKCAkKCB0aGlzICkuY2hpbGRyZW4oICIudWktbWVudS1pdGVtLXdyYXBwZXIiICkudGV4dCgpICkgKTsNCgkJCQkJfSApOw0KCX0NCn0gKTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBBdXRvY29tcGxldGUgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IEF1dG9jb21wbGV0ZQ0KLy8+Pmdyb3VwOiBXaWRnZXRzDQovLz4+ZGVzY3JpcHRpb246IExpc3RzIHN1Z2dlc3RlZCB3b3JkcyBhcyB0aGUgdXNlciBpcyB0eXBpbmcuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vYXV0b2NvbXBsZXRlLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2F1dG9jb21wbGV0ZS8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9jb3JlLmNzcw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2F1dG9jb21wbGV0ZS5jc3MNCi8vPj5jc3MudGhlbWU6IC4uLy4uL3RoZW1lcy9iYXNlL3RoZW1lLmNzcw0KDQoNCg0KJC53aWRnZXQoICJ1aS5hdXRvY29tcGxldGUiLCB7DQoJdmVyc2lvbjogIjEuMTIuMSIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8aW5wdXQ+IiwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiBudWxsLA0KCQlhdXRvRm9jdXM6IGZhbHNlLA0KCQlkZWxheTogMzAwLA0KCQltaW5MZW5ndGg6IDEsDQoJCXBvc2l0aW9uOiB7DQoJCQlteTogImxlZnQgdG9wIiwNCgkJCWF0OiAibGVmdCBib3R0b20iLA0KCQkJY29sbGlzaW9uOiAibm9uZSINCgkJfSwNCgkJc291cmNlOiBudWxsLA0KDQoJCS8vIENhbGxiYWNrcw0KCQljaGFuZ2U6IG51bGwsDQoJCWNsb3NlOiBudWxsLA0KCQlmb2N1czogbnVsbCwNCgkJb3BlbjogbnVsbCwNCgkJcmVzcG9uc2U6IG51bGwsDQoJCXNlYXJjaDogbnVsbCwNCgkJc2VsZWN0OiBudWxsDQoJfSwNCg0KCXJlcXVlc3RJbmRleDogMCwNCglwZW5kaW5nOiAwLA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoNCgkJLy8gU29tZSBicm93c2VycyBvbmx5IHJlcGVhdCBrZXlkb3duIGV2ZW50cywgbm90IGtleXByZXNzIGV2ZW50cywNCgkJLy8gc28gd2UgdXNlIHRoZSBzdXBwcmVzc0tleVByZXNzIGZsYWcgdG8gZGV0ZXJtaW5lIGlmIHdlJ3ZlIGFscmVhZHkNCgkJLy8gaGFuZGxlZCB0aGUga2V5ZG93biBldmVudC4gIzcyNjkNCgkJLy8gVW5mb3J0dW5hdGVseSB0aGUgY29kZSBmb3IgJiBpbiBrZXlwcmVzcyBpcyB0aGUgc2FtZSBhcyB0aGUgdXAgYXJyb3csDQoJCS8vIHNvIHdlIHVzZSB0aGUgc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCBmbGFnIHRvIGF2b2lkIGhhbmRsaW5nIGtleXByZXNzDQoJCS8vIGV2ZW50cyB3aGVuIHdlIGtub3cgdGhlIGtleWRvd24gZXZlbnQgd2FzIHVzZWQgdG8gbW9kaWZ5IHRoZQ0KCQkvLyBzZWFyY2ggdGVybS4gIzc3OTkNCgkJdmFyIHN1cHByZXNzS2V5UHJlc3MsIHN1cHByZXNzS2V5UHJlc3NSZXBlYXQsIHN1cHByZXNzSW5wdXQsDQoJCQlub2RlTmFtZSA9IHRoaXMuZWxlbWVudFsgMCBdLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksDQoJCQlpc1RleHRhcmVhID0gbm9kZU5hbWUgPT09ICJ0ZXh0YXJlYSIsDQoJCQlpc0lucHV0ID0gbm9kZU5hbWUgPT09ICJpbnB1dCI7DQoNCgkJLy8gVGV4dGFyZWFzIGFyZSBhbHdheXMgbXVsdGktbGluZQ0KCQkvLyBJbnB1dHMgYXJlIGFsd2F5cyBzaW5nbGUtbGluZSwgZXZlbiBpZiBpbnNpZGUgYSBjb250ZW50RWRpdGFibGUgZWxlbWVudA0KCQkvLyBJRSBhbHNvIHRyZWF0cyBpbnB1dHMgYXMgY29udGVudEVkaXRhYmxlDQoJCS8vIEFsbCBvdGhlciBlbGVtZW50IHR5cGVzIGFyZSBkZXRlcm1pbmVkIGJ5IHdoZXRoZXIgb3Igbm90IHRoZXkncmUgY29udGVudEVkaXRhYmxlDQoJCXRoaXMuaXNNdWx0aUxpbmUgPSBpc1RleHRhcmVhIHx8ICFpc0lucHV0ICYmIHRoaXMuX2lzQ29udGVudEVkaXRhYmxlKCB0aGlzLmVsZW1lbnQgKTsNCg0KCQl0aGlzLnZhbHVlTWV0aG9kID0gdGhpcy5lbGVtZW50WyBpc1RleHRhcmVhIHx8IGlzSW5wdXQgPyAidmFsIiA6ICJ0ZXh0IiBdOw0KCQl0aGlzLmlzTmV3TWVudSA9IHRydWU7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoICJ1aS1hdXRvY29tcGxldGUtaW5wdXQiICk7DQoJCXRoaXMuZWxlbWVudC5hdHRyKCAiYXV0b2NvbXBsZXRlIiwgIm9mZiIgKTsNCg0KCQl0aGlzLl9vbiggdGhpcy5lbGVtZW50LCB7DQoJCQlrZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLmVsZW1lbnQucHJvcCggInJlYWRPbmx5IiApICkgew0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJc3VwcHJlc3NJbnB1dCA9IHRydWU7DQoJCQkJCXN1cHByZXNzS2V5UHJlc3NSZXBlYXQgPSB0cnVlOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KDQoJCQkJc3VwcHJlc3NLZXlQcmVzcyA9IGZhbHNlOw0KCQkJCXN1cHByZXNzSW5wdXQgPSBmYWxzZTsNCgkJCQlzdXBwcmVzc0tleVByZXNzUmVwZWF0ID0gZmFsc2U7DQoJCQkJdmFyIGtleUNvZGUgPSAkLnVpLmtleUNvZGU7DQoJCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlIGtleUNvZGUuUEFHRV9VUDoNCgkJCQkJc3VwcHJlc3NLZXlQcmVzcyA9IHRydWU7DQoJCQkJCXRoaXMuX21vdmUoICJwcmV2aW91c1BhZ2UiLCBldmVudCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlIGtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fbW92ZSggIm5leHRQYWdlIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlVQOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fa2V5RXZlbnQoICJwcmV2aW91cyIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2Uga2V5Q29kZS5ET1dOOg0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gdHJ1ZTsNCgkJCQkJdGhpcy5fa2V5RXZlbnQoICJuZXh0IiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLkVOVEVSOg0KDQoJCQkJCS8vIHdoZW4gbWVudSBpcyBvcGVuIGFuZCBoYXMgZm9jdXMNCgkJCQkJaWYgKCB0aGlzLm1lbnUuYWN0aXZlICkgew0KDQoJCQkJCQkvLyAjNjA1NSAtIE9wZXJhIHN0aWxsIGFsbG93cyB0aGUga2V5cHJlc3MgdG8gb2NjdXINCgkJCQkJCS8vIHdoaWNoIGNhdXNlcyBmb3JtcyB0byBzdWJtaXQNCgkJCQkJCXN1cHByZXNzS2V5UHJlc3MgPSB0cnVlOw0KCQkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJCXRoaXMubWVudS5zZWxlY3QoIGV2ZW50ICk7DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlRBQjoNCgkJCQkJaWYgKCB0aGlzLm1lbnUuYWN0aXZlICkgew0KCQkJCQkJdGhpcy5tZW51LnNlbGVjdCggZXZlbnQgKTsNCgkJCQkJfQ0KCQkJCQlicmVhazsNCgkJCQljYXNlIGtleUNvZGUuRVNDQVBFOg0KCQkJCQlpZiAoIHRoaXMubWVudS5lbGVtZW50LmlzKCAiOnZpc2libGUiICkgKSB7DQoJCQkJCQlpZiAoICF0aGlzLmlzTXVsdGlMaW5lICkgew0KCQkJCQkJCXRoaXMuX3ZhbHVlKCB0aGlzLnRlcm0gKTsNCgkJCQkJCX0NCgkJCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoNCgkJCQkJCS8vIERpZmZlcmVudCBicm93c2VycyBoYXZlIGRpZmZlcmVudCBkZWZhdWx0IGJlaGF2aW9yIGZvciBlc2NhcGUNCgkJCQkJCS8vIFNpbmdsZSBwcmVzcyBjYW4gbWVhbiB1bmRvIG9yIGNsZWFyDQoJCQkJCQkvLyBEb3VibGUgcHJlc3MgaW4gSUUgbWVhbnMgY2xlYXIgdGhlIHdob2xlIGZvcm0NCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0NCgkJCQkJYnJlYWs7DQoJCQkJZGVmYXVsdDoNCgkJCQkJc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCA9IHRydWU7DQoNCgkJCQkJLy8gc2VhcmNoIHRpbWVvdXQgc2hvdWxkIGJlIHRyaWdnZXJlZCBiZWZvcmUgdGhlIGlucHV0IHZhbHVlIGlzIGNoYW5nZWQNCgkJCQkJdGhpcy5fc2VhcmNoVGltZW91dCggZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJfSwNCgkJCWtleXByZXNzOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCBzdXBwcmVzc0tleVByZXNzICkgew0KCQkJCQlzdXBwcmVzc0tleVByZXNzID0gZmFsc2U7DQoJCQkJCWlmICggIXRoaXMuaXNNdWx0aUxpbmUgfHwgdGhpcy5tZW51LmVsZW1lbnQuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCX0NCgkJCQkJcmV0dXJuOw0KCQkJCX0NCgkJCQlpZiAoIHN1cHByZXNzS2V5UHJlc3NSZXBlYXQgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQkvLyBSZXBsaWNhdGUgc29tZSBrZXkgaGFuZGxlcnMgdG8gYWxsb3cgdGhlbSB0byByZXBlYXQgaW4gRmlyZWZveCBhbmQgT3BlcmENCgkJCQl2YXIga2V5Q29kZSA9ICQudWkua2V5Q29kZTsNCgkJCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJCWNhc2Uga2V5Q29kZS5QQUdFX1VQOg0KCQkJCQl0aGlzLl9tb3ZlKCAicHJldmlvdXNQYWdlIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlBBR0VfRE9XTjoNCgkJCQkJdGhpcy5fbW92ZSggIm5leHRQYWdlIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLlVQOg0KCQkJCQl0aGlzLl9rZXlFdmVudCggInByZXZpb3VzIiwgZXZlbnQgKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSBrZXlDb2RlLkRPV046DQoJCQkJCXRoaXMuX2tleUV2ZW50KCAibmV4dCIsIGV2ZW50ICk7DQoJCQkJCWJyZWFrOw0KCQkJCX0NCgkJCX0sDQoJCQlpbnB1dDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggc3VwcHJlc3NJbnB1dCApIHsNCgkJCQkJc3VwcHJlc3NJbnB1dCA9IGZhbHNlOw0KCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQlyZXR1cm47DQoJCQkJfQ0KCQkJCXRoaXMuX3NlYXJjaFRpbWVvdXQoIGV2ZW50ICk7DQoJCQl9LA0KCQkJZm9jdXM6IGZ1bmN0aW9uKCkgew0KCQkJCXRoaXMuc2VsZWN0ZWRJdGVtID0gbnVsbDsNCgkJCQl0aGlzLnByZXZpb3VzID0gdGhpcy5fdmFsdWUoKTsNCgkJCX0sDQoJCQlibHVyOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJaWYgKCB0aGlzLmNhbmNlbEJsdXIgKSB7DQoJCQkJCWRlbGV0ZSB0aGlzLmNhbmNlbEJsdXI7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQljbGVhclRpbWVvdXQoIHRoaXMuc2VhcmNoaW5nICk7DQoJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCQl0aGlzLl9jaGFuZ2UoIGV2ZW50ICk7DQoJCQl9DQoJCX0gKTsNCg0KCQl0aGlzLl9pbml0U291cmNlKCk7DQoJCXRoaXMubWVudSA9ICQoICI8dWw+IiApDQoJCQkuYXBwZW5kVG8oIHRoaXMuX2FwcGVuZFRvKCkgKQ0KCQkJLm1lbnUoIHsNCg0KCQkJCS8vIGRpc2FibGUgQVJJQSBzdXBwb3J0LCB0aGUgbGl2ZSByZWdpb24gdGFrZXMgY2FyZSBvZiB0aGF0DQoJCQkJcm9sZTogbnVsbA0KCQkJfSApDQoJCQkuaGlkZSgpDQoJCQkubWVudSggImluc3RhbmNlIiApOw0KDQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLm1lbnUuZWxlbWVudCwgInVpLWF1dG9jb21wbGV0ZSIsICJ1aS1mcm9udCIgKTsNCgkJdGhpcy5fb24oIHRoaXMubWVudS5lbGVtZW50LCB7DQoJCQltb3VzZWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQkJCS8vIHByZXZlbnQgbW92aW5nIGZvY3VzIG91dCBvZiB0aGUgdGV4dCBmaWVsZA0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJCQkvLyBJRSBkb2Vzbid0IHByZXZlbnQgbW92aW5nIGZvY3VzIGV2ZW4gd2l0aCBldmVudC5wcmV2ZW50RGVmYXVsdCgpDQoJCQkJLy8gc28gd2Ugc2V0IGEgZmxhZyB0byBrbm93IHdoZW4gd2Ugc2hvdWxkIGlnbm9yZSB0aGUgYmx1ciBldmVudA0KCQkJCXRoaXMuY2FuY2VsQmx1ciA9IHRydWU7DQoJCQkJdGhpcy5fZGVsYXkoIGZ1bmN0aW9uKCkgew0KCQkJCQlkZWxldGUgdGhpcy5jYW5jZWxCbHVyOw0KDQoJCQkJCS8vIFN1cHBvcnQ6IElFIDggb25seQ0KCQkJCQkvLyBSaWdodCBjbGlja2luZyBhIG1lbnUgaXRlbSBvciBzZWxlY3RpbmcgdGV4dCBmcm9tIHRoZSBtZW51IGl0ZW1zIHdpbGwNCgkJCQkJLy8gcmVzdWx0IGluIGZvY3VzIG1vdmluZyBvdXQgb2YgdGhlIGlucHV0LiBIb3dldmVyLCB3ZSd2ZSBhbHJlYWR5IHJlY2VpdmVkDQoJCQkJCS8vIGFuZCBpZ25vcmVkIHRoZSBibHVyIGV2ZW50IGJlY2F1c2Ugb2YgdGhlIGNhbmNlbEJsdXIgZmxhZyBzZXQgYWJvdmUuIFNvDQoJCQkJCS8vIHdlIHJlc3RvcmUgZm9jdXMgdG8gZW5zdXJlIHRoYXQgdGhlIG1lbnUgY2xvc2VzIHByb3Blcmx5IGJhc2VkIG9uIHRoZSB1c2VyJ3MNCgkJCQkJLy8gbmV4dCBhY3Rpb25zLg0KCQkJCQlpZiAoIHRoaXMuZWxlbWVudFsgMCBdICE9PSAkLnVpLnNhZmVBY3RpdmVFbGVtZW50KCB0aGlzLmRvY3VtZW50WyAwIF0gKSApIHsNCgkJCQkJCXRoaXMuZWxlbWVudC50cmlnZ2VyKCAiZm9jdXMiICk7DQoJCQkJCX0NCgkJCQl9ICk7DQoJCQl9LA0KCQkJbWVudWZvY3VzOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBsYWJlbCwgaXRlbTsNCg0KCQkJCS8vIHN1cHBvcnQ6IEZpcmVmb3gNCgkJCQkvLyBQcmV2ZW50IGFjY2lkZW50YWwgYWN0aXZhdGlvbiBvZiBtZW51IGl0ZW1zIGluIEZpcmVmb3ggKCM3MDI0ICM5MTE4KQ0KCQkJCWlmICggdGhpcy5pc05ld01lbnUgKSB7DQoJCQkJCXRoaXMuaXNOZXdNZW51ID0gZmFsc2U7DQoJCQkJCWlmICggZXZlbnQub3JpZ2luYWxFdmVudCAmJiAvXm1vdXNlLy50ZXN0KCBldmVudC5vcmlnaW5hbEV2ZW50LnR5cGUgKSApIHsNCgkJCQkJCXRoaXMubWVudS5ibHVyKCk7DQoNCgkJCQkJCXRoaXMuZG9jdW1lbnQub25lKCAibW91c2Vtb3ZlIiwgZnVuY3Rpb24oKSB7DQoJCQkJCQkJJCggZXZlbnQudGFyZ2V0ICkudHJpZ2dlciggZXZlbnQub3JpZ2luYWxFdmVudCApOw0KCQkJCQkJfSApOw0KDQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQlpdGVtID0gdWkuaXRlbS5kYXRhKCAidWktYXV0b2NvbXBsZXRlLWl0ZW0iICk7DQoJCQkJaWYgKCBmYWxzZSAhPT0gdGhpcy5fdHJpZ2dlciggImZvY3VzIiwgZXZlbnQsIHsgaXRlbTogaXRlbSB9ICkgKSB7DQoNCgkJCQkJLy8gdXNlIHZhbHVlIHRvIG1hdGNoIHdoYXQgd2lsbCBlbmQgdXAgaW4gdGhlIGlucHV0LCBpZiBpdCB3YXMgYSBrZXkgZXZlbnQNCgkJCQkJaWYgKCBldmVudC5vcmlnaW5hbEV2ZW50ICYmIC9ea2V5Ly50ZXN0KCBldmVudC5vcmlnaW5hbEV2ZW50LnR5cGUgKSApIHsNCgkJCQkJCXRoaXMuX3ZhbHVlKCBpdGVtLnZhbHVlICk7DQoJCQkJCX0NCgkJCQl9DQoNCgkJCQkvLyBBbm5vdW5jZSB0aGUgdmFsdWUgaW4gdGhlIGxpdmVSZWdpb24NCgkJCQlsYWJlbCA9IHVpLml0ZW0uYXR0ciggImFyaWEtbGFiZWwiICkgfHwgaXRlbS52YWx1ZTsNCgkJCQlpZiAoIGxhYmVsICYmICQudHJpbSggbGFiZWwgKS5sZW5ndGggKSB7DQoJCQkJCXRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKTsNCgkJCQkJJCggIjxkaXY+IiApLnRleHQoIGxhYmVsICkuYXBwZW5kVG8oIHRoaXMubGl2ZVJlZ2lvbiApOw0KCQkJCX0NCgkJCX0sDQoJCQltZW51c2VsZWN0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBpdGVtID0gdWkuaXRlbS5kYXRhKCAidWktYXV0b2NvbXBsZXRlLWl0ZW0iICksDQoJCQkJCXByZXZpb3VzID0gdGhpcy5wcmV2aW91czsNCg0KCQkJCS8vIE9ubHkgdHJpZ2dlciB3aGVuIGZvY3VzIHdhcyBsb3N0IChjbGljayBvbiBtZW51KQ0KCQkJCWlmICggdGhpcy5lbGVtZW50WyAwIF0gIT09ICQudWkuc2FmZUFjdGl2ZUVsZW1lbnQoIHRoaXMuZG9jdW1lbnRbIDAgXSApICkgew0KCQkJCQl0aGlzLmVsZW1lbnQudHJpZ2dlciggImZvY3VzIiApOw0KCQkJCQl0aGlzLnByZXZpb3VzID0gcHJldmlvdXM7DQoNCgkJCQkJLy8gIzYxMDkgLSBJRSB0cmlnZ2VycyB0d28gZm9jdXMgZXZlbnRzIGFuZCB0aGUgc2Vjb25kDQoJCQkJCS8vIGlzIGFzeW5jaHJvbm91cywgc28gd2UgbmVlZCB0byByZXNldCB0aGUgcHJldmlvdXMNCgkJCQkJLy8gdGVybSBzeW5jaHJvbm91c2x5IGFuZCBhc3luY2hyb25vdXNseSA6LSgNCgkJCQkJdGhpcy5fZGVsYXkoIGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQkJdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtOw0KCQkJCQl9ICk7DQoJCQkJfQ0KDQoJCQkJaWYgKCBmYWxzZSAhPT0gdGhpcy5fdHJpZ2dlciggInNlbGVjdCIsIGV2ZW50LCB7IGl0ZW06IGl0ZW0gfSApICkgew0KCQkJCQl0aGlzLl92YWx1ZSggaXRlbS52YWx1ZSApOw0KCQkJCX0NCg0KCQkJCS8vIHJlc2V0IHRoZSB0ZXJtIGFmdGVyIHRoZSBzZWxlY3QgZXZlbnQNCgkJCQkvLyB0aGlzIGFsbG93cyBjdXN0b20gc2VsZWN0IGhhbmRsaW5nIHRvIHdvcmsgcHJvcGVybHkNCgkJCQl0aGlzLnRlcm0gPSB0aGlzLl92YWx1ZSgpOw0KDQoJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCQl0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07DQoJCQl9DQoJCX0gKTsNCg0KCQl0aGlzLmxpdmVSZWdpb24gPSAkKCAiPGRpdj4iLCB7DQoJCQlyb2xlOiAic3RhdHVzIiwNCgkJCSJhcmlhLWxpdmUiOiAiYXNzZXJ0aXZlIiwNCgkJCSJhcmlhLXJlbGV2YW50IjogImFkZGl0aW9ucyINCgkJfSApDQoJCQkuYXBwZW5kVG8oIHRoaXMuZG9jdW1lbnRbIDAgXS5ib2R5ICk7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMubGl2ZVJlZ2lvbiwgbnVsbCwgInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIgKTsNCg0KCQkvLyBUdXJuaW5nIG9mZiBhdXRvY29tcGxldGUgcHJldmVudHMgdGhlIGJyb3dzZXIgZnJvbSByZW1lbWJlcmluZyB0aGUNCgkJLy8gdmFsdWUgd2hlbiBuYXZpZ2F0aW5nIHRocm91Z2ggaGlzdG9yeSwgc28gd2UgcmUtZW5hYmxlIGF1dG9jb21wbGV0ZQ0KCQkvLyBpZiB0aGUgcGFnZSBpcyB1bmxvYWRlZCBiZWZvcmUgdGhlIHdpZGdldCBpcyBkZXN0cm95ZWQuICM3NzkwDQoJCXRoaXMuX29uKCB0aGlzLndpbmRvdywgew0KCQkJYmVmb3JldW5sb2FkOiBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQXR0ciggImF1dG9jb21wbGV0ZSIgKTsNCgkJCX0NCgkJfSApOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCWNsZWFyVGltZW91dCggdGhpcy5zZWFyY2hpbmcgKTsNCgkJdGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoICJhdXRvY29tcGxldGUiICk7DQoJCXRoaXMubWVudS5lbGVtZW50LnJlbW92ZSgpOw0KCQl0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCQlpZiAoIGtleSA9PT0gInNvdXJjZSIgKSB7DQoJCQl0aGlzLl9pbml0U291cmNlKCk7DQoJCX0NCgkJaWYgKCBrZXkgPT09ICJhcHBlbmRUbyIgKSB7DQoJCQl0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KCQl9DQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICYmIHZhbHVlICYmIHRoaXMueGhyICkgew0KCQkJdGhpcy54aHIuYWJvcnQoKTsNCgkJfQ0KCX0sDQoNCglfaXNFdmVudFRhcmdldEluV2lkZ2V0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBtZW51RWxlbWVudCA9IHRoaXMubWVudS5lbGVtZW50WyAwIF07DQoNCgkJcmV0dXJuIGV2ZW50LnRhcmdldCA9PT0gdGhpcy5lbGVtZW50WyAwIF0gfHwNCgkJCWV2ZW50LnRhcmdldCA9PT0gbWVudUVsZW1lbnQgfHwNCgkJCSQuY29udGFpbnMoIG1lbnVFbGVtZW50LCBldmVudC50YXJnZXQgKTsNCgl9LA0KDQoJX2Nsb3NlT25DbGlja091dHNpZGU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5faXNFdmVudFRhcmdldEluV2lkZ2V0KCBldmVudCApICkgew0KCQkJdGhpcy5jbG9zZSgpOw0KCQl9DQoJfSwNCg0KCV9hcHBlbmRUbzogZnVuY3Rpb24oKSB7DQoJCXZhciBlbGVtZW50ID0gdGhpcy5vcHRpb25zLmFwcGVuZFRvOw0KDQoJCWlmICggZWxlbWVudCApIHsNCgkJCWVsZW1lbnQgPSBlbGVtZW50LmpxdWVyeSB8fCBlbGVtZW50Lm5vZGVUeXBlID8NCgkJCQkkKCBlbGVtZW50ICkgOg0KCQkJCXRoaXMuZG9jdW1lbnQuZmluZCggZWxlbWVudCApLmVxKCAwICk7DQoJCX0NCg0KCQlpZiAoICFlbGVtZW50IHx8ICFlbGVtZW50WyAwIF0gKSB7DQoJCQllbGVtZW50ID0gdGhpcy5lbGVtZW50LmNsb3Nlc3QoICIudWktZnJvbnQsIGRpYWxvZyIgKTsNCgkJfQ0KDQoJCWlmICggIWVsZW1lbnQubGVuZ3RoICkgew0KCQkJZWxlbWVudCA9IHRoaXMuZG9jdW1lbnRbIDAgXS5ib2R5Ow0KCQl9DQoNCgkJcmV0dXJuIGVsZW1lbnQ7DQoJfSwNCg0KCV9pbml0U291cmNlOiBmdW5jdGlvbigpIHsNCgkJdmFyIGFycmF5LCB1cmwsDQoJCQl0aGF0ID0gdGhpczsNCgkJaWYgKCAkLmlzQXJyYXkoIHRoaXMub3B0aW9ucy5zb3VyY2UgKSApIHsNCgkJCWFycmF5ID0gdGhpcy5vcHRpb25zLnNvdXJjZTsNCgkJCXRoaXMuc291cmNlID0gZnVuY3Rpb24oIHJlcXVlc3QsIHJlc3BvbnNlICkgew0KCQkJCXJlc3BvbnNlKCAkLnVpLmF1dG9jb21wbGV0ZS5maWx0ZXIoIGFycmF5LCByZXF1ZXN0LnRlcm0gKSApOw0KCQkJfTsNCgkJfSBlbHNlIGlmICggdHlwZW9mIHRoaXMub3B0aW9ucy5zb3VyY2UgPT09ICJzdHJpbmciICkgew0KCQkJdXJsID0gdGhpcy5vcHRpb25zLnNvdXJjZTsNCgkJCXRoaXMuc291cmNlID0gZnVuY3Rpb24oIHJlcXVlc3QsIHJlc3BvbnNlICkgew0KCQkJCWlmICggdGhhdC54aHIgKSB7DQoJCQkJCXRoYXQueGhyLmFib3J0KCk7DQoJCQkJfQ0KCQkJCXRoYXQueGhyID0gJC5hamF4KCB7DQoJCQkJCXVybDogdXJsLA0KCQkJCQlkYXRhOiByZXF1ZXN0LA0KCQkJCQlkYXRhVHlwZTogImpzb24iLA0KCQkJCQlzdWNjZXNzOiBmdW5jdGlvbiggZGF0YSApIHsNCgkJCQkJCXJlc3BvbnNlKCBkYXRhICk7DQoJCQkJCX0sDQoJCQkJCWVycm9yOiBmdW5jdGlvbigpIHsNCgkJCQkJCXJlc3BvbnNlKCBbXSApOw0KCQkJCQl9DQoJCQkJfSApOw0KCQkJfTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuc291cmNlID0gdGhpcy5vcHRpb25zLnNvdXJjZTsNCgkJfQ0KCX0sDQoNCglfc2VhcmNoVGltZW91dDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQljbGVhclRpbWVvdXQoIHRoaXMuc2VhcmNoaW5nICk7DQoJCXRoaXMuc2VhcmNoaW5nID0gdGhpcy5fZGVsYXkoIGZ1bmN0aW9uKCkgew0KDQoJCQkvLyBTZWFyY2ggaWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLCBvciBpZiB0aGUgdXNlciByZXR5cGVzIHRoZSBzYW1lIHZhbHVlIChzZWUgIzc0MzQpDQoJCQl2YXIgZXF1YWxWYWx1ZXMgPSB0aGlzLnRlcm0gPT09IHRoaXMuX3ZhbHVlKCksDQoJCQkJbWVudVZpc2libGUgPSB0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApLA0KCQkJCW1vZGlmaWVyS2V5ID0gZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCBldmVudC5zaGlmdEtleTsNCg0KCQkJaWYgKCAhZXF1YWxWYWx1ZXMgfHwgKCBlcXVhbFZhbHVlcyAmJiAhbWVudVZpc2libGUgJiYgIW1vZGlmaWVyS2V5ICkgKSB7DQoJCQkJdGhpcy5zZWxlY3RlZEl0ZW0gPSBudWxsOw0KCQkJCXRoaXMuc2VhcmNoKCBudWxsLCBldmVudCApOw0KCQkJfQ0KCQl9LCB0aGlzLm9wdGlvbnMuZGVsYXkgKTsNCgl9LA0KDQoJc2VhcmNoOiBmdW5jdGlvbiggdmFsdWUsIGV2ZW50ICkgew0KCQl2YWx1ZSA9IHZhbHVlICE9IG51bGwgPyB2YWx1ZSA6IHRoaXMuX3ZhbHVlKCk7DQoNCgkJLy8gQWx3YXlzIHNhdmUgdGhlIGFjdHVhbCB2YWx1ZSwgbm90IHRoZSBvbmUgcGFzc2VkIGFzIGFuIGFyZ3VtZW50DQoJCXRoaXMudGVybSA9IHRoaXMuX3ZhbHVlKCk7DQoNCgkJaWYgKCB2YWx1ZS5sZW5ndGggPCB0aGlzLm9wdGlvbnMubWluTGVuZ3RoICkgew0KCQkJcmV0dXJuIHRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMuX3RyaWdnZXIoICJzZWFyY2giLCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXJldHVybiB0aGlzLl9zZWFyY2goIHZhbHVlICk7DQoJfSwNCg0KCV9zZWFyY2g6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdGhpcy5wZW5kaW5nKys7DQoJCXRoaXMuX2FkZENsYXNzKCAidWktYXV0b2NvbXBsZXRlLWxvYWRpbmciICk7DQoJCXRoaXMuY2FuY2VsU2VhcmNoID0gZmFsc2U7DQoNCgkJdGhpcy5zb3VyY2UoIHsgdGVybTogdmFsdWUgfSwgdGhpcy5fcmVzcG9uc2UoKSApOw0KCX0sDQoNCglfcmVzcG9uc2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaW5kZXggPSArK3RoaXMucmVxdWVzdEluZGV4Ow0KDQoJCXJldHVybiAkLnByb3h5KCBmdW5jdGlvbiggY29udGVudCApIHsNCgkJCWlmICggaW5kZXggPT09IHRoaXMucmVxdWVzdEluZGV4ICkgew0KCQkJCXRoaXMuX19yZXNwb25zZSggY29udGVudCApOw0KCQkJfQ0KDQoJCQl0aGlzLnBlbmRpbmctLTsNCgkJCWlmICggIXRoaXMucGVuZGluZyApIHsNCgkJCQl0aGlzLl9yZW1vdmVDbGFzcyggInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiApOw0KCQkJfQ0KCQl9LCB0aGlzICk7DQoJfSwNCg0KCV9fcmVzcG9uc2U6IGZ1bmN0aW9uKCBjb250ZW50ICkgew0KCQlpZiAoIGNvbnRlbnQgKSB7DQoJCQljb250ZW50ID0gdGhpcy5fbm9ybWFsaXplKCBjb250ZW50ICk7DQoJCX0NCgkJdGhpcy5fdHJpZ2dlciggInJlc3BvbnNlIiwgbnVsbCwgeyBjb250ZW50OiBjb250ZW50IH0gKTsNCgkJaWYgKCAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggJiYgIXRoaXMuY2FuY2VsU2VhcmNoICkgew0KCQkJdGhpcy5fc3VnZ2VzdCggY29udGVudCApOw0KCQkJdGhpcy5fdHJpZ2dlciggIm9wZW4iICk7DQoJCX0gZWxzZSB7DQoNCgkJCS8vIHVzZSAuX2Nsb3NlKCkgaW5zdGVhZCBvZiAuY2xvc2UoKSBzbyB3ZSBkb24ndCBjYW5jZWwgZnV0dXJlIHNlYXJjaGVzDQoJCQl0aGlzLl9jbG9zZSgpOw0KCQl9DQoJfSwNCg0KCWNsb3NlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXRoaXMuY2FuY2VsU2VhcmNoID0gdHJ1ZTsNCgkJdGhpcy5fY2xvc2UoIGV2ZW50ICk7DQoJfSwNCg0KCV9jbG9zZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCS8vIFJlbW92ZSB0aGUgaGFuZGxlciB0aGF0IGNsb3NlcyB0aGUgbWVudSBvbiBvdXRzaWRlIGNsaWNrcw0KCQl0aGlzLl9vZmYoIHRoaXMuZG9jdW1lbnQsICJtb3VzZWRvd24iICk7DQoNCgkJaWYgKCB0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApICkgew0KCQkJdGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpOw0KCQkJdGhpcy5tZW51LmJsdXIoKTsNCgkJCXRoaXMuaXNOZXdNZW51ID0gdHJ1ZTsNCgkJCXRoaXMuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50ICk7DQoJCX0NCgl9LA0KDQoJX2NoYW5nZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQlpZiAoIHRoaXMucHJldmlvdXMgIT09IHRoaXMuX3ZhbHVlKCkgKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHsgaXRlbTogdGhpcy5zZWxlY3RlZEl0ZW0gfSApOw0KCQl9DQoJfSwNCg0KCV9ub3JtYWxpemU6IGZ1bmN0aW9uKCBpdGVtcyApIHsNCg0KCQkvLyBhc3N1bWUgYWxsIGl0ZW1zIGhhdmUgdGhlIHJpZ2h0IGZvcm1hdCB3aGVuIHRoZSBmaXJzdCBpdGVtIGlzIGNvbXBsZXRlDQoJCWlmICggaXRlbXMubGVuZ3RoICYmIGl0ZW1zWyAwIF0ubGFiZWwgJiYgaXRlbXNbIDAgXS52YWx1ZSApIHsNCgkJCXJldHVybiBpdGVtczsNCgkJfQ0KCQlyZXR1cm4gJC5tYXAoIGl0ZW1zLCBmdW5jdGlvbiggaXRlbSApIHsNCgkJCWlmICggdHlwZW9mIGl0ZW0gPT09ICJzdHJpbmciICkgew0KCQkJCXJldHVybiB7DQoJCQkJCWxhYmVsOiBpdGVtLA0KCQkJCQl2YWx1ZTogaXRlbQ0KCQkJCX07DQoJCQl9DQoJCQlyZXR1cm4gJC5leHRlbmQoIHt9LCBpdGVtLCB7DQoJCQkJbGFiZWw6IGl0ZW0ubGFiZWwgfHwgaXRlbS52YWx1ZSwNCgkJCQl2YWx1ZTogaXRlbS52YWx1ZSB8fCBpdGVtLmxhYmVsDQoJCQl9ICk7DQoJCX0gKTsNCgl9LA0KDQoJX3N1Z2dlc3Q6IGZ1bmN0aW9uKCBpdGVtcyApIHsNCgkJdmFyIHVsID0gdGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTsNCgkJdGhpcy5fcmVuZGVyTWVudSggdWwsIGl0ZW1zICk7DQoJCXRoaXMuaXNOZXdNZW51ID0gdHJ1ZTsNCgkJdGhpcy5tZW51LnJlZnJlc2goKTsNCg0KCQkvLyBTaXplIGFuZCBwb3NpdGlvbiBtZW51DQoJCXVsLnNob3coKTsNCgkJdGhpcy5fcmVzaXplTWVudSgpOw0KCQl1bC5wb3NpdGlvbiggJC5leHRlbmQoIHsNCgkJCW9mOiB0aGlzLmVsZW1lbnQNCgkJfSwgdGhpcy5vcHRpb25zLnBvc2l0aW9uICkgKTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5hdXRvRm9jdXMgKSB7DQoJCQl0aGlzLm1lbnUubmV4dCgpOw0KCQl9DQoNCgkJLy8gTGlzdGVuIGZvciBpbnRlcmFjdGlvbnMgb3V0c2lkZSBvZiB0aGUgd2lkZ2V0ICgjNjY0MikNCgkJdGhpcy5fb24oIHRoaXMuZG9jdW1lbnQsIHsNCgkJCW1vdXNlZG93bjogIl9jbG9zZU9uQ2xpY2tPdXRzaWRlIg0KCQl9ICk7DQoJfSwNCg0KCV9yZXNpemVNZW51OiBmdW5jdGlvbigpIHsNCgkJdmFyIHVsID0gdGhpcy5tZW51LmVsZW1lbnQ7DQoJCXVsLm91dGVyV2lkdGgoIE1hdGgubWF4KA0KDQoJCQkvLyBGaXJlZm94IHdyYXBzIGxvbmcgdGV4dCAocG9zc2libHkgYSByb3VuZGluZyBidWcpDQoJCQkvLyBzbyB3ZSBhZGQgMXB4IHRvIGF2b2lkIHRoZSB3cmFwcGluZyAoIzc1MTMpDQoJCQl1bC53aWR0aCggIiIgKS5vdXRlcldpZHRoKCkgKyAxLA0KCQkJdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKQ0KCQkpICk7DQoJfSwNCg0KCV9yZW5kZXJNZW51OiBmdW5jdGlvbiggdWwsIGl0ZW1zICkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoJCSQuZWFjaCggaXRlbXMsIGZ1bmN0aW9uKCBpbmRleCwgaXRlbSApIHsNCgkJCXRoYXQuX3JlbmRlckl0ZW1EYXRhKCB1bCwgaXRlbSApOw0KCQl9ICk7DQoJfSwNCg0KCV9yZW5kZXJJdGVtRGF0YTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQlyZXR1cm4gdGhpcy5fcmVuZGVySXRlbSggdWwsIGl0ZW0gKS5kYXRhKCAidWktYXV0b2NvbXBsZXRlLWl0ZW0iLCBpdGVtICk7DQoJfSwNCg0KCV9yZW5kZXJJdGVtOiBmdW5jdGlvbiggdWwsIGl0ZW0gKSB7DQoJCXJldHVybiAkKCAiPGxpPiIgKQ0KCQkJLmFwcGVuZCggJCggIjxkaXY+IiApLnRleHQoIGl0ZW0ubGFiZWwgKSApDQoJCQkuYXBwZW5kVG8oIHVsICk7DQoJfSwNCg0KCV9tb3ZlOiBmdW5jdGlvbiggZGlyZWN0aW9uLCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5tZW51LmVsZW1lbnQuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCXRoaXMuc2VhcmNoKCBudWxsLCBldmVudCApOw0KCQkJcmV0dXJuOw0KCQl9DQoJCWlmICggdGhpcy5tZW51LmlzRmlyc3RJdGVtKCkgJiYgL15wcmV2aW91cy8udGVzdCggZGlyZWN0aW9uICkgfHwNCgkJCQl0aGlzLm1lbnUuaXNMYXN0SXRlbSgpICYmIC9ebmV4dC8udGVzdCggZGlyZWN0aW9uICkgKSB7DQoNCgkJCWlmICggIXRoaXMuaXNNdWx0aUxpbmUgKSB7DQoJCQkJdGhpcy5fdmFsdWUoIHRoaXMudGVybSApOw0KCQkJfQ0KDQoJCQl0aGlzLm1lbnUuYmx1cigpOw0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMubWVudVsgZGlyZWN0aW9uIF0oIGV2ZW50ICk7DQoJfSwNCg0KCXdpZGdldDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLm1lbnUuZWxlbWVudDsNCgl9LA0KDQoJX3ZhbHVlOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMudmFsdWVNZXRob2QuYXBwbHkoIHRoaXMuZWxlbWVudCwgYXJndW1lbnRzICk7DQoJfSwNCg0KCV9rZXlFdmVudDogZnVuY3Rpb24oIGtleUV2ZW50LCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5pc011bHRpTGluZSB8fCB0aGlzLm1lbnUuZWxlbWVudC5pcyggIjp2aXNpYmxlIiApICkgew0KCQkJdGhpcy5fbW92ZSgga2V5RXZlbnQsIGV2ZW50ICk7DQoNCgkJCS8vIFByZXZlbnRzIG1vdmluZyBjdXJzb3IgdG8gYmVnaW5uaW5nL2VuZCBvZiB0aGUgdGV4dCBmaWVsZCBpbiBzb21lIGJyb3dzZXJzDQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQl9DQoJfSwNCg0KCS8vIFN1cHBvcnQ6IENocm9tZSA8PTUwDQoJLy8gV2Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCB1c2UgdGhpcy5lbGVtZW50LnByb3AoICJpc0NvbnRlbnRFZGl0YWJsZSIgKQ0KCS8vIGJ1dCBoaWRkZW4gZWxlbWVudHMgYWx3YXlzIHJlcG9ydCBmYWxzZSBpbiBDaHJvbWUuDQoJLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTMxMzA4Mg0KCV9pc0NvbnRlbnRFZGl0YWJsZTogZnVuY3Rpb24oIGVsZW1lbnQgKSB7DQoJCWlmICggIWVsZW1lbnQubGVuZ3RoICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJdmFyIGVkaXRhYmxlID0gZWxlbWVudC5wcm9wKCAiY29udGVudEVkaXRhYmxlIiApOw0KDQoJCWlmICggZWRpdGFibGUgPT09ICJpbmhlcml0IiApIHsNCgkJICByZXR1cm4gdGhpcy5faXNDb250ZW50RWRpdGFibGUoIGVsZW1lbnQucGFyZW50KCkgKTsNCgkJfQ0KDQoJCXJldHVybiBlZGl0YWJsZSA9PT0gInRydWUiOw0KCX0NCn0gKTsNCg0KJC5leHRlbmQoICQudWkuYXV0b2NvbXBsZXRlLCB7DQoJZXNjYXBlUmVnZXg6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJcmV0dXJuIHZhbHVlLnJlcGxhY2UoIC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCAiXFwkJiIgKTsNCgl9LA0KCWZpbHRlcjogZnVuY3Rpb24oIGFycmF5LCB0ZXJtICkgew0KCQl2YXIgbWF0Y2hlciA9IG5ldyBSZWdFeHAoICQudWkuYXV0b2NvbXBsZXRlLmVzY2FwZVJlZ2V4KCB0ZXJtICksICJpIiApOw0KCQlyZXR1cm4gJC5ncmVwKCBhcnJheSwgZnVuY3Rpb24oIHZhbHVlICkgew0KCQkJcmV0dXJuIG1hdGNoZXIudGVzdCggdmFsdWUubGFiZWwgfHwgdmFsdWUudmFsdWUgfHwgdmFsdWUgKTsNCgkJfSApOw0KCX0NCn0gKTsNCg0KLy8gTGl2ZSByZWdpb24gZXh0ZW5zaW9uLCBhZGRpbmcgYSBgbWVzc2FnZXNgIG9wdGlvbg0KLy8gTk9URTogVGhpcyBpcyBhbiBleHBlcmltZW50YWwgQVBJLiBXZSBhcmUgc3RpbGwgaW52ZXN0aWdhdGluZw0KLy8gYSBmdWxsIHNvbHV0aW9uIGZvciBzdHJpbmcgbWFuaXB1bGF0aW9uIGFuZCBpbnRlcm5hdGlvbmFsaXphdGlvbi4NCiQud2lkZ2V0KCAidWkuYXV0b2NvbXBsZXRlIiwgJC51aS5hdXRvY29tcGxldGUsIHsNCglvcHRpb25zOiB7DQoJCW1lc3NhZ2VzOiB7DQoJCQlub1Jlc3VsdHM6ICJObyBzZWFyY2ggcmVzdWx0cy4iLA0KCQkJcmVzdWx0czogZnVuY3Rpb24oIGFtb3VudCApIHsNCgkJCQlyZXR1cm4gYW1vdW50ICsgKCBhbW91bnQgPiAxID8gIiByZXN1bHRzIGFyZSIgOiAiIHJlc3VsdCBpcyIgKSArDQoJCQkJCSIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4iOw0KCQkJfQ0KCQl9DQoJfSwNCg0KCV9fcmVzcG9uc2U6IGZ1bmN0aW9uKCBjb250ZW50ICkgew0KCQl2YXIgbWVzc2FnZTsNCgkJdGhpcy5fc3VwZXJBcHBseSggYXJndW1lbnRzICk7DQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkIHx8IHRoaXMuY2FuY2VsU2VhcmNoICkgew0KCQkJcmV0dXJuOw0KCQl9DQoJCWlmICggY29udGVudCAmJiBjb250ZW50Lmxlbmd0aCApIHsNCgkJCW1lc3NhZ2UgPSB0aGlzLm9wdGlvbnMubWVzc2FnZXMucmVzdWx0cyggY29udGVudC5sZW5ndGggKTsNCgkJfSBlbHNlIHsNCgkJCW1lc3NhZ2UgPSB0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzOw0KCQl9DQoJCXRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKTsNCgkJJCggIjxkaXY+IiApLnRleHQoIG1lc3NhZ2UgKS5hcHBlbmRUbyggdGhpcy5saXZlUmVnaW9uICk7DQoJfQ0KfSApOw0KDQp2YXIgd2lkZ2V0c0F1dG9jb21wbGV0ZSA9ICQudWkuYXV0b2NvbXBsZXRlOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIENvbnRyb2xncm91cCAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogQ29udHJvbGdyb3VwDQovLz4+Z3JvdXA6IFdpZGdldHMNCi8vPj5kZXNjcmlwdGlvbjogVmlzdWFsbHkgZ3JvdXBzIGZvcm0gY29udHJvbCB3aWRnZXRzDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vY29udHJvbGdyb3VwLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2NvbnRyb2xncm91cC8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9jb3JlLmNzcw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvbnRyb2xncm91cC5jc3MNCi8vPj5jc3MudGhlbWU6IC4uLy4uL3RoZW1lcy9iYXNlL3RoZW1lLmNzcw0KDQoNCnZhciBjb250cm9sZ3JvdXBDb3JuZXJSZWdleCA9IC91aS1jb3JuZXItKFthLXpdKXsyLDZ9L2c7DQoNCnZhciB3aWRnZXRzQ29udHJvbGdyb3VwID0gJC53aWRnZXQoICJ1aS5jb250cm9sZ3JvdXAiLCB7DQoJdmVyc2lvbjogIjEuMTIuMSIsDQoJZGVmYXVsdEVsZW1lbnQ6ICI8ZGl2PiIsDQoJb3B0aW9uczogew0KCQlkaXJlY3Rpb246ICJob3Jpem9udGFsIiwNCgkJZGlzYWJsZWQ6IG51bGwsDQoJCW9ubHlWaXNpYmxlOiB0cnVlLA0KCQlpdGVtczogew0KCQkJImJ1dHRvbiI6ICJpbnB1dFt0eXBlPWJ1dHRvbl0sIGlucHV0W3R5cGU9c3VibWl0XSwgaW5wdXRbdHlwZT1yZXNldF0sIGJ1dHRvbiwgYSIsDQoJCQkiY29udHJvbGdyb3VwTGFiZWwiOiAiLnVpLWNvbnRyb2xncm91cC1sYWJlbCIsDQoJCQkiY2hlY2tib3hyYWRpbyI6ICJpbnB1dFt0eXBlPSdjaGVja2JveCddLCBpbnB1dFt0eXBlPSdyYWRpbyddIiwNCgkJCSJzZWxlY3RtZW51IjogInNlbGVjdCIsDQoJCQkic3Bpbm5lciI6ICIudWktc3Bpbm5lci1pbnB1dCINCgkJfQ0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fZW5oYW5jZSgpOw0KCX0sDQoNCgkvLyBUbyBzdXBwb3J0IHRoZSBlbmhhbmNlZCBvcHRpb24gaW4galF1ZXJ5IE1vYmlsZSwgd2UgaXNvbGF0ZSBET00gbWFuaXB1bGF0aW9uDQoJX2VuaGFuY2U6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQuYXR0ciggInJvbGUiLCAidG9vbGJhciIgKTsNCgkJdGhpcy5yZWZyZXNoKCk7DQoJfSwNCg0KCV9kZXN0cm95OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fY2FsbENoaWxkTWV0aG9kKCAiZGVzdHJveSIgKTsNCgkJdGhpcy5jaGlsZFdpZGdldHMucmVtb3ZlRGF0YSggInVpLWNvbnRyb2xncm91cC1kYXRhIiApOw0KCQl0aGlzLmVsZW1lbnQucmVtb3ZlQXR0ciggInJvbGUiICk7DQoJCWlmICggdGhpcy5vcHRpb25zLml0ZW1zLmNvbnRyb2xncm91cExhYmVsICkgew0KCQkJdGhpcy5lbGVtZW50DQoJCQkJLmZpbmQoIHRoaXMub3B0aW9ucy5pdGVtcy5jb250cm9sZ3JvdXBMYWJlbCApDQoJCQkJLmZpbmQoICIudWktY29udHJvbGdyb3VwLWxhYmVsLWNvbnRlbnRzIiApDQoJCQkJLmNvbnRlbnRzKCkudW53cmFwKCk7DQoJCX0NCgl9LA0KDQoJX2luaXRXaWRnZXRzOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJY2hpbGRXaWRnZXRzID0gW107DQoNCgkJLy8gRmlyc3Qgd2UgaXRlcmF0ZSBvdmVyIGVhY2ggb2YgdGhlIGl0ZW1zIG9wdGlvbnMNCgkJJC5lYWNoKCB0aGlzLm9wdGlvbnMuaXRlbXMsIGZ1bmN0aW9uKCB3aWRnZXQsIHNlbGVjdG9yICkgew0KCQkJdmFyIGxhYmVsczsNCgkJCXZhciBvcHRpb25zID0ge307DQoNCgkJCS8vIE1ha2Ugc3VyZSB0aGUgd2lkZ2V0IGhhcyBhIHNlbGVjdG9yIHNldA0KCQkJaWYgKCAhc2VsZWN0b3IgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQlpZiAoIHdpZGdldCA9PT0gImNvbnRyb2xncm91cExhYmVsIiApIHsNCgkJCQlsYWJlbHMgPSB0aGF0LmVsZW1lbnQuZmluZCggc2VsZWN0b3IgKTsNCgkJCQlsYWJlbHMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJCXZhciBlbGVtZW50ID0gJCggdGhpcyApOw0KDQoJCQkJCWlmICggZWxlbWVudC5jaGlsZHJlbiggIi51aS1jb250cm9sZ3JvdXAtbGFiZWwtY29udGVudHMiICkubGVuZ3RoICkgew0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoJCQkJCWVsZW1lbnQuY29udGVudHMoKQ0KCQkJCQkJLndyYXBBbGwoICI8c3BhbiBjbGFzcz0ndWktY29udHJvbGdyb3VwLWxhYmVsLWNvbnRlbnRzJz48L3NwYW4+IiApOw0KCQkJCX0gKTsNCgkJCQl0aGF0Ll9hZGRDbGFzcyggbGFiZWxzLCBudWxsLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLXN0YXRlLWRlZmF1bHQiICk7DQoJCQkJY2hpbGRXaWRnZXRzID0gY2hpbGRXaWRnZXRzLmNvbmNhdCggbGFiZWxzLmdldCgpICk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQkvLyBNYWtlIHN1cmUgdGhlIHdpZGdldCBhY3R1YWxseSBleGlzdHMNCgkJCWlmICggISQuZm5bIHdpZGdldCBdICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJLy8gV2UgYXNzdW1lIGV2ZXJ5dGhpbmcgaXMgaW4gdGhlIG1pZGRsZSB0byBzdGFydCBiZWNhdXNlIHdlIGNhbid0IGRldGVybWluZQ0KCQkJLy8gZmlyc3QgLyBsYXN0IGVsZW1lbnRzIHVudGlsIGFsbCBlbmhhbmNtZW50cyBhcmUgZG9uZS4NCgkJCWlmICggdGhhdFsgIl8iICsgd2lkZ2V0ICsgIk9wdGlvbnMiIF0gKSB7DQoJCQkJb3B0aW9ucyA9IHRoYXRbICJfIiArIHdpZGdldCArICJPcHRpb25zIiBdKCAibWlkZGxlIiApOw0KCQkJfSBlbHNlIHsNCgkJCQlvcHRpb25zID0geyBjbGFzc2VzOiB7fSB9Ow0KCQkJfQ0KDQoJCQkvLyBGaW5kIGluc3RhbmNlcyBvZiB0aGlzIHdpZGdldCBpbnNpZGUgY29udHJvbGdyb3VwIGFuZCBpbml0IHRoZW0NCgkJCXRoYXQuZWxlbWVudA0KCQkJCS5maW5kKCBzZWxlY3RvciApDQoJCQkJLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCQl2YXIgZWxlbWVudCA9ICQoIHRoaXMgKTsNCgkJCQkJdmFyIGluc3RhbmNlID0gZWxlbWVudFsgd2lkZ2V0IF0oICJpbnN0YW5jZSIgKTsNCg0KCQkJCQkvLyBXZSBuZWVkIHRvIGNsb25lIHRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoaXMgdHlwZSBvZiB3aWRnZXQgdG8gYXZvaWQNCgkJCQkJLy8gcG9sbHV0aW5nIHRoZSB2YXJpYWJsZSBvcHRpb25zIHdoaWNoIGhhcyBhIHdpZGVyIHNjb3BlIHRoYW4gYSBzaW5nbGUgd2lkZ2V0Lg0KCQkJCQl2YXIgaW5zdGFuY2VPcHRpb25zID0gJC53aWRnZXQuZXh0ZW5kKCB7fSwgb3B0aW9ucyApOw0KDQoJCQkJCS8vIElmIHRoZSBidXR0b24gaXMgdGhlIGNoaWxkIG9mIGEgc3Bpbm5lciBpZ25vcmUgaXQNCgkJCQkJLy8gVE9ETzogRmluZCBhIG1vcmUgZ2VuZXJpYyBzb2x1dGlvbg0KCQkJCQlpZiAoIHdpZGdldCA9PT0gImJ1dHRvbiIgJiYgZWxlbWVudC5wYXJlbnQoICIudWktc3Bpbm5lciIgKS5sZW5ndGggKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCg0KCQkJCQkvLyBDcmVhdGUgdGhlIHdpZGdldCBpZiBpdCBkb2Vzbid0IGV4aXN0DQoJCQkJCWlmICggIWluc3RhbmNlICkgew0KCQkJCQkJaW5zdGFuY2UgPSBlbGVtZW50WyB3aWRnZXQgXSgpWyB3aWRnZXQgXSggImluc3RhbmNlIiApOw0KCQkJCQl9DQoJCQkJCWlmICggaW5zdGFuY2UgKSB7DQoJCQkJCQlpbnN0YW5jZU9wdGlvbnMuY2xhc3NlcyA9DQoJCQkJCQkJdGhhdC5fcmVzb2x2ZUNsYXNzZXNWYWx1ZXMoIGluc3RhbmNlT3B0aW9ucy5jbGFzc2VzLCBpbnN0YW5jZSApOw0KCQkJCQl9DQoJCQkJCWVsZW1lbnRbIHdpZGdldCBdKCBpbnN0YW5jZU9wdGlvbnMgKTsNCg0KCQkJCQkvLyBTdG9yZSBhbiBpbnN0YW5jZSBvZiB0aGUgY29udHJvbGdyb3VwIHRvIGJlIGFibGUgdG8gcmVmZXJlbmNlDQoJCQkJCS8vIGZyb20gdGhlIG91dGVybW9zdCBlbGVtZW50IGZvciBjaGFuZ2luZyBvcHRpb25zIGFuZCByZWZyZXNoDQoJCQkJCXZhciB3aWRnZXRFbGVtZW50ID0gZWxlbWVudFsgd2lkZ2V0IF0oICJ3aWRnZXQiICk7DQoJCQkJCSQuZGF0YSggd2lkZ2V0RWxlbWVudFsgMCBdLCAidWktY29udHJvbGdyb3VwLWRhdGEiLA0KCQkJCQkJaW5zdGFuY2UgPyBpbnN0YW5jZSA6IGVsZW1lbnRbIHdpZGdldCBdKCAiaW5zdGFuY2UiICkgKTsNCg0KCQkJCQljaGlsZFdpZGdldHMucHVzaCggd2lkZ2V0RWxlbWVudFsgMCBdICk7DQoJCQkJfSApOw0KCQl9ICk7DQoNCgkJdGhpcy5jaGlsZFdpZGdldHMgPSAkKCAkLnVuaXF1ZSggY2hpbGRXaWRnZXRzICkgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuY2hpbGRXaWRnZXRzLCAidWktY29udHJvbGdyb3VwLWl0ZW0iICk7DQoJfSwNCg0KCV9jYWxsQ2hpbGRNZXRob2Q6IGZ1bmN0aW9uKCBtZXRob2QgKSB7DQoJCXRoaXMuY2hpbGRXaWRnZXRzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJdmFyIGVsZW1lbnQgPSAkKCB0aGlzICksDQoJCQkJZGF0YSA9IGVsZW1lbnQuZGF0YSggInVpLWNvbnRyb2xncm91cC1kYXRhIiApOw0KCQkJaWYgKCBkYXRhICYmIGRhdGFbIG1ldGhvZCBdICkgew0KCQkJCWRhdGFbIG1ldGhvZCBdKCk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KDQoJX3VwZGF0ZUNvcm5lckNsYXNzOiBmdW5jdGlvbiggZWxlbWVudCwgcG9zaXRpb24gKSB7DQoJCXZhciByZW1vdmUgPSAidWktY29ybmVyLXRvcCB1aS1jb3JuZXItYm90dG9tIHVpLWNvcm5lci1sZWZ0IHVpLWNvcm5lci1yaWdodCB1aS1jb3JuZXItYWxsIjsNCgkJdmFyIGFkZCA9IHRoaXMuX2J1aWxkU2ltcGxlT3B0aW9ucyggcG9zaXRpb24sICJsYWJlbCIgKS5jbGFzc2VzLmxhYmVsOw0KDQoJCXRoaXMuX3JlbW92ZUNsYXNzKCBlbGVtZW50LCBudWxsLCByZW1vdmUgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIGVsZW1lbnQsIG51bGwsIGFkZCApOw0KCX0sDQoNCglfYnVpbGRTaW1wbGVPcHRpb25zOiBmdW5jdGlvbiggcG9zaXRpb24sIGtleSApIHsNCgkJdmFyIGRpcmVjdGlvbiA9IHRoaXMub3B0aW9ucy5kaXJlY3Rpb24gPT09ICJ2ZXJ0aWNhbCI7DQoJCXZhciByZXN1bHQgPSB7DQoJCQljbGFzc2VzOiB7fQ0KCQl9Ow0KCQlyZXN1bHQuY2xhc3Nlc1sga2V5IF0gPSB7DQoJCQkibWlkZGxlIjogIiIsDQoJCQkiZmlyc3QiOiAidWktY29ybmVyLSIgKyAoIGRpcmVjdGlvbiA/ICJ0b3AiIDogImxlZnQiICksDQoJCQkibGFzdCI6ICJ1aS1jb3JuZXItIiArICggZGlyZWN0aW9uID8gImJvdHRvbSIgOiAicmlnaHQiICksDQoJCQkib25seSI6ICJ1aS1jb3JuZXItYWxsIg0KCQl9WyBwb3NpdGlvbiBdOw0KDQoJCXJldHVybiByZXN1bHQ7DQoJfSwNCg0KCV9zcGlubmVyT3B0aW9uczogZnVuY3Rpb24oIHBvc2l0aW9uICkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMuX2J1aWxkU2ltcGxlT3B0aW9ucyggcG9zaXRpb24sICJ1aS1zcGlubmVyIiApOw0KDQoJCW9wdGlvbnMuY2xhc3Nlc1sgInVpLXNwaW5uZXItdXAiIF0gPSAiIjsNCgkJb3B0aW9ucy5jbGFzc2VzWyAidWktc3Bpbm5lci1kb3duIiBdID0gIiI7DQoNCgkJcmV0dXJuIG9wdGlvbnM7DQoJfSwNCg0KCV9idXR0b25PcHRpb25zOiBmdW5jdGlvbiggcG9zaXRpb24gKSB7DQoJCXJldHVybiB0aGlzLl9idWlsZFNpbXBsZU9wdGlvbnMoIHBvc2l0aW9uLCAidWktYnV0dG9uIiApOw0KCX0sDQoNCglfY2hlY2tib3hyYWRpb09wdGlvbnM6IGZ1bmN0aW9uKCBwb3NpdGlvbiApIHsNCgkJcmV0dXJuIHRoaXMuX2J1aWxkU2ltcGxlT3B0aW9ucyggcG9zaXRpb24sICJ1aS1jaGVja2JveHJhZGlvLWxhYmVsIiApOw0KCX0sDQoNCglfc2VsZWN0bWVudU9wdGlvbnM6IGZ1bmN0aW9uKCBwb3NpdGlvbiApIHsNCgkJdmFyIGRpcmVjdGlvbiA9IHRoaXMub3B0aW9ucy5kaXJlY3Rpb24gPT09ICJ2ZXJ0aWNhbCI7DQoJCXJldHVybiB7DQoJCQl3aWR0aDogZGlyZWN0aW9uID8gImF1dG8iIDogZmFsc2UsDQoJCQljbGFzc2VzOiB7DQoJCQkJbWlkZGxlOiB7DQoJCQkJCSJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1vcGVuIjogIiIsDQoJCQkJCSJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1jbG9zZWQiOiAiIg0KCQkJCX0sDQoJCQkJZmlyc3Q6IHsNCgkJCQkJInVpLXNlbGVjdG1lbnUtYnV0dG9uLW9wZW4iOiAidWktY29ybmVyLSIgKyAoIGRpcmVjdGlvbiA/ICJ0b3AiIDogInRsIiApLA0KCQkJCQkidWktc2VsZWN0bWVudS1idXR0b24tY2xvc2VkIjogInVpLWNvcm5lci0iICsgKCBkaXJlY3Rpb24gPyAidG9wIiA6ICJsZWZ0IiApDQoJCQkJfSwNCgkJCQlsYXN0OiB7DQoJCQkJCSJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1vcGVuIjogZGlyZWN0aW9uID8gIiIgOiAidWktY29ybmVyLXRyIiwNCgkJCQkJInVpLXNlbGVjdG1lbnUtYnV0dG9uLWNsb3NlZCI6ICJ1aS1jb3JuZXItIiArICggZGlyZWN0aW9uID8gImJvdHRvbSIgOiAicmlnaHQiICkNCgkJCQl9LA0KCQkJCW9ubHk6IHsNCgkJCQkJInVpLXNlbGVjdG1lbnUtYnV0dG9uLW9wZW4iOiAidWktY29ybmVyLXRvcCIsDQoJCQkJCSJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1jbG9zZWQiOiAidWktY29ybmVyLWFsbCINCgkJCQl9DQoNCgkJCX1bIHBvc2l0aW9uIF0NCgkJfTsNCgl9LA0KDQoJX3Jlc29sdmVDbGFzc2VzVmFsdWVzOiBmdW5jdGlvbiggY2xhc3NlcywgaW5zdGFuY2UgKSB7DQoJCXZhciByZXN1bHQgPSB7fTsNCgkJJC5lYWNoKCBjbGFzc2VzLCBmdW5jdGlvbigga2V5ICkgew0KCQkJdmFyIGN1cnJlbnQgPSBpbnN0YW5jZS5vcHRpb25zLmNsYXNzZXNbIGtleSBdIHx8ICIiOw0KCQkJY3VycmVudCA9ICQudHJpbSggY3VycmVudC5yZXBsYWNlKCBjb250cm9sZ3JvdXBDb3JuZXJSZWdleCwgIiIgKSApOw0KCQkJcmVzdWx0WyBrZXkgXSA9ICggY3VycmVudCArICIgIiArIGNsYXNzZXNbIGtleSBdICkucmVwbGFjZSggL1xzKy9nLCAiICIgKTsNCgkJfSApOw0KCQlyZXR1cm4gcmVzdWx0Ow0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJaWYgKCBrZXkgPT09ICJkaXJlY3Rpb24iICkgew0KCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoICJ1aS1jb250cm9sZ3JvdXAtIiArIHRoaXMub3B0aW9ucy5kaXJlY3Rpb24gKTsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5fY2FsbENoaWxkTWV0aG9kKCB2YWx1ZSA/ICJkaXNhYmxlIiA6ICJlbmFibGUiICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLnJlZnJlc2goKTsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXZhciBjaGlsZHJlbiwNCgkJCXRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuX2FkZENsYXNzKCAidWktY29udHJvbGdyb3VwIHVpLWNvbnRyb2xncm91cC0iICsgdGhpcy5vcHRpb25zLmRpcmVjdGlvbiApOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRpcmVjdGlvbiA9PT0gImhvcml6b250YWwiICkgew0KCQkJdGhpcy5fYWRkQ2xhc3MoIG51bGwsICJ1aS1oZWxwZXItY2xlYXJmaXgiICk7DQoJCX0NCgkJdGhpcy5faW5pdFdpZGdldHMoKTsNCg0KCQljaGlsZHJlbiA9IHRoaXMuY2hpbGRXaWRnZXRzOw0KDQoJCS8vIFdlIGZpbHRlciBoZXJlIGJlY2F1c2Ugd2UgbmVlZCB0byB0cmFjayBhbGwgY2hpbGRXaWRnZXRzIG5vdCBqdXN0IHRoZSB2aXNpYmxlIG9uZXMNCgkJaWYgKCB0aGlzLm9wdGlvbnMub25seVZpc2libGUgKSB7DQoJCQljaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlciggIjp2aXNpYmxlIiApOw0KCQl9DQoNCgkJaWYgKCBjaGlsZHJlbi5sZW5ndGggKSB7DQoNCgkJCS8vIFdlIGRvIHRoaXMgbGFzdCBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlIGFsbCBlbmhhbmNtZW50IGlzIGRvbmUNCgkJCS8vIGJlZm9yZSBkZXRlcm1pbmluZyBmaXJzdCBhbmQgbGFzdA0KCQkJJC5lYWNoKCBbICJmaXJzdCIsICJsYXN0IiBdLCBmdW5jdGlvbiggaW5kZXgsIHZhbHVlICkgew0KCQkJCXZhciBpbnN0YW5jZSA9IGNoaWxkcmVuWyB2YWx1ZSBdKCkuZGF0YSggInVpLWNvbnRyb2xncm91cC1kYXRhIiApOw0KDQoJCQkJaWYgKCBpbnN0YW5jZSAmJiB0aGF0WyAiXyIgKyBpbnN0YW5jZS53aWRnZXROYW1lICsgIk9wdGlvbnMiIF0gKSB7DQoJCQkJCXZhciBvcHRpb25zID0gdGhhdFsgIl8iICsgaW5zdGFuY2Uud2lkZ2V0TmFtZSArICJPcHRpb25zIiBdKA0KCQkJCQkJY2hpbGRyZW4ubGVuZ3RoID09PSAxID8gIm9ubHkiIDogdmFsdWUNCgkJCQkJKTsNCgkJCQkJb3B0aW9ucy5jbGFzc2VzID0gdGhhdC5fcmVzb2x2ZUNsYXNzZXNWYWx1ZXMoIG9wdGlvbnMuY2xhc3NlcywgaW5zdGFuY2UgKTsNCgkJCQkJaW5zdGFuY2UuZWxlbWVudFsgaW5zdGFuY2Uud2lkZ2V0TmFtZSBdKCBvcHRpb25zICk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhhdC5fdXBkYXRlQ29ybmVyQ2xhc3MoIGNoaWxkcmVuWyB2YWx1ZSBdKCksIHZhbHVlICk7DQoJCQkJfQ0KCQkJfSApOw0KDQoJCQkvLyBGaW5hbGx5IGNhbGwgdGhlIHJlZnJlc2ggbWV0aG9kIG9uIGVhY2ggb2YgdGhlIGNoaWxkIHdpZGdldHMuDQoJCQl0aGlzLl9jYWxsQ2hpbGRNZXRob2QoICJyZWZyZXNoIiApOw0KCQl9DQoJfQ0KfSApOw0KDQovKiENCiAqIGpRdWVyeSBVSSBDaGVja2JveHJhZGlvIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBDaGVja2JveHJhZGlvDQovLz4+Z3JvdXA6IFdpZGdldHMNCi8vPj5kZXNjcmlwdGlvbjogRW5oYW5jZXMgYSBmb3JtIHdpdGggbXVsdGlwbGUgdGhlbWVhYmxlIGNoZWNrYm94ZXMgb3IgcmFkaW8gYnV0dG9ucy4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9jaGVja2JveHJhZGlvLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2NoZWNrYm94cmFkaW8vDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvY29yZS5jc3MNCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9idXR0b24uY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvY2hlY2tib3hyYWRpby5jc3MNCi8vPj5jc3MudGhlbWU6IC4uLy4uL3RoZW1lcy9iYXNlL3RoZW1lLmNzcw0KDQoNCg0KJC53aWRnZXQoICJ1aS5jaGVja2JveHJhZGlvIiwgWyAkLnVpLmZvcm1SZXNldE1peGluLCB7DQoJdmVyc2lvbjogIjEuMTIuMSIsDQoJb3B0aW9uczogew0KCQlkaXNhYmxlZDogbnVsbCwNCgkJbGFiZWw6IG51bGwsDQoJCWljb246IHRydWUsDQoJCWNsYXNzZXM6IHsNCgkJCSJ1aS1jaGVja2JveHJhZGlvLWxhYmVsIjogInVpLWNvcm5lci1hbGwiLA0KCQkJInVpLWNoZWNrYm94cmFkaW8taWNvbiI6ICJ1aS1jb3JuZXItYWxsIg0KCQl9DQoJfSwNCg0KCV9nZXRDcmVhdGVPcHRpb25zOiBmdW5jdGlvbigpIHsNCgkJdmFyIGRpc2FibGVkLCBsYWJlbHM7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLl9zdXBlcigpIHx8IHt9Ow0KDQoJCS8vIFdlIHJlYWQgdGhlIHR5cGUgaGVyZSwgYmVjYXVzZSBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIHRocm93IGEgZWxlbWVudCB0eXBlIGVycm9yIGZpcnN0LA0KCQkvLyByYXRoZXIgdGhlbiB0aGUgZXJyb3IgZm9yIGxhY2sgb2YgYSBsYWJlbC4gT2Z0ZW4gaWYgaXRzIHRoZSB3cm9uZyB0eXBlLCBpdA0KCQkvLyB3b24ndCBoYXZlIGEgbGFiZWwgKGUuZy4gY2FsbGluZyBvbiBhIGRpdiwgYnRuLCBldGMpDQoJCXRoaXMuX3JlYWRUeXBlKCk7DQoNCgkJbGFiZWxzID0gdGhpcy5lbGVtZW50LmxhYmVscygpOw0KDQoJCS8vIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBsYWJlbHMsIHVzZSB0aGUgbGFzdCBvbmUNCgkJdGhpcy5sYWJlbCA9ICQoIGxhYmVsc1sgbGFiZWxzLmxlbmd0aCAtIDEgXSApOw0KCQlpZiAoICF0aGlzLmxhYmVsLmxlbmd0aCApIHsNCgkJCSQuZXJyb3IoICJObyBsYWJlbCBmb3VuZCBmb3IgY2hlY2tib3hyYWRpbyB3aWRnZXQiICk7DQoJCX0NCg0KCQl0aGlzLm9yaWdpbmFsTGFiZWwgPSAiIjsNCg0KCQkvLyBXZSBuZWVkIHRvIGdldCB0aGUgbGFiZWwgdGV4dCBidXQgdGhpcyBtYXkgYWxzbyBuZWVkIHRvIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjb250YWluIHRoZQ0KCQkvLyBpbnB1dCBpdHNlbGYuDQoJCXRoaXMubGFiZWwuY29udGVudHMoKS5ub3QoIHRoaXMuZWxlbWVudFsgMCBdICkuZWFjaCggZnVuY3Rpb24oKSB7DQoNCgkJCS8vIFRoZSBsYWJlbCBjb250ZW50cyBjb3VsZCBiZSB0ZXh0LCBodG1sLCBvciBhIG1peC4gV2UgY29uY2F0IGVhY2ggZWxlbWVudCB0byBnZXQgYQ0KCQkJLy8gc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBsYWJlbCwgd2l0aG91dCB0aGUgaW5wdXQgYXMgcGFydCBvZiBpdC4NCgkJCXRoYXQub3JpZ2luYWxMYWJlbCArPSB0aGlzLm5vZGVUeXBlID09PSAzID8gJCggdGhpcyApLnRleHQoKSA6IHRoaXMub3V0ZXJIVE1MOw0KCQl9ICk7DQoNCgkJLy8gU2V0IHRoZSBsYWJlbCBvcHRpb24gaWYgd2UgZm91bmQgbGFiZWwgdGV4dA0KCQlpZiAoIHRoaXMub3JpZ2luYWxMYWJlbCApIHsNCgkJCW9wdGlvbnMubGFiZWwgPSB0aGlzLm9yaWdpbmFsTGFiZWw7DQoJCX0NCg0KCQlkaXNhYmxlZCA9IHRoaXMuZWxlbWVudFsgMCBdLmRpc2FibGVkOw0KCQlpZiAoIGRpc2FibGVkICE9IG51bGwgKSB7DQoJCQlvcHRpb25zLmRpc2FibGVkID0gZGlzYWJsZWQ7DQoJCX0NCgkJcmV0dXJuIG9wdGlvbnM7DQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgY2hlY2tlZCA9IHRoaXMuZWxlbWVudFsgMCBdLmNoZWNrZWQ7DQoNCgkJdGhpcy5fYmluZEZvcm1SZXNldEhhbmRsZXIoKTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9PSBudWxsICkgew0KCQkJdGhpcy5vcHRpb25zLmRpc2FibGVkID0gdGhpcy5lbGVtZW50WyAwIF0uZGlzYWJsZWQ7DQoJCX0NCg0KCQl0aGlzLl9zZXRPcHRpb24oICJkaXNhYmxlZCIsIHRoaXMub3B0aW9ucy5kaXNhYmxlZCApOw0KCQl0aGlzLl9hZGRDbGFzcyggInVpLWNoZWNrYm94cmFkaW8iLCAidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5sYWJlbCwgInVpLWNoZWNrYm94cmFkaW8tbGFiZWwiLCAidWktYnV0dG9uIHVpLXdpZGdldCIgKTsNCg0KCQlpZiAoIHRoaXMudHlwZSA9PT0gInJhZGlvIiApIHsNCgkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmxhYmVsLCAidWktY2hlY2tib3hyYWRpby1yYWRpby1sYWJlbCIgKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5vcHRpb25zLmxhYmVsICYmIHRoaXMub3B0aW9ucy5sYWJlbCAhPT0gdGhpcy5vcmlnaW5hbExhYmVsICkgew0KCQkJdGhpcy5fdXBkYXRlTGFiZWwoKTsNCgkJfSBlbHNlIGlmICggdGhpcy5vcmlnaW5hbExhYmVsICkgew0KCQkJdGhpcy5vcHRpb25zLmxhYmVsID0gdGhpcy5vcmlnaW5hbExhYmVsOw0KCQl9DQoNCgkJdGhpcy5fZW5oYW5jZSgpOw0KDQoJCWlmICggY2hlY2tlZCApIHsNCgkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmxhYmVsLCAidWktY2hlY2tib3hyYWRpby1jaGVja2VkIiwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCWlmICggdGhpcy5pY29uICkgew0KCQkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmljb24sIG51bGwsICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJCX0NCgkJfQ0KDQoJCXRoaXMuX29uKCB7DQoJCQljaGFuZ2U6ICJfdG9nZ2xlQ2xhc3NlcyIsDQoJCQlmb2N1czogZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMubGFiZWwsIG51bGwsICJ1aS1zdGF0ZS1mb2N1cyB1aS12aXN1YWwtZm9jdXMiICk7DQoJCQl9LA0KCQkJYmx1cjogZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMubGFiZWwsIG51bGwsICJ1aS1zdGF0ZS1mb2N1cyB1aS12aXN1YWwtZm9jdXMiICk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KDQoJX3JlYWRUeXBlOiBmdW5jdGlvbigpIHsNCgkJdmFyIG5vZGVOYW1lID0gdGhpcy5lbGVtZW50WyAwIF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCgkJdGhpcy50eXBlID0gdGhpcy5lbGVtZW50WyAwIF0udHlwZTsNCgkJaWYgKCBub2RlTmFtZSAhPT0gImlucHV0IiB8fCAhL3JhZGlvfGNoZWNrYm94Ly50ZXN0KCB0aGlzLnR5cGUgKSApIHsNCgkJCSQuZXJyb3IoICJDYW4ndCBjcmVhdGUgY2hlY2tib3hyYWRpbyBvbiBlbGVtZW50Lm5vZGVOYW1lPSIgKyBub2RlTmFtZSArDQoJCQkJIiBhbmQgZWxlbWVudC50eXBlPSIgKyB0aGlzLnR5cGUgKTsNCgkJfQ0KCX0sDQoNCgkvLyBTdXBwb3J0IGpRdWVyeSBNb2JpbGUgZW5oYW5jZWQgb3B0aW9uDQoJX2VuaGFuY2U6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl91cGRhdGVJY29uKCB0aGlzLmVsZW1lbnRbIDAgXS5jaGVja2VkICk7DQoJfSwNCg0KCXdpZGdldDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmxhYmVsOw0KCX0sDQoNCglfZ2V0UmFkaW9Hcm91cDogZnVuY3Rpb24oKSB7DQoJCXZhciBncm91cDsNCgkJdmFyIG5hbWUgPSB0aGlzLmVsZW1lbnRbIDAgXS5uYW1lOw0KCQl2YXIgbmFtZVNlbGVjdG9yID0gImlucHV0W25hbWU9JyIgKyAkLnVpLmVzY2FwZVNlbGVjdG9yKCBuYW1lICkgKyAiJ10iOw0KDQoJCWlmICggIW5hbWUgKSB7DQoJCQlyZXR1cm4gJCggW10gKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5mb3JtLmxlbmd0aCApIHsNCgkJCWdyb3VwID0gJCggdGhpcy5mb3JtWyAwIF0uZWxlbWVudHMgKS5maWx0ZXIoIG5hbWVTZWxlY3RvciApOw0KCQl9IGVsc2Ugew0KDQoJCQkvLyBOb3QgaW5zaWRlIGEgZm9ybSwgY2hlY2sgYWxsIGlucHV0cyB0aGF0IGFsc28gYXJlIG5vdCBpbnNpZGUgYSBmb3JtDQoJCQlncm91cCA9ICQoIG5hbWVTZWxlY3RvciApLmZpbHRlciggZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICQoIHRoaXMgKS5mb3JtKCkubGVuZ3RoID09PSAwOw0KCQkJfSApOw0KCQl9DQoNCgkJcmV0dXJuIGdyb3VwLm5vdCggdGhpcy5lbGVtZW50ICk7DQoJfSwNCg0KCV90b2dnbGVDbGFzc2VzOiBmdW5jdGlvbigpIHsNCgkJdmFyIGNoZWNrZWQgPSB0aGlzLmVsZW1lbnRbIDAgXS5jaGVja2VkOw0KCQl0aGlzLl90b2dnbGVDbGFzcyggdGhpcy5sYWJlbCwgInVpLWNoZWNrYm94cmFkaW8tY2hlY2tlZCIsICJ1aS1zdGF0ZS1hY3RpdmUiLCBjaGVja2VkICk7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuaWNvbiAmJiB0aGlzLnR5cGUgPT09ICJjaGVja2JveCIgKSB7DQoJCQl0aGlzLl90b2dnbGVDbGFzcyggdGhpcy5pY29uLCBudWxsLCAidWktaWNvbi1jaGVjayB1aS1zdGF0ZS1jaGVja2VkIiwgY2hlY2tlZCApDQoJCQkJLl90b2dnbGVDbGFzcyggdGhpcy5pY29uLCBudWxsLCAidWktaWNvbi1ibGFuayIsICFjaGVja2VkICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMudHlwZSA9PT0gInJhZGlvIiApIHsNCgkJCXRoaXMuX2dldFJhZGlvR3JvdXAoKQ0KCQkJCS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQkJdmFyIGluc3RhbmNlID0gJCggdGhpcyApLmNoZWNrYm94cmFkaW8oICJpbnN0YW5jZSIgKTsNCg0KCQkJCQlpZiAoIGluc3RhbmNlICkgew0KCQkJCQkJaW5zdGFuY2UuX3JlbW92ZUNsYXNzKCBpbnN0YW5jZS5sYWJlbCwNCgkJCQkJCQkidWktY2hlY2tib3hyYWRpby1jaGVja2VkIiwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQkJfQ0KCQkJCX0gKTsNCgkJfQ0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX3VuYmluZEZvcm1SZXNldEhhbmRsZXIoKTsNCg0KCQlpZiAoIHRoaXMuaWNvbiApIHsNCgkJCXRoaXMuaWNvbi5yZW1vdmUoKTsNCgkJCXRoaXMuaWNvblNwYWNlLnJlbW92ZSgpOw0KCQl9DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KDQoJCS8vIFdlIGRvbid0IGFsbG93IHRoZSB2YWx1ZSB0byBiZSBzZXQgdG8gbm90aGluZw0KCQlpZiAoIGtleSA9PT0gImxhYmVsIiAmJiAhdmFsdWUgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KDQoJCWlmICgga2V5ID09PSAiZGlzYWJsZWQiICkgew0KCQkJdGhpcy5fdG9nZ2xlQ2xhc3MoIHRoaXMubGFiZWwsIG51bGwsICJ1aS1zdGF0ZS1kaXNhYmxlZCIsIHZhbHVlICk7DQoJCQl0aGlzLmVsZW1lbnRbIDAgXS5kaXNhYmxlZCA9IHZhbHVlOw0KDQoJCQkvLyBEb24ndCByZWZyZXNoIHdoZW4gc2V0dGluZyBkaXNhYmxlZA0KCQkJcmV0dXJuOw0KCQl9DQoJCXRoaXMucmVmcmVzaCgpOw0KCX0sDQoNCglfdXBkYXRlSWNvbjogZnVuY3Rpb24oIGNoZWNrZWQgKSB7DQoJCXZhciB0b0FkZCA9ICJ1aS1pY29uIHVpLWljb24tYmFja2dyb3VuZCAiOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmljb24gKSB7DQoJCQlpZiAoICF0aGlzLmljb24gKSB7DQoJCQkJdGhpcy5pY29uID0gJCggIjxzcGFuPiIgKTsNCgkJCQl0aGlzLmljb25TcGFjZSA9ICQoICI8c3Bhbj4gPC9zcGFuPiIgKTsNCgkJCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5pY29uU3BhY2UsICJ1aS1jaGVja2JveHJhZGlvLWljb24tc3BhY2UiICk7DQoJCQl9DQoNCgkJCWlmICggdGhpcy50eXBlID09PSAiY2hlY2tib3giICkgew0KCQkJCXRvQWRkICs9IGNoZWNrZWQgPyAidWktaWNvbi1jaGVjayB1aS1zdGF0ZS1jaGVja2VkIiA6ICJ1aS1pY29uLWJsYW5rIjsNCgkJCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5pY29uLCBudWxsLCBjaGVja2VkID8gInVpLWljb24tYmxhbmsiIDogInVpLWljb24tY2hlY2siICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRvQWRkICs9ICJ1aS1pY29uLWJsYW5rIjsNCgkJCX0NCgkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmljb24sICJ1aS1jaGVja2JveHJhZGlvLWljb24iLCB0b0FkZCApOw0KCQkJaWYgKCAhY2hlY2tlZCApIHsNCgkJCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5pY29uLCBudWxsLCAidWktaWNvbi1jaGVjayB1aS1zdGF0ZS1jaGVja2VkIiApOw0KCQkJfQ0KCQkJdGhpcy5pY29uLnByZXBlbmRUbyggdGhpcy5sYWJlbCApLmFmdGVyKCB0aGlzLmljb25TcGFjZSApOw0KCQl9IGVsc2UgaWYgKCB0aGlzLmljb24gIT09IHVuZGVmaW5lZCApIHsNCgkJCXRoaXMuaWNvbi5yZW1vdmUoKTsNCgkJCXRoaXMuaWNvblNwYWNlLnJlbW92ZSgpOw0KCQkJZGVsZXRlIHRoaXMuaWNvbjsNCgkJfQ0KCX0sDQoNCglfdXBkYXRlTGFiZWw6IGZ1bmN0aW9uKCkgew0KDQoJCS8vIFJlbW92ZSB0aGUgY29udGVudHMgb2YgdGhlIGxhYmVsICggbWludXMgdGhlIGljb24sIGljb24gc3BhY2UsIGFuZCBpbnB1dCApDQoJCXZhciBjb250ZW50cyA9IHRoaXMubGFiZWwuY29udGVudHMoKS5ub3QoIHRoaXMuZWxlbWVudFsgMCBdICk7DQoJCWlmICggdGhpcy5pY29uICkgew0KCQkJY29udGVudHMgPSBjb250ZW50cy5ub3QoIHRoaXMuaWNvblsgMCBdICk7DQoJCX0NCgkJaWYgKCB0aGlzLmljb25TcGFjZSApIHsNCgkJCWNvbnRlbnRzID0gY29udGVudHMubm90KCB0aGlzLmljb25TcGFjZVsgMCBdICk7DQoJCX0NCgkJY29udGVudHMucmVtb3ZlKCk7DQoNCgkJdGhpcy5sYWJlbC5hcHBlbmQoIHRoaXMub3B0aW9ucy5sYWJlbCApOw0KCX0sDQoNCglyZWZyZXNoOiBmdW5jdGlvbigpIHsNCgkJdmFyIGNoZWNrZWQgPSB0aGlzLmVsZW1lbnRbIDAgXS5jaGVja2VkLA0KCQkJaXNEaXNhYmxlZCA9IHRoaXMuZWxlbWVudFsgMCBdLmRpc2FibGVkOw0KDQoJCXRoaXMuX3VwZGF0ZUljb24oIGNoZWNrZWQgKTsNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIHRoaXMubGFiZWwsICJ1aS1jaGVja2JveHJhZGlvLWNoZWNrZWQiLCAidWktc3RhdGUtYWN0aXZlIiwgY2hlY2tlZCApOw0KCQlpZiAoIHRoaXMub3B0aW9ucy5sYWJlbCAhPT0gbnVsbCApIHsNCgkJCXRoaXMuX3VwZGF0ZUxhYmVsKCk7DQoJCX0NCg0KCQlpZiAoIGlzRGlzYWJsZWQgIT09IHRoaXMub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCXRoaXMuX3NldE9wdGlvbnMoIHsgImRpc2FibGVkIjogaXNEaXNhYmxlZCB9ICk7DQoJCX0NCgl9DQoNCn0gXSApOw0KDQp2YXIgd2lkZ2V0c0NoZWNrYm94cmFkaW8gPSAkLnVpLmNoZWNrYm94cmFkaW87DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgQnV0dG9uIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBCdXR0b24NCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8+PmRlc2NyaXB0aW9uOiBFbmhhbmNlcyBhIGZvcm0gd2l0aCB0aGVtZWFibGUgYnV0dG9ucy4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9idXR0b24vDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vYnV0dG9uLw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvcmUuY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvYnV0dG9uLmNzcw0KLy8+PmNzcy50aGVtZTogLi4vLi4vdGhlbWVzL2Jhc2UvdGhlbWUuY3NzDQoNCg0KDQokLndpZGdldCggInVpLmJ1dHRvbiIsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCglkZWZhdWx0RWxlbWVudDogIjxidXR0b24+IiwNCglvcHRpb25zOiB7DQoJCWNsYXNzZXM6IHsNCgkJCSJ1aS1idXR0b24iOiAidWktY29ybmVyLWFsbCINCgkJfSwNCgkJZGlzYWJsZWQ6IG51bGwsDQoJCWljb246IG51bGwsDQoJCWljb25Qb3NpdGlvbjogImJlZ2lubmluZyIsDQoJCWxhYmVsOiBudWxsLA0KCQlzaG93TGFiZWw6IHRydWUNCgl9LA0KDQoJX2dldENyZWF0ZU9wdGlvbnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZGlzYWJsZWQsDQoNCgkJCS8vIFRoaXMgaXMgdG8gc3VwcG9ydCBjYXNlcyBsaWtlIGluIGpRdWVyeSBNb2JpbGUgd2hlcmUgdGhlIGJhc2Ugd2lkZ2V0IGRvZXMgaGF2ZQ0KCQkJLy8gYW4gaW1wbGVtZW50YXRpb24gb2YgX2dldENyZWF0ZU9wdGlvbnMNCgkJCW9wdGlvbnMgPSB0aGlzLl9zdXBlcigpIHx8IHt9Ow0KDQoJCXRoaXMuaXNJbnB1dCA9IHRoaXMuZWxlbWVudC5pcyggImlucHV0IiApOw0KDQoJCWRpc2FibGVkID0gdGhpcy5lbGVtZW50WyAwIF0uZGlzYWJsZWQ7DQoJCWlmICggZGlzYWJsZWQgIT0gbnVsbCApIHsNCgkJCW9wdGlvbnMuZGlzYWJsZWQgPSBkaXNhYmxlZDsNCgkJfQ0KDQoJCXRoaXMub3JpZ2luYWxMYWJlbCA9IHRoaXMuaXNJbnB1dCA/IHRoaXMuZWxlbWVudC52YWwoKSA6IHRoaXMuZWxlbWVudC5odG1sKCk7DQoJCWlmICggdGhpcy5vcmlnaW5hbExhYmVsICkgew0KCQkJb3B0aW9ucy5sYWJlbCA9IHRoaXMub3JpZ2luYWxMYWJlbDsNCgkJfQ0KDQoJCXJldHVybiBvcHRpb25zOw0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJaWYgKCAhdGhpcy5vcHRpb24uc2hvd0xhYmVsICYgIXRoaXMub3B0aW9ucy5pY29uICkgew0KCQkJdGhpcy5vcHRpb25zLnNob3dMYWJlbCA9IHRydWU7DQoJCX0NCg0KCQkvLyBXZSBoYXZlIHRvIGNoZWNrIHRoZSBvcHRpb24gYWdhaW4gaGVyZSBldmVuIHRob3VnaCB3ZSBkaWQgaW4gX2dldENyZWF0ZU9wdGlvbnMsDQoJCS8vIGJlY2F1c2UgbnVsbCBtYXkgaGF2ZSBiZWVuIHBhc3NlZCBvbiBpbml0IHdoaWNoIHdvdWxkIG92ZXJyaWRlIHdoYXQgd2FzIHNldCBpbg0KCQkvLyBfZ2V0Q3JlYXRlT3B0aW9ucw0KCQlpZiAoIHRoaXMub3B0aW9ucy5kaXNhYmxlZCA9PSBudWxsICkgew0KCQkJdGhpcy5vcHRpb25zLmRpc2FibGVkID0gdGhpcy5lbGVtZW50WyAwIF0uZGlzYWJsZWQgfHwgZmFsc2U7DQoJCX0NCg0KCQl0aGlzLmhhc1RpdGxlID0gISF0aGlzLmVsZW1lbnQuYXR0ciggInRpdGxlIiApOw0KDQoJCS8vIENoZWNrIHRvIHNlZSBpZiB0aGUgbGFiZWwgbmVlZHMgdG8gYmUgc2V0IG9yIGlmIGl0cyBhbHJlYWR5IGNvcnJlY3QNCgkJaWYgKCB0aGlzLm9wdGlvbnMubGFiZWwgJiYgdGhpcy5vcHRpb25zLmxhYmVsICE9PSB0aGlzLm9yaWdpbmFsTGFiZWwgKSB7DQoJCQlpZiAoIHRoaXMuaXNJbnB1dCApIHsNCgkJCQl0aGlzLmVsZW1lbnQudmFsKCB0aGlzLm9wdGlvbnMubGFiZWwgKTsNCgkJCX0gZWxzZSB7DQoJCQkJdGhpcy5lbGVtZW50Lmh0bWwoIHRoaXMub3B0aW9ucy5sYWJlbCApOw0KCQkJfQ0KCQl9DQoJCXRoaXMuX2FkZENsYXNzKCAidWktYnV0dG9uIiwgInVpLXdpZGdldCIgKTsNCgkJdGhpcy5fc2V0T3B0aW9uKCAiZGlzYWJsZWQiLCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgKTsNCgkJdGhpcy5fZW5oYW5jZSgpOw0KDQoJCWlmICggdGhpcy5lbGVtZW50LmlzKCAiYSIgKSApIHsNCgkJCXRoaXMuX29uKCB7DQoJCQkJImtleXVwIjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQlpZiAoIGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5TUEFDRSApIHsNCgkJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJCQkJCS8vIFN1cHBvcnQ6IFBoYW50b21KUyA8PSAxLjksIElFIDggT25seQ0KCQkJCQkJLy8gSWYgYSBuYXRpdmUgY2xpY2sgaXMgYXZhaWxhYmxlIHVzZSBpdCBzbyB3ZSBhY3R1YWxseSBjYXVzZSBuYXZpZ2F0aW9uDQoJCQkJCQkvLyBvdGhlcndpc2UganVzdCB0cmlnZ2VyIGEgY2xpY2sgZXZlbnQNCgkJCQkJCWlmICggdGhpcy5lbGVtZW50WyAwIF0uY2xpY2sgKSB7DQoJCQkJCQkJdGhpcy5lbGVtZW50WyAwIF0uY2xpY2soKTsNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJdGhpcy5lbGVtZW50LnRyaWdnZXIoICJjbGljayIgKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCX0NCgkJCX0gKTsNCgkJfQ0KCX0sDQoNCglfZW5oYW5jZTogZnVuY3Rpb24oKSB7DQoJCWlmICggIXRoaXMuZWxlbWVudC5pcyggImJ1dHRvbiIgKSApIHsNCgkJCXRoaXMuZWxlbWVudC5hdHRyKCAicm9sZSIsICJidXR0b24iICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5pY29uICkgew0KCQkJdGhpcy5fdXBkYXRlSWNvbiggImljb24iLCB0aGlzLm9wdGlvbnMuaWNvbiApOw0KCQkJdGhpcy5fdXBkYXRlVG9vbHRpcCgpOw0KCQl9DQoJfSwNCg0KCV91cGRhdGVUb29sdGlwOiBmdW5jdGlvbigpIHsNCgkJdGhpcy50aXRsZSA9IHRoaXMuZWxlbWVudC5hdHRyKCAidGl0bGUiICk7DQoNCgkJaWYgKCAhdGhpcy5vcHRpb25zLnNob3dMYWJlbCAmJiAhdGhpcy50aXRsZSApIHsNCgkJCXRoaXMuZWxlbWVudC5hdHRyKCAidGl0bGUiLCB0aGlzLm9wdGlvbnMubGFiZWwgKTsNCgkJfQ0KCX0sDQoNCglfdXBkYXRlSWNvbjogZnVuY3Rpb24oIG9wdGlvbiwgdmFsdWUgKSB7DQoJCXZhciBpY29uID0gb3B0aW9uICE9PSAiaWNvblBvc2l0aW9uIiwNCgkJCXBvc2l0aW9uID0gaWNvbiA/IHRoaXMub3B0aW9ucy5pY29uUG9zaXRpb24gOiB2YWx1ZSwNCgkJCWRpc3BsYXlCbG9jayA9IHBvc2l0aW9uID09PSAidG9wIiB8fCBwb3NpdGlvbiA9PT0gImJvdHRvbSI7DQoNCgkJLy8gQ3JlYXRlIGljb24NCgkJaWYgKCAhdGhpcy5pY29uICkgew0KCQkJdGhpcy5pY29uID0gJCggIjxzcGFuPiIgKTsNCg0KCQkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuaWNvbiwgInVpLWJ1dHRvbi1pY29uIiwgInVpLWljb24iICk7DQoNCgkJCWlmICggIXRoaXMub3B0aW9ucy5zaG93TGFiZWwgKSB7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoICJ1aS1idXR0b24taWNvbi1vbmx5IiApOw0KCQkJfQ0KCQl9IGVsc2UgaWYgKCBpY29uICkgew0KDQoJCQkvLyBJZiB3ZSBhcmUgdXBkYXRpbmcgdGhlIGljb24gcmVtb3ZlIHRoZSBvbGQgaWNvbiBjbGFzcw0KCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuaWNvbiwgbnVsbCwgdGhpcy5vcHRpb25zLmljb24gKTsNCgkJfQ0KDQoJCS8vIElmIHdlIGFyZSB1cGRhdGluZyB0aGUgaWNvbiBhZGQgdGhlIG5ldyBpY29uIGNsYXNzDQoJCWlmICggaWNvbiApIHsNCgkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmljb24sIG51bGwsIHZhbHVlICk7DQoJCX0NCg0KCQl0aGlzLl9hdHRhY2hJY29uKCBwb3NpdGlvbiApOw0KDQoJCS8vIElmIHRoZSBpY29uIGlzIG9uIHRvcCBvciBib3R0b20gd2UgbmVlZCB0byBhZGQgdGhlIHVpLXdpZGdldC1pY29uLWJsb2NrIGNsYXNzIGFuZCByZW1vdmUNCgkJLy8gdGhlIGljb25TcGFjZSBpZiB0aGVyZSBpcyBvbmUuDQoJCWlmICggZGlzcGxheUJsb2NrICkgew0KCQkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuaWNvbiwgbnVsbCwgInVpLXdpZGdldC1pY29uLWJsb2NrIiApOw0KCQkJaWYgKCB0aGlzLmljb25TcGFjZSApIHsNCgkJCQl0aGlzLmljb25TcGFjZS5yZW1vdmUoKTsNCgkJCX0NCgkJfSBlbHNlIHsNCg0KCQkJLy8gUG9zaXRpb24gaXMgYmVnaW5uaW5nIG9yIGVuZCBzbyByZW1vdmUgdGhlIHVpLXdpZGdldC1pY29uLWJsb2NrIGNsYXNzIGFuZCBhZGQgdGhlDQoJCQkvLyBzcGFjZSBpZiBpdCBkb2VzIG5vdCBleGlzdA0KCQkJaWYgKCAhdGhpcy5pY29uU3BhY2UgKSB7DQoJCQkJdGhpcy5pY29uU3BhY2UgPSAkKCAiPHNwYW4+IDwvc3Bhbj4iICk7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuaWNvblNwYWNlLCAidWktYnV0dG9uLWljb24tc3BhY2UiICk7DQoJCQl9DQoJCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5pY29uLCBudWxsLCAidWktd2lnZXQtaWNvbi1ibG9jayIgKTsNCgkJCXRoaXMuX2F0dGFjaEljb25TcGFjZSggcG9zaXRpb24gKTsNCgkJfQ0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCAicm9sZSIgKTsNCg0KCQlpZiAoIHRoaXMuaWNvbiApIHsNCgkJCXRoaXMuaWNvbi5yZW1vdmUoKTsNCgkJfQ0KCQlpZiAoIHRoaXMuaWNvblNwYWNlICkgew0KCQkJdGhpcy5pY29uU3BhY2UucmVtb3ZlKCk7DQoJCX0NCgkJaWYgKCAhdGhpcy5oYXNUaXRsZSApIHsNCgkJCXRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCAidGl0bGUiICk7DQoJCX0NCgl9LA0KDQoJX2F0dGFjaEljb25TcGFjZTogZnVuY3Rpb24oIGljb25Qb3NpdGlvbiApIHsNCgkJdGhpcy5pY29uWyAvXig/OmVuZHxib3R0b20pLy50ZXN0KCBpY29uUG9zaXRpb24gKSA/ICJiZWZvcmUiIDogImFmdGVyIiBdKCB0aGlzLmljb25TcGFjZSApOw0KCX0sDQoNCglfYXR0YWNoSWNvbjogZnVuY3Rpb24oIGljb25Qb3NpdGlvbiApIHsNCgkJdGhpcy5lbGVtZW50WyAvXig/OmVuZHxib3R0b20pLy50ZXN0KCBpY29uUG9zaXRpb24gKSA/ICJhcHBlbmQiIDogInByZXBlbmQiIF0oIHRoaXMuaWNvbiApOw0KCX0sDQoNCglfc2V0T3B0aW9uczogZnVuY3Rpb24oIG9wdGlvbnMgKSB7DQoJCXZhciBuZXdTaG93TGFiZWwgPSBvcHRpb25zLnNob3dMYWJlbCA9PT0gdW5kZWZpbmVkID8NCgkJCQl0aGlzLm9wdGlvbnMuc2hvd0xhYmVsIDoNCgkJCQlvcHRpb25zLnNob3dMYWJlbCwNCgkJCW5ld0ljb24gPSBvcHRpb25zLmljb24gPT09IHVuZGVmaW5lZCA/IHRoaXMub3B0aW9ucy5pY29uIDogb3B0aW9ucy5pY29uOw0KDQoJCWlmICggIW5ld1Nob3dMYWJlbCAmJiAhbmV3SWNvbiApIHsNCgkJCW9wdGlvbnMuc2hvd0xhYmVsID0gdHJ1ZTsNCgkJfQ0KCQl0aGlzLl9zdXBlciggb3B0aW9ucyApOw0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJaWYgKCBrZXkgPT09ICJpY29uIiApIHsNCgkJCWlmICggdmFsdWUgKSB7DQoJCQkJdGhpcy5fdXBkYXRlSWNvbigga2V5LCB2YWx1ZSApOw0KCQkJfSBlbHNlIGlmICggdGhpcy5pY29uICkgew0KCQkJCXRoaXMuaWNvbi5yZW1vdmUoKTsNCgkJCQlpZiAoIHRoaXMuaWNvblNwYWNlICkgew0KCQkJCQl0aGlzLmljb25TcGFjZS5yZW1vdmUoKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImljb25Qb3NpdGlvbiIgKSB7DQoJCQl0aGlzLl91cGRhdGVJY29uKCBrZXksIHZhbHVlICk7DQoJCX0NCg0KCQkvLyBNYWtlIHN1cmUgd2UgY2FuJ3QgZW5kIHVwIHdpdGggYSBidXR0b24gdGhhdCBoYXMgbmVpdGhlciB0ZXh0IG5vciBpY29uDQoJCWlmICgga2V5ID09PSAic2hvd0xhYmVsIiApIHsNCgkJCQl0aGlzLl90b2dnbGVDbGFzcyggInVpLWJ1dHRvbi1pY29uLW9ubHkiLCBudWxsLCAhdmFsdWUgKTsNCgkJCQl0aGlzLl91cGRhdGVUb29sdGlwKCk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImxhYmVsIiApIHsNCgkJCWlmICggdGhpcy5pc0lucHV0ICkgew0KCQkJCXRoaXMuZWxlbWVudC52YWwoIHZhbHVlICk7DQoJCQl9IGVsc2Ugew0KDQoJCQkJLy8gSWYgdGhlcmUgaXMgYW4gaWNvbiwgYXBwZW5kIGl0LCBlbHNlIG5vdGhpbmcgdGhlbiBhcHBlbmQgdGhlIHZhbHVlDQoJCQkJLy8gdGhpcyBhdm9pZHMgcmVtb3ZhbCBvZiB0aGUgaWNvbiB3aGVuIHNldHRpbmcgbGFiZWwgdGV4dA0KCQkJCXRoaXMuZWxlbWVudC5odG1sKCB2YWx1ZSApOw0KCQkJCWlmICggdGhpcy5pY29uICkgew0KCQkJCQl0aGlzLl9hdHRhY2hJY29uKCB0aGlzLm9wdGlvbnMuaWNvblBvc2l0aW9uICk7DQoJCQkJCXRoaXMuX2F0dGFjaEljb25TcGFjZSggdGhpcy5vcHRpb25zLmljb25Qb3NpdGlvbiApOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJaWYgKCBrZXkgPT09ICJkaXNhYmxlZCIgKSB7DQoJCQl0aGlzLl90b2dnbGVDbGFzcyggbnVsbCwgInVpLXN0YXRlLWRpc2FibGVkIiwgdmFsdWUgKTsNCgkJCXRoaXMuZWxlbWVudFsgMCBdLmRpc2FibGVkID0gdmFsdWU7DQoJCQlpZiAoIHZhbHVlICkgew0KCQkJCXRoaXMuZWxlbWVudC5ibHVyKCk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoNCgkJLy8gTWFrZSBzdXJlIHRvIG9ubHkgY2hlY2sgZGlzYWJsZWQgaWYgaXRzIGFuIGVsZW1lbnQgdGhhdCBzdXBwb3J0cyB0aGlzIG90aGVyd2lzZQ0KCQkvLyBjaGVjayBmb3IgdGhlIGRpc2FibGVkIGNsYXNzIHRvIGRldGVybWluZSBzdGF0ZQ0KCQl2YXIgaXNEaXNhYmxlZCA9IHRoaXMuZWxlbWVudC5pcyggImlucHV0LCBidXR0b24iICkgPw0KCQkJdGhpcy5lbGVtZW50WyAwIF0uZGlzYWJsZWQgOiB0aGlzLmVsZW1lbnQuaGFzQ2xhc3MoICJ1aS1idXR0b24tZGlzYWJsZWQiICk7DQoNCgkJaWYgKCBpc0Rpc2FibGVkICE9PSB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQl0aGlzLl9zZXRPcHRpb25zKCB7IGRpc2FibGVkOiBpc0Rpc2FibGVkIH0gKTsNCgkJfQ0KDQoJCXRoaXMuX3VwZGF0ZVRvb2x0aXAoKTsNCgl9DQp9ICk7DQoNCi8vIERFUFJFQ0FURUQNCmlmICggJC51aUJhY2tDb21wYXQgIT09IGZhbHNlICkgew0KDQoJLy8gVGV4dCBhbmQgSWNvbnMgb3B0aW9ucw0KCSQud2lkZ2V0KCAidWkuYnV0dG9uIiwgJC51aS5idXR0b24sIHsNCgkJb3B0aW9uczogew0KCQkJdGV4dDogdHJ1ZSwNCgkJCWljb25zOiB7DQoJCQkJcHJpbWFyeTogbnVsbCwNCgkJCQlzZWNvbmRhcnk6IG51bGwNCgkJCX0NCgkJfSwNCg0KCQlfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJCWlmICggdGhpcy5vcHRpb25zLnNob3dMYWJlbCAmJiAhdGhpcy5vcHRpb25zLnRleHQgKSB7DQoJCQkJdGhpcy5vcHRpb25zLnNob3dMYWJlbCA9IHRoaXMub3B0aW9ucy50ZXh0Ow0KCQkJfQ0KCQkJaWYgKCAhdGhpcy5vcHRpb25zLnNob3dMYWJlbCAmJiB0aGlzLm9wdGlvbnMudGV4dCApIHsNCgkJCQl0aGlzLm9wdGlvbnMudGV4dCA9IHRoaXMub3B0aW9ucy5zaG93TGFiZWw7DQoJCQl9DQoJCQlpZiAoICF0aGlzLm9wdGlvbnMuaWNvbiAmJiAoIHRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5IHx8DQoJCQkJCXRoaXMub3B0aW9ucy5pY29ucy5zZWNvbmRhcnkgKSApIHsNCgkJCQlpZiAoIHRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5ICkgew0KCQkJCQl0aGlzLm9wdGlvbnMuaWNvbiA9IHRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5Ow0KCQkJCX0gZWxzZSB7DQoJCQkJCXRoaXMub3B0aW9ucy5pY29uID0gdGhpcy5vcHRpb25zLmljb25zLnNlY29uZGFyeTsNCgkJCQkJdGhpcy5vcHRpb25zLmljb25Qb3NpdGlvbiA9ICJlbmQiOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoIHRoaXMub3B0aW9ucy5pY29uICkgew0KCQkJCXRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5ID0gdGhpcy5vcHRpb25zLmljb247DQoJCQl9DQoJCQl0aGlzLl9zdXBlcigpOw0KCQl9LA0KDQoJCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQkJaWYgKCBrZXkgPT09ICJ0ZXh0IiApIHsNCgkJCQl0aGlzLl9zdXBlciggInNob3dMYWJlbCIsIHZhbHVlICk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJaWYgKCBrZXkgPT09ICJzaG93TGFiZWwiICkgew0KCQkJCXRoaXMub3B0aW9ucy50ZXh0ID0gdmFsdWU7DQoJCQl9DQoJCQlpZiAoIGtleSA9PT0gImljb24iICkgew0KCQkJCXRoaXMub3B0aW9ucy5pY29ucy5wcmltYXJ5ID0gdmFsdWU7DQoJCQl9DQoJCQlpZiAoIGtleSA9PT0gImljb25zIiApIHsNCgkJCQlpZiAoIHZhbHVlLnByaW1hcnkgKSB7DQoJCQkJCXRoaXMuX3N1cGVyKCAiaWNvbiIsIHZhbHVlLnByaW1hcnkgKTsNCgkJCQkJdGhpcy5fc3VwZXIoICJpY29uUG9zaXRpb24iLCAiYmVnaW5uaW5nIiApOw0KCQkJCX0gZWxzZSBpZiAoIHZhbHVlLnNlY29uZGFyeSApIHsNCgkJCQkJdGhpcy5fc3VwZXIoICJpY29uIiwgdmFsdWUuc2Vjb25kYXJ5ICk7DQoJCQkJCXRoaXMuX3N1cGVyKCAiaWNvblBvc2l0aW9uIiwgImVuZCIgKTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLl9zdXBlckFwcGx5KCBhcmd1bWVudHMgKTsNCgkJfQ0KCX0gKTsNCg0KCSQuZm4uYnV0dG9uID0gKCBmdW5jdGlvbiggb3JpZyApIHsNCgkJcmV0dXJuIGZ1bmN0aW9uKCkgew0KCQkJaWYgKCAhdGhpcy5sZW5ndGggfHwgKCB0aGlzLmxlbmd0aCAmJiB0aGlzWyAwIF0udGFnTmFtZSAhPT0gIklOUFVUIiApIHx8DQoJCQkJCSggdGhpcy5sZW5ndGggJiYgdGhpc1sgMCBdLnRhZ05hbWUgPT09ICJJTlBVVCIgJiYgKA0KCQkJCQkJdGhpcy5hdHRyKCAidHlwZSIgKSAhPT0gImNoZWNrYm94IiAmJiB0aGlzLmF0dHIoICJ0eXBlIiApICE9PSAicmFkaW8iDQoJCQkJCSkgKSApIHsNCgkJCQlyZXR1cm4gb3JpZy5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCQl9DQoJCQlpZiAoICEkLnVpLmNoZWNrYm94cmFkaW8gKSB7DQoJCQkJJC5lcnJvciggIkNoZWNrYm94cmFkaW8gd2lkZ2V0IG1pc3NpbmciICk7DQoJCQl9DQoJCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDAgKSB7DQoJCQkJcmV0dXJuIHRoaXMuY2hlY2tib3hyYWRpbyggew0KCQkJCQkiaWNvbiI6IGZhbHNlDQoJCQkJfSApOw0KCQkJfQ0KCQkJcmV0dXJuIHRoaXMuY2hlY2tib3hyYWRpby5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCX07DQoJfSApKCAkLmZuLmJ1dHRvbiApOw0KDQoJJC5mbi5idXR0b25zZXQgPSBmdW5jdGlvbigpIHsNCgkJaWYgKCAhJC51aS5jb250cm9sZ3JvdXAgKSB7DQoJCQkkLmVycm9yKCAiQ29udHJvbGdyb3VwIHdpZGdldCBtaXNzaW5nIiApOw0KCQl9DQoJCWlmICggYXJndW1lbnRzWyAwIF0gPT09ICJvcHRpb24iICYmIGFyZ3VtZW50c1sgMSBdID09PSAiaXRlbXMiICYmIGFyZ3VtZW50c1sgMiBdICkgew0KCQkJcmV0dXJuIHRoaXMuY29udHJvbGdyb3VwLmFwcGx5KCB0aGlzLA0KCQkJCVsgYXJndW1lbnRzWyAwIF0sICJpdGVtcy5idXR0b24iLCBhcmd1bWVudHNbIDIgXSBdICk7DQoJCX0NCgkJaWYgKCBhcmd1bWVudHNbIDAgXSA9PT0gIm9wdGlvbiIgJiYgYXJndW1lbnRzWyAxIF0gPT09ICJpdGVtcyIgKSB7DQoJCQlyZXR1cm4gdGhpcy5jb250cm9sZ3JvdXAuYXBwbHkoIHRoaXMsIFsgYXJndW1lbnRzWyAwIF0sICJpdGVtcy5idXR0b24iIF0gKTsNCgkJfQ0KCQlpZiAoIHR5cGVvZiBhcmd1bWVudHNbIDAgXSA9PT0gIm9iamVjdCIgJiYgYXJndW1lbnRzWyAwIF0uaXRlbXMgKSB7DQoJCQlhcmd1bWVudHNbIDAgXS5pdGVtcyA9IHsNCgkJCQlidXR0b246IGFyZ3VtZW50c1sgMCBdLml0ZW1zDQoJCQl9Ow0KCQl9DQoJCXJldHVybiB0aGlzLmNvbnRyb2xncm91cC5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJfTsNCn0NCg0KdmFyIHdpZGdldHNCdXR0b24gPSAkLnVpLmJ1dHRvbjsNCg0KDQovLyBqc2NzOmRpc2FibGUgbWF4aW11bUxpbmVMZW5ndGgNCi8qIGpzY3M6ZGlzYWJsZSByZXF1aXJlQ2FtZWxDYXNlT3JVcHBlckNhc2VJZGVudGlmaWVycyAqLw0KLyohDQogKiBqUXVlcnkgVUkgRGF0ZXBpY2tlciAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBEYXRlcGlja2VyDQovLz4+Z3JvdXA6IFdpZGdldHMNCi8vPj5kZXNjcmlwdGlvbjogRGlzcGxheXMgYSBjYWxlbmRhciBmcm9tIGFuIGlucHV0IG9yIGlubGluZSBmb3Igc2VsZWN0aW5nIGRhdGVzLg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL2RhdGVwaWNrZXIvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vZGF0ZXBpY2tlci8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9jb3JlLmNzcw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2RhdGVwaWNrZXIuY3NzDQovLz4+Y3NzLnRoZW1lOiAuLi8uLi90aGVtZXMvYmFzZS90aGVtZS5jc3MNCg0KDQoNCiQuZXh0ZW5kKCAkLnVpLCB7IGRhdGVwaWNrZXI6IHsgdmVyc2lvbjogIjEuMTIuMSIgfSB9ICk7DQoNCnZhciBkYXRlcGlja2VyX2luc3RBY3RpdmU7DQoNCmZ1bmN0aW9uIGRhdGVwaWNrZXJfZ2V0WmluZGV4KCBlbGVtICkgew0KCXZhciBwb3NpdGlvbiwgdmFsdWU7DQoJd2hpbGUgKCBlbGVtLmxlbmd0aCAmJiBlbGVtWyAwIF0gIT09IGRvY3VtZW50ICkgew0KDQoJCS8vIElnbm9yZSB6LWluZGV4IGlmIHBvc2l0aW9uIGlzIHNldCB0byBhIHZhbHVlIHdoZXJlIHotaW5kZXggaXMgaWdub3JlZCBieSB0aGUgYnJvd3Nlcg0KCQkvLyBUaGlzIG1ha2VzIGJlaGF2aW9yIG9mIHRoaXMgZnVuY3Rpb24gY29uc2lzdGVudCBhY3Jvc3MgYnJvd3NlcnMNCgkJLy8gV2ViS2l0IGFsd2F5cyByZXR1cm5zIGF1dG8gaWYgdGhlIGVsZW1lbnQgaXMgcG9zaXRpb25lZA0KCQlwb3NpdGlvbiA9IGVsZW0uY3NzKCAicG9zaXRpb24iICk7DQoJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJyZWxhdGl2ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoNCgkJCS8vIElFIHJldHVybnMgMCB3aGVuIHpJbmRleCBpcyBub3Qgc3BlY2lmaWVkDQoJCQkvLyBvdGhlciBicm93c2VycyByZXR1cm4gYSBzdHJpbmcNCgkJCS8vIHdlIGlnbm9yZSB0aGUgY2FzZSBvZiBuZXN0ZWQgZWxlbWVudHMgd2l0aCBhbiBleHBsaWNpdCB2YWx1ZSBvZiAwDQoJCQkvLyA8ZGl2IHN0eWxlPSJ6LWluZGV4OiAtMTA7Ij48ZGl2IHN0eWxlPSJ6LWluZGV4OiAwOyI+PC9kaXY+PC9kaXY+DQoJCQl2YWx1ZSA9IHBhcnNlSW50KCBlbGVtLmNzcyggInpJbmRleCIgKSwgMTAgKTsNCgkJCWlmICggIWlzTmFOKCB2YWx1ZSApICYmIHZhbHVlICE9PSAwICkgew0KCQkJCXJldHVybiB2YWx1ZTsNCgkJCX0NCgkJfQ0KCQllbGVtID0gZWxlbS5wYXJlbnQoKTsNCgl9DQoNCglyZXR1cm4gMDsNCn0NCi8qIERhdGUgcGlja2VyIG1hbmFnZXIuDQogICBVc2UgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzLCAkLmRhdGVwaWNrZXIsIHRvIGludGVyYWN0IHdpdGggdGhlIGRhdGUgcGlja2VyLg0KICAgU2V0dGluZ3MgZm9yIChncm91cHMgb2YpIGRhdGUgcGlja2VycyBhcmUgbWFpbnRhaW5lZCBpbiBhbiBpbnN0YW5jZSBvYmplY3QsDQogICBhbGxvd2luZyBtdWx0aXBsZSBkaWZmZXJlbnQgc2V0dGluZ3Mgb24gdGhlIHNhbWUgcGFnZS4gKi8NCg0KZnVuY3Rpb24gRGF0ZXBpY2tlcigpIHsNCgl0aGlzLl9jdXJJbnN0ID0gbnVsbDsgLy8gVGhlIGN1cnJlbnQgaW5zdGFuY2UgaW4gdXNlDQoJdGhpcy5fa2V5RXZlbnQgPSBmYWxzZTsgLy8gSWYgdGhlIGxhc3QgZXZlbnQgd2FzIGEga2V5IGV2ZW50DQoJdGhpcy5fZGlzYWJsZWRJbnB1dHMgPSBbXTsgLy8gTGlzdCBvZiBkYXRlIHBpY2tlciBpbnB1dHMgdGhhdCBoYXZlIGJlZW4gZGlzYWJsZWQNCgl0aGlzLl9kYXRlcGlja2VyU2hvd2luZyA9IGZhbHNlOyAvLyBUcnVlIGlmIHRoZSBwb3B1cCBwaWNrZXIgaXMgc2hvd2luZyAsIGZhbHNlIGlmIG5vdA0KCXRoaXMuX2luRGlhbG9nID0gZmFsc2U7IC8vIFRydWUgaWYgc2hvd2luZyB3aXRoaW4gYSAiZGlhbG9nIiwgZmFsc2UgaWYgbm90DQoJdGhpcy5fbWFpbkRpdklkID0gInVpLWRhdGVwaWNrZXItZGl2IjsgLy8gVGhlIElEIG9mIHRoZSBtYWluIGRhdGVwaWNrZXIgZGl2aXNpb24NCgl0aGlzLl9pbmxpbmVDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLWlubGluZSI7IC8vIFRoZSBuYW1lIG9mIHRoZSBpbmxpbmUgbWFya2VyIGNsYXNzDQoJdGhpcy5fYXBwZW5kQ2xhc3MgPSAidWktZGF0ZXBpY2tlci1hcHBlbmQiOyAvLyBUaGUgbmFtZSBvZiB0aGUgYXBwZW5kIG1hcmtlciBjbGFzcw0KCXRoaXMuX3RyaWdnZXJDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLXRyaWdnZXIiOyAvLyBUaGUgbmFtZSBvZiB0aGUgdHJpZ2dlciBtYXJrZXIgY2xhc3MNCgl0aGlzLl9kaWFsb2dDbGFzcyA9ICJ1aS1kYXRlcGlja2VyLWRpYWxvZyI7IC8vIFRoZSBuYW1lIG9mIHRoZSBkaWFsb2cgbWFya2VyIGNsYXNzDQoJdGhpcy5fZGlzYWJsZUNsYXNzID0gInVpLWRhdGVwaWNrZXItZGlzYWJsZWQiOyAvLyBUaGUgbmFtZSBvZiB0aGUgZGlzYWJsZWQgY292ZXJpbmcgbWFya2VyIGNsYXNzDQoJdGhpcy5fdW5zZWxlY3RhYmxlQ2xhc3MgPSAidWktZGF0ZXBpY2tlci11bnNlbGVjdGFibGUiOyAvLyBUaGUgbmFtZSBvZiB0aGUgdW5zZWxlY3RhYmxlIGNlbGwgbWFya2VyIGNsYXNzDQoJdGhpcy5fY3VycmVudENsYXNzID0gInVpLWRhdGVwaWNrZXItY3VycmVudC1kYXkiOyAvLyBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBkYXkgbWFya2VyIGNsYXNzDQoJdGhpcy5fZGF5T3ZlckNsYXNzID0gInVpLWRhdGVwaWNrZXItZGF5cy1jZWxsLW92ZXIiOyAvLyBUaGUgbmFtZSBvZiB0aGUgZGF5IGhvdmVyIG1hcmtlciBjbGFzcw0KCXRoaXMucmVnaW9uYWwgPSBbXTsgLy8gQXZhaWxhYmxlIHJlZ2lvbmFsIHNldHRpbmdzLCBpbmRleGVkIGJ5IGxhbmd1YWdlIGNvZGUNCgl0aGlzLnJlZ2lvbmFsWyAiIiBdID0geyAvLyBEZWZhdWx0IHJlZ2lvbmFsIHNldHRpbmdzDQoJCWNsb3NlVGV4dDogIkRvbmUiLCAvLyBEaXNwbGF5IHRleHQgZm9yIGNsb3NlIGxpbmsNCgkJcHJldlRleHQ6ICJQcmV2IiwgLy8gRGlzcGxheSB0ZXh0IGZvciBwcmV2aW91cyBtb250aCBsaW5rDQoJCW5leHRUZXh0OiAiTmV4dCIsIC8vIERpc3BsYXkgdGV4dCBmb3IgbmV4dCBtb250aCBsaW5rDQoJCWN1cnJlbnRUZXh0OiAiVG9kYXkiLCAvLyBEaXNwbGF5IHRleHQgZm9yIGN1cnJlbnQgbW9udGggbGluaw0KCQltb250aE5hbWVzOiBbICJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsDQoJCQkiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIiBdLCAvLyBOYW1lcyBvZiBtb250aHMgZm9yIGRyb3AtZG93biBhbmQgZm9ybWF0dGluZw0KCQltb250aE5hbWVzU2hvcnQ6IFsgIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIiBdLCAvLyBGb3IgZm9ybWF0dGluZw0KCQlkYXlOYW1lczogWyAiU3VuZGF5IiwgIk1vbmRheSIsICJUdWVzZGF5IiwgIldlZG5lc2RheSIsICJUaHVyc2RheSIsICJGcmlkYXkiLCAiU2F0dXJkYXkiIF0sIC8vIEZvciBmb3JtYXR0aW5nDQoJCWRheU5hbWVzU2hvcnQ6IFsgIlN1biIsICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIgXSwgLy8gRm9yIGZvcm1hdHRpbmcNCgkJZGF5TmFtZXNNaW46IFsgIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIiBdLCAvLyBDb2x1bW4gaGVhZGluZ3MgZm9yIGRheXMgc3RhcnRpbmcgYXQgU3VuZGF5DQoJCXdlZWtIZWFkZXI6ICJXayIsIC8vIENvbHVtbiBoZWFkZXIgZm9yIHdlZWsgb2YgdGhlIHllYXINCgkJZGF0ZUZvcm1hdDogIm1tL2RkL3l5IiwgLy8gU2VlIGZvcm1hdCBvcHRpb25zIG9uIHBhcnNlRGF0ZQ0KCQlmaXJzdERheTogMCwgLy8gVGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlaywgU3VuID0gMCwgTW9uID0gMSwgLi4uDQoJCWlzUlRMOiBmYWxzZSwgLy8gVHJ1ZSBpZiByaWdodC10by1sZWZ0IGxhbmd1YWdlLCBmYWxzZSBpZiBsZWZ0LXRvLXJpZ2h0DQoJCXNob3dNb250aEFmdGVyWWVhcjogZmFsc2UsIC8vIFRydWUgaWYgdGhlIHllYXIgc2VsZWN0IHByZWNlZGVzIG1vbnRoLCBmYWxzZSBmb3IgbW9udGggdGhlbiB5ZWFyDQoJCXllYXJTdWZmaXg6ICIiIC8vIEFkZGl0aW9uYWwgdGV4dCB0byBhcHBlbmQgdG8gdGhlIHllYXIgaW4gdGhlIG1vbnRoIGhlYWRlcnMNCgl9Ow0KCXRoaXMuX2RlZmF1bHRzID0geyAvLyBHbG9iYWwgZGVmYXVsdHMgZm9yIGFsbCB0aGUgZGF0ZSBwaWNrZXIgaW5zdGFuY2VzDQoJCXNob3dPbjogImZvY3VzIiwgLy8gImZvY3VzIiBmb3IgcG9wdXAgb24gZm9jdXMsDQoJCQkvLyAiYnV0dG9uIiBmb3IgdHJpZ2dlciBidXR0b24sIG9yICJib3RoIiBmb3IgZWl0aGVyDQoJCXNob3dBbmltOiAiZmFkZUluIiwgLy8gTmFtZSBvZiBqUXVlcnkgYW5pbWF0aW9uIGZvciBwb3B1cA0KCQlzaG93T3B0aW9uczoge30sIC8vIE9wdGlvbnMgZm9yIGVuaGFuY2VkIGFuaW1hdGlvbnMNCgkJZGVmYXVsdERhdGU6IG51bGwsIC8vIFVzZWQgd2hlbiBmaWVsZCBpcyBibGFuazogYWN0dWFsIGRhdGUsDQoJCQkvLyArLy1udW1iZXIgZm9yIG9mZnNldCBmcm9tIHRvZGF5LCBudWxsIGZvciB0b2RheQ0KCQlhcHBlbmRUZXh0OiAiIiwgLy8gRGlzcGxheSB0ZXh0IGZvbGxvd2luZyB0aGUgaW5wdXQgYm94LCBlLmcuIHNob3dpbmcgdGhlIGZvcm1hdA0KCQlidXR0b25UZXh0OiAiLi4uIiwgLy8gVGV4dCBmb3IgdHJpZ2dlciBidXR0b24NCgkJYnV0dG9uSW1hZ2U6ICIiLCAvLyBVUkwgZm9yIHRyaWdnZXIgYnV0dG9uIGltYWdlDQoJCWJ1dHRvbkltYWdlT25seTogZmFsc2UsIC8vIFRydWUgaWYgdGhlIGltYWdlIGFwcGVhcnMgYWxvbmUsIGZhbHNlIGlmIGl0IGFwcGVhcnMgb24gYSBidXR0b24NCgkJaGlkZUlmTm9QcmV2TmV4dDogZmFsc2UsIC8vIFRydWUgdG8gaGlkZSBuZXh0L3ByZXZpb3VzIG1vbnRoIGxpbmtzDQoJCQkvLyBpZiBub3QgYXBwbGljYWJsZSwgZmFsc2UgdG8ganVzdCBkaXNhYmxlIHRoZW0NCgkJbmF2aWdhdGlvbkFzRGF0ZUZvcm1hdDogZmFsc2UsIC8vIFRydWUgaWYgZGF0ZSBmb3JtYXR0aW5nIGFwcGxpZWQgdG8gcHJldi90b2RheS9uZXh0IGxpbmtzDQoJCWdvdG9DdXJyZW50OiBmYWxzZSwgLy8gVHJ1ZSBpZiB0b2RheSBsaW5rIGdvZXMgYmFjayB0byBjdXJyZW50IHNlbGVjdGlvbiBpbnN0ZWFkDQoJCWNoYW5nZU1vbnRoOiBmYWxzZSwgLy8gVHJ1ZSBpZiBtb250aCBjYW4gYmUgc2VsZWN0ZWQgZGlyZWN0bHksIGZhbHNlIGlmIG9ubHkgcHJldi9uZXh0DQoJCWNoYW5nZVllYXI6IGZhbHNlLCAvLyBUcnVlIGlmIHllYXIgY2FuIGJlIHNlbGVjdGVkIGRpcmVjdGx5LCBmYWxzZSBpZiBvbmx5IHByZXYvbmV4dA0KCQl5ZWFyUmFuZ2U6ICJjLTEwOmMrMTAiLCAvLyBSYW5nZSBvZiB5ZWFycyB0byBkaXNwbGF5IGluIGRyb3AtZG93biwNCgkJCS8vIGVpdGhlciByZWxhdGl2ZSB0byB0b2RheSdzIHllYXIgKC1ubjorbm4pLCByZWxhdGl2ZSB0byBjdXJyZW50bHkgZGlzcGxheWVkIHllYXINCgkJCS8vIChjLW5uOmMrbm4pLCBhYnNvbHV0ZSAobm5ubjpubm5uKSwgb3IgYSBjb21iaW5hdGlvbiBvZiB0aGUgYWJvdmUgKG5ubm46LW4pDQoJCXNob3dPdGhlck1vbnRoczogZmFsc2UsIC8vIFRydWUgdG8gc2hvdyBkYXRlcyBpbiBvdGhlciBtb250aHMsIGZhbHNlIHRvIGxlYXZlIGJsYW5rDQoJCXNlbGVjdE90aGVyTW9udGhzOiBmYWxzZSwgLy8gVHJ1ZSB0byBhbGxvdyBzZWxlY3Rpb24gb2YgZGF0ZXMgaW4gb3RoZXIgbW9udGhzLCBmYWxzZSBmb3IgdW5zZWxlY3RhYmxlDQoJCXNob3dXZWVrOiBmYWxzZSwgLy8gVHJ1ZSB0byBzaG93IHdlZWsgb2YgdGhlIHllYXIsIGZhbHNlIHRvIG5vdCBzaG93IGl0DQoJCWNhbGN1bGF0ZVdlZWs6IHRoaXMuaXNvODYwMVdlZWssIC8vIEhvdyB0byBjYWxjdWxhdGUgdGhlIHdlZWsgb2YgdGhlIHllYXIsDQoJCQkvLyB0YWtlcyBhIERhdGUgYW5kIHJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgd2VlayBmb3IgaXQNCgkJc2hvcnRZZWFyQ3V0b2ZmOiAiKzEwIiwgLy8gU2hvcnQgeWVhciB2YWx1ZXMgPCB0aGlzIGFyZSBpbiB0aGUgY3VycmVudCBjZW50dXJ5LA0KCQkJLy8gPiB0aGlzIGFyZSBpbiB0aGUgcHJldmlvdXMgY2VudHVyeSwNCgkJCS8vIHN0cmluZyB2YWx1ZSBzdGFydGluZyB3aXRoICIrIiBmb3IgY3VycmVudCB5ZWFyICsgdmFsdWUNCgkJbWluRGF0ZTogbnVsbCwgLy8gVGhlIGVhcmxpZXN0IHNlbGVjdGFibGUgZGF0ZSwgb3IgbnVsbCBmb3Igbm8gbGltaXQNCgkJbWF4RGF0ZTogbnVsbCwgLy8gVGhlIGxhdGVzdCBzZWxlY3RhYmxlIGRhdGUsIG9yIG51bGwgZm9yIG5vIGxpbWl0DQoJCWR1cmF0aW9uOiAiZmFzdCIsIC8vIER1cmF0aW9uIG9mIGRpc3BsYXkvY2xvc3VyZQ0KCQliZWZvcmVTaG93RGF5OiBudWxsLCAvLyBGdW5jdGlvbiB0aGF0IHRha2VzIGEgZGF0ZSBhbmQgcmV0dXJucyBhbiBhcnJheSB3aXRoDQoJCQkvLyBbMF0gPSB0cnVlIGlmIHNlbGVjdGFibGUsIGZhbHNlIGlmIG5vdCwgWzFdID0gY3VzdG9tIENTUyBjbGFzcyBuYW1lKHMpIG9yICIiLA0KCQkJLy8gWzJdID0gY2VsbCB0aXRsZSAob3B0aW9uYWwpLCBlLmcuICQuZGF0ZXBpY2tlci5ub1dlZWtlbmRzDQoJCWJlZm9yZVNob3c6IG51bGwsIC8vIEZ1bmN0aW9uIHRoYXQgdGFrZXMgYW4gaW5wdXQgZmllbGQgYW5kDQoJCQkvLyByZXR1cm5zIGEgc2V0IG9mIGN1c3RvbSBzZXR0aW5ncyBmb3IgdGhlIGRhdGUgcGlja2VyDQoJCW9uU2VsZWN0OiBudWxsLCAvLyBEZWZpbmUgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGVuIGEgZGF0ZSBpcyBzZWxlY3RlZA0KCQlvbkNoYW5nZU1vbnRoWWVhcjogbnVsbCwgLy8gRGVmaW5lIGEgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGUgbW9udGggb3IgeWVhciBpcyBjaGFuZ2VkDQoJCW9uQ2xvc2U6IG51bGwsIC8vIERlZmluZSBhIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIGRhdGVwaWNrZXIgaXMgY2xvc2VkDQoJCW51bWJlck9mTW9udGhzOiAxLCAvLyBOdW1iZXIgb2YgbW9udGhzIHRvIHNob3cgYXQgYSB0aW1lDQoJCXNob3dDdXJyZW50QXRQb3M6IDAsIC8vIFRoZSBwb3NpdGlvbiBpbiBtdWx0aXBlIG1vbnRocyBhdCB3aGljaCB0byBzaG93IHRoZSBjdXJyZW50IG1vbnRoIChzdGFydGluZyBhdCAwKQ0KCQlzdGVwTW9udGhzOiAxLCAvLyBOdW1iZXIgb2YgbW9udGhzIHRvIHN0ZXAgYmFjay9mb3J3YXJkDQoJCXN0ZXBCaWdNb250aHM6IDEyLCAvLyBOdW1iZXIgb2YgbW9udGhzIHRvIHN0ZXAgYmFjay9mb3J3YXJkIGZvciB0aGUgYmlnIGxpbmtzDQoJCWFsdEZpZWxkOiAiIiwgLy8gU2VsZWN0b3IgZm9yIGFuIGFsdGVybmF0ZSBmaWVsZCB0byBzdG9yZSBzZWxlY3RlZCBkYXRlcyBpbnRvDQoJCWFsdEZvcm1hdDogIiIsIC8vIFRoZSBkYXRlIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBhbHRlcm5hdGUgZmllbGQNCgkJY29uc3RyYWluSW5wdXQ6IHRydWUsIC8vIFRoZSBpbnB1dCBpcyBjb25zdHJhaW5lZCBieSB0aGUgY3VycmVudCBkYXRlIGZvcm1hdA0KCQlzaG93QnV0dG9uUGFuZWw6IGZhbHNlLCAvLyBUcnVlIHRvIHNob3cgYnV0dG9uIHBhbmVsLCBmYWxzZSB0byBub3Qgc2hvdyBpdA0KCQlhdXRvU2l6ZTogZmFsc2UsIC8vIFRydWUgdG8gc2l6ZSB0aGUgaW5wdXQgZm9yIHRoZSBkYXRlIGZvcm1hdCwgZmFsc2UgdG8gbGVhdmUgYXMgaXMNCgkJZGlzYWJsZWQ6IGZhbHNlIC8vIFRoZSBpbml0aWFsIGRpc2FibGVkIHN0YXRlDQoJfTsNCgkkLmV4dGVuZCggdGhpcy5fZGVmYXVsdHMsIHRoaXMucmVnaW9uYWxbICIiIF0gKTsNCgl0aGlzLnJlZ2lvbmFsLmVuID0gJC5leHRlbmQoIHRydWUsIHt9LCB0aGlzLnJlZ2lvbmFsWyAiIiBdICk7DQoJdGhpcy5yZWdpb25hbFsgImVuLVVTIiBdID0gJC5leHRlbmQoIHRydWUsIHt9LCB0aGlzLnJlZ2lvbmFsLmVuICk7DQoJdGhpcy5kcERpdiA9IGRhdGVwaWNrZXJfYmluZEhvdmVyKCAkKCAiPGRpdiBpZD0nIiArIHRoaXMuX21haW5EaXZJZCArICInIGNsYXNzPSd1aS1kYXRlcGlja2VyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLWFsbCc+PC9kaXY+IiApICk7DQp9DQoNCiQuZXh0ZW5kKCBEYXRlcGlja2VyLnByb3RvdHlwZSwgew0KCS8qIENsYXNzIG5hbWUgYWRkZWQgdG8gZWxlbWVudHMgdG8gaW5kaWNhdGUgYWxyZWFkeSBjb25maWd1cmVkIHdpdGggYSBkYXRlIHBpY2tlci4gKi8NCgltYXJrZXJDbGFzc05hbWU6ICJoYXNEYXRlcGlja2VyIiwNCg0KCS8vS2VlcCB0cmFjayBvZiB0aGUgbWF4aW11bSBudW1iZXIgb2Ygcm93cyBkaXNwbGF5ZWQgKHNlZSAjNzA0MykNCgltYXhSb3dzOiA0LA0KDQoJLy8gVE9ETyByZW5hbWUgdG8gIndpZGdldCIgd2hlbiBzd2l0Y2hpbmcgdG8gd2lkZ2V0IGZhY3RvcnkNCglfd2lkZ2V0RGF0ZXBpY2tlcjogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmRwRGl2Ow0KCX0sDQoNCgkvKiBPdmVycmlkZSB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgYWxsIGluc3RhbmNlcyBvZiB0aGUgZGF0ZSBwaWNrZXIuDQoJICogQHBhcmFtICBzZXR0aW5ncyAgb2JqZWN0IC0gdGhlIG5ldyBzZXR0aW5ncyB0byB1c2UgYXMgZGVmYXVsdHMgKGFub255bW91cyBvYmplY3QpDQoJICogQHJldHVybiB0aGUgbWFuYWdlciBvYmplY3QNCgkgKi8NCglzZXREZWZhdWx0czogZnVuY3Rpb24oIHNldHRpbmdzICkgew0KCQlkYXRlcGlja2VyX2V4dGVuZFJlbW92ZSggdGhpcy5fZGVmYXVsdHMsIHNldHRpbmdzIHx8IHt9ICk7DQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCgkvKiBBdHRhY2ggdGhlIGRhdGUgcGlja2VyIHRvIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHBhcmFtICBzZXR0aW5ncyAgb2JqZWN0IC0gdGhlIG5ldyBzZXR0aW5ncyB0byB1c2UgZm9yIHRoaXMgZGF0ZSBwaWNrZXIgaW5zdGFuY2UgKGFub255bW91cykNCgkgKi8NCglfYXR0YWNoRGF0ZXBpY2tlcjogZnVuY3Rpb24oIHRhcmdldCwgc2V0dGluZ3MgKSB7DQoJCXZhciBub2RlTmFtZSwgaW5saW5lLCBpbnN0Ow0KCQlub2RlTmFtZSA9IHRhcmdldC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOw0KCQlpbmxpbmUgPSAoIG5vZGVOYW1lID09PSAiZGl2IiB8fCBub2RlTmFtZSA9PT0gInNwYW4iICk7DQoJCWlmICggIXRhcmdldC5pZCApIHsNCgkJCXRoaXMudXVpZCArPSAxOw0KCQkJdGFyZ2V0LmlkID0gImRwIiArIHRoaXMudXVpZDsNCgkJfQ0KCQlpbnN0ID0gdGhpcy5fbmV3SW5zdCggJCggdGFyZ2V0ICksIGlubGluZSApOw0KCQlpbnN0LnNldHRpbmdzID0gJC5leHRlbmQoIHt9LCBzZXR0aW5ncyB8fCB7fSApOw0KCQlpZiAoIG5vZGVOYW1lID09PSAiaW5wdXQiICkgew0KCQkJdGhpcy5fY29ubmVjdERhdGVwaWNrZXIoIHRhcmdldCwgaW5zdCApOw0KCQl9IGVsc2UgaWYgKCBpbmxpbmUgKSB7DQoJCQl0aGlzLl9pbmxpbmVEYXRlcGlja2VyKCB0YXJnZXQsIGluc3QgKTsNCgkJfQ0KCX0sDQoNCgkvKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2JqZWN0LiAqLw0KCV9uZXdJbnN0OiBmdW5jdGlvbiggdGFyZ2V0LCBpbmxpbmUgKSB7DQoJCXZhciBpZCA9IHRhcmdldFsgMCBdLmlkLnJlcGxhY2UoIC8oW15BLVphLXowLTlfXC1dKS9nLCAiXFxcXCQxIiApOyAvLyBlc2NhcGUgalF1ZXJ5IG1ldGEgY2hhcnMNCgkJcmV0dXJuIHsgaWQ6IGlkLCBpbnB1dDogdGFyZ2V0LCAvLyBhc3NvY2lhdGVkIHRhcmdldA0KCQkJc2VsZWN0ZWREYXk6IDAsIHNlbGVjdGVkTW9udGg6IDAsIHNlbGVjdGVkWWVhcjogMCwgLy8gY3VycmVudCBzZWxlY3Rpb24NCgkJCWRyYXdNb250aDogMCwgZHJhd1llYXI6IDAsIC8vIG1vbnRoIGJlaW5nIGRyYXduDQoJCQlpbmxpbmU6IGlubGluZSwgLy8gaXMgZGF0ZXBpY2tlciBpbmxpbmUgb3Igbm90DQoJCQlkcERpdjogKCAhaW5saW5lID8gdGhpcy5kcERpdiA6IC8vIHByZXNlbnRhdGlvbiBkaXYNCgkJCWRhdGVwaWNrZXJfYmluZEhvdmVyKCAkKCAiPGRpdiBjbGFzcz0nIiArIHRoaXMuX2lubGluZUNsYXNzICsgIiB1aS1kYXRlcGlja2VyIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1oZWxwZXItY2xlYXJmaXggdWktY29ybmVyLWFsbCc+PC9kaXY+IiApICkgKSB9Ow0KCX0sDQoNCgkvKiBBdHRhY2ggdGhlIGRhdGUgcGlja2VyIHRvIGFuIGlucHV0IGZpZWxkLiAqLw0KCV9jb25uZWN0RGF0ZXBpY2tlcjogZnVuY3Rpb24oIHRhcmdldCwgaW5zdCApIHsNCgkJdmFyIGlucHV0ID0gJCggdGFyZ2V0ICk7DQoJCWluc3QuYXBwZW5kID0gJCggW10gKTsNCgkJaW5zdC50cmlnZ2VyID0gJCggW10gKTsNCgkJaWYgKCBpbnB1dC5oYXNDbGFzcyggdGhpcy5tYXJrZXJDbGFzc05hbWUgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQl0aGlzLl9hdHRhY2htZW50cyggaW5wdXQsIGluc3QgKTsNCgkJaW5wdXQuYWRkQ2xhc3MoIHRoaXMubWFya2VyQ2xhc3NOYW1lICkub24oICJrZXlkb3duIiwgdGhpcy5fZG9LZXlEb3duICkuDQoJCQlvbiggImtleXByZXNzIiwgdGhpcy5fZG9LZXlQcmVzcyApLm9uKCAia2V5dXAiLCB0aGlzLl9kb0tleVVwICk7DQoJCXRoaXMuX2F1dG9TaXplKCBpbnN0ICk7DQoJCSQuZGF0YSggdGFyZ2V0LCAiZGF0ZXBpY2tlciIsIGluc3QgKTsNCg0KCQkvL0lmIGRpc2FibGVkIG9wdGlvbiBpcyB0cnVlLCBkaXNhYmxlIHRoZSBkYXRlcGlja2VyIG9uY2UgaXQgaGFzIGJlZW4gYXR0YWNoZWQgdG8gdGhlIGlucHV0IChzZWUgdGlja2V0ICM1NjY1KQ0KCQlpZiAoIGluc3Quc2V0dGluZ3MuZGlzYWJsZWQgKSB7DQoJCQl0aGlzLl9kaXNhYmxlRGF0ZXBpY2tlciggdGFyZ2V0ICk7DQoJCX0NCgl9LA0KDQoJLyogTWFrZSBhdHRhY2htZW50cyBiYXNlZCBvbiBzZXR0aW5ncy4gKi8NCglfYXR0YWNobWVudHM6IGZ1bmN0aW9uKCBpbnB1dCwgaW5zdCApIHsNCgkJdmFyIHNob3dPbiwgYnV0dG9uVGV4dCwgYnV0dG9uSW1hZ2UsDQoJCQlhcHBlbmRUZXh0ID0gdGhpcy5fZ2V0KCBpbnN0LCAiYXBwZW5kVGV4dCIgKSwNCgkJCWlzUlRMID0gdGhpcy5fZ2V0KCBpbnN0LCAiaXNSVEwiICk7DQoNCgkJaWYgKCBpbnN0LmFwcGVuZCApIHsNCgkJCWluc3QuYXBwZW5kLnJlbW92ZSgpOw0KCQl9DQoJCWlmICggYXBwZW5kVGV4dCApIHsNCgkJCWluc3QuYXBwZW5kID0gJCggIjxzcGFuIGNsYXNzPSciICsgdGhpcy5fYXBwZW5kQ2xhc3MgKyAiJz4iICsgYXBwZW5kVGV4dCArICI8L3NwYW4+IiApOw0KCQkJaW5wdXRbIGlzUlRMID8gImJlZm9yZSIgOiAiYWZ0ZXIiIF0oIGluc3QuYXBwZW5kICk7DQoJCX0NCg0KCQlpbnB1dC5vZmYoICJmb2N1cyIsIHRoaXMuX3Nob3dEYXRlcGlja2VyICk7DQoNCgkJaWYgKCBpbnN0LnRyaWdnZXIgKSB7DQoJCQlpbnN0LnRyaWdnZXIucmVtb3ZlKCk7DQoJCX0NCg0KCQlzaG93T24gPSB0aGlzLl9nZXQoIGluc3QsICJzaG93T24iICk7DQoJCWlmICggc2hvd09uID09PSAiZm9jdXMiIHx8IHNob3dPbiA9PT0gImJvdGgiICkgeyAvLyBwb3AtdXAgZGF0ZSBwaWNrZXIgd2hlbiBpbiB0aGUgbWFya2VkIGZpZWxkDQoJCQlpbnB1dC5vbiggImZvY3VzIiwgdGhpcy5fc2hvd0RhdGVwaWNrZXIgKTsNCgkJfQ0KCQlpZiAoIHNob3dPbiA9PT0gImJ1dHRvbiIgfHwgc2hvd09uID09PSAiYm90aCIgKSB7IC8vIHBvcC11cCBkYXRlIHBpY2tlciB3aGVuIGJ1dHRvbiBjbGlja2VkDQoJCQlidXR0b25UZXh0ID0gdGhpcy5fZ2V0KCBpbnN0LCAiYnV0dG9uVGV4dCIgKTsNCgkJCWJ1dHRvbkltYWdlID0gdGhpcy5fZ2V0KCBpbnN0LCAiYnV0dG9uSW1hZ2UiICk7DQoJCQlpbnN0LnRyaWdnZXIgPSAkKCB0aGlzLl9nZXQoIGluc3QsICJidXR0b25JbWFnZU9ubHkiICkgPw0KCQkJCSQoICI8aW1nLz4iICkuYWRkQ2xhc3MoIHRoaXMuX3RyaWdnZXJDbGFzcyApLg0KCQkJCQlhdHRyKCB7IHNyYzogYnV0dG9uSW1hZ2UsIGFsdDogYnV0dG9uVGV4dCwgdGl0bGU6IGJ1dHRvblRleHQgfSApIDoNCgkJCQkkKCAiPGJ1dHRvbiB0eXBlPSdidXR0b24nPjwvYnV0dG9uPiIgKS5hZGRDbGFzcyggdGhpcy5fdHJpZ2dlckNsYXNzICkuDQoJCQkJCWh0bWwoICFidXR0b25JbWFnZSA/IGJ1dHRvblRleHQgOiAkKCAiPGltZy8+IiApLmF0dHIoDQoJCQkJCXsgc3JjOmJ1dHRvbkltYWdlLCBhbHQ6YnV0dG9uVGV4dCwgdGl0bGU6YnV0dG9uVGV4dCB9ICkgKSApOw0KCQkJaW5wdXRbIGlzUlRMID8gImJlZm9yZSIgOiAiYWZ0ZXIiIF0oIGluc3QudHJpZ2dlciApOw0KCQkJaW5zdC50cmlnZ2VyLm9uKCAiY2xpY2siLCBmdW5jdGlvbigpIHsNCgkJCQlpZiAoICQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgJiYgJC5kYXRlcGlja2VyLl9sYXN0SW5wdXQgPT09IGlucHV0WyAwIF0gKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJCQl9IGVsc2UgaWYgKCAkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICYmICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ICE9PSBpbnB1dFsgMCBdICkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJCSQuZGF0ZXBpY2tlci5fc2hvd0RhdGVwaWNrZXIoIGlucHV0WyAwIF0gKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkLmRhdGVwaWNrZXIuX3Nob3dEYXRlcGlja2VyKCBpbnB1dFsgMCBdICk7DQoJCQkJfQ0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0gKTsNCgkJfQ0KCX0sDQoNCgkvKiBBcHBseSB0aGUgbWF4aW11bSBsZW5ndGggZm9yIHRoZSBkYXRlIGZvcm1hdC4gKi8NCglfYXV0b1NpemU6IGZ1bmN0aW9uKCBpbnN0ICkgew0KCQlpZiAoIHRoaXMuX2dldCggaW5zdCwgImF1dG9TaXplIiApICYmICFpbnN0LmlubGluZSApIHsNCgkJCXZhciBmaW5kTWF4LCBtYXgsIG1heEksIGksDQoJCQkJZGF0ZSA9IG5ldyBEYXRlKCAyMDA5LCAxMiAtIDEsIDIwICksIC8vIEVuc3VyZSBkb3VibGUgZGlnaXRzDQoJCQkJZGF0ZUZvcm1hdCA9IHRoaXMuX2dldCggaW5zdCwgImRhdGVGb3JtYXQiICk7DQoNCgkJCWlmICggZGF0ZUZvcm1hdC5tYXRjaCggL1tETV0vICkgKSB7DQoJCQkJZmluZE1heCA9IGZ1bmN0aW9uKCBuYW1lcyApIHsNCgkJCQkJbWF4ID0gMDsNCgkJCQkJbWF4SSA9IDA7DQoJCQkJCWZvciAoIGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKysgKSB7DQoJCQkJCQlpZiAoIG5hbWVzWyBpIF0ubGVuZ3RoID4gbWF4ICkgew0KCQkJCQkJCW1heCA9IG5hbWVzWyBpIF0ubGVuZ3RoOw0KCQkJCQkJCW1heEkgPSBpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCXJldHVybiBtYXhJOw0KCQkJCX07DQoJCQkJZGF0ZS5zZXRNb250aCggZmluZE1heCggdGhpcy5fZ2V0KCBpbnN0LCAoIGRhdGVGb3JtYXQubWF0Y2goIC9NTS8gKSA/DQoJCQkJCSJtb250aE5hbWVzIiA6ICJtb250aE5hbWVzU2hvcnQiICkgKSApICk7DQoJCQkJZGF0ZS5zZXREYXRlKCBmaW5kTWF4KCB0aGlzLl9nZXQoIGluc3QsICggZGF0ZUZvcm1hdC5tYXRjaCggL0RELyApID8NCgkJCQkJImRheU5hbWVzIiA6ICJkYXlOYW1lc1Nob3J0IiApICkgKSArIDIwIC0gZGF0ZS5nZXREYXkoKSApOw0KCQkJfQ0KCQkJaW5zdC5pbnB1dC5hdHRyKCAic2l6ZSIsIHRoaXMuX2Zvcm1hdERhdGUoIGluc3QsIGRhdGUgKS5sZW5ndGggKTsNCgkJfQ0KCX0sDQoNCgkvKiBBdHRhY2ggYW4gaW5saW5lIGRhdGUgcGlja2VyIHRvIGEgZGl2LiAqLw0KCV9pbmxpbmVEYXRlcGlja2VyOiBmdW5jdGlvbiggdGFyZ2V0LCBpbnN0ICkgew0KCQl2YXIgZGl2U3BhbiA9ICQoIHRhcmdldCApOw0KCQlpZiAoIGRpdlNwYW4uaGFzQ2xhc3MoIHRoaXMubWFya2VyQ2xhc3NOYW1lICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCgkJZGl2U3Bhbi5hZGRDbGFzcyggdGhpcy5tYXJrZXJDbGFzc05hbWUgKS5hcHBlbmQoIGluc3QuZHBEaXYgKTsNCgkJJC5kYXRhKCB0YXJnZXQsICJkYXRlcGlja2VyIiwgaW5zdCApOw0KCQl0aGlzLl9zZXREYXRlKCBpbnN0LCB0aGlzLl9nZXREZWZhdWx0RGF0ZSggaW5zdCApLCB0cnVlICk7DQoJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoIGluc3QgKTsNCgkJdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKCBpbnN0ICk7DQoNCgkJLy9JZiBkaXNhYmxlZCBvcHRpb24gaXMgdHJ1ZSwgZGlzYWJsZSB0aGUgZGF0ZXBpY2tlciBiZWZvcmUgc2hvd2luZyBpdCAoc2VlIHRpY2tldCAjNTY2NSkNCgkJaWYgKCBpbnN0LnNldHRpbmdzLmRpc2FibGVkICkgew0KCQkJdGhpcy5fZGlzYWJsZURhdGVwaWNrZXIoIHRhcmdldCApOw0KCQl9DQoNCgkJLy8gU2V0IGRpc3BsYXk6YmxvY2sgaW4gcGxhY2Ugb2YgaW5zdC5kcERpdi5zaG93KCkgd2hpY2ggd29uJ3Qgd29yayBvbiBkaXNjb25uZWN0ZWQgZWxlbWVudHMNCgkJLy8gaHR0cDovL2J1Z3MuanF1ZXJ5dWkuY29tL3RpY2tldC83NTUyIC0gQSBEYXRlcGlja2VyIGNyZWF0ZWQgb24gYSBkZXRhY2hlZCBkaXYgaGFzIHplcm8gaGVpZ2h0DQoJCWluc3QuZHBEaXYuY3NzKCAiZGlzcGxheSIsICJibG9jayIgKTsNCgl9LA0KDQoJLyogUG9wLXVwIHRoZSBkYXRlIHBpY2tlciBpbiBhICJkaWFsb2ciIGJveC4NCgkgKiBAcGFyYW0gIGlucHV0IGVsZW1lbnQgLSBpZ25vcmVkDQoJICogQHBhcmFtICBkYXRlCXN0cmluZyBvciBEYXRlIC0gdGhlIGluaXRpYWwgZGF0ZSB0byBkaXNwbGF5DQoJICogQHBhcmFtICBvblNlbGVjdCAgZnVuY3Rpb24gLSB0aGUgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIGEgZGF0ZSBpcyBzZWxlY3RlZA0KCSAqIEBwYXJhbSAgc2V0dGluZ3MgIG9iamVjdCAtIHVwZGF0ZSB0aGUgZGlhbG9nIGRhdGUgcGlja2VyIGluc3RhbmNlJ3Mgc2V0dGluZ3MgKGFub255bW91cyBvYmplY3QpDQoJICogQHBhcmFtICBwb3MgaW50WzJdIC0gY29vcmRpbmF0ZXMgZm9yIHRoZSBkaWFsb2cncyBwb3NpdGlvbiB3aXRoaW4gdGhlIHNjcmVlbiBvcg0KCSAqCQkJCQlldmVudCAtIHdpdGggeC95IGNvb3JkaW5hdGVzIG9yDQoJICoJCQkJCWxlYXZlIGVtcHR5IGZvciBkZWZhdWx0IChzY3JlZW4gY2VudHJlKQ0KCSAqIEByZXR1cm4gdGhlIG1hbmFnZXIgb2JqZWN0DQoJICovDQoJX2RpYWxvZ0RhdGVwaWNrZXI6IGZ1bmN0aW9uKCBpbnB1dCwgZGF0ZSwgb25TZWxlY3QsIHNldHRpbmdzLCBwb3MgKSB7DQoJCXZhciBpZCwgYnJvd3NlcldpZHRoLCBicm93c2VySGVpZ2h0LCBzY3JvbGxYLCBzY3JvbGxZLA0KCQkJaW5zdCA9IHRoaXMuX2RpYWxvZ0luc3Q7IC8vIGludGVybmFsIGluc3RhbmNlDQoNCgkJaWYgKCAhaW5zdCApIHsNCgkJCXRoaXMudXVpZCArPSAxOw0KCQkJaWQgPSAiZHAiICsgdGhpcy51dWlkOw0KCQkJdGhpcy5fZGlhbG9nSW5wdXQgPSAkKCAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSciICsgaWQgKw0KCQkJCSInIHN0eWxlPSdwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogLTEwMHB4OyB3aWR0aDogMHB4OycvPiIgKTsNCgkJCXRoaXMuX2RpYWxvZ0lucHV0Lm9uKCAia2V5ZG93biIsIHRoaXMuX2RvS2V5RG93biApOw0KCQkJJCggImJvZHkiICkuYXBwZW5kKCB0aGlzLl9kaWFsb2dJbnB1dCApOw0KCQkJaW5zdCA9IHRoaXMuX2RpYWxvZ0luc3QgPSB0aGlzLl9uZXdJbnN0KCB0aGlzLl9kaWFsb2dJbnB1dCwgZmFsc2UgKTsNCgkJCWluc3Quc2V0dGluZ3MgPSB7fTsNCgkJCSQuZGF0YSggdGhpcy5fZGlhbG9nSW5wdXRbIDAgXSwgImRhdGVwaWNrZXIiLCBpbnN0ICk7DQoJCX0NCgkJZGF0ZXBpY2tlcl9leHRlbmRSZW1vdmUoIGluc3Quc2V0dGluZ3MsIHNldHRpbmdzIHx8IHt9ICk7DQoJCWRhdGUgPSAoIGRhdGUgJiYgZGF0ZS5jb25zdHJ1Y3RvciA9PT0gRGF0ZSA/IHRoaXMuX2Zvcm1hdERhdGUoIGluc3QsIGRhdGUgKSA6IGRhdGUgKTsNCgkJdGhpcy5fZGlhbG9nSW5wdXQudmFsKCBkYXRlICk7DQoNCgkJdGhpcy5fcG9zID0gKCBwb3MgPyAoIHBvcy5sZW5ndGggPyBwb3MgOiBbIHBvcy5wYWdlWCwgcG9zLnBhZ2VZIF0gKSA6IG51bGwgKTsNCgkJaWYgKCAhdGhpcy5fcG9zICkgew0KCQkJYnJvd3NlcldpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoOw0KCQkJYnJvd3NlckhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7DQoJCQlzY3JvbGxYID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0Ow0KCQkJc2Nyb2xsWSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7DQoJCQl0aGlzLl9wb3MgPSAvLyBzaG91bGQgdXNlIGFjdHVhbCB3aWR0aC9oZWlnaHQgYmVsb3cNCgkJCQlbICggYnJvd3NlcldpZHRoIC8gMiApIC0gMTAwICsgc2Nyb2xsWCwgKCBicm93c2VySGVpZ2h0IC8gMiApIC0gMTUwICsgc2Nyb2xsWSBdOw0KCQl9DQoNCgkJLy8gTW92ZSBpbnB1dCBvbiBzY3JlZW4gZm9yIGZvY3VzLCBidXQgaGlkZGVuIGJlaGluZCBkaWFsb2cNCgkJdGhpcy5fZGlhbG9nSW5wdXQuY3NzKCAibGVmdCIsICggdGhpcy5fcG9zWyAwIF0gKyAyMCApICsgInB4IiApLmNzcyggInRvcCIsIHRoaXMuX3Bvc1sgMSBdICsgInB4IiApOw0KCQlpbnN0LnNldHRpbmdzLm9uU2VsZWN0ID0gb25TZWxlY3Q7DQoJCXRoaXMuX2luRGlhbG9nID0gdHJ1ZTsNCgkJdGhpcy5kcERpdi5hZGRDbGFzcyggdGhpcy5fZGlhbG9nQ2xhc3MgKTsNCgkJdGhpcy5fc2hvd0RhdGVwaWNrZXIoIHRoaXMuX2RpYWxvZ0lucHV0WyAwIF0gKTsNCgkJaWYgKCAkLmJsb2NrVUkgKSB7DQoJCQkkLmJsb2NrVUkoIHRoaXMuZHBEaXYgKTsNCgkJfQ0KCQkkLmRhdGEoIHRoaXMuX2RpYWxvZ0lucHV0WyAwIF0sICJkYXRlcGlja2VyIiwgaW5zdCApOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJLyogRGV0YWNoIGEgZGF0ZXBpY2tlciBmcm9tIGl0cyBjb250cm9sLg0KCSAqIEBwYXJhbSAgdGFyZ2V0CWVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKi8NCglfZGVzdHJveURhdGVwaWNrZXI6IGZ1bmN0aW9uKCB0YXJnZXQgKSB7DQoJCXZhciBub2RlTmFtZSwNCgkJCSR0YXJnZXQgPSAkKCB0YXJnZXQgKSwNCgkJCWluc3QgPSAkLmRhdGEoIHRhcmdldCwgImRhdGVwaWNrZXIiICk7DQoNCgkJaWYgKCAhJHRhcmdldC5oYXNDbGFzcyggdGhpcy5tYXJrZXJDbGFzc05hbWUgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCW5vZGVOYW1lID0gdGFyZ2V0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7DQoJCSQucmVtb3ZlRGF0YSggdGFyZ2V0LCAiZGF0ZXBpY2tlciIgKTsNCgkJaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiApIHsNCgkJCWluc3QuYXBwZW5kLnJlbW92ZSgpOw0KCQkJaW5zdC50cmlnZ2VyLnJlbW92ZSgpOw0KCQkJJHRhcmdldC5yZW1vdmVDbGFzcyggdGhpcy5tYXJrZXJDbGFzc05hbWUgKS4NCgkJCQlvZmYoICJmb2N1cyIsIHRoaXMuX3Nob3dEYXRlcGlja2VyICkuDQoJCQkJb2ZmKCAia2V5ZG93biIsIHRoaXMuX2RvS2V5RG93biApLg0KCQkJCW9mZiggImtleXByZXNzIiwgdGhpcy5fZG9LZXlQcmVzcyApLg0KCQkJCW9mZiggImtleXVwIiwgdGhpcy5fZG9LZXlVcCApOw0KCQl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gImRpdiIgfHwgbm9kZU5hbWUgPT09ICJzcGFuIiApIHsNCgkJCSR0YXJnZXQucmVtb3ZlQ2xhc3MoIHRoaXMubWFya2VyQ2xhc3NOYW1lICkuZW1wdHkoKTsNCgkJfQ0KDQoJCWlmICggZGF0ZXBpY2tlcl9pbnN0QWN0aXZlID09PSBpbnN0ICkgew0KCQkJZGF0ZXBpY2tlcl9pbnN0QWN0aXZlID0gbnVsbDsNCgkJfQ0KCX0sDQoNCgkvKiBFbmFibGUgdGhlIGRhdGUgcGlja2VyIHRvIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldAllbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICovDQoJX2VuYWJsZURhdGVwaWNrZXI6IGZ1bmN0aW9uKCB0YXJnZXQgKSB7DQoJCXZhciBub2RlTmFtZSwgaW5saW5lLA0KCQkJJHRhcmdldCA9ICQoIHRhcmdldCApLA0KCQkJaW5zdCA9ICQuZGF0YSggdGFyZ2V0LCAiZGF0ZXBpY2tlciIgKTsNCg0KCQlpZiAoICEkdGFyZ2V0Lmhhc0NsYXNzKCB0aGlzLm1hcmtlckNsYXNzTmFtZSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJbm9kZU5hbWUgPSB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCgkJaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiApIHsNCgkJCXRhcmdldC5kaXNhYmxlZCA9IGZhbHNlOw0KCQkJaW5zdC50cmlnZ2VyLmZpbHRlciggImJ1dHRvbiIgKS4NCgkJCQllYWNoKCBmdW5jdGlvbigpIHsgdGhpcy5kaXNhYmxlZCA9IGZhbHNlOyB9ICkuZW5kKCkuDQoJCQkJZmlsdGVyKCAiaW1nIiApLmNzcyggeyBvcGFjaXR5OiAiMS4wIiwgY3Vyc29yOiAiIiB9ICk7DQoJCX0gZWxzZSBpZiAoIG5vZGVOYW1lID09PSAiZGl2IiB8fCBub2RlTmFtZSA9PT0gInNwYW4iICkgew0KCQkJaW5saW5lID0gJHRhcmdldC5jaGlsZHJlbiggIi4iICsgdGhpcy5faW5saW5lQ2xhc3MgKTsNCgkJCWlubGluZS5jaGlsZHJlbigpLnJlbW92ZUNsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICk7DQoJCQlpbmxpbmUuZmluZCggInNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLCBzZWxlY3QudWktZGF0ZXBpY2tlci15ZWFyIiApLg0KCQkJCXByb3AoICJkaXNhYmxlZCIsIGZhbHNlICk7DQoJCX0NCgkJdGhpcy5fZGlzYWJsZWRJbnB1dHMgPSAkLm1hcCggdGhpcy5fZGlzYWJsZWRJbnB1dHMsDQoJCQlmdW5jdGlvbiggdmFsdWUgKSB7IHJldHVybiAoIHZhbHVlID09PSB0YXJnZXQgPyBudWxsIDogdmFsdWUgKTsgfSApOyAvLyBkZWxldGUgZW50cnkNCgl9LA0KDQoJLyogRGlzYWJsZSB0aGUgZGF0ZSBwaWNrZXIgdG8gYSBqUXVlcnkgc2VsZWN0aW9uLg0KCSAqIEBwYXJhbSAgdGFyZ2V0CWVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKi8NCglfZGlzYWJsZURhdGVwaWNrZXI6IGZ1bmN0aW9uKCB0YXJnZXQgKSB7DQoJCXZhciBub2RlTmFtZSwgaW5saW5lLA0KCQkJJHRhcmdldCA9ICQoIHRhcmdldCApLA0KCQkJaW5zdCA9ICQuZGF0YSggdGFyZ2V0LCAiZGF0ZXBpY2tlciIgKTsNCg0KCQlpZiAoICEkdGFyZ2V0Lmhhc0NsYXNzKCB0aGlzLm1hcmtlckNsYXNzTmFtZSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJbm9kZU5hbWUgPSB0YXJnZXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTsNCgkJaWYgKCBub2RlTmFtZSA9PT0gImlucHV0IiApIHsNCgkJCXRhcmdldC5kaXNhYmxlZCA9IHRydWU7DQoJCQlpbnN0LnRyaWdnZXIuZmlsdGVyKCAiYnV0dG9uIiApLg0KCQkJCWVhY2goIGZ1bmN0aW9uKCkgeyB0aGlzLmRpc2FibGVkID0gdHJ1ZTsgfSApLmVuZCgpLg0KCQkJCWZpbHRlciggImltZyIgKS5jc3MoIHsgb3BhY2l0eTogIjAuNSIsIGN1cnNvcjogImRlZmF1bHQiIH0gKTsNCgkJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJkaXYiIHx8IG5vZGVOYW1lID09PSAic3BhbiIgKSB7DQoJCQlpbmxpbmUgPSAkdGFyZ2V0LmNoaWxkcmVuKCAiLiIgKyB0aGlzLl9pbmxpbmVDbGFzcyApOw0KCQkJaW5saW5lLmNoaWxkcmVuKCkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIgKTsNCgkJCWlubGluZS5maW5kKCAic2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgsIHNlbGVjdC51aS1kYXRlcGlja2VyLXllYXIiICkuDQoJCQkJcHJvcCggImRpc2FibGVkIiwgdHJ1ZSApOw0KCQl9DQoJCXRoaXMuX2Rpc2FibGVkSW5wdXRzID0gJC5tYXAoIHRoaXMuX2Rpc2FibGVkSW5wdXRzLA0KCQkJZnVuY3Rpb24oIHZhbHVlICkgeyByZXR1cm4gKCB2YWx1ZSA9PT0gdGFyZ2V0ID8gbnVsbCA6IHZhbHVlICk7IH0gKTsgLy8gZGVsZXRlIGVudHJ5DQoJCXRoaXMuX2Rpc2FibGVkSW5wdXRzWyB0aGlzLl9kaXNhYmxlZElucHV0cy5sZW5ndGggXSA9IHRhcmdldDsNCgl9LA0KDQoJLyogSXMgdGhlIGZpcnN0IGZpZWxkIGluIGEgalF1ZXJ5IGNvbGxlY3Rpb24gZGlzYWJsZWQgYXMgYSBkYXRlcGlja2VyPw0KCSAqIEBwYXJhbSAgdGFyZ2V0CWVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcmV0dXJuIGJvb2xlYW4gLSB0cnVlIGlmIGRpc2FibGVkLCBmYWxzZSBpZiBlbmFibGVkDQoJICovDQoJX2lzRGlzYWJsZWREYXRlcGlja2VyOiBmdW5jdGlvbiggdGFyZ2V0ICkgew0KCQlpZiAoICF0YXJnZXQgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJZm9yICggdmFyIGkgPSAwOyBpIDwgdGhpcy5fZGlzYWJsZWRJbnB1dHMubGVuZ3RoOyBpKysgKSB7DQoJCQlpZiAoIHRoaXMuX2Rpc2FibGVkSW5wdXRzWyBpIF0gPT09IHRhcmdldCApIHsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJfQ0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCS8qIFJldHJpZXZlIHRoZSBpbnN0YW5jZSBkYXRhIGZvciB0aGUgdGFyZ2V0IGNvbnRyb2wuDQoJICogQHBhcmFtICB0YXJnZXQgIGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcmV0dXJuICBvYmplY3QgLSB0aGUgYXNzb2NpYXRlZCBpbnN0YW5jZSBkYXRhDQoJICogQHRocm93cyAgZXJyb3IgaWYgYSBqUXVlcnkgcHJvYmxlbSBnZXR0aW5nIGRhdGENCgkgKi8NCglfZ2V0SW5zdDogZnVuY3Rpb24oIHRhcmdldCApIHsNCgkJdHJ5IHsNCgkJCXJldHVybiAkLmRhdGEoIHRhcmdldCwgImRhdGVwaWNrZXIiICk7DQoJCX0NCgkJY2F0Y2ggKCBlcnIgKSB7DQoJCQl0aHJvdyAiTWlzc2luZyBpbnN0YW5jZSBkYXRhIGZvciB0aGlzIGRhdGVwaWNrZXIiOw0KCQl9DQoJfSwNCg0KCS8qIFVwZGF0ZSBvciByZXRyaWV2ZSB0aGUgc2V0dGluZ3MgZm9yIGEgZGF0ZSBwaWNrZXIgYXR0YWNoZWQgdG8gYW4gaW5wdXQgZmllbGQgb3IgZGl2aXNpb24uDQoJICogQHBhcmFtICB0YXJnZXQgIGVsZW1lbnQgLSB0aGUgdGFyZ2V0IGlucHV0IGZpZWxkIG9yIGRpdmlzaW9uIG9yIHNwYW4NCgkgKiBAcGFyYW0gIG5hbWUJb2JqZWN0IC0gdGhlIG5ldyBzZXR0aW5ncyB0byB1cGRhdGUgb3INCgkgKgkJCQlzdHJpbmcgLSB0aGUgbmFtZSBvZiB0aGUgc2V0dGluZyB0byBjaGFuZ2Ugb3IgcmV0cmlldmUsDQoJICoJCQkJd2hlbiByZXRyaWV2aW5nIGFsc28gImFsbCIgZm9yIGFsbCBpbnN0YW5jZSBzZXR0aW5ncyBvcg0KCSAqCQkJCSJkZWZhdWx0cyIgZm9yIGFsbCBnbG9iYWwgZGVmYXVsdHMNCgkgKiBAcGFyYW0gIHZhbHVlICAgYW55IC0gdGhlIG5ldyB2YWx1ZSBmb3IgdGhlIHNldHRpbmcNCgkgKgkJCQkob21pdCBpZiBhYm92ZSBpcyBhbiBvYmplY3Qgb3IgdG8gcmV0cmlldmUgYSB2YWx1ZSkNCgkgKi8NCglfb3B0aW9uRGF0ZXBpY2tlcjogZnVuY3Rpb24oIHRhcmdldCwgbmFtZSwgdmFsdWUgKSB7DQoJCXZhciBzZXR0aW5ncywgZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwNCgkJCWluc3QgPSB0aGlzLl9nZXRJbnN0KCB0YXJnZXQgKTsNCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPT09IDIgJiYgdHlwZW9mIG5hbWUgPT09ICJzdHJpbmciICkgew0KCQkJcmV0dXJuICggbmFtZSA9PT0gImRlZmF1bHRzIiA/ICQuZXh0ZW5kKCB7fSwgJC5kYXRlcGlja2VyLl9kZWZhdWx0cyApIDoNCgkJCQkoIGluc3QgPyAoIG5hbWUgPT09ICJhbGwiID8gJC5leHRlbmQoIHt9LCBpbnN0LnNldHRpbmdzICkgOg0KCQkJCXRoaXMuX2dldCggaW5zdCwgbmFtZSApICkgOiBudWxsICkgKTsNCgkJfQ0KDQoJCXNldHRpbmdzID0gbmFtZSB8fCB7fTsNCgkJaWYgKCB0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIgKSB7DQoJCQlzZXR0aW5ncyA9IHt9Ow0KCQkJc2V0dGluZ3NbIG5hbWUgXSA9IHZhbHVlOw0KCQl9DQoNCgkJaWYgKCBpbnN0ICkgew0KCQkJaWYgKCB0aGlzLl9jdXJJbnN0ID09PSBpbnN0ICkgew0KCQkJCXRoaXMuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQl9DQoNCgkJCWRhdGUgPSB0aGlzLl9nZXREYXRlRGF0ZXBpY2tlciggdGFyZ2V0LCB0cnVlICk7DQoJCQltaW5EYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZSggaW5zdCwgIm1pbiIgKTsNCgkJCW1heERhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKCBpbnN0LCAibWF4IiApOw0KCQkJZGF0ZXBpY2tlcl9leHRlbmRSZW1vdmUoIGluc3Quc2V0dGluZ3MsIHNldHRpbmdzICk7DQoNCgkJCS8vIHJlZm9ybWF0IHRoZSBvbGQgbWluRGF0ZS9tYXhEYXRlIHZhbHVlcyBpZiBkYXRlRm9ybWF0IGNoYW5nZXMgYW5kIGEgbmV3IG1pbkRhdGUvbWF4RGF0ZSBpc24ndCBwcm92aWRlZA0KCQkJaWYgKCBtaW5EYXRlICE9PSBudWxsICYmIHNldHRpbmdzLmRhdGVGb3JtYXQgIT09IHVuZGVmaW5lZCAmJiBzZXR0aW5ncy5taW5EYXRlID09PSB1bmRlZmluZWQgKSB7DQoJCQkJaW5zdC5zZXR0aW5ncy5taW5EYXRlID0gdGhpcy5fZm9ybWF0RGF0ZSggaW5zdCwgbWluRGF0ZSApOw0KCQkJfQ0KCQkJaWYgKCBtYXhEYXRlICE9PSBudWxsICYmIHNldHRpbmdzLmRhdGVGb3JtYXQgIT09IHVuZGVmaW5lZCAmJiBzZXR0aW5ncy5tYXhEYXRlID09PSB1bmRlZmluZWQgKSB7DQoJCQkJaW5zdC5zZXR0aW5ncy5tYXhEYXRlID0gdGhpcy5fZm9ybWF0RGF0ZSggaW5zdCwgbWF4RGF0ZSApOw0KCQkJfQ0KCQkJaWYgKCAiZGlzYWJsZWQiIGluIHNldHRpbmdzICkgew0KCQkJCWlmICggc2V0dGluZ3MuZGlzYWJsZWQgKSB7DQoJCQkJCXRoaXMuX2Rpc2FibGVEYXRlcGlja2VyKCB0YXJnZXQgKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0aGlzLl9lbmFibGVEYXRlcGlja2VyKCB0YXJnZXQgKTsNCgkJCQl9DQoJCQl9DQoJCQl0aGlzLl9hdHRhY2htZW50cyggJCggdGFyZ2V0ICksIGluc3QgKTsNCgkJCXRoaXMuX2F1dG9TaXplKCBpbnN0ICk7DQoJCQl0aGlzLl9zZXREYXRlKCBpbnN0LCBkYXRlICk7DQoJCQl0aGlzLl91cGRhdGVBbHRlcm5hdGUoIGluc3QgKTsNCgkJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoIGluc3QgKTsNCgkJfQ0KCX0sDQoNCgkvLyBDaGFuZ2UgbWV0aG9kIGRlcHJlY2F0ZWQNCglfY2hhbmdlRGF0ZXBpY2tlcjogZnVuY3Rpb24oIHRhcmdldCwgbmFtZSwgdmFsdWUgKSB7DQoJCXRoaXMuX29wdGlvbkRhdGVwaWNrZXIoIHRhcmdldCwgbmFtZSwgdmFsdWUgKTsNCgl9LA0KDQoJLyogUmVkcmF3IHRoZSBkYXRlIHBpY2tlciBhdHRhY2hlZCB0byBhbiBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbi4NCgkgKiBAcGFyYW0gIHRhcmdldCAgZWxlbWVudCAtIHRoZSB0YXJnZXQgaW5wdXQgZmllbGQgb3IgZGl2aXNpb24gb3Igc3Bhbg0KCSAqLw0KCV9yZWZyZXNoRGF0ZXBpY2tlcjogZnVuY3Rpb24oIHRhcmdldCApIHsNCgkJdmFyIGluc3QgPSB0aGlzLl9nZXRJbnN0KCB0YXJnZXQgKTsNCgkJaWYgKCBpbnN0ICkgew0KCQkJdGhpcy5fdXBkYXRlRGF0ZXBpY2tlciggaW5zdCApOw0KCQl9DQoJfSwNCg0KCS8qIFNldCB0aGUgZGF0ZXMgZm9yIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldCBlbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHBhcmFtICBkYXRlCURhdGUgLSB0aGUgbmV3IGRhdGUNCgkgKi8NCglfc2V0RGF0ZURhdGVwaWNrZXI6IGZ1bmN0aW9uKCB0YXJnZXQsIGRhdGUgKSB7DQoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCggdGFyZ2V0ICk7DQoJCWlmICggaW5zdCApIHsNCgkJCXRoaXMuX3NldERhdGUoIGluc3QsIGRhdGUgKTsNCgkJCXRoaXMuX3VwZGF0ZURhdGVwaWNrZXIoIGluc3QgKTsNCgkJCXRoaXMuX3VwZGF0ZUFsdGVybmF0ZSggaW5zdCApOw0KCQl9DQoJfSwNCg0KCS8qIEdldCB0aGUgZGF0ZShzKSBmb3IgdGhlIGZpcnN0IGVudHJ5IGluIGEgalF1ZXJ5IHNlbGVjdGlvbi4NCgkgKiBAcGFyYW0gIHRhcmdldCBlbGVtZW50IC0gdGhlIHRhcmdldCBpbnB1dCBmaWVsZCBvciBkaXZpc2lvbiBvciBzcGFuDQoJICogQHBhcmFtICBub0RlZmF1bHQgYm9vbGVhbiAtIHRydWUgaWYgbm8gZGVmYXVsdCBkYXRlIGlzIHRvIGJlIHVzZWQNCgkgKiBAcmV0dXJuIERhdGUgLSB0aGUgY3VycmVudCBkYXRlDQoJICovDQoJX2dldERhdGVEYXRlcGlja2VyOiBmdW5jdGlvbiggdGFyZ2V0LCBub0RlZmF1bHQgKSB7DQoJCXZhciBpbnN0ID0gdGhpcy5fZ2V0SW5zdCggdGFyZ2V0ICk7DQoJCWlmICggaW5zdCAmJiAhaW5zdC5pbmxpbmUgKSB7DQoJCQl0aGlzLl9zZXREYXRlRnJvbUZpZWxkKCBpbnN0LCBub0RlZmF1bHQgKTsNCgkJfQ0KCQlyZXR1cm4gKCBpbnN0ID8gdGhpcy5fZ2V0RGF0ZSggaW5zdCApIDogbnVsbCApOw0KCX0sDQoNCgkvKiBIYW5kbGUga2V5c3Ryb2tlcy4gKi8NCglfZG9LZXlEb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBvblNlbGVjdCwgZGF0ZVN0ciwgc2VsLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCggZXZlbnQudGFyZ2V0ICksDQoJCQloYW5kbGVkID0gdHJ1ZSwNCgkJCWlzUlRMID0gaW5zdC5kcERpdi5pcyggIi51aS1kYXRlcGlja2VyLXJ0bCIgKTsNCg0KCQlpbnN0Ll9rZXlFdmVudCA9IHRydWU7DQoJCWlmICggJC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyApIHsNCgkJCXN3aXRjaCAoIGV2ZW50LmtleUNvZGUgKSB7DQoJCQkJY2FzZSA5OiAkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJCQloYW5kbGVkID0gZmFsc2U7DQoJCQkJCQlicmVhazsgLy8gaGlkZSBvbiB0YWIgb3V0DQoJCQkJY2FzZSAxMzogc2VsID0gJCggInRkLiIgKyAkLmRhdGVwaWNrZXIuX2RheU92ZXJDbGFzcyArICI6bm90KC4iICsNCgkJCQkJCQkJCSQuZGF0ZXBpY2tlci5fY3VycmVudENsYXNzICsgIikiLCBpbnN0LmRwRGl2ICk7DQoJCQkJCQlpZiAoIHNlbFsgMCBdICkgew0KCQkJCQkJCSQuZGF0ZXBpY2tlci5fc2VsZWN0RGF5KCBldmVudC50YXJnZXQsIGluc3Quc2VsZWN0ZWRNb250aCwgaW5zdC5zZWxlY3RlZFllYXIsIHNlbFsgMCBdICk7DQoJCQkJCQl9DQoNCgkJCQkJCW9uU2VsZWN0ID0gJC5kYXRlcGlja2VyLl9nZXQoIGluc3QsICJvblNlbGVjdCIgKTsNCgkJCQkJCWlmICggb25TZWxlY3QgKSB7DQoJCQkJCQkJZGF0ZVN0ciA9ICQuZGF0ZXBpY2tlci5fZm9ybWF0RGF0ZSggaW5zdCApOw0KDQoJCQkJCQkJLy8gVHJpZ2dlciBjdXN0b20gY2FsbGJhY2sNCgkJCQkJCQlvblNlbGVjdC5hcHBseSggKCBpbnN0LmlucHV0ID8gaW5zdC5pbnB1dFsgMCBdIDogbnVsbCApLCBbIGRhdGVTdHIsIGluc3QgXSApOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJCQl9DQoNCgkJCQkJCXJldHVybiBmYWxzZTsgLy8gZG9uJ3Qgc3VibWl0IHRoZSBmb3JtDQoJCQkJY2FzZSAyNzogJC5kYXRlcGlja2VyLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJCQkJYnJlYWs7IC8vIGhpZGUgb24gZXNjYXBlDQoJCQkJY2FzZSAzMzogJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKCBldmVudC50YXJnZXQsICggZXZlbnQuY3RybEtleSA/DQoJCQkJCQkJLSQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic3RlcEJpZ01vbnRocyIgKSA6DQoJCQkJCQkJLSQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic3RlcE1vbnRocyIgKSApLCAiTSIgKTsNCgkJCQkJCWJyZWFrOyAvLyBwcmV2aW91cyBtb250aC95ZWFyIG9uIHBhZ2UgdXAvKyBjdHJsDQoJCQkJY2FzZSAzNDogJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKCBldmVudC50YXJnZXQsICggZXZlbnQuY3RybEtleSA/DQoJCQkJCQkJKyQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic3RlcEJpZ01vbnRocyIgKSA6DQoJCQkJCQkJKyQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic3RlcE1vbnRocyIgKSApLCAiTSIgKTsNCgkJCQkJCWJyZWFrOyAvLyBuZXh0IG1vbnRoL3llYXIgb24gcGFnZSBkb3duLysgY3RybA0KCQkJCWNhc2UgMzU6IGlmICggZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5ICkgew0KCQkJCQkJCSQuZGF0ZXBpY2tlci5fY2xlYXJEYXRlKCBldmVudC50YXJnZXQgKTsNCgkJCQkJCX0NCgkJCQkJCWhhbmRsZWQgPSBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXk7DQoJCQkJCQlicmVhazsgLy8gY2xlYXIgb24gY3RybCBvciBjb21tYW5kICtlbmQNCgkJCQljYXNlIDM2OiBpZiAoIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSApIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2dvdG9Ub2RheSggZXZlbnQudGFyZ2V0ICk7DQoJCQkJCQl9DQoJCQkJCQloYW5kbGVkID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5Ow0KCQkJCQkJYnJlYWs7IC8vIGN1cnJlbnQgb24gY3RybCBvciBjb21tYW5kICtob21lDQoJCQkJY2FzZSAzNzogaWYgKCBldmVudC5jdHJsS2V5IHx8IGV2ZW50Lm1ldGFLZXkgKSB7DQoJCQkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKCBldmVudC50YXJnZXQsICggaXNSVEwgPyArMSA6IC0xICksICJEIiApOw0KCQkJCQkJfQ0KCQkJCQkJaGFuZGxlZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTsNCg0KCQkJCQkJLy8gLTEgZGF5IG9uIGN0cmwgb3IgY29tbWFuZCArbGVmdA0KCQkJCQkJaWYgKCBldmVudC5vcmlnaW5hbEV2ZW50LmFsdEtleSApIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoIGV2ZW50LnRhcmdldCwgKCBldmVudC5jdHJsS2V5ID8NCgkJCQkJCQkJLSQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic3RlcEJpZ01vbnRocyIgKSA6DQoJCQkJCQkJCS0kLmRhdGVwaWNrZXIuX2dldCggaW5zdCwgInN0ZXBNb250aHMiICkgKSwgIk0iICk7DQoJCQkJCQl9DQoNCgkJCQkJCS8vIG5leHQgbW9udGgveWVhciBvbiBhbHQgK2xlZnQgb24gTWFjDQoJCQkJCQlicmVhazsNCgkJCQljYXNlIDM4OiBpZiAoIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSApIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoIGV2ZW50LnRhcmdldCwgLTcsICJEIiApOw0KCQkJCQkJfQ0KCQkJCQkJaGFuZGxlZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTsNCgkJCQkJCWJyZWFrOyAvLyAtMSB3ZWVrIG9uIGN0cmwgb3IgY29tbWFuZCArdXANCgkJCQljYXNlIDM5OiBpZiAoIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSApIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoIGV2ZW50LnRhcmdldCwgKCBpc1JUTCA/IC0xIDogKzEgKSwgIkQiICk7DQoJCQkJCQl9DQoJCQkJCQloYW5kbGVkID0gZXZlbnQuY3RybEtleSB8fCBldmVudC5tZXRhS2V5Ow0KDQoJCQkJCQkvLyArMSBkYXkgb24gY3RybCBvciBjb21tYW5kICtyaWdodA0KCQkJCQkJaWYgKCBldmVudC5vcmlnaW5hbEV2ZW50LmFsdEtleSApIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoIGV2ZW50LnRhcmdldCwgKCBldmVudC5jdHJsS2V5ID8NCgkJCQkJCQkJKyQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic3RlcEJpZ01vbnRocyIgKSA6DQoJCQkJCQkJCSskLmRhdGVwaWNrZXIuX2dldCggaW5zdCwgInN0ZXBNb250aHMiICkgKSwgIk0iICk7DQoJCQkJCQl9DQoNCgkJCQkJCS8vIG5leHQgbW9udGgveWVhciBvbiBhbHQgK3JpZ2h0DQoJCQkJCQlicmVhazsNCgkJCQljYXNlIDQwOiBpZiAoIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSApIHsNCgkJCQkJCQkkLmRhdGVwaWNrZXIuX2FkanVzdERhdGUoIGV2ZW50LnRhcmdldCwgKzcsICJEIiApOw0KCQkJCQkJfQ0KCQkJCQkJaGFuZGxlZCA9IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleTsNCgkJCQkJCWJyZWFrOyAvLyArMSB3ZWVrIG9uIGN0cmwgb3IgY29tbWFuZCArZG93bg0KCQkJCWRlZmF1bHQ6IGhhbmRsZWQgPSBmYWxzZTsNCgkJCX0NCgkJfSBlbHNlIGlmICggZXZlbnQua2V5Q29kZSA9PT0gMzYgJiYgZXZlbnQuY3RybEtleSApIHsgLy8gZGlzcGxheSB0aGUgZGF0ZSBwaWNrZXIgb24gY3RybCtob21lDQoJCQkkLmRhdGVwaWNrZXIuX3Nob3dEYXRlcGlja2VyKCB0aGlzICk7DQoJCX0gZWxzZSB7DQoJCQloYW5kbGVkID0gZmFsc2U7DQoJCX0NCg0KCQlpZiAoIGhhbmRsZWQgKSB7DQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7DQoJCX0NCgl9LA0KDQoJLyogRmlsdGVyIGVudGVyZWQgY2hhcmFjdGVycyAtIGJhc2VkIG9uIGRhdGUgZm9ybWF0LiAqLw0KCV9kb0tleVByZXNzOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBjaGFycywgY2hyLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCggZXZlbnQudGFyZ2V0ICk7DQoNCgkJaWYgKCAkLmRhdGVwaWNrZXIuX2dldCggaW5zdCwgImNvbnN0cmFpbklucHV0IiApICkgew0KCQkJY2hhcnMgPSAkLmRhdGVwaWNrZXIuX3Bvc3NpYmxlQ2hhcnMoICQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAiZGF0ZUZvcm1hdCIgKSApOw0KCQkJY2hyID0gU3RyaW5nLmZyb21DaGFyQ29kZSggZXZlbnQuY2hhckNvZGUgPT0gbnVsbCA/IGV2ZW50LmtleUNvZGUgOiBldmVudC5jaGFyQ29kZSApOw0KCQkJcmV0dXJuIGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSB8fCAoIGNociA8ICIgIiB8fCAhY2hhcnMgfHwgY2hhcnMuaW5kZXhPZiggY2hyICkgPiAtMSApOw0KCQl9DQoJfSwNCg0KCS8qIFN5bmNocm9uaXNlIG1hbnVhbCBlbnRyeSBhbmQgZmllbGQvYWx0ZXJuYXRlIGZpZWxkLiAqLw0KCV9kb0tleVVwOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBkYXRlLA0KCQkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCggZXZlbnQudGFyZ2V0ICk7DQoNCgkJaWYgKCBpbnN0LmlucHV0LnZhbCgpICE9PSBpbnN0Lmxhc3RWYWwgKSB7DQoJCQl0cnkgew0KCQkJCWRhdGUgPSAkLmRhdGVwaWNrZXIucGFyc2VEYXRlKCAkLmRhdGVwaWNrZXIuX2dldCggaW5zdCwgImRhdGVGb3JtYXQiICksDQoJCQkJCSggaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQudmFsKCkgOiBudWxsICksDQoJCQkJCSQuZGF0ZXBpY2tlci5fZ2V0Rm9ybWF0Q29uZmlnKCBpbnN0ICkgKTsNCg0KCQkJCWlmICggZGF0ZSApIHsgLy8gb25seSBpZiB2YWxpZA0KCQkJCQkkLmRhdGVwaWNrZXIuX3NldERhdGVGcm9tRmllbGQoIGluc3QgKTsNCgkJCQkJJC5kYXRlcGlja2VyLl91cGRhdGVBbHRlcm5hdGUoIGluc3QgKTsNCgkJCQkJJC5kYXRlcGlja2VyLl91cGRhdGVEYXRlcGlja2VyKCBpbnN0ICk7DQoJCQkJfQ0KCQkJfQ0KCQkJY2F0Y2ggKCBlcnIgKSB7DQoJCQl9DQoJCX0NCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCS8qIFBvcC11cCB0aGUgZGF0ZSBwaWNrZXIgZm9yIGEgZ2l2ZW4gaW5wdXQgZmllbGQuDQoJICogSWYgZmFsc2UgcmV0dXJuZWQgZnJvbSBiZWZvcmVTaG93IGV2ZW50IGhhbmRsZXIgZG8gbm90IHNob3cuDQoJICogQHBhcmFtICBpbnB1dCAgZWxlbWVudCAtIHRoZSBpbnB1dCBmaWVsZCBhdHRhY2hlZCB0byB0aGUgZGF0ZSBwaWNrZXIgb3INCgkgKgkJCQkJZXZlbnQgLSBpZiB0cmlnZ2VyZWQgYnkgZm9jdXMNCgkgKi8NCglfc2hvd0RhdGVwaWNrZXI6IGZ1bmN0aW9uKCBpbnB1dCApIHsNCgkJaW5wdXQgPSBpbnB1dC50YXJnZXQgfHwgaW5wdXQ7DQoJCWlmICggaW5wdXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gImlucHV0IiApIHsgLy8gZmluZCBmcm9tIGJ1dHRvbi9pbWFnZSB0cmlnZ2VyDQoJCQlpbnB1dCA9ICQoICJpbnB1dCIsIGlucHV0LnBhcmVudE5vZGUgKVsgMCBdOw0KCQl9DQoNCgkJaWYgKCAkLmRhdGVwaWNrZXIuX2lzRGlzYWJsZWREYXRlcGlja2VyKCBpbnB1dCApIHx8ICQuZGF0ZXBpY2tlci5fbGFzdElucHV0ID09PSBpbnB1dCApIHsgLy8gYWxyZWFkeSBoZXJlDQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgaW5zdCwgYmVmb3JlU2hvdywgYmVmb3JlU2hvd1NldHRpbmdzLCBpc0ZpeGVkLA0KCQkJb2Zmc2V0LCBzaG93QW5pbSwgZHVyYXRpb247DQoNCgkJaW5zdCA9ICQuZGF0ZXBpY2tlci5fZ2V0SW5zdCggaW5wdXQgKTsNCgkJaWYgKCAkLmRhdGVwaWNrZXIuX2N1ckluc3QgJiYgJC5kYXRlcGlja2VyLl9jdXJJbnN0ICE9PSBpbnN0ICkgew0KCQkJJC5kYXRlcGlja2VyLl9jdXJJbnN0LmRwRGl2LnN0b3AoIHRydWUsIHRydWUgKTsNCgkJCWlmICggaW5zdCAmJiAkLmRhdGVwaWNrZXIuX2RhdGVwaWNrZXJTaG93aW5nICkgew0KCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoICQuZGF0ZXBpY2tlci5fY3VySW5zdC5pbnB1dFsgMCBdICk7DQoJCQl9DQoJCX0NCg0KCQliZWZvcmVTaG93ID0gJC5kYXRlcGlja2VyLl9nZXQoIGluc3QsICJiZWZvcmVTaG93IiApOw0KCQliZWZvcmVTaG93U2V0dGluZ3MgPSBiZWZvcmVTaG93ID8gYmVmb3JlU2hvdy5hcHBseSggaW5wdXQsIFsgaW5wdXQsIGluc3QgXSApIDoge307DQoJCWlmICggYmVmb3JlU2hvd1NldHRpbmdzID09PSBmYWxzZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQlkYXRlcGlja2VyX2V4dGVuZFJlbW92ZSggaW5zdC5zZXR0aW5ncywgYmVmb3JlU2hvd1NldHRpbmdzICk7DQoNCgkJaW5zdC5sYXN0VmFsID0gbnVsbDsNCgkJJC5kYXRlcGlja2VyLl9sYXN0SW5wdXQgPSBpbnB1dDsNCgkJJC5kYXRlcGlja2VyLl9zZXREYXRlRnJvbUZpZWxkKCBpbnN0ICk7DQoNCgkJaWYgKCAkLmRhdGVwaWNrZXIuX2luRGlhbG9nICkgeyAvLyBoaWRlIGN1cnNvcg0KCQkJaW5wdXQudmFsdWUgPSAiIjsNCgkJfQ0KCQlpZiAoICEkLmRhdGVwaWNrZXIuX3BvcyApIHsgLy8gcG9zaXRpb24gYmVsb3cgaW5wdXQNCgkJCSQuZGF0ZXBpY2tlci5fcG9zID0gJC5kYXRlcGlja2VyLl9maW5kUG9zKCBpbnB1dCApOw0KCQkJJC5kYXRlcGlja2VyLl9wb3NbIDEgXSArPSBpbnB1dC5vZmZzZXRIZWlnaHQ7IC8vIGFkZCB0aGUgaGVpZ2h0DQoJCX0NCg0KCQlpc0ZpeGVkID0gZmFsc2U7DQoJCSQoIGlucHV0ICkucGFyZW50cygpLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJaXNGaXhlZCB8PSAkKCB0aGlzICkuY3NzKCAicG9zaXRpb24iICkgPT09ICJmaXhlZCI7DQoJCQlyZXR1cm4gIWlzRml4ZWQ7DQoJCX0gKTsNCg0KCQlvZmZzZXQgPSB7IGxlZnQ6ICQuZGF0ZXBpY2tlci5fcG9zWyAwIF0sIHRvcDogJC5kYXRlcGlja2VyLl9wb3NbIDEgXSB9Ow0KCQkkLmRhdGVwaWNrZXIuX3BvcyA9IG51bGw7DQoNCgkJLy90byBhdm9pZCBmbGFzaGVzIG9uIEZpcmVmb3gNCgkJaW5zdC5kcERpdi5lbXB0eSgpOw0KDQoJCS8vIGRldGVybWluZSBzaXppbmcgb2Zmc2NyZWVuDQoJCWluc3QuZHBEaXYuY3NzKCB7IHBvc2l0aW9uOiAiYWJzb2x1dGUiLCBkaXNwbGF5OiAiYmxvY2siLCB0b3A6ICItMTAwMHB4IiB9ICk7DQoJCSQuZGF0ZXBpY2tlci5fdXBkYXRlRGF0ZXBpY2tlciggaW5zdCApOw0KDQoJCS8vIGZpeCB3aWR0aCBmb3IgZHluYW1pYyBudW1iZXIgb2YgZGF0ZSBwaWNrZXJzDQoJCS8vIGFuZCBhZGp1c3QgcG9zaXRpb24gYmVmb3JlIHNob3dpbmcNCgkJb2Zmc2V0ID0gJC5kYXRlcGlja2VyLl9jaGVja09mZnNldCggaW5zdCwgb2Zmc2V0LCBpc0ZpeGVkICk7DQoJCWluc3QuZHBEaXYuY3NzKCB7IHBvc2l0aW9uOiAoICQuZGF0ZXBpY2tlci5faW5EaWFsb2cgJiYgJC5ibG9ja1VJID8NCgkJCSJzdGF0aWMiIDogKCBpc0ZpeGVkID8gImZpeGVkIiA6ICJhYnNvbHV0ZSIgKSApLCBkaXNwbGF5OiAibm9uZSIsDQoJCQlsZWZ0OiBvZmZzZXQubGVmdCArICJweCIsIHRvcDogb2Zmc2V0LnRvcCArICJweCIgfSApOw0KDQoJCWlmICggIWluc3QuaW5saW5lICkgew0KCQkJc2hvd0FuaW0gPSAkLmRhdGVwaWNrZXIuX2dldCggaW5zdCwgInNob3dBbmltIiApOw0KCQkJZHVyYXRpb24gPSAkLmRhdGVwaWNrZXIuX2dldCggaW5zdCwgImR1cmF0aW9uIiApOw0KCQkJaW5zdC5kcERpdi5jc3MoICJ6LWluZGV4IiwgZGF0ZXBpY2tlcl9nZXRaaW5kZXgoICQoIGlucHV0ICkgKSArIDEgKTsNCgkJCSQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgPSB0cnVlOw0KDQoJCQlpZiAoICQuZWZmZWN0cyAmJiAkLmVmZmVjdHMuZWZmZWN0WyBzaG93QW5pbSBdICkgew0KCQkJCWluc3QuZHBEaXYuc2hvdyggc2hvd0FuaW0sICQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAic2hvd09wdGlvbnMiICksIGR1cmF0aW9uICk7DQoJCQl9IGVsc2Ugew0KCQkJCWluc3QuZHBEaXZbIHNob3dBbmltIHx8ICJzaG93IiBdKCBzaG93QW5pbSA/IGR1cmF0aW9uIDogbnVsbCApOw0KCQkJfQ0KDQoJCQlpZiAoICQuZGF0ZXBpY2tlci5fc2hvdWxkRm9jdXNJbnB1dCggaW5zdCApICkgew0KCQkJCWluc3QuaW5wdXQudHJpZ2dlciggImZvY3VzIiApOw0KCQkJfQ0KDQoJCQkkLmRhdGVwaWNrZXIuX2N1ckluc3QgPSBpbnN0Ow0KCQl9DQoJfSwNCg0KCS8qIEdlbmVyYXRlIHRoZSBkYXRlIHBpY2tlciBjb250ZW50LiAqLw0KCV91cGRhdGVEYXRlcGlja2VyOiBmdW5jdGlvbiggaW5zdCApIHsNCgkJdGhpcy5tYXhSb3dzID0gNDsgLy9SZXNldCB0aGUgbWF4IG51bWJlciBvZiByb3dzIGJlaW5nIGRpc3BsYXllZCAoc2VlICM3MDQzKQ0KCQlkYXRlcGlja2VyX2luc3RBY3RpdmUgPSBpbnN0OyAvLyBmb3IgZGVsZWdhdGUgaG92ZXIgZXZlbnRzDQoJCWluc3QuZHBEaXYuZW1wdHkoKS5hcHBlbmQoIHRoaXMuX2dlbmVyYXRlSFRNTCggaW5zdCApICk7DQoJCXRoaXMuX2F0dGFjaEhhbmRsZXJzKCBpbnN0ICk7DQoNCgkJdmFyIG9yaWd5ZWFyc2h0bWwsDQoJCQludW1Nb250aHMgPSB0aGlzLl9nZXROdW1iZXJPZk1vbnRocyggaW5zdCApLA0KCQkJY29scyA9IG51bU1vbnRoc1sgMSBdLA0KCQkJd2lkdGggPSAxNywNCgkJCWFjdGl2ZUNlbGwgPSBpbnN0LmRwRGl2LmZpbmQoICIuIiArIHRoaXMuX2RheU92ZXJDbGFzcyArICIgYSIgKTsNCg0KCQlpZiAoIGFjdGl2ZUNlbGwubGVuZ3RoID4gMCApIHsNCgkJCWRhdGVwaWNrZXJfaGFuZGxlTW91c2VvdmVyLmFwcGx5KCBhY3RpdmVDZWxsLmdldCggMCApICk7DQoJCX0NCg0KCQlpbnN0LmRwRGl2LnJlbW92ZUNsYXNzKCAidWktZGF0ZXBpY2tlci1tdWx0aS0yIHVpLWRhdGVwaWNrZXItbXVsdGktMyB1aS1kYXRlcGlja2VyLW11bHRpLTQiICkud2lkdGgoICIiICk7DQoJCWlmICggY29scyA+IDEgKSB7DQoJCQlpbnN0LmRwRGl2LmFkZENsYXNzKCAidWktZGF0ZXBpY2tlci1tdWx0aS0iICsgY29scyApLmNzcyggIndpZHRoIiwgKCB3aWR0aCAqIGNvbHMgKSArICJlbSIgKTsNCgkJfQ0KCQlpbnN0LmRwRGl2WyAoIG51bU1vbnRoc1sgMCBdICE9PSAxIHx8IG51bU1vbnRoc1sgMSBdICE9PSAxID8gImFkZCIgOiAicmVtb3ZlIiApICsNCgkJCSJDbGFzcyIgXSggInVpLWRhdGVwaWNrZXItbXVsdGkiICk7DQoJCWluc3QuZHBEaXZbICggdGhpcy5fZ2V0KCBpbnN0LCAiaXNSVEwiICkgPyAiYWRkIiA6ICJyZW1vdmUiICkgKw0KCQkJIkNsYXNzIiBdKCAidWktZGF0ZXBpY2tlci1ydGwiICk7DQoNCgkJaWYgKCBpbnN0ID09PSAkLmRhdGVwaWNrZXIuX2N1ckluc3QgJiYgJC5kYXRlcGlja2VyLl9kYXRlcGlja2VyU2hvd2luZyAmJiAkLmRhdGVwaWNrZXIuX3Nob3VsZEZvY3VzSW5wdXQoIGluc3QgKSApIHsNCgkJCWluc3QuaW5wdXQudHJpZ2dlciggImZvY3VzIiApOw0KCQl9DQoNCgkJLy8gRGVmZmVyZWQgcmVuZGVyIG9mIHRoZSB5ZWFycyBzZWxlY3QgKHRvIGF2b2lkIGZsYXNoZXMgb24gRmlyZWZveCkNCgkJaWYgKCBpbnN0LnllYXJzaHRtbCApIHsNCgkJCW9yaWd5ZWFyc2h0bWwgPSBpbnN0LnllYXJzaHRtbDsNCgkJCXNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgew0KDQoJCQkJLy9hc3N1cmUgdGhhdCBpbnN0LnllYXJzaHRtbCBkaWRuJ3QgY2hhbmdlLg0KCQkJCWlmICggb3JpZ3llYXJzaHRtbCA9PT0gaW5zdC55ZWFyc2h0bWwgJiYgaW5zdC55ZWFyc2h0bWwgKSB7DQoJCQkJCWluc3QuZHBEaXYuZmluZCggInNlbGVjdC51aS1kYXRlcGlja2VyLXllYXI6Zmlyc3QiICkucmVwbGFjZVdpdGgoIGluc3QueWVhcnNodG1sICk7DQoJCQkJfQ0KCQkJCW9yaWd5ZWFyc2h0bWwgPSBpbnN0LnllYXJzaHRtbCA9IG51bGw7DQoJCQl9LCAwICk7DQoJCX0NCgl9LA0KDQoJLy8gIzY2OTQgLSBkb24ndCBmb2N1cyB0aGUgaW5wdXQgaWYgaXQncyBhbHJlYWR5IGZvY3VzZWQNCgkvLyB0aGlzIGJyZWFrcyB0aGUgY2hhbmdlIGV2ZW50IGluIElFDQoJLy8gU3VwcG9ydDogSUUgYW5kIGpRdWVyeSA8MS45DQoJX3Nob3VsZEZvY3VzSW5wdXQ6IGZ1bmN0aW9uKCBpbnN0ICkgew0KCQlyZXR1cm4gaW5zdC5pbnB1dCAmJiBpbnN0LmlucHV0LmlzKCAiOnZpc2libGUiICkgJiYgIWluc3QuaW5wdXQuaXMoICI6ZGlzYWJsZWQiICkgJiYgIWluc3QuaW5wdXQuaXMoICI6Zm9jdXMiICk7DQoJfSwNCg0KCS8qIENoZWNrIHBvc2l0aW9uaW5nIHRvIHJlbWFpbiBvbiBzY3JlZW4uICovDQoJX2NoZWNrT2Zmc2V0OiBmdW5jdGlvbiggaW5zdCwgb2Zmc2V0LCBpc0ZpeGVkICkgew0KCQl2YXIgZHBXaWR0aCA9IGluc3QuZHBEaXYub3V0ZXJXaWR0aCgpLA0KCQkJZHBIZWlnaHQgPSBpbnN0LmRwRGl2Lm91dGVySGVpZ2h0KCksDQoJCQlpbnB1dFdpZHRoID0gaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQub3V0ZXJXaWR0aCgpIDogMCwNCgkJCWlucHV0SGVpZ2h0ID0gaW5zdC5pbnB1dCA/IGluc3QuaW5wdXQub3V0ZXJIZWlnaHQoKSA6IDAsDQoJCQl2aWV3V2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggKyAoIGlzRml4ZWQgPyAwIDogJCggZG9jdW1lbnQgKS5zY3JvbGxMZWZ0KCkgKSwNCgkJCXZpZXdIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0ICsgKCBpc0ZpeGVkID8gMCA6ICQoIGRvY3VtZW50ICkuc2Nyb2xsVG9wKCkgKTsNCg0KCQlvZmZzZXQubGVmdCAtPSAoIHRoaXMuX2dldCggaW5zdCwgImlzUlRMIiApID8gKCBkcFdpZHRoIC0gaW5wdXRXaWR0aCApIDogMCApOw0KCQlvZmZzZXQubGVmdCAtPSAoIGlzRml4ZWQgJiYgb2Zmc2V0LmxlZnQgPT09IGluc3QuaW5wdXQub2Zmc2V0KCkubGVmdCApID8gJCggZG9jdW1lbnQgKS5zY3JvbGxMZWZ0KCkgOiAwOw0KCQlvZmZzZXQudG9wIC09ICggaXNGaXhlZCAmJiBvZmZzZXQudG9wID09PSAoIGluc3QuaW5wdXQub2Zmc2V0KCkudG9wICsgaW5wdXRIZWlnaHQgKSApID8gJCggZG9jdW1lbnQgKS5zY3JvbGxUb3AoKSA6IDA7DQoNCgkJLy8gTm93IGNoZWNrIGlmIGRhdGVwaWNrZXIgaXMgc2hvd2luZyBvdXRzaWRlIHdpbmRvdyB2aWV3cG9ydCAtIG1vdmUgdG8gYSBiZXR0ZXIgcGxhY2UgaWYgc28uDQoJCW9mZnNldC5sZWZ0IC09IE1hdGgubWluKCBvZmZzZXQubGVmdCwgKCBvZmZzZXQubGVmdCArIGRwV2lkdGggPiB2aWV3V2lkdGggJiYgdmlld1dpZHRoID4gZHBXaWR0aCApID8NCgkJCU1hdGguYWJzKCBvZmZzZXQubGVmdCArIGRwV2lkdGggLSB2aWV3V2lkdGggKSA6IDAgKTsNCgkJb2Zmc2V0LnRvcCAtPSBNYXRoLm1pbiggb2Zmc2V0LnRvcCwgKCBvZmZzZXQudG9wICsgZHBIZWlnaHQgPiB2aWV3SGVpZ2h0ICYmIHZpZXdIZWlnaHQgPiBkcEhlaWdodCApID8NCgkJCU1hdGguYWJzKCBkcEhlaWdodCArIGlucHV0SGVpZ2h0ICkgOiAwICk7DQoNCgkJcmV0dXJuIG9mZnNldDsNCgl9LA0KDQoJLyogRmluZCBhbiBvYmplY3QncyBwb3NpdGlvbiBvbiB0aGUgc2NyZWVuLiAqLw0KCV9maW5kUG9zOiBmdW5jdGlvbiggb2JqICkgew0KCQl2YXIgcG9zaXRpb24sDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCggb2JqICksDQoJCQlpc1JUTCA9IHRoaXMuX2dldCggaW5zdCwgImlzUlRMIiApOw0KDQoJCXdoaWxlICggb2JqICYmICggb2JqLnR5cGUgPT09ICJoaWRkZW4iIHx8IG9iai5ub2RlVHlwZSAhPT0gMSB8fCAkLmV4cHIuZmlsdGVycy5oaWRkZW4oIG9iaiApICkgKSB7DQoJCQlvYmogPSBvYmpbIGlzUlRMID8gInByZXZpb3VzU2libGluZyIgOiAibmV4dFNpYmxpbmciIF07DQoJCX0NCg0KCQlwb3NpdGlvbiA9ICQoIG9iaiApLm9mZnNldCgpOw0KCQlyZXR1cm4gWyBwb3NpdGlvbi5sZWZ0LCBwb3NpdGlvbi50b3AgXTsNCgl9LA0KDQoJLyogSGlkZSB0aGUgZGF0ZSBwaWNrZXIgZnJvbSB2aWV3Lg0KCSAqIEBwYXJhbSAgaW5wdXQgIGVsZW1lbnQgLSB0aGUgaW5wdXQgZmllbGQgYXR0YWNoZWQgdG8gdGhlIGRhdGUgcGlja2VyDQoJICovDQoJX2hpZGVEYXRlcGlja2VyOiBmdW5jdGlvbiggaW5wdXQgKSB7DQoJCXZhciBzaG93QW5pbSwgZHVyYXRpb24sIHBvc3RQcm9jZXNzLCBvbkNsb3NlLA0KCQkJaW5zdCA9IHRoaXMuX2N1ckluc3Q7DQoNCgkJaWYgKCAhaW5zdCB8fCAoIGlucHV0ICYmIGluc3QgIT09ICQuZGF0YSggaW5wdXQsICJkYXRlcGlja2VyIiApICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRoaXMuX2RhdGVwaWNrZXJTaG93aW5nICkgew0KCQkJc2hvd0FuaW0gPSB0aGlzLl9nZXQoIGluc3QsICJzaG93QW5pbSIgKTsNCgkJCWR1cmF0aW9uID0gdGhpcy5fZ2V0KCBpbnN0LCAiZHVyYXRpb24iICk7DQoJCQlwb3N0UHJvY2VzcyA9IGZ1bmN0aW9uKCkgew0KCQkJCSQuZGF0ZXBpY2tlci5fdGlkeURpYWxvZyggaW5zdCApOw0KCQkJfTsNCg0KCQkJLy8gREVQUkVDQVRFRDogYWZ0ZXIgQkMgZm9yIDEuOC54ICQuZWZmZWN0c1sgc2hvd0FuaW0gXSBpcyBub3QgbmVlZGVkDQoJCQlpZiAoICQuZWZmZWN0cyAmJiAoICQuZWZmZWN0cy5lZmZlY3RbIHNob3dBbmltIF0gfHwgJC5lZmZlY3RzWyBzaG93QW5pbSBdICkgKSB7DQoJCQkJaW5zdC5kcERpdi5oaWRlKCBzaG93QW5pbSwgJC5kYXRlcGlja2VyLl9nZXQoIGluc3QsICJzaG93T3B0aW9ucyIgKSwgZHVyYXRpb24sIHBvc3RQcm9jZXNzICk7DQoJCQl9IGVsc2Ugew0KCQkJCWluc3QuZHBEaXZbICggc2hvd0FuaW0gPT09ICJzbGlkZURvd24iID8gInNsaWRlVXAiIDoNCgkJCQkJKCBzaG93QW5pbSA9PT0gImZhZGVJbiIgPyAiZmFkZU91dCIgOiAiaGlkZSIgKSApIF0oICggc2hvd0FuaW0gPyBkdXJhdGlvbiA6IG51bGwgKSwgcG9zdFByb2Nlc3MgKTsNCgkJCX0NCg0KCQkJaWYgKCAhc2hvd0FuaW0gKSB7DQoJCQkJcG9zdFByb2Nlc3MoKTsNCgkJCX0NCgkJCXRoaXMuX2RhdGVwaWNrZXJTaG93aW5nID0gZmFsc2U7DQoNCgkJCW9uQ2xvc2UgPSB0aGlzLl9nZXQoIGluc3QsICJvbkNsb3NlIiApOw0KCQkJaWYgKCBvbkNsb3NlICkgew0KCQkJCW9uQ2xvc2UuYXBwbHkoICggaW5zdC5pbnB1dCA/IGluc3QuaW5wdXRbIDAgXSA6IG51bGwgKSwgWyAoIGluc3QuaW5wdXQgPyBpbnN0LmlucHV0LnZhbCgpIDogIiIgKSwgaW5zdCBdICk7DQoJCQl9DQoNCgkJCXRoaXMuX2xhc3RJbnB1dCA9IG51bGw7DQoJCQlpZiAoIHRoaXMuX2luRGlhbG9nICkgew0KCQkJCXRoaXMuX2RpYWxvZ0lucHV0LmNzcyggeyBwb3NpdGlvbjogImFic29sdXRlIiwgbGVmdDogIjAiLCB0b3A6ICItMTAwcHgiIH0gKTsNCgkJCQlpZiAoICQuYmxvY2tVSSApIHsNCgkJCQkJJC51bmJsb2NrVUkoKTsNCgkJCQkJJCggImJvZHkiICkuYXBwZW5kKCB0aGlzLmRwRGl2ICk7DQoJCQkJfQ0KCQkJfQ0KCQkJdGhpcy5faW5EaWFsb2cgPSBmYWxzZTsNCgkJfQ0KCX0sDQoNCgkvKiBUaWR5IHVwIGFmdGVyIGEgZGlhbG9nIGRpc3BsYXkuICovDQoJX3RpZHlEaWFsb2c6IGZ1bmN0aW9uKCBpbnN0ICkgew0KCQlpbnN0LmRwRGl2LnJlbW92ZUNsYXNzKCB0aGlzLl9kaWFsb2dDbGFzcyApLm9mZiggIi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIiApOw0KCX0sDQoNCgkvKiBDbG9zZSBkYXRlIHBpY2tlciBpZiBjbGlja2VkIGVsc2V3aGVyZS4gKi8NCglfY2hlY2tFeHRlcm5hbENsaWNrOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggISQuZGF0ZXBpY2tlci5fY3VySW5zdCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXZhciAkdGFyZ2V0ID0gJCggZXZlbnQudGFyZ2V0ICksDQoJCQlpbnN0ID0gJC5kYXRlcGlja2VyLl9nZXRJbnN0KCAkdGFyZ2V0WyAwIF0gKTsNCg0KCQlpZiAoICggKCAkdGFyZ2V0WyAwIF0uaWQgIT09ICQuZGF0ZXBpY2tlci5fbWFpbkRpdklkICYmDQoJCQkJJHRhcmdldC5wYXJlbnRzKCAiIyIgKyAkLmRhdGVwaWNrZXIuX21haW5EaXZJZCApLmxlbmd0aCA9PT0gMCAmJg0KCQkJCSEkdGFyZ2V0Lmhhc0NsYXNzKCAkLmRhdGVwaWNrZXIubWFya2VyQ2xhc3NOYW1lICkgJiYNCgkJCQkhJHRhcmdldC5jbG9zZXN0KCAiLiIgKyAkLmRhdGVwaWNrZXIuX3RyaWdnZXJDbGFzcyApLmxlbmd0aCAmJg0KCQkJCSQuZGF0ZXBpY2tlci5fZGF0ZXBpY2tlclNob3dpbmcgJiYgISggJC5kYXRlcGlja2VyLl9pbkRpYWxvZyAmJiAkLmJsb2NrVUkgKSApICkgfHwNCgkJCSggJHRhcmdldC5oYXNDbGFzcyggJC5kYXRlcGlja2VyLm1hcmtlckNsYXNzTmFtZSApICYmICQuZGF0ZXBpY2tlci5fY3VySW5zdCAhPT0gaW5zdCApICkgew0KCQkJCSQuZGF0ZXBpY2tlci5faGlkZURhdGVwaWNrZXIoKTsNCgkJfQ0KCX0sDQoNCgkvKiBBZGp1c3Qgb25lIG9mIHRoZSBkYXRlIHN1Yi1maWVsZHMuICovDQoJX2FkanVzdERhdGU6IGZ1bmN0aW9uKCBpZCwgb2Zmc2V0LCBwZXJpb2QgKSB7DQoJCXZhciB0YXJnZXQgPSAkKCBpZCApLA0KCQkJaW5zdCA9IHRoaXMuX2dldEluc3QoIHRhcmdldFsgMCBdICk7DQoNCgkJaWYgKCB0aGlzLl9pc0Rpc2FibGVkRGF0ZXBpY2tlciggdGFyZ2V0WyAwIF0gKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KCQl0aGlzLl9hZGp1c3RJbnN0RGF0ZSggaW5zdCwgb2Zmc2V0ICsNCgkJCSggcGVyaW9kID09PSAiTSIgPyB0aGlzLl9nZXQoIGluc3QsICJzaG93Q3VycmVudEF0UG9zIiApIDogMCApLCAvLyB1bmRvIHBvc2l0aW9uaW5nDQoJCQlwZXJpb2QgKTsNCgkJdGhpcy5fdXBkYXRlRGF0ZXBpY2tlciggaW5zdCApOw0KCX0sDQoNCgkvKiBBY3Rpb24gZm9yIGN1cnJlbnQgbGluay4gKi8NCglfZ290b1RvZGF5OiBmdW5jdGlvbiggaWQgKSB7DQoJCXZhciBkYXRlLA0KCQkJdGFyZ2V0ID0gJCggaWQgKSwNCgkJCWluc3QgPSB0aGlzLl9nZXRJbnN0KCB0YXJnZXRbIDAgXSApOw0KDQoJCWlmICggdGhpcy5fZ2V0KCBpbnN0LCAiZ290b0N1cnJlbnQiICkgJiYgaW5zdC5jdXJyZW50RGF5ICkgew0KCQkJaW5zdC5zZWxlY3RlZERheSA9IGluc3QuY3VycmVudERheTsNCgkJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gaW5zdC5jdXJyZW50TW9udGg7DQoJCQlpbnN0LmRyYXdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIgPSBpbnN0LmN1cnJlbnRZZWFyOw0KCQl9IGVsc2Ugew0KCQkJZGF0ZSA9IG5ldyBEYXRlKCk7DQoJCQlpbnN0LnNlbGVjdGVkRGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCQlpbnN0LmRyYXdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTsNCgkJCWluc3QuZHJhd1llYXIgPSBpbnN0LnNlbGVjdGVkWWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsNCgkJfQ0KCQl0aGlzLl9ub3RpZnlDaGFuZ2UoIGluc3QgKTsNCgkJdGhpcy5fYWRqdXN0RGF0ZSggdGFyZ2V0ICk7DQoJfSwNCg0KCS8qIEFjdGlvbiBmb3Igc2VsZWN0aW5nIGEgbmV3IG1vbnRoL3llYXIuICovDQoJX3NlbGVjdE1vbnRoWWVhcjogZnVuY3Rpb24oIGlkLCBzZWxlY3QsIHBlcmlvZCApIHsNCgkJdmFyIHRhcmdldCA9ICQoIGlkICksDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCggdGFyZ2V0WyAwIF0gKTsNCg0KCQlpbnN0WyAic2VsZWN0ZWQiICsgKCBwZXJpb2QgPT09ICJNIiA/ICJNb250aCIgOiAiWWVhciIgKSBdID0NCgkJaW5zdFsgImRyYXciICsgKCBwZXJpb2QgPT09ICJNIiA/ICJNb250aCIgOiAiWWVhciIgKSBdID0NCgkJCXBhcnNlSW50KCBzZWxlY3Qub3B0aW9uc1sgc2VsZWN0LnNlbGVjdGVkSW5kZXggXS52YWx1ZSwgMTAgKTsNCg0KCQl0aGlzLl9ub3RpZnlDaGFuZ2UoIGluc3QgKTsNCgkJdGhpcy5fYWRqdXN0RGF0ZSggdGFyZ2V0ICk7DQoJfSwNCg0KCS8qIEFjdGlvbiBmb3Igc2VsZWN0aW5nIGEgZGF5LiAqLw0KCV9zZWxlY3REYXk6IGZ1bmN0aW9uKCBpZCwgbW9udGgsIHllYXIsIHRkICkgew0KCQl2YXIgaW5zdCwNCgkJCXRhcmdldCA9ICQoIGlkICk7DQoNCgkJaWYgKCAkKCB0ZCApLmhhc0NsYXNzKCB0aGlzLl91bnNlbGVjdGFibGVDbGFzcyApIHx8IHRoaXMuX2lzRGlzYWJsZWREYXRlcGlja2VyKCB0YXJnZXRbIDAgXSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaW5zdCA9IHRoaXMuX2dldEluc3QoIHRhcmdldFsgMCBdICk7DQoJCWluc3Quc2VsZWN0ZWREYXkgPSBpbnN0LmN1cnJlbnREYXkgPSAkKCAiYSIsIHRkICkuaHRtbCgpOw0KCQlpbnN0LnNlbGVjdGVkTW9udGggPSBpbnN0LmN1cnJlbnRNb250aCA9IG1vbnRoOw0KCQlpbnN0LnNlbGVjdGVkWWVhciA9IGluc3QuY3VycmVudFllYXIgPSB5ZWFyOw0KCQl0aGlzLl9zZWxlY3REYXRlKCBpZCwgdGhpcy5fZm9ybWF0RGF0ZSggaW5zdCwNCgkJCWluc3QuY3VycmVudERheSwgaW5zdC5jdXJyZW50TW9udGgsIGluc3QuY3VycmVudFllYXIgKSApOw0KCX0sDQoNCgkvKiBFcmFzZSB0aGUgaW5wdXQgZmllbGQgYW5kIGhpZGUgdGhlIGRhdGUgcGlja2VyLiAqLw0KCV9jbGVhckRhdGU6IGZ1bmN0aW9uKCBpZCApIHsNCgkJdmFyIHRhcmdldCA9ICQoIGlkICk7DQoJCXRoaXMuX3NlbGVjdERhdGUoIHRhcmdldCwgIiIgKTsNCgl9LA0KDQoJLyogVXBkYXRlIHRoZSBpbnB1dCBmaWVsZCB3aXRoIHRoZSBzZWxlY3RlZCBkYXRlLiAqLw0KCV9zZWxlY3REYXRlOiBmdW5jdGlvbiggaWQsIGRhdGVTdHIgKSB7DQoJCXZhciBvblNlbGVjdCwNCgkJCXRhcmdldCA9ICQoIGlkICksDQoJCQlpbnN0ID0gdGhpcy5fZ2V0SW5zdCggdGFyZ2V0WyAwIF0gKTsNCg0KCQlkYXRlU3RyID0gKCBkYXRlU3RyICE9IG51bGwgPyBkYXRlU3RyIDogdGhpcy5fZm9ybWF0RGF0ZSggaW5zdCApICk7DQoJCWlmICggaW5zdC5pbnB1dCApIHsNCgkJCWluc3QuaW5wdXQudmFsKCBkYXRlU3RyICk7DQoJCX0NCgkJdGhpcy5fdXBkYXRlQWx0ZXJuYXRlKCBpbnN0ICk7DQoNCgkJb25TZWxlY3QgPSB0aGlzLl9nZXQoIGluc3QsICJvblNlbGVjdCIgKTsNCgkJaWYgKCBvblNlbGVjdCApIHsNCgkJCW9uU2VsZWN0LmFwcGx5KCAoIGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WyAwIF0gOiBudWxsICksIFsgZGF0ZVN0ciwgaW5zdCBdICk7ICAvLyB0cmlnZ2VyIGN1c3RvbSBjYWxsYmFjaw0KCQl9IGVsc2UgaWYgKCBpbnN0LmlucHV0ICkgew0KCQkJaW5zdC5pbnB1dC50cmlnZ2VyKCAiY2hhbmdlIiApOyAvLyBmaXJlIHRoZSBjaGFuZ2UgZXZlbnQNCgkJfQ0KDQoJCWlmICggaW5zdC5pbmxpbmUgKSB7DQoJCQl0aGlzLl91cGRhdGVEYXRlcGlja2VyKCBpbnN0ICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLl9oaWRlRGF0ZXBpY2tlcigpOw0KCQkJdGhpcy5fbGFzdElucHV0ID0gaW5zdC5pbnB1dFsgMCBdOw0KCQkJaWYgKCB0eXBlb2YoIGluc3QuaW5wdXRbIDAgXSApICE9PSAib2JqZWN0IiApIHsNCgkJCQlpbnN0LmlucHV0LnRyaWdnZXIoICJmb2N1cyIgKTsgLy8gcmVzdG9yZSBmb2N1cw0KCQkJfQ0KCQkJdGhpcy5fbGFzdElucHV0ID0gbnVsbDsNCgkJfQ0KCX0sDQoNCgkvKiBVcGRhdGUgYW55IGFsdGVybmF0ZSBmaWVsZCB0byBzeW5jaHJvbmlzZSB3aXRoIHRoZSBtYWluIGZpZWxkLiAqLw0KCV91cGRhdGVBbHRlcm5hdGU6IGZ1bmN0aW9uKCBpbnN0ICkgew0KCQl2YXIgYWx0Rm9ybWF0LCBkYXRlLCBkYXRlU3RyLA0KCQkJYWx0RmllbGQgPSB0aGlzLl9nZXQoIGluc3QsICJhbHRGaWVsZCIgKTsNCg0KCQlpZiAoIGFsdEZpZWxkICkgeyAvLyB1cGRhdGUgYWx0ZXJuYXRlIGZpZWxkIHRvbw0KCQkJYWx0Rm9ybWF0ID0gdGhpcy5fZ2V0KCBpbnN0LCAiYWx0Rm9ybWF0IiApIHx8IHRoaXMuX2dldCggaW5zdCwgImRhdGVGb3JtYXQiICk7DQoJCQlkYXRlID0gdGhpcy5fZ2V0RGF0ZSggaW5zdCApOw0KCQkJZGF0ZVN0ciA9IHRoaXMuZm9ybWF0RGF0ZSggYWx0Rm9ybWF0LCBkYXRlLCB0aGlzLl9nZXRGb3JtYXRDb25maWcoIGluc3QgKSApOw0KCQkJJCggYWx0RmllbGQgKS52YWwoIGRhdGVTdHIgKTsNCgkJfQ0KCX0sDQoNCgkvKiBTZXQgYXMgYmVmb3JlU2hvd0RheSBmdW5jdGlvbiB0byBwcmV2ZW50IHNlbGVjdGlvbiBvZiB3ZWVrZW5kcy4NCgkgKiBAcGFyYW0gIGRhdGUgIERhdGUgLSB0aGUgZGF0ZSB0byBjdXN0b21pc2UNCgkgKiBAcmV0dXJuIFtib29sZWFuLCBzdHJpbmddIC0gaXMgdGhpcyBkYXRlIHNlbGVjdGFibGU/LCB3aGF0IGlzIGl0cyBDU1MgY2xhc3M/DQoJICovDQoJbm9XZWVrZW5kczogZnVuY3Rpb24oIGRhdGUgKSB7DQoJCXZhciBkYXkgPSBkYXRlLmdldERheSgpOw0KCQlyZXR1cm4gWyAoIGRheSA+IDAgJiYgZGF5IDwgNiApLCAiIiBdOw0KCX0sDQoNCgkvKiBTZXQgYXMgY2FsY3VsYXRlV2VlayB0byBkZXRlcm1pbmUgdGhlIHdlZWsgb2YgdGhlIHllYXIgYmFzZWQgb24gdGhlIElTTyA4NjAxIGRlZmluaXRpb24uDQoJICogQHBhcmFtICBkYXRlICBEYXRlIC0gdGhlIGRhdGUgdG8gZ2V0IHRoZSB3ZWVrIGZvcg0KCSAqIEByZXR1cm4gIG51bWJlciAtIHRoZSBudW1iZXIgb2YgdGhlIHdlZWsgd2l0aGluIHRoZSB5ZWFyIHRoYXQgY29udGFpbnMgdGhpcyBkYXRlDQoJICovDQoJaXNvODYwMVdlZWs6IGZ1bmN0aW9uKCBkYXRlICkgew0KCQl2YXIgdGltZSwNCgkJCWNoZWNrRGF0ZSA9IG5ldyBEYXRlKCBkYXRlLmdldFRpbWUoKSApOw0KDQoJCS8vIEZpbmQgVGh1cnNkYXkgb2YgdGhpcyB3ZWVrIHN0YXJ0aW5nIG9uIE1vbmRheQ0KCQljaGVja0RhdGUuc2V0RGF0ZSggY2hlY2tEYXRlLmdldERhdGUoKSArIDQgLSAoIGNoZWNrRGF0ZS5nZXREYXkoKSB8fCA3ICkgKTsNCg0KCQl0aW1lID0gY2hlY2tEYXRlLmdldFRpbWUoKTsNCgkJY2hlY2tEYXRlLnNldE1vbnRoKCAwICk7IC8vIENvbXBhcmUgd2l0aCBKYW4gMQ0KCQljaGVja0RhdGUuc2V0RGF0ZSggMSApOw0KCQlyZXR1cm4gTWF0aC5mbG9vciggTWF0aC5yb3VuZCggKCB0aW1lIC0gY2hlY2tEYXRlICkgLyA4NjQwMDAwMCApIC8gNyApICsgMTsNCgl9LA0KDQoJLyogUGFyc2UgYSBzdHJpbmcgdmFsdWUgaW50byBhIGRhdGUgb2JqZWN0Lg0KCSAqIFNlZSBmb3JtYXREYXRlIGJlbG93IGZvciB0aGUgcG9zc2libGUgZm9ybWF0cy4NCgkgKg0KCSAqIEBwYXJhbSAgZm9ybWF0IHN0cmluZyAtIHRoZSBleHBlY3RlZCBmb3JtYXQgb2YgdGhlIGRhdGUNCgkgKiBAcGFyYW0gIHZhbHVlIHN0cmluZyAtIHRoZSBkYXRlIGluIHRoZSBhYm92ZSBmb3JtYXQNCgkgKiBAcGFyYW0gIHNldHRpbmdzIE9iamVjdCAtIGF0dHJpYnV0ZXMgaW5jbHVkZToNCgkgKgkJCQkJc2hvcnRZZWFyQ3V0b2ZmICBudW1iZXIgLSB0aGUgY3V0b2ZmIHllYXIgZm9yIGRldGVybWluaW5nIHRoZSBjZW50dXJ5IChvcHRpb25hbCkNCgkgKgkJCQkJZGF5TmFtZXNTaG9ydAlzdHJpbmdbN10gLSBhYmJyZXZpYXRlZCBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCWRheU5hbWVzCQlzdHJpbmdbN10gLSBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXNTaG9ydCBzdHJpbmdbMTJdIC0gYWJicmV2aWF0ZWQgbmFtZXMgb2YgdGhlIG1vbnRocyAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXMJCXN0cmluZ1sxMl0gLSBuYW1lcyBvZiB0aGUgbW9udGhzIChvcHRpb25hbCkNCgkgKiBAcmV0dXJuICBEYXRlIC0gdGhlIGV4dHJhY3RlZCBkYXRlIHZhbHVlIG9yIG51bGwgaWYgdmFsdWUgaXMgYmxhbmsNCgkgKi8NCglwYXJzZURhdGU6IGZ1bmN0aW9uKCBmb3JtYXQsIHZhbHVlLCBzZXR0aW5ncyApIHsNCgkJaWYgKCBmb3JtYXQgPT0gbnVsbCB8fCB2YWx1ZSA9PSBudWxsICkgew0KCQkJdGhyb3cgIkludmFsaWQgYXJndW1lbnRzIjsNCgkJfQ0KDQoJCXZhbHVlID0gKCB0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiID8gdmFsdWUudG9TdHJpbmcoKSA6IHZhbHVlICsgIiIgKTsNCgkJaWYgKCB2YWx1ZSA9PT0gIiIgKSB7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KDQoJCXZhciBpRm9ybWF0LCBkaW0sIGV4dHJhLA0KCQkJaVZhbHVlID0gMCwNCgkJCXNob3J0WWVhckN1dG9mZlRlbXAgPSAoIHNldHRpbmdzID8gc2V0dGluZ3Muc2hvcnRZZWFyQ3V0b2ZmIDogbnVsbCApIHx8IHRoaXMuX2RlZmF1bHRzLnNob3J0WWVhckN1dG9mZiwNCgkJCXNob3J0WWVhckN1dG9mZiA9ICggdHlwZW9mIHNob3J0WWVhckN1dG9mZlRlbXAgIT09ICJzdHJpbmciID8gc2hvcnRZZWFyQ3V0b2ZmVGVtcCA6DQoJCQkJbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICUgMTAwICsgcGFyc2VJbnQoIHNob3J0WWVhckN1dG9mZlRlbXAsIDEwICkgKSwNCgkJCWRheU5hbWVzU2hvcnQgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MuZGF5TmFtZXNTaG9ydCA6IG51bGwgKSB8fCB0aGlzLl9kZWZhdWx0cy5kYXlOYW1lc1Nob3J0LA0KCQkJZGF5TmFtZXMgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MuZGF5TmFtZXMgOiBudWxsICkgfHwgdGhpcy5fZGVmYXVsdHMuZGF5TmFtZXMsDQoJCQltb250aE5hbWVzU2hvcnQgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MubW9udGhOYW1lc1Nob3J0IDogbnVsbCApIHx8IHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCwNCgkJCW1vbnRoTmFtZXMgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MubW9udGhOYW1lcyA6IG51bGwgKSB8fCB0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzLA0KCQkJeWVhciA9IC0xLA0KCQkJbW9udGggPSAtMSwNCgkJCWRheSA9IC0xLA0KCQkJZG95ID0gLTEsDQoJCQlsaXRlcmFsID0gZmFsc2UsDQoJCQlkYXRlLA0KDQoJCQkvLyBDaGVjayB3aGV0aGVyIGEgZm9ybWF0IGNoYXJhY3RlciBpcyBkb3VibGVkDQoJCQlsb29rQWhlYWQgPSBmdW5jdGlvbiggbWF0Y2ggKSB7DQoJCQkJdmFyIG1hdGNoZXMgPSAoIGlGb3JtYXQgKyAxIDwgZm9ybWF0Lmxlbmd0aCAmJiBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICsgMSApID09PSBtYXRjaCApOw0KCQkJCWlmICggbWF0Y2hlcyApIHsNCgkJCQkJaUZvcm1hdCsrOw0KCQkJCX0NCgkJCQlyZXR1cm4gbWF0Y2hlczsNCgkJCX0sDQoNCgkJCS8vIEV4dHJhY3QgYSBudW1iZXIgZnJvbSB0aGUgc3RyaW5nIHZhbHVlDQoJCQlnZXROdW1iZXIgPSBmdW5jdGlvbiggbWF0Y2ggKSB7DQoJCQkJdmFyIGlzRG91YmxlZCA9IGxvb2tBaGVhZCggbWF0Y2ggKSwNCgkJCQkJc2l6ZSA9ICggbWF0Y2ggPT09ICJAIiA/IDE0IDogKCBtYXRjaCA9PT0gIiEiID8gMjAgOg0KCQkJCQkoIG1hdGNoID09PSAieSIgJiYgaXNEb3VibGVkID8gNCA6ICggbWF0Y2ggPT09ICJvIiA/IDMgOiAyICkgKSApICksDQoJCQkJCW1pblNpemUgPSAoIG1hdGNoID09PSAieSIgPyBzaXplIDogMSApLA0KCQkJCQlkaWdpdHMgPSBuZXcgUmVnRXhwKCAiXlxcZHsiICsgbWluU2l6ZSArICIsIiArIHNpemUgKyAifSIgKSwNCgkJCQkJbnVtID0gdmFsdWUuc3Vic3RyaW5nKCBpVmFsdWUgKS5tYXRjaCggZGlnaXRzICk7DQoJCQkJaWYgKCAhbnVtICkgew0KCQkJCQl0aHJvdyAiTWlzc2luZyBudW1iZXIgYXQgcG9zaXRpb24gIiArIGlWYWx1ZTsNCgkJCQl9DQoJCQkJaVZhbHVlICs9IG51bVsgMCBdLmxlbmd0aDsNCgkJCQlyZXR1cm4gcGFyc2VJbnQoIG51bVsgMCBdLCAxMCApOw0KCQkJfSwNCg0KCQkJLy8gRXh0cmFjdCBhIG5hbWUgZnJvbSB0aGUgc3RyaW5nIHZhbHVlIGFuZCBjb252ZXJ0IHRvIGFuIGluZGV4DQoJCQlnZXROYW1lID0gZnVuY3Rpb24oIG1hdGNoLCBzaG9ydE5hbWVzLCBsb25nTmFtZXMgKSB7DQoJCQkJdmFyIGluZGV4ID0gLTEsDQoJCQkJCW5hbWVzID0gJC5tYXAoIGxvb2tBaGVhZCggbWF0Y2ggKSA/IGxvbmdOYW1lcyA6IHNob3J0TmFtZXMsIGZ1bmN0aW9uKCB2LCBrICkgew0KCQkJCQkJcmV0dXJuIFsgWyBrLCB2IF0gXTsNCgkJCQkJfSApLnNvcnQoIGZ1bmN0aW9uKCBhLCBiICkgew0KCQkJCQkJcmV0dXJuIC0oIGFbIDEgXS5sZW5ndGggLSBiWyAxIF0ubGVuZ3RoICk7DQoJCQkJCX0gKTsNCg0KCQkJCSQuZWFjaCggbmFtZXMsIGZ1bmN0aW9uKCBpLCBwYWlyICkgew0KCQkJCQl2YXIgbmFtZSA9IHBhaXJbIDEgXTsNCgkJCQkJaWYgKCB2YWx1ZS5zdWJzdHIoIGlWYWx1ZSwgbmFtZS5sZW5ndGggKS50b0xvd2VyQ2FzZSgpID09PSBuYW1lLnRvTG93ZXJDYXNlKCkgKSB7DQoJCQkJCQlpbmRleCA9IHBhaXJbIDAgXTsNCgkJCQkJCWlWYWx1ZSArPSBuYW1lLmxlbmd0aDsNCgkJCQkJCXJldHVybiBmYWxzZTsNCgkJCQkJfQ0KCQkJCX0gKTsNCgkJCQlpZiAoIGluZGV4ICE9PSAtMSApIHsNCgkJCQkJcmV0dXJuIGluZGV4ICsgMTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0aHJvdyAiVW5rbm93biBuYW1lIGF0IHBvc2l0aW9uICIgKyBpVmFsdWU7DQoJCQkJfQ0KCQkJfSwNCg0KCQkJLy8gQ29uZmlybSB0aGF0IGEgbGl0ZXJhbCBjaGFyYWN0ZXIgbWF0Y2hlcyB0aGUgc3RyaW5nIHZhbHVlDQoJCQljaGVja0xpdGVyYWwgPSBmdW5jdGlvbigpIHsNCgkJCQlpZiAoIHZhbHVlLmNoYXJBdCggaVZhbHVlICkgIT09IGZvcm1hdC5jaGFyQXQoIGlGb3JtYXQgKSApIHsNCgkJCQkJdGhyb3cgIlVuZXhwZWN0ZWQgbGl0ZXJhbCBhdCBwb3NpdGlvbiAiICsgaVZhbHVlOw0KCQkJCX0NCgkJCQlpVmFsdWUrKzsNCgkJCX07DQoNCgkJZm9yICggaUZvcm1hdCA9IDA7IGlGb3JtYXQgPCBmb3JtYXQubGVuZ3RoOyBpRm9ybWF0KysgKSB7DQoJCQlpZiAoIGxpdGVyYWwgKSB7DQoJCQkJaWYgKCBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICkgPT09ICInIiAmJiAhbG9va0FoZWFkKCAiJyIgKSApIHsNCgkJCQkJbGl0ZXJhbCA9IGZhbHNlOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWNoZWNrTGl0ZXJhbCgpOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoJCQkJc3dpdGNoICggZm9ybWF0LmNoYXJBdCggaUZvcm1hdCApICkgew0KCQkJCQljYXNlICJkIjoNCgkJCQkJCWRheSA9IGdldE51bWJlciggImQiICk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiRCI6DQoJCQkJCQlnZXROYW1lKCAiRCIsIGRheU5hbWVzU2hvcnQsIGRheU5hbWVzICk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAibyI6DQoJCQkJCQlkb3kgPSBnZXROdW1iZXIoICJvIiApOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIm0iOg0KCQkJCQkJbW9udGggPSBnZXROdW1iZXIoICJtIiApOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIk0iOg0KCQkJCQkJbW9udGggPSBnZXROYW1lKCAiTSIsIG1vbnRoTmFtZXNTaG9ydCwgbW9udGhOYW1lcyApOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgInkiOg0KCQkJCQkJeWVhciA9IGdldE51bWJlciggInkiICk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiQCI6DQoJCQkJCQlkYXRlID0gbmV3IERhdGUoIGdldE51bWJlciggIkAiICkgKTsNCgkJCQkJCXllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7DQoJCQkJCQltb250aCA9IGRhdGUuZ2V0TW9udGgoKSArIDE7DQoJCQkJCQlkYXkgPSBkYXRlLmdldERhdGUoKTsNCgkJCQkJCWJyZWFrOw0KCQkJCQljYXNlICIhIjoNCgkJCQkJCWRhdGUgPSBuZXcgRGF0ZSggKCBnZXROdW1iZXIoICIhIiApIC0gdGhpcy5fdGlja3NUbzE5NzAgKSAvIDEwMDAwICk7DQoJCQkJCQl5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQkJCQkJbW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxOw0KCQkJCQkJZGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCQkJCQlicmVhazsNCgkJCQkJY2FzZSAiJyI6DQoJCQkJCQlpZiAoIGxvb2tBaGVhZCggIiciICkgKSB7DQoJCQkJCQkJY2hlY2tMaXRlcmFsKCk7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCWxpdGVyYWwgPSB0cnVlOw0KCQkJCQkJfQ0KCQkJCQkJYnJlYWs7DQoJCQkJCWRlZmF1bHQ6DQoJCQkJCQljaGVja0xpdGVyYWwoKTsNCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlpZiAoIGlWYWx1ZSA8IHZhbHVlLmxlbmd0aCApIHsNCgkJCWV4dHJhID0gdmFsdWUuc3Vic3RyKCBpVmFsdWUgKTsNCgkJCWlmICggIS9eXHMrLy50ZXN0KCBleHRyYSApICkgew0KCQkJCXRocm93ICJFeHRyYS91bnBhcnNlZCBjaGFyYWN0ZXJzIGZvdW5kIGluIGRhdGU6ICIgKyBleHRyYTsNCgkJCX0NCgkJfQ0KDQoJCWlmICggeWVhciA9PT0gLTEgKSB7DQoJCQl5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOw0KCQl9IGVsc2UgaWYgKCB5ZWFyIDwgMTAwICkgew0KCQkJeWVhciArPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgJSAxMDAgKw0KCQkJCSggeWVhciA8PSBzaG9ydFllYXJDdXRvZmYgPyAwIDogLTEwMCApOw0KCQl9DQoNCgkJaWYgKCBkb3kgPiAtMSApIHsNCgkJCW1vbnRoID0gMTsNCgkJCWRheSA9IGRveTsNCgkJCWRvIHsNCgkJCQlkaW0gPSB0aGlzLl9nZXREYXlzSW5Nb250aCggeWVhciwgbW9udGggLSAxICk7DQoJCQkJaWYgKCBkYXkgPD0gZGltICkgew0KCQkJCQlicmVhazsNCgkJCQl9DQoJCQkJbW9udGgrKzsNCgkJCQlkYXkgLT0gZGltOw0KCQkJfSB3aGlsZSAoIHRydWUgKTsNCgkJfQ0KDQoJCWRhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCggbmV3IERhdGUoIHllYXIsIG1vbnRoIC0gMSwgZGF5ICkgKTsNCgkJaWYgKCBkYXRlLmdldEZ1bGxZZWFyKCkgIT09IHllYXIgfHwgZGF0ZS5nZXRNb250aCgpICsgMSAhPT0gbW9udGggfHwgZGF0ZS5nZXREYXRlKCkgIT09IGRheSApIHsNCgkJCXRocm93ICJJbnZhbGlkIGRhdGUiOyAvLyBFLmcuIDMxLzAyLzAwDQoJCX0NCgkJcmV0dXJuIGRhdGU7DQoJfSwNCg0KCS8qIFN0YW5kYXJkIGRhdGUgZm9ybWF0cy4gKi8NCglBVE9NOiAieXktbW0tZGQiLCAvLyBSRkMgMzMzOSAoSVNPIDg2MDEpDQoJQ09PS0lFOiAiRCwgZGQgTSB5eSIsDQoJSVNPXzg2MDE6ICJ5eS1tbS1kZCIsDQoJUkZDXzgyMjogIkQsIGQgTSB5IiwNCglSRkNfODUwOiAiREQsIGRkLU0teSIsDQoJUkZDXzEwMzY6ICJELCBkIE0geSIsDQoJUkZDXzExMjM6ICJELCBkIE0geXkiLA0KCVJGQ18yODIyOiAiRCwgZCBNIHl5IiwNCglSU1M6ICJELCBkIE0geSIsIC8vIFJGQyA4MjINCglUSUNLUzogIiEiLA0KCVRJTUVTVEFNUDogIkAiLA0KCVczQzogInl5LW1tLWRkIiwgLy8gSVNPIDg2MDENCg0KCV90aWNrc1RvMTk3MDogKCAoICggMTk3MCAtIDEgKSAqIDM2NSArIE1hdGguZmxvb3IoIDE5NzAgLyA0ICkgLSBNYXRoLmZsb29yKCAxOTcwIC8gMTAwICkgKw0KCQlNYXRoLmZsb29yKCAxOTcwIC8gNDAwICkgKSAqIDI0ICogNjAgKiA2MCAqIDEwMDAwMDAwICksDQoNCgkvKiBGb3JtYXQgYSBkYXRlIG9iamVjdCBpbnRvIGEgc3RyaW5nIHZhbHVlLg0KCSAqIFRoZSBmb3JtYXQgY2FuIGJlIGNvbWJpbmF0aW9ucyBvZiB0aGUgZm9sbG93aW5nOg0KCSAqIGQgIC0gZGF5IG9mIG1vbnRoIChubyBsZWFkaW5nIHplcm8pDQoJICogZGQgLSBkYXkgb2YgbW9udGggKHR3byBkaWdpdCkNCgkgKiBvICAtIGRheSBvZiB5ZWFyIChubyBsZWFkaW5nIHplcm9zKQ0KCSAqIG9vIC0gZGF5IG9mIHllYXIgKHRocmVlIGRpZ2l0KQ0KCSAqIEQgIC0gZGF5IG5hbWUgc2hvcnQNCgkgKiBERCAtIGRheSBuYW1lIGxvbmcNCgkgKiBtICAtIG1vbnRoIG9mIHllYXIgKG5vIGxlYWRpbmcgemVybykNCgkgKiBtbSAtIG1vbnRoIG9mIHllYXIgKHR3byBkaWdpdCkNCgkgKiBNICAtIG1vbnRoIG5hbWUgc2hvcnQNCgkgKiBNTSAtIG1vbnRoIG5hbWUgbG9uZw0KCSAqIHkgIC0geWVhciAodHdvIGRpZ2l0KQ0KCSAqIHl5IC0geWVhciAoZm91ciBkaWdpdCkNCgkgKiBAIC0gVW5peCB0aW1lc3RhbXAgKG1zIHNpbmNlIDAxLzAxLzE5NzApDQoJICogISAtIFdpbmRvd3MgdGlja3MgKDEwMG5zIHNpbmNlIDAxLzAxLzAwMDEpDQoJICogIi4uLiIgLSBsaXRlcmFsIHRleHQNCgkgKiAnJyAtIHNpbmdsZSBxdW90ZQ0KCSAqDQoJICogQHBhcmFtICBmb3JtYXQgc3RyaW5nIC0gdGhlIGRlc2lyZWQgZm9ybWF0IG9mIHRoZSBkYXRlDQoJICogQHBhcmFtICBkYXRlIERhdGUgLSB0aGUgZGF0ZSB2YWx1ZSB0byBmb3JtYXQNCgkgKiBAcGFyYW0gIHNldHRpbmdzIE9iamVjdCAtIGF0dHJpYnV0ZXMgaW5jbHVkZToNCgkgKgkJCQkJZGF5TmFtZXNTaG9ydAlzdHJpbmdbN10gLSBhYmJyZXZpYXRlZCBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCWRheU5hbWVzCQlzdHJpbmdbN10gLSBuYW1lcyBvZiB0aGUgZGF5cyBmcm9tIFN1bmRheSAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXNTaG9ydCBzdHJpbmdbMTJdIC0gYWJicmV2aWF0ZWQgbmFtZXMgb2YgdGhlIG1vbnRocyAob3B0aW9uYWwpDQoJICoJCQkJCW1vbnRoTmFtZXMJCXN0cmluZ1sxMl0gLSBuYW1lcyBvZiB0aGUgbW9udGhzIChvcHRpb25hbCkNCgkgKiBAcmV0dXJuICBzdHJpbmcgLSB0aGUgZGF0ZSBpbiB0aGUgYWJvdmUgZm9ybWF0DQoJICovDQoJZm9ybWF0RGF0ZTogZnVuY3Rpb24oIGZvcm1hdCwgZGF0ZSwgc2V0dGluZ3MgKSB7DQoJCWlmICggIWRhdGUgKSB7DQoJCQlyZXR1cm4gIiI7DQoJCX0NCg0KCQl2YXIgaUZvcm1hdCwNCgkJCWRheU5hbWVzU2hvcnQgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MuZGF5TmFtZXNTaG9ydCA6IG51bGwgKSB8fCB0aGlzLl9kZWZhdWx0cy5kYXlOYW1lc1Nob3J0LA0KCQkJZGF5TmFtZXMgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MuZGF5TmFtZXMgOiBudWxsICkgfHwgdGhpcy5fZGVmYXVsdHMuZGF5TmFtZXMsDQoJCQltb250aE5hbWVzU2hvcnQgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MubW9udGhOYW1lc1Nob3J0IDogbnVsbCApIHx8IHRoaXMuX2RlZmF1bHRzLm1vbnRoTmFtZXNTaG9ydCwNCgkJCW1vbnRoTmFtZXMgPSAoIHNldHRpbmdzID8gc2V0dGluZ3MubW9udGhOYW1lcyA6IG51bGwgKSB8fCB0aGlzLl9kZWZhdWx0cy5tb250aE5hbWVzLA0KDQoJCQkvLyBDaGVjayB3aGV0aGVyIGEgZm9ybWF0IGNoYXJhY3RlciBpcyBkb3VibGVkDQoJCQlsb29rQWhlYWQgPSBmdW5jdGlvbiggbWF0Y2ggKSB7DQoJCQkJdmFyIG1hdGNoZXMgPSAoIGlGb3JtYXQgKyAxIDwgZm9ybWF0Lmxlbmd0aCAmJiBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICsgMSApID09PSBtYXRjaCApOw0KCQkJCWlmICggbWF0Y2hlcyApIHsNCgkJCQkJaUZvcm1hdCsrOw0KCQkJCX0NCgkJCQlyZXR1cm4gbWF0Y2hlczsNCgkJCX0sDQoNCgkJCS8vIEZvcm1hdCBhIG51bWJlciwgd2l0aCBsZWFkaW5nIHplcm8gaWYgbmVjZXNzYXJ5DQoJCQlmb3JtYXROdW1iZXIgPSBmdW5jdGlvbiggbWF0Y2gsIHZhbHVlLCBsZW4gKSB7DQoJCQkJdmFyIG51bSA9ICIiICsgdmFsdWU7DQoJCQkJaWYgKCBsb29rQWhlYWQoIG1hdGNoICkgKSB7DQoJCQkJCXdoaWxlICggbnVtLmxlbmd0aCA8IGxlbiApIHsNCgkJCQkJCW51bSA9ICIwIiArIG51bTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQlyZXR1cm4gbnVtOw0KCQkJfSwNCg0KCQkJLy8gRm9ybWF0IGEgbmFtZSwgc2hvcnQgb3IgbG9uZyBhcyByZXF1ZXN0ZWQNCgkJCWZvcm1hdE5hbWUgPSBmdW5jdGlvbiggbWF0Y2gsIHZhbHVlLCBzaG9ydE5hbWVzLCBsb25nTmFtZXMgKSB7DQoJCQkJcmV0dXJuICggbG9va0FoZWFkKCBtYXRjaCApID8gbG9uZ05hbWVzWyB2YWx1ZSBdIDogc2hvcnROYW1lc1sgdmFsdWUgXSApOw0KCQkJfSwNCgkJCW91dHB1dCA9ICIiLA0KCQkJbGl0ZXJhbCA9IGZhbHNlOw0KDQoJCWlmICggZGF0ZSApIHsNCgkJCWZvciAoIGlGb3JtYXQgPSAwOyBpRm9ybWF0IDwgZm9ybWF0Lmxlbmd0aDsgaUZvcm1hdCsrICkgew0KCQkJCWlmICggbGl0ZXJhbCApIHsNCgkJCQkJaWYgKCBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICkgPT09ICInIiAmJiAhbG9va0FoZWFkKCAiJyIgKSApIHsNCgkJCQkJCWxpdGVyYWwgPSBmYWxzZTsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCW91dHB1dCArPSBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICk7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQlzd2l0Y2ggKCBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICkgKSB7DQoJCQkJCQljYXNlICJkIjoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0TnVtYmVyKCAiZCIsIGRhdGUuZ2V0RGF0ZSgpLCAyICk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJEIjoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0TmFtZSggIkQiLCBkYXRlLmdldERheSgpLCBkYXlOYW1lc1Nob3J0LCBkYXlOYW1lcyApOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJY2FzZSAibyI6DQoJCQkJCQkJb3V0cHV0ICs9IGZvcm1hdE51bWJlciggIm8iLA0KCQkJCQkJCQlNYXRoLnJvdW5kKCAoIG5ldyBEYXRlKCBkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkgKS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSggZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAwICkuZ2V0VGltZSgpICkgLyA4NjQwMDAwMCApLCAzICk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJtIjoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0TnVtYmVyKCAibSIsIGRhdGUuZ2V0TW9udGgoKSArIDEsIDIgKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIk0iOg0KCQkJCQkJCW91dHB1dCArPSBmb3JtYXROYW1lKCAiTSIsIGRhdGUuZ2V0TW9udGgoKSwgbW9udGhOYW1lc1Nob3J0LCBtb250aE5hbWVzICk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJ5IjoNCgkJCQkJCQlvdXRwdXQgKz0gKCBsb29rQWhlYWQoICJ5IiApID8gZGF0ZS5nZXRGdWxsWWVhcigpIDoNCgkJCQkJCQkJKCBkYXRlLmdldEZ1bGxZZWFyKCkgJSAxMDAgPCAxMCA/ICIwIiA6ICIiICkgKyBkYXRlLmdldEZ1bGxZZWFyKCkgJSAxMDAgKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIkAiOg0KCQkJCQkJCW91dHB1dCArPSBkYXRlLmdldFRpbWUoKTsNCgkJCQkJCQlicmVhazsNCgkJCQkJCWNhc2UgIiEiOg0KCQkJCQkJCW91dHB1dCArPSBkYXRlLmdldFRpbWUoKSAqIDEwMDAwICsgdGhpcy5fdGlja3NUbzE5NzA7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICInIjoNCgkJCQkJCQlpZiAoIGxvb2tBaGVhZCggIiciICkgKSB7DQoJCQkJCQkJCW91dHB1dCArPSAiJyI7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJbGl0ZXJhbCA9IHRydWU7DQoJCQkJCQkJfQ0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJZGVmYXVsdDoNCgkJCQkJCQlvdXRwdXQgKz0gZm9ybWF0LmNoYXJBdCggaUZvcm1hdCApOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCXJldHVybiBvdXRwdXQ7DQoJfSwNCg0KCS8qIEV4dHJhY3QgYWxsIHBvc3NpYmxlIGNoYXJhY3RlcnMgZnJvbSB0aGUgZGF0ZSBmb3JtYXQuICovDQoJX3Bvc3NpYmxlQ2hhcnM6IGZ1bmN0aW9uKCBmb3JtYXQgKSB7DQoJCXZhciBpRm9ybWF0LA0KCQkJY2hhcnMgPSAiIiwNCgkJCWxpdGVyYWwgPSBmYWxzZSwNCg0KCQkJLy8gQ2hlY2sgd2hldGhlciBhIGZvcm1hdCBjaGFyYWN0ZXIgaXMgZG91YmxlZA0KCQkJbG9va0FoZWFkID0gZnVuY3Rpb24oIG1hdGNoICkgew0KCQkJCXZhciBtYXRjaGVzID0gKCBpRm9ybWF0ICsgMSA8IGZvcm1hdC5sZW5ndGggJiYgZm9ybWF0LmNoYXJBdCggaUZvcm1hdCArIDEgKSA9PT0gbWF0Y2ggKTsNCgkJCQlpZiAoIG1hdGNoZXMgKSB7DQoJCQkJCWlGb3JtYXQrKzsNCgkJCQl9DQoJCQkJcmV0dXJuIG1hdGNoZXM7DQoJCQl9Ow0KDQoJCWZvciAoIGlGb3JtYXQgPSAwOyBpRm9ybWF0IDwgZm9ybWF0Lmxlbmd0aDsgaUZvcm1hdCsrICkgew0KCQkJaWYgKCBsaXRlcmFsICkgew0KCQkJCWlmICggZm9ybWF0LmNoYXJBdCggaUZvcm1hdCApID09PSAiJyIgJiYgIWxvb2tBaGVhZCggIiciICkgKSB7DQoJCQkJCWxpdGVyYWwgPSBmYWxzZTsNCgkJCQl9IGVsc2Ugew0KCQkJCQljaGFycyArPSBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICk7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQlzd2l0Y2ggKCBmb3JtYXQuY2hhckF0KCBpRm9ybWF0ICkgKSB7DQoJCQkJCWNhc2UgImQiOiBjYXNlICJtIjogY2FzZSAieSI6IGNhc2UgIkAiOg0KCQkJCQkJY2hhcnMgKz0gIjAxMjM0NTY3ODkiOw0KCQkJCQkJYnJlYWs7DQoJCQkJCWNhc2UgIkQiOiBjYXNlICJNIjoNCgkJCQkJCXJldHVybiBudWxsOyAvLyBBY2NlcHQgYW55dGhpbmcNCgkJCQkJY2FzZSAiJyI6DQoJCQkJCQlpZiAoIGxvb2tBaGVhZCggIiciICkgKSB7DQoJCQkJCQkJY2hhcnMgKz0gIiciOw0KCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQlsaXRlcmFsID0gdHJ1ZTsNCgkJCQkJCX0NCgkJCQkJCWJyZWFrOw0KCQkJCQlkZWZhdWx0Og0KCQkJCQkJY2hhcnMgKz0gZm9ybWF0LmNoYXJBdCggaUZvcm1hdCApOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQlyZXR1cm4gY2hhcnM7DQoJfSwNCg0KCS8qIEdldCBhIHNldHRpbmcgdmFsdWUsIGRlZmF1bHRpbmcgaWYgbmVjZXNzYXJ5LiAqLw0KCV9nZXQ6IGZ1bmN0aW9uKCBpbnN0LCBuYW1lICkgew0KCQlyZXR1cm4gaW5zdC5zZXR0aW5nc1sgbmFtZSBdICE9PSB1bmRlZmluZWQgPw0KCQkJaW5zdC5zZXR0aW5nc1sgbmFtZSBdIDogdGhpcy5fZGVmYXVsdHNbIG5hbWUgXTsNCgl9LA0KDQoJLyogUGFyc2UgZXhpc3RpbmcgZGF0ZSBhbmQgaW5pdGlhbGlzZSBkYXRlIHBpY2tlci4gKi8NCglfc2V0RGF0ZUZyb21GaWVsZDogZnVuY3Rpb24oIGluc3QsIG5vRGVmYXVsdCApIHsNCgkJaWYgKCBpbnN0LmlucHV0LnZhbCgpID09PSBpbnN0Lmxhc3RWYWwgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgZGF0ZUZvcm1hdCA9IHRoaXMuX2dldCggaW5zdCwgImRhdGVGb3JtYXQiICksDQoJCQlkYXRlcyA9IGluc3QubGFzdFZhbCA9IGluc3QuaW5wdXQgPyBpbnN0LmlucHV0LnZhbCgpIDogbnVsbCwNCgkJCWRlZmF1bHREYXRlID0gdGhpcy5fZ2V0RGVmYXVsdERhdGUoIGluc3QgKSwNCgkJCWRhdGUgPSBkZWZhdWx0RGF0ZSwNCgkJCXNldHRpbmdzID0gdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKCBpbnN0ICk7DQoNCgkJdHJ5IHsNCgkJCWRhdGUgPSB0aGlzLnBhcnNlRGF0ZSggZGF0ZUZvcm1hdCwgZGF0ZXMsIHNldHRpbmdzICkgfHwgZGVmYXVsdERhdGU7DQoJCX0gY2F0Y2ggKCBldmVudCApIHsNCgkJCWRhdGVzID0gKCBub0RlZmF1bHQgPyAiIiA6IGRhdGVzICk7DQoJCX0NCgkJaW5zdC5zZWxlY3RlZERheSA9IGRhdGUuZ2V0RGF0ZSgpOw0KCQlpbnN0LmRyYXdNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKTsNCgkJaW5zdC5kcmF3WWVhciA9IGluc3Quc2VsZWN0ZWRZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOw0KCQlpbnN0LmN1cnJlbnREYXkgPSAoIGRhdGVzID8gZGF0ZS5nZXREYXRlKCkgOiAwICk7DQoJCWluc3QuY3VycmVudE1vbnRoID0gKCBkYXRlcyA/IGRhdGUuZ2V0TW9udGgoKSA6IDAgKTsNCgkJaW5zdC5jdXJyZW50WWVhciA9ICggZGF0ZXMgPyBkYXRlLmdldEZ1bGxZZWFyKCkgOiAwICk7DQoJCXRoaXMuX2FkanVzdEluc3REYXRlKCBpbnN0ICk7DQoJfSwNCg0KCS8qIFJldHJpZXZlIHRoZSBkZWZhdWx0IGRhdGUgc2hvd24gb24gb3BlbmluZy4gKi8NCglfZ2V0RGVmYXVsdERhdGU6IGZ1bmN0aW9uKCBpbnN0ICkgew0KCQlyZXR1cm4gdGhpcy5fcmVzdHJpY3RNaW5NYXgoIGluc3QsDQoJCQl0aGlzLl9kZXRlcm1pbmVEYXRlKCBpbnN0LCB0aGlzLl9nZXQoIGluc3QsICJkZWZhdWx0RGF0ZSIgKSwgbmV3IERhdGUoKSApICk7DQoJfSwNCg0KCS8qIEEgZGF0ZSBtYXkgYmUgc3BlY2lmaWVkIGFzIGFuIGV4YWN0IHZhbHVlIG9yIGEgcmVsYXRpdmUgb25lLiAqLw0KCV9kZXRlcm1pbmVEYXRlOiBmdW5jdGlvbiggaW5zdCwgZGF0ZSwgZGVmYXVsdERhdGUgKSB7DQoJCXZhciBvZmZzZXROdW1lcmljID0gZnVuY3Rpb24oIG9mZnNldCApIHsNCgkJCQl2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7DQoJCQkJZGF0ZS5zZXREYXRlKCBkYXRlLmdldERhdGUoKSArIG9mZnNldCApOw0KCQkJCXJldHVybiBkYXRlOw0KCQkJfSwNCgkJCW9mZnNldFN0cmluZyA9IGZ1bmN0aW9uKCBvZmZzZXQgKSB7DQoJCQkJdHJ5IHsNCgkJCQkJcmV0dXJuICQuZGF0ZXBpY2tlci5wYXJzZURhdGUoICQuZGF0ZXBpY2tlci5fZ2V0KCBpbnN0LCAiZGF0ZUZvcm1hdCIgKSwNCgkJCQkJCW9mZnNldCwgJC5kYXRlcGlja2VyLl9nZXRGb3JtYXRDb25maWcoIGluc3QgKSApOw0KCQkJCX0NCgkJCQljYXRjaCAoIGUgKSB7DQoNCgkJCQkJLy8gSWdub3JlDQoJCQkJfQ0KDQoJCQkJdmFyIGRhdGUgPSAoIG9mZnNldC50b0xvd2VyQ2FzZSgpLm1hdGNoKCAvXmMvICkgPw0KCQkJCQkkLmRhdGVwaWNrZXIuX2dldERhdGUoIGluc3QgKSA6IG51bGwgKSB8fCBuZXcgRGF0ZSgpLA0KCQkJCQl5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpLA0KCQkJCQltb250aCA9IGRhdGUuZ2V0TW9udGgoKSwNCgkJCQkJZGF5ID0gZGF0ZS5nZXREYXRlKCksDQoJCQkJCXBhdHRlcm4gPSAvKFsrXC1dP1swLTldKylccyooZHxEfHd8V3xtfE18eXxZKT8vZywNCgkJCQkJbWF0Y2hlcyA9IHBhdHRlcm4uZXhlYyggb2Zmc2V0ICk7DQoNCgkJCQl3aGlsZSAoIG1hdGNoZXMgKSB7DQoJCQkJCXN3aXRjaCAoIG1hdGNoZXNbIDIgXSB8fCAiZCIgKSB7DQoJCQkJCQljYXNlICJkIiA6IGNhc2UgIkQiIDoNCgkJCQkJCQlkYXkgKz0gcGFyc2VJbnQoIG1hdGNoZXNbIDEgXSwgMTAgKTsgYnJlYWs7DQoJCQkJCQljYXNlICJ3IiA6IGNhc2UgIlciIDoNCgkJCQkJCQlkYXkgKz0gcGFyc2VJbnQoIG1hdGNoZXNbIDEgXSwgMTAgKSAqIDc7IGJyZWFrOw0KCQkJCQkJY2FzZSAibSIgOiBjYXNlICJNIiA6DQoJCQkJCQkJbW9udGggKz0gcGFyc2VJbnQoIG1hdGNoZXNbIDEgXSwgMTAgKTsNCgkJCQkJCQlkYXkgPSBNYXRoLm1pbiggZGF5LCAkLmRhdGVwaWNrZXIuX2dldERheXNJbk1vbnRoKCB5ZWFyLCBtb250aCApICk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCQljYXNlICJ5IjogY2FzZSAiWSIgOg0KCQkJCQkJCXllYXIgKz0gcGFyc2VJbnQoIG1hdGNoZXNbIDEgXSwgMTAgKTsNCgkJCQkJCQlkYXkgPSBNYXRoLm1pbiggZGF5LCAkLmRhdGVwaWNrZXIuX2dldERheXNJbk1vbnRoKCB5ZWFyLCBtb250aCApICk7DQoJCQkJCQkJYnJlYWs7DQoJCQkJCX0NCgkJCQkJbWF0Y2hlcyA9IHBhdHRlcm4uZXhlYyggb2Zmc2V0ICk7DQoJCQkJfQ0KCQkJCXJldHVybiBuZXcgRGF0ZSggeWVhciwgbW9udGgsIGRheSApOw0KCQkJfSwNCgkJCW5ld0RhdGUgPSAoIGRhdGUgPT0gbnVsbCB8fCBkYXRlID09PSAiIiA/IGRlZmF1bHREYXRlIDogKCB0eXBlb2YgZGF0ZSA9PT0gInN0cmluZyIgPyBvZmZzZXRTdHJpbmcoIGRhdGUgKSA6DQoJCQkJKCB0eXBlb2YgZGF0ZSA9PT0gIm51bWJlciIgPyAoIGlzTmFOKCBkYXRlICkgPyBkZWZhdWx0RGF0ZSA6IG9mZnNldE51bWVyaWMoIGRhdGUgKSApIDogbmV3IERhdGUoIGRhdGUuZ2V0VGltZSgpICkgKSApICk7DQoNCgkJbmV3RGF0ZSA9ICggbmV3RGF0ZSAmJiBuZXdEYXRlLnRvU3RyaW5nKCkgPT09ICJJbnZhbGlkIERhdGUiID8gZGVmYXVsdERhdGUgOiBuZXdEYXRlICk7DQoJCWlmICggbmV3RGF0ZSApIHsNCgkJCW5ld0RhdGUuc2V0SG91cnMoIDAgKTsNCgkJCW5ld0RhdGUuc2V0TWludXRlcyggMCApOw0KCQkJbmV3RGF0ZS5zZXRTZWNvbmRzKCAwICk7DQoJCQluZXdEYXRlLnNldE1pbGxpc2Vjb25kcyggMCApOw0KCQl9DQoJCXJldHVybiB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCggbmV3RGF0ZSApOw0KCX0sDQoNCgkvKiBIYW5kbGUgc3dpdGNoIHRvL2Zyb20gZGF5bGlnaHQgc2F2aW5nLg0KCSAqIEhvdXJzIG1heSBiZSBub24temVybyBvbiBkYXlsaWdodCBzYXZpbmcgY3V0LW92ZXI6DQoJICogPiAxMiB3aGVuIG1pZG5pZ2h0IGNoYW5nZW92ZXIsIGJ1dCB0aGVuIGNhbm5vdCBnZW5lcmF0ZQ0KCSAqIG1pZG5pZ2h0IGRhdGV0aW1lLCBzbyBqdW1wIHRvIDFBTSwgb3RoZXJ3aXNlIHJlc2V0Lg0KCSAqIEBwYXJhbSAgZGF0ZSAgKERhdGUpIHRoZSBkYXRlIHRvIGNoZWNrDQoJICogQHJldHVybiAgKERhdGUpIHRoZSBjb3JyZWN0ZWQgZGF0ZQ0KCSAqLw0KCV9kYXlsaWdodFNhdmluZ0FkanVzdDogZnVuY3Rpb24oIGRhdGUgKSB7DQoJCWlmICggIWRhdGUgKSB7DQoJCQlyZXR1cm4gbnVsbDsNCgkJfQ0KCQlkYXRlLnNldEhvdXJzKCBkYXRlLmdldEhvdXJzKCkgPiAxMiA/IGRhdGUuZ2V0SG91cnMoKSArIDIgOiAwICk7DQoJCXJldHVybiBkYXRlOw0KCX0sDQoNCgkvKiBTZXQgdGhlIGRhdGUocykgZGlyZWN0bHkuICovDQoJX3NldERhdGU6IGZ1bmN0aW9uKCBpbnN0LCBkYXRlLCBub0NoYW5nZSApIHsNCgkJdmFyIGNsZWFyID0gIWRhdGUsDQoJCQlvcmlnTW9udGggPSBpbnN0LnNlbGVjdGVkTW9udGgsDQoJCQlvcmlnWWVhciA9IGluc3Quc2VsZWN0ZWRZZWFyLA0KCQkJbmV3RGF0ZSA9IHRoaXMuX3Jlc3RyaWN0TWluTWF4KCBpbnN0LCB0aGlzLl9kZXRlcm1pbmVEYXRlKCBpbnN0LCBkYXRlLCBuZXcgRGF0ZSgpICkgKTsNCg0KCQlpbnN0LnNlbGVjdGVkRGF5ID0gaW5zdC5jdXJyZW50RGF5ID0gbmV3RGF0ZS5nZXREYXRlKCk7DQoJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gaW5zdC5jdXJyZW50TW9udGggPSBuZXdEYXRlLmdldE1vbnRoKCk7DQoJCWluc3QuZHJhd1llYXIgPSBpbnN0LnNlbGVjdGVkWWVhciA9IGluc3QuY3VycmVudFllYXIgPSBuZXdEYXRlLmdldEZ1bGxZZWFyKCk7DQoJCWlmICggKCBvcmlnTW9udGggIT09IGluc3Quc2VsZWN0ZWRNb250aCB8fCBvcmlnWWVhciAhPT0gaW5zdC5zZWxlY3RlZFllYXIgKSAmJiAhbm9DaGFuZ2UgKSB7DQoJCQl0aGlzLl9ub3RpZnlDaGFuZ2UoIGluc3QgKTsNCgkJfQ0KCQl0aGlzLl9hZGp1c3RJbnN0RGF0ZSggaW5zdCApOw0KCQlpZiAoIGluc3QuaW5wdXQgKSB7DQoJCQlpbnN0LmlucHV0LnZhbCggY2xlYXIgPyAiIiA6IHRoaXMuX2Zvcm1hdERhdGUoIGluc3QgKSApOw0KCQl9DQoJfSwNCg0KCS8qIFJldHJpZXZlIHRoZSBkYXRlKHMpIGRpcmVjdGx5LiAqLw0KCV9nZXREYXRlOiBmdW5jdGlvbiggaW5zdCApIHsNCgkJdmFyIHN0YXJ0RGF0ZSA9ICggIWluc3QuY3VycmVudFllYXIgfHwgKCBpbnN0LmlucHV0ICYmIGluc3QuaW5wdXQudmFsKCkgPT09ICIiICkgPyBudWxsIDoNCgkJCXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCBuZXcgRGF0ZSgNCgkJCWluc3QuY3VycmVudFllYXIsIGluc3QuY3VycmVudE1vbnRoLCBpbnN0LmN1cnJlbnREYXkgKSApICk7DQoJCQlyZXR1cm4gc3RhcnREYXRlOw0KCX0sDQoNCgkvKiBBdHRhY2ggdGhlIG9ueHh4IGhhbmRsZXJzLiAgVGhlc2UgYXJlIGRlY2xhcmVkIHN0YXRpY2FsbHkgc28NCgkgKiB0aGV5IHdvcmsgd2l0aCBzdGF0aWMgY29kZSB0cmFuc2Zvcm1lcnMgbGlrZSBDYWphLg0KCSAqLw0KCV9hdHRhY2hIYW5kbGVyczogZnVuY3Rpb24oIGluc3QgKSB7DQoJCXZhciBzdGVwTW9udGhzID0gdGhpcy5fZ2V0KCBpbnN0LCAic3RlcE1vbnRocyIgKSwNCgkJCWlkID0gIiMiICsgaW5zdC5pZC5yZXBsYWNlKCAvXFxcXC9nLCAiXFwiICk7DQoJCWluc3QuZHBEaXYuZmluZCggIltkYXRhLWhhbmRsZXJdIiApLm1hcCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgaGFuZGxlciA9IHsNCgkJCQlwcmV2OiBmdW5jdGlvbigpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9hZGp1c3REYXRlKCBpZCwgLXN0ZXBNb250aHMsICJNIiApOw0KCQkJCX0sDQoJCQkJbmV4dDogZnVuY3Rpb24oKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5fYWRqdXN0RGF0ZSggaWQsICtzdGVwTW9udGhzLCAiTSIgKTsNCgkJCQl9LA0KCQkJCWhpZGU6IGZ1bmN0aW9uKCkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX2hpZGVEYXRlcGlja2VyKCk7DQoJCQkJfSwNCgkJCQl0b2RheTogZnVuY3Rpb24oKSB7DQoJCQkJCSQuZGF0ZXBpY2tlci5fZ290b1RvZGF5KCBpZCApOw0KCQkJCX0sDQoJCQkJc2VsZWN0RGF5OiBmdW5jdGlvbigpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9zZWxlY3REYXkoIGlkLCArdGhpcy5nZXRBdHRyaWJ1dGUoICJkYXRhLW1vbnRoIiApLCArdGhpcy5nZXRBdHRyaWJ1dGUoICJkYXRhLXllYXIiICksIHRoaXMgKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0sDQoJCQkJc2VsZWN0TW9udGg6IGZ1bmN0aW9uKCkgew0KCQkJCQkkLmRhdGVwaWNrZXIuX3NlbGVjdE1vbnRoWWVhciggaWQsIHRoaXMsICJNIiApOw0KCQkJCQlyZXR1cm4gZmFsc2U7DQoJCQkJfSwNCgkJCQlzZWxlY3RZZWFyOiBmdW5jdGlvbigpIHsNCgkJCQkJJC5kYXRlcGlja2VyLl9zZWxlY3RNb250aFllYXIoIGlkLCB0aGlzLCAiWSIgKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX07DQoJCQkkKCB0aGlzICkub24oIHRoaXMuZ2V0QXR0cmlidXRlKCAiZGF0YS1ldmVudCIgKSwgaGFuZGxlclsgdGhpcy5nZXRBdHRyaWJ1dGUoICJkYXRhLWhhbmRsZXIiICkgXSApOw0KCQl9ICk7DQoJfSwNCg0KCS8qIEdlbmVyYXRlIHRoZSBIVE1MIGZvciB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgZGF0ZSBwaWNrZXIuICovDQoJX2dlbmVyYXRlSFRNTDogZnVuY3Rpb24oIGluc3QgKSB7DQoJCXZhciBtYXhEcmF3LCBwcmV2VGV4dCwgcHJldiwgbmV4dFRleHQsIG5leHQsIGN1cnJlbnRUZXh0LCBnb3RvRGF0ZSwNCgkJCWNvbnRyb2xzLCBidXR0b25QYW5lbCwgZmlyc3REYXksIHNob3dXZWVrLCBkYXlOYW1lcywgZGF5TmFtZXNNaW4sDQoJCQltb250aE5hbWVzLCBtb250aE5hbWVzU2hvcnQsIGJlZm9yZVNob3dEYXksIHNob3dPdGhlck1vbnRocywNCgkJCXNlbGVjdE90aGVyTW9udGhzLCBkZWZhdWx0RGF0ZSwgaHRtbCwgZG93LCByb3csIGdyb3VwLCBjb2wsIHNlbGVjdGVkRGF0ZSwNCgkJCWNvcm5lckNsYXNzLCBjYWxlbmRlciwgdGhlYWQsIGRheSwgZGF5c0luTW9udGgsIGxlYWREYXlzLCBjdXJSb3dzLCBudW1Sb3dzLA0KCQkJcHJpbnREYXRlLCBkUm93LCB0Ym9keSwgZGF5U2V0dGluZ3MsIG90aGVyTW9udGgsIHVuc2VsZWN0YWJsZSwNCgkJCXRlbXBEYXRlID0gbmV3IERhdGUoKSwNCgkJCXRvZGF5ID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoDQoJCQkJbmV3IERhdGUoIHRlbXBEYXRlLmdldEZ1bGxZZWFyKCksIHRlbXBEYXRlLmdldE1vbnRoKCksIHRlbXBEYXRlLmdldERhdGUoKSApICksIC8vIGNsZWFyIHRpbWUNCgkJCWlzUlRMID0gdGhpcy5fZ2V0KCBpbnN0LCAiaXNSVEwiICksDQoJCQlzaG93QnV0dG9uUGFuZWwgPSB0aGlzLl9nZXQoIGluc3QsICJzaG93QnV0dG9uUGFuZWwiICksDQoJCQloaWRlSWZOb1ByZXZOZXh0ID0gdGhpcy5fZ2V0KCBpbnN0LCAiaGlkZUlmTm9QcmV2TmV4dCIgKSwNCgkJCW5hdmlnYXRpb25Bc0RhdGVGb3JtYXQgPSB0aGlzLl9nZXQoIGluc3QsICJuYXZpZ2F0aW9uQXNEYXRlRm9ybWF0IiApLA0KCQkJbnVtTW9udGhzID0gdGhpcy5fZ2V0TnVtYmVyT2ZNb250aHMoIGluc3QgKSwNCgkJCXNob3dDdXJyZW50QXRQb3MgPSB0aGlzLl9nZXQoIGluc3QsICJzaG93Q3VycmVudEF0UG9zIiApLA0KCQkJc3RlcE1vbnRocyA9IHRoaXMuX2dldCggaW5zdCwgInN0ZXBNb250aHMiICksDQoJCQlpc011bHRpTW9udGggPSAoIG51bU1vbnRoc1sgMCBdICE9PSAxIHx8IG51bU1vbnRoc1sgMSBdICE9PSAxICksDQoJCQljdXJyZW50RGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCAoICFpbnN0LmN1cnJlbnREYXkgPyBuZXcgRGF0ZSggOTk5OSwgOSwgOSApIDoNCgkJCQluZXcgRGF0ZSggaW5zdC5jdXJyZW50WWVhciwgaW5zdC5jdXJyZW50TW9udGgsIGluc3QuY3VycmVudERheSApICkgKSwNCgkJCW1pbkRhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKCBpbnN0LCAibWluIiApLA0KCQkJbWF4RGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoIGluc3QsICJtYXgiICksDQoJCQlkcmF3TW9udGggPSBpbnN0LmRyYXdNb250aCAtIHNob3dDdXJyZW50QXRQb3MsDQoJCQlkcmF3WWVhciA9IGluc3QuZHJhd1llYXI7DQoNCgkJaWYgKCBkcmF3TW9udGggPCAwICkgew0KCQkJZHJhd01vbnRoICs9IDEyOw0KCQkJZHJhd1llYXItLTsNCgkJfQ0KCQlpZiAoIG1heERhdGUgKSB7DQoJCQltYXhEcmF3ID0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoIG5ldyBEYXRlKCBtYXhEYXRlLmdldEZ1bGxZZWFyKCksDQoJCQkJbWF4RGF0ZS5nZXRNb250aCgpIC0gKCBudW1Nb250aHNbIDAgXSAqIG51bU1vbnRoc1sgMSBdICkgKyAxLCBtYXhEYXRlLmdldERhdGUoKSApICk7DQoJCQltYXhEcmF3ID0gKCBtaW5EYXRlICYmIG1heERyYXcgPCBtaW5EYXRlID8gbWluRGF0ZSA6IG1heERyYXcgKTsNCgkJCXdoaWxlICggdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoIG5ldyBEYXRlKCBkcmF3WWVhciwgZHJhd01vbnRoLCAxICkgKSA+IG1heERyYXcgKSB7DQoJCQkJZHJhd01vbnRoLS07DQoJCQkJaWYgKCBkcmF3TW9udGggPCAwICkgew0KCQkJCQlkcmF3TW9udGggPSAxMTsNCgkJCQkJZHJhd1llYXItLTsNCgkJCQl9DQoJCQl9DQoJCX0NCgkJaW5zdC5kcmF3TW9udGggPSBkcmF3TW9udGg7DQoJCWluc3QuZHJhd1llYXIgPSBkcmF3WWVhcjsNCg0KCQlwcmV2VGV4dCA9IHRoaXMuX2dldCggaW5zdCwgInByZXZUZXh0IiApOw0KCQlwcmV2VGV4dCA9ICggIW5hdmlnYXRpb25Bc0RhdGVGb3JtYXQgPyBwcmV2VGV4dCA6IHRoaXMuZm9ybWF0RGF0ZSggcHJldlRleHQsDQoJCQl0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCggbmV3IERhdGUoIGRyYXdZZWFyLCBkcmF3TW9udGggLSBzdGVwTW9udGhzLCAxICkgKSwNCgkJCXRoaXMuX2dldEZvcm1hdENvbmZpZyggaW5zdCApICkgKTsNCg0KCQlwcmV2ID0gKCB0aGlzLl9jYW5BZGp1c3RNb250aCggaW5zdCwgLTEsIGRyYXdZZWFyLCBkcmF3TW9udGggKSA/DQoJCQkiPGEgY2xhc3M9J3VpLWRhdGVwaWNrZXItcHJldiB1aS1jb3JuZXItYWxsJyBkYXRhLWhhbmRsZXI9J3ByZXYnIGRhdGEtZXZlbnQ9J2NsaWNrJyIgKw0KCQkJIiB0aXRsZT0nIiArIHByZXZUZXh0ICsgIic+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtIiArICggaXNSVEwgPyAiZSIgOiAidyIgKSArICInPiIgKyBwcmV2VGV4dCArICI8L3NwYW4+PC9hPiIgOg0KCQkJKCBoaWRlSWZOb1ByZXZOZXh0ID8gIiIgOiAiPGEgY2xhc3M9J3VpLWRhdGVwaWNrZXItcHJldiB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWRpc2FibGVkJyB0aXRsZT0nIiArIHByZXZUZXh0ICsgIic+PHNwYW4gY2xhc3M9J3VpLWljb24gdWktaWNvbi1jaXJjbGUtdHJpYW5nbGUtIiArICggaXNSVEwgPyAiZSIgOiAidyIgKSArICInPiIgKyBwcmV2VGV4dCArICI8L3NwYW4+PC9hPiIgKSApOw0KDQoJCW5leHRUZXh0ID0gdGhpcy5fZ2V0KCBpbnN0LCAibmV4dFRleHQiICk7DQoJCW5leHRUZXh0ID0gKCAhbmF2aWdhdGlvbkFzRGF0ZUZvcm1hdCA/IG5leHRUZXh0IDogdGhpcy5mb3JtYXREYXRlKCBuZXh0VGV4dCwNCgkJCXRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCBuZXcgRGF0ZSggZHJhd1llYXIsIGRyYXdNb250aCArIHN0ZXBNb250aHMsIDEgKSApLA0KCQkJdGhpcy5fZ2V0Rm9ybWF0Q29uZmlnKCBpbnN0ICkgKSApOw0KDQoJCW5leHQgPSAoIHRoaXMuX2NhbkFkanVzdE1vbnRoKCBpbnN0LCArMSwgZHJhd1llYXIsIGRyYXdNb250aCApID8NCgkJCSI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwnIGRhdGEtaGFuZGxlcj0nbmV4dCcgZGF0YS1ldmVudD0nY2xpY2snIiArDQoJCQkiIHRpdGxlPSciICsgbmV4dFRleHQgKyAiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iICsgKCBpc1JUTCA/ICJ3IiA6ICJlIiApICsgIic+IiArIG5leHRUZXh0ICsgIjwvc3Bhbj48L2E+IiA6DQoJCQkoIGhpZGVJZk5vUHJldk5leHQgPyAiIiA6ICI8YSBjbGFzcz0ndWktZGF0ZXBpY2tlci1uZXh0IHVpLWNvcm5lci1hbGwgdWktc3RhdGUtZGlzYWJsZWQnIHRpdGxlPSciICsgbmV4dFRleHQgKyAiJz48c3BhbiBjbGFzcz0ndWktaWNvbiB1aS1pY29uLWNpcmNsZS10cmlhbmdsZS0iICsgKCBpc1JUTCA/ICJ3IiA6ICJlIiApICsgIic+IiArIG5leHRUZXh0ICsgIjwvc3Bhbj48L2E+IiApICk7DQoNCgkJY3VycmVudFRleHQgPSB0aGlzLl9nZXQoIGluc3QsICJjdXJyZW50VGV4dCIgKTsNCgkJZ290b0RhdGUgPSAoIHRoaXMuX2dldCggaW5zdCwgImdvdG9DdXJyZW50IiApICYmIGluc3QuY3VycmVudERheSA/IGN1cnJlbnREYXRlIDogdG9kYXkgKTsNCgkJY3VycmVudFRleHQgPSAoICFuYXZpZ2F0aW9uQXNEYXRlRm9ybWF0ID8gY3VycmVudFRleHQgOg0KCQkJdGhpcy5mb3JtYXREYXRlKCBjdXJyZW50VGV4dCwgZ290b0RhdGUsIHRoaXMuX2dldEZvcm1hdENvbmZpZyggaW5zdCApICkgKTsNCg0KCQljb250cm9scyA9ICggIWluc3QuaW5saW5lID8gIjxidXR0b24gdHlwZT0nYnV0dG9uJyBjbGFzcz0ndWktZGF0ZXBpY2tlci1jbG9zZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLXByaW9yaXR5LXByaW1hcnkgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSdoaWRlJyBkYXRhLWV2ZW50PSdjbGljayc+IiArDQoJCQl0aGlzLl9nZXQoIGluc3QsICJjbG9zZVRleHQiICkgKyAiPC9idXR0b24+IiA6ICIiICk7DQoNCgkJYnV0dG9uUGFuZWwgPSAoIHNob3dCdXR0b25QYW5lbCApID8gIjxkaXYgY2xhc3M9J3VpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB1aS13aWRnZXQtY29udGVudCc+IiArICggaXNSVEwgPyBjb250cm9scyA6ICIiICkgKw0KCQkJKCB0aGlzLl9pc0luUmFuZ2UoIGluc3QsIGdvdG9EYXRlICkgPyAiPGJ1dHRvbiB0eXBlPSdidXR0b24nIGNsYXNzPSd1aS1kYXRlcGlja2VyLWN1cnJlbnQgdWktc3RhdGUtZGVmYXVsdCB1aS1wcmlvcml0eS1zZWNvbmRhcnkgdWktY29ybmVyLWFsbCcgZGF0YS1oYW5kbGVyPSd0b2RheScgZGF0YS1ldmVudD0nY2xpY2snIiArDQoJCQkiPiIgKyBjdXJyZW50VGV4dCArICI8L2J1dHRvbj4iIDogIiIgKSArICggaXNSVEwgPyAiIiA6IGNvbnRyb2xzICkgKyAiPC9kaXY+IiA6ICIiOw0KDQoJCWZpcnN0RGF5ID0gcGFyc2VJbnQoIHRoaXMuX2dldCggaW5zdCwgImZpcnN0RGF5IiApLCAxMCApOw0KCQlmaXJzdERheSA9ICggaXNOYU4oIGZpcnN0RGF5ICkgPyAwIDogZmlyc3REYXkgKTsNCg0KCQlzaG93V2VlayA9IHRoaXMuX2dldCggaW5zdCwgInNob3dXZWVrIiApOw0KCQlkYXlOYW1lcyA9IHRoaXMuX2dldCggaW5zdCwgImRheU5hbWVzIiApOw0KCQlkYXlOYW1lc01pbiA9IHRoaXMuX2dldCggaW5zdCwgImRheU5hbWVzTWluIiApOw0KCQltb250aE5hbWVzID0gdGhpcy5fZ2V0KCBpbnN0LCAibW9udGhOYW1lcyIgKTsNCgkJbW9udGhOYW1lc1Nob3J0ID0gdGhpcy5fZ2V0KCBpbnN0LCAibW9udGhOYW1lc1Nob3J0IiApOw0KCQliZWZvcmVTaG93RGF5ID0gdGhpcy5fZ2V0KCBpbnN0LCAiYmVmb3JlU2hvd0RheSIgKTsNCgkJc2hvd090aGVyTW9udGhzID0gdGhpcy5fZ2V0KCBpbnN0LCAic2hvd090aGVyTW9udGhzIiApOw0KCQlzZWxlY3RPdGhlck1vbnRocyA9IHRoaXMuX2dldCggaW5zdCwgInNlbGVjdE90aGVyTW9udGhzIiApOw0KCQlkZWZhdWx0RGF0ZSA9IHRoaXMuX2dldERlZmF1bHREYXRlKCBpbnN0ICk7DQoJCWh0bWwgPSAiIjsNCg0KCQlmb3IgKCByb3cgPSAwOyByb3cgPCBudW1Nb250aHNbIDAgXTsgcm93KysgKSB7DQoJCQlncm91cCA9ICIiOw0KCQkJdGhpcy5tYXhSb3dzID0gNDsNCgkJCWZvciAoIGNvbCA9IDA7IGNvbCA8IG51bU1vbnRoc1sgMSBdOyBjb2wrKyApIHsNCgkJCQlzZWxlY3RlZERhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCggbmV3IERhdGUoIGRyYXdZZWFyLCBkcmF3TW9udGgsIGluc3Quc2VsZWN0ZWREYXkgKSApOw0KCQkJCWNvcm5lckNsYXNzID0gIiB1aS1jb3JuZXItYWxsIjsNCgkJCQljYWxlbmRlciA9ICIiOw0KCQkJCWlmICggaXNNdWx0aU1vbnRoICkgew0KCQkJCQljYWxlbmRlciArPSAiPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1ncm91cCI7DQoJCQkJCWlmICggbnVtTW9udGhzWyAxIF0gPiAxICkgew0KCQkJCQkJc3dpdGNoICggY29sICkgew0KCQkJCQkJCWNhc2UgMDogY2FsZW5kZXIgKz0gIiB1aS1kYXRlcGlja2VyLWdyb3VwLWZpcnN0IjsNCgkJCQkJCQkJY29ybmVyQ2xhc3MgPSAiIHVpLWNvcm5lci0iICsgKCBpc1JUTCA/ICJyaWdodCIgOiAibGVmdCIgKTsgYnJlYWs7DQoJCQkJCQkJY2FzZSBudW1Nb250aHNbIDEgXSAtIDE6IGNhbGVuZGVyICs9ICIgdWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IjsNCgkJCQkJCQkJY29ybmVyQ2xhc3MgPSAiIHVpLWNvcm5lci0iICsgKCBpc1JUTCA/ICJsZWZ0IiA6ICJyaWdodCIgKTsgYnJlYWs7DQoJCQkJCQkJZGVmYXVsdDogY2FsZW5kZXIgKz0gIiB1aS1kYXRlcGlja2VyLWdyb3VwLW1pZGRsZSI7IGNvcm5lckNsYXNzID0gIiI7IGJyZWFrOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWNhbGVuZGVyICs9ICInPiI7DQoJCQkJfQ0KCQkJCWNhbGVuZGVyICs9ICI8ZGl2IGNsYXNzPSd1aS1kYXRlcGlja2VyLWhlYWRlciB1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCIgKyBjb3JuZXJDbGFzcyArICInPiIgKw0KCQkJCQkoIC9hbGx8bGVmdC8udGVzdCggY29ybmVyQ2xhc3MgKSAmJiByb3cgPT09IDAgPyAoIGlzUlRMID8gbmV4dCA6IHByZXYgKSA6ICIiICkgKw0KCQkJCQkoIC9hbGx8cmlnaHQvLnRlc3QoIGNvcm5lckNsYXNzICkgJiYgcm93ID09PSAwID8gKCBpc1JUTCA/IHByZXYgOiBuZXh0ICkgOiAiIiApICsNCgkJCQkJdGhpcy5fZ2VuZXJhdGVNb250aFllYXJIZWFkZXIoIGluc3QsIGRyYXdNb250aCwgZHJhd1llYXIsIG1pbkRhdGUsIG1heERhdGUsDQoJCQkJCXJvdyA+IDAgfHwgY29sID4gMCwgbW9udGhOYW1lcywgbW9udGhOYW1lc1Nob3J0ICkgKyAvLyBkcmF3IG1vbnRoIGhlYWRlcnMNCgkJCQkJIjwvZGl2Pjx0YWJsZSBjbGFzcz0ndWktZGF0ZXBpY2tlci1jYWxlbmRhcic+PHRoZWFkPiIgKw0KCQkJCQkiPHRyPiI7DQoJCQkJdGhlYWQgPSAoIHNob3dXZWVrID8gIjx0aCBjbGFzcz0ndWktZGF0ZXBpY2tlci13ZWVrLWNvbCc+IiArIHRoaXMuX2dldCggaW5zdCwgIndlZWtIZWFkZXIiICkgKyAiPC90aD4iIDogIiIgKTsNCgkJCQlmb3IgKCBkb3cgPSAwOyBkb3cgPCA3OyBkb3crKyApIHsgLy8gZGF5cyBvZiB0aGUgd2Vlaw0KCQkJCQlkYXkgPSAoIGRvdyArIGZpcnN0RGF5ICkgJSA3Ow0KCQkJCQl0aGVhZCArPSAiPHRoIHNjb3BlPSdjb2wnIiArICggKCBkb3cgKyBmaXJzdERheSArIDYgKSAlIDcgPj0gNSA/ICIgY2xhc3M9J3VpLWRhdGVwaWNrZXItd2Vlay1lbmQnIiA6ICIiICkgKyAiPiIgKw0KCQkJCQkJIjxzcGFuIHRpdGxlPSciICsgZGF5TmFtZXNbIGRheSBdICsgIic+IiArIGRheU5hbWVzTWluWyBkYXkgXSArICI8L3NwYW4+PC90aD4iOw0KCQkJCX0NCgkJCQljYWxlbmRlciArPSB0aGVhZCArICI8L3RyPjwvdGhlYWQ+PHRib2R5PiI7DQoJCQkJZGF5c0luTW9udGggPSB0aGlzLl9nZXREYXlzSW5Nb250aCggZHJhd1llYXIsIGRyYXdNb250aCApOw0KCQkJCWlmICggZHJhd1llYXIgPT09IGluc3Quc2VsZWN0ZWRZZWFyICYmIGRyYXdNb250aCA9PT0gaW5zdC5zZWxlY3RlZE1vbnRoICkgew0KCQkJCQlpbnN0LnNlbGVjdGVkRGF5ID0gTWF0aC5taW4oIGluc3Quc2VsZWN0ZWREYXksIGRheXNJbk1vbnRoICk7DQoJCQkJfQ0KCQkJCWxlYWREYXlzID0gKCB0aGlzLl9nZXRGaXJzdERheU9mTW9udGgoIGRyYXdZZWFyLCBkcmF3TW9udGggKSAtIGZpcnN0RGF5ICsgNyApICUgNzsNCgkJCQljdXJSb3dzID0gTWF0aC5jZWlsKCAoIGxlYWREYXlzICsgZGF5c0luTW9udGggKSAvIDcgKTsgLy8gY2FsY3VsYXRlIHRoZSBudW1iZXIgb2Ygcm93cyB0byBnZW5lcmF0ZQ0KCQkJCW51bVJvd3MgPSAoIGlzTXVsdGlNb250aCA/IHRoaXMubWF4Um93cyA+IGN1clJvd3MgPyB0aGlzLm1heFJvd3MgOiBjdXJSb3dzIDogY3VyUm93cyApOyAvL0lmIG11bHRpcGxlIG1vbnRocywgdXNlIHRoZSBoaWdoZXIgbnVtYmVyIG9mIHJvd3MgKHNlZSAjNzA0MykNCgkJCQl0aGlzLm1heFJvd3MgPSBudW1Sb3dzOw0KCQkJCXByaW50RGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCBuZXcgRGF0ZSggZHJhd1llYXIsIGRyYXdNb250aCwgMSAtIGxlYWREYXlzICkgKTsNCgkJCQlmb3IgKCBkUm93ID0gMDsgZFJvdyA8IG51bVJvd3M7IGRSb3crKyApIHsgLy8gY3JlYXRlIGRhdGUgcGlja2VyIHJvd3MNCgkJCQkJY2FsZW5kZXIgKz0gIjx0cj4iOw0KCQkJCQl0Ym9keSA9ICggIXNob3dXZWVrID8gIiIgOiAiPHRkIGNsYXNzPSd1aS1kYXRlcGlja2VyLXdlZWstY29sJz4iICsNCgkJCQkJCXRoaXMuX2dldCggaW5zdCwgImNhbGN1bGF0ZVdlZWsiICkoIHByaW50RGF0ZSApICsgIjwvdGQ+IiApOw0KCQkJCQlmb3IgKCBkb3cgPSAwOyBkb3cgPCA3OyBkb3crKyApIHsgLy8gY3JlYXRlIGRhdGUgcGlja2VyIGRheXMNCgkJCQkJCWRheVNldHRpbmdzID0gKCBiZWZvcmVTaG93RGF5ID8NCgkJCQkJCQliZWZvcmVTaG93RGF5LmFwcGx5KCAoIGluc3QuaW5wdXQgPyBpbnN0LmlucHV0WyAwIF0gOiBudWxsICksIFsgcHJpbnREYXRlIF0gKSA6IFsgdHJ1ZSwgIiIgXSApOw0KCQkJCQkJb3RoZXJNb250aCA9ICggcHJpbnREYXRlLmdldE1vbnRoKCkgIT09IGRyYXdNb250aCApOw0KCQkJCQkJdW5zZWxlY3RhYmxlID0gKCBvdGhlck1vbnRoICYmICFzZWxlY3RPdGhlck1vbnRocyApIHx8ICFkYXlTZXR0aW5nc1sgMCBdIHx8DQoJCQkJCQkJKCBtaW5EYXRlICYmIHByaW50RGF0ZSA8IG1pbkRhdGUgKSB8fCAoIG1heERhdGUgJiYgcHJpbnREYXRlID4gbWF4RGF0ZSApOw0KCQkJCQkJdGJvZHkgKz0gIjx0ZCBjbGFzcz0nIiArDQoJCQkJCQkJKCAoIGRvdyArIGZpcnN0RGF5ICsgNiApICUgNyA+PSA1ID8gIiB1aS1kYXRlcGlja2VyLXdlZWstZW5kIiA6ICIiICkgKyAvLyBoaWdobGlnaHQgd2Vla2VuZHMNCgkJCQkJCQkoIG90aGVyTW9udGggPyAiIHVpLWRhdGVwaWNrZXItb3RoZXItbW9udGgiIDogIiIgKSArIC8vIGhpZ2hsaWdodCBkYXlzIGZyb20gb3RoZXIgbW9udGhzDQoJCQkJCQkJKCAoIHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IHNlbGVjdGVkRGF0ZS5nZXRUaW1lKCkgJiYgZHJhd01vbnRoID09PSBpbnN0LnNlbGVjdGVkTW9udGggJiYgaW5zdC5fa2V5RXZlbnQgKSB8fCAvLyB1c2VyIHByZXNzZWQga2V5DQoJCQkJCQkJKCBkZWZhdWx0RGF0ZS5nZXRUaW1lKCkgPT09IHByaW50RGF0ZS5nZXRUaW1lKCkgJiYgZGVmYXVsdERhdGUuZ2V0VGltZSgpID09PSBzZWxlY3RlZERhdGUuZ2V0VGltZSgpICkgPw0KDQoJCQkJCQkJLy8gb3IgZGVmYXVsdERhdGUgaXMgY3VycmVudCBwcmludGVkRGF0ZSBhbmQgZGVmYXVsdERhdGUgaXMgc2VsZWN0ZWREYXRlDQoJCQkJCQkJIiAiICsgdGhpcy5fZGF5T3ZlckNsYXNzIDogIiIgKSArIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBkYXkNCgkJCQkJCQkoIHVuc2VsZWN0YWJsZSA/ICIgIiArIHRoaXMuX3Vuc2VsZWN0YWJsZUNsYXNzICsgIiB1aS1zdGF0ZS1kaXNhYmxlZCIgOiAiIiApICsgIC8vIGhpZ2hsaWdodCB1bnNlbGVjdGFibGUgZGF5cw0KCQkJCQkJCSggb3RoZXJNb250aCAmJiAhc2hvd090aGVyTW9udGhzID8gIiIgOiAiICIgKyBkYXlTZXR0aW5nc1sgMSBdICsgLy8gaGlnaGxpZ2h0IGN1c3RvbSBkYXRlcw0KCQkJCQkJCSggcHJpbnREYXRlLmdldFRpbWUoKSA9PT0gY3VycmVudERhdGUuZ2V0VGltZSgpID8gIiAiICsgdGhpcy5fY3VycmVudENsYXNzIDogIiIgKSArIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBkYXkNCgkJCQkJCQkoIHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IHRvZGF5LmdldFRpbWUoKSA/ICIgdWktZGF0ZXBpY2tlci10b2RheSIgOiAiIiApICkgKyAiJyIgKyAvLyBoaWdobGlnaHQgdG9kYXkgKGlmIGRpZmZlcmVudCkNCgkJCQkJCQkoICggIW90aGVyTW9udGggfHwgc2hvd090aGVyTW9udGhzICkgJiYgZGF5U2V0dGluZ3NbIDIgXSA/ICIgdGl0bGU9JyIgKyBkYXlTZXR0aW5nc1sgMiBdLnJlcGxhY2UoIC8nL2csICImIzM5OyIgKSArICInIiA6ICIiICkgKyAvLyBjZWxsIHRpdGxlDQoJCQkJCQkJKCB1bnNlbGVjdGFibGUgPyAiIiA6ICIgZGF0YS1oYW5kbGVyPSdzZWxlY3REYXknIGRhdGEtZXZlbnQ9J2NsaWNrJyBkYXRhLW1vbnRoPSciICsgcHJpbnREYXRlLmdldE1vbnRoKCkgKyAiJyBkYXRhLXllYXI9JyIgKyBwcmludERhdGUuZ2V0RnVsbFllYXIoKSArICInIiApICsgIj4iICsgLy8gYWN0aW9ucw0KCQkJCQkJCSggb3RoZXJNb250aCAmJiAhc2hvd090aGVyTW9udGhzID8gIiYjeGEwOyIgOiAvLyBkaXNwbGF5IGZvciBvdGhlciBtb250aHMNCgkJCQkJCQkoIHVuc2VsZWN0YWJsZSA/ICI8c3BhbiBjbGFzcz0ndWktc3RhdGUtZGVmYXVsdCc+IiArIHByaW50RGF0ZS5nZXREYXRlKCkgKyAiPC9zcGFuPiIgOiAiPGEgY2xhc3M9J3VpLXN0YXRlLWRlZmF1bHQiICsNCgkJCQkJCQkoIHByaW50RGF0ZS5nZXRUaW1lKCkgPT09IHRvZGF5LmdldFRpbWUoKSA/ICIgdWktc3RhdGUtaGlnaGxpZ2h0IiA6ICIiICkgKw0KCQkJCQkJCSggcHJpbnREYXRlLmdldFRpbWUoKSA9PT0gY3VycmVudERhdGUuZ2V0VGltZSgpID8gIiB1aS1zdGF0ZS1hY3RpdmUiIDogIiIgKSArIC8vIGhpZ2hsaWdodCBzZWxlY3RlZCBkYXkNCgkJCQkJCQkoIG90aGVyTW9udGggPyAiIHVpLXByaW9yaXR5LXNlY29uZGFyeSIgOiAiIiApICsgLy8gZGlzdGluZ3Vpc2ggZGF0ZXMgZnJvbSBvdGhlciBtb250aHMNCgkJCQkJCQkiJyBocmVmPScjJz4iICsgcHJpbnREYXRlLmdldERhdGUoKSArICI8L2E+IiApICkgKyAiPC90ZD4iOyAvLyBkaXNwbGF5IHNlbGVjdGFibGUgZGF0ZQ0KCQkJCQkJcHJpbnREYXRlLnNldERhdGUoIHByaW50RGF0ZS5nZXREYXRlKCkgKyAxICk7DQoJCQkJCQlwcmludERhdGUgPSB0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCggcHJpbnREYXRlICk7DQoJCQkJCX0NCgkJCQkJY2FsZW5kZXIgKz0gdGJvZHkgKyAiPC90cj4iOw0KCQkJCX0NCgkJCQlkcmF3TW9udGgrKzsNCgkJCQlpZiAoIGRyYXdNb250aCA+IDExICkgew0KCQkJCQlkcmF3TW9udGggPSAwOw0KCQkJCQlkcmF3WWVhcisrOw0KCQkJCX0NCgkJCQljYWxlbmRlciArPSAiPC90Ym9keT48L3RhYmxlPiIgKyAoIGlzTXVsdGlNb250aCA/ICI8L2Rpdj4iICsNCgkJCQkJCQkoICggbnVtTW9udGhzWyAwIF0gPiAwICYmIGNvbCA9PT0gbnVtTW9udGhzWyAxIF0gLSAxICkgPyAiPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci1yb3ctYnJlYWsnPjwvZGl2PiIgOiAiIiApIDogIiIgKTsNCgkJCQlncm91cCArPSBjYWxlbmRlcjsNCgkJCX0NCgkJCWh0bWwgKz0gZ3JvdXA7DQoJCX0NCgkJaHRtbCArPSBidXR0b25QYW5lbDsNCgkJaW5zdC5fa2V5RXZlbnQgPSBmYWxzZTsNCgkJcmV0dXJuIGh0bWw7DQoJfSwNCg0KCS8qIEdlbmVyYXRlIHRoZSBtb250aCBhbmQgeWVhciBoZWFkZXIuICovDQoJX2dlbmVyYXRlTW9udGhZZWFySGVhZGVyOiBmdW5jdGlvbiggaW5zdCwgZHJhd01vbnRoLCBkcmF3WWVhciwgbWluRGF0ZSwgbWF4RGF0ZSwNCgkJCXNlY29uZGFyeSwgbW9udGhOYW1lcywgbW9udGhOYW1lc1Nob3J0ICkgew0KDQoJCXZhciBpbk1pblllYXIsIGluTWF4WWVhciwgbW9udGgsIHllYXJzLCB0aGlzWWVhciwgZGV0ZXJtaW5lWWVhciwgeWVhciwgZW5kWWVhciwNCgkJCWNoYW5nZU1vbnRoID0gdGhpcy5fZ2V0KCBpbnN0LCAiY2hhbmdlTW9udGgiICksDQoJCQljaGFuZ2VZZWFyID0gdGhpcy5fZ2V0KCBpbnN0LCAiY2hhbmdlWWVhciIgKSwNCgkJCXNob3dNb250aEFmdGVyWWVhciA9IHRoaXMuX2dldCggaW5zdCwgInNob3dNb250aEFmdGVyWWVhciIgKSwNCgkJCWh0bWwgPSAiPGRpdiBjbGFzcz0ndWktZGF0ZXBpY2tlci10aXRsZSc+IiwNCgkJCW1vbnRoSHRtbCA9ICIiOw0KDQoJCS8vIE1vbnRoIHNlbGVjdGlvbg0KCQlpZiAoIHNlY29uZGFyeSB8fCAhY2hhbmdlTW9udGggKSB7DQoJCQltb250aEh0bWwgKz0gIjxzcGFuIGNsYXNzPSd1aS1kYXRlcGlja2VyLW1vbnRoJz4iICsgbW9udGhOYW1lc1sgZHJhd01vbnRoIF0gKyAiPC9zcGFuPiI7DQoJCX0gZWxzZSB7DQoJCQlpbk1pblllYXIgPSAoIG1pbkRhdGUgJiYgbWluRGF0ZS5nZXRGdWxsWWVhcigpID09PSBkcmF3WWVhciApOw0KCQkJaW5NYXhZZWFyID0gKCBtYXhEYXRlICYmIG1heERhdGUuZ2V0RnVsbFllYXIoKSA9PT0gZHJhd1llYXIgKTsNCgkJCW1vbnRoSHRtbCArPSAiPHNlbGVjdCBjbGFzcz0ndWktZGF0ZXBpY2tlci1tb250aCcgZGF0YS1oYW5kbGVyPSdzZWxlY3RNb250aCcgZGF0YS1ldmVudD0nY2hhbmdlJz4iOw0KCQkJZm9yICggbW9udGggPSAwOyBtb250aCA8IDEyOyBtb250aCsrICkgew0KCQkJCWlmICggKCAhaW5NaW5ZZWFyIHx8IG1vbnRoID49IG1pbkRhdGUuZ2V0TW9udGgoKSApICYmICggIWluTWF4WWVhciB8fCBtb250aCA8PSBtYXhEYXRlLmdldE1vbnRoKCkgKSApIHsNCgkJCQkJbW9udGhIdG1sICs9ICI8b3B0aW9uIHZhbHVlPSciICsgbW9udGggKyAiJyIgKw0KCQkJCQkJKCBtb250aCA9PT0gZHJhd01vbnRoID8gIiBzZWxlY3RlZD0nc2VsZWN0ZWQnIiA6ICIiICkgKw0KCQkJCQkJIj4iICsgbW9udGhOYW1lc1Nob3J0WyBtb250aCBdICsgIjwvb3B0aW9uPiI7DQoJCQkJfQ0KCQkJfQ0KCQkJbW9udGhIdG1sICs9ICI8L3NlbGVjdD4iOw0KCQl9DQoNCgkJaWYgKCAhc2hvd01vbnRoQWZ0ZXJZZWFyICkgew0KCQkJaHRtbCArPSBtb250aEh0bWwgKyAoIHNlY29uZGFyeSB8fCAhKCBjaGFuZ2VNb250aCAmJiBjaGFuZ2VZZWFyICkgPyAiJiN4YTA7IiA6ICIiICk7DQoJCX0NCg0KCQkvLyBZZWFyIHNlbGVjdGlvbg0KCQlpZiAoICFpbnN0LnllYXJzaHRtbCApIHsNCgkJCWluc3QueWVhcnNodG1sID0gIiI7DQoJCQlpZiAoIHNlY29uZGFyeSB8fCAhY2hhbmdlWWVhciApIHsNCgkJCQlodG1sICs9ICI8c3BhbiBjbGFzcz0ndWktZGF0ZXBpY2tlci15ZWFyJz4iICsgZHJhd1llYXIgKyAiPC9zcGFuPiI7DQoJCQl9IGVsc2Ugew0KDQoJCQkJLy8gZGV0ZXJtaW5lIHJhbmdlIG9mIHllYXJzIHRvIGRpc3BsYXkNCgkJCQl5ZWFycyA9IHRoaXMuX2dldCggaW5zdCwgInllYXJSYW5nZSIgKS5zcGxpdCggIjoiICk7DQoJCQkJdGhpc1llYXIgPSBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCk7DQoJCQkJZGV0ZXJtaW5lWWVhciA9IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJCQkJdmFyIHllYXIgPSAoIHZhbHVlLm1hdGNoKCAvY1srXC1dLiovICkgPyBkcmF3WWVhciArIHBhcnNlSW50KCB2YWx1ZS5zdWJzdHJpbmcoIDEgKSwgMTAgKSA6DQoJCQkJCQkoIHZhbHVlLm1hdGNoKCAvWytcLV0uKi8gKSA/IHRoaXNZZWFyICsgcGFyc2VJbnQoIHZhbHVlLCAxMCApIDoNCgkJCQkJCXBhcnNlSW50KCB2YWx1ZSwgMTAgKSApICk7DQoJCQkJCXJldHVybiAoIGlzTmFOKCB5ZWFyICkgPyB0aGlzWWVhciA6IHllYXIgKTsNCgkJCQl9Ow0KCQkJCXllYXIgPSBkZXRlcm1pbmVZZWFyKCB5ZWFyc1sgMCBdICk7DQoJCQkJZW5kWWVhciA9IE1hdGgubWF4KCB5ZWFyLCBkZXRlcm1pbmVZZWFyKCB5ZWFyc1sgMSBdIHx8ICIiICkgKTsNCgkJCQl5ZWFyID0gKCBtaW5EYXRlID8gTWF0aC5tYXgoIHllYXIsIG1pbkRhdGUuZ2V0RnVsbFllYXIoKSApIDogeWVhciApOw0KCQkJCWVuZFllYXIgPSAoIG1heERhdGUgPyBNYXRoLm1pbiggZW5kWWVhciwgbWF4RGF0ZS5nZXRGdWxsWWVhcigpICkgOiBlbmRZZWFyICk7DQoJCQkJaW5zdC55ZWFyc2h0bWwgKz0gIjxzZWxlY3QgY2xhc3M9J3VpLWRhdGVwaWNrZXIteWVhcicgZGF0YS1oYW5kbGVyPSdzZWxlY3RZZWFyJyBkYXRhLWV2ZW50PSdjaGFuZ2UnPiI7DQoJCQkJZm9yICggOyB5ZWFyIDw9IGVuZFllYXI7IHllYXIrKyApIHsNCgkJCQkJaW5zdC55ZWFyc2h0bWwgKz0gIjxvcHRpb24gdmFsdWU9JyIgKyB5ZWFyICsgIiciICsNCgkJCQkJCSggeWVhciA9PT0gZHJhd1llYXIgPyAiIHNlbGVjdGVkPSdzZWxlY3RlZCciIDogIiIgKSArDQoJCQkJCQkiPiIgKyB5ZWFyICsgIjwvb3B0aW9uPiI7DQoJCQkJfQ0KCQkJCWluc3QueWVhcnNodG1sICs9ICI8L3NlbGVjdD4iOw0KDQoJCQkJaHRtbCArPSBpbnN0LnllYXJzaHRtbDsNCgkJCQlpbnN0LnllYXJzaHRtbCA9IG51bGw7DQoJCQl9DQoJCX0NCg0KCQlodG1sICs9IHRoaXMuX2dldCggaW5zdCwgInllYXJTdWZmaXgiICk7DQoJCWlmICggc2hvd01vbnRoQWZ0ZXJZZWFyICkgew0KCQkJaHRtbCArPSAoIHNlY29uZGFyeSB8fCAhKCBjaGFuZ2VNb250aCAmJiBjaGFuZ2VZZWFyICkgPyAiJiN4YTA7IiA6ICIiICkgKyBtb250aEh0bWw7DQoJCX0NCgkJaHRtbCArPSAiPC9kaXY+IjsgLy8gQ2xvc2UgZGF0ZXBpY2tlcl9oZWFkZXINCgkJcmV0dXJuIGh0bWw7DQoJfSwNCg0KCS8qIEFkanVzdCBvbmUgb2YgdGhlIGRhdGUgc3ViLWZpZWxkcy4gKi8NCglfYWRqdXN0SW5zdERhdGU6IGZ1bmN0aW9uKCBpbnN0LCBvZmZzZXQsIHBlcmlvZCApIHsNCgkJdmFyIHllYXIgPSBpbnN0LnNlbGVjdGVkWWVhciArICggcGVyaW9kID09PSAiWSIgPyBvZmZzZXQgOiAwICksDQoJCQltb250aCA9IGluc3Quc2VsZWN0ZWRNb250aCArICggcGVyaW9kID09PSAiTSIgPyBvZmZzZXQgOiAwICksDQoJCQlkYXkgPSBNYXRoLm1pbiggaW5zdC5zZWxlY3RlZERheSwgdGhpcy5fZ2V0RGF5c0luTW9udGgoIHllYXIsIG1vbnRoICkgKSArICggcGVyaW9kID09PSAiRCIgPyBvZmZzZXQgOiAwICksDQoJCQlkYXRlID0gdGhpcy5fcmVzdHJpY3RNaW5NYXgoIGluc3QsIHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCBuZXcgRGF0ZSggeWVhciwgbW9udGgsIGRheSApICkgKTsNCg0KCQlpbnN0LnNlbGVjdGVkRGF5ID0gZGF0ZS5nZXREYXRlKCk7DQoJCWluc3QuZHJhd01vbnRoID0gaW5zdC5zZWxlY3RlZE1vbnRoID0gZGF0ZS5nZXRNb250aCgpOw0KCQlpbnN0LmRyYXdZZWFyID0gaW5zdC5zZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7DQoJCWlmICggcGVyaW9kID09PSAiTSIgfHwgcGVyaW9kID09PSAiWSIgKSB7DQoJCQl0aGlzLl9ub3RpZnlDaGFuZ2UoIGluc3QgKTsNCgkJfQ0KCX0sDQoNCgkvKiBFbnN1cmUgYSBkYXRlIGlzIHdpdGhpbiBhbnkgbWluL21heCBib3VuZHMuICovDQoJX3Jlc3RyaWN0TWluTWF4OiBmdW5jdGlvbiggaW5zdCwgZGF0ZSApIHsNCgkJdmFyIG1pbkRhdGUgPSB0aGlzLl9nZXRNaW5NYXhEYXRlKCBpbnN0LCAibWluIiApLA0KCQkJbWF4RGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoIGluc3QsICJtYXgiICksDQoJCQluZXdEYXRlID0gKCBtaW5EYXRlICYmIGRhdGUgPCBtaW5EYXRlID8gbWluRGF0ZSA6IGRhdGUgKTsNCgkJcmV0dXJuICggbWF4RGF0ZSAmJiBuZXdEYXRlID4gbWF4RGF0ZSA/IG1heERhdGUgOiBuZXdEYXRlICk7DQoJfSwNCg0KCS8qIE5vdGlmeSBjaGFuZ2Ugb2YgbW9udGgveWVhci4gKi8NCglfbm90aWZ5Q2hhbmdlOiBmdW5jdGlvbiggaW5zdCApIHsNCgkJdmFyIG9uQ2hhbmdlID0gdGhpcy5fZ2V0KCBpbnN0LCAib25DaGFuZ2VNb250aFllYXIiICk7DQoJCWlmICggb25DaGFuZ2UgKSB7DQoJCQlvbkNoYW5nZS5hcHBseSggKCBpbnN0LmlucHV0ID8gaW5zdC5pbnB1dFsgMCBdIDogbnVsbCApLA0KCQkJCVsgaW5zdC5zZWxlY3RlZFllYXIsIGluc3Quc2VsZWN0ZWRNb250aCArIDEsIGluc3QgXSApOw0KCQl9DQoJfSwNCg0KCS8qIERldGVybWluZSB0aGUgbnVtYmVyIG9mIG1vbnRocyB0byBzaG93LiAqLw0KCV9nZXROdW1iZXJPZk1vbnRoczogZnVuY3Rpb24oIGluc3QgKSB7DQoJCXZhciBudW1Nb250aHMgPSB0aGlzLl9nZXQoIGluc3QsICJudW1iZXJPZk1vbnRocyIgKTsNCgkJcmV0dXJuICggbnVtTW9udGhzID09IG51bGwgPyBbIDEsIDEgXSA6ICggdHlwZW9mIG51bU1vbnRocyA9PT0gIm51bWJlciIgPyBbIDEsIG51bU1vbnRocyBdIDogbnVtTW9udGhzICkgKTsNCgl9LA0KDQoJLyogRGV0ZXJtaW5lIHRoZSBjdXJyZW50IG1heGltdW0gZGF0ZSAtIGVuc3VyZSBubyB0aW1lIGNvbXBvbmVudHMgYXJlIHNldC4gKi8NCglfZ2V0TWluTWF4RGF0ZTogZnVuY3Rpb24oIGluc3QsIG1pbk1heCApIHsNCgkJcmV0dXJuIHRoaXMuX2RldGVybWluZURhdGUoIGluc3QsIHRoaXMuX2dldCggaW5zdCwgbWluTWF4ICsgIkRhdGUiICksIG51bGwgKTsNCgl9LA0KDQoJLyogRmluZCB0aGUgbnVtYmVyIG9mIGRheXMgaW4gYSBnaXZlbiBtb250aC4gKi8NCglfZ2V0RGF5c0luTW9udGg6IGZ1bmN0aW9uKCB5ZWFyLCBtb250aCApIHsNCgkJcmV0dXJuIDMyIC0gdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoIG5ldyBEYXRlKCB5ZWFyLCBtb250aCwgMzIgKSApLmdldERhdGUoKTsNCgl9LA0KDQoJLyogRmluZCB0aGUgZGF5IG9mIHRoZSB3ZWVrIG9mIHRoZSBmaXJzdCBvZiBhIG1vbnRoLiAqLw0KCV9nZXRGaXJzdERheU9mTW9udGg6IGZ1bmN0aW9uKCB5ZWFyLCBtb250aCApIHsNCgkJcmV0dXJuIG5ldyBEYXRlKCB5ZWFyLCBtb250aCwgMSApLmdldERheSgpOw0KCX0sDQoNCgkvKiBEZXRlcm1pbmVzIGlmIHdlIHNob3VsZCBhbGxvdyBhICJuZXh0L3ByZXYiIG1vbnRoIGRpc3BsYXkgY2hhbmdlLiAqLw0KCV9jYW5BZGp1c3RNb250aDogZnVuY3Rpb24oIGluc3QsIG9mZnNldCwgY3VyWWVhciwgY3VyTW9udGggKSB7DQoJCXZhciBudW1Nb250aHMgPSB0aGlzLl9nZXROdW1iZXJPZk1vbnRocyggaW5zdCApLA0KCQkJZGF0ZSA9IHRoaXMuX2RheWxpZ2h0U2F2aW5nQWRqdXN0KCBuZXcgRGF0ZSggY3VyWWVhciwNCgkJCWN1ck1vbnRoICsgKCBvZmZzZXQgPCAwID8gb2Zmc2V0IDogbnVtTW9udGhzWyAwIF0gKiBudW1Nb250aHNbIDEgXSApLCAxICkgKTsNCg0KCQlpZiAoIG9mZnNldCA8IDAgKSB7DQoJCQlkYXRlLnNldERhdGUoIHRoaXMuX2dldERheXNJbk1vbnRoKCBkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSApICk7DQoJCX0NCgkJcmV0dXJuIHRoaXMuX2lzSW5SYW5nZSggaW5zdCwgZGF0ZSApOw0KCX0sDQoNCgkvKiBJcyB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgYWNjZXB0ZWQgcmFuZ2U/ICovDQoJX2lzSW5SYW5nZTogZnVuY3Rpb24oIGluc3QsIGRhdGUgKSB7DQoJCXZhciB5ZWFyU3BsaXQsIGN1cnJlbnRZZWFyLA0KCQkJbWluRGF0ZSA9IHRoaXMuX2dldE1pbk1heERhdGUoIGluc3QsICJtaW4iICksDQoJCQltYXhEYXRlID0gdGhpcy5fZ2V0TWluTWF4RGF0ZSggaW5zdCwgIm1heCIgKSwNCgkJCW1pblllYXIgPSBudWxsLA0KCQkJbWF4WWVhciA9IG51bGwsDQoJCQl5ZWFycyA9IHRoaXMuX2dldCggaW5zdCwgInllYXJSYW5nZSIgKTsNCgkJCWlmICggeWVhcnMgKSB7DQoJCQkJeWVhclNwbGl0ID0geWVhcnMuc3BsaXQoICI6IiApOw0KCQkJCWN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpOw0KCQkJCW1pblllYXIgPSBwYXJzZUludCggeWVhclNwbGl0WyAwIF0sIDEwICk7DQoJCQkJbWF4WWVhciA9IHBhcnNlSW50KCB5ZWFyU3BsaXRbIDEgXSwgMTAgKTsNCgkJCQlpZiAoIHllYXJTcGxpdFsgMCBdLm1hdGNoKCAvWytcLV0uKi8gKSApIHsNCgkJCQkJbWluWWVhciArPSBjdXJyZW50WWVhcjsNCgkJCQl9DQoJCQkJaWYgKCB5ZWFyU3BsaXRbIDEgXS5tYXRjaCggL1srXC1dLiovICkgKSB7DQoJCQkJCW1heFllYXIgKz0gY3VycmVudFllYXI7DQoJCQkJfQ0KCQkJfQ0KDQoJCXJldHVybiAoICggIW1pbkRhdGUgfHwgZGF0ZS5nZXRUaW1lKCkgPj0gbWluRGF0ZS5nZXRUaW1lKCkgKSAmJg0KCQkJKCAhbWF4RGF0ZSB8fCBkYXRlLmdldFRpbWUoKSA8PSBtYXhEYXRlLmdldFRpbWUoKSApICYmDQoJCQkoICFtaW5ZZWFyIHx8IGRhdGUuZ2V0RnVsbFllYXIoKSA+PSBtaW5ZZWFyICkgJiYNCgkJCSggIW1heFllYXIgfHwgZGF0ZS5nZXRGdWxsWWVhcigpIDw9IG1heFllYXIgKSApOw0KCX0sDQoNCgkvKiBQcm92aWRlIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBmb3JtYXR0aW5nL3BhcnNpbmcuICovDQoJX2dldEZvcm1hdENvbmZpZzogZnVuY3Rpb24oIGluc3QgKSB7DQoJCXZhciBzaG9ydFllYXJDdXRvZmYgPSB0aGlzLl9nZXQoIGluc3QsICJzaG9ydFllYXJDdXRvZmYiICk7DQoJCXNob3J0WWVhckN1dG9mZiA9ICggdHlwZW9mIHNob3J0WWVhckN1dG9mZiAhPT0gInN0cmluZyIgPyBzaG9ydFllYXJDdXRvZmYgOg0KCQkJbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICUgMTAwICsgcGFyc2VJbnQoIHNob3J0WWVhckN1dG9mZiwgMTAgKSApOw0KCQlyZXR1cm4geyBzaG9ydFllYXJDdXRvZmY6IHNob3J0WWVhckN1dG9mZiwNCgkJCWRheU5hbWVzU2hvcnQ6IHRoaXMuX2dldCggaW5zdCwgImRheU5hbWVzU2hvcnQiICksIGRheU5hbWVzOiB0aGlzLl9nZXQoIGluc3QsICJkYXlOYW1lcyIgKSwNCgkJCW1vbnRoTmFtZXNTaG9ydDogdGhpcy5fZ2V0KCBpbnN0LCAibW9udGhOYW1lc1Nob3J0IiApLCBtb250aE5hbWVzOiB0aGlzLl9nZXQoIGluc3QsICJtb250aE5hbWVzIiApIH07DQoJfSwNCg0KCS8qIEZvcm1hdCB0aGUgZ2l2ZW4gZGF0ZSBmb3IgZGlzcGxheS4gKi8NCglfZm9ybWF0RGF0ZTogZnVuY3Rpb24oIGluc3QsIGRheSwgbW9udGgsIHllYXIgKSB7DQoJCWlmICggIWRheSApIHsNCgkJCWluc3QuY3VycmVudERheSA9IGluc3Quc2VsZWN0ZWREYXk7DQoJCQlpbnN0LmN1cnJlbnRNb250aCA9IGluc3Quc2VsZWN0ZWRNb250aDsNCgkJCWluc3QuY3VycmVudFllYXIgPSBpbnN0LnNlbGVjdGVkWWVhcjsNCgkJfQ0KCQl2YXIgZGF0ZSA9ICggZGF5ID8gKCB0eXBlb2YgZGF5ID09PSAib2JqZWN0IiA/IGRheSA6DQoJCQl0aGlzLl9kYXlsaWdodFNhdmluZ0FkanVzdCggbmV3IERhdGUoIHllYXIsIG1vbnRoLCBkYXkgKSApICkgOg0KCQkJdGhpcy5fZGF5bGlnaHRTYXZpbmdBZGp1c3QoIG5ldyBEYXRlKCBpbnN0LmN1cnJlbnRZZWFyLCBpbnN0LmN1cnJlbnRNb250aCwgaW5zdC5jdXJyZW50RGF5ICkgKSApOw0KCQlyZXR1cm4gdGhpcy5mb3JtYXREYXRlKCB0aGlzLl9nZXQoIGluc3QsICJkYXRlRm9ybWF0IiApLCBkYXRlLCB0aGlzLl9nZXRGb3JtYXRDb25maWcoIGluc3QgKSApOw0KCX0NCn0gKTsNCg0KLyoNCiAqIEJpbmQgaG92ZXIgZXZlbnRzIGZvciBkYXRlcGlja2VyIGVsZW1lbnRzLg0KICogRG9uZSB2aWEgZGVsZWdhdGUgc28gdGhlIGJpbmRpbmcgb25seSBvY2N1cnMgb25jZSBpbiB0aGUgbGlmZXRpbWUgb2YgdGhlIHBhcmVudCBkaXYuDQogKiBHbG9iYWwgZGF0ZXBpY2tlcl9pbnN0QWN0aXZlLCBzZXQgYnkgX3VwZGF0ZURhdGVwaWNrZXIgYWxsb3dzIHRoZSBoYW5kbGVycyB0byBmaW5kIHRoZWlyIHdheSBiYWNrIHRvIHRoZSBhY3RpdmUgcGlja2VyLg0KICovDQpmdW5jdGlvbiBkYXRlcGlja2VyX2JpbmRIb3ZlciggZHBEaXYgKSB7DQoJdmFyIHNlbGVjdG9yID0gImJ1dHRvbiwgLnVpLWRhdGVwaWNrZXItcHJldiwgLnVpLWRhdGVwaWNrZXItbmV4dCwgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgYSI7DQoJcmV0dXJuIGRwRGl2Lm9uKCAibW91c2VvdXQiLCBzZWxlY3RvciwgZnVuY3Rpb24oKSB7DQoJCQkkKCB0aGlzICkucmVtb3ZlQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJCWlmICggdGhpcy5jbGFzc05hbWUuaW5kZXhPZiggInVpLWRhdGVwaWNrZXItcHJldiIgKSAhPT0gLTEgKSB7DQoJCQkJJCggdGhpcyApLnJlbW92ZUNsYXNzKCAidWktZGF0ZXBpY2tlci1wcmV2LWhvdmVyIiApOw0KCQkJfQ0KCQkJaWYgKCB0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCAidWktZGF0ZXBpY2tlci1uZXh0IiApICE9PSAtMSApIHsNCgkJCQkkKCB0aGlzICkucmVtb3ZlQ2xhc3MoICJ1aS1kYXRlcGlja2VyLW5leHQtaG92ZXIiICk7DQoJCQl9DQoJCX0gKQ0KCQkub24oICJtb3VzZW92ZXIiLCBzZWxlY3RvciwgZGF0ZXBpY2tlcl9oYW5kbGVNb3VzZW92ZXIgKTsNCn0NCg0KZnVuY3Rpb24gZGF0ZXBpY2tlcl9oYW5kbGVNb3VzZW92ZXIoKSB7DQoJaWYgKCAhJC5kYXRlcGlja2VyLl9pc0Rpc2FibGVkRGF0ZXBpY2tlciggZGF0ZXBpY2tlcl9pbnN0QWN0aXZlLmlubGluZSA/IGRhdGVwaWNrZXJfaW5zdEFjdGl2ZS5kcERpdi5wYXJlbnQoKVsgMCBdIDogZGF0ZXBpY2tlcl9pbnN0QWN0aXZlLmlucHV0WyAwIF0gKSApIHsNCgkJJCggdGhpcyApLnBhcmVudHMoICIudWktZGF0ZXBpY2tlci1jYWxlbmRhciIgKS5maW5kKCAiYSIgKS5yZW1vdmVDbGFzcyggInVpLXN0YXRlLWhvdmVyIiApOw0KCQkkKCB0aGlzICkuYWRkQ2xhc3MoICJ1aS1zdGF0ZS1ob3ZlciIgKTsNCgkJaWYgKCB0aGlzLmNsYXNzTmFtZS5pbmRleE9mKCAidWktZGF0ZXBpY2tlci1wcmV2IiApICE9PSAtMSApIHsNCgkJCSQoIHRoaXMgKS5hZGRDbGFzcyggInVpLWRhdGVwaWNrZXItcHJldi1ob3ZlciIgKTsNCgkJfQ0KCQlpZiAoIHRoaXMuY2xhc3NOYW1lLmluZGV4T2YoICJ1aS1kYXRlcGlja2VyLW5leHQiICkgIT09IC0xICkgew0KCQkJJCggdGhpcyApLmFkZENsYXNzKCAidWktZGF0ZXBpY2tlci1uZXh0LWhvdmVyIiApOw0KCQl9DQoJfQ0KfQ0KDQovKiBqUXVlcnkgZXh0ZW5kIG5vdyBpZ25vcmVzIG51bGxzISAqLw0KZnVuY3Rpb24gZGF0ZXBpY2tlcl9leHRlbmRSZW1vdmUoIHRhcmdldCwgcHJvcHMgKSB7DQoJJC5leHRlbmQoIHRhcmdldCwgcHJvcHMgKTsNCglmb3IgKCB2YXIgbmFtZSBpbiBwcm9wcyApIHsNCgkJaWYgKCBwcm9wc1sgbmFtZSBdID09IG51bGwgKSB7DQoJCQl0YXJnZXRbIG5hbWUgXSA9IHByb3BzWyBuYW1lIF07DQoJCX0NCgl9DQoJcmV0dXJuIHRhcmdldDsNCn0NCg0KLyogSW52b2tlIHRoZSBkYXRlcGlja2VyIGZ1bmN0aW9uYWxpdHkuDQogICBAcGFyYW0gIG9wdGlvbnMgIHN0cmluZyAtIGEgY29tbWFuZCwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgb3INCgkJCQkJT2JqZWN0IC0gc2V0dGluZ3MgZm9yIGF0dGFjaGluZyBuZXcgZGF0ZXBpY2tlciBmdW5jdGlvbmFsaXR5DQogICBAcmV0dXJuICBqUXVlcnkgb2JqZWN0ICovDQokLmZuLmRhdGVwaWNrZXIgPSBmdW5jdGlvbiggb3B0aW9ucyApIHsNCg0KCS8qIFZlcmlmeSBhbiBlbXB0eSBjb2xsZWN0aW9uIHdhc24ndCBwYXNzZWQgLSBGaXhlcyAjNjk3NiAqLw0KCWlmICggIXRoaXMubGVuZ3RoICkgew0KCQlyZXR1cm4gdGhpczsNCgl9DQoNCgkvKiBJbml0aWFsaXNlIHRoZSBkYXRlIHBpY2tlci4gKi8NCglpZiAoICEkLmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQgKSB7DQoJCSQoIGRvY3VtZW50ICkub24oICJtb3VzZWRvd24iLCAkLmRhdGVwaWNrZXIuX2NoZWNrRXh0ZXJuYWxDbGljayApOw0KCQkkLmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQgPSB0cnVlOw0KCX0NCg0KCS8qIEFwcGVuZCBkYXRlcGlja2VyIG1haW4gY29udGFpbmVyIHRvIGJvZHkgaWYgbm90IGV4aXN0LiAqLw0KCWlmICggJCggIiMiICsgJC5kYXRlcGlja2VyLl9tYWluRGl2SWQgKS5sZW5ndGggPT09IDAgKSB7DQoJCSQoICJib2R5IiApLmFwcGVuZCggJC5kYXRlcGlja2VyLmRwRGl2ICk7DQoJfQ0KDQoJdmFyIG90aGVyQXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKCBhcmd1bWVudHMsIDEgKTsNCglpZiAoIHR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiAmJiAoIG9wdGlvbnMgPT09ICJpc0Rpc2FibGVkIiB8fCBvcHRpb25zID09PSAiZ2V0RGF0ZSIgfHwgb3B0aW9ucyA9PT0gIndpZGdldCIgKSApIHsNCgkJcmV0dXJuICQuZGF0ZXBpY2tlclsgIl8iICsgb3B0aW9ucyArICJEYXRlcGlja2VyIiBdLg0KCQkJYXBwbHkoICQuZGF0ZXBpY2tlciwgWyB0aGlzWyAwIF0gXS5jb25jYXQoIG90aGVyQXJncyApICk7DQoJfQ0KCWlmICggb3B0aW9ucyA9PT0gIm9wdGlvbiIgJiYgYXJndW1lbnRzLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgYXJndW1lbnRzWyAxIF0gPT09ICJzdHJpbmciICkgew0KCQlyZXR1cm4gJC5kYXRlcGlja2VyWyAiXyIgKyBvcHRpb25zICsgIkRhdGVwaWNrZXIiIF0uDQoJCQlhcHBseSggJC5kYXRlcGlja2VyLCBbIHRoaXNbIDAgXSBdLmNvbmNhdCggb3RoZXJBcmdzICkgKTsNCgl9DQoJcmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCXR5cGVvZiBvcHRpb25zID09PSAic3RyaW5nIiA/DQoJCQkkLmRhdGVwaWNrZXJbICJfIiArIG9wdGlvbnMgKyAiRGF0ZXBpY2tlciIgXS4NCgkJCQlhcHBseSggJC5kYXRlcGlja2VyLCBbIHRoaXMgXS5jb25jYXQoIG90aGVyQXJncyApICkgOg0KCQkJJC5kYXRlcGlja2VyLl9hdHRhY2hEYXRlcGlja2VyKCB0aGlzLCBvcHRpb25zICk7DQoJfSApOw0KfTsNCg0KJC5kYXRlcGlja2VyID0gbmV3IERhdGVwaWNrZXIoKTsgLy8gc2luZ2xldG9uIGluc3RhbmNlDQokLmRhdGVwaWNrZXIuaW5pdGlhbGl6ZWQgPSBmYWxzZTsNCiQuZGF0ZXBpY2tlci51dWlkID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7DQokLmRhdGVwaWNrZXIudmVyc2lvbiA9ICIxLjEyLjEiOw0KDQp2YXIgd2lkZ2V0c0RhdGVwaWNrZXIgPSAkLmRhdGVwaWNrZXI7DQoNCg0KDQoNCi8vIFRoaXMgZmlsZSBpcyBkZXByZWNhdGVkDQp2YXIgaWUgPSAkLnVpLmllID0gISEvbXNpZSBbXHcuXSsvLmV4ZWMoIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSApOw0KDQovKiENCiAqIGpRdWVyeSBVSSBNb3VzZSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogTW91c2UNCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8+PmRlc2NyaXB0aW9uOiBBYnN0cmFjdHMgbW91c2UtYmFzZWQgaW50ZXJhY3Rpb25zIHRvIGFzc2lzdCBpbiBjcmVhdGluZyBjZXJ0YWluIHdpZGdldHMuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vbW91c2UvDQoNCg0KDQp2YXIgbW91c2VIYW5kbGVkID0gZmFsc2U7DQokKCBkb2N1bWVudCApLm9uKCAibW91c2V1cCIsIGZ1bmN0aW9uKCkgew0KCW1vdXNlSGFuZGxlZCA9IGZhbHNlOw0KfSApOw0KDQp2YXIgd2lkZ2V0c01vdXNlID0gJC53aWRnZXQoICJ1aS5tb3VzZSIsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCglvcHRpb25zOiB7DQoJCWNhbmNlbDogImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QsIG9wdGlvbiIsDQoJCWRpc3RhbmNlOiAxLA0KCQlkZWxheTogMA0KCX0sDQoJX21vdXNlSW5pdDogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5vbiggIm1vdXNlZG93bi4iICsgdGhpcy53aWRnZXROYW1lLCBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJcmV0dXJuIHRoYXQuX21vdXNlRG93biggZXZlbnQgKTsNCgkJCX0gKQ0KCQkJLm9uKCAiY2xpY2suIiArIHRoaXMud2lkZ2V0TmFtZSwgZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggdHJ1ZSA9PT0gJC5kYXRhKCBldmVudC50YXJnZXQsIHRoYXQud2lkZ2V0TmFtZSArICIucHJldmVudENsaWNrRXZlbnQiICkgKSB7DQoJCQkJCSQucmVtb3ZlRGF0YSggZXZlbnQudGFyZ2V0LCB0aGF0LndpZGdldE5hbWUgKyAiLnByZXZlbnRDbGlja0V2ZW50IiApOw0KCQkJCQlldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsNCgkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCX0NCgkJCX0gKTsNCg0KCQl0aGlzLnN0YXJ0ZWQgPSBmYWxzZTsNCgl9LA0KDQoJLy8gVE9ETzogbWFrZSBzdXJlIGRlc3Ryb3lpbmcgb25lIGluc3RhbmNlIG9mIG1vdXNlIGRvZXNuJ3QgbWVzcyB3aXRoDQoJLy8gb3RoZXIgaW5zdGFuY2VzIG9mIG1vdXNlDQoJX21vdXNlRGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5vZmYoICIuIiArIHRoaXMud2lkZ2V0TmFtZSApOw0KCQlpZiAoIHRoaXMuX21vdXNlTW92ZURlbGVnYXRlICkgew0KCQkJdGhpcy5kb2N1bWVudA0KCQkJCS5vZmYoICJtb3VzZW1vdmUuIiArIHRoaXMud2lkZ2V0TmFtZSwgdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUgKQ0KCQkJCS5vZmYoICJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSApOw0KCQl9DQoJfSwNCg0KCV9tb3VzZURvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQkvLyBkb24ndCBsZXQgbW9yZSB0aGFuIG9uZSB3aWRnZXQgaGFuZGxlIG1vdXNlU3RhcnQNCgkJaWYgKCBtb3VzZUhhbmRsZWQgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0aGlzLl9tb3VzZU1vdmVkID0gZmFsc2U7DQoNCgkJLy8gV2UgbWF5IGhhdmUgbWlzc2VkIG1vdXNldXAgKG91dCBvZiB3aW5kb3cpDQoJCSggdGhpcy5fbW91c2VTdGFydGVkICYmIHRoaXMuX21vdXNlVXAoIGV2ZW50ICkgKTsNCg0KCQl0aGlzLl9tb3VzZURvd25FdmVudCA9IGV2ZW50Ow0KDQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWJ0bklzTGVmdCA9ICggZXZlbnQud2hpY2ggPT09IDEgKSwNCg0KCQkJLy8gZXZlbnQudGFyZ2V0Lm5vZGVOYW1lIHdvcmtzIGFyb3VuZCBhIGJ1ZyBpbiBJRSA4IHdpdGgNCgkJCS8vIGRpc2FibGVkIGlucHV0cyAoIzc2MjApDQoJCQllbElzQ2FuY2VsID0gKCB0eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbCA9PT0gInN0cmluZyIgJiYgZXZlbnQudGFyZ2V0Lm5vZGVOYW1lID8NCgkJCQkkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCB0aGlzLm9wdGlvbnMuY2FuY2VsICkubGVuZ3RoIDogZmFsc2UgKTsNCgkJaWYgKCAhYnRuSXNMZWZ0IHx8IGVsSXNDYW5jZWwgfHwgIXRoaXMuX21vdXNlQ2FwdHVyZSggZXZlbnQgKSApIHsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJdGhpcy5tb3VzZURlbGF5TWV0ID0gIXRoaXMub3B0aW9ucy5kZWxheTsNCgkJaWYgKCAhdGhpcy5tb3VzZURlbGF5TWV0ICkgew0KCQkJdGhpcy5fbW91c2VEZWxheVRpbWVyID0gc2V0VGltZW91dCggZnVuY3Rpb24oKSB7DQoJCQkJdGhhdC5tb3VzZURlbGF5TWV0ID0gdHJ1ZTsNCgkJCX0sIHRoaXMub3B0aW9ucy5kZWxheSApOw0KCQl9DQoNCgkJaWYgKCB0aGlzLl9tb3VzZURpc3RhbmNlTWV0KCBldmVudCApICYmIHRoaXMuX21vdXNlRGVsYXlNZXQoIGV2ZW50ICkgKSB7DQoJCQl0aGlzLl9tb3VzZVN0YXJ0ZWQgPSAoIHRoaXMuX21vdXNlU3RhcnQoIGV2ZW50ICkgIT09IGZhbHNlICk7DQoJCQlpZiAoICF0aGlzLl9tb3VzZVN0YXJ0ZWQgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQlyZXR1cm4gdHJ1ZTsNCgkJCX0NCgkJfQ0KDQoJCS8vIENsaWNrIGV2ZW50IG1heSBuZXZlciBoYXZlIGZpcmVkIChHZWNrbyAmIE9wZXJhKQ0KCQlpZiAoIHRydWUgPT09ICQuZGF0YSggZXZlbnQudGFyZ2V0LCB0aGlzLndpZGdldE5hbWUgKyAiLnByZXZlbnRDbGlja0V2ZW50IiApICkgew0KCQkJJC5yZW1vdmVEYXRhKCBldmVudC50YXJnZXQsIHRoaXMud2lkZ2V0TmFtZSArICIucHJldmVudENsaWNrRXZlbnQiICk7DQoJCX0NCg0KCQkvLyBUaGVzZSBkZWxlZ2F0ZXMgYXJlIHJlcXVpcmVkIHRvIGtlZXAgY29udGV4dA0KCQl0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSA9IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXJldHVybiB0aGF0Ll9tb3VzZU1vdmUoIGV2ZW50ICk7DQoJCX07DQoJCXRoaXMuX21vdXNlVXBEZWxlZ2F0ZSA9IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXJldHVybiB0aGF0Ll9tb3VzZVVwKCBldmVudCApOw0KCQl9Ow0KDQoJCXRoaXMuZG9jdW1lbnQNCgkJCS5vbiggIm1vdXNlbW92ZS4iICsgdGhpcy53aWRnZXROYW1lLCB0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSApDQoJCQkub24oICJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSApOw0KDQoJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJbW91c2VIYW5kbGVkID0gdHJ1ZTsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZU1vdmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQkvLyBPbmx5IGNoZWNrIGZvciBtb3VzZXVwcyBvdXRzaWRlIHRoZSBkb2N1bWVudCBpZiB5b3UndmUgbW92ZWQgaW5zaWRlIHRoZSBkb2N1bWVudA0KCQkvLyBhdCBsZWFzdCBvbmNlLiBUaGlzIHByZXZlbnRzIHRoZSBmaXJpbmcgb2YgbW91c2V1cCBpbiB0aGUgY2FzZSBvZiBJRTw5LCB3aGljaCB3aWxsDQoJCS8vIGZpcmUgYSBtb3VzZW1vdmUgZXZlbnQgaWYgY29udGVudCBpcyBwbGFjZWQgdW5kZXIgdGhlIGN1cnNvci4gU2VlICM3Nzc4DQoJCS8vIFN1cHBvcnQ6IElFIDw5DQoJCWlmICggdGhpcy5fbW91c2VNb3ZlZCApIHsNCg0KCQkJLy8gSUUgbW91c2V1cCBjaGVjayAtIG1vdXNldXAgaGFwcGVuZWQgd2hlbiBtb3VzZSB3YXMgb3V0IG9mIHdpbmRvdw0KCQkJaWYgKCAkLnVpLmllICYmICggIWRvY3VtZW50LmRvY3VtZW50TW9kZSB8fCBkb2N1bWVudC5kb2N1bWVudE1vZGUgPCA5ICkgJiYNCgkJCQkJIWV2ZW50LmJ1dHRvbiApIHsNCgkJCQlyZXR1cm4gdGhpcy5fbW91c2VVcCggZXZlbnQgKTsNCg0KCQkJLy8gSWZyYW1lIG1vdXNldXAgY2hlY2sgLSBtb3VzZXVwIG9jY3VycmVkIGluIGFub3RoZXIgZG9jdW1lbnQNCgkJCX0gZWxzZSBpZiAoICFldmVudC53aGljaCApIHsNCg0KCQkJCS8vIFN1cHBvcnQ6IFNhZmFyaSA8PTggLSA5DQoJCQkJLy8gU2FmYXJpIHNldHMgd2hpY2ggdG8gMCBpZiB5b3UgcHJlc3MgYW55IG9mIHRoZSBmb2xsb3dpbmcga2V5cw0KCQkJCS8vIGR1cmluZyBhIGRyYWcgKCMxNDQ2MSkNCgkJCQlpZiAoIGV2ZW50Lm9yaWdpbmFsRXZlbnQuYWx0S2V5IHx8IGV2ZW50Lm9yaWdpbmFsRXZlbnQuY3RybEtleSB8fA0KCQkJCQkJZXZlbnQub3JpZ2luYWxFdmVudC5tZXRhS2V5IHx8IGV2ZW50Lm9yaWdpbmFsRXZlbnQuc2hpZnRLZXkgKSB7DQoJCQkJCXRoaXMuaWdub3JlTWlzc2luZ1doaWNoID0gdHJ1ZTsNCgkJCQl9IGVsc2UgaWYgKCAhdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2ggKSB7DQoJCQkJCXJldHVybiB0aGlzLl9tb3VzZVVwKCBldmVudCApOw0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCWlmICggZXZlbnQud2hpY2ggfHwgZXZlbnQuYnV0dG9uICkgew0KCQkJdGhpcy5fbW91c2VNb3ZlZCA9IHRydWU7DQoJCX0NCg0KCQlpZiAoIHRoaXMuX21vdXNlU3RhcnRlZCApIHsNCgkJCXRoaXMuX21vdXNlRHJhZyggZXZlbnQgKTsNCgkJCXJldHVybiBldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQl9DQoNCgkJaWYgKCB0aGlzLl9tb3VzZURpc3RhbmNlTWV0KCBldmVudCApICYmIHRoaXMuX21vdXNlRGVsYXlNZXQoIGV2ZW50ICkgKSB7DQoJCQl0aGlzLl9tb3VzZVN0YXJ0ZWQgPQ0KCQkJCSggdGhpcy5fbW91c2VTdGFydCggdGhpcy5fbW91c2VEb3duRXZlbnQsIGV2ZW50ICkgIT09IGZhbHNlICk7DQoJCQkoIHRoaXMuX21vdXNlU3RhcnRlZCA/IHRoaXMuX21vdXNlRHJhZyggZXZlbnQgKSA6IHRoaXMuX21vdXNlVXAoIGV2ZW50ICkgKTsNCgkJfQ0KDQoJCXJldHVybiAhdGhpcy5fbW91c2VTdGFydGVkOw0KCX0sDQoNCglfbW91c2VVcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLmRvY3VtZW50DQoJCQkub2ZmKCAibW91c2Vtb3ZlLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlTW92ZURlbGVnYXRlICkNCgkJCS5vZmYoICJtb3VzZXVwLiIgKyB0aGlzLndpZGdldE5hbWUsIHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSApOw0KDQoJCWlmICggdGhpcy5fbW91c2VTdGFydGVkICkgew0KCQkJdGhpcy5fbW91c2VTdGFydGVkID0gZmFsc2U7DQoNCgkJCWlmICggZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQgKSB7DQoJCQkJJC5kYXRhKCBldmVudC50YXJnZXQsIHRoaXMud2lkZ2V0TmFtZSArICIucHJldmVudENsaWNrRXZlbnQiLCB0cnVlICk7DQoJCQl9DQoNCgkJCXRoaXMuX21vdXNlU3RvcCggZXZlbnQgKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5fbW91c2VEZWxheVRpbWVyICkgew0KCQkJY2xlYXJUaW1lb3V0KCB0aGlzLl9tb3VzZURlbGF5VGltZXIgKTsNCgkJCWRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXI7DQoJCX0NCg0KCQl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaCA9IGZhbHNlOw0KCQltb3VzZUhhbmRsZWQgPSBmYWxzZTsNCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgl9LA0KDQoJX21vdXNlRGlzdGFuY2VNZXQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJcmV0dXJuICggTWF0aC5tYXgoDQoJCQkJTWF0aC5hYnMoIHRoaXMuX21vdXNlRG93bkV2ZW50LnBhZ2VYIC0gZXZlbnQucGFnZVggKSwNCgkJCQlNYXRoLmFicyggdGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVkgLSBldmVudC5wYWdlWSApDQoJCQkpID49IHRoaXMub3B0aW9ucy5kaXN0YW5jZQ0KCQkpOw0KCX0sDQoNCglfbW91c2VEZWxheU1ldDogZnVuY3Rpb24oIC8qIGV2ZW50ICovICkgew0KCQlyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0Ow0KCX0sDQoNCgkvLyBUaGVzZSBhcmUgcGxhY2Vob2xkZXIgbWV0aG9kcywgdG8gYmUgb3ZlcnJpZGVuIGJ5IGV4dGVuZGluZyBwbHVnaW4NCglfbW91c2VTdGFydDogZnVuY3Rpb24oIC8qIGV2ZW50ICovICkge30sDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oIC8qIGV2ZW50ICovICkge30sDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oIC8qIGV2ZW50ICovICkge30sDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oIC8qIGV2ZW50ICovICkgeyByZXR1cm4gdHJ1ZTsgfQ0KfSApOw0KDQoNCg0KDQovLyAkLnVpLnBsdWdpbiBpcyBkZXByZWNhdGVkLiBVc2UgJC53aWRnZXQoKSBleHRlbnNpb25zIGluc3RlYWQuDQp2YXIgcGx1Z2luID0gJC51aS5wbHVnaW4gPSB7DQoJYWRkOiBmdW5jdGlvbiggbW9kdWxlLCBvcHRpb24sIHNldCApIHsNCgkJdmFyIGksDQoJCQlwcm90byA9ICQudWlbIG1vZHVsZSBdLnByb3RvdHlwZTsNCgkJZm9yICggaSBpbiBzZXQgKSB7DQoJCQlwcm90by5wbHVnaW5zWyBpIF0gPSBwcm90by5wbHVnaW5zWyBpIF0gfHwgW107DQoJCQlwcm90by5wbHVnaW5zWyBpIF0ucHVzaCggWyBvcHRpb24sIHNldFsgaSBdIF0gKTsNCgkJfQ0KCX0sDQoJY2FsbDogZnVuY3Rpb24oIGluc3RhbmNlLCBuYW1lLCBhcmdzLCBhbGxvd0Rpc2Nvbm5lY3RlZCApIHsNCgkJdmFyIGksDQoJCQlzZXQgPSBpbnN0YW5jZS5wbHVnaW5zWyBuYW1lIF07DQoNCgkJaWYgKCAhc2V0ICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCAhYWxsb3dEaXNjb25uZWN0ZWQgJiYgKCAhaW5zdGFuY2UuZWxlbWVudFsgMCBdLnBhcmVudE5vZGUgfHwNCgkJCQlpbnN0YW5jZS5lbGVtZW50WyAwIF0ucGFyZW50Tm9kZS5ub2RlVHlwZSA9PT0gMTEgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWZvciAoIGkgPSAwOyBpIDwgc2V0Lmxlbmd0aDsgaSsrICkgew0KCQkJaWYgKCBpbnN0YW5jZS5vcHRpb25zWyBzZXRbIGkgXVsgMCBdIF0gKSB7DQoJCQkJc2V0WyBpIF1bIDEgXS5hcHBseSggaW5zdGFuY2UuZWxlbWVudCwgYXJncyApOw0KCQkJfQ0KCQl9DQoJfQ0KfTsNCg0KDQoNCnZhciBzYWZlQmx1ciA9ICQudWkuc2FmZUJsdXIgPSBmdW5jdGlvbiggZWxlbWVudCApIHsNCg0KCS8vIFN1cHBvcnQ6IElFOSAtIDEwIG9ubHkNCgkvLyBJZiB0aGUgPGJvZHk+IGlzIGJsdXJyZWQsIElFIHdpbGwgc3dpdGNoIHdpbmRvd3MsIHNlZSAjOTQyMA0KCWlmICggZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICJib2R5IiApIHsNCgkJJCggZWxlbWVudCApLnRyaWdnZXIoICJibHVyIiApOw0KCX0NCn07DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRHJhZ2dhYmxlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBEcmFnZ2FibGUNCi8vPj5ncm91cDogSW50ZXJhY3Rpb25zDQovLz4+ZGVzY3JpcHRpb246IEVuYWJsZXMgZHJhZ2dpbmcgZnVuY3Rpb25hbGl0eSBmb3IgYW55IGVsZW1lbnQuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZHJhZ2dhYmxlLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2RyYWdnYWJsZS8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9kcmFnZ2FibGUuY3NzDQoNCg0KDQokLndpZGdldCggInVpLmRyYWdnYWJsZSIsICQudWkubW91c2UsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCgl3aWRnZXRFdmVudFByZWZpeDogImRyYWciLA0KCW9wdGlvbnM6IHsNCgkJYWRkQ2xhc3NlczogdHJ1ZSwNCgkJYXBwZW5kVG86ICJwYXJlbnQiLA0KCQlheGlzOiBmYWxzZSwNCgkJY29ubmVjdFRvU29ydGFibGU6IGZhbHNlLA0KCQljb250YWlubWVudDogZmFsc2UsDQoJCWN1cnNvcjogImF1dG8iLA0KCQljdXJzb3JBdDogZmFsc2UsDQoJCWdyaWQ6IGZhbHNlLA0KCQloYW5kbGU6IGZhbHNlLA0KCQloZWxwZXI6ICJvcmlnaW5hbCIsDQoJCWlmcmFtZUZpeDogZmFsc2UsDQoJCW9wYWNpdHk6IGZhbHNlLA0KCQlyZWZyZXNoUG9zaXRpb25zOiBmYWxzZSwNCgkJcmV2ZXJ0OiBmYWxzZSwNCgkJcmV2ZXJ0RHVyYXRpb246IDUwMCwNCgkJc2NvcGU6ICJkZWZhdWx0IiwNCgkJc2Nyb2xsOiB0cnVlLA0KCQlzY3JvbGxTZW5zaXRpdml0eTogMjAsDQoJCXNjcm9sbFNwZWVkOiAyMCwNCgkJc25hcDogZmFsc2UsDQoJCXNuYXBNb2RlOiAiYm90aCIsDQoJCXNuYXBUb2xlcmFuY2U6IDIwLA0KCQlzdGFjazogZmFsc2UsDQoJCXpJbmRleDogZmFsc2UsDQoNCgkJLy8gQ2FsbGJhY2tzDQoJCWRyYWc6IG51bGwsDQoJCXN0YXJ0OiBudWxsLA0KCQlzdG9wOiBudWxsDQoJfSwNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5oZWxwZXIgPT09ICJvcmlnaW5hbCIgKSB7DQoJCQl0aGlzLl9zZXRQb3NpdGlvblJlbGF0aXZlKCk7DQoJCX0NCgkJaWYgKCB0aGlzLm9wdGlvbnMuYWRkQ2xhc3NlcyApIHsNCgkJCXRoaXMuX2FkZENsYXNzKCAidWktZHJhZ2dhYmxlIiApOw0KCQl9DQoJCXRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpOw0KDQoJCXRoaXMuX21vdXNlSW5pdCgpOw0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCgkJaWYgKCBrZXkgPT09ICJoYW5kbGUiICkgew0KCQkJdGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCk7DQoJCQl0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKTsNCgkJfQ0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCWlmICggKCB0aGlzLmhlbHBlciB8fCB0aGlzLmVsZW1lbnQgKS5pcyggIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciICkgKSB7DQoJCQl0aGlzLmRlc3Ryb3lPbkNsZWFyID0gdHJ1ZTsNCgkJCXJldHVybjsNCgkJfQ0KCQl0aGlzLl9yZW1vdmVIYW5kbGVDbGFzc05hbWUoKTsNCgkJdGhpcy5fbW91c2VEZXN0cm95KCk7DQoJfSwNCg0KCV9tb3VzZUNhcHR1cmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG8gPSB0aGlzLm9wdGlvbnM7DQoNCgkJLy8gQW1vbmcgb3RoZXJzLCBwcmV2ZW50IGEgZHJhZyBvbiBhIHJlc2l6YWJsZS1oYW5kbGUNCgkJaWYgKCB0aGlzLmhlbHBlciB8fCBvLmRpc2FibGVkIHx8DQoJCQkJJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1yZXNpemFibGUtaGFuZGxlIiApLmxlbmd0aCA+IDAgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQkvL1F1aXQgaWYgd2UncmUgbm90IG9uIGEgdmFsaWQgaGFuZGxlDQoJCXRoaXMuaGFuZGxlID0gdGhpcy5fZ2V0SGFuZGxlKCBldmVudCApOw0KCQlpZiAoICF0aGlzLmhhbmRsZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuX2JsdXJBY3RpdmVFbGVtZW50KCBldmVudCApOw0KDQoJCXRoaXMuX2Jsb2NrRnJhbWVzKCBvLmlmcmFtZUZpeCA9PT0gdHJ1ZSA/ICJpZnJhbWUiIDogby5pZnJhbWVGaXggKTsNCg0KCQlyZXR1cm4gdHJ1ZTsNCg0KCX0sDQoNCglfYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHsNCgkJdGhpcy5pZnJhbWVCbG9ja3MgPSB0aGlzLmRvY3VtZW50LmZpbmQoIHNlbGVjdG9yICkubWFwKCBmdW5jdGlvbigpIHsNCgkJCXZhciBpZnJhbWUgPSAkKCB0aGlzICk7DQoNCgkJCXJldHVybiAkKCAiPGRpdj4iICkNCgkJCQkuY3NzKCAicG9zaXRpb24iLCAiYWJzb2x1dGUiICkNCgkJCQkuYXBwZW5kVG8oIGlmcmFtZS5wYXJlbnQoKSApDQoJCQkJLm91dGVyV2lkdGgoIGlmcmFtZS5vdXRlcldpZHRoKCkgKQ0KCQkJCS5vdXRlckhlaWdodCggaWZyYW1lLm91dGVySGVpZ2h0KCkgKQ0KCQkJCS5vZmZzZXQoIGlmcmFtZS5vZmZzZXQoKSApWyAwIF07DQoJCX0gKTsNCgl9LA0KDQoJX3VuYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMuaWZyYW1lQmxvY2tzICkgew0KCQkJdGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCk7DQoJCQlkZWxldGUgdGhpcy5pZnJhbWVCbG9ja3M7DQoJCX0NCgl9LA0KDQoJX2JsdXJBY3RpdmVFbGVtZW50OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBhY3RpdmVFbGVtZW50ID0gJC51aS5zYWZlQWN0aXZlRWxlbWVudCggdGhpcy5kb2N1bWVudFsgMCBdICksDQoJCQl0YXJnZXQgPSAkKCBldmVudC50YXJnZXQgKTsNCg0KCQkvLyBEb24ndCBibHVyIGlmIHRoZSBldmVudCBvY2N1cnJlZCBvbiBhbiBlbGVtZW50IHRoYXQgaXMgd2l0aGluDQoJCS8vIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50DQoJCS8vIFNlZSAjMTA1MjcsICMxMjQ3Mg0KCQlpZiAoIHRhcmdldC5jbG9zZXN0KCBhY3RpdmVFbGVtZW50ICkubGVuZ3RoICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gQmx1ciBhbnkgZWxlbWVudCB0aGF0IGN1cnJlbnRseSBoYXMgZm9jdXMsIHNlZSAjNDI2MQ0KCQkkLnVpLnNhZmVCbHVyKCBhY3RpdmVFbGVtZW50ICk7DQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJdmFyIG8gPSB0aGlzLm9wdGlvbnM7DQoNCgkJLy9DcmVhdGUgYW5kIGFwcGVuZCB0aGUgdmlzaWJsZSBoZWxwZXINCgkJdGhpcy5oZWxwZXIgPSB0aGlzLl9jcmVhdGVIZWxwZXIoIGV2ZW50ICk7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuaGVscGVyLCAidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiApOw0KDQoJCS8vQ2FjaGUgdGhlIGhlbHBlciBzaXplDQoJCXRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKTsNCg0KCQkvL0lmIGRkbWFuYWdlciBpcyB1c2VkIGZvciBkcm9wcGFibGVzLCBzZXQgdGhlIGdsb2JhbCBkcmFnZ2FibGUNCgkJaWYgKCAkLnVpLmRkbWFuYWdlciApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLmN1cnJlbnQgPSB0aGlzOw0KCQl9DQoNCgkJLyoNCgkJICogLSBQb3NpdGlvbiBnZW5lcmF0aW9uIC0NCgkJICogVGhpcyBibG9jayBnZW5lcmF0ZXMgZXZlcnl0aGluZyBwb3NpdGlvbiByZWxhdGVkIC0gaXQncyB0aGUgY29yZSBvZiBkcmFnZ2FibGVzLg0KCQkgKi8NCg0KCQkvL0NhY2hlIHRoZSBtYXJnaW5zIG9mIHRoZSBvcmlnaW5hbCBlbGVtZW50DQoJCXRoaXMuX2NhY2hlTWFyZ2lucygpOw0KDQoJCS8vU3RvcmUgdGhlIGhlbHBlcidzIGNzcyBwb3NpdGlvbg0KCQl0aGlzLmNzc1Bvc2l0aW9uID0gdGhpcy5oZWxwZXIuY3NzKCAicG9zaXRpb24iICk7DQoJCXRoaXMuc2Nyb2xsUGFyZW50ID0gdGhpcy5oZWxwZXIuc2Nyb2xsUGFyZW50KCB0cnVlICk7DQoJCXRoaXMub2Zmc2V0UGFyZW50ID0gdGhpcy5oZWxwZXIub2Zmc2V0UGFyZW50KCk7DQoJCXRoaXMuaGFzRml4ZWRBbmNlc3RvciA9IHRoaXMuaGVscGVyLnBhcmVudHMoKS5maWx0ZXIoIGZ1bmN0aW9uKCkgew0KCQkJCXJldHVybiAkKCB0aGlzICkuY3NzKCAicG9zaXRpb24iICkgPT09ICJmaXhlZCI7DQoJCQl9ICkubGVuZ3RoID4gMDsNCg0KCQkvL1RoZSBlbGVtZW50J3MgYWJzb2x1dGUgcG9zaXRpb24gb24gdGhlIHBhZ2UgbWludXMgbWFyZ2lucw0KCQl0aGlzLnBvc2l0aW9uQWJzID0gdGhpcy5lbGVtZW50Lm9mZnNldCgpOw0KCQl0aGlzLl9yZWZyZXNoT2Zmc2V0cyggZXZlbnQgKTsNCg0KCQkvL0dlbmVyYXRlIHRoZSBvcmlnaW5hbCBwb3NpdGlvbg0KCQl0aGlzLm9yaWdpbmFsUG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uID0gdGhpcy5fZ2VuZXJhdGVQb3NpdGlvbiggZXZlbnQsIGZhbHNlICk7DQoJCXRoaXMub3JpZ2luYWxQYWdlWCA9IGV2ZW50LnBhZ2VYOw0KCQl0aGlzLm9yaWdpbmFsUGFnZVkgPSBldmVudC5wYWdlWTsNCg0KCQkvL0FkanVzdCB0aGUgbW91c2Ugb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBoZWxwZXIgaWYgImN1cnNvckF0IiBpcyBzdXBwbGllZA0KCQkoIG8uY3Vyc29yQXQgJiYgdGhpcy5fYWRqdXN0T2Zmc2V0RnJvbUhlbHBlciggby5jdXJzb3JBdCApICk7DQoNCgkJLy9TZXQgYSBjb250YWlubWVudCBpZiBnaXZlbiBpbiB0aGUgb3B0aW9ucw0KCQl0aGlzLl9zZXRDb250YWlubWVudCgpOw0KDQoJCS8vVHJpZ2dlciBldmVudCArIGNhbGxiYWNrcw0KCQlpZiAoIHRoaXMuX3RyaWdnZXIoICJzdGFydCIsIGV2ZW50ICkgPT09IGZhbHNlICkgew0KCQkJdGhpcy5fY2xlYXIoKTsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vUmVjYWNoZSB0aGUgaGVscGVyIHNpemUNCgkJdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpOw0KDQoJCS8vUHJlcGFyZSB0aGUgZHJvcHBhYmxlIG9mZnNldHMNCgkJaWYgKCAkLnVpLmRkbWFuYWdlciAmJiAhby5kcm9wQmVoYXZpb3VyICkgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIHRoaXMsIGV2ZW50ICk7DQoJCX0NCg0KCQkvLyBFeGVjdXRlIHRoZSBkcmFnIG9uY2UgLSB0aGlzIGNhdXNlcyB0aGUgaGVscGVyIG5vdCB0byBiZSB2aXNpYmxlIGJlZm9yZSBnZXR0aW5nIGl0cw0KCQkvLyBjb3JyZWN0IHBvc2l0aW9uDQoJCXRoaXMuX21vdXNlRHJhZyggZXZlbnQsIHRydWUgKTsNCg0KCQkvLyBJZiB0aGUgZGRtYW5hZ2VyIGlzIHVzZWQgZm9yIGRyb3BwYWJsZXMsIGluZm9ybSB0aGUgbWFuYWdlciB0aGF0IGRyYWdnaW5nIGhhcyBzdGFydGVkDQoJCS8vIChzZWUgIzUwMDMpDQoJCWlmICggJC51aS5kZG1hbmFnZXIgKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcmFnU3RhcnQoIHRoaXMsIGV2ZW50ICk7DQoJCX0NCg0KCQlyZXR1cm4gdHJ1ZTsNCgl9LA0KDQoJX3JlZnJlc2hPZmZzZXRzOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXRoaXMub2Zmc2V0ID0gew0KCQkJdG9wOiB0aGlzLnBvc2l0aW9uQWJzLnRvcCAtIHRoaXMubWFyZ2lucy50b3AsDQoJCQlsZWZ0OiB0aGlzLnBvc2l0aW9uQWJzLmxlZnQgLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCXNjcm9sbDogZmFsc2UsDQoJCQlwYXJlbnQ6IHRoaXMuX2dldFBhcmVudE9mZnNldCgpLA0KCQkJcmVsYXRpdmU6IHRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCkNCgkJfTsNCg0KCQl0aGlzLm9mZnNldC5jbGljayA9IHsNCgkJCWxlZnQ6IGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQubGVmdCwNCgkJCXRvcDogZXZlbnQucGFnZVkgLSB0aGlzLm9mZnNldC50b3ANCgkJfTsNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oIGV2ZW50LCBub1Byb3BhZ2F0aW9uICkgew0KDQoJCS8vIHJlc2V0IGFueSBuZWNlc3NhcnkgY2FjaGVkIHByb3BlcnRpZXMgKHNlZSAjNTAwOSkNCgkJaWYgKCB0aGlzLmhhc0ZpeGVkQW5jZXN0b3IgKSB7DQoJCQl0aGlzLm9mZnNldC5wYXJlbnQgPSB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKTsNCgkJfQ0KDQoJCS8vQ29tcHV0ZSB0aGUgaGVscGVycyBwb3NpdGlvbg0KCQl0aGlzLnBvc2l0aW9uID0gdGhpcy5fZ2VuZXJhdGVQb3NpdGlvbiggZXZlbnQsIHRydWUgKTsNCgkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCAiYWJzb2x1dGUiICk7DQoNCgkJLy9DYWxsIHBsdWdpbnMgYW5kIGNhbGxiYWNrcyBhbmQgdXNlIHRoZSByZXN1bHRpbmcgcG9zaXRpb24gaWYgc29tZXRoaW5nIGlzIHJldHVybmVkDQoJCWlmICggIW5vUHJvcGFnYXRpb24gKSB7DQoJCQl2YXIgdWkgPSB0aGlzLl91aUhhc2goKTsNCgkJCWlmICggdGhpcy5fdHJpZ2dlciggImRyYWciLCBldmVudCwgdWkgKSA9PT0gZmFsc2UgKSB7DQoJCQkJdGhpcy5fbW91c2VVcCggbmV3ICQuRXZlbnQoICJtb3VzZXVwIiwgZXZlbnQgKSApOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCXRoaXMucG9zaXRpb24gPSB1aS5wb3NpdGlvbjsNCgkJfQ0KDQoJCXRoaXMuaGVscGVyWyAwIF0uc3R5bGUubGVmdCA9IHRoaXMucG9zaXRpb24ubGVmdCArICJweCI7DQoJCXRoaXMuaGVscGVyWyAwIF0uc3R5bGUudG9wID0gdGhpcy5wb3NpdGlvbi50b3AgKyAicHgiOw0KDQoJCWlmICggJC51aS5kZG1hbmFnZXIgKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcmFnKCB0aGlzLCBldmVudCApOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfbW91c2VTdG9wOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJLy9JZiB3ZSBhcmUgdXNpbmcgZHJvcHBhYmxlcywgaW5mb3JtIHRoZSBtYW5hZ2VyIGFib3V0IHRoZSBkcm9wDQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCWRyb3BwZWQgPSBmYWxzZTsNCgkJaWYgKCAkLnVpLmRkbWFuYWdlciAmJiAhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXIgKSB7DQoJCQlkcm9wcGVkID0gJC51aS5kZG1hbmFnZXIuZHJvcCggdGhpcywgZXZlbnQgKTsNCgkJfQ0KDQoJCS8vaWYgYSBkcm9wIGNvbWVzIGZyb20gb3V0c2lkZSAoYSBzb3J0YWJsZSkNCgkJaWYgKCB0aGlzLmRyb3BwZWQgKSB7DQoJCQlkcm9wcGVkID0gdGhpcy5kcm9wcGVkOw0KCQkJdGhpcy5kcm9wcGVkID0gZmFsc2U7DQoJCX0NCg0KCQlpZiAoICggdGhpcy5vcHRpb25zLnJldmVydCA9PT0gImludmFsaWQiICYmICFkcm9wcGVkICkgfHwNCgkJCQkoIHRoaXMub3B0aW9ucy5yZXZlcnQgPT09ICJ2YWxpZCIgJiYgZHJvcHBlZCApIHx8DQoJCQkJdGhpcy5vcHRpb25zLnJldmVydCA9PT0gdHJ1ZSB8fCAoICQuaXNGdW5jdGlvbiggdGhpcy5vcHRpb25zLnJldmVydCApICYmDQoJCQkJdGhpcy5vcHRpb25zLnJldmVydC5jYWxsKCB0aGlzLmVsZW1lbnQsIGRyb3BwZWQgKSApDQoJCSkgew0KCQkJJCggdGhpcy5oZWxwZXIgKS5hbmltYXRlKA0KCQkJCXRoaXMub3JpZ2luYWxQb3NpdGlvbiwNCgkJCQlwYXJzZUludCggdGhpcy5vcHRpb25zLnJldmVydER1cmF0aW9uLCAxMCApLA0KCQkJCWZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoIHRoYXQuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQgKSAhPT0gZmFsc2UgKSB7DQoJCQkJCQl0aGF0Ll9jbGVhcigpOw0KCQkJCQl9DQoJCQkJfQ0KCQkJKTsNCgkJfSBlbHNlIHsNCgkJCWlmICggdGhpcy5fdHJpZ2dlciggInN0b3AiLCBldmVudCApICE9PSBmYWxzZSApIHsNCgkJCQl0aGlzLl9jbGVhcigpOw0KCQkJfQ0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfbW91c2VVcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzLl91bmJsb2NrRnJhbWVzKCk7DQoNCgkJLy8gSWYgdGhlIGRkbWFuYWdlciBpcyB1c2VkIGZvciBkcm9wcGFibGVzLCBpbmZvcm0gdGhlIG1hbmFnZXIgdGhhdCBkcmFnZ2luZyBoYXMgc3RvcHBlZA0KCQkvLyAoc2VlICM1MDAzKQ0KCQlpZiAoICQudWkuZGRtYW5hZ2VyICkgew0KCQkJJC51aS5kZG1hbmFnZXIuZHJhZ1N0b3AoIHRoaXMsIGV2ZW50ICk7DQoJCX0NCg0KCQkvLyBPbmx5IG5lZWQgdG8gZm9jdXMgaWYgdGhlIGV2ZW50IG9jY3VycmVkIG9uIHRoZSBkcmFnZ2FibGUgaXRzZWxmLCBzZWUgIzEwNTI3DQoJCWlmICggdGhpcy5oYW5kbGVFbGVtZW50LmlzKCBldmVudC50YXJnZXQgKSApIHsNCg0KCQkJLy8gVGhlIGludGVyYWN0aW9uIGlzIG92ZXI7IHdoZXRoZXIgb3Igbm90IHRoZSBjbGljayByZXN1bHRlZCBpbiBhIGRyYWcsDQoJCQkvLyBmb2N1cyB0aGUgZWxlbWVudA0KCQkJdGhpcy5lbGVtZW50LnRyaWdnZXIoICJmb2N1cyIgKTsNCgkJfQ0KDQoJCXJldHVybiAkLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKCB0aGlzLCBldmVudCApOw0KCX0sDQoNCgljYW5jZWw6IGZ1bmN0aW9uKCkgew0KDQoJCWlmICggdGhpcy5oZWxwZXIuaXMoICIudWktZHJhZ2dhYmxlLWRyYWdnaW5nIiApICkgew0KCQkJdGhpcy5fbW91c2VVcCggbmV3ICQuRXZlbnQoICJtb3VzZXVwIiwgeyB0YXJnZXQ6IHRoaXMuZWxlbWVudFsgMCBdIH0gKSApOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5fY2xlYXIoKTsNCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KDQoJfSwNCg0KCV9nZXRIYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJcmV0dXJuIHRoaXMub3B0aW9ucy5oYW5kbGUgPw0KCQkJISEkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5vcHRpb25zLmhhbmRsZSApICkubGVuZ3RoIDoNCgkJCXRydWU7DQoJfSwNCg0KCV9zZXRIYW5kbGVDbGFzc05hbWU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhhbmRsZUVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuaGFuZGxlID8NCgkJCXRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMuaGFuZGxlICkgOiB0aGlzLmVsZW1lbnQ7DQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmhhbmRsZUVsZW1lbnQsICJ1aS1kcmFnZ2FibGUtaGFuZGxlIiApOw0KCX0sDQoNCglfcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuaGFuZGxlRWxlbWVudCwgInVpLWRyYWdnYWJsZS1oYW5kbGUiICk7DQoJfSwNCg0KCV9jcmVhdGVIZWxwZXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQl2YXIgbyA9IHRoaXMub3B0aW9ucywNCgkJCWhlbHBlcklzRnVuY3Rpb24gPSAkLmlzRnVuY3Rpb24oIG8uaGVscGVyICksDQoJCQloZWxwZXIgPSBoZWxwZXJJc0Z1bmN0aW9uID8NCgkJCQkkKCBvLmhlbHBlci5hcHBseSggdGhpcy5lbGVtZW50WyAwIF0sIFsgZXZlbnQgXSApICkgOg0KCQkJCSggby5oZWxwZXIgPT09ICJjbG9uZSIgPw0KCQkJCQl0aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCAiaWQiICkgOg0KCQkJCQl0aGlzLmVsZW1lbnQgKTsNCg0KCQlpZiAoICFoZWxwZXIucGFyZW50cyggImJvZHkiICkubGVuZ3RoICkgew0KCQkJaGVscGVyLmFwcGVuZFRvKCAoIG8uYXBwZW5kVG8gPT09ICJwYXJlbnQiID8NCgkJCQl0aGlzLmVsZW1lbnRbIDAgXS5wYXJlbnROb2RlIDoNCgkJCQlvLmFwcGVuZFRvICkgKTsNCgkJfQ0KDQoJCS8vIEh0dHA6Ly9idWdzLmpxdWVyeXVpLmNvbS90aWNrZXQvOTQ0Ng0KCQkvLyBhIGhlbHBlciBmdW5jdGlvbiBjYW4gcmV0dXJuIHRoZSBvcmlnaW5hbCBlbGVtZW50DQoJCS8vIHdoaWNoIHdvdWxkbid0IGhhdmUgYmVlbiBzZXQgdG8gcmVsYXRpdmUgaW4gX2NyZWF0ZQ0KCQlpZiAoIGhlbHBlcklzRnVuY3Rpb24gJiYgaGVscGVyWyAwIF0gPT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJdGhpcy5fc2V0UG9zaXRpb25SZWxhdGl2ZSgpOw0KCQl9DQoNCgkJaWYgKCBoZWxwZXJbIDAgXSAhPT0gdGhpcy5lbGVtZW50WyAwIF0gJiYNCgkJCQkhKCAvKGZpeGVkfGFic29sdXRlKS8gKS50ZXN0KCBoZWxwZXIuY3NzKCAicG9zaXRpb24iICkgKSApIHsNCgkJCWhlbHBlci5jc3MoICJwb3NpdGlvbiIsICJhYnNvbHV0ZSIgKTsNCgkJfQ0KDQoJCXJldHVybiBoZWxwZXI7DQoNCgl9LA0KDQoJX3NldFBvc2l0aW9uUmVsYXRpdmU6IGZ1bmN0aW9uKCkgew0KCQlpZiAoICEoIC9eKD86cnxhfGYpLyApLnRlc3QoIHRoaXMuZWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUucG9zaXRpb24gPSAicmVsYXRpdmUiOw0KCQl9DQoJfSwNCg0KCV9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOiBmdW5jdGlvbiggb2JqICkgew0KCQlpZiAoIHR5cGVvZiBvYmogPT09ICJzdHJpbmciICkgew0KCQkJb2JqID0gb2JqLnNwbGl0KCAiICIgKTsNCgkJfQ0KCQlpZiAoICQuaXNBcnJheSggb2JqICkgKSB7DQoJCQlvYmogPSB7IGxlZnQ6ICtvYmpbIDAgXSwgdG9wOiArb2JqWyAxIF0gfHwgMCB9Ow0KCQl9DQoJCWlmICggImxlZnQiIGluIG9iaiApIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPSBvYmoubGVmdCArIHRoaXMubWFyZ2lucy5sZWZ0Ow0KCQl9DQoJCWlmICggInJpZ2h0IiBpbiBvYmogKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay5sZWZ0ID0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAtIG9iai5yaWdodCArIHRoaXMubWFyZ2lucy5sZWZ0Ow0KCQl9DQoJCWlmICggInRvcCIgaW4gb2JqICkgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wID0gb2JqLnRvcCArIHRoaXMubWFyZ2lucy50b3A7DQoJCX0NCgkJaWYgKCAiYm90dG9tIiBpbiBvYmogKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay50b3AgPSB0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAtIG9iai5ib3R0b20gKyB0aGlzLm1hcmdpbnMudG9wOw0KCQl9DQoJfSwNCg0KCV9pc1Jvb3ROb2RlOiBmdW5jdGlvbiggZWxlbWVudCApIHsNCgkJcmV0dXJuICggLyhodG1sfGJvZHkpL2kgKS50ZXN0KCBlbGVtZW50LnRhZ05hbWUgKSB8fCBlbGVtZW50ID09PSB0aGlzLmRvY3VtZW50WyAwIF07DQoJfSwNCg0KCV9nZXRQYXJlbnRPZmZzZXQ6IGZ1bmN0aW9uKCkgew0KDQoJCS8vR2V0IHRoZSBvZmZzZXRQYXJlbnQgYW5kIGNhY2hlIGl0cyBwb3NpdGlvbg0KCQl2YXIgcG8gPSB0aGlzLm9mZnNldFBhcmVudC5vZmZzZXQoKSwNCgkJCWRvY3VtZW50ID0gdGhpcy5kb2N1bWVudFsgMCBdOw0KDQoJCS8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgbmVlZCB0byBtb2RpZnkgYSBvZmZzZXQgY2FsY3VsYXRlZCBvbiBzdGFydCwgc2luY2UgdGhlDQoJCS8vIGZvbGxvd2luZyBoYXBwZW5lZDoNCgkJLy8gMS4gVGhlIHBvc2l0aW9uIG9mIHRoZSBoZWxwZXIgaXMgYWJzb2x1dGUsIHNvIGl0J3MgcG9zaXRpb24gaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUNCgkJLy8gbmV4dCBwb3NpdGlvbmVkIHBhcmVudA0KCQkvLyAyLiBUaGUgYWN0dWFsIG9mZnNldCBwYXJlbnQgaXMgYSBjaGlsZCBvZiB0aGUgc2Nyb2xsIHBhcmVudCwgYW5kIHRoZSBzY3JvbGwgcGFyZW50IGlzbid0DQoJCS8vIHRoZSBkb2N1bWVudCwgd2hpY2ggbWVhbnMgdGhhdCB0aGUgc2Nyb2xsIGlzIGluY2x1ZGVkIGluIHRoZSBpbml0aWFsIGNhbGN1bGF0aW9uIG9mIHRoZQ0KCQkvLyBvZmZzZXQgb2YgdGhlIHBhcmVudCwgYW5kIG5ldmVyIHJlY2FsY3VsYXRlZCB1cG9uIGRyYWcNCgkJaWYgKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiYWJzb2x1dGUiICYmIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0gIT09IGRvY3VtZW50ICYmDQoJCQkJJC5jb250YWlucyggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSwgdGhpcy5vZmZzZXRQYXJlbnRbIDAgXSApICkgew0KCQkJcG8ubGVmdCArPSB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk7DQoJCQlwby50b3AgKz0gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk7DQoJCX0NCg0KCQlpZiAoIHRoaXMuX2lzUm9vdE5vZGUoIHRoaXMub2Zmc2V0UGFyZW50WyAwIF0gKSApIHsNCgkJCXBvID0geyB0b3A6IDAsIGxlZnQ6IDAgfTsNCgkJfQ0KDQoJCXJldHVybiB7DQoJCQl0b3A6IHBvLnRvcCArICggcGFyc2VJbnQoIHRoaXMub2Zmc2V0UGFyZW50LmNzcyggImJvcmRlclRvcFdpZHRoIiApLCAxMCApIHx8IDAgKSwNCgkJCWxlZnQ6IHBvLmxlZnQgKyAoIHBhcnNlSW50KCB0aGlzLm9mZnNldFBhcmVudC5jc3MoICJib3JkZXJMZWZ0V2lkdGgiICksIDEwICkgfHwgMCApDQoJCX07DQoNCgl9LA0KDQoJX2dldFJlbGF0aXZlT2Zmc2V0OiBmdW5jdGlvbigpIHsNCgkJaWYgKCB0aGlzLmNzc1Bvc2l0aW9uICE9PSAicmVsYXRpdmUiICkgew0KCQkJcmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07DQoJCX0NCg0KCQl2YXIgcCA9IHRoaXMuZWxlbWVudC5wb3NpdGlvbigpLA0KCQkJc2Nyb2xsSXNSb290Tm9kZSA9IHRoaXMuX2lzUm9vdE5vZGUoIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0gKTsNCg0KCQlyZXR1cm4gew0KCQkJdG9wOiBwLnRvcCAtICggcGFyc2VJbnQoIHRoaXMuaGVscGVyLmNzcyggInRvcCIgKSwgMTAgKSB8fCAwICkgKw0KCQkJCSggIXNjcm9sbElzUm9vdE5vZGUgPyB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSA6IDAgKSwNCgkJCWxlZnQ6IHAubGVmdCAtICggcGFyc2VJbnQoIHRoaXMuaGVscGVyLmNzcyggImxlZnQiICksIDEwICkgfHwgMCApICsNCgkJCQkoICFzY3JvbGxJc1Jvb3ROb2RlID8gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpIDogMCApDQoJCX07DQoNCgl9LA0KDQoJX2NhY2hlTWFyZ2luczogZnVuY3Rpb24oKSB7DQoJCXRoaXMubWFyZ2lucyA9IHsNCgkJCWxlZnQ6ICggcGFyc2VJbnQoIHRoaXMuZWxlbWVudC5jc3MoICJtYXJnaW5MZWZ0IiApLCAxMCApIHx8IDAgKSwNCgkJCXRvcDogKCBwYXJzZUludCggdGhpcy5lbGVtZW50LmNzcyggIm1hcmdpblRvcCIgKSwgMTAgKSB8fCAwICksDQoJCQlyaWdodDogKCBwYXJzZUludCggdGhpcy5lbGVtZW50LmNzcyggIm1hcmdpblJpZ2h0IiApLCAxMCApIHx8IDAgKSwNCgkJCWJvdHRvbTogKCBwYXJzZUludCggdGhpcy5lbGVtZW50LmNzcyggIm1hcmdpbkJvdHRvbSIgKSwgMTAgKSB8fCAwICkNCgkJfTsNCgl9LA0KDQoJX2NhY2hlSGVscGVyUHJvcG9ydGlvbnM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmhlbHBlclByb3BvcnRpb25zID0gew0KCQkJd2lkdGg6IHRoaXMuaGVscGVyLm91dGVyV2lkdGgoKSwNCgkJCWhlaWdodDogdGhpcy5oZWxwZXIub3V0ZXJIZWlnaHQoKQ0KCQl9Ow0KCX0sDQoNCglfc2V0Q29udGFpbm1lbnQ6IGZ1bmN0aW9uKCkgew0KDQoJCXZhciBpc1VzZXJTY3JvbGxhYmxlLCBjLCBjZSwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlkb2N1bWVudCA9IHRoaXMuZG9jdW1lbnRbIDAgXTsNCg0KCQl0aGlzLnJlbGF0aXZlQ29udGFpbmVyID0gbnVsbDsNCg0KCQlpZiAoICFvLmNvbnRhaW5tZW50ICkgew0KCQkJdGhpcy5jb250YWlubWVudCA9IG51bGw7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIG8uY29udGFpbm1lbnQgPT09ICJ3aW5kb3ciICkgew0KCQkJdGhpcy5jb250YWlubWVudCA9IFsNCgkJCQkkKCB3aW5kb3cgKS5zY3JvbGxMZWZ0KCkgLSB0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0IC0gdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsDQoJCQkJJCggd2luZG93ICkuc2Nyb2xsVG9wKCkgLSB0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AgLSB0aGlzLm9mZnNldC5wYXJlbnQudG9wLA0KCQkJCSQoIHdpbmRvdyApLnNjcm9sbExlZnQoKSArICQoIHdpbmRvdyApLndpZHRoKCkgLQ0KCQkJCQl0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0gdGhpcy5tYXJnaW5zLmxlZnQsDQoJCQkJJCggd2luZG93ICkuc2Nyb2xsVG9wKCkgKw0KCQkJCQkoICQoIHdpbmRvdyApLmhlaWdodCgpIHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQgKSAtDQoJCQkJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0gdGhpcy5tYXJnaW5zLnRvcA0KCQkJXTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggby5jb250YWlubWVudCA9PT0gImRvY3VtZW50IiApIHsNCgkJCXRoaXMuY29udGFpbm1lbnQgPSBbDQoJCQkJMCwNCgkJCQkwLA0KCQkJCSQoIGRvY3VtZW50ICkud2lkdGgoKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQkoICQoIGRvY3VtZW50ICkuaGVpZ2h0KCkgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCApIC0NCgkJCQkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLSB0aGlzLm1hcmdpbnMudG9wDQoJCQldOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCBvLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yID09PSBBcnJheSApIHsNCgkJCXRoaXMuY29udGFpbm1lbnQgPSBvLmNvbnRhaW5tZW50Ow0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCBvLmNvbnRhaW5tZW50ID09PSAicGFyZW50IiApIHsNCgkJCW8uY29udGFpbm1lbnQgPSB0aGlzLmhlbHBlclsgMCBdLnBhcmVudE5vZGU7DQoJCX0NCg0KCQljID0gJCggby5jb250YWlubWVudCApOw0KCQljZSA9IGNbIDAgXTsNCg0KCQlpZiAoICFjZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlzVXNlclNjcm9sbGFibGUgPSAvKHNjcm9sbHxhdXRvKS8udGVzdCggYy5jc3MoICJvdmVyZmxvdyIgKSApOw0KDQoJCXRoaXMuY29udGFpbm1lbnQgPSBbDQoJCQkoIHBhcnNlSW50KCBjLmNzcyggImJvcmRlckxlZnRXaWR0aCIgKSwgMTAgKSB8fCAwICkgKw0KCQkJCSggcGFyc2VJbnQoIGMuY3NzKCAicGFkZGluZ0xlZnQiICksIDEwICkgfHwgMCApLA0KCQkJKCBwYXJzZUludCggYy5jc3MoICJib3JkZXJUb3BXaWR0aCIgKSwgMTAgKSB8fCAwICkgKw0KCQkJCSggcGFyc2VJbnQoIGMuY3NzKCAicGFkZGluZ1RvcCIgKSwgMTAgKSB8fCAwICksDQoJCQkoIGlzVXNlclNjcm9sbGFibGUgPyBNYXRoLm1heCggY2Uuc2Nyb2xsV2lkdGgsIGNlLm9mZnNldFdpZHRoICkgOiBjZS5vZmZzZXRXaWR0aCApIC0NCgkJCQkoIHBhcnNlSW50KCBjLmNzcyggImJvcmRlclJpZ2h0V2lkdGgiICksIDEwICkgfHwgMCApIC0NCgkJCQkoIHBhcnNlSW50KCBjLmNzcyggInBhZGRpbmdSaWdodCIgKSwgMTAgKSB8fCAwICkgLQ0KCQkJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLQ0KCQkJCXRoaXMubWFyZ2lucy5sZWZ0IC0NCgkJCQl0aGlzLm1hcmdpbnMucmlnaHQsDQoJCQkoIGlzVXNlclNjcm9sbGFibGUgPyBNYXRoLm1heCggY2Uuc2Nyb2xsSGVpZ2h0LCBjZS5vZmZzZXRIZWlnaHQgKSA6IGNlLm9mZnNldEhlaWdodCApIC0NCgkJCQkoIHBhcnNlSW50KCBjLmNzcyggImJvcmRlckJvdHRvbVdpZHRoIiApLCAxMCApIHx8IDAgKSAtDQoJCQkJKCBwYXJzZUludCggYy5jc3MoICJwYWRkaW5nQm90dG9tIiApLCAxMCApIHx8IDAgKSAtDQoJCQkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLQ0KCQkJCXRoaXMubWFyZ2lucy50b3AgLQ0KCQkJCXRoaXMubWFyZ2lucy5ib3R0b20NCgkJXTsNCgkJdGhpcy5yZWxhdGl2ZUNvbnRhaW5lciA9IGM7DQoJfSwNCg0KCV9jb252ZXJ0UG9zaXRpb25UbzogZnVuY3Rpb24oIGQsIHBvcyApIHsNCg0KCQlpZiAoICFwb3MgKSB7DQoJCQlwb3MgPSB0aGlzLnBvc2l0aW9uOw0KCQl9DQoNCgkJdmFyIG1vZCA9IGQgPT09ICJhYnNvbHV0ZSIgPyAxIDogLTEsDQoJCQlzY3JvbGxJc1Jvb3ROb2RlID0gdGhpcy5faXNSb290Tm9kZSggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSApOw0KDQoJCXJldHVybiB7DQoJCQl0b3A6ICgNCg0KCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXBvcy50b3AJKw0KDQoJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wICogbW9kICsNCg0KCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LnRvcCAqIG1vZCAtDQoJCQkJKCAoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPw0KCQkJCQktdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCA6DQoJCQkJCSggc2Nyb2xsSXNSb290Tm9kZSA/IDAgOiB0aGlzLm9mZnNldC5zY3JvbGwudG9wICkgKSAqIG1vZCApDQoJCQkpLA0KCQkJbGVmdDogKA0KDQoJCQkJLy8gVGhlIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uDQoJCQkJcG9zLmxlZnQgKw0KDQoJCQkJLy8gT25seSBmb3IgcmVsYXRpdmUgcG9zaXRpb25lZCBub2RlczogUmVsYXRpdmUgb2Zmc2V0IGZyb20gZWxlbWVudCB0byBvZmZzZXQgcGFyZW50DQoJCQkJdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCAqIG1vZCArDQoNCgkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0ICogbW9kCS0NCgkJCQkoICggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/DQoJCQkJCS10aGlzLm9mZnNldC5zY3JvbGwubGVmdCA6DQoJCQkJCSggc2Nyb2xsSXNSb290Tm9kZSA/IDAgOiB0aGlzLm9mZnNldC5zY3JvbGwubGVmdCApICkgKiBtb2QgKQ0KCQkJKQ0KCQl9Ow0KDQoJfSwNCg0KCV9nZW5lcmF0ZVBvc2l0aW9uOiBmdW5jdGlvbiggZXZlbnQsIGNvbnN0cmFpblBvc2l0aW9uICkgew0KDQoJCXZhciBjb250YWlubWVudCwgY28sIHRvcCwgbGVmdCwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlzY3JvbGxJc1Jvb3ROb2RlID0gdGhpcy5faXNSb290Tm9kZSggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSApLA0KCQkJcGFnZVggPSBldmVudC5wYWdlWCwNCgkJCXBhZ2VZID0gZXZlbnQucGFnZVk7DQoNCgkJLy8gQ2FjaGUgdGhlIHNjcm9sbA0KCQlpZiAoICFzY3JvbGxJc1Jvb3ROb2RlIHx8ICF0aGlzLm9mZnNldC5zY3JvbGwgKSB7DQoJCQl0aGlzLm9mZnNldC5zY3JvbGwgPSB7DQoJCQkJdG9wOiB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSwNCgkJCQlsZWZ0OiB0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkNCgkJCX07DQoJCX0NCg0KCQkvKg0KCQkgKiAtIFBvc2l0aW9uIGNvbnN0cmFpbmluZyAtDQoJCSAqIENvbnN0cmFpbiB0aGUgcG9zaXRpb24gdG8gYSBtaXggb2YgZ3JpZCwgY29udGFpbm1lbnQuDQoJCSAqLw0KDQoJCS8vIElmIHdlIGFyZSBub3QgZHJhZ2dpbmcgeWV0LCB3ZSB3b24ndCBjaGVjayBmb3Igb3B0aW9ucw0KCQlpZiAoIGNvbnN0cmFpblBvc2l0aW9uICkgew0KCQkJaWYgKCB0aGlzLmNvbnRhaW5tZW50ICkgew0KCQkJCWlmICggdGhpcy5yZWxhdGl2ZUNvbnRhaW5lciApIHsNCgkJCQkJY28gPSB0aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpOw0KCQkJCQljb250YWlubWVudCA9IFsNCgkJCQkJCXRoaXMuY29udGFpbm1lbnRbIDAgXSArIGNvLmxlZnQsDQoJCQkJCQl0aGlzLmNvbnRhaW5tZW50WyAxIF0gKyBjby50b3AsDQoJCQkJCQl0aGlzLmNvbnRhaW5tZW50WyAyIF0gKyBjby5sZWZ0LA0KCQkJCQkJdGhpcy5jb250YWlubWVudFsgMyBdICsgY28udG9wDQoJCQkJCV07DQoJCQkJfSBlbHNlIHsNCgkJCQkJY29udGFpbm1lbnQgPSB0aGlzLmNvbnRhaW5tZW50Ow0KCQkJCX0NCg0KCQkJCWlmICggZXZlbnQucGFnZVggLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0IDwgY29udGFpbm1lbnRbIDAgXSApIHsNCgkJCQkJcGFnZVggPSBjb250YWlubWVudFsgMCBdICsgdGhpcy5vZmZzZXQuY2xpY2subGVmdDsNCgkJCQl9DQoJCQkJaWYgKCBldmVudC5wYWdlWSAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA8IGNvbnRhaW5tZW50WyAxIF0gKSB7DQoJCQkJCXBhZ2VZID0gY29udGFpbm1lbnRbIDEgXSArIHRoaXMub2Zmc2V0LmNsaWNrLnRvcDsNCgkJCQl9DQoJCQkJaWYgKCBldmVudC5wYWdlWCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPiBjb250YWlubWVudFsgMiBdICkgew0KCQkJCQlwYWdlWCA9IGNvbnRhaW5tZW50WyAyIF0gKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0Ow0KCQkJCX0NCgkJCQlpZiAoIGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID4gY29udGFpbm1lbnRbIDMgXSApIHsNCgkJCQkJcGFnZVkgPSBjb250YWlubWVudFsgMyBdICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCBvLmdyaWQgKSB7DQoNCgkJCQkvL0NoZWNrIGZvciBncmlkIGVsZW1lbnRzIHNldCB0byAwIHRvIHByZXZlbnQgZGl2aWRlIGJ5IDAgZXJyb3IgY2F1c2luZyBpbnZhbGlkDQoJCQkJLy8gYXJndW1lbnQgZXJyb3JzIGluIElFIChzZWUgdGlja2V0ICM2OTUwKQ0KCQkJCXRvcCA9IG8uZ3JpZFsgMSBdID8gdGhpcy5vcmlnaW5hbFBhZ2VZICsgTWF0aC5yb3VuZCggKCBwYWdlWSAtDQoJCQkJCXRoaXMub3JpZ2luYWxQYWdlWSApIC8gby5ncmlkWyAxIF0gKSAqIG8uZ3JpZFsgMSBdIDogdGhpcy5vcmlnaW5hbFBhZ2VZOw0KCQkJCXBhZ2VZID0gY29udGFpbm1lbnQgPyAoICggdG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID49IGNvbnRhaW5tZW50WyAxIF0gfHwNCgkJCQkJdG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID4gY29udGFpbm1lbnRbIDMgXSApID8NCgkJCQkJCXRvcCA6DQoJCQkJCQkoICggdG9wIC0gdGhpcy5vZmZzZXQuY2xpY2sudG9wID49IGNvbnRhaW5tZW50WyAxIF0gKSA/DQoJCQkJCQkJdG9wIC0gby5ncmlkWyAxIF0gOiB0b3AgKyBvLmdyaWRbIDEgXSApICkgOiB0b3A7DQoNCgkJCQlsZWZ0ID0gby5ncmlkWyAwIF0gPyB0aGlzLm9yaWdpbmFsUGFnZVggKw0KCQkJCQlNYXRoLnJvdW5kKCAoIHBhZ2VYIC0gdGhpcy5vcmlnaW5hbFBhZ2VYICkgLyBvLmdyaWRbIDAgXSApICogby5ncmlkWyAwIF0gOg0KCQkJCQl0aGlzLm9yaWdpbmFsUGFnZVg7DQoJCQkJcGFnZVggPSBjb250YWlubWVudCA/ICggKCBsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA+PSBjb250YWlubWVudFsgMCBdIHx8DQoJCQkJCWxlZnQgLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID4gY29udGFpbm1lbnRbIDIgXSApID8NCgkJCQkJCWxlZnQgOg0KCQkJCQkJKCAoIGxlZnQgLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID49IGNvbnRhaW5tZW50WyAwIF0gKSA/DQoJCQkJCQkJbGVmdCAtIG8uZ3JpZFsgMCBdIDogbGVmdCArIG8uZ3JpZFsgMCBdICkgKSA6IGxlZnQ7DQoJCQl9DQoNCgkJCWlmICggby5heGlzID09PSAieSIgKSB7DQoJCQkJcGFnZVggPSB0aGlzLm9yaWdpbmFsUGFnZVg7DQoJCQl9DQoNCgkJCWlmICggby5heGlzID09PSAieCIgKSB7DQoJCQkJcGFnZVkgPSB0aGlzLm9yaWdpbmFsUGFnZVk7DQoJCQl9DQoJCX0NCg0KCQlyZXR1cm4gew0KCQkJdG9wOiAoDQoNCgkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQlwYWdlWSAtDQoNCgkJCQkvLyBDbGljayBvZmZzZXQgKHJlbGF0aXZlIHRvIHRoZSBlbGVtZW50KQ0KCQkJCXRoaXMub2Zmc2V0LmNsaWNrLnRvcCAtDQoNCgkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AgLQ0KDQoJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQudG9wICsNCgkJCQkoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPw0KCQkJCQktdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCA6DQoJCQkJCSggc2Nyb2xsSXNSb290Tm9kZSA/IDAgOiB0aGlzLm9mZnNldC5zY3JvbGwudG9wICkgKQ0KCQkJKSwNCgkJCWxlZnQ6ICgNCg0KCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXBhZ2VYIC0NCg0KCQkJCS8vIENsaWNrIG9mZnNldCAocmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQpDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCAtDQoNCgkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0IC0NCg0KCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LmxlZnQgKw0KCQkJCSggdGhpcy5jc3NQb3NpdGlvbiA9PT0gImZpeGVkIiA/DQoJCQkJCS10aGlzLm9mZnNldC5zY3JvbGwubGVmdCA6DQoJCQkJCSggc2Nyb2xsSXNSb290Tm9kZSA/IDAgOiB0aGlzLm9mZnNldC5zY3JvbGwubGVmdCApICkNCgkJCSkNCgkJfTsNCg0KCX0sDQoNCglfY2xlYXI6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5oZWxwZXIsICJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciICk7DQoJCWlmICggdGhpcy5oZWxwZXJbIDAgXSAhPT0gdGhpcy5lbGVtZW50WyAwIF0gJiYgIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbCApIHsNCgkJCXRoaXMuaGVscGVyLnJlbW92ZSgpOw0KCQl9DQoJCXRoaXMuaGVscGVyID0gbnVsbDsNCgkJdGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsID0gZmFsc2U7DQoJCWlmICggdGhpcy5kZXN0cm95T25DbGVhciApIHsNCgkJCXRoaXMuZGVzdHJveSgpOw0KCQl9DQoJfSwNCg0KCS8vIEZyb20gbm93IG9uIGJ1bGsgc3R1ZmYgLSBtYWlubHkgaGVscGVycw0KDQoJX3RyaWdnZXI6IGZ1bmN0aW9uKCB0eXBlLCBldmVudCwgdWkgKSB7DQoJCXVpID0gdWkgfHwgdGhpcy5fdWlIYXNoKCk7DQoJCSQudWkucGx1Z2luLmNhbGwoIHRoaXMsIHR5cGUsIFsgZXZlbnQsIHVpLCB0aGlzIF0sIHRydWUgKTsNCg0KCQkvLyBBYnNvbHV0ZSBwb3NpdGlvbiBhbmQgb2Zmc2V0IChzZWUgIzY4ODQgKSBoYXZlIHRvIGJlIHJlY2FsY3VsYXRlZCBhZnRlciBwbHVnaW5zDQoJCWlmICggL14oZHJhZ3xzdGFydHxzdG9wKS8udGVzdCggdHlwZSApICkgew0KCQkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCAiYWJzb2x1dGUiICk7DQoJCQl1aS5vZmZzZXQgPSB0aGlzLnBvc2l0aW9uQWJzOw0KCQl9DQoJCXJldHVybiAkLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCggdGhpcywgdHlwZSwgZXZlbnQsIHVpICk7DQoJfSwNCg0KCXBsdWdpbnM6IHt9LA0KDQoJX3VpSGFzaDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB7DQoJCQloZWxwZXI6IHRoaXMuaGVscGVyLA0KCQkJcG9zaXRpb246IHRoaXMucG9zaXRpb24sDQoJCQlvcmlnaW5hbFBvc2l0aW9uOiB0aGlzLm9yaWdpbmFsUG9zaXRpb24sDQoJCQlvZmZzZXQ6IHRoaXMucG9zaXRpb25BYnMNCgkJfTsNCgl9DQoNCn0gKTsNCg0KJC51aS5wbHVnaW4uYWRkKCAiZHJhZ2dhYmxlIiwgImNvbm5lY3RUb1NvcnRhYmxlIiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBkcmFnZ2FibGUgKSB7DQoJCXZhciB1aVNvcnRhYmxlID0gJC5leHRlbmQoIHt9LCB1aSwgew0KCQkJaXRlbTogZHJhZ2dhYmxlLmVsZW1lbnQNCgkJfSApOw0KDQoJCWRyYWdnYWJsZS5zb3J0YWJsZXMgPSBbXTsNCgkJJCggZHJhZ2dhYmxlLm9wdGlvbnMuY29ubmVjdFRvU29ydGFibGUgKS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCXZhciBzb3J0YWJsZSA9ICQoIHRoaXMgKS5zb3J0YWJsZSggImluc3RhbmNlIiApOw0KDQoJCQlpZiAoIHNvcnRhYmxlICYmICFzb3J0YWJsZS5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJCWRyYWdnYWJsZS5zb3J0YWJsZXMucHVzaCggc29ydGFibGUgKTsNCg0KCQkJCS8vIFJlZnJlc2hQb3NpdGlvbnMgaXMgY2FsbGVkIGF0IGRyYWcgc3RhcnQgdG8gcmVmcmVzaCB0aGUgY29udGFpbmVyQ2FjaGUNCgkJCQkvLyB3aGljaCBpcyB1c2VkIGluIGRyYWcuIFRoaXMgZW5zdXJlcyBpdCdzIGluaXRpYWxpemVkIGFuZCBzeW5jaHJvbml6ZWQNCgkJCQkvLyB3aXRoIGFueSBjaGFuZ2VzIHRoYXQgbWlnaHQgaGF2ZSBoYXBwZW5lZCBvbiB0aGUgcGFnZSBzaW5jZSBpbml0aWFsaXphdGlvbi4NCgkJCQlzb3J0YWJsZS5yZWZyZXNoUG9zaXRpb25zKCk7DQoJCQkJc29ydGFibGUuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIGV2ZW50LCB1aVNvcnRhYmxlICk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KCXN0b3A6IGZ1bmN0aW9uKCBldmVudCwgdWksIGRyYWdnYWJsZSApIHsNCgkJdmFyIHVpU29ydGFibGUgPSAkLmV4dGVuZCgge30sIHVpLCB7DQoJCQlpdGVtOiBkcmFnZ2FibGUuZWxlbWVudA0KCQl9ICk7DQoNCgkJZHJhZ2dhYmxlLmNhbmNlbEhlbHBlclJlbW92YWwgPSBmYWxzZTsNCg0KCQkkLmVhY2goIGRyYWdnYWJsZS5zb3J0YWJsZXMsIGZ1bmN0aW9uKCkgew0KCQkJdmFyIHNvcnRhYmxlID0gdGhpczsNCg0KCQkJaWYgKCBzb3J0YWJsZS5pc092ZXIgKSB7DQoJCQkJc29ydGFibGUuaXNPdmVyID0gMDsNCg0KCQkJCS8vIEFsbG93IHRoaXMgc29ydGFibGUgdG8gaGFuZGxlIHJlbW92aW5nIHRoZSBoZWxwZXINCgkJCQlkcmFnZ2FibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IHRydWU7DQoJCQkJc29ydGFibGUuY2FuY2VsSGVscGVyUmVtb3ZhbCA9IGZhbHNlOw0KDQoJCQkJLy8gVXNlIF9zdG9yZWRDU1MgVG8gcmVzdG9yZSBwcm9wZXJ0aWVzIGluIHRoZSBzb3J0YWJsZSwNCgkJCQkvLyBhcyB0aGlzIGFsc28gaGFuZGxlcyByZXZlcnQgKCM5Njc1KSBzaW5jZSB0aGUgZHJhZ2dhYmxlDQoJCQkJLy8gbWF5IGhhdmUgbW9kaWZpZWQgdGhlbSBpbiB1bmV4cGVjdGVkIHdheXMgKCM4ODA5KQ0KCQkJCXNvcnRhYmxlLl9zdG9yZWRDU1MgPSB7DQoJCQkJCXBvc2l0aW9uOiBzb3J0YWJsZS5wbGFjZWhvbGRlci5jc3MoICJwb3NpdGlvbiIgKSwNCgkJCQkJdG9wOiBzb3J0YWJsZS5wbGFjZWhvbGRlci5jc3MoICJ0b3AiICksDQoJCQkJCWxlZnQ6IHNvcnRhYmxlLnBsYWNlaG9sZGVyLmNzcyggImxlZnQiICkNCgkJCQl9Ow0KDQoJCQkJc29ydGFibGUuX21vdXNlU3RvcCggZXZlbnQgKTsNCg0KCQkJCS8vIE9uY2UgZHJhZyBoYXMgZW5kZWQsIHRoZSBzb3J0YWJsZSBzaG91bGQgcmV0dXJuIHRvIHVzaW5nDQoJCQkJLy8gaXRzIG9yaWdpbmFsIGhlbHBlciwgbm90IHRoZSBzaGFyZWQgaGVscGVyIGZyb20gZHJhZ2dhYmxlDQoJCQkJc29ydGFibGUub3B0aW9ucy5oZWxwZXIgPSBzb3J0YWJsZS5vcHRpb25zLl9oZWxwZXI7DQoJCQl9IGVsc2Ugew0KDQoJCQkJLy8gUHJldmVudCB0aGlzIFNvcnRhYmxlIGZyb20gcmVtb3ZpbmcgdGhlIGhlbHBlci4NCgkJCQkvLyBIb3dldmVyLCBkb24ndCBzZXQgdGhlIGRyYWdnYWJsZSB0byByZW1vdmUgdGhlIGhlbHBlcg0KCQkJCS8vIGVpdGhlciBhcyBhbm90aGVyIGNvbm5lY3RlZCBTb3J0YWJsZSBtYXkgeWV0IGhhbmRsZSB0aGUgcmVtb3ZhbC4NCgkJCQlzb3J0YWJsZS5jYW5jZWxIZWxwZXJSZW1vdmFsID0gdHJ1ZTsNCg0KCQkJCXNvcnRhYmxlLl90cmlnZ2VyKCAiZGVhY3RpdmF0ZSIsIGV2ZW50LCB1aVNvcnRhYmxlICk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KCWRyYWc6IGZ1bmN0aW9uKCBldmVudCwgdWksIGRyYWdnYWJsZSApIHsNCgkJJC5lYWNoKCBkcmFnZ2FibGUuc29ydGFibGVzLCBmdW5jdGlvbigpIHsNCgkJCXZhciBpbm5lcm1vc3RJbnRlcnNlY3RpbmcgPSBmYWxzZSwNCgkJCQlzb3J0YWJsZSA9IHRoaXM7DQoNCgkJCS8vIENvcHkgb3ZlciB2YXJpYWJsZXMgdGhhdCBzb3J0YWJsZSdzIF9pbnRlcnNlY3RzV2l0aCB1c2VzDQoJCQlzb3J0YWJsZS5wb3NpdGlvbkFicyA9IGRyYWdnYWJsZS5wb3NpdGlvbkFiczsNCgkJCXNvcnRhYmxlLmhlbHBlclByb3BvcnRpb25zID0gZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zOw0KCQkJc29ydGFibGUub2Zmc2V0LmNsaWNrID0gZHJhZ2dhYmxlLm9mZnNldC5jbGljazsNCg0KCQkJaWYgKCBzb3J0YWJsZS5faW50ZXJzZWN0c1dpdGgoIHNvcnRhYmxlLmNvbnRhaW5lckNhY2hlICkgKSB7DQoJCQkJaW5uZXJtb3N0SW50ZXJzZWN0aW5nID0gdHJ1ZTsNCg0KCQkJCSQuZWFjaCggZHJhZ2dhYmxlLnNvcnRhYmxlcywgZnVuY3Rpb24oKSB7DQoNCgkJCQkJLy8gQ29weSBvdmVyIHZhcmlhYmxlcyB0aGF0IHNvcnRhYmxlJ3MgX2ludGVyc2VjdHNXaXRoIHVzZXMNCgkJCQkJdGhpcy5wb3NpdGlvbkFicyA9IGRyYWdnYWJsZS5wb3NpdGlvbkFiczsNCgkJCQkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucyA9IGRyYWdnYWJsZS5oZWxwZXJQcm9wb3J0aW9uczsNCgkJCQkJdGhpcy5vZmZzZXQuY2xpY2sgPSBkcmFnZ2FibGUub2Zmc2V0LmNsaWNrOw0KDQoJCQkJCWlmICggdGhpcyAhPT0gc29ydGFibGUgJiYNCgkJCQkJCQl0aGlzLl9pbnRlcnNlY3RzV2l0aCggdGhpcy5jb250YWluZXJDYWNoZSApICYmDQoJCQkJCQkJJC5jb250YWlucyggc29ydGFibGUuZWxlbWVudFsgMCBdLCB0aGlzLmVsZW1lbnRbIDAgXSApICkgew0KCQkJCQkJaW5uZXJtb3N0SW50ZXJzZWN0aW5nID0gZmFsc2U7DQoJCQkJCX0NCg0KCQkJCQlyZXR1cm4gaW5uZXJtb3N0SW50ZXJzZWN0aW5nOw0KCQkJCX0gKTsNCgkJCX0NCg0KCQkJaWYgKCBpbm5lcm1vc3RJbnRlcnNlY3RpbmcgKSB7DQoNCgkJCQkvLyBJZiBpdCBpbnRlcnNlY3RzLCB3ZSB1c2UgYSBsaXR0bGUgaXNPdmVyIHZhcmlhYmxlIGFuZCBzZXQgaXQgb25jZSwNCgkJCQkvLyBzbyB0aGF0IHRoZSBtb3ZlLWluIHN0dWZmIGdldHMgZmlyZWQgb25seSBvbmNlLg0KCQkJCWlmICggIXNvcnRhYmxlLmlzT3ZlciApIHsNCgkJCQkJc29ydGFibGUuaXNPdmVyID0gMTsNCg0KCQkJCQkvLyBTdG9yZSBkcmFnZ2FibGUncyBwYXJlbnQgaW4gY2FzZSB3ZSBuZWVkIHRvIHJlYXBwZW5kIHRvIGl0IGxhdGVyLg0KCQkJCQlkcmFnZ2FibGUuX3BhcmVudCA9IHVpLmhlbHBlci5wYXJlbnQoKTsNCg0KCQkJCQlzb3J0YWJsZS5jdXJyZW50SXRlbSA9IHVpLmhlbHBlcg0KCQkJCQkJLmFwcGVuZFRvKCBzb3J0YWJsZS5lbGVtZW50ICkNCgkJCQkJCS5kYXRhKCAidWktc29ydGFibGUtaXRlbSIsIHRydWUgKTsNCg0KCQkJCQkvLyBTdG9yZSBoZWxwZXIgb3B0aW9uIHRvIGxhdGVyIHJlc3RvcmUgaXQNCgkJCQkJc29ydGFibGUub3B0aW9ucy5faGVscGVyID0gc29ydGFibGUub3B0aW9ucy5oZWxwZXI7DQoNCgkJCQkJc29ydGFibGUub3B0aW9ucy5oZWxwZXIgPSBmdW5jdGlvbigpIHsNCgkJCQkJCXJldHVybiB1aS5oZWxwZXJbIDAgXTsNCgkJCQkJfTsNCg0KCQkJCQkvLyBGaXJlIHRoZSBzdGFydCBldmVudHMgb2YgdGhlIHNvcnRhYmxlIHdpdGggb3VyIHBhc3NlZCBicm93c2VyIGV2ZW50LA0KCQkJCQkvLyBhbmQgb3VyIG93biBoZWxwZXIgKHNvIGl0IGRvZXNuJ3QgY3JlYXRlIGEgbmV3IG9uZSkNCgkJCQkJZXZlbnQudGFyZ2V0ID0gc29ydGFibGUuY3VycmVudEl0ZW1bIDAgXTsNCgkJCQkJc29ydGFibGUuX21vdXNlQ2FwdHVyZSggZXZlbnQsIHRydWUgKTsNCgkJCQkJc29ydGFibGUuX21vdXNlU3RhcnQoIGV2ZW50LCB0cnVlLCB0cnVlICk7DQoNCgkJCQkJLy8gQmVjYXVzZSB0aGUgYnJvd3NlciBldmVudCBpcyB3YXkgb2ZmIHRoZSBuZXcgYXBwZW5kZWQgcG9ydGxldCwNCgkJCQkJLy8gbW9kaWZ5IG5lY2Vzc2FyeSB2YXJpYWJsZXMgdG8gcmVmbGVjdCB0aGUgY2hhbmdlcw0KCQkJCQlzb3J0YWJsZS5vZmZzZXQuY2xpY2sudG9wID0gZHJhZ2dhYmxlLm9mZnNldC5jbGljay50b3A7DQoJCQkJCXNvcnRhYmxlLm9mZnNldC5jbGljay5sZWZ0ID0gZHJhZ2dhYmxlLm9mZnNldC5jbGljay5sZWZ0Ow0KCQkJCQlzb3J0YWJsZS5vZmZzZXQucGFyZW50LmxlZnQgLT0gZHJhZ2dhYmxlLm9mZnNldC5wYXJlbnQubGVmdCAtDQoJCQkJCQlzb3J0YWJsZS5vZmZzZXQucGFyZW50LmxlZnQ7DQoJCQkJCXNvcnRhYmxlLm9mZnNldC5wYXJlbnQudG9wIC09IGRyYWdnYWJsZS5vZmZzZXQucGFyZW50LnRvcCAtDQoJCQkJCQlzb3J0YWJsZS5vZmZzZXQucGFyZW50LnRvcDsNCg0KCQkJCQlkcmFnZ2FibGUuX3RyaWdnZXIoICJ0b1NvcnRhYmxlIiwgZXZlbnQgKTsNCg0KCQkJCQkvLyBJbmZvcm0gZHJhZ2dhYmxlIHRoYXQgdGhlIGhlbHBlciBpcyBpbiBhIHZhbGlkIGRyb3Agem9uZSwNCgkJCQkJLy8gdXNlZCBzb2xlbHkgaW4gdGhlIHJldmVydCBvcHRpb24gdG8gaGFuZGxlICJ2YWxpZC9pbnZhbGlkIi4NCgkJCQkJZHJhZ2dhYmxlLmRyb3BwZWQgPSBzb3J0YWJsZS5lbGVtZW50Ow0KDQoJCQkJCS8vIE5lZWQgdG8gcmVmcmVzaFBvc2l0aW9ucyBvZiBhbGwgc29ydGFibGVzIGluIHRoZSBjYXNlIHRoYXQNCgkJCQkJLy8gYWRkaW5nIHRvIG9uZSBzb3J0YWJsZSBjaGFuZ2VzIHRoZSBsb2NhdGlvbiBvZiB0aGUgb3RoZXIgc29ydGFibGVzICgjOTY3NSkNCgkJCQkJJC5lYWNoKCBkcmFnZ2FibGUuc29ydGFibGVzLCBmdW5jdGlvbigpIHsNCgkJCQkJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KCQkJCQl9ICk7DQoNCgkJCQkJLy8gSGFjayBzbyByZWNlaXZlL3VwZGF0ZSBjYWxsYmFja3Mgd29yayAobW9zdGx5KQ0KCQkJCQlkcmFnZ2FibGUuY3VycmVudEl0ZW0gPSBkcmFnZ2FibGUuZWxlbWVudDsNCgkJCQkJc29ydGFibGUuZnJvbU91dHNpZGUgPSBkcmFnZ2FibGU7DQoJCQkJfQ0KDQoJCQkJaWYgKCBzb3J0YWJsZS5jdXJyZW50SXRlbSApIHsNCgkJCQkJc29ydGFibGUuX21vdXNlRHJhZyggZXZlbnQgKTsNCg0KCQkJCQkvLyBDb3B5IHRoZSBzb3J0YWJsZSdzIHBvc2l0aW9uIGJlY2F1c2UgdGhlIGRyYWdnYWJsZSdzIGNhbiBwb3RlbnRpYWxseSByZWZsZWN0DQoJCQkJCS8vIGEgcmVsYXRpdmUgcG9zaXRpb24sIHdoaWxlIHNvcnRhYmxlIGlzIGFsd2F5cyBhYnNvbHV0ZSwgd2hpY2ggdGhlIGRyYWdnZWQNCgkJCQkJLy8gZWxlbWVudCBoYXMgbm93IGJlY29tZS4gKCM4ODA5KQ0KCQkJCQl1aS5wb3NpdGlvbiA9IHNvcnRhYmxlLnBvc2l0aW9uOw0KCQkJCX0NCgkJCX0gZWxzZSB7DQoNCgkJCQkvLyBJZiBpdCBkb2Vzbid0IGludGVyc2VjdCB3aXRoIHRoZSBzb3J0YWJsZSwgYW5kIGl0IGludGVyc2VjdGVkIGJlZm9yZSwNCgkJCQkvLyB3ZSBmYWtlIHRoZSBkcmFnIHN0b3Agb2YgdGhlIHNvcnRhYmxlLCBidXQgbWFrZSBzdXJlIGl0IGRvZXNuJ3QgcmVtb3ZlDQoJCQkJLy8gdGhlIGhlbHBlciBieSB1c2luZyBjYW5jZWxIZWxwZXJSZW1vdmFsLg0KCQkJCWlmICggc29ydGFibGUuaXNPdmVyICkgew0KDQoJCQkJCXNvcnRhYmxlLmlzT3ZlciA9IDA7DQoJCQkJCXNvcnRhYmxlLmNhbmNlbEhlbHBlclJlbW92YWwgPSB0cnVlOw0KDQoJCQkJCS8vIENhbGxpbmcgc29ydGFibGUncyBtb3VzZVN0b3Agd291bGQgdHJpZ2dlciBhIHJldmVydCwNCgkJCQkJLy8gc28gcmV2ZXJ0IG11c3QgYmUgdGVtcG9yYXJpbHkgZmFsc2UgdW50aWwgYWZ0ZXIgbW91c2VTdG9wIGlzIGNhbGxlZC4NCgkJCQkJc29ydGFibGUub3B0aW9ucy5fcmV2ZXJ0ID0gc29ydGFibGUub3B0aW9ucy5yZXZlcnQ7DQoJCQkJCXNvcnRhYmxlLm9wdGlvbnMucmV2ZXJ0ID0gZmFsc2U7DQoNCgkJCQkJc29ydGFibGUuX3RyaWdnZXIoICJvdXQiLCBldmVudCwgc29ydGFibGUuX3VpSGFzaCggc29ydGFibGUgKSApOw0KCQkJCQlzb3J0YWJsZS5fbW91c2VTdG9wKCBldmVudCwgdHJ1ZSApOw0KDQoJCQkJCS8vIFJlc3RvcmUgc29ydGFibGUgYmVoYXZpb3JzIHRoYXQgd2VyZSBtb2RmaWVkDQoJCQkJCS8vIHdoZW4gdGhlIGRyYWdnYWJsZSBlbnRlcmVkIHRoZSBzb3J0YWJsZSBhcmVhICgjOTQ4MSkNCgkJCQkJc29ydGFibGUub3B0aW9ucy5yZXZlcnQgPSBzb3J0YWJsZS5vcHRpb25zLl9yZXZlcnQ7DQoJCQkJCXNvcnRhYmxlLm9wdGlvbnMuaGVscGVyID0gc29ydGFibGUub3B0aW9ucy5faGVscGVyOw0KDQoJCQkJCWlmICggc29ydGFibGUucGxhY2Vob2xkZXIgKSB7DQoJCQkJCQlzb3J0YWJsZS5wbGFjZWhvbGRlci5yZW1vdmUoKTsNCgkJCQkJfQ0KDQoJCQkJCS8vIFJlc3RvcmUgYW5kIHJlY2FsY3VsYXRlIHRoZSBkcmFnZ2FibGUncyBvZmZzZXQgY29uc2lkZXJpbmcgdGhlIHNvcnRhYmxlDQoJCQkJCS8vIG1heSBoYXZlIG1vZGlmaWVkIHRoZW0gaW4gdW5leHBlY3RlZCB3YXlzLiAoIzg4MDksICMxMDY2OSkNCgkJCQkJdWkuaGVscGVyLmFwcGVuZFRvKCBkcmFnZ2FibGUuX3BhcmVudCApOw0KCQkJCQlkcmFnZ2FibGUuX3JlZnJlc2hPZmZzZXRzKCBldmVudCApOw0KCQkJCQl1aS5wb3NpdGlvbiA9IGRyYWdnYWJsZS5fZ2VuZXJhdGVQb3NpdGlvbiggZXZlbnQsIHRydWUgKTsNCg0KCQkJCQlkcmFnZ2FibGUuX3RyaWdnZXIoICJmcm9tU29ydGFibGUiLCBldmVudCApOw0KDQoJCQkJCS8vIEluZm9ybSBkcmFnZ2FibGUgdGhhdCB0aGUgaGVscGVyIGlzIG5vIGxvbmdlciBpbiBhIHZhbGlkIGRyb3Agem9uZQ0KCQkJCQlkcmFnZ2FibGUuZHJvcHBlZCA9IGZhbHNlOw0KDQoJCQkJCS8vIE5lZWQgdG8gcmVmcmVzaFBvc2l0aW9ucyBvZiBhbGwgc29ydGFibGVzIGp1c3QgaW4gY2FzZSByZW1vdmluZw0KCQkJCQkvLyBmcm9tIG9uZSBzb3J0YWJsZSBjaGFuZ2VzIHRoZSBsb2NhdGlvbiBvZiBvdGhlciBzb3J0YWJsZXMgKCM5Njc1KQ0KCQkJCQkkLmVhY2goIGRyYWdnYWJsZS5zb3J0YWJsZXMsIGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5yZWZyZXNoUG9zaXRpb25zKCk7DQoJCQkJCX0gKTsNCgkJCQl9DQoJCQl9DQoJCX0gKTsNCgl9DQp9ICk7DQoNCiQudWkucGx1Z2luLmFkZCggImRyYWdnYWJsZSIsICJjdXJzb3IiLCB7DQoJc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3RhbmNlICkgew0KCQl2YXIgdCA9ICQoICJib2R5IiApLA0KCQkJbyA9IGluc3RhbmNlLm9wdGlvbnM7DQoNCgkJaWYgKCB0LmNzcyggImN1cnNvciIgKSApIHsNCgkJCW8uX2N1cnNvciA9IHQuY3NzKCAiY3Vyc29yIiApOw0KCQl9DQoJCXQuY3NzKCAiY3Vyc29yIiwgby5jdXJzb3IgKTsNCgl9LA0KCXN0b3A6IGZ1bmN0aW9uKCBldmVudCwgdWksIGluc3RhbmNlICkgew0KCQl2YXIgbyA9IGluc3RhbmNlLm9wdGlvbnM7DQoJCWlmICggby5fY3Vyc29yICkgew0KCQkJJCggImJvZHkiICkuY3NzKCAiY3Vyc29yIiwgby5fY3Vyc29yICk7DQoJCX0NCgl9DQp9ICk7DQoNCiQudWkucGx1Z2luLmFkZCggImRyYWdnYWJsZSIsICJvcGFjaXR5Iiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIHQgPSAkKCB1aS5oZWxwZXIgKSwNCgkJCW8gPSBpbnN0YW5jZS5vcHRpb25zOw0KCQlpZiAoIHQuY3NzKCAib3BhY2l0eSIgKSApIHsNCgkJCW8uX29wYWNpdHkgPSB0LmNzcyggIm9wYWNpdHkiICk7DQoJCX0NCgkJdC5jc3MoICJvcGFjaXR5Iiwgby5vcGFjaXR5ICk7DQoJfSwNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIG8gPSBpbnN0YW5jZS5vcHRpb25zOw0KCQlpZiAoIG8uX29wYWNpdHkgKSB7DQoJCQkkKCB1aS5oZWxwZXIgKS5jc3MoICJvcGFjaXR5Iiwgby5fb3BhY2l0eSApOw0KCQl9DQoJfQ0KfSApOw0KDQokLnVpLnBsdWdpbi5hZGQoICJkcmFnZ2FibGUiLCAic2Nyb2xsIiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpICkgew0KCQlpZiAoICFpLnNjcm9sbFBhcmVudE5vdEhpZGRlbiApIHsNCgkJCWkuc2Nyb2xsUGFyZW50Tm90SGlkZGVuID0gaS5oZWxwZXIuc2Nyb2xsUGFyZW50KCBmYWxzZSApOw0KCQl9DQoNCgkJaWYgKCBpLnNjcm9sbFBhcmVudE5vdEhpZGRlblsgMCBdICE9PSBpLmRvY3VtZW50WyAwIF0gJiYNCgkJCQlpLnNjcm9sbFBhcmVudE5vdEhpZGRlblsgMCBdLnRhZ05hbWUgIT09ICJIVE1MIiApIHsNCgkJCWkub3ZlcmZsb3dPZmZzZXQgPSBpLnNjcm9sbFBhcmVudE5vdEhpZGRlbi5vZmZzZXQoKTsNCgkJfQ0KCX0sDQoJZHJhZzogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaSAgKSB7DQoNCgkJdmFyIG8gPSBpLm9wdGlvbnMsDQoJCQlzY3JvbGxlZCA9IGZhbHNlLA0KCQkJc2Nyb2xsUGFyZW50ID0gaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bIDAgXSwNCgkJCWRvY3VtZW50ID0gaS5kb2N1bWVudFsgMCBdOw0KDQoJCWlmICggc2Nyb2xsUGFyZW50ICE9PSBkb2N1bWVudCAmJiBzY3JvbGxQYXJlbnQudGFnTmFtZSAhPT0gIkhUTUwiICkgew0KCQkJaWYgKCAhby5heGlzIHx8IG8uYXhpcyAhPT0gIngiICkgew0KCQkJCWlmICggKCBpLm92ZXJmbG93T2Zmc2V0LnRvcCArIHNjcm9sbFBhcmVudC5vZmZzZXRIZWlnaHQgKSAtIGV2ZW50LnBhZ2VZIDwNCgkJCQkJCW8uc2Nyb2xsU2Vuc2l0aXZpdHkgKSB7DQoJCQkJCXNjcm9sbFBhcmVudC5zY3JvbGxUb3AgPSBzY3JvbGxlZCA9IHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgKyBvLnNjcm9sbFNwZWVkOw0KCQkJCX0gZWxzZSBpZiAoIGV2ZW50LnBhZ2VZIC0gaS5vdmVyZmxvd09mZnNldC50b3AgPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wID0gc2Nyb2xsZWQgPSBzY3JvbGxQYXJlbnQuc2Nyb2xsVG9wIC0gby5zY3JvbGxTcGVlZDsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmICggIW8uYXhpcyB8fCBvLmF4aXMgIT09ICJ5IiApIHsNCgkJCQlpZiAoICggaS5vdmVyZmxvd09mZnNldC5sZWZ0ICsgc2Nyb2xsUGFyZW50Lm9mZnNldFdpZHRoICkgLSBldmVudC5wYWdlWCA8DQoJCQkJCQlvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCA9IHNjcm9sbGVkID0gc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgKyBvLnNjcm9sbFNwZWVkOw0KCQkJCX0gZWxzZSBpZiAoIGV2ZW50LnBhZ2VYIC0gaS5vdmVyZmxvd09mZnNldC5sZWZ0IDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgPSBzY3JvbGxlZCA9IHNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0IC0gby5zY3JvbGxTcGVlZDsNCgkJCQl9DQoJCQl9DQoNCgkJfSBlbHNlIHsNCg0KCQkJaWYgKCAhby5heGlzIHx8IG8uYXhpcyAhPT0gIngiICkgew0KCQkJCWlmICggZXZlbnQucGFnZVkgLSAkKCBkb2N1bWVudCApLnNjcm9sbFRvcCgpIDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKCBkb2N1bWVudCApLnNjcm9sbFRvcCggJCggZG9jdW1lbnQgKS5zY3JvbGxUb3AoKSAtIG8uc2Nyb2xsU3BlZWQgKTsNCgkJCQl9IGVsc2UgaWYgKCAkKCB3aW5kb3cgKS5oZWlnaHQoKSAtICggZXZlbnQucGFnZVkgLSAkKCBkb2N1bWVudCApLnNjcm9sbFRvcCgpICkgPA0KCQkJCQkJby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsZWQgPSAkKCBkb2N1bWVudCApLnNjcm9sbFRvcCggJCggZG9jdW1lbnQgKS5zY3JvbGxUb3AoKSArIG8uc2Nyb2xsU3BlZWQgKTsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmICggIW8uYXhpcyB8fCBvLmF4aXMgIT09ICJ5IiApIHsNCgkJCQlpZiAoIGV2ZW50LnBhZ2VYIC0gJCggZG9jdW1lbnQgKS5zY3JvbGxMZWZ0KCkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxlZCA9ICQoIGRvY3VtZW50ICkuc2Nyb2xsTGVmdCgNCgkJCQkJCSQoIGRvY3VtZW50ICkuc2Nyb2xsTGVmdCgpIC0gby5zY3JvbGxTcGVlZA0KCQkJCQkpOw0KCQkJCX0gZWxzZSBpZiAoICQoIHdpbmRvdyApLndpZHRoKCkgLSAoIGV2ZW50LnBhZ2VYIC0gJCggZG9jdW1lbnQgKS5zY3JvbGxMZWZ0KCkgKSA8DQoJCQkJCQlvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxlZCA9ICQoIGRvY3VtZW50ICkuc2Nyb2xsTGVmdCgNCgkJCQkJCSQoIGRvY3VtZW50ICkuc2Nyb2xsTGVmdCgpICsgby5zY3JvbGxTcGVlZA0KCQkJCQkpOw0KCQkJCX0NCgkJCX0NCg0KCQl9DQoNCgkJaWYgKCBzY3JvbGxlZCAhPT0gZmFsc2UgJiYgJC51aS5kZG1hbmFnZXIgJiYgIW8uZHJvcEJlaGF2aW91ciApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKCBpLCBldmVudCApOw0KCQl9DQoNCgl9DQp9ICk7DQoNCiQudWkucGx1Z2luLmFkZCggImRyYWdnYWJsZSIsICJzbmFwIiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpICkgew0KDQoJCXZhciBvID0gaS5vcHRpb25zOw0KDQoJCWkuc25hcEVsZW1lbnRzID0gW107DQoNCgkJJCggby5zbmFwLmNvbnN0cnVjdG9yICE9PSBTdHJpbmcgPyAoIG8uc25hcC5pdGVtcyB8fCAiOmRhdGEodWktZHJhZ2dhYmxlKSIgKSA6IG8uc25hcCApDQoJCQkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJdmFyICR0ID0gJCggdGhpcyApLA0KCQkJCQkkbyA9ICR0Lm9mZnNldCgpOw0KCQkJCWlmICggdGhpcyAhPT0gaS5lbGVtZW50WyAwIF0gKSB7DQoJCQkJCWkuc25hcEVsZW1lbnRzLnB1c2goIHsNCgkJCQkJCWl0ZW06IHRoaXMsDQoJCQkJCQl3aWR0aDogJHQub3V0ZXJXaWR0aCgpLCBoZWlnaHQ6ICR0Lm91dGVySGVpZ2h0KCksDQoJCQkJCQl0b3A6ICRvLnRvcCwgbGVmdDogJG8ubGVmdA0KCQkJCQl9ICk7DQoJCQkJfQ0KCQkJfSApOw0KDQoJfSwNCglkcmFnOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0ICkgew0KDQoJCXZhciB0cywgYnMsIGxzLCBycywgbCwgciwgdCwgYiwgaSwgZmlyc3QsDQoJCQlvID0gaW5zdC5vcHRpb25zLA0KCQkJZCA9IG8uc25hcFRvbGVyYW5jZSwNCgkJCXgxID0gdWkub2Zmc2V0LmxlZnQsIHgyID0geDEgKyBpbnN0LmhlbHBlclByb3BvcnRpb25zLndpZHRoLA0KCQkJeTEgPSB1aS5vZmZzZXQudG9wLCB5MiA9IHkxICsgaW5zdC5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQ7DQoNCgkJZm9yICggaSA9IGluc3Quc25hcEVsZW1lbnRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KDQoJCQlsID0gaW5zdC5zbmFwRWxlbWVudHNbIGkgXS5sZWZ0IC0gaW5zdC5tYXJnaW5zLmxlZnQ7DQoJCQlyID0gbCArIGluc3Quc25hcEVsZW1lbnRzWyBpIF0ud2lkdGg7DQoJCQl0ID0gaW5zdC5zbmFwRWxlbWVudHNbIGkgXS50b3AgLSBpbnN0Lm1hcmdpbnMudG9wOw0KCQkJYiA9IHQgKyBpbnN0LnNuYXBFbGVtZW50c1sgaSBdLmhlaWdodDsNCg0KCQkJaWYgKCB4MiA8IGwgLSBkIHx8IHgxID4gciArIGQgfHwgeTIgPCB0IC0gZCB8fCB5MSA+IGIgKyBkIHx8DQoJCQkJCSEkLmNvbnRhaW5zKCBpbnN0LnNuYXBFbGVtZW50c1sgaSBdLml0ZW0ub3duZXJEb2N1bWVudCwNCgkJCQkJaW5zdC5zbmFwRWxlbWVudHNbIGkgXS5pdGVtICkgKSB7DQoJCQkJaWYgKCBpbnN0LnNuYXBFbGVtZW50c1sgaSBdLnNuYXBwaW5nICkgew0KCQkJCQkoIGluc3Qub3B0aW9ucy5zbmFwLnJlbGVhc2UgJiYNCgkJCQkJCWluc3Qub3B0aW9ucy5zbmFwLnJlbGVhc2UuY2FsbCgNCgkJCQkJCQlpbnN0LmVsZW1lbnQsDQoJCQkJCQkJZXZlbnQsDQoJCQkJCQkJJC5leHRlbmQoIGluc3QuX3VpSGFzaCgpLCB7IHNuYXBJdGVtOiBpbnN0LnNuYXBFbGVtZW50c1sgaSBdLml0ZW0gfSApDQoJCQkJCQkpICk7DQoJCQkJfQ0KCQkJCWluc3Quc25hcEVsZW1lbnRzWyBpIF0uc25hcHBpbmcgPSBmYWxzZTsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJaWYgKCBvLnNuYXBNb2RlICE9PSAiaW5uZXIiICkgew0KCQkJCXRzID0gTWF0aC5hYnMoIHQgLSB5MiApIDw9IGQ7DQoJCQkJYnMgPSBNYXRoLmFicyggYiAtIHkxICkgPD0gZDsNCgkJCQlscyA9IE1hdGguYWJzKCBsIC0geDIgKSA8PSBkOw0KCQkJCXJzID0gTWF0aC5hYnMoIHIgLSB4MSApIDw9IGQ7DQoJCQkJaWYgKCB0cyApIHsNCgkJCQkJdWkucG9zaXRpb24udG9wID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oICJyZWxhdGl2ZSIsIHsNCgkJCQkJCXRvcDogdCAtIGluc3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LA0KCQkJCQkJbGVmdDogMA0KCQkJCQl9ICkudG9wOw0KCQkJCX0NCgkJCQlpZiAoIGJzICkgew0KCQkJCQl1aS5wb3NpdGlvbi50b3AgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbyggInJlbGF0aXZlIiwgew0KCQkJCQkJdG9wOiBiLA0KCQkJCQkJbGVmdDogMA0KCQkJCQl9ICkudG9wOw0KCQkJCX0NCgkJCQlpZiAoIGxzICkgew0KCQkJCQl1aS5wb3NpdGlvbi5sZWZ0ID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oICJyZWxhdGl2ZSIsIHsNCgkJCQkJCXRvcDogMCwNCgkJCQkJCWxlZnQ6IGwgLSBpbnN0LmhlbHBlclByb3BvcnRpb25zLndpZHRoDQoJCQkJCX0gKS5sZWZ0Ow0KCQkJCX0NCgkJCQlpZiAoIHJzICkgew0KCQkJCQl1aS5wb3NpdGlvbi5sZWZ0ID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oICJyZWxhdGl2ZSIsIHsNCgkJCQkJCXRvcDogMCwNCgkJCQkJCWxlZnQ6IHINCgkJCQkJfSApLmxlZnQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlmaXJzdCA9ICggdHMgfHwgYnMgfHwgbHMgfHwgcnMgKTsNCg0KCQkJaWYgKCBvLnNuYXBNb2RlICE9PSAib3V0ZXIiICkgew0KCQkJCXRzID0gTWF0aC5hYnMoIHQgLSB5MSApIDw9IGQ7DQoJCQkJYnMgPSBNYXRoLmFicyggYiAtIHkyICkgPD0gZDsNCgkJCQlscyA9IE1hdGguYWJzKCBsIC0geDEgKSA8PSBkOw0KCQkJCXJzID0gTWF0aC5hYnMoIHIgLSB4MiApIDw9IGQ7DQoJCQkJaWYgKCB0cyApIHsNCgkJCQkJdWkucG9zaXRpb24udG9wID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oICJyZWxhdGl2ZSIsIHsNCgkJCQkJCXRvcDogdCwNCgkJCQkJCWxlZnQ6IDANCgkJCQkJfSApLnRvcDsNCgkJCQl9DQoJCQkJaWYgKCBicyApIHsNCgkJCQkJdWkucG9zaXRpb24udG9wID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oICJyZWxhdGl2ZSIsIHsNCgkJCQkJCXRvcDogYiAtIGluc3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LA0KCQkJCQkJbGVmdDogMA0KCQkJCQl9ICkudG9wOw0KCQkJCX0NCgkJCQlpZiAoIGxzICkgew0KCQkJCQl1aS5wb3NpdGlvbi5sZWZ0ID0gaW5zdC5fY29udmVydFBvc2l0aW9uVG8oICJyZWxhdGl2ZSIsIHsNCgkJCQkJCXRvcDogMCwNCgkJCQkJCWxlZnQ6IGwNCgkJCQkJfSApLmxlZnQ7DQoJCQkJfQ0KCQkJCWlmICggcnMgKSB7DQoJCQkJCXVpLnBvc2l0aW9uLmxlZnQgPSBpbnN0Ll9jb252ZXJ0UG9zaXRpb25UbyggInJlbGF0aXZlIiwgew0KCQkJCQkJdG9wOiAwLA0KCQkJCQkJbGVmdDogciAtIGluc3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgNCgkJCQkJfSApLmxlZnQ7DQoJCQkJfQ0KCQkJfQ0KDQoJCQlpZiAoICFpbnN0LnNuYXBFbGVtZW50c1sgaSBdLnNuYXBwaW5nICYmICggdHMgfHwgYnMgfHwgbHMgfHwgcnMgfHwgZmlyc3QgKSApIHsNCgkJCQkoIGluc3Qub3B0aW9ucy5zbmFwLnNuYXAgJiYNCgkJCQkJaW5zdC5vcHRpb25zLnNuYXAuc25hcC5jYWxsKA0KCQkJCQkJaW5zdC5lbGVtZW50LA0KCQkJCQkJZXZlbnQsDQoJCQkJCQkkLmV4dGVuZCggaW5zdC5fdWlIYXNoKCksIHsNCgkJCQkJCQlzbmFwSXRlbTogaW5zdC5zbmFwRWxlbWVudHNbIGkgXS5pdGVtDQoJCQkJCQl9ICkgKSApOw0KCQkJfQ0KCQkJaW5zdC5zbmFwRWxlbWVudHNbIGkgXS5zbmFwcGluZyA9ICggdHMgfHwgYnMgfHwgbHMgfHwgcnMgfHwgZmlyc3QgKTsNCg0KCQl9DQoNCgl9DQp9ICk7DQoNCiQudWkucGx1Z2luLmFkZCggImRyYWdnYWJsZSIsICJzdGFjayIsIHsNCglzdGFydDogZnVuY3Rpb24oIGV2ZW50LCB1aSwgaW5zdGFuY2UgKSB7DQoJCXZhciBtaW4sDQoJCQlvID0gaW5zdGFuY2Uub3B0aW9ucywNCgkJCWdyb3VwID0gJC5tYWtlQXJyYXkoICQoIG8uc3RhY2sgKSApLnNvcnQoIGZ1bmN0aW9uKCBhLCBiICkgew0KCQkJCXJldHVybiAoIHBhcnNlSW50KCAkKCBhICkuY3NzKCAiekluZGV4IiApLCAxMCApIHx8IDAgKSAtDQoJCQkJCSggcGFyc2VJbnQoICQoIGIgKS5jc3MoICJ6SW5kZXgiICksIDEwICkgfHwgMCApOw0KCQkJfSApOw0KDQoJCWlmICggIWdyb3VwLmxlbmd0aCApIHsgcmV0dXJuOyB9DQoNCgkJbWluID0gcGFyc2VJbnQoICQoIGdyb3VwWyAwIF0gKS5jc3MoICJ6SW5kZXgiICksIDEwICkgfHwgMDsNCgkJJCggZ3JvdXAgKS5lYWNoKCBmdW5jdGlvbiggaSApIHsNCgkJCSQoIHRoaXMgKS5jc3MoICJ6SW5kZXgiLCBtaW4gKyBpICk7DQoJCX0gKTsNCgkJdGhpcy5jc3MoICJ6SW5kZXgiLCAoIG1pbiArIGdyb3VwLmxlbmd0aCApICk7DQoJfQ0KfSApOw0KDQokLnVpLnBsdWdpbi5hZGQoICJkcmFnZ2FibGUiLCAiekluZGV4Iiwgew0KCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIHQgPSAkKCB1aS5oZWxwZXIgKSwNCgkJCW8gPSBpbnN0YW5jZS5vcHRpb25zOw0KDQoJCWlmICggdC5jc3MoICJ6SW5kZXgiICkgKSB7DQoJCQlvLl96SW5kZXggPSB0LmNzcyggInpJbmRleCIgKTsNCgkJfQ0KCQl0LmNzcyggInpJbmRleCIsIG8uekluZGV4ICk7DQoJfSwNCglzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpLCBpbnN0YW5jZSApIHsNCgkJdmFyIG8gPSBpbnN0YW5jZS5vcHRpb25zOw0KDQoJCWlmICggby5fekluZGV4ICkgew0KCQkJJCggdWkuaGVscGVyICkuY3NzKCAiekluZGV4Iiwgby5fekluZGV4ICk7DQoJCX0NCgl9DQp9ICk7DQoNCnZhciB3aWRnZXRzRHJhZ2dhYmxlID0gJC51aS5kcmFnZ2FibGU7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgUmVzaXphYmxlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBSZXNpemFibGUNCi8vPj5ncm91cDogSW50ZXJhY3Rpb25zDQovLz4+ZGVzY3JpcHRpb246IEVuYWJsZXMgcmVzaXplIGZ1bmN0aW9uYWxpdHkgZm9yIGFueSBlbGVtZW50Lg0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3Jlc2l6YWJsZS8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNpemFibGUvDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvY29yZS5jc3MNCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9yZXNpemFibGUuY3NzDQovLz4+Y3NzLnRoZW1lOiAuLi8uLi90aGVtZXMvYmFzZS90aGVtZS5jc3MNCg0KDQoNCiQud2lkZ2V0KCAidWkucmVzaXphYmxlIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAicmVzaXplIiwNCglvcHRpb25zOiB7DQoJCWFsc29SZXNpemU6IGZhbHNlLA0KCQlhbmltYXRlOiBmYWxzZSwNCgkJYW5pbWF0ZUR1cmF0aW9uOiAic2xvdyIsDQoJCWFuaW1hdGVFYXNpbmc6ICJzd2luZyIsDQoJCWFzcGVjdFJhdGlvOiBmYWxzZSwNCgkJYXV0b0hpZGU6IGZhbHNlLA0KCQljbGFzc2VzOiB7DQoJCQkidWktcmVzaXphYmxlLXNlIjogInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiDQoJCX0sDQoJCWNvbnRhaW5tZW50OiBmYWxzZSwNCgkJZ2hvc3Q6IGZhbHNlLA0KCQlncmlkOiBmYWxzZSwNCgkJaGFuZGxlczogImUscyxzZSIsDQoJCWhlbHBlcjogZmFsc2UsDQoJCW1heEhlaWdodDogbnVsbCwNCgkJbWF4V2lkdGg6IG51bGwsDQoJCW1pbkhlaWdodDogMTAsDQoJCW1pbldpZHRoOiAxMCwNCg0KCQkvLyBTZWUgIzc5NjANCgkJekluZGV4OiA5MCwNCg0KCQkvLyBDYWxsYmFja3MNCgkJcmVzaXplOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoNCglfbnVtOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXJldHVybiBwYXJzZUZsb2F0KCB2YWx1ZSApIHx8IDA7DQoJfSwNCg0KCV9pc051bWJlcjogZnVuY3Rpb24oIHZhbHVlICkgew0KCQlyZXR1cm4gIWlzTmFOKCBwYXJzZUZsb2F0KCB2YWx1ZSApICk7DQoJfSwNCg0KCV9oYXNTY3JvbGw6IGZ1bmN0aW9uKCBlbCwgYSApIHsNCg0KCQlpZiAoICQoIGVsICkuY3NzKCAib3ZlcmZsb3ciICkgPT09ICJoaWRkZW4iICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJdmFyIHNjcm9sbCA9ICggYSAmJiBhID09PSAibGVmdCIgKSA/ICJzY3JvbGxMZWZ0IiA6ICJzY3JvbGxUb3AiLA0KCQkJaGFzID0gZmFsc2U7DQoNCgkJaWYgKCBlbFsgc2Nyb2xsIF0gPiAwICkgew0KCQkJcmV0dXJuIHRydWU7DQoJCX0NCg0KCQkvLyBUT0RPOiBkZXRlcm1pbmUgd2hpY2ggY2FzZXMgYWN0dWFsbHkgY2F1c2UgdGhpcyB0byBoYXBwZW4NCgkJLy8gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIHRoZSBzY3JvbGwgc2V0LCBzZWUgaWYgaXQncyBwb3NzaWJsZSB0bw0KCQkvLyBzZXQgdGhlIHNjcm9sbA0KCQllbFsgc2Nyb2xsIF0gPSAxOw0KCQloYXMgPSAoIGVsWyBzY3JvbGwgXSA+IDAgKTsNCgkJZWxbIHNjcm9sbCBdID0gMDsNCgkJcmV0dXJuIGhhczsNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIG1hcmdpbnMsDQoJCQlvID0gdGhpcy5vcHRpb25zLA0KCQkJdGhhdCA9IHRoaXM7DQoJCXRoaXMuX2FkZENsYXNzKCAidWktcmVzaXphYmxlIiApOw0KDQoJCSQuZXh0ZW5kKCB0aGlzLCB7DQoJCQlfYXNwZWN0UmF0aW86ICEhKCBvLmFzcGVjdFJhdGlvICksDQoJCQlhc3BlY3RSYXRpbzogby5hc3BlY3RSYXRpbywNCgkJCW9yaWdpbmFsRWxlbWVudDogdGhpcy5lbGVtZW50LA0KCQkJX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHM6IFtdLA0KCQkJX2hlbHBlcjogby5oZWxwZXIgfHwgby5naG9zdCB8fCBvLmFuaW1hdGUgPyBvLmhlbHBlciB8fCAidWktcmVzaXphYmxlLWhlbHBlciIgOiBudWxsDQoJCX0gKTsNCg0KCQkvLyBXcmFwIHRoZSBlbGVtZW50IGlmIGl0IGNhbm5vdCBob2xkIGNoaWxkIG5vZGVzDQoJCWlmICggdGhpcy5lbGVtZW50WyAwIF0ubm9kZU5hbWUubWF0Y2goIC9eKGNhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0dG9ufGltZykkL2kgKSApIHsNCg0KCQkJdGhpcy5lbGVtZW50LndyYXAoDQoJCQkJJCggIjxkaXYgY2xhc3M9J3VpLXdyYXBwZXInIHN0eWxlPSdvdmVyZmxvdzogaGlkZGVuOyc+PC9kaXY+IiApLmNzcyggew0KCQkJCQlwb3NpdGlvbjogdGhpcy5lbGVtZW50LmNzcyggInBvc2l0aW9uIiApLA0KCQkJCQl3aWR0aDogdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSwNCgkJCQkJaGVpZ2h0OiB0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSwNCgkJCQkJdG9wOiB0aGlzLmVsZW1lbnQuY3NzKCAidG9wIiApLA0KCQkJCQlsZWZ0OiB0aGlzLmVsZW1lbnQuY3NzKCAibGVmdCIgKQ0KCQkJCX0gKQ0KCQkJKTsNCg0KCQkJdGhpcy5lbGVtZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudCgpLmRhdGEoDQoJCQkJInVpLXJlc2l6YWJsZSIsIHRoaXMuZWxlbWVudC5yZXNpemFibGUoICJpbnN0YW5jZSIgKQ0KCQkJKTsNCg0KCQkJdGhpcy5lbGVtZW50SXNXcmFwcGVyID0gdHJ1ZTsNCg0KCQkJbWFyZ2lucyA9IHsNCgkJCQltYXJnaW5Ub3A6IHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyggIm1hcmdpblRvcCIgKSwNCgkJCQltYXJnaW5SaWdodDogdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCAibWFyZ2luUmlnaHQiICksDQoJCQkJbWFyZ2luQm90dG9tOiB0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoICJtYXJnaW5Cb3R0b20iICksDQoJCQkJbWFyZ2luTGVmdDogdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCAibWFyZ2luTGVmdCIgKQ0KCQkJfTsNCg0KCQkJdGhpcy5lbGVtZW50LmNzcyggbWFyZ2lucyApOw0KCQkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCAibWFyZ2luIiwgMCApOw0KDQoJCQkvLyBzdXBwb3J0OiBTYWZhcmkNCgkJCS8vIFByZXZlbnQgU2FmYXJpIHRleHRhcmVhIHJlc2l6ZQ0KCQkJdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlID0gdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCAicmVzaXplIiApOw0KCQkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCAicmVzaXplIiwgIm5vbmUiICk7DQoNCgkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMucHVzaCggdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCB7DQoJCQkJcG9zaXRpb246ICJzdGF0aWMiLA0KCQkJCXpvb206IDEsDQoJCQkJZGlzcGxheTogImJsb2NrIg0KCQkJfSApICk7DQoNCgkJCS8vIFN1cHBvcnQ6IElFOQ0KCQkJLy8gYXZvaWQgSUUganVtcCAoaGFyZCBzZXQgdGhlIG1hcmdpbikNCgkJCXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyggbWFyZ2lucyApOw0KDQoJCQl0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpOw0KCQl9DQoNCgkJdGhpcy5fc2V0dXBIYW5kbGVzKCk7DQoNCgkJaWYgKCBvLmF1dG9IaWRlICkgew0KCQkJJCggdGhpcy5lbGVtZW50ICkNCgkJCQkub24oICJtb3VzZWVudGVyIiwgZnVuY3Rpb24oKSB7DQoJCQkJCWlmICggby5kaXNhYmxlZCApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KCQkJCQl0aGF0Ll9yZW1vdmVDbGFzcyggInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIgKTsNCgkJCQkJdGhhdC5faGFuZGxlcy5zaG93KCk7DQoJCQkJfSApDQoJCQkJLm9uKCAibW91c2VsZWF2ZSIsIGZ1bmN0aW9uKCkgew0KCQkJCQlpZiAoIG8uZGlzYWJsZWQgKSB7DQoJCQkJCQlyZXR1cm47DQoJCQkJCX0NCgkJCQkJaWYgKCAhdGhhdC5yZXNpemluZyApIHsNCgkJCQkJCXRoYXQuX2FkZENsYXNzKCAidWktcmVzaXphYmxlLWF1dG9oaWRlIiApOw0KCQkJCQkJdGhhdC5faGFuZGxlcy5oaWRlKCk7DQoJCQkJCX0NCgkJCQl9ICk7DQoJCX0NCg0KCQl0aGlzLl9tb3VzZUluaXQoKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KDQoJCXRoaXMuX21vdXNlRGVzdHJveSgpOw0KDQoJCXZhciB3cmFwcGVyLA0KCQkJX2Rlc3Ryb3kgPSBmdW5jdGlvbiggZXhwICkgew0KCQkJCSQoIGV4cCApDQoJCQkJCS5yZW1vdmVEYXRhKCAicmVzaXphYmxlIiApDQoJCQkJCS5yZW1vdmVEYXRhKCAidWktcmVzaXphYmxlIiApDQoJCQkJCS5vZmYoICIucmVzaXphYmxlIiApDQoJCQkJCS5maW5kKCAiLnVpLXJlc2l6YWJsZS1oYW5kbGUiICkNCgkJCQkJCS5yZW1vdmUoKTsNCgkJCX07DQoNCgkJLy8gVE9ETzogVW53cmFwIGF0IHNhbWUgRE9NIHBvc2l0aW9uDQoJCWlmICggdGhpcy5lbGVtZW50SXNXcmFwcGVyICkgew0KCQkJX2Rlc3Ryb3koIHRoaXMuZWxlbWVudCApOw0KCQkJd3JhcHBlciA9IHRoaXMuZWxlbWVudDsNCgkJCXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyggew0KCQkJCXBvc2l0aW9uOiB3cmFwcGVyLmNzcyggInBvc2l0aW9uIiApLA0KCQkJCXdpZHRoOiB3cmFwcGVyLm91dGVyV2lkdGgoKSwNCgkJCQloZWlnaHQ6IHdyYXBwZXIub3V0ZXJIZWlnaHQoKSwNCgkJCQl0b3A6IHdyYXBwZXIuY3NzKCAidG9wIiApLA0KCQkJCWxlZnQ6IHdyYXBwZXIuY3NzKCAibGVmdCIgKQ0KCQkJfSApLmluc2VydEFmdGVyKCB3cmFwcGVyICk7DQoJCQl3cmFwcGVyLnJlbW92ZSgpOw0KCQl9DQoNCgkJdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCAicmVzaXplIiwgdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlICk7DQoJCV9kZXN0cm95KCB0aGlzLm9yaWdpbmFsRWxlbWVudCApOw0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQlzd2l0Y2ggKCBrZXkgKSB7DQoJCWNhc2UgImhhbmRsZXMiOg0KCQkJdGhpcy5fcmVtb3ZlSGFuZGxlcygpOw0KCQkJdGhpcy5fc2V0dXBIYW5kbGVzKCk7DQoJCQlicmVhazsNCgkJZGVmYXVsdDoNCgkJCWJyZWFrOw0KCQl9DQoJfSwNCg0KCV9zZXR1cEhhbmRsZXM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgbyA9IHRoaXMub3B0aW9ucywgaGFuZGxlLCBpLCBuLCBobmFtZSwgYXhpcywgdGhhdCA9IHRoaXM7DQoJCXRoaXMuaGFuZGxlcyA9IG8uaGFuZGxlcyB8fA0KCQkJKCAhJCggIi51aS1yZXNpemFibGUtaGFuZGxlIiwgdGhpcy5lbGVtZW50ICkubGVuZ3RoID8NCgkJCQkiZSxzLHNlIiA6IHsNCgkJCQkJbjogIi51aS1yZXNpemFibGUtbiIsDQoJCQkJCWU6ICIudWktcmVzaXphYmxlLWUiLA0KCQkJCQlzOiAiLnVpLXJlc2l6YWJsZS1zIiwNCgkJCQkJdzogIi51aS1yZXNpemFibGUtdyIsDQoJCQkJCXNlOiAiLnVpLXJlc2l6YWJsZS1zZSIsDQoJCQkJCXN3OiAiLnVpLXJlc2l6YWJsZS1zdyIsDQoJCQkJCW5lOiAiLnVpLXJlc2l6YWJsZS1uZSIsDQoJCQkJCW53OiAiLnVpLXJlc2l6YWJsZS1udyINCgkJCQl9ICk7DQoNCgkJdGhpcy5faGFuZGxlcyA9ICQoKTsNCgkJaWYgKCB0aGlzLmhhbmRsZXMuY29uc3RydWN0b3IgPT09IFN0cmluZyApIHsNCg0KCQkJaWYgKCB0aGlzLmhhbmRsZXMgPT09ICJhbGwiICkgew0KCQkJCXRoaXMuaGFuZGxlcyA9ICJuLGUscyx3LHNlLHN3LG5lLG53IjsNCgkJCX0NCg0KCQkJbiA9IHRoaXMuaGFuZGxlcy5zcGxpdCggIiwiICk7DQoJCQl0aGlzLmhhbmRsZXMgPSB7fTsNCg0KCQkJZm9yICggaSA9IDA7IGkgPCBuLmxlbmd0aDsgaSsrICkgew0KDQoJCQkJaGFuZGxlID0gJC50cmltKCBuWyBpIF0gKTsNCgkJCQlobmFtZSA9ICJ1aS1yZXNpemFibGUtIiArIGhhbmRsZTsNCgkJCQlheGlzID0gJCggIjxkaXY+IiApOw0KCQkJCXRoaXMuX2FkZENsYXNzKCBheGlzLCAidWktcmVzaXphYmxlLWhhbmRsZSAiICsgaG5hbWUgKTsNCg0KCQkJCWF4aXMuY3NzKCB7IHpJbmRleDogby56SW5kZXggfSApOw0KDQoJCQkJdGhpcy5oYW5kbGVzWyBoYW5kbGUgXSA9ICIudWktcmVzaXphYmxlLSIgKyBoYW5kbGU7DQoJCQkJdGhpcy5lbGVtZW50LmFwcGVuZCggYXhpcyApOw0KCQkJfQ0KDQoJCX0NCg0KCQl0aGlzLl9yZW5kZXJBeGlzID0gZnVuY3Rpb24oIHRhcmdldCApIHsNCg0KCQkJdmFyIGksIGF4aXMsIHBhZFBvcywgcGFkV3JhcHBlcjsNCg0KCQkJdGFyZ2V0ID0gdGFyZ2V0IHx8IHRoaXMuZWxlbWVudDsNCg0KCQkJZm9yICggaSBpbiB0aGlzLmhhbmRsZXMgKSB7DQoNCgkJCQlpZiAoIHRoaXMuaGFuZGxlc1sgaSBdLmNvbnN0cnVjdG9yID09PSBTdHJpbmcgKSB7DQoJCQkJCXRoaXMuaGFuZGxlc1sgaSBdID0gdGhpcy5lbGVtZW50LmNoaWxkcmVuKCB0aGlzLmhhbmRsZXNbIGkgXSApLmZpcnN0KCkuc2hvdygpOw0KCQkJCX0gZWxzZSBpZiAoIHRoaXMuaGFuZGxlc1sgaSBdLmpxdWVyeSB8fCB0aGlzLmhhbmRsZXNbIGkgXS5ub2RlVHlwZSApIHsNCgkJCQkJdGhpcy5oYW5kbGVzWyBpIF0gPSAkKCB0aGlzLmhhbmRsZXNbIGkgXSApOw0KCQkJCQl0aGlzLl9vbiggdGhpcy5oYW5kbGVzWyBpIF0sIHsgIm1vdXNlZG93biI6IHRoYXQuX21vdXNlRG93biB9ICk7DQoJCQkJfQ0KDQoJCQkJaWYgKCB0aGlzLmVsZW1lbnRJc1dyYXBwZXIgJiYNCgkJCQkJCXRoaXMub3JpZ2luYWxFbGVtZW50WyAwIF0NCgkJCQkJCQkubm9kZU5hbWUNCgkJCQkJCQkubWF0Y2goIC9eKHRleHRhcmVhfGlucHV0fHNlbGVjdHxidXR0b24pJC9pICkgKSB7DQoJCQkJCWF4aXMgPSAkKCB0aGlzLmhhbmRsZXNbIGkgXSwgdGhpcy5lbGVtZW50ICk7DQoNCgkJCQkJcGFkV3JhcHBlciA9IC9zd3xuZXxud3xzZXxufHMvLnRlc3QoIGkgKSA/DQoJCQkJCQlheGlzLm91dGVySGVpZ2h0KCkgOg0KCQkJCQkJYXhpcy5vdXRlcldpZHRoKCk7DQoNCgkJCQkJcGFkUG9zID0gWyAicGFkZGluZyIsDQoJCQkJCQkvbmV8bnd8bi8udGVzdCggaSApID8gIlRvcCIgOg0KCQkJCQkJL3NlfHN3fHMvLnRlc3QoIGkgKSA/ICJCb3R0b20iIDoNCgkJCQkJCS9eZSQvLnRlc3QoIGkgKSA/ICJSaWdodCIgOiAiTGVmdCIgXS5qb2luKCAiIiApOw0KDQoJCQkJCXRhcmdldC5jc3MoIHBhZFBvcywgcGFkV3JhcHBlciApOw0KDQoJCQkJCXRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCk7DQoJCQkJfQ0KDQoJCQkJdGhpcy5faGFuZGxlcyA9IHRoaXMuX2hhbmRsZXMuYWRkKCB0aGlzLmhhbmRsZXNbIGkgXSApOw0KCQkJfQ0KCQl9Ow0KDQoJCS8vIFRPRE86IG1ha2UgcmVuZGVyQXhpcyBhIHByb3RvdHlwZSBmdW5jdGlvbg0KCQl0aGlzLl9yZW5kZXJBeGlzKCB0aGlzLmVsZW1lbnQgKTsNCg0KCQl0aGlzLl9oYW5kbGVzID0gdGhpcy5faGFuZGxlcy5hZGQoIHRoaXMuZWxlbWVudC5maW5kKCAiLnVpLXJlc2l6YWJsZS1oYW5kbGUiICkgKTsNCgkJdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCk7DQoNCgkJdGhpcy5faGFuZGxlcy5vbiggIm1vdXNlb3ZlciIsIGZ1bmN0aW9uKCkgew0KCQkJaWYgKCAhdGhhdC5yZXNpemluZyApIHsNCgkJCQlpZiAoIHRoaXMuY2xhc3NOYW1lICkgew0KCQkJCQlheGlzID0gdGhpcy5jbGFzc05hbWUubWF0Y2goIC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kgKTsNCgkJCQl9DQoJCQkJdGhhdC5heGlzID0gYXhpcyAmJiBheGlzWyAxIF0gPyBheGlzWyAxIF0gOiAic2UiOw0KCQkJfQ0KCQl9ICk7DQoNCgkJaWYgKCBvLmF1dG9IaWRlICkgew0KCQkJdGhpcy5faGFuZGxlcy5oaWRlKCk7DQoJCQl0aGlzLl9hZGRDbGFzcyggInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIgKTsNCgkJfQ0KCX0sDQoNCglfcmVtb3ZlSGFuZGxlczogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX2hhbmRsZXMucmVtb3ZlKCk7DQoJfSwNCg0KCV9tb3VzZUNhcHR1cmU6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGksIGhhbmRsZSwNCgkJCWNhcHR1cmUgPSBmYWxzZTsNCg0KCQlmb3IgKCBpIGluIHRoaXMuaGFuZGxlcyApIHsNCgkJCWhhbmRsZSA9ICQoIHRoaXMuaGFuZGxlc1sgaSBdIClbIDAgXTsNCgkJCWlmICggaGFuZGxlID09PSBldmVudC50YXJnZXQgfHwgJC5jb250YWlucyggaGFuZGxlLCBldmVudC50YXJnZXQgKSApIHsNCgkJCQljYXB0dXJlID0gdHJ1ZTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIGNhcHR1cmU7DQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJdmFyIGN1cmxlZnQsIGN1cnRvcCwgY3Vyc29yLA0KCQkJbyA9IHRoaXMub3B0aW9ucywNCgkJCWVsID0gdGhpcy5lbGVtZW50Ow0KDQoJCXRoaXMucmVzaXppbmcgPSB0cnVlOw0KDQoJCXRoaXMuX3JlbmRlclByb3h5KCk7DQoNCgkJY3VybGVmdCA9IHRoaXMuX251bSggdGhpcy5oZWxwZXIuY3NzKCAibGVmdCIgKSApOw0KCQljdXJ0b3AgPSB0aGlzLl9udW0oIHRoaXMuaGVscGVyLmNzcyggInRvcCIgKSApOw0KDQoJCWlmICggby5jb250YWlubWVudCApIHsNCgkJCWN1cmxlZnQgKz0gJCggby5jb250YWlubWVudCApLnNjcm9sbExlZnQoKSB8fCAwOw0KCQkJY3VydG9wICs9ICQoIG8uY29udGFpbm1lbnQgKS5zY3JvbGxUb3AoKSB8fCAwOw0KCQl9DQoNCgkJdGhpcy5vZmZzZXQgPSB0aGlzLmhlbHBlci5vZmZzZXQoKTsNCgkJdGhpcy5wb3NpdGlvbiA9IHsgbGVmdDogY3VybGVmdCwgdG9wOiBjdXJ0b3AgfTsNCg0KCQl0aGlzLnNpemUgPSB0aGlzLl9oZWxwZXIgPyB7DQoJCQkJd2lkdGg6IHRoaXMuaGVscGVyLndpZHRoKCksDQoJCQkJaGVpZ2h0OiB0aGlzLmhlbHBlci5oZWlnaHQoKQ0KCQkJfSA6IHsNCgkJCQl3aWR0aDogZWwud2lkdGgoKSwNCgkJCQloZWlnaHQ6IGVsLmhlaWdodCgpDQoJCQl9Ow0KDQoJCXRoaXMub3JpZ2luYWxTaXplID0gdGhpcy5faGVscGVyID8gew0KCQkJCXdpZHRoOiBlbC5vdXRlcldpZHRoKCksDQoJCQkJaGVpZ2h0OiBlbC5vdXRlckhlaWdodCgpDQoJCQl9IDogew0KCQkJCXdpZHRoOiBlbC53aWR0aCgpLA0KCQkJCWhlaWdodDogZWwuaGVpZ2h0KCkNCgkJCX07DQoNCgkJdGhpcy5zaXplRGlmZiA9IHsNCgkJCXdpZHRoOiBlbC5vdXRlcldpZHRoKCkgLSBlbC53aWR0aCgpLA0KCQkJaGVpZ2h0OiBlbC5vdXRlckhlaWdodCgpIC0gZWwuaGVpZ2h0KCkNCgkJfTsNCg0KCQl0aGlzLm9yaWdpbmFsUG9zaXRpb24gPSB7IGxlZnQ6IGN1cmxlZnQsIHRvcDogY3VydG9wIH07DQoJCXRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uID0geyBsZWZ0OiBldmVudC5wYWdlWCwgdG9wOiBldmVudC5wYWdlWSB9Ow0KDQoJCXRoaXMuYXNwZWN0UmF0aW8gPSAoIHR5cGVvZiBvLmFzcGVjdFJhdGlvID09PSAibnVtYmVyIiApID8NCgkJCW8uYXNwZWN0UmF0aW8gOg0KCQkJKCAoIHRoaXMub3JpZ2luYWxTaXplLndpZHRoIC8gdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0ICkgfHwgMSApOw0KDQoJCWN1cnNvciA9ICQoICIudWktcmVzaXphYmxlLSIgKyB0aGlzLmF4aXMgKS5jc3MoICJjdXJzb3IiICk7DQoJCSQoICJib2R5IiApLmNzcyggImN1cnNvciIsIGN1cnNvciA9PT0gImF1dG8iID8gdGhpcy5heGlzICsgIi1yZXNpemUiIDogY3Vyc29yICk7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoICJ1aS1yZXNpemFibGUtcmVzaXppbmciICk7DQoJCXRoaXMuX3Byb3BhZ2F0ZSggInN0YXJ0IiwgZXZlbnQgKTsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQl2YXIgZGF0YSwgcHJvcHMsDQoJCQlzbXAgPSB0aGlzLm9yaWdpbmFsTW91c2VQb3NpdGlvbiwNCgkJCWEgPSB0aGlzLmF4aXMsDQoJCQlkeCA9ICggZXZlbnQucGFnZVggLSBzbXAubGVmdCApIHx8IDAsDQoJCQlkeSA9ICggZXZlbnQucGFnZVkgLSBzbXAudG9wICkgfHwgMCwNCgkJCXRyaWdnZXIgPSB0aGlzLl9jaGFuZ2VbIGEgXTsNCg0KCQl0aGlzLl91cGRhdGVQcmV2UHJvcGVydGllcygpOw0KDQoJCWlmICggIXRyaWdnZXIgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQlkYXRhID0gdHJpZ2dlci5hcHBseSggdGhpcywgWyBldmVudCwgZHgsIGR5IF0gKTsNCg0KCQl0aGlzLl91cGRhdGVWaXJ0dWFsQm91bmRhcmllcyggZXZlbnQuc2hpZnRLZXkgKTsNCgkJaWYgKCB0aGlzLl9hc3BlY3RSYXRpbyB8fCBldmVudC5zaGlmdEtleSApIHsNCgkJCWRhdGEgPSB0aGlzLl91cGRhdGVSYXRpbyggZGF0YSwgZXZlbnQgKTsNCgkJfQ0KDQoJCWRhdGEgPSB0aGlzLl9yZXNwZWN0U2l6ZSggZGF0YSwgZXZlbnQgKTsNCg0KCQl0aGlzLl91cGRhdGVDYWNoZSggZGF0YSApOw0KDQoJCXRoaXMuX3Byb3BhZ2F0ZSggInJlc2l6ZSIsIGV2ZW50ICk7DQoNCgkJcHJvcHMgPSB0aGlzLl9hcHBseUNoYW5nZXMoKTsNCg0KCQlpZiAoICF0aGlzLl9oZWxwZXIgJiYgdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGggKSB7DQoJCQl0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpOw0KCQl9DQoNCgkJaWYgKCAhJC5pc0VtcHR5T2JqZWN0KCBwcm9wcyApICkgew0KCQkJdGhpcy5fdXBkYXRlUHJldlByb3BlcnRpZXMoKTsNCgkJCXRoaXMuX3RyaWdnZXIoICJyZXNpemUiLCBldmVudCwgdGhpcy51aSgpICk7DQoJCQl0aGlzLl9hcHBseUNoYW5nZXMoKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCXRoaXMucmVzaXppbmcgPSBmYWxzZTsNCgkJdmFyIHByLCBpc3RhLCBzb2Zmc2V0aCwgc29mZnNldHcsIHMsIGxlZnQsIHRvcCwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsIHRoYXQgPSB0aGlzOw0KDQoJCWlmICggdGhpcy5faGVscGVyICkgew0KDQoJCQlwciA9IHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHM7DQoJCQlpc3RhID0gcHIubGVuZ3RoICYmICggL3RleHRhcmVhL2kgKS50ZXN0KCBwclsgMCBdLm5vZGVOYW1lICk7DQoJCQlzb2Zmc2V0aCA9IGlzdGEgJiYgdGhpcy5faGFzU2Nyb2xsKCBwclsgMCBdLCAibGVmdCIgKSA/IDAgOiB0aGF0LnNpemVEaWZmLmhlaWdodDsNCgkJCXNvZmZzZXR3ID0gaXN0YSA/IDAgOiB0aGF0LnNpemVEaWZmLndpZHRoOw0KDQoJCQlzID0gew0KCQkJCXdpZHRoOiAoIHRoYXQuaGVscGVyLndpZHRoKCkgIC0gc29mZnNldHcgKSwNCgkJCQloZWlnaHQ6ICggdGhhdC5oZWxwZXIuaGVpZ2h0KCkgLSBzb2Zmc2V0aCApDQoJCQl9Ow0KCQkJbGVmdCA9ICggcGFyc2VGbG9hdCggdGhhdC5lbGVtZW50LmNzcyggImxlZnQiICkgKSArDQoJCQkJKCB0aGF0LnBvc2l0aW9uLmxlZnQgLSB0aGF0Lm9yaWdpbmFsUG9zaXRpb24ubGVmdCApICkgfHwgbnVsbDsNCgkJCXRvcCA9ICggcGFyc2VGbG9hdCggdGhhdC5lbGVtZW50LmNzcyggInRvcCIgKSApICsNCgkJCQkoIHRoYXQucG9zaXRpb24udG9wIC0gdGhhdC5vcmlnaW5hbFBvc2l0aW9uLnRvcCApICkgfHwgbnVsbDsNCg0KCQkJaWYgKCAhby5hbmltYXRlICkgew0KCQkJCXRoaXMuZWxlbWVudC5jc3MoICQuZXh0ZW5kKCBzLCB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH0gKSApOw0KCQkJfQ0KDQoJCQl0aGF0LmhlbHBlci5oZWlnaHQoIHRoYXQuc2l6ZS5oZWlnaHQgKTsNCgkJCXRoYXQuaGVscGVyLndpZHRoKCB0aGF0LnNpemUud2lkdGggKTsNCg0KCQkJaWYgKCB0aGlzLl9oZWxwZXIgJiYgIW8uYW5pbWF0ZSApIHsNCgkJCQl0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpOw0KCQkJfQ0KCQl9DQoNCgkJJCggImJvZHkiICkuY3NzKCAiY3Vyc29yIiwgImF1dG8iICk7DQoNCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoICJ1aS1yZXNpemFibGUtcmVzaXppbmciICk7DQoNCgkJdGhpcy5fcHJvcGFnYXRlKCAic3RvcCIsIGV2ZW50ICk7DQoNCgkJaWYgKCB0aGlzLl9oZWxwZXIgKSB7DQoJCQl0aGlzLmhlbHBlci5yZW1vdmUoKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCglfdXBkYXRlUHJldlByb3BlcnRpZXM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnByZXZQb3NpdGlvbiA9IHsNCgkJCXRvcDogdGhpcy5wb3NpdGlvbi50b3AsDQoJCQlsZWZ0OiB0aGlzLnBvc2l0aW9uLmxlZnQNCgkJfTsNCgkJdGhpcy5wcmV2U2l6ZSA9IHsNCgkJCXdpZHRoOiB0aGlzLnNpemUud2lkdGgsDQoJCQloZWlnaHQ6IHRoaXMuc2l6ZS5oZWlnaHQNCgkJfTsNCgl9LA0KDQoJX2FwcGx5Q2hhbmdlczogZnVuY3Rpb24oKSB7DQoJCXZhciBwcm9wcyA9IHt9Ow0KDQoJCWlmICggdGhpcy5wb3NpdGlvbi50b3AgIT09IHRoaXMucHJldlBvc2l0aW9uLnRvcCApIHsNCgkJCXByb3BzLnRvcCA9IHRoaXMucG9zaXRpb24udG9wICsgInB4IjsNCgkJfQ0KCQlpZiAoIHRoaXMucG9zaXRpb24ubGVmdCAhPT0gdGhpcy5wcmV2UG9zaXRpb24ubGVmdCApIHsNCgkJCXByb3BzLmxlZnQgPSB0aGlzLnBvc2l0aW9uLmxlZnQgKyAicHgiOw0KCQl9DQoJCWlmICggdGhpcy5zaXplLndpZHRoICE9PSB0aGlzLnByZXZTaXplLndpZHRoICkgew0KCQkJcHJvcHMud2lkdGggPSB0aGlzLnNpemUud2lkdGggKyAicHgiOw0KCQl9DQoJCWlmICggdGhpcy5zaXplLmhlaWdodCAhPT0gdGhpcy5wcmV2U2l6ZS5oZWlnaHQgKSB7DQoJCQlwcm9wcy5oZWlnaHQgPSB0aGlzLnNpemUuaGVpZ2h0ICsgInB4IjsNCgkJfQ0KDQoJCXRoaXMuaGVscGVyLmNzcyggcHJvcHMgKTsNCg0KCQlyZXR1cm4gcHJvcHM7DQoJfSwNCg0KCV91cGRhdGVWaXJ0dWFsQm91bmRhcmllczogZnVuY3Rpb24oIGZvcmNlQXNwZWN0UmF0aW8gKSB7DQoJCXZhciBwTWluV2lkdGgsIHBNYXhXaWR0aCwgcE1pbkhlaWdodCwgcE1heEhlaWdodCwgYiwNCgkJCW8gPSB0aGlzLm9wdGlvbnM7DQoNCgkJYiA9IHsNCgkJCW1pbldpZHRoOiB0aGlzLl9pc051bWJlciggby5taW5XaWR0aCApID8gby5taW5XaWR0aCA6IDAsDQoJCQltYXhXaWR0aDogdGhpcy5faXNOdW1iZXIoIG8ubWF4V2lkdGggKSA/IG8ubWF4V2lkdGggOiBJbmZpbml0eSwNCgkJCW1pbkhlaWdodDogdGhpcy5faXNOdW1iZXIoIG8ubWluSGVpZ2h0ICkgPyBvLm1pbkhlaWdodCA6IDAsDQoJCQltYXhIZWlnaHQ6IHRoaXMuX2lzTnVtYmVyKCBvLm1heEhlaWdodCApID8gby5tYXhIZWlnaHQgOiBJbmZpbml0eQ0KCQl9Ow0KDQoJCWlmICggdGhpcy5fYXNwZWN0UmF0aW8gfHwgZm9yY2VBc3BlY3RSYXRpbyApIHsNCgkJCXBNaW5XaWR0aCA9IGIubWluSGVpZ2h0ICogdGhpcy5hc3BlY3RSYXRpbzsNCgkJCXBNaW5IZWlnaHQgPSBiLm1pbldpZHRoIC8gdGhpcy5hc3BlY3RSYXRpbzsNCgkJCXBNYXhXaWR0aCA9IGIubWF4SGVpZ2h0ICogdGhpcy5hc3BlY3RSYXRpbzsNCgkJCXBNYXhIZWlnaHQgPSBiLm1heFdpZHRoIC8gdGhpcy5hc3BlY3RSYXRpbzsNCg0KCQkJaWYgKCBwTWluV2lkdGggPiBiLm1pbldpZHRoICkgew0KCQkJCWIubWluV2lkdGggPSBwTWluV2lkdGg7DQoJCQl9DQoJCQlpZiAoIHBNaW5IZWlnaHQgPiBiLm1pbkhlaWdodCApIHsNCgkJCQliLm1pbkhlaWdodCA9IHBNaW5IZWlnaHQ7DQoJCQl9DQoJCQlpZiAoIHBNYXhXaWR0aCA8IGIubWF4V2lkdGggKSB7DQoJCQkJYi5tYXhXaWR0aCA9IHBNYXhXaWR0aDsNCgkJCX0NCgkJCWlmICggcE1heEhlaWdodCA8IGIubWF4SGVpZ2h0ICkgew0KCQkJCWIubWF4SGVpZ2h0ID0gcE1heEhlaWdodDsNCgkJCX0NCgkJfQ0KCQl0aGlzLl92Qm91bmRhcmllcyA9IGI7DQoJfSwNCg0KCV91cGRhdGVDYWNoZTogZnVuY3Rpb24oIGRhdGEgKSB7DQoJCXRoaXMub2Zmc2V0ID0gdGhpcy5oZWxwZXIub2Zmc2V0KCk7DQoJCWlmICggdGhpcy5faXNOdW1iZXIoIGRhdGEubGVmdCApICkgew0KCQkJdGhpcy5wb3NpdGlvbi5sZWZ0ID0gZGF0YS5sZWZ0Ow0KCQl9DQoJCWlmICggdGhpcy5faXNOdW1iZXIoIGRhdGEudG9wICkgKSB7DQoJCQl0aGlzLnBvc2l0aW9uLnRvcCA9IGRhdGEudG9wOw0KCQl9DQoJCWlmICggdGhpcy5faXNOdW1iZXIoIGRhdGEuaGVpZ2h0ICkgKSB7DQoJCQl0aGlzLnNpemUuaGVpZ2h0ID0gZGF0YS5oZWlnaHQ7DQoJCX0NCgkJaWYgKCB0aGlzLl9pc051bWJlciggZGF0YS53aWR0aCApICkgew0KCQkJdGhpcy5zaXplLndpZHRoID0gZGF0YS53aWR0aDsNCgkJfQ0KCX0sDQoNCglfdXBkYXRlUmF0aW86IGZ1bmN0aW9uKCBkYXRhICkgew0KDQoJCXZhciBjcG9zID0gdGhpcy5wb3NpdGlvbiwNCgkJCWNzaXplID0gdGhpcy5zaXplLA0KCQkJYSA9IHRoaXMuYXhpczsNCg0KCQlpZiAoIHRoaXMuX2lzTnVtYmVyKCBkYXRhLmhlaWdodCApICkgew0KCQkJZGF0YS53aWR0aCA9ICggZGF0YS5oZWlnaHQgKiB0aGlzLmFzcGVjdFJhdGlvICk7DQoJCX0gZWxzZSBpZiAoIHRoaXMuX2lzTnVtYmVyKCBkYXRhLndpZHRoICkgKSB7DQoJCQlkYXRhLmhlaWdodCA9ICggZGF0YS53aWR0aCAvIHRoaXMuYXNwZWN0UmF0aW8gKTsNCgkJfQ0KDQoJCWlmICggYSA9PT0gInN3IiApIHsNCgkJCWRhdGEubGVmdCA9IGNwb3MubGVmdCArICggY3NpemUud2lkdGggLSBkYXRhLndpZHRoICk7DQoJCQlkYXRhLnRvcCA9IG51bGw7DQoJCX0NCgkJaWYgKCBhID09PSAibnciICkgew0KCQkJZGF0YS50b3AgPSBjcG9zLnRvcCArICggY3NpemUuaGVpZ2h0IC0gZGF0YS5oZWlnaHQgKTsNCgkJCWRhdGEubGVmdCA9IGNwb3MubGVmdCArICggY3NpemUud2lkdGggLSBkYXRhLndpZHRoICk7DQoJCX0NCg0KCQlyZXR1cm4gZGF0YTsNCgl9LA0KDQoJX3Jlc3BlY3RTaXplOiBmdW5jdGlvbiggZGF0YSApIHsNCg0KCQl2YXIgbyA9IHRoaXMuX3ZCb3VuZGFyaWVzLA0KCQkJYSA9IHRoaXMuYXhpcywNCgkJCWlzbWF4dyA9IHRoaXMuX2lzTnVtYmVyKCBkYXRhLndpZHRoICkgJiYgby5tYXhXaWR0aCAmJiAoIG8ubWF4V2lkdGggPCBkYXRhLndpZHRoICksDQoJCQlpc21heGggPSB0aGlzLl9pc051bWJlciggZGF0YS5oZWlnaHQgKSAmJiBvLm1heEhlaWdodCAmJiAoIG8ubWF4SGVpZ2h0IDwgZGF0YS5oZWlnaHQgKSwNCgkJCWlzbWludyA9IHRoaXMuX2lzTnVtYmVyKCBkYXRhLndpZHRoICkgJiYgby5taW5XaWR0aCAmJiAoIG8ubWluV2lkdGggPiBkYXRhLndpZHRoICksDQoJCQlpc21pbmggPSB0aGlzLl9pc051bWJlciggZGF0YS5oZWlnaHQgKSAmJiBvLm1pbkhlaWdodCAmJiAoIG8ubWluSGVpZ2h0ID4gZGF0YS5oZWlnaHQgKSwNCgkJCWR3ID0gdGhpcy5vcmlnaW5hbFBvc2l0aW9uLmxlZnQgKyB0aGlzLm9yaWdpbmFsU2l6ZS53aWR0aCwNCgkJCWRoID0gdGhpcy5vcmlnaW5hbFBvc2l0aW9uLnRvcCArIHRoaXMub3JpZ2luYWxTaXplLmhlaWdodCwNCgkJCWN3ID0gL3N3fG53fHcvLnRlc3QoIGEgKSwgY2ggPSAvbnd8bmV8bi8udGVzdCggYSApOw0KCQlpZiAoIGlzbWludyApIHsNCgkJCWRhdGEud2lkdGggPSBvLm1pbldpZHRoOw0KCQl9DQoJCWlmICggaXNtaW5oICkgew0KCQkJZGF0YS5oZWlnaHQgPSBvLm1pbkhlaWdodDsNCgkJfQ0KCQlpZiAoIGlzbWF4dyApIHsNCgkJCWRhdGEud2lkdGggPSBvLm1heFdpZHRoOw0KCQl9DQoJCWlmICggaXNtYXhoICkgew0KCQkJZGF0YS5oZWlnaHQgPSBvLm1heEhlaWdodDsNCgkJfQ0KDQoJCWlmICggaXNtaW53ICYmIGN3ICkgew0KCQkJZGF0YS5sZWZ0ID0gZHcgLSBvLm1pbldpZHRoOw0KCQl9DQoJCWlmICggaXNtYXh3ICYmIGN3ICkgew0KCQkJZGF0YS5sZWZ0ID0gZHcgLSBvLm1heFdpZHRoOw0KCQl9DQoJCWlmICggaXNtaW5oICYmIGNoICkgew0KCQkJZGF0YS50b3AgPSBkaCAtIG8ubWluSGVpZ2h0Ow0KCQl9DQoJCWlmICggaXNtYXhoICYmIGNoICkgew0KCQkJZGF0YS50b3AgPSBkaCAtIG8ubWF4SGVpZ2h0Ow0KCQl9DQoNCgkJLy8gRml4aW5nIGp1bXAgZXJyb3Igb24gdG9wL2xlZnQgLSBidWcgIzIzMzANCgkJaWYgKCAhZGF0YS53aWR0aCAmJiAhZGF0YS5oZWlnaHQgJiYgIWRhdGEubGVmdCAmJiBkYXRhLnRvcCApIHsNCgkJCWRhdGEudG9wID0gbnVsbDsNCgkJfSBlbHNlIGlmICggIWRhdGEud2lkdGggJiYgIWRhdGEuaGVpZ2h0ICYmICFkYXRhLnRvcCAmJiBkYXRhLmxlZnQgKSB7DQoJCQlkYXRhLmxlZnQgPSBudWxsOw0KCQl9DQoNCgkJcmV0dXJuIGRhdGE7DQoJfSwNCg0KCV9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgaSA9IDAsDQoJCQl3aWR0aHMgPSBbXSwNCgkJCWJvcmRlcnMgPSBbDQoJCQkJZWxlbWVudC5jc3MoICJib3JkZXJUb3BXaWR0aCIgKSwNCgkJCQllbGVtZW50LmNzcyggImJvcmRlclJpZ2h0V2lkdGgiICksDQoJCQkJZWxlbWVudC5jc3MoICJib3JkZXJCb3R0b21XaWR0aCIgKSwNCgkJCQllbGVtZW50LmNzcyggImJvcmRlckxlZnRXaWR0aCIgKQ0KCQkJXSwNCgkJCXBhZGRpbmdzID0gWw0KCQkJCWVsZW1lbnQuY3NzKCAicGFkZGluZ1RvcCIgKSwNCgkJCQllbGVtZW50LmNzcyggInBhZGRpbmdSaWdodCIgKSwNCgkJCQllbGVtZW50LmNzcyggInBhZGRpbmdCb3R0b20iICksDQoJCQkJZWxlbWVudC5jc3MoICJwYWRkaW5nTGVmdCIgKQ0KCQkJXTsNCg0KCQlmb3IgKCA7IGkgPCA0OyBpKysgKSB7DQoJCQl3aWR0aHNbIGkgXSA9ICggcGFyc2VGbG9hdCggYm9yZGVyc1sgaSBdICkgfHwgMCApOw0KCQkJd2lkdGhzWyBpIF0gKz0gKCBwYXJzZUZsb2F0KCBwYWRkaW5nc1sgaSBdICkgfHwgMCApOw0KCQl9DQoNCgkJcmV0dXJuIHsNCgkJCWhlaWdodDogd2lkdGhzWyAwIF0gKyB3aWR0aHNbIDIgXSwNCgkJCXdpZHRoOiB3aWR0aHNbIDEgXSArIHdpZHRoc1sgMyBdDQoJCX07DQoJfSwNCg0KCV9wcm9wb3J0aW9uYWxseVJlc2l6ZTogZnVuY3Rpb24oKSB7DQoNCgkJaWYgKCAhdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5sZW5ndGggKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgcHJlbCwNCgkJCWkgPSAwLA0KCQkJZWxlbWVudCA9IHRoaXMuaGVscGVyIHx8IHRoaXMuZWxlbWVudDsNCg0KCQlmb3IgKCA7IGkgPCB0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLmxlbmd0aDsgaSsrICkgew0KDQoJCQlwcmVsID0gdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50c1sgaSBdOw0KDQoJCQkvLyBUT0RPOiBTZWVtcyBsaWtlIGEgYnVnIHRvIGNhY2hlIHRoaXMub3V0ZXJEaW1lbnNpb25zDQoJCQkvLyBjb25zaWRlcmluZyB0aGF0IHdlIGFyZSBpbiBhIGxvb3AuDQoJCQlpZiAoICF0aGlzLm91dGVyRGltZW5zaW9ucyApIHsNCgkJCQl0aGlzLm91dGVyRGltZW5zaW9ucyA9IHRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyggcHJlbCApOw0KCQkJfQ0KDQoJCQlwcmVsLmNzcyggew0KCQkJCWhlaWdodDogKCBlbGVtZW50LmhlaWdodCgpIC0gdGhpcy5vdXRlckRpbWVuc2lvbnMuaGVpZ2h0ICkgfHwgMCwNCgkJCQl3aWR0aDogKCBlbGVtZW50LndpZHRoKCkgLSB0aGlzLm91dGVyRGltZW5zaW9ucy53aWR0aCApIHx8IDANCgkJCX0gKTsNCg0KCQl9DQoNCgl9LA0KDQoJX3JlbmRlclByb3h5OiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgZWwgPSB0aGlzLmVsZW1lbnQsIG8gPSB0aGlzLm9wdGlvbnM7DQoJCXRoaXMuZWxlbWVudE9mZnNldCA9IGVsLm9mZnNldCgpOw0KDQoJCWlmICggdGhpcy5faGVscGVyICkgew0KDQoJCQl0aGlzLmhlbHBlciA9IHRoaXMuaGVscGVyIHx8ICQoICI8ZGl2IHN0eWxlPSdvdmVyZmxvdzpoaWRkZW47Jz48L2Rpdj4iICk7DQoNCgkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmhlbHBlciwgdGhpcy5faGVscGVyICk7DQoJCQl0aGlzLmhlbHBlci5jc3MoIHsNCgkJCQl3aWR0aDogdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSwNCgkJCQloZWlnaHQ6IHRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLA0KCQkJCXBvc2l0aW9uOiAiYWJzb2x1dGUiLA0KCQkJCWxlZnQ6IHRoaXMuZWxlbWVudE9mZnNldC5sZWZ0ICsgInB4IiwNCgkJCQl0b3A6IHRoaXMuZWxlbWVudE9mZnNldC50b3AgKyAicHgiLA0KCQkJCXpJbmRleDogKytvLnpJbmRleCAvL1RPRE86IERvbid0IG1vZGlmeSBvcHRpb24NCgkJCX0gKTsNCg0KCQkJdGhpcy5oZWxwZXINCgkJCQkuYXBwZW5kVG8oICJib2R5IiApDQoJCQkJLmRpc2FibGVTZWxlY3Rpb24oKTsNCg0KCQl9IGVsc2Ugew0KCQkJdGhpcy5oZWxwZXIgPSB0aGlzLmVsZW1lbnQ7DQoJCX0NCg0KCX0sDQoNCglfY2hhbmdlOiB7DQoJCWU6IGZ1bmN0aW9uKCBldmVudCwgZHggKSB7DQoJCQlyZXR1cm4geyB3aWR0aDogdGhpcy5vcmlnaW5hbFNpemUud2lkdGggKyBkeCB9Ow0KCQl9LA0KCQl3OiBmdW5jdGlvbiggZXZlbnQsIGR4ICkgew0KCQkJdmFyIGNzID0gdGhpcy5vcmlnaW5hbFNpemUsIHNwID0gdGhpcy5vcmlnaW5hbFBvc2l0aW9uOw0KCQkJcmV0dXJuIHsgbGVmdDogc3AubGVmdCArIGR4LCB3aWR0aDogY3Mud2lkdGggLSBkeCB9Ow0KCQl9LA0KCQluOiBmdW5jdGlvbiggZXZlbnQsIGR4LCBkeSApIHsNCgkJCXZhciBjcyA9IHRoaXMub3JpZ2luYWxTaXplLCBzcCA9IHRoaXMub3JpZ2luYWxQb3NpdGlvbjsNCgkJCXJldHVybiB7IHRvcDogc3AudG9wICsgZHksIGhlaWdodDogY3MuaGVpZ2h0IC0gZHkgfTsNCgkJfSwNCgkJczogZnVuY3Rpb24oIGV2ZW50LCBkeCwgZHkgKSB7DQoJCQlyZXR1cm4geyBoZWlnaHQ6IHRoaXMub3JpZ2luYWxTaXplLmhlaWdodCArIGR5IH07DQoJCX0sDQoJCXNlOiBmdW5jdGlvbiggZXZlbnQsIGR4LCBkeSApIHsNCgkJCXJldHVybiAkLmV4dGVuZCggdGhpcy5fY2hhbmdlLnMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLA0KCQkJCXRoaXMuX2NoYW5nZS5lLmFwcGx5KCB0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSApICk7DQoJCX0sDQoJCXN3OiBmdW5jdGlvbiggZXZlbnQsIGR4LCBkeSApIHsNCgkJCXJldHVybiAkLmV4dGVuZCggdGhpcy5fY2hhbmdlLnMuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLA0KCQkJCXRoaXMuX2NoYW5nZS53LmFwcGx5KCB0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSApICk7DQoJCX0sDQoJCW5lOiBmdW5jdGlvbiggZXZlbnQsIGR4LCBkeSApIHsNCgkJCXJldHVybiAkLmV4dGVuZCggdGhpcy5fY2hhbmdlLm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLA0KCQkJCXRoaXMuX2NoYW5nZS5lLmFwcGx5KCB0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSApICk7DQoJCX0sDQoJCW53OiBmdW5jdGlvbiggZXZlbnQsIGR4LCBkeSApIHsNCgkJCXJldHVybiAkLmV4dGVuZCggdGhpcy5fY2hhbmdlLm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLA0KCQkJCXRoaXMuX2NoYW5nZS53LmFwcGx5KCB0aGlzLCBbIGV2ZW50LCBkeCwgZHkgXSApICk7DQoJCX0NCgl9LA0KDQoJX3Byb3BhZ2F0ZTogZnVuY3Rpb24oIG4sIGV2ZW50ICkgew0KCQkkLnVpLnBsdWdpbi5jYWxsKCB0aGlzLCBuLCBbIGV2ZW50LCB0aGlzLnVpKCkgXSApOw0KCQkoIG4gIT09ICJyZXNpemUiICYmIHRoaXMuX3RyaWdnZXIoIG4sIGV2ZW50LCB0aGlzLnVpKCkgKSApOw0KCX0sDQoNCglwbHVnaW5zOiB7fSwNCg0KCXVpOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHsNCgkJCW9yaWdpbmFsRWxlbWVudDogdGhpcy5vcmlnaW5hbEVsZW1lbnQsDQoJCQllbGVtZW50OiB0aGlzLmVsZW1lbnQsDQoJCQloZWxwZXI6IHRoaXMuaGVscGVyLA0KCQkJcG9zaXRpb246IHRoaXMucG9zaXRpb24sDQoJCQlzaXplOiB0aGlzLnNpemUsDQoJCQlvcmlnaW5hbFNpemU6IHRoaXMub3JpZ2luYWxTaXplLA0KCQkJb3JpZ2luYWxQb3NpdGlvbjogdGhpcy5vcmlnaW5hbFBvc2l0aW9uDQoJCX07DQoJfQ0KDQp9ICk7DQoNCi8qDQogKiBSZXNpemFibGUgRXh0ZW5zaW9ucw0KICovDQoNCiQudWkucGx1Z2luLmFkZCggInJlc2l6YWJsZSIsICJhbmltYXRlIiwgew0KDQoJc3RvcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQlwciA9IHRoYXQuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMsDQoJCQlpc3RhID0gcHIubGVuZ3RoICYmICggL3RleHRhcmVhL2kgKS50ZXN0KCBwclsgMCBdLm5vZGVOYW1lICksDQoJCQlzb2Zmc2V0aCA9IGlzdGEgJiYgdGhhdC5faGFzU2Nyb2xsKCBwclsgMCBdLCAibGVmdCIgKSA/IDAgOiB0aGF0LnNpemVEaWZmLmhlaWdodCwNCgkJCXNvZmZzZXR3ID0gaXN0YSA/IDAgOiB0aGF0LnNpemVEaWZmLndpZHRoLA0KCQkJc3R5bGUgPSB7DQoJCQkJd2lkdGg6ICggdGhhdC5zaXplLndpZHRoIC0gc29mZnNldHcgKSwNCgkJCQloZWlnaHQ6ICggdGhhdC5zaXplLmhlaWdodCAtIHNvZmZzZXRoICkNCgkJCX0sDQoJCQlsZWZ0ID0gKCBwYXJzZUZsb2F0KCB0aGF0LmVsZW1lbnQuY3NzKCAibGVmdCIgKSApICsNCgkJCQkoIHRoYXQucG9zaXRpb24ubGVmdCAtIHRoYXQub3JpZ2luYWxQb3NpdGlvbi5sZWZ0ICkgKSB8fCBudWxsLA0KCQkJdG9wID0gKCBwYXJzZUZsb2F0KCB0aGF0LmVsZW1lbnQuY3NzKCAidG9wIiApICkgKw0KCQkJCSggdGhhdC5wb3NpdGlvbi50b3AgLSB0aGF0Lm9yaWdpbmFsUG9zaXRpb24udG9wICkgKSB8fCBudWxsOw0KDQoJCXRoYXQuZWxlbWVudC5hbmltYXRlKA0KCQkJJC5leHRlbmQoIHN0eWxlLCB0b3AgJiYgbGVmdCA/IHsgdG9wOiB0b3AsIGxlZnQ6IGxlZnQgfSA6IHt9ICksIHsNCgkJCQlkdXJhdGlvbjogby5hbmltYXRlRHVyYXRpb24sDQoJCQkJZWFzaW5nOiBvLmFuaW1hdGVFYXNpbmcsDQoJCQkJc3RlcDogZnVuY3Rpb24oKSB7DQoNCgkJCQkJdmFyIGRhdGEgPSB7DQoJCQkJCQl3aWR0aDogcGFyc2VGbG9hdCggdGhhdC5lbGVtZW50LmNzcyggIndpZHRoIiApICksDQoJCQkJCQloZWlnaHQ6IHBhcnNlRmxvYXQoIHRoYXQuZWxlbWVudC5jc3MoICJoZWlnaHQiICkgKSwNCgkJCQkJCXRvcDogcGFyc2VGbG9hdCggdGhhdC5lbGVtZW50LmNzcyggInRvcCIgKSApLA0KCQkJCQkJbGVmdDogcGFyc2VGbG9hdCggdGhhdC5lbGVtZW50LmNzcyggImxlZnQiICkgKQ0KCQkJCQl9Ow0KDQoJCQkJCWlmICggcHIgJiYgcHIubGVuZ3RoICkgew0KCQkJCQkJJCggcHJbIDAgXSApLmNzcyggeyB3aWR0aDogZGF0YS53aWR0aCwgaGVpZ2h0OiBkYXRhLmhlaWdodCB9ICk7DQoJCQkJCX0NCg0KCQkJCQkvLyBQcm9wYWdhdGluZyByZXNpemUsIGFuZCB1cGRhdGluZyB2YWx1ZXMgZm9yIGVhY2ggYW5pbWF0aW9uIHN0ZXANCgkJCQkJdGhhdC5fdXBkYXRlQ2FjaGUoIGRhdGEgKTsNCgkJCQkJdGhhdC5fcHJvcGFnYXRlKCAicmVzaXplIiwgZXZlbnQgKTsNCg0KCQkJCX0NCgkJCX0NCgkJKTsNCgl9DQoNCn0gKTsNCg0KJC51aS5wbHVnaW4uYWRkKCAicmVzaXphYmxlIiwgImNvbnRhaW5tZW50Iiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCwgcCwgY28sIGNoLCBjdywgd2lkdGgsIGhlaWdodCwNCgkJCXRoYXQgPSAkKCB0aGlzICkucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJZWwgPSB0aGF0LmVsZW1lbnQsDQoJCQlvYyA9IG8uY29udGFpbm1lbnQsDQoNCgkJCWNlID0gKCBvYyBpbnN0YW5jZW9mICQgKSA/DQoJCQkJb2MuZ2V0KCAwICkgOg0KCQkJCSggL3BhcmVudC8udGVzdCggb2MgKSApID8gZWwucGFyZW50KCkuZ2V0KCAwICkgOiBvYzsNCg0KCQlpZiAoICFjZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoYXQuY29udGFpbmVyRWxlbWVudCA9ICQoIGNlICk7DQoNCgkJaWYgKCAvZG9jdW1lbnQvLnRlc3QoIG9jICkgfHwgb2MgPT09IGRvY3VtZW50ICkgew0KCQkJdGhhdC5jb250YWluZXJPZmZzZXQgPSB7DQoJCQkJbGVmdDogMCwNCgkJCQl0b3A6IDANCgkJCX07DQoJCQl0aGF0LmNvbnRhaW5lclBvc2l0aW9uID0gew0KCQkJCWxlZnQ6IDAsDQoJCQkJdG9wOiAwDQoJCQl9Ow0KDQoJCQl0aGF0LnBhcmVudERhdGEgPSB7DQoJCQkJZWxlbWVudDogJCggZG9jdW1lbnQgKSwNCgkJCQlsZWZ0OiAwLA0KCQkJCXRvcDogMCwNCgkJCQl3aWR0aDogJCggZG9jdW1lbnQgKS53aWR0aCgpLA0KCQkJCWhlaWdodDogJCggZG9jdW1lbnQgKS5oZWlnaHQoKSB8fCBkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0DQoJCQl9Ow0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudCA9ICQoIGNlICk7DQoJCQlwID0gW107DQoJCQkkKCBbICJUb3AiLCAiUmlnaHQiLCAiTGVmdCIsICJCb3R0b20iIF0gKS5lYWNoKCBmdW5jdGlvbiggaSwgbmFtZSApIHsNCgkJCQlwWyBpIF0gPSB0aGF0Ll9udW0oIGVsZW1lbnQuY3NzKCAicGFkZGluZyIgKyBuYW1lICkgKTsNCgkJCX0gKTsNCg0KCQkJdGhhdC5jb250YWluZXJPZmZzZXQgPSBlbGVtZW50Lm9mZnNldCgpOw0KCQkJdGhhdC5jb250YWluZXJQb3NpdGlvbiA9IGVsZW1lbnQucG9zaXRpb24oKTsNCgkJCXRoYXQuY29udGFpbmVyU2l6ZSA9IHsNCgkJCQloZWlnaHQ6ICggZWxlbWVudC5pbm5lckhlaWdodCgpIC0gcFsgMyBdICksDQoJCQkJd2lkdGg6ICggZWxlbWVudC5pbm5lcldpZHRoKCkgLSBwWyAxIF0gKQ0KCQkJfTsNCg0KCQkJY28gPSB0aGF0LmNvbnRhaW5lck9mZnNldDsNCgkJCWNoID0gdGhhdC5jb250YWluZXJTaXplLmhlaWdodDsNCgkJCWN3ID0gdGhhdC5jb250YWluZXJTaXplLndpZHRoOw0KCQkJd2lkdGggPSAoIHRoYXQuX2hhc1Njcm9sbCAoIGNlLCAibGVmdCIgKSA/IGNlLnNjcm9sbFdpZHRoIDogY3cgKTsNCgkJCWhlaWdodCA9ICggdGhhdC5faGFzU2Nyb2xsICggY2UgKSA/IGNlLnNjcm9sbEhlaWdodCA6IGNoICkgOw0KDQoJCQl0aGF0LnBhcmVudERhdGEgPSB7DQoJCQkJZWxlbWVudDogY2UsDQoJCQkJbGVmdDogY28ubGVmdCwNCgkJCQl0b3A6IGNvLnRvcCwNCgkJCQl3aWR0aDogd2lkdGgsDQoJCQkJaGVpZ2h0OiBoZWlnaHQNCgkJCX07DQoJCX0NCgl9LA0KDQoJcmVzaXplOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciB3b3NldCwgaG9zZXQsIGlzUGFyZW50LCBpc09mZnNldFJlbGF0aXZlLA0KCQkJdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQljbyA9IHRoYXQuY29udGFpbmVyT2Zmc2V0LA0KCQkJY3AgPSB0aGF0LnBvc2l0aW9uLA0KCQkJcFJhdGlvID0gdGhhdC5fYXNwZWN0UmF0aW8gfHwgZXZlbnQuc2hpZnRLZXksDQoJCQljb3AgPSB7DQoJCQkJdG9wOiAwLA0KCQkJCWxlZnQ6IDANCgkJCX0sDQoJCQljZSA9IHRoYXQuY29udGFpbmVyRWxlbWVudCwNCgkJCWNvbnRpbnVlUmVzaXplID0gdHJ1ZTsNCg0KCQlpZiAoIGNlWyAwIF0gIT09IGRvY3VtZW50ICYmICggL3N0YXRpYy8gKS50ZXN0KCBjZS5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJY29wID0gY287DQoJCX0NCg0KCQlpZiAoIGNwLmxlZnQgPCAoIHRoYXQuX2hlbHBlciA/IGNvLmxlZnQgOiAwICkgKSB7DQoJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnNpemUud2lkdGggKw0KCQkJCSggdGhhdC5faGVscGVyID8NCgkJCQkJKCB0aGF0LnBvc2l0aW9uLmxlZnQgLSBjby5sZWZ0ICkgOg0KCQkJCQkoIHRoYXQucG9zaXRpb24ubGVmdCAtIGNvcC5sZWZ0ICkgKTsNCg0KCQkJaWYgKCBwUmF0aW8gKSB7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQuc2l6ZS53aWR0aCAvIHRoYXQuYXNwZWN0UmF0aW87DQoJCQkJY29udGludWVSZXNpemUgPSBmYWxzZTsNCgkJCX0NCgkJCXRoYXQucG9zaXRpb24ubGVmdCA9IG8uaGVscGVyID8gY28ubGVmdCA6IDA7DQoJCX0NCg0KCQlpZiAoIGNwLnRvcCA8ICggdGhhdC5faGVscGVyID8gY28udG9wIDogMCApICkgew0KCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQuc2l6ZS5oZWlnaHQgKw0KCQkJCSggdGhhdC5faGVscGVyID8NCgkJCQkJKCB0aGF0LnBvc2l0aW9uLnRvcCAtIGNvLnRvcCApIDoNCgkJCQkJdGhhdC5wb3NpdGlvbi50b3AgKTsNCg0KCQkJaWYgKCBwUmF0aW8gKSB7DQoJCQkJdGhhdC5zaXplLndpZHRoID0gdGhhdC5zaXplLmhlaWdodCAqIHRoYXQuYXNwZWN0UmF0aW87DQoJCQkJY29udGludWVSZXNpemUgPSBmYWxzZTsNCgkJCX0NCgkJCXRoYXQucG9zaXRpb24udG9wID0gdGhhdC5faGVscGVyID8gY28udG9wIDogMDsNCgkJfQ0KDQoJCWlzUGFyZW50ID0gdGhhdC5jb250YWluZXJFbGVtZW50LmdldCggMCApID09PSB0aGF0LmVsZW1lbnQucGFyZW50KCkuZ2V0KCAwICk7DQoJCWlzT2Zmc2V0UmVsYXRpdmUgPSAvcmVsYXRpdmV8YWJzb2x1dGUvLnRlc3QoIHRoYXQuY29udGFpbmVyRWxlbWVudC5jc3MoICJwb3NpdGlvbiIgKSApOw0KDQoJCWlmICggaXNQYXJlbnQgJiYgaXNPZmZzZXRSZWxhdGl2ZSApIHsNCgkJCXRoYXQub2Zmc2V0LmxlZnQgPSB0aGF0LnBhcmVudERhdGEubGVmdCArIHRoYXQucG9zaXRpb24ubGVmdDsNCgkJCXRoYXQub2Zmc2V0LnRvcCA9IHRoYXQucGFyZW50RGF0YS50b3AgKyB0aGF0LnBvc2l0aW9uLnRvcDsNCgkJfSBlbHNlIHsNCgkJCXRoYXQub2Zmc2V0LmxlZnQgPSB0aGF0LmVsZW1lbnQub2Zmc2V0KCkubGVmdDsNCgkJCXRoYXQub2Zmc2V0LnRvcCA9IHRoYXQuZWxlbWVudC5vZmZzZXQoKS50b3A7DQoJCX0NCg0KCQl3b3NldCA9IE1hdGguYWJzKCB0aGF0LnNpemVEaWZmLndpZHRoICsNCgkJCSggdGhhdC5faGVscGVyID8NCgkJCQl0aGF0Lm9mZnNldC5sZWZ0IC0gY29wLmxlZnQgOg0KCQkJCSggdGhhdC5vZmZzZXQubGVmdCAtIGNvLmxlZnQgKSApICk7DQoNCgkJaG9zZXQgPSBNYXRoLmFicyggdGhhdC5zaXplRGlmZi5oZWlnaHQgKw0KCQkJKCB0aGF0Ll9oZWxwZXIgPw0KCQkJCXRoYXQub2Zmc2V0LnRvcCAtIGNvcC50b3AgOg0KCQkJCSggdGhhdC5vZmZzZXQudG9wIC0gY28udG9wICkgKSApOw0KDQoJCWlmICggd29zZXQgKyB0aGF0LnNpemUud2lkdGggPj0gdGhhdC5wYXJlbnREYXRhLndpZHRoICkgew0KCQkJdGhhdC5zaXplLndpZHRoID0gdGhhdC5wYXJlbnREYXRhLndpZHRoIC0gd29zZXQ7DQoJCQlpZiAoIHBSYXRpbyApIHsNCgkJCQl0aGF0LnNpemUuaGVpZ2h0ID0gdGhhdC5zaXplLndpZHRoIC8gdGhhdC5hc3BlY3RSYXRpbzsNCgkJCQljb250aW51ZVJlc2l6ZSA9IGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCBob3NldCArIHRoYXQuc2l6ZS5oZWlnaHQgPj0gdGhhdC5wYXJlbnREYXRhLmhlaWdodCApIHsNCgkJCXRoYXQuc2l6ZS5oZWlnaHQgPSB0aGF0LnBhcmVudERhdGEuaGVpZ2h0IC0gaG9zZXQ7DQoJCQlpZiAoIHBSYXRpbyApIHsNCgkJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnNpemUuaGVpZ2h0ICogdGhhdC5hc3BlY3RSYXRpbzsNCgkJCQljb250aW51ZVJlc2l6ZSA9IGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCAhY29udGludWVSZXNpemUgKSB7DQoJCQl0aGF0LnBvc2l0aW9uLmxlZnQgPSB0aGF0LnByZXZQb3NpdGlvbi5sZWZ0Ow0KCQkJdGhhdC5wb3NpdGlvbi50b3AgPSB0aGF0LnByZXZQb3NpdGlvbi50b3A7DQoJCQl0aGF0LnNpemUud2lkdGggPSB0aGF0LnByZXZTaXplLndpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IHRoYXQucHJldlNpemUuaGVpZ2h0Ow0KCQl9DQoJfSwNCg0KCXN0b3A6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnMsDQoJCQljbyA9IHRoYXQuY29udGFpbmVyT2Zmc2V0LA0KCQkJY29wID0gdGhhdC5jb250YWluZXJQb3NpdGlvbiwNCgkJCWNlID0gdGhhdC5jb250YWluZXJFbGVtZW50LA0KCQkJaGVscGVyID0gJCggdGhhdC5oZWxwZXIgKSwNCgkJCWhvID0gaGVscGVyLm9mZnNldCgpLA0KCQkJdyA9IGhlbHBlci5vdXRlcldpZHRoKCkgLSB0aGF0LnNpemVEaWZmLndpZHRoLA0KCQkJaCA9IGhlbHBlci5vdXRlckhlaWdodCgpIC0gdGhhdC5zaXplRGlmZi5oZWlnaHQ7DQoNCgkJaWYgKCB0aGF0Ll9oZWxwZXIgJiYgIW8uYW5pbWF0ZSAmJiAoIC9yZWxhdGl2ZS8gKS50ZXN0KCBjZS5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJJCggdGhpcyApLmNzcyggew0KCQkJCWxlZnQ6IGhvLmxlZnQgLSBjb3AubGVmdCAtIGNvLmxlZnQsDQoJCQkJd2lkdGg6IHcsDQoJCQkJaGVpZ2h0OiBoDQoJCQl9ICk7DQoJCX0NCg0KCQlpZiAoIHRoYXQuX2hlbHBlciAmJiAhby5hbmltYXRlICYmICggL3N0YXRpYy8gKS50ZXN0KCBjZS5jc3MoICJwb3NpdGlvbiIgKSApICkgew0KCQkJJCggdGhpcyApLmNzcyggew0KCQkJCWxlZnQ6IGhvLmxlZnQgLSBjb3AubGVmdCAtIGNvLmxlZnQsDQoJCQkJd2lkdGg6IHcsDQoJCQkJaGVpZ2h0OiBoDQoJCQl9ICk7DQoJCX0NCgl9DQp9ICk7DQoNCiQudWkucGx1Z2luLmFkZCggInJlc2l6YWJsZSIsICJhbHNvUmVzaXplIiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9ICQoIHRoaXMgKS5yZXNpemFibGUoICJpbnN0YW5jZSIgKSwNCgkJCW8gPSB0aGF0Lm9wdGlvbnM7DQoNCgkJJCggby5hbHNvUmVzaXplICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgZWwgPSAkKCB0aGlzICk7DQoJCQllbC5kYXRhKCAidWktcmVzaXphYmxlLWFsc29yZXNpemUiLCB7DQoJCQkJd2lkdGg6IHBhcnNlRmxvYXQoIGVsLndpZHRoKCkgKSwgaGVpZ2h0OiBwYXJzZUZsb2F0KCBlbC5oZWlnaHQoKSApLA0KCQkJCWxlZnQ6IHBhcnNlRmxvYXQoIGVsLmNzcyggImxlZnQiICkgKSwgdG9wOiBwYXJzZUZsb2F0KCBlbC5jc3MoICJ0b3AiICkgKQ0KCQkJfSApOw0KCQl9ICk7DQoJfSwNCg0KCXJlc2l6ZTogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJdmFyIHRoYXQgPSAkKCB0aGlzICkucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJb3MgPSB0aGF0Lm9yaWdpbmFsU2l6ZSwNCgkJCW9wID0gdGhhdC5vcmlnaW5hbFBvc2l0aW9uLA0KCQkJZGVsdGEgPSB7DQoJCQkJaGVpZ2h0OiAoIHRoYXQuc2l6ZS5oZWlnaHQgLSBvcy5oZWlnaHQgKSB8fCAwLA0KCQkJCXdpZHRoOiAoIHRoYXQuc2l6ZS53aWR0aCAtIG9zLndpZHRoICkgfHwgMCwNCgkJCQl0b3A6ICggdGhhdC5wb3NpdGlvbi50b3AgLSBvcC50b3AgKSB8fCAwLA0KCQkJCWxlZnQ6ICggdGhhdC5wb3NpdGlvbi5sZWZ0IC0gb3AubGVmdCApIHx8IDANCgkJCX07DQoNCgkJCSQoIG8uYWxzb1Jlc2l6ZSApLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCXZhciBlbCA9ICQoIHRoaXMgKSwgc3RhcnQgPSAkKCB0aGlzICkuZGF0YSggInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIiApLCBzdHlsZSA9IHt9LA0KCQkJCQljc3MgPSBlbC5wYXJlbnRzKCB1aS5vcmlnaW5hbEVsZW1lbnRbIDAgXSApLmxlbmd0aCA/DQoJCQkJCQkJWyAid2lkdGgiLCAiaGVpZ2h0IiBdIDoNCgkJCQkJCQlbICJ3aWR0aCIsICJoZWlnaHQiLCAidG9wIiwgImxlZnQiIF07DQoNCgkJCQkkLmVhY2goIGNzcywgZnVuY3Rpb24oIGksIHByb3AgKSB7DQoJCQkJCXZhciBzdW0gPSAoIHN0YXJ0WyBwcm9wIF0gfHwgMCApICsgKCBkZWx0YVsgcHJvcCBdIHx8IDAgKTsNCgkJCQkJaWYgKCBzdW0gJiYgc3VtID49IDAgKSB7DQoJCQkJCQlzdHlsZVsgcHJvcCBdID0gc3VtIHx8IG51bGw7DQoJCQkJCX0NCgkJCQl9ICk7DQoNCgkJCQllbC5jc3MoIHN0eWxlICk7DQoJCQl9ICk7DQoJfSwNCg0KCXN0b3A6IGZ1bmN0aW9uKCkgew0KCQkkKCB0aGlzICkucmVtb3ZlRGF0YSggInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIiApOw0KCX0NCn0gKTsNCg0KJC51aS5wbHVnaW4uYWRkKCAicmVzaXphYmxlIiwgImdob3N0Iiwgew0KDQoJc3RhcnQ6IGZ1bmN0aW9uKCkgew0KDQoJCXZhciB0aGF0ID0gJCggdGhpcyApLnJlc2l6YWJsZSggImluc3RhbmNlIiApLCBjcyA9IHRoYXQuc2l6ZTsNCg0KCQl0aGF0Lmdob3N0ID0gdGhhdC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKTsNCgkJdGhhdC5naG9zdC5jc3MoIHsNCgkJCW9wYWNpdHk6IDAuMjUsDQoJCQlkaXNwbGF5OiAiYmxvY2siLA0KCQkJcG9zaXRpb246ICJyZWxhdGl2ZSIsDQoJCQloZWlnaHQ6IGNzLmhlaWdodCwNCgkJCXdpZHRoOiBjcy53aWR0aCwNCgkJCW1hcmdpbjogMCwNCgkJCWxlZnQ6IDAsDQoJCQl0b3A6IDANCgkJfSApOw0KDQoJCXRoYXQuX2FkZENsYXNzKCB0aGF0Lmdob3N0LCAidWktcmVzaXphYmxlLWdob3N0IiApOw0KDQoJCS8vIERFUFJFQ0FURUQNCgkJLy8gVE9ETzogcmVtb3ZlIGFmdGVyIDEuMTINCgkJaWYgKCAkLnVpQmFja0NvbXBhdCAhPT0gZmFsc2UgJiYgdHlwZW9mIHRoYXQub3B0aW9ucy5naG9zdCA9PT0gInN0cmluZyIgKSB7DQoNCgkJCS8vIEdob3N0IG9wdGlvbg0KCQkJdGhhdC5naG9zdC5hZGRDbGFzcyggdGhpcy5vcHRpb25zLmdob3N0ICk7DQoJCX0NCg0KCQl0aGF0Lmdob3N0LmFwcGVuZFRvKCB0aGF0LmhlbHBlciApOw0KDQoJfSwNCg0KCXJlc2l6ZTogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gJCggdGhpcyApLnJlc2l6YWJsZSggImluc3RhbmNlIiApOw0KCQlpZiAoIHRoYXQuZ2hvc3QgKSB7DQoJCQl0aGF0Lmdob3N0LmNzcyggew0KCQkJCXBvc2l0aW9uOiAicmVsYXRpdmUiLA0KCQkJCWhlaWdodDogdGhhdC5zaXplLmhlaWdodCwNCgkJCQl3aWR0aDogdGhhdC5zaXplLndpZHRoDQoJCQl9ICk7DQoJCX0NCgl9LA0KDQoJc3RvcDogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gJCggdGhpcyApLnJlc2l6YWJsZSggImluc3RhbmNlIiApOw0KCQlpZiAoIHRoYXQuZ2hvc3QgJiYgdGhhdC5oZWxwZXIgKSB7DQoJCQl0aGF0LmhlbHBlci5nZXQoIDAgKS5yZW1vdmVDaGlsZCggdGhhdC5naG9zdC5nZXQoIDAgKSApOw0KCQl9DQoJfQ0KDQp9ICk7DQoNCiQudWkucGx1Z2luLmFkZCggInJlc2l6YWJsZSIsICJncmlkIiwgew0KDQoJcmVzaXplOiBmdW5jdGlvbigpIHsNCgkJdmFyIG91dGVyRGltZW5zaW9ucywNCgkJCXRoYXQgPSAkKCB0aGlzICkucmVzaXphYmxlKCAiaW5zdGFuY2UiICksDQoJCQlvID0gdGhhdC5vcHRpb25zLA0KCQkJY3MgPSB0aGF0LnNpemUsDQoJCQlvcyA9IHRoYXQub3JpZ2luYWxTaXplLA0KCQkJb3AgPSB0aGF0Lm9yaWdpbmFsUG9zaXRpb24sDQoJCQlhID0gdGhhdC5heGlzLA0KCQkJZ3JpZCA9IHR5cGVvZiBvLmdyaWQgPT09ICJudW1iZXIiID8gWyBvLmdyaWQsIG8uZ3JpZCBdIDogby5ncmlkLA0KCQkJZ3JpZFggPSAoIGdyaWRbIDAgXSB8fCAxICksDQoJCQlncmlkWSA9ICggZ3JpZFsgMSBdIHx8IDEgKSwNCgkJCW94ID0gTWF0aC5yb3VuZCggKCBjcy53aWR0aCAtIG9zLndpZHRoICkgLyBncmlkWCApICogZ3JpZFgsDQoJCQlveSA9IE1hdGgucm91bmQoICggY3MuaGVpZ2h0IC0gb3MuaGVpZ2h0ICkgLyBncmlkWSApICogZ3JpZFksDQoJCQluZXdXaWR0aCA9IG9zLndpZHRoICsgb3gsDQoJCQluZXdIZWlnaHQgPSBvcy5oZWlnaHQgKyBveSwNCgkJCWlzTWF4V2lkdGggPSBvLm1heFdpZHRoICYmICggby5tYXhXaWR0aCA8IG5ld1dpZHRoICksDQoJCQlpc01heEhlaWdodCA9IG8ubWF4SGVpZ2h0ICYmICggby5tYXhIZWlnaHQgPCBuZXdIZWlnaHQgKSwNCgkJCWlzTWluV2lkdGggPSBvLm1pbldpZHRoICYmICggby5taW5XaWR0aCA+IG5ld1dpZHRoICksDQoJCQlpc01pbkhlaWdodCA9IG8ubWluSGVpZ2h0ICYmICggby5taW5IZWlnaHQgPiBuZXdIZWlnaHQgKTsNCg0KCQlvLmdyaWQgPSBncmlkOw0KDQoJCWlmICggaXNNaW5XaWR0aCApIHsNCgkJCW5ld1dpZHRoICs9IGdyaWRYOw0KCQl9DQoJCWlmICggaXNNaW5IZWlnaHQgKSB7DQoJCQluZXdIZWlnaHQgKz0gZ3JpZFk7DQoJCX0NCgkJaWYgKCBpc01heFdpZHRoICkgew0KCQkJbmV3V2lkdGggLT0gZ3JpZFg7DQoJCX0NCgkJaWYgKCBpc01heEhlaWdodCApIHsNCgkJCW5ld0hlaWdodCAtPSBncmlkWTsNCgkJfQ0KDQoJCWlmICggL14oc2V8c3xlKSQvLnRlc3QoIGEgKSApIHsNCgkJCXRoYXQuc2l6ZS53aWR0aCA9IG5ld1dpZHRoOw0KCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJfSBlbHNlIGlmICggL14obmUpJC8udGVzdCggYSApICkgew0KCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQl0aGF0LnNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0Ow0KCQkJdGhhdC5wb3NpdGlvbi50b3AgPSBvcC50b3AgLSBveTsNCgkJfSBlbHNlIGlmICggL14oc3cpJC8udGVzdCggYSApICkgew0KCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQl0aGF0LnNpemUuaGVpZ2h0ID0gbmV3SGVpZ2h0Ow0KCQkJdGhhdC5wb3NpdGlvbi5sZWZ0ID0gb3AubGVmdCAtIG94Ow0KCQl9IGVsc2Ugew0KCQkJaWYgKCBuZXdIZWlnaHQgLSBncmlkWSA8PSAwIHx8IG5ld1dpZHRoIC0gZ3JpZFggPD0gMCApIHsNCgkJCQlvdXRlckRpbWVuc2lvbnMgPSB0aGF0Ll9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnMoIHRoaXMgKTsNCgkJCX0NCg0KCQkJaWYgKCBuZXdIZWlnaHQgLSBncmlkWSA+IDAgKSB7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJCQl0aGF0LnBvc2l0aW9uLnRvcCA9IG9wLnRvcCAtIG95Ow0KCQkJfSBlbHNlIHsNCgkJCQluZXdIZWlnaHQgPSBncmlkWSAtIG91dGVyRGltZW5zaW9ucy5oZWlnaHQ7DQoJCQkJdGhhdC5zaXplLmhlaWdodCA9IG5ld0hlaWdodDsNCgkJCQl0aGF0LnBvc2l0aW9uLnRvcCA9IG9wLnRvcCArIG9zLmhlaWdodCAtIG5ld0hlaWdodDsNCgkJCX0NCgkJCWlmICggbmV3V2lkdGggLSBncmlkWCA+IDAgKSB7DQoJCQkJdGhhdC5zaXplLndpZHRoID0gbmV3V2lkdGg7DQoJCQkJdGhhdC5wb3NpdGlvbi5sZWZ0ID0gb3AubGVmdCAtIG94Ow0KCQkJfSBlbHNlIHsNCgkJCQluZXdXaWR0aCA9IGdyaWRYIC0gb3V0ZXJEaW1lbnNpb25zLndpZHRoOw0KCQkJCXRoYXQuc2l6ZS53aWR0aCA9IG5ld1dpZHRoOw0KCQkJCXRoYXQucG9zaXRpb24ubGVmdCA9IG9wLmxlZnQgKyBvcy53aWR0aCAtIG5ld1dpZHRoOw0KCQkJfQ0KCQl9DQoJfQ0KDQp9ICk7DQoNCnZhciB3aWRnZXRzUmVzaXphYmxlID0gJC51aS5yZXNpemFibGU7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRGlhbG9nIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBEaWFsb2cNCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8+PmRlc2NyaXB0aW9uOiBEaXNwbGF5cyBjdXN0b21pemFibGUgZGlhbG9nIHdpbmRvd3MuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZGlhbG9nLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2RpYWxvZy8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9jb3JlLmNzcw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2RpYWxvZy5jc3MNCi8vPj5jc3MudGhlbWU6IC4uLy4uL3RoZW1lcy9iYXNlL3RoZW1lLmNzcw0KDQoNCg0KJC53aWRnZXQoICJ1aS5kaWFsb2ciLCB7DQoJdmVyc2lvbjogIjEuMTIuMSIsDQoJb3B0aW9uczogew0KCQlhcHBlbmRUbzogImJvZHkiLA0KCQlhdXRvT3BlbjogdHJ1ZSwNCgkJYnV0dG9uczogW10sDQoJCWNsYXNzZXM6IHsNCgkJCSJ1aS1kaWFsb2ciOiAidWktY29ybmVyLWFsbCIsDQoJCQkidWktZGlhbG9nLXRpdGxlYmFyIjogInVpLWNvcm5lci1hbGwiDQoJCX0sDQoJCWNsb3NlT25Fc2NhcGU6IHRydWUsDQoJCWNsb3NlVGV4dDogIkNsb3NlIiwNCgkJZHJhZ2dhYmxlOiB0cnVlLA0KCQloaWRlOiBudWxsLA0KCQloZWlnaHQ6ICJhdXRvIiwNCgkJbWF4SGVpZ2h0OiBudWxsLA0KCQltYXhXaWR0aDogbnVsbCwNCgkJbWluSGVpZ2h0OiAxNTAsDQoJCW1pbldpZHRoOiAxNTAsDQoJCW1vZGFsOiBmYWxzZSwNCgkJcG9zaXRpb246IHsNCgkJCW15OiAiY2VudGVyIiwNCgkJCWF0OiAiY2VudGVyIiwNCgkJCW9mOiB3aW5kb3csDQoJCQljb2xsaXNpb246ICJmaXQiLA0KDQoJCQkvLyBFbnN1cmUgdGhlIHRpdGxlYmFyIGlzIGFsd2F5cyB2aXNpYmxlDQoJCQl1c2luZzogZnVuY3Rpb24oIHBvcyApIHsNCgkJCQl2YXIgdG9wT2Zmc2V0ID0gJCggdGhpcyApLmNzcyggcG9zICkub2Zmc2V0KCkudG9wOw0KCQkJCWlmICggdG9wT2Zmc2V0IDwgMCApIHsNCgkJCQkJJCggdGhpcyApLmNzcyggInRvcCIsIHBvcy50b3AgLSB0b3BPZmZzZXQgKTsNCgkJCQl9DQoJCQl9DQoJCX0sDQoJCXJlc2l6YWJsZTogdHJ1ZSwNCgkJc2hvdzogbnVsbCwNCgkJdGl0bGU6IG51bGwsDQoJCXdpZHRoOiAzMDAsDQoNCgkJLy8gQ2FsbGJhY2tzDQoJCWJlZm9yZUNsb3NlOiBudWxsLA0KCQljbG9zZTogbnVsbCwNCgkJZHJhZzogbnVsbCwNCgkJZHJhZ1N0YXJ0OiBudWxsLA0KCQlkcmFnU3RvcDogbnVsbCwNCgkJZm9jdXM6IG51bGwsDQoJCW9wZW46IG51bGwsDQoJCXJlc2l6ZTogbnVsbCwNCgkJcmVzaXplU3RhcnQ6IG51bGwsDQoJCXJlc2l6ZVN0b3A6IG51bGwNCgl9LA0KDQoJc2l6ZVJlbGF0ZWRPcHRpb25zOiB7DQoJCWJ1dHRvbnM6IHRydWUsDQoJCWhlaWdodDogdHJ1ZSwNCgkJbWF4SGVpZ2h0OiB0cnVlLA0KCQltYXhXaWR0aDogdHJ1ZSwNCgkJbWluSGVpZ2h0OiB0cnVlLA0KCQltaW5XaWR0aDogdHJ1ZSwNCgkJd2lkdGg6IHRydWUNCgl9LA0KDQoJcmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6IHsNCgkJbWF4SGVpZ2h0OiB0cnVlLA0KCQltYXhXaWR0aDogdHJ1ZSwNCgkJbWluSGVpZ2h0OiB0cnVlLA0KCQltaW5XaWR0aDogdHJ1ZQ0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5vcmlnaW5hbENzcyA9IHsNCgkJCWRpc3BsYXk6IHRoaXMuZWxlbWVudFsgMCBdLnN0eWxlLmRpc3BsYXksDQoJCQl3aWR0aDogdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUud2lkdGgsDQoJCQltaW5IZWlnaHQ6IHRoaXMuZWxlbWVudFsgMCBdLnN0eWxlLm1pbkhlaWdodCwNCgkJCW1heEhlaWdodDogdGhpcy5lbGVtZW50WyAwIF0uc3R5bGUubWF4SGVpZ2h0LA0KCQkJaGVpZ2h0OiB0aGlzLmVsZW1lbnRbIDAgXS5zdHlsZS5oZWlnaHQNCgkJfTsNCgkJdGhpcy5vcmlnaW5hbFBvc2l0aW9uID0gew0KCQkJcGFyZW50OiB0aGlzLmVsZW1lbnQucGFyZW50KCksDQoJCQlpbmRleDogdGhpcy5lbGVtZW50LnBhcmVudCgpLmNoaWxkcmVuKCkuaW5kZXgoIHRoaXMuZWxlbWVudCApDQoJCX07DQoJCXRoaXMub3JpZ2luYWxUaXRsZSA9IHRoaXMuZWxlbWVudC5hdHRyKCAidGl0bGUiICk7DQoJCWlmICggdGhpcy5vcHRpb25zLnRpdGxlID09IG51bGwgJiYgdGhpcy5vcmlnaW5hbFRpdGxlICE9IG51bGwgKSB7DQoJCQl0aGlzLm9wdGlvbnMudGl0bGUgPSB0aGlzLm9yaWdpbmFsVGl0bGU7DQoJCX0NCg0KCQkvLyBEaWFsb2dzIGNhbid0IGJlIGRpc2FibGVkDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJdGhpcy5vcHRpb25zLmRpc2FibGVkID0gZmFsc2U7DQoJCX0NCg0KCQl0aGlzLl9jcmVhdGVXcmFwcGVyKCk7DQoNCgkJdGhpcy5lbGVtZW50DQoJCQkuc2hvdygpDQoJCQkucmVtb3ZlQXR0ciggInRpdGxlIiApDQoJCQkuYXBwZW5kVG8oIHRoaXMudWlEaWFsb2cgKTsNCg0KCQl0aGlzLl9hZGRDbGFzcyggInVpLWRpYWxvZy1jb250ZW50IiwgInVpLXdpZGdldC1jb250ZW50IiApOw0KDQoJCXRoaXMuX2NyZWF0ZVRpdGxlYmFyKCk7DQoJCXRoaXMuX2NyZWF0ZUJ1dHRvblBhbmUoKTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5kcmFnZ2FibGUgJiYgJC5mbi5kcmFnZ2FibGUgKSB7DQoJCQl0aGlzLl9tYWtlRHJhZ2dhYmxlKCk7DQoJCX0NCgkJaWYgKCB0aGlzLm9wdGlvbnMucmVzaXphYmxlICYmICQuZm4ucmVzaXphYmxlICkgew0KCQkJdGhpcy5fbWFrZVJlc2l6YWJsZSgpOw0KCQl9DQoNCgkJdGhpcy5faXNPcGVuID0gZmFsc2U7DQoNCgkJdGhpcy5fdHJhY2tGb2N1cygpOw0KCX0sDQoNCglfaW5pdDogZnVuY3Rpb24oKSB7DQoJCWlmICggdGhpcy5vcHRpb25zLmF1dG9PcGVuICkgew0KCQkJdGhpcy5vcGVuKCk7DQoJCX0NCgl9LA0KDQoJX2FwcGVuZFRvOiBmdW5jdGlvbigpIHsNCgkJdmFyIGVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuYXBwZW5kVG87DQoJCWlmICggZWxlbWVudCAmJiAoIGVsZW1lbnQuanF1ZXJ5IHx8IGVsZW1lbnQubm9kZVR5cGUgKSApIHsNCgkJCXJldHVybiAkKCBlbGVtZW50ICk7DQoJCX0NCgkJcmV0dXJuIHRoaXMuZG9jdW1lbnQuZmluZCggZWxlbWVudCB8fCAiYm9keSIgKS5lcSggMCApOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciBuZXh0LA0KCQkJb3JpZ2luYWxQb3NpdGlvbiA9IHRoaXMub3JpZ2luYWxQb3NpdGlvbjsNCg0KCQl0aGlzLl91bnRyYWNrSW5zdGFuY2UoKTsNCgkJdGhpcy5fZGVzdHJveU92ZXJsYXkoKTsNCg0KCQl0aGlzLmVsZW1lbnQNCgkJCS5yZW1vdmVVbmlxdWVJZCgpDQoJCQkuY3NzKCB0aGlzLm9yaWdpbmFsQ3NzICkNCg0KCQkJLy8gV2l0aG91dCBkZXRhY2hpbmcgZmlyc3QsIHRoZSBmb2xsb3dpbmcgYmVjb21lcyByZWFsbHkgc2xvdw0KCQkJLmRldGFjaCgpOw0KDQoJCXRoaXMudWlEaWFsb2cucmVtb3ZlKCk7DQoNCgkJaWYgKCB0aGlzLm9yaWdpbmFsVGl0bGUgKSB7DQoJCQl0aGlzLmVsZW1lbnQuYXR0ciggInRpdGxlIiwgdGhpcy5vcmlnaW5hbFRpdGxlICk7DQoJCX0NCg0KCQluZXh0ID0gb3JpZ2luYWxQb3NpdGlvbi5wYXJlbnQuY2hpbGRyZW4oKS5lcSggb3JpZ2luYWxQb3NpdGlvbi5pbmRleCApOw0KDQoJCS8vIERvbid0IHRyeSB0byBwbGFjZSB0aGUgZGlhbG9nIG5leHQgdG8gaXRzZWxmICgjODYxMykNCgkJaWYgKCBuZXh0Lmxlbmd0aCAmJiBuZXh0WyAwIF0gIT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJbmV4dC5iZWZvcmUoIHRoaXMuZWxlbWVudCApOw0KCQl9IGVsc2Ugew0KCQkJb3JpZ2luYWxQb3NpdGlvbi5wYXJlbnQuYXBwZW5kKCB0aGlzLmVsZW1lbnQgKTsNCgkJfQ0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy51aURpYWxvZzsNCgl9LA0KDQoJZGlzYWJsZTogJC5ub29wLA0KCWVuYWJsZTogJC5ub29wLA0KDQoJY2xvc2U6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCWlmICggIXRoaXMuX2lzT3BlbiB8fCB0aGlzLl90cmlnZ2VyKCAiYmVmb3JlQ2xvc2UiLCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX2lzT3BlbiA9IGZhbHNlOw0KCQl0aGlzLl9mb2N1c2VkRWxlbWVudCA9IG51bGw7DQoJCXRoaXMuX2Rlc3Ryb3lPdmVybGF5KCk7DQoJCXRoaXMuX3VudHJhY2tJbnN0YW5jZSgpOw0KDQoJCWlmICggIXRoaXMub3BlbmVyLmZpbHRlciggIjpmb2N1c2FibGUiICkudHJpZ2dlciggImZvY3VzIiApLmxlbmd0aCApIHsNCg0KCQkJLy8gSGlkaW5nIGEgZm9jdXNlZCBlbGVtZW50IGRvZXNuJ3QgdHJpZ2dlciBibHVyIGluIFdlYktpdA0KCQkJLy8gc28gaW4gY2FzZSB3ZSBoYXZlIG5vdGhpbmcgdG8gZm9jdXMgb24sIGV4cGxpY2l0bHkgYmx1ciB0aGUgYWN0aXZlIGVsZW1lbnQNCgkJCS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzE4Mg0KCQkJJC51aS5zYWZlQmx1ciggJC51aS5zYWZlQWN0aXZlRWxlbWVudCggdGhpcy5kb2N1bWVudFsgMCBdICkgKTsNCgkJfQ0KDQoJCXRoaXMuX2hpZGUoIHRoaXMudWlEaWFsb2csIHRoaXMub3B0aW9ucy5oaWRlLCBmdW5jdGlvbigpIHsNCgkJCXRoYXQuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50ICk7DQoJCX0gKTsNCgl9LA0KDQoJaXNPcGVuOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMuX2lzT3BlbjsNCgl9LA0KDQoJbW92ZVRvVG9wOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fbW92ZVRvVG9wKCk7DQoJfSwNCg0KCV9tb3ZlVG9Ub3A6IGZ1bmN0aW9uKCBldmVudCwgc2lsZW50ICkgew0KCQl2YXIgbW92ZWQgPSBmYWxzZSwNCgkJCXpJbmRpY2VzID0gdGhpcy51aURpYWxvZy5zaWJsaW5ncyggIi51aS1mcm9udDp2aXNpYmxlIiApLm1hcCggZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICskKCB0aGlzICkuY3NzKCAiei1pbmRleCIgKTsNCgkJCX0gKS5nZXQoKSwNCgkJCXpJbmRleE1heCA9IE1hdGgubWF4LmFwcGx5KCBudWxsLCB6SW5kaWNlcyApOw0KDQoJCWlmICggekluZGV4TWF4ID49ICt0aGlzLnVpRGlhbG9nLmNzcyggInotaW5kZXgiICkgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLmNzcyggInotaW5kZXgiLCB6SW5kZXhNYXggKyAxICk7DQoJCQltb3ZlZCA9IHRydWU7DQoJCX0NCg0KCQlpZiAoIG1vdmVkICYmICFzaWxlbnQgKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiZm9jdXMiLCBldmVudCApOw0KCQl9DQoJCXJldHVybiBtb3ZlZDsNCgl9LA0KDQoJb3BlbjogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJaWYgKCB0aGlzLl9pc09wZW4gKSB7DQoJCQlpZiAoIHRoaXMuX21vdmVUb1RvcCgpICkgew0KCQkJCXRoaXMuX2ZvY3VzVGFiYmFibGUoKTsNCgkJCX0NCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX2lzT3BlbiA9IHRydWU7DQoJCXRoaXMub3BlbmVyID0gJCggJC51aS5zYWZlQWN0aXZlRWxlbWVudCggdGhpcy5kb2N1bWVudFsgMCBdICkgKTsNCg0KCQl0aGlzLl9zaXplKCk7DQoJCXRoaXMuX3Bvc2l0aW9uKCk7DQoJCXRoaXMuX2NyZWF0ZU92ZXJsYXkoKTsNCgkJdGhpcy5fbW92ZVRvVG9wKCBudWxsLCB0cnVlICk7DQoNCgkJLy8gRW5zdXJlIHRoZSBvdmVybGF5IGlzIG1vdmVkIHRvIHRoZSB0b3Agd2l0aCB0aGUgZGlhbG9nLCBidXQgb25seSB3aGVuDQoJCS8vIG9wZW5pbmcuIFRoZSBvdmVybGF5IHNob3VsZG4ndCBtb3ZlIGFmdGVyIHRoZSBkaWFsb2cgaXMgb3BlbiBzbyB0aGF0DQoJCS8vIG1vZGVsZXNzIGRpYWxvZ3Mgb3BlbmVkIGFmdGVyIHRoZSBtb2RhbCBkaWFsb2cgc3RhY2sgcHJvcGVybHkuDQoJCWlmICggdGhpcy5vdmVybGF5ICkgew0KCQkJdGhpcy5vdmVybGF5LmNzcyggInotaW5kZXgiLCB0aGlzLnVpRGlhbG9nLmNzcyggInotaW5kZXgiICkgLSAxICk7DQoJCX0NCg0KCQl0aGlzLl9zaG93KCB0aGlzLnVpRGlhbG9nLCB0aGlzLm9wdGlvbnMuc2hvdywgZnVuY3Rpb24oKSB7DQoJCQl0aGF0Ll9mb2N1c1RhYmJhYmxlKCk7DQoJCQl0aGF0Ll90cmlnZ2VyKCAiZm9jdXMiICk7DQoJCX0gKTsNCg0KCQkvLyBUcmFjayB0aGUgZGlhbG9nIGltbWVkaWF0ZWx5IHVwb24gb3BlbmVuaW5nIGluIGNhc2UgYSBmb2N1cyBldmVudA0KCQkvLyBzb21laG93IG9jY3VycyBvdXRzaWRlIG9mIHRoZSBkaWFsb2cgYmVmb3JlIGFuIGVsZW1lbnQgaW5zaWRlIHRoZQ0KCQkvLyBkaWFsb2cgaXMgZm9jdXNlZCAoIzEwMTUyKQ0KCQl0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAib3BlbiIgKTsNCgl9LA0KDQoJX2ZvY3VzVGFiYmFibGU6IGZ1bmN0aW9uKCkgew0KDQoJCS8vIFNldCBmb2N1cyB0byB0aGUgZmlyc3QgbWF0Y2g6DQoJCS8vIDEuIEFuIGVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBwcmV2aW91c2x5DQoJCS8vIDIuIEZpcnN0IGVsZW1lbnQgaW5zaWRlIHRoZSBkaWFsb2cgbWF0Y2hpbmcgW2F1dG9mb2N1c10NCgkJLy8gMy4gVGFiYmFibGUgZWxlbWVudCBpbnNpZGUgdGhlIGNvbnRlbnQgZWxlbWVudA0KCQkvLyA0LiBUYWJiYWJsZSBlbGVtZW50IGluc2lkZSB0aGUgYnV0dG9ucGFuZQ0KCQkvLyA1LiBUaGUgY2xvc2UgYnV0dG9uDQoJCS8vIDYuIFRoZSBkaWFsb2cgaXRzZWxmDQoJCXZhciBoYXNGb2N1cyA9IHRoaXMuX2ZvY3VzZWRFbGVtZW50Ow0KCQlpZiAoICFoYXNGb2N1cyApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy5lbGVtZW50LmZpbmQoICJbYXV0b2ZvY3VzXSIgKTsNCgkJfQ0KCQlpZiAoICFoYXNGb2N1cy5sZW5ndGggKSB7DQoJCQloYXNGb2N1cyA9IHRoaXMuZWxlbWVudC5maW5kKCAiOnRhYmJhYmxlIiApOw0KCQl9DQoJCWlmICggIWhhc0ZvY3VzLmxlbmd0aCApIHsNCgkJCWhhc0ZvY3VzID0gdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuZmluZCggIjp0YWJiYWJsZSIgKTsNCgkJfQ0KCQlpZiAoICFoYXNGb2N1cy5sZW5ndGggKSB7DQoJCQloYXNGb2N1cyA9IHRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlLmZpbHRlciggIjp0YWJiYWJsZSIgKTsNCgkJfQ0KCQlpZiAoICFoYXNGb2N1cy5sZW5ndGggKSB7DQoJCQloYXNGb2N1cyA9IHRoaXMudWlEaWFsb2c7DQoJCX0NCgkJaGFzRm9jdXMuZXEoIDAgKS50cmlnZ2VyKCAiZm9jdXMiICk7DQoJfSwNCg0KCV9rZWVwRm9jdXM6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJZnVuY3Rpb24gY2hlY2tGb2N1cygpIHsNCgkJCXZhciBhY3RpdmVFbGVtZW50ID0gJC51aS5zYWZlQWN0aXZlRWxlbWVudCggdGhpcy5kb2N1bWVudFsgMCBdICksDQoJCQkJaXNBY3RpdmUgPSB0aGlzLnVpRGlhbG9nWyAwIF0gPT09IGFjdGl2ZUVsZW1lbnQgfHwNCgkJCQkJJC5jb250YWlucyggdGhpcy51aURpYWxvZ1sgMCBdLCBhY3RpdmVFbGVtZW50ICk7DQoJCQlpZiAoICFpc0FjdGl2ZSApIHsNCgkJCQl0aGlzLl9mb2N1c1RhYmJhYmxlKCk7DQoJCQl9DQoJCX0NCgkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJY2hlY2tGb2N1cy5jYWxsKCB0aGlzICk7DQoNCgkJLy8gc3VwcG9ydDogSUUNCgkJLy8gSUUgPD0gOCBkb2Vzbid0IHByZXZlbnQgbW92aW5nIGZvY3VzIGV2ZW4gd2l0aCBldmVudC5wcmV2ZW50RGVmYXVsdCgpDQoJCS8vIHNvIHdlIGNoZWNrIGFnYWluIGxhdGVyDQoJCXRoaXMuX2RlbGF5KCBjaGVja0ZvY3VzICk7DQoJfSwNCg0KCV9jcmVhdGVXcmFwcGVyOiBmdW5jdGlvbigpIHsNCgkJdGhpcy51aURpYWxvZyA9ICQoICI8ZGl2PiIgKQ0KCQkJLmhpZGUoKQ0KCQkJLmF0dHIoIHsNCg0KCQkJCS8vIFNldHRpbmcgdGFiSW5kZXggbWFrZXMgdGhlIGRpdiBmb2N1c2FibGUNCgkJCQl0YWJJbmRleDogLTEsDQoJCQkJcm9sZTogImRpYWxvZyINCgkJCX0gKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICk7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMudWlEaWFsb2csICJ1aS1kaWFsb2ciLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWZyb250IiApOw0KCQl0aGlzLl9vbiggdGhpcy51aURpYWxvZywgew0KCQkJa2V5ZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggdGhpcy5vcHRpb25zLmNsb3NlT25Fc2NhcGUgJiYgIWV2ZW50LmlzRGVmYXVsdFByZXZlbnRlZCgpICYmIGV2ZW50LmtleUNvZGUgJiYNCgkJCQkJCWV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5FU0NBUEUgKSB7DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoNCgkJCQkvLyBQcmV2ZW50IHRhYmJpbmcgb3V0IG9mIGRpYWxvZ3MNCgkJCQlpZiAoIGV2ZW50LmtleUNvZGUgIT09ICQudWkua2V5Q29kZS5UQUIgfHwgZXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJdmFyIHRhYmJhYmxlcyA9IHRoaXMudWlEaWFsb2cuZmluZCggIjp0YWJiYWJsZSIgKSwNCgkJCQkJZmlyc3QgPSB0YWJiYWJsZXMuZmlsdGVyKCAiOmZpcnN0IiApLA0KCQkJCQlsYXN0ID0gdGFiYmFibGVzLmZpbHRlciggIjpsYXN0IiApOw0KDQoJCQkJaWYgKCAoIGV2ZW50LnRhcmdldCA9PT0gbGFzdFsgMCBdIHx8IGV2ZW50LnRhcmdldCA9PT0gdGhpcy51aURpYWxvZ1sgMCBdICkgJiYNCgkJCQkJCSFldmVudC5zaGlmdEtleSApIHsNCgkJCQkJdGhpcy5fZGVsYXkoIGZ1bmN0aW9uKCkgew0KCQkJCQkJZmlyc3QudHJpZ2dlciggImZvY3VzIiApOw0KCQkJCQl9ICk7DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJfSBlbHNlIGlmICggKCBldmVudC50YXJnZXQgPT09IGZpcnN0WyAwIF0gfHwNCgkJCQkJCWV2ZW50LnRhcmdldCA9PT0gdGhpcy51aURpYWxvZ1sgMCBdICkgJiYgZXZlbnQuc2hpZnRLZXkgKSB7DQoJCQkJCXRoaXMuX2RlbGF5KCBmdW5jdGlvbigpIHsNCgkJCQkJCWxhc3QudHJpZ2dlciggImZvY3VzIiApOw0KCQkJCQl9ICk7DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQkJfQ0KCQkJfSwNCgkJCW1vdXNlZG93bjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggdGhpcy5fbW92ZVRvVG9wKCBldmVudCApICkgew0KCQkJCQl0aGlzLl9mb2N1c1RhYmJhYmxlKCk7DQoJCQkJfQ0KCQkJfQ0KCQl9ICk7DQoNCgkJLy8gV2UgYXNzdW1lIHRoYXQgYW55IGV4aXN0aW5nIGFyaWEtZGVzY3JpYmVkYnkgYXR0cmlidXRlIG1lYW5zDQoJCS8vIHRoYXQgdGhlIGRpYWxvZyBjb250ZW50IGlzIG1hcmtlZCB1cCBwcm9wZXJseQ0KCQkvLyBvdGhlcndpc2Ugd2UgYnJ1dGUgZm9yY2UgdGhlIGNvbnRlbnQgYXMgdGhlIGRlc2NyaXB0aW9uDQoJCWlmICggIXRoaXMuZWxlbWVudC5maW5kKCAiW2FyaWEtZGVzY3JpYmVkYnldIiApLmxlbmd0aCApIHsNCgkJCXRoaXMudWlEaWFsb2cuYXR0ciggew0KCQkJCSJhcmlhLWRlc2NyaWJlZGJ5IjogdGhpcy5lbGVtZW50LnVuaXF1ZUlkKCkuYXR0ciggImlkIiApDQoJCQl9ICk7DQoJCX0NCgl9LA0KDQoJX2NyZWF0ZVRpdGxlYmFyOiBmdW5jdGlvbigpIHsNCgkJdmFyIHVpRGlhbG9nVGl0bGU7DQoNCgkJdGhpcy51aURpYWxvZ1RpdGxlYmFyID0gJCggIjxkaXY+IiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy51aURpYWxvZ1RpdGxlYmFyLA0KCQkJInVpLWRpYWxvZy10aXRsZWJhciIsICJ1aS13aWRnZXQtaGVhZGVyIHVpLWhlbHBlci1jbGVhcmZpeCIgKTsNCgkJdGhpcy5fb24oIHRoaXMudWlEaWFsb2dUaXRsZWJhciwgew0KCQkJbW91c2Vkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJCQkvLyBEb24ndCBwcmV2ZW50IGNsaWNrIG9uIGNsb3NlIGJ1dHRvbiAoIzg4MzgpDQoJCQkJLy8gRm9jdXNpbmcgYSBkaWFsb2cgdGhhdCBpcyBwYXJ0aWFsbHkgc2Nyb2xsZWQgb3V0IG9mIHZpZXcNCgkJCQkvLyBjYXVzZXMgdGhlIGJyb3dzZXIgdG8gc2Nyb2xsIGl0IGludG8gdmlldywgcHJldmVudGluZyB0aGUgY2xpY2sgZXZlbnQNCgkJCQlpZiAoICEkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIgKSApIHsNCg0KCQkJCQkvLyBEaWFsb2cgaXNuJ3QgZ2V0dGluZyBmb2N1cyB3aGVuIGRyYWdnaW5nICgjODA2MykNCgkJCQkJdGhpcy51aURpYWxvZy50cmlnZ2VyKCAiZm9jdXMiICk7DQoJCQkJfQ0KCQkJfQ0KCQl9ICk7DQoNCgkJLy8gU3VwcG9ydDogSUUNCgkJLy8gVXNlIHR5cGU9ImJ1dHRvbiIgdG8gcHJldmVudCBlbnRlciBrZXlwcmVzc2VzIGluIHRleHRib3hlcyBmcm9tIGNsb3NpbmcgdGhlDQoJCS8vIGRpYWxvZyBpbiBJRSAoIzkzMTIpDQoJCXRoaXMudWlEaWFsb2dUaXRsZWJhckNsb3NlID0gJCggIjxidXR0b24gdHlwZT0nYnV0dG9uJz48L2J1dHRvbj4iICkNCgkJCS5idXR0b24oIHsNCgkJCQlsYWJlbDogJCggIjxhPiIgKS50ZXh0KCB0aGlzLm9wdGlvbnMuY2xvc2VUZXh0ICkuaHRtbCgpLA0KCQkJCWljb246ICJ1aS1pY29uLWNsb3NldGhpY2siLA0KCQkJCXNob3dMYWJlbDogZmFsc2UNCgkJCX0gKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLnVpRGlhbG9nVGl0bGViYXIgKTsNCg0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UsICJ1aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiICk7DQoJCXRoaXMuX29uKCB0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZSwgew0KCQkJY2xpY2s6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCQl9DQoJCX0gKTsNCg0KCQl1aURpYWxvZ1RpdGxlID0gJCggIjxzcGFuPiIgKS51bmlxdWVJZCgpLnByZXBlbmRUbyggdGhpcy51aURpYWxvZ1RpdGxlYmFyICk7DQoJCXRoaXMuX2FkZENsYXNzKCB1aURpYWxvZ1RpdGxlLCAidWktZGlhbG9nLXRpdGxlIiApOw0KCQl0aGlzLl90aXRsZSggdWlEaWFsb2dUaXRsZSApOw0KDQoJCXRoaXMudWlEaWFsb2dUaXRsZWJhci5wcmVwZW5kVG8oIHRoaXMudWlEaWFsb2cgKTsNCg0KCQl0aGlzLnVpRGlhbG9nLmF0dHIoIHsNCgkJCSJhcmlhLWxhYmVsbGVkYnkiOiB1aURpYWxvZ1RpdGxlLmF0dHIoICJpZCIgKQ0KCQl9ICk7DQoJfSwNCg0KCV90aXRsZTogZnVuY3Rpb24oIHRpdGxlICkgew0KCQlpZiAoIHRoaXMub3B0aW9ucy50aXRsZSApIHsNCgkJCXRpdGxlLnRleHQoIHRoaXMub3B0aW9ucy50aXRsZSApOw0KCQl9IGVsc2Ugew0KCQkJdGl0bGUuaHRtbCggIiYjMTYwOyIgKTsNCgkJfQ0KCX0sDQoNCglfY3JlYXRlQnV0dG9uUGFuZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMudWlEaWFsb2dCdXR0b25QYW5lID0gJCggIjxkaXY+IiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy51aURpYWxvZ0J1dHRvblBhbmUsICJ1aS1kaWFsb2ctYnV0dG9ucGFuZSIsDQoJCQkidWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiApOw0KDQoJCXRoaXMudWlCdXR0b25TZXQgPSAkKCAiPGRpdj4iICkNCgkJCS5hcHBlbmRUbyggdGhpcy51aURpYWxvZ0J1dHRvblBhbmUgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMudWlCdXR0b25TZXQsICJ1aS1kaWFsb2ctYnV0dG9uc2V0IiApOw0KDQoJCXRoaXMuX2NyZWF0ZUJ1dHRvbnMoKTsNCgl9LA0KDQoJX2NyZWF0ZUJ1dHRvbnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlidXR0b25zID0gdGhpcy5vcHRpb25zLmJ1dHRvbnM7DQoNCgkJLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgYnV0dG9uIHBhbmUsIHJlbW92ZSBpdA0KCQl0aGlzLnVpRGlhbG9nQnV0dG9uUGFuZS5yZW1vdmUoKTsNCgkJdGhpcy51aUJ1dHRvblNldC5lbXB0eSgpOw0KDQoJCWlmICggJC5pc0VtcHR5T2JqZWN0KCBidXR0b25zICkgfHwgKCAkLmlzQXJyYXkoIGJ1dHRvbnMgKSAmJiAhYnV0dG9ucy5sZW5ndGggKSApIHsNCgkJCXRoaXMuX3JlbW92ZUNsYXNzKCB0aGlzLnVpRGlhbG9nLCAidWktZGlhbG9nLWJ1dHRvbnMiICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkkLmVhY2goIGJ1dHRvbnMsIGZ1bmN0aW9uKCBuYW1lLCBwcm9wcyApIHsNCgkJCXZhciBjbGljaywgYnV0dG9uT3B0aW9uczsNCgkJCXByb3BzID0gJC5pc0Z1bmN0aW9uKCBwcm9wcyApID8NCgkJCQl7IGNsaWNrOiBwcm9wcywgdGV4dDogbmFtZSB9IDoNCgkJCQlwcm9wczsNCg0KCQkJLy8gRGVmYXVsdCB0byBhIG5vbi1zdWJtaXR0aW5nIGJ1dHRvbg0KCQkJcHJvcHMgPSAkLmV4dGVuZCggeyB0eXBlOiAiYnV0dG9uIiB9LCBwcm9wcyApOw0KDQoJCQkvLyBDaGFuZ2UgdGhlIGNvbnRleHQgZm9yIHRoZSBjbGljayBjYWxsYmFjayB0byBiZSB0aGUgbWFpbiBlbGVtZW50DQoJCQljbGljayA9IHByb3BzLmNsaWNrOw0KCQkJYnV0dG9uT3B0aW9ucyA9IHsNCgkJCQlpY29uOiBwcm9wcy5pY29uLA0KCQkJCWljb25Qb3NpdGlvbjogcHJvcHMuaWNvblBvc2l0aW9uLA0KCQkJCXNob3dMYWJlbDogcHJvcHMuc2hvd0xhYmVsLA0KDQoJCQkJLy8gRGVwcmVjYXRlZCBvcHRpb25zDQoJCQkJaWNvbnM6IHByb3BzLmljb25zLA0KCQkJCXRleHQ6IHByb3BzLnRleHQNCgkJCX07DQoNCgkJCWRlbGV0ZSBwcm9wcy5jbGljazsNCgkJCWRlbGV0ZSBwcm9wcy5pY29uOw0KCQkJZGVsZXRlIHByb3BzLmljb25Qb3NpdGlvbjsNCgkJCWRlbGV0ZSBwcm9wcy5zaG93TGFiZWw7DQoNCgkJCS8vIERlcHJlY2F0ZWQgb3B0aW9ucw0KCQkJZGVsZXRlIHByb3BzLmljb25zOw0KCQkJaWYgKCB0eXBlb2YgcHJvcHMudGV4dCA9PT0gImJvb2xlYW4iICkgew0KCQkJCWRlbGV0ZSBwcm9wcy50ZXh0Ow0KCQkJfQ0KDQoJCQkkKCAiPGJ1dHRvbj48L2J1dHRvbj4iLCBwcm9wcyApDQoJCQkJLmJ1dHRvbiggYnV0dG9uT3B0aW9ucyApDQoJCQkJLmFwcGVuZFRvKCB0aGF0LnVpQnV0dG9uU2V0ICkNCgkJCQkub24oICJjbGljayIsIGZ1bmN0aW9uKCkgew0KCQkJCQljbGljay5hcHBseSggdGhhdC5lbGVtZW50WyAwIF0sIGFyZ3VtZW50cyApOw0KCQkJCX0gKTsNCgkJfSApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy51aURpYWxvZywgInVpLWRpYWxvZy1idXR0b25zIiApOw0KCQl0aGlzLnVpRGlhbG9nQnV0dG9uUGFuZS5hcHBlbmRUbyggdGhpcy51aURpYWxvZyApOw0KCX0sDQoNCglfbWFrZURyYWdnYWJsZTogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCW9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoNCgkJZnVuY3Rpb24gZmlsdGVyZWRVaSggdWkgKSB7DQoJCQlyZXR1cm4gew0KCQkJCXBvc2l0aW9uOiB1aS5wb3NpdGlvbiwNCgkJCQlvZmZzZXQ6IHVpLm9mZnNldA0KCQkJfTsNCgkJfQ0KDQoJCXRoaXMudWlEaWFsb2cuZHJhZ2dhYmxlKCB7DQoJCQljYW5jZWw6ICIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLA0KCQkJaGFuZGxlOiAiLnVpLWRpYWxvZy10aXRsZWJhciIsDQoJCQljb250YWlubWVudDogImRvY3VtZW50IiwNCgkJCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXRoYXQuX2FkZENsYXNzKCAkKCB0aGlzICksICJ1aS1kaWFsb2ctZHJhZ2dpbmciICk7DQoJCQkJdGhhdC5fYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAiZHJhZ1N0YXJ0IiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0sDQoJCQlkcmFnOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXRoYXQuX3RyaWdnZXIoICJkcmFnIiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0sDQoJCQlzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBsZWZ0ID0gdWkub2Zmc2V0LmxlZnQgLSB0aGF0LmRvY3VtZW50LnNjcm9sbExlZnQoKSwNCgkJCQkJdG9wID0gdWkub2Zmc2V0LnRvcCAtIHRoYXQuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7DQoNCgkJCQlvcHRpb25zLnBvc2l0aW9uID0gew0KCQkJCQlteTogImxlZnQgdG9wIiwNCgkJCQkJYXQ6ICJsZWZ0IiArICggbGVmdCA+PSAwID8gIisiIDogIiIgKSArIGxlZnQgKyAiICIgKw0KCQkJCQkJInRvcCIgKyAoIHRvcCA+PSAwID8gIisiIDogIiIgKSArIHRvcCwNCgkJCQkJb2Y6IHRoYXQud2luZG93DQoJCQkJfTsNCgkJCQl0aGF0Ll9yZW1vdmVDbGFzcyggJCggdGhpcyApLCAidWktZGlhbG9nLWRyYWdnaW5nIiApOw0KCQkJCXRoYXQuX3VuYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAiZHJhZ1N0b3AiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfQ0KCQl9ICk7DQoJfSwNCg0KCV9tYWtlUmVzaXphYmxlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9ucywNCgkJCWhhbmRsZXMgPSBvcHRpb25zLnJlc2l6YWJsZSwNCg0KCQkJLy8gLnVpLXJlc2l6YWJsZSBoYXMgcG9zaXRpb246IHJlbGF0aXZlIGRlZmluZWQgaW4gdGhlIHN0eWxlc2hlZXQNCgkJCS8vIGJ1dCBkaWFsb2dzIGhhdmUgdG8gdXNlIGFic29sdXRlIG9yIGZpeGVkIHBvc2l0aW9uaW5nDQoJCQlwb3NpdGlvbiA9IHRoaXMudWlEaWFsb2cuY3NzKCAicG9zaXRpb24iICksDQoJCQlyZXNpemVIYW5kbGVzID0gdHlwZW9mIGhhbmRsZXMgPT09ICJzdHJpbmciID8NCgkJCQloYW5kbGVzIDoNCgkJCQkibixlLHMsdyxzZSxzdyxuZSxudyI7DQoNCgkJZnVuY3Rpb24gZmlsdGVyZWRVaSggdWkgKSB7DQoJCQlyZXR1cm4gew0KCQkJCW9yaWdpbmFsUG9zaXRpb246IHVpLm9yaWdpbmFsUG9zaXRpb24sDQoJCQkJb3JpZ2luYWxTaXplOiB1aS5vcmlnaW5hbFNpemUsDQoJCQkJcG9zaXRpb246IHVpLnBvc2l0aW9uLA0KCQkJCXNpemU6IHVpLnNpemUNCgkJCX07DQoJCX0NCg0KCQl0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSggew0KCQkJY2FuY2VsOiAiLnVpLWRpYWxvZy1jb250ZW50IiwNCgkJCWNvbnRhaW5tZW50OiAiZG9jdW1lbnQiLA0KCQkJYWxzb1Jlc2l6ZTogdGhpcy5lbGVtZW50LA0KCQkJbWF4V2lkdGg6IG9wdGlvbnMubWF4V2lkdGgsDQoJCQltYXhIZWlnaHQ6IG9wdGlvbnMubWF4SGVpZ2h0LA0KCQkJbWluV2lkdGg6IG9wdGlvbnMubWluV2lkdGgsDQoJCQltaW5IZWlnaHQ6IHRoaXMuX21pbkhlaWdodCgpLA0KCQkJaGFuZGxlczogcmVzaXplSGFuZGxlcywNCgkJCXN0YXJ0OiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXRoYXQuX2FkZENsYXNzKCAkKCB0aGlzICksICJ1aS1kaWFsb2ctcmVzaXppbmciICk7DQoJCQkJdGhhdC5fYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAicmVzaXplU3RhcnQiLCBldmVudCwgZmlsdGVyZWRVaSggdWkgKSApOw0KCQkJfSwNCgkJCXJlc2l6ZTogZnVuY3Rpb24oIGV2ZW50LCB1aSApIHsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAicmVzaXplIiwgZXZlbnQsIGZpbHRlcmVkVWkoIHVpICkgKTsNCgkJCX0sDQoJCQlzdG9wOiBmdW5jdGlvbiggZXZlbnQsIHVpICkgew0KCQkJCXZhciBvZmZzZXQgPSB0aGF0LnVpRGlhbG9nLm9mZnNldCgpLA0KCQkJCQlsZWZ0ID0gb2Zmc2V0LmxlZnQgLSB0aGF0LmRvY3VtZW50LnNjcm9sbExlZnQoKSwNCgkJCQkJdG9wID0gb2Zmc2V0LnRvcCAtIHRoYXQuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7DQoNCgkJCQlvcHRpb25zLmhlaWdodCA9IHRoYXQudWlEaWFsb2cuaGVpZ2h0KCk7DQoJCQkJb3B0aW9ucy53aWR0aCA9IHRoYXQudWlEaWFsb2cud2lkdGgoKTsNCgkJCQlvcHRpb25zLnBvc2l0aW9uID0gew0KCQkJCQlteTogImxlZnQgdG9wIiwNCgkJCQkJYXQ6ICJsZWZ0IiArICggbGVmdCA+PSAwID8gIisiIDogIiIgKSArIGxlZnQgKyAiICIgKw0KCQkJCQkJInRvcCIgKyAoIHRvcCA+PSAwID8gIisiIDogIiIgKSArIHRvcCwNCgkJCQkJb2Y6IHRoYXQud2luZG93DQoJCQkJfTsNCgkJCQl0aGF0Ll9yZW1vdmVDbGFzcyggJCggdGhpcyApLCAidWktZGlhbG9nLXJlc2l6aW5nIiApOw0KCQkJCXRoYXQuX3VuYmxvY2tGcmFtZXMoKTsNCgkJCQl0aGF0Ll90cmlnZ2VyKCAicmVzaXplU3RvcCIsIGV2ZW50LCBmaWx0ZXJlZFVpKCB1aSApICk7DQoJCQl9DQoJCX0gKQ0KCQkJLmNzcyggInBvc2l0aW9uIiwgcG9zaXRpb24gKTsNCgl9LA0KDQoJX3RyYWNrRm9jdXM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9vbiggdGhpcy53aWRnZXQoKSwgew0KCQkJZm9jdXNpbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCXRoaXMuX21ha2VGb2N1c1RhcmdldCgpOw0KCQkJCXRoaXMuX2ZvY3VzZWRFbGVtZW50ID0gJCggZXZlbnQudGFyZ2V0ICk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KDQoJX21ha2VGb2N1c1RhcmdldDogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX3VudHJhY2tJbnN0YW5jZSgpOw0KCQl0aGlzLl90cmFja2luZ0luc3RhbmNlcygpLnVuc2hpZnQoIHRoaXMgKTsNCgl9LA0KDQoJX3VudHJhY2tJbnN0YW5jZTogZnVuY3Rpb24oKSB7DQoJCXZhciBpbnN0YW5jZXMgPSB0aGlzLl90cmFja2luZ0luc3RhbmNlcygpLA0KCQkJZXhpc3RzID0gJC5pbkFycmF5KCB0aGlzLCBpbnN0YW5jZXMgKTsNCgkJaWYgKCBleGlzdHMgIT09IC0xICkgew0KCQkJaW5zdGFuY2VzLnNwbGljZSggZXhpc3RzLCAxICk7DQoJCX0NCgl9LA0KDQoJX3RyYWNraW5nSW5zdGFuY2VzOiBmdW5jdGlvbigpIHsNCgkJdmFyIGluc3RhbmNlcyA9IHRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1pbnN0YW5jZXMiICk7DQoJCWlmICggIWluc3RhbmNlcyApIHsNCgkJCWluc3RhbmNlcyA9IFtdOw0KCQkJdGhpcy5kb2N1bWVudC5kYXRhKCAidWktZGlhbG9nLWluc3RhbmNlcyIsIGluc3RhbmNlcyApOw0KCQl9DQoJCXJldHVybiBpbnN0YW5jZXM7DQoJfSwNCg0KCV9taW5IZWlnaHQ6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQlyZXR1cm4gb3B0aW9ucy5oZWlnaHQgPT09ICJhdXRvIiA/DQoJCQlvcHRpb25zLm1pbkhlaWdodCA6DQoJCQlNYXRoLm1pbiggb3B0aW9ucy5taW5IZWlnaHQsIG9wdGlvbnMuaGVpZ2h0ICk7DQoJfSwNCg0KCV9wb3NpdGlvbjogZnVuY3Rpb24oKSB7DQoNCgkJLy8gTmVlZCB0byBzaG93IHRoZSBkaWFsb2cgdG8gZ2V0IHRoZSBhY3R1YWwgb2Zmc2V0IGluIHRoZSBwb3NpdGlvbiBwbHVnaW4NCgkJdmFyIGlzVmlzaWJsZSA9IHRoaXMudWlEaWFsb2cuaXMoICI6dmlzaWJsZSIgKTsNCgkJaWYgKCAhaXNWaXNpYmxlICkgew0KCQkJdGhpcy51aURpYWxvZy5zaG93KCk7DQoJCX0NCgkJdGhpcy51aURpYWxvZy5wb3NpdGlvbiggdGhpcy5vcHRpb25zLnBvc2l0aW9uICk7DQoJCWlmICggIWlzVmlzaWJsZSApIHsNCgkJCXRoaXMudWlEaWFsb2cuaGlkZSgpOw0KCQl9DQoJfSwNCg0KCV9zZXRPcHRpb25zOiBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJcmVzaXplID0gZmFsc2UsDQoJCQlyZXNpemFibGVPcHRpb25zID0ge307DQoNCgkJJC5lYWNoKCBvcHRpb25zLCBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJCXRoYXQuX3NldE9wdGlvbigga2V5LCB2YWx1ZSApOw0KDQoJCQlpZiAoIGtleSBpbiB0aGF0LnNpemVSZWxhdGVkT3B0aW9ucyApIHsNCgkJCQlyZXNpemUgPSB0cnVlOw0KCQkJfQ0KCQkJaWYgKCBrZXkgaW4gdGhhdC5yZXNpemFibGVSZWxhdGVkT3B0aW9ucyApIHsNCgkJCQlyZXNpemFibGVPcHRpb25zWyBrZXkgXSA9IHZhbHVlOw0KCQkJfQ0KCQl9ICk7DQoNCgkJaWYgKCByZXNpemUgKSB7DQoJCQl0aGlzLl9zaXplKCk7DQoJCQl0aGlzLl9wb3NpdGlvbigpOw0KCQl9DQoJCWlmICggdGhpcy51aURpYWxvZy5pcyggIjpkYXRhKHVpLXJlc2l6YWJsZSkiICkgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSggIm9wdGlvbiIsIHJlc2l6YWJsZU9wdGlvbnMgKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIGlzRHJhZ2dhYmxlLCBpc1Jlc2l6YWJsZSwNCgkJCXVpRGlhbG9nID0gdGhpcy51aURpYWxvZzsNCg0KCQlpZiAoIGtleSA9PT0gImRpc2FibGVkIiApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJaWYgKCBrZXkgPT09ICJhcHBlbmRUbyIgKSB7DQoJCQl0aGlzLnVpRGlhbG9nLmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImJ1dHRvbnMiICkgew0KCQkJdGhpcy5fY3JlYXRlQnV0dG9ucygpOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJjbG9zZVRleHQiICkgew0KCQkJdGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuYnV0dG9uKCB7DQoNCgkJCQkvLyBFbnN1cmUgdGhhdCB3ZSBhbHdheXMgcGFzcyBhIHN0cmluZw0KCQkJCWxhYmVsOiAkKCAiPGE+IiApLnRleHQoICIiICsgdGhpcy5vcHRpb25zLmNsb3NlVGV4dCApLmh0bWwoKQ0KCQkJfSApOw0KCQl9DQoNCgkJaWYgKCBrZXkgPT09ICJkcmFnZ2FibGUiICkgew0KCQkJaXNEcmFnZ2FibGUgPSB1aURpYWxvZy5pcyggIjpkYXRhKHVpLWRyYWdnYWJsZSkiICk7DQoJCQlpZiAoIGlzRHJhZ2dhYmxlICYmICF2YWx1ZSApIHsNCgkJCQl1aURpYWxvZy5kcmFnZ2FibGUoICJkZXN0cm95IiApOw0KCQkJfQ0KDQoJCQlpZiAoICFpc0RyYWdnYWJsZSAmJiB2YWx1ZSApIHsNCgkJCQl0aGlzLl9tYWtlRHJhZ2dhYmxlKCk7DQoJCQl9DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gInBvc2l0aW9uIiApIHsNCgkJCXRoaXMuX3Bvc2l0aW9uKCk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gInJlc2l6YWJsZSIgKSB7DQoNCgkJCS8vIGN1cnJlbnRseSByZXNpemFibGUsIGJlY29taW5nIG5vbi1yZXNpemFibGUNCgkJCWlzUmVzaXphYmxlID0gdWlEaWFsb2cuaXMoICI6ZGF0YSh1aS1yZXNpemFibGUpIiApOw0KCQkJaWYgKCBpc1Jlc2l6YWJsZSAmJiAhdmFsdWUgKSB7DQoJCQkJdWlEaWFsb2cucmVzaXphYmxlKCAiZGVzdHJveSIgKTsNCgkJCX0NCg0KCQkJLy8gQ3VycmVudGx5IHJlc2l6YWJsZSwgY2hhbmdpbmcgaGFuZGxlcw0KCQkJaWYgKCBpc1Jlc2l6YWJsZSAmJiB0eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciICkgew0KCQkJCXVpRGlhbG9nLnJlc2l6YWJsZSggIm9wdGlvbiIsICJoYW5kbGVzIiwgdmFsdWUgKTsNCgkJCX0NCg0KCQkJLy8gQ3VycmVudGx5IG5vbi1yZXNpemFibGUsIGJlY29taW5nIHJlc2l6YWJsZQ0KCQkJaWYgKCAhaXNSZXNpemFibGUgJiYgdmFsdWUgIT09IGZhbHNlICkgew0KCQkJCXRoaXMuX21ha2VSZXNpemFibGUoKTsNCgkJCX0NCgkJfQ0KDQoJCWlmICgga2V5ID09PSAidGl0bGUiICkgew0KCQkJdGhpcy5fdGl0bGUoIHRoaXMudWlEaWFsb2dUaXRsZWJhci5maW5kKCAiLnVpLWRpYWxvZy10aXRsZSIgKSApOw0KCQl9DQoJfSwNCg0KCV9zaXplOiBmdW5jdGlvbigpIHsNCg0KCQkvLyBJZiB0aGUgdXNlciBoYXMgcmVzaXplZCB0aGUgZGlhbG9nLCB0aGUgLnVpLWRpYWxvZyBhbmQgLnVpLWRpYWxvZy1jb250ZW50DQoJCS8vIGRpdnMgd2lsbCBib3RoIGhhdmUgd2lkdGggYW5kIGhlaWdodCBzZXQsIHNvIHdlIG5lZWQgdG8gcmVzZXQgdGhlbQ0KCQl2YXIgbm9uQ29udGVudEhlaWdodCwgbWluQ29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodCwNCgkJCW9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoNCgkJLy8gUmVzZXQgY29udGVudCBzaXppbmcNCgkJdGhpcy5lbGVtZW50LnNob3coKS5jc3MoIHsNCgkJCXdpZHRoOiAiYXV0byIsDQoJCQltaW5IZWlnaHQ6IDAsDQoJCQltYXhIZWlnaHQ6ICJub25lIiwNCgkJCWhlaWdodDogMA0KCQl9ICk7DQoNCgkJaWYgKCBvcHRpb25zLm1pbldpZHRoID4gb3B0aW9ucy53aWR0aCApIHsNCgkJCW9wdGlvbnMud2lkdGggPSBvcHRpb25zLm1pbldpZHRoOw0KCQl9DQoNCgkJLy8gUmVzZXQgd3JhcHBlciBzaXppbmcNCgkJLy8gZGV0ZXJtaW5lIHRoZSBoZWlnaHQgb2YgYWxsIHRoZSBub24tY29udGVudCBlbGVtZW50cw0KCQlub25Db250ZW50SGVpZ2h0ID0gdGhpcy51aURpYWxvZy5jc3MoIHsNCgkJCWhlaWdodDogImF1dG8iLA0KCQkJd2lkdGg6IG9wdGlvbnMud2lkdGgNCgkJfSApDQoJCQkub3V0ZXJIZWlnaHQoKTsNCgkJbWluQ29udGVudEhlaWdodCA9IE1hdGgubWF4KCAwLCBvcHRpb25zLm1pbkhlaWdodCAtIG5vbkNvbnRlbnRIZWlnaHQgKTsNCgkJbWF4Q29udGVudEhlaWdodCA9IHR5cGVvZiBvcHRpb25zLm1heEhlaWdodCA9PT0gIm51bWJlciIgPw0KCQkJTWF0aC5tYXgoIDAsIG9wdGlvbnMubWF4SGVpZ2h0IC0gbm9uQ29udGVudEhlaWdodCApIDoNCgkJCSJub25lIjsNCg0KCQlpZiAoIG9wdGlvbnMuaGVpZ2h0ID09PSAiYXV0byIgKSB7DQoJCQl0aGlzLmVsZW1lbnQuY3NzKCB7DQoJCQkJbWluSGVpZ2h0OiBtaW5Db250ZW50SGVpZ2h0LA0KCQkJCW1heEhlaWdodDogbWF4Q29udGVudEhlaWdodCwNCgkJCQloZWlnaHQ6ICJhdXRvIg0KCQkJfSApOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy5lbGVtZW50LmhlaWdodCggTWF0aC5tYXgoIDAsIG9wdGlvbnMuaGVpZ2h0IC0gbm9uQ29udGVudEhlaWdodCApICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMudWlEaWFsb2cuaXMoICI6ZGF0YSh1aS1yZXNpemFibGUpIiApICkgew0KCQkJdGhpcy51aURpYWxvZy5yZXNpemFibGUoICJvcHRpb24iLCAibWluSGVpZ2h0IiwgdGhpcy5fbWluSGVpZ2h0KCkgKTsNCgkJfQ0KCX0sDQoNCglfYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmlmcmFtZUJsb2NrcyA9IHRoaXMuZG9jdW1lbnQuZmluZCggImlmcmFtZSIgKS5tYXAoIGZ1bmN0aW9uKCkgew0KCQkJdmFyIGlmcmFtZSA9ICQoIHRoaXMgKTsNCg0KCQkJcmV0dXJuICQoICI8ZGl2PiIgKQ0KCQkJCS5jc3MoIHsNCgkJCQkJcG9zaXRpb246ICJhYnNvbHV0ZSIsDQoJCQkJCXdpZHRoOiBpZnJhbWUub3V0ZXJXaWR0aCgpLA0KCQkJCQloZWlnaHQ6IGlmcmFtZS5vdXRlckhlaWdodCgpDQoJCQkJfSApDQoJCQkJLmFwcGVuZFRvKCBpZnJhbWUucGFyZW50KCkgKQ0KCQkJCS5vZmZzZXQoIGlmcmFtZS5vZmZzZXQoKSApWyAwIF07DQoJCX0gKTsNCgl9LA0KDQoJX3VuYmxvY2tGcmFtZXM6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMuaWZyYW1lQmxvY2tzICkgew0KCQkJdGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCk7DQoJCQlkZWxldGUgdGhpcy5pZnJhbWVCbG9ja3M7DQoJCX0NCgl9LA0KDQoJX2FsbG93SW50ZXJhY3Rpb246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLWRpYWxvZyIgKS5sZW5ndGggKSB7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KDQoJCS8vIFRPRE86IFJlbW92ZSBoYWNrIHdoZW4gZGF0ZXBpY2tlciBpbXBsZW1lbnRzDQoJCS8vIHRoZSAudWktZnJvbnQgbG9naWMgKCM4OTg5KQ0KCQlyZXR1cm4gISEkKCBldmVudC50YXJnZXQgKS5jbG9zZXN0KCAiLnVpLWRhdGVwaWNrZXIiICkubGVuZ3RoOw0KCX0sDQoNCglfY3JlYXRlT3ZlcmxheTogZnVuY3Rpb24oKSB7DQoJCWlmICggIXRoaXMub3B0aW9ucy5tb2RhbCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIFdlIHVzZSBhIGRlbGF5IGluIGNhc2UgdGhlIG92ZXJsYXkgaXMgY3JlYXRlZCBmcm9tIGFuDQoJCS8vIGV2ZW50IHRoYXQgd2UncmUgZ29pbmcgdG8gYmUgY2FuY2VsbGluZyAoIzI4MDQpDQoJCXZhciBpc09wZW5pbmcgPSB0cnVlOw0KCQl0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQlpc09wZW5pbmcgPSBmYWxzZTsNCgkJfSApOw0KDQoJCWlmICggIXRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIgKSApIHsNCg0KCQkJLy8gUHJldmVudCB1c2Ugb2YgYW5jaG9ycyBhbmQgaW5wdXRzDQoJCQkvLyBVc2luZyBfb24oKSBmb3IgYW4gZXZlbnQgaGFuZGxlciBzaGFyZWQgYWNyb3NzIG1hbnkgaW5zdGFuY2VzIGlzDQoJCQkvLyBzYWZlIGJlY2F1c2UgdGhlIGRpYWxvZ3Mgc3RhY2sgYW5kIG11c3QgYmUgY2xvc2VkIGluIHJldmVyc2Ugb3JkZXINCgkJCXRoaXMuX29uKCB0aGlzLmRvY3VtZW50LCB7DQoJCQkJZm9jdXNpbjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQlpZiAoIGlzT3BlbmluZyApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KDQoJCQkJCWlmICggIXRoaXMuX2FsbG93SW50ZXJhY3Rpb24oIGV2ZW50ICkgKSB7DQoJCQkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJCQkJdGhpcy5fdHJhY2tpbmdJbnN0YW5jZXMoKVsgMCBdLl9mb2N1c1RhYmJhYmxlKCk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9ICk7DQoJCX0NCg0KCQl0aGlzLm92ZXJsYXkgPSAkKCAiPGRpdj4iICkNCgkJCS5hcHBlbmRUbyggdGhpcy5fYXBwZW5kVG8oKSApOw0KDQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLm92ZXJsYXksIG51bGwsICJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udCIgKTsNCgkJdGhpcy5fb24oIHRoaXMub3ZlcmxheSwgew0KCQkJbW91c2Vkb3duOiAiX2tlZXBGb2N1cyINCgkJfSApOw0KCQl0aGlzLmRvY3VtZW50LmRhdGEoICJ1aS1kaWFsb2ctb3ZlcmxheXMiLA0KCQkJKCB0aGlzLmRvY3VtZW50LmRhdGEoICJ1aS1kaWFsb2ctb3ZlcmxheXMiICkgfHwgMCApICsgMSApOw0KCX0sDQoNCglfZGVzdHJveU92ZXJsYXk6IGZ1bmN0aW9uKCkgew0KCQlpZiAoICF0aGlzLm9wdGlvbnMubW9kYWwgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRoaXMub3ZlcmxheSApIHsNCgkJCXZhciBvdmVybGF5cyA9IHRoaXMuZG9jdW1lbnQuZGF0YSggInVpLWRpYWxvZy1vdmVybGF5cyIgKSAtIDE7DQoNCgkJCWlmICggIW92ZXJsYXlzICkgew0KCQkJCXRoaXMuX29mZiggdGhpcy5kb2N1bWVudCwgImZvY3VzaW4iICk7DQoJCQkJdGhpcy5kb2N1bWVudC5yZW1vdmVEYXRhKCAidWktZGlhbG9nLW92ZXJsYXlzIiApOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLmRvY3VtZW50LmRhdGEoICJ1aS1kaWFsb2ctb3ZlcmxheXMiLCBvdmVybGF5cyApOw0KCQkJfQ0KDQoJCQl0aGlzLm92ZXJsYXkucmVtb3ZlKCk7DQoJCQl0aGlzLm92ZXJsYXkgPSBudWxsOw0KCQl9DQoJfQ0KfSApOw0KDQovLyBERVBSRUNBVEVEDQovLyBUT0RPOiBzd2l0Y2ggcmV0dXJuIGJhY2sgdG8gd2lkZ2V0IGRlY2xhcmF0aW9uIGF0IHRvcCBvZiBmaWxlIHdoZW4gdGhpcyBpcyByZW1vdmVkDQppZiAoICQudWlCYWNrQ29tcGF0ICE9PSBmYWxzZSApIHsNCg0KCS8vIEJhY2tjb21wYXQgZm9yIGRpYWxvZ0NsYXNzIG9wdGlvbg0KCSQud2lkZ2V0KCAidWkuZGlhbG9nIiwgJC51aS5kaWFsb2csIHsNCgkJb3B0aW9uczogew0KCQkJZGlhbG9nQ2xhc3M6ICIiDQoJCX0sDQoJCV9jcmVhdGVXcmFwcGVyOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMuX3N1cGVyKCk7DQoJCQl0aGlzLnVpRGlhbG9nLmFkZENsYXNzKCB0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MgKTsNCgkJfSwNCgkJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCQlpZiAoIGtleSA9PT0gImRpYWxvZ0NsYXNzIiApIHsNCgkJCQl0aGlzLnVpRGlhbG9nDQoJCQkJCS5yZW1vdmVDbGFzcyggdGhpcy5vcHRpb25zLmRpYWxvZ0NsYXNzICkNCgkJCQkJLmFkZENsYXNzKCB2YWx1ZSApOw0KCQkJfQ0KCQkJdGhpcy5fc3VwZXJBcHBseSggYXJndW1lbnRzICk7DQoJCX0NCgl9ICk7DQp9DQoNCnZhciB3aWRnZXRzRGlhbG9nID0gJC51aS5kaWFsb2c7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgRHJvcHBhYmxlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBEcm9wcGFibGUNCi8vPj5ncm91cDogSW50ZXJhY3Rpb25zDQovLz4+ZGVzY3JpcHRpb246IEVuYWJsZXMgZHJvcCB0YXJnZXRzIGZvciBkcmFnZ2FibGUgZWxlbWVudHMuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vZHJvcHBhYmxlLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL2Ryb3BwYWJsZS8NCg0KDQoNCiQud2lkZ2V0KCAidWkuZHJvcHBhYmxlIiwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAiZHJvcCIsDQoJb3B0aW9uczogew0KCQlhY2NlcHQ6ICIqIiwNCgkJYWRkQ2xhc3NlczogdHJ1ZSwNCgkJZ3JlZWR5OiBmYWxzZSwNCgkJc2NvcGU6ICJkZWZhdWx0IiwNCgkJdG9sZXJhbmNlOiAiaW50ZXJzZWN0IiwNCg0KCQkvLyBDYWxsYmFja3MNCgkJYWN0aXZhdGU6IG51bGwsDQoJCWRlYWN0aXZhdGU6IG51bGwsDQoJCWRyb3A6IG51bGwsDQoJCW91dDogbnVsbCwNCgkJb3ZlcjogbnVsbA0KCX0sDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIHByb3BvcnRpb25zLA0KCQkJbyA9IHRoaXMub3B0aW9ucywNCgkJCWFjY2VwdCA9IG8uYWNjZXB0Ow0KDQoJCXRoaXMuaXNvdmVyID0gZmFsc2U7DQoJCXRoaXMuaXNvdXQgPSB0cnVlOw0KDQoJCXRoaXMuYWNjZXB0ID0gJC5pc0Z1bmN0aW9uKCBhY2NlcHQgKSA/IGFjY2VwdCA6IGZ1bmN0aW9uKCBkICkgew0KCQkJcmV0dXJuIGQuaXMoIGFjY2VwdCApOw0KCQl9Ow0KDQoJCXRoaXMucHJvcG9ydGlvbnMgPSBmdW5jdGlvbiggLyogdmFsdWVUb1dyaXRlICovICkgew0KCQkJaWYgKCBhcmd1bWVudHMubGVuZ3RoICkgew0KDQoJCQkJLy8gU3RvcmUgdGhlIGRyb3BwYWJsZSdzIHByb3BvcnRpb25zDQoJCQkJcHJvcG9ydGlvbnMgPSBhcmd1bWVudHNbIDAgXTsNCgkJCX0gZWxzZSB7DQoNCgkJCQkvLyBSZXRyaWV2ZSBvciBkZXJpdmUgdGhlIGRyb3BwYWJsZSdzIHByb3BvcnRpb25zDQoJCQkJcmV0dXJuIHByb3BvcnRpb25zID8NCgkJCQkJcHJvcG9ydGlvbnMgOg0KCQkJCQlwcm9wb3J0aW9ucyA9IHsNCgkJCQkJCXdpZHRoOiB0aGlzLmVsZW1lbnRbIDAgXS5vZmZzZXRXaWR0aCwNCgkJCQkJCWhlaWdodDogdGhpcy5lbGVtZW50WyAwIF0ub2Zmc2V0SGVpZ2h0DQoJCQkJCX07DQoJCQl9DQoJCX07DQoNCgkJdGhpcy5fYWRkVG9NYW5hZ2VyKCBvLnNjb3BlICk7DQoNCgkJby5hZGRDbGFzc2VzICYmIHRoaXMuX2FkZENsYXNzKCAidWktZHJvcHBhYmxlIiApOw0KDQoJfSwNCg0KCV9hZGRUb01hbmFnZXI6IGZ1bmN0aW9uKCBzY29wZSApIHsNCg0KCQkvLyBBZGQgdGhlIHJlZmVyZW5jZSBhbmQgcG9zaXRpb25zIHRvIHRoZSBtYW5hZ2VyDQoJCSQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHNjb3BlIF0gPSAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBzY29wZSBdIHx8IFtdOw0KCQkkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBzY29wZSBdLnB1c2goIHRoaXMgKTsNCgl9LA0KDQoJX3NwbGljZTogZnVuY3Rpb24oIGRyb3AgKSB7DQoJCXZhciBpID0gMDsNCgkJZm9yICggOyBpIDwgZHJvcC5sZW5ndGg7IGkrKyApIHsNCgkJCWlmICggZHJvcFsgaSBdID09PSB0aGlzICkgew0KCQkJCWRyb3Auc3BsaWNlKCBpLCAxICk7DQoJCQl9DQoJCX0NCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl2YXIgZHJvcCA9ICQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHRoaXMub3B0aW9ucy5zY29wZSBdOw0KDQoJCXRoaXMuX3NwbGljZSggZHJvcCApOw0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCg0KCQlpZiAoIGtleSA9PT0gImFjY2VwdCIgKSB7DQoJCQl0aGlzLmFjY2VwdCA9ICQuaXNGdW5jdGlvbiggdmFsdWUgKSA/IHZhbHVlIDogZnVuY3Rpb24oIGQgKSB7DQoJCQkJcmV0dXJuIGQuaXMoIHZhbHVlICk7DQoJCQl9Ow0KCQl9IGVsc2UgaWYgKCBrZXkgPT09ICJzY29wZSIgKSB7DQoJCQl2YXIgZHJvcCA9ICQudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbIHRoaXMub3B0aW9ucy5zY29wZSBdOw0KDQoJCQl0aGlzLl9zcGxpY2UoIGRyb3AgKTsNCgkJCXRoaXMuX2FkZFRvTWFuYWdlciggdmFsdWUgKTsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJfSwNCg0KCV9hY3RpdmF0ZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgZHJhZ2dhYmxlID0gJC51aS5kZG1hbmFnZXIuY3VycmVudDsNCg0KCQl0aGlzLl9hZGRBY3RpdmVDbGFzcygpOw0KCQlpZiAoIGRyYWdnYWJsZSApIHsNCgkJCXRoaXMuX3RyaWdnZXIoICJhY3RpdmF0ZSIsIGV2ZW50LCB0aGlzLnVpKCBkcmFnZ2FibGUgKSApOw0KCQl9DQoJfSwNCg0KCV9kZWFjdGl2YXRlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBkcmFnZ2FibGUgPSAkLnVpLmRkbWFuYWdlci5jdXJyZW50Ow0KDQoJCXRoaXMuX3JlbW92ZUFjdGl2ZUNsYXNzKCk7DQoJCWlmICggZHJhZ2dhYmxlICkgew0KCQkJdGhpcy5fdHJpZ2dlciggImRlYWN0aXZhdGUiLCBldmVudCwgdGhpcy51aSggZHJhZ2dhYmxlICkgKTsNCgkJfQ0KCX0sDQoNCglfb3ZlcjogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCXZhciBkcmFnZ2FibGUgPSAkLnVpLmRkbWFuYWdlci5jdXJyZW50Ow0KDQoJCS8vIEJhaWwgaWYgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgYXJlIHNhbWUgZWxlbWVudA0KCQlpZiAoICFkcmFnZ2FibGUgfHwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwNCgkJCQlkcmFnZ2FibGUuZWxlbWVudCApWyAwIF0gPT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCB0aGlzLmFjY2VwdC5jYWxsKCB0aGlzLmVsZW1lbnRbIDAgXSwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwNCgkJCQlkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQl0aGlzLl9hZGRIb3ZlckNsYXNzKCk7DQoJCQl0aGlzLl90cmlnZ2VyKCAib3ZlciIsIGV2ZW50LCB0aGlzLnVpKCBkcmFnZ2FibGUgKSApOw0KCQl9DQoNCgl9LA0KDQoJX291dDogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCXZhciBkcmFnZ2FibGUgPSAkLnVpLmRkbWFuYWdlci5jdXJyZW50Ow0KDQoJCS8vIEJhaWwgaWYgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgYXJlIHNhbWUgZWxlbWVudA0KCQlpZiAoICFkcmFnZ2FibGUgfHwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwNCgkJCQlkcmFnZ2FibGUuZWxlbWVudCApWyAwIF0gPT09IHRoaXMuZWxlbWVudFsgMCBdICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCB0aGlzLmFjY2VwdC5jYWxsKCB0aGlzLmVsZW1lbnRbIDAgXSwgKCBkcmFnZ2FibGUuY3VycmVudEl0ZW0gfHwNCgkJCQlkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQl0aGlzLl9yZW1vdmVIb3ZlckNsYXNzKCk7DQoJCQl0aGlzLl90cmlnZ2VyKCAib3V0IiwgZXZlbnQsIHRoaXMudWkoIGRyYWdnYWJsZSApICk7DQoJCX0NCg0KCX0sDQoNCglfZHJvcDogZnVuY3Rpb24oIGV2ZW50LCBjdXN0b20gKSB7DQoNCgkJdmFyIGRyYWdnYWJsZSA9IGN1c3RvbSB8fCAkLnVpLmRkbWFuYWdlci5jdXJyZW50LA0KCQkJY2hpbGRyZW5JbnRlcnNlY3Rpb24gPSBmYWxzZTsNCg0KCQkvLyBCYWlsIGlmIGRyYWdnYWJsZSBhbmQgZHJvcHBhYmxlIGFyZSBzYW1lIGVsZW1lbnQNCgkJaWYgKCAhZHJhZ2dhYmxlIHx8ICggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8DQoJCQkJZHJhZ2dhYmxlLmVsZW1lbnQgKVsgMCBdID09PSB0aGlzLmVsZW1lbnRbIDAgXSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuZWxlbWVudA0KCQkJLmZpbmQoICI6ZGF0YSh1aS1kcm9wcGFibGUpIiApDQoJCQkubm90KCAiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIgKQ0KCQkJLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCXZhciBpbnN0ID0gJCggdGhpcyApLmRyb3BwYWJsZSggImluc3RhbmNlIiApOw0KCQkJCWlmICgNCgkJCQkJaW5zdC5vcHRpb25zLmdyZWVkeSAmJg0KCQkJCQkhaW5zdC5vcHRpb25zLmRpc2FibGVkICYmDQoJCQkJCWluc3Qub3B0aW9ucy5zY29wZSA9PT0gZHJhZ2dhYmxlLm9wdGlvbnMuc2NvcGUgJiYNCgkJCQkJaW5zdC5hY2NlcHQuY2FsbCgNCgkJCQkJCWluc3QuZWxlbWVudFsgMCBdLCAoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApDQoJCQkJCSkgJiYNCgkJCQkJaW50ZXJzZWN0KA0KCQkJCQkJZHJhZ2dhYmxlLA0KCQkJCQkJJC5leHRlbmQoIGluc3QsIHsgb2Zmc2V0OiBpbnN0LmVsZW1lbnQub2Zmc2V0KCkgfSApLA0KCQkJCQkJaW5zdC5vcHRpb25zLnRvbGVyYW5jZSwgZXZlbnQNCgkJCQkJKQ0KCQkJCSkgew0KCQkJCQljaGlsZHJlbkludGVyc2VjdGlvbiA9IHRydWU7DQoJCQkJCXJldHVybiBmYWxzZTsgfQ0KCQkJfSApOw0KCQlpZiAoIGNoaWxkcmVuSW50ZXJzZWN0aW9uICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJaWYgKCB0aGlzLmFjY2VwdC5jYWxsKCB0aGlzLmVsZW1lbnRbIDAgXSwNCgkJCQkoIGRyYWdnYWJsZS5jdXJyZW50SXRlbSB8fCBkcmFnZ2FibGUuZWxlbWVudCApICkgKSB7DQoJCQl0aGlzLl9yZW1vdmVBY3RpdmVDbGFzcygpOw0KCQkJdGhpcy5fcmVtb3ZlSG92ZXJDbGFzcygpOw0KDQoJCQl0aGlzLl90cmlnZ2VyKCAiZHJvcCIsIGV2ZW50LCB0aGlzLnVpKCBkcmFnZ2FibGUgKSApOw0KCQkJcmV0dXJuIHRoaXMuZWxlbWVudDsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCgl1aTogZnVuY3Rpb24oIGMgKSB7DQoJCXJldHVybiB7DQoJCQlkcmFnZ2FibGU6ICggYy5jdXJyZW50SXRlbSB8fCBjLmVsZW1lbnQgKSwNCgkJCWhlbHBlcjogYy5oZWxwZXIsDQoJCQlwb3NpdGlvbjogYy5wb3NpdGlvbiwNCgkJCW9mZnNldDogYy5wb3NpdGlvbkFicw0KCQl9Ow0KCX0sDQoNCgkvLyBFeHRlbnNpb24gcG9pbnRzIGp1c3QgdG8gbWFrZSBiYWNrY29tcGF0IHNhbmUgYW5kIGF2b2lkIGR1cGxpY2F0aW5nIGxvZ2ljDQoJLy8gVE9ETzogUmVtb3ZlIGluIDEuMTMgYWxvbmcgd2l0aCBjYWxsIHRvIGl0IGJlbG93DQoJX2FkZEhvdmVyQ2xhc3M6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9hZGRDbGFzcyggInVpLWRyb3BwYWJsZS1ob3ZlciIgKTsNCgl9LA0KDQoJX3JlbW92ZUhvdmVyQ2xhc3M6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9yZW1vdmVDbGFzcyggInVpLWRyb3BwYWJsZS1ob3ZlciIgKTsNCgl9LA0KDQoJX2FkZEFjdGl2ZUNsYXNzOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fYWRkQ2xhc3MoICJ1aS1kcm9wcGFibGUtYWN0aXZlIiApOw0KCX0sDQoNCglfcmVtb3ZlQWN0aXZlQ2xhc3M6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9yZW1vdmVDbGFzcyggInVpLWRyb3BwYWJsZS1hY3RpdmUiICk7DQoJfQ0KfSApOw0KDQp2YXIgaW50ZXJzZWN0ID0gJC51aS5pbnRlcnNlY3QgPSAoIGZ1bmN0aW9uKCkgew0KCWZ1bmN0aW9uIGlzT3ZlckF4aXMoIHgsIHJlZmVyZW5jZSwgc2l6ZSApIHsNCgkJcmV0dXJuICggeCA+PSByZWZlcmVuY2UgKSAmJiAoIHggPCAoIHJlZmVyZW5jZSArIHNpemUgKSApOw0KCX0NCg0KCXJldHVybiBmdW5jdGlvbiggZHJhZ2dhYmxlLCBkcm9wcGFibGUsIHRvbGVyYW5jZU1vZGUsIGV2ZW50ICkgew0KDQoJCWlmICggIWRyb3BwYWJsZS5vZmZzZXQgKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCg0KCQl2YXIgeDEgPSAoIGRyYWdnYWJsZS5wb3NpdGlvbkFicyB8fA0KCQkJCWRyYWdnYWJsZS5wb3NpdGlvbi5hYnNvbHV0ZSApLmxlZnQgKyBkcmFnZ2FibGUubWFyZ2lucy5sZWZ0LA0KCQkJeTEgPSAoIGRyYWdnYWJsZS5wb3NpdGlvbkFicyB8fA0KCQkJCWRyYWdnYWJsZS5wb3NpdGlvbi5hYnNvbHV0ZSApLnRvcCArIGRyYWdnYWJsZS5tYXJnaW5zLnRvcCwNCgkJCXgyID0geDEgKyBkcmFnZ2FibGUuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsDQoJCQl5MiA9IHkxICsgZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCwNCgkJCWwgPSBkcm9wcGFibGUub2Zmc2V0LmxlZnQsDQoJCQl0ID0gZHJvcHBhYmxlLm9mZnNldC50b3AsDQoJCQlyID0gbCArIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLndpZHRoLA0KCQkJYiA9IHQgKyBkcm9wcGFibGUucHJvcG9ydGlvbnMoKS5oZWlnaHQ7DQoNCgkJc3dpdGNoICggdG9sZXJhbmNlTW9kZSApIHsNCgkJY2FzZSAiZml0IjoNCgkJCXJldHVybiAoIGwgPD0geDEgJiYgeDIgPD0gciAmJiB0IDw9IHkxICYmIHkyIDw9IGIgKTsNCgkJY2FzZSAiaW50ZXJzZWN0IjoNCgkJCXJldHVybiAoIGwgPCB4MSArICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC8gMiApICYmIC8vIFJpZ2h0IEhhbGYNCgkJCQl4MiAtICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC8gMiApIDwgciAmJiAvLyBMZWZ0IEhhbGYNCgkJCQl0IDwgeTEgKyAoIGRyYWdnYWJsZS5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLyAyICkgJiYgLy8gQm90dG9tIEhhbGYNCgkJCQl5MiAtICggZHJhZ2dhYmxlLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAvIDIgKSA8IGIgKTsgLy8gVG9wIEhhbGYNCgkJY2FzZSAicG9pbnRlciI6DQoJCQlyZXR1cm4gaXNPdmVyQXhpcyggZXZlbnQucGFnZVksIHQsIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLmhlaWdodCApICYmDQoJCQkJaXNPdmVyQXhpcyggZXZlbnQucGFnZVgsIGwsIGRyb3BwYWJsZS5wcm9wb3J0aW9ucygpLndpZHRoICk7DQoJCWNhc2UgInRvdWNoIjoNCgkJCXJldHVybiAoDQoJCQkJKCB5MSA+PSB0ICYmIHkxIDw9IGIgKSB8fCAvLyBUb3AgZWRnZSB0b3VjaGluZw0KCQkJCSggeTIgPj0gdCAmJiB5MiA8PSBiICkgfHwgLy8gQm90dG9tIGVkZ2UgdG91Y2hpbmcNCgkJCQkoIHkxIDwgdCAmJiB5MiA+IGIgKSAvLyBTdXJyb3VuZGVkIHZlcnRpY2FsbHkNCgkJCSkgJiYgKA0KCQkJCSggeDEgPj0gbCAmJiB4MSA8PSByICkgfHwgLy8gTGVmdCBlZGdlIHRvdWNoaW5nDQoJCQkJKCB4MiA+PSBsICYmIHgyIDw9IHIgKSB8fCAvLyBSaWdodCBlZGdlIHRvdWNoaW5nDQoJCQkJKCB4MSA8IGwgJiYgeDIgPiByICkgLy8gU3Vycm91bmRlZCBob3Jpem9udGFsbHkNCgkJCSk7DQoJCWRlZmF1bHQ6DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgl9Ow0KfSApKCk7DQoNCi8qDQoJVGhpcyBtYW5hZ2VyIHRyYWNrcyBvZmZzZXRzIG9mIGRyYWdnYWJsZXMgYW5kIGRyb3BwYWJsZXMNCiovDQokLnVpLmRkbWFuYWdlciA9IHsNCgljdXJyZW50OiBudWxsLA0KCWRyb3BwYWJsZXM6IHsgImRlZmF1bHQiOiBbXSB9LA0KCXByZXBhcmVPZmZzZXRzOiBmdW5jdGlvbiggdCwgZXZlbnQgKSB7DQoNCgkJdmFyIGksIGosDQoJCQltID0gJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgdC5vcHRpb25zLnNjb3BlIF0gfHwgW10sDQoJCQl0eXBlID0gZXZlbnQgPyBldmVudC50eXBlIDogbnVsbCwgLy8gd29ya2Fyb3VuZCBmb3IgIzIzMTcNCgkJCWxpc3QgPSAoIHQuY3VycmVudEl0ZW0gfHwgdC5lbGVtZW50ICkuZmluZCggIjpkYXRhKHVpLWRyb3BwYWJsZSkiICkuYWRkQmFjaygpOw0KDQoJCWRyb3BwYWJsZXNMb29wOiBmb3IgKCBpID0gMDsgaSA8IG0ubGVuZ3RoOyBpKysgKSB7DQoNCgkJCS8vIE5vIGRpc2FibGVkIGFuZCBub24tYWNjZXB0ZWQNCgkJCWlmICggbVsgaSBdLm9wdGlvbnMuZGlzYWJsZWQgfHwgKCB0ICYmICFtWyBpIF0uYWNjZXB0LmNhbGwoIG1bIGkgXS5lbGVtZW50WyAwIF0sDQoJCQkJCSggdC5jdXJyZW50SXRlbSB8fCB0LmVsZW1lbnQgKSApICkgKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCS8vIEZpbHRlciBvdXQgZWxlbWVudHMgaW4gdGhlIGN1cnJlbnQgZHJhZ2dlZCBpdGVtDQoJCQlmb3IgKCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKysgKSB7DQoJCQkJaWYgKCBsaXN0WyBqIF0gPT09IG1bIGkgXS5lbGVtZW50WyAwIF0gKSB7DQoJCQkJCW1bIGkgXS5wcm9wb3J0aW9ucygpLmhlaWdodCA9IDA7DQoJCQkJCWNvbnRpbnVlIGRyb3BwYWJsZXNMb29wOw0KCQkJCX0NCgkJCX0NCg0KCQkJbVsgaSBdLnZpc2libGUgPSBtWyBpIF0uZWxlbWVudC5jc3MoICJkaXNwbGF5IiApICE9PSAibm9uZSI7DQoJCQlpZiAoICFtWyBpIF0udmlzaWJsZSApIHsNCgkJCQljb250aW51ZTsNCgkJCX0NCg0KCQkJLy8gQWN0aXZhdGUgdGhlIGRyb3BwYWJsZSBpZiB1c2VkIGRpcmVjdGx5IGZyb20gZHJhZ2dhYmxlcw0KCQkJaWYgKCB0eXBlID09PSAibW91c2Vkb3duIiApIHsNCgkJCQltWyBpIF0uX2FjdGl2YXRlLmNhbGwoIG1bIGkgXSwgZXZlbnQgKTsNCgkJCX0NCg0KCQkJbVsgaSBdLm9mZnNldCA9IG1bIGkgXS5lbGVtZW50Lm9mZnNldCgpOw0KCQkJbVsgaSBdLnByb3BvcnRpb25zKCB7DQoJCQkJd2lkdGg6IG1bIGkgXS5lbGVtZW50WyAwIF0ub2Zmc2V0V2lkdGgsDQoJCQkJaGVpZ2h0OiBtWyBpIF0uZWxlbWVudFsgMCBdLm9mZnNldEhlaWdodA0KCQkJfSApOw0KDQoJCX0NCg0KCX0sDQoJZHJvcDogZnVuY3Rpb24oIGRyYWdnYWJsZSwgZXZlbnQgKSB7DQoNCgkJdmFyIGRyb3BwZWQgPSBmYWxzZTsNCg0KCQkvLyBDcmVhdGUgYSBjb3B5IG9mIHRoZSBkcm9wcGFibGVzIGluIGNhc2UgdGhlIGxpc3QgY2hhbmdlcyBkdXJpbmcgdGhlIGRyb3AgKCM5MTE2KQ0KCQkkLmVhY2goICggJC51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1sgZHJhZ2dhYmxlLm9wdGlvbnMuc2NvcGUgXSB8fCBbXSApLnNsaWNlKCksIGZ1bmN0aW9uKCkgew0KDQoJCQlpZiAoICF0aGlzLm9wdGlvbnMgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJaWYgKCAhdGhpcy5vcHRpb25zLmRpc2FibGVkICYmIHRoaXMudmlzaWJsZSAmJg0KCQkJCQlpbnRlcnNlY3QoIGRyYWdnYWJsZSwgdGhpcywgdGhpcy5vcHRpb25zLnRvbGVyYW5jZSwgZXZlbnQgKSApIHsNCgkJCQlkcm9wcGVkID0gdGhpcy5fZHJvcC5jYWxsKCB0aGlzLCBldmVudCApIHx8IGRyb3BwZWQ7DQoJCQl9DQoNCgkJCWlmICggIXRoaXMub3B0aW9ucy5kaXNhYmxlZCAmJiB0aGlzLnZpc2libGUgJiYgdGhpcy5hY2NlcHQuY2FsbCggdGhpcy5lbGVtZW50WyAwIF0sDQoJCQkJCSggZHJhZ2dhYmxlLmN1cnJlbnRJdGVtIHx8IGRyYWdnYWJsZS5lbGVtZW50ICkgKSApIHsNCgkJCQl0aGlzLmlzb3V0ID0gdHJ1ZTsNCgkJCQl0aGlzLmlzb3ZlciA9IGZhbHNlOw0KCQkJCXRoaXMuX2RlYWN0aXZhdGUuY2FsbCggdGhpcywgZXZlbnQgKTsNCgkJCX0NCg0KCQl9ICk7DQoJCXJldHVybiBkcm9wcGVkOw0KDQoJfSwNCglkcmFnU3RhcnQ6IGZ1bmN0aW9uKCBkcmFnZ2FibGUsIGV2ZW50ICkgew0KDQoJCS8vIExpc3RlbiBmb3Igc2Nyb2xsaW5nIHNvIHRoYXQgaWYgdGhlIGRyYWdnaW5nIGNhdXNlcyBzY3JvbGxpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZQ0KCQkvLyBkcm9wcGFibGVzIGNhbiBiZSByZWNhbGN1bGF0ZWQgKHNlZSAjNTAwMykNCgkJZHJhZ2dhYmxlLmVsZW1lbnQucGFyZW50c1VudGlsKCAiYm9keSIgKS5vbiggInNjcm9sbC5kcm9wcGFibGUiLCBmdW5jdGlvbigpIHsNCgkJCWlmICggIWRyYWdnYWJsZS5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMgKSB7DQoJCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIGRyYWdnYWJsZSwgZXZlbnQgKTsNCgkJCX0NCgkJfSApOw0KCX0sDQoJZHJhZzogZnVuY3Rpb24oIGRyYWdnYWJsZSwgZXZlbnQgKSB7DQoNCgkJLy8gSWYgeW91IGhhdmUgYSBoaWdobHkgZHluYW1pYyBwYWdlLCB5b3UgbWlnaHQgdHJ5IHRoaXMgb3B0aW9uLiBJdCByZW5kZXJzIHBvc2l0aW9ucw0KCQkvLyBldmVyeSB0aW1lIHlvdSBtb3ZlIHRoZSBtb3VzZS4NCgkJaWYgKCBkcmFnZ2FibGUub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zICkgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIGRyYWdnYWJsZSwgZXZlbnQgKTsNCgkJfQ0KDQoJCS8vIFJ1biB0aHJvdWdoIGFsbCBkcm9wcGFibGVzIGFuZCBjaGVjayB0aGVpciBwb3NpdGlvbnMgYmFzZWQgb24gc3BlY2lmaWMgdG9sZXJhbmNlIG9wdGlvbnMNCgkJJC5lYWNoKCAkLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzWyBkcmFnZ2FibGUub3B0aW9ucy5zY29wZSBdIHx8IFtdLCBmdW5jdGlvbigpIHsNCg0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgfHwgdGhpcy5ncmVlZHlDaGlsZCB8fCAhdGhpcy52aXNpYmxlICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJdmFyIHBhcmVudEluc3RhbmNlLCBzY29wZSwgcGFyZW50LA0KCQkJCWludGVyc2VjdHMgPSBpbnRlcnNlY3QoIGRyYWdnYWJsZSwgdGhpcywgdGhpcy5vcHRpb25zLnRvbGVyYW5jZSwgZXZlbnQgKSwNCgkJCQljID0gIWludGVyc2VjdHMgJiYgdGhpcy5pc292ZXIgPw0KCQkJCQkiaXNvdXQiIDoNCgkJCQkJKCBpbnRlcnNlY3RzICYmICF0aGlzLmlzb3ZlciA/ICJpc292ZXIiIDogbnVsbCApOw0KCQkJaWYgKCAhYyApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWlmICggdGhpcy5vcHRpb25zLmdyZWVkeSApIHsNCg0KCQkJCS8vIGZpbmQgZHJvcHBhYmxlIHBhcmVudHMgd2l0aCBzYW1lIHNjb3BlDQoJCQkJc2NvcGUgPSB0aGlzLm9wdGlvbnMuc2NvcGU7DQoJCQkJcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudHMoICI6ZGF0YSh1aS1kcm9wcGFibGUpIiApLmZpbHRlciggZnVuY3Rpb24oKSB7DQoJCQkJCXJldHVybiAkKCB0aGlzICkuZHJvcHBhYmxlKCAiaW5zdGFuY2UiICkub3B0aW9ucy5zY29wZSA9PT0gc2NvcGU7DQoJCQkJfSApOw0KDQoJCQkJaWYgKCBwYXJlbnQubGVuZ3RoICkgew0KCQkJCQlwYXJlbnRJbnN0YW5jZSA9ICQoIHBhcmVudFsgMCBdICkuZHJvcHBhYmxlKCAiaW5zdGFuY2UiICk7DQoJCQkJCXBhcmVudEluc3RhbmNlLmdyZWVkeUNoaWxkID0gKCBjID09PSAiaXNvdmVyIiApOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy8gV2UganVzdCBtb3ZlZCBpbnRvIGEgZ3JlZWR5IGNoaWxkDQoJCQlpZiAoIHBhcmVudEluc3RhbmNlICYmIGMgPT09ICJpc292ZXIiICkgew0KCQkJCXBhcmVudEluc3RhbmNlLmlzb3ZlciA9IGZhbHNlOw0KCQkJCXBhcmVudEluc3RhbmNlLmlzb3V0ID0gdHJ1ZTsNCgkJCQlwYXJlbnRJbnN0YW5jZS5fb3V0LmNhbGwoIHBhcmVudEluc3RhbmNlLCBldmVudCApOw0KCQkJfQ0KDQoJCQl0aGlzWyBjIF0gPSB0cnVlOw0KCQkJdGhpc1sgYyA9PT0gImlzb3V0IiA/ICJpc292ZXIiIDogImlzb3V0IiBdID0gZmFsc2U7DQoJCQl0aGlzWyBjID09PSAiaXNvdmVyIiA/ICJfb3ZlciIgOiAiX291dCIgXS5jYWxsKCB0aGlzLCBldmVudCApOw0KDQoJCQkvLyBXZSBqdXN0IG1vdmVkIG91dCBvZiBhIGdyZWVkeSBjaGlsZA0KCQkJaWYgKCBwYXJlbnRJbnN0YW5jZSAmJiBjID09PSAiaXNvdXQiICkgew0KCQkJCXBhcmVudEluc3RhbmNlLmlzb3V0ID0gZmFsc2U7DQoJCQkJcGFyZW50SW5zdGFuY2UuaXNvdmVyID0gdHJ1ZTsNCgkJCQlwYXJlbnRJbnN0YW5jZS5fb3Zlci5jYWxsKCBwYXJlbnRJbnN0YW5jZSwgZXZlbnQgKTsNCgkJCX0NCgkJfSApOw0KDQoJfSwNCglkcmFnU3RvcDogZnVuY3Rpb24oIGRyYWdnYWJsZSwgZXZlbnQgKSB7DQoJCWRyYWdnYWJsZS5lbGVtZW50LnBhcmVudHNVbnRpbCggImJvZHkiICkub2ZmKCAic2Nyb2xsLmRyb3BwYWJsZSIgKTsNCg0KCQkvLyBDYWxsIHByZXBhcmVPZmZzZXRzIG9uZSBmaW5hbCB0aW1lIHNpbmNlIElFIGRvZXMgbm90IGZpcmUgcmV0dXJuIHNjcm9sbCBldmVudHMgd2hlbg0KCQkvLyBvdmVyZmxvdyB3YXMgY2F1c2VkIGJ5IGRyYWcgKHNlZSAjNTAwMykNCgkJaWYgKCAhZHJhZ2dhYmxlLm9wdGlvbnMucmVmcmVzaFBvc2l0aW9ucyApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKCBkcmFnZ2FibGUsIGV2ZW50ICk7DQoJCX0NCgl9DQp9Ow0KDQovLyBERVBSRUNBVEVEDQovLyBUT0RPOiBzd2l0Y2ggcmV0dXJuIGJhY2sgdG8gd2lkZ2V0IGRlY2xhcmF0aW9uIGF0IHRvcCBvZiBmaWxlIHdoZW4gdGhpcyBpcyByZW1vdmVkDQppZiAoICQudWlCYWNrQ29tcGF0ICE9PSBmYWxzZSApIHsNCg0KCS8vIEJhY2tjb21wYXQgZm9yIGFjdGl2ZUNsYXNzIGFuZCBob3ZlckNsYXNzIG9wdGlvbnMNCgkkLndpZGdldCggInVpLmRyb3BwYWJsZSIsICQudWkuZHJvcHBhYmxlLCB7DQoJCW9wdGlvbnM6IHsNCgkJCWhvdmVyQ2xhc3M6IGZhbHNlLA0KCQkJYWN0aXZlQ2xhc3M6IGZhbHNlDQoJCX0sDQoJCV9hZGRBY3RpdmVDbGFzczogZnVuY3Rpb24oKSB7DQoJCQl0aGlzLl9zdXBlcigpOw0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MgKSB7DQoJCQkJdGhpcy5lbGVtZW50LmFkZENsYXNzKCB0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MgKTsNCgkJCX0NCgkJfSwNCgkJX3JlbW92ZUFjdGl2ZUNsYXNzOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMuX3N1cGVyKCk7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyApIHsNCgkJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoIHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyApOw0KCQkJfQ0KCQl9LA0KCQlfYWRkSG92ZXJDbGFzczogZnVuY3Rpb24oKSB7DQoJCQl0aGlzLl9zdXBlcigpOw0KCQkJaWYgKCB0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyApIHsNCgkJCQl0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoIHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzICk7DQoJCQl9DQoJCX0sDQoJCV9yZW1vdmVIb3ZlckNsYXNzOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMuX3N1cGVyKCk7DQoJCQlpZiAoIHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzICkgew0KCQkJCXRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyggdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MgKTsNCgkJCX0NCgkJfQ0KCX0gKTsNCn0NCg0KdmFyIHdpZGdldHNEcm9wcGFibGUgPSAkLnVpLmRyb3BwYWJsZTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBQcm9ncmVzc2JhciAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogUHJvZ3Jlc3NiYXINCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8ganNjczpkaXNhYmxlIG1heGltdW1MaW5lTGVuZ3RoDQovLz4+ZGVzY3JpcHRpb246IERpc3BsYXlzIGEgc3RhdHVzIGluZGljYXRvciBmb3IgbG9hZGluZyBzdGF0ZSwgc3RhbmRhcmQgcGVyY2VudGFnZSwgYW5kIG90aGVyIHByb2dyZXNzIGluZGljYXRvcnMuDQovLyBqc2NzOmVuYWJsZSBtYXhpbXVtTGluZUxlbmd0aA0KLy8+PmRvY3M6IGh0dHA6Ly9hcGkuanF1ZXJ5dWkuY29tL3Byb2dyZXNzYmFyLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Byb2dyZXNzYmFyLw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvcmUuY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvcHJvZ3Jlc3NiYXIuY3NzDQovLz4+Y3NzLnRoZW1lOiAuLi8uLi90aGVtZXMvYmFzZS90aGVtZS5jc3MNCg0KDQoNCnZhciB3aWRnZXRzUHJvZ3Jlc3NiYXIgPSAkLndpZGdldCggInVpLnByb2dyZXNzYmFyIiwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCW9wdGlvbnM6IHsNCgkJY2xhc3Nlczogew0KCQkJInVpLXByb2dyZXNzYmFyIjogInVpLWNvcm5lci1hbGwiLA0KCQkJInVpLXByb2dyZXNzYmFyLXZhbHVlIjogInVpLWNvcm5lci1sZWZ0IiwNCgkJCSJ1aS1wcm9ncmVzc2Jhci1jb21wbGV0ZSI6ICJ1aS1jb3JuZXItcmlnaHQiDQoJCX0sDQoJCW1heDogMTAwLA0KCQl2YWx1ZTogMCwNCg0KCQljaGFuZ2U6IG51bGwsDQoJCWNvbXBsZXRlOiBudWxsDQoJfSwNCg0KCW1pbjogMCwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KDQoJCS8vIENvbnN0cmFpbiBpbml0aWFsIHZhbHVlDQoJCXRoaXMub2xkVmFsdWUgPSB0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl9jb25zdHJhaW5lZFZhbHVlKCk7DQoNCgkJdGhpcy5lbGVtZW50LmF0dHIoIHsNCg0KCQkJLy8gT25seSBzZXQgc3RhdGljIHZhbHVlczsgYXJpYS12YWx1ZW5vdyBhbmQgYXJpYS12YWx1ZW1heCBhcmUNCgkJCS8vIHNldCBpbnNpZGUgX3JlZnJlc2hWYWx1ZSgpDQoJCQlyb2xlOiAicHJvZ3Jlc3NiYXIiLA0KCQkJImFyaWEtdmFsdWVtaW4iOiB0aGlzLm1pbg0KCQl9ICk7DQoJCXRoaXMuX2FkZENsYXNzKCAidWktcHJvZ3Jlc3NiYXIiLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiApOw0KDQoJCXRoaXMudmFsdWVEaXYgPSAkKCAiPGRpdj4iICkuYXBwZW5kVG8oIHRoaXMuZWxlbWVudCApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy52YWx1ZURpdiwgInVpLXByb2dyZXNzYmFyLXZhbHVlIiwgInVpLXdpZGdldC1oZWFkZXIiICk7DQoJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCAicm9sZSBhcmlhLXZhbHVlbWluIGFyaWEtdmFsdWVtYXggYXJpYS12YWx1ZW5vdyIgKTsNCg0KCQl0aGlzLnZhbHVlRGl2LnJlbW92ZSgpOw0KCX0sDQoNCgl2YWx1ZTogZnVuY3Rpb24oIG5ld1ZhbHVlICkgew0KCQlpZiAoIG5ld1ZhbHVlID09PSB1bmRlZmluZWQgKSB7DQoJCQlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlOw0KCQl9DQoNCgkJdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy5fY29uc3RyYWluZWRWYWx1ZSggbmV3VmFsdWUgKTsNCgkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJfSwNCg0KCV9jb25zdHJhaW5lZFZhbHVlOiBmdW5jdGlvbiggbmV3VmFsdWUgKSB7DQoJCWlmICggbmV3VmFsdWUgPT09IHVuZGVmaW5lZCApIHsNCgkJCW5ld1ZhbHVlID0gdGhpcy5vcHRpb25zLnZhbHVlOw0KCQl9DQoNCgkJdGhpcy5pbmRldGVybWluYXRlID0gbmV3VmFsdWUgPT09IGZhbHNlOw0KDQoJCS8vIFNhbml0aXplIHZhbHVlDQoJCWlmICggdHlwZW9mIG5ld1ZhbHVlICE9PSAibnVtYmVyIiApIHsNCgkJCW5ld1ZhbHVlID0gMDsNCgkJfQ0KDQoJCXJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGUgPyBmYWxzZSA6DQoJCQlNYXRoLm1pbiggdGhpcy5vcHRpb25zLm1heCwgTWF0aC5tYXgoIHRoaXMubWluLCBuZXdWYWx1ZSApICk7DQoJfSwNCg0KCV9zZXRPcHRpb25zOiBmdW5jdGlvbiggb3B0aW9ucyApIHsNCg0KCQkvLyBFbnN1cmUgInZhbHVlIiBvcHRpb24gaXMgc2V0IGFmdGVyIG90aGVyIHZhbHVlcyAobGlrZSBtYXgpDQoJCXZhciB2YWx1ZSA9IG9wdGlvbnMudmFsdWU7DQoJCWRlbGV0ZSBvcHRpb25zLnZhbHVlOw0KDQoJCXRoaXMuX3N1cGVyKCBvcHRpb25zICk7DQoNCgkJdGhpcy5vcHRpb25zLnZhbHVlID0gdGhpcy5fY29uc3RyYWluZWRWYWx1ZSggdmFsdWUgKTsNCgkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gIm1heCIgKSB7DQoNCgkJCS8vIERvbid0IGFsbG93IGEgbWF4IGxlc3MgdGhhbiBtaW4NCgkJCXZhbHVlID0gTWF0aC5tYXgoIHRoaXMubWluLCB2YWx1ZSApOw0KCQl9DQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoJfSwNCg0KCV9zZXRPcHRpb25EaXNhYmxlZDogZnVuY3Rpb24oIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlciggdmFsdWUgKTsNCg0KCQl0aGlzLmVsZW1lbnQuYXR0ciggImFyaWEtZGlzYWJsZWQiLCB2YWx1ZSApOw0KCQl0aGlzLl90b2dnbGVDbGFzcyggbnVsbCwgInVpLXN0YXRlLWRpc2FibGVkIiwgISF2YWx1ZSApOw0KCX0sDQoNCglfcGVyY2VudGFnZTogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLmluZGV0ZXJtaW5hdGUgPw0KCQkJMTAwIDoNCgkJCTEwMCAqICggdGhpcy5vcHRpb25zLnZhbHVlIC0gdGhpcy5taW4gKSAvICggdGhpcy5vcHRpb25zLm1heCAtIHRoaXMubWluICk7DQoJfSwNCg0KCV9yZWZyZXNoVmFsdWU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdmFsdWUgPSB0aGlzLm9wdGlvbnMudmFsdWUsDQoJCQlwZXJjZW50YWdlID0gdGhpcy5fcGVyY2VudGFnZSgpOw0KDQoJCXRoaXMudmFsdWVEaXYNCgkJCS50b2dnbGUoIHRoaXMuaW5kZXRlcm1pbmF0ZSB8fCB2YWx1ZSA+IHRoaXMubWluICkNCgkJCS53aWR0aCggcGVyY2VudGFnZS50b0ZpeGVkKCAwICkgKyAiJSIgKTsNCg0KCQl0aGlzDQoJCQkuX3RvZ2dsZUNsYXNzKCB0aGlzLnZhbHVlRGl2LCAidWktcHJvZ3Jlc3NiYXItY29tcGxldGUiLCBudWxsLA0KCQkJCXZhbHVlID09PSB0aGlzLm9wdGlvbnMubWF4ICkNCgkJCS5fdG9nZ2xlQ2xhc3MoICJ1aS1wcm9ncmVzc2Jhci1pbmRldGVybWluYXRlIiwgbnVsbCwgdGhpcy5pbmRldGVybWluYXRlICk7DQoNCgkJaWYgKCB0aGlzLmluZGV0ZXJtaW5hdGUgKSB7DQoJCQl0aGlzLmVsZW1lbnQucmVtb3ZlQXR0ciggImFyaWEtdmFsdWVub3ciICk7DQoJCQlpZiAoICF0aGlzLm92ZXJsYXlEaXYgKSB7DQoJCQkJdGhpcy5vdmVybGF5RGl2ID0gJCggIjxkaXY+IiApLmFwcGVuZFRvKCB0aGlzLnZhbHVlRGl2ICk7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMub3ZlcmxheURpdiwgInVpLXByb2dyZXNzYmFyLW92ZXJsYXkiICk7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmVsZW1lbnQuYXR0ciggew0KCQkJCSJhcmlhLXZhbHVlbWF4IjogdGhpcy5vcHRpb25zLm1heCwNCgkJCQkiYXJpYS12YWx1ZW5vdyI6IHZhbHVlDQoJCQl9ICk7DQoJCQlpZiAoIHRoaXMub3ZlcmxheURpdiApIHsNCgkJCQl0aGlzLm92ZXJsYXlEaXYucmVtb3ZlKCk7DQoJCQkJdGhpcy5vdmVybGF5RGl2ID0gbnVsbDsNCgkJCX0NCgkJfQ0KDQoJCWlmICggdGhpcy5vbGRWYWx1ZSAhPT0gdmFsdWUgKSB7DQoJCQl0aGlzLm9sZFZhbHVlID0gdmFsdWU7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiApOw0KCQl9DQoJCWlmICggdmFsdWUgPT09IHRoaXMub3B0aW9ucy5tYXggKSB7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY29tcGxldGUiICk7DQoJCX0NCgl9DQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU2VsZWN0YWJsZSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogU2VsZWN0YWJsZQ0KLy8+Pmdyb3VwOiBJbnRlcmFjdGlvbnMNCi8vPj5kZXNjcmlwdGlvbjogQWxsb3dzIGdyb3VwcyBvZiBlbGVtZW50cyB0byBiZSBzZWxlY3RlZCB3aXRoIHRoZSBtb3VzZS4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zZWxlY3RhYmxlLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL3NlbGVjdGFibGUvDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2Uvc2VsZWN0YWJsZS5jc3MNCg0KDQoNCnZhciB3aWRnZXRzU2VsZWN0YWJsZSA9ICQud2lkZ2V0KCAidWkuc2VsZWN0YWJsZSIsICQudWkubW91c2UsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiAiYm9keSIsDQoJCWF1dG9SZWZyZXNoOiB0cnVlLA0KCQlkaXN0YW5jZTogMCwNCgkJZmlsdGVyOiAiKiIsDQoJCXRvbGVyYW5jZTogInRvdWNoIiwNCg0KCQkvLyBDYWxsYmFja3MNCgkJc2VsZWN0ZWQ6IG51bGwsDQoJCXNlbGVjdGluZzogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwsDQoJCXVuc2VsZWN0ZWQ6IG51bGwsDQoJCXVuc2VsZWN0aW5nOiBudWxsDQoJfSwNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuX2FkZENsYXNzKCAidWktc2VsZWN0YWJsZSIgKTsNCg0KCQl0aGlzLmRyYWdnZWQgPSBmYWxzZTsNCg0KCQkvLyBDYWNoZSBzZWxlY3RlZSBjaGlsZHJlbiBiYXNlZCBvbiBmaWx0ZXINCgkJdGhpcy5yZWZyZXNoID0gZnVuY3Rpb24oKSB7DQoJCQl0aGF0LmVsZW1lbnRQb3MgPSAkKCB0aGF0LmVsZW1lbnRbIDAgXSApLm9mZnNldCgpOw0KCQkJdGhhdC5zZWxlY3RlZXMgPSAkKCB0aGF0Lm9wdGlvbnMuZmlsdGVyLCB0aGF0LmVsZW1lbnRbIDAgXSApOw0KCQkJdGhhdC5fYWRkQ2xhc3MoIHRoYXQuc2VsZWN0ZWVzLCAidWktc2VsZWN0ZWUiICk7DQoJCQl0aGF0LnNlbGVjdGVlcy5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCQl2YXIgJHRoaXMgPSAkKCB0aGlzICksDQoJCQkJCXNlbGVjdGVlT2Zmc2V0ID0gJHRoaXMub2Zmc2V0KCksDQoJCQkJCXBvcyA9IHsNCgkJCQkJCWxlZnQ6IHNlbGVjdGVlT2Zmc2V0LmxlZnQgLSB0aGF0LmVsZW1lbnRQb3MubGVmdCwNCgkJCQkJCXRvcDogc2VsZWN0ZWVPZmZzZXQudG9wIC0gdGhhdC5lbGVtZW50UG9zLnRvcA0KCQkJCQl9Ow0KCQkJCSQuZGF0YSggdGhpcywgInNlbGVjdGFibGUtaXRlbSIsIHsNCgkJCQkJZWxlbWVudDogdGhpcywNCgkJCQkJJGVsZW1lbnQ6ICR0aGlzLA0KCQkJCQlsZWZ0OiBwb3MubGVmdCwNCgkJCQkJdG9wOiBwb3MudG9wLA0KCQkJCQlyaWdodDogcG9zLmxlZnQgKyAkdGhpcy5vdXRlcldpZHRoKCksDQoJCQkJCWJvdHRvbTogcG9zLnRvcCArICR0aGlzLm91dGVySGVpZ2h0KCksDQoJCQkJCXN0YXJ0c2VsZWN0ZWQ6IGZhbHNlLA0KCQkJCQlzZWxlY3RlZDogJHRoaXMuaGFzQ2xhc3MoICJ1aS1zZWxlY3RlZCIgKSwNCgkJCQkJc2VsZWN0aW5nOiAkdGhpcy5oYXNDbGFzcyggInVpLXNlbGVjdGluZyIgKSwNCgkJCQkJdW5zZWxlY3Rpbmc6ICR0aGlzLmhhc0NsYXNzKCAidWktdW5zZWxlY3RpbmciICkNCgkJCQl9ICk7DQoJCQl9ICk7DQoJCX07DQoJCXRoaXMucmVmcmVzaCgpOw0KDQoJCXRoaXMuX21vdXNlSW5pdCgpOw0KDQoJCXRoaXMuaGVscGVyID0gJCggIjxkaXY+IiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5oZWxwZXIsICJ1aS1zZWxlY3RhYmxlLWhlbHBlciIgKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLnNlbGVjdGVlcy5yZW1vdmVEYXRhKCAic2VsZWN0YWJsZS1pdGVtIiApOw0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCgl9LA0KDQoJX21vdXNlU3RhcnQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLm9wb3MgPSBbIGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSBdOw0KCQl0aGlzLmVsZW1lbnRQb3MgPSAkKCB0aGlzLmVsZW1lbnRbIDAgXSApLm9mZnNldCgpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5zZWxlY3RlZXMgPSAkKCBvcHRpb25zLmZpbHRlciwgdGhpcy5lbGVtZW50WyAwIF0gKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAic3RhcnQiLCBldmVudCApOw0KDQoJCSQoIG9wdGlvbnMuYXBwZW5kVG8gKS5hcHBlbmQoIHRoaXMuaGVscGVyICk7DQoNCgkJLy8gcG9zaXRpb24gaGVscGVyIChsYXNzbykNCgkJdGhpcy5oZWxwZXIuY3NzKCB7DQoJCQkibGVmdCI6IGV2ZW50LnBhZ2VYLA0KCQkJInRvcCI6IGV2ZW50LnBhZ2VZLA0KCQkJIndpZHRoIjogMCwNCgkJCSJoZWlnaHQiOiAwDQoJCX0gKTsNCg0KCQlpZiAoIG9wdGlvbnMuYXV0b1JlZnJlc2ggKSB7DQoJCQl0aGlzLnJlZnJlc2goKTsNCgkJfQ0KDQoJCXRoaXMuc2VsZWN0ZWVzLmZpbHRlciggIi51aS1zZWxlY3RlZCIgKS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3RlZSA9ICQuZGF0YSggdGhpcywgInNlbGVjdGFibGUtaXRlbSIgKTsNCgkJCXNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQgPSB0cnVlOw0KCQkJaWYgKCAhZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSApIHsNCgkJCQl0aGF0Ll9yZW1vdmVDbGFzcyggc2VsZWN0ZWUuJGVsZW1lbnQsICJ1aS1zZWxlY3RlZCIgKTsNCgkJCQlzZWxlY3RlZS5zZWxlY3RlZCA9IGZhbHNlOw0KCQkJCXRoYXQuX2FkZENsYXNzKCBzZWxlY3RlZS4kZWxlbWVudCwgInVpLXVuc2VsZWN0aW5nIiApOw0KCQkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gdHJ1ZTsNCg0KCQkJCS8vIHNlbGVjdGFibGUgVU5TRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQl0aGF0Ll90cmlnZ2VyKCAidW5zZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQl1bnNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCX0gKTsNCgkJCX0NCgkJfSApOw0KDQoJCSQoIGV2ZW50LnRhcmdldCApLnBhcmVudHMoKS5hZGRCYWNrKCkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgZG9TZWxlY3QsDQoJCQkJc2VsZWN0ZWUgPSAkLmRhdGEoIHRoaXMsICJzZWxlY3RhYmxlLWl0ZW0iICk7DQoJCQlpZiAoIHNlbGVjdGVlICkgew0KCQkJCWRvU2VsZWN0ID0gKCAhZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSApIHx8DQoJCQkJCSFzZWxlY3RlZS4kZWxlbWVudC5oYXNDbGFzcyggInVpLXNlbGVjdGVkIiApOw0KCQkJCXRoYXQuX3JlbW92ZUNsYXNzKCBzZWxlY3RlZS4kZWxlbWVudCwgZG9TZWxlY3QgPyAidWktdW5zZWxlY3RpbmciIDogInVpLXNlbGVjdGVkIiApDQoJCQkJCS5fYWRkQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCBkb1NlbGVjdCA/ICJ1aS1zZWxlY3RpbmciIDogInVpLXVuc2VsZWN0aW5nIiApOw0KCQkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gIWRvU2VsZWN0Ow0KCQkJCXNlbGVjdGVlLnNlbGVjdGluZyA9IGRvU2VsZWN0Ow0KCQkJCXNlbGVjdGVlLnNlbGVjdGVkID0gZG9TZWxlY3Q7DQoNCgkJCQkvLyBzZWxlY3RhYmxlIChVTilTRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQlpZiAoIGRvU2VsZWN0ICkgew0KCQkJCQl0aGF0Ll90cmlnZ2VyKCAic2VsZWN0aW5nIiwgZXZlbnQsIHsNCgkJCQkJCXNlbGVjdGluZzogc2VsZWN0ZWUuZWxlbWVudA0KCQkJCQl9ICk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhhdC5fdHJpZ2dlciggInVuc2VsZWN0aW5nIiwgZXZlbnQsIHsNCgkJCQkJCXVuc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCX0gKTsNCgkJCQl9DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9ICk7DQoNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCXRoaXMuZHJhZ2dlZCA9IHRydWU7DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl2YXIgdG1wLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJeDEgPSB0aGlzLm9wb3NbIDAgXSwNCgkJCXkxID0gdGhpcy5vcG9zWyAxIF0sDQoJCQl4MiA9IGV2ZW50LnBhZ2VYLA0KCQkJeTIgPSBldmVudC5wYWdlWTsNCg0KCQlpZiAoIHgxID4geDIgKSB7IHRtcCA9IHgyOyB4MiA9IHgxOyB4MSA9IHRtcDsgfQ0KCQlpZiAoIHkxID4geTIgKSB7IHRtcCA9IHkyOyB5MiA9IHkxOyB5MSA9IHRtcDsgfQ0KCQl0aGlzLmhlbHBlci5jc3MoIHsgbGVmdDogeDEsIHRvcDogeTEsIHdpZHRoOiB4MiAtIHgxLCBoZWlnaHQ6IHkyIC0geTEgfSApOw0KDQoJCXRoaXMuc2VsZWN0ZWVzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJdmFyIHNlbGVjdGVlID0gJC5kYXRhKCB0aGlzLCAic2VsZWN0YWJsZS1pdGVtIiApLA0KCQkJCWhpdCA9IGZhbHNlLA0KCQkJCW9mZnNldCA9IHt9Ow0KDQoJCQkvL3ByZXZlbnQgaGVscGVyIGZyb20gYmVpbmcgc2VsZWN0ZWQgaWYgYXBwZW5kVG86IHNlbGVjdGFibGUNCgkJCWlmICggIXNlbGVjdGVlIHx8IHNlbGVjdGVlLmVsZW1lbnQgPT09IHRoYXQuZWxlbWVudFsgMCBdICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJb2Zmc2V0LmxlZnQgICA9IHNlbGVjdGVlLmxlZnQgICArIHRoYXQuZWxlbWVudFBvcy5sZWZ0Ow0KCQkJb2Zmc2V0LnJpZ2h0ICA9IHNlbGVjdGVlLnJpZ2h0ICArIHRoYXQuZWxlbWVudFBvcy5sZWZ0Ow0KCQkJb2Zmc2V0LnRvcCAgICA9IHNlbGVjdGVlLnRvcCAgICArIHRoYXQuZWxlbWVudFBvcy50b3A7DQoJCQlvZmZzZXQuYm90dG9tID0gc2VsZWN0ZWUuYm90dG9tICsgdGhhdC5lbGVtZW50UG9zLnRvcDsNCg0KCQkJaWYgKCBvcHRpb25zLnRvbGVyYW5jZSA9PT0gInRvdWNoIiApIHsNCgkJCQloaXQgPSAoICEoIG9mZnNldC5sZWZ0ID4geDIgfHwgb2Zmc2V0LnJpZ2h0IDwgeDEgfHwgb2Zmc2V0LnRvcCA+IHkyIHx8DQogICAgICAgICAgICAgICAgICAgIG9mZnNldC5ib3R0b20gPCB5MSApICk7DQoJCQl9IGVsc2UgaWYgKCBvcHRpb25zLnRvbGVyYW5jZSA9PT0gImZpdCIgKSB7DQoJCQkJaGl0ID0gKCBvZmZzZXQubGVmdCA+IHgxICYmIG9mZnNldC5yaWdodCA8IHgyICYmIG9mZnNldC50b3AgPiB5MSAmJg0KICAgICAgICAgICAgICAgICAgICBvZmZzZXQuYm90dG9tIDwgeTIgKTsNCgkJCX0NCg0KCQkJaWYgKCBoaXQgKSB7DQoNCgkJCQkvLyBTRUxFQ1QNCgkJCQlpZiAoIHNlbGVjdGVlLnNlbGVjdGVkICkgew0KCQkJCQl0aGF0Ll9yZW1vdmVDbGFzcyggc2VsZWN0ZWUuJGVsZW1lbnQsICJ1aS1zZWxlY3RlZCIgKTsNCgkJCQkJc2VsZWN0ZWUuc2VsZWN0ZWQgPSBmYWxzZTsNCgkJCQl9DQoJCQkJaWYgKCBzZWxlY3RlZS51bnNlbGVjdGluZyApIHsNCgkJCQkJdGhhdC5fcmVtb3ZlQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCAidWktdW5zZWxlY3RpbmciICk7DQoJCQkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gZmFsc2U7DQoJCQkJfQ0KCQkJCWlmICggIXNlbGVjdGVlLnNlbGVjdGluZyApIHsNCgkJCQkJdGhhdC5fYWRkQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCAidWktc2VsZWN0aW5nIiApOw0KCQkJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSB0cnVlOw0KDQoJCQkJCS8vIHNlbGVjdGFibGUgU0VMRUNUSU5HIGNhbGxiYWNrDQoJCQkJCXRoYXQuX3RyaWdnZXIoICJzZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQkJc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCX0gKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KDQoJCQkJLy8gVU5TRUxFQ1QNCgkJCQlpZiAoIHNlbGVjdGVlLnNlbGVjdGluZyApIHsNCgkJCQkJaWYgKCAoIGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSApICYmIHNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQgKSB7DQoJCQkJCQl0aGF0Ll9yZW1vdmVDbGFzcyggc2VsZWN0ZWUuJGVsZW1lbnQsICJ1aS1zZWxlY3RpbmciICk7DQoJCQkJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCQkJCXRoYXQuX2FkZENsYXNzKCBzZWxlY3RlZS4kZWxlbWVudCwgInVpLXNlbGVjdGVkIiApOw0KCQkJCQkJc2VsZWN0ZWUuc2VsZWN0ZWQgPSB0cnVlOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJdGhhdC5fcmVtb3ZlQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCAidWktc2VsZWN0aW5nIiApOw0KCQkJCQkJc2VsZWN0ZWUuc2VsZWN0aW5nID0gZmFsc2U7DQoJCQkJCQlpZiAoIHNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQgKSB7DQoJCQkJCQkJdGhhdC5fYWRkQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCAidWktdW5zZWxlY3RpbmciICk7DQoJCQkJCQkJc2VsZWN0ZWUudW5zZWxlY3RpbmcgPSB0cnVlOw0KCQkJCQkJfQ0KDQoJCQkJCQkvLyBzZWxlY3RhYmxlIFVOU0VMRUNUSU5HIGNhbGxiYWNrDQoJCQkJCQl0aGF0Ll90cmlnZ2VyKCAidW5zZWxlY3RpbmciLCBldmVudCwgew0KCQkJCQkJCXVuc2VsZWN0aW5nOiBzZWxlY3RlZS5lbGVtZW50DQoJCQkJCQl9ICk7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKCBzZWxlY3RlZS5zZWxlY3RlZCApIHsNCgkJCQkJaWYgKCAhZXZlbnQubWV0YUtleSAmJiAhZXZlbnQuY3RybEtleSAmJiAhc2VsZWN0ZWUuc3RhcnRzZWxlY3RlZCApIHsNCgkJCQkJCXRoYXQuX3JlbW92ZUNsYXNzKCBzZWxlY3RlZS4kZWxlbWVudCwgInVpLXNlbGVjdGVkIiApOw0KCQkJCQkJc2VsZWN0ZWUuc2VsZWN0ZWQgPSBmYWxzZTsNCg0KCQkJCQkJdGhhdC5fYWRkQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCAidWktdW5zZWxlY3RpbmciICk7DQoJCQkJCQlzZWxlY3RlZS51bnNlbGVjdGluZyA9IHRydWU7DQoNCgkJCQkJCS8vIHNlbGVjdGFibGUgVU5TRUxFQ1RJTkcgY2FsbGJhY2sNCgkJCQkJCXRoYXQuX3RyaWdnZXIoICJ1bnNlbGVjdGluZyIsIGV2ZW50LCB7DQoJCQkJCQkJdW5zZWxlY3Rpbmc6IHNlbGVjdGVlLmVsZW1lbnQNCgkJCQkJCX0gKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfSApOw0KDQoJCXJldHVybiBmYWxzZTsNCgl9LA0KDQoJX21vdXNlU3RvcDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgdGhhdCA9IHRoaXM7DQoNCgkJdGhpcy5kcmFnZ2VkID0gZmFsc2U7DQoNCgkJJCggIi51aS11bnNlbGVjdGluZyIsIHRoaXMuZWxlbWVudFsgMCBdICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgc2VsZWN0ZWUgPSAkLmRhdGEoIHRoaXMsICJzZWxlY3RhYmxlLWl0ZW0iICk7DQoJCQl0aGF0Ll9yZW1vdmVDbGFzcyggc2VsZWN0ZWUuJGVsZW1lbnQsICJ1aS11bnNlbGVjdGluZyIgKTsNCgkJCXNlbGVjdGVlLnVuc2VsZWN0aW5nID0gZmFsc2U7DQoJCQlzZWxlY3RlZS5zdGFydHNlbGVjdGVkID0gZmFsc2U7DQoJCQl0aGF0Ll90cmlnZ2VyKCAidW5zZWxlY3RlZCIsIGV2ZW50LCB7DQoJCQkJdW5zZWxlY3RlZDogc2VsZWN0ZWUuZWxlbWVudA0KCQkJfSApOw0KCQl9ICk7DQoJCSQoICIudWktc2VsZWN0aW5nIiwgdGhpcy5lbGVtZW50WyAwIF0gKS5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCXZhciBzZWxlY3RlZSA9ICQuZGF0YSggdGhpcywgInNlbGVjdGFibGUtaXRlbSIgKTsNCgkJCXRoYXQuX3JlbW92ZUNsYXNzKCBzZWxlY3RlZS4kZWxlbWVudCwgInVpLXNlbGVjdGluZyIgKQ0KCQkJCS5fYWRkQ2xhc3MoIHNlbGVjdGVlLiRlbGVtZW50LCAidWktc2VsZWN0ZWQiICk7DQoJCQlzZWxlY3RlZS5zZWxlY3RpbmcgPSBmYWxzZTsNCgkJCXNlbGVjdGVlLnNlbGVjdGVkID0gdHJ1ZTsNCgkJCXNlbGVjdGVlLnN0YXJ0c2VsZWN0ZWQgPSB0cnVlOw0KCQkJdGhhdC5fdHJpZ2dlciggInNlbGVjdGVkIiwgZXZlbnQsIHsNCgkJCQlzZWxlY3RlZDogc2VsZWN0ZWUuZWxlbWVudA0KCQkJfSApOw0KCQl9ICk7DQoJCXRoaXMuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQgKTsNCg0KCQl0aGlzLmhlbHBlci5yZW1vdmUoKTsNCg0KCQlyZXR1cm4gZmFsc2U7DQoJfQ0KDQp9ICk7DQoNCg0KLyohDQogKiBqUXVlcnkgVUkgU2VsZWN0bWVudSAxLjEyLjENCiAqIGh0dHA6Ly9qcXVlcnl1aS5jb20NCiAqDQogKiBDb3B5cmlnaHQgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycw0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlLg0KICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZQ0KICovDQoNCi8vPj5sYWJlbDogU2VsZWN0bWVudQ0KLy8+Pmdyb3VwOiBXaWRnZXRzDQovLyBqc2NzOmRpc2FibGUgbWF4aW11bUxpbmVMZW5ndGgNCi8vPj5kZXNjcmlwdGlvbjogRHVwbGljYXRlcyBhbmQgZXh0ZW5kcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhIG5hdGl2ZSBIVE1MIHNlbGVjdCBlbGVtZW50LCBhbGxvd2luZyBpdCB0byBiZSBjdXN0b21pemFibGUgaW4gYmVoYXZpb3IgYW5kIGFwcGVhcmFuY2UgZmFyIGJleW9uZCB0aGUgbGltaXRhdGlvbnMgb2YgYSBuYXRpdmUgc2VsZWN0Lg0KLy8ganNjczplbmFibGUgbWF4aW11bUxpbmVMZW5ndGgNCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zZWxlY3RtZW51Lw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL3NlbGVjdG1lbnUvDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvY29yZS5jc3MNCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9zZWxlY3RtZW51LmNzcywgLi4vLi4vdGhlbWVzL2Jhc2UvYnV0dG9uLmNzcw0KLy8+PmNzcy50aGVtZTogLi4vLi4vdGhlbWVzL2Jhc2UvdGhlbWUuY3NzDQoNCg0KDQp2YXIgd2lkZ2V0c1NlbGVjdG1lbnUgPSAkLndpZGdldCggInVpLnNlbGVjdG1lbnUiLCBbICQudWkuZm9ybVJlc2V0TWl4aW4sIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCglkZWZhdWx0RWxlbWVudDogIjxzZWxlY3Q+IiwNCglvcHRpb25zOiB7DQoJCWFwcGVuZFRvOiBudWxsLA0KCQljbGFzc2VzOiB7DQoJCQkidWktc2VsZWN0bWVudS1idXR0b24tb3BlbiI6ICJ1aS1jb3JuZXItdG9wIiwNCgkJCSJ1aS1zZWxlY3RtZW51LWJ1dHRvbi1jbG9zZWQiOiAidWktY29ybmVyLWFsbCINCgkJfSwNCgkJZGlzYWJsZWQ6IG51bGwsDQoJCWljb25zOiB7DQoJCQlidXR0b246ICJ1aS1pY29uLXRyaWFuZ2xlLTEtcyINCgkJfSwNCgkJcG9zaXRpb246IHsNCgkJCW15OiAibGVmdCB0b3AiLA0KCQkJYXQ6ICJsZWZ0IGJvdHRvbSIsDQoJCQljb2xsaXNpb246ICJub25lIg0KCQl9LA0KCQl3aWR0aDogZmFsc2UsDQoNCgkJLy8gQ2FsbGJhY2tzDQoJCWNoYW5nZTogbnVsbCwNCgkJY2xvc2U6IG51bGwsDQoJCWZvY3VzOiBudWxsLA0KCQlvcGVuOiBudWxsLA0KCQlzZWxlY3Q6IG51bGwNCgl9LA0KDQoJX2NyZWF0ZTogZnVuY3Rpb24oKSB7DQoJCXZhciBzZWxlY3RtZW51SWQgPSB0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCAiaWQiICk7DQoJCXRoaXMuaWRzID0gew0KCQkJZWxlbWVudDogc2VsZWN0bWVudUlkLA0KCQkJYnV0dG9uOiBzZWxlY3RtZW51SWQgKyAiLWJ1dHRvbiIsDQoJCQltZW51OiBzZWxlY3RtZW51SWQgKyAiLW1lbnUiDQoJCX07DQoNCgkJdGhpcy5fZHJhd0J1dHRvbigpOw0KCQl0aGlzLl9kcmF3TWVudSgpOw0KCQl0aGlzLl9iaW5kRm9ybVJlc2V0SGFuZGxlcigpOw0KDQoJCXRoaXMuX3JlbmRlcmVkID0gZmFsc2U7DQoJCXRoaXMubWVudUl0ZW1zID0gJCgpOw0KCX0sDQoNCglfZHJhd0J1dHRvbjogZnVuY3Rpb24oKSB7DQoJCXZhciBpY29uLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlpdGVtID0gdGhpcy5fcGFyc2VPcHRpb24oDQoJCQkJdGhpcy5lbGVtZW50LmZpbmQoICJvcHRpb246c2VsZWN0ZWQiICksDQoJCQkJdGhpcy5lbGVtZW50WyAwIF0uc2VsZWN0ZWRJbmRleA0KCQkJKTsNCg0KCQkvLyBBc3NvY2lhdGUgZXhpc3RpbmcgbGFiZWwgd2l0aCB0aGUgbmV3IGJ1dHRvbg0KCQl0aGlzLmxhYmVscyA9IHRoaXMuZWxlbWVudC5sYWJlbHMoKS5hdHRyKCAiZm9yIiwgdGhpcy5pZHMuYnV0dG9uICk7DQoJCXRoaXMuX29uKCB0aGlzLmxhYmVscywgew0KCQkJY2xpY2s6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQl0aGlzLmJ1dHRvbi5mb2N1cygpOw0KCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoJCQl9DQoJCX0gKTsNCg0KCQkvLyBIaWRlIG9yaWdpbmFsIHNlbGVjdCBlbGVtZW50DQoJCXRoaXMuZWxlbWVudC5oaWRlKCk7DQoNCgkJLy8gQ3JlYXRlIGJ1dHRvbg0KCQl0aGlzLmJ1dHRvbiA9ICQoICI8c3Bhbj4iLCB7DQoJCQl0YWJpbmRleDogdGhpcy5vcHRpb25zLmRpc2FibGVkID8gLTEgOiAwLA0KCQkJaWQ6IHRoaXMuaWRzLmJ1dHRvbiwNCgkJCXJvbGU6ICJjb21ib2JveCIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1hdXRvY29tcGxldGUiOiAibGlzdCIsDQoJCQkiYXJpYS1vd25zIjogdGhpcy5pZHMubWVudSwNCgkJCSJhcmlhLWhhc3BvcHVwIjogInRydWUiLA0KCQkJdGl0bGU6IHRoaXMuZWxlbWVudC5hdHRyKCAidGl0bGUiICkNCgkJfSApDQoJCQkuaW5zZXJ0QWZ0ZXIoIHRoaXMuZWxlbWVudCApOw0KDQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLmJ1dHRvbiwgInVpLXNlbGVjdG1lbnUtYnV0dG9uIHVpLXNlbGVjdG1lbnUtYnV0dG9uLWNsb3NlZCIsDQoJCQkidWktYnV0dG9uIHVpLXdpZGdldCIgKTsNCg0KCQlpY29uID0gJCggIjxzcGFuPiIgKS5hcHBlbmRUbyggdGhpcy5idXR0b24gKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIGljb24sICJ1aS1zZWxlY3RtZW51LWljb24iLCAidWktaWNvbiAiICsgdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbiApOw0KCQl0aGlzLmJ1dHRvbkl0ZW0gPSB0aGlzLl9yZW5kZXJCdXR0b25JdGVtKCBpdGVtICkNCgkJCS5hcHBlbmRUbyggdGhpcy5idXR0b24gKTsNCg0KCQlpZiAoIHRoaXMub3B0aW9ucy53aWR0aCAhPT0gZmFsc2UgKSB7DQoJCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCgkJfQ0KDQoJCXRoaXMuX29uKCB0aGlzLmJ1dHRvbiwgdGhpcy5fYnV0dG9uRXZlbnRzICk7DQoJCXRoaXMuYnV0dG9uLm9uZSggImZvY3VzaW4iLCBmdW5jdGlvbigpIHsNCg0KCQkJLy8gRGVsYXkgcmVuZGVyaW5nIHRoZSBtZW51IGl0ZW1zIHVudGlsIHRoZSBidXR0b24gcmVjZWl2ZXMgZm9jdXMuDQoJCQkvLyBUaGUgbWVudSBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVuZGVyZWQgdmlhIGEgcHJvZ3JhbW1hdGljIG9wZW4uDQoJCQlpZiAoICF0aGF0Ll9yZW5kZXJlZCApIHsNCgkJCQl0aGF0Ll9yZWZyZXNoTWVudSgpOw0KCQkJfQ0KCQl9ICk7DQoJfSwNCg0KCV9kcmF3TWVudTogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCg0KCQkvLyBDcmVhdGUgbWVudQ0KCQl0aGlzLm1lbnUgPSAkKCAiPHVsPiIsIHsNCgkJCSJhcmlhLWhpZGRlbiI6ICJ0cnVlIiwNCgkJCSJhcmlhLWxhYmVsbGVkYnkiOiB0aGlzLmlkcy5idXR0b24sDQoJCQlpZDogdGhpcy5pZHMubWVudQ0KCQl9ICk7DQoNCgkJLy8gV3JhcCBtZW51DQoJCXRoaXMubWVudVdyYXAgPSAkKCAiPGRpdj4iICkuYXBwZW5kKCB0aGlzLm1lbnUgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMubWVudVdyYXAsICJ1aS1zZWxlY3RtZW51LW1lbnUiLCAidWktZnJvbnQiICk7DQoJCXRoaXMubWVudVdyYXAuYXBwZW5kVG8oIHRoaXMuX2FwcGVuZFRvKCkgKTsNCg0KCQkvLyBJbml0aWFsaXplIG1lbnUgd2lkZ2V0DQoJCXRoaXMubWVudUluc3RhbmNlID0gdGhpcy5tZW51DQoJCQkubWVudSggew0KCQkJCWNsYXNzZXM6IHsNCgkJCQkJInVpLW1lbnUiOiAidWktY29ybmVyLWJvdHRvbSINCgkJCQl9LA0KCQkJCXJvbGU6ICJsaXN0Ym94IiwNCgkJCQlzZWxlY3Q6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQoJCQkJCWV2ZW50LnByZXZlbnREZWZhdWx0KCk7DQoNCgkJCQkJLy8gU3VwcG9ydDogSUU4DQoJCQkJCS8vIElmIHRoZSBpdGVtIHdhcyBzZWxlY3RlZCB2aWEgYSBjbGljaywgdGhlIHRleHQgc2VsZWN0aW9uDQoJCQkJCS8vIHdpbGwgYmUgZGVzdHJveWVkIGluIElFDQoJCQkJCXRoYXQuX3NldFNlbGVjdGlvbigpOw0KDQoJCQkJCXRoYXQuX3NlbGVjdCggdWkuaXRlbS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiApLCBldmVudCApOw0KCQkJCX0sDQoJCQkJZm9jdXM6IGZ1bmN0aW9uKCBldmVudCwgdWkgKSB7DQoJCQkJCXZhciBpdGVtID0gdWkuaXRlbS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiApOw0KDQoJCQkJCS8vIFByZXZlbnQgaW5pdGFsIGZvY3VzIGZyb20gZmlyaW5nIGFuZCBjaGVjayBpZiBpdHMgYSBuZXdseSBmb2N1c2VkIGl0ZW0NCgkJCQkJaWYgKCB0aGF0LmZvY3VzSW5kZXggIT0gbnVsbCAmJiBpdGVtLmluZGV4ICE9PSB0aGF0LmZvY3VzSW5kZXggKSB7DQoJCQkJCQl0aGF0Ll90cmlnZ2VyKCAiZm9jdXMiLCBldmVudCwgeyBpdGVtOiBpdGVtIH0gKTsNCgkJCQkJCWlmICggIXRoYXQuaXNPcGVuICkgew0KCQkJCQkJCXRoYXQuX3NlbGVjdCggaXRlbSwgZXZlbnQgKTsNCgkJCQkJCX0NCgkJCQkJfQ0KCQkJCQl0aGF0LmZvY3VzSW5kZXggPSBpdGVtLmluZGV4Ow0KDQoJCQkJCXRoYXQuYnV0dG9uLmF0dHIoICJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLA0KCQkJCQkJdGhhdC5tZW51SXRlbXMuZXEoIGl0ZW0uaW5kZXggKS5hdHRyKCAiaWQiICkgKTsNCgkJCQl9DQoJCQl9ICkNCgkJCS5tZW51KCAiaW5zdGFuY2UiICk7DQoNCgkJLy8gRG9uJ3QgY2xvc2UgdGhlIG1lbnUgb24gbW91c2VsZWF2ZQ0KCQl0aGlzLm1lbnVJbnN0YW5jZS5fb2ZmKCB0aGlzLm1lbnUsICJtb3VzZWxlYXZlIiApOw0KDQoJCS8vIENhbmNlbCB0aGUgbWVudSdzIGNvbGxhcHNlQWxsIG9uIGRvY3VtZW50IGNsaWNrDQoJCXRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljayA9IGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9Ow0KDQoJCS8vIFNlbGVjdHMgb2Z0ZW4gY29udGFpbiBlbXB0eSBpdGVtcywgYnV0IG5ldmVyIGNvbnRhaW4gZGl2aWRlcnMNCgkJdGhpcy5tZW51SW5zdGFuY2UuX2lzRGl2aWRlciA9IGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9Ow0KCX0sDQoNCglyZWZyZXNoOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fcmVmcmVzaE1lbnUoKTsNCgkJdGhpcy5idXR0b25JdGVtLnJlcGxhY2VXaXRoKA0KCQkJdGhpcy5idXR0b25JdGVtID0gdGhpcy5fcmVuZGVyQnV0dG9uSXRlbSgNCg0KCQkJCS8vIEZhbGwgYmFjayB0byBhbiBlbXB0eSBvYmplY3QgaW4gY2FzZSB0aGVyZSBhcmUgbm8gb3B0aW9ucw0KCQkJCXRoaXMuX2dldFNlbGVjdGVkSXRlbSgpLmRhdGEoICJ1aS1zZWxlY3RtZW51LWl0ZW0iICkgfHwge30NCgkJCSkNCgkJKTsNCgkJaWYgKCB0aGlzLm9wdGlvbnMud2lkdGggPT09IG51bGwgKSB7DQoJCQl0aGlzLl9yZXNpemVCdXR0b24oKTsNCgkJfQ0KCX0sDQoNCglfcmVmcmVzaE1lbnU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgaXRlbSwNCgkJCW9wdGlvbnMgPSB0aGlzLmVsZW1lbnQuZmluZCggIm9wdGlvbiIgKTsNCg0KCQl0aGlzLm1lbnUuZW1wdHkoKTsNCg0KCQl0aGlzLl9wYXJzZU9wdGlvbnMoIG9wdGlvbnMgKTsNCgkJdGhpcy5fcmVuZGVyTWVudSggdGhpcy5tZW51LCB0aGlzLml0ZW1zICk7DQoNCgkJdGhpcy5tZW51SW5zdGFuY2UucmVmcmVzaCgpOw0KCQl0aGlzLm1lbnVJdGVtcyA9IHRoaXMubWVudS5maW5kKCAibGkiICkNCgkJCS5ub3QoICIudWktc2VsZWN0bWVudS1vcHRncm91cCIgKQ0KCQkJCS5maW5kKCAiLnVpLW1lbnUtaXRlbS13cmFwcGVyIiApOw0KDQoJCXRoaXMuX3JlbmRlcmVkID0gdHJ1ZTsNCg0KCQlpZiAoICFvcHRpb25zLmxlbmd0aCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWl0ZW0gPSB0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKTsNCg0KCQkvLyBVcGRhdGUgdGhlIG1lbnUgdG8gaGF2ZSB0aGUgY29ycmVjdCBpdGVtIGZvY3VzZWQNCgkJdGhpcy5tZW51SW5zdGFuY2UuZm9jdXMoIG51bGwsIGl0ZW0gKTsNCgkJdGhpcy5fc2V0QXJpYSggaXRlbS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiApICk7DQoNCgkJLy8gU2V0IGRpc2FibGVkIHN0YXRlDQoJCXRoaXMuX3NldE9wdGlvbiggImRpc2FibGVkIiwgdGhpcy5lbGVtZW50LnByb3AoICJkaXNhYmxlZCIgKSApOw0KCX0sDQoNCglvcGVuOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggdGhpcy5vcHRpb25zLmRpc2FibGVkICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGUgbWVudSBpcyBiZWluZyBvcGVuZWQsIHJlbmRlciB0aGUgaXRlbXMNCgkJaWYgKCAhdGhpcy5fcmVuZGVyZWQgKSB7DQoJCQl0aGlzLl9yZWZyZXNoTWVudSgpOw0KCQl9IGVsc2Ugew0KDQoJCQkvLyBNZW51IGNsZWFycyBmb2N1cyBvbiBjbG9zZSwgcmVzZXQgZm9jdXMgdG8gc2VsZWN0ZWQgaXRlbQ0KCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMubWVudS5maW5kKCAiLnVpLXN0YXRlLWFjdGl2ZSIgKSwgbnVsbCwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCXRoaXMubWVudUluc3RhbmNlLmZvY3VzKCBudWxsLCB0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKSApOw0KCQl9DQoNCgkJLy8gSWYgdGhlcmUgYXJlIG5vIG9wdGlvbnMsIGRvbid0IG9wZW4gdGhlIG1lbnUNCgkJaWYgKCAhdGhpcy5tZW51SXRlbXMubGVuZ3RoICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5pc09wZW4gPSB0cnVlOw0KCQl0aGlzLl90b2dnbGVBdHRyKCk7DQoJCXRoaXMuX3Jlc2l6ZU1lbnUoKTsNCgkJdGhpcy5fcG9zaXRpb24oKTsNCg0KCQl0aGlzLl9vbiggdGhpcy5kb2N1bWVudCwgdGhpcy5fZG9jdW1lbnRDbGljayApOw0KDQoJCXRoaXMuX3RyaWdnZXIoICJvcGVuIiwgZXZlbnQgKTsNCgl9LA0KDQoJX3Bvc2l0aW9uOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5tZW51V3JhcC5wb3NpdGlvbiggJC5leHRlbmQoIHsgb2Y6IHRoaXMuYnV0dG9uIH0sIHRoaXMub3B0aW9ucy5wb3NpdGlvbiApICk7DQoJfSwNCg0KCWNsb3NlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggIXRoaXMuaXNPcGVuICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5pc09wZW4gPSBmYWxzZTsNCgkJdGhpcy5fdG9nZ2xlQXR0cigpOw0KDQoJCXRoaXMucmFuZ2UgPSBudWxsOw0KCQl0aGlzLl9vZmYoIHRoaXMuZG9jdW1lbnQgKTsNCg0KCQl0aGlzLl90cmlnZ2VyKCAiY2xvc2UiLCBldmVudCApOw0KCX0sDQoNCgl3aWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5idXR0b247DQoJfSwNCg0KCW1lbnVXaWRnZXQ6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5tZW51Ow0KCX0sDQoNCglfcmVuZGVyQnV0dG9uSXRlbTogZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCXZhciBidXR0b25JdGVtID0gJCggIjxzcGFuPiIgKTsNCg0KCQl0aGlzLl9zZXRUZXh0KCBidXR0b25JdGVtLCBpdGVtLmxhYmVsICk7DQoJCXRoaXMuX2FkZENsYXNzKCBidXR0b25JdGVtLCAidWktc2VsZWN0bWVudS10ZXh0IiApOw0KDQoJCXJldHVybiBidXR0b25JdGVtOw0KCX0sDQoNCglfcmVuZGVyTWVudTogZnVuY3Rpb24oIHVsLCBpdGVtcyApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJY3VycmVudE9wdGdyb3VwID0gIiI7DQoNCgkJJC5lYWNoKCBpdGVtcywgZnVuY3Rpb24oIGluZGV4LCBpdGVtICkgew0KCQkJdmFyIGxpOw0KDQoJCQlpZiAoIGl0ZW0ub3B0Z3JvdXAgIT09IGN1cnJlbnRPcHRncm91cCApIHsNCgkJCQlsaSA9ICQoICI8bGk+Iiwgew0KCQkJCQl0ZXh0OiBpdGVtLm9wdGdyb3VwDQoJCQkJfSApOw0KCQkJCXRoYXQuX2FkZENsYXNzKCBsaSwgInVpLXNlbGVjdG1lbnUtb3B0Z3JvdXAiLCAidWktbWVudS1kaXZpZGVyIiArDQoJCQkJCSggaXRlbS5lbGVtZW50LnBhcmVudCggIm9wdGdyb3VwIiApLnByb3AoICJkaXNhYmxlZCIgKSA/DQoJCQkJCQkiIHVpLXN0YXRlLWRpc2FibGVkIiA6DQoJCQkJCQkiIiApICk7DQoNCgkJCQlsaS5hcHBlbmRUbyggdWwgKTsNCg0KCQkJCWN1cnJlbnRPcHRncm91cCA9IGl0ZW0ub3B0Z3JvdXA7DQoJCQl9DQoNCgkJCXRoYXQuX3JlbmRlckl0ZW1EYXRhKCB1bCwgaXRlbSApOw0KCQl9ICk7DQoJfSwNCg0KCV9yZW5kZXJJdGVtRGF0YTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQlyZXR1cm4gdGhpcy5fcmVuZGVySXRlbSggdWwsIGl0ZW0gKS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiwgaXRlbSApOw0KCX0sDQoNCglfcmVuZGVySXRlbTogZnVuY3Rpb24oIHVsLCBpdGVtICkgew0KCQl2YXIgbGkgPSAkKCAiPGxpPiIgKSwNCgkJCXdyYXBwZXIgPSAkKCAiPGRpdj4iLCB7DQoJCQkJdGl0bGU6IGl0ZW0uZWxlbWVudC5hdHRyKCAidGl0bGUiICkNCgkJCX0gKTsNCg0KCQlpZiAoIGl0ZW0uZGlzYWJsZWQgKSB7DQoJCQl0aGlzLl9hZGRDbGFzcyggbGksIG51bGwsICJ1aS1zdGF0ZS1kaXNhYmxlZCIgKTsNCgkJfQ0KCQl0aGlzLl9zZXRUZXh0KCB3cmFwcGVyLCBpdGVtLmxhYmVsICk7DQoNCgkJcmV0dXJuIGxpLmFwcGVuZCggd3JhcHBlciApLmFwcGVuZFRvKCB1bCApOw0KCX0sDQoNCglfc2V0VGV4dDogZnVuY3Rpb24oIGVsZW1lbnQsIHZhbHVlICkgew0KCQlpZiAoIHZhbHVlICkgew0KCQkJZWxlbWVudC50ZXh0KCB2YWx1ZSApOw0KCQl9IGVsc2Ugew0KCQkJZWxlbWVudC5odG1sKCAiJiMxNjA7IiApOw0KCQl9DQoJfSwNCg0KCV9tb3ZlOiBmdW5jdGlvbiggZGlyZWN0aW9uLCBldmVudCApIHsNCgkJdmFyIGl0ZW0sIG5leHQsDQoJCQlmaWx0ZXIgPSAiLnVpLW1lbnUtaXRlbSI7DQoNCgkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCWl0ZW0gPSB0aGlzLm1lbnVJdGVtcy5lcSggdGhpcy5mb2N1c0luZGV4ICkucGFyZW50KCAibGkiICk7DQoJCX0gZWxzZSB7DQoJCQlpdGVtID0gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggKS5wYXJlbnQoICJsaSIgKTsNCgkJCWZpbHRlciArPSAiOm5vdCgudWktc3RhdGUtZGlzYWJsZWQpIjsNCgkJfQ0KDQoJCWlmICggZGlyZWN0aW9uID09PSAiZmlyc3QiIHx8IGRpcmVjdGlvbiA9PT0gImxhc3QiICkgew0KCQkJbmV4dCA9IGl0ZW1bIGRpcmVjdGlvbiA9PT0gImZpcnN0IiA/ICJwcmV2QWxsIiA6ICJuZXh0QWxsIiBdKCBmaWx0ZXIgKS5lcSggLTEgKTsNCgkJfSBlbHNlIHsNCgkJCW5leHQgPSBpdGVtWyBkaXJlY3Rpb24gKyAiQWxsIiBdKCBmaWx0ZXIgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCBuZXh0Lmxlbmd0aCApIHsNCgkJCXRoaXMubWVudUluc3RhbmNlLmZvY3VzKCBldmVudCwgbmV4dCApOw0KCQl9DQoJfSwNCg0KCV9nZXRTZWxlY3RlZEl0ZW06IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEoIHRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggKS5wYXJlbnQoICJsaSIgKTsNCgl9LA0KDQoJX3RvZ2dsZTogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl0aGlzWyB0aGlzLmlzT3BlbiA/ICJjbG9zZSIgOiAib3BlbiIgXSggZXZlbnQgKTsNCgl9LA0KDQoJX3NldFNlbGVjdGlvbjogZnVuY3Rpb24oKSB7DQoJCXZhciBzZWxlY3Rpb247DQoNCgkJaWYgKCAhdGhpcy5yYW5nZSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICggd2luZG93LmdldFNlbGVjdGlvbiApIHsNCgkJCXNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsNCgkJCXNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTsNCgkJCXNlbGVjdGlvbi5hZGRSYW5nZSggdGhpcy5yYW5nZSApOw0KDQoJCS8vIFN1cHBvcnQ6IElFOA0KCQl9IGVsc2Ugew0KCQkJdGhpcy5yYW5nZS5zZWxlY3QoKTsNCgkJfQ0KDQoJCS8vIFN1cHBvcnQ6IElFDQoJCS8vIFNldHRpbmcgdGhlIHRleHQgc2VsZWN0aW9uIGtpbGxzIHRoZSBidXR0b24gZm9jdXMgaW4gSUUsIGJ1dA0KCQkvLyByZXN0b3JpbmcgdGhlIGZvY3VzIGRvZXNuJ3Qga2lsbCB0aGUgc2VsZWN0aW9uLg0KCQl0aGlzLmJ1dHRvbi5mb2N1cygpOw0KCX0sDQoNCglfZG9jdW1lbnRDbGljazogew0KCQltb3VzZWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCWlmICggIXRoaXMuaXNPcGVuICkgew0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJaWYgKCAhJCggZXZlbnQudGFyZ2V0ICkuY2xvc2VzdCggIi51aS1zZWxlY3RtZW51LW1lbnUsICMiICsNCgkJCQkJJC51aS5lc2NhcGVTZWxlY3RvciggdGhpcy5pZHMuYnV0dG9uICkgKS5sZW5ndGggKSB7DQoJCQkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfYnV0dG9uRXZlbnRzOiB7DQoNCgkJLy8gUHJldmVudCB0ZXh0IHNlbGVjdGlvbiBmcm9tIGJlaW5nIHJlc2V0IHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc2VsZWN0bWVudSAoIzEwMTQ0KQ0KCQltb3VzZWRvd246IGZ1bmN0aW9uKCkgew0KCQkJdmFyIHNlbGVjdGlvbjsNCg0KCQkJaWYgKCB3aW5kb3cuZ2V0U2VsZWN0aW9uICkgew0KCQkJCXNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsNCgkJCQlpZiAoIHNlbGVjdGlvbi5yYW5nZUNvdW50ICkgew0KCQkJCQl0aGlzLnJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoIDAgKTsNCgkJCQl9DQoNCgkJCS8vIFN1cHBvcnQ6IElFOA0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLnJhbmdlID0gZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7DQoJCQl9DQoJCX0sDQoNCgkJY2xpY2s6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXRoaXMuX3NldFNlbGVjdGlvbigpOw0KCQkJdGhpcy5fdG9nZ2xlKCBldmVudCApOw0KCQl9LA0KDQoJCWtleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXZhciBwcmV2ZW50RGVmYXVsdCA9IHRydWU7DQoJCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJY2FzZSAkLnVpLmtleUNvZGUuVEFCOg0KCQkJY2FzZSAkLnVpLmtleUNvZGUuRVNDQVBFOg0KCQkJCXRoaXMuY2xvc2UoIGV2ZW50ICk7DQoJCQkJcHJldmVudERlZmF1bHQgPSBmYWxzZTsNCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkVOVEVSOg0KCQkJCWlmICggdGhpcy5pc09wZW4gKSB7DQoJCQkJCXRoaXMuX3NlbGVjdEZvY3VzZWRJdGVtKCBldmVudCApOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLlVQOg0KCQkJCWlmICggZXZlbnQuYWx0S2V5ICkgew0KCQkJCQl0aGlzLl90b2dnbGUoIGV2ZW50ICk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhpcy5fbW92ZSggInByZXYiLCBldmVudCApOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkRPV046DQoJCQkJaWYgKCBldmVudC5hbHRLZXkgKSB7DQoJCQkJCXRoaXMuX3RvZ2dsZSggZXZlbnQgKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0aGlzLl9tb3ZlKCAibmV4dCIsIGV2ZW50ICk7DQoJCQkJfQ0KCQkJCWJyZWFrOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuU1BBQ0U6DQoJCQkJaWYgKCB0aGlzLmlzT3BlbiApIHsNCgkJCQkJdGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0oIGV2ZW50ICk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJdGhpcy5fdG9nZ2xlKCBldmVudCApOw0KCQkJCX0NCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJdGhpcy5fbW92ZSggInByZXYiLCBldmVudCApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuUklHSFQ6DQoJCQkJdGhpcy5fbW92ZSggIm5leHQiLCBldmVudCApOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAkLnVpLmtleUNvZGUuSE9NRToNCgkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfVVA6DQoJCQkJdGhpcy5fbW92ZSggImZpcnN0IiwgZXZlbnQgKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgJC51aS5rZXlDb2RlLkVORDoNCgkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfRE9XTjoNCgkJCQl0aGlzLl9tb3ZlKCAibGFzdCIsIGV2ZW50ICk7DQoJCQkJYnJlYWs7DQoJCQlkZWZhdWx0Og0KCQkJCXRoaXMubWVudS50cmlnZ2VyKCBldmVudCApOw0KCQkJCXByZXZlbnREZWZhdWx0ID0gZmFsc2U7DQoJCQl9DQoNCgkJCWlmICggcHJldmVudERlZmF1bHQgKSB7DQoJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfc2VsZWN0Rm9jdXNlZEl0ZW06IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGl0ZW0gPSB0aGlzLm1lbnVJdGVtcy5lcSggdGhpcy5mb2N1c0luZGV4ICkucGFyZW50KCAibGkiICk7DQoJCWlmICggIWl0ZW0uaGFzQ2xhc3MoICJ1aS1zdGF0ZS1kaXNhYmxlZCIgKSApIHsNCgkJCXRoaXMuX3NlbGVjdCggaXRlbS5kYXRhKCAidWktc2VsZWN0bWVudS1pdGVtIiApLCBldmVudCApOw0KCQl9DQoJfSwNCg0KCV9zZWxlY3Q6IGZ1bmN0aW9uKCBpdGVtLCBldmVudCApIHsNCgkJdmFyIG9sZEluZGV4ID0gdGhpcy5lbGVtZW50WyAwIF0uc2VsZWN0ZWRJbmRleDsNCg0KCQkvLyBDaGFuZ2UgbmF0aXZlIHNlbGVjdCBlbGVtZW50DQoJCXRoaXMuZWxlbWVudFsgMCBdLnNlbGVjdGVkSW5kZXggPSBpdGVtLmluZGV4Ow0KCQl0aGlzLmJ1dHRvbkl0ZW0ucmVwbGFjZVdpdGgoIHRoaXMuYnV0dG9uSXRlbSA9IHRoaXMuX3JlbmRlckJ1dHRvbkl0ZW0oIGl0ZW0gKSApOw0KCQl0aGlzLl9zZXRBcmlhKCBpdGVtICk7DQoJCXRoaXMuX3RyaWdnZXIoICJzZWxlY3QiLCBldmVudCwgeyBpdGVtOiBpdGVtIH0gKTsNCg0KCQlpZiAoIGl0ZW0uaW5kZXggIT09IG9sZEluZGV4ICkgew0KCQkJdGhpcy5fdHJpZ2dlciggImNoYW5nZSIsIGV2ZW50LCB7IGl0ZW06IGl0ZW0gfSApOw0KCQl9DQoNCgkJdGhpcy5jbG9zZSggZXZlbnQgKTsNCgl9LA0KDQoJX3NldEFyaWE6IGZ1bmN0aW9uKCBpdGVtICkgew0KCQl2YXIgaWQgPSB0aGlzLm1lbnVJdGVtcy5lcSggaXRlbS5pbmRleCApLmF0dHIoICJpZCIgKTsNCg0KCQl0aGlzLmJ1dHRvbi5hdHRyKCB7DQoJCQkiYXJpYS1sYWJlbGxlZGJ5IjogaWQsDQoJCQkiYXJpYS1hY3RpdmVkZXNjZW5kYW50IjogaWQNCgkJfSApOw0KCQl0aGlzLm1lbnUuYXR0ciggImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsIGlkICk7DQoJfSwNCg0KCV9zZXRPcHRpb246IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkgew0KCQlpZiAoIGtleSA9PT0gImljb25zIiApIHsNCgkJCXZhciBpY29uID0gdGhpcy5idXR0b24uZmluZCggInNwYW4udWktaWNvbiIgKTsNCgkJCXRoaXMuX3JlbW92ZUNsYXNzKCBpY29uLCBudWxsLCB0aGlzLm9wdGlvbnMuaWNvbnMuYnV0dG9uICkNCgkJCQkuX2FkZENsYXNzKCBpY29uLCBudWxsLCB2YWx1ZS5idXR0b24gKTsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJaWYgKCBrZXkgPT09ICJhcHBlbmRUbyIgKSB7DQoJCQl0aGlzLm1lbnVXcmFwLmFwcGVuZFRvKCB0aGlzLl9hcHBlbmRUbygpICk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gIndpZHRoIiApIHsNCgkJCXRoaXMuX3Jlc2l6ZUJ1dHRvbigpOw0KCQl9DQoJfSwNCg0KCV9zZXRPcHRpb25EaXNhYmxlZDogZnVuY3Rpb24oIHZhbHVlICkgew0KCQl0aGlzLl9zdXBlciggdmFsdWUgKTsNCg0KCQl0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oICJkaXNhYmxlZCIsIHZhbHVlICk7DQoJCXRoaXMuYnV0dG9uLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgdmFsdWUgKTsNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIHRoaXMuYnV0dG9uLCBudWxsLCAidWktc3RhdGUtZGlzYWJsZWQiLCB2YWx1ZSApOw0KDQoJCXRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiLCB2YWx1ZSApOw0KCQlpZiAoIHZhbHVlICkgew0KCQkJdGhpcy5idXR0b24uYXR0ciggInRhYmluZGV4IiwgLTEgKTsNCgkJCXRoaXMuY2xvc2UoKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYnV0dG9uLmF0dHIoICJ0YWJpbmRleCIsIDAgKTsNCgkJfQ0KCX0sDQoNCglfYXBwZW5kVG86IGZ1bmN0aW9uKCkgew0KCQl2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5hcHBlbmRUbzsNCg0KCQlpZiAoIGVsZW1lbnQgKSB7DQoJCQllbGVtZW50ID0gZWxlbWVudC5qcXVlcnkgfHwgZWxlbWVudC5ub2RlVHlwZSA/DQoJCQkJJCggZWxlbWVudCApIDoNCgkJCQl0aGlzLmRvY3VtZW50LmZpbmQoIGVsZW1lbnQgKS5lcSggMCApOw0KCQl9DQoNCgkJaWYgKCAhZWxlbWVudCB8fCAhZWxlbWVudFsgMCBdICkgew0KCQkJZWxlbWVudCA9IHRoaXMuZWxlbWVudC5jbG9zZXN0KCAiLnVpLWZyb250LCBkaWFsb2ciICk7DQoJCX0NCg0KCQlpZiAoICFlbGVtZW50Lmxlbmd0aCApIHsNCgkJCWVsZW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF0uYm9keTsNCgkJfQ0KDQoJCXJldHVybiBlbGVtZW50Ow0KCX0sDQoNCglfdG9nZ2xlQXR0cjogZnVuY3Rpb24oKSB7DQoJCXRoaXMuYnV0dG9uLmF0dHIoICJhcmlhLWV4cGFuZGVkIiwgdGhpcy5pc09wZW4gKTsNCg0KCQkvLyBXZSBjYW4ndCB1c2UgdHdvIF90b2dnbGVDbGFzcygpIGNhbGxzIGhlcmUsIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUNCgkJLy8gd2UgYWx3YXlzIHJlbW92ZSBjbGFzc2VzIGZpcnN0IGFuZCBhZGQgdGhlbSBzZWNvbmQsIG90aGVyd2lzZSBpZiBib3RoIGNsYXNzZXMgaGF2ZSB0aGUNCgkJLy8gc2FtZSB0aGVtZSBjbGFzcywgaXQgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHdlIGFkZCBpdC4NCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuYnV0dG9uLCAidWktc2VsZWN0bWVudS1idXR0b24tIiArDQoJCQkoIHRoaXMuaXNPcGVuID8gImNsb3NlZCIgOiAib3BlbiIgKSApDQoJCQkuX2FkZENsYXNzKCB0aGlzLmJ1dHRvbiwgInVpLXNlbGVjdG1lbnUtYnV0dG9uLSIgKw0KCQkJCSggdGhpcy5pc09wZW4gPyAib3BlbiIgOiAiY2xvc2VkIiApICkNCgkJCS5fdG9nZ2xlQ2xhc3MoIHRoaXMubWVudVdyYXAsICJ1aS1zZWxlY3RtZW51LW9wZW4iLCBudWxsLCB0aGlzLmlzT3BlbiApOw0KDQoJCXRoaXMubWVudS5hdHRyKCAiYXJpYS1oaWRkZW4iLCAhdGhpcy5pc09wZW4gKTsNCgl9LA0KDQoJX3Jlc2l6ZUJ1dHRvbjogZnVuY3Rpb24oKSB7DQoJCXZhciB3aWR0aCA9IHRoaXMub3B0aW9ucy53aWR0aDsNCg0KCQkvLyBGb3IgYHdpZHRoOiBmYWxzZWAsIGp1c3QgcmVtb3ZlIGlubGluZSBzdHlsZSBhbmQgc3RvcA0KCQlpZiAoIHdpZHRoID09PSBmYWxzZSApIHsNCgkJCXRoaXMuYnV0dG9uLmNzcyggIndpZHRoIiwgIiIgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIEZvciBgd2lkdGg6IG51bGxgLCBtYXRjaCB0aGUgd2lkdGggb2YgdGhlIG9yaWdpbmFsIGVsZW1lbnQNCgkJaWYgKCB3aWR0aCA9PT0gbnVsbCApIHsNCgkJCXdpZHRoID0gdGhpcy5lbGVtZW50LnNob3coKS5vdXRlcldpZHRoKCk7DQoJCQl0aGlzLmVsZW1lbnQuaGlkZSgpOw0KCQl9DQoNCgkJdGhpcy5idXR0b24ub3V0ZXJXaWR0aCggd2lkdGggKTsNCgl9LA0KDQoJX3Jlc2l6ZU1lbnU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLm1lbnUub3V0ZXJXaWR0aCggTWF0aC5tYXgoDQoJCQl0aGlzLmJ1dHRvbi5vdXRlcldpZHRoKCksDQoNCgkJCS8vIFN1cHBvcnQ6IElFMTANCgkJCS8vIElFMTAgd3JhcHMgbG9uZyB0ZXh0IChwb3NzaWJseSBhIHJvdW5kaW5nIGJ1ZykNCgkJCS8vIHNvIHdlIGFkZCAxcHggdG8gYXZvaWQgdGhlIHdyYXBwaW5nDQoJCQl0aGlzLm1lbnUud2lkdGgoICIiICkub3V0ZXJXaWR0aCgpICsgMQ0KCQkpICk7DQoJfSwNCg0KCV9nZXRDcmVhdGVPcHRpb25zOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLl9zdXBlcigpOw0KDQoJCW9wdGlvbnMuZGlzYWJsZWQgPSB0aGlzLmVsZW1lbnQucHJvcCggImRpc2FibGVkIiApOw0KDQoJCXJldHVybiBvcHRpb25zOw0KCX0sDQoNCglfcGFyc2VPcHRpb25zOiBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJZGF0YSA9IFtdOw0KCQlvcHRpb25zLmVhY2goIGZ1bmN0aW9uKCBpbmRleCwgaXRlbSApIHsNCgkJCWRhdGEucHVzaCggdGhhdC5fcGFyc2VPcHRpb24oICQoIGl0ZW0gKSwgaW5kZXggKSApOw0KCQl9ICk7DQoJCXRoaXMuaXRlbXMgPSBkYXRhOw0KCX0sDQoNCglfcGFyc2VPcHRpb246IGZ1bmN0aW9uKCBvcHRpb24sIGluZGV4ICkgew0KCQl2YXIgb3B0Z3JvdXAgPSBvcHRpb24ucGFyZW50KCAib3B0Z3JvdXAiICk7DQoNCgkJcmV0dXJuIHsNCgkJCWVsZW1lbnQ6IG9wdGlvbiwNCgkJCWluZGV4OiBpbmRleCwNCgkJCXZhbHVlOiBvcHRpb24udmFsKCksDQoJCQlsYWJlbDogb3B0aW9uLnRleHQoKSwNCgkJCW9wdGdyb3VwOiBvcHRncm91cC5hdHRyKCAibGFiZWwiICkgfHwgIiIsDQoJCQlkaXNhYmxlZDogb3B0Z3JvdXAucHJvcCggImRpc2FibGVkIiApIHx8IG9wdGlvbi5wcm9wKCAiZGlzYWJsZWQiICkNCgkJfTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl91bmJpbmRGb3JtUmVzZXRIYW5kbGVyKCk7DQoJCXRoaXMubWVudVdyYXAucmVtb3ZlKCk7DQoJCXRoaXMuYnV0dG9uLnJlbW92ZSgpOw0KCQl0aGlzLmVsZW1lbnQuc2hvdygpOw0KCQl0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKTsNCgkJdGhpcy5sYWJlbHMuYXR0ciggImZvciIsIHRoaXMuaWRzLmVsZW1lbnQgKTsNCgl9DQp9IF0gKTsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBTbGlkZXIgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IFNsaWRlcg0KLy8+Pmdyb3VwOiBXaWRnZXRzDQovLz4+ZGVzY3JpcHRpb246IERpc3BsYXlzIGEgZmxleGlibGUgc2xpZGVyIHdpdGggcmFuZ2VzIGFuZCBhY2Nlc3NpYmlsaXR5IHZpYSBrZXlib2FyZC4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zbGlkZXIvDQovLz4+ZGVtb3M6IGh0dHA6Ly9qcXVlcnl1aS5jb20vc2xpZGVyLw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvcmUuY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2Uvc2xpZGVyLmNzcw0KLy8+PmNzcy50aGVtZTogLi4vLi4vdGhlbWVzL2Jhc2UvdGhlbWUuY3NzDQoNCg0KDQp2YXIgd2lkZ2V0c1NsaWRlciA9ICQud2lkZ2V0KCAidWkuc2xpZGVyIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAic2xpZGUiLA0KDQoJb3B0aW9uczogew0KCQlhbmltYXRlOiBmYWxzZSwNCgkJY2xhc3Nlczogew0KCQkJInVpLXNsaWRlciI6ICJ1aS1jb3JuZXItYWxsIiwNCgkJCSJ1aS1zbGlkZXItaGFuZGxlIjogInVpLWNvcm5lci1hbGwiLA0KDQoJCQkvLyBOb3RlOiB1aS13aWRnZXQtaGVhZGVyIGlzbid0IHRoZSBtb3N0IGZpdHRpbmdseSBzZW1hbnRpYyBmcmFtZXdvcmsgY2xhc3MgZm9yIHRoaXMNCgkJCS8vIGVsZW1lbnQsIGJ1dCB3b3JrZWQgYmVzdCB2aXN1YWxseSB3aXRoIGEgdmFyaWV0eSBvZiB0aGVtZXMNCgkJCSJ1aS1zbGlkZXItcmFuZ2UiOiAidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIg0KCQl9LA0KCQlkaXN0YW5jZTogMCwNCgkJbWF4OiAxMDAsDQoJCW1pbjogMCwNCgkJb3JpZW50YXRpb246ICJob3Jpem9udGFsIiwNCgkJcmFuZ2U6IGZhbHNlLA0KCQlzdGVwOiAxLA0KCQl2YWx1ZTogMCwNCgkJdmFsdWVzOiBudWxsLA0KDQoJCS8vIENhbGxiYWNrcw0KCQljaGFuZ2U6IG51bGwsDQoJCXNsaWRlOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoNCgkvLyBOdW1iZXIgb2YgcGFnZXMgaW4gYSBzbGlkZXINCgkvLyAoaG93IG1hbnkgdGltZXMgY2FuIHlvdSBwYWdlIHVwL2Rvd24gdG8gZ28gdGhyb3VnaCB0aGUgd2hvbGUgcmFuZ2UpDQoJbnVtUGFnZXM6IDUsDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fa2V5U2xpZGluZyA9IGZhbHNlOw0KCQl0aGlzLl9tb3VzZVNsaWRpbmcgPSBmYWxzZTsNCgkJdGhpcy5fYW5pbWF0ZU9mZiA9IHRydWU7DQoJCXRoaXMuX2hhbmRsZUluZGV4ID0gbnVsbDsNCgkJdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKTsNCgkJdGhpcy5fbW91c2VJbml0KCk7DQoJCXRoaXMuX2NhbGN1bGF0ZU5ld01heCgpOw0KDQoJCXRoaXMuX2FkZENsYXNzKCAidWktc2xpZGVyIHVpLXNsaWRlci0iICsgdGhpcy5vcmllbnRhdGlvbiwNCgkJCSJ1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQiICk7DQoNCgkJdGhpcy5fcmVmcmVzaCgpOw0KDQoJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCgl9LA0KDQoJX3JlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9jcmVhdGVSYW5nZSgpOw0KCQl0aGlzLl9jcmVhdGVIYW5kbGVzKCk7DQoJCXRoaXMuX3NldHVwRXZlbnRzKCk7DQoJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCX0sDQoNCglfY3JlYXRlSGFuZGxlczogZnVuY3Rpb24oKSB7DQoJCXZhciBpLCBoYW5kbGVDb3VudCwNCgkJCW9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsDQoJCQlleGlzdGluZ0hhbmRsZXMgPSB0aGlzLmVsZW1lbnQuZmluZCggIi51aS1zbGlkZXItaGFuZGxlIiApLA0KCQkJaGFuZGxlID0gIjxzcGFuIHRhYmluZGV4PScwJz48L3NwYW4+IiwNCgkJCWhhbmRsZXMgPSBbXTsNCg0KCQloYW5kbGVDb3VudCA9ICggb3B0aW9ucy52YWx1ZXMgJiYgb3B0aW9ucy52YWx1ZXMubGVuZ3RoICkgfHwgMTsNCg0KCQlpZiAoIGV4aXN0aW5nSGFuZGxlcy5sZW5ndGggPiBoYW5kbGVDb3VudCApIHsNCgkJCWV4aXN0aW5nSGFuZGxlcy5zbGljZSggaGFuZGxlQ291bnQgKS5yZW1vdmUoKTsNCgkJCWV4aXN0aW5nSGFuZGxlcyA9IGV4aXN0aW5nSGFuZGxlcy5zbGljZSggMCwgaGFuZGxlQ291bnQgKTsNCgkJfQ0KDQoJCWZvciAoIGkgPSBleGlzdGluZ0hhbmRsZXMubGVuZ3RoOyBpIDwgaGFuZGxlQ291bnQ7IGkrKyApIHsNCgkJCWhhbmRsZXMucHVzaCggaGFuZGxlICk7DQoJCX0NCg0KCQl0aGlzLmhhbmRsZXMgPSBleGlzdGluZ0hhbmRsZXMuYWRkKCAkKCBoYW5kbGVzLmpvaW4oICIiICkgKS5hcHBlbmRUbyggdGhpcy5lbGVtZW50ICkgKTsNCg0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5oYW5kbGVzLCAidWktc2xpZGVyLWhhbmRsZSIsICJ1aS1zdGF0ZS1kZWZhdWx0IiApOw0KDQoJCXRoaXMuaGFuZGxlID0gdGhpcy5oYW5kbGVzLmVxKCAwICk7DQoNCgkJdGhpcy5oYW5kbGVzLmVhY2goIGZ1bmN0aW9uKCBpICkgew0KCQkJJCggdGhpcyApDQoJCQkJLmRhdGEoICJ1aS1zbGlkZXItaGFuZGxlLWluZGV4IiwgaSApDQoJCQkJLmF0dHIoICJ0YWJJbmRleCIsIDAgKTsNCgkJfSApOw0KCX0sDQoNCglfY3JlYXRlUmFuZ2U6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMub3B0aW9uczsNCg0KCQlpZiAoIG9wdGlvbnMucmFuZ2UgKSB7DQoJCQlpZiAoIG9wdGlvbnMucmFuZ2UgPT09IHRydWUgKSB7DQoJCQkJaWYgKCAhb3B0aW9ucy52YWx1ZXMgKSB7DQoJCQkJCW9wdGlvbnMudmFsdWVzID0gWyB0aGlzLl92YWx1ZU1pbigpLCB0aGlzLl92YWx1ZU1pbigpIF07DQoJCQkJfSBlbHNlIGlmICggb3B0aW9ucy52YWx1ZXMubGVuZ3RoICYmIG9wdGlvbnMudmFsdWVzLmxlbmd0aCAhPT0gMiApIHsNCgkJCQkJb3B0aW9ucy52YWx1ZXMgPSBbIG9wdGlvbnMudmFsdWVzWyAwIF0sIG9wdGlvbnMudmFsdWVzWyAwIF0gXTsNCgkJCQl9IGVsc2UgaWYgKCAkLmlzQXJyYXkoIG9wdGlvbnMudmFsdWVzICkgKSB7DQoJCQkJCW9wdGlvbnMudmFsdWVzID0gb3B0aW9ucy52YWx1ZXMuc2xpY2UoIDAgKTsNCgkJCQl9DQoJCQl9DQoNCgkJCWlmICggIXRoaXMucmFuZ2UgfHwgIXRoaXMucmFuZ2UubGVuZ3RoICkgew0KCQkJCXRoaXMucmFuZ2UgPSAkKCAiPGRpdj4iICkNCgkJCQkJLmFwcGVuZFRvKCB0aGlzLmVsZW1lbnQgKTsNCg0KCQkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLnJhbmdlLCAidWktc2xpZGVyLXJhbmdlIiApOw0KCQkJfSBlbHNlIHsNCgkJCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5yYW5nZSwgInVpLXNsaWRlci1yYW5nZS1taW4gdWktc2xpZGVyLXJhbmdlLW1heCIgKTsNCg0KCQkJCS8vIEhhbmRsZSByYW5nZSBzd2l0Y2hpbmcgZnJvbSB0cnVlIHRvIG1pbi9tYXgNCgkJCQl0aGlzLnJhbmdlLmNzcyggew0KCQkJCQkibGVmdCI6ICIiLA0KCQkJCQkiYm90dG9tIjogIiINCgkJCQl9ICk7DQoJCQl9DQoJCQlpZiAoIG9wdGlvbnMucmFuZ2UgPT09ICJtaW4iIHx8IG9wdGlvbnMucmFuZ2UgPT09ICJtYXgiICkgew0KCQkJCXRoaXMuX2FkZENsYXNzKCB0aGlzLnJhbmdlLCAidWktc2xpZGVyLXJhbmdlLSIgKyBvcHRpb25zLnJhbmdlICk7DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQlpZiAoIHRoaXMucmFuZ2UgKSB7DQoJCQkJdGhpcy5yYW5nZS5yZW1vdmUoKTsNCgkJCX0NCgkJCXRoaXMucmFuZ2UgPSBudWxsOw0KCQl9DQoJfSwNCg0KCV9zZXR1cEV2ZW50czogZnVuY3Rpb24oKSB7DQoJCXRoaXMuX29mZiggdGhpcy5oYW5kbGVzICk7DQoJCXRoaXMuX29uKCB0aGlzLmhhbmRsZXMsIHRoaXMuX2hhbmRsZUV2ZW50cyApOw0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMuaGFuZGxlcyApOw0KCQl0aGlzLl9mb2N1c2FibGUoIHRoaXMuaGFuZGxlcyApOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaGFuZGxlcy5yZW1vdmUoKTsNCgkJaWYgKCB0aGlzLnJhbmdlICkgew0KCQkJdGhpcy5yYW5nZS5yZW1vdmUoKTsNCgkJfQ0KDQoJCXRoaXMuX21vdXNlRGVzdHJveSgpOw0KCX0sDQoNCglfbW91c2VDYXB0dXJlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBwb3NpdGlvbiwgbm9ybVZhbHVlLCBkaXN0YW5jZSwgY2xvc2VzdEhhbmRsZSwgaW5kZXgsIGFsbG93ZWQsIG9mZnNldCwgbW91c2VPdmVySGFuZGxlLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQlvID0gdGhpcy5vcHRpb25zOw0KDQoJCWlmICggby5kaXNhYmxlZCApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCXRoaXMuZWxlbWVudFNpemUgPSB7DQoJCQl3aWR0aDogdGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSwNCgkJCWhlaWdodDogdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCkNCgkJfTsNCgkJdGhpcy5lbGVtZW50T2Zmc2V0ID0gdGhpcy5lbGVtZW50Lm9mZnNldCgpOw0KDQoJCXBvc2l0aW9uID0geyB4OiBldmVudC5wYWdlWCwgeTogZXZlbnQucGFnZVkgfTsNCgkJbm9ybVZhbHVlID0gdGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKCBwb3NpdGlvbiApOw0KCQlkaXN0YW5jZSA9IHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpICsgMTsNCgkJdGhpcy5oYW5kbGVzLmVhY2goIGZ1bmN0aW9uKCBpICkgew0KCQkJdmFyIHRoaXNEaXN0YW5jZSA9IE1hdGguYWJzKCBub3JtVmFsdWUgLSB0aGF0LnZhbHVlcyggaSApICk7DQoJCQlpZiAoICggZGlzdGFuY2UgPiB0aGlzRGlzdGFuY2UgKSB8fA0KCQkJCSggZGlzdGFuY2UgPT09IHRoaXNEaXN0YW5jZSAmJg0KCQkJCQkoIGkgPT09IHRoYXQuX2xhc3RDaGFuZ2VkVmFsdWUgfHwgdGhhdC52YWx1ZXMoIGkgKSA9PT0gby5taW4gKSApICkgew0KCQkJCWRpc3RhbmNlID0gdGhpc0Rpc3RhbmNlOw0KCQkJCWNsb3Nlc3RIYW5kbGUgPSAkKCB0aGlzICk7DQoJCQkJaW5kZXggPSBpOw0KCQkJfQ0KCQl9ICk7DQoNCgkJYWxsb3dlZCA9IHRoaXMuX3N0YXJ0KCBldmVudCwgaW5kZXggKTsNCgkJaWYgKCBhbGxvd2VkID09PSBmYWxzZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KCQl0aGlzLl9tb3VzZVNsaWRpbmcgPSB0cnVlOw0KDQoJCXRoaXMuX2hhbmRsZUluZGV4ID0gaW5kZXg7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoIGNsb3Nlc3RIYW5kbGUsIG51bGwsICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCWNsb3Nlc3RIYW5kbGUudHJpZ2dlciggImZvY3VzIiApOw0KDQoJCW9mZnNldCA9IGNsb3Nlc3RIYW5kbGUub2Zmc2V0KCk7DQoJCW1vdXNlT3ZlckhhbmRsZSA9ICEkKCBldmVudC50YXJnZXQgKS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCAiLnVpLXNsaWRlci1oYW5kbGUiICk7DQoJCXRoaXMuX2NsaWNrT2Zmc2V0ID0gbW91c2VPdmVySGFuZGxlID8geyBsZWZ0OiAwLCB0b3A6IDAgfSA6IHsNCgkJCWxlZnQ6IGV2ZW50LnBhZ2VYIC0gb2Zmc2V0LmxlZnQgLSAoIGNsb3Nlc3RIYW5kbGUud2lkdGgoKSAvIDIgKSwNCgkJCXRvcDogZXZlbnQucGFnZVkgLSBvZmZzZXQudG9wIC0NCgkJCQkoIGNsb3Nlc3RIYW5kbGUuaGVpZ2h0KCkgLyAyICkgLQ0KCQkJCSggcGFyc2VJbnQoIGNsb3Nlc3RIYW5kbGUuY3NzKCAiYm9yZGVyVG9wV2lkdGgiICksIDEwICkgfHwgMCApIC0NCgkJCQkoIHBhcnNlSW50KCBjbG9zZXN0SGFuZGxlLmNzcyggImJvcmRlckJvdHRvbVdpZHRoIiApLCAxMCApIHx8IDAgKSArDQoJCQkJKCBwYXJzZUludCggY2xvc2VzdEhhbmRsZS5jc3MoICJtYXJnaW5Ub3AiICksIDEwICkgfHwgMCApDQoJCX07DQoNCgkJaWYgKCAhdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCAidWktc3RhdGUtaG92ZXIiICkgKSB7DQoJCQl0aGlzLl9zbGlkZSggZXZlbnQsIGluZGV4LCBub3JtVmFsdWUgKTsNCgkJfQ0KCQl0aGlzLl9hbmltYXRlT2ZmID0gdHJ1ZTsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZVN0YXJ0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRydWU7DQoJfSwNCg0KCV9tb3VzZURyYWc6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHBvc2l0aW9uID0geyB4OiBldmVudC5wYWdlWCwgeTogZXZlbnQucGFnZVkgfSwNCgkJCW5vcm1WYWx1ZSA9IHRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZSggcG9zaXRpb24gKTsNCg0KCQl0aGlzLl9zbGlkZSggZXZlbnQsIHRoaXMuX2hhbmRsZUluZGV4LCBub3JtVmFsdWUgKTsNCg0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCV9tb3VzZVN0b3A6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuaGFuZGxlcywgbnVsbCwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJdGhpcy5fbW91c2VTbGlkaW5nID0gZmFsc2U7DQoNCgkJdGhpcy5fc3RvcCggZXZlbnQsIHRoaXMuX2hhbmRsZUluZGV4ICk7DQoJCXRoaXMuX2NoYW5nZSggZXZlbnQsIHRoaXMuX2hhbmRsZUluZGV4ICk7DQoNCgkJdGhpcy5faGFuZGxlSW5kZXggPSBudWxsOw0KCQl0aGlzLl9jbGlja09mZnNldCA9IG51bGw7DQoJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCg0KCQlyZXR1cm4gZmFsc2U7DQoJfSwNCg0KCV9kZXRlY3RPcmllbnRhdGlvbjogZnVuY3Rpb24oKSB7DQoJCXRoaXMub3JpZW50YXRpb24gPSAoIHRoaXMub3B0aW9ucy5vcmllbnRhdGlvbiA9PT0gInZlcnRpY2FsIiApID8gInZlcnRpY2FsIiA6ICJob3Jpem9udGFsIjsNCgl9LA0KDQoJX25vcm1WYWx1ZUZyb21Nb3VzZTogZnVuY3Rpb24oIHBvc2l0aW9uICkgew0KCQl2YXIgcGl4ZWxUb3RhbCwNCgkJCXBpeGVsTW91c2UsDQoJCQlwZXJjZW50TW91c2UsDQoJCQl2YWx1ZVRvdGFsLA0KCQkJdmFsdWVNb3VzZTsNCg0KCQlpZiAoIHRoaXMub3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIiApIHsNCgkJCXBpeGVsVG90YWwgPSB0aGlzLmVsZW1lbnRTaXplLndpZHRoOw0KCQkJcGl4ZWxNb3VzZSA9IHBvc2l0aW9uLnggLSB0aGlzLmVsZW1lbnRPZmZzZXQubGVmdCAtDQoJCQkJKCB0aGlzLl9jbGlja09mZnNldCA/IHRoaXMuX2NsaWNrT2Zmc2V0LmxlZnQgOiAwICk7DQoJCX0gZWxzZSB7DQoJCQlwaXhlbFRvdGFsID0gdGhpcy5lbGVtZW50U2l6ZS5oZWlnaHQ7DQoJCQlwaXhlbE1vdXNlID0gcG9zaXRpb24ueSAtIHRoaXMuZWxlbWVudE9mZnNldC50b3AgLQ0KCQkJCSggdGhpcy5fY2xpY2tPZmZzZXQgPyB0aGlzLl9jbGlja09mZnNldC50b3AgOiAwICk7DQoJCX0NCg0KCQlwZXJjZW50TW91c2UgPSAoIHBpeGVsTW91c2UgLyBwaXhlbFRvdGFsICk7DQoJCWlmICggcGVyY2VudE1vdXNlID4gMSApIHsNCgkJCXBlcmNlbnRNb3VzZSA9IDE7DQoJCX0NCgkJaWYgKCBwZXJjZW50TW91c2UgPCAwICkgew0KCQkJcGVyY2VudE1vdXNlID0gMDsNCgkJfQ0KCQlpZiAoIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQlwZXJjZW50TW91c2UgPSAxIC0gcGVyY2VudE1vdXNlOw0KCQl9DQoNCgkJdmFsdWVUb3RhbCA9IHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpOw0KCQl2YWx1ZU1vdXNlID0gdGhpcy5fdmFsdWVNaW4oKSArIHBlcmNlbnRNb3VzZSAqIHZhbHVlVG90YWw7DQoNCgkJcmV0dXJuIHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWx1ZU1vdXNlICk7DQoJfSwNCg0KCV91aUhhc2g6IGZ1bmN0aW9uKCBpbmRleCwgdmFsdWUsIHZhbHVlcyApIHsNCgkJdmFyIHVpSGFzaCA9IHsNCgkJCWhhbmRsZTogdGhpcy5oYW5kbGVzWyBpbmRleCBdLA0KCQkJaGFuZGxlSW5kZXg6IGluZGV4LA0KCQkJdmFsdWU6IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHRoaXMudmFsdWUoKQ0KCQl9Ow0KDQoJCWlmICggdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSApIHsNCgkJCXVpSGFzaC52YWx1ZSA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHRoaXMudmFsdWVzKCBpbmRleCApOw0KCQkJdWlIYXNoLnZhbHVlcyA9IHZhbHVlcyB8fCB0aGlzLnZhbHVlcygpOw0KCQl9DQoNCgkJcmV0dXJuIHVpSGFzaDsNCgl9LA0KDQoJX2hhc011bHRpcGxlVmFsdWVzOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMgJiYgdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg7DQoJfSwNCg0KCV9zdGFydDogZnVuY3Rpb24oIGV2ZW50LCBpbmRleCApIHsNCgkJcmV0dXJuIHRoaXMuX3RyaWdnZXIoICJzdGFydCIsIGV2ZW50LCB0aGlzLl91aUhhc2goIGluZGV4ICkgKTsNCgl9LA0KDQoJX3NsaWRlOiBmdW5jdGlvbiggZXZlbnQsIGluZGV4LCBuZXdWYWwgKSB7DQoJCXZhciBhbGxvd2VkLCBvdGhlclZhbCwNCgkJCWN1cnJlbnRWYWx1ZSA9IHRoaXMudmFsdWUoKSwNCgkJCW5ld1ZhbHVlcyA9IHRoaXMudmFsdWVzKCk7DQoNCgkJaWYgKCB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpICkgew0KCQkJb3RoZXJWYWwgPSB0aGlzLnZhbHVlcyggaW5kZXggPyAwIDogMSApOw0KCQkJY3VycmVudFZhbHVlID0gdGhpcy52YWx1ZXMoIGluZGV4ICk7DQoNCgkJCWlmICggdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGggPT09IDIgJiYgdGhpcy5vcHRpb25zLnJhbmdlID09PSB0cnVlICkgew0KCQkJCW5ld1ZhbCA9ICBpbmRleCA9PT0gMCA/IE1hdGgubWluKCBvdGhlclZhbCwgbmV3VmFsICkgOiBNYXRoLm1heCggb3RoZXJWYWwsIG5ld1ZhbCApOw0KCQkJfQ0KDQoJCQluZXdWYWx1ZXNbIGluZGV4IF0gPSBuZXdWYWw7DQoJCX0NCg0KCQlpZiAoIG5ld1ZhbCA9PT0gY3VycmVudFZhbHVlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJYWxsb3dlZCA9IHRoaXMuX3RyaWdnZXIoICJzbGlkZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goIGluZGV4LCBuZXdWYWwsIG5ld1ZhbHVlcyApICk7DQoNCgkJLy8gQSBzbGlkZSBjYW4gYmUgY2FuY2VsZWQgYnkgcmV0dXJuaW5nIGZhbHNlIGZyb20gdGhlIHNsaWRlIGNhbGxiYWNrDQoJCWlmICggYWxsb3dlZCA9PT0gZmFsc2UgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkgKSB7DQoJCQl0aGlzLnZhbHVlcyggaW5kZXgsIG5ld1ZhbCApOw0KCQl9IGVsc2Ugew0KCQkJdGhpcy52YWx1ZSggbmV3VmFsICk7DQoJCX0NCgl9LA0KDQoJX3N0b3A6IGZ1bmN0aW9uKCBldmVudCwgaW5kZXggKSB7DQoJCXRoaXMuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCggaW5kZXggKSApOw0KCX0sDQoNCglfY2hhbmdlOiBmdW5jdGlvbiggZXZlbnQsIGluZGV4ICkgew0KCQlpZiAoICF0aGlzLl9rZXlTbGlkaW5nICYmICF0aGlzLl9tb3VzZVNsaWRpbmcgKSB7DQoNCgkJCS8vc3RvcmUgdGhlIGxhc3QgY2hhbmdlZCB2YWx1ZSBpbmRleCBmb3IgcmVmZXJlbmNlIHdoZW4gaGFuZGxlcyBvdmVybGFwDQoJCQl0aGlzLl9sYXN0Q2hhbmdlZFZhbHVlID0gaW5kZXg7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCggaW5kZXggKSApOw0KCQl9DQoJfSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsdWUgKSB7DQoJCWlmICggYXJndW1lbnRzLmxlbmd0aCApIHsNCgkJCXRoaXMub3B0aW9ucy52YWx1ZSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZSApOw0KCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIDAgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCXJldHVybiB0aGlzLl92YWx1ZSgpOw0KCX0sDQoNCgl2YWx1ZXM6IGZ1bmN0aW9uKCBpbmRleCwgbmV3VmFsdWUgKSB7DQoJCXZhciB2YWxzLA0KCQkJbmV3VmFsdWVzLA0KCQkJaTsNCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggPiAxICkgew0KCQkJdGhpcy5vcHRpb25zLnZhbHVlc1sgaW5kZXggXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZSApOw0KCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGluZGV4ICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQlpZiAoICQuaXNBcnJheSggYXJndW1lbnRzWyAwIF0gKSApIHsNCgkJCQl2YWxzID0gdGhpcy5vcHRpb25zLnZhbHVlczsNCgkJCQluZXdWYWx1ZXMgPSBhcmd1bWVudHNbIDAgXTsNCgkJCQlmb3IgKCBpID0gMDsgaSA8IHZhbHMubGVuZ3RoOyBpICs9IDEgKSB7DQoJCQkJCXZhbHNbIGkgXSA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBuZXdWYWx1ZXNbIGkgXSApOw0KCQkJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGkgKTsNCgkJCQl9DQoJCQkJdGhpcy5fcmVmcmVzaFZhbHVlKCk7DQoJCQl9IGVsc2Ugew0KCQkJCWlmICggdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSApIHsNCgkJCQkJcmV0dXJuIHRoaXMuX3ZhbHVlcyggaW5kZXggKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlyZXR1cm4gdGhpcy52YWx1ZSgpOw0KCQkJCX0NCgkJCX0NCgkJfSBlbHNlIHsNCgkJCXJldHVybiB0aGlzLl92YWx1ZXMoKTsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIGksDQoJCQl2YWxzTGVuZ3RoID0gMDsNCg0KCQlpZiAoIGtleSA9PT0gInJhbmdlIiAmJiB0aGlzLm9wdGlvbnMucmFuZ2UgPT09IHRydWUgKSB7DQoJCQlpZiAoIHZhbHVlID09PSAibWluIiApIHsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl92YWx1ZXMoIDAgKTsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWVzID0gbnVsbDsNCgkJCX0gZWxzZSBpZiAoIHZhbHVlID09PSAibWF4IiApIHsNCgkJCQl0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLl92YWx1ZXMoIHRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoIC0gMSApOw0KCQkJCXRoaXMub3B0aW9ucy52YWx1ZXMgPSBudWxsOw0KCQkJfQ0KCQl9DQoNCgkJaWYgKCAkLmlzQXJyYXkoIHRoaXMub3B0aW9ucy52YWx1ZXMgKSApIHsNCgkJCXZhbHNMZW5ndGggPSB0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aDsNCgkJfQ0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJc3dpdGNoICgga2V5ICkgew0KCQkJY2FzZSAib3JpZW50YXRpb24iOg0KCQkJCXRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCk7DQoJCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoICJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiICkNCgkJCQkJLl9hZGRDbGFzcyggInVpLXNsaWRlci0iICsgdGhpcy5vcmllbnRhdGlvbiApOw0KCQkJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KCQkJCWlmICggdGhpcy5vcHRpb25zLnJhbmdlICkgew0KCQkJCQl0aGlzLl9yZWZyZXNoUmFuZ2UoIHZhbHVlICk7DQoJCQkJfQ0KDQoJCQkJLy8gUmVzZXQgcG9zaXRpb25pbmcgZnJvbSBwcmV2aW91cyBvcmllbnRhdGlvbg0KCQkJCXRoaXMuaGFuZGxlcy5jc3MoIHZhbHVlID09PSAiaG9yaXpvbnRhbCIgPyAiYm90dG9tIiA6ICJsZWZ0IiwgIiIgKTsNCgkJCQlicmVhazsNCgkJCWNhc2UgInZhbHVlIjoNCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gdHJ1ZTsNCgkJCQl0aGlzLl9yZWZyZXNoVmFsdWUoKTsNCgkJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIDAgKTsNCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gZmFsc2U7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJ2YWx1ZXMiOg0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSB0cnVlOw0KCQkJCXRoaXMuX3JlZnJlc2hWYWx1ZSgpOw0KDQoJCQkJLy8gU3RhcnQgZnJvbSB0aGUgbGFzdCBoYW5kbGUgdG8gcHJldmVudCB1bnJlYWNoYWJsZSBoYW5kbGVzICgjOTA0NikNCgkJCQlmb3IgKCBpID0gdmFsc0xlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KCQkJCQl0aGlzLl9jaGFuZ2UoIG51bGwsIGkgKTsNCgkJCQl9DQoJCQkJdGhpcy5fYW5pbWF0ZU9mZiA9IGZhbHNlOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAic3RlcCI6DQoJCQljYXNlICJtaW4iOg0KCQkJY2FzZSAibWF4IjoNCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gdHJ1ZTsNCgkJCQl0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKTsNCgkJCQl0aGlzLl9yZWZyZXNoVmFsdWUoKTsNCgkJCQl0aGlzLl9hbmltYXRlT2ZmID0gZmFsc2U7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJyYW5nZSI6DQoJCQkJdGhpcy5fYW5pbWF0ZU9mZiA9IHRydWU7DQoJCQkJdGhpcy5fcmVmcmVzaCgpOw0KCQkJCXRoaXMuX2FuaW1hdGVPZmYgPSBmYWxzZTsNCgkJCQlicmVhazsNCgkJfQ0KCX0sDQoNCglfc2V0T3B0aW9uRGlzYWJsZWQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIHZhbHVlICk7DQoNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIG51bGwsICJ1aS1zdGF0ZS1kaXNhYmxlZCIsICEhdmFsdWUgKTsNCgl9LA0KDQoJLy9pbnRlcm5hbCB2YWx1ZSBnZXR0ZXINCgkvLyBfdmFsdWUoKSByZXR1cm5zIHZhbHVlIHRyaW1tZWQgYnkgbWluIGFuZCBtYXgsIGFsaWduZWQgYnkgc3RlcA0KCV92YWx1ZTogZnVuY3Rpb24oKSB7DQoJCXZhciB2YWwgPSB0aGlzLm9wdGlvbnMudmFsdWU7DQoJCXZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCB2YWwgKTsNCg0KCQlyZXR1cm4gdmFsOw0KCX0sDQoNCgkvL2ludGVybmFsIHZhbHVlcyBnZXR0ZXINCgkvLyBfdmFsdWVzKCkgcmV0dXJucyBhcnJheSBvZiB2YWx1ZXMgdHJpbW1lZCBieSBtaW4gYW5kIG1heCwgYWxpZ25lZCBieSBzdGVwDQoJLy8gX3ZhbHVlcyggaW5kZXggKSByZXR1cm5zIHNpbmdsZSB2YWx1ZSB0cmltbWVkIGJ5IG1pbiBhbmQgbWF4LCBhbGlnbmVkIGJ5IHN0ZXANCglfdmFsdWVzOiBmdW5jdGlvbiggaW5kZXggKSB7DQoJCXZhciB2YWwsDQoJCQl2YWxzLA0KCQkJaTsNCg0KCQlpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7DQoJCQl2YWwgPSB0aGlzLm9wdGlvbnMudmFsdWVzWyBpbmRleCBdOw0KCQkJdmFsID0gdGhpcy5fdHJpbUFsaWduVmFsdWUoIHZhbCApOw0KDQoJCQlyZXR1cm4gdmFsOw0KCQl9IGVsc2UgaWYgKCB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpICkgew0KDQoJCQkvLyAuc2xpY2UoKSBjcmVhdGVzIGEgY29weSBvZiB0aGUgYXJyYXkNCgkJCS8vIHRoaXMgY29weSBnZXRzIHRyaW1tZWQgYnkgbWluIGFuZCBtYXggYW5kIHRoZW4gcmV0dXJuZWQNCgkJCXZhbHMgPSB0aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCk7DQoJCQlmb3IgKCBpID0gMDsgaSA8IHZhbHMubGVuZ3RoOyBpICs9IDEgKSB7DQoJCQkJdmFsc1sgaSBdID0gdGhpcy5fdHJpbUFsaWduVmFsdWUoIHZhbHNbIGkgXSApOw0KCQkJfQ0KDQoJCQlyZXR1cm4gdmFsczsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiBbXTsNCgkJfQ0KCX0sDQoNCgkvLyBSZXR1cm5zIHRoZSBzdGVwLWFsaWduZWQgdmFsdWUgdGhhdCB2YWwgaXMgY2xvc2VzdCB0bywgYmV0d2VlbiAoaW5jbHVzaXZlKSBtaW4gYW5kIG1heA0KCV90cmltQWxpZ25WYWx1ZTogZnVuY3Rpb24oIHZhbCApIHsNCgkJaWYgKCB2YWwgPD0gdGhpcy5fdmFsdWVNaW4oKSApIHsNCgkJCXJldHVybiB0aGlzLl92YWx1ZU1pbigpOw0KCQl9DQoJCWlmICggdmFsID49IHRoaXMuX3ZhbHVlTWF4KCkgKSB7DQoJCQlyZXR1cm4gdGhpcy5fdmFsdWVNYXgoKTsNCgkJfQ0KCQl2YXIgc3RlcCA9ICggdGhpcy5vcHRpb25zLnN0ZXAgPiAwICkgPyB0aGlzLm9wdGlvbnMuc3RlcCA6IDEsDQoJCQl2YWxNb2RTdGVwID0gKCB2YWwgLSB0aGlzLl92YWx1ZU1pbigpICkgJSBzdGVwLA0KCQkJYWxpZ25WYWx1ZSA9IHZhbCAtIHZhbE1vZFN0ZXA7DQoNCgkJaWYgKCBNYXRoLmFicyggdmFsTW9kU3RlcCApICogMiA+PSBzdGVwICkgew0KCQkJYWxpZ25WYWx1ZSArPSAoIHZhbE1vZFN0ZXAgPiAwICkgPyBzdGVwIDogKCAtc3RlcCApOw0KCQl9DQoNCgkJLy8gU2luY2UgSmF2YVNjcmlwdCBoYXMgcHJvYmxlbXMgd2l0aCBsYXJnZSBmbG9hdHMsIHJvdW5kDQoJCS8vIHRoZSBmaW5hbCB2YWx1ZSB0byA1IGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCAoc2VlICM0MTI0KQ0KCQlyZXR1cm4gcGFyc2VGbG9hdCggYWxpZ25WYWx1ZS50b0ZpeGVkKCA1ICkgKTsNCgl9LA0KDQoJX2NhbGN1bGF0ZU5ld01heDogZnVuY3Rpb24oKSB7DQoJCXZhciBtYXggPSB0aGlzLm9wdGlvbnMubWF4LA0KCQkJbWluID0gdGhpcy5fdmFsdWVNaW4oKSwNCgkJCXN0ZXAgPSB0aGlzLm9wdGlvbnMuc3RlcCwNCgkJCWFib3ZlTWluID0gTWF0aC5yb3VuZCggKCBtYXggLSBtaW4gKSAvIHN0ZXAgKSAqIHN0ZXA7DQoJCW1heCA9IGFib3ZlTWluICsgbWluOw0KCQlpZiAoIG1heCA+IHRoaXMub3B0aW9ucy5tYXggKSB7DQoNCgkJCS8vSWYgbWF4IGlzIG5vdCBkaXZpc2libGUgYnkgc3RlcCwgcm91bmRpbmcgb2ZmIG1heSBpbmNyZWFzZSBpdHMgdmFsdWUNCgkJCW1heCAtPSBzdGVwOw0KCQl9DQoJCXRoaXMubWF4ID0gcGFyc2VGbG9hdCggbWF4LnRvRml4ZWQoIHRoaXMuX3ByZWNpc2lvbigpICkgKTsNCgl9LA0KDQoJX3ByZWNpc2lvbjogZnVuY3Rpb24oKSB7DQoJCXZhciBwcmVjaXNpb24gPSB0aGlzLl9wcmVjaXNpb25PZiggdGhpcy5vcHRpb25zLnN0ZXAgKTsNCgkJaWYgKCB0aGlzLm9wdGlvbnMubWluICE9PSBudWxsICkgew0KCQkJcHJlY2lzaW9uID0gTWF0aC5tYXgoIHByZWNpc2lvbiwgdGhpcy5fcHJlY2lzaW9uT2YoIHRoaXMub3B0aW9ucy5taW4gKSApOw0KCQl9DQoJCXJldHVybiBwcmVjaXNpb247DQoJfSwNCg0KCV9wcmVjaXNpb25PZjogZnVuY3Rpb24oIG51bSApIHsNCgkJdmFyIHN0ciA9IG51bS50b1N0cmluZygpLA0KCQkJZGVjaW1hbCA9IHN0ci5pbmRleE9mKCAiLiIgKTsNCgkJcmV0dXJuIGRlY2ltYWwgPT09IC0xID8gMCA6IHN0ci5sZW5ndGggLSBkZWNpbWFsIC0gMTsNCgl9LA0KDQoJX3ZhbHVlTWluOiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMub3B0aW9ucy5taW47DQoJfSwNCg0KCV92YWx1ZU1heDogZnVuY3Rpb24oKSB7DQoJCXJldHVybiB0aGlzLm1heDsNCgl9LA0KDQoJX3JlZnJlc2hSYW5nZTogZnVuY3Rpb24oIG9yaWVudGF0aW9uICkgew0KCQlpZiAoIG9yaWVudGF0aW9uID09PSAidmVydGljYWwiICkgew0KCQkJdGhpcy5yYW5nZS5jc3MoIHsgIndpZHRoIjogIiIsICJsZWZ0IjogIiIgfSApOw0KCQl9DQoJCWlmICggb3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIiApIHsNCgkJCXRoaXMucmFuZ2UuY3NzKCB7ICJoZWlnaHQiOiAiIiwgImJvdHRvbSI6ICIiIH0gKTsNCgkJfQ0KCX0sDQoNCglfcmVmcmVzaFZhbHVlOiBmdW5jdGlvbigpIHsNCgkJdmFyIGxhc3RWYWxQZXJjZW50LCB2YWxQZXJjZW50LCB2YWx1ZSwgdmFsdWVNaW4sIHZhbHVlTWF4LA0KCQkJb1JhbmdlID0gdGhpcy5vcHRpb25zLnJhbmdlLA0KCQkJbyA9IHRoaXMub3B0aW9ucywNCgkJCXRoYXQgPSB0aGlzLA0KCQkJYW5pbWF0ZSA9ICggIXRoaXMuX2FuaW1hdGVPZmYgKSA/IG8uYW5pbWF0ZSA6IGZhbHNlLA0KCQkJX3NldCA9IHt9Ow0KDQoJCWlmICggdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSApIHsNCgkJCXRoaXMuaGFuZGxlcy5lYWNoKCBmdW5jdGlvbiggaSApIHsNCgkJCQl2YWxQZXJjZW50ID0gKCB0aGF0LnZhbHVlcyggaSApIC0gdGhhdC5fdmFsdWVNaW4oKSApIC8gKCB0aGF0Ll92YWx1ZU1heCgpIC0NCgkJCQkJdGhhdC5fdmFsdWVNaW4oKSApICogMTAwOw0KCQkJCV9zZXRbIHRoYXQub3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIiA/ICJsZWZ0IiA6ICJib3R0b20iIF0gPSB2YWxQZXJjZW50ICsgIiUiOw0KCQkJCSQoIHRoaXMgKS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCBfc2V0LCBvLmFuaW1hdGUgKTsNCgkJCQlpZiAoIHRoYXQub3B0aW9ucy5yYW5nZSA9PT0gdHJ1ZSApIHsNCgkJCQkJaWYgKCB0aGF0Lm9yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCIgKSB7DQoJCQkJCQlpZiAoIGkgPT09IDAgKSB7DQoJCQkJCQkJdGhhdC5yYW5nZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7DQoJCQkJCQkJCWxlZnQ6IHZhbFBlcmNlbnQgKyAiJSINCgkJCQkJCQl9LCBvLmFuaW1hdGUgKTsNCgkJCQkJCX0NCgkJCQkJCWlmICggaSA9PT0gMSApIHsNCgkJCQkJCQl0aGF0LnJhbmdlWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggew0KCQkJCQkJCQl3aWR0aDogKCB2YWxQZXJjZW50IC0gbGFzdFZhbFBlcmNlbnQgKSArICIlIg0KCQkJCQkJCX0sIHsNCgkJCQkJCQkJcXVldWU6IGZhbHNlLA0KCQkJCQkJCQlkdXJhdGlvbjogby5hbmltYXRlDQoJCQkJCQkJfSApOw0KCQkJCQkJfQ0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJaWYgKCBpID09PSAwICkgew0KCQkJCQkJCXRoYXQucmFuZ2Uuc3RvcCggMSwgMSApWyBhbmltYXRlID8gImFuaW1hdGUiIDogImNzcyIgXSggew0KCQkJCQkJCQlib3R0b206ICggdmFsUGVyY2VudCApICsgIiUiDQoJCQkJCQkJfSwgby5hbmltYXRlICk7DQoJCQkJCQl9DQoJCQkJCQlpZiAoIGkgPT09IDEgKSB7DQoJCQkJCQkJdGhhdC5yYW5nZVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsNCgkJCQkJCQkJaGVpZ2h0OiAoIHZhbFBlcmNlbnQgLSBsYXN0VmFsUGVyY2VudCApICsgIiUiDQoJCQkJCQkJfSwgew0KCQkJCQkJCQlxdWV1ZTogZmFsc2UsDQoJCQkJCQkJCWR1cmF0aW9uOiBvLmFuaW1hdGUNCgkJCQkJCQl9ICk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQkJbGFzdFZhbFBlcmNlbnQgPSB2YWxQZXJjZW50Ow0KCQkJfSApOw0KCQl9IGVsc2Ugew0KCQkJdmFsdWUgPSB0aGlzLnZhbHVlKCk7DQoJCQl2YWx1ZU1pbiA9IHRoaXMuX3ZhbHVlTWluKCk7DQoJCQl2YWx1ZU1heCA9IHRoaXMuX3ZhbHVlTWF4KCk7DQoJCQl2YWxQZXJjZW50ID0gKCB2YWx1ZU1heCAhPT0gdmFsdWVNaW4gKSA/DQoJCQkJCSggdmFsdWUgLSB2YWx1ZU1pbiApIC8gKCB2YWx1ZU1heCAtIHZhbHVlTWluICkgKiAxMDAgOg0KCQkJCQkwOw0KCQkJX3NldFsgdGhpcy5vcmllbnRhdGlvbiA9PT0gImhvcml6b250YWwiID8gImxlZnQiIDogImJvdHRvbSIgXSA9IHZhbFBlcmNlbnQgKyAiJSI7DQoJCQl0aGlzLmhhbmRsZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCBfc2V0LCBvLmFuaW1hdGUgKTsNCg0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtaW4iICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJob3Jpem9udGFsIiApIHsNCgkJCQl0aGlzLnJhbmdlLnN0b3AoIDEsIDEgKVsgYW5pbWF0ZSA/ICJhbmltYXRlIiA6ICJjc3MiIF0oIHsNCgkJCQkJd2lkdGg6IHZhbFBlcmNlbnQgKyAiJSINCgkJCQl9LCBvLmFuaW1hdGUgKTsNCgkJCX0NCgkJCWlmICggb1JhbmdlID09PSAibWF4IiAmJiB0aGlzLm9yaWVudGF0aW9uID09PSAiaG9yaXpvbnRhbCIgKSB7DQoJCQkJdGhpcy5yYW5nZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7DQoJCQkJCXdpZHRoOiAoIDEwMCAtIHZhbFBlcmNlbnQgKSArICIlIg0KCQkJCX0sIG8uYW5pbWF0ZSApOw0KCQkJfQ0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtaW4iICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQkJdGhpcy5yYW5nZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7DQoJCQkJCWhlaWdodDogdmFsUGVyY2VudCArICIlIg0KCQkJCX0sIG8uYW5pbWF0ZSApOw0KCQkJfQ0KCQkJaWYgKCBvUmFuZ2UgPT09ICJtYXgiICYmIHRoaXMub3JpZW50YXRpb24gPT09ICJ2ZXJ0aWNhbCIgKSB7DQoJCQkJdGhpcy5yYW5nZS5zdG9wKCAxLCAxIClbIGFuaW1hdGUgPyAiYW5pbWF0ZSIgOiAiY3NzIiBdKCB7DQoJCQkJCWhlaWdodDogKCAxMDAgLSB2YWxQZXJjZW50ICkgKyAiJSINCgkJCQl9LCBvLmFuaW1hdGUgKTsNCgkJCX0NCgkJfQ0KCX0sDQoNCglfaGFuZGxlRXZlbnRzOiB7DQoJCWtleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXZhciBhbGxvd2VkLCBjdXJWYWwsIG5ld1ZhbCwgc3RlcCwNCgkJCQlpbmRleCA9ICQoIGV2ZW50LnRhcmdldCApLmRhdGEoICJ1aS1zbGlkZXItaGFuZGxlLWluZGV4IiApOw0KDQoJCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkhPTUU6DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuRU5EOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfVVA6DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlVQOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlJJR0hUOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkRPV046DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuTEVGVDoNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQkJaWYgKCAhdGhpcy5fa2V5U2xpZGluZyApIHsNCgkJCQkJCXRoaXMuX2tleVNsaWRpbmcgPSB0cnVlOw0KCQkJCQkJdGhpcy5fYWRkQ2xhc3MoICQoIGV2ZW50LnRhcmdldCApLCBudWxsLCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJCQkJYWxsb3dlZCA9IHRoaXMuX3N0YXJ0KCBldmVudCwgaW5kZXggKTsNCgkJCQkJCWlmICggYWxsb3dlZCA9PT0gZmFsc2UgKSB7DQoJCQkJCQkJcmV0dXJuOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCWJyZWFrOw0KCQkJfQ0KDQoJCQlzdGVwID0gdGhpcy5vcHRpb25zLnN0ZXA7DQoJCQlpZiAoIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkgKSB7DQoJCQkJY3VyVmFsID0gbmV3VmFsID0gdGhpcy52YWx1ZXMoIGluZGV4ICk7DQoJCQl9IGVsc2Ugew0KCQkJCWN1clZhbCA9IG5ld1ZhbCA9IHRoaXMudmFsdWUoKTsNCgkJCX0NCg0KCQkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJCQljYXNlICQudWkua2V5Q29kZS5IT01FOg0KCQkJCQluZXdWYWwgPSB0aGlzLl92YWx1ZU1pbigpOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3ZhbHVlTWF4KCk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlBBR0VfVVA6DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKA0KCQkJCQkJY3VyVmFsICsgKCAoIHRoaXMuX3ZhbHVlTWF4KCkgLSB0aGlzLl92YWx1ZU1pbigpICkgLyB0aGlzLm51bVBhZ2VzICkNCgkJCQkJKTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAkLnVpLmtleUNvZGUuUEFHRV9ET1dOOg0KCQkJCQluZXdWYWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSgNCgkJCQkJCWN1clZhbCAtICggKCB0aGlzLl92YWx1ZU1heCgpIC0gdGhpcy5fdmFsdWVNaW4oKSApIC8gdGhpcy5udW1QYWdlcyApICk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlVQOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLlJJR0hUOg0KCQkJCQlpZiAoIGN1clZhbCA9PT0gdGhpcy5fdmFsdWVNYXgoKSApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KCQkJCQluZXdWYWwgPSB0aGlzLl90cmltQWxpZ25WYWx1ZSggY3VyVmFsICsgc3RlcCApOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICQudWkua2V5Q29kZS5ET1dOOg0KCQkJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQkJCWlmICggY3VyVmFsID09PSB0aGlzLl92YWx1ZU1pbigpICkgew0KCQkJCQkJcmV0dXJuOw0KCQkJCQl9DQoJCQkJCW5ld1ZhbCA9IHRoaXMuX3RyaW1BbGlnblZhbHVlKCBjdXJWYWwgLSBzdGVwICk7DQoJCQkJCWJyZWFrOw0KCQkJfQ0KDQoJCQl0aGlzLl9zbGlkZSggZXZlbnQsIGluZGV4LCBuZXdWYWwgKTsNCgkJfSwNCgkJa2V5dXA6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXZhciBpbmRleCA9ICQoIGV2ZW50LnRhcmdldCApLmRhdGEoICJ1aS1zbGlkZXItaGFuZGxlLWluZGV4IiApOw0KDQoJCQlpZiAoIHRoaXMuX2tleVNsaWRpbmcgKSB7DQoJCQkJdGhpcy5fa2V5U2xpZGluZyA9IGZhbHNlOw0KCQkJCXRoaXMuX3N0b3AoIGV2ZW50LCBpbmRleCApOw0KCQkJCXRoaXMuX2NoYW5nZSggZXZlbnQsIGluZGV4ICk7DQoJCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoICQoIGV2ZW50LnRhcmdldCApLCBudWxsLCAidWktc3RhdGUtYWN0aXZlIiApOw0KCQkJfQ0KCQl9DQoJfQ0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFNvcnRhYmxlIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBTb3J0YWJsZQ0KLy8+Pmdyb3VwOiBJbnRlcmFjdGlvbnMNCi8vPj5kZXNjcmlwdGlvbjogRW5hYmxlcyBpdGVtcyBpbiBhIGxpc3QgdG8gYmUgc29ydGVkIHVzaW5nIHRoZSBtb3VzZS4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS9zb3J0YWJsZS8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9zb3J0YWJsZS8NCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS9zb3J0YWJsZS5jc3MNCg0KDQoNCnZhciB3aWRnZXRzU29ydGFibGUgPSAkLndpZGdldCggInVpLnNvcnRhYmxlIiwgJC51aS5tb3VzZSwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCXdpZGdldEV2ZW50UHJlZml4OiAic29ydCIsDQoJcmVhZHk6IGZhbHNlLA0KCW9wdGlvbnM6IHsNCgkJYXBwZW5kVG86ICJwYXJlbnQiLA0KCQlheGlzOiBmYWxzZSwNCgkJY29ubmVjdFdpdGg6IGZhbHNlLA0KCQljb250YWlubWVudDogZmFsc2UsDQoJCWN1cnNvcjogImF1dG8iLA0KCQljdXJzb3JBdDogZmFsc2UsDQoJCWRyb3BPbkVtcHR5OiB0cnVlLA0KCQlmb3JjZVBsYWNlaG9sZGVyU2l6ZTogZmFsc2UsDQoJCWZvcmNlSGVscGVyU2l6ZTogZmFsc2UsDQoJCWdyaWQ6IGZhbHNlLA0KCQloYW5kbGU6IGZhbHNlLA0KCQloZWxwZXI6ICJvcmlnaW5hbCIsDQoJCWl0ZW1zOiAiPiAqIiwNCgkJb3BhY2l0eTogZmFsc2UsDQoJCXBsYWNlaG9sZGVyOiBmYWxzZSwNCgkJcmV2ZXJ0OiBmYWxzZSwNCgkJc2Nyb2xsOiB0cnVlLA0KCQlzY3JvbGxTZW5zaXRpdml0eTogMjAsDQoJCXNjcm9sbFNwZWVkOiAyMCwNCgkJc2NvcGU6ICJkZWZhdWx0IiwNCgkJdG9sZXJhbmNlOiAiaW50ZXJzZWN0IiwNCgkJekluZGV4OiAxMDAwLA0KDQoJCS8vIENhbGxiYWNrcw0KCQlhY3RpdmF0ZTogbnVsbCwNCgkJYmVmb3JlU3RvcDogbnVsbCwNCgkJY2hhbmdlOiBudWxsLA0KCQlkZWFjdGl2YXRlOiBudWxsLA0KCQlvdXQ6IG51bGwsDQoJCW92ZXI6IG51bGwsDQoJCXJlY2VpdmU6IG51bGwsDQoJCXJlbW92ZTogbnVsbCwNCgkJc29ydDogbnVsbCwNCgkJc3RhcnQ6IG51bGwsDQoJCXN0b3A6IG51bGwsDQoJCXVwZGF0ZTogbnVsbA0KCX0sDQoNCglfaXNPdmVyQXhpczogZnVuY3Rpb24oIHgsIHJlZmVyZW5jZSwgc2l6ZSApIHsNCgkJcmV0dXJuICggeCA+PSByZWZlcmVuY2UgKSAmJiAoIHggPCAoIHJlZmVyZW5jZSArIHNpemUgKSApOw0KCX0sDQoNCglfaXNGbG9hdGluZzogZnVuY3Rpb24oIGl0ZW0gKSB7DQoJCXJldHVybiAoIC9sZWZ0fHJpZ2h0LyApLnRlc3QoIGl0ZW0uY3NzKCAiZmxvYXQiICkgKSB8fA0KCQkJKCAvaW5saW5lfHRhYmxlLWNlbGwvICkudGVzdCggaXRlbS5jc3MoICJkaXNwbGF5IiApICk7DQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmNvbnRhaW5lckNhY2hlID0ge307DQoJCXRoaXMuX2FkZENsYXNzKCAidWktc29ydGFibGUiICk7DQoNCgkJLy9HZXQgdGhlIGl0ZW1zDQoJCXRoaXMucmVmcmVzaCgpOw0KDQoJCS8vTGV0J3MgZGV0ZXJtaW5lIHRoZSBwYXJlbnQncyBvZmZzZXQNCgkJdGhpcy5vZmZzZXQgPSB0aGlzLmVsZW1lbnQub2Zmc2V0KCk7DQoNCgkJLy9Jbml0aWFsaXplIG1vdXNlIGV2ZW50cyBmb3IgaW50ZXJhY3Rpb24NCgkJdGhpcy5fbW91c2VJbml0KCk7DQoNCgkJdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCk7DQoNCgkJLy9XZSdyZSByZWFkeSB0byBnbw0KCQl0aGlzLnJlYWR5ID0gdHJ1ZTsNCg0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQlpZiAoIGtleSA9PT0gImhhbmRsZSIgKSB7DQoJCQl0aGlzLl9zZXRIYW5kbGVDbGFzc05hbWUoKTsNCgkJfQ0KCX0sDQoNCglfc2V0SGFuZGxlQ2xhc3NOYW1lOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KCQl0aGlzLl9yZW1vdmVDbGFzcyggdGhpcy5lbGVtZW50LmZpbmQoICIudWktc29ydGFibGUtaGFuZGxlIiApLCAidWktc29ydGFibGUtaGFuZGxlIiApOw0KCQkkLmVhY2goIHRoaXMuaXRlbXMsIGZ1bmN0aW9uKCkgew0KCQkJdGhhdC5fYWRkQ2xhc3MoDQoJCQkJdGhpcy5pbnN0YW5jZS5vcHRpb25zLmhhbmRsZSA/DQoJCQkJCXRoaXMuaXRlbS5maW5kKCB0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlICkgOg0KCQkJCQl0aGlzLml0ZW0sDQoJCQkJInVpLXNvcnRhYmxlLWhhbmRsZSINCgkJCSk7DQoJCX0gKTsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9tb3VzZURlc3Ryb3koKTsNCg0KCQlmb3IgKCB2YXIgaSA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQl0aGlzLml0ZW1zWyBpIF0uaXRlbS5yZW1vdmVEYXRhKCB0aGlzLndpZGdldE5hbWUgKyAiLWl0ZW0iICk7DQoJCX0NCg0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJX21vdXNlQ2FwdHVyZTogZnVuY3Rpb24oIGV2ZW50LCBvdmVycmlkZUhhbmRsZSApIHsNCgkJdmFyIGN1cnJlbnRJdGVtID0gbnVsbCwNCgkJCXZhbGlkSGFuZGxlID0gZmFsc2UsDQoJCQl0aGF0ID0gdGhpczsNCg0KCQlpZiAoIHRoaXMucmV2ZXJ0aW5nICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuZGlzYWJsZWQgfHwgdGhpcy5vcHRpb25zLnR5cGUgPT09ICJzdGF0aWMiICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJLy9XZSBoYXZlIHRvIHJlZnJlc2ggdGhlIGl0ZW1zIGRhdGEgb25jZSBmaXJzdA0KCQl0aGlzLl9yZWZyZXNoSXRlbXMoIGV2ZW50ICk7DQoNCgkJLy9GaW5kIG91dCBpZiB0aGUgY2xpY2tlZCBub2RlIChvciBvbmUgb2YgaXRzIHBhcmVudHMpIGlzIGEgYWN0dWFsIGl0ZW0gaW4gdGhpcy5pdGVtcw0KCQkkKCBldmVudC50YXJnZXQgKS5wYXJlbnRzKCkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQlpZiAoICQuZGF0YSggdGhpcywgdGhhdC53aWRnZXROYW1lICsgIi1pdGVtIiApID09PSB0aGF0ICkgew0KCQkJCWN1cnJlbnRJdGVtID0gJCggdGhpcyApOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJfSApOw0KCQlpZiAoICQuZGF0YSggZXZlbnQudGFyZ2V0LCB0aGF0LndpZGdldE5hbWUgKyAiLWl0ZW0iICkgPT09IHRoYXQgKSB7DQoJCQljdXJyZW50SXRlbSA9ICQoIGV2ZW50LnRhcmdldCApOw0KCQl9DQoNCgkJaWYgKCAhY3VycmVudEl0ZW0gKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJaWYgKCB0aGlzLm9wdGlvbnMuaGFuZGxlICYmICFvdmVycmlkZUhhbmRsZSApIHsNCgkJCSQoIHRoaXMub3B0aW9ucy5oYW5kbGUsIGN1cnJlbnRJdGVtICkuZmluZCggIioiICkuYWRkQmFjaygpLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCWlmICggdGhpcyA9PT0gZXZlbnQudGFyZ2V0ICkgew0KCQkJCQl2YWxpZEhhbmRsZSA9IHRydWU7DQoJCQkJfQ0KCQkJfSApOw0KCQkJaWYgKCAhdmFsaWRIYW5kbGUgKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5jdXJyZW50SXRlbSA9IGN1cnJlbnRJdGVtOw0KCQl0aGlzLl9yZW1vdmVDdXJyZW50c0Zyb21JdGVtcygpOw0KCQlyZXR1cm4gdHJ1ZTsNCg0KCX0sDQoNCglfbW91c2VTdGFydDogZnVuY3Rpb24oIGV2ZW50LCBvdmVycmlkZUhhbmRsZSwgbm9BY3RpdmF0aW9uICkgew0KDQoJCXZhciBpLCBib2R5LA0KCQkJbyA9IHRoaXMub3B0aW9uczsNCg0KCQl0aGlzLmN1cnJlbnRDb250YWluZXIgPSB0aGlzOw0KDQoJCS8vV2Ugb25seSBuZWVkIHRvIGNhbGwgcmVmcmVzaFBvc2l0aW9ucywgYmVjYXVzZSB0aGUgcmVmcmVzaEl0ZW1zIGNhbGwgaGFzIGJlZW4gbW92ZWQgdG8NCgkJLy8gbW91c2VDYXB0dXJlDQoJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KDQoJCS8vQ3JlYXRlIGFuZCBhcHBlbmQgdGhlIHZpc2libGUgaGVscGVyDQoJCXRoaXMuaGVscGVyID0gdGhpcy5fY3JlYXRlSGVscGVyKCBldmVudCApOw0KDQoJCS8vQ2FjaGUgdGhlIGhlbHBlciBzaXplDQoJCXRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKTsNCg0KCQkvKg0KCQkgKiAtIFBvc2l0aW9uIGdlbmVyYXRpb24gLQ0KCQkgKiBUaGlzIGJsb2NrIGdlbmVyYXRlcyBldmVyeXRoaW5nIHBvc2l0aW9uIHJlbGF0ZWQgLSBpdCdzIHRoZSBjb3JlIG9mIGRyYWdnYWJsZXMuDQoJCSAqLw0KDQoJCS8vQ2FjaGUgdGhlIG1hcmdpbnMgb2YgdGhlIG9yaWdpbmFsIGVsZW1lbnQNCgkJdGhpcy5fY2FjaGVNYXJnaW5zKCk7DQoNCgkJLy9HZXQgdGhlIG5leHQgc2Nyb2xsaW5nIHBhcmVudA0KCQl0aGlzLnNjcm9sbFBhcmVudCA9IHRoaXMuaGVscGVyLnNjcm9sbFBhcmVudCgpOw0KDQoJCS8vVGhlIGVsZW1lbnQncyBhYnNvbHV0ZSBwb3NpdGlvbiBvbiB0aGUgcGFnZSBtaW51cyBtYXJnaW5zDQoJCXRoaXMub2Zmc2V0ID0gdGhpcy5jdXJyZW50SXRlbS5vZmZzZXQoKTsNCgkJdGhpcy5vZmZzZXQgPSB7DQoJCQl0b3A6IHRoaXMub2Zmc2V0LnRvcCAtIHRoaXMubWFyZ2lucy50b3AsDQoJCQlsZWZ0OiB0aGlzLm9mZnNldC5sZWZ0IC0gdGhpcy5tYXJnaW5zLmxlZnQNCgkJfTsNCg0KCQkkLmV4dGVuZCggdGhpcy5vZmZzZXQsIHsNCgkJCWNsaWNrOiB7IC8vV2hlcmUgdGhlIGNsaWNrIGhhcHBlbmVkLCByZWxhdGl2ZSB0byB0aGUgZWxlbWVudA0KCQkJCWxlZnQ6IGV2ZW50LnBhZ2VYIC0gdGhpcy5vZmZzZXQubGVmdCwNCgkJCQl0b3A6IGV2ZW50LnBhZ2VZIC0gdGhpcy5vZmZzZXQudG9wDQoJCQl9LA0KCQkJcGFyZW50OiB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKSwNCg0KCQkJLy8gVGhpcyBpcyBhIHJlbGF0aXZlIHRvIGFic29sdXRlIHBvc2l0aW9uIG1pbnVzIHRoZSBhY3R1YWwgcG9zaXRpb24gY2FsY3VsYXRpb24gLQ0KCQkJLy8gb25seSB1c2VkIGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIGhlbHBlcg0KCQkJcmVsYXRpdmU6IHRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCkNCgkJfSApOw0KDQoJCS8vIE9ubHkgYWZ0ZXIgd2UgZ290IHRoZSBvZmZzZXQsIHdlIGNhbiBjaGFuZ2UgdGhlIGhlbHBlcidzIHBvc2l0aW9uIHRvIGFic29sdXRlDQoJCS8vIFRPRE86IFN0aWxsIG5lZWQgdG8gZmlndXJlIG91dCBhIHdheSB0byBtYWtlIHJlbGF0aXZlIHNvcnRpbmcgcG9zc2libGUNCgkJdGhpcy5oZWxwZXIuY3NzKCAicG9zaXRpb24iLCAiYWJzb2x1dGUiICk7DQoJCXRoaXMuY3NzUG9zaXRpb24gPSB0aGlzLmhlbHBlci5jc3MoICJwb3NpdGlvbiIgKTsNCg0KCQkvL0dlbmVyYXRlIHRoZSBvcmlnaW5hbCBwb3NpdGlvbg0KCQl0aGlzLm9yaWdpbmFsUG9zaXRpb24gPSB0aGlzLl9nZW5lcmF0ZVBvc2l0aW9uKCBldmVudCApOw0KCQl0aGlzLm9yaWdpbmFsUGFnZVggPSBldmVudC5wYWdlWDsNCgkJdGhpcy5vcmlnaW5hbFBhZ2VZID0gZXZlbnQucGFnZVk7DQoNCgkJLy9BZGp1c3QgdGhlIG1vdXNlIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgaGVscGVyIGlmICJjdXJzb3JBdCIgaXMgc3VwcGxpZWQNCgkJKCBvLmN1cnNvckF0ICYmIHRoaXMuX2FkanVzdE9mZnNldEZyb21IZWxwZXIoIG8uY3Vyc29yQXQgKSApOw0KDQoJCS8vQ2FjaGUgdGhlIGZvcm1lciBET00gcG9zaXRpb24NCgkJdGhpcy5kb21Qb3NpdGlvbiA9IHsNCgkJCXByZXY6IHRoaXMuY3VycmVudEl0ZW0ucHJldigpWyAwIF0sDQoJCQlwYXJlbnQ6IHRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbIDAgXQ0KCQl9Ow0KDQoJCS8vIElmIHRoZSBoZWxwZXIgaXMgbm90IHRoZSBvcmlnaW5hbCwgaGlkZSB0aGUgb3JpZ2luYWwgc28gaXQncyBub3QgcGxheWluZyBhbnkgcm9sZSBkdXJpbmcNCgkJLy8gdGhlIGRyYWcsIHdvbid0IGNhdXNlIGFueXRoaW5nIGJhZCB0aGlzIHdheQ0KCQlpZiAoIHRoaXMuaGVscGVyWyAwIF0gIT09IHRoaXMuY3VycmVudEl0ZW1bIDAgXSApIHsNCgkJCXRoaXMuY3VycmVudEl0ZW0uaGlkZSgpOw0KCQl9DQoNCgkJLy9DcmVhdGUgdGhlIHBsYWNlaG9sZGVyDQoJCXRoaXMuX2NyZWF0ZVBsYWNlaG9sZGVyKCk7DQoNCgkJLy9TZXQgYSBjb250YWlubWVudCBpZiBnaXZlbiBpbiB0aGUgb3B0aW9ucw0KCQlpZiAoIG8uY29udGFpbm1lbnQgKSB7DQoJCQl0aGlzLl9zZXRDb250YWlubWVudCgpOw0KCQl9DQoNCgkJaWYgKCBvLmN1cnNvciAmJiBvLmN1cnNvciAhPT0gImF1dG8iICkgeyAvLyBjdXJzb3Igb3B0aW9uDQoJCQlib2R5ID0gdGhpcy5kb2N1bWVudC5maW5kKCAiYm9keSIgKTsNCg0KCQkJLy8gU3VwcG9ydDogSUUNCgkJCXRoaXMuc3RvcmVkQ3Vyc29yID0gYm9keS5jc3MoICJjdXJzb3IiICk7DQoJCQlib2R5LmNzcyggImN1cnNvciIsIG8uY3Vyc29yICk7DQoNCgkJCXRoaXMuc3RvcmVkU3R5bGVzaGVldCA9DQoJCQkJJCggIjxzdHlsZT4qeyBjdXJzb3I6ICIgKyBvLmN1cnNvciArICIgIWltcG9ydGFudDsgfTwvc3R5bGU+IiApLmFwcGVuZFRvKCBib2R5ICk7DQoJCX0NCg0KCQlpZiAoIG8ub3BhY2l0eSApIHsgLy8gb3BhY2l0eSBvcHRpb24NCgkJCWlmICggdGhpcy5oZWxwZXIuY3NzKCAib3BhY2l0eSIgKSApIHsNCgkJCQl0aGlzLl9zdG9yZWRPcGFjaXR5ID0gdGhpcy5oZWxwZXIuY3NzKCAib3BhY2l0eSIgKTsNCgkJCX0NCgkJCXRoaXMuaGVscGVyLmNzcyggIm9wYWNpdHkiLCBvLm9wYWNpdHkgKTsNCgkJfQ0KDQoJCWlmICggby56SW5kZXggKSB7IC8vIHpJbmRleCBvcHRpb24NCgkJCWlmICggdGhpcy5oZWxwZXIuY3NzKCAiekluZGV4IiApICkgew0KCQkJCXRoaXMuX3N0b3JlZFpJbmRleCA9IHRoaXMuaGVscGVyLmNzcyggInpJbmRleCIgKTsNCgkJCX0NCgkJCXRoaXMuaGVscGVyLmNzcyggInpJbmRleCIsIG8uekluZGV4ICk7DQoJCX0NCg0KCQkvL1ByZXBhcmUgc2Nyb2xsaW5nDQoJCWlmICggdGhpcy5zY3JvbGxQYXJlbnRbIDAgXSAhPT0gdGhpcy5kb2N1bWVudFsgMCBdICYmDQoJCQkJdGhpcy5zY3JvbGxQYXJlbnRbIDAgXS50YWdOYW1lICE9PSAiSFRNTCIgKSB7DQoJCQl0aGlzLm92ZXJmbG93T2Zmc2V0ID0gdGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCk7DQoJCX0NCg0KCQkvL0NhbGwgY2FsbGJhY2tzDQoJCXRoaXMuX3RyaWdnZXIoICJzdGFydCIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSApOw0KDQoJCS8vUmVjYWNoZSB0aGUgaGVscGVyIHNpemUNCgkJaWYgKCAhdGhpcy5fcHJlc2VydmVIZWxwZXJQcm9wb3J0aW9ucyApIHsNCgkJCXRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKTsNCgkJfQ0KDQoJCS8vUG9zdCAiYWN0aXZhdGUiIGV2ZW50cyB0byBwb3NzaWJsZSBjb250YWluZXJzDQoJCWlmICggIW5vQWN0aXZhdGlvbiApIHsNCgkJCWZvciAoIGkgPSB0aGlzLmNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQkJdGhpcy5jb250YWluZXJzWyBpIF0uX3RyaWdnZXIoICJhY3RpdmF0ZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goIHRoaXMgKSApOw0KCQkJfQ0KCQl9DQoNCgkJLy9QcmVwYXJlIHBvc3NpYmxlIGRyb3BwYWJsZXMNCgkJaWYgKCAkLnVpLmRkbWFuYWdlciApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLmN1cnJlbnQgPSB0aGlzOw0KCQl9DQoNCgkJaWYgKCAkLnVpLmRkbWFuYWdlciAmJiAhby5kcm9wQmVoYXZpb3VyICkgew0KCQkJJC51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHMoIHRoaXMsIGV2ZW50ICk7DQoJCX0NCg0KCQl0aGlzLmRyYWdnaW5nID0gdHJ1ZTsNCg0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5oZWxwZXIsICJ1aS1zb3J0YWJsZS1oZWxwZXIiICk7DQoNCgkJLy8gRXhlY3V0ZSB0aGUgZHJhZyBvbmNlIC0gdGhpcyBjYXVzZXMgdGhlIGhlbHBlciBub3QgdG8gYmUgdmlzaWJsZWJlZm9yZSBnZXR0aW5nIGl0cw0KCQkvLyBjb3JyZWN0IHBvc2l0aW9uDQoJCXRoaXMuX21vdXNlRHJhZyggZXZlbnQgKTsNCgkJcmV0dXJuIHRydWU7DQoNCgl9LA0KDQoJX21vdXNlRHJhZzogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgaSwgaXRlbSwgaXRlbUVsZW1lbnQsIGludGVyc2VjdGlvbiwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlzY3JvbGxlZCA9IGZhbHNlOw0KDQoJCS8vQ29tcHV0ZSB0aGUgaGVscGVycyBwb3NpdGlvbg0KCQl0aGlzLnBvc2l0aW9uID0gdGhpcy5fZ2VuZXJhdGVQb3NpdGlvbiggZXZlbnQgKTsNCgkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCAiYWJzb2x1dGUiICk7DQoNCgkJaWYgKCAhdGhpcy5sYXN0UG9zaXRpb25BYnMgKSB7DQoJCQl0aGlzLmxhc3RQb3NpdGlvbkFicyA9IHRoaXMucG9zaXRpb25BYnM7DQoJCX0NCg0KCQkvL0RvIHNjcm9sbGluZw0KCQlpZiAoIHRoaXMub3B0aW9ucy5zY3JvbGwgKSB7DQoJCQlpZiAoIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0gIT09IHRoaXMuZG9jdW1lbnRbIDAgXSAmJg0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudFsgMCBdLnRhZ05hbWUgIT09ICJIVE1MIiApIHsNCg0KCQkJCWlmICggKCB0aGlzLm92ZXJmbG93T2Zmc2V0LnRvcCArIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0ub2Zmc2V0SGVpZ2h0ICkgLQ0KCQkJCQkJZXZlbnQucGFnZVkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudFsgMCBdLnNjcm9sbFRvcCA9DQoJCQkJCQlzY3JvbGxlZCA9IHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0uc2Nyb2xsVG9wICsgby5zY3JvbGxTcGVlZDsNCgkJCQl9IGVsc2UgaWYgKCBldmVudC5wYWdlWSAtIHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wIDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJdGhpcy5zY3JvbGxQYXJlbnRbIDAgXS5zY3JvbGxUb3AgPQ0KCQkJCQkJc2Nyb2xsZWQgPSB0aGlzLnNjcm9sbFBhcmVudFsgMCBdLnNjcm9sbFRvcCAtIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfQ0KDQoJCQkJaWYgKCAoIHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCArIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0ub2Zmc2V0V2lkdGggKSAtDQoJCQkJCQlldmVudC5wYWdlWCA8IG8uc2Nyb2xsU2Vuc2l0aXZpdHkgKSB7DQoJCQkJCXRoaXMuc2Nyb2xsUGFyZW50WyAwIF0uc2Nyb2xsTGVmdCA9IHNjcm9sbGVkID0NCgkJCQkJCXRoaXMuc2Nyb2xsUGFyZW50WyAwIF0uc2Nyb2xsTGVmdCArIG8uc2Nyb2xsU3BlZWQ7DQoJCQkJfSBlbHNlIGlmICggZXZlbnQucGFnZVggLSB0aGlzLm92ZXJmbG93T2Zmc2V0LmxlZnQgPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudFsgMCBdLnNjcm9sbExlZnQgPSBzY3JvbGxlZCA9DQoJCQkJCQl0aGlzLnNjcm9sbFBhcmVudFsgMCBdLnNjcm9sbExlZnQgLSBvLnNjcm9sbFNwZWVkOw0KCQkJCX0NCg0KCQkJfSBlbHNlIHsNCg0KCQkJCWlmICggZXZlbnQucGFnZVkgLSB0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCgpIDwgby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsZWQgPSB0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCggdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSAtIG8uc2Nyb2xsU3BlZWQgKTsNCgkJCQl9IGVsc2UgaWYgKCB0aGlzLndpbmRvdy5oZWlnaHQoKSAtICggZXZlbnQucGFnZVkgLSB0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCgpICkgPA0KCQkJCQkJby5zY3JvbGxTZW5zaXRpdml0eSApIHsNCgkJCQkJc2Nyb2xsZWQgPSB0aGlzLmRvY3VtZW50LnNjcm9sbFRvcCggdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSArIG8uc2Nyb2xsU3BlZWQgKTsNCgkJCQl9DQoNCgkJCQlpZiAoIGV2ZW50LnBhZ2VYIC0gdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkgPCBvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxlZCA9IHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgNCgkJCQkJCXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpIC0gby5zY3JvbGxTcGVlZA0KCQkJCQkpOw0KCQkJCX0gZWxzZSBpZiAoIHRoaXMud2luZG93LndpZHRoKCkgLSAoIGV2ZW50LnBhZ2VYIC0gdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkgKSA8DQoJCQkJCQlvLnNjcm9sbFNlbnNpdGl2aXR5ICkgew0KCQkJCQlzY3JvbGxlZCA9IHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgNCgkJCQkJCXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpICsgby5zY3JvbGxTcGVlZA0KCQkJCQkpOw0KCQkJCX0NCg0KCQkJfQ0KDQoJCQlpZiAoIHNjcm9sbGVkICE9PSBmYWxzZSAmJiAkLnVpLmRkbWFuYWdlciAmJiAhby5kcm9wQmVoYXZpb3VyICkgew0KCQkJCSQudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKCB0aGlzLCBldmVudCApOw0KCQkJfQ0KCQl9DQoNCgkJLy9SZWdlbmVyYXRlIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiB1c2VkIGZvciBwb3NpdGlvbiBjaGVja3MNCgkJdGhpcy5wb3NpdGlvbkFicyA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvblRvKCAiYWJzb2x1dGUiICk7DQoNCgkJLy9TZXQgdGhlIGhlbHBlciBwb3NpdGlvbg0KCQlpZiAoICF0aGlzLm9wdGlvbnMuYXhpcyB8fCB0aGlzLm9wdGlvbnMuYXhpcyAhPT0gInkiICkgew0KCQkJdGhpcy5oZWxwZXJbIDAgXS5zdHlsZS5sZWZ0ID0gdGhpcy5wb3NpdGlvbi5sZWZ0ICsgInB4IjsNCgkJfQ0KCQlpZiAoICF0aGlzLm9wdGlvbnMuYXhpcyB8fCB0aGlzLm9wdGlvbnMuYXhpcyAhPT0gIngiICkgew0KCQkJdGhpcy5oZWxwZXJbIDAgXS5zdHlsZS50b3AgPSB0aGlzLnBvc2l0aW9uLnRvcCArICJweCI7DQoJCX0NCg0KCQkvL1JlYXJyYW5nZQ0KCQlmb3IgKCBpID0gdGhpcy5pdGVtcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSApIHsNCg0KCQkJLy9DYWNoZSB2YXJpYWJsZXMgYW5kIGludGVyc2VjdGlvbiwgY29udGludWUgaWYgbm8gaW50ZXJzZWN0aW9uDQoJCQlpdGVtID0gdGhpcy5pdGVtc1sgaSBdOw0KCQkJaXRlbUVsZW1lbnQgPSBpdGVtLml0ZW1bIDAgXTsNCgkJCWludGVyc2VjdGlvbiA9IHRoaXMuX2ludGVyc2VjdHNXaXRoUG9pbnRlciggaXRlbSApOw0KCQkJaWYgKCAhaW50ZXJzZWN0aW9uICkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkvLyBPbmx5IHB1dCB0aGUgcGxhY2Vob2xkZXIgaW5zaWRlIHRoZSBjdXJyZW50IENvbnRhaW5lciwgc2tpcCBhbGwNCgkJCS8vIGl0ZW1zIGZyb20gb3RoZXIgY29udGFpbmVycy4gVGhpcyB3b3JrcyBiZWNhdXNlIHdoZW4gbW92aW5nDQoJCQkvLyBhbiBpdGVtIGZyb20gb25lIGNvbnRhaW5lciB0byBhbm90aGVyIHRoZQ0KCQkJLy8gY3VycmVudENvbnRhaW5lciBpcyBzd2l0Y2hlZCBiZWZvcmUgdGhlIHBsYWNlaG9sZGVyIGlzIG1vdmVkLg0KCQkJLy8NCgkJCS8vIFdpdGhvdXQgdGhpcywgbW92aW5nIGl0ZW1zIGluICJzdWItc29ydGFibGVzIiBjYW4gY2F1c2UNCgkJCS8vIHRoZSBwbGFjZWhvbGRlciB0byBqaXR0ZXIgYmV0d2VlbiB0aGUgb3V0ZXIgYW5kIGlubmVyIGNvbnRhaW5lci4NCgkJCWlmICggaXRlbS5pbnN0YW5jZSAhPT0gdGhpcy5jdXJyZW50Q29udGFpbmVyICkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQkvLyBDYW5ub3QgaW50ZXJzZWN0IHdpdGggaXRzZWxmDQoJCQkvLyBubyB1c2VsZXNzIGFjdGlvbnMgdGhhdCBoYXZlIGJlZW4gZG9uZSBiZWZvcmUNCgkJCS8vIG5vIGFjdGlvbiBpZiB0aGUgaXRlbSBtb3ZlZCBpcyB0aGUgcGFyZW50IG9mIHRoZSBpdGVtIGNoZWNrZWQNCgkJCWlmICggaXRlbUVsZW1lbnQgIT09IHRoaXMuY3VycmVudEl0ZW1bIDAgXSAmJg0KCQkJCXRoaXMucGxhY2Vob2xkZXJbIGludGVyc2VjdGlvbiA9PT0gMSA/ICJuZXh0IiA6ICJwcmV2IiBdKClbIDAgXSAhPT0gaXRlbUVsZW1lbnQgJiYNCgkJCQkhJC5jb250YWlucyggdGhpcy5wbGFjZWhvbGRlclsgMCBdLCBpdGVtRWxlbWVudCApICYmDQoJCQkJKCB0aGlzLm9wdGlvbnMudHlwZSA9PT0gInNlbWktZHluYW1pYyIgPw0KCQkJCQkhJC5jb250YWlucyggdGhpcy5lbGVtZW50WyAwIF0sIGl0ZW1FbGVtZW50ICkgOg0KCQkJCQl0cnVlDQoJCQkJKQ0KCQkJKSB7DQoNCgkJCQl0aGlzLmRpcmVjdGlvbiA9IGludGVyc2VjdGlvbiA9PT0gMSA/ICJkb3duIiA6ICJ1cCI7DQoNCgkJCQlpZiAoIHRoaXMub3B0aW9ucy50b2xlcmFuY2UgPT09ICJwb2ludGVyIiB8fCB0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKCBpdGVtICkgKSB7DQoJCQkJCXRoaXMuX3JlYXJyYW5nZSggZXZlbnQsIGl0ZW0gKTsNCgkJCQl9IGVsc2Ugew0KCQkJCQlicmVhazsNCgkJCQl9DQoNCgkJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpICk7DQoJCQkJYnJlYWs7DQoJCQl9DQoJCX0NCg0KCQkvL1Bvc3QgZXZlbnRzIHRvIGNvbnRhaW5lcnMNCgkJdGhpcy5fY29udGFjdENvbnRhaW5lcnMoIGV2ZW50ICk7DQoNCgkJLy9JbnRlcmNvbm5lY3Qgd2l0aCBkcm9wcGFibGVzDQoJCWlmICggJC51aS5kZG1hbmFnZXIgKSB7DQoJCQkkLnVpLmRkbWFuYWdlci5kcmFnKCB0aGlzLCBldmVudCApOw0KCQl9DQoNCgkJLy9DYWxsIGNhbGxiYWNrcw0KCQl0aGlzLl90cmlnZ2VyKCAic29ydCIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSApOw0KDQoJCXRoaXMubGFzdFBvc2l0aW9uQWJzID0gdGhpcy5wb3NpdGlvbkFiczsNCgkJcmV0dXJuIGZhbHNlOw0KDQoJfSwNCg0KCV9tb3VzZVN0b3A6IGZ1bmN0aW9uKCBldmVudCwgbm9Qcm9wYWdhdGlvbiApIHsNCg0KCQlpZiAoICFldmVudCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vSWYgd2UgYXJlIHVzaW5nIGRyb3BwYWJsZXMsIGluZm9ybSB0aGUgbWFuYWdlciBhYm91dCB0aGUgZHJvcA0KCQlpZiAoICQudWkuZGRtYW5hZ2VyICYmICF0aGlzLm9wdGlvbnMuZHJvcEJlaGF2aW91ciApIHsNCgkJCSQudWkuZGRtYW5hZ2VyLmRyb3AoIHRoaXMsIGV2ZW50ICk7DQoJCX0NCg0KCQlpZiAoIHRoaXMub3B0aW9ucy5yZXZlcnQgKSB7DQoJCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQkJY3VyID0gdGhpcy5wbGFjZWhvbGRlci5vZmZzZXQoKSwNCgkJCQlheGlzID0gdGhpcy5vcHRpb25zLmF4aXMsDQoJCQkJYW5pbWF0aW9uID0ge307DQoNCgkJCWlmICggIWF4aXMgfHwgYXhpcyA9PT0gIngiICkgew0KCQkJCWFuaW1hdGlvbi5sZWZ0ID0gY3VyLmxlZnQgLSB0aGlzLm9mZnNldC5wYXJlbnQubGVmdCAtIHRoaXMubWFyZ2lucy5sZWZ0ICsNCgkJCQkJKCB0aGlzLm9mZnNldFBhcmVudFsgMCBdID09PSB0aGlzLmRvY3VtZW50WyAwIF0uYm9keSA/DQoJCQkJCQkwIDoNCgkJCQkJCXRoaXMub2Zmc2V0UGFyZW50WyAwIF0uc2Nyb2xsTGVmdA0KCQkJCQkpOw0KCQkJfQ0KCQkJaWYgKCAhYXhpcyB8fCBheGlzID09PSAieSIgKSB7DQoJCQkJYW5pbWF0aW9uLnRvcCA9IGN1ci50b3AgLSB0aGlzLm9mZnNldC5wYXJlbnQudG9wIC0gdGhpcy5tYXJnaW5zLnRvcCArDQoJCQkJCSggdGhpcy5vZmZzZXRQYXJlbnRbIDAgXSA9PT0gdGhpcy5kb2N1bWVudFsgMCBdLmJvZHkgPw0KCQkJCQkJMCA6DQoJCQkJCQl0aGlzLm9mZnNldFBhcmVudFsgMCBdLnNjcm9sbFRvcA0KCQkJCQkpOw0KCQkJfQ0KCQkJdGhpcy5yZXZlcnRpbmcgPSB0cnVlOw0KCQkJJCggdGhpcy5oZWxwZXIgKS5hbmltYXRlKA0KCQkJCWFuaW1hdGlvbiwNCgkJCQlwYXJzZUludCggdGhpcy5vcHRpb25zLnJldmVydCwgMTAgKSB8fCA1MDAsDQoJCQkJZnVuY3Rpb24oKSB7DQoJCQkJCXRoYXQuX2NsZWFyKCBldmVudCApOw0KCQkJCX0NCgkJCSk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLl9jbGVhciggZXZlbnQsIG5vUHJvcGFnYXRpb24gKTsNCgkJfQ0KDQoJCXJldHVybiBmYWxzZTsNCg0KCX0sDQoNCgljYW5jZWw6IGZ1bmN0aW9uKCkgew0KDQoJCWlmICggdGhpcy5kcmFnZ2luZyApIHsNCg0KCQkJdGhpcy5fbW91c2VVcCggbmV3ICQuRXZlbnQoICJtb3VzZXVwIiwgeyB0YXJnZXQ6IG51bGwgfSApICk7DQoNCgkJCWlmICggdGhpcy5vcHRpb25zLmhlbHBlciA9PT0gIm9yaWdpbmFsIiApIHsNCgkJCQl0aGlzLmN1cnJlbnRJdGVtLmNzcyggdGhpcy5fc3RvcmVkQ1NTICk7DQoJCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuY3VycmVudEl0ZW0sICJ1aS1zb3J0YWJsZS1oZWxwZXIiICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuY3VycmVudEl0ZW0uc2hvdygpOw0KCQkJfQ0KDQoJCQkvL1Bvc3QgZGVhY3RpdmF0aW5nIGV2ZW50cyB0byBjb250YWluZXJzDQoJCQlmb3IgKCB2YXIgaSA9IHRoaXMuY29udGFpbmVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSApIHsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5fdHJpZ2dlciggImRlYWN0aXZhdGUiLCBudWxsLCB0aGlzLl91aUhhc2goIHRoaXMgKSApOw0KCQkJCWlmICggdGhpcy5jb250YWluZXJzWyBpIF0uY29udGFpbmVyQ2FjaGUub3ZlciApIHsNCgkJCQkJdGhpcy5jb250YWluZXJzWyBpIF0uX3RyaWdnZXIoICJvdXQiLCBudWxsLCB0aGlzLl91aUhhc2goIHRoaXMgKSApOw0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5jb250YWluZXJDYWNoZS5vdmVyID0gMDsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0KDQoJCWlmICggdGhpcy5wbGFjZWhvbGRlciApIHsNCg0KCQkJLy8kKHRoaXMucGxhY2Vob2xkZXJbMF0pLnJlbW92ZSgpOyB3b3VsZCBoYXZlIGJlZW4gdGhlIGpRdWVyeSB3YXkgLSB1bmZvcnR1bmF0ZWx5LA0KCQkJLy8gaXQgdW5iaW5kcyBBTEwgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIG5vZGUhDQoJCQlpZiAoIHRoaXMucGxhY2Vob2xkZXJbIDAgXS5wYXJlbnROb2RlICkgew0KCQkJCXRoaXMucGxhY2Vob2xkZXJbIDAgXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0aGlzLnBsYWNlaG9sZGVyWyAwIF0gKTsNCgkJCX0NCgkJCWlmICggdGhpcy5vcHRpb25zLmhlbHBlciAhPT0gIm9yaWdpbmFsIiAmJiB0aGlzLmhlbHBlciAmJg0KCQkJCQl0aGlzLmhlbHBlclsgMCBdLnBhcmVudE5vZGUgKSB7DQoJCQkJdGhpcy5oZWxwZXIucmVtb3ZlKCk7DQoJCQl9DQoNCgkJCSQuZXh0ZW5kKCB0aGlzLCB7DQoJCQkJaGVscGVyOiBudWxsLA0KCQkJCWRyYWdnaW5nOiBmYWxzZSwNCgkJCQlyZXZlcnRpbmc6IGZhbHNlLA0KCQkJCV9ub0ZpbmFsU29ydDogbnVsbA0KCQkJfSApOw0KDQoJCQlpZiAoIHRoaXMuZG9tUG9zaXRpb24ucHJldiApIHsNCgkJCQkkKCB0aGlzLmRvbVBvc2l0aW9uLnByZXYgKS5hZnRlciggdGhpcy5jdXJyZW50SXRlbSApOw0KCQkJfSBlbHNlIHsNCgkJCQkkKCB0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCApLnByZXBlbmQoIHRoaXMuY3VycmVudEl0ZW0gKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KDQoJfSwNCg0KCXNlcmlhbGl6ZTogZnVuY3Rpb24oIG8gKSB7DQoNCgkJdmFyIGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBc2pRdWVyeSggbyAmJiBvLmNvbm5lY3RlZCApLA0KCQkJc3RyID0gW107DQoJCW8gPSBvIHx8IHt9Ow0KDQoJCSQoIGl0ZW1zICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQl2YXIgcmVzID0gKCAkKCBvLml0ZW0gfHwgdGhpcyApLmF0dHIoIG8uYXR0cmlidXRlIHx8ICJpZCIgKSB8fCAiIiApDQoJCQkJLm1hdGNoKCBvLmV4cHJlc3Npb24gfHwgKCAvKC4rKVtcLT1fXSguKykvICkgKTsNCgkJCWlmICggcmVzICkgew0KCQkJCXN0ci5wdXNoKA0KCQkJCQkoIG8ua2V5IHx8IHJlc1sgMSBdICsgIltdIiApICsNCgkJCQkJIj0iICsgKCBvLmtleSAmJiBvLmV4cHJlc3Npb24gPyByZXNbIDEgXSA6IHJlc1sgMiBdICkgKTsNCgkJCX0NCgkJfSApOw0KDQoJCWlmICggIXN0ci5sZW5ndGggJiYgby5rZXkgKSB7DQoJCQlzdHIucHVzaCggby5rZXkgKyAiPSIgKTsNCgkJfQ0KDQoJCXJldHVybiBzdHIuam9pbiggIiYiICk7DQoNCgl9LA0KDQoJdG9BcnJheTogZnVuY3Rpb24oIG8gKSB7DQoNCgkJdmFyIGl0ZW1zID0gdGhpcy5fZ2V0SXRlbXNBc2pRdWVyeSggbyAmJiBvLmNvbm5lY3RlZCApLA0KCQkJcmV0ID0gW107DQoNCgkJbyA9IG8gfHwge307DQoNCgkJaXRlbXMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQlyZXQucHVzaCggJCggby5pdGVtIHx8IHRoaXMgKS5hdHRyKCBvLmF0dHJpYnV0ZSB8fCAiaWQiICkgfHwgIiIgKTsNCgkJfSApOw0KCQlyZXR1cm4gcmV0Ow0KDQoJfSwNCg0KCS8qIEJlIGNhcmVmdWwgd2l0aCB0aGUgZm9sbG93aW5nIGNvcmUgZnVuY3Rpb25zICovDQoJX2ludGVyc2VjdHNXaXRoOiBmdW5jdGlvbiggaXRlbSApIHsNCg0KCQl2YXIgeDEgPSB0aGlzLnBvc2l0aW9uQWJzLmxlZnQsDQoJCQl4MiA9IHgxICsgdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCwNCgkJCXkxID0gdGhpcy5wb3NpdGlvbkFicy50b3AsDQoJCQl5MiA9IHkxICsgdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsDQoJCQlsID0gaXRlbS5sZWZ0LA0KCQkJciA9IGwgKyBpdGVtLndpZHRoLA0KCQkJdCA9IGl0ZW0udG9wLA0KCQkJYiA9IHQgKyBpdGVtLmhlaWdodCwNCgkJCWR5Q2xpY2sgPSB0aGlzLm9mZnNldC5jbGljay50b3AsDQoJCQlkeENsaWNrID0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCwNCgkJCWlzT3ZlckVsZW1lbnRIZWlnaHQgPSAoIHRoaXMub3B0aW9ucy5heGlzID09PSAieCIgKSB8fCAoICggeTEgKyBkeUNsaWNrICkgPiB0ICYmDQoJCQkJKCB5MSArIGR5Q2xpY2sgKSA8IGIgKSwNCgkJCWlzT3ZlckVsZW1lbnRXaWR0aCA9ICggdGhpcy5vcHRpb25zLmF4aXMgPT09ICJ5IiApIHx8ICggKCB4MSArIGR4Q2xpY2sgKSA+IGwgJiYNCgkJCQkoIHgxICsgZHhDbGljayApIDwgciApLA0KCQkJaXNPdmVyRWxlbWVudCA9IGlzT3ZlckVsZW1lbnRIZWlnaHQgJiYgaXNPdmVyRWxlbWVudFdpZHRoOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLnRvbGVyYW5jZSA9PT0gInBvaW50ZXIiIHx8DQoJCQl0aGlzLm9wdGlvbnMuZm9yY2VQb2ludGVyRm9yQ29udGFpbmVycyB8fA0KCQkJKCB0aGlzLm9wdGlvbnMudG9sZXJhbmNlICE9PSAicG9pbnRlciIgJiYNCgkJCQl0aGlzLmhlbHBlclByb3BvcnRpb25zWyB0aGlzLmZsb2F0aW5nID8gIndpZHRoIiA6ICJoZWlnaHQiIF0gPg0KCQkJCWl0ZW1bIHRoaXMuZmxvYXRpbmcgPyAid2lkdGgiIDogImhlaWdodCIgXSApDQoJCSkgew0KCQkJcmV0dXJuIGlzT3ZlckVsZW1lbnQ7DQoJCX0gZWxzZSB7DQoNCgkJCXJldHVybiAoIGwgPCB4MSArICggdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAvIDIgKSAmJiAvLyBSaWdodCBIYWxmDQoJCQkJeDIgLSAoIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLyAyICkgPCByICYmIC8vIExlZnQgSGFsZg0KCQkJCXQgPCB5MSArICggdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLyAyICkgJiYgLy8gQm90dG9tIEhhbGYNCgkJCQl5MiAtICggdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLyAyICkgPCBiICk7IC8vIFRvcCBIYWxmDQoNCgkJfQ0KCX0sDQoNCglfaW50ZXJzZWN0c1dpdGhQb2ludGVyOiBmdW5jdGlvbiggaXRlbSApIHsNCgkJdmFyIHZlcnRpY2FsRGlyZWN0aW9uLCBob3Jpem9udGFsRGlyZWN0aW9uLA0KCQkJaXNPdmVyRWxlbWVudEhlaWdodCA9ICggdGhpcy5vcHRpb25zLmF4aXMgPT09ICJ4IiApIHx8DQoJCQkJdGhpcy5faXNPdmVyQXhpcygNCgkJCQkJdGhpcy5wb3NpdGlvbkFicy50b3AgKyB0aGlzLm9mZnNldC5jbGljay50b3AsIGl0ZW0udG9wLCBpdGVtLmhlaWdodCApLA0KCQkJaXNPdmVyRWxlbWVudFdpZHRoID0gKCB0aGlzLm9wdGlvbnMuYXhpcyA9PT0gInkiICkgfHwNCgkJCQl0aGlzLl9pc092ZXJBeGlzKA0KCQkJCQl0aGlzLnBvc2l0aW9uQWJzLmxlZnQgKyB0aGlzLm9mZnNldC5jbGljay5sZWZ0LCBpdGVtLmxlZnQsIGl0ZW0ud2lkdGggKSwNCgkJCWlzT3ZlckVsZW1lbnQgPSBpc092ZXJFbGVtZW50SGVpZ2h0ICYmIGlzT3ZlckVsZW1lbnRXaWR0aDsNCg0KCQlpZiAoICFpc092ZXJFbGVtZW50ICkgew0KCQkJcmV0dXJuIGZhbHNlOw0KCQl9DQoNCgkJdmVydGljYWxEaXJlY3Rpb24gPSB0aGlzLl9nZXREcmFnVmVydGljYWxEaXJlY3Rpb24oKTsNCgkJaG9yaXpvbnRhbERpcmVjdGlvbiA9IHRoaXMuX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uKCk7DQoNCgkJcmV0dXJuIHRoaXMuZmxvYXRpbmcgPw0KCQkJKCAoIGhvcml6b250YWxEaXJlY3Rpb24gPT09ICJyaWdodCIgfHwgdmVydGljYWxEaXJlY3Rpb24gPT09ICJkb3duIiApID8gMiA6IDEgKQ0KCQkJOiAoIHZlcnRpY2FsRGlyZWN0aW9uICYmICggdmVydGljYWxEaXJlY3Rpb24gPT09ICJkb3duIiA/IDIgOiAxICkgKTsNCg0KCX0sDQoNCglfaW50ZXJzZWN0c1dpdGhTaWRlczogZnVuY3Rpb24oIGl0ZW0gKSB7DQoNCgkJdmFyIGlzT3ZlckJvdHRvbUhhbGYgPSB0aGlzLl9pc092ZXJBeGlzKCB0aGlzLnBvc2l0aW9uQWJzLnRvcCArDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wLCBpdGVtLnRvcCArICggaXRlbS5oZWlnaHQgLyAyICksIGl0ZW0uaGVpZ2h0ICksDQoJCQlpc092ZXJSaWdodEhhbGYgPSB0aGlzLl9pc092ZXJBeGlzKCB0aGlzLnBvc2l0aW9uQWJzLmxlZnQgKw0KCQkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQsIGl0ZW0ubGVmdCArICggaXRlbS53aWR0aCAvIDIgKSwgaXRlbS53aWR0aCApLA0KCQkJdmVydGljYWxEaXJlY3Rpb24gPSB0aGlzLl9nZXREcmFnVmVydGljYWxEaXJlY3Rpb24oKSwNCgkJCWhvcml6b250YWxEaXJlY3Rpb24gPSB0aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpOw0KDQoJCWlmICggdGhpcy5mbG9hdGluZyAmJiBob3Jpem9udGFsRGlyZWN0aW9uICkgew0KCQkJcmV0dXJuICggKCBob3Jpem9udGFsRGlyZWN0aW9uID09PSAicmlnaHQiICYmIGlzT3ZlclJpZ2h0SGFsZiApIHx8DQoJCQkJKCBob3Jpem9udGFsRGlyZWN0aW9uID09PSAibGVmdCIgJiYgIWlzT3ZlclJpZ2h0SGFsZiApICk7DQoJCX0gZWxzZSB7DQoJCQlyZXR1cm4gdmVydGljYWxEaXJlY3Rpb24gJiYgKCAoIHZlcnRpY2FsRGlyZWN0aW9uID09PSAiZG93biIgJiYgaXNPdmVyQm90dG9tSGFsZiApIHx8DQoJCQkJKCB2ZXJ0aWNhbERpcmVjdGlvbiA9PT0gInVwIiAmJiAhaXNPdmVyQm90dG9tSGFsZiApICk7DQoJCX0NCg0KCX0sDQoNCglfZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uOiBmdW5jdGlvbigpIHsNCgkJdmFyIGRlbHRhID0gdGhpcy5wb3NpdGlvbkFicy50b3AgLSB0aGlzLmxhc3RQb3NpdGlvbkFicy50b3A7DQoJCXJldHVybiBkZWx0YSAhPT0gMCAmJiAoIGRlbHRhID4gMCA/ICJkb3duIiA6ICJ1cCIgKTsNCgl9LA0KDQoJX2dldERyYWdIb3Jpem9udGFsRGlyZWN0aW9uOiBmdW5jdGlvbigpIHsNCgkJdmFyIGRlbHRhID0gdGhpcy5wb3NpdGlvbkFicy5sZWZ0IC0gdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDsNCgkJcmV0dXJuIGRlbHRhICE9PSAwICYmICggZGVsdGEgPiAwID8gInJpZ2h0IiA6ICJsZWZ0IiApOw0KCX0sDQoNCglyZWZyZXNoOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXRoaXMuX3JlZnJlc2hJdGVtcyggZXZlbnQgKTsNCgkJdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCk7DQoJCXRoaXMucmVmcmVzaFBvc2l0aW9ucygpOw0KCQlyZXR1cm4gdGhpczsNCgl9LA0KDQoJX2Nvbm5lY3RXaXRoOiBmdW5jdGlvbigpIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7DQoJCXJldHVybiBvcHRpb25zLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yID09PSBTdHJpbmcgPw0KCQkJWyBvcHRpb25zLmNvbm5lY3RXaXRoIF0gOg0KCQkJb3B0aW9ucy5jb25uZWN0V2l0aDsNCgl9LA0KDQoJX2dldEl0ZW1zQXNqUXVlcnk6IGZ1bmN0aW9uKCBjb25uZWN0ZWQgKSB7DQoNCgkJdmFyIGksIGosIGN1ciwgaW5zdCwNCgkJCWl0ZW1zID0gW10sDQoJCQlxdWVyaWVzID0gW10sDQoJCQljb25uZWN0V2l0aCA9IHRoaXMuX2Nvbm5lY3RXaXRoKCk7DQoNCgkJaWYgKCBjb25uZWN0V2l0aCAmJiBjb25uZWN0ZWQgKSB7DQoJCQlmb3IgKCBpID0gY29ubmVjdFdpdGgubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQkJY3VyID0gJCggY29ubmVjdFdpdGhbIGkgXSwgdGhpcy5kb2N1bWVudFsgMCBdICk7DQoJCQkJZm9yICggaiA9IGN1ci5sZW5ndGggLSAxOyBqID49IDA7IGotLSApIHsNCgkJCQkJaW5zdCA9ICQuZGF0YSggY3VyWyBqIF0sIHRoaXMud2lkZ2V0RnVsbE5hbWUgKTsNCgkJCQkJaWYgKCBpbnN0ICYmIGluc3QgIT09IHRoaXMgJiYgIWluc3Qub3B0aW9ucy5kaXNhYmxlZCApIHsNCgkJCQkJCXF1ZXJpZXMucHVzaCggWyAkLmlzRnVuY3Rpb24oIGluc3Qub3B0aW9ucy5pdGVtcyApID8NCgkJCQkJCQlpbnN0Lm9wdGlvbnMuaXRlbXMuY2FsbCggaW5zdC5lbGVtZW50ICkgOg0KCQkJCQkJCSQoIGluc3Qub3B0aW9ucy5pdGVtcywgaW5zdC5lbGVtZW50ICkNCgkJCQkJCQkJLm5vdCggIi51aS1zb3J0YWJsZS1oZWxwZXIiICkNCgkJCQkJCQkJLm5vdCggIi51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIgKSwgaW5zdCBdICk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCg0KCQlxdWVyaWVzLnB1c2goIFsgJC5pc0Z1bmN0aW9uKCB0aGlzLm9wdGlvbnMuaXRlbXMgKSA/DQoJCQl0aGlzLm9wdGlvbnMuaXRlbXMNCgkJCQkuY2FsbCggdGhpcy5lbGVtZW50LCBudWxsLCB7IG9wdGlvbnM6IHRoaXMub3B0aW9ucywgaXRlbTogdGhpcy5jdXJyZW50SXRlbSB9ICkgOg0KCQkJJCggdGhpcy5vcHRpb25zLml0ZW1zLCB0aGlzLmVsZW1lbnQgKQ0KCQkJCS5ub3QoICIudWktc29ydGFibGUtaGVscGVyIiApDQoJCQkJLm5vdCggIi51aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIgKSwgdGhpcyBdICk7DQoNCgkJZnVuY3Rpb24gYWRkSXRlbXMoKSB7DQoJCQlpdGVtcy5wdXNoKCB0aGlzICk7DQoJCX0NCgkJZm9yICggaSA9IHF1ZXJpZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQlxdWVyaWVzWyBpIF1bIDAgXS5lYWNoKCBhZGRJdGVtcyApOw0KCQl9DQoNCgkJcmV0dXJuICQoIGl0ZW1zICk7DQoNCgl9LA0KDQoJX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOiBmdW5jdGlvbigpIHsNCg0KCQl2YXIgbGlzdCA9IHRoaXMuY3VycmVudEl0ZW0uZmluZCggIjpkYXRhKCIgKyB0aGlzLndpZGdldE5hbWUgKyAiLWl0ZW0pIiApOw0KDQoJCXRoaXMuaXRlbXMgPSAkLmdyZXAoIHRoaXMuaXRlbXMsIGZ1bmN0aW9uKCBpdGVtICkgew0KCQkJZm9yICggdmFyIGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKyApIHsNCgkJCQlpZiAoIGxpc3RbIGogXSA9PT0gaXRlbS5pdGVtWyAwIF0gKSB7DQoJCQkJCXJldHVybiBmYWxzZTsNCgkJCQl9DQoJCQl9DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfSApOw0KDQoJfSwNCg0KCV9yZWZyZXNoSXRlbXM6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQl0aGlzLml0ZW1zID0gW107DQoJCXRoaXMuY29udGFpbmVycyA9IFsgdGhpcyBdOw0KDQoJCXZhciBpLCBqLCBjdXIsIGluc3QsIHRhcmdldERhdGEsIF9xdWVyaWVzLCBpdGVtLCBxdWVyaWVzTGVuZ3RoLA0KCQkJaXRlbXMgPSB0aGlzLml0ZW1zLA0KCQkJcXVlcmllcyA9IFsgWyAkLmlzRnVuY3Rpb24oIHRoaXMub3B0aW9ucy5pdGVtcyApID8NCgkJCQl0aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCggdGhpcy5lbGVtZW50WyAwIF0sIGV2ZW50LCB7IGl0ZW06IHRoaXMuY3VycmVudEl0ZW0gfSApIDoNCgkJCQkkKCB0aGlzLm9wdGlvbnMuaXRlbXMsIHRoaXMuZWxlbWVudCApLCB0aGlzIF0gXSwNCgkJCWNvbm5lY3RXaXRoID0gdGhpcy5fY29ubmVjdFdpdGgoKTsNCg0KCQkvL1Nob3VsZG4ndCBiZSBydW4gdGhlIGZpcnN0IHRpbWUgdGhyb3VnaCBkdWUgdG8gbWFzc2l2ZSBzbG93LWRvd24NCgkJaWYgKCBjb25uZWN0V2l0aCAmJiB0aGlzLnJlYWR5ICkgew0KCQkJZm9yICggaSA9IGNvbm5lY3RXaXRoLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KCQkJCWN1ciA9ICQoIGNvbm5lY3RXaXRoWyBpIF0sIHRoaXMuZG9jdW1lbnRbIDAgXSApOw0KCQkJCWZvciAoIGogPSBjdXIubGVuZ3RoIC0gMTsgaiA+PSAwOyBqLS0gKSB7DQoJCQkJCWluc3QgPSAkLmRhdGEoIGN1clsgaiBdLCB0aGlzLndpZGdldEZ1bGxOYW1lICk7DQoJCQkJCWlmICggaW5zdCAmJiBpbnN0ICE9PSB0aGlzICYmICFpbnN0Lm9wdGlvbnMuZGlzYWJsZWQgKSB7DQoJCQkJCQlxdWVyaWVzLnB1c2goIFsgJC5pc0Z1bmN0aW9uKCBpbnN0Lm9wdGlvbnMuaXRlbXMgKSA/DQoJCQkJCQkJaW5zdC5vcHRpb25zLml0ZW1zDQoJCQkJCQkJCS5jYWxsKCBpbnN0LmVsZW1lbnRbIDAgXSwgZXZlbnQsIHsgaXRlbTogdGhpcy5jdXJyZW50SXRlbSB9ICkgOg0KCQkJCQkJCSQoIGluc3Qub3B0aW9ucy5pdGVtcywgaW5zdC5lbGVtZW50ICksIGluc3QgXSApOw0KCQkJCQkJdGhpcy5jb250YWluZXJzLnB1c2goIGluc3QgKTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KDQoJCWZvciAoIGkgPSBxdWVyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KCQkJdGFyZ2V0RGF0YSA9IHF1ZXJpZXNbIGkgXVsgMSBdOw0KCQkJX3F1ZXJpZXMgPSBxdWVyaWVzWyBpIF1bIDAgXTsNCg0KCQkJZm9yICggaiA9IDAsIHF1ZXJpZXNMZW5ndGggPSBfcXVlcmllcy5sZW5ndGg7IGogPCBxdWVyaWVzTGVuZ3RoOyBqKysgKSB7DQoJCQkJaXRlbSA9ICQoIF9xdWVyaWVzWyBqIF0gKTsNCg0KCQkJCS8vIERhdGEgZm9yIHRhcmdldCBjaGVja2luZyAobW91c2UgbWFuYWdlcikNCgkJCQlpdGVtLmRhdGEoIHRoaXMud2lkZ2V0TmFtZSArICItaXRlbSIsIHRhcmdldERhdGEgKTsNCg0KCQkJCWl0ZW1zLnB1c2goIHsNCgkJCQkJaXRlbTogaXRlbSwNCgkJCQkJaW5zdGFuY2U6IHRhcmdldERhdGEsDQoJCQkJCXdpZHRoOiAwLCBoZWlnaHQ6IDAsDQoJCQkJCWxlZnQ6IDAsIHRvcDogMA0KCQkJCX0gKTsNCgkJCX0NCgkJfQ0KDQoJfSwNCg0KCXJlZnJlc2hQb3NpdGlvbnM6IGZ1bmN0aW9uKCBmYXN0ICkgew0KDQoJCS8vIERldGVybWluZSB3aGV0aGVyIGl0ZW1zIGFyZSBiZWluZyBkaXNwbGF5ZWQgaG9yaXpvbnRhbGx5DQoJCXRoaXMuZmxvYXRpbmcgPSB0aGlzLml0ZW1zLmxlbmd0aCA/DQoJCQl0aGlzLm9wdGlvbnMuYXhpcyA9PT0gIngiIHx8IHRoaXMuX2lzRmxvYXRpbmcoIHRoaXMuaXRlbXNbIDAgXS5pdGVtICkgOg0KCQkJZmFsc2U7DQoNCgkJLy9UaGlzIGhhcyB0byBiZSByZWRvbmUgYmVjYXVzZSBkdWUgdG8gdGhlIGl0ZW0gYmVpbmcgbW92ZWQgb3V0L2ludG8gdGhlIG9mZnNldFBhcmVudCwNCgkJLy8gdGhlIG9mZnNldFBhcmVudCdzIHBvc2l0aW9uIHdpbGwgY2hhbmdlDQoJCWlmICggdGhpcy5vZmZzZXRQYXJlbnQgJiYgdGhpcy5oZWxwZXIgKSB7DQoJCQl0aGlzLm9mZnNldC5wYXJlbnQgPSB0aGlzLl9nZXRQYXJlbnRPZmZzZXQoKTsNCgkJfQ0KDQoJCXZhciBpLCBpdGVtLCB0LCBwOw0KDQoJCWZvciAoIGkgPSB0aGlzLml0ZW1zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KCQkJaXRlbSA9IHRoaXMuaXRlbXNbIGkgXTsNCg0KCQkJLy9XZSBpZ25vcmUgY2FsY3VsYXRpbmcgcG9zaXRpb25zIG9mIGFsbCBjb25uZWN0ZWQgY29udGFpbmVycyB3aGVuIHdlJ3JlIG5vdCBvdmVyIHRoZW0NCgkJCWlmICggaXRlbS5pbnN0YW5jZSAhPT0gdGhpcy5jdXJyZW50Q29udGFpbmVyICYmIHRoaXMuY3VycmVudENvbnRhaW5lciAmJg0KCQkJCQlpdGVtLml0ZW1bIDAgXSAhPT0gdGhpcy5jdXJyZW50SXRlbVsgMCBdICkgew0KCQkJCWNvbnRpbnVlOw0KCQkJfQ0KDQoJCQl0ID0gdGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQgPw0KCQkJCSQoIHRoaXMub3B0aW9ucy50b2xlcmFuY2VFbGVtZW50LCBpdGVtLml0ZW0gKSA6DQoJCQkJaXRlbS5pdGVtOw0KDQoJCQlpZiAoICFmYXN0ICkgew0KCQkJCWl0ZW0ud2lkdGggPSB0Lm91dGVyV2lkdGgoKTsNCgkJCQlpdGVtLmhlaWdodCA9IHQub3V0ZXJIZWlnaHQoKTsNCgkJCX0NCg0KCQkJcCA9IHQub2Zmc2V0KCk7DQoJCQlpdGVtLmxlZnQgPSBwLmxlZnQ7DQoJCQlpdGVtLnRvcCA9IHAudG9wOw0KCQl9DQoNCgkJaWYgKCB0aGlzLm9wdGlvbnMuY3VzdG9tICYmIHRoaXMub3B0aW9ucy5jdXN0b20ucmVmcmVzaENvbnRhaW5lcnMgKSB7DQoJCQl0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzLmNhbGwoIHRoaXMgKTsNCgkJfSBlbHNlIHsNCgkJCWZvciAoIGkgPSB0aGlzLmNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQkJcCA9IHRoaXMuY29udGFpbmVyc1sgaSBdLmVsZW1lbnQub2Zmc2V0KCk7DQoJCQkJdGhpcy5jb250YWluZXJzWyBpIF0uY29udGFpbmVyQ2FjaGUubGVmdCA9IHAubGVmdDsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5jb250YWluZXJDYWNoZS50b3AgPSBwLnRvcDsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5jb250YWluZXJDYWNoZS53aWR0aCA9DQoJCQkJCXRoaXMuY29udGFpbmVyc1sgaSBdLmVsZW1lbnQub3V0ZXJXaWR0aCgpOw0KCQkJCXRoaXMuY29udGFpbmVyc1sgaSBdLmNvbnRhaW5lckNhY2hlLmhlaWdodCA9DQoJCQkJCXRoaXMuY29udGFpbmVyc1sgaSBdLmVsZW1lbnQub3V0ZXJIZWlnaHQoKTsNCgkJCX0NCgkJfQ0KDQoJCXJldHVybiB0aGlzOw0KCX0sDQoNCglfY3JlYXRlUGxhY2Vob2xkZXI6IGZ1bmN0aW9uKCB0aGF0ICkgew0KCQl0aGF0ID0gdGhhdCB8fCB0aGlzOw0KCQl2YXIgY2xhc3NOYW1lLA0KCQkJbyA9IHRoYXQub3B0aW9uczsNCg0KCQlpZiAoICFvLnBsYWNlaG9sZGVyIHx8IG8ucGxhY2Vob2xkZXIuY29uc3RydWN0b3IgPT09IFN0cmluZyApIHsNCgkJCWNsYXNzTmFtZSA9IG8ucGxhY2Vob2xkZXI7DQoJCQlvLnBsYWNlaG9sZGVyID0gew0KCQkJCWVsZW1lbnQ6IGZ1bmN0aW9uKCkgew0KDQoJCQkJCXZhciBub2RlTmFtZSA9IHRoYXQuY3VycmVudEl0ZW1bIDAgXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLA0KCQkJCQkJZWxlbWVudCA9ICQoICI8IiArIG5vZGVOYW1lICsgIj4iLCB0aGF0LmRvY3VtZW50WyAwIF0gKTsNCg0KCQkJCQkJdGhhdC5fYWRkQ2xhc3MoIGVsZW1lbnQsICJ1aS1zb3J0YWJsZS1wbGFjZWhvbGRlciIsDQoJCQkJCQkJCWNsYXNzTmFtZSB8fCB0aGF0LmN1cnJlbnRJdGVtWyAwIF0uY2xhc3NOYW1lICkNCgkJCQkJCQkuX3JlbW92ZUNsYXNzKCBlbGVtZW50LCAidWktc29ydGFibGUtaGVscGVyIiApOw0KDQoJCQkJCWlmICggbm9kZU5hbWUgPT09ICJ0Ym9keSIgKSB7DQoJCQkJCQl0aGF0Ll9jcmVhdGVUclBsYWNlaG9sZGVyKA0KCQkJCQkJCXRoYXQuY3VycmVudEl0ZW0uZmluZCggInRyIiApLmVxKCAwICksDQoJCQkJCQkJJCggIjx0cj4iLCB0aGF0LmRvY3VtZW50WyAwIF0gKS5hcHBlbmRUbyggZWxlbWVudCApDQoJCQkJCQkpOw0KCQkJCQl9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gInRyIiApIHsNCgkJCQkJCXRoYXQuX2NyZWF0ZVRyUGxhY2Vob2xkZXIoIHRoYXQuY3VycmVudEl0ZW0sIGVsZW1lbnQgKTsNCgkJCQkJfSBlbHNlIGlmICggbm9kZU5hbWUgPT09ICJpbWciICkgew0KCQkJCQkJZWxlbWVudC5hdHRyKCAic3JjIiwgdGhhdC5jdXJyZW50SXRlbS5hdHRyKCAic3JjIiApICk7DQoJCQkJCX0NCg0KCQkJCQlpZiAoICFjbGFzc05hbWUgKSB7DQoJCQkJCQllbGVtZW50LmNzcyggInZpc2liaWxpdHkiLCAiaGlkZGVuIiApOw0KCQkJCQl9DQoNCgkJCQkJcmV0dXJuIGVsZW1lbnQ7DQoJCQkJfSwNCgkJCQl1cGRhdGU6IGZ1bmN0aW9uKCBjb250YWluZXIsIHAgKSB7DQoNCgkJCQkJLy8gMS4gSWYgYSBjbGFzc05hbWUgaXMgc2V0IGFzICdwbGFjZWhvbGRlciBvcHRpb24sIHdlIGRvbid0IGZvcmNlIHNpemVzIC0NCgkJCQkJLy8gdGhlIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0aGF0DQoJCQkJCS8vIDIuIFRoZSBvcHRpb24gJ2ZvcmNlUGxhY2Vob2xkZXJTaXplIGNhbiBiZSBlbmFibGVkIHRvIGZvcmNlIGl0IGV2ZW4gaWYgYQ0KCQkJCQkvLyBjbGFzcyBuYW1lIGlzIHNwZWNpZmllZA0KCQkJCQlpZiAoIGNsYXNzTmFtZSAmJiAhby5mb3JjZVBsYWNlaG9sZGVyU2l6ZSApIHsNCgkJCQkJCXJldHVybjsNCgkJCQkJfQ0KDQoJCQkJCS8vSWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGEgYWN0dWFsIGhlaWdodCBieSBpdHNlbGYgKHdpdGhvdXQgc3R5bGVzIGNvbWluZw0KCQkJCQkvLyBmcm9tIGEgc3R5bGVzaGVldCksIGl0IHJlY2VpdmVzIHRoZSBpbmxpbmUgaGVpZ2h0IGZyb20gdGhlIGRyYWdnZWQgaXRlbQ0KCQkJCQlpZiAoICFwLmhlaWdodCgpICkgew0KCQkJCQkJcC5oZWlnaHQoDQoJCQkJCQkJdGhhdC5jdXJyZW50SXRlbS5pbm5lckhlaWdodCgpIC0NCgkJCQkJCQlwYXJzZUludCggdGhhdC5jdXJyZW50SXRlbS5jc3MoICJwYWRkaW5nVG9wIiApIHx8IDAsIDEwICkgLQ0KCQkJCQkJCXBhcnNlSW50KCB0aGF0LmN1cnJlbnRJdGVtLmNzcyggInBhZGRpbmdCb3R0b20iICkgfHwgMCwgMTAgKSApOw0KCQkJCQl9DQoJCQkJCWlmICggIXAud2lkdGgoKSApIHsNCgkJCQkJCXAud2lkdGgoDQoJCQkJCQkJdGhhdC5jdXJyZW50SXRlbS5pbm5lcldpZHRoKCkgLQ0KCQkJCQkJCXBhcnNlSW50KCB0aGF0LmN1cnJlbnRJdGVtLmNzcyggInBhZGRpbmdMZWZ0IiApIHx8IDAsIDEwICkgLQ0KCQkJCQkJCXBhcnNlSW50KCB0aGF0LmN1cnJlbnRJdGVtLmNzcyggInBhZGRpbmdSaWdodCIgKSB8fCAwLCAxMCApICk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9Ow0KCQl9DQoNCgkJLy9DcmVhdGUgdGhlIHBsYWNlaG9sZGVyDQoJCXRoYXQucGxhY2Vob2xkZXIgPSAkKCBvLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbCggdGhhdC5lbGVtZW50LCB0aGF0LmN1cnJlbnRJdGVtICkgKTsNCg0KCQkvL0FwcGVuZCBpdCBhZnRlciB0aGUgYWN0dWFsIGN1cnJlbnQgaXRlbQ0KCQl0aGF0LmN1cnJlbnRJdGVtLmFmdGVyKCB0aGF0LnBsYWNlaG9sZGVyICk7DQoNCgkJLy9VcGRhdGUgdGhlIHNpemUgb2YgdGhlIHBsYWNlaG9sZGVyIChUT0RPOiBMb2dpYyB0byBmdXp6eSwgc2VlIGxpbmUgMzE2LzMxNykNCgkJby5wbGFjZWhvbGRlci51cGRhdGUoIHRoYXQsIHRoYXQucGxhY2Vob2xkZXIgKTsNCg0KCX0sDQoNCglfY3JlYXRlVHJQbGFjZWhvbGRlcjogZnVuY3Rpb24oIHNvdXJjZVRyLCB0YXJnZXRUciApIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXNvdXJjZVRyLmNoaWxkcmVuKCkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkkKCAiPHRkPiYjMTYwOzwvdGQ+IiwgdGhhdC5kb2N1bWVudFsgMCBdICkNCgkJCQkuYXR0ciggImNvbHNwYW4iLCAkKCB0aGlzICkuYXR0ciggImNvbHNwYW4iICkgfHwgMSApDQoJCQkJLmFwcGVuZFRvKCB0YXJnZXRUciApOw0KCQl9ICk7DQoJfSwNCg0KCV9jb250YWN0Q29udGFpbmVyczogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgaSwgaiwgZGlzdCwgaXRlbVdpdGhMZWFzdERpc3RhbmNlLCBwb3NQcm9wZXJ0eSwgc2l6ZVByb3BlcnR5LCBjdXIsIG5lYXJCb3R0b20sDQoJCQlmbG9hdGluZywgYXhpcywNCgkJCWlubmVybW9zdENvbnRhaW5lciA9IG51bGwsDQoJCQlpbm5lcm1vc3RJbmRleCA9IG51bGw7DQoNCgkJLy8gR2V0IGlubmVybW9zdCBjb250YWluZXIgdGhhdCBpbnRlcnNlY3RzIHdpdGggaXRlbQ0KCQlmb3IgKCBpID0gdGhpcy5jb250YWluZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkgew0KDQoJCQkvLyBOZXZlciBjb25zaWRlciBhIGNvbnRhaW5lciB0aGF0J3MgbG9jYXRlZCB3aXRoaW4gdGhlIGl0ZW0gaXRzZWxmDQoJCQlpZiAoICQuY29udGFpbnMoIHRoaXMuY3VycmVudEl0ZW1bIDAgXSwgdGhpcy5jb250YWluZXJzWyBpIF0uZWxlbWVudFsgMCBdICkgKSB7DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCWlmICggdGhpcy5faW50ZXJzZWN0c1dpdGgoIHRoaXMuY29udGFpbmVyc1sgaSBdLmNvbnRhaW5lckNhY2hlICkgKSB7DQoNCgkJCQkvLyBJZiB3ZSd2ZSBhbHJlYWR5IGZvdW5kIGEgY29udGFpbmVyIGFuZCBpdCdzIG1vcmUgImlubmVyIiB0aGFuIHRoaXMsIHRoZW4gY29udGludWUNCgkJCQlpZiAoIGlubmVybW9zdENvbnRhaW5lciAmJg0KCQkJCQkJJC5jb250YWlucygNCgkJCQkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5lbGVtZW50WyAwIF0sDQoJCQkJCQkJaW5uZXJtb3N0Q29udGFpbmVyLmVsZW1lbnRbIDAgXSApICkgew0KCQkJCQljb250aW51ZTsNCgkJCQl9DQoNCgkJCQlpbm5lcm1vc3RDb250YWluZXIgPSB0aGlzLmNvbnRhaW5lcnNbIGkgXTsNCgkJCQlpbm5lcm1vc3RJbmRleCA9IGk7DQoNCgkJCX0gZWxzZSB7DQoNCgkJCQkvLyBjb250YWluZXIgZG9lc24ndCBpbnRlcnNlY3QuIHRyaWdnZXIgIm91dCIgZXZlbnQgaWYgbmVjZXNzYXJ5DQoJCQkJaWYgKCB0aGlzLmNvbnRhaW5lcnNbIGkgXS5jb250YWluZXJDYWNoZS5vdmVyICkgew0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5fdHJpZ2dlciggIm91dCIsIGV2ZW50LCB0aGlzLl91aUhhc2goIHRoaXMgKSApOw0KCQkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5jb250YWluZXJDYWNoZS5vdmVyID0gMDsNCgkJCQl9DQoJCQl9DQoNCgkJfQ0KDQoJCS8vIElmIG5vIGludGVyc2VjdGluZyBjb250YWluZXJzIGZvdW5kLCByZXR1cm4NCgkJaWYgKCAhaW5uZXJtb3N0Q29udGFpbmVyICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJLy8gTW92ZSB0aGUgaXRlbSBpbnRvIHRoZSBjb250YWluZXIgaWYgaXQncyBub3QgdGhlcmUgYWxyZWFkeQ0KCQlpZiAoIHRoaXMuY29udGFpbmVycy5sZW5ndGggPT09IDEgKSB7DQoJCQlpZiAoICF0aGlzLmNvbnRhaW5lcnNbIGlubmVybW9zdEluZGV4IF0uY29udGFpbmVyQ2FjaGUub3ZlciApIHsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbIGlubmVybW9zdEluZGV4IF0uX3RyaWdnZXIoICJvdmVyIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCggdGhpcyApICk7DQoJCQkJdGhpcy5jb250YWluZXJzWyBpbm5lcm1vc3RJbmRleCBdLmNvbnRhaW5lckNhY2hlLm92ZXIgPSAxOw0KCQkJfQ0KCQl9IGVsc2Ugew0KDQoJCQkvLyBXaGVuIGVudGVyaW5nIGEgbmV3IGNvbnRhaW5lciwgd2Ugd2lsbCBmaW5kIHRoZSBpdGVtIHdpdGggdGhlIGxlYXN0IGRpc3RhbmNlIGFuZA0KCQkJLy8gYXBwZW5kIG91ciBpdGVtIG5lYXIgaXQNCgkJCWRpc3QgPSAxMDAwMDsNCgkJCWl0ZW1XaXRoTGVhc3REaXN0YW5jZSA9IG51bGw7DQoJCQlmbG9hdGluZyA9IGlubmVybW9zdENvbnRhaW5lci5mbG9hdGluZyB8fCB0aGlzLl9pc0Zsb2F0aW5nKCB0aGlzLmN1cnJlbnRJdGVtICk7DQoJCQlwb3NQcm9wZXJ0eSA9IGZsb2F0aW5nID8gImxlZnQiIDogInRvcCI7DQoJCQlzaXplUHJvcGVydHkgPSBmbG9hdGluZyA/ICJ3aWR0aCIgOiAiaGVpZ2h0IjsNCgkJCWF4aXMgPSBmbG9hdGluZyA/ICJwYWdlWCIgOiAicGFnZVkiOw0KDQoJCQlmb3IgKCBqID0gdGhpcy5pdGVtcy5sZW5ndGggLSAxOyBqID49IDA7IGotLSApIHsNCgkJCQlpZiAoICEkLmNvbnRhaW5zKA0KCQkJCQkJdGhpcy5jb250YWluZXJzWyBpbm5lcm1vc3RJbmRleCBdLmVsZW1lbnRbIDAgXSwgdGhpcy5pdGVtc1sgaiBdLml0ZW1bIDAgXSApDQoJCQkJKSB7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQlpZiAoIHRoaXMuaXRlbXNbIGogXS5pdGVtWyAwIF0gPT09IHRoaXMuY3VycmVudEl0ZW1bIDAgXSApIHsNCgkJCQkJY29udGludWU7DQoJCQkJfQ0KDQoJCQkJY3VyID0gdGhpcy5pdGVtc1sgaiBdLml0ZW0ub2Zmc2V0KClbIHBvc1Byb3BlcnR5IF07DQoJCQkJbmVhckJvdHRvbSA9IGZhbHNlOw0KCQkJCWlmICggZXZlbnRbIGF4aXMgXSAtIGN1ciA+IHRoaXMuaXRlbXNbIGogXVsgc2l6ZVByb3BlcnR5IF0gLyAyICkgew0KCQkJCQluZWFyQm90dG9tID0gdHJ1ZTsNCgkJCQl9DQoNCgkJCQlpZiAoIE1hdGguYWJzKCBldmVudFsgYXhpcyBdIC0gY3VyICkgPCBkaXN0ICkgew0KCQkJCQlkaXN0ID0gTWF0aC5hYnMoIGV2ZW50WyBheGlzIF0gLSBjdXIgKTsNCgkJCQkJaXRlbVdpdGhMZWFzdERpc3RhbmNlID0gdGhpcy5pdGVtc1sgaiBdOw0KCQkJCQl0aGlzLmRpcmVjdGlvbiA9IG5lYXJCb3R0b20gPyAidXAiIDogImRvd24iOw0KCQkJCX0NCgkJCX0NCg0KCQkJLy9DaGVjayBpZiBkcm9wT25FbXB0eSBpcyBlbmFibGVkDQoJCQlpZiAoICFpdGVtV2l0aExlYXN0RGlzdGFuY2UgJiYgIXRoaXMub3B0aW9ucy5kcm9wT25FbXB0eSApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWlmICggdGhpcy5jdXJyZW50Q29udGFpbmVyID09PSB0aGlzLmNvbnRhaW5lcnNbIGlubmVybW9zdEluZGV4IF0gKSB7DQoJCQkJaWYgKCAhdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXIgKSB7DQoJCQkJCXRoaXMuY29udGFpbmVyc1sgaW5uZXJtb3N0SW5kZXggXS5fdHJpZ2dlciggIm92ZXIiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkgKTsNCgkJCQkJdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXIgPSAxOw0KCQkJCX0NCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWl0ZW1XaXRoTGVhc3REaXN0YW5jZSA/DQoJCQkJdGhpcy5fcmVhcnJhbmdlKCBldmVudCwgaXRlbVdpdGhMZWFzdERpc3RhbmNlLCBudWxsLCB0cnVlICkgOg0KCQkJCXRoaXMuX3JlYXJyYW5nZSggZXZlbnQsIG51bGwsIHRoaXMuY29udGFpbmVyc1sgaW5uZXJtb3N0SW5kZXggXS5lbGVtZW50LCB0cnVlICk7DQoJCQl0aGlzLl90cmlnZ2VyKCAiY2hhbmdlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpICk7DQoJCQl0aGlzLmNvbnRhaW5lcnNbIGlubmVybW9zdEluZGV4IF0uX3RyaWdnZXIoICJjaGFuZ2UiLCBldmVudCwgdGhpcy5fdWlIYXNoKCB0aGlzICkgKTsNCgkJCXRoaXMuY3VycmVudENvbnRhaW5lciA9IHRoaXMuY29udGFpbmVyc1sgaW5uZXJtb3N0SW5kZXggXTsNCg0KCQkJLy9VcGRhdGUgdGhlIHBsYWNlaG9sZGVyDQoJCQl0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXIudXBkYXRlKCB0aGlzLmN1cnJlbnRDb250YWluZXIsIHRoaXMucGxhY2Vob2xkZXIgKTsNCg0KCQkJdGhpcy5jb250YWluZXJzWyBpbm5lcm1vc3RJbmRleCBdLl90cmlnZ2VyKCAib3ZlciIsIGV2ZW50LCB0aGlzLl91aUhhc2goIHRoaXMgKSApOw0KCQkJdGhpcy5jb250YWluZXJzWyBpbm5lcm1vc3RJbmRleCBdLmNvbnRhaW5lckNhY2hlLm92ZXIgPSAxOw0KCQl9DQoNCgl9LA0KDQoJX2NyZWF0ZUhlbHBlcjogZnVuY3Rpb24oIGV2ZW50ICkgew0KDQoJCXZhciBvID0gdGhpcy5vcHRpb25zLA0KCQkJaGVscGVyID0gJC5pc0Z1bmN0aW9uKCBvLmhlbHBlciApID8NCgkJCQkkKCBvLmhlbHBlci5hcHBseSggdGhpcy5lbGVtZW50WyAwIF0sIFsgZXZlbnQsIHRoaXMuY3VycmVudEl0ZW0gXSApICkgOg0KCQkJCSggby5oZWxwZXIgPT09ICJjbG9uZSIgPyB0aGlzLmN1cnJlbnRJdGVtLmNsb25lKCkgOiB0aGlzLmN1cnJlbnRJdGVtICk7DQoNCgkJLy9BZGQgdGhlIGhlbHBlciB0byB0aGUgRE9NIGlmIHRoYXQgZGlkbid0IGhhcHBlbiBhbHJlYWR5DQoJCWlmICggIWhlbHBlci5wYXJlbnRzKCAiYm9keSIgKS5sZW5ndGggKSB7DQoJCQkkKCBvLmFwcGVuZFRvICE9PSAicGFyZW50IiA/DQoJCQkJby5hcHBlbmRUbyA6DQoJCQkJdGhpcy5jdXJyZW50SXRlbVsgMCBdLnBhcmVudE5vZGUgKVsgMCBdLmFwcGVuZENoaWxkKCBoZWxwZXJbIDAgXSApOw0KCQl9DQoNCgkJaWYgKCBoZWxwZXJbIDAgXSA9PT0gdGhpcy5jdXJyZW50SXRlbVsgMCBdICkgew0KCQkJdGhpcy5fc3RvcmVkQ1NTID0gew0KCQkJCXdpZHRoOiB0aGlzLmN1cnJlbnRJdGVtWyAwIF0uc3R5bGUud2lkdGgsDQoJCQkJaGVpZ2h0OiB0aGlzLmN1cnJlbnRJdGVtWyAwIF0uc3R5bGUuaGVpZ2h0LA0KCQkJCXBvc2l0aW9uOiB0aGlzLmN1cnJlbnRJdGVtLmNzcyggInBvc2l0aW9uIiApLA0KCQkJCXRvcDogdGhpcy5jdXJyZW50SXRlbS5jc3MoICJ0b3AiICksDQoJCQkJbGVmdDogdGhpcy5jdXJyZW50SXRlbS5jc3MoICJsZWZ0IiApDQoJCQl9Ow0KCQl9DQoNCgkJaWYgKCAhaGVscGVyWyAwIF0uc3R5bGUud2lkdGggfHwgby5mb3JjZUhlbHBlclNpemUgKSB7DQoJCQloZWxwZXIud2lkdGgoIHRoaXMuY3VycmVudEl0ZW0ud2lkdGgoKSApOw0KCQl9DQoJCWlmICggIWhlbHBlclsgMCBdLnN0eWxlLmhlaWdodCB8fCBvLmZvcmNlSGVscGVyU2l6ZSApIHsNCgkJCWhlbHBlci5oZWlnaHQoIHRoaXMuY3VycmVudEl0ZW0uaGVpZ2h0KCkgKTsNCgkJfQ0KDQoJCXJldHVybiBoZWxwZXI7DQoNCgl9LA0KDQoJX2FkanVzdE9mZnNldEZyb21IZWxwZXI6IGZ1bmN0aW9uKCBvYmogKSB7DQoJCWlmICggdHlwZW9mIG9iaiA9PT0gInN0cmluZyIgKSB7DQoJCQlvYmogPSBvYmouc3BsaXQoICIgIiApOw0KCQl9DQoJCWlmICggJC5pc0FycmF5KCBvYmogKSApIHsNCgkJCW9iaiA9IHsgbGVmdDogK29ialsgMCBdLCB0b3A6ICtvYmpbIDEgXSB8fCAwIH07DQoJCX0NCgkJaWYgKCAibGVmdCIgaW4gb2JqICkgew0KCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCA9IG9iai5sZWZ0ICsgdGhpcy5tYXJnaW5zLmxlZnQ7DQoJCX0NCgkJaWYgKCAicmlnaHQiIGluIG9iaiApIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPSB0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoIC0gb2JqLnJpZ2h0ICsgdGhpcy5tYXJnaW5zLmxlZnQ7DQoJCX0NCgkJaWYgKCAidG9wIiBpbiBvYmogKSB7DQoJCQl0aGlzLm9mZnNldC5jbGljay50b3AgPSBvYmoudG9wICsgdGhpcy5tYXJnaW5zLnRvcDsNCgkJfQ0KCQlpZiAoICJib3R0b20iIGluIG9iaiApIHsNCgkJCXRoaXMub2Zmc2V0LmNsaWNrLnRvcCA9IHRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0IC0gb2JqLmJvdHRvbSArIHRoaXMubWFyZ2lucy50b3A7DQoJCX0NCgl9LA0KDQoJX2dldFBhcmVudE9mZnNldDogZnVuY3Rpb24oKSB7DQoNCgkJLy9HZXQgdGhlIG9mZnNldFBhcmVudCBhbmQgY2FjaGUgaXRzIHBvc2l0aW9uDQoJCXRoaXMub2Zmc2V0UGFyZW50ID0gdGhpcy5oZWxwZXIub2Zmc2V0UGFyZW50KCk7DQoJCXZhciBwbyA9IHRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpOw0KDQoJCS8vIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2Ugd2hlcmUgd2UgbmVlZCB0byBtb2RpZnkgYSBvZmZzZXQgY2FsY3VsYXRlZCBvbiBzdGFydCwgc2luY2UgdGhlDQoJCS8vIGZvbGxvd2luZyBoYXBwZW5lZDoNCgkJLy8gMS4gVGhlIHBvc2l0aW9uIG9mIHRoZSBoZWxwZXIgaXMgYWJzb2x1dGUsIHNvIGl0J3MgcG9zaXRpb24gaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUNCgkJLy8gbmV4dCBwb3NpdGlvbmVkIHBhcmVudA0KCQkvLyAyLiBUaGUgYWN0dWFsIG9mZnNldCBwYXJlbnQgaXMgYSBjaGlsZCBvZiB0aGUgc2Nyb2xsIHBhcmVudCwgYW5kIHRoZSBzY3JvbGwgcGFyZW50IGlzbid0DQoJCS8vIHRoZSBkb2N1bWVudCwgd2hpY2ggbWVhbnMgdGhhdCB0aGUgc2Nyb2xsIGlzIGluY2x1ZGVkIGluIHRoZSBpbml0aWFsIGNhbGN1bGF0aW9uIG9mIHRoZQ0KCQkvLyBvZmZzZXQgb2YgdGhlIHBhcmVudCwgYW5kIG5ldmVyIHJlY2FsY3VsYXRlZCB1cG9uIGRyYWcNCgkJaWYgKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiYWJzb2x1dGUiICYmIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0gIT09IHRoaXMuZG9jdW1lbnRbIDAgXSAmJg0KCQkJCSQuY29udGFpbnMoIHRoaXMuc2Nyb2xsUGFyZW50WyAwIF0sIHRoaXMub2Zmc2V0UGFyZW50WyAwIF0gKSApIHsNCgkJCXBvLmxlZnQgKz0gdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOw0KCQkJcG8udG9wICs9IHRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOw0KCQl9DQoNCgkJLy8gVGhpcyBuZWVkcyB0byBiZSBhY3R1YWxseSBkb25lIGZvciBhbGwgYnJvd3NlcnMsIHNpbmNlIHBhZ2VYL3BhZ2VZIGluY2x1ZGVzIHRoaXMNCgkJLy8gaW5mb3JtYXRpb24gd2l0aCBhbiB1Z2x5IElFIGZpeA0KCQlpZiAoIHRoaXMub2Zmc2V0UGFyZW50WyAwIF0gPT09IHRoaXMuZG9jdW1lbnRbIDAgXS5ib2R5IHx8DQoJCQkJKCB0aGlzLm9mZnNldFBhcmVudFsgMCBdLnRhZ05hbWUgJiYNCgkJCQl0aGlzLm9mZnNldFBhcmVudFsgMCBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gImh0bWwiICYmICQudWkuaWUgKSApIHsNCgkJCXBvID0geyB0b3A6IDAsIGxlZnQ6IDAgfTsNCgkJfQ0KDQoJCXJldHVybiB7DQoJCQl0b3A6IHBvLnRvcCArICggcGFyc2VJbnQoIHRoaXMub2Zmc2V0UGFyZW50LmNzcyggImJvcmRlclRvcFdpZHRoIiApLCAxMCApIHx8IDAgKSwNCgkJCWxlZnQ6IHBvLmxlZnQgKyAoIHBhcnNlSW50KCB0aGlzLm9mZnNldFBhcmVudC5jc3MoICJib3JkZXJMZWZ0V2lkdGgiICksIDEwICkgfHwgMCApDQoJCX07DQoNCgl9LA0KDQoJX2dldFJlbGF0aXZlT2Zmc2V0OiBmdW5jdGlvbigpIHsNCg0KCQlpZiAoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJyZWxhdGl2ZSIgKSB7DQoJCQl2YXIgcCA9IHRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTsNCgkJCXJldHVybiB7DQoJCQkJdG9wOiBwLnRvcCAtICggcGFyc2VJbnQoIHRoaXMuaGVscGVyLmNzcyggInRvcCIgKSwgMTAgKSB8fCAwICkgKw0KCQkJCQl0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSwNCgkJCQlsZWZ0OiBwLmxlZnQgLSAoIHBhcnNlSW50KCB0aGlzLmhlbHBlci5jc3MoICJsZWZ0IiApLCAxMCApIHx8IDAgKSArDQoJCQkJCXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKQ0KCQkJfTsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiB7IHRvcDogMCwgbGVmdDogMCB9Ow0KCQl9DQoNCgl9LA0KDQoJX2NhY2hlTWFyZ2luczogZnVuY3Rpb24oKSB7DQoJCXRoaXMubWFyZ2lucyA9IHsNCgkJCWxlZnQ6ICggcGFyc2VJbnQoIHRoaXMuY3VycmVudEl0ZW0uY3NzKCAibWFyZ2luTGVmdCIgKSwgMTAgKSB8fCAwICksDQoJCQl0b3A6ICggcGFyc2VJbnQoIHRoaXMuY3VycmVudEl0ZW0uY3NzKCAibWFyZ2luVG9wIiApLCAxMCApIHx8IDAgKQ0KCQl9Ow0KCX0sDQoNCglfY2FjaGVIZWxwZXJQcm9wb3J0aW9uczogZnVuY3Rpb24oKSB7DQoJCXRoaXMuaGVscGVyUHJvcG9ydGlvbnMgPSB7DQoJCQl3aWR0aDogdGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLA0KCQkJaGVpZ2h0OiB0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpDQoJCX07DQoJfSwNCg0KCV9zZXRDb250YWlubWVudDogZnVuY3Rpb24oKSB7DQoNCgkJdmFyIGNlLCBjbywgb3ZlciwNCgkJCW8gPSB0aGlzLm9wdGlvbnM7DQoJCWlmICggby5jb250YWlubWVudCA9PT0gInBhcmVudCIgKSB7DQoJCQlvLmNvbnRhaW5tZW50ID0gdGhpcy5oZWxwZXJbIDAgXS5wYXJlbnROb2RlOw0KCQl9DQoJCWlmICggby5jb250YWlubWVudCA9PT0gImRvY3VtZW50IiB8fCBvLmNvbnRhaW5tZW50ID09PSAid2luZG93IiApIHsNCgkJCXRoaXMuY29udGFpbm1lbnQgPSBbDQoJCQkJMCAtIHRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQgLSB0aGlzLm9mZnNldC5wYXJlbnQubGVmdCwNCgkJCQkwIC0gdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wIC0gdGhpcy5vZmZzZXQucGFyZW50LnRvcCwNCgkJCQlvLmNvbnRhaW5tZW50ID09PSAiZG9jdW1lbnQiID8NCgkJCQkJdGhpcy5kb2N1bWVudC53aWR0aCgpIDoNCgkJCQkJdGhpcy53aW5kb3cud2lkdGgoKSAtIHRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGggLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQkoIG8uY29udGFpbm1lbnQgPT09ICJkb2N1bWVudCIgPw0KCQkJCQkoIHRoaXMuZG9jdW1lbnQuaGVpZ2h0KCkgfHwgZG9jdW1lbnQuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCApIDoNCgkJCQkJdGhpcy53aW5kb3cuaGVpZ2h0KCkgfHwgdGhpcy5kb2N1bWVudFsgMCBdLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQNCgkJCQkpIC0gdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQgLSB0aGlzLm1hcmdpbnMudG9wDQoJCQldOw0KCQl9DQoNCgkJaWYgKCAhKCAvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvICkudGVzdCggby5jb250YWlubWVudCApICkgew0KCQkJY2UgPSAkKCBvLmNvbnRhaW5tZW50IClbIDAgXTsNCgkJCWNvID0gJCggby5jb250YWlubWVudCApLm9mZnNldCgpOw0KCQkJb3ZlciA9ICggJCggY2UgKS5jc3MoICJvdmVyZmxvdyIgKSAhPT0gImhpZGRlbiIgKTsNCg0KCQkJdGhpcy5jb250YWlubWVudCA9IFsNCgkJCQljby5sZWZ0ICsgKCBwYXJzZUludCggJCggY2UgKS5jc3MoICJib3JkZXJMZWZ0V2lkdGgiICksIDEwICkgfHwgMCApICsNCgkJCQkJKCBwYXJzZUludCggJCggY2UgKS5jc3MoICJwYWRkaW5nTGVmdCIgKSwgMTAgKSB8fCAwICkgLSB0aGlzLm1hcmdpbnMubGVmdCwNCgkJCQljby50b3AgKyAoIHBhcnNlSW50KCAkKCBjZSApLmNzcyggImJvcmRlclRvcFdpZHRoIiApLCAxMCApIHx8IDAgKSArDQoJCQkJCSggcGFyc2VJbnQoICQoIGNlICkuY3NzKCAicGFkZGluZ1RvcCIgKSwgMTAgKSB8fCAwICkgLSB0aGlzLm1hcmdpbnMudG9wLA0KCQkJCWNvLmxlZnQgKyAoIG92ZXIgPyBNYXRoLm1heCggY2Uuc2Nyb2xsV2lkdGgsIGNlLm9mZnNldFdpZHRoICkgOiBjZS5vZmZzZXRXaWR0aCApIC0NCgkJCQkJKCBwYXJzZUludCggJCggY2UgKS5jc3MoICJib3JkZXJMZWZ0V2lkdGgiICksIDEwICkgfHwgMCApIC0NCgkJCQkJKCBwYXJzZUludCggJCggY2UgKS5jc3MoICJwYWRkaW5nUmlnaHQiICksIDEwICkgfHwgMCApIC0NCgkJCQkJdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aCAtIHRoaXMubWFyZ2lucy5sZWZ0LA0KCQkJCWNvLnRvcCArICggb3ZlciA/IE1hdGgubWF4KCBjZS5zY3JvbGxIZWlnaHQsIGNlLm9mZnNldEhlaWdodCApIDogY2Uub2Zmc2V0SGVpZ2h0ICkgLQ0KCQkJCQkoIHBhcnNlSW50KCAkKCBjZSApLmNzcyggImJvcmRlclRvcFdpZHRoIiApLCAxMCApIHx8IDAgKSAtDQoJCQkJCSggcGFyc2VJbnQoICQoIGNlICkuY3NzKCAicGFkZGluZ0JvdHRvbSIgKSwgMTAgKSB8fCAwICkgLQ0KCQkJCQl0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodCAtIHRoaXMubWFyZ2lucy50b3ANCgkJCV07DQoJCX0NCg0KCX0sDQoNCglfY29udmVydFBvc2l0aW9uVG86IGZ1bmN0aW9uKCBkLCBwb3MgKSB7DQoNCgkJaWYgKCAhcG9zICkgew0KCQkJcG9zID0gdGhpcy5wb3NpdGlvbjsNCgkJfQ0KCQl2YXIgbW9kID0gZCA9PT0gImFic29sdXRlIiA/IDEgOiAtMSwNCgkJCXNjcm9sbCA9IHRoaXMuY3NzUG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYNCgkJCQkhKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdICE9PSB0aGlzLmRvY3VtZW50WyAwIF0gJiYNCgkJCQkkLmNvbnRhaW5zKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdLCB0aGlzLm9mZnNldFBhcmVudFsgMCBdICkgKSA/DQoJCQkJCXRoaXMub2Zmc2V0UGFyZW50IDoNCgkJCQkJdGhpcy5zY3JvbGxQYXJlbnQsDQoJCQlzY3JvbGxJc1Jvb3ROb2RlID0gKCAvKGh0bWx8Ym9keSkvaSApLnRlc3QoIHNjcm9sbFsgMCBdLnRhZ05hbWUgKTsNCg0KCQlyZXR1cm4gew0KCQkJdG9wOiAoDQoNCgkJCQkvLyBUaGUgYWJzb2x1dGUgbW91c2UgcG9zaXRpb24NCgkJCQlwb3MudG9wCSsNCg0KCQkJCS8vIE9ubHkgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgbm9kZXM6IFJlbGF0aXZlIG9mZnNldCBmcm9tIGVsZW1lbnQgdG8gb2Zmc2V0IHBhcmVudA0KCQkJCXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcCAqIG1vZCArDQoNCgkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCXRoaXMub2Zmc2V0LnBhcmVudC50b3AgKiBtb2QgLQ0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8NCgkJCQkJLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpIDoNCgkJCQkJKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHNjcm9sbC5zY3JvbGxUb3AoKSApICkgKiBtb2QgKQ0KCQkJKSwNCgkJCWxlZnQ6ICgNCg0KCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXBvcy5sZWZ0ICsNCg0KCQkJCS8vIE9ubHkgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgbm9kZXM6IFJlbGF0aXZlIG9mZnNldCBmcm9tIGVsZW1lbnQgdG8gb2Zmc2V0IHBhcmVudA0KCQkJCXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQgKiBtb2QgKw0KDQoJCQkJLy8gVGhlIG9mZnNldFBhcmVudCdzIG9mZnNldCB3aXRob3V0IGJvcmRlcnMgKG9mZnNldCArIGJvcmRlcikNCgkJCQl0aGlzLm9mZnNldC5wYXJlbnQubGVmdCAqIG1vZAktDQoJCQkJKCAoIHRoaXMuY3NzUG9zaXRpb24gPT09ICJmaXhlZCIgPw0KCQkJCQktdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpIDogc2Nyb2xsSXNSb290Tm9kZSA/IDAgOg0KCQkJCQlzY3JvbGwuc2Nyb2xsTGVmdCgpICkgKiBtb2QgKQ0KCQkJKQ0KCQl9Ow0KDQoJfSwNCg0KCV9nZW5lcmF0ZVBvc2l0aW9uOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoNCgkJdmFyIHRvcCwgbGVmdCwNCgkJCW8gPSB0aGlzLm9wdGlvbnMsDQoJCQlwYWdlWCA9IGV2ZW50LnBhZ2VYLA0KCQkJcGFnZVkgPSBldmVudC5wYWdlWSwNCgkJCXNjcm9sbCA9IHRoaXMuY3NzUG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgJiYNCgkJCQkhKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdICE9PSB0aGlzLmRvY3VtZW50WyAwIF0gJiYNCgkJCQkkLmNvbnRhaW5zKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdLCB0aGlzLm9mZnNldFBhcmVudFsgMCBdICkgKSA/DQoJCQkJCXRoaXMub2Zmc2V0UGFyZW50IDoNCgkJCQkJdGhpcy5zY3JvbGxQYXJlbnQsDQoJCQkJc2Nyb2xsSXNSb290Tm9kZSA9ICggLyhodG1sfGJvZHkpL2kgKS50ZXN0KCBzY3JvbGxbIDAgXS50YWdOYW1lICk7DQoNCgkJLy8gVGhpcyBpcyBhbm90aGVyIHZlcnkgd2VpcmQgc3BlY2lhbCBjYXNlIHRoYXQgb25seSBoYXBwZW5zIGZvciByZWxhdGl2ZSBlbGVtZW50czoNCgkJLy8gMS4gSWYgdGhlIGNzcyBwb3NpdGlvbiBpcyByZWxhdGl2ZQ0KCQkvLyAyLiBhbmQgdGhlIHNjcm9sbCBwYXJlbnQgaXMgdGhlIGRvY3VtZW50IG9yIHNpbWlsYXIgdG8gdGhlIG9mZnNldCBwYXJlbnQNCgkJLy8gd2UgaGF2ZSB0byByZWZyZXNoIHRoZSByZWxhdGl2ZSBvZmZzZXQgZHVyaW5nIHRoZSBzY3JvbGwgc28gdGhlcmUgYXJlIG5vIGp1bXBzDQoJCWlmICggdGhpcy5jc3NQb3NpdGlvbiA9PT0gInJlbGF0aXZlIiAmJiAhKCB0aGlzLnNjcm9sbFBhcmVudFsgMCBdICE9PSB0aGlzLmRvY3VtZW50WyAwIF0gJiYNCgkJCQl0aGlzLnNjcm9sbFBhcmVudFsgMCBdICE9PSB0aGlzLm9mZnNldFBhcmVudFsgMCBdICkgKSB7DQoJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZSA9IHRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCk7DQoJCX0NCg0KCQkvKg0KCQkgKiAtIFBvc2l0aW9uIGNvbnN0cmFpbmluZyAtDQoJCSAqIENvbnN0cmFpbiB0aGUgcG9zaXRpb24gdG8gYSBtaXggb2YgZ3JpZCwgY29udGFpbm1lbnQuDQoJCSAqLw0KDQoJCWlmICggdGhpcy5vcmlnaW5hbFBvc2l0aW9uICkgeyAvL0lmIHdlIGFyZSBub3QgZHJhZ2dpbmcgeWV0LCB3ZSB3b24ndCBjaGVjayBmb3Igb3B0aW9ucw0KDQoJCQlpZiAoIHRoaXMuY29udGFpbm1lbnQgKSB7DQoJCQkJaWYgKCBldmVudC5wYWdlWCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPCB0aGlzLmNvbnRhaW5tZW50WyAwIF0gKSB7DQoJCQkJCXBhZ2VYID0gdGhpcy5jb250YWlubWVudFsgMCBdICsgdGhpcy5vZmZzZXQuY2xpY2subGVmdDsNCgkJCQl9DQoJCQkJaWYgKCBldmVudC5wYWdlWSAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA8IHRoaXMuY29udGFpbm1lbnRbIDEgXSApIHsNCgkJCQkJcGFnZVkgPSB0aGlzLmNvbnRhaW5tZW50WyAxIF0gKyB0aGlzLm9mZnNldC5jbGljay50b3A7DQoJCQkJfQ0KCQkJCWlmICggZXZlbnQucGFnZVggLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID4gdGhpcy5jb250YWlubWVudFsgMiBdICkgew0KCQkJCQlwYWdlWCA9IHRoaXMuY29udGFpbm1lbnRbIDIgXSArIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ7DQoJCQkJfQ0KCQkJCWlmICggZXZlbnQucGFnZVkgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPiB0aGlzLmNvbnRhaW5tZW50WyAzIF0gKSB7DQoJCQkJCXBhZ2VZID0gdGhpcy5jb250YWlubWVudFsgMyBdICsgdGhpcy5vZmZzZXQuY2xpY2sudG9wOw0KCQkJCX0NCgkJCX0NCg0KCQkJaWYgKCBvLmdyaWQgKSB7DQoJCQkJdG9wID0gdGhpcy5vcmlnaW5hbFBhZ2VZICsgTWF0aC5yb3VuZCggKCBwYWdlWSAtIHRoaXMub3JpZ2luYWxQYWdlWSApIC8NCgkJCQkJby5ncmlkWyAxIF0gKSAqIG8uZ3JpZFsgMSBdOw0KCQkJCXBhZ2VZID0gdGhpcy5jb250YWlubWVudCA/DQoJCQkJCSggKCB0b3AgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPj0gdGhpcy5jb250YWlubWVudFsgMSBdICYmDQoJCQkJCQl0b3AgLSB0aGlzLm9mZnNldC5jbGljay50b3AgPD0gdGhpcy5jb250YWlubWVudFsgMyBdICkgPw0KCQkJCQkJCXRvcCA6DQoJCQkJCQkJKCAoIHRvcCAtIHRoaXMub2Zmc2V0LmNsaWNrLnRvcCA+PSB0aGlzLmNvbnRhaW5tZW50WyAxIF0gKSA/DQoJCQkJCQkJCXRvcCAtIG8uZ3JpZFsgMSBdIDogdG9wICsgby5ncmlkWyAxIF0gKSApIDoNCgkJCQkJCQkJdG9wOw0KDQoJCQkJbGVmdCA9IHRoaXMub3JpZ2luYWxQYWdlWCArIE1hdGgucm91bmQoICggcGFnZVggLSB0aGlzLm9yaWdpbmFsUGFnZVggKSAvDQoJCQkJCW8uZ3JpZFsgMCBdICkgKiBvLmdyaWRbIDAgXTsNCgkJCQlwYWdlWCA9IHRoaXMuY29udGFpbm1lbnQgPw0KCQkJCQkoICggbGVmdCAtIHRoaXMub2Zmc2V0LmNsaWNrLmxlZnQgPj0gdGhpcy5jb250YWlubWVudFsgMCBdICYmDQoJCQkJCQlsZWZ0IC0gdGhpcy5vZmZzZXQuY2xpY2subGVmdCA8PSB0aGlzLmNvbnRhaW5tZW50WyAyIF0gKSA/DQoJCQkJCQkJbGVmdCA6DQoJCQkJCQkJKCAoIGxlZnQgLSB0aGlzLm9mZnNldC5jbGljay5sZWZ0ID49IHRoaXMuY29udGFpbm1lbnRbIDAgXSApID8NCgkJCQkJCQkJbGVmdCAtIG8uZ3JpZFsgMCBdIDogbGVmdCArIG8uZ3JpZFsgMCBdICkgKSA6DQoJCQkJCQkJCWxlZnQ7DQoJCQl9DQoNCgkJfQ0KDQoJCXJldHVybiB7DQoJCQl0b3A6ICgNCg0KCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXBhZ2VZIC0NCg0KCQkJCS8vIENsaWNrIG9mZnNldCAocmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQpDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2sudG9wIC0NCg0KCQkJCS8vIE9ubHkgZm9yIHJlbGF0aXZlIHBvc2l0aW9uZWQgbm9kZXM6IFJlbGF0aXZlIG9mZnNldCBmcm9tIGVsZW1lbnQgdG8gb2Zmc2V0IHBhcmVudA0KCQkJCXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcCAtDQoNCgkJCQkvLyBUaGUgb2Zmc2V0UGFyZW50J3Mgb2Zmc2V0IHdpdGhvdXQgYm9yZGVycyAob2Zmc2V0ICsgYm9yZGVyKQ0KCQkJCXRoaXMub2Zmc2V0LnBhcmVudC50b3AgKw0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8NCgkJCQkJLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpIDoNCgkJCQkJKCBzY3JvbGxJc1Jvb3ROb2RlID8gMCA6IHNjcm9sbC5zY3JvbGxUb3AoKSApICkgKQ0KCQkJKSwNCgkJCWxlZnQ6ICgNCg0KCQkJCS8vIFRoZSBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbg0KCQkJCXBhZ2VYIC0NCg0KCQkJCS8vIENsaWNrIG9mZnNldCAocmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQpDQoJCQkJdGhpcy5vZmZzZXQuY2xpY2subGVmdCAtDQoNCgkJCQkvLyBPbmx5IGZvciByZWxhdGl2ZSBwb3NpdGlvbmVkIG5vZGVzOiBSZWxhdGl2ZSBvZmZzZXQgZnJvbSBlbGVtZW50IHRvIG9mZnNldCBwYXJlbnQNCgkJCQl0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0IC0NCg0KCQkJCS8vIFRoZSBvZmZzZXRQYXJlbnQncyBvZmZzZXQgd2l0aG91dCBib3JkZXJzIChvZmZzZXQgKyBib3JkZXIpDQoJCQkJdGhpcy5vZmZzZXQucGFyZW50LmxlZnQgKw0KCQkJCSggKCB0aGlzLmNzc1Bvc2l0aW9uID09PSAiZml4ZWQiID8NCgkJCQkJLXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKSA6DQoJCQkJCXNjcm9sbElzUm9vdE5vZGUgPyAwIDogc2Nyb2xsLnNjcm9sbExlZnQoKSApICkNCgkJCSkNCgkJfTsNCg0KCX0sDQoNCglfcmVhcnJhbmdlOiBmdW5jdGlvbiggZXZlbnQsIGksIGEsIGhhcmRSZWZyZXNoICkgew0KDQoJCWEgPyBhWyAwIF0uYXBwZW5kQ2hpbGQoIHRoaXMucGxhY2Vob2xkZXJbIDAgXSApIDoNCgkJCWkuaXRlbVsgMCBdLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCB0aGlzLnBsYWNlaG9sZGVyWyAwIF0sDQoJCQkJKCB0aGlzLmRpcmVjdGlvbiA9PT0gImRvd24iID8gaS5pdGVtWyAwIF0gOiBpLml0ZW1bIDAgXS5uZXh0U2libGluZyApICk7DQoNCgkJLy9WYXJpb3VzIHRoaW5ncyBkb25lIGhlcmUgdG8gaW1wcm92ZSB0aGUgcGVyZm9ybWFuY2U6DQoJCS8vIDEuIHdlIGNyZWF0ZSBhIHNldFRpbWVvdXQsIHRoYXQgY2FsbHMgcmVmcmVzaFBvc2l0aW9ucw0KCQkvLyAyLiBvbiB0aGUgaW5zdGFuY2UsIHdlIGhhdmUgYSBjb3VudGVyIHZhcmlhYmxlLCB0aGF0IGdldCdzIGhpZ2hlciBhZnRlciBldmVyeSBhcHBlbmQNCgkJLy8gMy4gb24gdGhlIGxvY2FsIHNjb3BlLCB3ZSBjb3B5IHRoZSBjb3VudGVyIHZhcmlhYmxlLCBhbmQgY2hlY2sgaW4gdGhlIHRpbWVvdXQsDQoJCS8vIGlmIGl0J3Mgc3RpbGwgdGhlIHNhbWUNCgkJLy8gNC4gdGhpcyBsZXRzIG9ubHkgdGhlIGxhc3QgYWRkaXRpb24gdG8gdGhlIHRpbWVvdXQgc3RhY2sgdGhyb3VnaA0KCQl0aGlzLmNvdW50ZXIgPSB0aGlzLmNvdW50ZXIgPyArK3RoaXMuY291bnRlciA6IDE7DQoJCXZhciBjb3VudGVyID0gdGhpcy5jb3VudGVyOw0KDQoJCXRoaXMuX2RlbGF5KCBmdW5jdGlvbigpIHsNCgkJCWlmICggY291bnRlciA9PT0gdGhpcy5jb3VudGVyICkgew0KDQoJCQkJLy9QcmVjb21wdXRlIGFmdGVyIGVhY2ggRE9NIGluc2VydGlvbiwgTk9UIG9uIG1vdXNlbW92ZQ0KCQkJCXRoaXMucmVmcmVzaFBvc2l0aW9ucyggIWhhcmRSZWZyZXNoICk7DQoJCQl9DQoJCX0gKTsNCg0KCX0sDQoNCglfY2xlYXI6IGZ1bmN0aW9uKCBldmVudCwgbm9Qcm9wYWdhdGlvbiApIHsNCg0KCQl0aGlzLnJldmVydGluZyA9IGZhbHNlOw0KDQoJCS8vIFdlIGRlbGF5IGFsbCBldmVudHMgdGhhdCBoYXZlIHRvIGJlIHRyaWdnZXJlZCB0byBhZnRlciB0aGUgcG9pbnQgd2hlcmUgdGhlIHBsYWNlaG9sZGVyDQoJCS8vIGhhcyBiZWVuIHJlbW92ZWQgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBub3JtYWxpemVkIGFnYWluDQoJCXZhciBpLA0KCQkJZGVsYXllZFRyaWdnZXJzID0gW107DQoNCgkJLy8gV2UgZmlyc3QgaGF2ZSB0byB1cGRhdGUgdGhlIGRvbSBwb3NpdGlvbiBvZiB0aGUgYWN0dWFsIGN1cnJlbnRJdGVtDQoJCS8vIE5vdGU6IGRvbid0IGRvIGl0IGlmIHRoZSBjdXJyZW50IGl0ZW0gaXMgYWxyZWFkeSByZW1vdmVkIChieSBhIHVzZXIpLCBvciBpdCBnZXRzDQoJCS8vIHJlYXBwZW5kZWQgKHNlZSAjNDA4OCkNCgkJaWYgKCAhdGhpcy5fbm9GaW5hbFNvcnQgJiYgdGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKS5sZW5ndGggKSB7DQoJCQl0aGlzLnBsYWNlaG9sZGVyLmJlZm9yZSggdGhpcy5jdXJyZW50SXRlbSApOw0KCQl9DQoJCXRoaXMuX25vRmluYWxTb3J0ID0gbnVsbDsNCg0KCQlpZiAoIHRoaXMuaGVscGVyWyAwIF0gPT09IHRoaXMuY3VycmVudEl0ZW1bIDAgXSApIHsNCgkJCWZvciAoIGkgaW4gdGhpcy5fc3RvcmVkQ1NTICkgew0KCQkJCWlmICggdGhpcy5fc3RvcmVkQ1NTWyBpIF0gPT09ICJhdXRvIiB8fCB0aGlzLl9zdG9yZWRDU1NbIGkgXSA9PT0gInN0YXRpYyIgKSB7DQoJCQkJCXRoaXMuX3N0b3JlZENTU1sgaSBdID0gIiI7DQoJCQkJfQ0KCQkJfQ0KCQkJdGhpcy5jdXJyZW50SXRlbS5jc3MoIHRoaXMuX3N0b3JlZENTUyApOw0KCQkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuY3VycmVudEl0ZW0sICJ1aS1zb3J0YWJsZS1oZWxwZXIiICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmN1cnJlbnRJdGVtLnNob3coKTsNCgkJfQ0KDQoJCWlmICggdGhpcy5mcm9tT3V0c2lkZSAmJiAhbm9Qcm9wYWdhdGlvbiApIHsNCgkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKCBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fdHJpZ2dlciggInJlY2VpdmUiLCBldmVudCwgdGhpcy5fdWlIYXNoKCB0aGlzLmZyb21PdXRzaWRlICkgKTsNCgkJCX0gKTsNCgkJfQ0KCQlpZiAoICggdGhpcy5mcm9tT3V0c2lkZSB8fA0KCQkJCXRoaXMuZG9tUG9zaXRpb24ucHJldiAhPT0NCgkJCQl0aGlzLmN1cnJlbnRJdGVtLnByZXYoKS5ub3QoICIudWktc29ydGFibGUtaGVscGVyIiApWyAwIF0gfHwNCgkJCQl0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCAhPT0gdGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKVsgMCBdICkgJiYgIW5vUHJvcGFnYXRpb24gKSB7DQoNCgkJCS8vIFRyaWdnZXIgdXBkYXRlIGNhbGxiYWNrIGlmIHRoZSBET00gcG9zaXRpb24gaGFzIGNoYW5nZWQNCgkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKCBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCQkJdGhpcy5fdHJpZ2dlciggInVwZGF0ZSIsIGV2ZW50LCB0aGlzLl91aUhhc2goKSApOw0KCQkJfSApOw0KCQl9DQoNCgkJLy8gQ2hlY2sgaWYgdGhlIGl0ZW1zIENvbnRhaW5lciBoYXMgQ2hhbmdlZCBhbmQgdHJpZ2dlciBhcHByb3ByaWF0ZQ0KCQkvLyBldmVudHMuDQoJCWlmICggdGhpcyAhPT0gdGhpcy5jdXJyZW50Q29udGFpbmVyICkgew0KCQkJaWYgKCAhbm9Qcm9wYWdhdGlvbiApIHsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCggZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQl0aGlzLl90cmlnZ2VyKCAicmVtb3ZlIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpICk7DQoJCQkJfSApOw0KCQkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKCAoIGZ1bmN0aW9uKCBjICkgew0KCQkJCQlyZXR1cm4gZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCQkJYy5fdHJpZ2dlciggInJlY2VpdmUiLCBldmVudCwgdGhpcy5fdWlIYXNoKCB0aGlzICkgKTsNCgkJCQkJfTsNCgkJCQl9ICkuY2FsbCggdGhpcywgdGhpcy5jdXJyZW50Q29udGFpbmVyICkgKTsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCggKCBmdW5jdGlvbiggYyApIHsNCgkJCQkJcmV0dXJuIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQkJCWMuX3RyaWdnZXIoICJ1cGRhdGUiLCBldmVudCwgdGhpcy5fdWlIYXNoKCB0aGlzICkgKTsNCgkJCQkJfTsNCgkJCQl9ICkuY2FsbCggdGhpcywgdGhpcy5jdXJyZW50Q29udGFpbmVyICkgKTsNCgkJCX0NCgkJfQ0KDQoJCS8vUG9zdCBldmVudHMgdG8gY29udGFpbmVycw0KCQlmdW5jdGlvbiBkZWxheUV2ZW50KCB0eXBlLCBpbnN0YW5jZSwgY29udGFpbmVyICkgew0KCQkJcmV0dXJuIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQljb250YWluZXIuX3RyaWdnZXIoIHR5cGUsIGV2ZW50LCBpbnN0YW5jZS5fdWlIYXNoKCBpbnN0YW5jZSApICk7DQoJCQl9Ow0KCQl9DQoJCWZvciAoIGkgPSB0aGlzLmNvbnRhaW5lcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7DQoJCQlpZiAoICFub1Byb3BhZ2F0aW9uICkgew0KCQkJCWRlbGF5ZWRUcmlnZ2Vycy5wdXNoKCBkZWxheUV2ZW50KCAiZGVhY3RpdmF0ZSIsIHRoaXMsIHRoaXMuY29udGFpbmVyc1sgaSBdICkgKTsNCgkJCX0NCgkJCWlmICggdGhpcy5jb250YWluZXJzWyBpIF0uY29udGFpbmVyQ2FjaGUub3ZlciApIHsNCgkJCQlkZWxheWVkVHJpZ2dlcnMucHVzaCggZGVsYXlFdmVudCggIm91dCIsIHRoaXMsIHRoaXMuY29udGFpbmVyc1sgaSBdICkgKTsNCgkJCQl0aGlzLmNvbnRhaW5lcnNbIGkgXS5jb250YWluZXJDYWNoZS5vdmVyID0gMDsNCgkJCX0NCgkJfQ0KDQoJCS8vRG8gd2hhdCB3YXMgb3JpZ2luYWxseSBpbiBwbHVnaW5zDQoJCWlmICggdGhpcy5zdG9yZWRDdXJzb3IgKSB7DQoJCQl0aGlzLmRvY3VtZW50LmZpbmQoICJib2R5IiApLmNzcyggImN1cnNvciIsIHRoaXMuc3RvcmVkQ3Vyc29yICk7DQoJCQl0aGlzLnN0b3JlZFN0eWxlc2hlZXQucmVtb3ZlKCk7DQoJCX0NCgkJaWYgKCB0aGlzLl9zdG9yZWRPcGFjaXR5ICkgew0KCQkJdGhpcy5oZWxwZXIuY3NzKCAib3BhY2l0eSIsIHRoaXMuX3N0b3JlZE9wYWNpdHkgKTsNCgkJfQ0KCQlpZiAoIHRoaXMuX3N0b3JlZFpJbmRleCApIHsNCgkJCXRoaXMuaGVscGVyLmNzcyggInpJbmRleCIsIHRoaXMuX3N0b3JlZFpJbmRleCA9PT0gImF1dG8iID8gIiIgOiB0aGlzLl9zdG9yZWRaSW5kZXggKTsNCgkJfQ0KDQoJCXRoaXMuZHJhZ2dpbmcgPSBmYWxzZTsNCg0KCQlpZiAoICFub1Byb3BhZ2F0aW9uICkgew0KCQkJdGhpcy5fdHJpZ2dlciggImJlZm9yZVN0b3AiLCBldmVudCwgdGhpcy5fdWlIYXNoKCkgKTsNCgkJfQ0KDQoJCS8vJCh0aGlzLnBsYWNlaG9sZGVyWzBdKS5yZW1vdmUoKTsgd291bGQgaGF2ZSBiZWVuIHRoZSBqUXVlcnkgd2F5IC0gdW5mb3J0dW5hdGVseSwNCgkJLy8gaXQgdW5iaW5kcyBBTEwgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIG5vZGUhDQoJCXRoaXMucGxhY2Vob2xkZXJbIDAgXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0aGlzLnBsYWNlaG9sZGVyWyAwIF0gKTsNCg0KCQlpZiAoICF0aGlzLmNhbmNlbEhlbHBlclJlbW92YWwgKSB7DQoJCQlpZiAoIHRoaXMuaGVscGVyWyAwIF0gIT09IHRoaXMuY3VycmVudEl0ZW1bIDAgXSApIHsNCgkJCQl0aGlzLmhlbHBlci5yZW1vdmUoKTsNCgkJCX0NCgkJCXRoaXMuaGVscGVyID0gbnVsbDsNCgkJfQ0KDQoJCWlmICggIW5vUHJvcGFnYXRpb24gKSB7DQoJCQlmb3IgKCBpID0gMDsgaSA8IGRlbGF5ZWRUcmlnZ2Vycy5sZW5ndGg7IGkrKyApIHsNCg0KCQkJCS8vIFRyaWdnZXIgYWxsIGRlbGF5ZWQgZXZlbnRzDQoJCQkJZGVsYXllZFRyaWdnZXJzWyBpIF0uY2FsbCggdGhpcywgZXZlbnQgKTsNCgkJCX0NCgkJCXRoaXMuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQsIHRoaXMuX3VpSGFzaCgpICk7DQoJCX0NCg0KCQl0aGlzLmZyb21PdXRzaWRlID0gZmFsc2U7DQoJCXJldHVybiAhdGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsOw0KDQoJfSwNCg0KCV90cmlnZ2VyOiBmdW5jdGlvbigpIHsNCgkJaWYgKCAkLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApID09PSBmYWxzZSApIHsNCgkJCXRoaXMuY2FuY2VsKCk7DQoJCX0NCgl9LA0KDQoJX3VpSGFzaDogZnVuY3Rpb24oIF9pbnN0ICkgew0KCQl2YXIgaW5zdCA9IF9pbnN0IHx8IHRoaXM7DQoJCXJldHVybiB7DQoJCQloZWxwZXI6IGluc3QuaGVscGVyLA0KCQkJcGxhY2Vob2xkZXI6IGluc3QucGxhY2Vob2xkZXIgfHwgJCggW10gKSwNCgkJCXBvc2l0aW9uOiBpbnN0LnBvc2l0aW9uLA0KCQkJb3JpZ2luYWxQb3NpdGlvbjogaW5zdC5vcmlnaW5hbFBvc2l0aW9uLA0KCQkJb2Zmc2V0OiBpbnN0LnBvc2l0aW9uQWJzLA0KCQkJaXRlbTogaW5zdC5jdXJyZW50SXRlbSwNCgkJCXNlbmRlcjogX2luc3QgPyBfaW5zdC5lbGVtZW50IDogbnVsbA0KCQl9Ow0KCX0NCg0KfSApOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFNwaW5uZXIgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IFNwaW5uZXINCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8+PmRlc2NyaXB0aW9uOiBEaXNwbGF5cyBidXR0b25zIHRvIGVhc2lseSBpbnB1dCBudW1iZXJzIHZpYSB0aGUga2V5Ym9hcmQgb3IgbW91c2UuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vc3Bpbm5lci8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS9zcGlubmVyLw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvcmUuY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2Uvc3Bpbm5lci5jc3MNCi8vPj5jc3MudGhlbWU6IC4uLy4uL3RoZW1lcy9iYXNlL3RoZW1lLmNzcw0KDQoNCg0KZnVuY3Rpb24gc3Bpbm5lck1vZGlmZXIoIGZuICkgew0KCXJldHVybiBmdW5jdGlvbigpIHsNCgkJdmFyIHByZXZpb3VzID0gdGhpcy5lbGVtZW50LnZhbCgpOw0KCQlmbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7DQoJCXRoaXMuX3JlZnJlc2goKTsNCgkJaWYgKCBwcmV2aW91cyAhPT0gdGhpcy5lbGVtZW50LnZhbCgpICkgew0KCQkJdGhpcy5fdHJpZ2dlciggImNoYW5nZSIgKTsNCgkJfQ0KCX07DQp9DQoNCiQud2lkZ2V0KCAidWkuc3Bpbm5lciIsIHsNCgl2ZXJzaW9uOiAiMS4xMi4xIiwNCglkZWZhdWx0RWxlbWVudDogIjxpbnB1dD4iLA0KCXdpZGdldEV2ZW50UHJlZml4OiAic3BpbiIsDQoJb3B0aW9uczogew0KCQljbGFzc2VzOiB7DQoJCQkidWktc3Bpbm5lciI6ICJ1aS1jb3JuZXItYWxsIiwNCgkJCSJ1aS1zcGlubmVyLWRvd24iOiAidWktY29ybmVyLWJyIiwNCgkJCSJ1aS1zcGlubmVyLXVwIjogInVpLWNvcm5lci10ciINCgkJfSwNCgkJY3VsdHVyZTogbnVsbCwNCgkJaWNvbnM6IHsNCgkJCWRvd246ICJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsDQoJCQl1cDogInVpLWljb24tdHJpYW5nbGUtMS1uIg0KCQl9LA0KCQlpbmNyZW1lbnRhbDogdHJ1ZSwNCgkJbWF4OiBudWxsLA0KCQltaW46IG51bGwsDQoJCW51bWJlckZvcm1hdDogbnVsbCwNCgkJcGFnZTogMTAsDQoJCXN0ZXA6IDEsDQoNCgkJY2hhbmdlOiBudWxsLA0KCQlzcGluOiBudWxsLA0KCQlzdGFydDogbnVsbCwNCgkJc3RvcDogbnVsbA0KCX0sDQoNCglfY3JlYXRlOiBmdW5jdGlvbigpIHsNCg0KCQkvLyBoYW5kbGUgc3RyaW5nIHZhbHVlcyB0aGF0IG5lZWQgdG8gYmUgcGFyc2VkDQoJCXRoaXMuX3NldE9wdGlvbiggIm1heCIsIHRoaXMub3B0aW9ucy5tYXggKTsNCgkJdGhpcy5fc2V0T3B0aW9uKCAibWluIiwgdGhpcy5vcHRpb25zLm1pbiApOw0KCQl0aGlzLl9zZXRPcHRpb24oICJzdGVwIiwgdGhpcy5vcHRpb25zLnN0ZXAgKTsNCg0KCQkvLyBPbmx5IGZvcm1hdCBpZiB0aGVyZSBpcyBhIHZhbHVlLCBwcmV2ZW50cyB0aGUgZmllbGQgZnJvbSBiZWluZyBtYXJrZWQNCgkJLy8gYXMgaW52YWxpZCBpbiBGaXJlZm94LCBzZWUgIzk1NzMuDQoJCWlmICggdGhpcy52YWx1ZSgpICE9PSAiIiApIHsNCg0KCQkJLy8gRm9ybWF0IHRoZSB2YWx1ZSwgYnV0IGRvbid0IGNvbnN0cmFpbi4NCgkJCXRoaXMuX3ZhbHVlKCB0aGlzLmVsZW1lbnQudmFsKCksIHRydWUgKTsNCgkJfQ0KDQoJCXRoaXMuX2RyYXcoKTsNCgkJdGhpcy5fb24oIHRoaXMuX2V2ZW50cyApOw0KCQl0aGlzLl9yZWZyZXNoKCk7DQoNCgkJLy8gVHVybmluZyBvZmYgYXV0b2NvbXBsZXRlIHByZXZlbnRzIHRoZSBicm93c2VyIGZyb20gcmVtZW1iZXJpbmcgdGhlDQoJCS8vIHZhbHVlIHdoZW4gbmF2aWdhdGluZyB0aHJvdWdoIGhpc3RvcnksIHNvIHdlIHJlLWVuYWJsZSBhdXRvY29tcGxldGUNCgkJLy8gaWYgdGhlIHBhZ2UgaXMgdW5sb2FkZWQgYmVmb3JlIHRoZSB3aWRnZXQgaXMgZGVzdHJveWVkLiAjNzc5MA0KCQl0aGlzLl9vbiggdGhpcy53aW5kb3csIHsNCgkJCWJlZm9yZXVubG9hZDogZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoICJhdXRvY29tcGxldGUiICk7DQoJCQl9DQoJCX0gKTsNCgl9LA0KDQoJX2dldENyZWF0ZU9wdGlvbnM6IGZ1bmN0aW9uKCkgew0KCQl2YXIgb3B0aW9ucyA9IHRoaXMuX3N1cGVyKCk7DQoJCXZhciBlbGVtZW50ID0gdGhpcy5lbGVtZW50Ow0KDQoJCSQuZWFjaCggWyAibWluIiwgIm1heCIsICJzdGVwIiBdLCBmdW5jdGlvbiggaSwgb3B0aW9uICkgew0KCQkJdmFyIHZhbHVlID0gZWxlbWVudC5hdHRyKCBvcHRpb24gKTsNCgkJCWlmICggdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZS5sZW5ndGggKSB7DQoJCQkJb3B0aW9uc1sgb3B0aW9uIF0gPSB2YWx1ZTsNCgkJCX0NCgkJfSApOw0KDQoJCXJldHVybiBvcHRpb25zOw0KCX0sDQoNCglfZXZlbnRzOiB7DQoJCWtleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCWlmICggdGhpcy5fc3RhcnQoIGV2ZW50ICkgJiYgdGhpcy5fa2V5ZG93biggZXZlbnQgKSApIHsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfQ0KCQl9LA0KCQlrZXl1cDogIl9zdG9wIiwNCgkJZm9jdXM6IGZ1bmN0aW9uKCkgew0KCQkJdGhpcy5wcmV2aW91cyA9IHRoaXMuZWxlbWVudC52YWwoKTsNCgkJfSwNCgkJYmx1cjogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJaWYgKCB0aGlzLmNhbmNlbEJsdXIgKSB7DQoJCQkJZGVsZXRlIHRoaXMuY2FuY2VsQmx1cjsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCXRoaXMuX3N0b3AoKTsNCgkJCXRoaXMuX3JlZnJlc2goKTsNCgkJCWlmICggdGhpcy5wcmV2aW91cyAhPT0gdGhpcy5lbGVtZW50LnZhbCgpICkgew0KCQkJCXRoaXMuX3RyaWdnZXIoICJjaGFuZ2UiLCBldmVudCApOw0KCQkJfQ0KCQl9LA0KCQltb3VzZXdoZWVsOiBmdW5jdGlvbiggZXZlbnQsIGRlbHRhICkgew0KCQkJaWYgKCAhZGVsdGEgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJaWYgKCAhdGhpcy5zcGlubmluZyAmJiAhdGhpcy5fc3RhcnQoIGV2ZW50ICkgKSB7DQoJCQkJcmV0dXJuIGZhbHNlOw0KCQkJfQ0KDQoJCQl0aGlzLl9zcGluKCAoIGRlbHRhID4gMCA/IDEgOiAtMSApICogdGhpcy5vcHRpb25zLnN0ZXAsIGV2ZW50ICk7DQoJCQljbGVhclRpbWVvdXQoIHRoaXMubW91c2V3aGVlbFRpbWVyICk7DQoJCQl0aGlzLm1vdXNld2hlZWxUaW1lciA9IHRoaXMuX2RlbGF5KCBmdW5jdGlvbigpIHsNCgkJCQlpZiAoIHRoaXMuc3Bpbm5pbmcgKSB7DQoJCQkJCXRoaXMuX3N0b3AoIGV2ZW50ICk7DQoJCQkJfQ0KCQkJfSwgMTAwICk7DQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQl9LA0KCQkibW91c2Vkb3duIC51aS1zcGlubmVyLWJ1dHRvbiI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCXZhciBwcmV2aW91czsNCg0KCQkJLy8gV2UgbmV2ZXIgd2FudCB0aGUgYnV0dG9ucyB0byBoYXZlIGZvY3VzOyB3aGVuZXZlciB0aGUgdXNlciBpcw0KCQkJLy8gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3Bpbm5lciwgdGhlIGZvY3VzIHNob3VsZCBiZSBvbiB0aGUgaW5wdXQuDQoJCQkvLyBJZiB0aGUgaW5wdXQgaXMgZm9jdXNlZCB0aGVuIHRoaXMucHJldmlvdXMgaXMgcHJvcGVybHkgc2V0IGZyb20NCgkJCS8vIHdoZW4gdGhlIGlucHV0IGZpcnN0IHJlY2VpdmVkIGZvY3VzLiBJZiB0aGUgaW5wdXQgaXMgbm90IGZvY3VzZWQNCgkJCS8vIHRoZW4gd2UgbmVlZCB0byBzZXQgdGhpcy5wcmV2aW91cyBiYXNlZCBvbiB0aGUgdmFsdWUgYmVmb3JlIHNwaW5uaW5nLg0KCQkJcHJldmlvdXMgPSB0aGlzLmVsZW1lbnRbIDAgXSA9PT0gJC51aS5zYWZlQWN0aXZlRWxlbWVudCggdGhpcy5kb2N1bWVudFsgMCBdICkgPw0KCQkJCXRoaXMucHJldmlvdXMgOiB0aGlzLmVsZW1lbnQudmFsKCk7DQoJCQlmdW5jdGlvbiBjaGVja0ZvY3VzKCkgew0KCQkJCXZhciBpc0FjdGl2ZSA9IHRoaXMuZWxlbWVudFsgMCBdID09PSAkLnVpLnNhZmVBY3RpdmVFbGVtZW50KCB0aGlzLmRvY3VtZW50WyAwIF0gKTsNCgkJCQlpZiAoICFpc0FjdGl2ZSApIHsNCgkJCQkJdGhpcy5lbGVtZW50LnRyaWdnZXIoICJmb2N1cyIgKTsNCgkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KDQoJCQkJCS8vIHN1cHBvcnQ6IElFDQoJCQkJCS8vIElFIHNldHMgZm9jdXMgYXN5bmNocm9ub3VzbHksIHNvIHdlIG5lZWQgdG8gY2hlY2sgaWYgZm9jdXMNCgkJCQkJLy8gbW92ZWQgb2ZmIG9mIHRoZSBpbnB1dCBiZWNhdXNlIHRoZSB1c2VyIGNsaWNrZWQgb24gdGhlIGJ1dHRvbi4NCgkJCQkJdGhpcy5fZGVsYXkoIGZ1bmN0aW9uKCkgew0KCQkJCQkJdGhpcy5wcmV2aW91cyA9IHByZXZpb3VzOw0KCQkJCQl9ICk7DQoJCQkJfQ0KCQkJfQ0KDQoJCQkvLyBFbnN1cmUgZm9jdXMgaXMgb24gKG9yIHN0YXlzIG9uKSB0aGUgdGV4dCBmaWVsZA0KCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCWNoZWNrRm9jdXMuY2FsbCggdGhpcyApOw0KDQoJCQkvLyBTdXBwb3J0OiBJRQ0KCQkJLy8gSUUgZG9lc24ndCBwcmV2ZW50IG1vdmluZyBmb2N1cyBldmVuIHdpdGggZXZlbnQucHJldmVudERlZmF1bHQoKQ0KCQkJLy8gc28gd2Ugc2V0IGEgZmxhZyB0byBrbm93IHdoZW4gd2Ugc2hvdWxkIGlnbm9yZSB0aGUgYmx1ciBldmVudA0KCQkJLy8gYW5kIGNoZWNrIChhZ2FpbikgaWYgZm9jdXMgbW92ZWQgb2ZmIG9mIHRoZSBpbnB1dC4NCgkJCXRoaXMuY2FuY2VsQmx1ciA9IHRydWU7DQoJCQl0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQkJZGVsZXRlIHRoaXMuY2FuY2VsQmx1cjsNCgkJCQljaGVja0ZvY3VzLmNhbGwoIHRoaXMgKTsNCgkJCX0gKTsNCg0KCQkJaWYgKCB0aGlzLl9zdGFydCggZXZlbnQgKSA9PT0gZmFsc2UgKSB7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKQ0KCQkJCS5oYXNDbGFzcyggInVpLXNwaW5uZXItdXAiICkgPyAxIDogLTEsIGV2ZW50ICk7DQoJCX0sDQoJCSJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6ICJfc3RvcCIsDQoJCSJtb3VzZWVudGVyIC51aS1zcGlubmVyLWJ1dHRvbiI6IGZ1bmN0aW9uKCBldmVudCApIHsNCg0KCQkJLy8gYnV0dG9uIHdpbGwgYWRkIHVpLXN0YXRlLWFjdGl2ZSBpZiBtb3VzZSB3YXMgZG93biB3aGlsZSBtb3VzZWxlYXZlIGFuZCBrZXB0IGRvd24NCgkJCWlmICggISQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKS5oYXNDbGFzcyggInVpLXN0YXRlLWFjdGl2ZSIgKSApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoNCgkJCWlmICggdGhpcy5fc3RhcnQoIGV2ZW50ICkgPT09IGZhbHNlICkgew0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0NCgkJCXRoaXMuX3JlcGVhdCggbnVsbCwgJCggZXZlbnQuY3VycmVudFRhcmdldCApDQoJCQkJLmhhc0NsYXNzKCAidWktc3Bpbm5lci11cCIgKSA/IDEgOiAtMSwgZXZlbnQgKTsNCgkJfSwNCg0KCQkvLyBUT0RPOiBkbyB3ZSByZWFsbHkgd2FudCB0byBjb25zaWRlciB0aGlzIGEgc3RvcD8NCgkJLy8gc2hvdWxkbid0IHdlIGp1c3Qgc3RvcCB0aGUgcmVwZWF0ZXIgYW5kIHdhaXQgdW50aWwgbW91c2V1cCBiZWZvcmUNCgkJLy8gd2UgdHJpZ2dlciB0aGUgc3RvcCBldmVudD8NCgkJIm1vdXNlbGVhdmUgLnVpLXNwaW5uZXItYnV0dG9uIjogIl9zdG9wIg0KCX0sDQoNCgkvLyBTdXBwb3J0IG1vYmlsZSBlbmhhbmNlZCBvcHRpb24gYW5kIG1ha2UgYmFja2NvbXBhdCBtb3JlIHNhbmUNCglfZW5oYW5jZTogZnVuY3Rpb24oKSB7DQoJCXRoaXMudWlTcGlubmVyID0gdGhpcy5lbGVtZW50DQoJCQkuYXR0ciggImF1dG9jb21wbGV0ZSIsICJvZmYiICkNCgkJCS53cmFwKCAiPHNwYW4+IiApDQoJCQkucGFyZW50KCkNCg0KCQkJCS8vIEFkZCBidXR0b25zDQoJCQkJLmFwcGVuZCgNCgkJCQkJIjxhPjwvYT48YT48L2E+Ig0KCQkJCSk7DQoJfSwNCg0KCV9kcmF3OiBmdW5jdGlvbigpIHsNCgkJdGhpcy5fZW5oYW5jZSgpOw0KDQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLnVpU3Bpbm5lciwgInVpLXNwaW5uZXIiLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiApOw0KCQl0aGlzLl9hZGRDbGFzcyggInVpLXNwaW5uZXItaW5wdXQiICk7DQoNCgkJdGhpcy5lbGVtZW50LmF0dHIoICJyb2xlIiwgInNwaW5idXR0b24iICk7DQoNCgkJLy8gQnV0dG9uIGJpbmRpbmdzDQoJCXRoaXMuYnV0dG9ucyA9IHRoaXMudWlTcGlubmVyLmNoaWxkcmVuKCAiYSIgKQ0KCQkJLmF0dHIoICJ0YWJJbmRleCIsIC0xICkNCgkJCS5hdHRyKCAiYXJpYS1oaWRkZW4iLCB0cnVlICkNCgkJCS5idXR0b24oIHsNCgkJCQljbGFzc2VzOiB7DQoJCQkJCSJ1aS1idXR0b24iOiAiIg0KCQkJCX0NCgkJCX0gKTsNCg0KCQkvLyBUT0RPOiBSaWdodCBub3cgYnV0dG9uIGRvZXMgbm90IHN1cHBvcnQgY2xhc3NlcyB0aGlzIGlzIGFscmVhZHkgdXBkYXRlZCBpbiBidXR0b24gUFINCgkJdGhpcy5fcmVtb3ZlQ2xhc3MoIHRoaXMuYnV0dG9ucywgInVpLWNvcm5lci1hbGwiICk7DQoNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuYnV0dG9ucy5maXJzdCgpLCAidWktc3Bpbm5lci1idXR0b24gdWktc3Bpbm5lci11cCIgKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuYnV0dG9ucy5sYXN0KCksICJ1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLWRvd24iICk7DQoJCXRoaXMuYnV0dG9ucy5maXJzdCgpLmJ1dHRvbiggew0KCQkJImljb24iOiB0aGlzLm9wdGlvbnMuaWNvbnMudXAsDQoJCQkic2hvd0xhYmVsIjogZmFsc2UNCgkJfSApOw0KCQl0aGlzLmJ1dHRvbnMubGFzdCgpLmJ1dHRvbiggew0KCQkJImljb24iOiB0aGlzLm9wdGlvbnMuaWNvbnMuZG93biwNCgkJCSJzaG93TGFiZWwiOiBmYWxzZQ0KCQl9ICk7DQoNCgkJLy8gSUUgNiBkb2Vzbid0IHVuZGVyc3RhbmQgaGVpZ2h0OiA1MCUgZm9yIHRoZSBidXR0b25zDQoJCS8vIHVubGVzcyB0aGUgd3JhcHBlciBoYXMgYW4gZXhwbGljaXQgaGVpZ2h0DQoJCWlmICggdGhpcy5idXR0b25zLmhlaWdodCgpID4gTWF0aC5jZWlsKCB0aGlzLnVpU3Bpbm5lci5oZWlnaHQoKSAqIDAuNSApICYmDQoJCQkJdGhpcy51aVNwaW5uZXIuaGVpZ2h0KCkgPiAwICkgew0KCQkJdGhpcy51aVNwaW5uZXIuaGVpZ2h0KCB0aGlzLnVpU3Bpbm5lci5oZWlnaHQoKSApOw0KCQl9DQoJfSwNCg0KCV9rZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJa2V5Q29kZSA9ICQudWkua2V5Q29kZTsNCg0KCQlzd2l0Y2ggKCBldmVudC5rZXlDb2RlICkgew0KCQljYXNlIGtleUNvZGUuVVA6DQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsIDEsIGV2ZW50ICk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJY2FzZSBrZXlDb2RlLkRPV046DQoJCQl0aGlzLl9yZXBlYXQoIG51bGwsIC0xLCBldmVudCApOw0KCQkJcmV0dXJuIHRydWU7DQoJCWNhc2Uga2V5Q29kZS5QQUdFX1VQOg0KCQkJdGhpcy5fcmVwZWF0KCBudWxsLCBvcHRpb25zLnBhZ2UsIGV2ZW50ICk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJY2FzZSBrZXlDb2RlLlBBR0VfRE9XTjoNCgkJCXRoaXMuX3JlcGVhdCggbnVsbCwgLW9wdGlvbnMucGFnZSwgZXZlbnQgKTsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoNCgkJcmV0dXJuIGZhbHNlOw0KCX0sDQoNCglfc3RhcnQ6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJaWYgKCAhdGhpcy5zcGlubmluZyAmJiB0aGlzLl90cmlnZ2VyKCAic3RhcnQiLCBldmVudCApID09PSBmYWxzZSApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCWlmICggIXRoaXMuY291bnRlciApIHsNCgkJCXRoaXMuY291bnRlciA9IDE7DQoJCX0NCgkJdGhpcy5zcGlubmluZyA9IHRydWU7DQoJCXJldHVybiB0cnVlOw0KCX0sDQoNCglfcmVwZWF0OiBmdW5jdGlvbiggaSwgc3RlcHMsIGV2ZW50ICkgew0KCQlpID0gaSB8fCA1MDA7DQoNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7DQoJCXRoaXMudGltZXIgPSB0aGlzLl9kZWxheSggZnVuY3Rpb24oKSB7DQoJCQl0aGlzLl9yZXBlYXQoIDQwLCBzdGVwcywgZXZlbnQgKTsNCgkJfSwgaSApOw0KDQoJCXRoaXMuX3NwaW4oIHN0ZXBzICogdGhpcy5vcHRpb25zLnN0ZXAsIGV2ZW50ICk7DQoJfSwNCg0KCV9zcGluOiBmdW5jdGlvbiggc3RlcCwgZXZlbnQgKSB7DQoJCXZhciB2YWx1ZSA9IHRoaXMudmFsdWUoKSB8fCAwOw0KDQoJCWlmICggIXRoaXMuY291bnRlciApIHsNCgkJCXRoaXMuY291bnRlciA9IDE7DQoJCX0NCg0KCQl2YWx1ZSA9IHRoaXMuX2FkanVzdFZhbHVlKCB2YWx1ZSArIHN0ZXAgKiB0aGlzLl9pbmNyZW1lbnQoIHRoaXMuY291bnRlciApICk7DQoNCgkJaWYgKCAhdGhpcy5zcGlubmluZyB8fCB0aGlzLl90cmlnZ2VyKCAic3BpbiIsIGV2ZW50LCB7IHZhbHVlOiB2YWx1ZSB9ICkgIT09IGZhbHNlICkgew0KCQkJdGhpcy5fdmFsdWUoIHZhbHVlICk7DQoJCQl0aGlzLmNvdW50ZXIrKzsNCgkJfQ0KCX0sDQoNCglfaW5jcmVtZW50OiBmdW5jdGlvbiggaSApIHsNCgkJdmFyIGluY3JlbWVudGFsID0gdGhpcy5vcHRpb25zLmluY3JlbWVudGFsOw0KDQoJCWlmICggaW5jcmVtZW50YWwgKSB7DQoJCQlyZXR1cm4gJC5pc0Z1bmN0aW9uKCBpbmNyZW1lbnRhbCApID8NCgkJCQlpbmNyZW1lbnRhbCggaSApIDoNCgkJCQlNYXRoLmZsb29yKCBpICogaSAqIGkgLyA1MDAwMCAtIGkgKiBpIC8gNTAwICsgMTcgKiBpIC8gMjAwICsgMSApOw0KCQl9DQoNCgkJcmV0dXJuIDE7DQoJfSwNCg0KCV9wcmVjaXNpb246IGZ1bmN0aW9uKCkgew0KCQl2YXIgcHJlY2lzaW9uID0gdGhpcy5fcHJlY2lzaW9uT2YoIHRoaXMub3B0aW9ucy5zdGVwICk7DQoJCWlmICggdGhpcy5vcHRpb25zLm1pbiAhPT0gbnVsbCApIHsNCgkJCXByZWNpc2lvbiA9IE1hdGgubWF4KCBwcmVjaXNpb24sIHRoaXMuX3ByZWNpc2lvbk9mKCB0aGlzLm9wdGlvbnMubWluICkgKTsNCgkJfQ0KCQlyZXR1cm4gcHJlY2lzaW9uOw0KCX0sDQoNCglfcHJlY2lzaW9uT2Y6IGZ1bmN0aW9uKCBudW0gKSB7DQoJCXZhciBzdHIgPSBudW0udG9TdHJpbmcoKSwNCgkJCWRlY2ltYWwgPSBzdHIuaW5kZXhPZiggIi4iICk7DQoJCXJldHVybiBkZWNpbWFsID09PSAtMSA/IDAgOiBzdHIubGVuZ3RoIC0gZGVjaW1hbCAtIDE7DQoJfSwNCg0KCV9hZGp1c3RWYWx1ZTogZnVuY3Rpb24oIHZhbHVlICkgew0KCQl2YXIgYmFzZSwgYWJvdmVNaW4sDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOw0KDQoJCS8vIE1ha2Ugc3VyZSB3ZSdyZSBhdCBhIHZhbGlkIHN0ZXANCgkJLy8gLSBmaW5kIG91dCB3aGVyZSB3ZSBhcmUgcmVsYXRpdmUgdG8gdGhlIGJhc2UgKG1pbiBvciAwKQ0KCQliYXNlID0gb3B0aW9ucy5taW4gIT09IG51bGwgPyBvcHRpb25zLm1pbiA6IDA7DQoJCWFib3ZlTWluID0gdmFsdWUgLSBiYXNlOw0KDQoJCS8vIC0gcm91bmQgdG8gdGhlIG5lYXJlc3Qgc3RlcA0KCQlhYm92ZU1pbiA9IE1hdGgucm91bmQoIGFib3ZlTWluIC8gb3B0aW9ucy5zdGVwICkgKiBvcHRpb25zLnN0ZXA7DQoNCgkJLy8gLSByb3VuZGluZyBpcyBiYXNlZCBvbiAwLCBzbyBhZGp1c3QgYmFjayB0byBvdXIgYmFzZQ0KCQl2YWx1ZSA9IGJhc2UgKyBhYm92ZU1pbjsNCg0KCQkvLyBGaXggcHJlY2lzaW9uIGZyb20gYmFkIEpTIGZsb2F0aW5nIHBvaW50IG1hdGgNCgkJdmFsdWUgPSBwYXJzZUZsb2F0KCB2YWx1ZS50b0ZpeGVkKCB0aGlzLl9wcmVjaXNpb24oKSApICk7DQoNCgkJLy8gQ2xhbXAgdGhlIHZhbHVlDQoJCWlmICggb3B0aW9ucy5tYXggIT09IG51bGwgJiYgdmFsdWUgPiBvcHRpb25zLm1heCApIHsNCgkJCXJldHVybiBvcHRpb25zLm1heDsNCgkJfQ0KCQlpZiAoIG9wdGlvbnMubWluICE9PSBudWxsICYmIHZhbHVlIDwgb3B0aW9ucy5taW4gKSB7DQoJCQlyZXR1cm4gb3B0aW9ucy5taW47DQoJCX0NCg0KCQlyZXR1cm4gdmFsdWU7DQoJfSwNCg0KCV9zdG9wOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggIXRoaXMuc3Bpbm5pbmcgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQljbGVhclRpbWVvdXQoIHRoaXMudGltZXIgKTsNCgkJY2xlYXJUaW1lb3V0KCB0aGlzLm1vdXNld2hlZWxUaW1lciApOw0KCQl0aGlzLmNvdW50ZXIgPSAwOw0KCQl0aGlzLnNwaW5uaW5nID0gZmFsc2U7DQoJCXRoaXMuX3RyaWdnZXIoICJzdG9wIiwgZXZlbnQgKTsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCXZhciBwcmV2VmFsdWUsIGZpcnN0LCBsYXN0Ow0KDQoJCWlmICgga2V5ID09PSAiY3VsdHVyZSIgfHwga2V5ID09PSAibnVtYmVyRm9ybWF0IiApIHsNCgkJCXByZXZWYWx1ZSA9IHRoaXMuX3BhcnNlKCB0aGlzLmVsZW1lbnQudmFsKCkgKTsNCgkJCXRoaXMub3B0aW9uc1sga2V5IF0gPSB2YWx1ZTsNCgkJCXRoaXMuZWxlbWVudC52YWwoIHRoaXMuX2Zvcm1hdCggcHJldlZhbHVlICkgKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCWlmICgga2V5ID09PSAibWF4IiB8fCBrZXkgPT09ICJtaW4iIHx8IGtleSA9PT0gInN0ZXAiICkgew0KCQkJaWYgKCB0eXBlb2YgdmFsdWUgPT09ICJzdHJpbmciICkgew0KCQkJCXZhbHVlID0gdGhpcy5fcGFyc2UoIHZhbHVlICk7DQoJCQl9DQoJCX0NCgkJaWYgKCBrZXkgPT09ICJpY29ucyIgKSB7DQoJCQlmaXJzdCA9IHRoaXMuYnV0dG9ucy5maXJzdCgpLmZpbmQoICIudWktaWNvbiIgKTsNCgkJCXRoaXMuX3JlbW92ZUNsYXNzKCBmaXJzdCwgbnVsbCwgdGhpcy5vcHRpb25zLmljb25zLnVwICk7DQoJCQl0aGlzLl9hZGRDbGFzcyggZmlyc3QsIG51bGwsIHZhbHVlLnVwICk7DQoJCQlsYXN0ID0gdGhpcy5idXR0b25zLmxhc3QoKS5maW5kKCAiLnVpLWljb24iICk7DQoJCQl0aGlzLl9yZW1vdmVDbGFzcyggbGFzdCwgbnVsbCwgdGhpcy5vcHRpb25zLmljb25zLmRvd24gKTsNCgkJCXRoaXMuX2FkZENsYXNzKCBsYXN0LCBudWxsLCB2YWx1ZS5kb3duICk7DQoJCX0NCg0KCQl0aGlzLl9zdXBlcigga2V5LCB2YWx1ZSApOw0KCX0sDQoNCglfc2V0T3B0aW9uRGlzYWJsZWQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJdGhpcy5fc3VwZXIoIHZhbHVlICk7DQoNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIHRoaXMudWlTcGlubmVyLCBudWxsLCAidWktc3RhdGUtZGlzYWJsZWQiLCAhIXZhbHVlICk7DQoJCXRoaXMuZWxlbWVudC5wcm9wKCAiZGlzYWJsZWQiLCAhIXZhbHVlICk7DQoJCXRoaXMuYnV0dG9ucy5idXR0b24oIHZhbHVlID8gImRpc2FibGUiIDogImVuYWJsZSIgKTsNCgl9LA0KDQoJX3NldE9wdGlvbnM6IHNwaW5uZXJNb2RpZmVyKCBmdW5jdGlvbiggb3B0aW9ucyApIHsNCgkJdGhpcy5fc3VwZXIoIG9wdGlvbnMgKTsNCgl9ICksDQoNCglfcGFyc2U6IGZ1bmN0aW9uKCB2YWwgKSB7DQoJCWlmICggdHlwZW9mIHZhbCA9PT0gInN0cmluZyIgJiYgdmFsICE9PSAiIiApIHsNCgkJCXZhbCA9IHdpbmRvdy5HbG9iYWxpemUgJiYgdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCA/DQoJCQkJR2xvYmFsaXplLnBhcnNlRmxvYXQoIHZhbCwgMTAsIHRoaXMub3B0aW9ucy5jdWx0dXJlICkgOiArdmFsOw0KCQl9DQoJCXJldHVybiB2YWwgPT09ICIiIHx8IGlzTmFOKCB2YWwgKSA/IG51bGwgOiB2YWw7DQoJfSwNCg0KCV9mb3JtYXQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHsNCgkJaWYgKCB2YWx1ZSA9PT0gIiIgKSB7DQoJCQlyZXR1cm4gIiI7DQoJCX0NCgkJcmV0dXJuIHdpbmRvdy5HbG9iYWxpemUgJiYgdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCA/DQoJCQlHbG9iYWxpemUuZm9ybWF0KCB2YWx1ZSwgdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCwgdGhpcy5vcHRpb25zLmN1bHR1cmUgKSA6DQoJCQl2YWx1ZTsNCgl9LA0KDQoJX3JlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLmVsZW1lbnQuYXR0ciggew0KCQkJImFyaWEtdmFsdWVtaW4iOiB0aGlzLm9wdGlvbnMubWluLA0KCQkJImFyaWEtdmFsdWVtYXgiOiB0aGlzLm9wdGlvbnMubWF4LA0KDQoJCQkvLyBUT0RPOiB3aGF0IHNob3VsZCB3ZSBkbyB3aXRoIHZhbHVlcyB0aGF0IGNhbid0IGJlIHBhcnNlZD8NCgkJCSJhcmlhLXZhbHVlbm93IjogdGhpcy5fcGFyc2UoIHRoaXMuZWxlbWVudC52YWwoKSApDQoJCX0gKTsNCgl9LA0KDQoJaXNWYWxpZDogZnVuY3Rpb24oKSB7DQoJCXZhciB2YWx1ZSA9IHRoaXMudmFsdWUoKTsNCg0KCQkvLyBOdWxsIGlzIGludmFsaWQNCgkJaWYgKCB2YWx1ZSA9PT0gbnVsbCApIHsNCgkJCXJldHVybiBmYWxzZTsNCgkJfQ0KDQoJCS8vIElmIHZhbHVlIGdldHMgYWRqdXN0ZWQsIGl0J3MgaW52YWxpZA0KCQlyZXR1cm4gdmFsdWUgPT09IHRoaXMuX2FkanVzdFZhbHVlKCB2YWx1ZSApOw0KCX0sDQoNCgkvLyBVcGRhdGUgdGhlIHZhbHVlIHdpdGhvdXQgdHJpZ2dlcmluZyBjaGFuZ2UNCglfdmFsdWU6IGZ1bmN0aW9uKCB2YWx1ZSwgYWxsb3dBbnkgKSB7DQoJCXZhciBwYXJzZWQ7DQoJCWlmICggdmFsdWUgIT09ICIiICkgew0KCQkJcGFyc2VkID0gdGhpcy5fcGFyc2UoIHZhbHVlICk7DQoJCQlpZiAoIHBhcnNlZCAhPT0gbnVsbCApIHsNCgkJCQlpZiAoICFhbGxvd0FueSApIHsNCgkJCQkJcGFyc2VkID0gdGhpcy5fYWRqdXN0VmFsdWUoIHBhcnNlZCApOw0KCQkJCX0NCgkJCQl2YWx1ZSA9IHRoaXMuX2Zvcm1hdCggcGFyc2VkICk7DQoJCQl9DQoJCX0NCgkJdGhpcy5lbGVtZW50LnZhbCggdmFsdWUgKTsNCgkJdGhpcy5fcmVmcmVzaCgpOw0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXRoaXMuZWxlbWVudA0KCQkJLnByb3AoICJkaXNhYmxlZCIsIGZhbHNlICkNCgkJCS5yZW1vdmVBdHRyKCAiYXV0b2NvbXBsZXRlIHJvbGUgYXJpYS12YWx1ZW1pbiBhcmlhLXZhbHVlbWF4IGFyaWEtdmFsdWVub3ciICk7DQoNCgkJdGhpcy51aVNwaW5uZXIucmVwbGFjZVdpdGgoIHRoaXMuZWxlbWVudCApOw0KCX0sDQoNCglzdGVwVXA6IHNwaW5uZXJNb2RpZmVyKCBmdW5jdGlvbiggc3RlcHMgKSB7DQoJCXRoaXMuX3N0ZXBVcCggc3RlcHMgKTsNCgl9ICksDQoJX3N0ZXBVcDogZnVuY3Rpb24oIHN0ZXBzICkgew0KCQlpZiAoIHRoaXMuX3N0YXJ0KCkgKSB7DQoJCQl0aGlzLl9zcGluKCAoIHN0ZXBzIHx8IDEgKSAqIHRoaXMub3B0aW9ucy5zdGVwICk7DQoJCQl0aGlzLl9zdG9wKCk7DQoJCX0NCgl9LA0KDQoJc3RlcERvd246IHNwaW5uZXJNb2RpZmVyKCBmdW5jdGlvbiggc3RlcHMgKSB7DQoJCXRoaXMuX3N0ZXBEb3duKCBzdGVwcyApOw0KCX0gKSwNCglfc3RlcERvd246IGZ1bmN0aW9uKCBzdGVwcyApIHsNCgkJaWYgKCB0aGlzLl9zdGFydCgpICkgew0KCQkJdGhpcy5fc3BpbiggKCBzdGVwcyB8fCAxICkgKiAtdGhpcy5vcHRpb25zLnN0ZXAgKTsNCgkJCXRoaXMuX3N0b3AoKTsNCgkJfQ0KCX0sDQoNCglwYWdlVXA6IHNwaW5uZXJNb2RpZmVyKCBmdW5jdGlvbiggcGFnZXMgKSB7DQoJCXRoaXMuX3N0ZXBVcCggKCBwYWdlcyB8fCAxICkgKiB0aGlzLm9wdGlvbnMucGFnZSApOw0KCX0gKSwNCg0KCXBhZ2VEb3duOiBzcGlubmVyTW9kaWZlciggZnVuY3Rpb24oIHBhZ2VzICkgew0KCQl0aGlzLl9zdGVwRG93biggKCBwYWdlcyB8fCAxICkgKiB0aGlzLm9wdGlvbnMucGFnZSApOw0KCX0gKSwNCg0KCXZhbHVlOiBmdW5jdGlvbiggbmV3VmFsICkgew0KCQlpZiAoICFhcmd1bWVudHMubGVuZ3RoICkgew0KCQkJcmV0dXJuIHRoaXMuX3BhcnNlKCB0aGlzLmVsZW1lbnQudmFsKCkgKTsNCgkJfQ0KCQlzcGlubmVyTW9kaWZlciggdGhpcy5fdmFsdWUgKS5jYWxsKCB0aGlzLCBuZXdWYWwgKTsNCgl9LA0KDQoJd2lkZ2V0OiBmdW5jdGlvbigpIHsNCgkJcmV0dXJuIHRoaXMudWlTcGlubmVyOw0KCX0NCn0gKTsNCg0KLy8gREVQUkVDQVRFRA0KLy8gVE9ETzogc3dpdGNoIHJldHVybiBiYWNrIHRvIHdpZGdldCBkZWNsYXJhdGlvbiBhdCB0b3Agb2YgZmlsZSB3aGVuIHRoaXMgaXMgcmVtb3ZlZA0KaWYgKCAkLnVpQmFja0NvbXBhdCAhPT0gZmFsc2UgKSB7DQoNCgkvLyBCYWNrY29tcGF0IGZvciBzcGlubmVyIGh0bWwgZXh0ZW5zaW9uIHBvaW50cw0KCSQud2lkZ2V0KCAidWkuc3Bpbm5lciIsICQudWkuc3Bpbm5lciwgew0KCQlfZW5oYW5jZTogZnVuY3Rpb24oKSB7DQoJCQl0aGlzLnVpU3Bpbm5lciA9IHRoaXMuZWxlbWVudA0KCQkJCS5hdHRyKCAiYXV0b2NvbXBsZXRlIiwgIm9mZiIgKQ0KCQkJCS53cmFwKCB0aGlzLl91aVNwaW5uZXJIdG1sKCkgKQ0KCQkJCS5wYXJlbnQoKQ0KDQoJCQkJCS8vIEFkZCBidXR0b25zDQoJCQkJCS5hcHBlbmQoIHRoaXMuX2J1dHRvbkh0bWwoKSApOw0KCQl9LA0KCQlfdWlTcGlubmVySHRtbDogZnVuY3Rpb24oKSB7DQoJCQlyZXR1cm4gIjxzcGFuPiI7DQoJCX0sDQoNCgkJX2J1dHRvbkh0bWw6IGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuICI8YT48L2E+PGE+PC9hPiI7DQoJCX0NCgl9ICk7DQp9DQoNCnZhciB3aWRnZXRzU3Bpbm5lciA9ICQudWkuc3Bpbm5lcjsNCg0KDQovKiENCiAqIGpRdWVyeSBVSSBUYWJzIDEuMTIuMQ0KICogaHR0cDovL2pxdWVyeXVpLmNvbQ0KICoNCiAqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzDQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuDQogKiBodHRwOi8vanF1ZXJ5Lm9yZy9saWNlbnNlDQogKi8NCg0KLy8+PmxhYmVsOiBUYWJzDQovLz4+Z3JvdXA6IFdpZGdldHMNCi8vPj5kZXNjcmlwdGlvbjogVHJhbnNmb3JtcyBhIHNldCBvZiBjb250YWluZXIgZWxlbWVudHMgaW50byBhIHRhYiBzdHJ1Y3R1cmUuDQovLz4+ZG9jczogaHR0cDovL2FwaS5qcXVlcnl1aS5jb20vdGFicy8NCi8vPj5kZW1vczogaHR0cDovL2pxdWVyeXVpLmNvbS90YWJzLw0KLy8+PmNzcy5zdHJ1Y3R1cmU6IC4uLy4uL3RoZW1lcy9iYXNlL2NvcmUuY3NzDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvdGFicy5jc3MNCi8vPj5jc3MudGhlbWU6IC4uLy4uL3RoZW1lcy9iYXNlL3RoZW1lLmNzcw0KDQoNCg0KJC53aWRnZXQoICJ1aS50YWJzIiwgew0KCXZlcnNpb246ICIxLjEyLjEiLA0KCWRlbGF5OiAzMDAsDQoJb3B0aW9uczogew0KCQlhY3RpdmU6IG51bGwsDQoJCWNsYXNzZXM6IHsNCgkJCSJ1aS10YWJzIjogInVpLWNvcm5lci1hbGwiLA0KCQkJInVpLXRhYnMtbmF2IjogInVpLWNvcm5lci1hbGwiLA0KCQkJInVpLXRhYnMtcGFuZWwiOiAidWktY29ybmVyLWJvdHRvbSIsDQoJCQkidWktdGFicy10YWIiOiAidWktY29ybmVyLXRvcCINCgkJfSwNCgkJY29sbGFwc2libGU6IGZhbHNlLA0KCQlldmVudDogImNsaWNrIiwNCgkJaGVpZ2h0U3R5bGU6ICJjb250ZW50IiwNCgkJaGlkZTogbnVsbCwNCgkJc2hvdzogbnVsbCwNCg0KCQkvLyBDYWxsYmFja3MNCgkJYWN0aXZhdGU6IG51bGwsDQoJCWJlZm9yZUFjdGl2YXRlOiBudWxsLA0KCQliZWZvcmVMb2FkOiBudWxsLA0KCQlsb2FkOiBudWxsDQoJfSwNCg0KCV9pc0xvY2FsOiAoIGZ1bmN0aW9uKCkgew0KCQl2YXIgcmhhc2ggPSAvIy4qJC87DQoNCgkJcmV0dXJuIGZ1bmN0aW9uKCBhbmNob3IgKSB7DQoJCQl2YXIgYW5jaG9yVXJsLCBsb2NhdGlvblVybDsNCg0KCQkJYW5jaG9yVXJsID0gYW5jaG9yLmhyZWYucmVwbGFjZSggcmhhc2gsICIiICk7DQoJCQlsb2NhdGlvblVybCA9IGxvY2F0aW9uLmhyZWYucmVwbGFjZSggcmhhc2gsICIiICk7DQoNCgkJCS8vIERlY29kaW5nIG1heSB0aHJvdyBhbiBlcnJvciBpZiB0aGUgVVJMIGlzbid0IFVURi04ICgjOTUxOCkNCgkJCXRyeSB7DQoJCQkJYW5jaG9yVXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KCBhbmNob3JVcmwgKTsNCgkJCX0gY2F0Y2ggKCBlcnJvciApIHt9DQoJCQl0cnkgew0KCQkJCWxvY2F0aW9uVXJsID0gZGVjb2RlVVJJQ29tcG9uZW50KCBsb2NhdGlvblVybCApOw0KCQkJfSBjYXRjaCAoIGVycm9yICkge30NCg0KCQkJcmV0dXJuIGFuY2hvci5oYXNoLmxlbmd0aCA+IDEgJiYgYW5jaG9yVXJsID09PSBsb2NhdGlvblVybDsNCgkJfTsNCgl9ICkoKSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQlvcHRpb25zID0gdGhpcy5vcHRpb25zOw0KDQoJCXRoaXMucnVubmluZyA9IGZhbHNlOw0KDQoJCXRoaXMuX2FkZENsYXNzKCAidWktdGFicyIsICJ1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQiICk7DQoJCXRoaXMuX3RvZ2dsZUNsYXNzKCAidWktdGFicy1jb2xsYXBzaWJsZSIsIG51bGwsIG9wdGlvbnMuY29sbGFwc2libGUgKTsNCg0KCQl0aGlzLl9wcm9jZXNzVGFicygpOw0KCQlvcHRpb25zLmFjdGl2ZSA9IHRoaXMuX2luaXRpYWxBY3RpdmUoKTsNCg0KCQkvLyBUYWtlIGRpc2FibGluZyB0YWJzIHZpYSBjbGFzcyBhdHRyaWJ1dGUgZnJvbSBIVE1MDQoJCS8vIGludG8gYWNjb3VudCBhbmQgdXBkYXRlIG9wdGlvbiBwcm9wZXJseS4NCgkJaWYgKCAkLmlzQXJyYXkoIG9wdGlvbnMuZGlzYWJsZWQgKSApIHsNCgkJCW9wdGlvbnMuZGlzYWJsZWQgPSAkLnVuaXF1ZSggb3B0aW9ucy5kaXNhYmxlZC5jb25jYXQoDQoJCQkJJC5tYXAoIHRoaXMudGFicy5maWx0ZXIoICIudWktc3RhdGUtZGlzYWJsZWQiICksIGZ1bmN0aW9uKCBsaSApIHsNCgkJCQkJcmV0dXJuIHRoYXQudGFicy5pbmRleCggbGkgKTsNCgkJCQl9ICkNCgkJCSkgKS5zb3J0KCk7DQoJCX0NCg0KCQkvLyBDaGVjayBmb3IgbGVuZ3RoIGF2b2lkcyBlcnJvciB3aGVuIGluaXRpYWxpemluZyBlbXB0eSBsaXN0DQoJCWlmICggdGhpcy5vcHRpb25zLmFjdGl2ZSAhPT0gZmFsc2UgJiYgdGhpcy5hbmNob3JzLmxlbmd0aCApIHsNCgkJCXRoaXMuYWN0aXZlID0gdGhpcy5fZmluZEFjdGl2ZSggb3B0aW9ucy5hY3RpdmUgKTsNCgkJfSBlbHNlIHsNCgkJCXRoaXMuYWN0aXZlID0gJCgpOw0KCQl9DQoNCgkJdGhpcy5fcmVmcmVzaCgpOw0KDQoJCWlmICggdGhpcy5hY3RpdmUubGVuZ3RoICkgew0KCQkJdGhpcy5sb2FkKCBvcHRpb25zLmFjdGl2ZSApOw0KCQl9DQoJfSwNCg0KCV9pbml0aWFsQWN0aXZlOiBmdW5jdGlvbigpIHsNCgkJdmFyIGFjdGl2ZSA9IHRoaXMub3B0aW9ucy5hY3RpdmUsDQoJCQljb2xsYXBzaWJsZSA9IHRoaXMub3B0aW9ucy5jb2xsYXBzaWJsZSwNCgkJCWxvY2F0aW9uSGFzaCA9IGxvY2F0aW9uLmhhc2guc3Vic3RyaW5nKCAxICk7DQoNCgkJaWYgKCBhY3RpdmUgPT09IG51bGwgKSB7DQoNCgkJCS8vIGNoZWNrIHRoZSBmcmFnbWVudCBpZGVudGlmaWVyIGluIHRoZSBVUkwNCgkJCWlmICggbG9jYXRpb25IYXNoICkgew0KCQkJCXRoaXMudGFicy5lYWNoKCBmdW5jdGlvbiggaSwgdGFiICkgew0KCQkJCQlpZiAoICQoIHRhYiApLmF0dHIoICJhcmlhLWNvbnRyb2xzIiApID09PSBsb2NhdGlvbkhhc2ggKSB7DQoJCQkJCQlhY3RpdmUgPSBpOw0KCQkJCQkJcmV0dXJuIGZhbHNlOw0KCQkJCQl9DQoJCQkJfSApOw0KCQkJfQ0KDQoJCQkvLyBDaGVjayBmb3IgYSB0YWIgbWFya2VkIGFjdGl2ZSB2aWEgYSBjbGFzcw0KCQkJaWYgKCBhY3RpdmUgPT09IG51bGwgKSB7DQoJCQkJYWN0aXZlID0gdGhpcy50YWJzLmluZGV4KCB0aGlzLnRhYnMuZmlsdGVyKCAiLnVpLXRhYnMtYWN0aXZlIiApICk7DQoJCQl9DQoNCgkJCS8vIE5vIGFjdGl2ZSB0YWIsIHNldCB0byBmYWxzZQ0KCQkJaWYgKCBhY3RpdmUgPT09IG51bGwgfHwgYWN0aXZlID09PSAtMSApIHsNCgkJCQlhY3RpdmUgPSB0aGlzLnRhYnMubGVuZ3RoID8gMCA6IGZhbHNlOw0KCQkJfQ0KCQl9DQoNCgkJLy8gSGFuZGxlIG51bWJlcnM6IG5lZ2F0aXZlLCBvdXQgb2YgcmFuZ2UNCgkJaWYgKCBhY3RpdmUgIT09IGZhbHNlICkgew0KCQkJYWN0aXZlID0gdGhpcy50YWJzLmluZGV4KCB0aGlzLnRhYnMuZXEoIGFjdGl2ZSApICk7DQoJCQlpZiAoIGFjdGl2ZSA9PT0gLTEgKSB7DQoJCQkJYWN0aXZlID0gY29sbGFwc2libGUgPyBmYWxzZSA6IDA7DQoJCQl9DQoJCX0NCg0KCQkvLyBEb24ndCBhbGxvdyBjb2xsYXBzaWJsZTogZmFsc2UgYW5kIGFjdGl2ZTogZmFsc2UNCgkJaWYgKCAhY29sbGFwc2libGUgJiYgYWN0aXZlID09PSBmYWxzZSAmJiB0aGlzLmFuY2hvcnMubGVuZ3RoICkgew0KCQkJYWN0aXZlID0gMDsNCgkJfQ0KDQoJCXJldHVybiBhY3RpdmU7DQoJfSwNCg0KCV9nZXRDcmVhdGVFdmVudERhdGE6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gew0KCQkJdGFiOiB0aGlzLmFjdGl2ZSwNCgkJCXBhbmVsOiAhdGhpcy5hY3RpdmUubGVuZ3RoID8gJCgpIDogdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRoaXMuYWN0aXZlICkNCgkJfTsNCgl9LA0KDQoJX3RhYktleWRvd246IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIGZvY3VzZWRUYWIgPSAkKCAkLnVpLnNhZmVBY3RpdmVFbGVtZW50KCB0aGlzLmRvY3VtZW50WyAwIF0gKSApLmNsb3Nlc3QoICJsaSIgKSwNCgkJCXNlbGVjdGVkSW5kZXggPSB0aGlzLnRhYnMuaW5kZXgoIGZvY3VzZWRUYWIgKSwNCgkJCWdvaW5nRm9yd2FyZCA9IHRydWU7DQoNCgkJaWYgKCB0aGlzLl9oYW5kbGVQYWdlTmF2KCBldmVudCApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJc3dpdGNoICggZXZlbnQua2V5Q29kZSApIHsNCgkJY2FzZSAkLnVpLmtleUNvZGUuUklHSFQ6DQoJCWNhc2UgJC51aS5rZXlDb2RlLkRPV046DQoJCQlzZWxlY3RlZEluZGV4Kys7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuVVA6DQoJCWNhc2UgJC51aS5rZXlDb2RlLkxFRlQ6DQoJCQlnb2luZ0ZvcndhcmQgPSBmYWxzZTsNCgkJCXNlbGVjdGVkSW5kZXgtLTsNCgkJCWJyZWFrOw0KCQljYXNlICQudWkua2V5Q29kZS5FTkQ6DQoJCQlzZWxlY3RlZEluZGV4ID0gdGhpcy5hbmNob3JzLmxlbmd0aCAtIDE7DQoJCQlicmVhazsNCgkJY2FzZSAkLnVpLmtleUNvZGUuSE9NRToNCgkJCXNlbGVjdGVkSW5kZXggPSAwOw0KCQkJYnJlYWs7DQoJCWNhc2UgJC51aS5rZXlDb2RlLlNQQUNFOg0KDQoJCQkvLyBBY3RpdmF0ZSBvbmx5LCBubyBjb2xsYXBzaW5nDQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJY2xlYXJUaW1lb3V0KCB0aGlzLmFjdGl2YXRpbmcgKTsNCgkJCXRoaXMuX2FjdGl2YXRlKCBzZWxlY3RlZEluZGV4ICk7DQoJCQlyZXR1cm47DQoJCWNhc2UgJC51aS5rZXlDb2RlLkVOVEVSOg0KDQoJCQkvLyBUb2dnbGUgKGNhbmNlbCBkZWxheWVkIGFjdGl2YXRpb24sIGFsbG93IGNvbGxhcHNpbmcpDQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJY2xlYXJUaW1lb3V0KCB0aGlzLmFjdGl2YXRpbmcgKTsNCg0KCQkJLy8gRGV0ZXJtaW5lIGlmIHdlIHNob3VsZCBjb2xsYXBzZSBvciBhY3RpdmF0ZQ0KCQkJdGhpcy5fYWN0aXZhdGUoIHNlbGVjdGVkSW5kZXggPT09IHRoaXMub3B0aW9ucy5hY3RpdmUgPyBmYWxzZSA6IHNlbGVjdGVkSW5kZXggKTsNCgkJCXJldHVybjsNCgkJZGVmYXVsdDoNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIEZvY3VzIHRoZSBhcHByb3ByaWF0ZSB0YWIsIGJhc2VkIG9uIHdoaWNoIGtleSB3YXMgcHJlc3NlZA0KCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQljbGVhclRpbWVvdXQoIHRoaXMuYWN0aXZhdGluZyApOw0KCQlzZWxlY3RlZEluZGV4ID0gdGhpcy5fZm9jdXNOZXh0VGFiKCBzZWxlY3RlZEluZGV4LCBnb2luZ0ZvcndhcmQgKTsNCg0KCQkvLyBOYXZpZ2F0aW5nIHdpdGggY29udHJvbC9jb21tYW5kIGtleSB3aWxsIHByZXZlbnQgYXV0b21hdGljIGFjdGl2YXRpb24NCgkJaWYgKCAhZXZlbnQuY3RybEtleSAmJiAhZXZlbnQubWV0YUtleSApIHsNCg0KCQkJLy8gVXBkYXRlIGFyaWEtc2VsZWN0ZWQgaW1tZWRpYXRlbHkgc28gdGhhdCBBVCB0aGluayB0aGUgdGFiIGlzIGFscmVhZHkgc2VsZWN0ZWQuDQoJCQkvLyBPdGhlcndpc2UgQVQgbWF5IGNvbmZ1c2UgdGhlIHVzZXIgYnkgc3RhdGluZyB0aGF0IHRoZXkgbmVlZCB0byBhY3RpdmF0ZSB0aGUgdGFiLA0KCQkJLy8gYnV0IHRoZSB0YWIgd2lsbCBhbHJlYWR5IGJlIGFjdGl2YXRlZCBieSB0aGUgdGltZSB0aGUgYW5ub3VuY2VtZW50IGZpbmlzaGVzLg0KCQkJZm9jdXNlZFRhYi5hdHRyKCAiYXJpYS1zZWxlY3RlZCIsICJmYWxzZSIgKTsNCgkJCXRoaXMudGFicy5lcSggc2VsZWN0ZWRJbmRleCApLmF0dHIoICJhcmlhLXNlbGVjdGVkIiwgInRydWUiICk7DQoNCgkJCXRoaXMuYWN0aXZhdGluZyA9IHRoaXMuX2RlbGF5KCBmdW5jdGlvbigpIHsNCgkJCQl0aGlzLm9wdGlvbiggImFjdGl2ZSIsIHNlbGVjdGVkSW5kZXggKTsNCgkJCX0sIHRoaXMuZGVsYXkgKTsNCgkJfQ0KCX0sDQoNCglfcGFuZWxLZXlkb3duOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggdGhpcy5faGFuZGxlUGFnZU5hdiggZXZlbnQgKSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIEN0cmwrdXAgbW92ZXMgZm9jdXMgdG8gdGhlIGN1cnJlbnQgdGFiDQoJCWlmICggZXZlbnQuY3RybEtleSAmJiBldmVudC5rZXlDb2RlID09PSAkLnVpLmtleUNvZGUuVVAgKSB7DQoJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJdGhpcy5hY3RpdmUudHJpZ2dlciggImZvY3VzIiApOw0KCQl9DQoJfSwNCg0KCS8vIEFsdCtwYWdlIHVwL2Rvd24gbW92ZXMgZm9jdXMgdG8gdGhlIHByZXZpb3VzL25leHQgdGFiIChhbmQgYWN0aXZhdGVzKQ0KCV9oYW5kbGVQYWdlTmF2OiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCWlmICggZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5QQUdFX1VQICkgew0KCQkJdGhpcy5fYWN0aXZhdGUoIHRoaXMuX2ZvY3VzTmV4dFRhYiggdGhpcy5vcHRpb25zLmFjdGl2ZSAtIDEsIGZhbHNlICkgKTsNCgkJCXJldHVybiB0cnVlOw0KCQl9DQoJCWlmICggZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmtleUNvZGUgPT09ICQudWkua2V5Q29kZS5QQUdFX0RPV04gKSB7DQoJCQl0aGlzLl9hY3RpdmF0ZSggdGhpcy5fZm9jdXNOZXh0VGFiKCB0aGlzLm9wdGlvbnMuYWN0aXZlICsgMSwgdHJ1ZSApICk7DQoJCQlyZXR1cm4gdHJ1ZTsNCgkJfQ0KCX0sDQoNCglfZmluZE5leHRUYWI6IGZ1bmN0aW9uKCBpbmRleCwgZ29pbmdGb3J3YXJkICkgew0KCQl2YXIgbGFzdFRhYkluZGV4ID0gdGhpcy50YWJzLmxlbmd0aCAtIDE7DQoNCgkJZnVuY3Rpb24gY29uc3RyYWluKCkgew0KCQkJaWYgKCBpbmRleCA+IGxhc3RUYWJJbmRleCApIHsNCgkJCQlpbmRleCA9IDA7DQoJCQl9DQoJCQlpZiAoIGluZGV4IDwgMCApIHsNCgkJCQlpbmRleCA9IGxhc3RUYWJJbmRleDsNCgkJCX0NCgkJCXJldHVybiBpbmRleDsNCgkJfQ0KDQoJCXdoaWxlICggJC5pbkFycmF5KCBjb25zdHJhaW4oKSwgdGhpcy5vcHRpb25zLmRpc2FibGVkICkgIT09IC0xICkgew0KCQkJaW5kZXggPSBnb2luZ0ZvcndhcmQgPyBpbmRleCArIDEgOiBpbmRleCAtIDE7DQoJCX0NCg0KCQlyZXR1cm4gaW5kZXg7DQoJfSwNCg0KCV9mb2N1c05leHRUYWI6IGZ1bmN0aW9uKCBpbmRleCwgZ29pbmdGb3J3YXJkICkgew0KCQlpbmRleCA9IHRoaXMuX2ZpbmROZXh0VGFiKCBpbmRleCwgZ29pbmdGb3J3YXJkICk7DQoJCXRoaXMudGFicy5lcSggaW5kZXggKS50cmlnZ2VyKCAiZm9jdXMiICk7DQoJCXJldHVybiBpbmRleDsNCgl9LA0KDQoJX3NldE9wdGlvbjogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7DQoJCWlmICgga2V5ID09PSAiYWN0aXZlIiApIHsNCg0KCQkJLy8gX2FjdGl2YXRlKCkgd2lsbCBoYW5kbGUgaW52YWxpZCB2YWx1ZXMgYW5kIHVwZGF0ZSB0aGlzLm9wdGlvbnMNCgkJCXRoaXMuX2FjdGl2YXRlKCB2YWx1ZSApOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy5fc3VwZXIoIGtleSwgdmFsdWUgKTsNCg0KCQlpZiAoIGtleSA9PT0gImNvbGxhcHNpYmxlIiApIHsNCgkJCXRoaXMuX3RvZ2dsZUNsYXNzKCAidWktdGFicy1jb2xsYXBzaWJsZSIsIG51bGwsIHZhbHVlICk7DQoNCgkJCS8vIFNldHRpbmcgY29sbGFwc2libGU6IGZhbHNlIHdoaWxlIGNvbGxhcHNlZDsgb3BlbiBmaXJzdCBwYW5lbA0KCQkJaWYgKCAhdmFsdWUgJiYgdGhpcy5vcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgKSB7DQoJCQkJdGhpcy5fYWN0aXZhdGUoIDAgKTsNCgkJCX0NCgkJfQ0KDQoJCWlmICgga2V5ID09PSAiZXZlbnQiICkgew0KCQkJdGhpcy5fc2V0dXBFdmVudHMoIHZhbHVlICk7DQoJCX0NCg0KCQlpZiAoIGtleSA9PT0gImhlaWdodFN0eWxlIiApIHsNCgkJCXRoaXMuX3NldHVwSGVpZ2h0U3R5bGUoIHZhbHVlICk7DQoJCX0NCgl9LA0KDQoJX3Nhbml0aXplU2VsZWN0b3I6IGZ1bmN0aW9uKCBoYXNoICkgew0KCQlyZXR1cm4gaGFzaCA/IGhhc2gucmVwbGFjZSggL1shIiQlJicoKSorLC5cLzo7PD0+P0BcW1xdXF5ge3x9fl0vZywgIlxcJCYiICkgOiAiIjsNCgl9LA0KDQoJcmVmcmVzaDogZnVuY3Rpb24oKSB7DQoJCXZhciBvcHRpb25zID0gdGhpcy5vcHRpb25zLA0KCQkJbGlzID0gdGhpcy50YWJsaXN0LmNoaWxkcmVuKCAiOmhhcyhhW2hyZWZdKSIgKTsNCg0KCQkvLyBHZXQgZGlzYWJsZWQgdGFicyBmcm9tIGNsYXNzIGF0dHJpYnV0ZSBmcm9tIEhUTUwNCgkJLy8gdGhpcyB3aWxsIGdldCBjb252ZXJ0ZWQgdG8gYSBib29sZWFuIGlmIG5lZWRlZCBpbiBfcmVmcmVzaCgpDQoJCW9wdGlvbnMuZGlzYWJsZWQgPSAkLm1hcCggbGlzLmZpbHRlciggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSwgZnVuY3Rpb24oIHRhYiApIHsNCgkJCXJldHVybiBsaXMuaW5kZXgoIHRhYiApOw0KCQl9ICk7DQoNCgkJdGhpcy5fcHJvY2Vzc1RhYnMoKTsNCg0KCQkvLyBXYXMgY29sbGFwc2VkIG9yIG5vIHRhYnMNCgkJaWYgKCBvcHRpb25zLmFjdGl2ZSA9PT0gZmFsc2UgfHwgIXRoaXMuYW5jaG9ycy5sZW5ndGggKSB7DQoJCQlvcHRpb25zLmFjdGl2ZSA9IGZhbHNlOw0KCQkJdGhpcy5hY3RpdmUgPSAkKCk7DQoNCgkJLy8gd2FzIGFjdGl2ZSwgYnV0IGFjdGl2ZSB0YWIgaXMgZ29uZQ0KCQl9IGVsc2UgaWYgKCB0aGlzLmFjdGl2ZS5sZW5ndGggJiYgISQuY29udGFpbnMoIHRoaXMudGFibGlzdFsgMCBdLCB0aGlzLmFjdGl2ZVsgMCBdICkgKSB7DQoNCgkJCS8vIGFsbCByZW1haW5pbmcgdGFicyBhcmUgZGlzYWJsZWQNCgkJCWlmICggdGhpcy50YWJzLmxlbmd0aCA9PT0gb3B0aW9ucy5kaXNhYmxlZC5sZW5ndGggKSB7DQoJCQkJb3B0aW9ucy5hY3RpdmUgPSBmYWxzZTsNCgkJCQl0aGlzLmFjdGl2ZSA9ICQoKTsNCg0KCQkJLy8gYWN0aXZhdGUgcHJldmlvdXMgdGFiDQoJCQl9IGVsc2Ugew0KCQkJCXRoaXMuX2FjdGl2YXRlKCB0aGlzLl9maW5kTmV4dFRhYiggTWF0aC5tYXgoIDAsIG9wdGlvbnMuYWN0aXZlIC0gMSApLCBmYWxzZSApICk7DQoJCQl9DQoNCgkJLy8gd2FzIGFjdGl2ZSwgYWN0aXZlIHRhYiBzdGlsbCBleGlzdHMNCgkJfSBlbHNlIHsNCg0KCQkJLy8gbWFrZSBzdXJlIGFjdGl2ZSBpbmRleCBpcyBjb3JyZWN0DQoJCQlvcHRpb25zLmFjdGl2ZSA9IHRoaXMudGFicy5pbmRleCggdGhpcy5hY3RpdmUgKTsNCgkJfQ0KDQoJCXRoaXMuX3JlZnJlc2goKTsNCgl9LA0KDQoJX3JlZnJlc2g6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCggdGhpcy5vcHRpb25zLmRpc2FibGVkICk7DQoJCXRoaXMuX3NldHVwRXZlbnRzKCB0aGlzLm9wdGlvbnMuZXZlbnQgKTsNCgkJdGhpcy5fc2V0dXBIZWlnaHRTdHlsZSggdGhpcy5vcHRpb25zLmhlaWdodFN0eWxlICk7DQoNCgkJdGhpcy50YWJzLm5vdCggdGhpcy5hY3RpdmUgKS5hdHRyKCB7DQoJCQkiYXJpYS1zZWxlY3RlZCI6ICJmYWxzZSIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJmYWxzZSIsDQoJCQl0YWJJbmRleDogLTENCgkJfSApOw0KCQl0aGlzLnBhbmVscy5ub3QoIHRoaXMuX2dldFBhbmVsRm9yVGFiKCB0aGlzLmFjdGl2ZSApICkNCgkJCS5oaWRlKCkNCgkJCS5hdHRyKCB7DQoJCQkJImFyaWEtaGlkZGVuIjogInRydWUiDQoJCQl9ICk7DQoNCgkJLy8gTWFrZSBzdXJlIG9uZSB0YWIgaXMgaW4gdGhlIHRhYiBvcmRlcg0KCQlpZiAoICF0aGlzLmFjdGl2ZS5sZW5ndGggKSB7DQoJCQl0aGlzLnRhYnMuZXEoIDAgKS5hdHRyKCAidGFiSW5kZXgiLCAwICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLmFjdGl2ZQ0KCQkJCS5hdHRyKCB7DQoJCQkJCSJhcmlhLXNlbGVjdGVkIjogInRydWUiLA0KCQkJCQkiYXJpYS1leHBhbmRlZCI6ICJ0cnVlIiwNCgkJCQkJdGFiSW5kZXg6IDANCgkJCQl9ICk7DQoJCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5hY3RpdmUsICJ1aS10YWJzLWFjdGl2ZSIsICJ1aS1zdGF0ZS1hY3RpdmUiICk7DQoJCQl0aGlzLl9nZXRQYW5lbEZvclRhYiggdGhpcy5hY3RpdmUgKQ0KCQkJCS5zaG93KCkNCgkJCQkuYXR0ciggew0KCQkJCQkiYXJpYS1oaWRkZW4iOiAiZmFsc2UiDQoJCQkJfSApOw0KCQl9DQoJfSwNCg0KCV9wcm9jZXNzVGFiczogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpcywNCgkJCXByZXZUYWJzID0gdGhpcy50YWJzLA0KCQkJcHJldkFuY2hvcnMgPSB0aGlzLmFuY2hvcnMsDQoJCQlwcmV2UGFuZWxzID0gdGhpcy5wYW5lbHM7DQoNCgkJdGhpcy50YWJsaXN0ID0gdGhpcy5fZ2V0TGlzdCgpLmF0dHIoICJyb2xlIiwgInRhYmxpc3QiICk7DQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLnRhYmxpc3QsICJ1aS10YWJzLW5hdiIsDQoJCQkidWktaGVscGVyLXJlc2V0IHVpLWhlbHBlci1jbGVhcmZpeCB1aS13aWRnZXQtaGVhZGVyIiApOw0KDQoJCS8vIFByZXZlbnQgdXNlcnMgZnJvbSBmb2N1c2luZyBkaXNhYmxlZCB0YWJzIHZpYSBjbGljaw0KCQl0aGlzLnRhYmxpc3QNCgkJCS5vbiggIm1vdXNlZG93biIgKyB0aGlzLmV2ZW50TmFtZXNwYWNlLCAiPiBsaSIsIGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlpZiAoICQoIHRoaXMgKS5pcyggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSApIHsNCgkJCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsNCgkJCQl9DQoJCQl9ICkNCg0KCQkJLy8gU3VwcG9ydDogSUUgPDkNCgkJCS8vIFByZXZlbnRpbmcgdGhlIGRlZmF1bHQgYWN0aW9uIGluIG1vdXNlZG93biBkb2Vzbid0IHByZXZlbnQgSUUNCgkJCS8vIGZyb20gZm9jdXNpbmcgdGhlIGVsZW1lbnQsIHNvIGlmIHRoZSBhbmNob3IgZ2V0cyBmb2N1c2VkLCBibHVyLg0KCQkJLy8gV2UgZG9uJ3QgaGF2ZSB0byB3b3JyeSBhYm91dCBmb2N1c2luZyB0aGUgcHJldmlvdXNseSBmb2N1c2VkDQoJCQkvLyBlbGVtZW50IHNpbmNlIGNsaWNraW5nIG9uIGEgbm9uLWZvY3VzYWJsZSBlbGVtZW50IHNob3VsZCBmb2N1cw0KCQkJLy8gdGhlIGJvZHkgYW55d2F5Lg0KCQkJLm9uKCAiZm9jdXMiICsgdGhpcy5ldmVudE5hbWVzcGFjZSwgIi51aS10YWJzLWFuY2hvciIsIGZ1bmN0aW9uKCkgew0KCQkJCWlmICggJCggdGhpcyApLmNsb3Nlc3QoICJsaSIgKS5pcyggIi51aS1zdGF0ZS1kaXNhYmxlZCIgKSApIHsNCgkJCQkJdGhpcy5ibHVyKCk7DQoJCQkJfQ0KCQkJfSApOw0KDQoJCXRoaXMudGFicyA9IHRoaXMudGFibGlzdC5maW5kKCAiPiBsaTpoYXMoYVtocmVmXSkiICkNCgkJCS5hdHRyKCB7DQoJCQkJcm9sZTogInRhYiIsDQoJCQkJdGFiSW5kZXg6IC0xDQoJCQl9ICk7DQoJCXRoaXMuX2FkZENsYXNzKCB0aGlzLnRhYnMsICJ1aS10YWJzLXRhYiIsICJ1aS1zdGF0ZS1kZWZhdWx0IiApOw0KDQoJCXRoaXMuYW5jaG9ycyA9IHRoaXMudGFicy5tYXAoIGZ1bmN0aW9uKCkgew0KCQkJcmV0dXJuICQoICJhIiwgdGhpcyApWyAwIF07DQoJCX0gKQ0KCQkJLmF0dHIoIHsNCgkJCQlyb2xlOiAicHJlc2VudGF0aW9uIiwNCgkJCQl0YWJJbmRleDogLTENCgkJCX0gKTsNCgkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMuYW5jaG9ycywgInVpLXRhYnMtYW5jaG9yIiApOw0KDQoJCXRoaXMucGFuZWxzID0gJCgpOw0KDQoJCXRoaXMuYW5jaG9ycy5lYWNoKCBmdW5jdGlvbiggaSwgYW5jaG9yICkgew0KCQkJdmFyIHNlbGVjdG9yLCBwYW5lbCwgcGFuZWxJZCwNCgkJCQlhbmNob3JJZCA9ICQoIGFuY2hvciApLnVuaXF1ZUlkKCkuYXR0ciggImlkIiApLA0KCQkJCXRhYiA9ICQoIGFuY2hvciApLmNsb3Nlc3QoICJsaSIgKSwNCgkJCQlvcmlnaW5hbEFyaWFDb250cm9scyA9IHRhYi5hdHRyKCAiYXJpYS1jb250cm9scyIgKTsNCg0KCQkJLy8gSW5saW5lIHRhYg0KCQkJaWYgKCB0aGF0Ll9pc0xvY2FsKCBhbmNob3IgKSApIHsNCgkJCQlzZWxlY3RvciA9IGFuY2hvci5oYXNoOw0KCQkJCXBhbmVsSWQgPSBzZWxlY3Rvci5zdWJzdHJpbmcoIDEgKTsNCgkJCQlwYW5lbCA9IHRoYXQuZWxlbWVudC5maW5kKCB0aGF0Ll9zYW5pdGl6ZVNlbGVjdG9yKCBzZWxlY3RvciApICk7DQoNCgkJCS8vIHJlbW90ZSB0YWINCgkJCX0gZWxzZSB7DQoNCgkJCQkvLyBJZiB0aGUgdGFiIGRvZXNuJ3QgYWxyZWFkeSBoYXZlIGFyaWEtY29udHJvbHMsDQoJCQkJLy8gZ2VuZXJhdGUgYW4gaWQgYnkgdXNpbmcgYSB0aHJvdy1hd2F5IGVsZW1lbnQNCgkJCQlwYW5lbElkID0gdGFiLmF0dHIoICJhcmlhLWNvbnRyb2xzIiApIHx8ICQoIHt9ICkudW5pcXVlSWQoKVsgMCBdLmlkOw0KCQkJCXNlbGVjdG9yID0gIiMiICsgcGFuZWxJZDsNCgkJCQlwYW5lbCA9IHRoYXQuZWxlbWVudC5maW5kKCBzZWxlY3RvciApOw0KCQkJCWlmICggIXBhbmVsLmxlbmd0aCApIHsNCgkJCQkJcGFuZWwgPSB0aGF0Ll9jcmVhdGVQYW5lbCggcGFuZWxJZCApOw0KCQkJCQlwYW5lbC5pbnNlcnRBZnRlciggdGhhdC5wYW5lbHNbIGkgLSAxIF0gfHwgdGhhdC50YWJsaXN0ICk7DQoJCQkJfQ0KCQkJCXBhbmVsLmF0dHIoICJhcmlhLWxpdmUiLCAicG9saXRlIiApOw0KCQkJfQ0KDQoJCQlpZiAoIHBhbmVsLmxlbmd0aCApIHsNCgkJCQl0aGF0LnBhbmVscyA9IHRoYXQucGFuZWxzLmFkZCggcGFuZWwgKTsNCgkJCX0NCgkJCWlmICggb3JpZ2luYWxBcmlhQ29udHJvbHMgKSB7DQoJCQkJdGFiLmRhdGEoICJ1aS10YWJzLWFyaWEtY29udHJvbHMiLCBvcmlnaW5hbEFyaWFDb250cm9scyApOw0KCQkJfQ0KCQkJdGFiLmF0dHIoIHsNCgkJCQkiYXJpYS1jb250cm9scyI6IHBhbmVsSWQsDQoJCQkJImFyaWEtbGFiZWxsZWRieSI6IGFuY2hvcklkDQoJCQl9ICk7DQoJCQlwYW5lbC5hdHRyKCAiYXJpYS1sYWJlbGxlZGJ5IiwgYW5jaG9ySWQgKTsNCgkJfSApOw0KDQoJCXRoaXMucGFuZWxzLmF0dHIoICJyb2xlIiwgInRhYnBhbmVsIiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5wYW5lbHMsICJ1aS10YWJzLXBhbmVsIiwgInVpLXdpZGdldC1jb250ZW50IiApOw0KDQoJCS8vIEF2b2lkIG1lbW9yeSBsZWFrcyAoIzEwMDU2KQ0KCQlpZiAoIHByZXZUYWJzICkgew0KCQkJdGhpcy5fb2ZmKCBwcmV2VGFicy5ub3QoIHRoaXMudGFicyApICk7DQoJCQl0aGlzLl9vZmYoIHByZXZBbmNob3JzLm5vdCggdGhpcy5hbmNob3JzICkgKTsNCgkJCXRoaXMuX29mZiggcHJldlBhbmVscy5ub3QoIHRoaXMucGFuZWxzICkgKTsNCgkJfQ0KCX0sDQoNCgkvLyBBbGxvdyBvdmVycmlkaW5nIGhvdyB0byBmaW5kIHRoZSBsaXN0IGZvciByYXJlIHVzYWdlIHNjZW5hcmlvcyAoIzc3MTUpDQoJX2dldExpc3Q6IGZ1bmN0aW9uKCkgew0KCQlyZXR1cm4gdGhpcy50YWJsaXN0IHx8IHRoaXMuZWxlbWVudC5maW5kKCAib2wsIHVsIiApLmVxKCAwICk7DQoJfSwNCg0KCV9jcmVhdGVQYW5lbDogZnVuY3Rpb24oIGlkICkgew0KCQlyZXR1cm4gJCggIjxkaXY+IiApDQoJCQkuYXR0ciggImlkIiwgaWQgKQ0KCQkJLmRhdGEoICJ1aS10YWJzLWRlc3Ryb3kiLCB0cnVlICk7DQoJfSwNCg0KCV9zZXRPcHRpb25EaXNhYmxlZDogZnVuY3Rpb24oIGRpc2FibGVkICkgew0KCQl2YXIgY3VycmVudEl0ZW0sIGxpLCBpOw0KDQoJCWlmICggJC5pc0FycmF5KCBkaXNhYmxlZCApICkgew0KCQkJaWYgKCAhZGlzYWJsZWQubGVuZ3RoICkgew0KCQkJCWRpc2FibGVkID0gZmFsc2U7DQoJCQl9IGVsc2UgaWYgKCBkaXNhYmxlZC5sZW5ndGggPT09IHRoaXMuYW5jaG9ycy5sZW5ndGggKSB7DQoJCQkJZGlzYWJsZWQgPSB0cnVlOw0KCQkJfQ0KCQl9DQoNCgkJLy8gRGlzYWJsZSB0YWJzDQoJCWZvciAoIGkgPSAwOyAoIGxpID0gdGhpcy50YWJzWyBpIF0gKTsgaSsrICkgew0KCQkJY3VycmVudEl0ZW0gPSAkKCBsaSApOw0KCQkJaWYgKCBkaXNhYmxlZCA9PT0gdHJ1ZSB8fCAkLmluQXJyYXkoIGksIGRpc2FibGVkICkgIT09IC0xICkgew0KCQkJCWN1cnJlbnRJdGVtLmF0dHIoICJhcmlhLWRpc2FibGVkIiwgInRydWUiICk7DQoJCQkJdGhpcy5fYWRkQ2xhc3MoIGN1cnJlbnRJdGVtLCBudWxsLCAidWktc3RhdGUtZGlzYWJsZWQiICk7DQoJCQl9IGVsc2Ugew0KCQkJCWN1cnJlbnRJdGVtLnJlbW92ZUF0dHIoICJhcmlhLWRpc2FibGVkIiApOw0KCQkJCXRoaXMuX3JlbW92ZUNsYXNzKCBjdXJyZW50SXRlbSwgbnVsbCwgInVpLXN0YXRlLWRpc2FibGVkIiApOw0KCQkJfQ0KCQl9DQoNCgkJdGhpcy5vcHRpb25zLmRpc2FibGVkID0gZGlzYWJsZWQ7DQoNCgkJdGhpcy5fdG9nZ2xlQ2xhc3MoIHRoaXMud2lkZ2V0KCksIHRoaXMud2lkZ2V0RnVsbE5hbWUgKyAiLWRpc2FibGVkIiwgbnVsbCwNCgkJCWRpc2FibGVkID09PSB0cnVlICk7DQoJfSwNCg0KCV9zZXR1cEV2ZW50czogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQl2YXIgZXZlbnRzID0ge307DQoJCWlmICggZXZlbnQgKSB7DQoJCQkkLmVhY2goIGV2ZW50LnNwbGl0KCAiICIgKSwgZnVuY3Rpb24oIGluZGV4LCBldmVudE5hbWUgKSB7DQoJCQkJZXZlbnRzWyBldmVudE5hbWUgXSA9ICJfZXZlbnRIYW5kbGVyIjsNCgkJCX0gKTsNCgkJfQ0KDQoJCXRoaXMuX29mZiggdGhpcy5hbmNob3JzLmFkZCggdGhpcy50YWJzICkuYWRkKCB0aGlzLnBhbmVscyApICk7DQoNCgkJLy8gQWx3YXlzIHByZXZlbnQgdGhlIGRlZmF1bHQgYWN0aW9uLCBldmVuIHdoZW4gZGlzYWJsZWQNCgkJdGhpcy5fb24oIHRydWUsIHRoaXMuYW5jaG9ycywgew0KCQkJY2xpY2s6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KCQkJfQ0KCQl9ICk7DQoJCXRoaXMuX29uKCB0aGlzLmFuY2hvcnMsIGV2ZW50cyApOw0KCQl0aGlzLl9vbiggdGhpcy50YWJzLCB7IGtleWRvd246ICJfdGFiS2V5ZG93biIgfSApOw0KCQl0aGlzLl9vbiggdGhpcy5wYW5lbHMsIHsga2V5ZG93bjogIl9wYW5lbEtleWRvd24iIH0gKTsNCg0KCQl0aGlzLl9mb2N1c2FibGUoIHRoaXMudGFicyApOw0KCQl0aGlzLl9ob3ZlcmFibGUoIHRoaXMudGFicyApOw0KCX0sDQoNCglfc2V0dXBIZWlnaHRTdHlsZTogZnVuY3Rpb24oIGhlaWdodFN0eWxlICkgew0KCQl2YXIgbWF4SGVpZ2h0LA0KCQkJcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudCgpOw0KDQoJCWlmICggaGVpZ2h0U3R5bGUgPT09ICJmaWxsIiApIHsNCgkJCW1heEhlaWdodCA9IHBhcmVudC5oZWlnaHQoKTsNCgkJCW1heEhlaWdodCAtPSB0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKSAtIHRoaXMuZWxlbWVudC5oZWlnaHQoKTsNCg0KCQkJdGhpcy5lbGVtZW50LnNpYmxpbmdzKCAiOnZpc2libGUiICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJdmFyIGVsZW0gPSAkKCB0aGlzICksDQoJCQkJCXBvc2l0aW9uID0gZWxlbS5jc3MoICJwb3NpdGlvbiIgKTsNCg0KCQkJCWlmICggcG9zaXRpb24gPT09ICJhYnNvbHV0ZSIgfHwgcG9zaXRpb24gPT09ICJmaXhlZCIgKSB7DQoJCQkJCXJldHVybjsNCgkJCQl9DQoJCQkJbWF4SGVpZ2h0IC09IGVsZW0ub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0gKTsNCg0KCQkJdGhpcy5lbGVtZW50LmNoaWxkcmVuKCkubm90KCB0aGlzLnBhbmVscyApLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCW1heEhlaWdodCAtPSAkKCB0aGlzICkub3V0ZXJIZWlnaHQoIHRydWUgKTsNCgkJCX0gKTsNCg0KCQkJdGhpcy5wYW5lbHMuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQkJJCggdGhpcyApLmhlaWdodCggTWF0aC5tYXgoIDAsIG1heEhlaWdodCAtDQoJCQkJCSQoIHRoaXMgKS5pbm5lckhlaWdodCgpICsgJCggdGhpcyApLmhlaWdodCgpICkgKTsNCgkJCX0gKQ0KCQkJCS5jc3MoICJvdmVyZmxvdyIsICJhdXRvIiApOw0KCQl9IGVsc2UgaWYgKCBoZWlnaHRTdHlsZSA9PT0gImF1dG8iICkgew0KCQkJbWF4SGVpZ2h0ID0gMDsNCgkJCXRoaXMucGFuZWxzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCW1heEhlaWdodCA9IE1hdGgubWF4KCBtYXhIZWlnaHQsICQoIHRoaXMgKS5oZWlnaHQoICIiICkuaGVpZ2h0KCkgKTsNCgkJCX0gKS5oZWlnaHQoIG1heEhlaWdodCApOw0KCQl9DQoJfSwNCg0KCV9ldmVudEhhbmRsZXI6IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMsDQoJCQlhY3RpdmUgPSB0aGlzLmFjdGl2ZSwNCgkJCWFuY2hvciA9ICQoIGV2ZW50LmN1cnJlbnRUYXJnZXQgKSwNCgkJCXRhYiA9IGFuY2hvci5jbG9zZXN0KCAibGkiICksDQoJCQljbGlja2VkSXNBY3RpdmUgPSB0YWJbIDAgXSA9PT0gYWN0aXZlWyAwIF0sDQoJCQljb2xsYXBzaW5nID0gY2xpY2tlZElzQWN0aXZlICYmIG9wdGlvbnMuY29sbGFwc2libGUsDQoJCQl0b1Nob3cgPSBjb2xsYXBzaW5nID8gJCgpIDogdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRhYiApLA0KCQkJdG9IaWRlID0gIWFjdGl2ZS5sZW5ndGggPyAkKCkgOiB0aGlzLl9nZXRQYW5lbEZvclRhYiggYWN0aXZlICksDQoJCQlldmVudERhdGEgPSB7DQoJCQkJb2xkVGFiOiBhY3RpdmUsDQoJCQkJb2xkUGFuZWw6IHRvSGlkZSwNCgkJCQluZXdUYWI6IGNvbGxhcHNpbmcgPyAkKCkgOiB0YWIsDQoJCQkJbmV3UGFuZWw6IHRvU2hvdw0KCQkJfTsNCg0KCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOw0KDQoJCWlmICggdGFiLmhhc0NsYXNzKCAidWktc3RhdGUtZGlzYWJsZWQiICkgfHwNCg0KCQkJCS8vIHRhYiBpcyBhbHJlYWR5IGxvYWRpbmcNCgkJCQl0YWIuaGFzQ2xhc3MoICJ1aS10YWJzLWxvYWRpbmciICkgfHwNCg0KCQkJCS8vIGNhbid0IHN3aXRjaCBkdXJuaW5nIGFuIGFuaW1hdGlvbg0KCQkJCXRoaXMucnVubmluZyB8fA0KDQoJCQkJLy8gY2xpY2sgb24gYWN0aXZlIGhlYWRlciwgYnV0IG5vdCBjb2xsYXBzaWJsZQ0KCQkJCSggY2xpY2tlZElzQWN0aXZlICYmICFvcHRpb25zLmNvbGxhcHNpYmxlICkgfHwNCg0KCQkJCS8vIGFsbG93IGNhbmNlbGluZyBhY3RpdmF0aW9uDQoJCQkJKCB0aGlzLl90cmlnZ2VyKCAiYmVmb3JlQWN0aXZhdGUiLCBldmVudCwgZXZlbnREYXRhICkgPT09IGZhbHNlICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlvcHRpb25zLmFjdGl2ZSA9IGNvbGxhcHNpbmcgPyBmYWxzZSA6IHRoaXMudGFicy5pbmRleCggdGFiICk7DQoNCgkJdGhpcy5hY3RpdmUgPSBjbGlja2VkSXNBY3RpdmUgPyAkKCkgOiB0YWI7DQoJCWlmICggdGhpcy54aHIgKSB7DQoJCQl0aGlzLnhoci5hYm9ydCgpOw0KCQl9DQoNCgkJaWYgKCAhdG9IaWRlLmxlbmd0aCAmJiAhdG9TaG93Lmxlbmd0aCApIHsNCgkJCSQuZXJyb3IoICJqUXVlcnkgVUkgVGFiczogTWlzbWF0Y2hpbmcgZnJhZ21lbnQgaWRlbnRpZmllci4iICk7DQoJCX0NCg0KCQlpZiAoIHRvU2hvdy5sZW5ndGggKSB7DQoJCQl0aGlzLmxvYWQoIHRoaXMudGFicy5pbmRleCggdGFiICksIGV2ZW50ICk7DQoJCX0NCgkJdGhpcy5fdG9nZ2xlKCBldmVudCwgZXZlbnREYXRhICk7DQoJfSwNCg0KCS8vIEhhbmRsZXMgc2hvdy9oaWRlIGZvciBzZWxlY3RpbmcgdGFicw0KCV90b2dnbGU6IGZ1bmN0aW9uKCBldmVudCwgZXZlbnREYXRhICkgew0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQl0b1Nob3cgPSBldmVudERhdGEubmV3UGFuZWwsDQoJCQl0b0hpZGUgPSBldmVudERhdGEub2xkUGFuZWw7DQoNCgkJdGhpcy5ydW5uaW5nID0gdHJ1ZTsNCg0KCQlmdW5jdGlvbiBjb21wbGV0ZSgpIHsNCgkJCXRoYXQucnVubmluZyA9IGZhbHNlOw0KCQkJdGhhdC5fdHJpZ2dlciggImFjdGl2YXRlIiwgZXZlbnQsIGV2ZW50RGF0YSApOw0KCQl9DQoNCgkJZnVuY3Rpb24gc2hvdygpIHsNCgkJCXRoYXQuX2FkZENsYXNzKCBldmVudERhdGEubmV3VGFiLmNsb3Nlc3QoICJsaSIgKSwgInVpLXRhYnMtYWN0aXZlIiwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCg0KCQkJaWYgKCB0b1Nob3cubGVuZ3RoICYmIHRoYXQub3B0aW9ucy5zaG93ICkgew0KCQkJCXRoYXQuX3Nob3coIHRvU2hvdywgdGhhdC5vcHRpb25zLnNob3csIGNvbXBsZXRlICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRvU2hvdy5zaG93KCk7DQoJCQkJY29tcGxldGUoKTsNCgkJCX0NCgkJfQ0KDQoJCS8vIFN0YXJ0IG91dCBieSBoaWRpbmcsIHRoZW4gc2hvd2luZywgdGhlbiBjb21wbGV0aW5nDQoJCWlmICggdG9IaWRlLmxlbmd0aCAmJiB0aGlzLm9wdGlvbnMuaGlkZSApIHsNCgkJCXRoaXMuX2hpZGUoIHRvSGlkZSwgdGhpcy5vcHRpb25zLmhpZGUsIGZ1bmN0aW9uKCkgew0KCQkJCXRoYXQuX3JlbW92ZUNsYXNzKCBldmVudERhdGEub2xkVGFiLmNsb3Nlc3QoICJsaSIgKSwNCgkJCQkJInVpLXRhYnMtYWN0aXZlIiwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCQlzaG93KCk7DQoJCQl9ICk7DQoJCX0gZWxzZSB7DQoJCQl0aGlzLl9yZW1vdmVDbGFzcyggZXZlbnREYXRhLm9sZFRhYi5jbG9zZXN0KCAibGkiICksDQoJCQkJInVpLXRhYnMtYWN0aXZlIiwgInVpLXN0YXRlLWFjdGl2ZSIgKTsNCgkJCXRvSGlkZS5oaWRlKCk7DQoJCQlzaG93KCk7DQoJCX0NCg0KCQl0b0hpZGUuYXR0ciggImFyaWEtaGlkZGVuIiwgInRydWUiICk7DQoJCWV2ZW50RGF0YS5vbGRUYWIuYXR0ciggew0KCQkJImFyaWEtc2VsZWN0ZWQiOiAiZmFsc2UiLA0KCQkJImFyaWEtZXhwYW5kZWQiOiAiZmFsc2UiDQoJCX0gKTsNCg0KCQkvLyBJZiB3ZSdyZSBzd2l0Y2hpbmcgdGFicywgcmVtb3ZlIHRoZSBvbGQgdGFiIGZyb20gdGhlIHRhYiBvcmRlci4NCgkJLy8gSWYgd2UncmUgb3BlbmluZyBmcm9tIGNvbGxhcHNlZCBzdGF0ZSwgcmVtb3ZlIHRoZSBwcmV2aW91cyB0YWIgZnJvbSB0aGUgdGFiIG9yZGVyLg0KCQkvLyBJZiB3ZSdyZSBjb2xsYXBzaW5nLCB0aGVuIGtlZXAgdGhlIGNvbGxhcHNpbmcgdGFiIGluIHRoZSB0YWIgb3JkZXIuDQoJCWlmICggdG9TaG93Lmxlbmd0aCAmJiB0b0hpZGUubGVuZ3RoICkgew0KCQkJZXZlbnREYXRhLm9sZFRhYi5hdHRyKCAidGFiSW5kZXgiLCAtMSApOw0KCQl9IGVsc2UgaWYgKCB0b1Nob3cubGVuZ3RoICkgew0KCQkJdGhpcy50YWJzLmZpbHRlciggZnVuY3Rpb24oKSB7DQoJCQkJcmV0dXJuICQoIHRoaXMgKS5hdHRyKCAidGFiSW5kZXgiICkgPT09IDA7DQoJCQl9ICkNCgkJCQkuYXR0ciggInRhYkluZGV4IiwgLTEgKTsNCgkJfQ0KDQoJCXRvU2hvdy5hdHRyKCAiYXJpYS1oaWRkZW4iLCAiZmFsc2UiICk7DQoJCWV2ZW50RGF0YS5uZXdUYWIuYXR0ciggew0KCQkJImFyaWEtc2VsZWN0ZWQiOiAidHJ1ZSIsDQoJCQkiYXJpYS1leHBhbmRlZCI6ICJ0cnVlIiwNCgkJCXRhYkluZGV4OiAwDQoJCX0gKTsNCgl9LA0KDQoJX2FjdGl2YXRlOiBmdW5jdGlvbiggaW5kZXggKSB7DQoJCXZhciBhbmNob3IsDQoJCQlhY3RpdmUgPSB0aGlzLl9maW5kQWN0aXZlKCBpbmRleCApOw0KDQoJCS8vIFRyeWluZyB0byBhY3RpdmF0ZSB0aGUgYWxyZWFkeSBhY3RpdmUgcGFuZWwNCgkJaWYgKCBhY3RpdmVbIDAgXSA9PT0gdGhpcy5hY3RpdmVbIDAgXSApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIFRyeWluZyB0byBjb2xsYXBzZSwgc2ltdWxhdGUgYSBjbGljayBvbiB0aGUgY3VycmVudCBhY3RpdmUgaGVhZGVyDQoJCWlmICggIWFjdGl2ZS5sZW5ndGggKSB7DQoJCQlhY3RpdmUgPSB0aGlzLmFjdGl2ZTsNCgkJfQ0KDQoJCWFuY2hvciA9IGFjdGl2ZS5maW5kKCAiLnVpLXRhYnMtYW5jaG9yIiApWyAwIF07DQoJCXRoaXMuX2V2ZW50SGFuZGxlciggew0KCQkJdGFyZ2V0OiBhbmNob3IsDQoJCQljdXJyZW50VGFyZ2V0OiBhbmNob3IsDQoJCQlwcmV2ZW50RGVmYXVsdDogJC5ub29wDQoJCX0gKTsNCgl9LA0KDQoJX2ZpbmRBY3RpdmU6IGZ1bmN0aW9uKCBpbmRleCApIHsNCgkJcmV0dXJuIGluZGV4ID09PSBmYWxzZSA/ICQoKSA6IHRoaXMudGFicy5lcSggaW5kZXggKTsNCgl9LA0KDQoJX2dldEluZGV4OiBmdW5jdGlvbiggaW5kZXggKSB7DQoNCgkJLy8gbWV0YS1mdW5jdGlvbiB0byBnaXZlIHVzZXJzIG9wdGlvbiB0byBwcm92aWRlIGEgaHJlZiBzdHJpbmcgaW5zdGVhZCBvZiBhIG51bWVyaWNhbCBpbmRleC4NCgkJaWYgKCB0eXBlb2YgaW5kZXggPT09ICJzdHJpbmciICkgew0KCQkJaW5kZXggPSB0aGlzLmFuY2hvcnMuaW5kZXgoIHRoaXMuYW5jaG9ycy5maWx0ZXIoICJbaHJlZiQ9JyIgKw0KCQkJCSQudWkuZXNjYXBlU2VsZWN0b3IoIGluZGV4ICkgKyAiJ10iICkgKTsNCgkJfQ0KDQoJCXJldHVybiBpbmRleDsNCgl9LA0KDQoJX2Rlc3Ryb3k6IGZ1bmN0aW9uKCkgew0KCQlpZiAoIHRoaXMueGhyICkgew0KCQkJdGhpcy54aHIuYWJvcnQoKTsNCgkJfQ0KDQoJCXRoaXMudGFibGlzdA0KCQkJLnJlbW92ZUF0dHIoICJyb2xlIiApDQoJCQkub2ZmKCB0aGlzLmV2ZW50TmFtZXNwYWNlICk7DQoNCgkJdGhpcy5hbmNob3JzDQoJCQkucmVtb3ZlQXR0ciggInJvbGUgdGFiSW5kZXgiICkNCgkJCS5yZW1vdmVVbmlxdWVJZCgpOw0KDQoJCXRoaXMudGFicy5hZGQoIHRoaXMucGFuZWxzICkuZWFjaCggZnVuY3Rpb24oKSB7DQoJCQlpZiAoICQuZGF0YSggdGhpcywgInVpLXRhYnMtZGVzdHJveSIgKSApIHsNCgkJCQkkKCB0aGlzICkucmVtb3ZlKCk7DQoJCQl9IGVsc2Ugew0KCQkJCSQoIHRoaXMgKS5yZW1vdmVBdHRyKCAicm9sZSB0YWJJbmRleCAiICsNCgkJCQkJImFyaWEtbGl2ZSBhcmlhLWJ1c3kgYXJpYS1zZWxlY3RlZCBhcmlhLWxhYmVsbGVkYnkgYXJpYS1oaWRkZW4gYXJpYS1leHBhbmRlZCIgKTsNCgkJCX0NCgkJfSApOw0KDQoJCXRoaXMudGFicy5lYWNoKCBmdW5jdGlvbigpIHsNCgkJCXZhciBsaSA9ICQoIHRoaXMgKSwNCgkJCQlwcmV2ID0gbGkuZGF0YSggInVpLXRhYnMtYXJpYS1jb250cm9scyIgKTsNCgkJCWlmICggcHJldiApIHsNCgkJCQlsaQ0KCQkJCQkuYXR0ciggImFyaWEtY29udHJvbHMiLCBwcmV2ICkNCgkJCQkJLnJlbW92ZURhdGEoICJ1aS10YWJzLWFyaWEtY29udHJvbHMiICk7DQoJCQl9IGVsc2Ugew0KCQkJCWxpLnJlbW92ZUF0dHIoICJhcmlhLWNvbnRyb2xzIiApOw0KCQkJfQ0KCQl9ICk7DQoNCgkJdGhpcy5wYW5lbHMuc2hvdygpOw0KDQoJCWlmICggdGhpcy5vcHRpb25zLmhlaWdodFN0eWxlICE9PSAiY29udGVudCIgKSB7DQoJCQl0aGlzLnBhbmVscy5jc3MoICJoZWlnaHQiLCAiIiApOw0KCQl9DQoJfSwNCg0KCWVuYWJsZTogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgZGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuZGlzYWJsZWQ7DQoJCWlmICggZGlzYWJsZWQgPT09IGZhbHNlICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJaWYgKCBpbmRleCA9PT0gdW5kZWZpbmVkICkgew0KCQkJZGlzYWJsZWQgPSBmYWxzZTsNCgkJfSBlbHNlIHsNCgkJCWluZGV4ID0gdGhpcy5fZ2V0SW5kZXgoIGluZGV4ICk7DQoJCQlpZiAoICQuaXNBcnJheSggZGlzYWJsZWQgKSApIHsNCgkJCQlkaXNhYmxlZCA9ICQubWFwKCBkaXNhYmxlZCwgZnVuY3Rpb24oIG51bSApIHsNCgkJCQkJcmV0dXJuIG51bSAhPT0gaW5kZXggPyBudW0gOiBudWxsOw0KCQkJCX0gKTsNCgkJCX0gZWxzZSB7DQoJCQkJZGlzYWJsZWQgPSAkLm1hcCggdGhpcy50YWJzLCBmdW5jdGlvbiggbGksIG51bSApIHsNCgkJCQkJcmV0dXJuIG51bSAhPT0gaW5kZXggPyBudW0gOiBudWxsOw0KCQkJCX0gKTsNCgkJCX0NCgkJfQ0KCQl0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCggZGlzYWJsZWQgKTsNCgl9LA0KDQoJZGlzYWJsZTogZnVuY3Rpb24oIGluZGV4ICkgew0KCQl2YXIgZGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuZGlzYWJsZWQ7DQoJCWlmICggZGlzYWJsZWQgPT09IHRydWUgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIGluZGV4ID09PSB1bmRlZmluZWQgKSB7DQoJCQlkaXNhYmxlZCA9IHRydWU7DQoJCX0gZWxzZSB7DQoJCQlpbmRleCA9IHRoaXMuX2dldEluZGV4KCBpbmRleCApOw0KCQkJaWYgKCAkLmluQXJyYXkoIGluZGV4LCBkaXNhYmxlZCApICE9PSAtMSApIHsNCgkJCQlyZXR1cm47DQoJCQl9DQoJCQlpZiAoICQuaXNBcnJheSggZGlzYWJsZWQgKSApIHsNCgkJCQlkaXNhYmxlZCA9ICQubWVyZ2UoIFsgaW5kZXggXSwgZGlzYWJsZWQgKS5zb3J0KCk7DQoJCQl9IGVsc2Ugew0KCQkJCWRpc2FibGVkID0gWyBpbmRleCBdOw0KCQkJfQ0KCQl9DQoJCXRoaXMuX3NldE9wdGlvbkRpc2FibGVkKCBkaXNhYmxlZCApOw0KCX0sDQoNCglsb2FkOiBmdW5jdGlvbiggaW5kZXgsIGV2ZW50ICkgew0KCQlpbmRleCA9IHRoaXMuX2dldEluZGV4KCBpbmRleCApOw0KCQl2YXIgdGhhdCA9IHRoaXMsDQoJCQl0YWIgPSB0aGlzLnRhYnMuZXEoIGluZGV4ICksDQoJCQlhbmNob3IgPSB0YWIuZmluZCggIi51aS10YWJzLWFuY2hvciIgKSwNCgkJCXBhbmVsID0gdGhpcy5fZ2V0UGFuZWxGb3JUYWIoIHRhYiApLA0KCQkJZXZlbnREYXRhID0gew0KCQkJCXRhYjogdGFiLA0KCQkJCXBhbmVsOiBwYW5lbA0KCQkJfSwNCgkJCWNvbXBsZXRlID0gZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7DQoJCQkJaWYgKCBzdGF0dXMgPT09ICJhYm9ydCIgKSB7DQoJCQkJCXRoYXQucGFuZWxzLnN0b3AoIGZhbHNlLCB0cnVlICk7DQoJCQkJfQ0KDQoJCQkJdGhhdC5fcmVtb3ZlQ2xhc3MoIHRhYiwgInVpLXRhYnMtbG9hZGluZyIgKTsNCgkJCQlwYW5lbC5yZW1vdmVBdHRyKCAiYXJpYS1idXN5IiApOw0KDQoJCQkJaWYgKCBqcVhIUiA9PT0gdGhhdC54aHIgKSB7DQoJCQkJCWRlbGV0ZSB0aGF0LnhocjsNCgkJCQl9DQoJCQl9Ow0KDQoJCS8vIE5vdCByZW1vdGUNCgkJaWYgKCB0aGlzLl9pc0xvY2FsKCBhbmNob3JbIDAgXSApICkgew0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdGhpcy54aHIgPSAkLmFqYXgoIHRoaXMuX2FqYXhTZXR0aW5ncyggYW5jaG9yLCBldmVudCwgZXZlbnREYXRhICkgKTsNCg0KCQkvLyBTdXBwb3J0OiBqUXVlcnkgPDEuOA0KCQkvLyBqUXVlcnkgPDEuOCByZXR1cm5zIGZhbHNlIGlmIHRoZSByZXF1ZXN0IGlzIGNhbmNlbGVkIGluIGJlZm9yZVNlbmQsDQoJCS8vIGJ1dCBhcyBvZiAxLjgsICQuYWpheCgpIGFsd2F5cyByZXR1cm5zIGEganFYSFIgb2JqZWN0Lg0KCQlpZiAoIHRoaXMueGhyICYmIHRoaXMueGhyLnN0YXR1c1RleHQgIT09ICJjYW5jZWxlZCIgKSB7DQoJCQl0aGlzLl9hZGRDbGFzcyggdGFiLCAidWktdGFicy1sb2FkaW5nIiApOw0KCQkJcGFuZWwuYXR0ciggImFyaWEtYnVzeSIsICJ0cnVlIiApOw0KDQoJCQl0aGlzLnhocg0KCQkJCS5kb25lKCBmdW5jdGlvbiggcmVzcG9uc2UsIHN0YXR1cywganFYSFIgKSB7DQoNCgkJCQkJLy8gc3VwcG9ydDogalF1ZXJ5IDwxLjgNCgkJCQkJLy8gaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTE3NzgNCgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7DQoJCQkJCQlwYW5lbC5odG1sKCByZXNwb25zZSApOw0KCQkJCQkJdGhhdC5fdHJpZ2dlciggImxvYWQiLCBldmVudCwgZXZlbnREYXRhICk7DQoNCgkJCQkJCWNvbXBsZXRlKCBqcVhIUiwgc3RhdHVzICk7DQoJCQkJCX0sIDEgKTsNCgkJCQl9ICkNCgkJCQkuZmFpbCggZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7DQoNCgkJCQkJLy8gc3VwcG9ydDogalF1ZXJ5IDwxLjgNCgkJCQkJLy8gaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTE3NzgNCgkJCQkJc2V0VGltZW91dCggZnVuY3Rpb24oKSB7DQoJCQkJCQljb21wbGV0ZSgganFYSFIsIHN0YXR1cyApOw0KCQkJCQl9LCAxICk7DQoJCQkJfSApOw0KCQl9DQoJfSwNCg0KCV9hamF4U2V0dGluZ3M6IGZ1bmN0aW9uKCBhbmNob3IsIGV2ZW50LCBldmVudERhdGEgKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCgkJcmV0dXJuIHsNCg0KCQkJLy8gU3VwcG9ydDogSUUgPDExIG9ubHkNCgkJCS8vIFN0cmlwIGFueSBoYXNoIHRoYXQgZXhpc3RzIHRvIHByZXZlbnQgZXJyb3JzIHdpdGggdGhlIEFqYXggcmVxdWVzdA0KCQkJdXJsOiBhbmNob3IuYXR0ciggImhyZWYiICkucmVwbGFjZSggLyMuKiQvLCAiIiApLA0KCQkJYmVmb3JlU2VuZDogZnVuY3Rpb24oIGpxWEhSLCBzZXR0aW5ncyApIHsNCgkJCQlyZXR1cm4gdGhhdC5fdHJpZ2dlciggImJlZm9yZUxvYWQiLCBldmVudCwNCgkJCQkJJC5leHRlbmQoIHsganFYSFI6IGpxWEhSLCBhamF4U2V0dGluZ3M6IHNldHRpbmdzIH0sIGV2ZW50RGF0YSApICk7DQoJCQl9DQoJCX07DQoJfSwNCg0KCV9nZXRQYW5lbEZvclRhYjogZnVuY3Rpb24oIHRhYiApIHsNCgkJdmFyIGlkID0gJCggdGFiICkuYXR0ciggImFyaWEtY29udHJvbHMiICk7DQoJCXJldHVybiB0aGlzLmVsZW1lbnQuZmluZCggdGhpcy5fc2FuaXRpemVTZWxlY3RvciggIiMiICsgaWQgKSApOw0KCX0NCn0gKTsNCg0KLy8gREVQUkVDQVRFRA0KLy8gVE9ETzogU3dpdGNoIHJldHVybiBiYWNrIHRvIHdpZGdldCBkZWNsYXJhdGlvbiBhdCB0b3Agb2YgZmlsZSB3aGVuIHRoaXMgaXMgcmVtb3ZlZA0KaWYgKCAkLnVpQmFja0NvbXBhdCAhPT0gZmFsc2UgKSB7DQoNCgkvLyBCYWNrY29tcGF0IGZvciB1aS10YWIgY2xhc3MgKG5vdyB1aS10YWJzLXRhYikNCgkkLndpZGdldCggInVpLnRhYnMiLCAkLnVpLnRhYnMsIHsNCgkJX3Byb2Nlc3NUYWJzOiBmdW5jdGlvbigpIHsNCgkJCXRoaXMuX3N1cGVyQXBwbHkoIGFyZ3VtZW50cyApOw0KCQkJdGhpcy5fYWRkQ2xhc3MoIHRoaXMudGFicywgInVpLXRhYiIgKTsNCgkJfQ0KCX0gKTsNCn0NCg0KdmFyIHdpZGdldHNUYWJzID0gJC51aS50YWJzOw0KDQoNCi8qIQ0KICogalF1ZXJ5IFVJIFRvb2x0aXAgMS4xMi4xDQogKiBodHRwOi8vanF1ZXJ5dWkuY29tDQogKg0KICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnMNCiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS4NCiAqIGh0dHA6Ly9qcXVlcnkub3JnL2xpY2Vuc2UNCiAqLw0KDQovLz4+bGFiZWw6IFRvb2x0aXANCi8vPj5ncm91cDogV2lkZ2V0cw0KLy8+PmRlc2NyaXB0aW9uOiBTaG93cyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZvciBhbnkgZWxlbWVudCBvbiBob3ZlciBvciBmb2N1cy4NCi8vPj5kb2NzOiBodHRwOi8vYXBpLmpxdWVyeXVpLmNvbS90b29sdGlwLw0KLy8+PmRlbW9zOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Rvb2x0aXAvDQovLz4+Y3NzLnN0cnVjdHVyZTogLi4vLi4vdGhlbWVzL2Jhc2UvY29yZS5jc3MNCi8vPj5jc3Muc3RydWN0dXJlOiAuLi8uLi90aGVtZXMvYmFzZS90b29sdGlwLmNzcw0KLy8+PmNzcy50aGVtZTogLi4vLi4vdGhlbWVzL2Jhc2UvdGhlbWUuY3NzDQoNCg0KDQokLndpZGdldCggInVpLnRvb2x0aXAiLCB7DQoJdmVyc2lvbjogIjEuMTIuMSIsDQoJb3B0aW9uczogew0KCQljbGFzc2VzOiB7DQoJCQkidWktdG9vbHRpcCI6ICJ1aS1jb3JuZXItYWxsIHVpLXdpZGdldC1zaGFkb3ciDQoJCX0sDQoJCWNvbnRlbnQ6IGZ1bmN0aW9uKCkgew0KDQoJCQkvLyBzdXBwb3J0OiBJRTw5LCBPcGVyYSBpbiBqUXVlcnkgPDEuNw0KCQkJLy8gLnRleHQoKSBjYW4ndCBhY2NlcHQgdW5kZWZpbmVkLCBzbyBjb2VyY2UgdG8gYSBzdHJpbmcNCgkJCXZhciB0aXRsZSA9ICQoIHRoaXMgKS5hdHRyKCAidGl0bGUiICkgfHwgIiI7DQoNCgkJCS8vIEVzY2FwZSB0aXRsZSwgc2luY2Ugd2UncmUgZ29pbmcgZnJvbSBhbiBhdHRyaWJ1dGUgdG8gcmF3IEhUTUwNCgkJCXJldHVybiAkKCAiPGE+IiApLnRleHQoIHRpdGxlICkuaHRtbCgpOw0KCQl9LA0KCQloaWRlOiB0cnVlLA0KDQoJCS8vIERpc2FibGVkIGVsZW1lbnRzIGhhdmUgaW5jb25zaXN0ZW50IGJlaGF2aW9yIGFjcm9zcyBicm93c2VycyAoIzg2NjEpDQoJCWl0ZW1zOiAiW3RpdGxlXTpub3QoW2Rpc2FibGVkXSkiLA0KCQlwb3NpdGlvbjogew0KCQkJbXk6ICJsZWZ0IHRvcCsxNSIsDQoJCQlhdDogImxlZnQgYm90dG9tIiwNCgkJCWNvbGxpc2lvbjogImZsaXBmaXQgZmxpcCINCgkJfSwNCgkJc2hvdzogdHJ1ZSwNCgkJdHJhY2s6IGZhbHNlLA0KDQoJCS8vIENhbGxiYWNrcw0KCQljbG9zZTogbnVsbCwNCgkJb3BlbjogbnVsbA0KCX0sDQoNCglfYWRkRGVzY3JpYmVkQnk6IGZ1bmN0aW9uKCBlbGVtLCBpZCApIHsNCgkJdmFyIGRlc2NyaWJlZGJ5ID0gKCBlbGVtLmF0dHIoICJhcmlhLWRlc2NyaWJlZGJ5IiApIHx8ICIiICkuc3BsaXQoIC9ccysvICk7DQoJCWRlc2NyaWJlZGJ5LnB1c2goIGlkICk7DQoJCWVsZW0NCgkJCS5kYXRhKCAidWktdG9vbHRpcC1pZCIsIGlkICkNCgkJCS5hdHRyKCAiYXJpYS1kZXNjcmliZWRieSIsICQudHJpbSggZGVzY3JpYmVkYnkuam9pbiggIiAiICkgKSApOw0KCX0sDQoNCglfcmVtb3ZlRGVzY3JpYmVkQnk6IGZ1bmN0aW9uKCBlbGVtICkgew0KCQl2YXIgaWQgPSBlbGVtLmRhdGEoICJ1aS10b29sdGlwLWlkIiApLA0KCQkJZGVzY3JpYmVkYnkgPSAoIGVsZW0uYXR0ciggImFyaWEtZGVzY3JpYmVkYnkiICkgfHwgIiIgKS5zcGxpdCggL1xzKy8gKSwNCgkJCWluZGV4ID0gJC5pbkFycmF5KCBpZCwgZGVzY3JpYmVkYnkgKTsNCg0KCQlpZiAoIGluZGV4ICE9PSAtMSApIHsNCgkJCWRlc2NyaWJlZGJ5LnNwbGljZSggaW5kZXgsIDEgKTsNCgkJfQ0KDQoJCWVsZW0ucmVtb3ZlRGF0YSggInVpLXRvb2x0aXAtaWQiICk7DQoJCWRlc2NyaWJlZGJ5ID0gJC50cmltKCBkZXNjcmliZWRieS5qb2luKCAiICIgKSApOw0KCQlpZiAoIGRlc2NyaWJlZGJ5ICkgew0KCQkJZWxlbS5hdHRyKCAiYXJpYS1kZXNjcmliZWRieSIsIGRlc2NyaWJlZGJ5ICk7DQoJCX0gZWxzZSB7DQoJCQllbGVtLnJlbW92ZUF0dHIoICJhcmlhLWRlc2NyaWJlZGJ5IiApOw0KCQl9DQoJfSwNCg0KCV9jcmVhdGU6IGZ1bmN0aW9uKCkgew0KCQl0aGlzLl9vbiggew0KCQkJbW91c2VvdmVyOiAib3BlbiIsDQoJCQlmb2N1c2luOiAib3BlbiINCgkJfSApOw0KDQoJCS8vIElEcyBvZiBnZW5lcmF0ZWQgdG9vbHRpcHMsIG5lZWRlZCBmb3IgZGVzdHJveQ0KCQl0aGlzLnRvb2x0aXBzID0ge307DQoNCgkJLy8gSURzIG9mIHBhcmVudCB0b29sdGlwcyB3aGVyZSB3ZSByZW1vdmVkIHRoZSB0aXRsZSBhdHRyaWJ1dGUNCgkJdGhpcy5wYXJlbnRzID0ge307DQoNCgkJLy8gQXBwZW5kIHRoZSBhcmlhLWxpdmUgcmVnaW9uIHNvIHRvb2x0aXBzIGFubm91bmNlIGNvcnJlY3RseQ0KCQl0aGlzLmxpdmVSZWdpb24gPSAkKCAiPGRpdj4iICkNCgkJCS5hdHRyKCB7DQoJCQkJcm9sZTogImxvZyIsDQoJCQkJImFyaWEtbGl2ZSI6ICJhc3NlcnRpdmUiLA0KCQkJCSJhcmlhLXJlbGV2YW50IjogImFkZGl0aW9ucyINCgkJCX0gKQ0KCQkJLmFwcGVuZFRvKCB0aGlzLmRvY3VtZW50WyAwIF0uYm9keSApOw0KCQl0aGlzLl9hZGRDbGFzcyggdGhpcy5saXZlUmVnaW9uLCBudWxsLCAidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiApOw0KDQoJCXRoaXMuZGlzYWJsZWRUaXRsZXMgPSAkKCBbXSApOw0KCX0sDQoNCglfc2V0T3B0aW9uOiBmdW5jdGlvbigga2V5LCB2YWx1ZSApIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCXRoaXMuX3N1cGVyKCBrZXksIHZhbHVlICk7DQoNCgkJaWYgKCBrZXkgPT09ICJjb250ZW50IiApIHsNCgkJCSQuZWFjaCggdGhpcy50b29sdGlwcywgZnVuY3Rpb24oIGlkLCB0b29sdGlwRGF0YSApIHsNCgkJCQl0aGF0Ll91cGRhdGVDb250ZW50KCB0b29sdGlwRGF0YS5lbGVtZW50ICk7DQoJCQl9ICk7DQoJCX0NCgl9LA0KDQoJX3NldE9wdGlvbkRpc2FibGVkOiBmdW5jdGlvbiggdmFsdWUgKSB7DQoJCXRoaXNbIHZhbHVlID8gIl9kaXNhYmxlIiA6ICJfZW5hYmxlIiBdKCk7DQoJfSwNCg0KCV9kaXNhYmxlOiBmdW5jdGlvbigpIHsNCgkJdmFyIHRoYXQgPSB0aGlzOw0KDQoJCS8vIENsb3NlIG9wZW4gdG9vbHRpcHMNCgkJJC5lYWNoKCB0aGlzLnRvb2x0aXBzLCBmdW5jdGlvbiggaWQsIHRvb2x0aXBEYXRhICkgew0KCQkJdmFyIGV2ZW50ID0gJC5FdmVudCggImJsdXIiICk7DQoJCQlldmVudC50YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0ID0gdG9vbHRpcERhdGEuZWxlbWVudFsgMCBdOw0KCQkJdGhhdC5jbG9zZSggZXZlbnQsIHRydWUgKTsNCgkJfSApOw0KDQoJCS8vIFJlbW92ZSB0aXRsZSBhdHRyaWJ1dGVzIHRvIHByZXZlbnQgbmF0aXZlIHRvb2x0aXBzDQoJCXRoaXMuZGlzYWJsZWRUaXRsZXMgPSB0aGlzLmRpc2FibGVkVGl0bGVzLmFkZCgNCgkJCXRoaXMuZWxlbWVudC5maW5kKCB0aGlzLm9wdGlvbnMuaXRlbXMgKS5hZGRCYWNrKCkNCgkJCQkuZmlsdGVyKCBmdW5jdGlvbigpIHsNCgkJCQkJdmFyIGVsZW1lbnQgPSAkKCB0aGlzICk7DQoJCQkJCWlmICggZWxlbWVudC5pcyggIlt0aXRsZV0iICkgKSB7DQoJCQkJCQlyZXR1cm4gZWxlbWVudA0KCQkJCQkJCS5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIsIGVsZW1lbnQuYXR0ciggInRpdGxlIiApICkNCgkJCQkJCQkucmVtb3ZlQXR0ciggInRpdGxlIiApOw0KCQkJCQl9DQoJCQkJfSApDQoJCSk7DQoJfSwNCg0KCV9lbmFibGU6IGZ1bmN0aW9uKCkgew0KDQoJCS8vIHJlc3RvcmUgdGl0bGUgYXR0cmlidXRlcw0KCQl0aGlzLmRpc2FibGVkVGl0bGVzLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJdmFyIGVsZW1lbnQgPSAkKCB0aGlzICk7DQoJCQlpZiAoIGVsZW1lbnQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICkgKSB7DQoJCQkJZWxlbWVudC5hdHRyKCAidGl0bGUiLCBlbGVtZW50LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICk7DQoJCQl9DQoJCX0gKTsNCgkJdGhpcy5kaXNhYmxlZFRpdGxlcyA9ICQoIFtdICk7DQoJfSwNCg0KCW9wZW46IGZ1bmN0aW9uKCBldmVudCApIHsNCgkJdmFyIHRoYXQgPSB0aGlzLA0KCQkJdGFyZ2V0ID0gJCggZXZlbnQgPyBldmVudC50YXJnZXQgOiB0aGlzLmVsZW1lbnQgKQ0KDQoJCQkJLy8gd2UgbmVlZCBjbG9zZXN0IGhlcmUgZHVlIHRvIG1vdXNlb3ZlciBidWJibGluZywNCgkJCQkvLyBidXQgYWx3YXlzIHBvaW50aW5nIGF0IHRoZSBzYW1lIGV2ZW50IHRhcmdldA0KCQkJCS5jbG9zZXN0KCB0aGlzLm9wdGlvbnMuaXRlbXMgKTsNCg0KCQkvLyBObyBlbGVtZW50IHRvIHNob3cgYSB0b29sdGlwIGZvciBvciB0aGUgdG9vbHRpcCBpcyBhbHJlYWR5IG9wZW4NCgkJaWYgKCAhdGFyZ2V0Lmxlbmd0aCB8fCB0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtaWQiICkgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQlpZiAoIHRhcmdldC5hdHRyKCAidGl0bGUiICkgKSB7DQoJCQl0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiLCB0YXJnZXQuYXR0ciggInRpdGxlIiApICk7DQoJCX0NCg0KCQl0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtb3BlbiIsIHRydWUgKTsNCg0KCQkvLyBLaWxsIHBhcmVudCB0b29sdGlwcywgY3VzdG9tIG9yIG5hdGl2ZSwgZm9yIGhvdmVyDQoJCWlmICggZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gIm1vdXNlb3ZlciIgKSB7DQoJCQl0YXJnZXQucGFyZW50cygpLmVhY2goIGZ1bmN0aW9uKCkgew0KCQkJCXZhciBwYXJlbnQgPSAkKCB0aGlzICksDQoJCQkJCWJsdXJFdmVudDsNCgkJCQlpZiAoIHBhcmVudC5kYXRhKCAidWktdG9vbHRpcC1vcGVuIiApICkgew0KCQkJCQlibHVyRXZlbnQgPSAkLkV2ZW50KCAiYmx1ciIgKTsNCgkJCQkJYmx1ckV2ZW50LnRhcmdldCA9IGJsdXJFdmVudC5jdXJyZW50VGFyZ2V0ID0gdGhpczsNCgkJCQkJdGhhdC5jbG9zZSggYmx1ckV2ZW50LCB0cnVlICk7DQoJCQkJfQ0KCQkJCWlmICggcGFyZW50LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCQkJcGFyZW50LnVuaXF1ZUlkKCk7DQoJCQkJCXRoYXQucGFyZW50c1sgdGhpcy5pZCBdID0gew0KCQkJCQkJZWxlbWVudDogdGhpcywNCgkJCQkJCXRpdGxlOiBwYXJlbnQuYXR0ciggInRpdGxlIiApDQoJCQkJCX07DQoJCQkJCXBhcmVudC5hdHRyKCAidGl0bGUiLCAiIiApOw0KCQkJCX0NCgkJCX0gKTsNCgkJfQ0KDQoJCXRoaXMuX3JlZ2lzdGVyQ2xvc2VIYW5kbGVycyggZXZlbnQsIHRhcmdldCApOw0KCQl0aGlzLl91cGRhdGVDb250ZW50KCB0YXJnZXQsIGV2ZW50ICk7DQoJfSwNCg0KCV91cGRhdGVDb250ZW50OiBmdW5jdGlvbiggdGFyZ2V0LCBldmVudCApIHsNCgkJdmFyIGNvbnRlbnQsDQoJCQljb250ZW50T3B0aW9uID0gdGhpcy5vcHRpb25zLmNvbnRlbnQsDQoJCQl0aGF0ID0gdGhpcywNCgkJCWV2ZW50VHlwZSA9IGV2ZW50ID8gZXZlbnQudHlwZSA6IG51bGw7DQoNCgkJaWYgKCB0eXBlb2YgY29udGVudE9wdGlvbiA9PT0gInN0cmluZyIgfHwgY29udGVudE9wdGlvbi5ub2RlVHlwZSB8fA0KCQkJCWNvbnRlbnRPcHRpb24uanF1ZXJ5ICkgew0KCQkJcmV0dXJuIHRoaXMuX29wZW4oIGV2ZW50LCB0YXJnZXQsIGNvbnRlbnRPcHRpb24gKTsNCgkJfQ0KDQoJCWNvbnRlbnQgPSBjb250ZW50T3B0aW9uLmNhbGwoIHRhcmdldFsgMCBdLCBmdW5jdGlvbiggcmVzcG9uc2UgKSB7DQoNCgkJCS8vIElFIG1heSBpbnN0YW50bHkgc2VydmUgYSBjYWNoZWQgcmVzcG9uc2UgZm9yIGFqYXggcmVxdWVzdHMNCgkJCS8vIGRlbGF5IHRoaXMgY2FsbCB0byBfb3BlbiBzbyB0aGUgb3RoZXIgY2FsbCB0byBfb3BlbiBydW5zIGZpcnN0DQoJCQl0aGF0Ll9kZWxheSggZnVuY3Rpb24oKSB7DQoNCgkJCQkvLyBJZ25vcmUgYXN5bmMgcmVzcG9uc2UgaWYgdG9vbHRpcCB3YXMgY2xvc2VkIGFscmVhZHkNCgkJCQlpZiAoICF0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtb3BlbiIgKSApIHsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCg0KCQkJCS8vIEpRdWVyeSBjcmVhdGVzIGEgc3BlY2lhbCBldmVudCBmb3IgZm9jdXNpbiB3aGVuIGl0IGRvZXNuJ3QNCgkJCQkvLyBleGlzdCBuYXRpdmVseS4gVG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgdGhlIG5hdGl2ZSBldmVudA0KCQkJCS8vIG9iamVjdCBpcyByZXVzZWQgYW5kIHRoZSB0eXBlIGlzIGNoYW5nZWQuIFRoZXJlZm9yZSwgd2UgY2FuJ3QNCgkJCQkvLyByZWx5IG9uIHRoZSB0eXBlIGJlaW5nIGNvcnJlY3QgYWZ0ZXIgdGhlIGV2ZW50IGZpbmlzaGVkDQoJCQkJLy8gYnViYmxpbmcsIHNvIHdlIHNldCBpdCBiYWNrIHRvIHRoZSBwcmV2aW91cyB2YWx1ZS4gKCM4NzQwKQ0KCQkJCWlmICggZXZlbnQgKSB7DQoJCQkJCWV2ZW50LnR5cGUgPSBldmVudFR5cGU7DQoJCQkJfQ0KCQkJCXRoaXMuX29wZW4oIGV2ZW50LCB0YXJnZXQsIHJlc3BvbnNlICk7DQoJCQl9ICk7DQoJCX0gKTsNCgkJaWYgKCBjb250ZW50ICkgew0KCQkJdGhpcy5fb3BlbiggZXZlbnQsIHRhcmdldCwgY29udGVudCApOw0KCQl9DQoJfSwNCg0KCV9vcGVuOiBmdW5jdGlvbiggZXZlbnQsIHRhcmdldCwgY29udGVudCApIHsNCgkJdmFyIHRvb2x0aXBEYXRhLCB0b29sdGlwLCBkZWxheWVkU2hvdywgYTExeUNvbnRlbnQsDQoJCQlwb3NpdGlvbk9wdGlvbiA9ICQuZXh0ZW5kKCB7fSwgdGhpcy5vcHRpb25zLnBvc2l0aW9uICk7DQoNCgkJaWYgKCAhY29udGVudCApIHsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIENvbnRlbnQgY2FuIGJlIHVwZGF0ZWQgbXVsdGlwbGUgdGltZXMuIElmIHRoZSB0b29sdGlwIGFscmVhZHkNCgkJLy8gZXhpc3RzLCB0aGVuIGp1c3QgdXBkYXRlIHRoZSBjb250ZW50IGFuZCBiYWlsLg0KCQl0b29sdGlwRGF0YSA9IHRoaXMuX2ZpbmQoIHRhcmdldCApOw0KCQlpZiAoIHRvb2x0aXBEYXRhICkgew0KCQkJdG9vbHRpcERhdGEudG9vbHRpcC5maW5kKCAiLnVpLXRvb2x0aXAtY29udGVudCIgKS5odG1sKCBjb250ZW50ICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBJZiB3ZSBoYXZlIGEgdGl0bGUsIGNsZWFyIGl0IHRvIHByZXZlbnQgdGhlIG5hdGl2ZSB0b29sdGlwDQoJCS8vIHdlIGhhdmUgdG8gY2hlY2sgZmlyc3QgdG8gYXZvaWQgZGVmaW5pbmcgYSB0aXRsZSBpZiBub25lIGV4aXN0cw0KCQkvLyAod2UgZG9uJ3Qgd2FudCB0byBjYXVzZSBhbiBlbGVtZW50IHRvIHN0YXJ0IG1hdGNoaW5nIFt0aXRsZV0pDQoJCS8vDQoJCS8vIFdlIHVzZSByZW1vdmVBdHRyIG9ubHkgZm9yIGtleSBldmVudHMsIHRvIGFsbG93IElFIHRvIGV4cG9ydCB0aGUgY29ycmVjdA0KCQkvLyBhY2Nlc3NpYmxlIGF0dHJpYnV0ZXMuIEZvciBtb3VzZSBldmVudHMsIHNldCB0byBlbXB0eSBzdHJpbmcgdG8gYXZvaWQNCgkJLy8gbmF0aXZlIHRvb2x0aXAgc2hvd2luZyB1cCAoaGFwcGVucyBvbmx5IHdoZW4gcmVtb3ZpbmcgaW5zaWRlIG1vdXNlb3ZlcikuDQoJCWlmICggdGFyZ2V0LmlzKCAiW3RpdGxlXSIgKSApIHsNCgkJCWlmICggZXZlbnQgJiYgZXZlbnQudHlwZSA9PT0gIm1vdXNlb3ZlciIgKSB7DQoJCQkJdGFyZ2V0LmF0dHIoICJ0aXRsZSIsICIiICk7DQoJCQl9IGVsc2Ugew0KCQkJCXRhcmdldC5yZW1vdmVBdHRyKCAidGl0bGUiICk7DQoJCQl9DQoJCX0NCg0KCQl0b29sdGlwRGF0YSA9IHRoaXMuX3Rvb2x0aXAoIHRhcmdldCApOw0KCQl0b29sdGlwID0gdG9vbHRpcERhdGEudG9vbHRpcDsNCgkJdGhpcy5fYWRkRGVzY3JpYmVkQnkoIHRhcmdldCwgdG9vbHRpcC5hdHRyKCAiaWQiICkgKTsNCgkJdG9vbHRpcC5maW5kKCAiLnVpLXRvb2x0aXAtY29udGVudCIgKS5odG1sKCBjb250ZW50ICk7DQoNCgkJLy8gU3VwcG9ydDogVm9pY2VvdmVyIG9uIE9TIFgsIEpBV1Mgb24gSUUgPD0gOQ0KCQkvLyBKQVdTIGFubm91bmNlcyBkZWxldGlvbnMgZXZlbiB3aGVuIGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9ucyINCgkJLy8gVm9pY2VvdmVyIHdpbGwgc29tZXRpbWVzIHJlLXJlYWQgdGhlIGVudGlyZSBsb2cgcmVnaW9uJ3MgY29udGVudHMgZnJvbSB0aGUgYmVnaW5uaW5nDQoJCXRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKTsNCgkJYTExeUNvbnRlbnQgPSAkKCAiPGRpdj4iICkuaHRtbCggdG9vbHRpcC5maW5kKCAiLnVpLXRvb2x0aXAtY29udGVudCIgKS5odG1sKCkgKTsNCgkJYTExeUNvbnRlbnQucmVtb3ZlQXR0ciggIm5hbWUiICkuZmluZCggIltuYW1lXSIgKS5yZW1vdmVBdHRyKCAibmFtZSIgKTsNCgkJYTExeUNvbnRlbnQucmVtb3ZlQXR0ciggImlkIiApLmZpbmQoICJbaWRdIiApLnJlbW92ZUF0dHIoICJpZCIgKTsNCgkJYTExeUNvbnRlbnQuYXBwZW5kVG8oIHRoaXMubGl2ZVJlZ2lvbiApOw0KDQoJCWZ1bmN0aW9uIHBvc2l0aW9uKCBldmVudCApIHsNCgkJCXBvc2l0aW9uT3B0aW9uLm9mID0gZXZlbnQ7DQoJCQlpZiAoIHRvb2x0aXAuaXMoICI6aGlkZGVuIiApICkgew0KCQkJCXJldHVybjsNCgkJCX0NCgkJCXRvb2x0aXAucG9zaXRpb24oIHBvc2l0aW9uT3B0aW9uICk7DQoJCX0NCgkJaWYgKCB0aGlzLm9wdGlvbnMudHJhY2sgJiYgZXZlbnQgJiYgL15tb3VzZS8udGVzdCggZXZlbnQudHlwZSApICkgew0KCQkJdGhpcy5fb24oIHRoaXMuZG9jdW1lbnQsIHsNCgkJCQltb3VzZW1vdmU6IHBvc2l0aW9uDQoJCQl9ICk7DQoNCgkJCS8vIHRyaWdnZXIgb25jZSB0byBvdmVycmlkZSBlbGVtZW50LXJlbGF0aXZlIHBvc2l0aW9uaW5nDQoJCQlwb3NpdGlvbiggZXZlbnQgKTsNCgkJfSBlbHNlIHsNCgkJCXRvb2x0aXAucG9zaXRpb24oICQuZXh0ZW5kKCB7DQoJCQkJb2Y6IHRhcmdldA0KCQkJfSwgdGhpcy5vcHRpb25zLnBvc2l0aW9uICkgKTsNCgkJfQ0KDQoJCXRvb2x0aXAuaGlkZSgpOw0KDQoJCXRoaXMuX3Nob3coIHRvb2x0aXAsIHRoaXMub3B0aW9ucy5zaG93ICk7DQoNCgkJLy8gSGFuZGxlIHRyYWNraW5nIHRvb2x0aXBzIHRoYXQgYXJlIHNob3duIHdpdGggYSBkZWxheSAoIzg2NDQpLiBBcyBzb29uDQoJCS8vIGFzIHRoZSB0b29sdGlwIGlzIHZpc2libGUsIHBvc2l0aW9uIHRoZSB0b29sdGlwIHVzaW5nIHRoZSBtb3N0IHJlY2VudA0KCQkvLyBldmVudC4NCgkJLy8gQWRkcyB0aGUgY2hlY2sgdG8gYWRkIHRoZSB0aW1lcnMgb25seSB3aGVuIGJvdGggZGVsYXkgYW5kIHRyYWNrIG9wdGlvbnMgYXJlIHNldCAoIzE0NjgyKQ0KCQlpZiAoIHRoaXMub3B0aW9ucy50cmFjayAmJiB0aGlzLm9wdGlvbnMuc2hvdyAmJiB0aGlzLm9wdGlvbnMuc2hvdy5kZWxheSApIHsNCgkJCWRlbGF5ZWRTaG93ID0gdGhpcy5kZWxheWVkU2hvdyA9IHNldEludGVydmFsKCBmdW5jdGlvbigpIHsNCgkJCQlpZiAoIHRvb2x0aXAuaXMoICI6dmlzaWJsZSIgKSApIHsNCgkJCQkJcG9zaXRpb24oIHBvc2l0aW9uT3B0aW9uLm9mICk7DQoJCQkJCWNsZWFySW50ZXJ2YWwoIGRlbGF5ZWRTaG93ICk7DQoJCQkJfQ0KCQkJfSwgJC5meC5pbnRlcnZhbCApOw0KCQl9DQoNCgkJdGhpcy5fdHJpZ2dlciggIm9wZW4iLCBldmVudCwgeyB0b29sdGlwOiB0b29sdGlwIH0gKTsNCgl9LA0KDQoJX3JlZ2lzdGVyQ2xvc2VIYW5kbGVyczogZnVuY3Rpb24oIGV2ZW50LCB0YXJnZXQgKSB7DQoJCXZhciBldmVudHMgPSB7DQoJCQlrZXl1cDogZnVuY3Rpb24oIGV2ZW50ICkgew0KCQkJCWlmICggZXZlbnQua2V5Q29kZSA9PT0gJC51aS5rZXlDb2RlLkVTQ0FQRSApIHsNCgkJCQkJdmFyIGZha2VFdmVudCA9ICQuRXZlbnQoIGV2ZW50ICk7DQoJCQkJCWZha2VFdmVudC5jdXJyZW50VGFyZ2V0ID0gdGFyZ2V0WyAwIF07DQoJCQkJCXRoaXMuY2xvc2UoIGZha2VFdmVudCwgdHJ1ZSApOw0KCQkJCX0NCgkJCX0NCgkJfTsNCg0KCQkvLyBPbmx5IGJpbmQgcmVtb3ZlIGhhbmRsZXIgZm9yIGRlbGVnYXRlZCB0YXJnZXRzLiBOb24tZGVsZWdhdGVkDQoJCS8vIHRvb2x0aXBzIHdpbGwgaGFuZGxlIHRoaXMgaW4gZGVzdHJveS4NCgkJaWYgKCB0YXJnZXRbIDAgXSAhPT0gdGhpcy5lbGVtZW50WyAwIF0gKSB7DQoJCQlldmVudHMucmVtb3ZlID0gZnVuY3Rpb24oKSB7DQoJCQkJdGhpcy5fcmVtb3ZlVG9vbHRpcCggdGhpcy5fZmluZCggdGFyZ2V0ICkudG9vbHRpcCApOw0KCQkJfTsNCgkJfQ0KDQoJCWlmICggIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT09ICJtb3VzZW92ZXIiICkgew0KCQkJZXZlbnRzLm1vdXNlbGVhdmUgPSAiY2xvc2UiOw0KCQl9DQoJCWlmICggIWV2ZW50IHx8IGV2ZW50LnR5cGUgPT09ICJmb2N1c2luIiApIHsNCgkJCWV2ZW50cy5mb2N1c291dCA9ICJjbG9zZSI7DQoJCX0NCgkJdGhpcy5fb24oIHRydWUsIHRhcmdldCwgZXZlbnRzICk7DQoJfSwNCg0KCWNsb3NlOiBmdW5jdGlvbiggZXZlbnQgKSB7DQoJCXZhciB0b29sdGlwLA0KCQkJdGhhdCA9IHRoaXMsDQoJCQl0YXJnZXQgPSAkKCBldmVudCA/IGV2ZW50LmN1cnJlbnRUYXJnZXQgOiB0aGlzLmVsZW1lbnQgKSwNCgkJCXRvb2x0aXBEYXRhID0gdGhpcy5fZmluZCggdGFyZ2V0ICk7DQoNCgkJLy8gVGhlIHRvb2x0aXAgbWF5IGFscmVhZHkgYmUgY2xvc2VkDQoJCWlmICggIXRvb2x0aXBEYXRhICkgew0KDQoJCQkvLyBXZSBzZXQgdWktdG9vbHRpcC1vcGVuIGltbWVkaWF0ZWx5IHVwb24gb3BlbiAoaW4gb3BlbigpKSwgYnV0IG9ubHkgc2V0IHRoZQ0KCQkJLy8gYWRkaXRpb25hbCBkYXRhIG9uY2UgdGhlcmUncyBhY3R1YWxseSBjb250ZW50IHRvIHNob3cgKGluIF9vcGVuKCkpLiBTbyBldmVuIGlmIHRoZQ0KCQkJLy8gdG9vbHRpcCBkb2Vzbid0IGhhdmUgZnVsbCBkYXRhLCB3ZSBhbHdheXMgcmVtb3ZlIHVpLXRvb2x0aXAtb3BlbiBpbiBjYXNlIHdlJ3JlIGluDQoJCQkvLyB0aGUgcGVyaW9kIGJldHdlZW4gb3BlbigpIGFuZCBfb3BlbigpLg0KCQkJdGFyZ2V0LnJlbW92ZURhdGEoICJ1aS10b29sdGlwLW9wZW4iICk7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQl0b29sdGlwID0gdG9vbHRpcERhdGEudG9vbHRpcDsNCg0KCQkvLyBEaXNhYmxpbmcgY2xvc2VzIHRoZSB0b29sdGlwLCBzbyB3ZSBuZWVkIHRvIHRyYWNrIHdoZW4gd2UncmUgY2xvc2luZw0KCQkvLyB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wIGluIGNhc2UgdGhlIHRvb2x0aXAgYmVjb21lcyBkaXNhYmxlZCBvbiBjbG9zZQ0KCQlpZiAoIHRvb2x0aXBEYXRhLmNsb3NpbmcgKSB7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBDbGVhciB0aGUgaW50ZXJ2YWwgZm9yIGRlbGF5ZWQgdHJhY2tpbmcgdG9vbHRpcHMNCgkJY2xlYXJJbnRlcnZhbCggdGhpcy5kZWxheWVkU2hvdyApOw0KDQoJCS8vIE9ubHkgc2V0IHRpdGxlIGlmIHdlIGhhZCBvbmUgYmVmb3JlIChzZWUgY29tbWVudCBpbiBfb3BlbigpKQ0KCQkvLyBJZiB0aGUgdGl0bGUgYXR0cmlidXRlIGhhcyBjaGFuZ2VkIHNpbmNlIG9wZW4oKSwgZG9uJ3QgcmVzdG9yZQ0KCQlpZiAoIHRhcmdldC5kYXRhKCAidWktdG9vbHRpcC10aXRsZSIgKSAmJiAhdGFyZ2V0LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCXRhcmdldC5hdHRyKCAidGl0bGUiLCB0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICkgKTsNCgkJfQ0KDQoJCXRoaXMuX3JlbW92ZURlc2NyaWJlZEJ5KCB0YXJnZXQgKTsNCg0KCQl0b29sdGlwRGF0YS5oaWRpbmcgPSB0cnVlOw0KCQl0b29sdGlwLnN0b3AoIHRydWUgKTsNCgkJdGhpcy5faGlkZSggdG9vbHRpcCwgdGhpcy5vcHRpb25zLmhpZGUsIGZ1bmN0aW9uKCkgew0KCQkJdGhhdC5fcmVtb3ZlVG9vbHRpcCggJCggdGhpcyApICk7DQoJCX0gKTsNCg0KCQl0YXJnZXQucmVtb3ZlRGF0YSggInVpLXRvb2x0aXAtb3BlbiIgKTsNCgkJdGhpcy5fb2ZmKCB0YXJnZXQsICJtb3VzZWxlYXZlIGZvY3Vzb3V0IGtleXVwIiApOw0KDQoJCS8vIFJlbW92ZSAncmVtb3ZlJyBiaW5kaW5nIG9ubHkgb24gZGVsZWdhdGVkIHRhcmdldHMNCgkJaWYgKCB0YXJnZXRbIDAgXSAhPT0gdGhpcy5lbGVtZW50WyAwIF0gKSB7DQoJCQl0aGlzLl9vZmYoIHRhcmdldCwgInJlbW92ZSIgKTsNCgkJfQ0KCQl0aGlzLl9vZmYoIHRoaXMuZG9jdW1lbnQsICJtb3VzZW1vdmUiICk7DQoNCgkJaWYgKCBldmVudCAmJiBldmVudC50eXBlID09PSAibW91c2VsZWF2ZSIgKSB7DQoJCQkkLmVhY2goIHRoaXMucGFyZW50cywgZnVuY3Rpb24oIGlkLCBwYXJlbnQgKSB7DQoJCQkJJCggcGFyZW50LmVsZW1lbnQgKS5hdHRyKCAidGl0bGUiLCBwYXJlbnQudGl0bGUgKTsNCgkJCQlkZWxldGUgdGhhdC5wYXJlbnRzWyBpZCBdOw0KCQkJfSApOw0KCQl9DQoNCgkJdG9vbHRpcERhdGEuY2xvc2luZyA9IHRydWU7DQoJCXRoaXMuX3RyaWdnZXIoICJjbG9zZSIsIGV2ZW50LCB7IHRvb2x0aXA6IHRvb2x0aXAgfSApOw0KCQlpZiAoICF0b29sdGlwRGF0YS5oaWRpbmcgKSB7DQoJCQl0b29sdGlwRGF0YS5jbG9zaW5nID0gZmFsc2U7DQoJCX0NCgl9LA0KDQoJX3Rvb2x0aXA6IGZ1bmN0aW9uKCBlbGVtZW50ICkgew0KCQl2YXIgdG9vbHRpcCA9ICQoICI8ZGl2PiIgKS5hdHRyKCAicm9sZSIsICJ0b29sdGlwIiApLA0KCQkJY29udGVudCA9ICQoICI8ZGl2PiIgKS5hcHBlbmRUbyggdG9vbHRpcCApLA0KCQkJaWQgPSB0b29sdGlwLnVuaXF1ZUlkKCkuYXR0ciggImlkIiApOw0KDQoJCXRoaXMuX2FkZENsYXNzKCBjb250ZW50LCAidWktdG9vbHRpcC1jb250ZW50IiApOw0KCQl0aGlzLl9hZGRDbGFzcyggdG9vbHRpcCwgInVpLXRvb2x0aXAiLCAidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiApOw0KDQoJCXRvb2x0aXAuYXBwZW5kVG8oIHRoaXMuX2FwcGVuZFRvKCBlbGVtZW50ICkgKTsNCg0KCQlyZXR1cm4gdGhpcy50b29sdGlwc1sgaWQgXSA9IHsNCgkJCWVsZW1lbnQ6IGVsZW1lbnQsDQoJCQl0b29sdGlwOiB0b29sdGlwDQoJCX07DQoJfSwNCg0KCV9maW5kOiBmdW5jdGlvbiggdGFyZ2V0ICkgew0KCQl2YXIgaWQgPSB0YXJnZXQuZGF0YSggInVpLXRvb2x0aXAtaWQiICk7DQoJCXJldHVybiBpZCA/IHRoaXMudG9vbHRpcHNbIGlkIF0gOiBudWxsOw0KCX0sDQoNCglfcmVtb3ZlVG9vbHRpcDogZnVuY3Rpb24oIHRvb2x0aXAgKSB7DQoJCXRvb2x0aXAucmVtb3ZlKCk7DQoJCWRlbGV0ZSB0aGlzLnRvb2x0aXBzWyB0b29sdGlwLmF0dHIoICJpZCIgKSBdOw0KCX0sDQoNCglfYXBwZW5kVG86IGZ1bmN0aW9uKCB0YXJnZXQgKSB7DQoJCXZhciBlbGVtZW50ID0gdGFyZ2V0LmNsb3Nlc3QoICIudWktZnJvbnQsIGRpYWxvZyIgKTsNCg0KCQlpZiAoICFlbGVtZW50Lmxlbmd0aCApIHsNCgkJCWVsZW1lbnQgPSB0aGlzLmRvY3VtZW50WyAwIF0uYm9keTsNCgkJfQ0KDQoJCXJldHVybiBlbGVtZW50Ow0KCX0sDQoNCglfZGVzdHJveTogZnVuY3Rpb24oKSB7DQoJCXZhciB0aGF0ID0gdGhpczsNCg0KCQkvLyBDbG9zZSBvcGVuIHRvb2x0aXBzDQoJCSQuZWFjaCggdGhpcy50b29sdGlwcywgZnVuY3Rpb24oIGlkLCB0b29sdGlwRGF0YSApIHsNCg0KCQkJLy8gRGVsZWdhdGUgdG8gY2xvc2UgbWV0aG9kIHRvIGhhbmRsZSBjb21tb24gY2xlYW51cA0KCQkJdmFyIGV2ZW50ID0gJC5FdmVudCggImJsdXIiICksDQoJCQkJZWxlbWVudCA9IHRvb2x0aXBEYXRhLmVsZW1lbnQ7DQoJCQlldmVudC50YXJnZXQgPSBldmVudC5jdXJyZW50VGFyZ2V0ID0gZWxlbWVudFsgMCBdOw0KCQkJdGhhdC5jbG9zZSggZXZlbnQsIHRydWUgKTsNCg0KCQkJLy8gUmVtb3ZlIGltbWVkaWF0ZWx5OyBkZXN0cm95aW5nIGFuIG9wZW4gdG9vbHRpcCBkb2Vzbid0IHVzZSB0aGUNCgkJCS8vIGhpZGUgYW5pbWF0aW9uDQoJCQkkKCAiIyIgKyBpZCApLnJlbW92ZSgpOw0KDQoJCQkvLyBSZXN0b3JlIHRoZSB0aXRsZQ0KCQkJaWYgKCBlbGVtZW50LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICkgew0KDQoJCQkJLy8gSWYgdGhlIHRpdGxlIGF0dHJpYnV0ZSBoYXMgY2hhbmdlZCBzaW5jZSBvcGVuKCksIGRvbid0IHJlc3RvcmUNCgkJCQlpZiAoICFlbGVtZW50LmF0dHIoICJ0aXRsZSIgKSApIHsNCgkJCQkJZWxlbWVudC5hdHRyKCAidGl0bGUiLCBlbGVtZW50LmRhdGEoICJ1aS10b29sdGlwLXRpdGxlIiApICk7DQoJCQkJfQ0KCQkJCWVsZW1lbnQucmVtb3ZlRGF0YSggInVpLXRvb2x0aXAtdGl0bGUiICk7DQoJCQl9DQoJCX0gKTsNCgkJdGhpcy5saXZlUmVnaW9uLnJlbW92ZSgpOw0KCX0NCn0gKTsNCg0KLy8gREVQUkVDQVRFRA0KLy8gVE9ETzogU3dpdGNoIHJldHVybiBiYWNrIHRvIHdpZGdldCBkZWNsYXJhdGlvbiBhdCB0b3Agb2YgZmlsZSB3aGVuIHRoaXMgaXMgcmVtb3ZlZA0KaWYgKCAkLnVpQmFja0NvbXBhdCAhPT0gZmFsc2UgKSB7DQoNCgkvLyBCYWNrY29tcGF0IGZvciB0b29sdGlwQ2xhc3Mgb3B0aW9uDQoJJC53aWRnZXQoICJ1aS50b29sdGlwIiwgJC51aS50b29sdGlwLCB7DQoJCW9wdGlvbnM6IHsNCgkJCXRvb2x0aXBDbGFzczogbnVsbA0KCQl9LA0KCQlfdG9vbHRpcDogZnVuY3Rpb24oKSB7DQoJCQl2YXIgdG9vbHRpcERhdGEgPSB0aGlzLl9zdXBlckFwcGx5KCBhcmd1bWVudHMgKTsNCgkJCWlmICggdGhpcy5vcHRpb25zLnRvb2x0aXBDbGFzcyApIHsNCgkJCQl0b29sdGlwRGF0YS50b29sdGlwLmFkZENsYXNzKCB0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzICk7DQoJCQl9DQoJCQlyZXR1cm4gdG9vbHRpcERhdGE7DQoJCX0NCgl9ICk7DQp9DQoNCnZhciB3aWRnZXRzVG9vbHRpcCA9ICQudWkudG9vbHRpcDsNCg0KDQoNCg0KfSkpOw=="}},"time_used":56,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":33,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/animate.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.809Z","timestamp":1785129412809,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/animate.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 4291\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":79169,"size_decoded":4600,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"57fb9e2cfb317959f7824f4fbe950dbe","sha1":"378aaa5cd626d05d5a45f21a5629bbb5c09bf534","sha256":"75a917eda5c7d388adaa10a684b5468d51dd043ed1c517bec76b4ae0a6a4995d","sha512":"5b0371267fe722041c014f22c86a43bfd0c35f2826b6e918cc71bd7aa9b37ca85820d55d0a1409f37eff4dcce85fae8aea98eab8f40fe2a1d36e0e3fb279d6f7","ssdeep":"768:I1A1vYyY21f1NYtY7XXYzYtYOYrVDV5YMYw:dYyYaYtY7XXYzYtYOY9YMYw","tlshash":"8c732c5e1d40118447724b29d7de8f68eb3d917318222eee72c2588b8fb6fa853c9d47","first_seen":"2023-04-05T08:09:08Z","last_seen":"2026-07-29T00:40:16.280126Z","times_seen":2332,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04IjsNCg0KLyohDQpBbmltYXRlLmNzcyAtIGh0dHA6Ly9kYW5lZGVuLm1lL2FuaW1hdGUNCkxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAtIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQNCg0KQ29weXJpZ2h0IChjKSAyMDE1IERhbmllbCBFZGVuDQoqLw0KDQouYW5pbWF0ZWQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7DQogIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7DQogIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsNCn0NCg0KLmFuaW1hdGVkLmluZmluaXRlIHsNCiAgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsNCiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7DQp9DQoNCi5hbmltYXRlZC5oaW5nZSB7DQogIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsNCiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyczsNCn0NCg0KLmFuaW1hdGVkLmJvdW5jZUluLA0KLmFuaW1hdGVkLmJvdW5jZU91dCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzOw0KICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7DQp9DQoNCi5hbmltYXRlZC5mbGlwT3V0WCwNCi5hbmltYXRlZC5mbGlwT3V0WSB7DQogIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzOw0KICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2Ugew0KICAwJSwgMjAlLCA1MyUsIDgwJSwgMTAwJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTsNCiAgfQ0KDQogIDQwJSwgNDMlIHsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApOw0KICB9DQoNCiAgNzAlIHsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApOw0KICB9DQoNCiAgOTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgYm91bmNlIHsNCiAgMCUsIDIwJSwgNTMlLCA4MCUsIDEwMCUgew0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7DQogIH0NCg0KICA0MCUsIDQzJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTsNCiAgfQ0KDQogIDcwJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTsNCiAgfQ0KDQogIDkwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTsNCiAgfQ0KfQ0KDQouYm91bmNlIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlOw0KICBhbmltYXRpb24tbmFtZTogYm91bmNlOw0KICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207DQogIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmbGFzaCB7DQogIDAlLCA1MCUsIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAyNSUsIDc1JSB7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZsYXNoIHsNCiAgMCUsIDUwJSwgMTAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDI1JSwgNzUlIHsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5mbGFzaCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsYXNoOw0KICBhbmltYXRpb24tbmFtZTogZmxhc2g7DQp9DQoNCi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqLw0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcHVsc2Ugew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICB9DQoNCiAgNTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBwdWxzZSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCg0KICA1MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgfQ0KfQ0KDQoucHVsc2Ugew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTsNCiAgYW5pbWF0aW9uLW5hbWU6IHB1bHNlOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcnViYmVyQmFuZCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCg0KICAzMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTsNCiAgfQ0KDQogIDQwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpOw0KICB9DQoNCiAgNTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7DQogIH0NCg0KICA2NSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7DQogIH0NCg0KICA3NSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBydWJiZXJCYW5kIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgfQ0KDQogIDMwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpOw0KICB9DQoNCiAgNDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7DQogIH0NCg0KICA1MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTsNCiAgfQ0KDQogIDY1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTsNCiAgfQ0KDQogIDc1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgfQ0KfQ0KDQoucnViYmVyQmFuZCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7DQogIGFuaW1hdGlvbi1uYW1lOiBydWJiZXJCYW5kOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc2hha2Ugew0KICAwJSwgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCg0KICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTsNCiAgfQ0KDQogIDIwJSwgNDAlLCA2MCUsIDgwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzaGFrZSB7DQogIDAlLCAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgfQ0KDQogIDEwJSwgMzAlLCA1MCUsIDcwJSwgOTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApOw0KICB9DQoNCiAgMjAlLCA0MCUsIDYwJSwgODAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTsNCiAgfQ0KfQ0KDQouc2hha2Ugew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzaGFrZTsNCiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc3dpbmcgew0KICAyMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7DQogIH0NCg0KICA0MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNWRlZyk7DQogIH0NCg0KICA4MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHN3aW5nIHsNCiAgMjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpOw0KICB9DQoNCiAgNDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7DQogIH0NCg0KICA2MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpOw0KICB9DQoNCiAgODAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7DQogIH0NCn0NCg0KLnN3aW5nIHsNCiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyOw0KICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyOw0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzd2luZzsNCiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgdGFkYSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCg0KICAxMCUsIDIwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7DQogIH0NCg0KICAzMCUsIDUwJSwgNzAlLCA5MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTsNCiAgfQ0KDQogIDQwJSwgNjAlLCA4MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgdGFkYSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCg0KICAxMCUsIDIwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7DQogIH0NCg0KICAzMCUsIDUwJSwgNzAlLCA5MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTsNCiAgfQ0KDQogIDQwJSwgNjAlLCA4MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICB9DQp9DQoNCi50YWRhIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGFkYTsNCiAgYW5pbWF0aW9uLW5hbWU6IHRhZGE7DQp9DQoNCi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqLw0KDQpALXdlYmtpdC1rZXlmcmFtZXMgd29iYmxlIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgfQ0KDQogIDE1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTsNCiAgfQ0KDQogIDMwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpOw0KICB9DQoNCiAgNDUlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICB9DQoNCiAgNjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7DQogIH0NCg0KICA3NSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgd29iYmxlIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgfQ0KDQogIDE1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTsNCiAgfQ0KDQogIDMwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpOw0KICB9DQoNCiAgNDUlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpOw0KICB9DQoNCiAgNjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7DQogIH0NCg0KICA3NSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTFkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICB9DQp9DQoNCi53b2JibGUgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3b2JibGU7DQogIGFuaW1hdGlvbi1uYW1lOiB3b2JibGU7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBqZWxsbyB7DQogIDExLjElIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZQ0KICB9DQoNCiAgMjIuMiUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpDQogIH0NCiAgMzMuMyUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZykNCiAgfQ0KICA0NC40JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpDQogIH0NCiAgNTUuNSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKQ0KICB9DQogIDY2LjYlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKQ0KICB9DQogIDc3LjclIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKQ0KICB9DQogIDg4LjglIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpDQogIH0NCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmUNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGplbGxvIHsNCiAgMTEuMSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lDQogIH0NCg0KICAyMi4yJSB7DQoNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTsNCiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKQ0KICB9DQogIDMzLjMlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpDQogIH0NCiAgNDQuNCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKQ0KICB9DQogIDU1LjUlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZykNCiAgfQ0KICA2Ni42JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZykNCiAgfQ0KICA3Ny43JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7DQogICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZykNCiAgfQ0KICA4OC44JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMC4xOTUzMTI1ZGVnKSBza2V3WSgtMC4xOTUzMTI1ZGVnKQ0KICB9DQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lDQogIH0NCn0NCg0KDQoNCi5qZWxsb3sNCiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmplbGxvOw0KICAgICAgICAgICAgYW5pbWF0aW9uLW5hbWU6amVsbG87DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7DQoNCiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcg0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW4gew0KICAwJSwgMjAlLCA0MCUsIDYwJSwgODAlLCAxMDAlIHsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgfQ0KDQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTsNCiAgfQ0KDQogIDIwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpOw0KICB9DQoNCiAgNDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7DQogIH0NCg0KICA2MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpOw0KICB9DQoNCiAgODAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGJvdW5jZUluIHsNCiAgMCUsIDIwJSwgNDAlLCA2MCUsIDgwJSwgMTAwJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogIH0NCg0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogIH0NCg0KICAyMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTsNCiAgfQ0KDQogIDQwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpOw0KICB9DQoNCiAgNjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTsNCiAgfQ0KDQogIDgwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCn0NCg0KLmJvdW5jZUluIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW47DQogIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluRG93biB7DQogIDAlLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgfQ0KDQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApOw0KICB9DQoNCiAgNjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApOw0KICB9DQoNCiAgNzUlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApOw0KICB9DQoNCiAgOTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBib3VuY2VJbkRvd24gew0KICAwJSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogIH0NCg0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwMDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyNXB4LCAwKTsNCiAgfQ0KDQogIDc1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTsNCiAgfQ0KDQogIDkwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICB9DQp9DQoNCi5ib3VuY2VJbkRvd24gew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkRvd247DQogIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkRvd247DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkxlZnQgew0KICAwJSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogIH0NCg0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMzAwMHB4LCAwLCAwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTsNCiAgfQ0KDQogIDc1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTsNCiAgfQ0KDQogIDkwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHsNCiAgMCUsIDYwJSwgNzUlLCA5MCUsIDEwMCUgew0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICB9DQoNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7DQogIH0NCg0KICA2MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDI1cHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7DQogIH0NCg0KICA3NSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7DQogIH0NCg0KICA5MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgfQ0KfQ0KDQouYm91bmNlSW5MZWZ0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0Ow0KICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7DQogIDAlLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgfQ0KDQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApOw0KICB9DQoNCiAgNzUlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTsNCiAgfQ0KDQogIDkwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBib3VuY2VJblJpZ2h0IHsNCiAgMCUsIDYwJSwgNzUlLCA5MCUsIDEwMCUgew0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICB9DQoNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApOw0KICB9DQoNCiAgNjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7DQogIH0NCg0KICA3NSUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApOw0KICB9DQoNCiAgOTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgfQ0KfQ0KDQouYm91bmNlSW5SaWdodCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7DQogIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblJpZ2h0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5VcCB7DQogIDAlLCA2MCUsIDc1JSwgOTAlLCAxMDAlIHsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTsNCiAgfQ0KDQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApOw0KICB9DQoNCiAgNzUlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTsNCiAgfQ0KDQogIDkwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGJvdW5jZUluVXAgew0KICAwJSwgNjAlLCA3NSUsIDkwJSwgMTAwJSB7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7DQogIH0NCg0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7DQogIH0NCg0KICA2MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTsNCiAgfQ0KDQogIDc1JSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7DQogIH0NCg0KICA5MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01cHgsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCn0NCg0KLmJvdW5jZUluVXAgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwOw0KICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dCB7DQogIDIwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpOw0KICB9DQoNCiAgNTAlLCA1NSUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBib3VuY2VPdXQgew0KICAyMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTsNCiAgfQ0KDQogIDUwJSwgNTUlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICB9DQp9DQoNCi5ib3VuY2VPdXQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7DQogIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXREb3duIHsNCiAgMjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTsNCiAgfQ0KDQogIDQwJSwgNDUlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGJvdW5jZU91dERvd24gew0KICAyMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApOw0KICB9DQoNCiAgNDAlLCA0NSUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApOw0KICB9DQp9DQoNCi5ib3VuY2VPdXREb3duIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjsNCiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd247DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHsNCiAgMjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGJvdW5jZU91dExlZnQgew0KICAyMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApOw0KICB9DQp9DQoNCi5ib3VuY2VPdXRMZWZ0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDsNCiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dExlZnQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7DQogIDIwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7DQogIDIwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7DQogIH0NCn0NCg0KLmJvdW5jZU91dFJpZ2h0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7DQogIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFVwIHsNCiAgMjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApOw0KICB9DQoNCiAgNDAlLCA0NSUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgYm91bmNlT3V0VXAgew0KICAyMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7DQogIH0NCg0KICA0MCUsIDQ1JSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7DQogIH0NCn0NCg0KLmJvdW5jZU91dFVwIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXA7DQogIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDsNCn0NCg0KDQpALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZUluIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCi5mYWRlSW4gew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW47DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5Eb3duIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZhZGVJbkRvd24gew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogIH0NCn0NCg0KLmZhZGVJbkRvd24gew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOw0KICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bjsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjAwMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogIH0NCn0NCg0KLmZhZGVJbkRvd25CaWcgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnOw0KICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZzsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnQgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KfQ0KDQouZmFkZUluTGVmdCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnQ7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluTGVmdEJpZyB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZUluTGVmdEJpZyB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KfQ0KDQouZmFkZUluTGVmdEJpZyB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0QmlnOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluUmlnaHQgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICB9DQp9DQoNCi5mYWRlSW5SaWdodCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0Ow0KICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodEJpZyB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICB9DQp9DQoNCi5mYWRlSW5SaWdodEJpZyB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnOw0KICBhbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHRCaWc7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZUluVXAgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogIH0NCn0NCg0KLmZhZGVJblVwIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXA7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwQmlnIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZUluVXBCaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogIH0NCn0NCg0KLmZhZGVJblVwQmlnIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXBCaWc7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZzsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXQgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBmYWRlT3V0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5mYWRlT3V0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dDsNCiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0RG93biB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZU91dERvd24gew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7DQogIH0NCn0NCg0KLmZhZGVPdXREb3duIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd247DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duQmlnIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMDAwcHgpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAwMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwMDBweCk7DQogIH0NCn0NCg0KLmZhZGVPdXREb3duQmlnIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWc7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZzsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwcHgpOw0KICB9DQp9DQoNCi5mYWRlT3V0TGVmdCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0Ow0KICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0yMDAwcHgpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTIwMDBweCk7DQogIH0NCn0NCg0KLmZhZGVPdXRMZWZ0QmlnIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdEJpZzsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOw0KICB9DQp9DQoNCi5mYWRlT3V0UmlnaHQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWcgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjAwMHB4KTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwMDBweCk7DQogIH0NCn0NCg0KLmZhZGVPdXRSaWdodEJpZyB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZzsNCiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZzsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBmYWRlT3V0VXAgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwcHgpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjBweCk7DQogIH0NCn0NCg0KLmZhZGVPdXRVcCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDsNCiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcEJpZyB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOw0KICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTIwMDBweCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yMDAwcHgpOw0KICB9DQp9DQoNCi5mYWRlT3V0VXBCaWcgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7DQogIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmbGlwIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsNCiAgfQ0KDQogIDQwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7DQogIH0NCg0KICA1MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgfQ0KDQogIDgwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHNjYWxlM2QoLjk1LCAuOTUsIC45NSk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmxpcCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7DQogIH0NCg0KICA0MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0Ow0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0Ow0KICB9DQoNCiAgNTAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogIH0NCg0KICA4MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgfQ0KfQ0KDQouYW5pbWF0ZWQuZmxpcCB7DQogIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcDsNCiAgYW5pbWF0aW9uLW5hbWU6IGZsaXA7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5YIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQoNCiAgNDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgfQ0KDQogIDYwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICA4MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBmbGlwSW5YIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQoNCiAgNDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgfQ0KDQogIDYwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICA4MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC01ZGVnKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7DQogIH0NCn0NCg0KLmZsaXBJblggew0KICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsNCiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50Ow0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YOw0KICBhbmltYXRpb24tbmFtZTogZmxpcEluWDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblkgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICA0MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICB9DQoNCiAgNjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDgwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGZsaXBJblkgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICA0MCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOw0KICB9DQoNCiAgNjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDgwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTVkZWcpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgfQ0KfQ0KDQouZmxpcEluWSB7DQogIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50Ow0KICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBJblk7DQogIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFggew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgfQ0KDQogIDMwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgZmxpcE91dFggew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTsNCiAgfQ0KDQogIDMwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5mbGlwT3V0WCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYOw0KICBhbmltYXRpb24tbmFtZTogZmxpcE91dFg7DQogIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50Ow0KICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBmbGlwT3V0WSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpOw0KICB9DQoNCiAgMzAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBmbGlwT3V0WSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpOw0KICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpOw0KICB9DQoNCiAgMzAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNWRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE1ZGVnKTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7DQogICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCn0NCg0KLmZsaXBPdXRZIHsNCiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7DQogIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcE91dFk7DQogIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbiB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KDQogIDYwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgODAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpOw0KICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGxpZ2h0U3BlZWRJbiB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKC0zMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KDQogIDYwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgODAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTVkZWcpOw0KICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQoubGlnaHRTcGVlZEluIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluOw0KICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluOw0KICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0Ow0KICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQgew0KICAwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQoubGlnaHRTcGVlZE91dCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7DQogIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkT3V0Ow0KICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQogIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbiB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZUluIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7DQogICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCi5yb3RhdGVJbiB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluOw0KICBhbmltYXRpb24tbmFtZTogcm90YXRlSW47DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lOw0KICAgIHRyYW5zZm9ybTogbm9uZTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQoucm90YXRlSW5Eb3duTGVmdCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnQ7DQogIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25MZWZ0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZUluRG93blJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCn0NCg0KLnJvdGF0ZUluRG93blJpZ2h0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7DQogIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZUluVXBMZWZ0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQoucm90YXRlSW5VcExlZnQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDsNCiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBMZWZ0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTsNCiAgICB0cmFuc2Zvcm06IG5vbmU7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCn0NCg0KLnJvdGF0ZUluVXBSaWdodCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBSaWdodDsNCiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBSaWdodDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZU91dCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQoucm90YXRlT3V0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0Ow0KICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpOw0KICAgIG9wYWNpdHk6IDA7DQogIH0NCn0NCg0KQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQoucm90YXRlT3V0RG93bkxlZnQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duTGVmdDsNCiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5yb3RhdGVPdXREb3duUmlnaHQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duUmlnaHQ7DQogIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXREb3duUmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXRVcExlZnQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5yb3RhdGVPdXRVcExlZnQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7DQogIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA5MGRlZyk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHJvdGF0ZU91dFVwUmlnaHQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tOw0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5yb3RhdGVPdXRVcFJpZ2h0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBSaWdodDsNCiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBoaW5nZSB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Ow0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Ow0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7DQogIH0NCg0KICAyMCUsIDYwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Ow0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Ow0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7DQogIH0NCg0KICA0MCUsIDgwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Ow0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0Ow0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7DQogICAgb3BhY2l0eTogMTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIGhpbmdlIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7DQogICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsNCiAgfQ0KDQogIDIwJSwgNjAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7DQogICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsNCiAgfQ0KDQogIDQwJSwgODAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7DQogICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTsNCiAgICBvcGFjaXR5OiAwOw0KICB9DQp9DQoNCi5oaW5nZSB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhpbmdlOw0KICBhbmltYXRpb24tbmFtZTogaGluZ2U7DQp9DQoNCi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqLw0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgcm9sbEluIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7DQogICAgdHJhbnNmb3JtOiBub25lOw0KICB9DQp9DQoNCi5yb2xsSW4gew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsSW47DQogIGFuaW1hdGlvbi1uYW1lOiByb2xsSW47DQp9DQoNCi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqLw0KDQpALXdlYmtpdC1rZXlmcmFtZXMgcm9sbE91dCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyByb2xsT3V0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTsNCiAgfQ0KfQ0KDQoucm9sbE91dCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvbGxPdXQ7DQogIGFuaW1hdGlvbi1uYW1lOiByb2xsT3V0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICB9DQoNCiAgNTAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgem9vbUluIHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICB9DQoNCiAgNTAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQp9DQoNCi56b29tSW4gew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW47DQogIGFuaW1hdGlvbi1uYW1lOiB6b29tSW47DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5TdGFibGUgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogIH0NCg0KICAzMy4zMzMlIHsNCiAgICBvcGFjaXR5OiAxOw0KCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTsNCiAgfQ0KICANCiAgNjYuNjY2NjY2JSB7DQogICAgb3BhY2l0eTogMTsNCgktd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyB6b29tSW5TdGFibGUgew0KIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTsNCiAgfQ0KDQogIDMzLjMzMyUgew0KICAgIG9wYWNpdHk6IDE7DQoJLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpOw0KICB9DQogIA0KICA2Ni42NjY2NjYlIHsNCiAgICBvcGFjaXR5OiAxOw0KCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTsNCiAgfQ0KfQ0KDQouem9vbUluU3RhYmxlIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluU3RhYmxlOw0KICBhbmltYXRpb24tbmFtZTogem9vbUluU3RhYmxlOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluRG93biB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgem9vbUluRG93biB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCi56b29tSW5Eb3duIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluRG93bjsNCiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5MZWZ0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICB9DQoNCiAgNjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyB6b29tSW5MZWZ0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICB9DQoNCiAgNjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogIH0NCn0NCg0KLnpvb21JbkxlZnQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0Ow0KICBhbmltYXRpb24tbmFtZTogem9vbUluTGVmdDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JblJpZ2h0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgfQ0KDQogIDYwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyB6b29tSW5SaWdodCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogIH0NCg0KICA2MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCi56b29tSW5SaWdodCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JblJpZ2h0Ow0KICBhbmltYXRpb24tbmFtZTogem9vbUluUmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5VcCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogIH0NCg0KICA2MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgem9vbUluVXAgew0KICAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICB9DQoNCiAgNjAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTsNCiAgfQ0KfQ0KDQouem9vbUluVXAgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5VcDsNCiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblVwOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dCB7DQogIDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICB9DQoNCiAgNTAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogIH0NCn0NCg0KQGtleWZyYW1lcyB6b29tT3V0IHsNCiAgMCUgew0KICAgIG9wYWNpdHk6IDE7DQogIH0NCg0KICA1MCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgfQ0KfQ0KDQouem9vbU91dCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXQ7DQogIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dERvd24gew0KICA0MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgem9vbU91dERvd24gew0KICA0MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCi56b29tT3V0RG93biB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXREb3duOw0KICBhbmltYXRpb24tbmFtZTogem9vbU91dERvd247DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0TGVmdCB7DQogIDQwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHpvb21PdXRMZWZ0IHsNCiAgNDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyOw0KICB9DQp9DQoNCi56b29tT3V0TGVmdCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0Ow0KICBhbmltYXRpb24tbmFtZTogem9vbU91dExlZnQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0UmlnaHQgew0KICA0MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICBvcGFjaXR5OiAwOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7DQogIDQwJSB7DQogICAgb3BhY2l0eTogMTsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7DQogICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOw0KICB9DQp9DQoNCi56b29tT3V0UmlnaHQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tT3V0UmlnaHQ7DQogIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0UmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyB6b29tT3V0VXAgew0KICA0MCUgew0KICAgIG9wYWNpdHk6IDE7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgb3BhY2l0eTogMDsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTsNCiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7DQogICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tOw0KICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207DQogICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgem9vbU91dFVwIHsNCiAgNDAlIHsNCiAgICBvcGFjaXR5OiAxOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApOw0KICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTsNCiAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7DQogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIG9wYWNpdHk6IDA7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7DQogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTsNCiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tOw0KICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpOw0KICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTsNCiAgfQ0KfQ0KDQouem9vbU91dFVwIHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dFVwOw0KICBhbmltYXRpb24tbmFtZTogem9vbU91dFVwOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJbkRvd24gew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsNCiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzbGlkZUluRG93biB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApOw0KICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgfQ0KfQ0KDQouc2xpZGVJbkRvd24gew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjsNCiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5Eb3duOw0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJbkxlZnQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTsNCiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzbGlkZUluTGVmdCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApOw0KICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgfQ0KfQ0KDQouc2xpZGVJbkxlZnQgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluTGVmdDsNCiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5MZWZ0Ow0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOw0KICAgIHZpc2liaWxpdHk6IHZpc2libGU7DQogIH0NCg0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgfQ0KfQ0KDQpAa2V5ZnJhbWVzIHNsaWRlSW5SaWdodCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTsNCiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCn0NCg0KLnNsaWRlSW5SaWdodCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5SaWdodDsNCiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5SaWdodDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5VcCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTsNCiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOw0KICB9DQoNCiAgMTAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzbGlkZUluVXAgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7DQogICAgdmlzaWJpbGl0eTogdmlzaWJsZTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICB9DQp9DQoNCi5zbGlkZUluVXAgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7DQogIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dERvd24gew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzbGlkZU91dERvd24gew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7DQogIH0NCn0NCg0KLnNsaWRlT3V0RG93biB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjsNCiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgfQ0KDQogIDEwMCUgew0KICAgIHZpc2liaWxpdHk6IGhpZGRlbjsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApOw0KICB9DQp9DQoNCkBrZXlmcmFtZXMgc2xpZGVPdXRMZWZ0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7DQogIH0NCn0NCg0KLnNsaWRlT3V0TGVmdCB7DQogIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDsNCiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDsNCn0NCg0KQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0UmlnaHQgew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7DQogIH0NCg0KICAxMDAlIHsNCiAgICB2aXNpYmlsaXR5OiBoaWRkZW47DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOw0KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApOw0KICB9DQp9DQoNCi5zbGlkZU91dFJpZ2h0IHsNCiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2xpZGVPdXRSaWdodDsNCiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0UmlnaHQ7DQp9DQoNCkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFVwIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7DQogIH0NCn0NCg0KQGtleWZyYW1lcyBzbGlkZU91dFVwIHsNCiAgMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsNCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOw0KICB9DQoNCiAgMTAwJSB7DQogICAgdmlzaWJpbGl0eTogaGlkZGVuOw0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7DQogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7DQogIH0NCn0NCg0KLnNsaWRlT3V0VXAgew0KICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwOw0KICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXRVcDsNCn0NCg0KQGtleWZyYW1lcyBhbmltZSB7DQpmcm9tIHsNCglvcGFjaXR5OiAwOw0KCXRyYW5zZm9ybTogc2NhbGVZKDApOw0KCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW1vei10cmFuc2Zvcm06IHNjYWxlWSgwKTsNCgktbXMtdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW8tdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQp9DQp0byB7DQoJb3BhY2l0eTogMTsNCgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCS1tcy10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktby10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktbW96LXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KfQ0KfQ0KDQpALXdlYmtpdC1rZXlmcmFtZXMgYW5pbWUgew0KZnJvbSB7DQoJb3BhY2l0eTogMDsNCgl0cmFuc2Zvcm06IHNjYWxlWSgwKTsNCgktd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDApOw0KCS1tb3otdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW1zLXRyYW5zZm9ybTogc2NhbGVZKDApOw0KCS1vLXRyYW5zZm9ybTogc2NhbGVZKDApOw0KfQ0KdG8gew0KCW9wYWNpdHk6IDE7DQoJdHJhbnNmb3JtOiBzY2FsZVkoMSk7DQoJLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktbXMtdHJhbnNmb3JtOiBzY2FsZVkoMSk7DQoJLW8tdHJhbnNmb3JtOiBzY2FsZVkoMSk7DQoJLW1vei10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCn0NCn0NCg0KQC1tb3ota2V5ZnJhbWVzIGFuaW1lIHsNCmZyb20gew0KCW9wYWNpdHk6IDA7DQoJdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgwKTsNCgktbW96LXRyYW5zZm9ybTogc2NhbGVZKDApOw0KCS1tcy10cmFuc2Zvcm06IHNjYWxlWSgwKTsNCgktby10cmFuc2Zvcm06IHNjYWxlWSgwKTsNCn0NCnRvIHsNCglvcGFjaXR5OiAxOw0KCXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMSk7DQoJLW1zLXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCS1vLXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCS1tb3otdHJhbnNmb3JtOiBzY2FsZVkoMSk7DQp9DQoNCn0NCg0KQC1vLWtleWZyYW1lcyBhbmltZSB7DQpmcm9tIHsNCglvcGFjaXR5OiAwOw0KCXRyYW5zZm9ybTogc2NhbGVZKDApOw0KCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW1vei10cmFuc2Zvcm06IHNjYWxlWSgwKTsNCgktbXMtdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW8tdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQp9DQp0byB7DQoJb3BhY2l0eTogMTsNCgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCS1tcy10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktby10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktbW96LXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KfQ0KfQ0KDQpALW1zLWtleWZyYW1lcyBhbmltZSB7DQpmcm9tIHsNCglvcGFjaXR5OiAwOw0KCXRyYW5zZm9ybTogc2NhbGVZKDApOw0KCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW1vei10cmFuc2Zvcm06IHNjYWxlWSgwKTsNCgktbXMtdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQoJLW8tdHJhbnNmb3JtOiBzY2FsZVkoMCk7DQp9DQp0byB7DQoJb3BhY2l0eTogMTsNCgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktd2Via2l0LXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KCS1tcy10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktby10cmFuc2Zvcm06IHNjYWxlWSgxKTsNCgktbW96LXRyYW5zZm9ybTogc2NhbGVZKDEpOw0KfQ0KDQp9DQo="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"api.coingecko.com/api/v3/coins/markets?vs_currency=usd\u0026ids=bitcoin,ethereum,eos,ripple,litecoin\u0026locale=en","fqdn":"api.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"172.66.172.219","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"fetch","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.936Z","timestamp":1785129412936,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"api.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Fri, 03 Jul 2026 17:14:13 GMT","end":"Thu, 01 Oct 2026 18:14:10 GMT"},"fingerprint":{"sha1":"FD:68:29:08:59:93:ED:F1:73:C5:56:C8:B7:8C:EA:2D:F8:7E:E5:67","sha256":"28:11:40:A6:0A:FB:70:11:FF:CD:E4:7F:13:40:3F:0F:D5:5F:68:21:26:DF:61:5A:45:A5:EB:B3:33:B2:A9:0B"}}},"request":{"raw":"GET /api/v3/coins/markets?vs_currency=usd\u0026ids=bitcoin,ethereum,eos,ripple,litecoin\u0026locale=en HTTP/1.1\r\nHost: api.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nReferer: https://danis-miners.com/\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\ncontent-type: application/json; charset=utf-8\r\nserver: cloudflare\r\naccess-control-allow-origin: *\r\naccess-control-allow-methods: POST, PUT, DELETE, GET, OPTIONS\r\naccess-control-expose-headers: link, per-page, total\r\naccess-control-max-age: 7200\r\nx-frame-options: SAMEORIGIN\r\nx-xss-protection: 0\r\nx-content-type-options: nosniff\r\nx-permitted-cross-domain-policies: none\r\nreferrer-policy: strict-origin-when-cross-origin\r\nx-data-source: 2.0\r\ntotal: 5\r\nper-page: 100\r\ncache-control: max-age=30, public, must-revalidate, s-maxage=60\r\naccess-control-request-method: *\r\naccess-control-allow-headers: Origin, X-Requested-With, Content-Type, Accept, Authorization\r\nvary: Accept-Encoding, Origin\r\ncontent-encoding: gzip\r\netag: W/\"5e94e1b3cf57bc003c4af432244ae737\"\r\nx-request-id: f8e66763-8510-43c9-b805-0a71054278b6\r\nx-runtime: 0.004820\r\ncontent-security-policy-report-only: script-src https://accounts.google.com/gsi/client; frame-src https://accounts.google.com/gsi/; connect-src https://accounts.google.com/gsi/;\r\nstrict-transport-security: max-age=600\r\ncf-cache-status: EXPIRED\r\npriority: u=4,i=?0\r\ncf-ray: a2192caef82356bb-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"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":3920,"size_decoded":2405,"mime_type":"application/json; charset=utf-8","magic":"JSON text data","md5":"cd8d0601bb22fb1d3ab9a0b62b8a7aba","sha1":"24d7775546864d5a62554875f0a0c8ee809ff546","sha256":"61b23576ee49a5327b1a0367f1471caee839b0976bb324ef5d595350ee7e7626","sha512":"1c61a6cf70adbe0e8a3bbaaf17583d0b69041ecf673aeb130f02f393f3f35b5410bf9e15d7cff85225bdb982be4c4e6595270c733d73726b7cd0e3f9c76edcb0","ssdeep":"","tlshash":"b1810fd21d34d9e3c2b1665a685e36100d2efeda9cc9dc034f9dcede44687ba410ee4a","first_seen":"2026-07-27T05:18:35.512047Z","last_seen":"2026-07-27T05:18:35.512047Z","times_seen":1,"resource_available":false,"data":"W3siaWQiOiJiaXRjb2luIiwic3ltYm9sIjoiYnRjIiwibmFtZSI6IkJpdGNvaW4iLCJpbWFnZSI6Imh0dHBzOi8vY29pbi1pbWFnZXMuY29pbmdlY2tvLmNvbS9jb2lucy9pbWFnZXMvMS9sYXJnZS9iaXRjb2luLnBuZz8xNjk2NTAxNDAwIiwiY3VycmVudF9wcmljZSI6NjUzMjksIm1hcmtldF9jYXAiOjEzMTA3Mzg5MTQ4MDIsIm1hcmtldF9jYXBfcmFuayI6MSwiZnVsbHlfZGlsdXRlZF92YWx1YXRpb24iOjEzMTA3Mzg5MTQ4MDIsInRvdGFsX3ZvbHVtZSI6MTY1NDYzMTcwNDUsImhpZ2hfMjRoIjo2NTQ4OSwibG93XzI0aCI6NjQyNDMsInByaWNlX2NoYW5nZV8yNGgiOjEwMjguMTcsInByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aCI6MS4yLCJtYXJrZXRfY2FwX2NoYW5nZV8yNGgiOjIwNzcwMzg3NzY0LCJtYXJrZXRfY2FwX2NoYW5nZV9wZXJjZW50YWdlXzI0aCI6MS42MTAxNSwiY2lyY3VsYXRpbmdfc3VwcGx5IjoyMDA2MTgwMy4wLCJ0b3RhbF9zdXBwbHkiOjIwMDYxODAzLjAsIm1heF9zdXBwbHkiOjIxMDAwMDAwLjAsImF0aCI6MTI2MDgwLCJhdGhfY2hhbmdlX3BlcmNlbnRhZ2UiOi00OC4xODQyOSwiYXRoX2RhdGUiOiIyMDI1LTEwLTA2VDEwOjU3OjQyLjAwMFoiLCJhdGwiOjY3LjgxLCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjk2MjQyLjk1MjgsImF0bF9kYXRlIjoiMjAxMy0wNy0wNVQxNjowMDowMC4wMDBaIiwicm9pIjpudWxsLCJsYXN0X3VwZGF0ZWQiOiIyMDI2LTA3LTI3VDA1OjE0OjMwLjAwMFoifSx7ImlkIjoiZXRoZXJldW0iLCJzeW1ib2wiOiJldGgiLCJuYW1lIjoiRXRoZXJldW0iLCJpbWFnZSI6Imh0dHBzOi8vY29pbi1pbWFnZXMuY29pbmdlY2tvLmNvbS9jb2lucy9pbWFnZXMvMjc5L2xhcmdlL2V0aGVyZXVtLnBuZz8xNjk2NTAxNjI4IiwiY3VycmVudF9wcmljZSI6MTk1NS4xNSwibWFya2V0X2NhcCI6MjM1OTQwNjUzOTU5LCJtYXJrZXRfY2FwX3JhbmsiOjIsImZ1bGx5X2RpbHV0ZWRfdmFsdWF0aW9uIjoyMzU5NDA2NTM5NTksInRvdGFsX3ZvbHVtZSI6NzI2MDM5ODg5MSwiaGlnaF8yNGgiOjE5NjAuMzYsImxvd18yNGgiOjE4NzcuMSwicHJpY2VfY2hhbmdlXzI0aCI6NzMuNzYsInByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aCI6My44LCJtYXJrZXRfY2FwX2NoYW5nZV8yNGgiOjg4ODk0NjczMTgsIm1hcmtldF9jYXBfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjozLjkxNTE4LCJjaXJjdWxhdGluZ19zdXBwbHkiOjEyMDY4MjYzNS44NTMxMDM3MSwidG90YWxfc3VwcGx5IjoxMjA2ODI2MzUuODUzMTAzNywibWF4X3N1cHBseSI6bnVsbCwiYXRoIjo0OTQ2LjA1LCJhdGhfY2hhbmdlX3BlcmNlbnRhZ2UiOi02MC40NzA0MSwiYXRoX2RhdGUiOiIyMDI1LTA4LTI0VDExOjIxOjAzLjAwMFoiLCJhdGwiOjAuNDMyOTc5LCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjQ1MTQ1OC40MzY1MywiYXRsX2RhdGUiOiIyMDE1LTEwLTE5VDE2OjAwOjAwLjAwMFoiLCJyb2kiOnsidGltZXMiOjM5LjAwMTg2MDg5Mzk3NTY1LCJjdXJyZW5jeSI6ImJ0YyIsInBlcmNlbnRhZ2UiOjM5MDAuMTg2MDg5Mzk3NTY1NH0sImxhc3RfdXBkYXRlZCI6IjIwMjYtMDctMjdUMDU6MTQ6MzAuMDAwWiJ9LHsiaWQiOiJyaXBwbGUiLCJzeW1ib2wiOiJ4cnAiLCJuYW1lIjoiWFJQIiwiaW1hZ2UiOiJodHRwczovL2NvaW4taW1hZ2VzLmNvaW5nZWNrby5jb20vY29pbnMvaW1hZ2VzLzQ0L2xhcmdlL3hycC1zeW1ib2wtd2hpdGUtMTI4LnBuZz8xNjk2NTAxNDQyIiwiY3VycmVudF9wcmljZSI6MS4xMSwibWFya2V0X2NhcCI6NjkyNDE1NDIzMDYsIm1hcmtldF9jYXBfcmFuayI6NiwiZnVsbHlfZGlsdXRlZF92YWx1YXRpb24iOjExMDcxMTYxNjUyNiwidG90YWxfdm9sdW1lIjo2MDY4Mjk1NzcsImhpZ2hfMjRoIjoxLjEyLCJsb3dfMjRoIjoxLjA5NSwicHJpY2VfY2hhbmdlXzI0aCI6MC4wMTA1NTkyNywicHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjowLjUsIm1hcmtldF9jYXBfY2hhbmdlXzI0aCI6NjYxNDU1Njc0LCJtYXJrZXRfY2FwX2NoYW5nZV9wZXJjZW50YWdlXzI0aCI6MC45NjQ1LCJjaXJjdWxhdGluZ19zdXBwbHkiOjYyNTMzMjcxOTU1LjAsInRvdGFsX3N1cHBseSI6OTk5ODU2MzU3MDcuMCwibWF4X3N1cHBseSI6MTAwMDAwMDAwMDAwLjAsImF0aCI6My42NSwiYXRoX2NoYW5nZV9wZXJjZW50YWdlIjotNjkuNjM0MDYsImF0aF9kYXRlIjoiMjAyNS0wNy0xN1QxOTo0MDo1My4wMDBaIiwiYXRsIjowLjAwMjY4NjIxLCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjQxMTIwLjA5MSwiYXRsX2RhdGUiOiIyMDE0LTA1LTIxVDE2OjAwOjAwLjAwMFoiLCJyb2kiOm51bGwsImxhc3RfdXBkYXRlZCI6IjIwMjYtMDctMjdUMDU6MTQ6MzAuMDAwWiJ9LHsiaWQiOiJsaXRlY29pbiIsInN5bWJvbCI6Imx0YyIsIm5hbWUiOiJMaXRlY29pbiIsImltYWdlIjoiaHR0cHM6Ly9jb2luLWltYWdlcy5jb2luZ2Vja28uY29tL2NvaW5zL2ltYWdlcy8yL2xhcmdlL2xpdGVjb2luLnBuZz8xNjk2NTAxNDAwIiwiY3VycmVudF9wcmljZSI6NDcuNTgsIm1hcmtldF9jYXAiOjM2ODMyNzQ0ODAsIm1hcmtldF9jYXBfcmFuayI6MjcsImZ1bGx5X2RpbHV0ZWRfdmFsdWF0aW9uIjozNjgzMjk2MTgzLCJ0b3RhbF92b2x1bWUiOjIyNzMxMDc3OSwiaGlnaF8yNGgiOjQ4LjIsImxvd18yNGgiOjQ2LjYyLCJwcmljZV9jaGFuZ2VfMjRoIjowLjg1NjEzMSwicHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjoxLjUsIm1hcmtldF9jYXBfY2hhbmdlXzI0aCI6NjU2NjgzNTEsIm1hcmtldF9jYXBfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjoxLjgxNTI0LCJjaXJjdWxhdGluZ19zdXBwbHkiOjc3NDI4ODIyLjcyMTc1NjA3LCJ0b3RhbF9zdXBwbHkiOjc3NDI5MzE2LjQ3Mjk5NTUsIm1heF9zdXBwbHkiOjg0MDAwMDAwLjAsImF0aCI6NDEwLjI2LCJhdGhfY2hhbmdlX3BlcmNlbnRhZ2UiOi04OC40MDI1MSwiYXRoX2RhdGUiOiIyMDIxLTA1LTA5VDE5OjEzOjA3LjAwMFoiLCJhdGwiOjEuMTUsImF0bF9jaGFuZ2VfcGVyY2VudGFnZSI6NDA0MS41NDU4MiwiYXRsX2RhdGUiOiIyMDE1LTAxLTEzVDE2OjAwOjAwLjAwMFoiLCJyb2kiOm51bGwsImxhc3RfdXBkYXRlZCI6IjIwMjYtMDctMjdUMDU6MTQ6MzAuMDAwWiJ9LHsiaWQiOiJlb3MiLCJzeW1ib2wiOiJlb3MiLCJuYW1lIjoiRU9TIiwiaW1hZ2UiOiJodHRwczovL2NvaW4taW1hZ2VzLmNvaW5nZWNrby5jb20vY29pbnMvaW1hZ2VzLzczOC9sYXJnZS9DR19FT1NfSWNvbi5wbmc/MTczMTcwNTIzMiIsImN1cnJlbnRfcHJpY2UiOjAuMDYzOTg5LCJtYXJrZXRfY2FwIjowLjAsIm1hcmtldF9jYXBfcmFuayI6bnVsbCwiZnVsbHlfZGlsdXRlZF92YWx1YXRpb24iOjEzNDM3ODkzNSwidG90YWxfdm9sdW1lIjoyNzgyNCwiaGlnaF8yNGgiOjAuMDYzOTk4LCJsb3dfMjRoIjowLjA2MjE2OCwicHJpY2VfY2hhbmdlXzI0aCI6MC4wMDA5MTUwMywicHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoIjowLjcsIm1hcmtldF9jYXBfY2hhbmdlXzI0aCI6bnVsbCwibWFya2V0X2NhcF9jaGFuZ2VfcGVyY2VudGFnZV8yNGgiOm51bGwsImNpcmN1bGF0aW5nX3N1cHBseSI6MC4wLCJ0b3RhbF9zdXBwbHkiOjIxMDAwMDAwMDAuMCwibWF4X3N1cHBseSI6MjEwMDAwMDAwMC4wLCJhdGgiOjIyLjcxLCJhdGhfY2hhbmdlX3BlcmNlbnRhZ2UiOi05OS43MTgyNSwiYXRoX2RhdGUiOiIyMDE4LTA0LTI4VDIzOjUwOjMzLjAwMFoiLCJhdGwiOjAuMDU4MDA1LCJhdGxfY2hhbmdlX3BlcmNlbnRhZ2UiOjEwLjMxNzgxLCJhdGxfZGF0ZSI6IjIwMjYtMDYtMDZUMDQ6Mzg6NDUuMDAwWiIsInJvaSI6eyJ0aW1lcyI6LTAuOTM1NDA5ODkzMDAzNDc1NCwiY3VycmVuY3kiOiJ1c2QiLCJwZXJjZW50YWdlIjotOTMuNTQwOTg5MzAwMzQ3NTV9LCJsYXN0X3VwZGF0ZWQiOiIyMDI2LTA3LTI3VDA1OjE0OjMwLjAwMFoifV0="}},"time_used":178,"timings":{"blocked":0,"dns":3,"connect":14,"send":0,"wait":161,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widget-v3.smartsuppcdn.com/manifest.json","fqdn":"widget-v3.smartsuppcdn.com","domain":"smartsuppcdn.com","tld":"com"},"ip":{"addr":"185.76.9.12","port":443,"asn":60068,"as":"Datacamp Limited","country":"Sweden","country_code":"SE"},"is_navigation_request":false,"resource_type":"xhr","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:59.668Z","timestamp":1785129419668,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_256_GCM_SHA384","key_group_name":"x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"1857279285.rsc.cdn77.org","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 04 Jun 2026 14:34:45 GMT","end":"Wed, 02 Sep 2026 14:34:44 GMT"},"fingerprint":{"sha1":"92:5D:A0:17:13:91:72:7B:B6:8C:6A:7D:A9:55:7F:C8:A9:47:11:99","sha256":"0E:FC:E3:4D:AD:32:B2:11:05:DC:E3:CD:CC:9E:10:DC:C5:2D:9E:1C:D7:C1:9C:00:92:15:43:C5:B7:0B:3A:D6"}}},"request":{"raw":"GET /manifest.json HTTP/1.1\r\nHost: widget-v3.smartsuppcdn.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nContent-Type: text/plain\r\nOrigin: https://danis-miners.com\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: empty\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/2 200 \r\ndate: Mon, 27 Jul 2026 05:17:02 GMT\r\ncontent-type: application/json\r\naccess-control-allow-origin: *\r\ncache-control: max-age=300, public, s-maxage=60\r\netag: W/\"6a4cb803-891\"\r\nexpires: Tue, 07 Jul 2026 08:35:15 GMT\r\nlast-modified: Tue, 07 Jul 2026 08:25:39 GMT\r\nx-77-nzt: k6AdY/CmFzNxD0C6DmZ+tkcnsVF+Fr+WGcOcX3QLKZSa7ZTOvbrZu5Q3dPSfgZbgPnFDlGo\r\nx-77-nzt-ray: e2f754206215f709cee9666aab7c4137\r\nx-77-cache: HIT\r\nx-77-age: 44\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\nserver: CDN77-Turbo\r\nx-77-pop: stockholmSE\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"CDN77","description":"CDN77 is a content delivery network (CDN).","website":"https://www.cdn77.com","common_platform_enumeration":"","icon":"CDN77.png","categories":["CDN"]}],"data":{"size":2193,"size_decoded":1034,"mime_type":"application/json","magic":"JSON text data","md5":"88bd6816d4679ef7a63e1e6b61490804","sha1":"a592c82f8688d81c4ff12ddda0f42d842dbcf079","sha256":"1147d96bffe9abe8aa663c63cca281edbff049e2211f810da089a1dd90051df8","sha512":"e583bebb86335657d7cca5065967a4e281280f0b4ab1fe0457de1dee47f12f84922daf5fe938c39bfb8f03e086d706f2b0fd1d86a6e79c4cce053f0943dcb762","ssdeep":"","tlshash":"d9414593c0b80e5317cc262bb89545515d5083c7e88a3d0d366d9a7f2f4cea920e6b7e","first_seen":"2026-07-07T11:50:17.724469Z","last_seen":"2026-07-27T07:27:47.909394Z","times_seen":1802,"resource_available":false,"data":"ewogICJfV2lkZ2V0TWVzc2VuZ2VySW5wdXQtQzBYSFB4ZXYuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvV2lkZ2V0TWVzc2VuZ2VySW5wdXQtQzBYSFB4ZXYuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VySW5wdXQiLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLUNnTUNBZm9yLmpzIgogICAgXSwKICAgICJkeW5hbWljSW1wb3J0cyI6IFsKICAgICAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIgogICAgXQogIH0sCiAgIl9zaGFyZWQtQ2dNQ0Fmb3IuanMiOiB7CiAgICAiZmlsZSI6ICJhc3NldHMvc2hhcmVkLUNnTUNBZm9yLmpzIiwKICAgICJuYW1lIjogIkljb25CdXR0b24iLAogICAgImR5bmFtaWNJbXBvcnRzIjogWwogICAgICAibm9kZV9tb2R1bGVzLy5wbnBtL0B0aHVtYm1hcmtqcyt0aHVtYm1hcmtqc0AxLjkuMC9ub2RlX21vZHVsZXMvQHRodW1ibWFya2pzL3RodW1ibWFya2pzL2Rpc3QvdGh1bWJtYXJrLmVzbS5qcyIKICAgIF0KICB9LAogICJub2RlX21vZHVsZXMvLnBucG0vQHRodW1ibWFya2pzK3RodW1ibWFya2pzQDEuOS4wL25vZGVfbW9kdWxlcy9AdGh1bWJtYXJranMvdGh1bWJtYXJranMvZGlzdC90aHVtYm1hcmsuZXNtLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL3RodW1ibWFyay5lc20tQ1A0Q1UweUwuanMiLAogICAgIm5hbWUiOiAidGh1bWJtYXJrLmVzbSIsCiAgICAic3JjIjogIm5vZGVfbW9kdWxlcy8ucG5wbS9AdGh1bWJtYXJranMrdGh1bWJtYXJranNAMS45LjAvbm9kZV9tb2R1bGVzL0B0aHVtYm1hcmtqcy90aHVtYm1hcmtqcy9kaXN0L3RodW1ibWFyay5lc20uanMiLAogICAgImlzRHluYW1pY0VudHJ5IjogdHJ1ZQogIH0sCiAgIm5vZGVfbW9kdWxlcy8ucG5wbS9lbW9qaS1tYXJ0QDUuNi4wL25vZGVfbW9kdWxlcy9lbW9qaS1tYXJ0L2Rpc3QvbW9kdWxlLmpzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21vZHVsZS1ERDVudlZEMy5qcyIsCiAgICAibmFtZSI6ICJtb2R1bGUiLAogICAgInNyYyI6ICJub2RlX21vZHVsZXMvLnBucG0vZW1vamktbWFydEA1LjYuMC9ub2RlX21vZHVsZXMvZW1vamktbWFydC9kaXN0L21vZHVsZS5qcyIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlCiAgfSwKICAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRNZXNzZW5nZXItREQ3T3l5VDUuanMiLAogICAgIm5hbWUiOiAiV2lkZ2V0TWVzc2VuZ2VyIiwKICAgICJzcmMiOiAic3JjL2ZyYW1lcy9tZXNzZW5nZXIvV2lkZ2V0TWVzc2VuZ2VyLnN2ZWx0ZSIsCiAgICAiaXNEeW5hbWljRW50cnkiOiB0cnVlLAogICAgImltcG9ydHMiOiBbCiAgICAgICJfc2hhcmVkLUNnTUNBZm9yLmpzIiwKICAgICAgIl9XaWRnZXRNZXNzZW5nZXJJbnB1dC1DMFhIUHhldi5qcyIsCiAgICAgICJzcmMvbWFpbi50cyIKICAgIF0KICB9LAogICJzcmMvZnJhbWVzL3BvcHVwL1dpZGdldFBvcHVwLnN2ZWx0ZSI6IHsKICAgICJmaWxlIjogImFzc2V0cy9XaWRnZXRQb3B1cC1xZXV3a2NCbi5qcyIsCiAgICAibmFtZSI6ICJXaWRnZXRQb3B1cCIsCiAgICAic3JjIjogInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIiwKICAgICJpc0R5bmFtaWNFbnRyeSI6IHRydWUsCiAgICAiaW1wb3J0cyI6IFsKICAgICAgIl9zaGFyZWQtQ2dNQ0Fmb3IuanMiLAogICAgICAiX1dpZGdldE1lc3NlbmdlcklucHV0LUMwWEhQeGV2LmpzIgogICAgXQogIH0sCiAgInNyYy9tYWluLnRzIjogewogICAgImZpbGUiOiAiYXNzZXRzL21haW4tdDZXeExBQkEuanMiLAogICAgIm5hbWUiOiAibWFpbiIsCiAgICAic3JjIjogInNyYy9tYWluLnRzIiwKICAgICJpc0VudHJ5IjogdHJ1ZSwKICAgICJpbXBvcnRzIjogWwogICAgICAiX3NoYXJlZC1DZ01DQWZvci5qcyIKICAgIF0sCiAgICAiZHluYW1pY0ltcG9ydHMiOiBbCiAgICAgICJzcmMvZnJhbWVzL21lc3Nlbmdlci9XaWRnZXRNZXNzZW5nZXIuc3ZlbHRlIiwKICAgICAgInNyYy9mcmFtZXMvcG9wdXAvV2lkZ2V0UG9wdXAuc3ZlbHRlIgogICAgXQogIH0sCiAgInN0eWxlLmNzcyI6IHsKICAgICJmaWxlIjogImFzc2V0cy9zdHlsZS1DbGlKd1VUUi5jc3MiLAogICAgInNyYyI6ICJzdHlsZS5jc3MiCiAgfQp9"}},"time_used":3264,"timings":{"blocked":-1,"dns":3,"connect":8,"send":0,"wait":8,"receive":0,"ssl":3245},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/danis.jpeg","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.718Z","timestamp":1785129412718,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/danis.jpeg HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Fri, 10 Jul 2026 08:17:46 GMT\r\naccept-ranges: bytes\r\ncontent-length: 4494\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":4494,"size_decoded":4760,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 402x164, components 3","md5":"955995a9fd2f55615aa940802627b6eb","sha1":"c10d870f867ac7be7c172be7e5b927098b59cab1","sha256":"e6d630ed21a5077039ed97c4cbfee2b718c41310464ec0b92e443f2e639c17a9","sha512":"be710414ee0de82c535e5343e21af64bda4f7a0d86a40efdef0df344e61414cc5732402d9b968a119865fcaabaf870e80ea6fd9a90abb58997f6c56228429cd5","ssdeep":"96:H22MUxgrdhwnTlCJY1YQ2CTRV28WjFAVTptGp:W2BgrdhUZGYWuRkTjgltGp","tlshash":"50915dc7570da112ed3537378cda0fef7b788e587a2186a3f55d026829af264c8941e0","first_seen":"2026-07-27T04:09:44.010427Z","last_seen":"2026-07-27T10:24:20.313193Z","times_seen":5,"resource_available":false,"data":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAKQBkgMBIgACEQEDEQH/xAAuAAEBAQEBAQAAAAAAAAAAAAAAAwIBBAUBAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAvigAAAAAO9TLXDgUAAAAAAAAAAAAAAAAAAAAB3tbnGu43miPJbodKZbsjy8sayJoAAAAAAAAAAAAAAAAABrlrllLU7wxsB3m0KOmM6lqXmLylyM67aNNZ7LeBeVLI9M6pneNYzvG1laNpUiXglAAAAAAAHUp3s+mMDn0AK91mO9ZKDpzlnWeXWydt487Wee+0nTU5jeDfXbMc1mWjO9ZlvG5ZazvOtxpmzIzoAAAAAABvFLNwtGwM6At3nevLmN4zqg3iWaa59JWNZxOssa7WJayCs+CuMjepDW5BSYtLgCUAAAAAABWVLnsrRrve1I8vEp3nd45jeM6qc1idOdmu450SrLOjtpYFiLWyTtSLXTCmki31ZrYTBVZLSOCUAAAABvHUtG8t55aNA72zPeaszjeM6rjvbOx3LNXlapz7zGu3hbeZVxslvGyd4VjDWTudaqNMbzc05zUnaO83KklCUAAAAACuo23iVe5sYzzGvRnmt45PeZrbuLJlcb7zUdZ4Mb7SdNZ1nudZzvG5Z0nSXuOrGdaI052UzRJdzWa5mkrODOgAAAAAGsktLigl7aG7nfe56Y5nfZc65MZOewUAAAAAAAAAAAAAAAAAAAACqS5tjACaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAv/aAAwDAQACAAMAAAAh888888zz8888888888888888888888jVAChX8888888888888888888/kc87d6Y8qMiUP9oa8888888895888p98B1p8G8N94c888888888W888o94Jf+cMeu+8c88888888v0AE8oDRV8648w8z4/4w888888rgoC5oGXpfp69H/t/N/k8888888Clnb9Z4+8oZ9Uxp9Te28888888tM8LV95/8888888888888888888888Pf8888888888888888888888888888888888888888888//xAAC/9oADAMBAAIAAwAAABAAAAAAA00AAAAAAAAAAAAAAAAAAAAACpk4z14AAAAAAAAAgAAAAAAAAALMACLx2sDo+G5P29AAAAAAAAAMkAD+Dz1kOj1F3L31cAAAAAAAAKgABcPzPkHzGGywxE4AAAAAAAAWmMdcMfZqHg3IYn9acXcAAAAAAcatpINJcIqhpUP6oO6PYAAAAAAABJ4cj7VYDuZWtiyDsygAAAAAAANIDoR/2EAAAAAAAAAAAAAAAAAAAAAD8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//EADARAAICAQEFBQcFAQAAAAAAAAECAAMSEQQiMjNCEBMhMYIwQFJicrHwFCAjQaFQ/9oACAECAQE/AP3BWPksKsPNfd66Ws8eFZpRT5w7Uv8ASwbUv9rP4LvqllBTxG8vulFWZ1PDLr8dxITr2IoZlBn6aqJdo7I0vqwOS8PZSxWqxhLdGSt8d5psx3WPxPFGlyj546/z1tKufZ6vvNnA1Y9XTHszVdV3vYganQRz3NOg7V2ZiFOUCGu2sHss43+uVN3teLRgVOhlfIsj8iuIoFVerY7+UYabR61gOVrD4Xz/AMlXPs9X3iBxvL0y0B0WwexoGtqzajvKO2vlr9Et59fYaXd2I4c5XX3R4uKXjS1pXbgGGOUew2ecawsFHwxrSzq+PDBcRYzxbSrs2nFEc1nUR7S408l9jRzVm08yVUrYupaW0rWuoaV8tfolvPrhOniZUuOTnqiutj1Y/NNp5srqNgYhpXWbDoItZZmXXhiVGwMR0wISmcWgsqtlBVrZhlHoZRqGyiIbD4R6ygU5ZL+9GxZTNqXVVYShgtXrgTXxfqieAx+GW8+uHffHpXjm0Wa7gmyrxNLGydjNmOisZUMWs+uVc+z1febM2K2Ex1xpsHzwVmyisCUDS5RMTWlxbqlLgFlbhaWIybp8vYUOHXBola0BiWj3uz5DpgbNVdZZq11eMc90uK8X54xENjaCWuKkwXsr5NkJBanTq3v8lXPs9X3lXKujNls+s7s2U1gSpSl6qfzwi76XLK1V8geLplu7WqFt72CsVOollrWefZRZg2h4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"}},"time_used":49,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":23,"receive":26,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.pexels.com/photos/7897470/pexels-photo-7897470.jpeg?auto=compress\u0026cs=tinysrgb\u0026w=800","fqdn":"images.pexels.com","domain":"pexels.com","tld":"com"},"ip":{"addr":"104.18.66.220","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.974Z","timestamp":1785129412974,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"images.pexels.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 05 Jun 2026 23:55:07 GMT","end":"Thu, 03 Sep 2026 23:55:06 GMT"},"fingerprint":{"sha1":"3E:62:75:25:D7:A1:F4:0B:0A:7C:2E:3F:08:FF:C1:B9:5F:22:BC:D3","sha256":"BB:66:85:21:1F:2E:9C:1F:4A:3D:9F:63:A8:60:94:D6:9B:FD:60:8B:E3:BD:B8:B2:7C:C6:82:C6:0D:66:E7:7D"}}},"request":{"raw":"GET /photos/7897470/pexels-photo-7897470.jpeg?auto=compress\u0026cs=tinysrgb\u0026w=800 HTTP/1.1\r\nHost: images.pexels.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: __cf_bm=5BzwLLp1145ZOJjPIjn.he4BZ3I6aPV36HmXRvjomfo-1785129412.8518019-1.0.1.1-KCXCLRVfl8ljufYTRamnPwNJm0h0ZIW0fr9BE2Jw9rCU5UnCVMOoWosLvkmA17Mi7_NbOowFRiT5DXkowcVPfge.CJSKltGs2sXp4l13mbQQv_rv85wFlwOLwg9LshCE; _cfuvid=gC.0L39lXlIwTpf6gxxGeKEdZ26h_AN_QvF1q2ZA.Hw-1785129412.8518019-1.0.1.1-Eqj1wqGdbVXM7mWiZ7irE7V9XlzsiBP72O8SHA9Fazc\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\ncontent-type: image/avif\r\ncontent-length: 4525\r\ncf-ray: a2192caf185256b7-OSL\r\ncf-cache-status: HIT\r\naccept-ranges: bytes\r\nage: 2517412\r\ncache-control: public, max-age=31536000\r\ncontent-disposition: inline; filename=\"pexels-photo-7897470.avif\"\r\nexpires: Tue, 27 Jul 2027 05:16:52 GMT\r\nlast-modified: Mon, 27 Jul 2026 04:09:02 GMT\r\nserver: cloudflare\r\nvary: Accept, accept-encoding\r\ncontent-security-policy: script-src 'none'\r\nx-request-id: 5b59ab0d-b6e6-478f-a0c3-421bfe5251db\r\naccess-control-allow-origin: *\r\npriority: u=4,i\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":4525,"size_decoded":5158,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"1f7af382125f8744dc92c46ab4d0d627","sha1":"c8274779761b3a07e8d97bb699b7529b1314854f","sha256":"d3f7db9c5650b9cb09503a98097becfda28c35fcf26ff37e6824bb19adbbe947","sha512":"359587bf7e033d714ef39f2ee8f7f2893c78471a393dd4b177ba7742f713a9624037dec255061de06d41807d20e16b4cf258abf0c27d8aef1f9b39d79fb68a16","ssdeep":"96:rGuQL4BE7zjTWZ2Li1aKkEwdLVh5fGn4lI8MW4HT/03RMKO4S:rGNL46DqxaKkj7A8734T03lS","tlshash":"0e919f5de7901d22d7e4a77e049cdb030b0bdaa493f81d2eb1b9314b2d012c29e83cac","first_seen":"2026-07-27T04:09:44.036995Z","last_seen":"2026-07-27T10:24:20.339589Z","times_seen":5,"resource_available":false,"data":"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"}},"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":"danis-miners.com/css/jquery.bootstrap-touchspin.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.819Z","timestamp":1785129412819,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/jquery.bootstrap-touchspin.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 258\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":772,"size_decoded":566,"mime_type":"text/css","magic":"ASCII text","md5":"c82a1dde47ad0956ce4a8a71761cc87e","sha1":"2b59a1bc66421246f642c1b866a4fea07210075b","sha256":"ea40d450aba1b968363c725912b035222155046a64acc60f14829a3e53e2006c","sha512":"f86dd414f7e06eb2961a1eb7d2759e38a807d9ff81ec1f2abd3e3c6dae0edf37340ed0eed499e305b9b0b5aeec959af389ded5739a0dc6c56eea896410d88567","ssdeep":"","tlshash":"8301499b3b93a960ec4ae174255443c7796a1292beb7c10403ea31246f899ff0b33a05","first_seen":"2023-04-05T08:09:08Z","last_seen":"2026-07-27T13:36:13.71237Z","times_seen":1944,"resource_available":false,"data":"Ci5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIHdpZHRoOiAxJTsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogIGRpc3BsYXk6IHRhYmxlLWNlbGw7Cn0KCi5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgPiAuYnRuIHsKICBkaXNwbGF5OiBibG9jazsKICBmbG9hdDogbm9uZTsKICB3aWR0aDogMTAwJTsKICBtYXgtd2lkdGg6IDEwMCU7CiAgcGFkZGluZzogOHB4IDEwcHg7CiAgbWFyZ2luLWxlZnQ6IC0xcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgouYm9vdHN0cmFwLXRvdWNoc3BpbiAuaW5wdXQtZ3JvdXAtYnRuLXZlcnRpY2FsIC5ib290c3RyYXAtdG91Y2hzcGluLXVwIHsKICBib3JkZXItcmFkaXVzOiAwOwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA0cHg7Cn0KCi5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgLmJvb3RzdHJhcC10b3VjaHNwaW4tZG93biB7CiAgbWFyZ2luLXRvcDogLTJweDsKICBib3JkZXItcmFkaXVzOiAwOwogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7Cn0KCi5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgaSB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogM3B4OwogIGxlZnQ6IDVweDsKICBmb250LXNpemU6IDlweDsKICBmb250LXdlaWdodDogbm9ybWFsOwp9Cg=="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"images.pexels.com/photos/4397220/pexels-photo-4397220.jpeg?auto=compress\u0026cs=tinysrgb\u0026w=800","fqdn":"images.pexels.com","domain":"pexels.com","tld":"com"},"ip":{"addr":"104.18.66.220","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.829Z","timestamp":1785129412829,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"images.pexels.com","organization":""},"issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validity":{"start":"Fri, 05 Jun 2026 23:55:07 GMT","end":"Thu, 03 Sep 2026 23:55:06 GMT"},"fingerprint":{"sha1":"3E:62:75:25:D7:A1:F4:0B:0A:7C:2E:3F:08:FF:C1:B9:5F:22:BC:D3","sha256":"BB:66:85:21:1F:2E:9C:1F:4A:3D:9F:63:A8:60:94:D6:9B:FD:60:8B:E3:BD:B8:B2:7C:C6:82:C6:0D:66:E7:7D"}}},"request":{"raw":"GET /photos/4397220/pexels-photo-4397220.jpeg?auto=compress\u0026cs=tinysrgb\u0026w=800 HTTP/1.1\r\nHost: images.pexels.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\ncontent-type: image/avif\r\ncontent-length: 90339\r\nset-cookie: __cf_bm=5BzwLLp1145ZOJjPIjn.he4BZ3I6aPV36HmXRvjomfo-1785129412.8518019-1.0.1.1-KCXCLRVfl8ljufYTRamnPwNJm0h0ZIW0fr9BE2Jw9rCU5UnCVMOoWosLvkmA17Mi7_NbOowFRiT5DXkowcVPfge.CJSKltGs2sXp4l13mbQQv_rv85wFlwOLwg9LshCE; HttpOnly; SameSite=None; Secure; Path=/; Domain=pexels.com; Expires=Mon, 27 Jul 2026 05:46:52 GMT\n_cfuvid=gC.0L39lXlIwTpf6gxxGeKEdZ26h_AN_QvF1q2ZA.Hw-1785129412.8518019-1.0.1.1-Eqj1wqGdbVXM7mWiZ7irE7V9XlzsiBP72O8SHA9Fazc; HttpOnly; SameSite=None; Secure; Path=/; Domain=pexels.com\r\ncf-ray: a2192cae5fc456b7-OSL\r\ncf-cache-status: HIT\r\naccept-ranges: bytes\r\nage: 283017\r\ncache-control: public, max-age=31536000\r\ncontent-disposition: inline; filename=\"pexels-photo-4397220.avif\"\r\nexpires: Tue, 27 Jul 2027 05:16:52 GMT\r\nlast-modified: Mon, 27 Jul 2026 04:09:02 GMT\r\nserver: cloudflare\r\nvary: Accept, accept-encoding\r\ncontent-security-policy: script-src 'none'\r\nx-request-id: 27accff2-ad60-4260-bc5a-e6036d44dcba\r\naccess-control-allow-origin: *\r\npriority: u=4,i\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Cloudflare Bot Management","description":"Cloudflare bot management solution identifies and mitigates automated traffic to protect websites from bad bots.","website":"https://www.cloudflare.com/en-gb/products/bot-management/","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["Security"]}],"data":{"size":90339,"size_decoded":91475,"mime_type":"image/avif","magic":"ISO Media, AVIF Image","md5":"1f7b4ded9002474cad12f7726b3c1974","sha1":"84f79b9f24d14f97cc4acbba223ace7da66a87cc","sha256":"326e784193cc047a2eed8c523429ad8aff25fae11f8a9b3f8bc85841890f6e32","sha512":"06437a9285a19731b23c866f9fae03a096a60d15dbd5ba3ccc53231e5e9b30a5ead2d5a96394c2be4984ee14c273d0eb84b81571be43a9f00634bc6cfaa086ec","ssdeep":"1536:cnMKqTFp31oOBkX3KhlqVgEIRzdzjXAc/SYxIRrngvo4dGws3yqvxPi5x6zVYZas:O4/31oOSnKhATIRzdvAaxIRgXGlCqvx4","tlshash":"2893022af65bcb92c743b4ed19f75243c9124ae83524f85f324af49afdf81655083d60","first_seen":"2026-07-27T04:09:44.034556Z","last_seen":"2026-07-27T10:24:20.307648Z","times_seen":5,"resource_available":false,"data":"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L6pWwAOBXerB5JKfQu08wp98Oczpj+MHmf4zIOCrU6fI1T0JZ0/acdniS9dXivbH+Ijle9Ac7q3Sqbj7M8AmfPw/lqrVT8Jf0+Cm7zmkDte8DvliOYxUPphqRt5o6SXM/UWMuHyrQevqiygAWPxM92TePGrjIOzkLUXrh/AxN1fyvoYjIbfHkfKEuf23au4Oysr3vcmKBQwQvTnzBT+LGXu8ColinL/YBTa5hKzu1mw/iWNEdyxNDWpaTpMzH8lgma0B8G6ErdeE9Vz7/S58YQ043htF3uNyOseprBezkhooje1MQgaZH330IdlwJaplgYbL7CtJE3vtSlTgqZWt/iQ/8v3lFp06pPeERuLXHEqSf8j9Q+RKuSA6Q9jAMjlLhx6ypZNyAbw4+zjAuVMRVrNvK3SvuSCfiaF3VXga8LTCc5X21sqq2BxsEcm+3V/6VYyJuHmkJUT0vaR5gD8Dtddb7ua6SUIllxM1QUD39TyQF/9pkdedKcovF0ibfNfrUyoHyRM7vte1As2D5mpa+GPvgqPr43B0+LkaUmuIzRRZHfp+IezXnsvm7fsfs1i1KuLIye0EbvXVC3kEe3Gy1aHJDU60BdZaTxAdPQto3MwJGmz1LsDQ4WRxi8IlXxpJFCkp+WoZzIthy0/b9E1fMSYbzFjb4k2uyMhPGJKy8bsm2xKyav+PU/K88L2+q4DSGIw256kJC4vjXfgNjxIp2SOobEQHMNd5lgt9T5E0GGuxSCCr5rsKaHN9NcBCxyfAv5SvmnxKKaIl70/kyVLWVaJZfEMNdTdT1TEmRI11x2aiV97qylVhZowDR5MPXwfKoDe3sVBFesUkkichtGYatKbnLUno5jwbb8yMhbk7TGGLe7QdroTyULO6xejlY9ZbrIEceB63xQy/18dF4kj35+DXThQBbgCAJamJS7O6Vbc9y5j66rdgAAAABkV4aWYAAElJKgAIAAAABgASAQMAAQAAAAEAAAAaAQUAAQAAAF4AAAAbAQUAAQAAAGYAAAAoAQMAAQAAAAIAAAA7AQIABwAAAFYAAABphwQAAQAAAG4AAAAAAAAAUkVESU5HAABIAAAAAQAAAEgAAAABAAAAAgACoAQAAQAAACADAAADoAQAAQAAALAEAAAAAAAAPD94cGFja2V0IGJlZ2luPSIiIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iR28gWE1QIFNESyAxLjAiPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj48ZGM6Y3JlYXRvcj48cmRmOlNlcT48cmRmOmxpPlJFRElORzwvcmRmOmxpPjwvcmRmOlNlcT48L2RjOmNyZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+"}},"time_used":28,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/fonts/fontawesome-webfonte0a5e0a5.woff2","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.008Z","timestamp":1785129413008,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /fonts/fontawesome-webfonte0a5e0a5.woff2 HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/font-awesome.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:53 GMT\r\ncontent-type: font/woff2\r\nlast-modified: Wed, 10 Dec 2025 07:11:35 GMT\r\naccept-ranges: bytes\r\ncontent-length: 56780\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":56780,"size_decoded":57047,"mime_type":"font/woff2","magic":"Web Open Font Format (Version 2), TrueType, length 56780, version 4.197","md5":"97493d3f11c0a3bd5cbd959f5d19b699","sha1":"1075231650f579955905bb2f6527148a8e2b4b16","sha256":"aadc3580d2b64ff5a7e6f1425587db4e8b033efcbf8f5c332ca52a5ed580c87c","sha512":"bfe4679bbe5d1db21f6ecb2d6c2810dd02d3b698efdd50004cc355c1d0bc51de8dd102707c796b26e8250c600b4b64db88b67d3f28157777b68e36ad7930bfc0","ssdeep":"1536:zxwdj+K8kLkunGAASpdw6hsxD/G+zSIoiCQN+n:zxmVY6dwJThoiCQE","tlshash":"eb430269f84b577202275a0509ee0d34ef804962eef247fbb1fb90c5d6309ac1ea1b56","first_seen":"2023-04-05T09:41:17Z","last_seen":"2026-07-29T07:59:10.166836Z","times_seen":30171,"resource_available":false,"data":"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"}},"time_used":24,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/appear.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.706Z","timestamp":1785129412706,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/appear.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 1234\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":4379,"size_decoded":1471,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with CRLF line terminators","md5":"5a457d262e3c32d25c003ca412ee7fe6","sha1":"b08e23c986259073419a7068fcd36296a91b1ae4","sha256":"46fb2235bcf84086a9b939ae509ecacc01bb31c68ba94e6473e31d8adebec3eb","sha512":"826945d028efc7a9f95c22c5f4d34dfab6704b75f45e7d6fc2e93e2b42f7078aaf7b8508f9155b36dd15ca759a765fff3b4550f17e3b187e79285f63de455d53","ssdeep":"48:3l3Xwqhd24ayV+zFLAPftUIeohhR9zIreFfFoBSxMEh1u1cq6KjD4W7j9:V3XWz1zFkmDo7R9cr+YSpTocqBksj9","tlshash":"7391db4a759b2ab54877722a9f2fa20cd721513b1202c21138eede6c2f71c50a197fdc","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T07:07:17.248385Z","times_seen":4128,"resource_available":true,"data":"LyoNCiAqIGpRdWVyeS5hcHBlYXINCiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYXMyay9qcXVlcnkuYXBwZWFyLw0KICogaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2pxdWVyeS1hcHBlYXIvDQogKiBodHRwOi8vYmFzMmsucnUvDQogKg0KICogQ29weXJpZ2h0IChjKSAyMDA5IE1pY2hhZWwgSGl4c29uDQogKiBDb3B5cmlnaHQgKGMpIDIwMTItMjAxNCBBbGV4YW5kZXIgQnJvdmlrb3YNCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAoaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHApDQogKi8NCihmdW5jdGlvbigkKSB7DQogICAgJC5mbi5hcHBlYXIgPSBmdW5jdGlvbihmbiwgb3B0aW9ucykgew0KDQogICAgICAgIHZhciBzZXR0aW5ncyA9ICQuZXh0ZW5kKHsNCg0KICAgICAgICAgICAgLy9hcmJpdHJhcnkgZGF0YSB0byBwYXNzIHRvIGZuDQogICAgICAgICAgICBkYXRhOiB1bmRlZmluZWQsDQoNCiAgICAgICAgICAgIC8vY2FsbCBmbiBvbmx5IG9uIHRoZSBmaXJzdCBhcHBlYXI/DQogICAgICAgICAgICBvbmU6IHRydWUsDQoNCiAgICAgICAgICAgIC8vIFggJiBZIGFjY3VyYWN5DQogICAgICAgICAgICBhY2NYOiAwLA0KICAgICAgICAgICAgYWNjWTogMA0KDQogICAgICAgIH0sIG9wdGlvbnMpOw0KDQogICAgICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgIHZhciB0ID0gJCh0aGlzKTsNCg0KICAgICAgICAgICAgLy93aGV0aGVyIHRoZSBlbGVtZW50IGlzIGN1cnJlbnRseSB2aXNpYmxlDQogICAgICAgICAgICB0LmFwcGVhcmVkID0gZmFsc2U7DQoNCiAgICAgICAgICAgIGlmICghZm4pIHsNCg0KICAgICAgICAgICAgICAgIC8vdHJpZ2dlciB0aGUgY3VzdG9tIGV2ZW50DQogICAgICAgICAgICAgICAgdC50cmlnZ2VyKCdhcHBlYXInLCBzZXR0aW5ncy5kYXRhKTsNCiAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIHZhciB3ID0gJCh3aW5kb3cpOw0KDQogICAgICAgICAgICAvL2ZpcmVzIHRoZSBhcHBlYXIgZXZlbnQgd2hlbiBhcHByb3ByaWF0ZQ0KICAgICAgICAgICAgdmFyIGNoZWNrID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAvL2lzIHRoZSBlbGVtZW50IGhpZGRlbj8NCiAgICAgICAgICAgICAgICBpZiAoIXQuaXMoJzp2aXNpYmxlJykpIHsNCg0KICAgICAgICAgICAgICAgICAgICAvL2l0IGJlY2FtZSBoaWRkZW4NCiAgICAgICAgICAgICAgICAgICAgdC5hcHBlYXJlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgICAgICByZXR1cm47DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgLy9pcyB0aGUgZWxlbWVudCBpbnNpZGUgdGhlIHZpc2libGUgd2luZG93Pw0KICAgICAgICAgICAgICAgIHZhciBhID0gdy5zY3JvbGxMZWZ0KCk7DQogICAgICAgICAgICAgICAgdmFyIGIgPSB3LnNjcm9sbFRvcCgpOw0KICAgICAgICAgICAgICAgIHZhciBvID0gdC5vZmZzZXQoKTsNCiAgICAgICAgICAgICAgICB2YXIgeCA9IG8ubGVmdDsNCiAgICAgICAgICAgICAgICB2YXIgeSA9IG8udG9wOw0KDQogICAgICAgICAgICAgICAgdmFyIGF4ID0gc2V0dGluZ3MuYWNjWDsNCiAgICAgICAgICAgICAgICB2YXIgYXkgPSBzZXR0aW5ncy5hY2NZOw0KICAgICAgICAgICAgICAgIHZhciB0aCA9IHQuaGVpZ2h0KCk7DQogICAgICAgICAgICAgICAgdmFyIHdoID0gdy5oZWlnaHQoKTsNCiAgICAgICAgICAgICAgICB2YXIgdHcgPSB0LndpZHRoKCk7DQogICAgICAgICAgICAgICAgdmFyIHd3ID0gdy53aWR0aCgpOw0KDQogICAgICAgICAgICAgICAgaWYgKHkgKyB0aCArIGF5ID49IGIgJiYNCiAgICAgICAgICAgICAgICAgICAgeSA8PSBiICsgd2ggKyBheSAmJg0KICAgICAgICAgICAgICAgICAgICB4ICsgdHcgKyBheCA+PSBhICYmDQogICAgICAgICAgICAgICAgICAgIHggPD0gYSArIHd3ICsgYXgpIHsNCg0KICAgICAgICAgICAgICAgICAgICAvL3RyaWdnZXIgdGhlIGN1c3RvbSBldmVudA0KICAgICAgICAgICAgICAgICAgICBpZiAoIXQuYXBwZWFyZWQpIHQudHJpZ2dlcignYXBwZWFyJywgc2V0dGluZ3MuZGF0YSk7DQoNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KDQogICAgICAgICAgICAgICAgICAgIC8vaXQgc2Nyb2xsZWQgb3V0IG9mIHZpZXcNCiAgICAgICAgICAgICAgICAgICAgdC5hcHBlYXJlZCA9IGZhbHNlOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIC8vY3JlYXRlIGEgbW9kaWZpZWQgZm4gd2l0aCBzb21lIGFkZGl0aW9uYWwgbG9naWMNCiAgICAgICAgICAgIHZhciBtb2RpZmllZEZuID0gZnVuY3Rpb24oKSB7DQoNCiAgICAgICAgICAgICAgICAvL21hcmsgdGhlIGVsZW1lbnQgYXMgdmlzaWJsZQ0KICAgICAgICAgICAgICAgIHQuYXBwZWFyZWQgPSB0cnVlOw0KDQogICAgICAgICAgICAgICAgLy9pcyB0aGlzIHN1cHBvc2VkIHRvIGhhcHBlbiBvbmx5IG9uY2U/DQogICAgICAgICAgICAgICAgaWYgKHNldHRpbmdzLm9uZSkgew0KDQogICAgICAgICAgICAgICAgICAgIC8vcmVtb3ZlIHRoZSBjaGVjaw0KICAgICAgICAgICAgICAgICAgICB3LnVuYmluZCgnc2Nyb2xsJywgY2hlY2spOw0KICAgICAgICAgICAgICAgICAgICB2YXIgaSA9ICQuaW5BcnJheShjaGVjaywgJC5mbi5hcHBlYXIuY2hlY2tzKTsNCiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gMCkgJC5mbi5hcHBlYXIuY2hlY2tzLnNwbGljZShpLCAxKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAvL3RyaWdnZXIgdGhlIG9yaWdpbmFsIGZuDQogICAgICAgICAgICAgICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTsNCiAgICAgICAgICAgIH07DQoNCiAgICAgICAgICAgIC8vYmluZCB0aGUgbW9kaWZpZWQgZm4gdG8gdGhlIGVsZW1lbnQNCiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5vbmUpIHQub25lKCdhcHBlYXInLCBzZXR0aW5ncy5kYXRhLCBtb2RpZmllZEZuKTsNCiAgICAgICAgICAgIGVsc2UgdC5iaW5kKCdhcHBlYXInLCBzZXR0aW5ncy5kYXRhLCBtb2RpZmllZEZuKTsNCg0KICAgICAgICAgICAgLy9jaGVjayB3aGVuZXZlciB0aGUgd2luZG93IHNjcm9sbHMNCiAgICAgICAgICAgIHcuc2Nyb2xsKGNoZWNrKTsNCg0KICAgICAgICAgICAgLy9jaGVjayB3aGVuZXZlciB0aGUgZG9tIGNoYW5nZXMNCiAgICAgICAgICAgICQuZm4uYXBwZWFyLmNoZWNrcy5wdXNoKGNoZWNrKTsNCg0KICAgICAgICAgICAgLy9jaGVjayBub3cNCiAgICAgICAgICAgIChjaGVjaykoKTsNCiAgICAgICAgfSk7DQogICAgfTsNCg0KICAgIC8va2VlcCBhIHF1ZXVlIG9mIGFwcGVhcmFuY2UgY2hlY2tzDQogICAgJC5leHRlbmQoJC5mbi5hcHBlYXIsIHsNCg0KICAgICAgICBjaGVja3M6IFtdLA0KICAgICAgICB0aW1lb3V0OiBudWxsLA0KDQogICAgICAgIC8vcHJvY2VzcyB0aGUgcXVldWUNCiAgICAgICAgY2hlY2tBbGw6IGZ1bmN0aW9uKCkgew0KICAgICAgICAgICAgdmFyIGxlbmd0aCA9ICQuZm4uYXBwZWFyLmNoZWNrcy5sZW5ndGg7DQogICAgICAgICAgICBpZiAobGVuZ3RoID4gMCkgd2hpbGUgKGxlbmd0aC0tKSAoJC5mbi5hcHBlYXIuY2hlY2tzW2xlbmd0aF0pKCk7DQogICAgICAgIH0sDQoNCiAgICAgICAgLy9jaGVjayB0aGUgcXVldWUgYXN5bmNocm9ub3VzbHkNCiAgICAgICAgcnVuOiBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgIGlmICgkLmZuLmFwcGVhci50aW1lb3V0KSBjbGVhclRpbWVvdXQoJC5mbi5hcHBlYXIudGltZW91dCk7DQogICAgICAgICAgICAkLmZuLmFwcGVhci50aW1lb3V0ID0gc2V0VGltZW91dCgkLmZuLmFwcGVhci5jaGVja0FsbCwgMjApOw0KICAgICAgICB9DQogICAgfSk7DQoNCiAgICAvL3J1biBjaGVja3Mgd2hlbiB0aGVzZSBtZXRob2RzIGFyZSBjYWxsZWQNCiAgICAkLmVhY2goWydhcHBlbmQnLCAncHJlcGVuZCcsICdhZnRlcicsICdiZWZvcmUnLCAnYXR0cicsDQogICAgICAgICdyZW1vdmVBdHRyJywgJ2FkZENsYXNzJywgJ3JlbW92ZUNsYXNzJywgJ3RvZ2dsZUNsYXNzJywNCiAgICAgICAgJ3JlbW92ZScsICdjc3MnLCAnc2hvdycsICdoaWRlJ10sIGZ1bmN0aW9uKGksIG4pIHsNCiAgICAgICAgdmFyIG9sZCA9ICQuZm5bbl07DQogICAgICAgIGlmIChvbGQpIHsNCiAgICAgICAgICAgICQuZm5bbl0gPSBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICB2YXIgciA9IG9sZC5hcHBseSh0aGlzLCBhcmd1bWVudHMpOw0KICAgICAgICAgICAgICAgICQuZm4uYXBwZWFyLnJ1bigpOw0KICAgICAgICAgICAgICAgIHJldHVybiByOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSk7DQoNCn0pKGpRdWVyeSk7DQo="}},"time_used":28,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/mixitup.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.708Z","timestamp":1785129412708,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/mixitup.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 10966\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":52224,"size_decoded":11204,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (367)","md5":"b9088c94738c3a2c95184e45d0b5f854","sha1":"bad4f5162be5a45a8ba9a44a2af2c7a2315ba725","sha256":"1288abb45b62709defec307fb4668ece7b0259d02b4a6770da169867b29258cf","sha512":"c0c06199ad7018561244a5d8565babb57a94d99dab691a09e4b68c7ddc6ea33bdf03e7e540240bc071cd08a42c7d09f91c4ef5a75a094ffc02a3c622c99d4b97","ssdeep":"768:somWOk24dXP7o9iFz4Mjz/iNr/7B7X8lu:LmZk24dXP88FsMjzY","tlshash":"bc333ef1ef0c7ce19563e255a8aeba83f83e8033a51d8de7bc30b5142d9590a521fd25","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T00:40:16.327379Z","times_seen":996,"resource_available":true,"data":"LyoqIQogKiBNaXhJdFVwIHYyLjEuMTAKICoKICogQGNvcHlyaWdodCBDb3B5cmlnaHQgMjAxNSBLdW5rYUxhYnMgTGltaXRlZC4KICogQGF1dGhvciAgICBLdW5rYUxhYnMgTGltaXRlZC4KICogQGxpbmsgICAgICBodHRwczovL21peGl0dXAua3Vua2FsYWJzLmNvbQogKgogKiBAbGljZW5zZSAgIENvbW1lcmNpYWwgdXNlIHJlcXVpcmVzIGEgY29tbWVyY2lhbCBsaWNlbnNlLgogKiAgICAgICAgICAgIGh0dHBzOi8vbWl4aXR1cC5rdW5rYWxhYnMuY29tL2xpY2Vuc2VzLwogKgogKiAgICAgICAgICAgIE5vbi1jb21tZXJjaWFsIHVzZSBwZXJtaXR0ZWQgdW5kZXIgdGVybXMgb2YgQ0MtQlktTkMgbGljZW5zZS4KICogICAgICAgICAgICBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1uYy8zLjAvCiAqLwoKKGZ1bmN0aW9uKCQsIHVuZGYpewoJJ3VzZSBzdHJpY3QnOwoJCgkvKioKCSAqIE1peEl0VXAgQ29uc3RydWN0b3IgRnVuY3Rpb24KCSAqIEBjb25zdHJ1Y3RvcgoJICogQGV4dGVuZHMgalF1ZXJ5CgkgKi8KCQoJJC5NaXhJdFVwID0gZnVuY3Rpb24oKXsKCQl2YXIgc2VsZiA9IHRoaXM7CgkJCgkJc2VsZi5fZXhlY0FjdGlvbignX2NvbnN0cnVjdG9yJywgMCk7CgkJCgkJJC5leHRlbmQoc2VsZiwgewoJCQkKCQkJLyogUHVibGljIFByb3BlcnRpZXMKCQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoJCQkKCQkJc2VsZWN0b3JzOiB7CgkJCQl0YXJnZXQ6ICcubWl4JywKCQkJCWZpbHRlcjogJy5maWx0ZXInLAoJCQkJc29ydDogJy5zb3J0JwoJCQl9LAoJCQkJCgkJCWFuaW1hdGlvbjogewoJCQkJZW5hYmxlOiB0cnVlLAoJCQkJZWZmZWN0czogJ2ZhZGUgc2NhbGUnLAoJCQkJZHVyYXRpb246IDYwMCwKCQkJCWVhc2luZzogJ2Vhc2UnLAoJCQkJcGVyc3BlY3RpdmVEaXN0YW5jZTogJzMwMDAnLAoJCQkJcGVyc3BlY3RpdmVPcmlnaW46ICc1MCUgNTAlJywKCQkJCXF1ZXVlOiB0cnVlLAoJCQkJcXVldWVMaW1pdDogMSwKCQkJCWFuaW1hdGVDaGFuZ2VMYXlvdXQ6IGZhbHNlLAoJCQkJYW5pbWF0ZVJlc2l6ZUNvbnRhaW5lcjogdHJ1ZSwKCQkJCWFuaW1hdGVSZXNpemVUYXJnZXRzOiBmYWxzZSwKCQkJCXN0YWdnZXJTZXF1ZW5jZTogZmFsc2UsCgkJCQlyZXZlcnNlT3V0OiBmYWxzZQoJCQl9LAoJCQkJCgkJCWNhbGxiYWNrczogewoJCQkJb25NaXhMb2FkOiBmYWxzZSwKCQkJCW9uTWl4U3RhcnQ6IGZhbHNlLAoJCQkJb25NaXhCdXN5OiBmYWxzZSwKCQkJCW9uTWl4RW5kOiBmYWxzZSwKCQkJCW9uTWl4RmFpbDogZmFsc2UsCgkJCQlfdXNlcjogZmFsc2UKCQkJfSwKCQkJCQoJCQljb250cm9sczogewoJCQkJZW5hYmxlOiB0cnVlLAoJCQkJbGl2ZTogZmFsc2UsCgkJCQl0b2dnbGVGaWx0ZXJCdXR0b25zOiBmYWxzZSwKCQkJCXRvZ2dsZUxvZ2ljOiAnb3InLAoJCQkJYWN0aXZlQ2xhc3M6ICdhY3RpdmUnCgkJCX0sCgoJCQlsYXlvdXQ6IHsKCQkJCWRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLAoJCQkJY29udGFpbmVyQ2xhc3M6ICcnLAoJCQkJY29udGFpbmVyQ2xhc3NGYWlsOiAnZmFpbCcKCQkJfSwKCQkJCgkJCWxvYWQ6IHsKCQkJCWZpbHRlcjogJ2FsbCcsCgkJCQlzb3J0OiBmYWxzZQoJCQl9LAoJCQkKCQkJLyogUHJpdmF0ZSBQcm9wZXJ0aWVzCgkJCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCQkJCQoJCQlfJGJvZHk6IG51bGwsCgkJCV8kY29udGFpbmVyOiBudWxsLAoJCQlfJHRhcmdldHM6IG51bGwsCgkJCV8kcGFyZW50OiBudWxsLAoJCQlfJHNvcnRCdXR0b25zOiBudWxsLAoJCQlfJGZpbHRlckJ1dHRvbnM6IG51bGwsCgkJCgkJCV9zdWNrTW9kZTogZmFsc2UsCgkJCV9taXhpbmc6IGZhbHNlLAoJCQlfc29ydGluZzogZmFsc2UsCgkJCV9jbGlja2luZzogZmFsc2UsCgkJCV9sb2FkaW5nOiB0cnVlLAoJCQlfY2hhbmdpbmdMYXlvdXQ6IGZhbHNlLAoJCQlfY2hhbmdpbmdDbGFzczogZmFsc2UsCgkJCV9jaGFuZ2luZ0Rpc3BsYXk6IGZhbHNlLAoJCQkKCQkJX29yaWdPcmRlcjogW10sCgkJCV9zdGFydE9yZGVyOiBbXSwKCQkJX25ld09yZGVyOiBbXSwKCQkJX2FjdGl2ZUZpbHRlcjogbnVsbCwKCQkJX3RvZ2dsZUFycmF5OiBbXSwKCQkJX3RvZ2dsZVN0cmluZzogJycsCgkJCV9hY3RpdmVTb3J0OiAnZGVmYXVsdDphc2MnLAoJCQlfbmV3U29ydDogbnVsbCwKCQkJX3N0YXJ0SGVpZ2h0OiBudWxsLAoJCQlfbmV3SGVpZ2h0OiBudWxsLAoJCQlfaW5jUGFkZGluZzogdHJ1ZSwKCQkJX25ld0Rpc3BsYXk6IG51bGwsCgkJCV9uZXdDbGFzczogbnVsbCwKCQkJX3RhcmdldHNCb3VuZDogMCwKCQkJX3RhcmdldHNEb25lOiAwLAoJCQlfcXVldWU6IFtdLAoJCQkJCgkJCV8kc2hvdzogJCgpLAoJCQlfJGhpZGU6ICQoKQoJCX0pOwoJCgkJc2VsZi5fZXhlY0FjdGlvbignX2NvbnN0cnVjdG9yJywgMSk7Cgl9OwoJCgkvKioKCSAqIE1peEl0VXAgUHJvdG90eXBlCgkgKiBAb3ZlcnJpZGUKCSAqLwoJCgkkLk1peEl0VXAucHJvdG90eXBlID0gewoJCWNvbnN0cnVjdG9yOiAkLk1peEl0VXAsCgkJCgkJLyogU3RhdGljIFByb3BlcnRpZXMKCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgkJCgkJX2luc3RhbmNlczoge30sCgkJX2hhbmRsZWQ6IHsKCQkJX2ZpbHRlcjoge30sCgkJCV9zb3J0OiB7fQoJCX0sCgkJX2JvdW5kOiB7CgkJCV9maWx0ZXI6IHt9LAoJCQlfc29ydDoge30KCQl9LAoJCV9hY3Rpb25zOiB7fSwKCQlfZmlsdGVyczoge30sCgkJCgkJLyogU3RhdGljIE1ldGhvZHMKCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgkJCgkJLyoqCgkJICogRXh0ZW5kCgkJICogQHNpbmNlIDIuMS4wCgkJICogQHBhcmFtIHtvYmplY3R9IG5ldyBwcm9wZXJ0aWVzL21ldGhvZHMKCQkgKiBAZXh0ZW5kcyB7b2JqZWN0fSBwcm90b3R5cGUKCQkgKi8KCQkKCQlleHRlbmQ6IGZ1bmN0aW9uKGV4dGVuc2lvbil7CgkJCWZvcih2YXIga2V5IGluIGV4dGVuc2lvbil7CgkJCQkkLk1peEl0VXAucHJvdG90eXBlW2tleV0gPSBleHRlbnNpb25ba2V5XTsKCQkJfQoJCX0sCgkJCgkJLyoqCgkJICogQWRkIEFjdGlvbgoJCSAqIEBzaW5jZSAyLjEuMAoJCSAqIEBwYXJhbSB7c3RyaW5nfSBob29rIG5hbWUKCQkgKiBAcGFyYW0ge3N0cmluZ30gbmFtZXNwYWNlCgkJICogQHBhcmFtIHtmdW5jdGlvbn0gZnVuY3Rpb24gdG8gZXhlY3V0ZQoJCSAqIEBwYXJhbSB7bnVtYmVyfSBwcmlvcml0eQoJCSAqIEBleHRlbmRzIHtvYmplY3R9ICQuTWl4SXRVcC5wcm90b3R5cGUuX2FjdGlvbnMKCQkgKi8KCQkKCQlhZGRBY3Rpb246IGZ1bmN0aW9uKGhvb2ssIG5hbWUsIGZ1bmMsIHByaW9yaXR5KXsKCQkJJC5NaXhJdFVwLnByb3RvdHlwZS5fYWRkSG9vaygnX2FjdGlvbnMnLCBob29rLCBuYW1lLCBmdW5jLCBwcmlvcml0eSk7CgkJfSwKCQkKCQkvKioKCQkgKiBBZGQgRmlsdGVyCgkJICogQHNpbmNlIDIuMS4wCgkJICogQHBhcmFtIHtzdHJpbmd9IGhvb2sgbmFtZQoJCSAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lc3BhY2UKCQkgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jdGlvbiB0byBleGVjdXRlCgkJICogQHBhcmFtIHtudW1iZXJ9IHByaW9yaXR5CgkJICogQGV4dGVuZHMge29iamVjdH0gJC5NaXhJdFVwLnByb3RvdHlwZS5fZmlsdGVycwoJCSAqLwoJCQoJCWFkZEZpbHRlcjogZnVuY3Rpb24oaG9vaywgbmFtZSwgZnVuYywgcHJpb3JpdHkpewoJCQkkLk1peEl0VXAucHJvdG90eXBlLl9hZGRIb29rKCdfZmlsdGVycycsIGhvb2ssIG5hbWUsIGZ1bmMsIHByaW9yaXR5KTsKCQl9LAoJCQoJCS8qKgoJCSAqIEFkZCBIb29rCgkJICogQHNpbmNlIDIuMS4wCgkJICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgb2YgaG9vawoJCSAqIEBwYXJhbSB7c3RyaW5nfSBob29rIG5hbWUKCQkgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmdW5jdGlvbiB0byBleGVjdXRlCgkJICogQHBhcmFtIHtudW1iZXJ9IHByaW9yaXR5CgkJICogQGV4dGVuZHMge29iamVjdH0gJC5NaXhJdFVwLnByb3RvdHlwZS5fZmlsdGVycwoJCSAqLwoJCQoJCV9hZGRIb29rOiBmdW5jdGlvbih0eXBlLCBob29rLCBuYW1lLCBmdW5jLCBwcmlvcml0eSl7CgkJCXZhciBjb2xsZWN0aW9uID0gJC5NaXhJdFVwLnByb3RvdHlwZVt0eXBlXSwKCQkJCW9iaiA9IHt9OwoJCQkJCgkJCXByaW9yaXR5ID0gKHByaW9yaXR5ID09PSAxIHx8IHByaW9yaXR5ID09PSAncG9zdCcpID8gJ3Bvc3QnIDogJ3ByZSc7CgkJCQkKCQkJb2JqW2hvb2tdID0ge307CgkJCW9ialtob29rXVtwcmlvcml0eV0gPSB7fTsKCQkJb2JqW2hvb2tdW3ByaW9yaXR5XVtuYW1lXSA9IGZ1bmM7CgoJCQkkLmV4dGVuZCh0cnVlLCBjb2xsZWN0aW9uLCBvYmopOwoJCX0sCgkJCgkJCgkJLyogUHJpdmF0ZSBNZXRob2RzCgkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoJCQoJCS8qKgoJCSAqIEluaXRpYWxpc2UKCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcGFyYW0ge29iamVjdH0gZG9tTm9kZQoJCSAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcKCQkgKi8KCQkKCQlfaW5pdDogZnVuY3Rpb24oZG9tTm9kZSwgY29uZmlnKXsKCQkJdmFyIHNlbGYgPSB0aGlzOwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2luaXQnLCAwLCBhcmd1bWVudHMpOwoJCQkKCQkJY29uZmlnICYmICQuZXh0ZW5kKHRydWUsIHNlbGYsIGNvbmZpZyk7CgkJCQoJCQlzZWxmLl8kYm9keSA9ICQoJ2JvZHknKTsKCQkJc2VsZi5fZG9tTm9kZSA9IGRvbU5vZGU7CgkJCXNlbGYuXyRjb250YWluZXIgPSAkKGRvbU5vZGUpOwoJCQlzZWxmLl8kY29udGFpbmVyLmFkZENsYXNzKHNlbGYubGF5b3V0LmNvbnRhaW5lckNsYXNzKTsKCQkJc2VsZi5faWQgPSBkb21Ob2RlLmlkOwoJCQkKCQkJc2VsZi5fcGxhdGZvcm1EZXRlY3QoKTsKCQkJCgkJCXNlbGYuX2JyYWtlID0gc2VsZi5fZ2V0UHJlZml4ZWRDU1MoJ3RyYW5zaXRpb24nLCAnbm9uZScpOwoJCQkKCQkJc2VsZi5fcmVmcmVzaCh0cnVlKTsKCQkJCgkJCXNlbGYuXyRwYXJlbnQgPSBzZWxmLl8kdGFyZ2V0cy5wYXJlbnQoKS5sZW5ndGggPyBzZWxmLl8kdGFyZ2V0cy5wYXJlbnQoKSA6IHNlbGYuXyRjb250YWluZXI7CgkJCQoJCQlpZihzZWxmLmxvYWQuc29ydCl7CgkJCQlzZWxmLl9uZXdTb3J0ID0gc2VsZi5fcGFyc2VTb3J0KHNlbGYubG9hZC5zb3J0KTsKCQkJCXNlbGYuX25ld1NvcnRTdHJpbmcgPSBzZWxmLmxvYWQuc29ydDsKCQkJCXNlbGYuX2FjdGl2ZVNvcnQgPSBzZWxmLmxvYWQuc29ydDsKCQkJCXNlbGYuX3NvcnQoKTsKCQkJCXNlbGYuX3ByaW50U29ydCgpOwoJCQl9CgkJCQoJCQlzZWxmLl9hY3RpdmVGaWx0ZXIgPSBzZWxmLmxvYWQuZmlsdGVyID09PSAnYWxsJyA/IAoJCQkJc2VsZi5zZWxlY3RvcnMudGFyZ2V0IDogCgkJCQlzZWxmLmxvYWQuZmlsdGVyID09PSAnbm9uZScgPwoJCQkJCScnIDoKCQkJCQlzZWxmLmxvYWQuZmlsdGVyOwoJCQkKCQkJc2VsZi5jb250cm9scy5lbmFibGUgJiYgc2VsZi5fYmluZEhhbmRsZXJzKCk7CgkJCQoJCQlpZihzZWxmLmNvbnRyb2xzLnRvZ2dsZUZpbHRlckJ1dHRvbnMpewoJCQkJc2VsZi5fYnVpbGRUb2dnbGVBcnJheSgpOwoJCQkJCgkJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fdG9nZ2xlQXJyYXkubGVuZ3RoOyBpKyspewoJCQkJCXNlbGYuX3VwZGF0ZUNvbnRyb2xzKHtmaWx0ZXI6IHNlbGYuX3RvZ2dsZUFycmF5W2ldLCBzb3J0OiBzZWxmLl9hY3RpdmVTb3J0fSwgdHJ1ZSk7CgkJCQl9OwoJCQl9IGVsc2UgaWYoc2VsZi5jb250cm9scy5lbmFibGUpewoJCQkJc2VsZi5fdXBkYXRlQ29udHJvbHMoe2ZpbHRlcjogc2VsZi5fYWN0aXZlRmlsdGVyLCBzb3J0OiBzZWxmLl9hY3RpdmVTb3J0fSk7CgkJCX0KCQkJCgkJCXNlbGYuX2ZpbHRlcigpOwoJCQkKCQkJc2VsZi5faW5pdCA9IHRydWU7CgkJCQoJCQlzZWxmLl8kY29udGFpbmVyLmRhdGEoJ21peEl0VXAnLHNlbGYpOwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2luaXQnLCAxLCBhcmd1bWVudHMpOwoJCQkKCQkJc2VsZi5fYnVpbGRTdGF0ZSgpOwoJCQkKCQkJc2VsZi5fJHRhcmdldHMuY3NzKHNlbGYuX2JyYWtlKTsKCQkKCQkJc2VsZi5fZ29NaXgoc2VsZi5hbmltYXRpb24uZW5hYmxlKTsKCQl9LAoJCQoJCS8qKgoJCSAqIFBsYXRmb3JtIERldGVjdAoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqLwoJCQoJCV9wbGF0Zm9ybURldGVjdDogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJdmVuZG9yc1RyYW5zID0gWydXZWJraXQnLCAnTW96JywgJ08nLCAnbXMnXSwKCQkJCXZlbmRvcnNSQUYgPSBbJ3dlYmtpdCcsICdtb3onXSwKCQkJCWNocm9tZSA9IHdpbmRvdy5uYXZpZ2F0b3IuYXBwVmVyc2lvbi5tYXRjaCgvQ2hyb21lXC8oXGQrKVwuLykgfHwgZmFsc2UsCgkJCQlmZiA9IHR5cGVvZiBJbnN0YWxsVHJpZ2dlciAhPT0gJ3VuZGVmaW5lZCcsCgkJCQlwcmVmaXggPSBmdW5jdGlvbihlbCl7CgkJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB2ZW5kb3JzVHJhbnMubGVuZ3RoOyBpKyspewoJCQkJCQlpZiAodmVuZG9yc1RyYW5zW2ldICsgJ1RyYW5zaXRpb24nIGluIGVsLnN0eWxlKXsKCQkJCQkJCXJldHVybiB7CgkJCQkJCQkJcHJlZml4OiAnLScrdmVuZG9yc1RyYW5zW2ldLnRvTG93ZXJDYXNlKCkrJy0nLAoJCQkJCQkJCXZlbmRvcjogdmVuZG9yc1RyYW5zW2ldCgkJCQkJCQl9OwoJCQkJCQl9OwoJCQkJCX07IAoJCQkJCXJldHVybiAndHJhbnNpdGlvbicgaW4gZWwuc3R5bGUgPyAnJyA6IGZhbHNlOwoJCQkJfSwKCQkJCXRyYW5zUHJlZml4ID0gcHJlZml4KHNlbGYuX2RvbU5vZGUpOwoJCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19wbGF0Zm9ybURldGVjdCcsIDApOwoJCQkKCQkJc2VsZi5fY2hyb21lID0gY2hyb21lID8gcGFyc2VJbnQoY2hyb21lWzFdLCAxMCkgOiBmYWxzZTsKCQkJc2VsZi5fZmYgPSBmZiA/IHBhcnNlSW50KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9ydjooW14pXSspXCkvKVsxXSkgOiBmYWxzZTsKCQkJc2VsZi5fcHJlZml4ID0gdHJhbnNQcmVmaXgucHJlZml4OwoJCQlzZWxmLl92ZW5kb3IgPSB0cmFuc1ByZWZpeC52ZW5kb3I7CgkJCXNlbGYuX3N1Y2tNb2RlID0gd2luZG93LmF0b2IgJiYgc2VsZi5fcHJlZml4ID8gZmFsc2UgOiB0cnVlOwoKCQkJc2VsZi5fc3Vja01vZGUgJiYgKHNlbGYuYW5pbWF0aW9uLmVuYWJsZSA9IGZhbHNlKTsKCQkJKHNlbGYuX2ZmICYmIHNlbGYuX2ZmIDw9IDQpICYmIChzZWxmLmFuaW1hdGlvbi5lbmFibGUgPSBmYWxzZSk7CgkJCQoJCQkvKiBQb2x5ZmlsbHMKCQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoJCQkKCQkJLyoqCgkJCSAqIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUKCQkJICovCgkJCQoJCQlmb3IodmFyIHggPSAwOyB4IDwgdmVuZG9yc1JBRi5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7IHgrKyl7CgkJCQl3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gd2luZG93W3ZlbmRvcnNSQUZbeF0rJ1JlcXVlc3RBbmltYXRpb25GcmFtZSddOwoJCQl9CgoJCQkvKioKCQkJICogT2JqZWN0LmdldFByb3RvdHlwZU9mCgkJCSAqLwoKCQkJaWYodHlwZW9mIE9iamVjdC5nZXRQcm90b3R5cGVPZiAhPT0gJ2Z1bmN0aW9uJyl7CgkJCQlpZih0eXBlb2YgJ3Rlc3QnLl9fcHJvdG9fXyA9PT0gJ29iamVjdCcpewoJCQkJCU9iamVjdC5nZXRQcm90b3R5cGVPZiA9IGZ1bmN0aW9uKG9iamVjdCl7CgkJCQkJCXJldHVybiBvYmplY3QuX19wcm90b19fOwoJCQkJCX07CgkJCQl9IGVsc2UgewoJCQkJCU9iamVjdC5nZXRQcm90b3R5cGVPZiA9IGZ1bmN0aW9uKG9iamVjdCl7CgkJCQkJCXJldHVybiBvYmplY3QuY29uc3RydWN0b3IucHJvdG90eXBlOwoJCQkJCX07CgkJCQl9CgkJCX0KCgkJCS8qKgoJCQkgKiBFbGVtZW50Lm5leHRFbGVtZW50U2libGluZwoJCQkgKi8KCQkJCgkJCWlmKHNlbGYuX2RvbU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nID09PSB1bmRmKXsKCQkJCU9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwgJ25leHRFbGVtZW50U2libGluZycsewoJCQkJCWdldDogZnVuY3Rpb24oKXsKCQkJCQkJdmFyIGVsID0gdGhpcy5uZXh0U2libGluZzsKCQkJCQkJCgkJCQkJCXdoaWxlKGVsKXsKCQkJCQkJCWlmKGVsLm5vZGVUeXBlID09PTEpewoJCQkJCQkJCXJldHVybiBlbDsKCQkJCQkJCX0KCQkJCQkJCWVsID0gZWwubmV4dFNpYmxpbmc7CgkJCQkJCX0KCQkJCQkJcmV0dXJuIG51bGw7CgkJCQkJfQoJCQkJfSk7CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19wbGF0Zm9ybURldGVjdCcsIDEpOwoJCX0sCgkJCgkJLyoqCgkJICogUmVmcmVzaAoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5pdAoJCSAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9yY2UKCQkgKi8KCQkKCQlfcmVmcmVzaDogZnVuY3Rpb24oaW5pdCwgZm9yY2UpewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX3JlZnJlc2gnLCAwLCBhcmd1bWVudHMpOwoKCQkJc2VsZi5fJHRhcmdldHMgPSBzZWxmLl8kY29udGFpbmVyLmZpbmQoc2VsZi5zZWxlY3RvcnMudGFyZ2V0KTsKCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCBzZWxmLl8kdGFyZ2V0cy5sZW5ndGg7IGkrKyl7CgkJCQl2YXIgdGFyZ2V0ID0gc2VsZi5fJHRhcmdldHNbaV07CgkJCQkJCgkJCQlpZih0YXJnZXQuZGF0YXNldCA9PT0gdW5kZiB8fCBmb3JjZSl7CgkJCQkJCQoJCQkJCXRhcmdldC5kYXRhc2V0ID0ge307CgkJCQkJCgkJCQkJZm9yKHZhciBqID0gMDsgaiA8IHRhcmdldC5hdHRyaWJ1dGVzLmxlbmd0aDsgaisrKXsKCQkJCQkJCgkJCQkJCXZhciBhdHRyID0gdGFyZ2V0LmF0dHJpYnV0ZXNbal0sCgkJCQkJCQluYW1lID0gYXR0ci5uYW1lLAoJCQkJCQkJdmFsID0gYXR0ci52YWx1ZTsKCQkJCQkJCQoJCQkJCQlpZihuYW1lLmluZGV4T2YoJ2RhdGEtJykgPiAtMSl7CgkJCQkJCQl2YXIgZGF0YU5hbWUgPSBzZWxmLl9oZWxwZXJzLl9jYW1lbENhc2UobmFtZS5zdWJzdHJpbmcoNSxuYW1lLmxlbmd0aCkpOwoJCQkJCQkJdGFyZ2V0LmRhdGFzZXRbZGF0YU5hbWVdID0gdmFsOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQlpZih0YXJnZXQubWl4UGFyZW50ID09PSB1bmRmKXsKCQkJCQl0YXJnZXQubWl4UGFyZW50ID0gc2VsZi5faWQ7CgkJCQl9CgkJCX0KCQkJCgkJCWlmKAoJCQkJKHNlbGYuXyR0YXJnZXRzLmxlbmd0aCAmJiBpbml0KSB8fAoJCQkJKCFzZWxmLl9vcmlnT3JkZXIubGVuZ3RoICYmIHNlbGYuXyR0YXJnZXRzLmxlbmd0aCkKCQkJKXsKCQkJCXNlbGYuX29yaWdPcmRlciA9IFtdOwoJCQkJCgkJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fJHRhcmdldHMubGVuZ3RoOyBpKyspewoJCQkJCXZhciB0YXJnZXQgPSBzZWxmLl8kdGFyZ2V0c1tpXTsKCQkJCQkKCQkJCQlzZWxmLl9vcmlnT3JkZXIucHVzaCh0YXJnZXQpOwoJCQkJfQoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfcmVmcmVzaCcsIDEsIGFyZ3VtZW50cyk7CgkJfSwKCQkKCQkvKioKCQkgKiBCaW5kIEhhbmRsZXJzCgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX2JpbmRIYW5kbGVyczogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJZmlsdGVycyA9ICQuTWl4SXRVcC5wcm90b3R5cGUuX2JvdW5kLl9maWx0ZXIsCgkJCQlzb3J0cyA9ICQuTWl4SXRVcC5wcm90b3R5cGUuX2JvdW5kLl9zb3J0OwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2JpbmRIYW5kbGVycycsIDApOwoJCQkKCQkJaWYoc2VsZi5jb250cm9scy5saXZlKXsKCQkJCXNlbGYuXyRib2R5CgkJCQkJLm9uKCdjbGljay5taXhJdFVwLicrc2VsZi5faWQsIHNlbGYuc2VsZWN0b3JzLnNvcnQsIGZ1bmN0aW9uKCl7CgkJCQkJCXNlbGYuX3Byb2Nlc3NDbGljaygkKHRoaXMpLCAnc29ydCcpOwoJCQkJCX0pCgkJCQkJLm9uKCdjbGljay5taXhJdFVwLicrc2VsZi5faWQsIHNlbGYuc2VsZWN0b3JzLmZpbHRlciwgZnVuY3Rpb24oKXsKCQkJCQkJc2VsZi5fcHJvY2Vzc0NsaWNrKCQodGhpcyksICdmaWx0ZXInKTsKCQkJCQl9KTsKCQkJfSBlbHNlIHsKCQkJCXNlbGYuXyRzb3J0QnV0dG9ucyA9ICQoc2VsZi5zZWxlY3RvcnMuc29ydCk7CgkJCQlzZWxmLl8kZmlsdGVyQnV0dG9ucyA9ICQoc2VsZi5zZWxlY3RvcnMuZmlsdGVyKTsKCQkJCQoJCQkJc2VsZi5fJHNvcnRCdXR0b25zLm9uKCdjbGljay5taXhJdFVwLicrc2VsZi5faWQsIGZ1bmN0aW9uKCl7CgkJCQkJc2VsZi5fcHJvY2Vzc0NsaWNrKCQodGhpcyksICdzb3J0Jyk7CgkJCQl9KTsKCQkJCQoJCQkJc2VsZi5fJGZpbHRlckJ1dHRvbnMub24oJ2NsaWNrLm1peEl0VXAuJytzZWxmLl9pZCwgZnVuY3Rpb24oKXsKCQkJCQlzZWxmLl9wcm9jZXNzQ2xpY2soJCh0aGlzKSwgJ2ZpbHRlcicpOwoJCQkJfSk7CgkJCX0KCgkJCWZpbHRlcnNbc2VsZi5zZWxlY3RvcnMuZmlsdGVyXSA9IChmaWx0ZXJzW3NlbGYuc2VsZWN0b3JzLmZpbHRlcl0gPT09IHVuZGYpID8gMSA6IGZpbHRlcnNbc2VsZi5zZWxlY3RvcnMuZmlsdGVyXSArIDE7CgkJCXNvcnRzW3NlbGYuc2VsZWN0b3JzLnNvcnRdID0gKHNvcnRzW3NlbGYuc2VsZWN0b3JzLnNvcnRdID09PSB1bmRmKSA/IDEgOiBzb3J0c1tzZWxmLnNlbGVjdG9ycy5zb3J0XSArIDE7CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfYmluZEhhbmRsZXJzJywgMSk7CgkJfSwKCQkKCQkvKioKCQkgKiBQcm9jZXNzIENsaWNrCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtvYmplY3R9ICRidXR0b24KCQkgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQoJCSAqLwoJCQoJCV9wcm9jZXNzQ2xpY2s6IGZ1bmN0aW9uKCRidXR0b24sIHR5cGUpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQl0cmFja0NsaWNrID0gZnVuY3Rpb24oJGJ1dHRvbiwgdHlwZSwgb2ZmKXsKCQkJCQl2YXIgcHJvdG8gPSAkLk1peEl0VXAucHJvdG90eXBlOwoJCQkJCQkKCQkJCQlwcm90by5faGFuZGxlZFsnXycrdHlwZV1bc2VsZi5zZWxlY3RvcnNbdHlwZV1dID0gKHByb3RvLl9oYW5kbGVkWydfJyt0eXBlXVtzZWxmLnNlbGVjdG9yc1t0eXBlXV0gPT09IHVuZGYpID8gCgkJCQkJCTEgOiAKCQkJCQkJcHJvdG8uX2hhbmRsZWRbJ18nK3R5cGVdW3NlbGYuc2VsZWN0b3JzW3R5cGVdXSArIDE7CgoJCQkJCWlmKHByb3RvLl9oYW5kbGVkWydfJyt0eXBlXVtzZWxmLnNlbGVjdG9yc1t0eXBlXV0gPT09IHByb3RvLl9ib3VuZFsnXycrdHlwZV1bc2VsZi5zZWxlY3RvcnNbdHlwZV1dKXsKCQkJCQkJJGJ1dHRvblsob2ZmID8gJ3JlbW92ZScgOiAnYWRkJykrJ0NsYXNzJ10oc2VsZi5jb250cm9scy5hY3RpdmVDbGFzcyk7CgkJCQkJCWRlbGV0ZSBwcm90by5faGFuZGxlZFsnXycrdHlwZV1bc2VsZi5zZWxlY3RvcnNbdHlwZV1dOwoJCQkJCX0KCQkJCX07CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfcHJvY2Vzc0NsaWNrJywgMCwgYXJndW1lbnRzKTsKCQkJCgkJCWlmKCFzZWxmLl9taXhpbmcgfHwgKHNlbGYuYW5pbWF0aW9uLnF1ZXVlICYmIHNlbGYuX3F1ZXVlLmxlbmd0aCA8IHNlbGYuYW5pbWF0aW9uLnF1ZXVlTGltaXQpKXsKCQkJCXNlbGYuX2NsaWNraW5nID0gdHJ1ZTsKCQkJCQoJCQkJaWYodHlwZSA9PT0gJ3NvcnQnKXsKCQkJCQl2YXIgc29ydCA9ICRidXR0b24uYXR0cignZGF0YS1zb3J0Jyk7CgkJCQkJCgkJCQkJaWYoISRidXR0b24uaGFzQ2xhc3Moc2VsZi5jb250cm9scy5hY3RpdmVDbGFzcykgfHwgc29ydC5pbmRleE9mKCdyYW5kb20nKSA+IC0xKXsKCQkJCQkJJChzZWxmLnNlbGVjdG9ycy5zb3J0KS5yZW1vdmVDbGFzcyhzZWxmLmNvbnRyb2xzLmFjdGl2ZUNsYXNzKTsKCQkJCQkJdHJhY2tDbGljaygkYnV0dG9uLCB0eXBlKTsKCQkJCQkJc2VsZi5zb3J0KHNvcnQpOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJaWYodHlwZSA9PT0gJ2ZpbHRlcicpIHsKCQkJCQl2YXIgZmlsdGVyID0gJGJ1dHRvbi5hdHRyKCdkYXRhLWZpbHRlcicpLAoJCQkJCQluZHgsCgkJCQkJCXNlcGVyYXRvciA9IHNlbGYuY29udHJvbHMudG9nZ2xlTG9naWMgPT09ICdvcicgPyAnLCcgOiAnJzsKCQkJCQkKCQkJCQlpZighc2VsZi5jb250cm9scy50b2dnbGVGaWx0ZXJCdXR0b25zKXsKCQkJCQkJaWYoISRidXR0b24uaGFzQ2xhc3Moc2VsZi5jb250cm9scy5hY3RpdmVDbGFzcykpewoJCQkJCQkJJChzZWxmLnNlbGVjdG9ycy5maWx0ZXIpLnJlbW92ZUNsYXNzKHNlbGYuY29udHJvbHMuYWN0aXZlQ2xhc3MpOwoJCQkJCQkJdHJhY2tDbGljaygkYnV0dG9uLCB0eXBlKTsKCQkJCQkJCXNlbGYuZmlsdGVyKGZpbHRlcik7CgkJCQkJCX0KCQkJCQl9IGVsc2UgewoJCQkJCQlzZWxmLl9idWlsZFRvZ2dsZUFycmF5KCk7CgkJCQkJCQoJCQkJCQlpZighJGJ1dHRvbi5oYXNDbGFzcyhzZWxmLmNvbnRyb2xzLmFjdGl2ZUNsYXNzKSl7CgkJCQkJCQl0cmFja0NsaWNrKCRidXR0b24sIHR5cGUpOwoJCQkJCQkJCgkJCQkJCQlzZWxmLl90b2dnbGVBcnJheS5wdXNoKGZpbHRlcik7CgkJCQkJCX0gZWxzZSB7CgkJCQkJCQl0cmFja0NsaWNrKCRidXR0b24sIHR5cGUsIHRydWUpOwoJCQkJCQkJbmR4ID0gc2VsZi5fdG9nZ2xlQXJyYXkuaW5kZXhPZihmaWx0ZXIpOwoJCQkJCQkJc2VsZi5fdG9nZ2xlQXJyYXkuc3BsaWNlKG5keCwgMSk7CgkJCQkJCX0KCQkJCQkJCgkJCQkJCXNlbGYuX3RvZ2dsZUFycmF5ID0gJC5ncmVwKHNlbGYuX3RvZ2dsZUFycmF5LGZ1bmN0aW9uKG4pe3JldHVybihuKTt9KTsKCQkJCQkJCgkJCQkJCXNlbGYuX3RvZ2dsZVN0cmluZyA9IHNlbGYuX3RvZ2dsZUFycmF5LmpvaW4oc2VwZXJhdG9yKTsKCgkJCQkJCXNlbGYuZmlsdGVyKHNlbGYuX3RvZ2dsZVN0cmluZyk7CgkJCQkJfQoJCQkJfQoJCQkJCgkJCQlzZWxmLl9leGVjQWN0aW9uKCdfcHJvY2Vzc0NsaWNrJywgMSwgYXJndW1lbnRzKTsKCQkJfSBlbHNlIHsKCQkJCWlmKHR5cGVvZiBzZWxmLmNhbGxiYWNrcy5vbk1peEJ1c3kgPT09ICdmdW5jdGlvbicpewoJCQkJCXNlbGYuY2FsbGJhY2tzLm9uTWl4QnVzeS5jYWxsKHNlbGYuX2RvbU5vZGUsIHNlbGYuX3N0YXRlLCBzZWxmKTsKCQkJCX0KCQkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19wcm9jZXNzQ2xpY2tCdXN5JywgMSwgYXJndW1lbnRzKTsKCQkJfQoJCX0sCgkJCgkJLyoqCgkJICogQnVpbGQgVG9nZ2xlIEFycmF5CgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX2J1aWxkVG9nZ2xlQXJyYXk6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCWFjdGl2ZUZpbHRlciA9IHNlbGYuX2FjdGl2ZUZpbHRlci5yZXBsYWNlKC9ccy9nLCAnJyk7CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfYnVpbGRUb2dnbGVBcnJheScsIDAsIGFyZ3VtZW50cyk7CgkJCQoJCQlpZihzZWxmLmNvbnRyb2xzLnRvZ2dsZUxvZ2ljID09PSAnb3InKXsKCQkJCXNlbGYuX3RvZ2dsZUFycmF5ID0gYWN0aXZlRmlsdGVyLnNwbGl0KCcsJyk7CgkJCX0gZWxzZSB7CgkJCQlzZWxmLl90b2dnbGVBcnJheSA9IGFjdGl2ZUZpbHRlci5zcGxpdCgnLicpOwoJCQkJCgkJCQkhc2VsZi5fdG9nZ2xlQXJyYXlbMF0gJiYgc2VsZi5fdG9nZ2xlQXJyYXkuc2hpZnQoKTsKCQkJCQoJCQkJZm9yKHZhciBpID0gMCwgZmlsdGVyOyBmaWx0ZXIgPSBzZWxmLl90b2dnbGVBcnJheVtpXTsgaSsrKXsKCQkJCQlzZWxmLl90b2dnbGVBcnJheVtpXSA9ICcuJytmaWx0ZXI7CgkJCQl9CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19idWlsZFRvZ2dsZUFycmF5JywgMSwgYXJndW1lbnRzKTsKCQl9LAoJCQoJCS8qKgoJCSAqIFVwZGF0ZSBDb250cm9scwoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqIEBwYXJhbSB7b2JqZWN0fSBjb21tYW5kCgkJICogQHBhcmFtIHtib29sZWFufSBtdWx0aQoJCSAqLwoJCQoJCV91cGRhdGVDb250cm9sczogZnVuY3Rpb24oY29tbWFuZCwgbXVsdGkpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlvdXRwdXQgPSB7CgkJCQkJZmlsdGVyOiBjb21tYW5kLmZpbHRlciwKCQkJCQlzb3J0OiBjb21tYW5kLnNvcnQKCQkJCX0sCgkJCQl1cGRhdGUgPSBmdW5jdGlvbigkZWwsIGZpbHRlcil7CgkJCQkJdHJ5IHsKCQkJCQkJKG11bHRpICYmIHR5cGUgPT09ICdmaWx0ZXInICYmICEob3V0cHV0LmZpbHRlciA9PT0gJ25vbmUnIHx8IG91dHB1dC5maWx0ZXIgPT09ICcnKSkgPwoJCQkJCQkJCSRlbC5maWx0ZXIoZmlsdGVyKS5hZGRDbGFzcyhzZWxmLmNvbnRyb2xzLmFjdGl2ZUNsYXNzKSA6CgkJCQkJCQkJJGVsLnJlbW92ZUNsYXNzKHNlbGYuY29udHJvbHMuYWN0aXZlQ2xhc3MpLmZpbHRlcihmaWx0ZXIpLmFkZENsYXNzKHNlbGYuY29udHJvbHMuYWN0aXZlQ2xhc3MpOwoJCQkJCX0gY2F0Y2goZSkge30KCQkJCX0sCgkJCQl0eXBlID0gJ2ZpbHRlcicsCgkJCQkkZWwgPSBudWxsOwoJCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ191cGRhdGVDb250cm9scycsIDAsIGFyZ3VtZW50cyk7CgkJCQkKCQkJKGNvbW1hbmQuZmlsdGVyID09PSB1bmRmKSAmJiAob3V0cHV0LmZpbHRlciA9IHNlbGYuX2FjdGl2ZUZpbHRlcik7CgkJCShjb21tYW5kLnNvcnQgPT09IHVuZGYpICYmIChvdXRwdXQuc29ydCA9IHNlbGYuX2FjdGl2ZVNvcnQpOwoJCQkob3V0cHV0LmZpbHRlciA9PT0gc2VsZi5zZWxlY3RvcnMudGFyZ2V0KSAmJiAob3V0cHV0LmZpbHRlciA9ICdhbGwnKTsKCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCAyOyBpKyspewoJCQkJJGVsID0gc2VsZi5jb250cm9scy5saXZlID8gJChzZWxmLnNlbGVjdG9yc1t0eXBlXSkgOiBzZWxmWydfJCcrdHlwZSsnQnV0dG9ucyddOwoJCQkJJGVsICYmIHVwZGF0ZSgkZWwsICdbZGF0YS0nK3R5cGUrJz0iJytvdXRwdXRbdHlwZV0rJyJdJyk7CgkJCQl0eXBlID0gJ3NvcnQnOwoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfdXBkYXRlQ29udHJvbHMnLCAxLCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogRmlsdGVyIChwcml2YXRlKQoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqLwoJCQoJCV9maWx0ZXI6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpczsKCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19maWx0ZXInLCAwKTsKCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCBzZWxmLl8kdGFyZ2V0cy5sZW5ndGg7IGkrKyl7CgkJCQl2YXIgJHRhcmdldCA9ICQoc2VsZi5fJHRhcmdldHNbaV0pOwoJCQkJCgkJCQlpZigkdGFyZ2V0LmlzKHNlbGYuX2FjdGl2ZUZpbHRlcikpewoJCQkJCXNlbGYuXyRzaG93ID0gc2VsZi5fJHNob3cuYWRkKCR0YXJnZXQpOwoJCQkJfSBlbHNlIHsKCQkJCQlzZWxmLl8kaGlkZSA9IHNlbGYuXyRoaWRlLmFkZCgkdGFyZ2V0KTsKCQkJCX0KCQkJfQoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2ZpbHRlcicsIDEpOwoJCX0sCgkJCgkJLyoqCgkJICogU29ydCAocHJpdmF0ZSkKCQkgKiBAc2luY2UgMi4wLjAKCQkgKi8KCQkKCQlfc29ydDogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJYXJyYXlTaHVmZmxlID0gZnVuY3Rpb24ob2xkQXJyYXkpewoJCQkJCXZhciBuZXdBcnJheSA9IG9sZEFycmF5LnNsaWNlKCksCgkJCQkJCWxlbiA9IG5ld0FycmF5Lmxlbmd0aCwKCQkJCQkJaSA9IGxlbjsKCgkJCQkJd2hpbGUoaS0tKXsKCQkJCQkJdmFyIHAgPSBwYXJzZUludChNYXRoLnJhbmRvbSgpKmxlbik7CgkJCQkJCXZhciB0ID0gbmV3QXJyYXlbaV07CgkJCQkJCW5ld0FycmF5W2ldID0gbmV3QXJyYXlbcF07CgkJCQkJCW5ld0FycmF5W3BdID0gdDsKCQkJCQl9OwoJCQkJCXJldHVybiBuZXdBcnJheTsgCgkJCQl9OwoJCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19zb3J0JywgMCk7CgkJCQoJCQlzZWxmLl9zdGFydE9yZGVyID0gW107CgkJCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fJHRhcmdldHMubGVuZ3RoOyBpKyspewoJCQkJdmFyIHRhcmdldCA9IHNlbGYuXyR0YXJnZXRzW2ldOwoJCQkJCgkJCQlzZWxmLl9zdGFydE9yZGVyLnB1c2godGFyZ2V0KTsKCQkJfQoJCQkKCQkJc3dpdGNoKHNlbGYuX25ld1NvcnRbMF0uc29ydEJ5KXsKCQkJCWNhc2UgJ2RlZmF1bHQnOgoJCQkJCXNlbGYuX25ld09yZGVyID0gc2VsZi5fb3JpZ09yZGVyOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAncmFuZG9tJzoKCQkJCQlzZWxmLl9uZXdPcmRlciA9IGFycmF5U2h1ZmZsZShzZWxmLl9zdGFydE9yZGVyKTsKCQkJCQlicmVhazsKCQkJCWNhc2UgJ2N1c3RvbSc6CgkJCQkJc2VsZi5fbmV3T3JkZXIgPSBzZWxmLl9uZXdTb3J0WzBdLm9yZGVyOwoJCQkJCWJyZWFrOwoJCQkJZGVmYXVsdDoKCQkJCQlzZWxmLl9uZXdPcmRlciA9IHNlbGYuX3N0YXJ0T3JkZXIuY29uY2F0KCkuc29ydChmdW5jdGlvbihhLCBiKXsKCQkJCQkJcmV0dXJuIHNlbGYuX2NvbXBhcmUoYSwgYik7CgkJCQkJfSk7CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19zb3J0JywgMSk7CgkJfSwKCQkKCQkvKioKCQkgKiBDb21wYXJlIEFsZ29yaXRobQoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gYQoJCSAqIEBwYXJhbSB7c3RyaW5nfG51bWJlcn0gYgoJCSAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aCAocmVjdXJzaW9uKQoJCSAqIEByZXR1cm4ge251bWJlcn0KCQkgKi8KCQkKCQlfY29tcGFyZTogZnVuY3Rpb24oYSwgYiwgZGVwdGgpewoJCQlkZXB0aCA9IGRlcHRoID8gZGVwdGggOiAwOwoJCQoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlvcmRlciA9IHNlbGYuX25ld1NvcnRbZGVwdGhdLm9yZGVyLAoJCQkJZ2V0RGF0YSA9IGZ1bmN0aW9uKGVsKXsKCQkJCQlyZXR1cm4gZWwuZGF0YXNldFtzZWxmLl9uZXdTb3J0W2RlcHRoXS5zb3J0QnldIHx8IDA7CgkJCQl9LAoJCQkJYXR0ckEgPSBpc05hTihnZXREYXRhKGEpICogMSkgPyBnZXREYXRhKGEpLnRvTG93ZXJDYXNlKCkgOiBnZXREYXRhKGEpICogMSwKCQkJCWF0dHJCID0gaXNOYU4oZ2V0RGF0YShiKSAqIDEpID8gZ2V0RGF0YShiKS50b0xvd2VyQ2FzZSgpIDogZ2V0RGF0YShiKSAqIDE7CgkJCQkKCQkJaWYoYXR0ckEgPCBhdHRyQikKCQkJCXJldHVybiBvcmRlciA9PT0gJ2FzYycgPyAtMSA6IDE7CgkJCWlmKGF0dHJBID4gYXR0ckIpCgkJCQlyZXR1cm4gb3JkZXIgPT09ICdhc2MnID8gMSA6IC0xOwoJCQlpZihhdHRyQSA9PT0gYXR0ckIgJiYgc2VsZi5fbmV3U29ydC5sZW5ndGggPiBkZXB0aCsxKQoJCQkJcmV0dXJuIHNlbGYuX2NvbXBhcmUoYSwgYiwgZGVwdGgrMSk7CgoJCQlyZXR1cm4gMDsKCQl9LAoJCQoJCS8qKgoJCSAqIFByaW50IFNvcnQKCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcGFyYW0ge2Jvb2xlYW59IHJlc2V0CgkJICovCgkJCgkJX3ByaW50U29ydDogZnVuY3Rpb24ocmVzZXQpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlvcmRlciA9IHJlc2V0ID8gc2VsZi5fc3RhcnRPcmRlciA6IHNlbGYuX25ld09yZGVyLAoJCQkJdGFyZ2V0cyA9IHNlbGYuXyRwYXJlbnRbMF0ucXVlcnlTZWxlY3RvckFsbChzZWxmLnNlbGVjdG9ycy50YXJnZXQpLAoJCQkJbmV4dFNpYmxpbmcgPSB0YXJnZXRzLmxlbmd0aCA/IHRhcmdldHNbdGFyZ2V0cy5sZW5ndGggLTFdLm5leHRFbGVtZW50U2libGluZyA6IG51bGwsCgkJCQlmcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoJCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19wcmludFNvcnQnLCAwLCBhcmd1bWVudHMpOwoJCQkKCQkJZm9yKHZhciBpID0gMDsgaSA8IHRhcmdldHMubGVuZ3RoOyBpKyspewoJCQkJdmFyIHRhcmdldCA9IHRhcmdldHNbaV0sCgkJCQkJd2hpdGVTcGFjZSA9IHRhcmdldC5uZXh0U2libGluZzsKCgkJCQlpZih0YXJnZXQuc3R5bGUucG9zaXRpb24gPT09ICdhYnNvbHV0ZScpIGNvbnRpbnVlOwoJCQkKCQkJCWlmKHdoaXRlU3BhY2UgJiYgd2hpdGVTcGFjZS5ub2RlTmFtZSA9PT0gJyN0ZXh0Jyl7CgkJCQkJc2VsZi5fJHBhcmVudFswXS5yZW1vdmVDaGlsZCh3aGl0ZVNwYWNlKTsKCQkJCX0KCQkJCQoJCQkJc2VsZi5fJHBhcmVudFswXS5yZW1vdmVDaGlsZCh0YXJnZXQpOwoJCQl9CgkJCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgb3JkZXIubGVuZ3RoOyBpKyspewoJCQkJdmFyIGVsID0gb3JkZXJbaV07CgoJCQkJaWYoc2VsZi5fbmV3U29ydFswXS5zb3J0QnkgPT09ICdkZWZhdWx0JyAmJiBzZWxmLl9uZXdTb3J0WzBdLm9yZGVyID09PSAnZGVzYycgJiYgIXJlc2V0KXsKCQkJCQl2YXIgZmlyc3RDaGlsZCA9IGZyYWcuZmlyc3RDaGlsZDsKCQkJCQlmcmFnLmluc2VydEJlZm9yZShlbCwgZmlyc3RDaGlsZCk7CgkJCQkJZnJhZy5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJyAnKSwgZWwpOwoJCQkJfSBlbHNlIHsKCQkJCQlmcmFnLmFwcGVuZENoaWxkKGVsKTsKCQkJCQlmcmFnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJykpOwoJCQkJfQoJCQl9CgkJCQoJCQluZXh0U2libGluZyA/IAoJCQkJc2VsZi5fJHBhcmVudFswXS5pbnNlcnRCZWZvcmUoZnJhZywgbmV4dFNpYmxpbmcpIDoKCQkJCXNlbGYuXyRwYXJlbnRbMF0uYXBwZW5kQ2hpbGQoZnJhZyk7CgkJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX3ByaW50U29ydCcsIDEsIGFyZ3VtZW50cyk7CgkJfSwKCQkKCQkvKioKCQkgKiBQYXJzZSBTb3J0CgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtzdHJpbmd9IHNvcnRTdHJpbmcKCQkgKiBAcmV0dXJuIHthcnJheX0gbmV3U29ydAoJCSAqLwoJCQoJCV9wYXJzZVNvcnQ6IGZ1bmN0aW9uKHNvcnRTdHJpbmcpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlydWxlcyA9IHR5cGVvZiBzb3J0U3RyaW5nID09PSAnc3RyaW5nJyA/IHNvcnRTdHJpbmcuc3BsaXQoJyAnKSA6IFtzb3J0U3RyaW5nXSwKCQkJCW5ld1NvcnQgPSBbXTsKCQkJCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgcnVsZXMubGVuZ3RoOyBpKyspewoJCQkJdmFyIHJ1bGUgPSB0eXBlb2Ygc29ydFN0cmluZyA9PT0gJ3N0cmluZycgPyBydWxlc1tpXS5zcGxpdCgnOicpIDogWydjdXN0b20nLCBydWxlc1tpXV0sCgkJCQkJcnVsZU9iaiA9IHsKCQkJCQkJc29ydEJ5OiBzZWxmLl9oZWxwZXJzLl9jYW1lbENhc2UocnVsZVswXSksCgkJCQkJCW9yZGVyOiBydWxlWzFdIHx8ICdhc2MnCgkJCQkJfTsKCQkJCQkKCQkJCW5ld1NvcnQucHVzaChydWxlT2JqKTsKCQkJCQoJCQkJaWYocnVsZU9iai5zb3J0QnkgPT09ICdkZWZhdWx0JyB8fCBydWxlT2JqLnNvcnRCeSA9PT0gJ3JhbmRvbScpIGJyZWFrOwoJCQl9CgkJCQoJCQlyZXR1cm4gc2VsZi5fZXhlY0ZpbHRlcignX3BhcnNlU29ydCcsIG5ld1NvcnQsIGFyZ3VtZW50cyk7CgkJfSwKCQkKCQkvKioKCQkgKiBQYXJzZSBFZmZlY3RzCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHJldHVybiB7b2JqZWN0fSBlZmZlY3RzCgkJICovCgkJCgkJX3BhcnNlRWZmZWN0czogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJZWZmZWN0cyA9IHsKCQkJCQlvcGFjaXR5OiAnJywKCQkJCQl0cmFuc2Zvcm1JbjogJycsCgkJCQkJdHJhbnNmb3JtT3V0OiAnJywKCQkJCQlmaWx0ZXI6ICcnCgkJCQl9LAoJCQkJcGFyc2UgPSBmdW5jdGlvbihlZmZlY3QsIGV4dHJhY3QsIHJldmVyc2UpewoJCQkJCWlmKHNlbGYuYW5pbWF0aW9uLmVmZmVjdHMuaW5kZXhPZihlZmZlY3QpID4gLTEpewoJCQkJCQlpZihleHRyYWN0KXsKCQkJCQkJCXZhciBwcm9wSW5kZXggPSBzZWxmLmFuaW1hdGlvbi5lZmZlY3RzLmluZGV4T2YoZWZmZWN0KycoJyk7CgkJCQkJCQlpZihwcm9wSW5kZXggPiAtMSl7CgkJCQkJCQkJdmFyIHN0ciA9IHNlbGYuYW5pbWF0aW9uLmVmZmVjdHMuc3Vic3RyaW5nKHByb3BJbmRleCksCgkJCQkJCQkJCW1hdGNoID0gL1woKFteKV0rKVwpLy5leGVjKHN0ciksCgkJCQkJCQkJCXZhbCA9IG1hdGNoWzFdOwoKCQkJCQkJCQkJcmV0dXJuIHt2YWw6IHZhbH07CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQkJcmV0dXJuIHRydWU7CgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCX0KCQkJCX0sCgkJCQluZWdhdGUgPSBmdW5jdGlvbih2YWx1ZSwgaW52ZXJ0KXsKCQkJCQlpZihpbnZlcnQpewoJCQkJCQlyZXR1cm4gdmFsdWUuY2hhckF0KDApID09PSAnLScgPyB2YWx1ZS5zdWJzdHIoMSwgdmFsdWUubGVuZ3RoKSA6ICctJyt2YWx1ZTsKCQkJCQl9IGVsc2UgewoJCQkJCQlyZXR1cm4gdmFsdWU7CgkJCQkJfQoJCQkJfSwKCQkJCWJ1aWxkVHJhbnNmb3JtID0gZnVuY3Rpb24oa2V5LCBpbnZlcnQpewoJCQkJCXZhciB0cmFuc2Zvcm1zID0gWwoJCQkJCQlbJ3NjYWxlJywgJy4wMSddLAoJCQkJCQlbJ3RyYW5zbGF0ZVgnLCAnMjBweCddLAoJCQkJCQlbJ3RyYW5zbGF0ZVknLCAnMjBweCddLAoJCQkJCQlbJ3RyYW5zbGF0ZVonLCAnMjBweCddLAoJCQkJCQlbJ3JvdGF0ZVgnLCAnOTBkZWcnXSwKCQkJCQkJWydyb3RhdGVZJywgJzkwZGVnJ10sCgkJCQkJCVsncm90YXRlWicsICcxODBkZWcnXSwKCQkJCQldOwoJCQkJCQoJCQkJCWZvcih2YXIgaSA9IDA7IGkgPCB0cmFuc2Zvcm1zLmxlbmd0aDsgaSsrKXsKCQkJCQkJdmFyIHByb3AgPSB0cmFuc2Zvcm1zW2ldWzBdLAoJCQkJCQkJZGVmID0gdHJhbnNmb3Jtc1tpXVsxXSwKCQkJCQkJCWludmVydGVkID0gaW52ZXJ0ICYmIHByb3AgIT09ICdzY2FsZSc7CgkJCQkJCQkKCQkJCQkJZWZmZWN0c1trZXldICs9IHBhcnNlKHByb3ApID8gcHJvcCsnKCcrbmVnYXRlKHBhcnNlKHByb3AsIHRydWUpLnZhbCB8fCBkZWYsIGludmVydGVkKSsnKSAnIDogJyc7CgkJCQkJfQoJCQkJfTsKCQkJCgkJCWVmZmVjdHMub3BhY2l0eSA9IHBhcnNlKCdmYWRlJykgPyBwYXJzZSgnZmFkZScsdHJ1ZSkudmFsIHx8ICcwJyA6ICcxJzsKCQkJCgkJCWJ1aWxkVHJhbnNmb3JtKCd0cmFuc2Zvcm1JbicpOwoJCQkKCQkJc2VsZi5hbmltYXRpb24ucmV2ZXJzZU91dCA/IGJ1aWxkVHJhbnNmb3JtKCd0cmFuc2Zvcm1PdXQnLCB0cnVlKSA6IChlZmZlY3RzLnRyYW5zZm9ybU91dCA9IGVmZmVjdHMudHJhbnNmb3JtSW4pOwoKCQkJZWZmZWN0cy50cmFuc2l0aW9uID0ge307CgkJCQoJCQllZmZlY3RzLnRyYW5zaXRpb24gPSBzZWxmLl9nZXRQcmVmaXhlZENTUygndHJhbnNpdGlvbicsJ2FsbCAnK3NlbGYuYW5pbWF0aW9uLmR1cmF0aW9uKydtcyAnK3NlbGYuYW5pbWF0aW9uLmVhc2luZysnLCBvcGFjaXR5ICcrc2VsZi5hbmltYXRpb24uZHVyYXRpb24rJ21zIGxpbmVhcicpOwoJCQoJCQlzZWxmLmFuaW1hdGlvbi5zdGFnZ2VyID0gcGFyc2UoJ3N0YWdnZXInKSA/IHRydWUgOiBmYWxzZTsKCQkJc2VsZi5hbmltYXRpb24uc3RhZ2dlckR1cmF0aW9uID0gcGFyc2VJbnQocGFyc2UoJ3N0YWdnZXInKSA/IChwYXJzZSgnc3RhZ2dlcicsdHJ1ZSkudmFsID8gcGFyc2UoJ3N0YWdnZXInLHRydWUpLnZhbCA6IDEwMCkgOiAxMDApOwoKCQkJcmV0dXJuIHNlbGYuX2V4ZWNGaWx0ZXIoJ19wYXJzZUVmZmVjdHMnLCBlZmZlY3RzKTsKCQl9LAoJCQoJCS8qKgoJCSAqIEJ1aWxkIFN0YXRlCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtib29sZWFufSBmdXR1cmUKCQkgKiBAcmV0dXJuIHtvYmplY3R9IGZ1dHVyZVN0YXRlCgkJICovCgkJCgkJX2J1aWxkU3RhdGU6IGZ1bmN0aW9uKGZ1dHVyZSl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCXN0YXRlID0ge307CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfYnVpbGRTdGF0ZScsIDApOwoJCQkKCQkJc3RhdGUgPSB7CgkJCQlhY3RpdmVGaWx0ZXI6IHNlbGYuX2FjdGl2ZUZpbHRlciA9PT0gJycgPyAnbm9uZScgOiBzZWxmLl9hY3RpdmVGaWx0ZXIsCgkJCQlhY3RpdmVTb3J0OiBmdXR1cmUgJiYgc2VsZi5fbmV3U29ydFN0cmluZyA/IHNlbGYuX25ld1NvcnRTdHJpbmcgOiBzZWxmLl9hY3RpdmVTb3J0LAoJCQkJZmFpbDogIXNlbGYuXyRzaG93Lmxlbmd0aCAmJiBzZWxmLl9hY3RpdmVGaWx0ZXIgIT09ICcnLAoJCQkJJHRhcmdldHM6IHNlbGYuXyR0YXJnZXRzLAoJCQkJJHNob3c6IHNlbGYuXyRzaG93LAoJCQkJJGhpZGU6IHNlbGYuXyRoaWRlLAoJCQkJdG90YWxUYXJnZXRzOiBzZWxmLl8kdGFyZ2V0cy5sZW5ndGgsCgkJCQl0b3RhbFNob3c6IHNlbGYuXyRzaG93Lmxlbmd0aCwKCQkJCXRvdGFsSGlkZTogc2VsZi5fJGhpZGUubGVuZ3RoLAoJCQkJZGlzcGxheTogZnV0dXJlICYmIHNlbGYuX25ld0Rpc3BsYXkgPyBzZWxmLl9uZXdEaXNwbGF5IDogc2VsZi5sYXlvdXQuZGlzcGxheQoJCQl9OwoJCQkKCQkJaWYoZnV0dXJlKXsKCQkJCXJldHVybiBzZWxmLl9leGVjRmlsdGVyKCdfYnVpbGRTdGF0ZScsIHN0YXRlKTsKCQkJfSBlbHNlIHsKCQkJCXNlbGYuX3N0YXRlID0gc3RhdGU7CgkJCQkKCQkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19idWlsZFN0YXRlJywgMSk7CgkJCX0KCQl9LAoJCQoJCS8qKgoJCSAqIEdvIE1peAoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqIEBwYXJhbSB7Ym9vbGVhbn0gYW5pbWF0ZQoJCSAqLwoJCQoJCV9nb01peDogZnVuY3Rpb24oYW5pbWF0ZSl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCXBoYXNlMSA9IGZ1bmN0aW9uKCl7CgkJCQkJaWYoc2VsZi5fY2hyb21lICYmIChzZWxmLl9jaHJvbWUgPT09IDMxKSl7CgkJCQkJCWNocm9tZUZpeChzZWxmLl8kcGFyZW50WzBdKTsKCQkJCQl9CgkJCQkJCgkJCQkJc2VsZi5fc2V0SW50ZXIoKTsKCQkJCQkKCQkJCQlwaGFzZTIoKTsKCQkJCX0sCgkJCQlwaGFzZTIgPSBmdW5jdGlvbigpewoJCQkJCXZhciBzY3JvbGxUb3AgPSB3aW5kb3cucGFnZVlPZmZzZXQsCgkJCQkJCXNjcm9sbExlZnQgPSB3aW5kb3cucGFnZVhPZmZzZXQsCgkJCQkJCWRvY0hlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQ7CgoJCQkJCXNlbGYuX2dldEludGVyTWl4RGF0YSgpOwoJCQkJCQoJCQkJCXNlbGYuX3NldEZpbmFsKCk7CgoJCQkJCXNlbGYuX2dldEZpbmFsTWl4RGF0YSgpOwoKCQkJCQkod2luZG93LnBhZ2VZT2Zmc2V0ICE9PSBzY3JvbGxUb3ApICYmIHdpbmRvdy5zY3JvbGxUbyhzY3JvbGxMZWZ0LCBzY3JvbGxUb3ApOwoKCQkJCQlzZWxmLl9wcmVwVGFyZ2V0cygpOwoJCQkJCQoJCQkJCWlmKHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpewoJCQkJCQlyZXF1ZXN0QW5pbWF0aW9uRnJhbWUocGhhc2UzKTsKCQkJCQl9IGVsc2UgewoJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQlwaGFzZTMoKTsKCQkJCQkJfSwyMCk7CgkJCQkJfQoJCQkJfSwKCQkJCXBoYXNlMyA9IGZ1bmN0aW9uKCl7CgkJCQkJc2VsZi5fYW5pbWF0ZVRhcmdldHMoKTsKCgkJCQkJaWYoc2VsZi5fdGFyZ2V0c0JvdW5kID09PSAwKXsKCQkJCQkJc2VsZi5fY2xlYW5VcCgpOwoJCQkJCX0KCQkJCX0sCgkJCQljaHJvbWVGaXggPSBmdW5jdGlvbihncmlkKXsKCQkJCQl2YXIgcGFyZW50ID0gZ3JpZC5wYXJlbnRFbGVtZW50LAoJCQkJCQlwbGFjZWhvbGRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLAoJCQkJCQlmcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoKCQkJCQlwYXJlbnQuaW5zZXJ0QmVmb3JlKHBsYWNlaG9sZGVyLCBncmlkKTsKCQkJCQlmcmFnLmFwcGVuZENoaWxkKGdyaWQpOwoJCQkJCXBhcmVudC5yZXBsYWNlQ2hpbGQoZ3JpZCwgcGxhY2Vob2xkZXIpOwoJCQkJfSwKCQkJCWZ1dHVyZVN0YXRlID0gc2VsZi5fYnVpbGRTdGF0ZSh0cnVlKTsKCQkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfZ29NaXgnLCAwLCBhcmd1bWVudHMpOwoJCQkJCgkJCSFzZWxmLmFuaW1hdGlvbi5kdXJhdGlvbiAmJiAoYW5pbWF0ZSA9IGZhbHNlKTsKCgkJCXNlbGYuX21peGluZyA9IHRydWU7CgkJCQoJCQlzZWxmLl8kY29udGFpbmVyLnJlbW92ZUNsYXNzKHNlbGYubGF5b3V0LmNvbnRhaW5lckNsYXNzRmFpbCk7CgkJCQoJCQlpZih0eXBlb2Ygc2VsZi5jYWxsYmFja3Mub25NaXhTdGFydCA9PT0gJ2Z1bmN0aW9uJyl7CgkJCQlzZWxmLmNhbGxiYWNrcy5vbk1peFN0YXJ0LmNhbGwoc2VsZi5fZG9tTm9kZSwgc2VsZi5fc3RhdGUsIGZ1dHVyZVN0YXRlLCBzZWxmKTsKCQkJfQoJCQkKCQkJc2VsZi5fJGNvbnRhaW5lci50cmlnZ2VyKCdtaXhTdGFydCcsIFtzZWxmLl9zdGF0ZSwgZnV0dXJlU3RhdGUsIHNlbGZdKTsKCQkJCgkJCXNlbGYuX2dldE9yaWdNaXhEYXRhKCk7CgkJCQoJCQlpZihhbmltYXRlICYmICFzZWxmLl9zdWNrTW9kZSl7CgkJCQoJCQkJd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA/CgkJCQkJcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHBoYXNlMSkgOgoJCQkJCXBoYXNlMSgpOwoJCQkKCQkJfSBlbHNlIHsKCQkJCXNlbGYuX2NsZWFuVXAoKTsKCQkJfQoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2dvTWl4JywgMSwgYXJndW1lbnRzKTsKCQl9LAoJCQoJCS8qKgoJCSAqIEdldCBUYXJnZXQgRGF0YQoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqLwoJCQoJCV9nZXRUYXJnZXREYXRhOiBmdW5jdGlvbihlbCwgc3RhZ2UpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQllbFN0eWxlOwoJCQkKCQkJZWwuZGF0YXNldFtzdGFnZSsnUG9zWCddID0gZWwub2Zmc2V0TGVmdDsKCQkJZWwuZGF0YXNldFtzdGFnZSsnUG9zWSddID0gZWwub2Zmc2V0VG9wOwoKCQkJaWYoc2VsZi5hbmltYXRpb24uYW5pbWF0ZVJlc2l6ZVRhcmdldHMpewoJCQkJZWxTdHlsZSA9ICFzZWxmLl9zdWNrTW9kZSA/IAoJCQkJCXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKSA6IAoJCQkJCXsKCQkJCQkJbWFyZ2luQm90dG9tOiAnJywKCQkJCQkJbWFyZ2luUmlnaHQ6ICcnCgkJCQkJfTsKCQkJCgkJCQllbC5kYXRhc2V0W3N0YWdlKydNYXJnaW5Cb3R0b20nXSA9IHBhcnNlSW50KGVsU3R5bGUubWFyZ2luQm90dG9tKTsKCQkJCWVsLmRhdGFzZXRbc3RhZ2UrJ01hcmdpblJpZ2h0J10gPSBwYXJzZUludChlbFN0eWxlLm1hcmdpblJpZ2h0KTsKCQkJCWVsLmRhdGFzZXRbc3RhZ2UrJ1dpZHRoJ10gPSBlbC5vZmZzZXRXaWR0aDsKCQkJCWVsLmRhdGFzZXRbc3RhZ2UrJ0hlaWdodCddID0gZWwub2Zmc2V0SGVpZ2h0OwoJCQl9CgkJfSwKCQkKCQkvKioKCQkgKiBHZXQgT3JpZ2luYWwgTWl4IERhdGEKCQkgKiBAc2luY2UgMi4wLjAKCQkgKi8KCQkKCQlfZ2V0T3JpZ01peERhdGE6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCXBhcmVudFN0eWxlID0gIXNlbGYuX3N1Y2tNb2RlID8gd2luZG93LmdldENvbXB1dGVkU3R5bGUoc2VsZi5fJHBhcmVudFswXSkgOiB7Ym94U2l6aW5nOiAnJ30sCgkJCQlwYXJlbnRCUyA9IHBhcmVudFN0eWxlLmJveFNpemluZyB8fCBwYXJlbnRTdHlsZVtzZWxmLl92ZW5kb3IrJ0JveFNpemluZyddOwoJCgkJCXNlbGYuX2luY1BhZGRpbmcgPSAocGFyZW50QlMgPT09ICdib3JkZXItYm94Jyk7CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfZ2V0T3JpZ01peERhdGEnLCAwKTsKCQkJCgkJCSFzZWxmLl9zdWNrTW9kZSAmJiAoc2VsZi5lZmZlY3RzID0gc2VsZi5fcGFyc2VFZmZlY3RzKCkpOwoJCQoJCQlzZWxmLl8kdG9IaWRlID0gc2VsZi5fJGhpZGUuZmlsdGVyKCc6dmlzaWJsZScpOwoJCQlzZWxmLl8kdG9TaG93ID0gc2VsZi5fJHNob3cuZmlsdGVyKCc6aGlkZGVuJyk7CgkJCXNlbGYuXyRwcmUgPSBzZWxmLl8kdGFyZ2V0cy5maWx0ZXIoJzp2aXNpYmxlJyk7CgoJCQlzZWxmLl9zdGFydEhlaWdodCA9IHNlbGYuX2luY1BhZGRpbmcgPyAKCQkJCXNlbGYuXyRwYXJlbnQub3V0ZXJIZWlnaHQoKSA6IAoJCQkJc2VsZi5fJHBhcmVudC5oZWlnaHQoKTsKCQkJCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fJHByZS5sZW5ndGg7IGkrKyl7CgkJCQl2YXIgZWwgPSBzZWxmLl8kcHJlW2ldOwoJCQkJCgkJCQlzZWxmLl9nZXRUYXJnZXREYXRhKGVsLCAnb3JpZycpOwoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfZ2V0T3JpZ01peERhdGEnLCAxKTsKCQl9LAoJCQoJCS8qKgoJCSAqIFNldCBJbnRlcm1lZGlhdGUgUG9zaXRpb25zCgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX3NldEludGVyOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfc2V0SW50ZXInLCAwKTsKCQkJCgkJCWlmKHNlbGYuX2NoYW5naW5nTGF5b3V0ICYmIHNlbGYuYW5pbWF0aW9uLmFuaW1hdGVDaGFuZ2VMYXlvdXQpewoJCQkJc2VsZi5fJHRvU2hvdy5jc3MoJ2Rpc3BsYXknLHNlbGYuX25ld0Rpc3BsYXkpOwoKCQkJCWlmKHNlbGYuX2NoYW5naW5nQ2xhc3MpewoJCQkJCXNlbGYuXyRjb250YWluZXIKCQkJCQkJLnJlbW92ZUNsYXNzKHNlbGYubGF5b3V0LmNvbnRhaW5lckNsYXNzKQoJCQkJCQkuYWRkQ2xhc3Moc2VsZi5fbmV3Q2xhc3MpOwoJCQkJfQoJCQl9IGVsc2UgewoJCQkJc2VsZi5fJHRvU2hvdy5jc3MoJ2Rpc3BsYXknLCBzZWxmLmxheW91dC5kaXNwbGF5KTsKCQkJfQoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX3NldEludGVyJywgMSk7CgkJfSwKCQkKCQkvKioKCQkgKiBHZXQgSW50ZXJtZWRpYXRlIE1peCBEYXRhCgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX2dldEludGVyTWl4RGF0YTogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzOwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2dldEludGVyTWl4RGF0YScsIDApOwoJCQkKCQkJZm9yKHZhciBpID0gMDsgaSA8IHNlbGYuXyR0b1Nob3cubGVuZ3RoOyBpKyspewoJCQkJdmFyIGVsID0gc2VsZi5fJHRvU2hvd1tpXTsKCQkJCQkKCQkJCXNlbGYuX2dldFRhcmdldERhdGEoZWwsICdpbnRlcicpOwoJCQl9CgkJCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fJHByZS5sZW5ndGg7IGkrKyl7CgkJCQl2YXIgZWwgPSBzZWxmLl8kcHJlW2ldOwoJCQkJCQoJCQkJc2VsZi5fZ2V0VGFyZ2V0RGF0YShlbCwgJ2ludGVyJyk7CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19nZXRJbnRlck1peERhdGEnLCAxKTsKCQl9LAoJCQoJCS8qKgoJCSAqIFNldCBGaW5hbCBQb3NpdGlvbnMKCQkgKiBAc2luY2UgMi4wLjAKCQkgKi8KCQkKCQlfc2V0RmluYWw6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpczsKCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19zZXRGaW5hbCcsIDApOwoJCQkKCQkJc2VsZi5fc29ydGluZyAmJiBzZWxmLl9wcmludFNvcnQoKTsKCgkJCXNlbGYuXyR0b0hpZGUucmVtb3ZlU3R5bGUoJ2Rpc3BsYXknKTsKCQkJCgkJCWlmKHNlbGYuX2NoYW5naW5nTGF5b3V0ICYmIHNlbGYuYW5pbWF0aW9uLmFuaW1hdGVDaGFuZ2VMYXlvdXQpewoJCQkJc2VsZi5fJHByZS5jc3MoJ2Rpc3BsYXknLHNlbGYuX25ld0Rpc3BsYXkpOwoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfc2V0RmluYWwnLCAxKTsKCQl9LAoJCQoJCS8qKgoJCSAqIEdldCBGaW5hbCBNaXggRGF0YQoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqLwoJCQoJCV9nZXRGaW5hbE1peERhdGE6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpczsKCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19nZXRGaW5hbE1peERhdGEnLCAwKTsKCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fJHRvU2hvdy5sZW5ndGg7IGkrKyl7CgkJCQl2YXIgZWwgPSBzZWxmLl8kdG9TaG93W2ldOwoJCQkJCQoJCQkJc2VsZi5fZ2V0VGFyZ2V0RGF0YShlbCwgJ2ZpbmFsJyk7CgkJCX0KCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCBzZWxmLl8kcHJlLmxlbmd0aDsgaSsrKXsKCQkJCXZhciBlbCA9IHNlbGYuXyRwcmVbaV07CgkJCQkJCgkJCQlzZWxmLl9nZXRUYXJnZXREYXRhKGVsLCAnZmluYWwnKTsKCQkJfQoJCQkKCQkJc2VsZi5fbmV3SGVpZ2h0ID0gc2VsZi5faW5jUGFkZGluZyA/IAoJCQkJc2VsZi5fJHBhcmVudC5vdXRlckhlaWdodCgpIDogCgkJCQlzZWxmLl8kcGFyZW50LmhlaWdodCgpOwoKCQkJc2VsZi5fc29ydGluZyAmJiBzZWxmLl9wcmludFNvcnQodHJ1ZSk7CgkKCQkJc2VsZi5fJHRvU2hvdy5yZW1vdmVTdHlsZSgnZGlzcGxheScpOwoJCQkKCQkJc2VsZi5fJHByZS5jc3MoJ2Rpc3BsYXknLHNlbGYubGF5b3V0LmRpc3BsYXkpOwoJCQkKCQkJaWYoc2VsZi5fY2hhbmdpbmdDbGFzcyAmJiBzZWxmLmFuaW1hdGlvbi5hbmltYXRlQ2hhbmdlTGF5b3V0KXsKCQkJCXNlbGYuXyRjb250YWluZXIKCQkJCQkucmVtb3ZlQ2xhc3Moc2VsZi5fbmV3Q2xhc3MpCgkJCQkJLmFkZENsYXNzKHNlbGYubGF5b3V0LmNvbnRhaW5lckNsYXNzKTsKCQkJfQoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2dldEZpbmFsTWl4RGF0YScsIDEpOwoJCX0sCgkJCgkJLyoqCgkJICogUHJlcGFyZSBUYXJnZXRzCgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX3ByZXBUYXJnZXRzOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQl0cmFuc2Zvcm1DU1MgPSB7CgkJCQkJX2luOiBzZWxmLl9nZXRQcmVmaXhlZENTUygndHJhbnNmb3JtJywgc2VsZi5lZmZlY3RzLnRyYW5zZm9ybUluKSwKCQkJCQlfb3V0OiBzZWxmLl9nZXRQcmVmaXhlZENTUygndHJhbnNmb3JtJywgc2VsZi5lZmZlY3RzLnRyYW5zZm9ybU91dCkKCQkJCX07CgoJCQlzZWxmLl9leGVjQWN0aW9uKCdfcHJlcFRhcmdldHMnLCAwKTsKCQkJCgkJCWlmKHNlbGYuYW5pbWF0aW9uLmFuaW1hdGVSZXNpemVDb250YWluZXIpewoJCQkJc2VsZi5fJHBhcmVudC5jc3MoJ2hlaWdodCcsc2VsZi5fc3RhcnRIZWlnaHQrJ3B4Jyk7CgkJCX0KCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCBzZWxmLl8kdG9TaG93Lmxlbmd0aDsgaSsrKXsKCQkJCXZhciBlbCA9IHNlbGYuXyR0b1Nob3dbaV0sCgkJCQkJJGVsID0gJChlbCk7CgkJCQkKCQkJCWVsLnN0eWxlLm9wYWNpdHkgPSBzZWxmLmVmZmVjdHMub3BhY2l0eTsKCQkJCWVsLnN0eWxlLmRpc3BsYXkgPSAoc2VsZi5fY2hhbmdpbmdMYXlvdXQgJiYgc2VsZi5hbmltYXRpb24uYW5pbWF0ZUNoYW5nZUxheW91dCkgPwoJCQkJCXNlbGYuX25ld0Rpc3BsYXkgOgoJCQkJCXNlbGYubGF5b3V0LmRpc3BsYXk7CgkJCQkJCgkJCQkkZWwuY3NzKHRyYW5zZm9ybUNTUy5faW4pOwoJCQkJCgkJCQlpZihzZWxmLmFuaW1hdGlvbi5hbmltYXRlUmVzaXplVGFyZ2V0cyl7CgkJCQkJZWwuc3R5bGUud2lkdGggPSBlbC5kYXRhc2V0LmZpbmFsV2lkdGgrJ3B4JzsKCQkJCQllbC5zdHlsZS5oZWlnaHQgPSBlbC5kYXRhc2V0LmZpbmFsSGVpZ2h0KydweCc7CgkJCQkJZWwuc3R5bGUubWFyZ2luUmlnaHQgPSAtKGVsLmRhdGFzZXQuZmluYWxXaWR0aCAtIGVsLmRhdGFzZXQuaW50ZXJXaWR0aCkgKyAoZWwuZGF0YXNldC5maW5hbE1hcmdpblJpZ2h0ICogMSkrJ3B4JzsKCQkJCQllbC5zdHlsZS5tYXJnaW5Cb3R0b20gPSAtKGVsLmRhdGFzZXQuZmluYWxIZWlnaHQgLSBlbC5kYXRhc2V0LmludGVySGVpZ2h0KSArIChlbC5kYXRhc2V0LmZpbmFsTWFyZ2luQm90dG9tICogMSkrJ3B4JzsKCQkJCX0KCQkJfQoKCQkJZm9yKHZhciBpID0gMDsgaSA8IHNlbGYuXyRwcmUubGVuZ3RoOyBpKyspewoJCQkJdmFyIGVsID0gc2VsZi5fJHByZVtpXSwKCQkJCQkkZWwgPSAkKGVsKSwKCQkJCQl0cmFuc2xhdGUgPSB7CgkJCQkJCXg6IGVsLmRhdGFzZXQub3JpZ1Bvc1ggLSBlbC5kYXRhc2V0LmludGVyUG9zWCwKCQkJCQkJeTogZWwuZGF0YXNldC5vcmlnUG9zWSAtIGVsLmRhdGFzZXQuaW50ZXJQb3NZCgkJCQkJfSwKCQkJCQl0cmFuc2Zvcm1DU1MgPSBzZWxmLl9nZXRQcmVmaXhlZENTUygndHJhbnNmb3JtJywndHJhbnNsYXRlKCcrdHJhbnNsYXRlLngrJ3B4LCcrdHJhbnNsYXRlLnkrJ3B4KScpOwoKCQkJCSRlbC5jc3ModHJhbnNmb3JtQ1NTKTsKCQkJCQoJCQkJaWYoc2VsZi5hbmltYXRpb24uYW5pbWF0ZVJlc2l6ZVRhcmdldHMpewoJCQkJCWVsLnN0eWxlLndpZHRoID0gZWwuZGF0YXNldC5vcmlnV2lkdGgrJ3B4JzsKCQkJCQllbC5zdHlsZS5oZWlnaHQgPSBlbC5kYXRhc2V0Lm9yaWdIZWlnaHQrJ3B4JzsKCQkJCQkKCQkJCQlpZihlbC5kYXRhc2V0Lm9yaWdXaWR0aCAtIGVsLmRhdGFzZXQuZmluYWxXaWR0aCl7CgkJCQkJCWVsLnN0eWxlLm1hcmdpblJpZ2h0ID0gLShlbC5kYXRhc2V0Lm9yaWdXaWR0aCAtIGVsLmRhdGFzZXQuaW50ZXJXaWR0aCkgKyAoZWwuZGF0YXNldC5vcmlnTWFyZ2luUmlnaHQgKiAxKSsncHgnOwoJCQkJCX0KCQkJCQkKCQkJCQlpZihlbC5kYXRhc2V0Lm9yaWdIZWlnaHQgLSBlbC5kYXRhc2V0LmZpbmFsSGVpZ2h0KXsKCQkJCQkJZWwuc3R5bGUubWFyZ2luQm90dG9tID0gLShlbC5kYXRhc2V0Lm9yaWdIZWlnaHQgLSBlbC5kYXRhc2V0LmludGVySGVpZ2h0KSArIChlbC5kYXRhc2V0Lm9yaWdNYXJnaW5Cb3R0b20gKiAxKSArJ3B4JzsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19wcmVwVGFyZ2V0cycsIDEpOwoJCX0sCgkJCgkJLyoqCgkJICogQW5pbWF0ZSBUYXJnZXRzCgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX2FuaW1hdGVUYXJnZXRzOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXM7CgoJCQlzZWxmLl9leGVjQWN0aW9uKCdfYW5pbWF0ZVRhcmdldHMnLCAwKTsKCQkJCgkJCXNlbGYuX3RhcmdldHNEb25lID0gMDsKCQkJc2VsZi5fdGFyZ2V0c0JvdW5kID0gMDsKCQkJCgkJCXNlbGYuXyRwYXJlbnQKCQkJCS5jc3Moc2VsZi5fZ2V0UHJlZml4ZWRDU1MoJ3BlcnNwZWN0aXZlJywgc2VsZi5hbmltYXRpb24ucGVyc3BlY3RpdmVEaXN0YW5jZSsncHgnKSkKCQkJCS5jc3Moc2VsZi5fZ2V0UHJlZml4ZWRDU1MoJ3BlcnNwZWN0aXZlLW9yaWdpbicsIHNlbGYuYW5pbWF0aW9uLnBlcnNwZWN0aXZlT3JpZ2luKSk7CgkJCQoJCQlpZihzZWxmLmFuaW1hdGlvbi5hbmltYXRlUmVzaXplQ29udGFpbmVyKXsKCQkJCXNlbGYuXyRwYXJlbnQKCQkJCQkuY3NzKHNlbGYuX2dldFByZWZpeGVkQ1NTKCd0cmFuc2l0aW9uJywnaGVpZ2h0ICcrc2VsZi5hbmltYXRpb24uZHVyYXRpb24rJ21zIGVhc2UnKSkKCQkJCQkuY3NzKCdoZWlnaHQnLHNlbGYuX25ld0hlaWdodCsncHgnKTsKCQkJfQoJCQkKCQkJZm9yKHZhciBpID0gMDsgaSA8IHNlbGYuXyR0b1Nob3cubGVuZ3RoOyBpKyspewoJCQkJdmFyIGVsID0gc2VsZi5fJHRvU2hvd1tpXSwKCQkJCQkkZWwgPSAkKGVsKSwKCQkJCQl0cmFuc2xhdGUgPSB7CgkJCQkJCXg6IGVsLmRhdGFzZXQuZmluYWxQb3NYIC0gZWwuZGF0YXNldC5pbnRlclBvc1gsCgkJCQkJCXk6IGVsLmRhdGFzZXQuZmluYWxQb3NZIC0gZWwuZGF0YXNldC5pbnRlclBvc1kKCQkJCQl9LAoJCQkJCWRlbGF5ID0gc2VsZi5fZ2V0RGVsYXkoaSksCgkJCQkJdG9TaG93Q1NTID0ge307CgkJCQkKCQkJCWVsLnN0eWxlLm9wYWNpdHkgPSAnJzsKCQkJCQoJCQkJZm9yKHZhciBqID0gMDsgaiA8IDI7IGorKyl7CgkJCQkJdmFyIGEgPSBqID09PSAwID8gYSA9IHNlbGYuX3ByZWZpeCA6ICcnOwoJCQkJCQoJCQkJCWlmKHNlbGYuX2ZmICYmIHNlbGYuX2ZmIDw9IDIwKXsKCQkJCQkJdG9TaG93Q1NTW2ErJ3RyYW5zaXRpb24tcHJvcGVydHknXSA9ICdhbGwnOwoJCQkJCQl0b1Nob3dDU1NbYSsndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nXSA9IHNlbGYuYW5pbWF0aW9uLmVhc2luZysnbXMnOwoJCQkJCQl0b1Nob3dDU1NbYSsndHJhbnNpdGlvbi1kdXJhdGlvbiddID0gc2VsZi5hbmltYXRpb24uZHVyYXRpb24rJ21zJzsKCQkJCQl9CgkJCQkJCgkJCQkJdG9TaG93Q1NTW2ErJ3RyYW5zaXRpb24tZGVsYXknXSA9IGRlbGF5Kydtcyc7CgkJCQkJdG9TaG93Q1NTW2ErJ3RyYW5zZm9ybSddID0gJ3RyYW5zbGF0ZSgnK3RyYW5zbGF0ZS54KydweCwnK3RyYW5zbGF0ZS55KydweCknOwoJCQkJfQoJCQkJCgkJCQlpZihzZWxmLmVmZmVjdHMudHJhbnNmb3JtIHx8IHNlbGYuZWZmZWN0cy5vcGFjaXR5KXsKCQkJCQlzZWxmLl9iaW5kVGFyZ2V0RG9uZSgkZWwpOwoJCQkJfQoJCQkJCgkJCQkoc2VsZi5fZmYgJiYgc2VsZi5fZmYgPD0gMjApID8gCgkJCQkJJGVsLmNzcyh0b1Nob3dDU1MpIDogCgkJCQkJJGVsLmNzcyhzZWxmLmVmZmVjdHMudHJhbnNpdGlvbikuY3NzKHRvU2hvd0NTUyk7CgkJCX0KCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCBzZWxmLl8kcHJlLmxlbmd0aDsgaSsrKXsKCQkJCXZhciBlbCA9IHNlbGYuXyRwcmVbaV0sCgkJCQkJJGVsID0gJChlbCksCgkJCQkJdHJhbnNsYXRlID0gewoJCQkJCQl4OiBlbC5kYXRhc2V0LmZpbmFsUG9zWCAtIGVsLmRhdGFzZXQuaW50ZXJQb3NYLAoJCQkJCQl5OiBlbC5kYXRhc2V0LmZpbmFsUG9zWSAtIGVsLmRhdGFzZXQuaW50ZXJQb3NZCgkJCQkJfSwKCQkJCQlkZWxheSA9IHNlbGYuX2dldERlbGF5KGkpOwoJCQkJCQoJCQkJaWYoISgKCQkJCQllbC5kYXRhc2V0LmZpbmFsUG9zWCA9PT0gZWwuZGF0YXNldC5vcmlnUG9zWCAmJgoJCQkJCWVsLmRhdGFzZXQuZmluYWxQb3NZID09PSBlbC5kYXRhc2V0Lm9yaWdQb3NZCgkJCQkpKXsKCQkJCQlzZWxmLl9iaW5kVGFyZ2V0RG9uZSgkZWwpOwoJCQkJfQoJCQkJCgkJCQkkZWwuY3NzKHNlbGYuX2dldFByZWZpeGVkQ1NTKCd0cmFuc2l0aW9uJywgJ2FsbCAnK3NlbGYuYW5pbWF0aW9uLmR1cmF0aW9uKydtcyAnK3NlbGYuYW5pbWF0aW9uLmVhc2luZysnICcrZGVsYXkrJ21zJykpOwoJCQkJJGVsLmNzcyhzZWxmLl9nZXRQcmVmaXhlZENTUygndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgnK3RyYW5zbGF0ZS54KydweCwnK3RyYW5zbGF0ZS55KydweCknKSk7CgkJCQkKCQkJCWlmKHNlbGYuYW5pbWF0aW9uLmFuaW1hdGVSZXNpemVUYXJnZXRzKXsKCQkJCQlpZihlbC5kYXRhc2V0Lm9yaWdXaWR0aCAtIGVsLmRhdGFzZXQuZmluYWxXaWR0aCAmJiBlbC5kYXRhc2V0LmZpbmFsV2lkdGggKiAxKXsKCQkJCQkJZWwuc3R5bGUud2lkdGggPSBlbC5kYXRhc2V0LmZpbmFsV2lkdGgrJ3B4JzsKCQkJCQkJZWwuc3R5bGUubWFyZ2luUmlnaHQgPSAtKGVsLmRhdGFzZXQuZmluYWxXaWR0aCAtIGVsLmRhdGFzZXQuaW50ZXJXaWR0aCkrKGVsLmRhdGFzZXQuZmluYWxNYXJnaW5SaWdodCAqIDEpKydweCc7CgkJCQkJfQoJCQkJCQoJCQkJCWlmKGVsLmRhdGFzZXQub3JpZ0hlaWdodCAtIGVsLmRhdGFzZXQuZmluYWxIZWlnaHQgJiYgZWwuZGF0YXNldC5maW5hbEhlaWdodCAqIDEpewoJCQkJCQllbC5zdHlsZS5oZWlnaHQgPSBlbC5kYXRhc2V0LmZpbmFsSGVpZ2h0KydweCc7CgkJCQkJCWVsLnN0eWxlLm1hcmdpbkJvdHRvbSA9IC0oZWwuZGF0YXNldC5maW5hbEhlaWdodCAtIGVsLmRhdGFzZXQuaW50ZXJIZWlnaHQpKyhlbC5kYXRhc2V0LmZpbmFsTWFyZ2luQm90dG9tICogMSkgKydweCc7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQlpZihzZWxmLl9jaGFuZ2luZ0NsYXNzKXsKCQkJCXNlbGYuXyRjb250YWluZXIKCQkJCQkucmVtb3ZlQ2xhc3Moc2VsZi5sYXlvdXQuY29udGFpbmVyQ2xhc3MpCgkJCQkJLmFkZENsYXNzKHNlbGYuX25ld0NsYXNzKTsKCQkJfQoJCQkKCQkJZm9yKHZhciBpID0gMDsgaSA8IHNlbGYuXyR0b0hpZGUubGVuZ3RoOyBpKyspewoJCQkJdmFyIGVsID0gc2VsZi5fJHRvSGlkZVtpXSwKCQkJCQkkZWwgPSAkKGVsKSwKCQkJCQlkZWxheSA9IHNlbGYuX2dldERlbGF5KGkpLAoJCQkJCXRvSGlkZUNTUyA9IHt9OwoKCQkJCWZvcih2YXIgaiA9IDA7IGo8MjsgaisrKXsKCQkJCQl2YXIgYSA9IGogPT09IDAgPyBhID0gc2VsZi5fcHJlZml4IDogJyc7CgoJCQkJCXRvSGlkZUNTU1thKyd0cmFuc2l0aW9uLWRlbGF5J10gPSBkZWxheSsnbXMnOwoJCQkJCXRvSGlkZUNTU1thKyd0cmFuc2Zvcm0nXSA9IHNlbGYuZWZmZWN0cy50cmFuc2Zvcm1PdXQ7CgkJCQkJdG9IaWRlQ1NTLm9wYWNpdHkgPSBzZWxmLmVmZmVjdHMub3BhY2l0eTsKCQkJCX0KCQkJCQoJCQkJJGVsLmNzcyhzZWxmLmVmZmVjdHMudHJhbnNpdGlvbikuY3NzKHRvSGlkZUNTUyk7CgkJCQoJCQkJaWYoc2VsZi5lZmZlY3RzLnRyYW5zZm9ybSB8fCBzZWxmLmVmZmVjdHMub3BhY2l0eSl7CgkJCQkJc2VsZi5fYmluZFRhcmdldERvbmUoJGVsKTsKCQkJCX07CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19hbmltYXRlVGFyZ2V0cycsIDEpOwoKCQl9LAoJCQoJCS8qKgoJCSAqIEJpbmQgVGFyZ2V0cyBUcmFuc2l0aW9uRW5kCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtvYmplY3R9ICRlbAoJCSAqLwoJCQoJCV9iaW5kVGFyZ2V0RG9uZTogZnVuY3Rpb24oJGVsKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJZWwgPSAkZWxbMF07CgkJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX2JpbmRUYXJnZXREb25lJywgMCwgYXJndW1lbnRzKTsKCQkJCgkJCWlmKCFlbC5kYXRhc2V0LmJvdW5kKXsKCQkJCQoJCQkJZWwuZGF0YXNldC5ib3VuZCA9IHRydWU7CgkJCQlzZWxmLl90YXJnZXRzQm91bmQrKzsKCQkJCgkJCQkkZWwub24oJ3dlYmtpdFRyYW5zaXRpb25FbmQubWl4SXRVcCB0cmFuc2l0aW9uZW5kLm1peEl0VXAnLGZ1bmN0aW9uKGUpewoJCQkJCWlmKAoJCQkJCQkoZS5vcmlnaW5hbEV2ZW50LnByb3BlcnR5TmFtZS5pbmRleE9mKCd0cmFuc2Zvcm0nKSA+IC0xIHx8IAoJCQkJCQllLm9yaWdpbmFsRXZlbnQucHJvcGVydHlOYW1lLmluZGV4T2YoJ29wYWNpdHknKSA+IC0xKSAmJgoJCQkJCQkkKGUub3JpZ2luYWxFdmVudC50YXJnZXQpLmlzKHNlbGYuc2VsZWN0b3JzLnRhcmdldCkKCQkJCQkpewoJCQkJCQkkZWwub2ZmKCcubWl4SXRVcCcpOwoJCQkJCQlkZWxldGUgZWwuZGF0YXNldC5ib3VuZDsKCQkJCQkJc2VsZi5fdGFyZ2V0RG9uZSgpOwoJCQkJCX0KCQkJCX0pOwoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdfYmluZFRhcmdldERvbmUnLCAxLCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogVGFyZ2V0IERvbmUKCQkgKiBAc2luY2UgMi4wLjAKCQkgKi8KCQkKCQlfdGFyZ2V0RG9uZTogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzOwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX3RhcmdldERvbmUnLCAwKTsKCQkJCgkJCXNlbGYuX3RhcmdldHNEb25lKys7CgkJCQoJCQkoc2VsZi5fdGFyZ2V0c0RvbmUgPT09IHNlbGYuX3RhcmdldHNCb3VuZCkgJiYgc2VsZi5fY2xlYW5VcCgpOwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignX3RhcmdldERvbmUnLCAxKTsKCQl9LAoJCQoJCS8qKgoJCSAqIENsZWFuIFVwCgkJICogQHNpbmNlIDIuMC4wCgkJICovCgkJCgkJX2NsZWFuVXA6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCXRhcmdldFN0eWxlcyA9IHNlbGYuYW5pbWF0aW9uLmFuaW1hdGVSZXNpemVUYXJnZXRzID8gCgkJCQkJJ3RyYW5zZm9ybSBvcGFjaXR5IHdpZHRoIGhlaWdodCBtYXJnaW4tYm90dG9tIG1hcmdpbi1yaWdodCcgOgoJCQkJCSd0cmFuc2Zvcm0gb3BhY2l0eScsCgkJCQl1bkJyYWtlID0gZnVuY3Rpb24oKXsKCQkJCQlzZWxmLl8kdGFyZ2V0cy5yZW1vdmVTdHlsZSgndHJhbnNpdGlvbicsIHNlbGYuX3ByZWZpeCk7CgkJCQl9OwoJCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19jbGVhblVwJywgMCk7CgkJCQoJCQkhc2VsZi5fY2hhbmdpbmdMYXlvdXQgPwoJCQkJc2VsZi5fJHNob3cuY3NzKCdkaXNwbGF5JyxzZWxmLmxheW91dC5kaXNwbGF5KSA6CgkJCQlzZWxmLl8kc2hvdy5jc3MoJ2Rpc3BsYXknLHNlbGYuX25ld0Rpc3BsYXkpOwoJCQkKCQkJc2VsZi5fJHRhcmdldHMuY3NzKHNlbGYuX2JyYWtlKTsKCQkJCgkJCXNlbGYuXyR0YXJnZXRzCgkJCQkucmVtb3ZlU3R5bGUodGFyZ2V0U3R5bGVzLCBzZWxmLl9wcmVmaXgpCgkJCQkucmVtb3ZlQXR0cignZGF0YS1pbnRlci1wb3MteCBkYXRhLWludGVyLXBvcy15IGRhdGEtZmluYWwtcG9zLXggZGF0YS1maW5hbC1wb3MteSBkYXRhLW9yaWctcG9zLXggZGF0YS1vcmlnLXBvcy15IGRhdGEtb3JpZy1oZWlnaHQgZGF0YS1vcmlnLXdpZHRoIGRhdGEtZmluYWwtaGVpZ2h0IGRhdGEtZmluYWwtd2lkdGggZGF0YS1pbnRlci13aWR0aCBkYXRhLWludGVyLWhlaWdodCBkYXRhLW9yaWctbWFyZ2luLXJpZ2h0IGRhdGEtb3JpZy1tYXJnaW4tYm90dG9tIGRhdGEtaW50ZXItbWFyZ2luLXJpZ2h0IGRhdGEtaW50ZXItbWFyZ2luLWJvdHRvbSBkYXRhLWZpbmFsLW1hcmdpbi1yaWdodCBkYXRhLWZpbmFsLW1hcmdpbi1ib3R0b20nKTsKCQkJCQoJCQlzZWxmLl8kaGlkZS5yZW1vdmVTdHlsZSgnZGlzcGxheScpOwoJCQkKCQkJc2VsZi5fJHBhcmVudC5yZW1vdmVTdHlsZSgnaGVpZ2h0IHRyYW5zaXRpb24gcGVyc3BlY3RpdmUtZGlzdGFuY2UgcGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUtb3JpZ2luLXggcGVyc3BlY3RpdmUtb3JpZ2luLXkgcGVyc3BlY3RpdmUtb3JpZ2luIHBlcnNwZWN0aXZlT3JpZ2luJywgc2VsZi5fcHJlZml4KTsKCQkJCgkJCWlmKHNlbGYuX3NvcnRpbmcpewoJCQkJc2VsZi5fcHJpbnRTb3J0KCk7CgkJCQlzZWxmLl9hY3RpdmVTb3J0ID0gc2VsZi5fbmV3U29ydFN0cmluZzsKCQkJCXNlbGYuX3NvcnRpbmcgPSBmYWxzZTsKCQkJfQoJCQkKCQkJaWYoc2VsZi5fY2hhbmdpbmdMYXlvdXQpewoJCQkJaWYoc2VsZi5fY2hhbmdpbmdEaXNwbGF5KXsKCQkJCQlzZWxmLmxheW91dC5kaXNwbGF5ID0gc2VsZi5fbmV3RGlzcGxheTsKCQkJCQlzZWxmLl9jaGFuZ2luZ0Rpc3BsYXkgPSBmYWxzZTsKCQkJCX0KCQkJCQoJCQkJaWYoc2VsZi5fY2hhbmdpbmdDbGFzcyl7CgkJCQkJc2VsZi5fJHBhcmVudC5yZW1vdmVDbGFzcyhzZWxmLmxheW91dC5jb250YWluZXJDbGFzcykuYWRkQ2xhc3Moc2VsZi5fbmV3Q2xhc3MpOwoJCQkJCXNlbGYubGF5b3V0LmNvbnRhaW5lckNsYXNzID0gc2VsZi5fbmV3Q2xhc3M7CgkJCQkJc2VsZi5fY2hhbmdpbmdDbGFzcyA9IGZhbHNlOwoJCQkJfQoJCQkJCgkJCQlzZWxmLl9jaGFuZ2luZ0xheW91dCA9IGZhbHNlOwoJCQl9CgkJCQoJCQlzZWxmLl9yZWZyZXNoKCk7CgkJCQoJCQlzZWxmLl9idWlsZFN0YXRlKCk7CgkJCQoJCQlpZihzZWxmLl9zdGF0ZS5mYWlsKXsKCQkJCXNlbGYuXyRjb250YWluZXIuYWRkQ2xhc3Moc2VsZi5sYXlvdXQuY29udGFpbmVyQ2xhc3NGYWlsKTsKCQkJfQoJCQkKCQkJc2VsZi5fJHNob3cgPSAkKCk7CgkJCXNlbGYuXyRoaWRlID0gJCgpOwoJCQkKCQkJaWYod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSl7CgkJCQlyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodW5CcmFrZSk7CgkJCX0KCQkJCgkJCXNlbGYuX21peGluZyA9IGZhbHNlOwoJCQkKCQkJaWYodHlwZW9mIHNlbGYuY2FsbGJhY2tzLl91c2VyID09PSAnZnVuY3Rpb24nKXsKCQkJCXNlbGYuY2FsbGJhY2tzLl91c2VyLmNhbGwoc2VsZi5fZG9tTm9kZSwgc2VsZi5fc3RhdGUsIHNlbGYpOwoJCQl9CgkJCQoJCQlpZih0eXBlb2Ygc2VsZi5jYWxsYmFja3Mub25NaXhFbmQgPT09ICdmdW5jdGlvbicpewoJCQkJc2VsZi5jYWxsYmFja3Mub25NaXhFbmQuY2FsbChzZWxmLl9kb21Ob2RlLCBzZWxmLl9zdGF0ZSwgc2VsZik7CgkJCX0KCQkJCgkJCXNlbGYuXyRjb250YWluZXIudHJpZ2dlcignbWl4RW5kJywgW3NlbGYuX3N0YXRlLCBzZWxmXSk7CgkJCQoJCQlpZihzZWxmLl9zdGF0ZS5mYWlsKXsKCQkJCSh0eXBlb2Ygc2VsZi5jYWxsYmFja3Mub25NaXhGYWlsID09PSAnZnVuY3Rpb24nKSAmJiBzZWxmLmNhbGxiYWNrcy5vbk1peEZhaWwuY2FsbChzZWxmLl9kb21Ob2RlLCBzZWxmLl9zdGF0ZSwgc2VsZik7CgkJCQlzZWxmLl8kY29udGFpbmVyLnRyaWdnZXIoJ21peEZhaWwnLCBbc2VsZi5fc3RhdGUsIHNlbGZdKTsKCQkJfQoJCQkKCQkJaWYoc2VsZi5fbG9hZGluZyl7CgkJCQkodHlwZW9mIHNlbGYuY2FsbGJhY2tzLm9uTWl4TG9hZCA9PT0gJ2Z1bmN0aW9uJykgJiYgc2VsZi5jYWxsYmFja3Mub25NaXhMb2FkLmNhbGwoc2VsZi5fZG9tTm9kZSwgc2VsZi5fc3RhdGUsIHNlbGYpOwoJCQkJc2VsZi5fJGNvbnRhaW5lci50cmlnZ2VyKCdtaXhMb2FkJywgW3NlbGYuX3N0YXRlLCBzZWxmXSk7CgkJCX0KCQkJCgkJCWlmKHNlbGYuX3F1ZXVlLmxlbmd0aCl7CgkJCQlzZWxmLl9leGVjQWN0aW9uKCdfcXVldWUnLCAwKTsKCQkJCQoJCQkJc2VsZi5tdWx0aU1peChzZWxmLl9xdWV1ZVswXVswXSxzZWxmLl9xdWV1ZVswXVsxXSxzZWxmLl9xdWV1ZVswXVsyXSk7CgkJCQlzZWxmLl9xdWV1ZS5zcGxpY2UoMCwgMSk7CgkJCX0KCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ19jbGVhblVwJywgMSk7CgkJCQoJCQlzZWxmLl9sb2FkaW5nID0gZmFsc2U7CgkJfSwKCQkKCQkvKioKCQkgKiBHZXQgUHJlZml4ZWQgQ1NTCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5CgkJICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlCgkJICogQHBhcmFtIHtib29sZWFufSBwcmVmaXhWYWx1ZQoJCSAqIEByZXR1cm4ge29iamVjdH0gc3R5bGVzCgkJICovCgkJCgkJX2dldFByZWZpeGVkQ1NTOiBmdW5jdGlvbihwcm9wZXJ0eSwgdmFsdWUsIHByZWZpeFZhbHVlKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJc3R5bGVzID0ge30sCgkJCQlwcmVmaXggPSAnJywKCQkJCWkgPSAtMTsKCQkKCQkJZm9yKGkgPSAwOyBpIDwgMjsgaSsrKXsKCQkJCXByZWZpeCA9IGkgPT09IDAgPyBzZWxmLl9wcmVmaXggOiAnJzsKCQkJCXByZWZpeFZhbHVlID8gc3R5bGVzW3ByZWZpeCtwcm9wZXJ0eV0gPSBwcmVmaXgrdmFsdWUgOiBzdHlsZXNbcHJlZml4K3Byb3BlcnR5XSA9IHZhbHVlOwoJCQl9CgkJCQoJCQlyZXR1cm4gc2VsZi5fZXhlY0ZpbHRlcignX2dldFByZWZpeGVkQ1NTJywgc3R5bGVzLCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogR2V0IERlbGF5CgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtudW1iZXJ9IGkKCQkgKiBAcmV0dXJuIHtudW1iZXJ9IGRlbGF5CgkJICovCgkJCgkJX2dldERlbGF5OiBmdW5jdGlvbihpKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJbiA9IHR5cGVvZiBzZWxmLmFuaW1hdGlvbi5zdGFnZ2VyU2VxdWVuY2UgPT09ICdmdW5jdGlvbicgPyBzZWxmLmFuaW1hdGlvbi5zdGFnZ2VyU2VxdWVuY2UuY2FsbChzZWxmLl9kb21Ob2RlLCBpLCBzZWxmLl9zdGF0ZSkgOiBpLAoJCQkJZGVsYXkgPSBzZWxmLmFuaW1hdGlvbi5zdGFnZ2VyID8gbiAqIHNlbGYuYW5pbWF0aW9uLnN0YWdnZXJEdXJhdGlvbiA6IDA7CgkJCQkKCQkJcmV0dXJuIHNlbGYuX2V4ZWNGaWx0ZXIoJ19nZXREZWxheScsIGRlbGF5LCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogUGFyc2UgTXVsdGlNaXggQXJndW1lbnRzCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHthcnJheX0gYXJncwoJCSAqIEByZXR1cm4ge29iamVjdH0gb3V0cHV0CgkJICovCgkJCgkJX3BhcnNlTXVsdGlNaXhBcmdzOiBmdW5jdGlvbihhcmdzKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJb3V0cHV0ID0gewoJCQkJCWNvbW1hbmQ6IG51bGwsCgkJCQkJYW5pbWF0ZTogc2VsZi5hbmltYXRpb24uZW5hYmxlLAoJCQkJCWNhbGxiYWNrOiBudWxsCgkJCQl9OwoJCQkJCgkJCWZvcih2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKXsKCQkJCXZhciBhcmcgPSBhcmdzW2ldOwoKCQkJCWlmKGFyZyAhPT0gbnVsbCl7CgkJCQkJaWYodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpewoJCQkJCQlvdXRwdXQuY29tbWFuZCA9IGFyZzsKCQkJCQl9IGVsc2UgaWYodHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nKXsKCQkJCQkJb3V0cHV0LmFuaW1hdGUgPSBhcmc7CgkJCQkJfSBlbHNlIGlmKHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbicpewoJCQkJCQlvdXRwdXQuY2FsbGJhY2sgPSBhcmc7CgkJCQkJfQoJCQkJfQoJCQl9CgkJCQoJCQlyZXR1cm4gc2VsZi5fZXhlY0ZpbHRlcignX3BhcnNlTXVsdGlNaXhBcmdzJywgb3V0cHV0LCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogUGFyc2UgSW5zZXJ0IEFyZ3VtZW50cwoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqIEBwYXJhbSB7YXJyYXl9IGFyZ3MKCQkgKiBAcmV0dXJuIHtvYmplY3R9IG91dHB1dAoJCSAqLwoJCQoJCV9wYXJzZUluc2VydEFyZ3M6IGZ1bmN0aW9uKGFyZ3MpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlvdXRwdXQgPSB7CgkJCQkJaW5kZXg6IDAsCgkJCQkJJG9iamVjdDogJCgpLAoJCQkJCW11bHRpTWl4OiB7ZmlsdGVyOiBzZWxmLl9zdGF0ZS5hY3RpdmVGaWx0ZXJ9LAoJCQkJCWNhbGxiYWNrOiBudWxsCgkJCQl9OwoJCQkKCQkJZm9yKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspewoJCQkJdmFyIGFyZyA9IGFyZ3NbaV07CgkJCQkKCQkJCWlmKHR5cGVvZiBhcmcgPT09ICdudW1iZXInKXsKCQkJCQlvdXRwdXQuaW5kZXggPSBhcmc7CgkJCQl9IGVsc2UgaWYodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnIGluc3RhbmNlb2YgJCl7CgkJCQkJb3V0cHV0LiRvYmplY3QgPSBhcmc7CgkJCQl9IGVsc2UgaWYodHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgc2VsZi5faGVscGVycy5faXNFbGVtZW50KGFyZykpewoJCQkJCW91dHB1dC4kb2JqZWN0ID0gJChhcmcpOwoJCQkJfSBlbHNlIGlmKHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmIGFyZyAhPT0gbnVsbCl7CgkJCQkJb3V0cHV0Lm11bHRpTWl4ID0gYXJnOwoJCQkJfSBlbHNlIGlmKHR5cGVvZiBhcmcgPT09ICdib29sZWFuJyAmJiAhYXJnKXsKCQkJCQlvdXRwdXQubXVsdGlNaXggPSBmYWxzZTsKCQkJCX0gZWxzZSBpZih0eXBlb2YgYXJnID09PSAnZnVuY3Rpb24nKXsKCQkJCQlvdXRwdXQuY2FsbGJhY2sgPSBhcmc7CgkJCQl9CgkJCX0KCQkJCgkJCXJldHVybiBzZWxmLl9leGVjRmlsdGVyKCdfcGFyc2VJbnNlcnRBcmdzJywgb3V0cHV0LCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogRXhlY3V0ZSBBY3Rpb24KCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kTmFtZQoJCSAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNQb3N0CgkJICogQHBhcmFtIHthcnJheX0gYXJncwoJCSAqLwoJCQoJCV9leGVjQWN0aW9uOiBmdW5jdGlvbihtZXRob2ROYW1lLCBpc1Bvc3QsIGFyZ3MpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQljb250ZXh0ID0gaXNQb3N0ID8gJ3Bvc3QnIDogJ3ByZSc7CgoJCQlpZighc2VsZi5fYWN0aW9ucy5pc0VtcHR5T2JqZWN0ICYmIHNlbGYuX2FjdGlvbnMuaGFzT3duUHJvcGVydHkobWV0aG9kTmFtZSkpewoJCQkJZm9yKHZhciBrZXkgaW4gc2VsZi5fYWN0aW9uc1ttZXRob2ROYW1lXVtjb250ZXh0XSl7CgkJCQkJc2VsZi5fYWN0aW9uc1ttZXRob2ROYW1lXVtjb250ZXh0XVtrZXldLmNhbGwoc2VsZiwgYXJncyk7CgkJCQl9CgkJCX0KCQl9LAoJCQoJCS8qKgoJCSAqIEV4ZWN1dGUgRmlsdGVyCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtzdHJpbmd9IG1ldGhvZE5hbWUKCQkgKiBAcGFyYW0ge21peGVkfSB2YWx1ZQoJCSAqIEByZXR1cm4ge21peGVkfSB2YWx1ZQoJCSAqLwoJCQoJCV9leGVjRmlsdGVyOiBmdW5jdGlvbihtZXRob2ROYW1lLCB2YWx1ZSwgYXJncyl7CgkJCXZhciBzZWxmID0gdGhpczsKCQkJCgkJCWlmKCFzZWxmLl9maWx0ZXJzLmlzRW1wdHlPYmplY3QgJiYgc2VsZi5fZmlsdGVycy5oYXNPd25Qcm9wZXJ0eShtZXRob2ROYW1lKSl7CgkJCQlmb3IodmFyIGtleSBpbiBzZWxmLl9maWx0ZXJzW21ldGhvZE5hbWVdKXsKCQkJCQlyZXR1cm4gc2VsZi5fZmlsdGVyc1ttZXRob2ROYW1lXVtrZXldLmNhbGwoc2VsZiwgYXJncyk7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQlyZXR1cm4gdmFsdWU7CgkJCX0KCQl9LAoJCQoJCS8qIEhlbHBlcnMKCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgoJCV9oZWxwZXJzOiB7CgkJCQoJCQkvKioKCQkJICogQ2FtZWxDYXNlCgkJCSAqIEBzaW5jZSAyLjAuMAoJCQkgKiBAcGFyYW0ge3N0cmluZ30KCQkJICogQHJldHVybiB7c3RyaW5nfQoJCQkgKi8KCgkJCV9jYW1lbENhc2U6IGZ1bmN0aW9uKHN0cmluZyl7CgkJCQlyZXR1cm4gc3RyaW5nLnJlcGxhY2UoLy0oW2Etel0pL2csIGZ1bmN0aW9uKGcpewoJCQkJCQlyZXR1cm4gZ1sxXS50b1VwcGVyQ2FzZSgpOwoJCQkJfSk7CgkJCX0sCgkJCQoJCQkvKioKCQkJICogSXMgRWxlbWVudAoJCQkgKiBAc2luY2UgMi4xLjMKCQkJICogQHBhcmFtIHtvYmplY3R9IGVsZW1lbnQgdG8gdGVzdAoJCQkgKiBAcmV0dXJuIHtib29sZWFufQoJCQkgKi8KCQkJCgkJCV9pc0VsZW1lbnQ6IGZ1bmN0aW9uKGVsKXsKCQkJCWlmKHdpbmRvdy5IVE1MRWxlbWVudCl7CgkJCQkJcmV0dXJuIGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7CgkJCQl9IGVsc2UgewoJCQkJCXJldHVybiAoCgkJCQkJCWVsICE9PSBudWxsICYmIAoJCQkJCQllbC5ub2RlVHlwZSA9PT0gMSAmJgoJCQkJCQllbC5ub2RlTmFtZSA9PT0gJ3N0cmluZycKCQkJCQkpOwoJCQkJfQoJCQl9CgkJfSwKCQkKCQkvKiBQdWJsaWMgTWV0aG9kcwoJCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCQkKCQkvKioKCQkgKiBJcyBNaXhpbmcKCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcmV0dXJuIHtib29sZWFufQoJCSAqLwoJCQoJCWlzTWl4aW5nOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQoJCQlyZXR1cm4gc2VsZi5fZXhlY0ZpbHRlcignaXNNaXhpbmcnLCBzZWxmLl9taXhpbmcpOwoJCX0sCgkJCgkJLyoqCgkJICogRmlsdGVyIChwdWJsaWMpCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHthcnJheX0gYXJndW1lbnRzCgkJICovCgkJCgkJZmlsdGVyOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlhcmdzID0gc2VsZi5fcGFyc2VNdWx0aU1peEFyZ3MoYXJndW1lbnRzKTsKCgkJCXNlbGYuX2NsaWNraW5nICYmIChzZWxmLl90b2dnbGVTdHJpbmcgPSAnJyk7CgkJCQoJCQlzZWxmLm11bHRpTWl4KHtmaWx0ZXI6IGFyZ3MuY29tbWFuZH0sIGFyZ3MuYW5pbWF0ZSwgYXJncy5jYWxsYmFjayk7CgkJfSwKCQkKCQkvKioKCQkgKiBTb3J0IChwdWJsaWMpCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHthcnJheX0gYXJndW1lbnRzCgkJICovCgkJCgkJc29ydDogZnVuY3Rpb24oKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJYXJncyA9IHNlbGYuX3BhcnNlTXVsdGlNaXhBcmdzKGFyZ3VtZW50cyk7CgoJCQlzZWxmLm11bHRpTWl4KHtzb3J0OiBhcmdzLmNvbW1hbmR9LCBhcmdzLmFuaW1hdGUsIGFyZ3MuY2FsbGJhY2spOwoJCX0sCgoJCS8qKgoJCSAqIENoYW5nZSBMYXlvdXQgKHB1YmxpYykKCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcGFyYW0ge2FycmF5fSBhcmd1bWVudHMKCQkgKi8KCQkKCQljaGFuZ2VMYXlvdXQ6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCWFyZ3MgPSBzZWxmLl9wYXJzZU11bHRpTWl4QXJncyhhcmd1bWVudHMpOwoJCQkJCgkJCXNlbGYubXVsdGlNaXgoe2NoYW5nZUxheW91dDogYXJncy5jb21tYW5kfSwgYXJncy5hbmltYXRlLCBhcmdzLmNhbGxiYWNrKTsKCQl9LAoJCQoJCS8qKgoJCSAqIE11bHRpTWl4CgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHthcnJheX0gYXJndW1lbnRzCgkJICovCgkJCgkJbXVsdGlNaXg6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCWFyZ3MgPSBzZWxmLl9wYXJzZU11bHRpTWl4QXJncyhhcmd1bWVudHMpOwoKCQkJc2VsZi5fZXhlY0FjdGlvbignbXVsdGlNaXgnLCAwLCBhcmd1bWVudHMpOwoKCQkJaWYoIXNlbGYuX21peGluZyl7CgkJCQlpZihzZWxmLmNvbnRyb2xzLmVuYWJsZSAmJiAhc2VsZi5fY2xpY2tpbmcpewoJCQkJCXNlbGYuY29udHJvbHMudG9nZ2xlRmlsdGVyQnV0dG9ucyAmJiBzZWxmLl9idWlsZFRvZ2dsZUFycmF5KCk7CgkJCQkJc2VsZi5fdXBkYXRlQ29udHJvbHMoYXJncy5jb21tYW5kLCBzZWxmLmNvbnRyb2xzLnRvZ2dsZUZpbHRlckJ1dHRvbnMpOwoJCQkJfQoJCQkJCgkJCQkoc2VsZi5fcXVldWUubGVuZ3RoIDwgMikgJiYgKHNlbGYuX2NsaWNraW5nID0gZmFsc2UpOwoJCQkKCQkJCWRlbGV0ZSBzZWxmLmNhbGxiYWNrcy5fdXNlcjsKCQkJCWlmKGFyZ3MuY2FsbGJhY2spIHNlbGYuY2FsbGJhY2tzLl91c2VyID0gYXJncy5jYWxsYmFjazsKCQkJCgkJCQl2YXIgc29ydCA9IGFyZ3MuY29tbWFuZC5zb3J0LAoJCQkJCWZpbHRlciA9IGFyZ3MuY29tbWFuZC5maWx0ZXIsCgkJCQkJY2hhbmdlTGF5b3V0ID0gYXJncy5jb21tYW5kLmNoYW5nZUxheW91dDsKCgkJCQlzZWxmLl9yZWZyZXNoKCk7CgoJCQkJaWYoc29ydCl7CgkJCQkJc2VsZi5fbmV3U29ydCA9IHNlbGYuX3BhcnNlU29ydChzb3J0KTsKCQkJCQlzZWxmLl9uZXdTb3J0U3RyaW5nID0gc29ydDsKCQkJCQkKCQkJCQlzZWxmLl9zb3J0aW5nID0gdHJ1ZTsKCQkJCQlzZWxmLl9zb3J0KCk7CgkJCQl9CgkJCQkKCQkJCWlmKGZpbHRlciAhPT0gdW5kZil7CgkJCQkJZmlsdGVyID0gKGZpbHRlciA9PT0gJ2FsbCcpID8gc2VsZi5zZWxlY3RvcnMudGFyZ2V0IDogZmlsdGVyOwoJCgkJCQkJc2VsZi5fYWN0aXZlRmlsdGVyID0gZmlsdGVyOwoJCQkJfQoJCQkJCgkJCQlzZWxmLl9maWx0ZXIoKTsKCQkJCQoJCQkJaWYoY2hhbmdlTGF5b3V0KXsKCQkJCQlzZWxmLl9uZXdEaXNwbGF5ID0gKHR5cGVvZiBjaGFuZ2VMYXlvdXQgPT09ICdzdHJpbmcnKSA/IGNoYW5nZUxheW91dCA6IGNoYW5nZUxheW91dC5kaXNwbGF5IHx8IHNlbGYubGF5b3V0LmRpc3BsYXk7CgkJCQkJc2VsZi5fbmV3Q2xhc3MgPSBjaGFuZ2VMYXlvdXQuY29udGFpbmVyQ2xhc3MgfHwgJyc7CgoJCQkJCWlmKAoJCQkJCQlzZWxmLl9uZXdEaXNwbGF5ICE9PSBzZWxmLmxheW91dC5kaXNwbGF5IHx8CgkJCQkJCXNlbGYuX25ld0NsYXNzICE9PSBzZWxmLmxheW91dC5jb250YWluZXJDbGFzcwoJCQkJCSl7CgkJCQkJCXNlbGYuX2NoYW5naW5nTGF5b3V0ID0gdHJ1ZTsKCQkJCQkJCgkJCQkJCXNlbGYuX2NoYW5naW5nQ2xhc3MgPSAoc2VsZi5fbmV3Q2xhc3MgIT09IHNlbGYubGF5b3V0LmNvbnRhaW5lckNsYXNzKTsKCQkJCQkJc2VsZi5fY2hhbmdpbmdEaXNwbGF5ID0gKHNlbGYuX25ld0Rpc3BsYXkgIT09IHNlbGYubGF5b3V0LmRpc3BsYXkpOwoJCQkJCX0KCQkJCX0KCQkJCQoJCQkJc2VsZi5fJHRhcmdldHMuY3NzKHNlbGYuX2JyYWtlKTsKCQkJCQoJCQkJc2VsZi5fZ29NaXgoYXJncy5hbmltYXRlIF4gc2VsZi5hbmltYXRpb24uZW5hYmxlID8gYXJncy5hbmltYXRlIDogc2VsZi5hbmltYXRpb24uZW5hYmxlKTsKCQkJCQoJCQkJc2VsZi5fZXhlY0FjdGlvbignbXVsdGlNaXgnLCAxLCBhcmd1bWVudHMpOwoJCQkJCgkJCX0gZWxzZSB7CgkJCQlpZihzZWxmLmFuaW1hdGlvbi5xdWV1ZSAmJiBzZWxmLl9xdWV1ZS5sZW5ndGggPCBzZWxmLmFuaW1hdGlvbi5xdWV1ZUxpbWl0KXsKCQkJCQlzZWxmLl9xdWV1ZS5wdXNoKGFyZ3VtZW50cyk7CgkJCQkJCgkJCQkJKHNlbGYuY29udHJvbHMuZW5hYmxlICYmICFzZWxmLl9jbGlja2luZykgJiYgc2VsZi5fdXBkYXRlQ29udHJvbHMoYXJncy5jb21tYW5kKTsKCQkJCQkKCQkJCQlzZWxmLl9leGVjQWN0aW9uKCdtdWx0aU1peFF1ZXVlJywgMSwgYXJndW1lbnRzKTsKCQkJCQkKCQkJCX0gZWxzZSB7CgkJCQkJaWYodHlwZW9mIHNlbGYuY2FsbGJhY2tzLm9uTWl4QnVzeSA9PT0gJ2Z1bmN0aW9uJyl7CgkJCQkJCXNlbGYuY2FsbGJhY2tzLm9uTWl4QnVzeS5jYWxsKHNlbGYuX2RvbU5vZGUsIHNlbGYuX3N0YXRlLCBzZWxmKTsKCQkJCQl9CgkJCQkJc2VsZi5fJGNvbnRhaW5lci50cmlnZ2VyKCdtaXhCdXN5JywgW3NlbGYuX3N0YXRlLCBzZWxmXSk7CgkJCQkJCgkJCQkJc2VsZi5fZXhlY0FjdGlvbignbXVsdGlNaXhCdXN5JywgMSwgYXJndW1lbnRzKTsKCQkJCX0KCQkJfQoJCX0sCgkJCgkJLyoqCgkJICogSW5zZXJ0CgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHthcnJheX0gYXJndW1lbnRzCgkJICovCgkJCgkJaW5zZXJ0OiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlhcmdzID0gc2VsZi5fcGFyc2VJbnNlcnRBcmdzKGFyZ3VtZW50cyksCgkJCQljYWxsYmFjayA9ICh0eXBlb2YgYXJncy5jYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgPyBhcmdzLmNhbGxiYWNrIDogbnVsbCwKCQkJCWZyYWcgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksCgkJCQl0YXJnZXQgPSAoZnVuY3Rpb24oKXsKCQkJCQlzZWxmLl9yZWZyZXNoKCk7CgkJCQkJCgkJCQkJaWYoc2VsZi5fJHRhcmdldHMubGVuZ3RoKXsKCQkJCQkJcmV0dXJuIChhcmdzLmluZGV4IDwgc2VsZi5fJHRhcmdldHMubGVuZ3RoIHx8ICFzZWxmLl8kdGFyZ2V0cy5sZW5ndGgpID8gCgkJCQkJCQlzZWxmLl8kdGFyZ2V0c1thcmdzLmluZGV4XSA6CgkJCQkJCQlzZWxmLl8kdGFyZ2V0c1tzZWxmLl8kdGFyZ2V0cy5sZW5ndGgtMV0ubmV4dEVsZW1lbnRTaWJsaW5nOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXJldHVybiBzZWxmLl8kcGFyZW50WzBdLmNoaWxkcmVuWzBdOwoJCQkJCX0KCQkJCX0pKCk7CgkJCQkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdpbnNlcnQnLCAwLCBhcmd1bWVudHMpOwoJCQkJCgkJCWlmKGFyZ3MuJG9iamVjdCl7CgkJCQlmb3IodmFyIGkgPSAwOyBpIDwgYXJncy4kb2JqZWN0Lmxlbmd0aDsgaSsrKXsKCQkJCQl2YXIgZWwgPSBhcmdzLiRvYmplY3RbaV07CgkJCQkJCgkJCQkJZnJhZy5hcHBlbmRDaGlsZChlbCk7CgkJCQkJZnJhZy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnICcpKTsKCQkJCX0KCgkJCQlzZWxmLl8kcGFyZW50WzBdLmluc2VydEJlZm9yZShmcmFnLCB0YXJnZXQpOwoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdpbnNlcnQnLCAxLCBhcmd1bWVudHMpOwoJCQkKCQkJaWYodHlwZW9mIGFyZ3MubXVsdGlNaXggPT09ICdvYmplY3QnKXsKCQkJCXNlbGYubXVsdGlNaXgoYXJncy5tdWx0aU1peCwgY2FsbGJhY2spOwoJCQl9CgkJfSwKCgkJLyoqCgkJICogUHJlcGVuZAoJCSAqIEBzaW5jZSAyLjAuMAoJCSAqIEBwYXJhbSB7YXJyYXl9IGFyZ3VtZW50cwoJCSAqLwoJCQoJCXByZXBlbmQ6IGZ1bmN0aW9uKCl7CgkJCXZhciBzZWxmID0gdGhpcywKCQkJCWFyZ3MgPSBzZWxmLl9wYXJzZUluc2VydEFyZ3MoYXJndW1lbnRzKTsKCQkJCQoJCQlzZWxmLmluc2VydCgwLCBhcmdzLiRvYmplY3QsIGFyZ3MubXVsdGlNaXgsIGFyZ3MuY2FsbGJhY2spOwoJCX0sCgkJCgkJLyoqCgkJICogQXBwZW5kCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHthcnJheX0gYXJndW1lbnRzCgkJICovCgkJCgkJYXBwZW5kOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlhcmdzID0gc2VsZi5fcGFyc2VJbnNlcnRBcmdzKGFyZ3VtZW50cyk7CgkJCgkJCXNlbGYuaW5zZXJ0KHNlbGYuX3N0YXRlLnRvdGFsVGFyZ2V0cywgYXJncy4kb2JqZWN0LCBhcmdzLm11bHRpTWl4LCBhcmdzLmNhbGxiYWNrKTsKCQl9LAoJCQoJCS8qKgoJCSAqIEdldCBPcHRpb24KCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nCgkJICogQHJldHVybiB7bWl4ZWR9IHZhbHVlCgkJICovCgkJCgkJZ2V0T3B0aW9uOiBmdW5jdGlvbihzdHJpbmcpewoJCQl2YXIgc2VsZiA9IHRoaXMsCgkJCQlnZXRQcm9wZXJ0eSA9IGZ1bmN0aW9uKG9iaiwgcHJvcCl7CgkJCQkJdmFyIHBhcnRzID0gcHJvcC5zcGxpdCgnLicpLAoJCQkJCQlsYXN0ID0gcGFydHMucG9wKCksCgkJCQkJCWwgPSBwYXJ0cy5sZW5ndGgsCgkJCQkJCWkgPSAxLAoJCQkJCQljdXJyZW50ID0gcGFydHNbMF0gfHwgcHJvcDsKCgkJCQkJd2hpbGUoKG9iaiA9IG9ialtjdXJyZW50XSkgJiYgaSA8IGwpewoJCQkJCQljdXJyZW50ID0gcGFydHNbaV07CgkJCQkJCWkrKzsKCQkJCQl9CgoJCQkJCWlmKG9iaiAhPT0gdW5kZil7CgkJCQkJCXJldHVybiBvYmpbbGFzdF0gIT09IHVuZGYgPyBvYmpbbGFzdF0gOiBvYmo7CgkJCQkJfQoJCQkJfTsKCgkJCXJldHVybiBzdHJpbmcgPyBzZWxmLl9leGVjRmlsdGVyKCdnZXRPcHRpb24nLCBnZXRQcm9wZXJ0eShzZWxmLCBzdHJpbmcpLCBhcmd1bWVudHMpIDogc2VsZjsKCQl9LAoJCQoJCS8qKgoJCSAqIFNldCBPcHRpb25zCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZwoJCSAqLwoJCQoJCXNldE9wdGlvbnM6IGZ1bmN0aW9uKGNvbmZpZyl7CgkJCXZhciBzZWxmID0gdGhpczsKCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ3NldE9wdGlvbnMnLCAwLCBhcmd1bWVudHMpOwoJCQkKCQkJdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgJC5leHRlbmQodHJ1ZSwgc2VsZiwgY29uZmlnKTsKCQkJCgkJCXNlbGYuX2V4ZWNBY3Rpb24oJ3NldE9wdGlvbnMnLCAxLCBhcmd1bWVudHMpOwoJCX0sCgkJCgkJLyoqCgkJICogR2V0IFN0YXRlCgkJICogQHNpbmNlIDIuMC4wCgkJICogQHJldHVybiB7b2JqZWN0fSBzdGF0ZQoJCSAqLwoJCQoJCWdldFN0YXRlOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQoJCQlyZXR1cm4gc2VsZi5fZXhlY0ZpbHRlcignZ2V0U3RhdGUnLCBzZWxmLl9zdGF0ZSwgc2VsZik7CgkJfSwKCQkKCQkvKioKCQkgKiBGb3JjZSBSZWZyZXNoCgkJICogQHNpbmNlIDIuMS4yCgkJICovCgkJCgkJZm9yY2VSZWZyZXNoOiBmdW5jdGlvbigpewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCQoJCQlzZWxmLl9yZWZyZXNoKGZhbHNlLCB0cnVlKTsKCQl9LAoJCQoJCS8qKgoJCSAqIERlc3Ryb3kKCQkgKiBAc2luY2UgMi4wLjAKCQkgKiBAcGFyYW0ge2Jvb2xlYW59IGhpZGVBbGwKCQkgKi8KCQkKCQlkZXN0cm95OiBmdW5jdGlvbihoaWRlQWxsKXsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJZmlsdGVycyA9ICQuTWl4SXRVcC5wcm90b3R5cGUuX2JvdW5kLl9maWx0ZXIsCgkJCQlzb3J0cyA9ICQuTWl4SXRVcC5wcm90b3R5cGUuX2JvdW5kLl9zb3J0OwoJCQkKCQkJc2VsZi5fZXhlY0FjdGlvbignZGVzdHJveScsIDAsIGFyZ3VtZW50cyk7CgkJCgkJCXNlbGYuXyRib2R5CgkJCQkuYWRkKCQoc2VsZi5zZWxlY3RvcnMuc29ydCkpCgkJCQkuYWRkKCQoc2VsZi5zZWxlY3RvcnMuZmlsdGVyKSkKCQkJCS5vZmYoJy5taXhJdFVwJyk7CgkJCQoJCQlmb3IodmFyIGkgPSAwOyBpIDwgc2VsZi5fJHRhcmdldHMubGVuZ3RoOyBpKyspewoJCQkJdmFyIHRhcmdldCA9IHNlbGYuXyR0YXJnZXRzW2ldOwoKCQkJCWhpZGVBbGwgJiYgKHRhcmdldC5zdHlsZS5kaXNwbGF5ID0gJycpOwoKCQkJCWRlbGV0ZSB0YXJnZXQubWl4UGFyZW50OwoJCQl9CgkJCQoJCQlzZWxmLl9leGVjQWN0aW9uKCdkZXN0cm95JywgMSwgYXJndW1lbnRzKTsKCgkJCWlmKGZpbHRlcnNbc2VsZi5zZWxlY3RvcnMuZmlsdGVyXSAmJiBmaWx0ZXJzW3NlbGYuc2VsZWN0b3JzLmZpbHRlcl0gPiAxKSB7CgkJCQlmaWx0ZXJzW3NlbGYuc2VsZWN0b3JzLmZpbHRlcl0tLTsKCQkJfSBlbHNlIGlmKGZpbHRlcnNbc2VsZi5zZWxlY3RvcnMuZmlsdGVyXSA9PT0gMSkgewoJCQkJZGVsZXRlIGZpbHRlcnNbc2VsZi5zZWxlY3RvcnMuZmlsdGVyXTsKCQkJfQoKCQkJaWYoc29ydHNbc2VsZi5zZWxlY3RvcnMuc29ydF0gJiYgc29ydHNbc2VsZi5zZWxlY3RvcnMuc29ydF0gPiAxKSB7CgkJCQlzb3J0c1tzZWxmLnNlbGVjdG9ycy5zb3J0XS0tOwoJCQl9IGVsc2UgaWYoc29ydHNbc2VsZi5zZWxlY3RvcnMuc29ydF0gPT09IDEpIHsKCQkJCWRlbGV0ZSBzb3J0c1tzZWxmLnNlbGVjdG9ycy5zb3J0XTsKCQkJfQoKCQkJZGVsZXRlICQuTWl4SXRVcC5wcm90b3R5cGUuX2luc3RhbmNlc1tzZWxmLl9pZF07CgkJfQoJCQoJfTsKCQoJLyogalF1ZXJ5IE1ldGhvZHMKCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KCQoJLyoqCgkgKiBqUXVlcnkgLm1peEl0VXAoKSBtZXRob2QKCSAqIEBzaW5jZSAyLjAuMAoJICogQGV4dGVuZHMgJC5mbgoJICovCgkKCSQuZm4ubWl4SXRVcCA9IGZ1bmN0aW9uKCl7CgkJdmFyIGFyZ3MgPSBhcmd1bWVudHMsCgkJCWRhdGFSZXR1cm4gPSBbXSwKCQkJZWFjaFJldHVybiwKCQkJX2luc3RhbnRpYXRlID0gZnVuY3Rpb24oZG9tTm9kZSwgc2V0dGluZ3MpewoJCQkJdmFyIGluc3RhbmNlID0gbmV3ICQuTWl4SXRVcCgpLAoJCQkJCXJhbmQgPSBmdW5jdGlvbigpewoJCQkJCQlyZXR1cm4gKCcwMDAwMCcrKE1hdGgucmFuZG9tKCkqMTY3NzcyMTY8PDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KS50b1VwcGVyQ2FzZSgpOwoJCQkJCX07CgkJCQkJCgkJCQlpbnN0YW5jZS5fZXhlY0FjdGlvbignX2luc3RhbnRpYXRlJywgMCwgYXJndW1lbnRzKTsKCgkJCQlkb21Ob2RlLmlkID0gIWRvbU5vZGUuaWQgPyAnTWl4SXRVcCcrcmFuZCgpIDogZG9tTm9kZS5pZDsKCQkJCQoJCQkJaWYoIWluc3RhbmNlLl9pbnN0YW5jZXNbZG9tTm9kZS5pZF0pewoJCQkJCWluc3RhbmNlLl9pbnN0YW5jZXNbZG9tTm9kZS5pZF0gPSBpbnN0YW5jZTsKCQkJCQlpbnN0YW5jZS5faW5pdChkb21Ob2RlLCBzZXR0aW5ncyk7CgkJCQl9CgkJCQkKCQkJCWluc3RhbmNlLl9leGVjQWN0aW9uKCdfaW5zdGFudGlhdGUnLCAxLCBhcmd1bWVudHMpOwoJCQl9OwoJCQkKCQllYWNoUmV0dXJuID0gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7CgkJCWlmKGFyZ3MgJiYgdHlwZW9mIGFyZ3NbMF0gPT09ICdzdHJpbmcnKXsKCQkJCXZhciBpbnN0YW5jZSA9ICQuTWl4SXRVcC5wcm90b3R5cGUuX2luc3RhbmNlc1t0aGlzLmlkXTsKCQkJCWlmKGFyZ3NbMF0gPT09ICdpc0xvYWRlZCcpewoJCQkJCWRhdGFSZXR1cm4ucHVzaChpbnN0YW5jZSA/IHRydWUgOiBmYWxzZSk7CgkJCQl9IGVsc2UgewoJCQkJCXZhciBkYXRhID0gaW5zdGFuY2VbYXJnc1swXV0oYXJnc1sxXSwgYXJnc1syXSwgYXJnc1szXSk7CgkJCQkJaWYoZGF0YSAhPT0gdW5kZilkYXRhUmV0dXJuLnB1c2goZGF0YSk7CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQlfaW5zdGFudGlhdGUodGhpcywgYXJnc1swXSk7CgkJCX0KCQl9KTsKCQkKCQlpZihkYXRhUmV0dXJuLmxlbmd0aCl7CgkJCXJldHVybiBkYXRhUmV0dXJuLmxlbmd0aCA+IDEgPyBkYXRhUmV0dXJuIDogZGF0YVJldHVyblswXTsKCQl9IGVsc2UgewoJCQlyZXR1cm4gZWFjaFJldHVybjsKCQl9Cgl9OwoJCgkvKioKCSAqIGpRdWVyeSAucmVtb3ZlU3R5bGUoKSBtZXRob2QKCSAqIEBzaW5jZSAyLjAuMAoJICogQGV4dGVuZHMgJC5mbgoJICovCgkKCSQuZm4ucmVtb3ZlU3R5bGUgPSBmdW5jdGlvbihzdHlsZSwgcHJlZml4KXsKCQlwcmVmaXggPSBwcmVmaXggPyBwcmVmaXggOiAnJzsKCQoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsKCQkJdmFyIGVsID0gdGhpcywKCQkJCXN0eWxlcyA9IHN0eWxlLnNwbGl0KCcgJyk7CgkJCQkKCQkJZm9yKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKyl7CgkJCQlmb3IodmFyIGogPSAwOyBqIDwgNDsgaisrKXsKCQkJCQlzd2l0Y2ggKGopIHsKCQkJCQkJY2FzZSAwOgoJCQkJCQkJdmFyIHByb3AgPSBzdHlsZXNbaV07CgkJCQkJCQlicmVhazsKCQkJCQkJY2FzZSAxOgoJCQkJCQkJdmFyIHByb3AgPSAkLk1peEl0VXAucHJvdG90eXBlLl9oZWxwZXJzLl9jYW1lbENhc2UocHJvcCk7CgkJCQkJCQlicmVhazsKCQkJCQkJY2FzZSAyOgoJCQkJCQkJdmFyIHByb3AgPSBwcmVmaXgrc3R5bGVzW2ldOwoJCQkJCQkJYnJlYWs7CgkJCQkJCWNhc2UgMzoKCQkJCQkJCXZhciBwcm9wID0gJC5NaXhJdFVwLnByb3RvdHlwZS5faGVscGVycy5fY2FtZWxDYXNlKHByZWZpeCtzdHlsZXNbaV0pOwoJCQkJCX0KCQkJCQkKCQkJCQlpZigKCQkJCQkJZWwuc3R5bGVbcHJvcF0gIT09IHVuZGYgJiYgCgkJCQkJCXR5cGVvZiBlbC5zdHlsZVtwcm9wXSAhPT0gJ3Vua25vd24nICYmCgkJCQkJCWVsLnN0eWxlW3Byb3BdLmxlbmd0aCA+IDAKCQkJCQkpewoJCQkJCQllbC5zdHlsZVtwcm9wXSA9ICcnOwoJCQkJCX0KCQkJCQkKCQkJCQlpZighcHJlZml4ICYmIGogPT09IDEpYnJlYWs7CgkJCQl9CgkJCX0KCQkJCgkJCWlmKGVsLmF0dHJpYnV0ZXMgJiYgZWwuYXR0cmlidXRlcy5zdHlsZSAmJiBlbC5hdHRyaWJ1dGVzLnN0eWxlICE9PSB1bmRmICYmIGVsLmF0dHJpYnV0ZXMuc3R5bGUudmFsdWUgPT09ICcnKXsKCQkJCWVsLmF0dHJpYnV0ZXMucmVtb3ZlTmFtZWRJdGVtKCdzdHlsZScpOwoJCQl9CgkJfSk7Cgl9OwoJCn0pKGpRdWVyeSk7"}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":10,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/Avon.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.736Z","timestamp":1785129412736,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/Avon.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 73750\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":73750,"size_decoded":74016,"mime_type":"image/png","magic":"PNG image data, 1019 x 289, 8-bit/color RGBA, non-interlaced","md5":"bd651d1655f6e7108a5d3db60350824a","sha1":"90b9ec52185dea63699ec03d93fd568b1c54d861","sha256":"3526940f90d376d7cae453e5ab5135c5c6f8429bdc3c6b34adf12e10a706489e","sha512":"6701fd09f4268c433e24ff7297f7830846677faf30c1a4eaa07ec2fd0f7d4bf8b0e67fa1a393776c003ab62c79532cf686c812b60ce99613a15afb3c300fbfdf","ssdeep":"1536:ieU+Fb0f8kJ/cg6kvl0Q5oMNSR2sCHc0IylHHSFJZfUyFu:ieU+t08kJEbkvlwMNS4swcMQZfUyFu","tlshash":"787302cc7b804bd1fc630a7a12cb33e2c77b57870aa24ca56f1573e02f69574a9434a9","first_seen":"2026-03-11T03:44:22.97981Z","last_seen":"2026-07-27T10:24:20.27163Z","times_seen":9,"resource_available":false,"data":"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"}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":8,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/jquery.mCustomScrollbar.min.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.820Z","timestamp":1785129412820,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/jquery.mCustomScrollbar.min.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 3801\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":42907,"size_decoded":4110,"mime_type":"text/css","magic":"ASCII text, with very long lines (42907), with no line terminators","md5":"48ced4b8591f0e0216bf4a44926cbbb2","sha1":"ecd34b4c09645b415c5a4535c51e18d008931204","sha256":"2cd8d308a8b1ab19dd60121e4bb462c5a217aab38f28b7c625698939b1902385","sha512":"f47852fdcd24874903889a567de2a26354931d1ec92beb84b28c81560dfbd5c8d256e0ae7fd168dc197827ec0f72c7b72a3266a69425ce0b2b2334983cbab609","ssdeep":"768:VStyRbNRmYdFZFt6vw7R01rnk6BcxL+zhRNxA5l2ng7ytcKaWDxQ:VStyRnmYdFZFt6+R9","tlshash":"0413179a2a4336dffa4f447dbb81379a11fc37834552166cb0d758a4ab88bf7a439402","first_seen":"2023-04-07T02:43:29Z","last_seen":"2026-07-29T00:40:16.334113Z","times_seen":1974,"resource_available":false,"data":"Lm1DdXN0b21TY3JvbGxiYXJ7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfS5tQ3VzdG9tU2Nyb2xsYmFyLm1DU19ub19zY3JvbGxiYXIsLm1DdXN0b21TY3JvbGxiYXIubUNTX3RvdWNoX2FjdGlvbnstbXMtdG91Y2gtYWN0aW9uOmF1dG87dG91Y2gtYWN0aW9uOmF1dG99Lm1DdXN0b21TY3JvbGxCb3h7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO2hlaWdodDoxMDAlO21heC13aWR0aDoxMDAlO291dGxpbmU6MDtkaXJlY3Rpb246bHRyfS5tQ1NCX2NvbnRhaW5lcntvdmVyZmxvdzpoaWRkZW47d2lkdGg6YXV0bztoZWlnaHQ6YXV0b30ubUNTQl9pbnNpZGU+Lm1DU0JfY29udGFpbmVye21hcmdpbi1yaWdodDozMHB4fS5tQ1NCX2NvbnRhaW5lci5tQ1Nfbm9fc2Nyb2xsYmFyX3kubUNTX3lfaGlkZGVue21hcmdpbi1yaWdodDowfS5tQ1MtZGlyLXJ0bD4ubUNTQl9pbnNpZGU+Lm1DU0JfY29udGFpbmVye21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjMwcHh9Lm1DUy1kaXItcnRsPi5tQ1NCX2luc2lkZT4ubUNTQl9jb250YWluZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbnttYXJnaW4tbGVmdDowfS5tQ1NCX3Njcm9sbFRvb2xze3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjE2cHg7aGVpZ2h0OmF1dG87bGVmdDphdXRvO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7b3BhY2l0eTouNzU7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTc1KSI7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT03NSkifS5tQ1NCX291dHNpZGUrLm1DU0Jfc2Nyb2xsVG9vbHN7cmlnaHQ6LTI2cHh9Lm1DUy1kaXItcnRsPi5tQ1NCX2luc2lkZT4ubUNTQl9zY3JvbGxUb29scywubUNTLWRpci1ydGw+Lm1DU0Jfb3V0c2lkZSsubUNTQl9zY3JvbGxUb29sc3tyaWdodDphdXRvO2xlZnQ6MH0ubUNTLWRpci1ydGw+Lm1DU0Jfb3V0c2lkZSsubUNTQl9zY3JvbGxUb29sc3tsZWZ0Oi0yNnB4fS5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJDb250YWluZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO2JvdHRvbTowO3JpZ2h0OjA7aGVpZ2h0OmF1dG99Lm1DU0Jfc2Nyb2xsVG9vbHMgYSsubUNTQl9kcmFnZ2VyQ29udGFpbmVye21hcmdpbjoyMHB4IDB9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6MnB4O2hlaWdodDoxMDAlO21hcmdpbjowIGF1dG87LXdlYmtpdC1ib3JkZXItcmFkaXVzOjE2cHg7LW1vei1ib3JkZXItcmFkaXVzOjE2cHg7Ym9yZGVyLXJhZGl1czoxNnB4fS5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJ7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6MTAwJTtoZWlnaHQ6MzBweDt6LWluZGV4OjF9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcntwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDo0cHg7aGVpZ2h0OjEwMCU7bWFyZ2luOjAgYXV0bzstd2Via2l0LWJvcmRlci1yYWRpdXM6MTZweDstbW96LWJvcmRlci1yYWRpdXM6MTZweDtib3JkZXItcmFkaXVzOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Lm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCAubUNTQl9kcmFnZ2VyX2JhciwubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye3dpZHRoOjEycHh9Lm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCsubUNTQl9kcmFnZ2VyUmFpbCwubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbHt3aWR0aDo4cHh9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93biwubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDoyMHB4O3dpZHRoOjEwMCU7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowIGF1dG87Y3Vyc29yOnBvaW50ZXJ9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntib3R0b206MH0ubUNTQl9ob3Jpem9udGFsLm1DU0JfaW5zaWRlPi5tQ1NCX2NvbnRhaW5lcnttYXJnaW4tcmlnaHQ6MDttYXJnaW4tYm90dG9tOjMwcHh9Lm1DU0JfaG9yaXpvbnRhbC5tQ1NCX291dHNpZGU+Lm1DU0JfY29udGFpbmVye21pbi1oZWlnaHQ6MTAwJX0ubUNTQl9ob3Jpem9udGFsPi5tQ1NCX2NvbnRhaW5lci5tQ1Nfbm9fc2Nyb2xsYmFyX3gubUNTX3hfaGlkZGVue21hcmdpbi1ib3R0b206MH0ubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7d2lkdGg6YXV0bztoZWlnaHQ6MTZweDt0b3A6YXV0bztyaWdodDowO2JvdHRvbTowO2xlZnQ6MH0ubUN1c3RvbVNjcm9sbEJveCsubUNTQl9zY3JvbGxUb29scysubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwsLm1DdXN0b21TY3JvbGxCb3grLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFse2JvdHRvbTotMjZweH0ubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgYSsubUNTQl9kcmFnZ2VyQ29udGFpbmVye21hcmdpbjowIDIwcHh9Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse3dpZHRoOjEwMCU7aGVpZ2h0OjJweDttYXJnaW46N3B4IDB9Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJ7d2lkdGg6MzBweDtoZWlnaHQ6MTAwJTtsZWZ0OjB9Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O21hcmdpbjo2cHggYXV0b30ubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2hlaWdodDoxMnB4O21hcmdpbjoycHggYXV0b30ubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQrLm1DU0JfZHJhZ2dlclJhaWwsLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbHtoZWlnaHQ6OHB4O21hcmdpbjo0cHggMH0ubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfYnV0dG9uTGVmdCwubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfYnV0dG9uUmlnaHR7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyMHB4O2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjttYXJnaW46MCBhdXRvO2N1cnNvcjpwb2ludGVyfS5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9idXR0b25MZWZ0e2xlZnQ6MH0ubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfYnV0dG9uUmlnaHR7cmlnaHQ6MH0ubUNTQl9jb250YWluZXJfd3JhcHBlcntwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6YXV0bzt3aWR0aDphdXRvO292ZXJmbG93OmhpZGRlbjt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDttYXJnaW4tcmlnaHQ6MzBweDttYXJnaW4tYm90dG9tOjMwcHh9Lm1DU0JfY29udGFpbmVyX3dyYXBwZXI+Lm1DU0JfY29udGFpbmVye3BhZGRpbmctcmlnaHQ6MzBweDtwYWRkaW5nLWJvdHRvbTozMHB4fS5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWw+Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbHtib3R0b206MjBweH0ubUNTQl92ZXJ0aWNhbF9ob3Jpem9udGFsPi5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbHtyaWdodDoyMHB4fS5tQ1NCX2NvbnRhaW5lcl93cmFwcGVyLm1DU19ub19zY3JvbGxiYXJfeC5tQ1NfeF9oaWRkZW4rLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbHtib3R0b206MH0ubUNTLWRpci1ydGw+Lm1DdXN0b21TY3JvbGxCb3gubUNTQl92ZXJ0aWNhbF9ob3Jpem9udGFsLm1DU0JfaW5zaWRlPi5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCwubUNTQl9jb250YWluZXJfd3JhcHBlci5tQ1Nfbm9fc2Nyb2xsYmFyX3kubUNTX3lfaGlkZGVuKy5tQ1NCX3Njcm9sbFRvb2xzfi5tQ1NCX3Njcm9sbFRvb2xzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbHtyaWdodDowfS5tQ1MtZGlyLXJ0bD4ubUN1c3RvbVNjcm9sbEJveC5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwubUNTQl9pbnNpZGU+Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFse2xlZnQ6MjBweH0ubUNTLWRpci1ydGw+Lm1DdXN0b21TY3JvbGxCb3gubUNTQl92ZXJ0aWNhbF9ob3Jpem9udGFsLm1DU0JfaW5zaWRlPi5tQ1NCX2NvbnRhaW5lcl93cmFwcGVyLm1DU19ub19zY3JvbGxiYXJfeS5tQ1NfeV9oaWRkZW4rLm1DU0Jfc2Nyb2xsVG9vbHN+Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFse2xlZnQ6MH0ubUNTLWRpci1ydGw+Lm1DU0JfaW5zaWRlPi5tQ1NCX2NvbnRhaW5lcl93cmFwcGVye21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjMwcHh9Lm1DU0JfY29udGFpbmVyX3dyYXBwZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbj4ubUNTQl9jb250YWluZXJ7cGFkZGluZy1yaWdodDowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubUNTQl9jb250YWluZXJfd3JhcHBlci5tQ1Nfbm9fc2Nyb2xsYmFyX3gubUNTX3hfaGlkZGVuPi5tQ1NCX2NvbnRhaW5lcntwYWRkaW5nLWJvdHRvbTowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0ubUN1c3RvbVNjcm9sbEJveC5tQ1NCX3ZlcnRpY2FsX2hvcml6b250YWwubUNTQl9pbnNpZGU+Lm1DU0JfY29udGFpbmVyX3dyYXBwZXIubUNTX25vX3Njcm9sbGJhcl95Lm1DU195X2hpZGRlbnttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDowfS5tQ3VzdG9tU2Nyb2xsQm94Lm1DU0JfdmVydGljYWxfaG9yaXpvbnRhbC5tQ1NCX2luc2lkZT4ubUNTQl9jb250YWluZXJfd3JhcHBlci5tQ1Nfbm9fc2Nyb2xsYmFyX3gubUNTX3hfaGlkZGVue21hcmdpbi1ib3R0b206MH0ubUNTQl9zY3JvbGxUb29scywubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3duLC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnQsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHQsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXAsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcnstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dH0ubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyUmFpbCwubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyX2JhciwubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlclJhaWwsLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJfYmFyey13ZWJraXQtdHJhbnNpdGlvbjp3aWR0aCAuMnMgZWFzZS1vdXQgLjJzLGhlaWdodCAuMnMgZWFzZS1vdXQgLjJzLG1hcmdpbi1sZWZ0IC4ycyBlYXNlLW91dCAuMnMsbWFyZ2luLXJpZ2h0IC4ycyBlYXNlLW91dCAuMnMsbWFyZ2luLXRvcCAuMnMgZWFzZS1vdXQgLjJzLG1hcmdpbi1ib3R0b20gLjJzIGVhc2Utb3V0IC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dDstbW96LXRyYW5zaXRpb246d2lkdGggLjJzIGVhc2Utb3V0IC4ycyxoZWlnaHQgLjJzIGVhc2Utb3V0IC4ycyxtYXJnaW4tbGVmdCAuMnMgZWFzZS1vdXQgLjJzLG1hcmdpbi1yaWdodCAuMnMgZWFzZS1vdXQgLjJzLG1hcmdpbi10b3AgLjJzIGVhc2Utb3V0IC4ycyxtYXJnaW4tYm90dG9tIC4ycyBlYXNlLW91dCAuMnMsb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQ7LW8tdHJhbnNpdGlvbjp3aWR0aCAuMnMgZWFzZS1vdXQgLjJzLGhlaWdodCAuMnMgZWFzZS1vdXQgLjJzLG1hcmdpbi1sZWZ0IC4ycyBlYXNlLW91dCAuMnMsbWFyZ2luLXJpZ2h0IC4ycyBlYXNlLW91dCAuMnMsbWFyZ2luLXRvcCAuMnMgZWFzZS1vdXQgLjJzLG1hcmdpbi1ib3R0b20gLjJzIGVhc2Utb3V0IC4ycyxvcGFjaXR5IC4ycyBlYXNlLWluLW91dCxiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dDt0cmFuc2l0aW9uOndpZHRoIC4ycyBlYXNlLW91dCAuMnMsaGVpZ2h0IC4ycyBlYXNlLW91dCAuMnMsbWFyZ2luLWxlZnQgLjJzIGVhc2Utb3V0IC4ycyxtYXJnaW4tcmlnaHQgLjJzIGVhc2Utb3V0IC4ycyxtYXJnaW4tdG9wIC4ycyBlYXNlLW91dCAuMnMsbWFyZ2luLWJvdHRvbSAuMnMgZWFzZS1vdXQgLjJzLG9wYWNpdHkgLjJzIGVhc2UtaW4tb3V0LGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5tQ1MtYXV0b0hpZGU+Lm1DdXN0b21TY3JvbGxCb3g+Lm1DU0Jfc2Nyb2xsVG9vbHMsLm1DUy1hdXRvSGlkZT4ubUN1c3RvbVNjcm9sbEJveH4ubUNTQl9zY3JvbGxUb29sc3tvcGFjaXR5OjA7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0ubUNTLWF1dG9IaWRlOmhvdmVyPi5tQ3VzdG9tU2Nyb2xsQm94Pi5tQ1NCX3Njcm9sbFRvb2xzLC5tQ1MtYXV0b0hpZGU6aG92ZXI+Lm1DdXN0b21TY3JvbGxCb3h+Lm1DU0Jfc2Nyb2xsVG9vbHMsLm1DdXN0b21TY3JvbGxCb3g6aG92ZXI+Lm1DU0Jfc2Nyb2xsVG9vbHMsLm1DdXN0b21TY3JvbGxCb3g6aG92ZXJ+Lm1DU0Jfc2Nyb2xsVG9vbHMsLm1DdXN0b21TY3JvbGxiYXI+Lm1DdXN0b21TY3JvbGxCb3g+Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19vbkRyYWcsLm1DdXN0b21TY3JvbGxiYXI+Lm1DdXN0b21TY3JvbGxCb3h+Lm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19vbkRyYWd7b3BhY2l0eToxO2ZpbHRlcjoiYWxwaGEob3BhY2l0eT0xMDApIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTEwMCkifS5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjQpO2ZpbHRlcjoiYWxwaGEob3BhY2l0eT00MCkiOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NDApIn0ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjc1KTtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9NzUpIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTc1KSJ9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC44NSk7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTg1KSI7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT04NSkifS5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhciwubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9OTApIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTkwKSJ9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93biwubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0LC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0LC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtaW1hZ2U6dXJsKG1DU0JfYnV0dG9ucy5odG1sKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7b3BhY2l0eTouNDtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9NDApIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTQwKSJ9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTIwcHh9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTQwcHh9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC01NnB4fS5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd246aG92ZXIsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdDpob3ZlciwubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodDpob3ZlciwubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcDpob3ZlcntvcGFjaXR5Oi43NTtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9NzUpIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTc1KSJ9Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bjphY3RpdmUsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdDphY3RpdmUsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHQ6YWN0aXZlLC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwOmFjdGl2ZXtvcGFjaXR5Oi45O2ZpbHRlcjoiYWxwaGEob3BhY2l0eT05MCkiOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9OTApIn0ubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xNSl9Lm1DUy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43NSl9Lm1DUy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg1KX0ubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC45KX0ubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9Lm1DUy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMHB4fS5tQ1MtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtNDBweH0ubUNTLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC01NnB4fS5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6NHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxcHg7LW1vei1ib3JkZXItcmFkaXVzOjFweDtib3JkZXItcmFkaXVzOjFweH0ubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcnt3aWR0aDo0cHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNzUpOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxcHg7LW1vei1ib3JkZXItcmFkaXVzOjFweDtib3JkZXItcmFkaXVzOjFweH0ubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtbGlnaHQtMi5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O21hcmdpbjo2cHggYXV0b30ubUNTLWxpZ2h0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjg1KX0ubUNTLWxpZ2h0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSl9Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwfS5tQ1MtbGlnaHQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMjBweH0ubUNTLWxpZ2h0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e2JhY2tncm91bmQtcG9zaXRpb246LTQwcHggLTQwcHh9Lm1DUy1saWdodC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDBweCAtNTZweH0ubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxcHg7LW1vei1ib3JkZXItcmFkaXVzOjFweDtib3JkZXItcmFkaXVzOjFweH0ubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNzUpOy13ZWJraXQtYm9yZGVyLXJhZGl1czoxcHg7LW1vei1ib3JkZXItcmFkaXVzOjFweDtib3JkZXItcmFkaXVzOjFweH0ubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODUpfS5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9Lm1DUy1kYXJrLTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAwfS5tQ1MtZGFyay0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMjBweH0ubUNTLWRhcmstMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwcHggLTQwcHh9Lm1DUy1kYXJrLTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjBweCAtNTZweH0ubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6NHB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjEpOy13ZWJraXQtYm9yZGVyLXJhZGl1czoycHg7LW1vei1ib3JkZXItcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjJweH0ubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye3dpZHRoOjZweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSk7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O21hcmdpbjo2cHggMH0ubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcnt3aWR0aDoxMDAlO2hlaWdodDo2cHg7bWFyZ2luOjVweCBhdXRvfS5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjg1KX0ubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KX0ubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAwfS5tQ1MtbGlnaHQtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3due2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTIwcHh9Lm1DUy1saWdodC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAtNDBweH0ubUNTLWxpZ2h0LXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAtNTZweH0ubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKTstd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4Oy1tb3otYm9yZGVyLXJhZGl1czoycHg7Ym9yZGVyLXJhZGl1czoycHh9Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43NSk7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjJweDstbW96LWJvcmRlci1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MnB4fS5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODUpfS5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC45KX0ubUNTLWRhcmstdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IDB9Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0yMHB4fS5tQ1MtZGFyay10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTAwcHggLTQwcHh9Lm1DUy1kYXJrLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTAwcHggLTU2cHh9Lm1DUy1saWdodC10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtbGlnaHQtdGhpbi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7d2lkdGg6MnB4fS5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWxpZ2h0LXRoaW4ubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse3dpZHRoOjEwMCV9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1saWdodC10aGluLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye3dpZHRoOjEwMCU7aGVpZ2h0OjJweDttYXJnaW46N3B4IGF1dG99Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xNSl9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjc1KX0ubUNTLWRhcmstdGhpbi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODUpfS5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtZGFyay10aGluLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3due2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIwcHh9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTQwcHh9Lm1DUy1kYXJrLXRoaW4ubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC01NnB4fS5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjE1KX0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIsLm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIsLm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJ7aGVpZ2h0OjE0cHh9Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye3dpZHRoOjE0cHg7bWFyZ2luOjAgMXB4fS5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyLC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIsLm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIsLm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2Vye3dpZHRoOjE0cHh9Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7aGVpZ2h0OjE0cHg7bWFyZ2luOjFweCAwfS5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7bWFyZ2luOi0xcHggMH0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQrLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkKy5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXJSYWlse3dpZHRoOjRweH0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcjpob3ZlciAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7bWFyZ2luOjAgLTFweH0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCsubUNTQl9kcmFnZ2VyUmFpbCwubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkKy5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7aGVpZ2h0OjRweDttYXJnaW46NnB4IDB9Lm1DUy1yb3VuZGVkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjowIC03MnB4fS5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjowIC05MnB4fS5tQ1Mtcm91bmRlZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMTJweH0ubUNTLXJvdW5kZWQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4fS5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43NSl9Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xNSl9Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjg1KX0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhciwubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjkpfS5tQ1Mtcm91bmRlZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtNzJweH0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtOTJweH0ubUNTLXJvdW5kZWQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTEycHh9Lm1DUy1yb3VuZGVkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xMjhweH0ubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbCAubUNTQl9kcmFnZ2VyUmFpbHt3aWR0aDo0cHh9Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXJ9Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQU5FbEVRVlFZVjJOa0lBQVlpVmJ3Ly85L1k2RGlNMUFOSm95TWpHZEJiTGdKUUFYL2tVMERLZ0RMa2FRQXZ4VzRIRXZRRndDUmN4SUpLMVh6bkFBQUFBQkpSVTVFcmtKZ2dnPT0pO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC15O29wYWNpdHk6LjM7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTMwKSI7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zMCkifS5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHtoZWlnaHQ6NHB4O21hcmdpbjo2cHggMDtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ubUNTLXJvdW5kZWQtZG90cy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTcycHh9Lm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3due2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTkycHh9Lm1DUy1yb3VuZGVkLWRvdHMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e2JhY2tncm91bmQtcG9zaXRpb246LTIwcHggLTExMnB4fS5tQ1Mtcm91bmRlZC1kb3RzLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAtMTI4cHh9Lm1DUy1yb3VuZGVkLWRvdHMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQWdBQUFBSUNBWUFBQURFRDc2TEFBQUFMRWxFUVZRWVYyTmtJQUFZU1ZGZ0RGUjhCcXJCQkVpZkJiR1JUZmlQWmhwWWppUUZCSzNBNmw2Q3ZnQUFFOWtHQ2QxbXZnRUFBQUFBU1VWT1JLNUNZSUk9KX0ubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtNzJweH0ubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC05MnB4fS5tQ1Mtcm91bmRlZC1kb3RzLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e2JhY2tncm91bmQtcG9zaXRpb246LTEwMHB4IC0xMTJweH0ubUNTLXJvdW5kZWQtZG90cy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTAwcHggLTEyOHB4fS5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteTtiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQscmdiYSgyNTUsMjU1LDI1NSwuNSkgMCxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGNvbG9yLXN0b3AoMCxyZ2JhKDI1NSwyNTUsMjU1LC41KSksY29sb3Itc3RvcCgxMDAlLHJnYmEoMjU1LDI1NSwyNTUsMCkpKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQscmdiYSgyNTUsMjU1LDI1NSwuNSkgMCxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KGxlZnQscmdiYSgyNTUsMjU1LDI1NSwuNSkgMCxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYmEoMjU1LDI1NSwyNTUsLjUpIDAscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byByaWdodCxyZ2JhKDI1NSwyNTUsMjU1LC41KSAwLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSl9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7YmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgyNTUsMjU1LDI1NSwuNSkgMCxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwLHJnYmEoMjU1LDI1NSwyNTUsLjUpKSxjb2xvci1zdG9wKDEwMCUscmdiYSgyNTUsMjU1LDI1NSwwKSkpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLHJnYmEoMjU1LDI1NSwyNTUsLjUpIDAscmdiYSgyNTUsMjU1LDI1NSwwKSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgyNTUsMjU1LDI1NSwuNSkgMCxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AscmdiYSgyNTUsMjU1LDI1NSwuNSkgMCxyZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSxyZ2JhKDI1NSwyNTUsMjU1LC41KSAwLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSl9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlciwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlcntoZWlnaHQ6NzBweH0ubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIsLm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlcnt3aWR0aDo3MHB4fS5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzLC5tQ1MtM2QubUNTQl9zY3JvbGxUb29sc3tvcGFjaXR5OjE7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTMwKSI7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zMCkifS5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsey13ZWJraXQtYm9yZGVyLXJhZGl1czoxNnB4Oy1tb3otYm9yZGVyLXJhZGl1czoxNnB4O2JvcmRlci1yYWRpdXM6MTZweH0ubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6OHB4O2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjIpO2JveC1zaGFkb3c6aW5zZXQgMXB4IDAgMXB4IHJnYmEoMCwwLDAsLjUpLGluc2V0IC0xcHggMCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMil9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiM1NTV9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcnt3aWR0aDo4cHh9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHt3aWR0aDoxMDAlO2hlaWdodDo4cHg7bWFyZ2luOjRweCAwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjUpLGluc2V0IDAgLTFweCAxcHggcmdiYSgyNTUsMjU1LDI1NSwuMil9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7d2lkdGg6MTAwJTtoZWlnaHQ6OHB4O21hcmdpbjo0cHggYXV0b30ubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXB7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNzJweH0ubUNTLTNkLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05MnB4fS5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e2JhY2tncm91bmQtcG9zaXRpb246LTQwcHggLTExMnB4fS5tQ1MtM2QubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IC0xMjhweH0ubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKTtib3gtc2hhZG93Omluc2V0IDFweCAwIDFweCByZ2JhKDAsMCwwLC4xKX0ubUNTLTNkLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpfS5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC03MnB4fS5tQ1MtM2QtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTkycHh9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjBweCAtMTEycHh9Lm1DUy0zZC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwcHggLTEyOHB4fS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzLC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29sc3tvcGFjaXR5OjE7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTMwKSI7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT0zMCkifS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzLC5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJDb250YWluZXIsLm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzLC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyQ29udGFpbmVyey13ZWJraXQtYm9yZGVyLXJhZGl1czo3cHg7LW1vei1ib3JkZXItcmFkaXVzOjdweDtib3JkZXItcmFkaXVzOjdweH0ubUNTQl9pbnNpZGUrLm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwsLm1DU0JfaW5zaWRlKy5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbHtyaWdodDoxcHh9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwsLm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2Fse2JveC1zaGFkb3c6aW5zZXQgMXB4IDAgMXB4IHJnYmEoMCwwLDAsLjEpLGluc2V0IDAgMCAxNHB4IHJnYmEoMCwwLDAsLjUpfS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwsLm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWx7Ym90dG9tOjFweDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4xKSxpbnNldCAwIDAgMTRweCByZ2JhKDAsMCwwLC41KX0ubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyey13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7LW1vei1ib3JkZXItcmFkaXVzOjVweDtib3JkZXItcmFkaXVzOjVweDtib3gtc2hhZG93Omluc2V0IDFweCAwIDAgcmdiYSgyNTUsMjU1LDI1NSwuNCk7d2lkdGg6MTJweDttYXJnaW46MnB4O3Bvc2l0aW9uOmFic29sdXRlO2hlaWdodDphdXRvO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowfS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC40KTtoZWlnaHQ6MTJweDt3aWR0aDphdXRvfS5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtM2QtdGhpY2subUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzU1NX0ubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRvdzppbnNldCAxcHggMXB4IDE2cHggcmdiYSgwLDAsMCwuMSl9Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTcycHh9Lm1DUy0zZC10aGljay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtOTJweH0ubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IC0xMTJweH0ubUNTLTNkLXRoaWNrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDBweCAtMTI4cHh9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHN7Ym94LXNoYWRvdzppbnNldCAwIDAgMTRweCByZ2JhKDAsMCwwLC4yKX0ubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFse2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjEpLGluc2V0IDAgMCAxNHB4IHJnYmEoMCwwLDAsLjIpfS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7Ym94LXNoYWRvdzppbnNldCAxcHggMCAwIHJnYmEoMjU1LDI1NSwyNTUsLjQpLGluc2V0IC0xcHggMCAwIHJnYmEoMCwwLDAsLjIpfS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2Jhcntib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuNCksaW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMil9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLTNkLXRoaWNrLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiM3Nzd9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlckNvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRvdzppbnNldCAxcHggMXB4IDE2cHggcmdiYSgwLDAsMCwuMSl9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1taW5pbWFsLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC03MnB4fS5tQ1MtM2QtdGhpY2stZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTkycHh9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjBweCAtMTEycHh9Lm1DUy0zZC10aGljay1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwcHggLTEyOHB4fS5tQ1NCX291dHNpZGUrLm1DUy1taW5pbWFsLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbCwubUNTQl9vdXRzaWRlKy5tQ1MtbWluaW1hbC5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2Fse3JpZ2h0OjA7bWFyZ2luOjEycHggMH0ubUN1c3RvbVNjcm9sbEJveC5tQ1MtbWluaW1hbCsubUNTQl9zY3JvbGxUb29scysubUNTQl9zY3JvbGxUb29scy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwsLm1DdXN0b21TY3JvbGxCb3gubUNTLW1pbmltYWwrLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLC5tQ3VzdG9tU2Nyb2xsQm94Lm1DUy1taW5pbWFsLWRhcmsrLm1DU0Jfc2Nyb2xsVG9vbHMrLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsLC5tQ3VzdG9tU2Nyb2xsQm94Lm1DUy1taW5pbWFsLWRhcmsrLm1DU0Jfc2Nyb2xsVG9vbHMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFse2JvdHRvbTowO21hcmdpbjowIDEycHh9Lm1DUy1kaXItcnRsPi5tQ1NCX291dHNpZGUrLm1DUy1taW5pbWFsLWRhcmsubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbCwubUNTLWRpci1ydGw+Lm1DU0Jfb3V0c2lkZSsubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29sc192ZXJ0aWNhbHtsZWZ0OjA7cmlnaHQ6YXV0b30ubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsIC5tQ1NCX2RyYWdnZXIsLm1DUy1taW5pbWFsLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwgLm1DU0JfZHJhZ2dlcntoZWlnaHQ6NTBweH0ubUNTLW1pbmltYWwtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciwubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJ7d2lkdGg6NTBweH0ubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjIpO2ZpbHRlcjoiYWxwaGEob3BhY2l0eT0yMCkiOy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MjApIn0ubUNTLW1pbmltYWwubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1taW5pbWFsLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSk7ZmlsdGVyOiJhbHBoYShvcGFjaXR5PTUwKSI7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT01MCkifS5tQ1MtbWluaW1hbC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yKTtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9MjApIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTIwKSJ9Lm1DUy1taW5pbWFsLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1taW5pbWFsLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC41KTtmaWx0ZXI6ImFscGhhKG9wYWNpdHk9NTApIjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTUwKSJ9Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHt3aWR0aDo2cHg7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMil9Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7d2lkdGg6NnB4fS5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWxpZ2h0LTMubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbHt3aWR0aDoxMDAlO2hlaWdodDo2cHg7bWFyZ2luOjVweCAwfS5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCsubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWRhcmstMy5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyQ29udGFpbmVyOmhvdmVyIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzX3ZlcnRpY2FsLm1DU0Jfc2Nyb2xsVG9vbHNfb25EcmFnX2V4cGFuZCAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWdfZXhwYW5kZWQrLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHNfdmVydGljYWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6MTJweH0ubUNTLWRhcmstMy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZ19leHBhbmRlZCsubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWRhcmstMy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbC5tQ1NCX3Njcm9sbFRvb2xzX29uRHJhZ19leHBhbmQgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnX2V4cGFuZGVkKy5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwubUNTQl9zY3JvbGxUb29sc19vbkRyYWdfZXhwYW5kIC5tQ1NCX2RyYWdnZXJDb250YWluZXI6aG92ZXIgLm1DU0JfZHJhZ2dlclJhaWx7aGVpZ2h0OjEycHg7bWFyZ2luOjJweCAwfS5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTcycHh9Lm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05MnB4fS5tQ1MtbGlnaHQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDBweCAtMTEycHh9Lm1DUy1saWdodC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDBweCAtMTI4cHh9Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjc1KX0ubUNTLWRhcmstMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODUpfS5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9Lm1DUy1kYXJrLTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4xKX0ubUNTLWRhcmstMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwe2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC03MnB4fS5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtOTJweH0ubUNTLWRhcmstMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwcHggLTExMnB4fS5tQ1MtZGFyay0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwcHggLTEyOHB4fS5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7d2lkdGg6MTJweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yKX0ubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtaW5zZXQubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye3dpZHRoOjZweDttYXJnaW46M3B4IDVweDtwb3NpdGlvbjphYnNvbHV0ZTtoZWlnaHQ6YXV0bzt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0ubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0LTIubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2hlaWdodDo2cHg7bWFyZ2luOjVweCAzcHg7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6YXV0bzt0b3A6MDtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MH0ubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzX2hvcml6b250YWwgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHNfaG9yaXpvbnRhbCAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1MtaW5zZXQubUNTQl9zY3JvbGxUb29sc19ob3Jpem9udGFsIC5tQ1NCX2RyYWdnZXJSYWlse3dpZHRoOjEwMCU7aGVpZ2h0OjEycHg7bWFyZ2luOjJweCAwfS5tQ1MtaW5zZXQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwLC5tQ1MtaW5zZXQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblVwLC5tQ1MtaW5zZXQubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC03MnB4fS5tQ1MtaW5zZXQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd24sLm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93biwubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uRG93bntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05MnB4fS5tQ1MtaW5zZXQtMi5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkxlZnQsLm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdCwubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IC0xMTJweH0ubUNTLWluc2V0LTIubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodCwubUNTLWluc2V0LTMubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25SaWdodCwubUNTLWluc2V0Lm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDBweCAtMTI4cHh9Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjc1KX0ubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6aG92ZXIgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuODUpfS5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmFjdGl2ZSAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyLm1DU0JfZHJhZ2dlcl9vbkRyYWcgLm1DU0JfZHJhZ2dlcl9iYXIsLm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjphY3RpdmUgLm1DU0JfZHJhZ2dlcl9iYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuOSl9Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyUmFpbCwubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlsLC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uVXAsLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcCwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25VcHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtNzJweH0ubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd24sLm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25Eb3duLC5tQ1MtaW5zZXQtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvbkRvd257YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTkycHh9Lm1DUy1pbnNldC0yLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0LC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uTGVmdCwubUNTLWluc2V0LWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9idXR0b25MZWZ0e2JhY2tncm91bmQtcG9zaXRpb246LTEyMHB4IC0xMTJweH0ubUNTLWluc2V0LTItZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2J1dHRvblJpZ2h0LC5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHQsLm1DUy1pbnNldC1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfYnV0dG9uUmlnaHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwcHggLTEyOHB4fS5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWwsLm1DUy1pbnNldC0yLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6MXB4O2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMik7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5tQ1MtaW5zZXQtMi1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7Ym9yZGVyLWNvbG9yOiMwMDA7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjIpfS5tQ1MtaW5zZXQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXJSYWlse2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjYpfS5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlclJhaWx7YmFja2dyb3VuZC1jb2xvcjojMDAwO2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNil9Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC43NSl9Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlcjpob3ZlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC44NSl9Lm1DUy1pbnNldC0zLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlci5tQ1NCX2RyYWdnZXJfb25EcmFnIC5tQ1NCX2RyYWdnZXJfYmFyLC5tQ1MtaW5zZXQtMy5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjkpfS5tQ1MtaW5zZXQtMy1kYXJrLm1DU0Jfc2Nyb2xsVG9vbHMgLm1DU0JfZHJhZ2dlciAubUNTQl9kcmFnZ2VyX2JhcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC43NSl9Lm1DUy1pbnNldC0zLWRhcmsubUNTQl9zY3JvbGxUb29scyAubUNTQl9kcmFnZ2VyOmhvdmVyIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjg1KX0ubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXIubUNTQl9kcmFnZ2VyX29uRHJhZyAubUNTQl9kcmFnZ2VyX2JhciwubUNTLWluc2V0LTMtZGFyay5tQ1NCX3Njcm9sbFRvb2xzIC5tQ1NCX2RyYWdnZXI6YWN0aXZlIC5tQ1NCX2RyYWdnZXJfYmFye2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpfQ=="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/fonts/flaticon.woff","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"font","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.930Z","timestamp":1785129412930,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /fonts/flaticon.woff HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: identity\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/flaticon.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: font\r\nSec-Fetch-Mode: cors\r\nSec-Fetch-Site: same-origin\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: font/woff\r\nlast-modified: Wed, 10 Dec 2025 07:11:35 GMT\r\naccept-ranges: bytes\r\ncontent-length: 53892\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":53892,"size_decoded":54158,"mime_type":"font/woff","magic":"Web Open Font Format, TrueType, length 53892, version 0.0","md5":"01a404e46064afe7b39fb6cac693255c","sha1":"b99630bcde00c1cd43be32822e2ddc65091cfeef","sha256":"7540dcb56b0543caab01da19a2c6a8d8bae8b4f5faf2fc516d08b9cabe342bdd","sha512":"339d061188505506b9306990b087b16636cca3ed8f00ce48e9edcbf09d79728ace2debbd3465624af8c1bf049de7b55211dbfe95760479f78bb33952ccb9c485","ssdeep":"1536:9rabJW2RMCnbM9H6QtBI8ueZYYPykD+9gv:9ra5RMCnbMxrt/uwYVk+ev","tlshash":"9a3301b01633ea71b1e5a31fabd4947d20fc3bc780192566fc16a1b9ed812b74f4880b","first_seen":"2024-08-19T19:39:35.216427Z","last_seen":"2026-07-27T13:36:13.664118Z","times_seen":89,"resource_available":false,"data":"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"}},"time_used":24,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":23,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/resource/feature-1.jpg","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.978Z","timestamp":1785129412978,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/resource/feature-1.jpg HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 79581\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":79581,"size_decoded":79848,"mime_type":"image/jpeg","magic":"JPEG image data, Exif standard: [TIFF image data, little-endian, direntries=0], baseline, precision 8, 270x331, components 3","md5":"4a829abecdb2a7c40153080fee37e694","sha1":"c86535c11ea20adedf43f4b4ad4a996f3e68e5b2","sha256":"6e18f42bbf096ec886017a73194bbf7b58a8abd3b7082e1a344654b852ea1826","sha512":"b868320cd6ccf9719922f50d11ed995690201d4bc4069922f5a746c093d9ecbd79fc15e9977c02a9daca7c97ed8e654e5d6ca2bb2b34057d6909dc0561a1412b","ssdeep":"1536:otMTsEO+kFMsMn+saq1onAXKwSNxSJYueSd+83BkwkXeZwdK:oqTsEUF6haCoFvoJ9RwWSwilK","tlshash":"a173121626cfa111949c16a03d79ba7f2b20771ea017b055f54f893641ba83fcf498ee","first_seen":"2024-06-18T00:47:47Z","last_seen":"2026-07-27T13:36:13.736182Z","times_seen":86,"resource_available":false,"data":"/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAABkAAD/4QN/aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzEzOCA3OS4xNTk4MjQsIDIwMTYvMDkvMTQtMDE6MDk6MDEgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NDU2MTAyMzEtNjAyNy02ZTQxLWE5ZWMtOGZjYzcwZTFjODYyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE5Q0FGOTNFNEYxQTExRUE4QTM4RDE2OTAzRDUzNDUzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE5Q0FGOTNENEYxQTExRUE4QTM4RDE2OTAzRDUzNDUzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjBlNmI1YjZhLTI1ZjQtMGI0Ni05NmQ5LTFmN2M0NDQ5MmY2ZCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0NTYxMDIzMS02MDI3LTZlNDEtYTllYy04ZmNjNzBlMWM4NjIiLz4gPC9yZGY6RGVzY3JpcHRpb24+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"}},"time_used":36,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":25,"receive":11,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/background/pattern-9.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.980Z","timestamp":1785129412980,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/background/pattern-9.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 16410\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":16410,"size_decoded":16676,"mime_type":"image/png","magic":"PNG image data, 1490 x 263, 8-bit/color RGBA, non-interlaced","md5":"c2483d36f7911cf2bd16303ae2c2b635","sha1":"b4a95c88e86aa202cb544cf0287d67b6a7ed2bba","sha256":"461929cf8596ebfd7e7c0d2fec8de5d3a5c3bee0ab7ff312a32deb019bd75be5","sha512":"95ad582fb4a4d11ca4e1ad3b337b1a5176f91ffa878d702f42b3157b08b389de096eb9a8ab662ba0db2613b188fa02f2d1b868a644d9221f6519bc024c743b4e","ssdeep":"384:gN8NtJh0aXvoU9GiQkt6t7d+IfymF4I/7bsp3dYn1Gusw0:gNAh0IgUUKtS7d+IfyFITbHO","tlshash":"f772d151b2972f90fdd804f1986d4ea5f773c740a18581ceaf88e8646d235fa14ab5c3","first_seen":"2024-06-18T00:47:48Z","last_seen":"2026-07-27T13:36:13.698449Z","times_seen":83,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAABdIAAAEHCAYAAACqSrQoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo0NTYxMDIzMS02MDI3LTZlNDEtYTllYy04ZmNjNzBlMWM4NjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjE4RUI1RkI0RjY5MTFFQUI0QjdBN0YwMDc5MTI2NDEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjE4RUI1RkE0RjY5MTFFQUI0QjdBN0YwMDc5MTI2NDEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MGU2YjViNmEtMjVmNC0wYjQ2LTk2ZDktMWY3YzQ0NDkyZjZkIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjQ1NjEwMjMxLTYwMjctNmU0MS1hOWVjLThmY2M3MGUxYzg2MiIv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"}},"time_used":35,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":28,"receive":7,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coin-images.coingecko.com/coins/images/738/large/CG_EOS_Icon.png?1731705232","fqdn":"coin-images.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.21.63.32","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.186Z","timestamp":1785129413186,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coin-images.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 11 Jun 2026 22:42:48 GMT","end":"Wed, 09 Sep 2026 23:41:15 GMT"},"fingerprint":{"sha1":"7A:6C:D0:D5:FD:4F:F2:F6:0E:21:8F:DB:FC:C2:6A:FB:03:26:BA:A8","sha256":"8F:4C:5D:49:64:66:ED:34:00:50:8C:D4:D9:03:C8:38:40:42:53:9D:67:B3:CD:AA:9E:0E:D5:41:02:8E:46:BA"}}},"request":{"raw":"GET /coins/images/738/large/CG_EOS_Icon.png?1731705232 HTTP/1.1\r\nHost: coin-images.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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/3 200 \r\nx-amz-id-2: j4JbaE+1OAQ01dbRmtoaMgm5FE8oW+TAjdRBLrOHM6QgcK7n90ny8IZZ73Q6G3ILfkzHZOgLmMg=\r\nx-amz-request-id: KH85E3PFM52W5MF7\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nx-amz-replication-status: REPLICA\r\nlast-modified: Fri, 15 Nov 2024 21:13:55 GMT\r\netag: \"e57d503851189addb2768cf2c838a64d\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: 1WzZRILTVssxSmYKEl54vLexpATuWM8L\r\naccept-ranges: bytes\r\ncontent-type: image/png\r\nserver-timing: cfExtPri\r\nserver: cloudflare\r\nage: 1857\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=ZKYVsGae7I7AWIAgdcm%2FRrzIvN3s7Ybh58JO1Q6SildcxoIJiWBsoyNROCq1aUw8iKCmjt%2BVRUbJXVYcHvEOpAW8vzdF5%2BclqsTlLluXZww8YCIoHTKR4mBjWaIrX5%2FYee7qcP8fk1dDjC0J\"}]}\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\npriority: u=5,i\r\ncf-ray: a2192cb07c3c5687-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 24537\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]}],"data":{"size":24537,"size_decoded":25488,"mime_type":"image/png","magic":"PNG image data, 250 x 250, 8-bit/color RGBA, non-interlaced","md5":"e57d503851189addb2768cf2c838a64d","sha1":"9e549bcc32f84550061ad391348c883f900f208c","sha256":"16bd234f9403281e3bcf1eaa6d291b47c6b051926b942e7790e9ca114bcaf511","sha512":"a2b016e9c4b77bee3c47f4d47b3377aa178fa35e961eb4abcdcf7579bf9c20a0557a350858a7e99760d66f20c12f222352be0ae9482542785d56a2b512d0c587","ssdeep":"384:IrUUKAlDpY+iqWepCiwr4bAoMKJTGa+YQAi9bUxAivP5z9SHb2hhMlRepSTtIvQq:IRPfTWeLwbOr+Yqbr+z92bp5+oq","tlshash":"85b2e053bfa045652f998c7090bbc24637f78f81d55e0e8acabd192c7fa72c451d720a","first_seen":"2024-11-25T11:23:20.548553Z","last_seen":"2026-07-29T06:15:23.436198Z","times_seen":1134,"resource_available":false,"data":"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"}},"time_used":26,"timings":{"blocked":9,"dns":0,"connect":0,"send":0,"wait":11,"receive":6,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/mcafee.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.733Z","timestamp":1785129412733,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/mcafee.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 2692\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":2692,"size_decoded":2957,"mime_type":"image/png","magic":"PNG image data, 115 x 57, 8-bit/color RGBA, non-interlaced","md5":"5351f4255225ccf9de56748ab7c12094","sha1":"d3d7c821bfdca099fdaf0f0d31f7b4e1934699f1","sha256":"b21c1aea1f2142d434f1bfcb825a002b07dc3aa7dffa40476c49c0ed8fe5a9b4","sha512":"db2d34c76d37ce7263f18c1aae1bdfd5fb32315ed78c7c0452a8c5b63cdf6312fcd6166c56c58914c9ed1a56ee22c7ec5f8faf4be9a542b2a12ca24865b57e26","ssdeep":"","tlshash":"38515cb5dbf1b65ab13aa2fb1ca79f67f0c90e1b0c65d8745706f00046765783280f99","first_seen":"2023-11-06T04:19:17Z","last_seen":"2026-07-27T13:36:13.72792Z","times_seen":88,"resource_available":false,"data":"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"}},"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":"danis-miners.com/","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":true,"resource_type":"document","requested_by":"","date":"2026-07-27T05:16:51.888Z","timestamp":1785129411888,"http_version":"HTTP/2","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET / HTTP/1.1\r\nHost: danis-miners.com\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\nset-cookie: CameFrom=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; secure\nPHPSESSID=58079b3ce92179ddb17a3733eda35e2a; path=/; domain=danis-miners.com; HttpOnly; secure\r\nexpires: Thu, 19 Nov 1981 08:52:00 GMT\r\ncache-control: no-store, no-cache, must-revalidate\r\npragma: no-cache\r\ncontent-type: text/html; charset=UTF-8\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\nalt-svc: h3=\":443\"; ma=2592000, h3-29=\":443\"; ma=2592000, h3-Q050=\":443\"; ma=2592000, h3-Q046=\":443\"; ma=2592000, h3-Q043=\":443\"; ma=2592000, quic=\":443\"; ma=2592000; v=\"43,46\"\r\nX-Firefox-Spdy: h2\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"WOW","description":"Reveal CSS animation as you scroll down a page.","website":"https://www.delac.io/WOW","common_platform_enumeration":"","icon":"","categories":["JavaScript frameworks","Web frameworks","JavaScript graphics"]},{"name":"jQuery UI","description":"jQuery UI is a collection of GUI widgets, animated visual effects, and themes implemented with jQuery, Cascading Style Sheets, and HTML.","website":"https://jqueryui.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery_ui:*:*:*:*:*:*:*:*","icon":"jQuery UI.svg","categories":["JavaScript libraries"]},{"name":"Mixitup","description":"A CSS3 and jQuery Filter \u0026 Sort Plugin.","website":"https://www.kunkalabs.com/mixitup/","common_platform_enumeration":"","icon":"kunkalabs.svg","categories":["JavaScript libraries"]},{"name":"Bootstrap","description":"Bootstrap is a free and open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components.","website":"https://getbootstrap.com","common_platform_enumeration":"cpe:2.3:a:getbootstrap:bootstrap:*:*:*:*:*:*:*:*","icon":"Bootstrap.svg","categories":["UI frameworks"]},{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]},{"name":"jQuery","description":"jQuery is a JavaScript library which is a free, open-source software designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax.","website":"https://jquery.com","common_platform_enumeration":"cpe:2.3:a:jquery:jquery:*:*:*:*:*:*:*:*","icon":"jQuery.svg","categories":["JavaScript libraries"]},{"name":"Popper","description":"Popper is a positioning engine, its purpose is to calculate the position of an element to make it possible to position it near a given reference element.","website":"https://popper.js.org","common_platform_enumeration":"","icon":"Popper.svg","categories":["Miscellaneous"]},{"name":"YouTube","description":"YouTube is a video sharing service where users can create their own profile, upload videos, watch, like and comment on other videos.","website":"https://www.youtube.com","common_platform_enumeration":"","icon":"YouTube.png","categories":["Video players"]},{"name":"FancyBox","description":"FancyBox is a tool for displaying images, html content and multi-media in a Mac-style 'lightbox' that floats overtop of web page.","website":"https://fancyapps.com/fancybox","common_platform_enumeration":"","icon":"FancyBox.svg","categories":["JavaScript libraries"]}],"data":{"size":54677,"size_decoded":13451,"mime_type":"text/html; charset=UTF-8","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (780)","md5":"19a4b36aadede6e8ce4fa4cde74b4105","sha1":"ec21e908f524127d6143a616433d28827f32311f","sha256":"fedeb7970fadd16fbc915bb3439a426ebfe95e2a38744c506bd99df7e4595747","sha512":"e04c2b8b0f07a03a1b10efeb2f273ddd001417d8796fba7b37f25107388742c452123b20680c7a1037a8dcc32e449292515ac387cfcd43e7cbef1d8628fbbbd7","ssdeep":"1536:E4n0RE078iHgN5DtBsSEUi3sKubfVX8rE:7n0S04iHCBsSEUi3sKubfVXR","tlshash":"e333943188f91437026381cb7a60674a6b9b9e33d51b8a61b6ff4f945fc3d81ec1324a","first_seen":"2026-07-27T04:09:43.946499Z","last_seen":"2026-07-27T10:24:20.331431Z","times_seen":5,"resource_available":false,"data":"IAoKPCFET0NUWVBFIGh0bWw+CjxodG1sPgoKCjxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiIC8+PCEtLSAvQWRkZWQgYnkgSFRUcmFjayAtLT4KPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCIgLz4KCgoKIDxjZW50ZXI+CjxkaXYgY2xhc3M9ImRyb3Bkb3duIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojMWEzOTZiOyI+CiA8ZGl2ICBpZD0iZ29vZ2xlX3RyYW5zbGF0ZV9lbGVtZW50Ij48L2Rpdj4KCgkJCQkJCQoJCQkJCQk8c2NyaXB0PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0KCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBnb29nbGUudHJhbnNsYXRlLlRyYW5zbGF0ZUVsZW1lbnQoewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VMYW5ndWFnZTogJ2VuJwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICdnb29nbGVfdHJhbnNsYXRlX2VsZW1lbnQnKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zY3JpcHQ+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3RyYW5zbGF0ZS5nb29nbGUuY29tL3RyYW5zbGF0ZV9hL2VsZW1lbnRhMGQ4LmpzP2NiPWdvb2dsZVRyYW5zbGF0ZUVsZW1lbnRJbml0Ij48L3NjcmlwdD4KCgo8L2Rpdj4KPC9jZW50ZXI+Cgo8c3R5bGU+Ci5nb29nLWxvZ28tbGluayB7CiAgIGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50Owp9CgouZ29vZy10ZS1nYWRnZXQgewogICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsKfQoKLmdvb2ctdGUtZ2FkZ2V0IC5nb29nLXRlLWNvbWJvIHsKICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7Cn0KPC9zdHlsZT4KCjxoZWFkPgo8IS0tIFNtYXJ0c3VwcCBMaXZlIENoYXQgc2NyaXB0IC0tPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CnZhciBfc21hcnRzdXBwID0gX3NtYXJ0c3VwcCB8fCB7fTsKX3NtYXJ0c3VwcC5rZXkgPSAnYmE0MjgxZGQxMGU0NThjMDk4ZGM0M2E2ZDdhYTA3OGRhMzRmMTBmOSc7CndpbmRvdy5zbWFydHN1cHB8fChmdW5jdGlvbihkKSB7CiAgdmFyIHMsYyxvPXNtYXJ0c3VwcD1mdW5jdGlvbigpeyBvLl8ucHVzaChhcmd1bWVudHMpfTtvLl89W107CiAgcz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtjPWQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgYy50eXBlPSd0ZXh0L2phdmFzY3JpcHQnO2MuY2hhcnNldD0ndXRmLTgnO2MuYXN5bmM9dHJ1ZTsKICBjLnNyYz0naHR0cHM6Ly93d3cuc21hcnRzdXBwY2hhdC5jb20vbG9hZGVyLmpzPyc7cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLHMpOwp9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5zbWFydHN1cHAuY29tIiB0YXJnZXQ9Il9ibGFuayI+U21hcnRzdXBwPC9hPjwvbm9zY3JpcHQ+CgoKCjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IldlJ3JlIGEgZGlzdGluY3RpdmUgd2VhbHRoIGFuZCBpbnZlc3RtZW50IG1hbmFnZW1lbnQgZmlybSBhY3RpdmVseSBidWlsZGluZyBlbmR1cmluZyB2YWx1ZSBmb3Igb3VyIGNsaWVudHMiPgo8dGl0bGU+IFdlbGNvbWUgVG8gZGFuaXMtbWluZXJzLmNvbTwvdGl0bGU+Cgo8IS0tIFN0eWxlc2hlZXRzIC0tPgo8bGluayBocmVmPSJjc3MvYm9vdHN0cmFwLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KPGxpbmsgaHJlZj0iY3NzL3N0eWxlLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KPGxpbmsgaHJlZj0iY3NzL3Jlc3BvbnNpdmUuY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKPCEtLSBDb2xvciBTd2l0Y2hlciBNb2NrdXAgLS0+CjxsaW5rIGhyZWY9ImNzcy9jb2xvci1zd2l0Y2hlci1kZXNpZ24uY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJpbWFnZXMvZGFuaXMuanBlZyIgdHlwZT0iaW1hZ2UveC1pY29uIj4KPGxpbmsgcmVsPSJpY29uIiBocmVmPSJpbWFnZXMvZGFuaXMuanBlZyIgdHlwZT0iaW1hZ2UveC1pY29uIj4KCjwhLS0gUmVzcG9uc2l2ZSAtLT4KPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAsIG1heGltdW0tc2NhbGU9MS4wLCB1c2VyLXNjYWxhYmxlPTAiPgoKCgo8L2hlYWQ+Cgo8Ym9keT4KCgo8ZGl2IGNsYXNzPSJwYWdlLXdyYXBwZXIiPgoKICAgIDwhLS0gUHJlbG9hZGVyIC0tPgoKCiAgICA8IS0tIEhlYWRlciBTdHlsZSBUaHJlZS0tPgogICAgPGhlYWRlciBjbGFzcz0ibWFpbi1oZWFkZXIgaGVhZGVyLXN0eWxlLXRocmVlIj4KCiAgICAgICAgPCEtLUhlYWRlciBUb3AtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJoZWFkZXItdG9wLXRocmVlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0by1jb250YWluZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPgoKICAgICAgICAgICAgICAgICAgICA8IS0tIFRvcCBMZWZ0IC0tPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRvcC1sZWZ0IGNsZWFyZml4Ij4KCQkJCQkJPGRpdiBjbGFzcz0idGV4dCI+V2VsY29tZSB0byBkYW5pcy1taW5lcnMuY29tPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8IS0tSGVhZGVyIExvd2VyLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLWxvd2VyIj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dG8tY29udGFpbmVyIj4KCQkJCTxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciBjbGVhcmZpeCI+CgkJCQkJPCEtLSBMb2dvIEJveCAtLT4KCQkJCQk8ZGl2IGNsYXNzPSJwdWxsLWxlZnQgbG9nby1ib3giPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dvIj4KPGJyPgo8YSBocmVmPSI/YT1ob21lIj48aW1nIHNyYz0iaW1hZ2VzL2RhbmlzLmpwZWciIGFsdD0iIiB0aXRsZT0iIiB3aWR0aD0iMTAwcHgiPjwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJuYXYtb3V0ZXIgY2xlYXJmaXgiPgoJCQkJCQk8IS0tIE1vYmlsZSBOYXZpZ2F0aW9uIFRvZ2dsZXIgLS0+CgkJCQkJCTxkaXYgY2xhc3M9Im1vYmlsZS1uYXYtdG9nZ2xlciI+PHNwYW4gY2xhc3M9Imljb24gZmxhdGljb24tbWVudS0yIj48L3NwYW4+PC9kaXY+CgkJCQkJCTwhLS0gTWFpbiBNZW51IC0tPgoJCQkJCQk8bmF2IGNsYXNzPSJtYWluLW1lbnUgc2hvdyBuYXZiYXItZXhwYW5kLW1kIj4KCQkJCQkJCTxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgoJCQkJCQkJCTxidXR0b24gY2xhc3M9Im5hdmJhci10b2dnbGVyIiB0eXBlPSJidXR0b24iIGRhdGEtdG9nZ2xlPSJjb2xsYXBzZSIgZGF0YS10YXJnZXQ9IiNuYXZiYXJTdXBwb3J0ZWRDb250ZW50IiBhcmlhLWNvbnRyb2xzPSJuYXZiYXJTdXBwb3J0ZWRDb250ZW50IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1sYWJlbD0iVG9nZ2xlIG5hdmlnYXRpb24iPgoJCQkJCQkJCQk8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4KCQkJCQkJCQkJPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CgkJCQkJCQkJCTxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPgoJCQkJCQkJCTwvYnV0dG9uPgoJCQkJCQkJPC9kaXY+CgoJCQkJCQkJPGRpdiBjbGFzcz0ibmF2YmFyLWNvbGxhcHNlIGNvbGxhcHNlIGNsZWFyZml4IiBpZD0ibmF2YmFyU3VwcG9ydGVkQ29udGVudCI+CgkJCQkJCQkJPHVsIGNsYXNzPSJuYXZpZ2F0aW9uIGNsZWFyZml4Ij4KCQkJCQkJCQkJPGxpID48YSBocmVmPSI/YT1ob21lIj5Ib21lPC9hPjwvbGk+CgkJCQkJCQkJPGxpPjxhIGhyZWY9Ij9hPWFib3V0Ij5BYm91dCBVczwvYT48L2xpPgoJCQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2E9c3VzdGFpbiI+U3VzdGFpbmFiaWxpdHk8L2E+PC9saT4KCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ij9hPXN1cHBvcnQiPkNvbnRhY3Q8L2E+PC9saT4KIAogPGxpPjxhIGhyZWY9Ij9hPWxvZ2luIj5JbnZlc3RvciBMb2dpbjwvYT48L2xpPgo8bGk+PGEgaHJlZj0iP2E9c2lnbnVwIj5SZWdpc3RlcjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIAkJCQkJCQkJIDwvdWw+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9uYXY+CgkJCQkJCTwhLS0gTWFpbiBNZW51IEVuZC0tPgoKCQkJCQkJPCEtLSBPcHRpb25zIEJveCAtLT4KCQkJCQkJPGRpdiBjbGFzcz0ib3B0aW9ucy1ib3ggY2xlYXJmaXgiPgoKCQkJCQkJCTwhLS0gR3JpZCBCb3ggLS0+CgkJCQkJCQk8ZGl2IGNsYXNzPSJncmlkLWJveCBuYXZTaWRlYmFyLWJ1dHRvbiI+CgkJCQkJCQkJPGEgaHJlZj0iIyIgY2xhc3M9Imljb24gZmxhdGljb24tbWVudS0yIj48L2E+CgkJCQkJCQk8L2Rpdj4KCgkJCQkJCQk8IS0tU2VhcmNoIEJveC0tPgoJCQkJCQkJPGRpdiBjbGFzcz0ic2VhcmNoLWJveC1vdXRlciI+CgoJCQkJCQkJPC9kaXY+CiAgCgk8ZGl2IGNsYXNzPSJidG4tYm94Ij4KCQkJCQkJCQk8YSBocmVmPSI/YT1zaWdudXAiIGNsYXNzPSJ0aGVtZS1idG4gYnRuLXN0eWxlLW5pbmUiPjxzcGFuIGNsYXNzPSJ0eHQiPlN0YXJ0PC9zcGFuPjwvYT4KCQkJCQkJCTwvZGl2PgogICAgCQkJCQkJCgoJCQkJCQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDwhLS0gRW5kIEhlYWRlciBMb3dlciAtLT4KCiAgICAgICAgPCEtLSBNb2JpbGUgTWVudSAgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9iaWxlLW1lbnUiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxYTM5NmI7Y29sb3I6I2ZmZjsiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LWJhY2tkcm9wIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtYnRuIj48c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1tdWx0aXBseSI+PC9zcGFuPjwvZGl2PgoKICAgICAgICAgICAgPG5hdiBjbGFzcz0ibWVudS1ib3giPgo8ZGl2IGNsYXNzPSJuYXYtbG9nbyI+PGEgaHJlZj0iP2E9aG9tZSI+PGltZyBzcmM9ImltYWdlcy9kYW5pcy5qcGVnIiBhbHQ9IiIgdGl0bGU9IiIgd2lkdGg9IjEwMHB4Ij48L2E+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtZW51LW91dGVyIj4KCQkJCQk8IS0tSGVyZSBNZW51IFdpbGwgQ29tZSBBdXRvbWF0aWNhbGx5IFZpYSBKYXZhc2NyaXB0IC8gU2FtZSBNZW51IGFzIGluIEhlYWRlci0tPgoJCQkJPC9kaXY+CiAgICAgICAgICAgIDwvbmF2PgogICAgICAgIDwvZGl2PjwhLS0gRW5kIE1vYmlsZSBNZW51IC0tPgoKICAgIDwvaGVhZGVyPgogICAgPCEtLSBFbmQgTWFpbiBIZWFkZXIgLS0+CiAgICAKIDxzZWN0aW9uIGNsYXNzPSJtYWluLXNsaWRlciI+CiAgICAJCiAgICAgICAgPGRpdiBjbGFzcz0ibWFpbi1zbGlkZXItY2Fyb3VzZWwgb3dsLWNhcm91c2VsIG93bC10aGVtZSI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJzbGlkZSIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHBzOi8vbWVkaWEuaXN0b2NrcGhvdG8uY29tL2lkLzE1NjEwNDIwMTEvcGhvdG8vZ3Jvd3RoLWFuZC1kZXZlbG9wbWVudC1jaGFydC1vZi1jb21wYW55LWluLW5ldy15ZWFyLTIwMjQtZGV2ZWxvcG1lbnQtdG8tc3VjY2Vzcy1hbmQtbW90aXZhdGlvbi5qcGc/cz02MTJ4NjEyJnc9MCZrPTIwJmM9X244NVZMeEdRY2pDWHlzRDV6aXg3eWxPLVhzbnY2QU5MSEF6LTBfUlpxYz0pIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dG8tY29udGFpbmVyIj4KCQkJCQkKCQkJCQk8IS0tIENvbnRlbnQgYm94ZWQgLS0+CgkJCQkJPGRpdiBjbGFzcz0iY29udGVudC1ib3hlZCI+CgkJCQkJCTxkaXYgY2xhc3M9InRpdGxlIj5XZWxjb21lIHRvIGRhbmlzLW1pbmVycy5jb208L2Rpdj4KCQkJCQkJPGgxPldlIERlbGl2ZXIgPGJyPlF1YWxpdHkgUmVzdWx0czwvaDE+CgkJCQkJCTxkaXYgY2xhc3M9ImxpbmstYm94IGNsZWFyZml4Ij4KCQkJCQkJCTxhIGhyZWY9ImFuYWZpdHJhZGUubXA0IiBjbGFzcz0ibGlnaHRib3gtaW1hZ2UgdmlkZW8tYm94Ij48c3BhbiBjbGFzcz0iZmEgZmEtcGxheSI+PGkgY2xhc3M9InJpcHBsZSI+PC9pPjwvc3Bhbj48L2E+CgkJCQkJCQk8YSBocmVmPSI/YT1zaWdudXAiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGhlbWUtYnRuIGJ0bi1zdHlsZS10aHJlZSI+PHNwYW4gY2xhc3M9InR4dCI+U2lnbiB1cDwvc3Bhbj48L2E+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2xpZGUiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy8xNzQ4NjU5Ni9wZXhlbHMtcGhvdG8tMTc0ODY1OTYvZnJlZS1waG90by1vZi13b21hbi1hbmQtbWFuLWluLXN1aXRzLWluLW9mZmljZS5qcGVnP2F1dG89Y29tcHJlc3MmY3M9dGlueXNyZ2Imdz04MDApIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImF1dG8tY29udGFpbmVyIj4KCQkJCQk8IS0tIENvbnRlbnQgYm94ZWQgLS0+CgkJCQkJPGRpdiBjbGFzcz0iY29udGVudC1ib3hlZCI+CgkJCQkJCTxkaXYgY2xhc3M9InRpdGxlIj5XZSBoaXJlIHRoZSBiZXN0IHRyYWRlcnM8L2Rpdj4KCQkJCQkJPGgxPlRvIG1hbmFnZSB5b3VyIGludmVzdG1lbnRzIDxicj48L2gxPgoJCQkJCQk8ZGl2IGNsYXNzPSJsaW5rLWJveCBjbGVhcmZpeCI+CgkJCQkJCQk8YSBocmVmPSJhbmFmaXRyYWRlLm1wNCIgY2xhc3M9ImxpZ2h0Ym94LWltYWdlIHZpZGVvLWJveCI+PHNwYW4gY2xhc3M9ImZhIGZhLXBsYXkiPjxpIGNsYXNzPSJyaXBwbGUiPjwvaT48L3NwYW4+PC9hPgoJCQkJCQkJPGEgaHJlZj0iP2E9bG9naW4iIGNsYXNzPSJ0aGVtZS1idG4gYnRuLXN0eWxlLXRocmVlIj48c3BhbiBjbGFzcz0idHh0Ij5Mb2dpbjwvc3Bhbj48L2E+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoJCQkKCQkJPGRpdiBjbGFzcz0ic2xpZGUiIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOnVybChodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy80Mzk3MjIwL3BleGVscy1waG90by00Mzk3MjIwLmpwZWc/YXV0bz1jb21wcmVzcyZjcz10aW55c3JnYiZ3PTgwMCkiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYXV0by1jb250YWluZXIiPgoJCQkJCTwhLS0gQ29udGVudCBib3hlZCAtLT4KCQkJCQk8ZGl2IGNsYXNzPSJjb250ZW50LWJveGVkIj4KCQkJCQkJPGRpdiBjbGFzcz0idGl0bGUiPkludmVzdCB3aXRoIGEgZmlybSB5b3UgY2FuIHRydXN0PC9kaXY+CgkJCQkJCTxoMT4yNC83IE1vbml0b3JpbmcgPGJyPiBvZiB5b3VyIGludmVzdG1lbnQgaXMgYXNzdXJlZC48L2gxPgoJCQkJCQk8ZGl2IGNsYXNzPSJsaW5rLWJveCBjbGVhcmZpeCI+CgkJCQkJCQk8YSBocmVmPSJhbmFmaXRyYWRlLm1wNCIgY2xhc3M9ImxpZ2h0Ym94LWltYWdlIHZpZGVvLWJveCI+PHNwYW4gY2xhc3M9ImZhIGZhLXBsYXkiPjxpIGNsYXNzPSJyaXBwbGUiPjwvaT48L3NwYW4+PC9hPgoJCQkJCQkJPGEgaHJlZj0iP2E9YWJvdXRfdXMiIGNsYXNzPSJ0aGVtZS1idG4gYnRuLXN0eWxlLXRocmVlIj48c3BhbiBjbGFzcz0idHh0Ij5BYm91dCBVczwvc3Bhbj48L2E+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoJCQogICAgPC9zZWN0aW9uPgogIAo8c2VjdGlvbiBjbGFzcz0ic2VydmljZXMtc2VjdGlvbiIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy83ODk3NDcwL3BleGVscy1waG90by03ODk3NDcwYTFhOC5qcGc/YXV0bz1jb21wcmVzcyZhbXA7Y3M9dGlueXNyZ2ImYW1wO3c9ODAwKSI+CjxzY3JpcHQgc3JjPSJodHRwczovL3dpZGdldHMuY29pbmdlY2tvLmNvbS9jb2luZ2Vja28tY29pbi1wcmljZS1tYXJxdWVlLXdpZGdldC5qcyI+PC9zY3JpcHQ+CiAgICA8Y29pbmdlY2tvLWNvaW4tcHJpY2UtbWFycXVlZS13aWRnZXQgY29pbi1pZHM9ImJpdGNvaW4sZXRoZXJldW0sZW9zLHJpcHBsZSxsaXRlY29pbiIgY3VycmVuY3k9InVzZCIgYmFja2dyb3VuZC1jb2xvcj0iI2ZmZmZmZiIgbG9jYWxlPSJlbiIgZm9udC1jb2xvcj0iIzFiNDc3ZSI+PC9jb2luZ2Vja28tY29pbi1wcmljZS1tYXJxdWVlLXdpZGdldD4KCgoJCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJwYXRlcm4tbGF5ZXIiPjwvZGl2PgoJCTxkaXYgY2xhc3M9ImF1dG8tY29udGFpbmVyIj4KCQkJPGRpdiBjbGFzcz0iaW5uZXItY29udGFpbmVyIj4KCQkJCQoJCQkJPGRpdiBjbGFzcz0idGhyZWUtaXRlbS1jYXJvdXNlbCBvd2wtY2Fyb3VzZWwgb3dsLXRoZW1lIj4KCQkJCQkKCQkJCQk8IS0tIFNlcnZpY2UgQmxvY2sgLS0+CgkJCQkJPGRpdiBjbGFzcz0ic2VydmljZS1ibG9jayI+CgkJCQkJCTxkaXYgY2xhc3M9ImlubmVyLWJveCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzFhMzk2Yjtjb2xvcjojZmZmOyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjb250ZW50LWJveCI+CgkJCQkJCQkJPGRpdiBjbGFzcz0iaWNvbi1ib3giPgoJCQkJCQkJCQk8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1waWUtY2hhcnQtMyI+PC9zcGFuPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTxoNT48YSBocmVmPSIjIiBzdHlsZT0iY29sb3I6I2ZmZjsiPjI0LzcgU3VwcG9ydDwvYT48L2g1PgoJCQkJCQkJCTxkaXYgY2xhc3M9InRleHQiIHN0eWxlPSJjb2xvcjojZmZmOyI+T3VyIGN1c3RvbWVyIHNlcnZpY2UgdW5pdCBpcyBhbHdheXMgYXZhaWxhYmxlIDI0LzcgdG8gYXR0ZW5kIHRvIHlvdXIgbmVlZHMvcXVlcnJpZXMuPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImJpZy1pY29uIGZsYXRpY29uLXBpZS1jaGFydC0zIj48L2Rpdj4KCQkJCQkJCTxhIGhyZWY9IiMiIGNsYXNzPSJhcnJvdy1ib3giPjxzcGFuIGNsYXNzPSJpY29uIGZsYXRpY29uLWFycm93LXBvaW50aW5nLXRvLXJpZ2h0Ij48L3NwYW4+PC9hPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQkKCQkJCQk8IS0tIFNlcnZpY2UgQmxvY2sgLS0+CgkJCQkJPGRpdiBjbGFzcz0ic2VydmljZS1ibG9jayI+CgkJCQkJCTxkaXYgY2xhc3M9ImlubmVyLWJveCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzFhMzk2Yjtjb2xvcjojZmZmOyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjb250ZW50LWJveCI+CgkJCQkJCQkJPGRpdiBjbGFzcz0iaWNvbi1ib3giPgoJCQkJCQkJCQk8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1zZWFyY2gtZW5naW5lIj48L3NwYW4+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPGg1PjxhIGhyZWY9IiMiIHN0eWxlPSJjb2xvcjojZmZmOyI+Tk8gSElEREVOIEZFRVM8L2E+PC9oNT4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0ZXh0IiBzdHlsZT0iY29sb3I6I2ZmZjsiPk91ciBzeXN0ZW0gaXMgZGVzaWduZWQgd2l0aG91dCBoaWRkZW4gY2hhcmdlcy4gWW91IHdpbGwgcmVjZWl2ZSB5b3VyIHByb21pc2VkIFJPSSBhdCB0aGUgZW5kIG9mIHlvdXIgaW52ZXN0bWVudC48L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iYmlnLWljb24gZmxhdGljb24tc2VhcmNoLWVuZ2luZSI+PC9kaXY+CgkJCQkJCQk8YSBocmVmPSIjIiBjbGFzcz0iYXJyb3ctYm94Ij48c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1hcnJvdy1wb2ludGluZy10by1yaWdodCI+PC9zcGFuPjwvYT4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJCgkJCQkJPCEtLSBTZXJ2aWNlIEJsb2NrIC0tPgoJCQkJCTxkaXYgY2xhc3M9InNlcnZpY2UtYmxvY2siPgoJCQkJCQk8ZGl2IGNsYXNzPSJpbm5lci1ib3giIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxYTM5NmI7Y29sb3I6I2ZmZjsiPgoJCQkJCQkJPGRpdiBjbGFzcz0iY29udGVudC1ib3giPgoJCQkJCQkJCTxkaXYgY2xhc3M9Imljb24tYm94Ij4KCQkJCQkJCQkJPHNwYW4gY2xhc3M9Imljb24gZmxhdGljb24tZ3Jvd3RoIj48L3NwYW4+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPGg1PjxhIGhyZWY9IiMiIHN0eWxlPSJjb2xvcjojZmZmOyI+SU5TVEFOVCBJTlZFU1RNRU5UPC9hPjwvaDU+CgkJCQkJCQkJPGRpdiBjbGFzcz0idGV4dCIgc3R5bGU9ImNvbG9yOiNmZmY7Ij5DcmVhdGUgYW4gYWNjb3VudCB3aXRoIG91ciBwbGF0Zm9ybSwgbWFrZSBhIGRlcG9zaXQgYW5kIHN0YXJ0IGludmVzdGluZyBpbW1lZGlhdGVseS48L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJPGRpdiBjbGFzcz0iYmlnLWljb24gZmxhdGljb24tZ3Jvd3RoIj48L2Rpdj4KCQkJCQkJCTxhIGhyZWY9IiMiIGNsYXNzPSJhcnJvdy1ib3giPjxzcGFuIGNsYXNzPSJpY29uIGZsYXRpY29uLWFycm93LXBvaW50aW5nLXRvLXJpZ2h0Ij48L3NwYW4+PC9hPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9zZWN0aW9uPgogPCEtLSBXZSBBcmUgU2VjdGlvbiAtLT4KIDxzZWN0aW9uIGNsYXNzPSJ3ZS1hcmUtc2VjdGlvbiIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL2ltYWdlcy5wZXhlbHMuY29tL3Bob3Rvcy83ODk3NDcwL3BleGVscy1waG90by03ODk3NDcwLmpwZWc/YXV0bz1jb21wcmVzcyZjcz10aW55c3JnYiZ3PTgwMCkiPgogICA8ZGl2IGNsYXNzPSJhdXRvLWNvbnRhaW5lciI+CiAgICAgPGRpdiBjbGFzcz0icm93Ij4KCQkKICAgICAgIDxkaXYgY2xhc3M9InRpdGxlLWNvbHVtbiBjb2wtbGctNSBjb2wtbWQtMTIgY29sLXNtLTEyIj4KICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItY29sdW1uIj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWMtdGl0bGUgc3R5bGUtdGhyZWUiPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPjxoMz5XaG8gV2UgQXJlPC9oMz48L2Rpdj4KICAgICAgICAgICAgIDxoMj5Xb3JraW5nIHRvZ2V0aGVyIHRvIGRlbGl2ZXIgZ3Jvd3RoIHRvIHlvdXIgaW52ZXN0bWVudHMuPC9oMj4KICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICA8L2Rpdj4KCiAgICAgICA8IS0tIENvbnRlbnQgQ29sdW1uIC0tPgogICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1jb2x1bW4gY29sLWxnLTcgY29sLW1kLTEyIGNvbC1zbS0xMiI+CiAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbHVtbiI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPgogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwdWxsLWxlZnQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAgICAgICAgIDxpZnJhbWUgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMjc1IiBzcmM9ImFuYWZpdHJhZGUubXA0IiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPiAtLT4KCiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dCIgc3R5bGU9ImNvbG9yOndoaXRlOyI+IHByb2ZpdGNhYmluaW52ZXN0bWVudCB3YXMgZm91bmRlZCBzaW5jZSAxOTg5LCBhcyBhIHByaXZhdGUgY29tcGFueSwgdGhlIGNvbXBhbnkgaXMgbGltaXRlZCBieSBzaGFyZXMuIEFuZCByZWdpc3RlciBhcyBhIG1pbmluZyBjb21wYW55IG9uIDIwMTkgdGhlaXIgYWltZWQgaXMgdG8gbWFrZSBpbnZlc3RvcnMgdG8gZWFybmluZyBkYWlseSBpbmNvbWUgYnkgaW52ZXN0aW5nIGluIEJpdGNvaW4uIFRoZSBjb21wYW55IHBhcnRpY2lwYXRlIGluIGFuIGludmVzdG1lbnQgY29tcGFueSB3aXRob3V0IGFueSB0ZWNobmljYWwga25vd2xlZGdlLiBBbmQgYWxsIGZ1bmRzIGFyZSBzZWN1cmVseSBzdG9yZWQgaW4gYSBjb2xkIEJUQyB3YWxsZXQKV2Ugb2ZmZXIgYSB3aWRlIHJhbmdlIG9mIHNlcnZpY2VzLCBkZXNpZ25lZCB0byBoZWxwIEJpdGNvaW4gbWluZXJzIGludmVzdCB0aGVpciBCaXRjb2lucyBhdCBncmVhdCBpbnRlcmVzdCByYXRlcy4gUHJvZml0Y2FiaW5pbnZlc3RtZW50IG1ha2UgdXNlIG9mIGhpZ2gtZ3JhZGUgbWluaW5nIG1hY2hpbmVzIGxpa2U7IERyYWdvbk1pbnQgVDEgTWluZXIsIEJpdG1haW4gQW50bWluZXIgUzlpLCB3aGljaCBjYW4gYmUgc2VlbiBpbiBvdXIgaHVnZSBtaW5pbmcgZmlybS4gV2UgYXJlIGJhc2VkIGluIExvbmRvbiBhbmQgaGF2ZSBwYWlkIG92ZXIgJDY5LjMgbWlsbGlvbiBkb2xsYXJzIHRvIGFsbCBvdXIgSW52ZXN0b3JzIHdvcmxkd2lkZS4gSm9pbiBvdXIgcGxhdGZvcm0gYW5kIHN0YXJ0IGdldHRpbmcgcHJvZml0IHdpdGggZWFzZSBldmVyeSBkYXkhLgogIDwvZGl2PgogICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHVsbC1yaWdodCI+CiAgICAgICAgICAgICAgICAgPGEgaHJlZj0icHJvZml0Y2FiaW5fY2VydGlmaWNhdGUuanBlZyIgY2xhc3M9InRoZW1lLWJ0biBidG4tc3R5bGUtbmluZSI+PHNwYW4gY2xhc3M9InR4dCI+Q09NUEFOWSBDRVJUPC9zcGFuPjwvYT4KICAgICAgICAgICAgPCEtLSAgICAgPGEgaHJlZj0iYW5hZml0cmFkZS5wZGYiIGNsYXNzPSJ0aGVtZS1idG4gYnRuLXN0eWxlLW5pbmUiPjxzcGFuIGNsYXNzPSJ0eHQiPkNPTVBBTlkgUERGPC9zcGFuPjwvYT4gLS0+CiAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgICAgPC9kaXY+CgogICAgIDwvZGl2PgogICA8L2Rpdj4KIDwvc2VjdGlvbj4KIDwhLS0gRW5kIFdlIEFyZSBTZWN0aW9uIC0tPgogCiAgPCEtLSBFbmQgV2UgQXJlIFNlY3Rpb24gLS0+CiA8c2VjdGlvbiBjbGFzcz0iZmx1aWQtc2VjdGlvbi10d28gc3R5bGUtdHdvIj4KICAgIAk8ZGl2IGNsYXNzPSJvdXRlci1jb250YWluZXIgY2xlYXJmaXgiPgoKICAgICAgICAgICAgPCEtLSBJbWFnZSBDb2x1bW4gLS0+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImltYWdlLWNvbHVtbiIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKGltYWdlcy9iZzUucG5nKTsiPgogICAgICAgICAgICAJPGZpZ3VyZSBjbGFzcz0iaW1hZ2UtYm94Ij48aW1nIHNyYz0iLi4vaW1hZ2VzLnBleGVscy5jb20vcGhvdG9zLzU4MzM3NzUvcGV4ZWxzLXBob3RvLTU4MzM3NzVhMWE4LmpwZz9hdXRvPWNvbXByZXNzJmFtcDtjcz10aW55c3JnYiZhbXA7dz04MDAiIGFsdD0iIj48L2ZpZ3VyZT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgIAk8IS0tIENvbnRlbnQgQ29sdW1uIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWNvbHVtbiI+CiAgICAgICAgICAgIAk8ZGl2IGNsYXNzPSJpbm5lci1jb2x1bW4iPgoJCQkJCTxkaXYgY2xhc3M9InNlYy10aXRsZSI+CgkJCQkJCTxkaXYgY2xhc3M9InRpdGxlIj5CdWlsZCBZb3VyIFRlYW08L2Rpdj4KCQkJCQkJPGgyPkRvIFlvdSBXYW50IFRvIEJlIEEgUGFydCBPZiA8YnI+IE91ciBQYXJ0bmVyc2hpcCBQcm9ncmFtPzwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgPlVzaW5nIHlvdXIgcmVmZXJyYWwgY29kZSBpbiB5b3VyIGludmVzdG9yIGRhc2hib2FyZCwgcmVmZXIgcG90ZW50aWFsIGludmVzdG9ycyB0byBvdXIgc2VydmljZSBhbmQgZWFybi4gWW91IGdhaW4gYSBjb21taXNzaW9uIG9mIDxzdHJvbmc+MTAlPC9zdHJvbmc+IHBlciBldmVyeSBpbnZlc3RlZCByZWZlcnJhbCByZWdpc3RlcmVkIHdpdGggeW91ciBsaW5rLjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTx1bCBjbGFzcz0iY29sdW1uLWxpc3QiPgoJCQkJCQk8bGk+PHN0cm9uZz5JbnN0YW50IENvbW1pc3Npb25zPC9zdHJvbmc+PC9saT4KCQkJCQkJPGxpPjxzdHJvbmc+QWNjZXNzaWJsZSBBbHdheXM8L3N0cm9uZz48L2xpPgoJCQkJCQk8bGk+PHN0cm9uZz5GdXR1cmUgSW5jZW50aXZlczwvc3Ryb25nPjwvbGk+CgkJCQkJPC91bD4KCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCgkJPC9kaXY+CgoJCgoJPC9zZWN0aW9uPgogCiAgPHN0eWxlPgogICAgICAgICAgICAgICAubWFpbi10aW1lbGluZXsgZm9udC1mYW1pbHk6ICdCYXJsb3cnLCBzYW5zLXNlcmlmOyB9Ci5tYWluLXRpbWVsaW5lOmFmdGVyewogICAgY29udGVudDogJyc7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNsZWFyOiBib3RoOwp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZXsKICAgIHdpZHRoOiA1MCU7CiAgICBwYWRkaW5nOiAxMnB4OwogICAgbWFyZ2luOiAwIDVweCAwIDA7CiAgICBmbG9hdDogbGVmdDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIHotaW5kZXg6IDE7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lLWNvbnRlbnR7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgbWluLWhlaWdodDogMTY1cHg7CiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNjBweCAxNDBweDsKICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZS1jb250ZW50OmhvdmVyeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lLWNvbnRlbnQ6YmVmb3JlLAoubWFpbi10aW1lbGluZSAudGltZWxpbmUtY29udGVudDphZnRlcnsKICAgIGNvbnRlbnQ6ICIiOwogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDBhZWVmIDAlLCAjMjUyNDM1IDEwMCUpOwogICAgd2lkdGg6IDgwcHg7CiAgICBoZWlnaHQ6IDYwJTsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTEwcHg7CiAgICBsZWZ0OiAtMTBweDsKICAgIHotaW5kZXg6IC0xOwp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZS1jb250ZW50OmFmdGVyewogICAgdG9wOiBhdXRvOwogICAgbGVmdDogYXV0bzsKICAgIGJvdHRvbTogLTEwcHg7CiAgICByaWdodDogLTEwcHg7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lLXllYXJ7CiAgICBjb2xvcjogI2ZmZjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwYWVlZiAwJSwgIzI1MjQzNSAxMDAlKTsKICAgIGZvbnQtc2l6ZTogMzBweDsKICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBsaW5lLWhlaWdodDogMTY1cHg7CiAgICB3aWR0aDogOTVweDsKICAgIGJveC1zaGFkb3c6IDEwcHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMjBweDsKICAgIHRvcDogLTEycHg7CiAgICBib3R0b206IC0xMnB4Owp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZS15ZWFyOmJlZm9yZXsKICAgIGNvbnRlbnQ6ICIiOwogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDBhZWVmIDAlLCAjMjUyNDM1IDEwMCUpOwogICAgd2lkdGg6IDEycHg7CiAgICBoZWlnaHQ6IDEycHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDA7CiAgICByaWdodDogLTEycHg7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lLWljb257CiAgICBjb2xvcjogIzIwMzc0ZTsKICAgIGZvbnQtc2l6ZTogMzVweDsKICAgIGxpbmUtaGVpZ2h0OiA0MHB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYm90dG9tOiAxMHB4OwogICAgcmlnaHQ6IDEwcHg7Cn0KLm1haW4tdGltZWxpbmUgLnRpdGxlewogICAgY29sb3I6ICMyMDM3NGU7CiAgICBmb250LXNpemU6IDIwcHg7CiAgICBmb250LXdlaWdodDogOTAwOwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICBtYXJnaW46IDAgMCAzcHggMDsKfQoubWFpbi10aW1lbGluZSAuZGVzY3JpcHRpb257CiAgICBjb2xvcjogIzU1NTsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIGxldHRlci1zcGFjaW5nOiAxcHg7CiAgICBtYXJnaW46IDA7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZChldmVuKXsKICAgIGZsb2F0OiByaWdodDsKICAgIG1hcmdpbjogMCAwIDAgNXB4Owp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lLWNvbnRlbnR7IHBhZGRpbmc6IDIwcHggMTQwcHggNjBweCAyMHB4OyB9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lLWNvbnRlbnQ6YmVmb3JlewogICAgbGVmdDogYXV0bzsKICAgIHJpZ2h0OiAtMTBweDsKfQoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKGV2ZW4pIC50aW1lbGluZS1jb250ZW50OmFmdGVyewogICAgcmlnaHQ6IGF1dG87CiAgICBsZWZ0OiAtMTBweDsKfQoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKGV2ZW4pIC50aW1lbGluZS15ZWFyewogICAgYm94LXNoYWRvdzogLTEwcHggNXB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjMpOwogICAgbGVmdDogYXV0bzsKICAgIHJpZ2h0OiAxMHB4Owp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lLXllYXI6YmVmb3JlewogICAgdHJhbnNmb3JtOiByb3RhdGVZKDE4MGRlZyk7CiAgICByaWdodDogYXV0bzsKICAgIGxlZnQ6IC0xMnB4Owp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoZXZlbikgLnRpbWVsaW5lLWljb257CiAgICByaWdodDogYXV0bzsKICAgIGxlZnQ6IDEwcHg7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bisyKSAudGltZWxpbmUtY29udGVudDpiZWZvcmUsCi5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoNG4rMikgLnRpbWVsaW5lLWNvbnRlbnQ6YWZ0ZXIsCi5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoNG4rMikgLnRpbWVsaW5lLXllYXJ7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwMGFlZWYgMCUsICMyNTI0MzUgMTAwJSk7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bisyKSAudGltZWxpbmUtaWNvbiwKLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bisyKSAudGl0bGV7CiAgICBjb2xvcjogIzIwMzc0ZTsKfQoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKDRuKzIpIC50aW1lbGluZS15ZWFyOmJlZm9yZXsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AgcmlnaHQsICNhZjU4MDcgNDklLCB0cmFuc3BhcmVudCA1MCUpOwp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoNG4rMykgLnRpbWVsaW5lLWNvbnRlbnQ6YmVmb3JlLAoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKDRuKzMpIC50aW1lbGluZS1jb250ZW50OmFmdGVyLAoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKDRuKzMpIC50aW1lbGluZS15ZWFyewogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDBhZWVmIDAlLCAjMjUyNDM1IDEwMCUpOwp9Ci5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoNG4rMykgLnRpbWVsaW5lLWljb24sCi5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoNG4rMykgLnRpdGxlewogICAgY29sb3I6ICMyRTQ3NUQ7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0biszKSAudGltZWxpbmUteWVhcjpiZWZvcmV7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wIHJpZ2h0LCAjMDQxYjJiIDQ5JSwgdHJhbnNwYXJlbnQgNTAlKTsKfQoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKDRuKzQpIC50aW1lbGluZS1jb250ZW50OmJlZm9yZSwKLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bis0KSAudGltZWxpbmUtY29udGVudDphZnRlciwKLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bis0KSAudGltZWxpbmUteWVhcnsKICAgIGJhY2tncm91bmQ6ICM1Y2E1MWM7Cn0KLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bis0KSAudGltZWxpbmUtaWNvbiwKLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZCg0bis0KSAudGl0bGV7CiAgICBjb2xvcjogIzVjYTUxYzsKfQoubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKDRuKzQpIC50aW1lbGluZS15ZWFyOmJlZm9yZXsKICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwYWVlZiAwJSwgIzI1MjQzNSAxMDAlKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjc2N3B4KXsKICAgIC5tYWluLXRpbWVsaW5lIC50aW1lbGluZSwKICAgIC5tYWluLXRpbWVsaW5lIC50aW1lbGluZTpudGgtY2hpbGQoZXZlbil7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWFyZ2luOiAwIDAgMjBweCAwOwogICAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDc5cHgpewogICAgLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lIC50aW1lbGluZS1jb250ZW50LAogICAgLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZChldmVuKSAudGltZWxpbmUtY29udGVudHsKICAgICAgICBwYWRkaW5nOiA2MHB4IDIwcHg7CiAgICB9CiAgICAubWFpbi10aW1lbGluZSAudGltZWxpbmUgLnRpbWVsaW5lLXllYXIsCiAgICAubWFpbi10aW1lbGluZSAudGltZWxpbmU6bnRoLWNoaWxkKGV2ZW4pIC50aW1lbGluZS15ZWFyewogICAgICAgIGhlaWdodDogNTVweDsKICAgICAgICBsaW5lLWhlaWdodDogNTVweDsKICAgICAgICBib3gtc2hhZG93OiAwIDVweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC4zKTsKICAgICAgICByaWdodDogMTBweDsKICAgICAgICBsZWZ0OiBhdXRvOwogICAgfQogICAgLm1haW4tdGltZWxpbmUgLnRpbWVsaW5lOm50aC1jaGlsZChldmVuKSAudGltZWxpbmUteWVhcnsKICAgICAgICB0b3A6IC0xMHB4OwogICAgICAgIGJvdHRvbTogYXV0bzsKICAgICAgICBsZWZ0OiAxMHB4OwogICAgfQp9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50LWJnIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo2MHB4OyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9Im1hcmdpbi10b3A6MTBweDsiID4KICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9InRpdGxlIiBhbGlnbj0iY2VudGVyIj5PdXIgVGhyZWUgRWFzeSBTdGVwczwvaDI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImNvbnRlbnQtZGVzYyIgYWxpZ249ImNlbnRlciIgc3R5bGU9ImNvbG9yOiMzNzU2NzQ7IG1hcmdpbi1ib3R0b206MjBweDsiPgoJCQkJCU9ubHkgMyBzaW1wbGUgc3RlcHMgd2lsbCBhbGxvdyB5b3UgdG8gaW52ZXN0IGFuZCBzdGFydCBlYXJuaW5nIHdpdGggb3VyIGd1YXJhbnRlZWQgZGFpbHkgcHJvZml0IHN5c3RlbS4KCiA8L3A+CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tdGltZWxpbmUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmUiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJ0aW1lbGluZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmUteWVhciI+U3RlcCAxPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPlJFR0lTVEVSIEFOIEFDQ09VTlQ8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iZGVzY3JpcHRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RyYXRpb24gdGFrZXMgYWJvdXQgMiBtaW4gYW5kIGlzIGZyZWUuIFlvdXIgYWNjb3VudCB3aWxsIGJlIGFjdGl2ZSBpbW1lZGlhdGVseQogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aW1lbGluZS1pY29uIj48aSBjbGFzcz0iZmEgZmEtdXNlciI+PC9pPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmUiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJ0aW1lbGluZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmUteWVhciI+U3RlcCAyPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPk1BS0UgQSBERVBPU0lUPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImRlc2NyaXB0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHByb2Nlc3MgaXMgdmVyeSBzaW1wbGUuIFlvdSBjYW4gbWFrZSBhIGRlcG9zaXQgdXNpbmcgOSBhdmFpbGFibGUgcGF5bWVudCBtZXRob2RzLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5lLWljb24iPjxpIGNsYXNzPSJmYSBmYS1kb25hdGUiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1haW4tdGltZWxpbmUiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmUiPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJ0aW1lbGluZS1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGltZWxpbmUteWVhciI+U3RlcCAzPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0idGl0bGUiPkVOSk9ZIFlPVVIgUFJPRklUUzwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJkZXNjcmlwdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgWW91IHdpbGwgcmVjZWl2ZSBwcm9maXQgYWNjcnVhbHMgZXZlcnkgMjQgaG91cnMgYWZ0ZXIgeW91IG1hZGUgeW91ciBkZXBvc2l0LiA3IGRheXMgaW4gYSB3ZWVrLgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRpbWVsaW5lLWljb24iPjxpIGNsYXNzPSJmYSBmYS1yb2NrZXQiPjwvaT48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CiAgIDwvZGl2PiAgICAgICAgCiAgIAogICAKICAgCiAgIAk8IS0tIEludHJvZHVjdGlvbiBTZWN0aW9uIC0tPgoJPHNlY3Rpb24gY2xhc3M9ImludHJvZHVjdGlvbi1zZWN0aW9uIj4KCSAgICA8Y2VudGVyPjxoMiBzdHlsZT0iY29sb3I6ICMxNTMxN0U7Ij48Yj5JTlZFU1RNRU5UIFBBQ0tBR0VTPC9iPjwvaDI+PC9jZW50ZXI+CgkJPGRpdiBjbGFzcz0iYXV0by1jb250YWluZXIiPgoJCQk8ZGl2IGNsYXNzPSJyb3cgY2xlYXJmaXgiPgoKCgkJCQk8ZGl2IGNsYXNzPSJyb3cgY2xlYXJmaXgiPgogICAgIDxkaXYgY2xhc3M9InByaWNlLWJsb2NrIGFjdGl2ZSBjb2wtbGctNCBjb2wtbWQtNCBjb2wtc20tMTIiPgogICAgICAgPGRpdiBjbGFzcz0iaW5uZXItYm94IHdvdyBmYWRlSW5VcCIgZGF0YS13b3ctZGVsYXk9IjBtcyIgZGF0YS13b3ctZHVyYXRpb249IjE1MDBtcyIgPgogICAgICAgICA8ZGl2IGNsYXNzPSJ1cHBlci1ib3giPgoJCQkgCQkJPGJyPjxicj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+QlJPTlpFIFBMQU48L2Rpdj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZSI+PHN1cD48L3N1cD4zJTxzdXA+ZGFpbHk8L3N1cD48c3ViPiAgPC9zdWI+PC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgICAgICA8ZGl2IGNsYXNzPSJsb3dlci1ib3giPgogICAgICAgICAgIDx1bCBjbGFzcz0icHJpY2UtbGlzdCI+CiAgICAgICAgICAgICA8bGk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjEwMDA7Y29sb3I6I2ZmZjsiPk1pbmltdW0gZGVwb3NpdCAkMTAwPC9zcGFuPjwvbGk+CiAgICAgICAgICAgICA8bGk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjEwMDA7Y29sb3I6I2ZmZjsiPk1heGltdW0gRGVwb3NpdCAkOTk5PC9zcGFuPiA8L2xpPgogICAgICAgICAgICAgPGxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDoxMDAwO2NvbG9yOiNmZmY7Ij5EdXJhdGlvbiA1IGRheXM8L3NwYW4+PC9saT4KICAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+UmVmZXJyYWwgQm9udXMgNSU8L3NwYW4+PC9saT4KCQkJIDxsaSBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+Tm8gSGlkZGVuIENoYXJnZXM8L2xpPgoKICAgICAgICAgICA8L3VsPgogICAgICAgICAgIDxicj48YnI+CiAgICAgICAgICAgPGEgaHJlZj0iP2E9c2lnbnVwIiBjbGFzcz0idGhlbWUtYnRuIGJ0bi1zdHlsZS1laWdodCI+PHNwYW4gY2xhc3M9InR4dCI+SW52ZXN0IE5PVzwvc3Bhbj48L2E+PGJyPgogICAgICAgICA8L2Rpdj4KICAgICAgIDwvZGl2PgogICAgIDwvZGl2PgoJIDxkaXYgY2xhc3M9InByaWNlLWJsb2NrIGFjdGl2ZSBjb2wtbGctNCBjb2wtbWQtNCBjb2wtc20tMTIiPgoJCTxkaXYgY2xhc3M9ImlubmVyLWJveCB3b3cgZmFkZUluVXAiIGRhdGEtd293LWRlbGF5PSIwbXMiIGRhdGEtd293LWR1cmF0aW9uPSIxNTAwbXMiID4KICAgICAgICAgPGRpdiBjbGFzcz0idXBwZXItYm94Ij4KCQkJIAkJCTxicj48YnI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPlNJTFZFUiBQTEFOPC9kaXY+CiAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2UiPjxzdXA+PC9zdXA+NSU8c3VwPiBkYWlseSA8L3N1cD48c3ViPiAgPC9zdWI+PC9kaXY+CiAgICAgICAgIDwvZGl2PgogICAgICAgICA8ZGl2IGNsYXNzPSJsb3dlci1ib3giPgogICAgICAgICAgIDx1bCBjbGFzcz0icHJpY2UtbGlzdCI+CiAgICAgICAgICAgICA8bGk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjEwMDA7Y29sb3I6I2ZmZjsiPk1pbmltdW0gZGVwb3NpdCAkMTAwMDwvc3Bhbj48L2xpPgogICAgICAgICAgICAgPGxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDoxMDAwO2NvbG9yOiNmZmY7Ij5NYXhpbXVtIERlcG9zaXQgJDksOTk5PC9zcGFuPiA8L2xpPgogICAgICAgICAgICAgPGxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDoxMDAwO2NvbG9yOiNmZmY7Ij5EdXJhdGlvbiA1IGRheXM8L3NwYW4+PC9saT4KICAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+UmVmZXJyYWwgQm9udXMgNSU8L3NwYW4+PC9saT4KCQkJIDxsaSBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+Tm8gSGlkZGVuIENoYXJnZXM8L2xpPgogICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgPGJyPjxicj4KICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiIGNsYXNzPSJ0aGVtZS1idG4gYnRuLXN0eWxlLWVpZ2h0Ij48c3BhbiBjbGFzcz0idHh0Ij5JbnZlc3QgTk9XPC9zcGFuPjwvYT48YnI+CiAgICAgICAgIDwvZGl2PgogICAgICAgPC9kaXY+CgkgPC9kaXY+CgkgPGRpdiBjbGFzcz0icHJpY2UtYmxvY2sgYWN0aXZlIGNvbC1sZy00IGNvbC1tZC00IGNvbC1zbS0xMiI+CgkJPGRpdiBjbGFzcz0iaW5uZXItYm94IHdvdyBmYWRlSW5VcCIgZGF0YS13b3ctZGVsYXk9IjBtcyIgZGF0YS13b3ctZHVyYXRpb249IjE1MDBtcyIgPgogICAgICAgICA8ZGl2IGNsYXNzPSJ1cHBlci1ib3giPgoJCQkgCQkJPGJyPjxicj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+R09MRCBQTEFOPC9kaXY+CiAgICAgICAgICAgPGRpdiBjbGFzcz0icHJpY2UiPjxzdXA+PC9zdXA+OCU8c3VwPiBkYWlseTwvc3VwPjxzdWI+ICA8L3N1Yj48L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9Imxvd2VyLWJveCI+CiAgICAgICAgICAgPHVsIGNsYXNzPSJwcmljZS1saXN0Ij4KICAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+TWluaW11bSAxMDAwMDwvc3Bhbj48L2xpPgogICAgICAgICAgICAgPGxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDoxMDAwO2NvbG9yOiNmZmY7Ij5NYXhpbXVtICQxMDAsOTk5PC9zcGFuPiA8L2xpPgogICAgICAgICAgICAgPGxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDoxMDAwO2NvbG9yOiNmZmY7Ij5EdXJhdGlvbiA1IGRheXM8L3NwYW4+PC9saT4KICAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+UmVmZXJyYWwgQm9udXMgNSU8L3NwYW4+PC9saT4KCQkJIDxsaSBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+Tm8gSGlkZGVuIENoYXJnZXM8L2xpPgoKICAgICAgICAgICA8L3VsPgogICAgICAgICAgIDxicj48YnI+CiAgICAgICAgICAgPGEgaHJlZj0iP2E9c2lnbnVwIiBjbGFzcz0idGhlbWUtYnRuIGJ0bi1zdHlsZS1laWdodCI+PHNwYW4gY2xhc3M9InR4dCI+SW52ZXN0IE5PVzwvc3Bhbj48L2E+PGJyPgogICAgICAgICA8L2Rpdj4KICAgICAgIDwvZGl2PgoJIDwvZGl2PgoJIDwhLS0KCSAgPGRpdiBjbGFzcz0icHJpY2UtYmxvY2sgYWN0aXZlIGNvbC1sZy00IGNvbC1tZC00IGNvbC1zbS0xMiI+CgkJPGRpdiBjbGFzcz0iaW5uZXItYm94IHdvdyBmYWRlSW5VcCIgZGF0YS13b3ctZGVsYXk9IjBtcyIgZGF0YS13b3ctZHVyYXRpb249IjE1MDBtcyIgPgogICAgICAgICA8ZGl2IGNsYXNzPSJ1cHBlci1ib3giPgoJCQkgCQkJPGJyPjxicj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+VklQIFBMQU48L2Rpdj4KICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcmljZSI+PHN1cD48L3N1cD4xNSU8c3VwPiBkYWlseTwvc3VwPjxzdWI+ICA8L3N1Yj48L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9Imxvd2VyLWJveCI+CiAgICAgICAgICAgPHVsIGNsYXNzPSJwcmljZS1saXN0Ij4KICAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+TWluaW11bSAkNTAsMDAwPC9zcGFuPjwvbGk+CiAgICAgICAgICAgICA8bGk+PHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjEwMDA7Y29sb3I6I2ZmZjsiPk1heGltdW0gdW5saW1pdGVkPC9zcGFuPiA8L2xpPgogICAgICAgICAgICAgPGxpPjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDoxMDAwO2NvbG9yOiNmZmY7Ij5EdXJhdGlvbiAzIGRheXM8L3NwYW4+PC9saT4KICAgICAgICAgICAgIDxsaT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6MTAwMDtjb2xvcjojZmZmOyI+UmVmZXJyYWwgQm9udXMgMTAlPC9zcGFuPjwvbGk+CgkJCSA8bGkgc3R5bGU9ImZvbnQtd2VpZ2h0OjEwMDA7Y29sb3I6I2ZmZjsiPk5vIEhpZGRlbiBDaGFyZ2VzPC9saT4KCiAgICAgICAgICAgPC91bD4KICAgICAgICAgICA8YnI+PGJyPgogICAgICAgICAgIDxhIGhyZWY9Ij9hPXNpZ251cCIgY2xhc3M9InRoZW1lLWJ0biBidG4tc3R5bGUtZWlnaHQiPjxzcGFuIGNsYXNzPSJ0eHQiPkludmVzdCBOT1c8L3NwYW4+PC9hPjxicj4KICAgICAgICAgPC9kaXY+CiAgICAgICA8L2Rpdj4KCSA8L2Rpdj4KCSAtLT4KCQoJCgkKICAgPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9zZWN0aW9uPgogICAKICAgCiAgIAogICAKICAgCiAgIAogICAKICAgCiAgIAogICAKICAgCiAgIAogICAKICAgCiAgIAogICAKICAgCiAgIAogICAKICAgCiAgIAogICAKICAgCgogPCEtLSBGZWF0dXJlZCBTZWN0aW9uIFR3byAtLT4KIDxzZWN0aW9uIGNsYXNzPSJmZWF0dXJlZC1zZWN0aW9uLXR3byI+CiAgIDxkaXYgY2xhc3M9InBhdGVybi1sYXllciIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvYmFja2dyb3VuZC9wYXR0ZXJuLTcucG5nKSI+PC9kaXY+CiAgIDxkaXYgY2xhc3M9InBhdGVybi1sYXllci10d28iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2JhY2tncm91bmQvcGF0dGVybi04LnBuZykiPjwvZGl2PgogICA8ZGl2IGNsYXNzPSJhdXRvLWNvbnRhaW5lciI+CiAgICAgPGRpdiBjbGFzcz0icm93IGNsZWFyZml4Ij4KCiAgICAgICA8IS0tIEJsb2NrIENvbHVtbiAtLT4KICAgICAgIDxkaXYgY2xhc3M9ImJsb2Nrcy1jb2x1bW4gY29sLWxnLTYgY29sLW1kLTEyIGNvbC1zbS0xMiI+CiAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbHVtbiI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IGNsZWFyZml4Ij4KCiAgICAgICAgICAgICA8IS0tIEZlYXR1cmUgQmxvY2sgLS0+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWJsb2NrIGNvbC1sZy02IGNvbC1tZC02IGNvbC1zbS0xMiI+CiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWJveCI+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1ib3giPgogICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gZmxhdGljb24tdGF4YXRpb24iPjwvc3Bhbj4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8aDQ+VGF4YXRpb248L2g0PgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPkFzIGEgZ292ZXJuYW5jZSBvcmllbnRlZCBpbnZlc3RtZW50IGZpcm0sIHdlIGhlbHAgZnVuZCBwdWJsaWMgd29ya3MgYW5kIHNlcnZpY2Vz4oCUYW5kIHRvIGJ1aWxkIGFuZCBtYWludGFpbiB0aGUgaW5mcmFzdHJ1Y3R1cmVzIHVzZWQgaW4gb3VyIHJlc2lkZW50IGNvdW50cnkgdGhyb3VnaCBvdXIgcHJvbXB0IHRheCBmaWxpbmdzLiA8L2Rpdj4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWJveCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKGltYWdlcy9yZXNvdXJjZS9mZWF0dXJlLTEuanBnKSI+CiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi10d28iPgogICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tdHdvLWlubmVyIGZsYXRpY29uLXRheGF0aW9uIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgPGg1PjxhIGhyZWY9Ij9hPXNpZ251cCI+VGF4YXRpb248L2E+PC9oNT4KICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgIDwhLS0gRmVhdHVyZSBCbG9jayAtLT4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtYmxvY2sgY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTEyIj4KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItYm94Ij4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLWJveCI+CiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1pbmRleCI+PC9zcGFuPgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxoND5UcmFkZXMgJiBTdG9jazwvaDQ+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+T3VyIHRyYWRlcnMgZW5nYWdlIGluIG1hcmtldCB0cmFkZXMgY29uZHVjdGluZyBleHRlbnNpdmUgcmVzZWFyY2ggYW5kIG9ic2VydmF0aW9uIG9mIGhvdyBmaW5hbmNpYWwgbWFya2V0cyBwZXJmb3JtIGF0IHRoYXQgY2VydGFpbiBwb2ludCBpbiB0aW1lIGJlZm9yZSBleGVjdXRpb24uIDwvZGl2PgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktYm94IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwoaW1hZ2VzL3Jlc291cmNlL2ZlYXR1cmUtMS5qcGcpIj4KICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXR3byI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi10d28taW5uZXIgZmxhdGljb24taW5kZXgiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICA8aDU+PGEgaHJlZj0iP2E9c2lnbnVwIj5UcmFkZSAmIFN0b2NrPC9hPjwvaDU+CiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgPCEtLSBGZWF0dXJlIEJsb2NrIC0tPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ibG9jayBjb2wtbGctNiBjb2wtbWQtNiBjb2wtc20tMTIiPgogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lci1ib3giPgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tYm94Ij4KICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGZsYXRpY29uLWVmZmVjdGl2ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxoND5Db3Jwb3JhdGUgRmluYW5jZTwvaDQ+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+V2Ugd2lsbCBhY3RpdmVseSBtYW5hZ2UgeW91ciBwb3J0Zm9saW8gdG8gZW5zdXJlIGl0IHJlbWFpbnMgYXBwcm9wcmlhdGUgZm9yIHRoZSBldmVyLWNoYW5naW5nIGNvbmRpdGlvbnMgaW4gdGhlIGdsb2JhbCBlY29ub215IGFuZCBmaW5hbmNpYWwgbWFya2V0cy48L2Rpdj4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWJveCIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKGltYWdlcy9yZXNvdXJjZS9mZWF0dXJlLTEuanBnKSI+CiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJvdmVybGF5LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi10d28iPgogICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tdHdvLWlubmVyIGZsYXRpY29uLWVmZmVjdGl2ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgIDxoNT48YSBocmVmPSI/YT1zaWdudXAiPkNvcnBvcmF0ZSBGaW5hbmNlPC9hPjwvaDU+CiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgPCEtLSBGZWF0dXJlIEJsb2NrIC0tPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZS1ibG9jayBjb2wtbGctNiBjb2wtbWQtNiBjb2wtc20tMTIiPgogICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpbm5lci1ib3giPgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb24tYm94Ij4KICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uIGZsYXRpY29uLXJldmVudWUiPjwvc3Bhbj4KICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICA8aDQ+UmlzayBNYW5hZ21lbnQ8L2g0PgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPldlIGVuc3VyZSB0aGF0IHJldHVybnMgYXJlIHNhdGlzZmFjdG9yeSBhbmQgY29uc2lzdGVudCB3aXRoIHRoZSBsZXZlbHMgb2YgcmlzayBiZWluZyB0YWtlbiBhbmQgYWxzbyBoYXZlIHJlZ3VsYXIgcGVlciByZXZpZXdzIGZvciBpbnZlc3RtZW50IHN1aXRhYmlsaXR5LjwvZGl2PgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktYm94IiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTp1cmwoaW1hZ2VzL3Jlc291cmNlL2ZlYXR1cmUtMS5qcGcpIj4KICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im92ZXJsYXktaW5uZXIiPgogICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLXR3byI+CiAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi10d28taW5uZXIgZmxhdGljb24tcmV2ZW51ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgIDxoNT48YSBocmVmPSIjIj5SaXNrIE1hbmFnbWVudDwvYT48L2g1PgogICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJyZWFkLW1vcmUiIGhyZWY9Ij9hPXNpZ251cCI+Sm9pbiBOb3c8L2E+CiAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICAgIDwvZGl2PgogICAgICAgCiAgICAgICAKCiAgICAgICA8IS0tIENvbnRlbnQgQ29sdW1uIC0tPgogICAgICAgPGRpdiBjbGFzcz0iY29udGVudC1jb2x1bW4gY29sLWxnLTYgY29sLW1kLTEyIGNvbC1zbS0xMiI+CiAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbHVtbiI+CiAgICAgICAgICAgPCEtLSBTZWMgVGl0bGUgLS0+CiAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VjLXRpdGxlIj4KICAgICAgICAgICAgIDxoMj5BbiBpbnZlc3RtZW50IGluIGtub3dsZWRnZSA8YnI+IHBheXMgdGhlIGJlc3QgaW50ZXJlc3QuPC9oMj4KICAgICAgICAgICAgIAogICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIDwhLS0gQmxvY2tzIE91dGVyIC0tPgogICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2Nrcy1vdXRlciI+CgogICAgICAgICAgICAgPCEtLSBGZWF0dXJlIEJsb2NrIFR3byAtLT4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtYmxvY2stdHdvIj4KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItYm94Ij4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLWJveCI+CiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1pbmRleCI+PC9zcGFuPgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxoND48YSBocmVmPSI/YT1zaWdudXAiPkV0aGljYWwgSW52ZXN0bWVudHM8L2E+PC9oND4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij5XZSBoYXZlIGEgZGVkaWNhdGVkIHRlYW0gZm9yIGNsaWVudHMgd2hvIHdhbnQgMTAwJSBldGhpY2FsIGFuZCBzdXN0YWluYWJsZSBpbnZlc3RtZW50IG1hbmFnZW1lbnQuPC9kaXY+CiAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgPCEtLSBGZWF0dXJlIEJsb2NrIFR3byAtLT4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtYmxvY2stdHdvIj4KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItYm94Ij4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uLWJveCI+CiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1wbGFubmluZy0xIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgPGg0PjxhIGhyZWY9Ij9hPXNpZ251cCI+UHJvZmVzc2lvbmFsIERhdGEgQW5hbHlzaXM8L2E+PC9oND4KICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXh0Ij5XZSBoYXZlIGludmVzdGVkIGluIG91ciBhYmlsaXR5IHRvIG1vbml0b3IgaG93IHlvdXIgaW52ZXN0bWVudHMgcGVyZm9ybS4gU29waGlzdGljYXRlZCwgbWFya2V0LWxlYWRpbmcgc29mdHdhcmUgZW5hYmxlcyB1cyBkbyB0aGlzLjwvZGl2PgogICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgIDwhLS0gRmVhdHVyZSBCbG9jayBUd28gLS0+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWJsb2NrLXR3byI+CiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWJveCI+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvbi1ib3giPgogICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24gZmxhdGljb24tcmV2ZW51ZSI+PC9zcGFuPgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxoND48YSBocmVmPSI/YT1zaWdudXAiPkJ1c2luZXNzIFN0cmF0ZWd5PC9hPjwvaDQ+CiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGV4dCI+T3VyIGRpdmVyc2lmaWVkIGludmVzdG1lbnQgc3RyYXRlZ3kgY29tYmluZXMgZGlmZmVyZW50IGFzc2V0cyBhbmQgY2FuIGJlIG9uZSBvZiB0aGUgYmVzdCB3YXlzIHRvIHByZXNlcnZlIGFuZCBlbmhhbmNlIHdlYWx0aCBvdmVyIHRoZSBsb25nIHRlcm0uPC9kaXY+CiAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWJveCBjbGVhcmZpeCI+CiAgICAgICAgICAgICA8YSBocmVmPSI/YT1zaWdudXAiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0idGhlbWUtYnRuIGJ0bi1zdHlsZS1uaW5lIHN0eWxlLXR3byI+PHNwYW4gY2xhc3M9InR4dCI+UmVnaXN0ZXI8L3NwYW4+PC9hPgogICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgPC9kaXY+CiAgICAgICA8L2Rpdj4KCiAgICAgPC9kaXY+CiAgIDwvZGl2PgogPC9zZWN0aW9uPgogPCEtLSBFbmQgRmVhdHVyZWQgU2VjdGlvbiBUd28gLS0+Cgo8c2VjdGlvbiBjbGFzcz0iY291bnRlci1zZWN0aW9uIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vbWVkaWEuaXN0b2NrcGhvdG8uY29tL2lkLzE0OTY0NDMzODgvcGhvdG8vZGlnaXRhbC1jb21tdW5pY2F0aW9uLW9mLXBvaW50cy10ZWNobm9sb2dpY2FsLWJhY2tncm91bmQtbmV0d29yay1jb25uZWN0aW9uLXN0cnVjdHVyZS0zZC5qcGc/cz02MTJ4NjEyJnc9MCZrPTIwJmM9S0RyQzZYYWVqbVY3Ykp6Yll0ZXFoSVY1TVlDRklIY3dyUjlBSXdsbXBzQT0pIj4KICAgIAk8ZGl2IGNsYXNzPSJhdXRvLWNvbnRhaW5lciI+CgkJCQoJCQk8IS0tIEZhY3QgQ291bnRlciAtLT4KCQkJPGRpdiBjbGFzcz0iZmFjdC1jb3VudGVyIj4KCQkJCTxkaXYgY2xhc3M9InJvdyBjbGVhcmZpeCI+CgkJCQkKCQkJCQk8IS0tQ29sdW1uLS0+CgkJCQkJPGRpdiBjbGFzcz0iY29sdW1uIGNvdW50ZXItY29sdW1uIGNvbC1sZy0zIGNvbC1tZC02IGNvbC1zbS0xMiI+CgkJCQkJCTxkaXYgY2xhc3M9ImlubmVyIHdvdyBmYWRlSW5MZWZ0IiBkYXRhLXdvdy1kZWxheT0iMG1zIiBkYXRhLXdvdy1kdXJhdGlvbj0iMTUwMG1zIj4KCQkJCQkJCTxkaXYgY2xhc3M9ImNvdW50LW91dGVyIGNvdW50LWJveCI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9ImNvdW50LXRleHQiIGRhdGEtc3BlZWQ9IjMwMDBtcyIgZGF0YS1zdG9wPSIyODc0NTIiPjA8L3NwYW4+KwoJCQkJCQkJCTxkaXYgY2xhc3M9ImNvdW50ZXItdGl0bGUiPk1lbWJlcnM8L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCgkJCQkJPCEtLUNvbHVtbi0tPgoJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbiBjb3VudGVyLWNvbHVtbiBjb2wtbGctMyBjb2wtbWQtNiBjb2wtc20tMTIiPgoJCQkJCQk8ZGl2IGNsYXNzPSJpbm5lciB3b3cgZmFkZUluTGVmdCIgZGF0YS13b3ctZGVsYXk9IjBtcyIgZGF0YS13b3ctZHVyYXRpb249IjE1MDBtcyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjb3VudC1vdXRlciBjb3VudC1ib3giPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJjb3VudC10ZXh0IiBkYXRhLXNwZWVkPSIyMDAwIiBkYXRhLXN0b3A9IjI0ODc0Ij4wPC9zcGFuPisKCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb3VudGVyLXRpdGxlIj5DbGllbnTigJlzIEZlZWRiYWNrPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQoJCQkJCTwhLS1Db2x1bW4tLT4KCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW4gY291bnRlci1jb2x1bW4gY29sLWxnLTMgY29sLW1kLTYgY29sLXNtLTEyIj4KCQkJCQkJPGRpdiBjbGFzcz0iaW5uZXIgd293IGZhZGVJbkxlZnQiIGRhdGEtd293LWRlbGF5PSI2MDBtcyIgZGF0YS13b3ctZHVyYXRpb249IjE1MDBtcyI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjb3VudC1vdXRlciBjb3VudC1ib3giPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSJjb3VudC10ZXh0IiBkYXRhLXNwZWVkPSI3ODAwMCIgZGF0YS1zdG9wPSI0NzU0NTE5NC44NyI+MDwvc3Bhbj4rCgkJCQkJCQkJPGRpdiBjbGFzcz0iY291bnRlci10aXRsZSI+RGVwb3NpdHM8L2Rpdj4KCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCgkJCQkJPCEtLUNvbHVtbi0tPgoJCQkJCTxkaXYgY2xhc3M9ImNvbHVtbiBjb3VudGVyLWNvbHVtbiBjb2wtbGctMyBjb2wtbWQtNiBjb2wtc20tMTIiPgoJCQkJCQk8ZGl2IGNsYXNzPSJpbm5lciB3b3cgZmFkZUluTGVmdCIgZGF0YS13b3ctZGVsYXk9IjkwMG1zIiBkYXRhLXdvdy1kdXJhdGlvbj0iMTUwMG1zIj4KCQkJCQkJCTxkaXYgY2xhc3M9ImNvdW50LW91dGVyIGNvdW50LWJveCI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9ImNvdW50LXRleHQiIGRhdGEtc3BlZWQ9IjE0MDUwMCIgZGF0YS1zdG9wPSI1Mzc5NTY5Mi43NSI+MDwvc3Bhbj4rCgkJCQkJCQkJPGRpdiBjbGFzcz0iY291bnRlci10aXRsZSI+V2l0aGRyYXdhbDwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQkKCQk8L2Rpdj4KCTwvc2VjdGlvbj4KCiA8IS0tIFByb2Nlc3MgU2VjdGlvbiAtLT4KIDxzZWN0aW9uIGNsYXNzPSJwcm9jZXNzLXNlY3Rpb24iIHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoKGh0dHBzOi8vaW1hZ2VzLnBleGVscy5jb20vcGhvdG9zLzc4OTc0NzAvcGV4ZWxzLXBob3RvLTc4OTc0NzAuanBlZz9hdXRvPWNvbXByZXNzJmNzPXRpbnlzcmdiJnc9ODAwKSI+CiAgIDxkaXYgY2xhc3M9ImF1dG8tY29udGFpbmVyIj4KICAgICA8ZGl2IGNsYXNzPSJzZWMtdGl0bGUgY2VudGVyZWQgc3R5bGUtdGhyZWUiPgogICAgICAgPGRpdiBjbGFzcz0idGl0bGUiPkhvdyBXZSBXb3JrPC9kaXY+CiAgICAgICA8aDI+VGhyZWUgU2ltcGxlIFN0ZXBzIDxicj4gV29ya2luZyBQcm9jZXNzPC9oMj4KICAgICAgIAogICAgIDwvZGl2PgogICAgIDxkaXYgY2xhc3M9ImlubmVyLWNvbnRhaW5lciI+CiAgICAgICA8ZGl2IGNsYXNzPSJyb3cgY2xlYXJmaXgiPgoKICAgICAgICAgPCEtLSBQcm9jZXNzIEJsb2NrIC0tPgogICAgICAgICA8ZGl2IGNsYXNzPSJwcm9jZXNzLWJsb2NrIGNvbC1sZy00IGNvbC1tZC02IGNvbC1zbS0xMiI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItYm94IHdvdyBmYWRlSW5MZWZ0IiBkYXRhLXdvdy1kZWxheT0iMG1zIiBkYXRhLXdvdy1kdXJhdGlvbj0iMTUwMG1zIj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2Nlc3MtbnVtYmVyIj4wMTwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGVudCI+CiAgICAgICAgICAgICAgIDxoMz5SZXNlYXJjaDwvaDM+CiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPkZpbmQgU291cmNlcywgZXZhbHVhdGUgU291cmNlcywgZXN0YWJsaXNoIGEgcG90ZW50aWFsIG1hcmtldC48L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KCiAgICAgICAgIDwhLS0gUHJvY2VzcyBCbG9jayAtLT4KICAgICAgICAgPGRpdiBjbGFzcz0icHJvY2Vzcy1ibG9jayBjb2wtbGctNCBjb2wtbWQtNiBjb2wtc20tMTIiPgogICAgICAgICAgIDxkaXYgY2xhc3M9ImlubmVyLWJveCB3b3cgZmFkZUluVXAiIGRhdGEtd293LWRlbGF5PSIwbXMiIGRhdGEtd293LWR1cmF0aW9uPSIxNTAwbXMiPgogICAgICAgICAgICAgPGRpdiBjbGFzcz0icHJvY2Vzcy1udW1iZXIiPjAyPC9kaXY+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb250ZW50Ij4KICAgICAgICAgICAgICAgPGgzPlRhcmdldGluZzwvaDM+CiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPkJyZWFraW5nIGEgbWFya2V0IGludG8gc2VnbWVudHMgYW5kIG91dGxpbmUgdGFyZ2V0IGdvYWxzLjwvZGl2PgogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgPC9kaXY+CiAgICAgICAgIDwvZGl2PgoKICAgICAgICAgPCEtLSBQcm9jZXNzIEJsb2NrIC0tPgogICAgICAgICA8ZGl2IGNsYXNzPSJwcm9jZXNzLWJsb2NrIGNvbC1sZy00IGNvbC1tZC02IGNvbC1zbS0xMiI+CiAgICAgICAgICAgPGRpdiBjbGFzcz0iaW5uZXItYm94IHdvdyBmYWRlSW5SaWdodCIgZGF0YS13b3ctZGVsYXk9IjBtcyIgZGF0YS13b3ctZHVyYXRpb249IjE1MDBtcyI+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9jZXNzLW51bWJlciI+MDM8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQiPgogICAgICAgICAgICAgICA8aDM+UmVzdWx0czwvaDM+CiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRleHQiPkFjdGl2YXRlIG1hcmtldCBlbnRyaWVzIHdpdGggcHJlLWV2YWx1YXRlZCByZXN1bHRzIGFuZCBleGl0IHBvaW50cy48L2Rpdj4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KCiAgICAgICA8L2Rpdj4KCiAgICAgPC9kaXY+CiAgIDwvZGl2PgogPC9zZWN0aW9uPgogCiAKIAogCiAKIAoKPCEtLQoKPGNlbnRlcj4JCgoKCTxoMyAgIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMTUxQjU0OyBjb2xvcjogd2hpdGU7IiBjbGFzcz0iaDNfMmxfYiI+PGI+VEVTVElNT05JQUwgVklERU9TPC9iPjwvaDM+CgoKPGRpdiBjbGFzcz0icm93Ij4KCQkJPGRpdiBjbGFzcz0iY29sLW1kLTQiPjxpZnJhbWUgd2lkdGg9IjMwMCIgaGVpZ2h0PSIyODAiIHNyYz0iaHR0cHM6Ly9ob21lLWVhcm5lcnMub3JnL3YxLm1wNCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+PC9kaXY+CgkJCQoJCQk8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+PGlmcmFtZSB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI4MCIgc3JjPSJodHRwczovL2hvbWUtZWFybmVycy5vcmcvdjEyLm1wNCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyAgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPjwvZGl2Pjxicj4KCQkJCgkJCTxkaXYgY2xhc3M9ImNvbC1tZC00Ij48aWZyYW1lIHdpZHRoPSIzMDAiIGhlaWdodD0iMjgwIiBzcmM9Imh0dHBzOi8vaG9tZS1lYXJuZXJzLm9yZy92MTEubXA0IiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7ICBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+PC9kaXY+CgkKCTwvZGl2PgoJCgkKCgoKPC9jZW50ZXI+Ci0tPgogCiAKIAoKIDxkaXYgY2xhc3M9InBhcnRuZXJzLWxvZ28tc2VjdGlvbiBwLXRiIGxpZ2h0LWdyYXktYmciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWMtdGl0bGUgdGV4dC1jZW50ZXIiPjxoMyBzdHlsZT0iY29sb3I6ICMyMjdjOWU7Ij5TZWN1cml0eTwvaDM+PC9kaXY+CiAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3cgcm93LTQwIHRleHQtY2VudGVyIHRleHQtbWQtbGVmdCIgc3R5bGU9CiAgICAgICAgICAgICAgICAgICAibWFyZ2luLWJvdHRvbToxNXB4OyI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWltYWdlLXdyYXAiIHN0eWxlPSJib3JkZXI6IDJweCBzb2xpZCAjMzEzMTMxOyBtYXJnaW46IDVweDsgcGFkZGluZzogNXB4OyBoZWlnaHQ6IDY1cHg7Ij48c3Bhbj48aW1nIHNyYz0iaW1hZ2VzL2dlb3RydXN0LnBuZyIgYWx0PSJwYXJ0bmVyLWxvZ28iIGNsYXNzPSJpbWctZmx1aWQiIHdpZHRoPSIxMzBweCIgaGVpZ2h0PSJhdXRvIj48L3NwYW4+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC02IGNvbC1tZC0zIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJsaW5rLWltYWdlLXdyYXAiIHN0eWxlPSJib3JkZXI6IDJweCBzb2xpZCAjMzEzMTMxOyBtYXJnaW46IDVweDsgcGFkZGluZzogNXB4OyBoZWlnaHQ6IDY1cHg7Ij48c3Bhbj48aW1nIHNyYz0iaW1hZ2VzL3RydXN0Z3VhcmQucG5nIiBhbHQ9InBhcnRuZXItbG9nbyIgY2xhc3M9ImltZy1mbHVpZCI+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW1hZ2Utd3JhcCIgc3R5bGU9ImJvcmRlcjogMnB4IHNvbGlkICMzMTMxMzE7IG1hcmdpbjogNXB4OyBwYWRkaW5nOiA1cHg7IGhlaWdodDogNjVweDsiPjxzcGFuPjxpbWcgc3JjPSJpbWFnZXMvbm9ydG9uLnBuZyIgYWx0PSJwYXJ0bmVyLWxvZ28iIGNsYXNzPSJpbWctZmx1aWQiPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLTYgY29sLW1kLTMiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxpbmstaW1hZ2Utd3JhcCIgc3R5bGU9ImJvcmRlcjogMnB4IHNvbGlkICMzMTMxMzE7IG1hcmdpbjogNXB4OyBwYWRkaW5nOiA1cHg7IGhlaWdodDogNjVweDsiPjxzcGFuPjxpbWcgc3JjPSJpbWFnZXMvbWNhZmVlLnBuZyIgYWx0PSJwYXJ0bmVyLWxvZ28iIGNsYXNzPSJpbWctZmx1aWQiPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgICAgICAuc2VjLXRpdGxlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBjb2xvcjogIzFkMWQxZDsKICAgIGRpc3BsYXk6IHRhYmxlOwogICAgd2lkdGg6IDEwMCU7Cn0KICAgICAgICAgICAgPC9zdHlsZT4KPCEtLTxkaXYgaWQ9InBvcC12aWRlbyIgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNSk7IHotaW5kZXg6IDk5OTk5OTsgdG9wOjA7IGxlZnQ6IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgcGFkZGluZy10b3A6IDEyMHB4OyAiPgoJCTxkaXYgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgd2lkdGg6IDM4MHB4OyBoZWlnaHQ6IDMxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBwb3NpdGlvbjogcmVsYXRpdmU7Ij4KCQkJPGkgaWQ9ImNsb3NlLXBvcC12aWRlbyIgY2xhc3M9ImZhIGZhLWNsb3NlIiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyByaWdodDogMTJweDsgdG9wOiAxMnB4OyBmb250LXNpemU6IDI0cHg7IHotaW5kZXg6IDk5OTsiIG9uQ2xpY2s9ImhpZGVQb3BWaWRlbygpIj48L2k+CgkJCQoJCQk8aWZyYW1lIHdpZHRoPSIzODAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL21LM2pheFJKckUwIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmUiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KCQkJCgkJPC9kaXY+Cgk8L2Rpdj4tLT4KIAogPCEtLSBTbWFydHN1cHAgTGl2ZSBDaGF0IHNjcmlwdCAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgp2YXIgX3NtYXJ0c3VwcCA9IF9zbWFydHN1cHAgfHwge307Cl9zbWFydHN1cHAua2V5ID0gJzg5ZTJkZGYwODYyZDk1YTgxM2I2ZjQzZGVjZTY2ZDI4ZWMxODNlNjcnOwp3aW5kb3cuc21hcnRzdXBwfHwoZnVuY3Rpb24oZCkgewogIHZhciBzLGMsbz1zbWFydHN1cHA9ZnVuY3Rpb24oKXsgby5fLnB1c2goYXJndW1lbnRzKX07by5fPVtdOwogIHM9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07Yz1kLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogIGMudHlwZT0ndGV4dC9qYXZhc2NyaXB0JztjLmNoYXJzZXQ9J3V0Zi04JztjLmFzeW5jPXRydWU7CiAgYy5zcmM9Jy4uL3d3dy5zbWFydHN1cHBjaGF0LmNvbS9sb2FkZXJkNDFkLmpzPyc7cy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLHMpOwp9KShkb2N1bWVudCk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+IFBvd2VyZWQgYnkgPGEgaHJlZj0lZTIlODAlOWNodHRwc18vd3d3LnNtYXJ0c3VwcC5odG1sIHRhcmdldD3igJxfYmxhbmvigJ0+U21hcnRzdXBwPC9hPjwvbm9zY3JpcHQ+CgoKPGZvb3RlciBjbGFzcz0iZm9vdGVyLXN0eWxlLXR3byIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvYmFja2dyb3VuZC8xMC5qcGcpIj4KICAgICAgPGRpdiBjbGFzcz0icm93IiBzdHlsZT0iY29sb3I6d2hpdGU7IG1hcmdpbi1sZWZ0OjMwcHg7IG1hcmdpbi1yaWdodDozMHB4OyBtYXJnaW4tdG9wOjEwcHg7Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtc20tNCBmb290ZXItYWJvdXQgZm9vdGVyLWNvbCAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItdGl0bGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PlF1aWNrIExpbmtzIFRvIEJ1eSBCaXRjb2luIEluIEVVUk9QRTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyLWxpc3QiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDsgY29sb3I6d2hpdGU7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvaW5tYW1hLmNvbS8iPkNvaW4gTWFtYTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vY29pbmJhc2UuY29tLyI+Q29pbiBCYXNlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9sdW5vLmNvbS8iPkx1bm88L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL3hjb2luLmNvbS8iPlhjb2luPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9rcmFrZW4uY29tLyI+a3Jha2VuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9iaW5hbmNlLmNvbS8iPkJpbmFuY2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2JpdDJtZS5jb20vIj5CaXQybWU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtc20tNCBmb290ZXItYWJvdXQgZm9vdGVyLWNvbCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDQ+UXVpY2sgTGlua3MgVG8gQnV5IEJpdGNvaW4gSW4gQU1FUklDQTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXItbGlzdCIgc3R5bGU9InBhZGRpbmctbGVmdDoyMHB4OyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb2lubWFtYS5jb20vIj5Db2luIE1hbWE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvaW5meGludmVzdG1lbnQuY29tL2VuL2h0dHBzL3BheWJpcy5odG1sIj5QYXlCaXM8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2NvaW5iYXNlLmNvbS8iPkNvaW4gQmFzZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbHVuby5jb20vIj5MdW5vPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly94Y29pbi5jb20vIj5YY29pbjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vbG9jYWxiaXRjb2lucy5jb20vIj5Mb2NhbCBCaXRjb2luczwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vY2V4LmlvLyI+Y2V4PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQgY29sLXNtLTQgZm9vdGVyLWFib3V0IGZvb3Rlci1jb2wgIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoND5RdWljayBMaW5rcyBUbyBCdXkgQml0Y29pbiBJbiBPVEhFUlM8L2g0PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyLWxpc3QiIHN0eWxlPSJwYWRkaW5nLWxlZnQ6MjBweDsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vaW5kb2RheC5jb20vIj5JbmRvZGF4PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9jb2luZnhpbnZlc3RtZW50LmNvbS9lbi9odHRwcy9jb2luaGFrby5odG1sIj5Db2luaGFrbzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vd2F6aXJ4LmNvbS8iPldhemlyeDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vemVicGF5LmNvbS8iPlplYnBheTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHBzOi8vcmFtemluZXguY29tLyI+UmFtemluZXg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL25vYml0ZXguaXIvIj5Ob2JpdGV4PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93YWxsZXguaXIvIj5XYWxsZXg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgIAk8ZGl2IGNsYXNzPSJhdXRvLWNvbnRhaW5lciI+CiAgICAgICAgCTwhLS0gV2lkZ2V0cyBTZWN0aW9uIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3aWRnZXRzLXNlY3Rpb24iPgoJCQkJPGRpdiBjbGFzcz0idXBwZXItYm94Ij4KCQkJCQkKCQkJCTwvZGl2PgoKCQkJCTxkaXYgY2xhc3M9Imxvd2VyLWJveCI+CgkJCQkJPGRpdiBjbGFzcz0icm93IGNsZWFyZml4Ij4KCgkJCQkJCTwhLS0gRm9vdGVyIENvbHVtbiAtLT4KCQkJCQkJPGRpdiBjbGFzcz0iZm9vdGVyLWNvbHVtbiI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJmb290ZXItd2lkZ2V0Ij4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJmb290ZXItdGl0bGUiPgoJCQkJCQkJCQk8aDQ+Q29udGFjdCBJbmZvPC9oND4KCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQk8dWwgY2xhc3M9ImluZm8tbGlzdCI+CgkJCQkJCQkJICAgCgkJCQkJCQkJCTxsaT4KCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJpY29uIGZsYXRpY29uLWVtYWlsLTQiPjwvc3Bhbj4KCQkJCQkJCQkJCTxzdHJvbmc+RW1haWw8L3N0cm9uZz4KCQkJCQkJCQkJc3VwcG9ydEBQcm9maXRjYWJpbmludmVzdG1lbnQuY29tCgkJCQkJCQkJCTwvbGk+CgkJCQkJCQkJCQoJCQkJCQkJCQk8bGk+CgkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iaWNvbiBmbGF0aWNvbi1tYXBzLWFuZC1mbGFncyI+PC9zcGFuPgoJCQkJCQkJCQkJPHN0cm9uZz5BZGRyZXNzPC9zdHJvbmc+CgkJCQkJCQkJCVVuaXQgNCBQaG9lbml4IEJ1c2luZXNzIFBhcmssIDE1MCBTdGFmZm9yZCBTdHJlZXQsIFdhbHNhbGwsIEVuZ2xhbmQsIFdTMiA4RUEKCQkJCQkJCQkJPC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoKCQkJCQkJPCEtLSBGb290ZXIgQ29sdW1uIC0tPgoJCQkJCQk8ZGl2IGNsYXNzPSJmb290ZXItY29sdW1uIj4KCQkJCQkJCTxkaXYgY2xhc3M9ImZvb3Rlci13aWRnZXQiPgoJCQkJCQkJCTxkaXYgY2xhc3M9ImxvZ28iPgoJCQkJCQkJCQk8YSBocmVmPSIjIj48aW1nIHNyYz0iaW1hZ2VzL3Byb2ZpdGNhYmluaW52ZXN0bWVudGxvZ28ucG5nIiBhbHQ9IiIgd2lkdGg9IjEwMHB4Ii8+PC9hPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTxkaXYgY2xhc3M9ImxvZ28tdGV4dCI+V2UncmUgYSBkaXN0aW5jdGl2ZSB3ZWFsdGggYW5kIGludmVzdG1lbnQgbWFuYWdlbWVudCBmaXJtIGFjdGl2ZWx5IGJ1aWxkaW5nIGVuZHVyaW5nIHZhbHVlIGZvciBvdXIgY2xpZW50cy48L2Rpdj4KCQkJCQkJCQk8IS0tIFNvY2lhbCBJY29uIFR3byAtLT4KCQkJCQkJCQkKCQkJCQkJCTwvZGl2PgoJCQkJCQk8L2Rpdj4KCgkJCQkJCTwhLS0gRm9vdGVyIENvbHVtbiAtLT4KCQkJCQkJPGRpdiBjbGFzcz0iZm9vdGVyLWNvbHVtbiI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJmb290ZXItd2lkZ2V0Ij4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJmb290ZXItdGl0bGUiPgoJCQkJCQkJCQk8aDQ+UXVpY2sgTGlua3M8L2g0PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTxkaXYgY2xhc3M9InJvdyBjbGVhcmZpeCI+CgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJjb2x1bW4gY29sLWxnLTYgY29sLW1kLTYgY29sLXNtLTEyIj4KCQkJCQkJCQkJCTx1bCBjbGFzcz0iZm9vdGVyLWxpc3QiPgoJCQkJCQkJCQkJCTxsaT48YSBocmVmPSI/YT1hYm91dF91cyI+Q29tcGFueTwvYT48L2xpPgoJCQkJCQkJCQkJCTxsaT48YSBocmVmPSI/YT1zdXBwb3J0Ij5Db250YWN0IFVzPC9hPjwvbGk+CgkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ij9hPWZhcSI+RnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnM8L2E+PC9saT4KCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iP2E9cnVsZXMiPlByaXZhY3kgUG9saWN5PC9hPjwvbGk+CgkJCQkJCQkJCQkKCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iP2E9Y3J5cHRvX3RyYWRpbmciPkNyeXB0byBUcmFkaW5nPC9hPjwvbGk+CgkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ij9hPWJpbmFyeV9vcHRpb25zIj5Hb2xkIHRyYWRpbmc8L2E+PC9saT4KCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iP2E9bG9hbiI+TG9hbjwvYT48L2xpPgoJCQkJCQkJCQkJPC91bD4KCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQk8IS0tIENvbHVtbiAtLT4KCQkJCQkJCQkJPGRpdiBjbGFzcz0iY29sdW1uIGNvbC1sZy02IGNvbC1tZC02IGNvbC1zbS0xMiI+CgkJCQkJCQkJCQk8dWwgY2xhc3M9ImZvb3Rlci1saXN0Ij4KCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iP2E9cmV0aXJlbWVudCI+UmV0aXJlbWVudCBJbmNvbWU8L2E+PC9saT4KCQkJCQkJCQkJCQk8bGk+PGEgaHJlZj0iP2E9cmVhbF9lc3RhdGUiPlJlYWwgRXN0YXRlPC9hPjwvbGk+CgkJCQkJCQkJCQkJPGxpPjxhIGhyZWY9Ij9hPW9pbF9hbmRfZ2FzIj5PaWwgYW5kIEdhczwvYT48L2xpPgoJCQkJCQkJCQkJCgkJCQkJCQkJCQk8L3VsPgoJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwhLS0gRm9vdGVyIEJvdHRvbSAtLT4KCQk8ZGl2IGNsYXNzPSJmb290ZXItYm90dG9tIj4KCQkJPGRpdiBjbGFzcz0iYXV0by1jb250YWluZXIiPgoJCQkJPGRpdiBjbGFzcz0iY2xlYXJmaXgiPgoJCQkJCTxkaXYgY2xhc3M9InB1bGwtbGVmdCI+CgkJCQkJCTxkaXYgY2xhc3M9ImNvcHlyaWdodCI+wqkgMjAyNCBkYW5pcy1taW5lcnMuY29tLiBBbGwgUmlnaHRzIFJlc2VydmVkLjwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCQoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9mb290ZXI+Cgk8IS0tIEVuZCBGb290ZXIgU3R5bGUgVGhyZWUgLS0+CgoJPCEtLSBTaWRlYmFyIENhcnQgSXRlbSAtLT4KCTxkaXYgY2xhc3M9InhzLXNpZGViYXItZ3JvdXAgaW5mby1ncm91cCI+CgkJPGRpdiBjbGFzcz0ieHMtb3ZlcmxheSB4cy1iZy1ibGFjayI+PC9kaXY+CgkJPGRpdiBjbGFzcz0ieHMtc2lkZWJhci13aWRnZXQiPgoJCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLXdpZGdldC1jb250YWluZXIiPgoJCQkJPGRpdiBjbGFzcz0id2lkZ2V0LWhlYWRpbmciPgoJCQkJCTxhIGhyZWY9IiMiIGNsYXNzPSJjbG9zZS1zaWRlLXdpZGdldCI+CgkJCQkJCVgKCQkJCQk8L2E+CgkJCQk8L2Rpdj4KCQkJCTxkaXYgY2xhc3M9InNpZGViYXItdGV4dHdpZGdldCI+CgoJCQkJCTwhLS0gU2lkZWJhciBJbmZvIENvbnRlbnQgLS0+CgkJCQkJPGRpdiBjbGFzcz0ic2lkZWJhci1pbmZvLWNvbnRlbnRzIj4KCQkJCQkJPGRpdiBjbGFzcz0iY29udGVudC1pbm5lciI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJsb2dvIj4KCQkJCQkJCQk8YSBocmVmPSIjIj48aW1nIHNyYz0iaW1hZ2VzL0F2b24ucG5nIiBhbHQ9IiIgLz48L2E+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtYm94Ij4KCQkJCQkJCQk8aDI+QWJvdXQgVXM8L2gyPgoJCQkJCQkJCTxwIGNsYXNzPSJ0ZXh0Ij5XZSdyZSBhIGRpc3RpbmN0aXZlIHdlYWx0aCBhbmQgaW52ZXN0bWVudCBtYW5hZ2VtZW50IGZpcm0gYWN0aXZlbHkgYnVpbGRpbmcgZW5kdXJpbmcgdmFsdWUgZm9yIG91ciBjbGllbnRzLjwvcD4KCQkJCQkJCQk8YSBocmVmPSI/YT1zdXBwb3J0IiBjbGFzcz0idGhlbWUtYnRuIGJ0bi1zdHlsZS10d28iPjxzcGFuIGNsYXNzPSJ0eHQiPkNvbnRhY3QgVXM8L3NwYW4+PC9hPgoJCQkJCQkJPC9kaXY+CgkJCQkJCQk8ZGl2IGNsYXNzPSJjb250YWN0LWluZm8iPgoJCQkJCQkJCTxoMj5Db250YWN0IEluZm88L2gyPgoJCQkJCQkJCTx1bCBjbGFzcz0ibGlzdC1zdHlsZS1vbmUiPgoJCQkJCQkJCQk8bGk+PHNwYW4gY2xhc3M9Imljb24gZmEgZmEtbG9jYXRpb24tYXJyb3ciPjwvc3Bhbj5Vbml0IDQgUGhvZW5peCBCdXNpbmVzcyBQYXJrLCAxNTAgU3RhZmZvcmQgU3RyZWV0LCBXYWxzYWxsLCBFbmdsYW5kLCBXUzIgOEVBPC9saT4KCQkJCQkJCQkJPGxpPjxzcGFuIGNsYXNzPSJpY29uIGZhIGZhLWVudmVsb3BlIj48L3NwYW4+c3VwcG9ydEBkYW5pcy1taW5lcnMuY29tPC9saT4KCQkJCQkJCQkJCgkJCQkJCQkJPC91bD4KCQkJCQkJCTwvZGl2PgoJCQkJCQkJPCEtLSBTb2NpYWwgQm94IC0tPgoJCQkJCQkJCgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoKCQkJCTwvZGl2PgoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PgoJPCEtLSBFTkQgc2lkZWJhciB3aWRnZXQgaXRlbSAtLT4KCQo8L2Rpdj4KCgoKPCEtLSBUaWNrZXIgV2lkZ2V0IEVORCAtLT4KPCEtLVNjcm9sbCB0byB0b3AtLT4KPGRpdiBjbGFzcz0ic2Nyb2xsLXRvLXRvcCBzY3JvbGwtdG8tdGFyZ2V0IiBkYXRhLXRhcmdldD0iaHRtbCI+PHNwYW4gY2xhc3M9ImZhIGZhLWxvbmctYXJyb3ctdXAiPjwvc3Bhbj48L2Rpdj4KCjwhLS08c2NyaXB0PgoJCS8vICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7CgkJCS8vICQoJyNjbG9zZS1wb3AtdmlkZW8nKS5jbGljayhmdW5jdGlvbigpewoJCQkJLy8gJCgnI3BvcC12aWRlbycpLmZhZGVPdXQoKTsKCQkJCS8vIGNvbnNvbGUubG9nKCdsbGxkbGRsZGxkJykKCQkJLy8gfSk7CgkJLy8gfSk7CgkJCgkJZnVuY3Rpb24gaGlkZVBvcFZpZGVvKCl7CgkJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb3AtdmlkZW8nKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoJCX0KCQoJCgk8L3NjcmlwdD4tLS0+CjxzY3JpcHQgc3JjPSJqcy9qcXVlcnkuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0ianMvcG9wcGVyLm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJqcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImpzL2pxdWVyeS5tQ3VzdG9tU2Nyb2xsYmFyLmNvbmNhdC5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LmZhbmN5Ym94LmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImpzL2FwcGVhci5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJqcy9uYXYtdG9vbC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJqcy9taXhpdHVwLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImpzL293bC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJqcy93b3cuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0ianMvanF1ZXJ5LXVpLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9ImpzL3NjcmlwdC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJqcy9jb2xvci1zZXR0aW5ncy5qcyI+PC9zY3JpcHQ+CgoKCgo8L2JvZHk+CgoKPC9odG1sPgoKCgoKCgoKPGRpdiBjbGFzcz0ibWdtIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgo8ZGl2IGNsYXNzPSJ0eHQiIHN0eWxlPSJjb2xvcjojZmZmZmZmOyI+U29tZW9uZSBmcm9tIDxiPjwvYj4ganVzdCBlYXJuZWQgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+PC9hPjwvZGl2Pgo8L2Rpdj4KCTxzdHlsZT4KLm1nbSB7CiAgICBib3JkZXItcmFkaXVzOiA3cHg7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB6LWluZGV4OiA5OTk5OTk5OTk7CiAgICB0b3A6IDUwcHg7CiAgICByaWdodDogNTBweDsKICAgIGJhY2tncm91bmQ6ICMwMDdiZmY7CiAgICBwYWRkaW5nOiAxMnB4IDIzcHg7CiAgICBib3gtc2hhZG93OiA3cHggNHB4IDEzcHggMnB4IHJnYigwIDAgMCAvIDMwJSk7Cn0KLm1nbSBhIHsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIGNvbG9yOndoaXRlOwp9Ci5tZ20gYSwgLm1nbSBhOmFjdGl2ZSB7CiAgICB0cmFuc2l0aW9uOiBhbGwgLjJzIGVhc2U7CiAgICBjb2xvcjojZjJkNTE2OwogICAgCn0KCgoudHh0IHsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR3dTVVJCVkVoTHRaYTlTZ05CRU1jOXNVeHhSY29VS1N6U1dJaFhwRk1oaFlXRmhhQmc0eVBZaVdDWFp4QkxFUnNMUlMzRVFrRWZ3Q0tkaldKQXdTS0Nnb0tDY3VkdjRPNVlMcnQ3RXpnWGhpVTMvNCtiMmNrbXdWakpTcEtrUTZ3QWk0Z3doVCt6M3dSQmNFejB5alNzZVVUcmNSeWZzSHNYbUQwQW1iSE9DOUlpOFZJbW51WEJQZ2xIcFE1d3dTVk03c05uVEc3WmE0SndEZENqeHlBaUgzbnlBMm10YVRKdWZpRFo1ZENhcWxJdElMaDFOSGF0Zk41c2t2ang5WjM4bTY5Q2d6dVhtWmdWclBJR0U3NjNKeDlxS3NSb3pXWXc2eE9IZEVSK25uMktrTytCYitVVjVDQk42V0M2UXRCZ2JSVm96cmFoQWJtbTZIdFVzZ3RQQzE5dEZkeFhaWUJPZmtibUZKMVZhSEExVkFIamQwcHA3MG9UWnp2UitFVnJ4MllnZmRzcTZldTU1QkhZUjhobGNraStuK2tFUlVGRzhCckEwQndqZUF2Mk04V0xRQnRjeStTRDZmTnNtbkIzQWxCTHJnVHRWVzFjMlFONGJWV0xBVGFJUzYwSjJEdTV5MVRpSmdqU0J2RlZaZ1Rtd0NVK2RBWkZvUHhHRUVzOG55SEM5QndlMkd2RUp2MldYWmIwdmpkeUZUNEN4azNlL2tJcWxPR29WTHd3UGV2cFlIVCswMFQraFd3WERmNEFKQU9VcVdjRGhid0FBQUFBU1VWT1JLNUNZSUk9KSFpbXBvcnRhbnQ7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgcGFkZGluZzogMnB4IDI4cHg7Cn0KCgoKPC9zdHlsZT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogCiAgICB2YXIgbGlzdENvdW50cmllcyA9IFsnQXJnZW50aW5hJywgJ1VTQScsICdHZXJtYW55JywgJ0ZyYW5jZScsICdJdGFseScsICdTb3V0aCBLb3JlYScsICdBdXN0cmFsaWEnLCAnTm9yd2F5JywgJ0NhbmFkYScsICdBcmdlbnRpbmEnLCAnU2F1ZGkgQXJhYmlhJywgJ01leGljbycsICdTcGFpbicsICdBdXN0cmlhJywgJ1ZlbmV6dWVsYScsICdTb3V0aCBBZnJpY2EnLCAnU3dlZGVuJywgJ1NvdXRoIEtvcmVhJywgJ0NoaW5hJywgJ0l0YWx5JywgJ0dlcm1hbnknLCAnVW5pdGVkIEtpbmdkb20nLCAnQmFocmFpbicsICdHcmVlY2UnLCAnQ3ViYScsICdCdWxnYXJpYScsICdQb3J0dWdhbCcsICdBdXN0cmlhJywgJ0N5cHJ1cycsICdQYW5hbWEnLCAnQXNpYScsICdOb3J3YXknLCAnTmV0aGVybGFuZHMnLCAnU3dpdHplcmxhbmQnLCAnQmVsZ2l1bScsICdJc3JhZWwnLCAnQ3lwcnVzJywnU3BhaW4nLCdOb3J3YXknXTsKICAgIHZhciBsaXN0UGxhbnMgPSBbJyQ5MjA3MCcsJyQyNzYwMCcsJyQ4NTQwMCcsJyQyMzQwMDAnLCckMjg4MDAnLCckNDEyMDAnLCckNzM1MDAnLCAnJDgwMDAwJywgJyQ5NjUwJywgJyQ5NTAwMCcsICckNDUwMDAnLCAnJDUyMDAnLCckNzIwMCcsJzQ1NzAwJywnJDM1MDAnLCckNTAwMCcsJyQxMzUwMCcsJyQ5NTAwJ107CiAgICB2YXIgIGdob3N0cz1bJ0phbWVzJywnTWFyeScsJ0pvaG4nLCdQYXRyaWNpYScsJ1JvYmVydCcsJ0plbm5pZmVyJywnTWljaGFlbCcsJ0xpbmRhJywnV2lsbGlhbScsJ0VsaXphYmV0aCcsJ0RhdmlkJywnQmFyYmFyYScsJ1JpY2hhcmQnLCdTdXNhbicsJ0pvc2VwaCcsJ0plc3NpY2EnLCdUaG9tYXMnLCdTYXJhaCcsJ0NoYXJsZXMnLAonS2FyZW4nLCdDaHJpc3RvcGhlcicsJ05hbmN5JywnRGFuaWVsJywnTWFyZ2FyZXQnLCdNYXR0aGV3JywnTGlzYScsJ0FudGhvbnknLCdCZXR0eScsJ0RvbmFsZCcsJ0Rvcm90aHknLCdNYXJrJywnU2FuZHJhJywnUGF1bCcsJ0FzaGxleScsJ1N0ZXZlbicsJ0tpbWJlcmx5JywnQW5kcmV3JywnRG9ubmEnLCdLZW5uZXRoJywnRW1pbHknLAonSm9zaHVhJywnTWljaGVsbGUnLCdHZW9yZ2UnLCdDYXJvbCcsJ0tldmluJywnQW1hbmRhJywnQnJpYW4nLCdNZWxpc3NhJywnRWR3YXJkJywnRGVib3JhaCcsJ1JvbmFsZCcsJ1N0ZXBoYW5pZScsJ1RpbW90aHknLCdSZWJlY2NhJywnSmFzb24nLCdMYXVyYScsJ0plZmZyZXknLCdTaGFyb24nLCdSeWFuJywnQ3ludGhpYScsJ0phY29iJywKJ0thdGhsZWVuJywnR2FyeScsJ0hlbGVuJywnTmljaG9sYXMnLCdBbXknLCdFcmljJywnU2hpcmxleScsJ1N0ZXBoZW4nLCdBbmdlbGEnLCdKb25hdGhhbicsJ0FubmEnLCdMYXJyeScsJ0JyZW5kYScsJ0p1c3RpbicsJ1BhbWVsYScsJ1Njb3R0JywnTmljb2xlJywnQnJhbmRvbicsJ1J1dGgnLCdGcmFuaycsJ0thdGhlcmluZScsJ0JlbmphbWluJywKJ1NhbWFudGhhJywnR3JlZ29yeScsJ0NocmlzdGluZScsJ1NhbXVlbCcsJ0VtbWEnLCdSYXltb25kJywnQ2F0aGVyaW5lJywnUGF0cmljaycsJ0RlYnJhJywnQWxleGFuZGVyJywnVmlyZ2luaWEnLCdKYWNrJywnUmFjaGVsJywnRGVubmlzJywnQ2Fyb2x5bicsJ0plcnJ5JywnSmFuZXQnLCdUeWxlcicsJ01hcmlhJywnQWFyb24nLCdIZWF0aGVyJywKJ0pvc2UnLCdEaWFuZScsJ0hlbnJ5JywnSnVsaWUnLCdEb3VnbGFzJywnSm95Y2UnLCdBZGFtJywnVmljdG9yaWEnLCdQZXRlcicsJ0tlbGx5JywnTmF0aGFuJywnQ2hyaXN0aW5hJywnWmFjaGFyeScsJ0pvYW4nLCdXYWx0ZXInLCdFdmVseW4nLCdLeWxlJywnTGF1cmVuJywnSGFyb2xkJywnSnVkaXRoJywnQ2FybCcsJ09saXZpYScsJ0plcmVteScsCidGcmFuY2VzJywnS2VpdGgnLCdNYXJ0aGEnLCdSb2dlcicsJ0NoZXJ5bCcsJ0dlcmFsZCcsJ01lZ2FuJywnRXRoYW4nLCdBbmRyZWEnLCdBcnRodXInLCdIYW5uYWgnLCdUZXJyeScsJ0phY3F1ZWxpbmUnLCdDaHJpc3RpYW4nLCdBbm4nLCdTZWFuJywnSmVhbicsJ0xhd3JlbmNlJywnQWxpY2UnLCdBdXN0aW4nLCdLYXRocnluJywnSm9lJywKJ0dsb3JpYScsJ05vYWgnLCdUZXJlc2EnLCdKZXNzZScsJ0RvcmlzJywnQWxiZXJ0JywnU2FyYScsJ0JyeWFuJywnSmFuaWNlJywnQmlsbHknLCdKdWxpYScsJ0JydWNlJywnTWFyaWUnLCdXaWxsaWUnLCdNYWRpc29uJywnSm9yZGFuJywnR3JhY2UnLCdEeWxhbicsJ0p1ZHknLCdBbGFuJywnVGhlcmVzYScsJ1JhbHBoJywnQmV2ZXJseScsCidHYWJyaWVsJywnRGVuaXNlJywnUm95JywnTWFyaWx5bicsJ0p1YW4nLCdBbWJlcicsJ1dheW5lJywnRGFuaWVsbGUnLCdFdWdlbmUnLCdBYmlnYWlsJywnTG9nYW4nLCdCcml0dGFueScsJ1JhbmR5JywnUm9zZScsJ0xvdWlzJywnRGlhbmEnLCdSdXNzZWxsJywnTmF0YWxpZScsJ1ZpbmNlbnQnLCdTb3BoaWEnLCdQaGlsaXAnLCdBbGV4aXMnLAonQm9iYnknLCdMb3JpJywnSm9obm55JywnS2F5bGEnLCdCcmFkbGV5J107CiBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMCAtIDgwMDAgKyAxKSArIDgwMDApOwogICAgdmFyIHJ1biA9IHNldEludGVydmFsKHJlcXVlc3QsIGludGVydmFsKTsKCiAgICBmdW5jdGlvbiByZXF1ZXN0KCkgewogICAgICAgIGNsZWFySW50ZXJ2YWwocnVuKTsKICAgICAgICBpbnRlcnZhbCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg0MDAwMDAgLSA4MDAwMCArIDEpICsgODAwMCk7CiAgICAgICAgdmFyIGNvdW50cnkgPSBsaXN0Q291bnRyaWVzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGxpc3RDb3VudHJpZXMubGVuZ3RoKV07CiAgICAgICAgdmFyIHBsYW4gPSBsaXN0UGxhbnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbGlzdFBsYW5zLmxlbmd0aCldOwogICAgICAgICB2YXIgZ2hvc3QgPSBnaG9zdHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZ2hvc3RzLmxlbmd0aCldOyAgIAogICAgICAgIHZhciBtc2cgPSAnPGI+JysgZ2hvc3QgKyc8L2I+IGZyb20gPGI+JyArIGNvdW50cnkgKyAnPC9iPiBqdXN0IGVhcm5lZCAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0iamF2YXNjcmlwdDp2b2lkKDApOyI+JyArIHBsYW4gKyAnIC48L2E+JzsKICAgICAgICAkKCIubWdtIC50eHQiKS5odG1sKG1zZyk7CiAgICAgICAgJCgiLm1nbSIpLnN0b3AodHJ1ZSkuZmFkZUluKDMwMCk7CiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICQoIi5tZ20iKS5zdG9wKHRydWUpLmZhZGVPdXQoMzAwKTsKICAgICAgICB9LCAxMDAwMCk7CiAgICAgICAgcnVuID0gc2V0SW50ZXJ2YWwocmVxdWVzdCwgaW50ZXJ2YWwpOwogICAgfQo8L3NjcmlwdD4="}},"time_used":351,"timings":{"blocked":-1,"dns":60,"connect":18,"send":0,"wait":249,"receive":0,"ssl":23},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"widgets.coingecko.com/coingecko-coin-price-marquee-widget.js","fqdn":"widgets.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.18.4.118","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.693Z","timestamp":1785129412693,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coingecko.com","organization":""},"issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 25 Jun 2026 14:12:31 GMT","end":"Wed, 23 Sep 2026 14:12:30 GMT"},"fingerprint":{"sha1":"79:92:C9:C4:9C:3B:8E:38:3D:B4:5C:FA:23:B7:32:6D:E5:6E:21:4C","sha256":"9F:04:05:47:D7:AB:A2:ED:CE:9E:40:05:15:CB:1D:E0:9F:A7:BB:C0:DC:EC:A2:90:53:EC:F5:8E:57:D6:62:B0"}}},"request":{"raw":"GET /coingecko-coin-price-marquee-widget.js HTTP/1.1\r\nHost: widgets.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: script\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\ncontent-type: application/javascript\r\nx-amz-id-2: qdG2E7yuprzpD92tmuQTHsg9WLeSp2GAwFbdpwF/9TG6OqrOcrw49t0xAy9Ru0CuvBXrKO3HxYfGer2Z34j64aw/9qIl8DZg\r\nx-amz-request-id: VXPQAT8JR3CV0BYQ\r\nx-amz-replication-status: COMPLETED\r\nlast-modified: Fri, 03 Jul 2026 04:41:16 GMT\r\nvary: accept-encoding\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: pUfu3vFk32PoX9Yh9wO6PBDW1nhUzKSO\r\nserver: cloudflare\r\npriority: u=3,i=?0\r\nage: 29464\r\nexpires: Tue, 28 Jul 2026 05:16:52 GMT\r\ncache-control: public, max-age=86400\r\ncf-cache-status: HIT\r\nstrict-transport-security: max-age=31536000; includeSubDomains; preload\r\nx-content-type-options: nosniff\r\nspeculation-rules: \"/cdn-cgi/speculation\"\r\netag: W/\"c943d4422dad6300bbaf689c2211180f\"\r\ncontent-encoding: br\r\ncf-ray: a2192caddf488be6-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\nserver-timing: cfExtPri\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]},{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"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":230974,"size_decoded":69995,"mime_type":"application/javascript","magic":"JavaScript source, Unicode text, UTF-8 text, with very long lines (36129)","md5":"c943d4422dad6300bbaf689c2211180f","sha1":"4cf78792b3a9dddc6f2ee8219bbfdd213194f144","sha256":"d8d3d9a390c75f612142118d3281d85b95cb50e84c2f6d9438daa83efa8e2437","sha512":"c5516ee60fdc9e900036dec072c7c2de8d01dcfce22fc901048697428c43604ea8dd8d907abda960ce8aae5201ec7f649300af511c8bcccac469a9541f0d9d4f","ssdeep":"3072:/uPfvYNJshGWDSBttCWINmVZrnPodE5rUzpI4Oz:XYBctCo2c4Oz","tlshash":"bc34198eb6c0f19947b693e9605f394ba77d28fc68884380e972f4e5587e05c6132f6c","first_seen":"2026-07-05T23:38:03.171209Z","last_seen":"2026-07-29T06:15:23.422318Z","times_seen":251,"resource_available":true,"data":"KGZ1bmN0aW9uKGUpe3ZhciB0PXt9O2Z1bmN0aW9uIG4ocil7aWYodFtyXSlyZXR1cm4gdFtyXS5leHBvcnRzO3ZhciBpPXRbcl09e2k6cixsOiExLGV4cG9ydHM6e319O3JldHVybiBlW3JdLmNhbGwoaS5leHBvcnRzLGksaS5leHBvcnRzLG4pLGkubD0hMCxpLmV4cG9ydHN9bi5tPWUsbi5jPXQsbi5kPWZ1bmN0aW9uKGUsdCxyKXtuLm8oZSx0KXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxnZXQ6cn0pfSxuLnI9ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LG4udD1mdW5jdGlvbihlLHQpe2lmKDEmdCYmKGU9bihlKSksOCZ0KXJldHVybiBlO2lmKDQmdCYmIm9iamVjdCI9PT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciByPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobi5yKHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiYic3RyaW5nIiE9dHlwZW9mIGUpZm9yKHZhciBpIGluIGUpbi5kKHIsaSxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0uYmluZChudWxsLGkpKTtyZXR1cm4gcn0sbi5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlWyJkZWZhdWx0Il19OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBuLmQodCwiYSIsdCksdH0sbi5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxuLnA9Ii8iLG4obi5zPTIwKX0pKHsiMDE0YiI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJlNTNkIiksaT1uKCIwN2UzIiksYT1uKCI4ZTYwIiksbz1uKCI2M2I2IiksYz1uKCI5MTM4Iikscz1uKCJlYmZkIikuS0VZLHA9bigiMjk0YyIpLGw9bigiZGJkYiIpLHU9bigiNDVmMiIpLGQ9bigiNjJhMCIpLF89bigiNTE2OCIpLG09bigiY2NiOSIpLGY9bigiNjcxOCIpLGg9bigiNDdlZSIpLHY9bigiOTAwMyIpLHk9bigiZTRhZSIpLGc9bigiZjc3MiIpLHc9bigiMjQxZSIpLGI9bigiMzZjMyIpLGs9bigiMWJjMyIpLHg9bigiYWViZCIpLEM9bigiYTE1OSIpLFM9bigiMDM5NSIpLFA9bigiYmYwYiIpLGo9bigiOWFhOSIpLE89bigiZDlmNiIpLEE9bigiYzNhMSIpLEU9UC5mLFQ9Ty5mLEQ9Uy5mLHo9ci5TeW1ib2wsTT1yLkpTT04sJD1NJiZNLnN0cmluZ2lmeSxOPSJwcm90b3R5cGUiLEk9XygiX2hpZGRlbiIpLEY9XygidG9QcmltaXRpdmUiKSxMPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLFI9bCgic3ltYm9sLXJlZ2lzdHJ5IiksVj1sKCJzeW1ib2xzIiksVT1sKCJvcC1zeW1ib2xzIiksSD1PYmplY3RbTl0sRz0iZnVuY3Rpb24iPT10eXBlb2YgeiYmISFqLmYsSz1yLlFPYmplY3QsQj0hS3x8IUtbTl18fCFLW05dLmZpbmRDaGlsZCxxPWEmJnAoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPUMoVCh7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiBUKHRoaXMsImEiLHt2YWx1ZTo3fSkuYX19KSkuYX0pKT9mdW5jdGlvbihlLHQsbil7dmFyIHI9RShILHQpO3ImJmRlbGV0ZSBIW3RdLFQoZSx0LG4pLHImJmUhPT1IJiZUKEgsdCxyKX06VCxKPWZ1bmN0aW9uKGUpe3ZhciB0PVZbZV09Qyh6W05dKTtyZXR1cm4gdC5faz1lLHR9LFc9RyYmInN5bWJvbCI9PXR5cGVvZiB6Lml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB6fSxYPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZT09PUgmJlgoVSx0LG4pLHkoZSksdD1rKHQsITApLHkobiksaShWLHQpPyhuLmVudW1lcmFibGU/KGkoZSxJKSYmZVtJXVt0XSYmKGVbSV1bdF09ITEpLG49QyhuLHtlbnVtZXJhYmxlOngoMCwhMSl9KSk6KGkoZSxJKXx8VChlLEkseCgxLHt9KSksZVtJXVt0XT0hMCkscShlLHQsbikpOlQoZSx0LG4pfSxaPWZ1bmN0aW9uKGUsdCl7eShlKTt2YXIgbixyPWgodD1iKHQpKSxpPTAsYT1yLmxlbmd0aDt3aGlsZShhPmkpWChlLG49cltpKytdLHRbbl0pO3JldHVybiBlfSxZPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/QyhlKTpaKEMoZSksdCl9LFE9ZnVuY3Rpb24oZSl7dmFyIHQ9TC5jYWxsKHRoaXMsZT1rKGUsITApKTtyZXR1cm4hKHRoaXM9PT1IJiZpKFYsZSkmJiFpKFUsZSkpJiYoISh0fHwhaSh0aGlzLGUpfHwhaShWLGUpfHxpKHRoaXMsSSkmJnRoaXNbSV1bZV0pfHx0KX0sZWU9ZnVuY3Rpb24oZSx0KXtpZihlPWIoZSksdD1rKHQsITApLGUhPT1IfHwhaShWLHQpfHxpKFUsdCkpe3ZhciBuPUUoZSx0KTtyZXR1cm4hbnx8IWkoVix0KXx8aShlLEkpJiZlW0ldW3RdfHwobi5lbnVtZXJhYmxlPSEwKSxufX0sdGU9ZnVuY3Rpb24oZSl7dmFyIHQsbj1EKGIoZSkpLHI9W10sYT0wO3doaWxlKG4ubGVuZ3RoPmEpaShWLHQ9blthKytdKXx8dD09SXx8dD09c3x8ci5wdXNoKHQpO3JldHVybiByfSxuZT1mdW5jdGlvbihlKXt2YXIgdCxuPWU9PT1ILHI9RChuP1U6YihlKSksYT1bXSxvPTA7d2hpbGUoci5sZW5ndGg+bykhaShWLHQ9cltvKytdKXx8biYmIWkoSCx0KXx8YS5wdXNoKFZbdF0pO3JldHVybiBhfTtHfHwoej1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiB6KXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBlPWQoYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApLHQ9ZnVuY3Rpb24obil7dGhpcz09PUgmJnQuY2FsbChVLG4pLGkodGhpcyxJKSYmaSh0aGlzW0ldLGUpJiYodGhpc1tJXVtlXT0hMSkscSh0aGlzLGUseCgxLG4pKX07cmV0dXJuIGEmJkImJnEoSCxlLHtjb25maWd1cmFibGU6ITAsc2V0OnR9KSxKKGUpfSxjKHpbTl0sInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa30pKSxQLmY9ZWUsTy5mPVgsbigiNmFiZiIpLmY9Uy5mPXRlLG4oIjM1NWQiKS5mPVEsai5mPW5lLGEmJiFuKCJiOGUzIikmJmMoSCwicHJvcGVydHlJc0VudW1lcmFibGUiLFEsITApLG0uZj1mdW5jdGlvbihlKXtyZXR1cm4gSihfKGUpKX0pLG8oby5HK28uVytvLkYqIUcse1N5bWJvbDp6fSk7Zm9yKHZhciByZT0iaGFzSW5zdGFuY2UsaXNDb25jYXRTcHJlYWRhYmxlLGl0ZXJhdG9yLG1hdGNoLHJlcGxhY2Usc2VhcmNoLHNwZWNpZXMsc3BsaXQsdG9QcmltaXRpdmUsdG9TdHJpbmdUYWcsdW5zY29wYWJsZXMiLnNwbGl0KCIsIiksaWU9MDtyZS5sZW5ndGg+aWU7KV8ocmVbaWUrK10pO2Zvcih2YXIgYWU9QShfLnN0b3JlKSxvZT0wO2FlLmxlbmd0aD5vZTspZihhZVtvZSsrXSk7byhvLlMrby5GKiFHLCJTeW1ib2wiLHtmb3I6ZnVuY3Rpb24oZSl7cmV0dXJuIGkoUixlKz0iIik/UltlXTpSW2VdPXooZSl9LGtleUZvcjpmdW5jdGlvbihlKXtpZighVyhlKSl0aHJvdyBUeXBlRXJyb3IoZSsiIGlzIG5vdCBhIHN5bWJvbCEiKTtmb3IodmFyIHQgaW4gUilpZihSW3RdPT09ZSlyZXR1cm4gdH0sdXNlU2V0dGVyOmZ1bmN0aW9uKCl7Qj0hMH0sdXNlU2ltcGxlOmZ1bmN0aW9uKCl7Qj0hMX19KSxvKG8uUytvLkYqIUcsIk9iamVjdCIse2NyZWF0ZTpZLGRlZmluZVByb3BlcnR5OlgsZGVmaW5lUHJvcGVydGllczpaLGdldE93blByb3BlcnR5RGVzY3JpcHRvcjplZSxnZXRPd25Qcm9wZXJ0eU5hbWVzOnRlLGdldE93blByb3BlcnR5U3ltYm9sczpuZX0pO3ZhciBjZT1wKChmdW5jdGlvbigpe2ouZigxKX0pKTtvKG8uUytvLkYqY2UsIk9iamVjdCIse2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbihlKXtyZXR1cm4gai5mKHcoZSkpfX0pLE0mJm8oby5TK28uRiooIUd8fHAoKGZ1bmN0aW9uKCl7dmFyIGU9eigpO3JldHVybiJbbnVsbF0iIT0kKFtlXSl8fCJ7fSIhPSQoe2E6ZX0pfHwie30iIT0kKE9iamVjdChlKSl9KSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1bZV0saT0xO3doaWxlKGFyZ3VtZW50cy5sZW5ndGg+aSlyLnB1c2goYXJndW1lbnRzW2krK10pO2lmKG49dD1yWzFdLChnKHQpfHx2b2lkIDAhPT1lKSYmIVcoZSkpcmV0dXJuIHYodCl8fCh0PWZ1bmN0aW9uKGUsdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4mJih0PW4uY2FsbCh0aGlzLGUsdCkpLCFXKHQpKXJldHVybiB0fSksclsxXT10LCQuYXBwbHkoTSxyKX19KSx6W05dW0ZdfHxuKCIzNWU4IikoeltOXSxGLHpbTl0udmFsdWVPZiksdSh6LCJTeW1ib2wiKSx1KE1hdGgsIk1hdGgiLCEwKSx1KHIuSlNPTiwiSlNPTiIsITApfSwiMDFmOSI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyZDAwIiksaT1uKCI1Y2ExIiksYT1uKCIyYWJhIiksbz1uKCIzMmU5IiksYz1uKCI4NGYyIikscz1uKCI0MWEwIikscD1uKCI3ZjIwIiksbD1uKCIzOGZkIiksdT1uKCIyYjRjIikoIml0ZXJhdG9yIiksZD0hKFtdLmtleXMmJiJuZXh0ImluW10ua2V5cygpKSxfPSJAQGl0ZXJhdG9yIixtPSJrZXlzIixmPSJ2YWx1ZXMiLGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHYseSxnLHcpe3Mobix0LHYpO3ZhciBiLGsseCxDPWZ1bmN0aW9uKGUpe2lmKCFkJiZlIGluIE8pcmV0dXJuIE9bZV07c3dpdGNoKGUpe2Nhc2UgbTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyxlKX07Y2FzZSBmOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgbih0aGlzLGUpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyxlKX19LFM9dCsiIEl0ZXJhdG9yIixQPXk9PWYsaj0hMSxPPWUucHJvdG90eXBlLEE9T1t1XXx8T1tfXXx8eSYmT1t5XSxFPUF8fEMoeSksVD15P1A/QygiZW50cmllcyIpOkU6dm9pZCAwLEQ9IkFycmF5Ij09dCYmTy5lbnRyaWVzfHxBO2lmKEQmJih4PWwoRC5jYWxsKG5ldyBlKSkseCE9PU9iamVjdC5wcm90b3R5cGUmJngubmV4dCYmKHAoeCxTLCEwKSxyfHwiZnVuY3Rpb24iPT10eXBlb2YgeFt1XXx8byh4LHUsaCkpKSxQJiZBJiZBLm5hbWUhPT1mJiYoaj0hMCxFPWZ1bmN0aW9uKCl7cmV0dXJuIEEuY2FsbCh0aGlzKX0pLHImJiF3fHwhZCYmIWomJk9bdV18fG8oTyx1LEUpLGNbdF09RSxjW1NdPWgseSlpZihiPXt2YWx1ZXM6UD9FOkMoZiksa2V5czpnP0U6QyhtKSxlbnRyaWVzOlR9LHcpZm9yKGsgaW4gYilrIGluIE98fGEoTyxrLGJba10pO2Vsc2UgaShpLlAraS5GKihkfHxqKSx0LGIpO3JldHVybiBifX0sIjAyZjQiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI0NTg4IiksaT1uKCJiZTEzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciBhLG8sYz1TdHJpbmcoaSh0KSkscz1yKG4pLHA9Yy5sZW5ndGg7cmV0dXJuIHM8MHx8cz49cD9lPyIiOnZvaWQgMDooYT1jLmNoYXJDb2RlQXQocyksYTw1NTI5Nnx8YT41NjMxOXx8cysxPT09cHx8KG89Yy5jaGFyQ29kZUF0KHMrMSkpPDU2MzIwfHxvPjU3MzQzP2U/Yy5jaGFyQXQocyk6YTplP2Muc2xpY2UocyxzKzIpOm8tNTYzMjArKGEtNTUyOTY8PDEwKSs2NTUzNil9fX0sIjAzOTAiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMDJmNCIpKCEwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0KyhuP3IoZSx0KS5sZW5ndGg6MSl9fSwiMDM5NSI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjM2YzMiKSxpPW4oIjZhYmYiKS5mLGE9e30udG9TdHJpbmcsbz0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93JiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcz9PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpOltdLGM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiBpKGUpfWNhdGNoKHQpe3JldHVybiBvLnNsaWNlKCl9fTtlLmV4cG9ydHMuZj1mdW5jdGlvbihlKXtyZXR1cm4gbyYmIltvYmplY3QgV2luZG93XSI9PWEuY2FsbChlKT9jKGUpOmkocihlKSl9fSwiMDQyMyI6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IuaZguS+oee3j+mhjeODqeODs+OCryIsIm1jYXAiOiLmmYLkvqHnt4/poY0iLCIyNGhfdm9sdW1lIjoiMjTmmYLplpPps6XosrTml48iLCIyNGhfaGlnaF9sb3ciOiIyNOaZgumWkyDmnIDpq5jlgKQv5pyA5a6J5YCkIn0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH3jgavjgojjgovmj5DkvpsiLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IuS7ruaDs+mAmuiyqOS+oeagvOOBruavlOi8gyIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiLku67mg7PpgJrosqjmmYLkvqHnt4/poY3jga7mr5TovIMifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR944Gr44KI44KL5o+Q5L6bIn0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjRI5pyA6auY5YCkIiwiMjRoX2xvdyI6IjI0SOacgOWuieWApCIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW5944Gu5L6h5qC844OB44Oj44O844OI44KS6KaL44KLIiwicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH3jgavjgojjgovmj5DkvpsifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfeOBq+OCiOOCi+aPkOS+myJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR944Gr44KI44KL5o+Q5L6bIn0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR944Gr44KI44KL5o+Q5L6bIn0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0SOacgOmrmOWApCIsIjI0aF9sb3ciOiIyNEjmnIDlronlgKQiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiJXtjb2lufeOBruS+oeagvOODgeODo+ODvOODiOOCkuimi+OCiyIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR944Gr44KI44KL5o+Q5L6bIn0sImNvaW5fY29udmVydGVyX3dpZGdldCI6eyJ2aWV3X3ByaWNlX2NoYXJ0IjoiJXtjb2lufeOBruS+oeagvOODgeODo+ODvOODiOOCkuimi+OCiyIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR944Gr44KI44KL5o+Q5L6bIn0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiLku67mg7PpgJrosqjjg4fjg7zjgr/kuIDopqciLCJzdWJ0aXRsZSI6IijmmYLkvqHnt4/poY3kuIrkvY0le3RvcH0pIiwicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH3jgavjgojjgovmj5DkvpsifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLlhY3osqzkuovpoIU6IOOBk+OBruODhOODvOODq+OBr+OCqOODs+OCv+ODvOODhuOCpOODoeODs+ODiOOCkuebrueahOOBqOOBl+OBpuaPkOS+m+OBleOCjOOBpuOBiuOCiuOAgeiyoeWLmeeahOOBquWKqeiogOOCkuaIkOOBmeOCguOBruOBp+OBr+OBguOCiuOBvuOBm+OCk+OAgiIsInNwaW4iOiLjgrnjg5Tjg7MiLCJhdmFpbGFibGVfY29pbnMiOiLliKnnlKjlj6/og73jgarjgrPjgqTjg7MifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiJDb2luR2Vja28g5L6h5qC844Ki44OD44OX44OH44O844OIIiwidG90YWxfbWNhcCI6IuaZguS+oee3j+mhjeWQiOioiCIsIjI0aF92b2wiOiIyNEjlj5blvJXpq5giLCJkb20iOiLljaDmnInnjocifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoi5Y+W5byV5omAIiwicGFpciI6IumAmuiyqOODmuOCoiIsInByaWNlIjoi5L6h5qC8Iiwidm9sdW1lIjoi5Y+W5byV6auYIiwidHJ1c3Rfc2NvcmUiOiLjg4jjg6njgrnjg4jjgrnjgrPjgqIiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi5L6h5qC844OB44Oj44O844OI44KS6KaL44KLIiwicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH3jgavjgojjgovmj5DkvpsiLCJ2aWV3X2FsbCI6IuOBmeOBueOBpuOBriAle2NvaW59IOODnuODvOOCseODg+ODiOOCkuihqOekuiJ9fScpfSwiMDU2YyI6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6Iue4veW4guWAvOaOkuWQjSIsIm1jYXAiOiLnuL3luILlgLwiLCIyNGhfdm9sdW1lIjoiMjQg5bCP5pmC5Lqk5piT6YePIiwiMjRoX2hpZ2hfbG93IjoiMjQg5bCP5pmC6auY5YO5L+S9juWDuSJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmj5DkvpsiLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IuWKoOWvhuiyqOW5o+WMr+eOh+avlOi8gyIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiLliqDlr4bosqjluaPluILlgLzmr5TovIMifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmj5DkvpsifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNCDlsI/mmYLpq5jlg7kiLCIyNGhfbG93IjoiMjQg5bCP5pmC5L2O5YO5Iiwidmlld19wcmljZV9jaGFydCI6IuafpeeciyAle2NvaW59IOeahOWMr+eOh+WcluihqCIsInBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmj5DkvpsifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5o+Q5L6bIn0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IueUsSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOaPkOS+myJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5o+Q5L6bIn0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0IOWwj+aZgumrmOWDuSIsIjI0aF9sb3ciOiIyNCDlsI/mmYLkvY7lg7kiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi5p+l55yLICV7Y29pbn0g55qE5Yyv546H5ZyW6KGoIiwicG93ZXJlZF9ieSI6IueUsSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOaPkOS+myJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IuafpeeciyAle2NvaW59IOeahOWMr+eOh+i1sOWLouWcliIsInBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmj5DkvpsifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IuWKoOWvhuiyqOW5o+aoueeLgOWcliIsInN1YnRpdGxlIjoiKOW4guWAvOWJjSAle3RvcH0g5ZCNKSIsInBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmj5DkvpsifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLlhY3osqzogbLmmI7vvJrmraTlt6Xlhbflg4XkvpvlqJvmqILkuYvnlKjvvIzkuI3mp4vmiJDosqHli5nlu7rorbDjgIIiLCJzcGluIjoiU3BpbiIsImF2YWlsYWJsZV9jb2lucyI6IuWPr+eUqOiyqOW5oyJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyDljK/njofmm7TmlrAiLCJ0b3RhbF9tY2FwIjoi57i95biC5YC8IiwiMjRoX3ZvbCI6IjI0IOWwj+aZguS6pOaYk+mHjyIsImRvbSI6IuW4guS9lOeOhyJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiLkuqTmmJPlubPlj7AiLCJwYWlyIjoi5bCNIiwicHJpY2UiOiLlg7nmoLwiLCJ2b2x1bWUiOiLkuqTmmJPph48iLCJ0cnVzdF9zY29yZSI6IuS/oeS7u+WIhuaVuCIsInZpZXdfcHJpY2VfY2hhcnQiOiLmn6XnnIvljK/njofotbDli6LlnJYiLCJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5o+Q5L6bIiwidmlld19hbGwiOiLmn6XnnIvmiYDmnIkgJXtjb2lufSDluILloLQifX0nKX0sIjA3ZTMiOmZ1bmN0aW9uKGUsdCl7dmFyIG49e30uaGFzT3duUHJvcGVydHk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG4uY2FsbChlLHQpfX0sIjA4MjUiOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiJDbGFzc2lmaWNhIGNhcC4gZGkgbWVyY2F0byIsIm1jYXAiOiJDYXAuIGRpIG1lcmNhdG8iLCIyNGhfdm9sdW1lIjoiVm9sdW1lIGluIDI0IG9yZSIsIjI0aF9oaWdoX2xvdyI6Ik1heC9taW4gaW4gMjQgb3JlIn0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiQ29uZnJvbnRvIHByZXp6aSBkZWxsZSBjcmlwdG8iLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiQ29uZnJvbnRvIGRpIGNhcGl0YWxpenphemlvbmUgZGkgbWVyY2F0byBkZWxsZSBjcmlwdG8ifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiJNYXNzaW1vIGluIDI0IG9yZSIsIjI0aF9sb3ciOiJNaW5pbW8gaW4gMjQgb3JlIiwidmlld19wcmljZV9jaGFydCI6IlZpc3VhbGl6emEgZ3JhZmljbyBwcmV6emkgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUG93ZXJlZCBieSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUG93ZXJlZCBieSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6Ik1hc3NpbW8gaW4gMjQgb3JlIiwiMjRoX2xvdyI6Ik1pbmltbyBpbiAyNCBvcmUiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmlzdWFsaXp6YSBncmFmaWNvIHByZXp6aSAle2NvaW59IiwicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZpc3VhbGl6emEgZ3JhZmljbyBwcmV6emkgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6Ik1hcHBhIGFkIGFsYmVybyBkZWxsZSBjcmlwdG92YWx1dGUiLCJzdWJ0aXRsZSI6IihWYWx1dGUgdG9wICV7dG9wfSBwZXIgY2FwaXRhbGl6emF6aW9uZSBkaSBtZXJjYXRvKSIsInBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiJEaXNjbGFpbWVyOiBRdWVzdGkgc3RydW1lbnRpIHNvbm8gYSBzY29wbyBkaSBpbnRyYXR0ZW5pbWVudG8gZSBub24gY29zdGl0dWlzY29ubyB1bmEgY29uc3VsZW56YSBmaW5hbnppYXJpYS4iLCJzcGluIjoiU3BpbiIsImF2YWlsYWJsZV9jb2lucyI6IlZhbHV0ZSBEaXNwb25pYmlsaSJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkFnZ2lvcm5hbWVudG8gcHJlenppIENvaW5HZWNrbyIsInRvdGFsX21jYXAiOiJDYXAuIGRpIG1lcmNhdG8gdG90YWxlIiwiMjRoX3ZvbCI6IlZvbHVtZSBpbiAyNCBvcmUiLCJkb20iOiJEb20ifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiRXhjaGFuZ2UiLCJwYWlyIjoiQ29wcGlhIiwicHJpY2UiOiJQcmV6em8iLCJ2b2x1bWUiOiJWb2x1bWUiLCJ0cnVzdF9zY29yZSI6IlB1bnRlZ2dpbyBkaSBmaWR1Y2lhIiwidmlld19wcmljZV9jaGFydCI6IlZpc3VhbGl6emEgZ3JhZmljbyBwcmV6emkiLCJwb3dlcmVkX2J5IjoiUG93ZXJlZCBieSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJWaXN1YWxpenphIHR1dHRpIGkgbWVyY2F0aSAle2NvaW59In19Jyl9LCIwYTQ5IjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiOWI0MyIpLGk9bigiNjI2YSIpLGE9bigiNGJmOCIpLG89bigiOWRlZiIpLGM9bigiY2QxYyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPTE9PWUscz0yPT1lLHA9Mz09ZSxsPTQ9PWUsdT02PT1lLGQ9NT09ZXx8dSxfPXR8fGM7cmV0dXJuIGZ1bmN0aW9uKHQsYyxtKXtmb3IodmFyIGYsaCx2PWEodCkseT1pKHYpLGc9cihjLG0sMyksdz1vKHkubGVuZ3RoKSxiPTAsaz1uP18odCx3KTpzP18odCwwKTp2b2lkIDA7dz5iO2IrKylpZigoZHx8YiBpbiB5KSYmKGY9eVtiXSxoPWcoZixiLHYpLGUpKWlmKG4pa1tiXT1oO2Vsc2UgaWYoaClzd2l0Y2goZSl7Y2FzZSAzOnJldHVybiEwO2Nhc2UgNTpyZXR1cm4gZjtjYXNlIDY6cmV0dXJuIGI7Y2FzZSAyOmsucHVzaChmKX1lbHNlIGlmKGwpcmV0dXJuITE7cmV0dXJuIHU/LTE6cHx8bD9sOmt9fX0sIjBiZmIiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiY2I3YyIpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlPXIodGhpcyksdD0iIjtyZXR1cm4gZS5nbG9iYWwmJih0Kz0iZyIpLGUuaWdub3JlQ2FzZSYmKHQrPSJpIiksZS5tdWx0aWxpbmUmJih0Kz0ibSIpLGUudW5pY29kZSYmKHQrPSJ1IiksZS5zdGlja3kmJih0Kz0ieSIpLHR9fSwiMGQ1OCI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImNlMTAiKSxpPW4oImUxMWUiKTtlLmV4cG9ydHM9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKGUpe3JldHVybiByKGUsaSl9fSwiMGY3YyI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI2ODhlIik7ZS5leHBvcnRzPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kfHxyfSwiMGZjOSI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjNhMzgiKSxpPU1hdGgubWF4LGE9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9cihlKSxlPDA/aShlK3QsMCk6YShlLHQpfX0sMTE1MzpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjgzYzIiKSxpPXIoIiVTdHJpbmclIiksYT1yKCIlVHlwZUVycm9yJSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigic3ltYm9sIj09PXR5cGVvZiBlKXRocm93IG5ldyBhKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBpKGUpfX0sMTE2OTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiMmQ5NSIpO2UuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihlKXtyZXR1cm4iQXJyYXkiPT1yKGUpfX0sIjExZTkiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI1MmE3IiksaT1uKCI0NjMwIiksYT1uKCI2ODIxIiksbz1uKCI2YTk5IiksYz1uKCI2OWE4Iikscz1uKCJjNjlhIikscD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3QuZj1uKCI5ZTFlIik/cDpmdW5jdGlvbihlLHQpe2lmKGU9YShlKSx0PW8odCwhMCkscyl0cnl7cmV0dXJuIHAoZSx0KX1jYXRjaChuKXt9aWYoYyhlLHQpKXJldHVybiBpKCFyLmYuY2FsbChlLHQpLGVbdF0pfX0sMTQ5NTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiODZjYyIpLGk9bigiY2I3YyIpLGE9bigiMGQ1OCIpO2UuZXhwb3J0cz1uKCI5ZTFlIik/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24oZSx0KXtpKGUpO3ZhciBuLG89YSh0KSxjPW8ubGVuZ3RoLHM9MDt3aGlsZShjPnMpci5mKGUsbj1vW3MrK10sdFtuXSk7cmV0dXJuIGV9fSwxNjU0OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiNzFjMSIpKCEwKTtuKCIzMGYxIikoU3RyaW5nLCJTdHJpbmciLChmdW5jdGlvbihlKXt0aGlzLl90PVN0cmluZyhlKSx0aGlzLl9pPTB9KSwoZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMuX3Qsbj10aGlzLl9pO3JldHVybiBuPj10Lmxlbmd0aD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9OihlPXIodCxuKSx0aGlzLl9pKz1lLmxlbmd0aCx7dmFsdWU6ZSxkb25lOiExfSl9KSl9LDE2OTE6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ImNvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlzUHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZiIuc3BsaXQoIiwiKX0sIjFiN2YiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiNTYyZSIpLGk9IuKAiyI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbSYmaS50cmltKCk9PT1pP1N0cmluZy5wcm90b3R5cGUudHJpbTpyfX0sIjFiYzMiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJmNzcyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoIXIoZSkpcmV0dXJuIGU7dmFyIG4saTtpZih0JiYiZnVuY3Rpb24iPT10eXBlb2Yobj1lLnRvU3RyaW5nKSYmIXIoaT1uLmNhbGwoZSkpKXJldHVybiBpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZihuPWUudmFsdWVPZikmJiFyKGk9bi5jYWxsKGUpKSlyZXR1cm4gaTtpZighdCYmImZ1bmN0aW9uIj09dHlwZW9mKG49ZS50b1N0cmluZykmJiFyKGk9bi5jYWxsKGUpKSlyZXR1cm4gaTt0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfX0sIjFlYzkiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJmNzcyIiksaT1uKCJlNTNkIikuZG9jdW1lbnQsYT1yKGkpJiZyKGkuY3JlYXRlRWxlbWVudCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBhP2kuY3JlYXRlRWxlbWVudChlKTp7fX19LDIwOmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigiNWMyMiIpfSwiMjEwYyI6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IlBlcmluZ2thdCBLYXAgUGFzYXIiLCJtY2FwIjoiS2FwaXRhbGlzYXNpIFBhc2FyIiwiMjRoX3ZvbHVtZSI6IlZvbHVtZSAyNEoiLCIyNGhfaGlnaF9sb3ciOiJUaW5nZ2kvUmVuZGFoIDI0SiJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEaWR1a3VuZyBvbGVoICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IlBlcmJhbmRpbmdhbiBIYXJnYSBLcmlwdG8iLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiUGVyYmFuZGluZ2FuIEthcCBQYWFyIEtyaXB0byJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRpZHVrdW5nIG9sZWggJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0SiBUaW5nZ2kiLCIyNGhfbG93IjoiMjRKIFJlbmRhaCIsInZpZXdfcHJpY2VfY2hhcnQiOiJMaWhhdCBHcmFmaWsgSGFyZ2EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJEaWR1a3VuZyBvbGVoICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiRGlkdWt1bmcgb2xlaCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRpZHVrdW5nIG9sZWggJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiRGlkdWt1bmcgb2xlaCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0SiBUaW5nZ2kiLCIyNGhfbG93IjoiMjRKIFJlbmRhaCIsInZpZXdfcHJpY2VfY2hhcnQiOiJMaWhhdCBHcmFmaWsgSGFyZ2EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJEaWR1a3VuZyBvbGVoICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiJMaWhhdCBHcmFmaWsgSGFyZ2EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJEaWR1a3VuZyBvbGVoICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IlBldGEgUG9ob24gQ3J5cHRvY3VycmVuY3kiLCJzdWJ0aXRsZSI6Iigle3RvcH0gVGVyYXRhcyBCZXJkYXNhcmthbiBLYXAgUGFzYXIpIiwicG93ZXJlZF9ieSI6IkRpZHVrdW5nIG9sZWggJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IlNhbmdrYWxhbjogQWxhdCBpbmkgYmVyZnVuZ3NpIHNlYmFnYWkgaGlidXJhbiBkYW4gYnVrYW4gbWVydXBha2FuIHNhcmFuIGtldWFuZ2FuLiIsInNwaW4iOiJQdXRhciIsImF2YWlsYWJsZV9jb2lucyI6IktvaW4geWFuZyBUZXJzZWRpYSJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IlBlbWJhcnVhbiBIYXJnYSBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiVG90YWwgS2FwIFAiLCIyNGhfdm9sIjoiVm9sdW1lIDI0SiIsImRvbSI6IkRvbSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJCdXJzYSIsInBhaXIiOiJQYXNhbmdhbiIsInByaWNlIjoiSGFyZ2EiLCJ2b2x1bWUiOiJWb2x1bWUiLCJ0cnVzdF9zY29yZSI6IlNrb3IgS2VwZXJjYXlhYW4iLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiTGloYXQgR3JhZmlrIEhhcmdhIiwicG93ZXJlZF9ieSI6IkRpZHVrdW5nIG9sZWggJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiTGloYXQgc2VtdWEgcGFzYXIgJXtjb2lufSJ9fScpfSwiMjE0ZiI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuKCJiMGM1Iik7dmFyIHI9bigiMmFiYSIpLGk9bigiMzJlOSIpLGE9bigiNzllNSIpLG89bigiYmUxMyIpLGM9bigiMmI0YyIpLHM9bigiNTIwYSIpLHA9Yygic3BlY2llcyIpLGw9IWEoKGZ1bmN0aW9uKCl7dmFyIGU9Ly4vO3JldHVybiBlLmV4ZWM9ZnVuY3Rpb24oKXt2YXIgZT1bXTtyZXR1cm4gZS5ncm91cHM9e2E6IjcifSxlfSwiNyIhPT0iIi5yZXBsYWNlKGUsIiQ8YT4iKX0pKSx1PWZ1bmN0aW9uKCl7dmFyIGU9Lyg/OikvLHQ9ZS5leGVjO2UuZXhlYz1mdW5jdGlvbigpe3JldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIG49ImFiIi5zcGxpdChlKTtyZXR1cm4gMj09PW4ubGVuZ3RoJiYiYSI9PT1uWzBdJiYiYiI9PT1uWzFdfSgpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGQ9YyhlKSxfPSFhKChmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0W2RdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW2VdKHQpfSkpLG09Xz8hYSgoZnVuY3Rpb24oKXt2YXIgdD0hMSxuPS9hLztyZXR1cm4gbi5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIHQ9ITAsbnVsbH0sInNwbGl0Ij09PWUmJihuLmNvbnN0cnVjdG9yPXt9LG4uY29uc3RydWN0b3JbcF09ZnVuY3Rpb24oKXtyZXR1cm4gbn0pLG5bZF0oIiIpLCF0fSkpOnZvaWQgMDtpZighX3x8IW18fCJyZXBsYWNlIj09PWUmJiFsfHwic3BsaXQiPT09ZSYmIXUpe3ZhciBmPS8uL1tkXSxoPW4obyxkLCIiW2VdLChmdW5jdGlvbihlLHQsbixyLGkpe3JldHVybiB0LmV4ZWM9PT1zP18mJiFpP3tkb25lOiEwLHZhbHVlOmYuY2FsbCh0LG4scil9Ontkb25lOiEwLHZhbHVlOmUuY2FsbChuLHQscil9Ontkb25lOiExfX0pKSx2PWhbMF0seT1oWzFdO3IoU3RyaW5nLnByb3RvdHlwZSxlLHYpLGkoUmVnRXhwLnByb3RvdHlwZSxkLDI9PXQ/ZnVuY3Rpb24oZSx0KXtyZXR1cm4geS5jYWxsKGUsdGhpcyx0KX06ZnVuY3Rpb24oZSl7cmV0dXJuIHkuY2FsbChlLHRoaXMpfSl9fX0sIjIxYWEiOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiJSYW5nbGlzdGUgZWZ0ZXIgbWFya2Vkc3bDpnJkaSIsIm1jYXAiOiJNYXJrZWRzdsOmcmRpIiwiMjRoX3ZvbHVtZSI6IjI0dCB2b2x1bWVuIiwiMjRoX2hpZ2hfbG93IjoiMjR0IGjDuGovbGF2In0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRyZXZldCBhZiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJTYW1tZW5saWduaW5nIGFmIGtyeXB0b2t1cnMiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiU2FtbWVubGlnbmluZyBhZiBrcnlwdG9tYXJrZWRzdsOmcmRpIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiRHJldmV0IGFmICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNHQgaMO4aiIsIjI0aF9sb3ciOiIyNHQgbGF2Iiwidmlld19wcmljZV9jaGFydCI6IlZpcyBrdXJzZGlhZ3JhbSBmb3IgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJEcmV2ZXQgYWYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcmV2ZXQgYWYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcmV2ZXQgYWYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiRHJldmV0IGFmICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjR0IGjDuGoiLCIyNGhfbG93IjoiMjR0IGxhdiIsInZpZXdfcHJpY2VfY2hhcnQiOiJWaXMga3Vyc2RpYWdyYW0gZm9yICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiRHJldmV0IGFmICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiJWaXMga3Vyc2RpYWdyYW0gZm9yICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiRHJldmV0IGFmICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6Ik92ZXJzaWd0IG92ZXIga3J5cHRvdmFsdXRhZXIiLCJzdWJ0aXRsZSI6IihUb3AgJXt0b3B9IHVkIGZyYSBtYXJrZWRzdsOmcmRpKSIsInBvd2VyZWRfYnkiOiJEcmV2ZXQgYWYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IkFuc3ZhcnNmcmFza3JpdmVsc2U6IERpc3NlIHbDpnJrdMO4amVyIGZ1bmdlcmVyIHNvbSB1bmRlcmhvbGRuaW5nIG9nIHVkZ8O4ciBpa2tlIGZpbmFuc2llbCByw6VkZ2l2bmluZy4iLCJzcGluIjoiS2FzdCIsImF2YWlsYWJsZV9jb2lucyI6IlRpbGfDpm5nZWxpZ2UgY29pbnMifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiJDb2luR2Vja28ga3Vyc29wZGF0ZXJpbmciLCJ0b3RhbF9tY2FwIjoiTWFya2Vkc3bDpnJkaSBpIGFsdCIsIjI0aF92b2wiOiIyNHQgdm9sdW1lbiIsImRvbSI6IkRvbSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJCw7hycyIsInBhaXIiOiJQYXIiLCJwcmljZSI6IlByaXMiLCJ2b2x1bWUiOiJWb2x1bWVuIiwidHJ1c3Rfc2NvcmUiOiJUaWxsaWRzc2NvcmUiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmlzIGt1cnNkaWFncmFtIiwicG93ZXJlZF9ieSI6IkRyZXZldCBhZiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJWaXMgYWxsZSAle2NvaW59LW1hcmtlZGVyIn19Jyl9LCIyMWQwIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZyxpPS9eXHMqY2xhc3NcYi8sYT1mdW5jdGlvbihlKXt0cnl7dmFyIHQ9ci5jYWxsKGUpO3JldHVybiBpLnRlc3QodCl9Y2F0Y2gobil7cmV0dXJuITF9fSxvPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4hYShlKSYmKHIuY2FsbChlKSwhMCl9Y2F0Y2godCl7cmV0dXJuITF9fSxjPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcscz0iW29iamVjdCBGdW5jdGlvbl0iLHA9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixsPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2wudG9TdHJpbmdUYWc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCFlKXJldHVybiExO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgZSYmIm9iamVjdCIhPT10eXBlb2YgZSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGUmJiFlLnByb3RvdHlwZSlyZXR1cm4hMDtpZihsKXJldHVybiBvKGUpO2lmKGEoZSkpcmV0dXJuITE7dmFyIHQ9Yy5jYWxsKGUpO3JldHVybiB0PT09c3x8dD09PXB9fSwiMjMwZSI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImQzZjQiKSxpPW4oIjc3MjYiKS5kb2N1bWVudCxhPXIoaSkmJnIoaS5jcmVhdGVFbGVtZW50KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGE/aS5jcmVhdGVFbGVtZW50KGUpOnt9fX0sIjIzYzYiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCIyZDk1IiksaT1uKCIyYjRjIikoInRvU3RyaW5nVGFnIiksYT0iQXJndW1lbnRzIj09cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLG89ZnVuY3Rpb24oZSx0KXt0cnl7cmV0dXJuIGVbdF19Y2F0Y2gobil7fX07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LG4sYztyZXR1cm4gdm9pZCAwPT09ZT8iVW5kZWZpbmVkIjpudWxsPT09ZT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihuPW8odD1PYmplY3QoZSksaSkpP246YT9yKHQpOiJPYmplY3QiPT0oYz1yKHQpKSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY2FsbGVlPyJBcmd1bWVudHMiOmN9fSwiMjQxZSI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjI1ZWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChyKGUpKX19LCIyNGZiIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0KXt2YXIgbj1lWzFdfHwiIixyPWVbM107aWYoIXIpcmV0dXJuIG47aWYodCYmImZ1bmN0aW9uIj09PXR5cGVvZiBidG9hKXt2YXIgYT1pKHIpLG89ci5zb3VyY2VzLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIi8qIyBzb3VyY2VVUkw9IityLnNvdXJjZVJvb3QrZSsiICovIn0pKTtyZXR1cm5bbl0uY29uY2F0KG8pLmNvbmNhdChbYV0pLmpvaW4oIlxuIil9cmV0dXJuW25dLmpvaW4oIlxuIil9ZnVuY3Rpb24gaShlKXt2YXIgdD1idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShlKSkpKSxuPSJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwiK3Q7cmV0dXJuIi8qIyAiK24rIiAqLyJ9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdO3JldHVybiB0LnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKChmdW5jdGlvbih0KXt2YXIgbj1yKHQsZSk7cmV0dXJuIHRbMl0/IkBtZWRpYSAiK3RbMl0rInsiK24rIn0iOm59KSkuam9pbigiIil9LHQuaT1mdW5jdGlvbihlLG4peyJzdHJpbmciPT09dHlwZW9mIGUmJihlPVtbbnVsbCxlLCIiXV0pO2Zvcih2YXIgcj17fSxpPTA7aTx0aGlzLmxlbmd0aDtpKyspe3ZhciBhPXRoaXNbaV1bMF07bnVsbCE9YSYmKHJbYV09ITApfWZvcihpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPWVbaV07bnVsbCE9b1swXSYmcltvWzBdXXx8KG4mJiFvWzJdP29bMl09bjpuJiYob1syXT0iKCIrb1syXSsiKSBhbmQgKCIrbisiKSIpLHQucHVzaChvKSl9fSx0fX0sIjI1ZWIiOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09ZSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICAiK2UpO3JldHVybiBlfX0sMjg3NzpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSx0LG4scixpLGEsbyxjKXt2YXIgcyxwPSJmdW5jdGlvbiI9PT10eXBlb2YgZT9lLm9wdGlvbnM6ZTtpZih0JiYocC5yZW5kZXI9dCxwLnN0YXRpY1JlbmRlckZucz1uLHAuX2NvbXBpbGVkPSEwKSxyJiYocC5mdW5jdGlvbmFsPSEwKSxhJiYocC5fc2NvcGVJZD0iZGF0YS12LSIrYSksbz8ocz1mdW5jdGlvbihlKXtlPWV8fHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fHx0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuJHZub2RlJiZ0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCxlfHwidW5kZWZpbmVkIj09PXR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9ffHwoZT1fX1ZVRV9TU1JfQ09OVEVYVF9fKSxpJiZpLmNhbGwodGhpcyxlKSxlJiZlLl9yZWdpc3RlcmVkQ29tcG9uZW50cyYmZS5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG8pfSxwLl9zc3JSZWdpc3Rlcj1zKTppJiYocz1jP2Z1bmN0aW9uKCl7aS5jYWxsKHRoaXMsdGhpcy4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290KX06aSkscylpZihwLmZ1bmN0aW9uYWwpe3AuX2luamVjdFN0eWxlcz1zO3ZhciBsPXAucmVuZGVyO3AucmVuZGVyPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHMuY2FsbCh0KSxsKGUsdCl9fWVsc2V7dmFyIHU9cC5iZWZvcmVDcmVhdGU7cC5iZWZvcmVDcmVhdGU9dT9bXS5jb25jYXQodSxzKTpbc119cmV0dXJue2V4cG9ydHM6ZSxvcHRpb25zOnB9fW4uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKX0sIjI4OGEiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZDAyNCIpLGk9bigiZmE0ZSIpLGE9bigiYTBkMyIpLG89bigiY2E5ZiIpLGM9ZnVuY3Rpb24oZSl7aSghMSxlKX0scz1TdHJpbmcucHJvdG90eXBlLnJlcGxhY2UscD1TdHJpbmcucHJvdG90eXBlLnNwbGl0LGw9Inx8fHwiLHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSUxMDtyZXR1cm4gMTEhPT1lJiYxPT09dD8wOjI8PXQmJnQ8PTQmJiEoZT49MTImJmU8PTE0KT8xOjJ9LGQ9e2FyYWJpYzpmdW5jdGlvbihlKXtpZihlPDMpcmV0dXJuIGU7dmFyIHQ9ZSUxMDA7cmV0dXJuIHQ+PTMmJnQ8PTEwPzM6dD49MTE/NDo1fSxib3NuaWFuX3NlcmJpYW46dSxjaGluZXNlOmZ1bmN0aW9uKCl7cmV0dXJuIDB9LGNyb2F0aWFuOnUsZnJlbmNoOmZ1bmN0aW9uKGUpe3JldHVybiBlPjE/MTowfSxnZXJtYW46ZnVuY3Rpb24oZSl7cmV0dXJuIDEhPT1lPzE6MH0scnVzc2lhbjp1LGxpdGh1YW5pYW46ZnVuY3Rpb24oZSl7cmV0dXJuIGUlMTA9PT0xJiZlJTEwMCE9PTExPzA6ZSUxMD49MiYmZSUxMDw9OSYmKGUlMTAwPDExfHxlJTEwMD4xOSk/MToyfSxjemVjaDpmdW5jdGlvbihlKXtyZXR1cm4gMT09PWU/MDplPj0yJiZlPD00PzE6Mn0scG9saXNoOmZ1bmN0aW9uKGUpe2lmKDE9PT1lKXJldHVybiAwO3ZhciB0PWUlMTA7cmV0dXJuIDI8PXQmJnQ8PTQmJihlJTEwMDwxMHx8ZSUxMDA+PTIwKT8xOjJ9LGljZWxhbmRpYzpmdW5jdGlvbihlKXtyZXR1cm4gZSUxMCE9PTF8fGUlMTAwPT09MTE/MTowfSxzbG92ZW5pYW46ZnVuY3Rpb24oZSl7dmFyIHQ9ZSUxMDA7cmV0dXJuIDE9PT10PzA6Mj09PXQ/MTozPT09dHx8ND09PXQ/MjozfX0sXz17YXJhYmljOlsiYXIiXSxib3NuaWFuX3NlcmJpYW46WyJicy1MYXRuLUJBIiwiYnMtQ3lybC1CQSIsInNybC1SUyIsInNyLVJTIl0sY2hpbmVzZTpbImlkIiwiaWQtSUQiLCJqYSIsImtvIiwia28tS1IiLCJsbyIsIm1zIiwidGgiLCJ0aC1USCIsInpoIl0sY3JvYXRpYW46WyJociIsImhyLUhSIl0sZ2VybWFuOlsiZmEiLCJkYSIsImRlIiwiZW4iLCJlcyIsImZpIiwiZWwiLCJoZSIsImhpLUlOIiwiaHUiLCJodS1IVSIsIml0IiwibmwiLCJubyIsInB0Iiwic3YiLCJ0ciJdLGZyZW5jaDpbImZyIiwidGwiLCJwdC1iciJdLHJ1c3NpYW46WyJydSIsInJ1LVJVIl0sbGl0aHVhbmlhbjpbImx0Il0sY3plY2g6WyJjcyIsImNzLUNaIiwic2siXSxwb2xpc2g6WyJwbCJdLGljZWxhbmRpYzpbImlzIl0sc2xvdmVuaWFuOlsic2wtU0wiXX07ZnVuY3Rpb24gbShlKXt2YXIgdD17fTtyZXR1cm4gcihlLChmdW5jdGlvbihlLG4pe3IoZSwoZnVuY3Rpb24oZSl7dFtlXT1ufSkpfSkpLHR9ZnVuY3Rpb24gZihlKXt2YXIgdD1tKF8pO3JldHVybiB0W2VdfHx0W3AuY2FsbChlLC8tLywxKVswXV18fHQuZW59ZnVuY3Rpb24gaChlLHQpe3JldHVybiBkW2YoZSldKHQpfWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xdXFxdL2csIlxcJCYiKX1mdW5jdGlvbiB5KGUpe3ZhciB0PWUmJmUucHJlZml4fHwiJXsiLG49ZSYmZS5zdWZmaXh8fCJ9IjtpZih0PT09bHx8bj09PWwpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyInK2wrJyIgdG9rZW4gaXMgcmVzZXJ2ZWQgZm9yIHBsdXJhbGl6YXRpb24nKTtyZXR1cm4gbmV3IFJlZ0V4cCh2KHQpKyIoLio/KSIrdihuKSwiZyIpfXZhciBnPS9cJC9nLHc9IiQkIixiPS8lXHsoLio/KVx9L2c7ZnVuY3Rpb24gayhlLHQsbixyKXtpZigic3RyaW5nIiE9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIlBvbHlnbG90LnRyYW5zZm9ybVBocmFzZSBleHBlY3RzIGFyZ3VtZW50ICMxIHRvIGJlIHN0cmluZyIpO2lmKG51bGw9PXQpcmV0dXJuIGU7dmFyIGk9ZSxjPXJ8fGIsdT0ibnVtYmVyIj09PXR5cGVvZiB0P3tzbWFydF9jb3VudDp0fTp0O2lmKG51bGwhPXUuc21hcnRfY291bnQmJmkpe3ZhciBkPXAuY2FsbChpLGwpO2k9byhkW2gobnx8ImVuIix1LnNtYXJ0X2NvdW50KV18fGRbMF0pfXJldHVybiBpPXMuY2FsbChpLGMsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGEodSx0KSYmbnVsbCE9dVt0XT9zLmNhbGwodVt0XSxnLHcpOmV9KSksaX1mdW5jdGlvbiB4KGUpe3ZhciB0PWV8fHt9O3RoaXMucGhyYXNlcz17fSx0aGlzLmV4dGVuZCh0LnBocmFzZXN8fHt9KSx0aGlzLmN1cnJlbnRMb2NhbGU9dC5sb2NhbGV8fCJlbiI7dmFyIG49dC5hbGxvd01pc3Npbmc/azpudWxsO3RoaXMub25NaXNzaW5nS2V5PSJmdW5jdGlvbiI9PT10eXBlb2YgdC5vbk1pc3NpbmdLZXk/dC5vbk1pc3NpbmdLZXk6bix0aGlzLndhcm49dC53YXJufHxjLHRoaXMudG9rZW5SZWdleD15KHQuaW50ZXJwb2xhdGlvbil9eC5wcm90b3R5cGUubG9jYWxlPWZ1bmN0aW9uKGUpe3JldHVybiBlJiYodGhpcy5jdXJyZW50TG9jYWxlPWUpLHRoaXMuY3VycmVudExvY2FsZX0seC5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uKGUsdCl7cihlLChmdW5jdGlvbihlLG4pe3ZhciByPXQ/dCsiLiIrbjpuOyJvYmplY3QiPT09dHlwZW9mIGU/dGhpcy5leHRlbmQoZSxyKTp0aGlzLnBocmFzZXNbcl09ZX0pLHRoaXMpfSx4LnByb3RvdHlwZS51bnNldD1mdW5jdGlvbihlLHQpeyJzdHJpbmciPT09dHlwZW9mIGU/ZGVsZXRlIHRoaXMucGhyYXNlc1tlXTpyKGUsKGZ1bmN0aW9uKGUsbil7dmFyIHI9dD90KyIuIituOm47Im9iamVjdCI9PT10eXBlb2YgZT90aGlzLnVuc2V0KGUscik6ZGVsZXRlIHRoaXMucGhyYXNlc1tyXX0pLHRoaXMpfSx4LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMucGhyYXNlcz17fX0seC5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbihlKXt0aGlzLmNsZWFyKCksdGhpcy5leHRlbmQoZSl9LHgucHJvdG90eXBlLnQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGk9bnVsbD09dD97fTp0O2lmKCJzdHJpbmciPT09dHlwZW9mIHRoaXMucGhyYXNlc1tlXSluPXRoaXMucGhyYXNlc1tlXTtlbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGkuXyluPWkuXztlbHNlIGlmKHRoaXMub25NaXNzaW5nS2V5KXt2YXIgYT10aGlzLm9uTWlzc2luZ0tleTtyPWEoZSxpLHRoaXMuY3VycmVudExvY2FsZSx0aGlzLnRva2VuUmVnZXgpfWVsc2UgdGhpcy53YXJuKCdNaXNzaW5nIHRyYW5zbGF0aW9uIGZvciBrZXk6ICInK2UrJyInKSxyPWU7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgbiYmKHI9ayhuLGksdGhpcy5jdXJyZW50TG9jYWxlLHRoaXMudG9rZW5SZWdleCkpLHJ9LHgucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4gYSh0aGlzLnBocmFzZXMsZSl9LHgudHJhbnNmb3JtUGhyYXNlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gayhlLHQsbil9LGUuZXhwb3J0cz14fSwiMjhhNSI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCJhYWUzIiksaT1uKCJjYjdjIiksYT1uKCJlYmQ2Iiksbz1uKCIwMzkwIiksYz1uKCI5ZGVmIikscz1uKCI1ZjFiIikscD1uKCI1MjBhIiksbD1uKCI3OWU1IiksdT1NYXRoLm1pbixkPVtdLnB1c2gsXz0ic3BsaXQiLG09Imxlbmd0aCIsZj0ibGFzdEluZGV4IixoPTQyOTQ5NjcyOTUsdj0hbCgoZnVuY3Rpb24oKXtSZWdFeHAoaCwieSIpfSkpO24oIjIxNGYiKSgic3BsaXQiLDIsKGZ1bmN0aW9uKGUsdCxuLGwpe3ZhciB5O3JldHVybiB5PSJjIj09ImFiYmMiW19dKC8oYikqLylbMV18fDQhPSJ0ZXN0IltfXSgvKD86KS8sLTEpW21dfHwyIT0iYWIiW19dKC8oPzphYikqLylbbV18fDQhPSIuIltfXSgvKC4/KSguPykvKVttXXx8Ii4iW19dKC8oKSgpLylbbV0+MXx8IiJbX10oLy4/LylbbV0/ZnVuY3Rpb24oZSx0KXt2YXIgaT1TdHJpbmcodGhpcyk7aWYodm9pZCAwPT09ZSYmMD09PXQpcmV0dXJuW107aWYoIXIoZSkpcmV0dXJuIG4uY2FsbChpLGUsdCk7dmFyIGEsbyxjLHM9W10sbD0oZS5pZ25vcmVDYXNlPyJpIjoiIikrKGUubXVsdGlsaW5lPyJtIjoiIikrKGUudW5pY29kZT8idSI6IiIpKyhlLnN0aWNreT8ieSI6IiIpLHU9MCxfPXZvaWQgMD09PXQ/aDp0Pj4+MCx2PW5ldyBSZWdFeHAoZS5zb3VyY2UsbCsiZyIpO3doaWxlKGE9cC5jYWxsKHYsaSkpe2lmKG89dltmXSxvPnUmJihzLnB1c2goaS5zbGljZSh1LGEuaW5kZXgpKSxhW21dPjEmJmEuaW5kZXg8aVttXSYmZC5hcHBseShzLGEuc2xpY2UoMSkpLGM9YVswXVttXSx1PW8sc1ttXT49XykpYnJlYWs7dltmXT09PWEuaW5kZXgmJnZbZl0rK31yZXR1cm4gdT09PWlbbV0/IWMmJnYudGVzdCgiIil8fHMucHVzaCgiIik6cy5wdXNoKGkuc2xpY2UodSkpLHNbbV0+Xz9zLnNsaWNlKDAsXyk6c306IjAiW19dKHZvaWQgMCwwKVttXT9mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT1lJiYwPT09dD9bXTpuLmNhbGwodGhpcyxlLHQpfTpuLFtmdW5jdGlvbihuLHIpe3ZhciBpPWUodGhpcyksYT12b2lkIDA9PW4/dm9pZCAwOm5bdF07cmV0dXJuIHZvaWQgMCE9PWE/YS5jYWxsKG4saSxyKTp5LmNhbGwoU3RyaW5nKGkpLG4scil9LGZ1bmN0aW9uKGUsdCl7dmFyIHI9bCh5LGUsdGhpcyx0LHkhPT1uKTtpZihyLmRvbmUpcmV0dXJuIHIudmFsdWU7dmFyIHA9aShlKSxkPVN0cmluZyh0aGlzKSxfPWEocCxSZWdFeHApLG09cC51bmljb2RlLGY9KHAuaWdub3JlQ2FzZT8iaSI6IiIpKyhwLm11bHRpbGluZT8ibSI6IiIpKyhwLnVuaWNvZGU/InUiOiIiKSsodj8ieSI6ImciKSxnPW5ldyBfKHY/cDoiXig/OiIrcC5zb3VyY2UrIikiLGYpLHc9dm9pZCAwPT09dD9oOnQ+Pj4wO2lmKDA9PT13KXJldHVybltdO2lmKDA9PT1kLmxlbmd0aClyZXR1cm4gbnVsbD09PXMoZyxkKT9bZF06W107dmFyIGI9MCxrPTAseD1bXTt3aGlsZShrPGQubGVuZ3RoKXtnLmxhc3RJbmRleD12P2s6MDt2YXIgQyxTPXMoZyx2P2Q6ZC5zbGljZShrKSk7aWYobnVsbD09PVN8fChDPXUoYyhnLmxhc3RJbmRleCsodj8wOmspKSxkLmxlbmd0aCkpPT09YilrPW8oZCxrLG0pO2Vsc2V7aWYoeC5wdXNoKGQuc2xpY2UoYixrKSkseC5sZW5ndGg9PT13KXJldHVybiB4O2Zvcih2YXIgUD0xO1A8PVMubGVuZ3RoLTE7UCsrKWlmKHgucHVzaChTW1BdKSx4Lmxlbmd0aD09PXcpcmV0dXJuIHg7az1iPUN9fXJldHVybiB4LnB1c2goZC5zbGljZShiKSkseH1dfSkpfSwiMjk0YyI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiEhZSgpfWNhdGNoKHQpe3JldHVybiEwfX19LCIyYWJhIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiNzcyNiIpLGk9bigiMzJlOSIpLGE9bigiNjlhOCIpLG89bigiY2E1YSIpKCJzcmMiKSxjPW4oImZhNWIiKSxzPSJ0b1N0cmluZyIscD0oIiIrYykuc3BsaXQocyk7bigiODM3OCIpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGMuY2FsbChlKX0sKGUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixjKXt2YXIgcz0iZnVuY3Rpb24iPT10eXBlb2YgbjtzJiYoYShuLCJuYW1lIil8fGkobiwibmFtZSIsdCkpLGVbdF0hPT1uJiYocyYmKGEobixvKXx8aShuLG8sZVt0XT8iIitlW3RdOnAuam9pbihTdHJpbmcodCkpKSksZT09PXI/ZVt0XT1uOmM/ZVt0XT9lW3RdPW46aShlLHQsbik6KGRlbGV0ZSBlW3RdLGkoZSx0LG4pKSl9KShGdW5jdGlvbi5wcm90b3R5cGUscywoZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcyYmdGhpc1tvXXx8Yy5jYWxsKHRoaXMpfSkpfSwiMmFlYiI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImNiN2MiKSxpPW4oIjE0OTUiKSxhPW4oImUxMWUiKSxvPW4oIjYxM2IiKSgiSUVfUFJPVE8iKSxjPWZ1bmN0aW9uKCl7fSxzPSJwcm90b3R5cGUiLHA9ZnVuY3Rpb24oKXt2YXIgZSx0PW4oIjIzMGUiKSgiaWZyYW1lIikscj1hLmxlbmd0aCxpPSI8IixvPSI+Ijt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLG4oImZhYjIiKS5hcHBlbmRDaGlsZCh0KSx0LnNyYz0iamF2YXNjcmlwdDoiLGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50LGUub3BlbigpLGUud3JpdGUoaSsic2NyaXB0IitvKyJkb2N1bWVudC5GPU9iamVjdCIraSsiL3NjcmlwdCIrbyksZS5jbG9zZSgpLHA9ZS5GO3doaWxlKHItLSlkZWxldGUgcFtzXVthW3JdXTtyZXR1cm4gcCgpfTtlLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gbnVsbCE9PWU/KGNbc109cihlKSxuPW5ldyBjLGNbc109bnVsbCxuW29dPWUpOm49cCgpLHZvaWQgMD09PXQ/bjppKG4sdCl9fSwiMmIwZSI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24oZSl7Ci8qIQogKiBWdWUuanMgdjIuNS4yMQogKiAoYykgMjAxNC0yMDE4IEV2YW4gWW91CiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCnZhciBuPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIHIoZSl7cmV0dXJuIHZvaWQgMD09PWV8fG51bGw9PT1lfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIHZvaWQgMCE9PWUmJm51bGwhPT1lfWZ1bmN0aW9uIGEoZSl7cmV0dXJuITA9PT1lfWZ1bmN0aW9uIG8oZSl7cmV0dXJuITE9PT1lfWZ1bmN0aW9uIGMoZSl7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgZXx8Im51bWJlciI9PT10eXBlb2YgZXx8InN5bWJvbCI9PT10eXBlb2YgZXx8ImJvb2xlYW4iPT09dHlwZW9mIGV9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT09dHlwZW9mIGV9dmFyIHA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBsKGUpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09cC5jYWxsKGUpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIltvYmplY3QgUmVnRXhwXSI9PT1wLmNhbGwoZSl9ZnVuY3Rpb24gZChlKXt2YXIgdD1wYXJzZUZsb2F0KFN0cmluZyhlKSk7cmV0dXJuIHQ+PTAmJk1hdGguZmxvb3IodCk9PT10JiZpc0Zpbml0ZShlKX1mdW5jdGlvbiBfKGUpe3JldHVybiBudWxsPT1lPyIiOiJvYmplY3QiPT09dHlwZW9mIGU/SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpOlN0cmluZyhlKX1mdW5jdGlvbiBtKGUpe3ZhciB0PXBhcnNlRmxvYXQoZSk7cmV0dXJuIGlzTmFOKHQpP2U6dH1mdW5jdGlvbiBmKGUsdCl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj1lLnNwbGl0KCIsIiksaT0wO2k8ci5sZW5ndGg7aSsrKW5bcltpXV09ITA7cmV0dXJuIHQ/ZnVuY3Rpb24oZSl7cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXX06ZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV19fWYoInNsb3QsY29tcG9uZW50IiwhMCk7dmFyIGg9Zigia2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMiKTtmdW5jdGlvbiB2KGUsdCl7aWYoZS5sZW5ndGgpe3ZhciBuPWUuaW5kZXhPZih0KTtpZihuPi0xKXJldHVybiBlLnNwbGljZShuLDEpfX12YXIgeT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGcoZSx0KXtyZXR1cm4geS5jYWxsKGUsdCl9ZnVuY3Rpb24gdyhlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuKXt2YXIgcj10W25dO3JldHVybiByfHwodFtuXT1lKG4pKX19dmFyIGI9Ly0oXHcpL2csaz13KChmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKGIsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/dC50b1VwcGVyQ2FzZSgpOiIifSkpfSkpLHg9dygoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKX0pKSxDPS9cQihbQS1aXSkvZyxTPXcoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoQywiLSQxIikudG9Mb3dlckNhc2UoKX0pKTtmdW5jdGlvbiBQKGUsdCl7ZnVuY3Rpb24gbihuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO3JldHVybiByP3I+MT9lLmFwcGx5KHQsYXJndW1lbnRzKTplLmNhbGwodCxuKTplLmNhbGwodCl9cmV0dXJuIG4uX2xlbmd0aD1lLmxlbmd0aCxufWZ1bmN0aW9uIGooZSx0KXtyZXR1cm4gZS5iaW5kKHQpfXZhciBPPUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kP2o6UDtmdW5jdGlvbiBBKGUsdCl7dD10fHwwO3ZhciBuPWUubGVuZ3RoLXQscj1uZXcgQXJyYXkobik7d2hpbGUobi0tKXJbbl09ZVtuK3RdO3JldHVybiByfWZ1bmN0aW9uIEUoZSx0KXtmb3IodmFyIG4gaW4gdCllW25dPXRbbl07cmV0dXJuIGV9ZnVuY3Rpb24gVChlKXtmb3IodmFyIHQ9e30sbj0wO248ZS5sZW5ndGg7bisrKWVbbl0mJkUodCxlW25dKTtyZXR1cm4gdH1mdW5jdGlvbiBEKGUsdCxuKXt9dmFyIHo9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiExfSxNPWZ1bmN0aW9uKGUpe3JldHVybiBlfTtmdW5jdGlvbiAkKGUsdCl7aWYoZT09PXQpcmV0dXJuITA7dmFyIG49cyhlKSxyPXModCk7aWYoIW58fCFyKXJldHVybiFuJiYhciYmU3RyaW5nKGUpPT09U3RyaW5nKHQpO3RyeXt2YXIgaT1BcnJheS5pc0FycmF5KGUpLGE9QXJyYXkuaXNBcnJheSh0KTtpZihpJiZhKXJldHVybiBlLmxlbmd0aD09PXQubGVuZ3RoJiZlLmV2ZXJ5KChmdW5jdGlvbihlLG4pe3JldHVybiAkKGUsdFtuXSl9KSk7aWYoZSBpbnN0YW5jZW9mIERhdGUmJnQgaW5zdGFuY2VvZiBEYXRlKXJldHVybiBlLmdldFRpbWUoKT09PXQuZ2V0VGltZSgpO2lmKGl8fGEpcmV0dXJuITE7dmFyIG89T2JqZWN0LmtleXMoZSksYz1PYmplY3Qua2V5cyh0KTtyZXR1cm4gby5sZW5ndGg9PT1jLmxlbmd0aCYmby5ldmVyeSgoZnVuY3Rpb24obil7cmV0dXJuICQoZVtuXSx0W25dKX0pKX1jYXRjaChwKXtyZXR1cm4hMX19ZnVuY3Rpb24gTihlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKCQoZVtuXSx0KSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBJKGUpe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dmFyIEY9ImRhdGEtc2VydmVyLXJlbmRlcmVkIixMPVsiY29tcG9uZW50IiwiZGlyZWN0aXZlIiwiZmlsdGVyIl0sUj1bImJlZm9yZUNyZWF0ZSIsImNyZWF0ZWQiLCJiZWZvcmVNb3VudCIsIm1vdW50ZWQiLCJiZWZvcmVVcGRhdGUiLCJ1cGRhdGVkIiwiYmVmb3JlRGVzdHJveSIsImRlc3Ryb3llZCIsImFjdGl2YXRlZCIsImRlYWN0aXZhdGVkIiwiZXJyb3JDYXB0dXJlZCJdLFY9e29wdGlvbk1lcmdlU3RyYXRlZ2llczpPYmplY3QuY3JlYXRlKG51bGwpLHNpbGVudDohMSxwcm9kdWN0aW9uVGlwOiExLGRldnRvb2xzOiExLHBlcmZvcm1hbmNlOiExLGVycm9ySGFuZGxlcjpudWxsLHdhcm5IYW5kbGVyOm51bGwsaWdub3JlZEVsZW1lbnRzOltdLGtleUNvZGVzOk9iamVjdC5jcmVhdGUobnVsbCksaXNSZXNlcnZlZFRhZzp6LGlzUmVzZXJ2ZWRBdHRyOnosaXNVbmtub3duRWxlbWVudDp6LGdldFRhZ05hbWVzcGFjZTpELHBhcnNlUGxhdGZvcm1UYWdOYW1lOk0sbXVzdFVzZVByb3A6eixhc3luYzohMCxfbGlmZWN5Y2xlSG9va3M6Un07ZnVuY3Rpb24gVShlKXt2YXIgdD0oZSsiIikuY2hhckNvZGVBdCgwKTtyZXR1cm4gMzY9PT10fHw5NT09PXR9ZnVuY3Rpb24gSChlLHQsbixyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ISFyLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfXZhciBHPS9bXlx3LiRdLztmdW5jdGlvbiBLKGUpe2lmKCFHLnRlc3QoZSkpe3ZhciB0PWUuc3BsaXQoIi4iKTtyZXR1cm4gZnVuY3Rpb24oZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe2lmKCFlKXJldHVybjtlPWVbdFtuXV19cmV0dXJuIGV9fX12YXIgQixxPSJfX3Byb3RvX18iaW57fSxKPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyxXPSJ1bmRlZmluZWQiIT09dHlwZW9mIFdYRW52aXJvbm1lbnQmJiEhV1hFbnZpcm9ubWVudC5wbGF0Zm9ybSxYPVcmJldYRW52aXJvbm1lbnQucGxhdGZvcm0udG9Mb3dlckNhc2UoKSxaPUomJndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCksWT1aJiYvbXNpZXx0cmlkZW50Ly50ZXN0KFopLFE9WiYmWi5pbmRleE9mKCJtc2llIDkuMCIpPjAsZWU9WiYmWi5pbmRleE9mKCJlZGdlLyIpPjAsdGU9KFomJlouaW5kZXhPZigiYW5kcm9pZCIpLFomJi9pcGhvbmV8aXBhZHxpcG9kfGlvcy8udGVzdChaKXx8ImlvcyI9PT1YKSxuZT0oWiYmL2Nocm9tZVwvXGQrLy50ZXN0KFopLHt9LndhdGNoKSxyZT0hMTtpZihKKXRyeXt2YXIgaWU9e307T2JqZWN0LmRlZmluZVByb3BlcnR5KGllLCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7cmU9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QtcGFzc2l2ZSIsbnVsbCxpZSl9Y2F0Y2gob28pe312YXIgYWU9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09QiYmKEI9IUomJiFXJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiYoZVsicHJvY2VzcyJdJiYic2VydmVyIj09PWVbInByb2Nlc3MiXS5lbnYuVlVFX0VOVikpLEJ9LG9lPUomJndpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO2Z1bmN0aW9uIGNlKGUpe3JldHVybiJmdW5jdGlvbiI9PT10eXBlb2YgZSYmL25hdGl2ZSBjb2RlLy50ZXN0KGUudG9TdHJpbmcoKSl9dmFyIHNlLHBlPSJ1bmRlZmluZWQiIT09dHlwZW9mIFN5bWJvbCYmY2UoU3ltYm9sKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgUmVmbGVjdCYmY2UoUmVmbGVjdC5vd25LZXlzKTtzZT0idW5kZWZpbmVkIiE9PXR5cGVvZiBTZXQmJmNlKFNldCk/U2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4hMD09PXRoaXMuc2V0W2VdfSxlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7dGhpcy5zZXRbZV09ITB9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX0sZX0oKTt2YXIgbGU9RCx1ZT0wLGRlPWZ1bmN0aW9uKCl7dGhpcy5pZD11ZSsrLHRoaXMuc3Vicz1bXX07ZGUucHJvdG90eXBlLmFkZFN1Yj1mdW5jdGlvbihlKXt0aGlzLnN1YnMucHVzaChlKX0sZGUucHJvdG90eXBlLnJlbW92ZVN1Yj1mdW5jdGlvbihlKXt2KHRoaXMuc3VicyxlKX0sZGUucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2RlLnRhcmdldCYmZGUudGFyZ2V0LmFkZERlcCh0aGlzKX0sZGUucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbigpe3ZhciBlPXRoaXMuc3Vicy5zbGljZSgpO2Zvcih2YXIgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyllW3RdLnVwZGF0ZSgpfSxkZS50YXJnZXQ9bnVsbDt2YXIgX2U9W107ZnVuY3Rpb24gbWUoZSl7X2UucHVzaChlKSxkZS50YXJnZXQ9ZX1mdW5jdGlvbiBmZSgpe19lLnBvcCgpLGRlLnRhcmdldD1fZVtfZS5sZW5ndGgtMV19dmFyIGhlPWZ1bmN0aW9uKGUsdCxuLHIsaSxhLG8sYyl7dGhpcy50YWc9ZSx0aGlzLmRhdGE9dCx0aGlzLmNoaWxkcmVuPW4sdGhpcy50ZXh0PXIsdGhpcy5lbG09aSx0aGlzLm5zPXZvaWQgMCx0aGlzLmNvbnRleHQ9YSx0aGlzLmZuQ29udGV4dD12b2lkIDAsdGhpcy5mbk9wdGlvbnM9dm9pZCAwLHRoaXMuZm5TY29wZUlkPXZvaWQgMCx0aGlzLmtleT10JiZ0LmtleSx0aGlzLmNvbXBvbmVudE9wdGlvbnM9byx0aGlzLmNvbXBvbmVudEluc3RhbmNlPXZvaWQgMCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5yYXc9ITEsdGhpcy5pc1N0YXRpYz0hMSx0aGlzLmlzUm9vdEluc2VydD0hMCx0aGlzLmlzQ29tbWVudD0hMSx0aGlzLmlzQ2xvbmVkPSExLHRoaXMuaXNPbmNlPSExLHRoaXMuYXN5bmNGYWN0b3J5PWMsdGhpcy5hc3luY01ldGE9dm9pZCAwLHRoaXMuaXNBc3luY1BsYWNlaG9sZGVyPSExfSx2ZT17Y2hpbGQ6e2NvbmZpZ3VyYWJsZTohMH19O3ZlLmNoaWxkLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudEluc3RhbmNlfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhoZS5wcm90b3R5cGUsdmUpO3ZhciB5ZT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT0iIik7dmFyIHQ9bmV3IGhlO3JldHVybiB0LnRleHQ9ZSx0LmlzQ29tbWVudD0hMCx0fTtmdW5jdGlvbiBnZShlKXtyZXR1cm4gbmV3IGhlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLFN0cmluZyhlKSl9ZnVuY3Rpb24gd2UoZSl7dmFyIHQ9bmV3IGhlKGUudGFnLGUuZGF0YSxlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLnNsaWNlKCksZS50ZXh0LGUuZWxtLGUuY29udGV4dCxlLmNvbXBvbmVudE9wdGlvbnMsZS5hc3luY0ZhY3RvcnkpO3JldHVybiB0Lm5zPWUubnMsdC5pc1N0YXRpYz1lLmlzU3RhdGljLHQua2V5PWUua2V5LHQuaXNDb21tZW50PWUuaXNDb21tZW50LHQuZm5Db250ZXh0PWUuZm5Db250ZXh0LHQuZm5PcHRpb25zPWUuZm5PcHRpb25zLHQuZm5TY29wZUlkPWUuZm5TY29wZUlkLHQuYXN5bmNNZXRhPWUuYXN5bmNNZXRhLHQuaXNDbG9uZWQ9ITAsdH12YXIgYmU9QXJyYXkucHJvdG90eXBlLGtlPU9iamVjdC5jcmVhdGUoYmUpLHhlPVsicHVzaCIsInBvcCIsInNoaWZ0IiwidW5zaGlmdCIsInNwbGljZSIsInNvcnQiLCJyZXZlcnNlIl07eGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHQ9YmVbZV07SChrZSxlLChmdW5jdGlvbigpe3ZhciBuPVtdLHI9YXJndW1lbnRzLmxlbmd0aDt3aGlsZShyLS0pbltyXT1hcmd1bWVudHNbcl07dmFyIGksYT10LmFwcGx5KHRoaXMsbiksbz10aGlzLl9fb2JfXztzd2l0Y2goZSl7Y2FzZSJwdXNoIjpjYXNlInVuc2hpZnQiOmk9bjticmVhaztjYXNlInNwbGljZSI6aT1uLnNsaWNlKDIpO2JyZWFrfXJldHVybiBpJiZvLm9ic2VydmVBcnJheShpKSxvLmRlcC5ub3RpZnkoKSxhfSkpfSkpO3ZhciBDZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhrZSksU2U9ITA7ZnVuY3Rpb24gUGUoZSl7U2U9ZX12YXIgamU9ZnVuY3Rpb24oZSl7dGhpcy52YWx1ZT1lLHRoaXMuZGVwPW5ldyBkZSx0aGlzLnZtQ291bnQ9MCxIKGUsIl9fb2JfXyIsdGhpcyksQXJyYXkuaXNBcnJheShlKT8ocT9PZShlLGtlKTpBZShlLGtlLENlKSx0aGlzLm9ic2VydmVBcnJheShlKSk6dGhpcy53YWxrKGUpfTtmdW5jdGlvbiBPZShlLHQpe2UuX19wcm90b19fPXR9ZnVuY3Rpb24gQWUoZSx0LG4pe2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7dmFyIGE9bltyXTtIKGUsYSx0W2FdKX19ZnVuY3Rpb24gRWUoZSx0KXt2YXIgbjtpZihzKGUpJiYhKGUgaW5zdGFuY2VvZiBoZSkpcmV0dXJuIGcoZSwiX19vYl9fIikmJmUuX19vYl9fIGluc3RhbmNlb2YgamU/bj1lLl9fb2JfXzpTZSYmIWFlKCkmJihBcnJheS5pc0FycmF5KGUpfHxsKGUpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZShlKSYmIWUuX2lzVnVlJiYobj1uZXcgamUoZSkpLHQmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24gVGUoZSx0LG4scixpKXt2YXIgYT1uZXcgZGUsbz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYoIW98fCExIT09by5jb25maWd1cmFibGUpe3ZhciBjPW8mJm8uZ2V0LHM9byYmby5zZXQ7YyYmIXN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj1lW3RdKTt2YXIgcD0haSYmRWUobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9Yz9jLmNhbGwoZSk6bjtyZXR1cm4gZGUudGFyZ2V0JiYoYS5kZXBlbmQoKSxwJiYocC5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheSh0KSYmTWUodCkpKSx0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIHI9Yz9jLmNhbGwoZSk6bjt0PT09cnx8dCE9PXQmJnIhPT1yfHxjJiYhc3x8KHM/cy5jYWxsKGUsdCk6bj10LHA9IWkmJkVlKHQpLGEubm90aWZ5KCkpfX0pfX1mdW5jdGlvbiBEZShlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSYmZCh0KSlyZXR1cm4gZS5sZW5ndGg9TWF0aC5tYXgoZS5sZW5ndGgsdCksZS5zcGxpY2UodCwxLG4pLG47aWYodCBpbiBlJiYhKHQgaW4gT2JqZWN0LnByb3RvdHlwZSkpcmV0dXJuIGVbdF09bixuO3ZhciByPWUuX19vYl9fO3JldHVybiBlLl9pc1Z1ZXx8ciYmci52bUNvdW50P246cj8oVGUoci52YWx1ZSx0LG4pLHIuZGVwLm5vdGlmeSgpLG4pOihlW3RdPW4sbil9ZnVuY3Rpb24gemUoZSx0KXtpZihBcnJheS5pc0FycmF5KGUpJiZkKHQpKWUuc3BsaWNlKHQsMSk7ZWxzZXt2YXIgbj1lLl9fb2JfXztlLl9pc1Z1ZXx8biYmbi52bUNvdW50fHxnKGUsdCkmJihkZWxldGUgZVt0XSxuJiZuLmRlcC5ub3RpZnkoKSl9fWZ1bmN0aW9uIE1lKGUpe2Zvcih2YXIgdD12b2lkIDAsbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0PWVbbl0sdCYmdC5fX29iX18mJnQuX19vYl9fLmRlcC5kZXBlbmQoKSxBcnJheS5pc0FycmF5KHQpJiZNZSh0KX1qZS5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7bisrKVRlKGUsdFtuXSl9LGplLnByb3RvdHlwZS5vYnNlcnZlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKUVlKGVbdF0pfTt2YXIgJGU9Vi5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7ZnVuY3Rpb24gTmUoZSx0KXtpZighdClyZXR1cm4gZTtmb3IodmFyIG4scixpLGE9T2JqZWN0LmtleXModCksbz0wO288YS5sZW5ndGg7bysrKW49YVtvXSxyPWVbbl0saT10W25dLGcoZSxuKT9yIT09aSYmbChyKSYmbChpKSYmTmUocixpKTpEZShlLG4saSk7cmV0dXJuIGV9ZnVuY3Rpb24gSWUoZSx0LG4pe3JldHVybiBuP2Z1bmN0aW9uKCl7dmFyIHI9ImZ1bmN0aW9uIj09PXR5cGVvZiB0P3QuY2FsbChuLG4pOnQsaT0iZnVuY3Rpb24iPT09dHlwZW9mIGU/ZS5jYWxsKG4sbik6ZTtyZXR1cm4gcj9OZShyLGkpOml9OnQ/ZT9mdW5jdGlvbigpe3JldHVybiBOZSgiZnVuY3Rpb24iPT09dHlwZW9mIHQ/dC5jYWxsKHRoaXMsdGhpcyk6dCwiZnVuY3Rpb24iPT09dHlwZW9mIGU/ZS5jYWxsKHRoaXMsdGhpcyk6ZSl9OnQ6ZX1mdW5jdGlvbiBGZShlLHQpe3JldHVybiB0P2U/ZS5jb25jYXQodCk6QXJyYXkuaXNBcnJheSh0KT90Olt0XTplfWZ1bmN0aW9uIExlKGUsdCxuLHIpe3ZhciBpPU9iamVjdC5jcmVhdGUoZXx8bnVsbCk7cmV0dXJuIHQ/RShpLHQpOml9JGUuZGF0YT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4/SWUoZSx0LG4pOnQmJiJmdW5jdGlvbiIhPT10eXBlb2YgdD9lOkllKGUsdCl9LFIuZm9yRWFjaCgoZnVuY3Rpb24oZSl7JGVbZV09RmV9KSksTC5mb3JFYWNoKChmdW5jdGlvbihlKXskZVtlKyJzIl09TGV9KSksJGUud2F0Y2g9ZnVuY3Rpb24oZSx0LG4scil7aWYoZT09PW5lJiYoZT12b2lkIDApLHQ9PT1uZSYmKHQ9dm9pZCAwKSwhdClyZXR1cm4gT2JqZWN0LmNyZWF0ZShlfHxudWxsKTtpZighZSlyZXR1cm4gdDt2YXIgaT17fTtmb3IodmFyIGEgaW4gRShpLGUpLHQpe3ZhciBvPWlbYV0sYz10W2FdO28mJiFBcnJheS5pc0FycmF5KG8pJiYobz1bb10pLGlbYV09bz9vLmNvbmNhdChjKTpBcnJheS5pc0FycmF5KGMpP2M6W2NdfXJldHVybiBpfSwkZS5wcm9wcz0kZS5tZXRob2RzPSRlLmluamVjdD0kZS5jb21wdXRlZD1mdW5jdGlvbihlLHQsbixyKXtpZighZSlyZXR1cm4gdDt2YXIgaT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBFKGksZSksdCYmRShpLHQpLGl9LCRlLnByb3ZpZGU9SWU7dmFyIFJlPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/ZTp0fTtmdW5jdGlvbiBWZShlLHQpe3ZhciBuPWUucHJvcHM7aWYobil7dmFyIHIsaSxhLG89e307aWYoQXJyYXkuaXNBcnJheShuKSl7cj1uLmxlbmd0aDt3aGlsZShyLS0paT1uW3JdLCJzdHJpbmciPT09dHlwZW9mIGkmJihhPWsoaSksb1thXT17dHlwZTpudWxsfSl9ZWxzZSBpZihsKG4pKWZvcih2YXIgYyBpbiBuKWk9bltjXSxhPWsoYyksb1thXT1sKGkpP2k6e3R5cGU6aX07ZWxzZSAwO2UucHJvcHM9b319ZnVuY3Rpb24gVWUoZSx0KXt2YXIgbj1lLmluamVjdDtpZihuKXt2YXIgcj1lLmluamVjdD17fTtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXJbbltpXV09e2Zyb206bltpXX07ZWxzZSBpZihsKG4pKWZvcih2YXIgYSBpbiBuKXt2YXIgbz1uW2FdO3JbYV09bChvKT9FKHtmcm9tOmF9LG8pOntmcm9tOm99fWVsc2UgMH19ZnVuY3Rpb24gSGUoZSl7dmFyIHQ9ZS5kaXJlY3RpdmVzO2lmKHQpZm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07ImZ1bmN0aW9uIj09PXR5cGVvZiByJiYodFtuXT17YmluZDpyLHVwZGF0ZTpyfSl9fWZ1bmN0aW9uIEdlKGUsdCxuKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIHQmJih0PXQub3B0aW9ucyksVmUodCxuKSxVZSh0LG4pLEhlKHQpLCF0Ll9iYXNlJiYodC5leHRlbmRzJiYoZT1HZShlLHQuZXh0ZW5kcyxuKSksdC5taXhpbnMpKWZvcih2YXIgcj0wLGk9dC5taXhpbnMubGVuZ3RoO3I8aTtyKyspZT1HZShlLHQubWl4aW5zW3JdLG4pO3ZhciBhLG89e307Zm9yKGEgaW4gZSljKGEpO2ZvcihhIGluIHQpZyhlLGEpfHxjKGEpO2Z1bmN0aW9uIGMocil7dmFyIGk9JGVbcl18fFJlO29bcl09aShlW3JdLHRbcl0sbixyKX1yZXR1cm4gb31mdW5jdGlvbiBLZShlLHQsbixyKXtpZigic3RyaW5nIj09PXR5cGVvZiBuKXt2YXIgaT1lW3RdO2lmKGcoaSxuKSlyZXR1cm4gaVtuXTt2YXIgYT1rKG4pO2lmKGcoaSxhKSlyZXR1cm4gaVthXTt2YXIgbz14KGEpO2lmKGcoaSxvKSlyZXR1cm4gaVtvXTt2YXIgYz1pW25dfHxpW2FdfHxpW29dO3JldHVybiBjfX1mdW5jdGlvbiBCZShlLHQsbixyKXt2YXIgaT10W2VdLGE9IWcobixlKSxvPW5bZV0sYz1YZShCb29sZWFuLGkudHlwZSk7aWYoYz4tMSlpZihhJiYhZyhpLCJkZWZhdWx0Iikpbz0hMTtlbHNlIGlmKCIiPT09b3x8bz09PVMoZSkpe3ZhciBzPVhlKFN0cmluZyxpLnR5cGUpOyhzPDB8fGM8cykmJihvPSEwKX1pZih2b2lkIDA9PT1vKXtvPXFlKHIsaSxlKTt2YXIgcD1TZTtQZSghMCksRWUobyksUGUocCl9cmV0dXJuIG99ZnVuY3Rpb24gcWUoZSx0LG4pe2lmKGcodCwiZGVmYXVsdCIpKXt2YXIgcj10LmRlZmF1bHQ7cmV0dXJuIGUmJmUuJG9wdGlvbnMucHJvcHNEYXRhJiZ2b2lkIDA9PT1lLiRvcHRpb25zLnByb3BzRGF0YVtuXSYmdm9pZCAwIT09ZS5fcHJvcHNbbl0/ZS5fcHJvcHNbbl06ImZ1bmN0aW9uIj09PXR5cGVvZiByJiYiRnVuY3Rpb24iIT09SmUodC50eXBlKT9yLmNhbGwoZSk6cn19ZnVuY3Rpb24gSmUoZSl7dmFyIHQ9ZSYmZS50b1N0cmluZygpLm1hdGNoKC9eXHMqZnVuY3Rpb24gKFx3KykvKTtyZXR1cm4gdD90WzFdOiIifWZ1bmN0aW9uIFdlKGUsdCl7cmV0dXJuIEplKGUpPT09SmUodCl9ZnVuY3Rpb24gWGUoZSx0KXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gV2UodCxlKT8wOi0xO2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyO24rKylpZihXZSh0W25dLGUpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIFplKGUsdCxuKXtpZih0KXt2YXIgcj10O3doaWxlKHI9ci4kcGFyZW50KXt2YXIgaT1yLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7aWYoaSlmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKyl0cnl7dmFyIG89ITE9PT1pW2FdLmNhbGwocixlLHQsbik7aWYobylyZXR1cm59Y2F0Y2gob28pe1llKG9vLHIsImVycm9yQ2FwdHVyZWQgaG9vayIpfX19WWUoZSx0LG4pfWZ1bmN0aW9uIFllKGUsdCxuKXtpZihWLmVycm9ySGFuZGxlcil0cnl7cmV0dXJuIFYuZXJyb3JIYW5kbGVyLmNhbGwobnVsbCxlLHQsbil9Y2F0Y2gob28pe1FlKG9vLG51bGwsImNvbmZpZy5lcnJvckhhbmRsZXIiKX1RZShlLHQsbil9ZnVuY3Rpb24gUWUoZSx0LG4pe2lmKCFKJiYhV3x8InVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZSl0aHJvdyBlO2NvbnNvbGUuZXJyb3IoZSl9dmFyIGV0LHR0LG50PVtdLHJ0PSExO2Z1bmN0aW9uIGl0KCl7cnQ9ITE7dmFyIGU9bnQuc2xpY2UoMCk7bnQubGVuZ3RoPTA7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XSgpfXZhciBhdD0hMTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmNlKHNldEltbWVkaWF0ZSkpdHQ9ZnVuY3Rpb24oKXtzZXRJbW1lZGlhdGUoaXQpfTtlbHNlIGlmKCJ1bmRlZmluZWQiPT09dHlwZW9mIE1lc3NhZ2VDaGFubmVsfHwhY2UoTWVzc2FnZUNoYW5uZWwpJiYiW29iamVjdCBNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yXSIhPT1NZXNzYWdlQ2hhbm5lbC50b1N0cmluZygpKXR0PWZ1bmN0aW9uKCl7c2V0VGltZW91dChpdCwwKX07ZWxzZXt2YXIgb3Q9bmV3IE1lc3NhZ2VDaGFubmVsLGN0PW90LnBvcnQyO290LnBvcnQxLm9ubWVzc2FnZT1pdCx0dD1mdW5jdGlvbigpe2N0LnBvc3RNZXNzYWdlKDEpfX1pZigidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm9taXNlJiZjZShQcm9taXNlKSl7dmFyIHN0PVByb21pc2UucmVzb2x2ZSgpO2V0PWZ1bmN0aW9uKCl7c3QudGhlbihpdCksdGUmJnNldFRpbWVvdXQoRCl9fWVsc2UgZXQ9dHQ7ZnVuY3Rpb24gcHQoZSl7cmV0dXJuIGUuX3dpdGhUYXNrfHwoZS5fd2l0aFRhc2s9ZnVuY3Rpb24oKXthdD0hMDt0cnl7cmV0dXJuIGUuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZpbmFsbHl7YXQ9ITF9fSl9ZnVuY3Rpb24gbHQoZSx0KXt2YXIgbjtpZihudC5wdXNoKChmdW5jdGlvbigpe2lmKGUpdHJ5e2UuY2FsbCh0KX1jYXRjaChvbyl7WmUob28sdCwibmV4dFRpY2siKX1lbHNlIG4mJm4odCl9KSkscnR8fChydD0hMCxhdD90dCgpOmV0KCkpLCFlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm9taXNlKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7bj1lfSkpfXZhciB1dD1uZXcgc2U7ZnVuY3Rpb24gZHQoZSl7X3QoZSx1dCksdXQuY2xlYXIoKX1mdW5jdGlvbiBfdChlLHQpe3ZhciBuLHIsaT1BcnJheS5pc0FycmF5KGUpO2lmKCEoIWkmJiFzKGUpfHxPYmplY3QuaXNGcm96ZW4oZSl8fGUgaW5zdGFuY2VvZiBoZSkpe2lmKGUuX19vYl9fKXt2YXIgYT1lLl9fb2JfXy5kZXAuaWQ7aWYodC5oYXMoYSkpcmV0dXJuO3QuYWRkKGEpfWlmKGkpe249ZS5sZW5ndGg7d2hpbGUobi0tKV90KGVbbl0sdCl9ZWxzZXtyPU9iamVjdC5rZXlzKGUpLG49ci5sZW5ndGg7d2hpbGUobi0tKV90KGVbcltuXV0sdCl9fX12YXIgbXQsZnQ9dygoZnVuY3Rpb24oZSl7dmFyIHQ9IiYiPT09ZS5jaGFyQXQoMCk7ZT10P2Uuc2xpY2UoMSk6ZTt2YXIgbj0ifiI9PT1lLmNoYXJBdCgwKTtlPW4/ZS5zbGljZSgxKTplO3ZhciByPSIhIj09PWUuY2hhckF0KDApO3JldHVybiBlPXI/ZS5zbGljZSgxKTplLHtuYW1lOmUsb25jZTpuLGNhcHR1cmU6cixwYXNzaXZlOnR9fSkpO2Z1bmN0aW9uIGh0KGUpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMsbj10LmZucztpZighQXJyYXkuaXNBcnJheShuKSlyZXR1cm4gbi5hcHBseShudWxsLGFyZ3VtZW50cyk7Zm9yKHZhciByPW4uc2xpY2UoKSxpPTA7aTxyLmxlbmd0aDtpKyspcltpXS5hcHBseShudWxsLGUpfXJldHVybiB0LmZucz1lLHR9ZnVuY3Rpb24gdnQoZSx0LG4saSxvLGMpe3ZhciBzLHAsbCx1O2ZvcihzIGluIGUpcD1lW3NdLGw9dFtzXSx1PWZ0KHMpLHIocCl8fChyKGwpPyhyKHAuZm5zKSYmKHA9ZVtzXT1odChwKSksYSh1Lm9uY2UpJiYocD1lW3NdPW8odS5uYW1lLHAsdS5jYXB0dXJlKSksbih1Lm5hbWUscCx1LmNhcHR1cmUsdS5wYXNzaXZlLHUucGFyYW1zKSk6cCE9PWwmJihsLmZucz1wLGVbc109bCkpO2ZvcihzIGluIHQpcihlW3NdKSYmKHU9ZnQocyksaSh1Lm5hbWUsdFtzXSx1LmNhcHR1cmUpKX1mdW5jdGlvbiB5dChlLHQsbil7dmFyIG87ZSBpbnN0YW5jZW9mIGhlJiYoZT1lLmRhdGEuaG9va3x8KGUuZGF0YS5ob29rPXt9KSk7dmFyIGM9ZVt0XTtmdW5jdGlvbiBzKCl7bi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdihvLmZucyxzKX1yKGMpP289aHQoW3NdKTppKGMuZm5zKSYmYShjLm1lcmdlZCk/KG89YyxvLmZucy5wdXNoKHMpKTpvPWh0KFtjLHNdKSxvLm1lcmdlZD0hMCxlW3RdPW99ZnVuY3Rpb24gZ3QoZSx0LG4pe3ZhciBhPXQub3B0aW9ucy5wcm9wcztpZighcihhKSl7dmFyIG89e30sYz1lLmF0dHJzLHM9ZS5wcm9wcztpZihpKGMpfHxpKHMpKWZvcih2YXIgcCBpbiBhKXt2YXIgbD1TKHApO3d0KG8scyxwLGwsITApfHx3dChvLGMscCxsLCExKX1yZXR1cm4gb319ZnVuY3Rpb24gd3QoZSx0LG4scixhKXtpZihpKHQpKXtpZihnKHQsbikpcmV0dXJuIGVbbl09dFtuXSxhfHxkZWxldGUgdFtuXSwhMDtpZihnKHQscikpcmV0dXJuIGVbbl09dFtyXSxhfHxkZWxldGUgdFtyXSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBidChlKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKylpZihBcnJheS5pc0FycmF5KGVbdF0pKXJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLGUpO3JldHVybiBlfWZ1bmN0aW9uIGt0KGUpe3JldHVybiBjKGUpP1tnZShlKV06QXJyYXkuaXNBcnJheShlKT9DdChlKTp2b2lkIDB9ZnVuY3Rpb24geHQoZSl7cmV0dXJuIGkoZSkmJmkoZS50ZXh0KSYmbyhlLmlzQ29tbWVudCl9ZnVuY3Rpb24gQ3QoZSx0KXt2YXIgbixvLHMscCxsPVtdO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspbz1lW25dLHIobyl8fCJib29sZWFuIj09PXR5cGVvZiBvfHwocz1sLmxlbmd0aC0xLHA9bFtzXSxBcnJheS5pc0FycmF5KG8pP28ubGVuZ3RoPjAmJihvPUN0KG8sKHR8fCIiKSsiXyIrbikseHQob1swXSkmJnh0KHApJiYobFtzXT1nZShwLnRleHQrb1swXS50ZXh0KSxvLnNoaWZ0KCkpLGwucHVzaC5hcHBseShsLG8pKTpjKG8pP3h0KHApP2xbc109Z2UocC50ZXh0K28pOiIiIT09byYmbC5wdXNoKGdlKG8pKTp4dChvKSYmeHQocCk/bFtzXT1nZShwLnRleHQrby50ZXh0KTooYShlLl9pc1ZMaXN0KSYmaShvLnRhZykmJnIoby5rZXkpJiZpKHQpJiYoby5rZXk9Il9fdmxpc3QiK3QrIl8iK24rIl9fIiksbC5wdXNoKG8pKSk7cmV0dXJuIGx9ZnVuY3Rpb24gU3QoZSx0KXtyZXR1cm4oZS5fX2VzTW9kdWxlfHxwZSYmIk1vZHVsZSI9PT1lW1N5bWJvbC50b1N0cmluZ1RhZ10pJiYoZT1lLmRlZmF1bHQpLHMoZSk/dC5leHRlbmQoZSk6ZX1mdW5jdGlvbiBQdChlLHQsbixyLGkpe3ZhciBhPXllKCk7cmV0dXJuIGEuYXN5bmNGYWN0b3J5PWUsYS5hc3luY01ldGE9e2RhdGE6dCxjb250ZXh0Om4sY2hpbGRyZW46cix0YWc6aX0sYX1mdW5jdGlvbiBqdChlLHQsbil7aWYoYShlLmVycm9yKSYmaShlLmVycm9yQ29tcCkpcmV0dXJuIGUuZXJyb3JDb21wO2lmKGkoZS5yZXNvbHZlZCkpcmV0dXJuIGUucmVzb2x2ZWQ7aWYoYShlLmxvYWRpbmcpJiZpKGUubG9hZGluZ0NvbXApKXJldHVybiBlLmxvYWRpbmdDb21wO2lmKCFpKGUuY29udGV4dHMpKXt2YXIgbz1lLmNvbnRleHRzPVtuXSxjPSEwLHA9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1vLmxlbmd0aDt0PG47dCsrKW9bdF0uJGZvcmNlVXBkYXRlKCk7ZSYmKG8ubGVuZ3RoPTApfSxsPUkoKGZ1bmN0aW9uKG4pe2UucmVzb2x2ZWQ9U3Qobix0KSxjfHxwKCEwKX0pKSx1PUkoKGZ1bmN0aW9uKHQpe2koZS5lcnJvckNvbXApJiYoZS5lcnJvcj0hMCxwKCEwKSl9KSksZD1lKGwsdSk7cmV0dXJuIHMoZCkmJigiZnVuY3Rpb24iPT09dHlwZW9mIGQudGhlbj9yKGUucmVzb2x2ZWQpJiZkLnRoZW4obCx1KTppKGQuY29tcG9uZW50KSYmImZ1bmN0aW9uIj09PXR5cGVvZiBkLmNvbXBvbmVudC50aGVuJiYoZC5jb21wb25lbnQudGhlbihsLHUpLGkoZC5lcnJvcikmJihlLmVycm9yQ29tcD1TdChkLmVycm9yLHQpKSxpKGQubG9hZGluZykmJihlLmxvYWRpbmdDb21wPVN0KGQubG9hZGluZyx0KSwwPT09ZC5kZWxheT9lLmxvYWRpbmc9ITA6c2V0VGltZW91dCgoZnVuY3Rpb24oKXtyKGUucmVzb2x2ZWQpJiZyKGUuZXJyb3IpJiYoZS5sb2FkaW5nPSEwLHAoITEpKX0pLGQuZGVsYXl8fDIwMCkpLGkoZC50aW1lb3V0KSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyKGUucmVzb2x2ZWQpJiZ1KG51bGwpfSksZC50aW1lb3V0KSkpLGM9ITEsZS5sb2FkaW5nP2UubG9hZGluZ0NvbXA6ZS5yZXNvbHZlZH1lLmNvbnRleHRzLnB1c2gobil9ZnVuY3Rpb24gT3QoZSl7cmV0dXJuIGUuaXNDb21tZW50JiZlLmFzeW5jRmFjdG9yeX1mdW5jdGlvbiBBdChlKXtpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgbj1lW3RdO2lmKGkobikmJihpKG4uY29tcG9uZW50T3B0aW9ucyl8fE90KG4pKSlyZXR1cm4gbn19ZnVuY3Rpb24gRXQoZSl7ZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksZS5faGFzSG9va0V2ZW50PSExO3ZhciB0PWUuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVyczt0JiZNdChlLHQpfWZ1bmN0aW9uIFR0KGUsdCl7bXQuJG9uKGUsdCl9ZnVuY3Rpb24gRHQoZSx0KXttdC4kb2ZmKGUsdCl9ZnVuY3Rpb24genQoZSx0KXt2YXIgbj1tdDtyZXR1cm4gZnVuY3Rpb24gcigpe3ZhciBpPXQuYXBwbHkobnVsbCxhcmd1bWVudHMpO251bGwhPT1pJiZuLiRvZmYoZSxyKX19ZnVuY3Rpb24gTXQoZSx0LG4pe210PWUsdnQodCxufHx7fSxUdCxEdCx6dCxlKSxtdD12b2lkIDB9ZnVuY3Rpb24gJHQoZSl7dmFyIHQ9L15ob29rOi87ZS5wcm90b3R5cGUuJG9uPWZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpcztpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgaT0wLGE9ZS5sZW5ndGg7aTxhO2krKylyLiRvbihlW2ldLG4pO2Vsc2Uoci5fZXZlbnRzW2VdfHwoci5fZXZlbnRzW2VdPVtdKSkucHVzaChuKSx0LnRlc3QoZSkmJihyLl9oYXNIb29rRXZlbnQ9ITApO3JldHVybiByfSxlLnByb3RvdHlwZS4kb25jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7ZnVuY3Rpb24gcigpe24uJG9mZihlLHIpLHQuYXBwbHkobixhcmd1bWVudHMpfXJldHVybiByLmZuPXQsbi4kb24oZSxyKSxufSxlLnByb3RvdHlwZS4kb2ZmPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksbjtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspbi4kb2ZmKGVbcl0sdCk7cmV0dXJuIG59dmFyIGE9bi5fZXZlbnRzW2VdO2lmKCFhKXJldHVybiBuO2lmKCF0KXJldHVybiBuLl9ldmVudHNbZV09bnVsbCxuO2lmKHQpe3ZhciBvLGM9YS5sZW5ndGg7d2hpbGUoYy0tKWlmKG89YVtjXSxvPT09dHx8by5mbj09PXQpe2Euc3BsaWNlKGMsMSk7YnJlYWt9fXJldHVybiBufSxlLnByb3RvdHlwZS4kZW1pdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dC5fZXZlbnRzW2VdO2lmKG4pe249bi5sZW5ndGg+MT9BKG4pOm47Zm9yKHZhciByPUEoYXJndW1lbnRzLDEpLGk9MCxhPW4ubGVuZ3RoO2k8YTtpKyspdHJ5e25baV0uYXBwbHkodCxyKX1jYXRjaChvbyl7WmUob28sdCwnZXZlbnQgaGFuZGxlciBmb3IgIicrZSsnIicpfX1yZXR1cm4gdH19ZnVuY3Rpb24gTnQoZSx0KXt2YXIgbj17fTtpZighZSlyZXR1cm4gbjtmb3IodmFyIHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspe3ZhciBhPWVbcl0sbz1hLmRhdGE7aWYobyYmby5hdHRycyYmby5hdHRycy5zbG90JiZkZWxldGUgby5hdHRycy5zbG90LGEuY29udGV4dCE9PXQmJmEuZm5Db250ZXh0IT09dHx8IW98fG51bGw9PW8uc2xvdCkobi5kZWZhdWx0fHwobi5kZWZhdWx0PVtdKSkucHVzaChhKTtlbHNle3ZhciBjPW8uc2xvdCxzPW5bY118fChuW2NdPVtdKTsidGVtcGxhdGUiPT09YS50YWc/cy5wdXNoLmFwcGx5KHMsYS5jaGlsZHJlbnx8W10pOnMucHVzaChhKX19Zm9yKHZhciBwIGluIG4pbltwXS5ldmVyeShJdCkmJmRlbGV0ZSBuW3BdO3JldHVybiBufWZ1bmN0aW9uIEl0KGUpe3JldHVybiBlLmlzQ29tbWVudCYmIWUuYXN5bmNGYWN0b3J5fHwiICI9PT1lLnRleHR9ZnVuY3Rpb24gRnQoZSx0KXt0PXR8fHt9O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKUFycmF5LmlzQXJyYXkoZVtuXSk/RnQoZVtuXSx0KTp0W2Vbbl0ua2V5XT1lW25dLmZuO3JldHVybiB0fXZhciBMdD1udWxsO2Z1bmN0aW9uIFJ0KGUpe3ZhciB0PUx0O3JldHVybiBMdD1lLGZ1bmN0aW9uKCl7THQ9dH19ZnVuY3Rpb24gVnQoZSl7dmFyIHQ9ZS4kb3B0aW9ucyxuPXQucGFyZW50O2lmKG4mJiF0LmFic3RyYWN0KXt3aGlsZShuLiRvcHRpb25zLmFic3RyYWN0JiZuLiRwYXJlbnQpbj1uLiRwYXJlbnQ7bi4kY2hpbGRyZW4ucHVzaChlKX1lLiRwYXJlbnQ9bixlLiRyb290PW4/bi4kcm9vdDplLGUuJGNoaWxkcmVuPVtdLGUuJHJlZnM9e30sZS5fd2F0Y2hlcj1udWxsLGUuX2luYWN0aXZlPW51bGwsZS5fZGlyZWN0SW5hY3RpdmU9ITEsZS5faXNNb3VudGVkPSExLGUuX2lzRGVzdHJveWVkPSExLGUuX2lzQmVpbmdEZXN0cm95ZWQ9ITF9ZnVuY3Rpb24gVXQoZSl7ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMscj1uLiRlbCxpPW4uX3Zub2RlLGE9UnQobik7bi5fdm5vZGU9ZSxuLiRlbD1pP24uX19wYXRjaF9fKGksZSk6bi5fX3BhdGNoX18obi4kZWwsZSx0LCExKSxhKCksciYmKHIuX192dWVfXz1udWxsKSxuLiRlbCYmKG4uJGVsLl9fdnVlX189biksbi4kdm5vZGUmJm4uJHBhcmVudCYmbi4kdm5vZGU9PT1uLiRwYXJlbnQuX3Zub2RlJiYobi4kcGFyZW50LiRlbD1uLiRlbCl9LGUucHJvdG90eXBlLiRmb3JjZVVwZGF0ZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7ZS5fd2F0Y2hlciYmZS5fd2F0Y2hlci51cGRhdGUoKX0sZS5wcm90b3R5cGUuJGRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCFlLl9pc0JlaW5nRGVzdHJveWVkKXtKdChlLCJiZWZvcmVEZXN0cm95IiksZS5faXNCZWluZ0Rlc3Ryb3llZD0hMDt2YXIgdD1lLiRwYXJlbnQ7IXR8fHQuX2lzQmVpbmdEZXN0cm95ZWR8fGUuJG9wdGlvbnMuYWJzdHJhY3R8fHYodC4kY2hpbGRyZW4sZSksZS5fd2F0Y2hlciYmZS5fd2F0Y2hlci50ZWFyZG93bigpO3ZhciBuPWUuX3dhdGNoZXJzLmxlbmd0aDt3aGlsZShuLS0pZS5fd2F0Y2hlcnNbbl0udGVhcmRvd24oKTtlLl9kYXRhLl9fb2JfXyYmZS5fZGF0YS5fX29iX18udm1Db3VudC0tLGUuX2lzRGVzdHJveWVkPSEwLGUuX19wYXRjaF9fKGUuX3Zub2RlLG51bGwpLEp0KGUsImRlc3Ryb3llZCIpLGUuJG9mZigpLGUuJGVsJiYoZS4kZWwuX192dWVfXz1udWxsKSxlLiR2bm9kZSYmKGUuJHZub2RlLnBhcmVudD1udWxsKX19fWZ1bmN0aW9uIEh0KGUsdCxuKXt2YXIgcjtyZXR1cm4gZS4kZWw9dCxlLiRvcHRpb25zLnJlbmRlcnx8KGUuJG9wdGlvbnMucmVuZGVyPXllKSxKdChlLCJiZWZvcmVNb3VudCIpLHI9ZnVuY3Rpb24oKXtlLl91cGRhdGUoZS5fcmVuZGVyKCksbil9LG5ldyBwbihlLHIsRCx7YmVmb3JlOmZ1bmN0aW9uKCl7ZS5faXNNb3VudGVkJiYhZS5faXNEZXN0cm95ZWQmJkp0KGUsImJlZm9yZVVwZGF0ZSIpfX0sITApLG49ITEsbnVsbD09ZS4kdm5vZGUmJihlLl9pc01vdW50ZWQ9ITAsSnQoZSwibW91bnRlZCIpKSxlfWZ1bmN0aW9uIEd0KGUsdCxyLGksYSl7dmFyIG89ISEoYXx8ZS4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW58fGkuZGF0YS5zY29wZWRTbG90c3x8ZS4kc2NvcGVkU2xvdHMhPT1uKTtpZihlLiRvcHRpb25zLl9wYXJlbnRWbm9kZT1pLGUuJHZub2RlPWksZS5fdm5vZGUmJihlLl92bm9kZS5wYXJlbnQ9aSksZS4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW49YSxlLiRhdHRycz1pLmRhdGEuYXR0cnN8fG4sZS4kbGlzdGVuZXJzPXJ8fG4sdCYmZS4kb3B0aW9ucy5wcm9wcyl7UGUoITEpO2Zvcih2YXIgYz1lLl9wcm9wcyxzPWUuJG9wdGlvbnMuX3Byb3BLZXlzfHxbXSxwPTA7cDxzLmxlbmd0aDtwKyspe3ZhciBsPXNbcF0sdT1lLiRvcHRpb25zLnByb3BzO2NbbF09QmUobCx1LHQsZSl9UGUoITApLGUuJG9wdGlvbnMucHJvcHNEYXRhPXR9cj1yfHxuO3ZhciBkPWUuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycztlLiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM9cixNdChlLHIsZCksbyYmKGUuJHNsb3RzPU50KGEsaS5jb250ZXh0KSxlLiRmb3JjZVVwZGF0ZSgpKX1mdW5jdGlvbiBLdChlKXt3aGlsZShlJiYoZT1lLiRwYXJlbnQpKWlmKGUuX2luYWN0aXZlKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEJ0KGUsdCl7aWYodCl7aWYoZS5fZGlyZWN0SW5hY3RpdmU9ITEsS3QoZSkpcmV0dXJufWVsc2UgaWYoZS5fZGlyZWN0SW5hY3RpdmUpcmV0dXJuO2lmKGUuX2luYWN0aXZlfHxudWxsPT09ZS5faW5hY3RpdmUpe2UuX2luYWN0aXZlPSExO2Zvcih2YXIgbj0wO248ZS4kY2hpbGRyZW4ubGVuZ3RoO24rKylCdChlLiRjaGlsZHJlbltuXSk7SnQoZSwiYWN0aXZhdGVkIil9fWZ1bmN0aW9uIHF0KGUsdCl7aWYoKCF0fHwoZS5fZGlyZWN0SW5hY3RpdmU9ITAsIUt0KGUpKSkmJiFlLl9pbmFjdGl2ZSl7ZS5faW5hY3RpdmU9ITA7Zm9yKHZhciBuPTA7bjxlLiRjaGlsZHJlbi5sZW5ndGg7bisrKXF0KGUuJGNoaWxkcmVuW25dKTtKdChlLCJkZWFjdGl2YXRlZCIpfX1mdW5jdGlvbiBKdChlLHQpe21lKCk7dmFyIG49ZS4kb3B0aW9uc1t0XTtpZihuKWZvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl0cnl7bltyXS5jYWxsKGUpfWNhdGNoKG9vKXtaZShvbyxlLHQrIiBob29rIil9ZS5faGFzSG9va0V2ZW50JiZlLiRlbWl0KCJob29rOiIrdCksZmUoKX12YXIgV3Q9W10sWHQ9W10sWnQ9e30sWXQ9ITEsUXQ9ITEsZW49MDtmdW5jdGlvbiB0bigpe2VuPVd0Lmxlbmd0aD1YdC5sZW5ndGg9MCxadD17fSxZdD1RdD0hMX1mdW5jdGlvbiBubigpe3ZhciBlLHQ7Zm9yKFF0PSEwLFd0LnNvcnQoKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQtdC5pZH0pKSxlbj0wO2VuPFd0Lmxlbmd0aDtlbisrKWU9V3RbZW5dLGUuYmVmb3JlJiZlLmJlZm9yZSgpLHQ9ZS5pZCxadFt0XT1udWxsLGUucnVuKCk7dmFyIG49WHQuc2xpY2UoKSxyPVd0LnNsaWNlKCk7dG4oKSxvbihuKSxybihyKSxvZSYmVi5kZXZ0b29scyYmb2UuZW1pdCgiZmx1c2giKX1mdW5jdGlvbiBybihlKXt2YXIgdD1lLmxlbmd0aDt3aGlsZSh0LS0pe3ZhciBuPWVbdF0scj1uLnZtO3IuX3dhdGNoZXI9PT1uJiZyLl9pc01vdW50ZWQmJiFyLl9pc0Rlc3Ryb3llZCYmSnQociwidXBkYXRlZCIpfX1mdW5jdGlvbiBhbihlKXtlLl9pbmFjdGl2ZT0hMSxYdC5wdXNoKGUpfWZ1bmN0aW9uIG9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0uX2luYWN0aXZlPSEwLEJ0KGVbdF0sITApfWZ1bmN0aW9uIGNuKGUpe3ZhciB0PWUuaWQ7aWYobnVsbD09WnRbdF0pe2lmKFp0W3RdPSEwLFF0KXt2YXIgbj1XdC5sZW5ndGgtMTt3aGlsZShuPmVuJiZXdFtuXS5pZD5lLmlkKW4tLTtXdC5zcGxpY2UobisxLDAsZSl9ZWxzZSBXdC5wdXNoKGUpO1l0fHwoWXQ9ITAsbHQobm4pKX19dmFyIHNuPTAscG49ZnVuY3Rpb24oZSx0LG4scixpKXt0aGlzLnZtPWUsaSYmKGUuX3dhdGNoZXI9dGhpcyksZS5fd2F0Y2hlcnMucHVzaCh0aGlzKSxyPyh0aGlzLmRlZXA9ISFyLmRlZXAsdGhpcy51c2VyPSEhci51c2VyLHRoaXMubGF6eT0hIXIubGF6eSx0aGlzLnN5bmM9ISFyLnN5bmMsdGhpcy5iZWZvcmU9ci5iZWZvcmUpOnRoaXMuZGVlcD10aGlzLnVzZXI9dGhpcy5sYXp5PXRoaXMuc3luYz0hMSx0aGlzLmNiPW4sdGhpcy5pZD0rK3NuLHRoaXMuYWN0aXZlPSEwLHRoaXMuZGlydHk9dGhpcy5sYXp5LHRoaXMuZGVwcz1bXSx0aGlzLm5ld0RlcHM9W10sdGhpcy5kZXBJZHM9bmV3IHNlLHRoaXMubmV3RGVwSWRzPW5ldyBzZSx0aGlzLmV4cHJlc3Npb249IiIsImZ1bmN0aW9uIj09PXR5cGVvZiB0P3RoaXMuZ2V0dGVyPXQ6KHRoaXMuZ2V0dGVyPUsodCksdGhpcy5nZXR0ZXJ8fCh0aGlzLmdldHRlcj1EKSksdGhpcy52YWx1ZT10aGlzLmxhenk/dm9pZCAwOnRoaXMuZ2V0KCl9O3BuLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXt2YXIgZTttZSh0aGlzKTt2YXIgdD10aGlzLnZtO3RyeXtlPXRoaXMuZ2V0dGVyLmNhbGwodCx0KX1jYXRjaChvbyl7aWYoIXRoaXMudXNlcil0aHJvdyBvbztaZShvbyx0LCdnZXR0ZXIgZm9yIHdhdGNoZXIgIicrdGhpcy5leHByZXNzaW9uKyciJyl9ZmluYWxseXt0aGlzLmRlZXAmJmR0KGUpLGZlKCksdGhpcy5jbGVhbnVwRGVwcygpfXJldHVybiBlfSxwbi5wcm90b3R5cGUuYWRkRGVwPWZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQ7dGhpcy5uZXdEZXBJZHMuaGFzKHQpfHwodGhpcy5uZXdEZXBJZHMuYWRkKHQpLHRoaXMubmV3RGVwcy5wdXNoKGUpLHRoaXMuZGVwSWRzLmhhcyh0KXx8ZS5hZGRTdWIodGhpcykpfSxwbi5wcm90b3R5cGUuY2xlYW51cERlcHM9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmRlcHMubGVuZ3RoO3doaWxlKGUtLSl7dmFyIHQ9dGhpcy5kZXBzW2VdO3RoaXMubmV3RGVwSWRzLmhhcyh0LmlkKXx8dC5yZW1vdmVTdWIodGhpcyl9dmFyIG49dGhpcy5kZXBJZHM7dGhpcy5kZXBJZHM9dGhpcy5uZXdEZXBJZHMsdGhpcy5uZXdEZXBJZHM9bix0aGlzLm5ld0RlcElkcy5jbGVhcigpLG49dGhpcy5kZXBzLHRoaXMuZGVwcz10aGlzLm5ld0RlcHMsdGhpcy5uZXdEZXBzPW4sdGhpcy5uZXdEZXBzLmxlbmd0aD0wfSxwbi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5sYXp5P3RoaXMuZGlydHk9ITA6dGhpcy5zeW5jP3RoaXMucnVuKCk6Y24odGhpcyl9LHBuLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZSl7dmFyIGU9dGhpcy5nZXQoKTtpZihlIT09dGhpcy52YWx1ZXx8cyhlKXx8dGhpcy5kZWVwKXt2YXIgdD10aGlzLnZhbHVlO2lmKHRoaXMudmFsdWU9ZSx0aGlzLnVzZXIpdHJ5e3RoaXMuY2IuY2FsbCh0aGlzLnZtLGUsdCl9Y2F0Y2gob28pe1plKG9vLHRoaXMudm0sJ2NhbGxiYWNrIGZvciB3YXRjaGVyICInK3RoaXMuZXhwcmVzc2lvbisnIicpfWVsc2UgdGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX19fSxwbi5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXRoaXMuZ2V0KCksdGhpcy5kaXJ0eT0hMX0scG4ucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZGVwcy5sZW5ndGg7d2hpbGUoZS0tKXRoaXMuZGVwc1tlXS5kZXBlbmQoKX0scG4ucHJvdG90eXBlLnRlYXJkb3duPWZ1bmN0aW9uKCl7aWYodGhpcy5hY3RpdmUpe3RoaXMudm0uX2lzQmVpbmdEZXN0cm95ZWR8fHYodGhpcy52bS5fd2F0Y2hlcnMsdGhpcyk7dmFyIGU9dGhpcy5kZXBzLmxlbmd0aDt3aGlsZShlLS0pdGhpcy5kZXBzW2VdLnJlbW92ZVN1Yih0aGlzKTt0aGlzLmFjdGl2ZT0hMX19O3ZhciBsbj17ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OkQsc2V0OkR9O2Z1bmN0aW9uIHVuKGUsdCxuKXtsbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t0XVtuXX0sbG4uc2V0PWZ1bmN0aW9uKGUpe3RoaXNbdF1bbl09ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbixsbil9ZnVuY3Rpb24gZG4oZSl7ZS5fd2F0Y2hlcnM9W107dmFyIHQ9ZS4kb3B0aW9uczt0LnByb3BzJiZfbihlLHQucHJvcHMpLHQubWV0aG9kcyYmYm4oZSx0Lm1ldGhvZHMpLHQuZGF0YT9tbihlKTpFZShlLl9kYXRhPXt9LCEwKSx0LmNvbXB1dGVkJiZ2bihlLHQuY29tcHV0ZWQpLHQud2F0Y2gmJnQud2F0Y2ghPT1uZSYma24oZSx0LndhdGNoKX1mdW5jdGlvbiBfbihlLHQpe3ZhciBuPWUuJG9wdGlvbnMucHJvcHNEYXRhfHx7fSxyPWUuX3Byb3BzPXt9LGk9ZS4kb3B0aW9ucy5fcHJvcEtleXM9W10sYT0hZS4kcGFyZW50O2F8fFBlKCExKTt2YXIgbz1mdW5jdGlvbihhKXtpLnB1c2goYSk7dmFyIG89QmUoYSx0LG4sZSk7VGUocixhLG8pLGEgaW4gZXx8dW4oZSwiX3Byb3BzIixhKX07Zm9yKHZhciBjIGluIHQpbyhjKTtQZSghMCl9ZnVuY3Rpb24gbW4oZSl7dmFyIHQ9ZS4kb3B0aW9ucy5kYXRhO3Q9ZS5fZGF0YT0iZnVuY3Rpb24iPT09dHlwZW9mIHQ/Zm4odCxlKTp0fHx7fSxsKHQpfHwodD17fSk7dmFyIG49T2JqZWN0LmtleXModCkscj1lLiRvcHRpb25zLnByb3BzLGk9KGUuJG9wdGlvbnMubWV0aG9kcyxuLmxlbmd0aCk7d2hpbGUoaS0tKXt2YXIgYT1uW2ldOzAsciYmZyhyLGEpfHxVKGEpfHx1bihlLCJfZGF0YSIsYSl9RWUodCwhMCl9ZnVuY3Rpb24gZm4oZSx0KXttZSgpO3RyeXtyZXR1cm4gZS5jYWxsKHQsdCl9Y2F0Y2gob28pe3JldHVybiBaZShvbyx0LCJkYXRhKCkiKSx7fX1maW5hbGx5e2ZlKCl9fXZhciBobj17bGF6eTohMH07ZnVuY3Rpb24gdm4oZSx0KXt2YXIgbj1lLl9jb21wdXRlZFdhdGNoZXJzPU9iamVjdC5jcmVhdGUobnVsbCkscj1hZSgpO2Zvcih2YXIgaSBpbiB0KXt2YXIgYT10W2ldLG89ImZ1bmN0aW9uIj09PXR5cGVvZiBhP2E6YS5nZXQ7MCxyfHwobltpXT1uZXcgcG4oZSxvfHxELEQsaG4pKSxpIGluIGV8fHluKGUsaSxhKX19ZnVuY3Rpb24geW4oZSx0LG4pe3ZhciByPSFhZSgpOyJmdW5jdGlvbiI9PT10eXBlb2Ygbj8obG4uZ2V0PXI/Z24odCk6d24obiksbG4uc2V0PUQpOihsbi5nZXQ9bi5nZXQ/ciYmITEhPT1uLmNhY2hlP2duKHQpOnduKG4uZ2V0KTpELGxuLnNldD1uLnNldHx8RCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCxsbil9ZnVuY3Rpb24gZ24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fY29tcHV0ZWRXYXRjaGVycyYmdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1tlXTtpZih0KXJldHVybiB0LmRpcnR5JiZ0LmV2YWx1YXRlKCksZGUudGFyZ2V0JiZ0LmRlcGVuZCgpLHQudmFsdWV9fWZ1bmN0aW9uIHduKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlLmNhbGwodGhpcyx0aGlzKX19ZnVuY3Rpb24gYm4oZSx0KXtlLiRvcHRpb25zLnByb3BzO2Zvcih2YXIgbiBpbiB0KWVbbl09ImZ1bmN0aW9uIiE9PXR5cGVvZiB0W25dP0Q6Tyh0W25dLGUpfWZ1bmN0aW9uIGtuKGUsdCl7Zm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl4bihlLG4scltpXSk7ZWxzZSB4bihlLG4scil9fWZ1bmN0aW9uIHhuKGUsdCxuLHIpe3JldHVybiBsKG4pJiYocj1uLG49bi5oYW5kbGVyKSwic3RyaW5nIj09PXR5cGVvZiBuJiYobj1lW25dKSxlLiR3YXRjaCh0LG4scil9ZnVuY3Rpb24gQ24oZSl7dmFyIHQ9e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kYXRhfX0sbj17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Byb3BzfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkZGF0YSIsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkcHJvcHMiLG4pLGUucHJvdG90eXBlLiRzZXQ9RGUsZS5wcm90b3R5cGUuJGRlbGV0ZT16ZSxlLnByb3RvdHlwZS4kd2F0Y2g9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXM7aWYobCh0KSlyZXR1cm4geG4ocixlLHQsbik7bj1ufHx7fSxuLnVzZXI9ITA7dmFyIGk9bmV3IHBuKHIsZSx0LG4pO2lmKG4uaW1tZWRpYXRlKXRyeXt0LmNhbGwocixpLnZhbHVlKX1jYXRjaChhKXtaZShhLHIsJ2NhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciAiJytpLmV4cHJlc3Npb24rJyInKX1yZXR1cm4gZnVuY3Rpb24oKXtpLnRlYXJkb3duKCl9fX1mdW5jdGlvbiBTbihlKXt2YXIgdD1lLiRvcHRpb25zLnByb3ZpZGU7dCYmKGUuX3Byb3ZpZGVkPSJmdW5jdGlvbiI9PT10eXBlb2YgdD90LmNhbGwoZSk6dCl9ZnVuY3Rpb24gUG4oZSl7dmFyIHQ9am4oZS4kb3B0aW9ucy5pbmplY3QsZSk7dCYmKFBlKCExKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihuKXtUZShlLG4sdFtuXSl9KSksUGUoITApKX1mdW5jdGlvbiBqbihlLHQpe2lmKGUpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9cGU/UmVmbGVjdC5vd25LZXlzKGUpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KS5lbnVtZXJhYmxlfSkpOk9iamVjdC5rZXlzKGUpLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9cltpXSxvPWVbYV0uZnJvbSxjPXQ7d2hpbGUoYyl7aWYoYy5fcHJvdmlkZWQmJmcoYy5fcHJvdmlkZWQsbykpe25bYV09Yy5fcHJvdmlkZWRbb107YnJlYWt9Yz1jLiRwYXJlbnR9aWYoIWMpaWYoImRlZmF1bHQiaW4gZVthXSl7dmFyIHM9ZVthXS5kZWZhdWx0O25bYV09ImZ1bmN0aW9uIj09PXR5cGVvZiBzP3MuY2FsbCh0KTpzfWVsc2UgMH1yZXR1cm4gbn19ZnVuY3Rpb24gT24oZSx0KXt2YXIgbixyLGEsbyxjO2lmKEFycmF5LmlzQXJyYXkoZSl8fCJzdHJpbmciPT09dHlwZW9mIGUpZm9yKG49bmV3IEFycmF5KGUubGVuZ3RoKSxyPTAsYT1lLmxlbmd0aDtyPGE7cisrKW5bcl09dChlW3JdLHIpO2Vsc2UgaWYoIm51bWJlciI9PT10eXBlb2YgZSlmb3Iobj1uZXcgQXJyYXkoZSkscj0wO3I8ZTtyKyspbltyXT10KHIrMSxyKTtlbHNlIGlmKHMoZSkpZm9yKG89T2JqZWN0LmtleXMoZSksbj1uZXcgQXJyYXkoby5sZW5ndGgpLHI9MCxhPW8ubGVuZ3RoO3I8YTtyKyspYz1vW3JdLG5bcl09dChlW2NdLGMscik7cmV0dXJuIGkobil8fChuPVtdKSxuLl9pc1ZMaXN0PSEwLG59ZnVuY3Rpb24gQW4oZSx0LG4scil7dmFyIGksYT10aGlzLiRzY29wZWRTbG90c1tlXTthPyhuPW58fHt9LHImJihuPUUoRSh7fSxyKSxuKSksaT1hKG4pfHx0KTppPXRoaXMuJHNsb3RzW2VdfHx0O3ZhciBvPW4mJm4uc2xvdDtyZXR1cm4gbz90aGlzLiRjcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIse3Nsb3Q6b30saSk6aX1mdW5jdGlvbiBFbihlKXtyZXR1cm4gS2UodGhpcy4kb3B0aW9ucywiZmlsdGVycyIsZSwhMCl8fE19ZnVuY3Rpb24gVG4oZSx0KXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT8tMT09PWUuaW5kZXhPZih0KTplIT09dH1mdW5jdGlvbiBEbihlLHQsbixyLGkpe3ZhciBhPVYua2V5Q29kZXNbdF18fG47cmV0dXJuIGkmJnImJiFWLmtleUNvZGVzW3RdP1RuKGkscik6YT9UbihhLGUpOnI/UyhyKSE9PXQ6dm9pZCAwfWZ1bmN0aW9uIHpuKGUsdCxuLHIsaSl7aWYobilpZihzKG4pKXt2YXIgYTtBcnJheS5pc0FycmF5KG4pJiYobj1UKG4pKTt2YXIgbz1mdW5jdGlvbihvKXtpZigiY2xhc3MiPT09b3x8InN0eWxlIj09PW98fGgobykpYT1lO2Vsc2V7dmFyIGM9ZS5hdHRycyYmZS5hdHRycy50eXBlO2E9cnx8Vi5tdXN0VXNlUHJvcCh0LGMsbyk/ZS5kb21Qcm9wc3x8KGUuZG9tUHJvcHM9e30pOmUuYXR0cnN8fChlLmF0dHJzPXt9KX12YXIgcz1rKG8pO2lmKCEobyBpbiBhKSYmIShzIGluIGEpJiYoYVtvXT1uW29dLGkpKXt2YXIgcD1lLm9ufHwoZS5vbj17fSk7cFsidXBkYXRlOiIrc109ZnVuY3Rpb24oZSl7bltvXT1lfX19O2Zvcih2YXIgYyBpbiBuKW8oYyl9ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBNbihlLHQpe3ZhciBuPXRoaXMuX3N0YXRpY1RyZWVzfHwodGhpcy5fc3RhdGljVHJlZXM9W10pLHI9bltlXTtyZXR1cm4gciYmIXQ/cjoocj1uW2VdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2VdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSxObihyLCJfX3N0YXRpY19fIitlLCExKSxyKX1mdW5jdGlvbiAkbihlLHQsbil7cmV0dXJuIE5uKGUsIl9fb25jZV9fIit0KyhuPyJfIituOiIiKSwhMCksZX1mdW5jdGlvbiBObihlLHQsbil7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyllW3JdJiYic3RyaW5nIiE9PXR5cGVvZiBlW3JdJiZJbihlW3JdLHQrIl8iK3Isbik7ZWxzZSBJbihlLHQsbil9ZnVuY3Rpb24gSW4oZSx0LG4pe2UuaXNTdGF0aWM9ITAsZS5rZXk9dCxlLmlzT25jZT1ufWZ1bmN0aW9uIEZuKGUsdCl7aWYodClpZihsKHQpKXt2YXIgbj1lLm9uPWUub24/RSh7fSxlLm9uKTp7fTtmb3IodmFyIHIgaW4gdCl7dmFyIGk9bltyXSxhPXRbcl07bltyXT1pP1tdLmNvbmNhdChpLGEpOmF9fWVsc2U7cmV0dXJuIGV9ZnVuY3Rpb24gTG4oZSl7ZS5fbz0kbixlLl9uPW0sZS5fcz1fLGUuX2w9T24sZS5fdD1BbixlLl9xPSQsZS5faT1OLGUuX209TW4sZS5fZj1FbixlLl9rPURuLGUuX2I9em4sZS5fdj1nZSxlLl9lPXllLGUuX3U9RnQsZS5fZz1Gbn1mdW5jdGlvbiBSbihlLHQscixpLG8pe3ZhciBjLHM9by5vcHRpb25zO2coaSwiX3VpZCIpPyhjPU9iamVjdC5jcmVhdGUoaSksYy5fb3JpZ2luYWw9aSk6KGM9aSxpPWkuX29yaWdpbmFsKTt2YXIgcD1hKHMuX2NvbXBpbGVkKSxsPSFwO3RoaXMuZGF0YT1lLHRoaXMucHJvcHM9dCx0aGlzLmNoaWxkcmVuPXIsdGhpcy5wYXJlbnQ9aSx0aGlzLmxpc3RlbmVycz1lLm9ufHxuLHRoaXMuaW5qZWN0aW9ucz1qbihzLmluamVjdCxpKSx0aGlzLnNsb3RzPWZ1bmN0aW9uKCl7cmV0dXJuIE50KHIsaSl9LHAmJih0aGlzLiRvcHRpb25zPXMsdGhpcy4kc2xvdHM9dGhpcy5zbG90cygpLHRoaXMuJHNjb3BlZFNsb3RzPWUuc2NvcGVkU2xvdHN8fG4pLHMuX3Njb3BlSWQ/dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXt2YXIgYT1RbihjLGUsdCxuLHIsbCk7cmV0dXJuIGEmJiFBcnJheS5pc0FycmF5KGEpJiYoYS5mblNjb3BlSWQ9cy5fc2NvcGVJZCxhLmZuQ29udGV4dD1pKSxhfTp0aGlzLl9jPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBRbihjLGUsdCxuLHIsbCl9fWZ1bmN0aW9uIFZuKGUsdCxyLGEsbyl7dmFyIGM9ZS5vcHRpb25zLHM9e30scD1jLnByb3BzO2lmKGkocCkpZm9yKHZhciBsIGluIHApc1tsXT1CZShsLHAsdHx8bik7ZWxzZSBpKHIuYXR0cnMpJiZIbihzLHIuYXR0cnMpLGkoci5wcm9wcykmJkhuKHMsci5wcm9wcyk7dmFyIHU9bmV3IFJuKHIscyxvLGEsZSksZD1jLnJlbmRlci5jYWxsKG51bGwsdS5fYyx1KTtpZihkIGluc3RhbmNlb2YgaGUpcmV0dXJuIFVuKGQscix1LnBhcmVudCxjLHUpO2lmKEFycmF5LmlzQXJyYXkoZCkpe2Zvcih2YXIgXz1rdChkKXx8W10sbT1uZXcgQXJyYXkoXy5sZW5ndGgpLGY9MDtmPF8ubGVuZ3RoO2YrKyltW2ZdPVVuKF9bZl0scix1LnBhcmVudCxjLHUpO3JldHVybiBtfX1mdW5jdGlvbiBVbihlLHQsbixyLGkpe3ZhciBhPXdlKGUpO3JldHVybiBhLmZuQ29udGV4dD1uLGEuZm5PcHRpb25zPXIsdC5zbG90JiYoKGEuZGF0YXx8KGEuZGF0YT17fSkpLnNsb3Q9dC5zbG90KSxhfWZ1bmN0aW9uIEhuKGUsdCl7Zm9yKHZhciBuIGluIHQpZVtrKG4pXT10W25dfUxuKFJuLnByb3RvdHlwZSk7dmFyIEduPXtpbml0OmZ1bmN0aW9uKGUsdCl7aWYoZS5jb21wb25lbnRJbnN0YW5jZSYmIWUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkJiZlLmRhdGEua2VlcEFsaXZlKXt2YXIgbj1lO0duLnByZXBhdGNoKG4sbil9ZWxzZXt2YXIgcj1lLmNvbXBvbmVudEluc3RhbmNlPXFuKGUsTHQpO3IuJG1vdW50KHQ/ZS5lbG06dm9pZCAwLHQpfX0scHJlcGF0Y2g6ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmNvbXBvbmVudE9wdGlvbnMscj10LmNvbXBvbmVudEluc3RhbmNlPWUuY29tcG9uZW50SW5zdGFuY2U7R3QocixuLnByb3BzRGF0YSxuLmxpc3RlbmVycyx0LG4uY2hpbGRyZW4pfSxpbnNlcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb250ZXh0LG49ZS5jb21wb25lbnRJbnN0YW5jZTtuLl9pc01vdW50ZWR8fChuLl9pc01vdW50ZWQ9ITAsSnQobiwibW91bnRlZCIpKSxlLmRhdGEua2VlcEFsaXZlJiYodC5faXNNb3VudGVkP2FuKG4pOkJ0KG4sITApKX0sZGVzdHJveTpmdW5jdGlvbihlKXt2YXIgdD1lLmNvbXBvbmVudEluc3RhbmNlO3QuX2lzRGVzdHJveWVkfHwoZS5kYXRhLmtlZXBBbGl2ZT9xdCh0LCEwKTp0LiRkZXN0cm95KCkpfX0sS249T2JqZWN0LmtleXMoR24pO2Z1bmN0aW9uIEJuKGUsdCxuLG8sYyl7aWYoIXIoZSkpe3ZhciBwPW4uJG9wdGlvbnMuX2Jhc2U7aWYocyhlKSYmKGU9cC5leHRlbmQoZSkpLCJmdW5jdGlvbiI9PT10eXBlb2YgZSl7dmFyIGw7aWYocihlLmNpZCkmJihsPWUsZT1qdChsLHAsbiksdm9pZCAwPT09ZSkpcmV0dXJuIFB0KGwsdCxuLG8sYyk7dD10fHx7fSxzcihlKSxpKHQubW9kZWwpJiZYbihlLm9wdGlvbnMsdCk7dmFyIHU9Z3QodCxlLGMpO2lmKGEoZS5vcHRpb25zLmZ1bmN0aW9uYWwpKXJldHVybiBWbihlLHUsdCxuLG8pO3ZhciBkPXQub247aWYodC5vbj10Lm5hdGl2ZU9uLGEoZS5vcHRpb25zLmFic3RyYWN0KSl7dmFyIF89dC5zbG90O3Q9e30sXyYmKHQuc2xvdD1fKX1Kbih0KTt2YXIgbT1lLm9wdGlvbnMubmFtZXx8YyxmPW5ldyBoZSgidnVlLWNvbXBvbmVudC0iK2UuY2lkKyhtPyItIittOiIiKSx0LHZvaWQgMCx2b2lkIDAsdm9pZCAwLG4se0N0b3I6ZSxwcm9wc0RhdGE6dSxsaXN0ZW5lcnM6ZCx0YWc6YyxjaGlsZHJlbjpvfSxsKTtyZXR1cm4gZn19fWZ1bmN0aW9uIHFuKGUsdCl7dmFyIG49e19pc0NvbXBvbmVudDohMCxfcGFyZW50Vm5vZGU6ZSxwYXJlbnQ6dH0scj1lLmRhdGEuaW5saW5lVGVtcGxhdGU7cmV0dXJuIGkocikmJihuLnJlbmRlcj1yLnJlbmRlcixuLnN0YXRpY1JlbmRlckZucz1yLnN0YXRpY1JlbmRlckZucyksbmV3IGUuY29tcG9uZW50T3B0aW9ucy5DdG9yKG4pfWZ1bmN0aW9uIEpuKGUpe2Zvcih2YXIgdD1lLmhvb2t8fChlLmhvb2s9e30pLG49MDtuPEtuLmxlbmd0aDtuKyspe3ZhciByPUtuW25dLGk9dFtyXSxhPUduW3JdO2k9PT1hfHxpJiZpLl9tZXJnZWR8fCh0W3JdPWk/V24oYSxpKTphKX19ZnVuY3Rpb24gV24oZSx0KXt2YXIgbj1mdW5jdGlvbihuLHIpe2UobixyKSx0KG4scil9O3JldHVybiBuLl9tZXJnZWQ9ITAsbn1mdW5jdGlvbiBYbihlLHQpe3ZhciBuPWUubW9kZWwmJmUubW9kZWwucHJvcHx8InZhbHVlIixyPWUubW9kZWwmJmUubW9kZWwuZXZlbnR8fCJpbnB1dCI7KHQucHJvcHN8fCh0LnByb3BzPXt9KSlbbl09dC5tb2RlbC52YWx1ZTt2YXIgYT10Lm9ufHwodC5vbj17fSksbz1hW3JdLGM9dC5tb2RlbC5jYWxsYmFjaztpKG8pPyhBcnJheS5pc0FycmF5KG8pPy0xPT09by5pbmRleE9mKGMpOm8hPT1jKSYmKGFbcl09W2NdLmNvbmNhdChvKSk6YVtyXT1jfXZhciBabj0xLFluPTI7ZnVuY3Rpb24gUW4oZSx0LG4scixpLG8pe3JldHVybihBcnJheS5pc0FycmF5KG4pfHxjKG4pKSYmKGk9cixyPW4sbj12b2lkIDApLGEobykmJihpPVluKSxlcihlLHQsbixyLGkpfWZ1bmN0aW9uIGVyKGUsdCxuLHIsYSl7aWYoaShuKSYmaShuLl9fb2JfXykpcmV0dXJuIHllKCk7aWYoaShuKSYmaShuLmlzKSYmKHQ9bi5pcyksIXQpcmV0dXJuIHllKCk7dmFyIG8sYyxzOyhBcnJheS5pc0FycmF5KHIpJiYiZnVuY3Rpb24iPT09dHlwZW9mIHJbMF0mJihuPW58fHt9LG4uc2NvcGVkU2xvdHM9e2RlZmF1bHQ6clswXX0sci5sZW5ndGg9MCksYT09PVluP3I9a3Qocik6YT09PVpuJiYocj1idChyKSksInN0cmluZyI9PT10eXBlb2YgdCk/KGM9ZS4kdm5vZGUmJmUuJHZub2RlLm5zfHxWLmdldFRhZ05hbWVzcGFjZSh0KSxvPVYuaXNSZXNlcnZlZFRhZyh0KT9uZXcgaGUoVi5wYXJzZVBsYXRmb3JtVGFnTmFtZSh0KSxuLHIsdm9pZCAwLHZvaWQgMCxlKTpuJiZuLnByZXx8IWkocz1LZShlLiRvcHRpb25zLCJjb21wb25lbnRzIix0KSk/bmV3IGhlKHQsbixyLHZvaWQgMCx2b2lkIDAsZSk6Qm4ocyxuLGUscix0KSk6bz1Cbih0LG4sZSxyKTtyZXR1cm4gQXJyYXkuaXNBcnJheShvKT9vOmkobyk/KGkoYykmJnRyKG8sYyksaShuKSYmbnIobiksbyk6eWUoKX1mdW5jdGlvbiB0cihlLHQsbil7aWYoZS5ucz10LCJmb3JlaWduT2JqZWN0Ij09PWUudGFnJiYodD12b2lkIDAsbj0hMCksaShlLmNoaWxkcmVuKSlmb3IodmFyIG89MCxjPWUuY2hpbGRyZW4ubGVuZ3RoO288YztvKyspe3ZhciBzPWUuY2hpbGRyZW5bb107aShzLnRhZykmJihyKHMubnMpfHxhKG4pJiYic3ZnIiE9PXMudGFnKSYmdHIocyx0LG4pfX1mdW5jdGlvbiBucihlKXtzKGUuc3R5bGUpJiZkdChlLnN0eWxlKSxzKGUuY2xhc3MpJiZkdChlLmNsYXNzKX1mdW5jdGlvbiBycihlKXtlLl92bm9kZT1udWxsLGUuX3N0YXRpY1RyZWVzPW51bGw7dmFyIHQ9ZS4kb3B0aW9ucyxyPWUuJHZub2RlPXQuX3BhcmVudFZub2RlLGk9ciYmci5jb250ZXh0O2UuJHNsb3RzPU50KHQuX3JlbmRlckNoaWxkcmVuLGkpLGUuJHNjb3BlZFNsb3RzPW4sZS5fYz1mdW5jdGlvbih0LG4scixpKXtyZXR1cm4gUW4oZSx0LG4scixpLCExKX0sZS4kY3JlYXRlRWxlbWVudD1mdW5jdGlvbih0LG4scixpKXtyZXR1cm4gUW4oZSx0LG4scixpLCEwKX07dmFyIGE9ciYmci5kYXRhO1RlKGUsIiRhdHRycyIsYSYmYS5hdHRyc3x8bixudWxsLCEwKSxUZShlLCIkbGlzdGVuZXJzIix0Ll9wYXJlbnRMaXN0ZW5lcnN8fG4sbnVsbCwhMCl9ZnVuY3Rpb24gaXIoZSl7TG4oZS5wcm90b3R5cGUpLGUucHJvdG90eXBlLiRuZXh0VGljaz1mdW5jdGlvbihlKXtyZXR1cm4gbHQoZSx0aGlzKX0sZS5wcm90b3R5cGUuX3JlbmRlcj1mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcyxyPXQuJG9wdGlvbnMsaT1yLnJlbmRlcixhPXIuX3BhcmVudFZub2RlO2EmJih0LiRzY29wZWRTbG90cz1hLmRhdGEuc2NvcGVkU2xvdHN8fG4pLHQuJHZub2RlPWE7dHJ5e2U9aS5jYWxsKHQuX3JlbmRlclByb3h5LHQuJGNyZWF0ZUVsZW1lbnQpfWNhdGNoKG9vKXtaZShvbyx0LCJyZW5kZXIiKSxlPXQuX3Zub2RlfXJldHVybiBlIGluc3RhbmNlb2YgaGV8fChlPXllKCkpLGUucGFyZW50PWEsZX19dmFyIGFyPTA7ZnVuY3Rpb24gb3IoZSl7ZS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpczt0Ll91aWQ9YXIrKyx0Ll9pc1Z1ZT0hMCxlJiZlLl9pc0NvbXBvbmVudD9jcih0LGUpOnQuJG9wdGlvbnM9R2Uoc3IodC5jb25zdHJ1Y3RvciksZXx8e30sdCksdC5fcmVuZGVyUHJveHk9dCx0Ll9zZWxmPXQsVnQodCksRXQodCkscnIodCksSnQodCwiYmVmb3JlQ3JlYXRlIiksUG4odCksZG4odCksU24odCksSnQodCwiY3JlYXRlZCIpLHQuJG9wdGlvbnMuZWwmJnQuJG1vdW50KHQuJG9wdGlvbnMuZWwpfX1mdW5jdGlvbiBjcihlLHQpe3ZhciBuPWUuJG9wdGlvbnM9T2JqZWN0LmNyZWF0ZShlLmNvbnN0cnVjdG9yLm9wdGlvbnMpLHI9dC5fcGFyZW50Vm5vZGU7bi5wYXJlbnQ9dC5wYXJlbnQsbi5fcGFyZW50Vm5vZGU9cjt2YXIgaT1yLmNvbXBvbmVudE9wdGlvbnM7bi5wcm9wc0RhdGE9aS5wcm9wc0RhdGEsbi5fcGFyZW50TGlzdGVuZXJzPWkubGlzdGVuZXJzLG4uX3JlbmRlckNoaWxkcmVuPWkuY2hpbGRyZW4sbi5fY29tcG9uZW50VGFnPWkudGFnLHQucmVuZGVyJiYobi5yZW5kZXI9dC5yZW5kZXIsbi5zdGF0aWNSZW5kZXJGbnM9dC5zdGF0aWNSZW5kZXJGbnMpfWZ1bmN0aW9uIHNyKGUpe3ZhciB0PWUub3B0aW9ucztpZihlLnN1cGVyKXt2YXIgbj1zcihlLnN1cGVyKSxyPWUuc3VwZXJPcHRpb25zO2lmKG4hPT1yKXtlLnN1cGVyT3B0aW9ucz1uO3ZhciBpPXByKGUpO2kmJkUoZS5leHRlbmRPcHRpb25zLGkpLHQ9ZS5vcHRpb25zPUdlKG4sZS5leHRlbmRPcHRpb25zKSx0Lm5hbWUmJih0LmNvbXBvbmVudHNbdC5uYW1lXT1lKX19cmV0dXJuIHR9ZnVuY3Rpb24gcHIoZSl7dmFyIHQsbj1lLm9wdGlvbnMscj1lLmV4dGVuZE9wdGlvbnMsaT1lLnNlYWxlZE9wdGlvbnM7Zm9yKHZhciBhIGluIG4pblthXSE9PWlbYV0mJih0fHwodD17fSksdFthXT1scihuW2FdLHJbYV0saVthXSkpO3JldHVybiB0fWZ1bmN0aW9uIGxyKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KGUpKXt2YXIgcj1bXTtuPUFycmF5LmlzQXJyYXkobik/bjpbbl0sdD1BcnJheS5pc0FycmF5KHQpP3Q6W3RdO2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKSh0LmluZGV4T2YoZVtpXSk+PTB8fG4uaW5kZXhPZihlW2ldKTwwKSYmci5wdXNoKGVbaV0pO3JldHVybiByfXJldHVybiBlfWZ1bmN0aW9uIHVyKGUpe3RoaXMuX2luaXQoZSl9ZnVuY3Rpb24gZHIoZSl7ZS51c2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faW5zdGFsbGVkUGx1Z2luc3x8KHRoaXMuX2luc3RhbGxlZFBsdWdpbnM9W10pO2lmKHQuaW5kZXhPZihlKT4tMSlyZXR1cm4gdGhpczt2YXIgbj1BKGFyZ3VtZW50cywxKTtyZXR1cm4gbi51bnNoaWZ0KHRoaXMpLCJmdW5jdGlvbiI9PT10eXBlb2YgZS5pbnN0YWxsP2UuaW5zdGFsbC5hcHBseShlLG4pOiJmdW5jdGlvbiI9PT10eXBlb2YgZSYmZS5hcHBseShudWxsLG4pLHQucHVzaChlKSx0aGlzfX1mdW5jdGlvbiBfcihlKXtlLm1peGluPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLm9wdGlvbnM9R2UodGhpcy5vcHRpb25zLGUpLHRoaXN9fWZ1bmN0aW9uIG1yKGUpe2UuY2lkPTA7dmFyIHQ9MTtlLmV4dGVuZD1mdW5jdGlvbihlKXtlPWV8fHt9O3ZhciBuPXRoaXMscj1uLmNpZCxpPWUuX0N0b3J8fChlLl9DdG9yPXt9KTtpZihpW3JdKXJldHVybiBpW3JdO3ZhciBhPWUubmFtZXx8bi5vcHRpb25zLm5hbWU7dmFyIG89ZnVuY3Rpb24oZSl7dGhpcy5faW5pdChlKX07cmV0dXJuIG8ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLG8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW8sby5jaWQ9dCsrLG8ub3B0aW9ucz1HZShuLm9wdGlvbnMsZSksb1sic3VwZXIiXT1uLG8ub3B0aW9ucy5wcm9wcyYmZnIobyksby5vcHRpb25zLmNvbXB1dGVkJiZocihvKSxvLmV4dGVuZD1uLmV4dGVuZCxvLm1peGluPW4ubWl4aW4sby51c2U9bi51c2UsTC5mb3JFYWNoKChmdW5jdGlvbihlKXtvW2VdPW5bZV19KSksYSYmKG8ub3B0aW9ucy5jb21wb25lbnRzW2FdPW8pLG8uc3VwZXJPcHRpb25zPW4ub3B0aW9ucyxvLmV4dGVuZE9wdGlvbnM9ZSxvLnNlYWxlZE9wdGlvbnM9RSh7fSxvLm9wdGlvbnMpLGlbcl09byxvfX1mdW5jdGlvbiBmcihlKXt2YXIgdD1lLm9wdGlvbnMucHJvcHM7Zm9yKHZhciBuIGluIHQpdW4oZS5wcm90b3R5cGUsIl9wcm9wcyIsbil9ZnVuY3Rpb24gaHIoZSl7dmFyIHQ9ZS5vcHRpb25zLmNvbXB1dGVkO2Zvcih2YXIgbiBpbiB0KXluKGUucHJvdG90eXBlLG4sdFtuXSl9ZnVuY3Rpb24gdnIoZSl7TC5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG4/KCJjb21wb25lbnQiPT09dCYmbChuKSYmKG4ubmFtZT1uLm5hbWV8fGUsbj10aGlzLm9wdGlvbnMuX2Jhc2UuZXh0ZW5kKG4pKSwiZGlyZWN0aXZlIj09PXQmJiJmdW5jdGlvbiI9PT10eXBlb2YgbiYmKG49e2JpbmQ6bix1cGRhdGU6bn0pLHRoaXMub3B0aW9uc1t0KyJzIl1bZV09bixuKTp0aGlzLm9wdGlvbnNbdCsicyJdW2VdfX0pKX1mdW5jdGlvbiB5cihlKXtyZXR1cm4gZSYmKGUuQ3Rvci5vcHRpb25zLm5hbWV8fGUudGFnKX1mdW5jdGlvbiBncihlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UuaW5kZXhPZih0KT4tMToic3RyaW5nIj09PXR5cGVvZiBlP2Uuc3BsaXQoIiwiKS5pbmRleE9mKHQpPi0xOiEhdShlKSYmZS50ZXN0KHQpfWZ1bmN0aW9uIHdyKGUsdCl7dmFyIG49ZS5jYWNoZSxyPWUua2V5cyxpPWUuX3Zub2RlO2Zvcih2YXIgYSBpbiBuKXt2YXIgbz1uW2FdO2lmKG8pe3ZhciBjPXlyKG8uY29tcG9uZW50T3B0aW9ucyk7YyYmIXQoYykmJmJyKG4sYSxyLGkpfX19ZnVuY3Rpb24gYnIoZSx0LG4scil7dmFyIGk9ZVt0XTshaXx8ciYmaS50YWc9PT1yLnRhZ3x8aS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpLGVbdF09bnVsbCx2KG4sdCl9b3IodXIpLENuKHVyKSwkdCh1ciksVXQodXIpLGlyKHVyKTt2YXIga3I9W1N0cmluZyxSZWdFeHAsQXJyYXldLHhyPXtuYW1lOiJrZWVwLWFsaXZlIixhYnN0cmFjdDohMCxwcm9wczp7aW5jbHVkZTprcixleGNsdWRlOmtyLG1heDpbU3RyaW5nLE51bWJlcl19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNhY2hlPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5rZXlzPVtdfSxkZXN0cm95ZWQ6ZnVuY3Rpb24oKXtmb3IodmFyIGUgaW4gdGhpcy5jYWNoZSlicih0aGlzLmNhY2hlLGUsdGhpcy5rZXlzKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy4kd2F0Y2goImluY2x1ZGUiLChmdW5jdGlvbih0KXt3cihlLChmdW5jdGlvbihlKXtyZXR1cm4gZ3IodCxlKX0pKX0pKSx0aGlzLiR3YXRjaCgiZXhjbHVkZSIsKGZ1bmN0aW9uKHQpe3dyKGUsKGZ1bmN0aW9uKGUpe3JldHVybiFncih0LGUpfSkpfSkpfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLiRzbG90cy5kZWZhdWx0LHQ9QXQoZSksbj10JiZ0LmNvbXBvbmVudE9wdGlvbnM7aWYobil7dmFyIHI9eXIobiksaT10aGlzLGE9aS5pbmNsdWRlLG89aS5leGNsdWRlO2lmKGEmJighcnx8IWdyKGEscikpfHxvJiZyJiZncihvLHIpKXJldHVybiB0O3ZhciBjPXRoaXMscz1jLmNhY2hlLHA9Yy5rZXlzLGw9bnVsbD09dC5rZXk/bi5DdG9yLmNpZCsobi50YWc/Ijo6IituLnRhZzoiIik6dC5rZXk7c1tsXT8odC5jb21wb25lbnRJbnN0YW5jZT1zW2xdLmNvbXBvbmVudEluc3RhbmNlLHYocCxsKSxwLnB1c2gobCkpOihzW2xdPXQscC5wdXNoKGwpLHRoaXMubWF4JiZwLmxlbmd0aD5wYXJzZUludCh0aGlzLm1heCkmJmJyKHMscFswXSxwLHRoaXMuX3Zub2RlKSksdC5kYXRhLmtlZXBBbGl2ZT0hMH1yZXR1cm4gdHx8ZSYmZVswXX19LENyPXtLZWVwQWxpdmU6eHJ9O2Z1bmN0aW9uIFNyKGUpe3ZhciB0PXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVn19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjb25maWciLHQpLGUudXRpbD17d2FybjpsZSxleHRlbmQ6RSxtZXJnZU9wdGlvbnM6R2UsZGVmaW5lUmVhY3RpdmU6VGV9LGUuc2V0PURlLGUuZGVsZXRlPXplLGUubmV4dFRpY2s9bHQsZS5vcHRpb25zPU9iamVjdC5jcmVhdGUobnVsbCksTC5mb3JFYWNoKChmdW5jdGlvbih0KXtlLm9wdGlvbnNbdCsicyJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSksZS5vcHRpb25zLl9iYXNlPWUsRShlLm9wdGlvbnMuY29tcG9uZW50cyxDciksZHIoZSksX3IoZSksbXIoZSksdnIoZSl9U3IodXIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1ci5wcm90b3R5cGUsIiRpc1NlcnZlciIse2dldDphZX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1ci5wcm90b3R5cGUsIiRzc3JDb250ZXh0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHZub2RlJiZ0aGlzLiR2bm9kZS5zc3JDb250ZXh0fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1ciwiRnVuY3Rpb25hbFJlbmRlckNvbnRleHQiLHt2YWx1ZTpSbn0pLHVyLnZlcnNpb249IjIuNS4yMSI7dmFyIFByPWYoInN0eWxlLGNsYXNzIiksanI9ZigiaW5wdXQsdGV4dGFyZWEsb3B0aW9uLHNlbGVjdCxwcm9ncmVzcyIpLE9yPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4idmFsdWUiPT09biYmanIoZSkmJiJidXR0b24iIT09dHx8InNlbGVjdGVkIj09PW4mJiJvcHRpb24iPT09ZXx8ImNoZWNrZWQiPT09biYmImlucHV0Ij09PWV8fCJtdXRlZCI9PT1uJiYidmlkZW8iPT09ZX0sQXI9ZigiY29udGVudGVkaXRhYmxlLGRyYWdnYWJsZSxzcGVsbGNoZWNrIiksRXI9ZigiYWxsb3dmdWxsc2NyZWVuLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjaGVja2VkLGNvbXBhY3QsY29udHJvbHMsZGVjbGFyZSxkZWZhdWx0LGRlZmF1bHRjaGVja2VkLGRlZmF1bHRtdXRlZCxkZWZhdWx0c2VsZWN0ZWQsZGVmZXIsZGlzYWJsZWQsZW5hYmxlZCxmb3Jtbm92YWxpZGF0ZSxoaWRkZW4saW5kZXRlcm1pbmF0ZSxpbmVydCxpc21hcCxpdGVtc2NvcGUsbG9vcCxtdWx0aXBsZSxtdXRlZCxub2hyZWYsbm9yZXNpemUsbm9zaGFkZSxub3ZhbGlkYXRlLG5vd3JhcCxvcGVuLHBhdXNlb25leGl0LHJlYWRvbmx5LHJlcXVpcmVkLHJldmVyc2VkLHNjb3BlZCxzZWFtbGVzcyxzZWxlY3RlZCxzb3J0YWJsZSx0cmFuc2xhdGUsdHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZSIpLFRyPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIixEcj1mdW5jdGlvbihlKXtyZXR1cm4iOiI9PT1lLmNoYXJBdCg1KSYmInhsaW5rIj09PWUuc2xpY2UoMCw1KX0senI9ZnVuY3Rpb24oZSl7cmV0dXJuIERyKGUpP2Uuc2xpY2UoNixlLmxlbmd0aCk6IiJ9LE1yPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHwhMT09PWV9O2Z1bmN0aW9uICRyKGUpe3ZhciB0PWUuZGF0YSxuPWUscj1lO3doaWxlKGkoci5jb21wb25lbnRJbnN0YW5jZSkpcj1yLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSxyJiZyLmRhdGEmJih0PU5yKHIuZGF0YSx0KSk7d2hpbGUoaShuPW4ucGFyZW50KSluJiZuLmRhdGEmJih0PU5yKHQsbi5kYXRhKSk7cmV0dXJuIElyKHQuc3RhdGljQ2xhc3MsdC5jbGFzcyl9ZnVuY3Rpb24gTnIoZSx0KXtyZXR1cm57c3RhdGljQ2xhc3M6RnIoZS5zdGF0aWNDbGFzcyx0LnN0YXRpY0NsYXNzKSxjbGFzczppKGUuY2xhc3MpP1tlLmNsYXNzLHQuY2xhc3NdOnQuY2xhc3N9fWZ1bmN0aW9uIElyKGUsdCl7cmV0dXJuIGkoZSl8fGkodCk/RnIoZSxMcih0KSk6IiJ9ZnVuY3Rpb24gRnIoZSx0KXtyZXR1cm4gZT90P2UrIiAiK3Q6ZTp0fHwiIn1mdW5jdGlvbiBMcihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9ScihlKTpzKGUpP1ZyKGUpOiJzdHJpbmciPT09dHlwZW9mIGU/ZToiIn1mdW5jdGlvbiBScihlKXtmb3IodmFyIHQsbj0iIixyPTAsYT1lLmxlbmd0aDtyPGE7cisrKWkodD1McihlW3JdKSkmJiIiIT09dCYmKG4mJihuKz0iICIpLG4rPXQpO3JldHVybiBufWZ1bmN0aW9uIFZyKGUpe3ZhciB0PSIiO2Zvcih2YXIgbiBpbiBlKWVbbl0mJih0JiYodCs9IiAiKSx0Kz1uKTtyZXR1cm4gdH12YXIgVXI9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwifSxIcj1mKCJodG1sLGJvZHksYmFzZSxoZWFkLGxpbmssbWV0YSxzdHlsZSx0aXRsZSxhZGRyZXNzLGFydGljbGUsYXNpZGUsZm9vdGVyLGhlYWRlcixoMSxoMixoMyxoNCxoNSxoNixoZ3JvdXAsbmF2LHNlY3Rpb24sZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsYSxiLGFiYnIsYmRpLGJkbyxicixjaXRlLGNvZGUsZGF0YSxkZm4sZW0saSxrYmQsbWFyayxxLHJwLHJ0LHJ0YyxydWJ5LHMsc2FtcCxzbWFsbCxzcGFuLHN0cm9uZyxzdWIsc3VwLHRpbWUsdSx2YXIsd2JyLGFyZWEsYXVkaW8sbWFwLHRyYWNrLHZpZGVvLGVtYmVkLG9iamVjdCxwYXJhbSxzb3VyY2UsY2FudmFzLHNjcmlwdCxub3NjcmlwdCxkZWwsaW5zLGNhcHRpb24sY29sLGNvbGdyb3VwLHRhYmxlLHRoZWFkLHRib2R5LHRkLHRoLHRyLGJ1dHRvbixkYXRhbGlzdCxmaWVsZHNldCxmb3JtLGlucHV0LGxhYmVsLGxlZ2VuZCxtZXRlcixvcHRncm91cCxvcHRpb24sb3V0cHV0LHByb2dyZXNzLHNlbGVjdCx0ZXh0YXJlYSxkZXRhaWxzLGRpYWxvZyxtZW51LG1lbnVpdGVtLHN1bW1hcnksY29udGVudCxlbGVtZW50LHNoYWRvdyx0ZW1wbGF0ZSxibG9ja3F1b3RlLGlmcmFtZSx0Zm9vdCIpLEdyPWYoInN2ZyxhbmltYXRlLGNpcmNsZSxjbGlwcGF0aCxjdXJzb3IsZGVmcyxkZXNjLGVsbGlwc2UsZmlsdGVyLGZvbnQtZmFjZSxmb3JlaWduT2JqZWN0LGcsZ2x5cGgsaW1hZ2UsbGluZSxtYXJrZXIsbWFzayxtaXNzaW5nLWdseXBoLHBhdGgscGF0dGVybixwb2x5Z29uLHBvbHlsaW5lLHJlY3Qsc3dpdGNoLHN5bWJvbCx0ZXh0LHRleHRwYXRoLHRzcGFuLHVzZSx2aWV3IiwhMCksS3I9ZnVuY3Rpb24oZSl7cmV0dXJuIEhyKGUpfHxHcihlKX07ZnVuY3Rpb24gQnIoZSl7cmV0dXJuIEdyKGUpPyJzdmciOiJtYXRoIj09PWU/Im1hdGgiOnZvaWQgMH12YXIgcXI9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBKcihlKXtpZighSilyZXR1cm4hMDtpZihLcihlKSlyZXR1cm4hMTtpZihlPWUudG9Mb3dlckNhc2UoKSxudWxsIT1xcltlXSlyZXR1cm4gcXJbZV07dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gZS5pbmRleE9mKCItIik+LTE/cXJbZV09dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MVW5rbm93bkVsZW1lbnR8fHQuY29uc3RydWN0b3I9PT13aW5kb3cuSFRNTEVsZW1lbnQ6cXJbZV09L0hUTUxVbmtub3duRWxlbWVudC8udGVzdCh0LnRvU3RyaW5nKCkpfXZhciBXcj1mKCJ0ZXh0LG51bWJlcixwYXNzd29yZCxzZWFyY2gsZW1haWwsdGVsLHVybCIpO2Z1bmN0aW9uIFhyKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIHR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfXJldHVybiBlfWZ1bmN0aW9uIFpyKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4ic2VsZWN0IiE9PWU/bjoodC5kYXRhJiZ0LmRhdGEuYXR0cnMmJnZvaWQgMCE9PXQuZGF0YS5hdHRycy5tdWx0aXBsZSYmbi5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIiwibXVsdGlwbGUiKSxuKX1mdW5jdGlvbiBZcihlLHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoVXJbZV0sdCl9ZnVuY3Rpb24gUXIoZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpfWZ1bmN0aW9uIGVpKGUpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KGUpfWZ1bmN0aW9uIHRpKGUsdCxuKXtlLmluc2VydEJlZm9yZSh0LG4pfWZ1bmN0aW9uIG5pKGUsdCl7ZS5yZW1vdmVDaGlsZCh0KX1mdW5jdGlvbiByaShlLHQpe2UuYXBwZW5kQ2hpbGQodCl9ZnVuY3Rpb24gaWkoZSl7cmV0dXJuIGUucGFyZW50Tm9kZX1mdW5jdGlvbiBhaShlKXtyZXR1cm4gZS5uZXh0U2libGluZ31mdW5jdGlvbiBvaShlKXtyZXR1cm4gZS50YWdOYW1lfWZ1bmN0aW9uIGNpKGUsdCl7ZS50ZXh0Q29udGVudD10fWZ1bmN0aW9uIHNpKGUsdCl7ZS5zZXRBdHRyaWJ1dGUodCwiIil9dmFyIHBpPU9iamVjdC5mcmVlemUoe2NyZWF0ZUVsZW1lbnQ6WnIsY3JlYXRlRWxlbWVudE5TOllyLGNyZWF0ZVRleHROb2RlOlFyLGNyZWF0ZUNvbW1lbnQ6ZWksaW5zZXJ0QmVmb3JlOnRpLHJlbW92ZUNoaWxkOm5pLGFwcGVuZENoaWxkOnJpLHBhcmVudE5vZGU6aWksbmV4dFNpYmxpbmc6YWksdGFnTmFtZTpvaSxzZXRUZXh0Q29udGVudDpjaSxzZXRTdHlsZVNjb3BlOnNpfSksbGk9e2NyZWF0ZTpmdW5jdGlvbihlLHQpe3VpKHQpfSx1cGRhdGU6ZnVuY3Rpb24oZSx0KXtlLmRhdGEucmVmIT09dC5kYXRhLnJlZiYmKHVpKGUsITApLHVpKHQpKX0sZGVzdHJveTpmdW5jdGlvbihlKXt1aShlLCEwKX19O2Z1bmN0aW9uIHVpKGUsdCl7dmFyIG49ZS5kYXRhLnJlZjtpZihpKG4pKXt2YXIgcj1lLmNvbnRleHQsYT1lLmNvbXBvbmVudEluc3RhbmNlfHxlLmVsbSxvPXIuJHJlZnM7dD9BcnJheS5pc0FycmF5KG9bbl0pP3Yob1tuXSxhKTpvW25dPT09YSYmKG9bbl09dm9pZCAwKTplLmRhdGEucmVmSW5Gb3I/QXJyYXkuaXNBcnJheShvW25dKT9vW25dLmluZGV4T2YoYSk8MCYmb1tuXS5wdXNoKGEpOm9bbl09W2FdOm9bbl09YX19dmFyIGRpPW5ldyBoZSgiIix7fSxbXSksX2k9WyJjcmVhdGUiLCJhY3RpdmF0ZSIsInVwZGF0ZSIsInJlbW92ZSIsImRlc3Ryb3kiXTtmdW5jdGlvbiBtaShlLHQpe3JldHVybiBlLmtleT09PXQua2V5JiYoZS50YWc9PT10LnRhZyYmZS5pc0NvbW1lbnQ9PT10LmlzQ29tbWVudCYmaShlLmRhdGEpPT09aSh0LmRhdGEpJiZmaShlLHQpfHxhKGUuaXNBc3luY1BsYWNlaG9sZGVyKSYmZS5hc3luY0ZhY3Rvcnk9PT10LmFzeW5jRmFjdG9yeSYmcih0LmFzeW5jRmFjdG9yeS5lcnJvcikpfWZ1bmN0aW9uIGZpKGUsdCl7aWYoImlucHV0IiE9PWUudGFnKXJldHVybiEwO3ZhciBuLHI9aShuPWUuZGF0YSkmJmkobj1uLmF0dHJzKSYmbi50eXBlLGE9aShuPXQuZGF0YSkmJmkobj1uLmF0dHJzKSYmbi50eXBlO3JldHVybiByPT09YXx8V3IocikmJldyKGEpfWZ1bmN0aW9uIGhpKGUsdCxuKXt2YXIgcixhLG89e307Zm9yKHI9dDtyPD1uOysrcilhPWVbcl0ua2V5LGkoYSkmJihvW2FdPXIpO3JldHVybiBvfWZ1bmN0aW9uIHZpKGUpe3ZhciB0LG4sbz17fSxzPWUubW9kdWxlcyxwPWUubm9kZU9wcztmb3IodD0wO3Q8X2kubGVuZ3RoOysrdClmb3Iob1tfaVt0XV09W10sbj0wO248cy5sZW5ndGg7KytuKWkoc1tuXVtfaVt0XV0pJiZvW19pW3RdXS5wdXNoKHNbbl1bX2lbdF1dKTtmdW5jdGlvbiBsKGUpe3JldHVybiBuZXcgaGUocC50YWdOYW1lKGUpLnRvTG93ZXJDYXNlKCkse30sW10sdm9pZCAwLGUpfWZ1bmN0aW9uIHUoZSx0KXtmdW5jdGlvbiBuKCl7MD09PS0tbi5saXN0ZW5lcnMmJmQoZSl9cmV0dXJuIG4ubGlzdGVuZXJzPXQsbn1mdW5jdGlvbiBkKGUpe3ZhciB0PXAucGFyZW50Tm9kZShlKTtpKHQpJiZwLnJlbW92ZUNoaWxkKHQsZSl9ZnVuY3Rpb24gXyhlLHQsbixyLG8sYyxzKXtpZihpKGUuZWxtKSYmaShjKSYmKGU9Y1tzXT13ZShlKSksZS5pc1Jvb3RJbnNlcnQ9IW8sIW0oZSx0LG4scikpe3ZhciBsPWUuZGF0YSx1PWUuY2hpbGRyZW4sZD1lLnRhZztpKGQpPyhlLmVsbT1lLm5zP3AuY3JlYXRlRWxlbWVudE5TKGUubnMsZCk6cC5jcmVhdGVFbGVtZW50KGQsZSksayhlKSxnKGUsdSx0KSxpKGwpJiZiKGUsdCkseShuLGUuZWxtLHIpKTphKGUuaXNDb21tZW50KT8oZS5lbG09cC5jcmVhdGVDb21tZW50KGUudGV4dCkseShuLGUuZWxtLHIpKTooZS5lbG09cC5jcmVhdGVUZXh0Tm9kZShlLnRleHQpLHkobixlLmVsbSxyKSl9fWZ1bmN0aW9uIG0oZSx0LG4scil7dmFyIG89ZS5kYXRhO2lmKGkobykpe3ZhciBjPWkoZS5jb21wb25lbnRJbnN0YW5jZSkmJm8ua2VlcEFsaXZlO2lmKGkobz1vLmhvb2spJiZpKG89by5pbml0KSYmbyhlLCExKSxpKGUuY29tcG9uZW50SW5zdGFuY2UpKXJldHVybiBoKGUsdCkseShuLGUuZWxtLHIpLGEoYykmJnYoZSx0LG4sciksITB9fWZ1bmN0aW9uIGgoZSx0KXtpKGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKHQucHVzaC5hcHBseSh0LGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSxlLmRhdGEucGVuZGluZ0luc2VydD1udWxsKSxlLmVsbT1lLmNvbXBvbmVudEluc3RhbmNlLiRlbCx3KGUpPyhiKGUsdCksayhlKSk6KHVpKGUpLHQucHVzaChlKSl9ZnVuY3Rpb24gdihlLHQsbixyKXt2YXIgYSxjPWU7d2hpbGUoYy5jb21wb25lbnRJbnN0YW5jZSlpZihjPWMuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLGkoYT1jLmRhdGEpJiZpKGE9YS50cmFuc2l0aW9uKSl7Zm9yKGE9MDthPG8uYWN0aXZhdGUubGVuZ3RoOysrYSlvLmFjdGl2YXRlW2FdKGRpLGMpO3QucHVzaChjKTticmVha315KG4sZS5lbG0scil9ZnVuY3Rpb24geShlLHQsbil7aShlKSYmKGkobik/cC5wYXJlbnROb2RlKG4pPT09ZSYmcC5pbnNlcnRCZWZvcmUoZSx0LG4pOnAuYXBwZW5kQ2hpbGQoZSx0KSl9ZnVuY3Rpb24gZyhlLHQsbil7aWYoQXJyYXkuaXNBcnJheSh0KSl7MDtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilfKHRbcl0sbixlLmVsbSxudWxsLCEwLHQscil9ZWxzZSBjKGUudGV4dCkmJnAuYXBwZW5kQ2hpbGQoZS5lbG0scC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoZS50ZXh0KSkpfWZ1bmN0aW9uIHcoZSl7d2hpbGUoZS5jb21wb25lbnRJbnN0YW5jZSllPWUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBpKGUudGFnKX1mdW5jdGlvbiBiKGUsbil7Zm9yKHZhciByPTA7cjxvLmNyZWF0ZS5sZW5ndGg7KytyKW8uY3JlYXRlW3JdKGRpLGUpO3Q9ZS5kYXRhLmhvb2ssaSh0KSYmKGkodC5jcmVhdGUpJiZ0LmNyZWF0ZShkaSxlKSxpKHQuaW5zZXJ0KSYmbi5wdXNoKGUpKX1mdW5jdGlvbiBrKGUpe3ZhciB0O2lmKGkodD1lLmZuU2NvcGVJZCkpcC5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpO2Vsc2V7dmFyIG49ZTt3aGlsZShuKWkodD1uLmNvbnRleHQpJiZpKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnAuc2V0U3R5bGVTY29wZShlLmVsbSx0KSxuPW4ucGFyZW50fWkodD1MdCkmJnQhPT1lLmNvbnRleHQmJnQhPT1lLmZuQ29udGV4dCYmaSh0PXQuJG9wdGlvbnMuX3Njb3BlSWQpJiZwLnNldFN0eWxlU2NvcGUoZS5lbG0sdCl9ZnVuY3Rpb24geChlLHQsbixyLGksYSl7Zm9yKDtyPD1pOysrcilfKG5bcl0sYSxlLHQsITEsbixyKX1mdW5jdGlvbiBDKGUpe3ZhciB0LG4scj1lLmRhdGE7aWYoaShyKSlmb3IoaSh0PXIuaG9vaykmJmkodD10LmRlc3Ryb3kpJiZ0KGUpLHQ9MDt0PG8uZGVzdHJveS5sZW5ndGg7Kyt0KW8uZGVzdHJveVt0XShlKTtpZihpKHQ9ZS5jaGlsZHJlbikpZm9yKG49MDtuPGUuY2hpbGRyZW4ubGVuZ3RoOysrbilDKGUuY2hpbGRyZW5bbl0pfWZ1bmN0aW9uIFMoZSx0LG4scil7Zm9yKDtuPD1yOysrbil7dmFyIGE9dFtuXTtpKGEpJiYoaShhLnRhZyk/KFAoYSksQyhhKSk6ZChhLmVsbSkpfX1mdW5jdGlvbiBQKGUsdCl7aWYoaSh0KXx8aShlLmRhdGEpKXt2YXIgbixyPW8ucmVtb3ZlLmxlbmd0aCsxO2ZvcihpKHQpP3QubGlzdGVuZXJzKz1yOnQ9dShlLmVsbSxyKSxpKG49ZS5jb21wb25lbnRJbnN0YW5jZSkmJmkobj1uLl92bm9kZSkmJmkobi5kYXRhKSYmUChuLHQpLG49MDtuPG8ucmVtb3ZlLmxlbmd0aDsrK24pby5yZW1vdmVbbl0oZSx0KTtpKG49ZS5kYXRhLmhvb2spJiZpKG49bi5yZW1vdmUpP24oZSx0KTp0KCl9ZWxzZSBkKGUuZWxtKX1mdW5jdGlvbiBqKGUsdCxuLGEsbyl7dmFyIGMscyxsLHUsZD0wLG09MCxmPXQubGVuZ3RoLTEsaD10WzBdLHY9dFtmXSx5PW4ubGVuZ3RoLTEsZz1uWzBdLHc9blt5XSxiPSFvO3doaWxlKGQ8PWYmJm08PXkpcihoKT9oPXRbKytkXTpyKHYpP3Y9dFstLWZdOm1pKGgsZyk/KEEoaCxnLGEsbixtKSxoPXRbKytkXSxnPW5bKyttXSk6bWkodix3KT8oQSh2LHcsYSxuLHkpLHY9dFstLWZdLHc9blstLXldKTptaShoLHcpPyhBKGgsdyxhLG4seSksYiYmcC5pbnNlcnRCZWZvcmUoZSxoLmVsbSxwLm5leHRTaWJsaW5nKHYuZWxtKSksaD10WysrZF0sdz1uWy0teV0pOm1pKHYsZyk/KEEodixnLGEsbixtKSxiJiZwLmluc2VydEJlZm9yZShlLHYuZWxtLGguZWxtKSx2PXRbLS1mXSxnPW5bKyttXSk6KHIoYykmJihjPWhpKHQsZCxmKSkscz1pKGcua2V5KT9jW2cua2V5XTpPKGcsdCxkLGYpLHIocyk/XyhnLGEsZSxoLmVsbSwhMSxuLG0pOihsPXRbc10sbWkobCxnKT8oQShsLGcsYSxuLG0pLHRbc109dm9pZCAwLGImJnAuaW5zZXJ0QmVmb3JlKGUsbC5lbG0saC5lbG0pKTpfKGcsYSxlLGguZWxtLCExLG4sbSkpLGc9blsrK21dKTtkPmY/KHU9cihuW3krMV0pP251bGw6blt5KzFdLmVsbSx4KGUsdSxuLG0seSxhKSk6bT55JiZTKGUsdCxkLGYpfWZ1bmN0aW9uIE8oZSx0LG4scil7Zm9yKHZhciBhPW47YTxyO2ErKyl7dmFyIG89dFthXTtpZihpKG8pJiZtaShlLG8pKXJldHVybiBhfX1mdW5jdGlvbiBBKGUsdCxuLGMscyxsKXtpZihlIT09dCl7aSh0LmVsbSkmJmkoYykmJih0PWNbc109d2UodCkpO3ZhciB1PXQuZWxtPWUuZWxtO2lmKGEoZS5pc0FzeW5jUGxhY2Vob2xkZXIpKWkodC5hc3luY0ZhY3RvcnkucmVzb2x2ZWQpP0QoZS5lbG0sdCxuKTp0LmlzQXN5bmNQbGFjZWhvbGRlcj0hMDtlbHNlIGlmKGEodC5pc1N0YXRpYykmJmEoZS5pc1N0YXRpYykmJnQua2V5PT09ZS5rZXkmJihhKHQuaXNDbG9uZWQpfHxhKHQuaXNPbmNlKSkpdC5jb21wb25lbnRJbnN0YW5jZT1lLmNvbXBvbmVudEluc3RhbmNlO2Vsc2V7dmFyIGQsXz10LmRhdGE7aShfKSYmaShkPV8uaG9vaykmJmkoZD1kLnByZXBhdGNoKSYmZChlLHQpO3ZhciBtPWUuY2hpbGRyZW4sZj10LmNoaWxkcmVuO2lmKGkoXykmJncodCkpe2ZvcihkPTA7ZDxvLnVwZGF0ZS5sZW5ndGg7KytkKW8udXBkYXRlW2RdKGUsdCk7aShkPV8uaG9vaykmJmkoZD1kLnVwZGF0ZSkmJmQoZSx0KX1yKHQudGV4dCk/aShtKSYmaShmKT9tIT09ZiYmaih1LG0sZixuLGwpOmkoZik/KGkoZS50ZXh0KSYmcC5zZXRUZXh0Q29udGVudCh1LCIiKSx4KHUsbnVsbCxmLDAsZi5sZW5ndGgtMSxuKSk6aShtKT9TKHUsbSwwLG0ubGVuZ3RoLTEpOmkoZS50ZXh0KSYmcC5zZXRUZXh0Q29udGVudCh1LCIiKTplLnRleHQhPT10LnRleHQmJnAuc2V0VGV4dENvbnRlbnQodSx0LnRleHQpLGkoXykmJmkoZD1fLmhvb2spJiZpKGQ9ZC5wb3N0cGF0Y2gpJiZkKGUsdCl9fX1mdW5jdGlvbiBFKGUsdCxuKXtpZihhKG4pJiZpKGUucGFyZW50KSllLnBhcmVudC5kYXRhLnBlbmRpbmdJbnNlcnQ9dDtlbHNlIGZvcih2YXIgcj0wO3I8dC5sZW5ndGg7KytyKXRbcl0uZGF0YS5ob29rLmluc2VydCh0W3JdKX12YXIgVD1mKCJhdHRycyxjbGFzcyxzdGF0aWNDbGFzcyxzdGF0aWNTdHlsZSxrZXkiKTtmdW5jdGlvbiBEKGUsdCxuLHIpe3ZhciBvLGM9dC50YWcscz10LmRhdGEscD10LmNoaWxkcmVuO2lmKHI9cnx8cyYmcy5wcmUsdC5lbG09ZSxhKHQuaXNDb21tZW50KSYmaSh0LmFzeW5jRmFjdG9yeSkpcmV0dXJuIHQuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKGkocykmJihpKG89cy5ob29rKSYmaShvPW8uaW5pdCkmJm8odCwhMCksaShvPXQuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gaCh0LG4pLCEwO2lmKGkoYykpe2lmKGkocCkpaWYoZS5oYXNDaGlsZE5vZGVzKCkpaWYoaShvPXMpJiZpKG89by5kb21Qcm9wcykmJmkobz1vLmlubmVySFRNTCkpe2lmKG8hPT1lLmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCx1PWUuZmlyc3RDaGlsZCxkPTA7ZDxwLmxlbmd0aDtkKyspe2lmKCF1fHwhRCh1LHBbZF0sbixyKSl7bD0hMTticmVha311PXUubmV4dFNpYmxpbmd9aWYoIWx8fHUpcmV0dXJuITF9ZWxzZSBnKHQscCxuKTtpZihpKHMpKXt2YXIgXz0hMTtmb3IodmFyIG0gaW4gcylpZighVChtKSl7Xz0hMCxiKHQsbik7YnJlYWt9IV8mJnNbImNsYXNzIl0mJmR0KHNbImNsYXNzIl0pfX1lbHNlIGUuZGF0YSE9PXQudGV4dCYmKGUuZGF0YT10LnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbihlLHQsbixjKXtpZighcih0KSl7dmFyIHM9ITEsdT1bXTtpZihyKGUpKXM9ITAsXyh0LHUpO2Vsc2V7dmFyIGQ9aShlLm5vZGVUeXBlKTtpZighZCYmbWkoZSx0KSlBKGUsdCx1LG51bGwsbnVsbCxjKTtlbHNle2lmKGQpe2lmKDE9PT1lLm5vZGVUeXBlJiZlLmhhc0F0dHJpYnV0ZShGKSYmKGUucmVtb3ZlQXR0cmlidXRlKEYpLG49ITApLGEobikmJkQoZSx0LHUpKXJldHVybiBFKHQsdSwhMCksZTtlPWwoZSl9dmFyIG09ZS5lbG0sZj1wLnBhcmVudE5vZGUobSk7aWYoXyh0LHUsbS5fbGVhdmVDYj9udWxsOmYscC5uZXh0U2libGluZyhtKSksaSh0LnBhcmVudCkpe3ZhciBoPXQucGFyZW50LHY9dyh0KTt3aGlsZShoKXtmb3IodmFyIHk9MDt5PG8uZGVzdHJveS5sZW5ndGg7Kyt5KW8uZGVzdHJveVt5XShoKTtpZihoLmVsbT10LmVsbSx2KXtmb3IodmFyIGc9MDtnPG8uY3JlYXRlLmxlbmd0aDsrK2cpby5jcmVhdGVbZ10oZGksaCk7dmFyIGI9aC5kYXRhLmhvb2suaW5zZXJ0O2lmKGIubWVyZ2VkKWZvcih2YXIgaz0xO2s8Yi5mbnMubGVuZ3RoO2srKyliLmZuc1trXSgpfWVsc2UgdWkoaCk7aD1oLnBhcmVudH19aShmKT9TKGYsW2VdLDAsMCk6aShlLnRhZykmJkMoZSl9fXJldHVybiBFKHQsdSxzKSx0LmVsbX1pKGUpJiZDKGUpfX12YXIgeWk9e2NyZWF0ZTpnaSx1cGRhdGU6Z2ksZGVzdHJveTpmdW5jdGlvbihlKXtnaShlLGRpKX19O2Z1bmN0aW9uIGdpKGUsdCl7KGUuZGF0YS5kaXJlY3RpdmVzfHx0LmRhdGEuZGlyZWN0aXZlcykmJndpKGUsdCl9ZnVuY3Rpb24gd2koZSx0KXt2YXIgbixyLGksYT1lPT09ZGksbz10PT09ZGksYz1raShlLmRhdGEuZGlyZWN0aXZlcyxlLmNvbnRleHQpLHM9a2kodC5kYXRhLmRpcmVjdGl2ZXMsdC5jb250ZXh0KSxwPVtdLGw9W107Zm9yKG4gaW4gcylyPWNbbl0saT1zW25dLHI/KGkub2xkVmFsdWU9ci52YWx1ZSxDaShpLCJ1cGRhdGUiLHQsZSksaS5kZWYmJmkuZGVmLmNvbXBvbmVudFVwZGF0ZWQmJmwucHVzaChpKSk6KENpKGksImJpbmQiLHQsZSksaS5kZWYmJmkuZGVmLmluc2VydGVkJiZwLnB1c2goaSkpO2lmKHAubGVuZ3RoKXt2YXIgdT1mdW5jdGlvbigpe2Zvcih2YXIgbj0wO248cC5sZW5ndGg7bisrKUNpKHBbbl0sImluc2VydGVkIix0LGUpfTthP3l0KHQsImluc2VydCIsdSk6dSgpfWlmKGwubGVuZ3RoJiZ5dCh0LCJwb3N0cGF0Y2giLChmdW5jdGlvbigpe2Zvcih2YXIgbj0wO248bC5sZW5ndGg7bisrKUNpKGxbbl0sImNvbXBvbmVudFVwZGF0ZWQiLHQsZSl9KSksIWEpZm9yKG4gaW4gYylzW25dfHxDaShjW25dLCJ1bmJpbmQiLGUsZSxvKX12YXIgYmk9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBraShlLHQpe3ZhciBuLHIsaT1PYmplY3QuY3JlYXRlKG51bGwpO2lmKCFlKXJldHVybiBpO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspcj1lW25dLHIubW9kaWZpZXJzfHwoci5tb2RpZmllcnM9YmkpLGlbeGkocildPXIsci5kZWY9S2UodC4kb3B0aW9ucywiZGlyZWN0aXZlcyIsci5uYW1lLCEwKTtyZXR1cm4gaX1mdW5jdGlvbiB4aShlKXtyZXR1cm4gZS5yYXdOYW1lfHxlLm5hbWUrIi4iK09iamVjdC5rZXlzKGUubW9kaWZpZXJzfHx7fSkuam9pbigiLiIpfWZ1bmN0aW9uIENpKGUsdCxuLHIsaSl7dmFyIGE9ZS5kZWYmJmUuZGVmW3RdO2lmKGEpdHJ5e2Eobi5lbG0sZSxuLHIsaSl9Y2F0Y2gob28pe1plKG9vLG4uY29udGV4dCwiZGlyZWN0aXZlICIrZS5uYW1lKyIgIit0KyIgaG9vayIpfX12YXIgU2k9W2xpLHlpXTtmdW5jdGlvbiBQaShlLHQpe3ZhciBuPXQuY29tcG9uZW50T3B0aW9ucztpZigoIWkobil8fCExIT09bi5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzKSYmKCFyKGUuZGF0YS5hdHRycyl8fCFyKHQuZGF0YS5hdHRycykpKXt2YXIgYSxvLGMscz10LmVsbSxwPWUuZGF0YS5hdHRyc3x8e30sbD10LmRhdGEuYXR0cnN8fHt9O2ZvcihhIGluIGkobC5fX29iX18pJiYobD10LmRhdGEuYXR0cnM9RSh7fSxsKSksbClvPWxbYV0sYz1wW2FdLGMhPT1vJiZqaShzLGEsbyk7Zm9yKGEgaW4oWXx8ZWUpJiZsLnZhbHVlIT09cC52YWx1ZSYmamkocywidmFsdWUiLGwudmFsdWUpLHApcihsW2FdKSYmKERyKGEpP3MucmVtb3ZlQXR0cmlidXRlTlMoVHIsenIoYSkpOkFyKGEpfHxzLnJlbW92ZUF0dHJpYnV0ZShhKSl9fWZ1bmN0aW9uIGppKGUsdCxuKXtlLnRhZ05hbWUuaW5kZXhPZigiLSIpPi0xP09pKGUsdCxuKTpFcih0KT9NcihuKT9lLnJlbW92ZUF0dHJpYnV0ZSh0KToobj0iYWxsb3dmdWxsc2NyZWVuIj09PXQmJiJFTUJFRCI9PT1lLnRhZ05hbWU/InRydWUiOnQsZS5zZXRBdHRyaWJ1dGUodCxuKSk6QXIodCk/ZS5zZXRBdHRyaWJ1dGUodCxNcihuKXx8ImZhbHNlIj09PW4/ImZhbHNlIjoidHJ1ZSIpOkRyKHQpP01yKG4pP2UucmVtb3ZlQXR0cmlidXRlTlMoVHIsenIodCkpOmUuc2V0QXR0cmlidXRlTlMoVHIsdCxuKTpPaShlLHQsbil9ZnVuY3Rpb24gT2koZSx0LG4pe2lmKE1yKG4pKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7aWYoWSYmIVEmJigiVEVYVEFSRUEiPT09ZS50YWdOYW1lfHwiSU5QVVQiPT09ZS50YWdOYW1lKSYmInBsYWNlaG9sZGVyIj09PXQmJiFlLl9faWVwaCl7dmFyIHI9ZnVuY3Rpb24odCl7dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IixyKX07ZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsciksZS5fX2llcGg9ITB9ZS5zZXRBdHRyaWJ1dGUodCxuKX19dmFyIEFpPXtjcmVhdGU6UGksdXBkYXRlOlBpfTtmdW5jdGlvbiBFaShlLHQpe3ZhciBuPXQuZWxtLGE9dC5kYXRhLG89ZS5kYXRhO2lmKCEocihhLnN0YXRpY0NsYXNzKSYmcihhLmNsYXNzKSYmKHIobyl8fHIoby5zdGF0aWNDbGFzcykmJnIoby5jbGFzcykpKSl7dmFyIGM9JHIodCkscz1uLl90cmFuc2l0aW9uQ2xhc3NlcztpKHMpJiYoYz1GcihjLExyKHMpKSksYyE9PW4uX3ByZXZDbGFzcyYmKG4uc2V0QXR0cmlidXRlKCJjbGFzcyIsYyksbi5fcHJldkNsYXNzPWMpfX12YXIgVGksRGk9e2NyZWF0ZTpFaSx1cGRhdGU6RWl9LHppPSJfX3IiLE1pPSJfX2MiO2Z1bmN0aW9uICRpKGUpe2lmKGkoZVt6aV0pKXt2YXIgdD1ZPyJjaGFuZ2UiOiJpbnB1dCI7ZVt0XT1bXS5jb25jYXQoZVt6aV0sZVt0XXx8W10pLGRlbGV0ZSBlW3ppXX1pKGVbTWldKSYmKGUuY2hhbmdlPVtdLmNvbmNhdChlW01pXSxlLmNoYW5nZXx8W10pLGRlbGV0ZSBlW01pXSl9ZnVuY3Rpb24gTmkoZSx0LG4pe3ZhciByPVRpO3JldHVybiBmdW5jdGlvbiBpKCl7dmFyIGE9dC5hcHBseShudWxsLGFyZ3VtZW50cyk7bnVsbCE9PWEmJkZpKGUsaSxuLHIpfX1mdW5jdGlvbiBJaShlLHQsbixyKXt0PXB0KHQpLFRpLmFkZEV2ZW50TGlzdGVuZXIoZSx0LHJlP3tjYXB0dXJlOm4scGFzc2l2ZTpyfTpuKX1mdW5jdGlvbiBGaShlLHQsbixyKXsocnx8VGkpLnJlbW92ZUV2ZW50TGlzdGVuZXIoZSx0Ll93aXRoVGFza3x8dCxuKX1mdW5jdGlvbiBMaShlLHQpe2lmKCFyKGUuZGF0YS5vbil8fCFyKHQuZGF0YS5vbikpe3ZhciBuPXQuZGF0YS5vbnx8e30saT1lLmRhdGEub258fHt9O1RpPXQuZWxtLCRpKG4pLHZ0KG4saSxJaSxGaSxOaSx0LmNvbnRleHQpLFRpPXZvaWQgMH19dmFyIFJpPXtjcmVhdGU6TGksdXBkYXRlOkxpfTtmdW5jdGlvbiBWaShlLHQpe2lmKCFyKGUuZGF0YS5kb21Qcm9wcyl8fCFyKHQuZGF0YS5kb21Qcm9wcykpe3ZhciBuLGEsbz10LmVsbSxjPWUuZGF0YS5kb21Qcm9wc3x8e30scz10LmRhdGEuZG9tUHJvcHN8fHt9O2ZvcihuIGluIGkocy5fX29iX18pJiYocz10LmRhdGEuZG9tUHJvcHM9RSh7fSxzKSksYylyKHNbbl0pJiYob1tuXT0iIik7Zm9yKG4gaW4gcyl7aWYoYT1zW25dLCJ0ZXh0Q29udGVudCI9PT1ufHwiaW5uZXJIVE1MIj09PW4pe2lmKHQuY2hpbGRyZW4mJih0LmNoaWxkcmVuLmxlbmd0aD0wKSxhPT09Y1tuXSljb250aW51ZTsxPT09by5jaGlsZE5vZGVzLmxlbmd0aCYmby5yZW1vdmVDaGlsZChvLmNoaWxkTm9kZXNbMF0pfWlmKCJ2YWx1ZSI9PT1uKXtvLl92YWx1ZT1hO3ZhciBwPXIoYSk/IiI6U3RyaW5nKGEpO1VpKG8scCkmJihvLnZhbHVlPXApfWVsc2Ugb1tuXT1hfX19ZnVuY3Rpb24gVWkoZSx0KXtyZXR1cm4hZS5jb21wb3NpbmcmJigiT1BUSU9OIj09PWUudGFnTmFtZXx8SGkoZSx0KXx8R2koZSx0KSl9ZnVuY3Rpb24gSGkoZSx0KXt2YXIgbj0hMDt0cnl7bj1kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ZX1jYXRjaChvbyl7fXJldHVybiBuJiZlLnZhbHVlIT09dH1mdW5jdGlvbiBHaShlLHQpe3ZhciBuPWUudmFsdWUscj1lLl92TW9kaWZpZXJzO2lmKGkocikpe2lmKHIubGF6eSlyZXR1cm4hMTtpZihyLm51bWJlcilyZXR1cm4gbShuKSE9PW0odCk7aWYoci50cmltKXJldHVybiBuLnRyaW0oKSE9PXQudHJpbSgpfXJldHVybiBuIT09dH12YXIgS2k9e2NyZWF0ZTpWaSx1cGRhdGU6Vml9LEJpPXcoKGZ1bmN0aW9uKGUpe3ZhciB0PXt9LG49LzsoPyFbXihdKlwpKS9nLHI9LzooLispLztyZXR1cm4gZS5zcGxpdChuKS5mb3JFYWNoKChmdW5jdGlvbihlKXtpZihlKXt2YXIgbj1lLnNwbGl0KHIpO24ubGVuZ3RoPjEmJih0W25bMF0udHJpbSgpXT1uWzFdLnRyaW0oKSl9fSkpLHR9KSk7ZnVuY3Rpb24gcWkoZSl7dmFyIHQ9SmkoZS5zdHlsZSk7cmV0dXJuIGUuc3RhdGljU3R5bGU/RShlLnN0YXRpY1N0eWxlLHQpOnR9ZnVuY3Rpb24gSmkoZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/VChlKToic3RyaW5nIj09PXR5cGVvZiBlP0JpKGUpOmV9ZnVuY3Rpb24gV2koZSx0KXt2YXIgbixyPXt9O2lmKHQpe3ZhciBpPWU7d2hpbGUoaS5jb21wb25lbnRJbnN0YW5jZSlpPWkuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLGkmJmkuZGF0YSYmKG49cWkoaS5kYXRhKSkmJkUocixuKX0obj1xaShlLmRhdGEpKSYmRShyLG4pO3ZhciBhPWU7d2hpbGUoYT1hLnBhcmVudClhLmRhdGEmJihuPXFpKGEuZGF0YSkpJiZFKHIsbik7cmV0dXJuIHJ9dmFyIFhpLFppPS9eLS0vLFlpPS9ccyohaW1wb3J0YW50JC8sUWk9ZnVuY3Rpb24oZSx0LG4pe2lmKFppLnRlc3QodCkpZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pO2Vsc2UgaWYoWWkudGVzdChuKSllLnN0eWxlLnNldFByb3BlcnR5KHQsbi5yZXBsYWNlKFlpLCIiKSwiaW1wb3J0YW50Iik7ZWxzZXt2YXIgcj10YSh0KTtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgaT0wLGE9bi5sZW5ndGg7aTxhO2krKyllLnN0eWxlW3JdPW5baV07ZWxzZSBlLnN0eWxlW3JdPW59fSxlYT1bIldlYmtpdCIsIk1veiIsIm1zIl0sdGE9dygoZnVuY3Rpb24oZSl7aWYoWGk9WGl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLGU9ayhlKSwiZmlsdGVyIiE9PWUmJmUgaW4gWGkpcmV0dXJuIGU7Zm9yKHZhciB0PWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKSxuPTA7bjxlYS5sZW5ndGg7bisrKXt2YXIgcj1lYVtuXSt0O2lmKHIgaW4gWGkpcmV0dXJuIHJ9fSkpO2Z1bmN0aW9uIG5hKGUsdCl7dmFyIG49dC5kYXRhLGE9ZS5kYXRhO2lmKCEocihuLnN0YXRpY1N0eWxlKSYmcihuLnN0eWxlKSYmcihhLnN0YXRpY1N0eWxlKSYmcihhLnN0eWxlKSkpe3ZhciBvLGMscz10LmVsbSxwPWEuc3RhdGljU3R5bGUsbD1hLm5vcm1hbGl6ZWRTdHlsZXx8YS5zdHlsZXx8e30sdT1wfHxsLGQ9SmkodC5kYXRhLnN0eWxlKXx8e307dC5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1pKGQuX19vYl9fKT9FKHt9LGQpOmQ7dmFyIF89V2kodCwhMCk7Zm9yKGMgaW4gdSlyKF9bY10pJiZRaShzLGMsIiIpO2ZvcihjIGluIF8pbz1fW2NdLG8hPT11W2NdJiZRaShzLGMsbnVsbD09bz8iIjpvKX19dmFyIHJhPXtjcmVhdGU6bmEsdXBkYXRlOm5hfSxpYT0vXHMrLztmdW5jdGlvbiBhYShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoIiAiKT4tMT90LnNwbGl0KGlhKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpfSkpOmUuY2xhc3NMaXN0LmFkZCh0KTtlbHNle3ZhciBuPSIgIisoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKSsiICI7bi5pbmRleE9mKCIgIit0KyIgIik8MCYmZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwobit0KS50cmltKCkpfX1mdW5jdGlvbiBvYShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoIiAiKT4tMT90LnNwbGl0KGlhKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QucmVtb3ZlKHQpfSkpOmUuY2xhc3NMaXN0LnJlbW92ZSh0KSxlLmNsYXNzTGlzdC5sZW5ndGh8fGUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpO2Vsc2V7dmFyIG49IiAiKyhlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIixyPSIgIit0KyIgIjt3aGlsZShuLmluZGV4T2Yocik+PTApbj1uLnJlcGxhY2UociwiICIpO249bi50cmltKCksbj9lLnNldEF0dHJpYnV0ZSgiY2xhc3MiLG4pOmUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfX1mdW5jdGlvbiBjYShlKXtpZihlKXtpZigib2JqZWN0Ij09PXR5cGVvZiBlKXt2YXIgdD17fTtyZXR1cm4hMSE9PWUuY3NzJiZFKHQsc2EoZS5uYW1lfHwidiIpKSxFKHQsZSksdH1yZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBlP3NhKGUpOnZvaWQgMH19dmFyIHNhPXcoKGZ1bmN0aW9uKGUpe3JldHVybntlbnRlckNsYXNzOmUrIi1lbnRlciIsZW50ZXJUb0NsYXNzOmUrIi1lbnRlci10byIsZW50ZXJBY3RpdmVDbGFzczplKyItZW50ZXItYWN0aXZlIixsZWF2ZUNsYXNzOmUrIi1sZWF2ZSIsbGVhdmVUb0NsYXNzOmUrIi1sZWF2ZS10byIsbGVhdmVBY3RpdmVDbGFzczplKyItbGVhdmUtYWN0aXZlIn19KSkscGE9SiYmIVEsbGE9InRyYW5zaXRpb24iLHVhPSJhbmltYXRpb24iLGRhPSJ0cmFuc2l0aW9uIixfYT0idHJhbnNpdGlvbmVuZCIsbWE9ImFuaW1hdGlvbiIsZmE9ImFuaW1hdGlvbmVuZCI7cGEmJih2b2lkIDA9PT13aW5kb3cub250cmFuc2l0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXR0cmFuc2l0aW9uZW5kJiYoZGE9IldlYmtpdFRyYW5zaXRpb24iLF9hPSJ3ZWJraXRUcmFuc2l0aW9uRW5kIiksdm9pZCAwPT09d2luZG93Lm9uYW5pbWF0aW9uZW5kJiZ2b2lkIDAhPT13aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQmJihtYT0iV2Via2l0QW5pbWF0aW9uIixmYT0id2Via2l0QW5pbWF0aW9uRW5kIikpO3ZhciBoYT1KP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6c2V0VGltZW91dDpmdW5jdGlvbihlKXtyZXR1cm4gZSgpfTtmdW5jdGlvbiB2YShlKXtoYSgoZnVuY3Rpb24oKXtoYShlKX0pKX1mdW5jdGlvbiB5YShlLHQpe3ZhciBuPWUuX3RyYW5zaXRpb25DbGFzc2VzfHwoZS5fdHJhbnNpdGlvbkNsYXNzZXM9W10pO24uaW5kZXhPZih0KTwwJiYobi5wdXNoKHQpLGFhKGUsdCkpfWZ1bmN0aW9uIGdhKGUsdCl7ZS5fdHJhbnNpdGlvbkNsYXNzZXMmJnYoZS5fdHJhbnNpdGlvbkNsYXNzZXMsdCksb2EoZSx0KX1mdW5jdGlvbiB3YShlLHQsbil7dmFyIHI9a2EoZSx0KSxpPXIudHlwZSxhPXIudGltZW91dCxvPXIucHJvcENvdW50O2lmKCFpKXJldHVybiBuKCk7dmFyIGM9aT09PWxhP19hOmZhLHM9MCxwPWZ1bmN0aW9uKCl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKGMsbCksbigpfSxsPWZ1bmN0aW9uKHQpe3QudGFyZ2V0PT09ZSYmKytzPj1vJiZwKCl9O3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7czxvJiZwKCl9KSxhKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcihjLGwpfXZhciBiYT0vXGIodHJhbnNmb3JtfGFsbCkoLHwkKS87ZnVuY3Rpb24ga2EoZSx0KXt2YXIgbixyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLGk9KHJbZGErIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxhPShyW2RhKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksbz14YShpLGEpLGM9KHJbbWErIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxzPShyW21hKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIikscD14YShjLHMpLGw9MCx1PTA7dD09PWxhP28+MCYmKG49bGEsbD1vLHU9YS5sZW5ndGgpOnQ9PT11YT9wPjAmJihuPXVhLGw9cCx1PXMubGVuZ3RoKToobD1NYXRoLm1heChvLHApLG49bD4wP28+cD9sYTp1YTpudWxsLHU9bj9uPT09bGE/YS5sZW5ndGg6cy5sZW5ndGg6MCk7dmFyIGQ9bj09PWxhJiZiYS50ZXN0KHJbZGErIlByb3BlcnR5Il0pO3JldHVybnt0eXBlOm4sdGltZW91dDpsLHByb3BDb3VudDp1LGhhc1RyYW5zZm9ybTpkfX1mdW5jdGlvbiB4YShlLHQpe3doaWxlKGUubGVuZ3RoPHQubGVuZ3RoKWU9ZS5jb25jYXQoZSk7cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIENhKHQpK0NhKGVbbl0pfSkpKX1mdW5jdGlvbiBDYShlKXtyZXR1cm4gMWUzKk51bWJlcihlLnNsaWNlKDAsLTEpLnJlcGxhY2UoIiwiLCIuIikpfWZ1bmN0aW9uIFNhKGUsdCl7dmFyIG49ZS5lbG07aShuLl9sZWF2ZUNiKSYmKG4uX2xlYXZlQ2IuY2FuY2VsbGVkPSEwLG4uX2xlYXZlQ2IoKSk7dmFyIGE9Y2EoZS5kYXRhLnRyYW5zaXRpb24pO2lmKCFyKGEpJiYhaShuLl9lbnRlckNiKSYmMT09PW4ubm9kZVR5cGUpe3ZhciBvPWEuY3NzLGM9YS50eXBlLHA9YS5lbnRlckNsYXNzLGw9YS5lbnRlclRvQ2xhc3MsdT1hLmVudGVyQWN0aXZlQ2xhc3MsZD1hLmFwcGVhckNsYXNzLF89YS5hcHBlYXJUb0NsYXNzLGY9YS5hcHBlYXJBY3RpdmVDbGFzcyxoPWEuYmVmb3JlRW50ZXIsdj1hLmVudGVyLHk9YS5hZnRlckVudGVyLGc9YS5lbnRlckNhbmNlbGxlZCx3PWEuYmVmb3JlQXBwZWFyLGI9YS5hcHBlYXIsaz1hLmFmdGVyQXBwZWFyLHg9YS5hcHBlYXJDYW5jZWxsZWQsQz1hLmR1cmF0aW9uLFM9THQsUD1MdC4kdm5vZGU7d2hpbGUoUCYmUC5wYXJlbnQpUD1QLnBhcmVudCxTPVAuY29udGV4dDt2YXIgaj0hUy5faXNNb3VudGVkfHwhZS5pc1Jvb3RJbnNlcnQ7aWYoIWp8fGJ8fCIiPT09Yil7dmFyIE89aiYmZD9kOnAsQT1qJiZmP2Y6dSxFPWomJl8/XzpsLFQ9aiYmd3x8aCxEPWomJiJmdW5jdGlvbiI9PT10eXBlb2YgYj9iOnYsej1qJiZrfHx5LE09aiYmeHx8ZywkPW0ocyhDKT9DLmVudGVyOkMpOzA7dmFyIE49ITEhPT1vJiYhUSxGPU9hKEQpLEw9bi5fZW50ZXJDYj1JKChmdW5jdGlvbigpe04mJihnYShuLEUpLGdhKG4sQSkpLEwuY2FuY2VsbGVkPyhOJiZnYShuLE8pLE0mJk0obikpOnomJnoobiksbi5fZW50ZXJDYj1udWxsfSkpO2UuZGF0YS5zaG93fHx5dChlLCJpbnNlcnQiLChmdW5jdGlvbigpe3ZhciB0PW4ucGFyZW50Tm9kZSxyPXQmJnQuX3BlbmRpbmcmJnQuX3BlbmRpbmdbZS5rZXldO3ImJnIudGFnPT09ZS50YWcmJnIuZWxtLl9sZWF2ZUNiJiZyLmVsbS5fbGVhdmVDYigpLEQmJkQobixMKX0pKSxUJiZUKG4pLE4mJih5YShuLE8pLHlhKG4sQSksdmEoKGZ1bmN0aW9uKCl7Z2EobixPKSxMLmNhbmNlbGxlZHx8KHlhKG4sRSksRnx8KGphKCQpP3NldFRpbWVvdXQoTCwkKTp3YShuLGMsTCkpKX0pKSksZS5kYXRhLnNob3cmJih0JiZ0KCksRCYmRChuLEwpKSxOfHxGfHxMKCl9fX1mdW5jdGlvbiBQYShlLHQpe3ZhciBuPWUuZWxtO2kobi5fZW50ZXJDYikmJihuLl9lbnRlckNiLmNhbmNlbGxlZD0hMCxuLl9lbnRlckNiKCkpO3ZhciBhPWNhKGUuZGF0YS50cmFuc2l0aW9uKTtpZihyKGEpfHwxIT09bi5ub2RlVHlwZSlyZXR1cm4gdCgpO2lmKCFpKG4uX2xlYXZlQ2IpKXt2YXIgbz1hLmNzcyxjPWEudHlwZSxwPWEubGVhdmVDbGFzcyxsPWEubGVhdmVUb0NsYXNzLHU9YS5sZWF2ZUFjdGl2ZUNsYXNzLGQ9YS5iZWZvcmVMZWF2ZSxfPWEubGVhdmUsZj1hLmFmdGVyTGVhdmUsaD1hLmxlYXZlQ2FuY2VsbGVkLHY9YS5kZWxheUxlYXZlLHk9YS5kdXJhdGlvbixnPSExIT09byYmIVEsdz1PYShfKSxiPW0ocyh5KT95LmxlYXZlOnkpOzA7dmFyIGs9bi5fbGVhdmVDYj1JKChmdW5jdGlvbigpe24ucGFyZW50Tm9kZSYmbi5wYXJlbnROb2RlLl9wZW5kaW5nJiYobi5wYXJlbnROb2RlLl9wZW5kaW5nW2Uua2V5XT1udWxsKSxnJiYoZ2EobixsKSxnYShuLHUpKSxrLmNhbmNlbGxlZD8oZyYmZ2EobixwKSxoJiZoKG4pKToodCgpLGYmJmYobikpLG4uX2xlYXZlQ2I9bnVsbH0pKTt2P3YoeCk6eCgpfWZ1bmN0aW9uIHgoKXtrLmNhbmNlbGxlZHx8KCFlLmRhdGEuc2hvdyYmbi5wYXJlbnROb2RlJiYoKG4ucGFyZW50Tm9kZS5fcGVuZGluZ3x8KG4ucGFyZW50Tm9kZS5fcGVuZGluZz17fSkpW2Uua2V5XT1lKSxkJiZkKG4pLGcmJih5YShuLHApLHlhKG4sdSksdmEoKGZ1bmN0aW9uKCl7Z2EobixwKSxrLmNhbmNlbGxlZHx8KHlhKG4sbCksd3x8KGphKGIpP3NldFRpbWVvdXQoayxiKTp3YShuLGMsaykpKX0pKSksXyYmXyhuLGspLGd8fHd8fGsoKSl9fWZ1bmN0aW9uIGphKGUpe3JldHVybiJudW1iZXIiPT09dHlwZW9mIGUmJiFpc05hTihlKX1mdW5jdGlvbiBPYShlKXtpZihyKGUpKXJldHVybiExO3ZhciB0PWUuZm5zO3JldHVybiBpKHQpP09hKEFycmF5LmlzQXJyYXkodCk/dFswXTp0KTooZS5fbGVuZ3RofHxlLmxlbmd0aCk+MX1mdW5jdGlvbiBBYShlLHQpeyEwIT09dC5kYXRhLnNob3cmJlNhKHQpfXZhciBFYT1KP3tjcmVhdGU6QWEsYWN0aXZhdGU6QWEscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7ITAhPT1lLmRhdGEuc2hvdz9QYShlLHQpOnQoKX19Ont9LFRhPVtBaSxEaSxSaSxLaSxyYSxFYV0sRGE9VGEuY29uY2F0KFNpKSx6YT12aSh7bm9kZU9wczpwaSxtb2R1bGVzOkRhfSk7USYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2UmJmUudm1vZGVsJiZWYShlLCJpbnB1dCIpfSkpO3ZhciBNYT17aW5zZXJ0ZWQ6ZnVuY3Rpb24oZSx0LG4scil7InNlbGVjdCI9PT1uLnRhZz8oci5lbG0mJiFyLmVsbS5fdk9wdGlvbnM/eXQobiwicG9zdHBhdGNoIiwoZnVuY3Rpb24oKXtNYS5jb21wb25lbnRVcGRhdGVkKGUsdCxuKX0pKTokYShlLHQsbi5jb250ZXh0KSxlLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsRmEpKTooInRleHRhcmVhIj09PW4udGFnfHxXcihlLnR5cGUpKSYmKGUuX3ZNb2RpZmllcnM9dC5tb2RpZmllcnMsdC5tb2RpZmllcnMubGF6eXx8KGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25zdGFydCIsTGEpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLFJhKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsUmEpLFEmJihlLnZtb2RlbD0hMCkpKX0sY29tcG9uZW50VXBkYXRlZDpmdW5jdGlvbihlLHQsbil7aWYoInNlbGVjdCI9PT1uLnRhZyl7JGEoZSx0LG4uY29udGV4dCk7dmFyIHI9ZS5fdk9wdGlvbnMsaT1lLl92T3B0aW9ucz1bXS5tYXAuY2FsbChlLm9wdGlvbnMsRmEpO2lmKGkuc29tZSgoZnVuY3Rpb24oZSx0KXtyZXR1cm4hJChlLHJbdF0pfSkpKXt2YXIgYT1lLm11bHRpcGxlP3QudmFsdWUuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIElhKGUsaSl9KSk6dC52YWx1ZSE9PXQub2xkVmFsdWUmJklhKHQudmFsdWUsaSk7YSYmVmEoZSwiY2hhbmdlIil9fX19O2Z1bmN0aW9uICRhKGUsdCxuKXtOYShlLHQsbiksKFl8fGVlKSYmc2V0VGltZW91dCgoZnVuY3Rpb24oKXtOYShlLHQsbil9KSwwKX1mdW5jdGlvbiBOYShlLHQsbil7dmFyIHI9dC52YWx1ZSxpPWUubXVsdGlwbGU7aWYoIWl8fEFycmF5LmlzQXJyYXkocikpe2Zvcih2YXIgYSxvLGM9MCxzPWUub3B0aW9ucy5sZW5ndGg7YzxzO2MrKylpZihvPWUub3B0aW9uc1tjXSxpKWE9TihyLEZhKG8pKT4tMSxvLnNlbGVjdGVkIT09YSYmKG8uc2VsZWN0ZWQ9YSk7ZWxzZSBpZigkKEZhKG8pLHIpKXJldHVybiB2b2lkKGUuc2VsZWN0ZWRJbmRleCE9PWMmJihlLnNlbGVjdGVkSW5kZXg9YykpO2l8fChlLnNlbGVjdGVkSW5kZXg9LTEpfX1mdW5jdGlvbiBJYShlLHQpe3JldHVybiB0LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4hJCh0LGUpfSkpfWZ1bmN0aW9uIEZhKGUpe3JldHVybiJfdmFsdWUiaW4gZT9lLl92YWx1ZTplLnZhbHVlfWZ1bmN0aW9uIExhKGUpe2UudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBSYShlKXtlLnRhcmdldC5jb21wb3NpbmcmJihlLnRhcmdldC5jb21wb3Npbmc9ITEsVmEoZS50YXJnZXQsImlucHV0IikpfWZ1bmN0aW9uIFZhKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKTtuLmluaXRFdmVudCh0LCEwLCEwKSxlLmRpc3BhdGNoRXZlbnQobil9ZnVuY3Rpb24gVWEoZSl7cmV0dXJuIWUuY29tcG9uZW50SW5zdGFuY2V8fGUuZGF0YSYmZS5kYXRhLnRyYW5zaXRpb24/ZTpVYShlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSl9dmFyIEhhPXtiaW5kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlO249VWEobik7dmFyIGk9bi5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbixhPWUuX192T3JpZ2luYWxEaXNwbGF5PSJub25lIj09PWUuc3R5bGUuZGlzcGxheT8iIjplLnN0eWxlLmRpc3BsYXk7ciYmaT8obi5kYXRhLnNob3c9ITAsU2EobiwoZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9YX0pKSk6ZS5zdHlsZS5kaXNwbGF5PXI/YToibm9uZSJ9LHVwZGF0ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPXQub2xkVmFsdWU7aWYoIXIhPT0haSl7bj1VYShuKTt2YXIgYT1uLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uO2E/KG4uZGF0YS5zaG93PSEwLHI/U2EobiwoZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXl9KSk6UGEobiwoZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpKTplLnN0eWxlLmRpc3BsYXk9cj9lLl9fdk9yaWdpbmFsRGlzcGxheToibm9uZSJ9fSx1bmJpbmQ6ZnVuY3Rpb24oZSx0LG4scixpKXtpfHwoZS5zdHlsZS5kaXNwbGF5PWUuX192T3JpZ2luYWxEaXNwbGF5KX19LEdhPXttb2RlbDpNYSxzaG93OkhhfSxLYT17bmFtZTpTdHJpbmcsYXBwZWFyOkJvb2xlYW4sY3NzOkJvb2xlYW4sbW9kZTpTdHJpbmcsdHlwZTpTdHJpbmcsZW50ZXJDbGFzczpTdHJpbmcsbGVhdmVDbGFzczpTdHJpbmcsZW50ZXJUb0NsYXNzOlN0cmluZyxsZWF2ZVRvQ2xhc3M6U3RyaW5nLGVudGVyQWN0aXZlQ2xhc3M6U3RyaW5nLGxlYXZlQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhckNsYXNzOlN0cmluZyxhcHBlYXJBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyVG9DbGFzczpTdHJpbmcsZHVyYXRpb246W051bWJlcixTdHJpbmcsT2JqZWN0XX07ZnVuY3Rpb24gQmEoZSl7dmFyIHQ9ZSYmZS5jb21wb25lbnRPcHRpb25zO3JldHVybiB0JiZ0LkN0b3Iub3B0aW9ucy5hYnN0cmFjdD9CYShBdCh0LmNoaWxkcmVuKSk6ZX1mdW5jdGlvbiBxYShlKXt2YXIgdD17fSxuPWUuJG9wdGlvbnM7Zm9yKHZhciByIGluIG4ucHJvcHNEYXRhKXRbcl09ZVtyXTt2YXIgaT1uLl9wYXJlbnRMaXN0ZW5lcnM7Zm9yKHZhciBhIGluIGkpdFtrKGEpXT1pW2FdO3JldHVybiB0fWZ1bmN0aW9uIEphKGUsdCl7aWYoL1xkLWtlZXAtYWxpdmUkLy50ZXN0KHQudGFnKSlyZXR1cm4gZSgia2VlcC1hbGl2ZSIse3Byb3BzOnQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGF9KX1mdW5jdGlvbiBXYShlKXt3aGlsZShlPWUucGFyZW50KWlmKGUuZGF0YS50cmFuc2l0aW9uKXJldHVybiEwfWZ1bmN0aW9uIFhhKGUsdCl7cmV0dXJuIHQua2V5PT09ZS5rZXkmJnQudGFnPT09ZS50YWd9dmFyIFphPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ3x8T3QoZSl9LFlhPWZ1bmN0aW9uKGUpe3JldHVybiJzaG93Ij09PWUubmFtZX0sUWE9e25hbWU6InRyYW5zaXRpb24iLHByb3BzOkthLGFic3RyYWN0OiEwLHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy4kc2xvdHMuZGVmYXVsdDtpZihuJiYobj1uLmZpbHRlcihaYSksbi5sZW5ndGgpKXswO3ZhciByPXRoaXMubW9kZTswO3ZhciBpPW5bMF07aWYoV2EodGhpcy4kdm5vZGUpKXJldHVybiBpO3ZhciBhPUJhKGkpO2lmKCFhKXJldHVybiBpO2lmKHRoaXMuX2xlYXZpbmcpcmV0dXJuIEphKGUsaSk7dmFyIG89Il9fdHJhbnNpdGlvbi0iK3RoaXMuX3VpZCsiLSI7YS5rZXk9bnVsbD09YS5rZXk/YS5pc0NvbW1lbnQ/bysiY29tbWVudCI6bythLnRhZzpjKGEua2V5KT8wPT09U3RyaW5nKGEua2V5KS5pbmRleE9mKG8pP2Eua2V5Om8rYS5rZXk6YS5rZXk7dmFyIHM9KGEuZGF0YXx8KGEuZGF0YT17fSkpLnRyYW5zaXRpb249cWEodGhpcykscD10aGlzLl92bm9kZSxsPUJhKHApO2lmKGEuZGF0YS5kaXJlY3RpdmVzJiZhLmRhdGEuZGlyZWN0aXZlcy5zb21lKFlhKSYmKGEuZGF0YS5zaG93PSEwKSxsJiZsLmRhdGEmJiFYYShhLGwpJiYhT3QobCkmJighbC5jb21wb25lbnRJbnN0YW5jZXx8IWwuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLmlzQ29tbWVudCkpe3ZhciB1PWwuZGF0YS50cmFuc2l0aW9uPUUoe30scyk7aWYoIm91dC1pbiI9PT1yKXJldHVybiB0aGlzLl9sZWF2aW5nPSEwLHl0KHUsImFmdGVyTGVhdmUiLChmdW5jdGlvbigpe3QuX2xlYXZpbmc9ITEsdC4kZm9yY2VVcGRhdGUoKX0pKSxKYShlLGkpO2lmKCJpbi1vdXQiPT09cil7aWYoT3QoYSkpcmV0dXJuIHA7dmFyIGQsXz1mdW5jdGlvbigpe2QoKX07eXQocywiYWZ0ZXJFbnRlciIsXykseXQocywiZW50ZXJDYW5jZWxsZWQiLF8pLHl0KHUsImRlbGF5TGVhdmUiLChmdW5jdGlvbihlKXtkPWV9KSl9fXJldHVybiBpfX19LGVvPUUoe3RhZzpTdHJpbmcsbW92ZUNsYXNzOlN0cmluZ30sS2EpO2RlbGV0ZSBlby5tb2RlO3ZhciB0bz17cHJvcHM6ZW8sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5fdXBkYXRlO3RoaXMuX3VwZGF0ZT1mdW5jdGlvbihuLHIpe3ZhciBpPVJ0KGUpO2UuX19wYXRjaF9fKGUuX3Zub2RlLGUua2VwdCwhMSwhMCksZS5fdm5vZGU9ZS5rZXB0LGkoKSx0LmNhbGwoZSxuLHIpfX0scmVuZGVyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnRhZ3x8dGhpcy4kdm5vZGUuZGF0YS50YWd8fCJzcGFuIixuPU9iamVjdC5jcmVhdGUobnVsbCkscj10aGlzLnByZXZDaGlsZHJlbj10aGlzLmNoaWxkcmVuLGk9dGhpcy4kc2xvdHMuZGVmYXVsdHx8W10sYT10aGlzLmNoaWxkcmVuPVtdLG89cWEodGhpcyksYz0wO2M8aS5sZW5ndGg7YysrKXt2YXIgcz1pW2NdO2lmKHMudGFnKWlmKG51bGwhPXMua2V5JiYwIT09U3RyaW5nKHMua2V5KS5pbmRleE9mKCJfX3ZsaXN0IikpYS5wdXNoKHMpLG5bcy5rZXldPXMsKHMuZGF0YXx8KHMuZGF0YT17fSkpLnRyYW5zaXRpb249bztlbHNlO31pZihyKXtmb3IodmFyIHA9W10sbD1bXSx1PTA7dTxyLmxlbmd0aDt1Kyspe3ZhciBkPXJbdV07ZC5kYXRhLnRyYW5zaXRpb249byxkLmRhdGEucG9zPWQuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG5bZC5rZXldP3AucHVzaChkKTpsLnB1c2goZCl9dGhpcy5rZXB0PWUodCxudWxsLHApLHRoaXMucmVtb3ZlZD1sfXJldHVybiBlKHQsbnVsbCxhKX0sdXBkYXRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJldkNoaWxkcmVuLHQ9dGhpcy5tb3ZlQ2xhc3N8fCh0aGlzLm5hbWV8fCJ2IikrIi1tb3ZlIjtlLmxlbmd0aCYmdGhpcy5oYXNNb3ZlKGVbMF0uZWxtLHQpJiYoZS5mb3JFYWNoKG5vKSxlLmZvckVhY2gocm8pLGUuZm9yRWFjaChpbyksdGhpcy5fcmVmbG93PWRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZS5kYXRhLm1vdmVkKXt2YXIgbj1lLmVsbSxyPW4uc3R5bGU7eWEobix0KSxyLnRyYW5zZm9ybT1yLldlYmtpdFRyYW5zZm9ybT1yLnRyYW5zaXRpb25EdXJhdGlvbj0iIixuLmFkZEV2ZW50TGlzdGVuZXIoX2Esbi5fbW92ZUNiPWZ1bmN0aW9uIGUocil7ciYmci50YXJnZXQhPT1ufHxyJiYhL3RyYW5zZm9ybSQvLnRlc3Qoci5wcm9wZXJ0eU5hbWUpfHwobi5yZW1vdmVFdmVudExpc3RlbmVyKF9hLGUpLG4uX21vdmVDYj1udWxsLGdhKG4sdCkpfSl9fSkpKX0sbWV0aG9kczp7aGFzTW92ZTpmdW5jdGlvbihlLHQpe2lmKCFwYSlyZXR1cm4hMTtpZih0aGlzLl9oYXNNb3ZlKXJldHVybiB0aGlzLl9oYXNNb3ZlO3ZhciBuPWUuY2xvbmVOb2RlKCk7ZS5fdHJhbnNpdGlvbkNsYXNzZXMmJmUuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goKGZ1bmN0aW9uKGUpe29hKG4sZSl9KSksYWEobix0KSxuLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuJGVsLmFwcGVuZENoaWxkKG4pO3ZhciByPWthKG4pO3JldHVybiB0aGlzLiRlbC5yZW1vdmVDaGlsZChuKSx0aGlzLl9oYXNNb3ZlPXIuaGFzVHJhbnNmb3JtfX19O2Z1bmN0aW9uIG5vKGUpe2UuZWxtLl9tb3ZlQ2ImJmUuZWxtLl9tb3ZlQ2IoKSxlLmVsbS5fZW50ZXJDYiYmZS5lbG0uX2VudGVyQ2IoKX1mdW5jdGlvbiBybyhlKXtlLmRhdGEubmV3UG9zPWUuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfWZ1bmN0aW9uIGlvKGUpe3ZhciB0PWUuZGF0YS5wb3Msbj1lLmRhdGEubmV3UG9zLHI9dC5sZWZ0LW4ubGVmdCxpPXQudG9wLW4udG9wO2lmKHJ8fGkpe2UuZGF0YS5tb3ZlZD0hMDt2YXIgYT1lLmVsbS5zdHlsZTthLnRyYW5zZm9ybT1hLldlYmtpdFRyYW5zZm9ybT0idHJhbnNsYXRlKCIrcisicHgsIitpKyJweCkiLGEudHJhbnNpdGlvbkR1cmF0aW9uPSIwcyJ9fXZhciBhbz17VHJhbnNpdGlvbjpRYSxUcmFuc2l0aW9uR3JvdXA6dG99O3VyLmNvbmZpZy5tdXN0VXNlUHJvcD1Pcix1ci5jb25maWcuaXNSZXNlcnZlZFRhZz1Lcix1ci5jb25maWcuaXNSZXNlcnZlZEF0dHI9UHIsdXIuY29uZmlnLmdldFRhZ05hbWVzcGFjZT1Ccix1ci5jb25maWcuaXNVbmtub3duRWxlbWVudD1KcixFKHVyLm9wdGlvbnMuZGlyZWN0aXZlcyxHYSksRSh1ci5vcHRpb25zLmNvbXBvbmVudHMsYW8pLHVyLnByb3RvdHlwZS5fX3BhdGNoX189Sj96YTpELHVyLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT1lJiZKP1hyKGUpOnZvaWQgMCxIdCh0aGlzLGUsdCl9LEomJnNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7Vi5kZXZ0b29scyYmb2UmJm9lLmVtaXQoImluaXQiLHVyKX0pLDApLHRbImEiXT11cn0pLmNhbGwodGhpcyxuKCJjOGJhIikpfSwiMmI0YyI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjU1MzciKSgid2tzIiksaT1uKCJjYTVhIiksYT1uKCI3NzI2IikuU3ltYm9sLG89ImZ1bmN0aW9uIj09dHlwZW9mIGEsYz1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHJbZV18fChyW2VdPW8mJmFbZV18fChvP2E6aSkoIlN5bWJvbC4iK2UpKX07Yy5zdG9yZT1yfSwiMmQwMCI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ITF9LCIyZDk1IjpmdW5jdGlvbihlLHQpe3ZhciBuPXt9LnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbi5jYWxsKGUpLnNsaWNlKDgsLTEpfX0sIjJmNmQiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiByfSkpO24oIjdmN2YiKTt2YXIgcj17Y3JlYXRlZDpmdW5jdGlvbigpe2NvbnNvbGUud2FybigiWyIuY29uY2F0KHRoaXMuJG9wdGlvbnMubmFtZSwiXSBUaGlzIHdpZGdldCBpcyBkZXByZWNhdGVkIGFuZCBpcyBubyBsb25nZXIgbWFpbnRhaW5lZC4gUGxlYXNlIHZpc2l0IGh0dHBzOi8vd3d3LmNvaW5nZWNrby5jb20vd2lkZ2V0cyB0byBnZXQgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoaXMgd2lkZ2V0LCB3aGljaCBmZWF0dXJlcyBhIG5ldyBkZXNpZ24gYW5kIGJldHRlciBwZXJmb3JtYW5jZSEiKSl9fX0sIjMwZjEiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiYjhlMyIpLGk9bigiNjNiNiIpLGE9bigiOTEzOCIpLG89bigiMzVlOCIpLGM9bigiNDgxYiIpLHM9bigiOGY2MCIpLHA9bigiNDVmMiIpLGw9bigiNTNlMiIpLHU9bigiNTE2OCIpKCJpdGVyYXRvciIpLGQ9IShbXS5rZXlzJiYibmV4dCJpbltdLmtleXMoKSksXz0iQEBpdGVyYXRvciIsbT0ia2V5cyIsZj0idmFsdWVzIixoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbix2LHksZyx3KXtzKG4sdCx2KTt2YXIgYixrLHgsQz1mdW5jdGlvbihlKXtpZighZCYmZSBpbiBPKXJldHVybiBPW2VdO3N3aXRjaChlKXtjYXNlIG06cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsZSl9O2Nhc2UgZjpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcyxlKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBuKHRoaXMsZSl9fSxTPXQrIiBJdGVyYXRvciIsUD15PT1mLGo9ITEsTz1lLnByb3RvdHlwZSxBPU9bdV18fE9bX118fHkmJk9beV0sRT1BfHxDKHkpLFQ9eT9QP0MoImVudHJpZXMiKTpFOnZvaWQgMCxEPSJBcnJheSI9PXQmJk8uZW50cmllc3x8QTtpZihEJiYoeD1sKEQuY2FsbChuZXcgZSkpLHghPT1PYmplY3QucHJvdG90eXBlJiZ4Lm5leHQmJihwKHgsUywhMCkscnx8ImZ1bmN0aW9uIj09dHlwZW9mIHhbdV18fG8oeCx1LGgpKSksUCYmQSYmQS5uYW1lIT09ZiYmKGo9ITAsRT1mdW5jdGlvbigpe3JldHVybiBBLmNhbGwodGhpcyl9KSxyJiYhd3x8IWQmJiFqJiZPW3VdfHxvKE8sdSxFKSxjW3RdPUUsY1tTXT1oLHkpaWYoYj17dmFsdWVzOlA/RTpDKGYpLGtleXM6Zz9FOkMobSksZW50cmllczpUfSx3KWZvcihrIGluIGIpayBpbiBPfHxhKE8sayxiW2tdKTtlbHNlIGkoaS5QK2kuRiooZHx8aiksdCxiKTtyZXR1cm4gYn19LCIzMmU5IjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiODZjYyIpLGk9bigiNDYzMCIpO2UuZXhwb3J0cz1uKCI5ZTFlIik/ZnVuY3Rpb24oZSx0LG4pe3JldHVybiByLmYoZSx0LGkoMSxuKSl9OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVt0XT1uLGV9fSwiMzJmYyI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImU1M2QiKS5kb2N1bWVudDtlLmV4cG9ydHM9ciYmci5kb2N1bWVudEVsZW1lbnR9LCIzMzVjIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiNmI0YyIpO2UuZXhwb3J0cz1PYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKT9PYmplY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIlN0cmluZyI9PXIoZSk/ZS5zcGxpdCgiIik6T2JqZWN0KGUpfX0sMzUwNDpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoi5oC75biC5YC85o6S5ZCNIiwibWNhcCI6IuaAu+W4guWAvCIsIjI0aF92b2x1bWUiOiIyNCDlsI/ml7bkuqTmmJPph48iLCIyNGhfaGlnaF9sb3ciOiIyNOWwj+aXtumrmC/kvY4ifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5pSv5oyBIiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiLliqDlr4bku7fmoLzmr5TovoMiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoi5Yqg5a+G6LSn5biB5biC5YC85q+U6L6DIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5pSv5oyBIn0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjQg5bCP5pe25pyA6auY5Lu35qC8IiwiMjRoX2xvdyI6IjI0IOWwj+aXtuacgOS9juS7t+agvCIsInZpZXdfcHJpY2VfY2hhcnQiOiLmn6XnnIsgJXtjb2lufSDku7fmoLzotbDlir/lm74iLCJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5pSv5oyBIn0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IueUsSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOaUr+aMgSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmlK/mjIEifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IueUsSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOaUr+aMgSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNCDlsI/ml7bmnIDpq5jku7fmoLwiLCIyNGhfbG93IjoiMjQg5bCP5pe25pyA5L2O5Lu35qC8Iiwidmlld19wcmljZV9jaGFydCI6IuafpeeciyAle2NvaW59IOS7t+agvOi1sOWKv+WbviIsInBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmlK/mjIEifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiLmn6XnnIsgJXtjb2lufSDku7fmoLzotbDlir/lm74iLCJwb3dlcmVkX2J5Ijoi55SxICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g5pSv5oyBIn0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiLliqDlr4botKfluIHmoJHlnovlm74iLCJzdWJ0aXRsZSI6Iu+8iOW4guWAvOaOkuWQjeWJjSV7dG9wfe+8iSIsInBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmlK/mjIEifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLlhY3otKPlo7DmmI7vvJrmraTlt6Xlhbfku4XnlKjkuo7lqLHkuZDnm67nmoTvvIzkuI3mnoTmiJDku7vkvZXph5Hono3lu7rorq7jgIIiLCJzcGluIjoiU3BpbiIsImF2YWlsYWJsZV9jb2lucyI6IuWPr+eUqOS7o+W4gSJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyDku7fmoLzmm7TmlrAiLCJ0b3RhbF9tY2FwIjoi5oC75biC5YC8IiwiMjRoX3ZvbCI6IjI05bCP5pe25Lqk5piT6YePIiwiZG9tIjoi5biC5Y2g546HIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IuS6pOaYk+aJgCIsInBhaXIiOiLotKfluIHnu4TlkIgiLCJwcmljZSI6IuS7t+agvCIsInZvbHVtZSI6IuS6pOaYk+mHjyIsInRydXN0X3Njb3JlIjoi5L+h55So6K+E5YiGIiwidmlld19wcmljZV9jaGFydCI6Iuafpeeci+S7t+agvOi1sOWKv+WbviIsInBvd2VyZWRfYnkiOiLnlLEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDmlK/mjIEiLCJ2aWV3X2FsbCI6Iuafpeeci+aJgOaciSAle2NvaW59IOW4guWcuiJ9fScpfSwiMzU1ZCI6ZnVuY3Rpb24oZSx0KXt0LmY9e30ucHJvcGVydHlJc0VudW1lcmFibGV9LCIzNWU4IjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZDlmNiIpLGk9bigiYWViZCIpO2UuZXhwb3J0cz1uKCI4ZTYwIik/ZnVuY3Rpb24oZSx0LG4pe3JldHVybiByLmYoZSx0LGkoMSxuKSl9OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZVt0XT1uLGV9fSwiMzZjMyI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjMzNWMiKSxpPW4oIjI1ZWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoaShlKSl9fSwzODQ2OmZ1bmN0aW9uKGUsdCxuKXtuKCI5ZTFlIikmJiJnIiE9Ly4vZy5mbGFncyYmbigiODZjYyIpLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0Om4oIjBiZmIiKX0pfSwiMzhmZCI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjY5YTgiKSxpPW4oIjRiZjgiKSxhPW4oIjYxM2IiKSgiSUVfUFJPVE8iKSxvPU9iamVjdC5wcm90b3R5cGU7ZS5leHBvcnRzPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSl7cmV0dXJuIGU9aShlKSxyKGUsYSk/ZVthXToiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25zdHJ1Y3RvciYmZSBpbnN0YW5jZW9mIGUuY29uc3RydWN0b3I/ZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6ZSBpbnN0YW5jZW9mIE9iamVjdD9vOm51bGx9fSwiM2EzOCI6ZnVuY3Rpb24oZSx0KXt2YXIgbj1NYXRoLmNlaWwscj1NYXRoLmZsb29yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaXNOYU4oZT0rZSk/MDooZT4wP3I6bikoZSl9fSwiM2RhOSI6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IlBvcmFkaWUgdHJob3ZlaiBrYXBpdGFsaXrDoWNpZSIsIm1jYXAiOiJUcmhvdsOhIGthcGl0YWxpesOhY2lhIiwiMjRoX3ZvbHVtZSI6Ik9iamVtIHphIDI0SCIsIjI0aF9oaWdoX2xvdyI6IjI0SCB2eXNva8OhL27DrXprYSJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb2jDocWIYW7DqSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJQb3Jvdm5hbmllIGNpZW4ga3J5cHRvbWllbiIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiJQb3Jvdm5hbmllIHRyaG92ZWoga2FwaXRhbGl6w6FjaWUga3J5cHRvbWllbiJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBvaMOhxYhhbsOpICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNEggdnlzb2vDoSIsIjI0aF9sb3ciOiIyNEggbsOtemthIiwidmlld19wcmljZV9jaGFydCI6IlpvYnJhemnFpSBjZW5vdsO9IGdyYWYgcHJlICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiUG9ow6HFiGFuw6kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb2jDocWIYW7DqSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBvaMOhxYhhbsOpICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBvaMOhxYhhbsOpICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjRIIHZ5c29rw6EiLCIyNGhfbG93IjoiMjRIIG7DrXprYSIsInZpZXdfcHJpY2VfY2hhcnQiOiJab2JyYXppxaUgY2Vub3bDvSBncmFmIHByZSAle2NvaW59IiwicG93ZXJlZF9ieSI6IlBvaMOhxYhhbsOpICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiJab2JyYXppxaUgY2Vub3bDvSBncmFmIHByZSAle2NvaW59IiwicG93ZXJlZF9ieSI6IlBvaMOhxYhhbsOpICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6Ik1hcGEga3J5cHRvbWllbiIsInN1YnRpdGxlIjoiKFRvcCAle3RvcH0gcG9kxL5hIHRyaG92ZWoga2FwKSIsInBvd2VyZWRfYnkiOiJQb2jDocWIYW7DqSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiWnJpZWtudXRpZSBzYSB6b2Rwb3ZlZG5vc3RpOiBUZW50byBuw6FzdHJvaiBzbMO6xb5pYSBuYSB6w6FiYXZ1IGEgbmVwcmVkc3RhdnVqw7ogZmluYW7EjW7DqSBwb3JhZGVuc3R2by4iLCJzcGluIjoiVG/EjWnFpSIsImF2YWlsYWJsZV9jb2lucyI6IkRvc3R1cG7DqSBjb2lueSJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkFrdHVhbGl6w6FjaWEgY2VueSBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiQ2Vsa292w6EgdHJoLiBrYXAuIiwiMjRoX3ZvbCI6Ik9iamVtIHphIDI0aCIsImRvbSI6IkRvbWluYW5jaWEifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiQnVyemEiLCJwYWlyIjoiUMOhciIsInByaWNlIjoiQ2VuYSIsInZvbHVtZSI6Ik9iamVtIiwidHJ1c3Rfc2NvcmUiOiJTa8OzcmUgZMO0dmVyeWhvZG5vc3RpIiwidmlld19wcmljZV9jaGFydCI6IlpvYnJhemnFpSBjZW5vdsO9IGdyYWYiLCJwb3dlcmVkX2J5IjoiUG9ow6HFiGFuw6kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiWm9icmF6acWlIHbFoWV0a3kgdHJoeSAle2NvaW59In19Jyl9LCI0MWEwIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjJhZWIiKSxpPW4oIjQ2MzAiKSxhPW4oIjdmMjAiKSxvPXt9O24oIjMyZTkiKShvLG4oIjJiNGMiKSgiaXRlcmF0b3IiKSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2UucHJvdG90eXBlPXIobyx7bmV4dDppKDEsbil9KSxhKGUsdCsiIEl0ZXJhdG9yIil9fSwiNDU2ZCI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjRiZjgiKSxpPW4oIjBkNTgiKTtuKCI1ZWRhIikoImtleXMiLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gaShyKGUpKX19KSl9LDQ1ODg6ZnVuY3Rpb24oZSx0KXt2YXIgbj1NYXRoLmNlaWwscj1NYXRoLmZsb29yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gaXNOYU4oZT0rZSk/MDooZT4wP3I6bikoZSl9fSwiNDVmMiI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImQ5ZjYiKS5mLGk9bigiMDdlMyIpLGE9bigiNTE2OCIpKCJ0b1N0cmluZ1RhZyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7ZSYmIWkoZT1uP2U6ZS5wcm90b3R5cGUsYSkmJnIoZSxhLHtjb25maWd1cmFibGU6ITAsdmFsdWU6dH0pfX0sNDYwMTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjgzYzIiKSxpPXIoIiVUeXBlRXJyb3IlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYobnVsbD09ZSl0aHJvdyBuZXcgaSh0fHwiQ2Fubm90IGNhbGwgbWV0aG9kIG9uICIrZSk7cmV0dXJuIGV9fSw0NjMwOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJue2VudW1lcmFibGU6ISgxJmUpLGNvbmZpZ3VyYWJsZTohKDImZSksd3JpdGFibGU6ISg0JmUpLHZhbHVlOnR9fX0sIjQ3ZWUiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJjM2ExIiksaT1uKCI5YWE5IiksYT1uKCIzNTVkIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIoZSksbj1pLmY7aWYobil7dmFyIG8sYz1uKGUpLHM9YS5mLHA9MDt3aGlsZShjLmxlbmd0aD5wKXMuY2FsbChlLG89Y1twKytdKSYmdC5wdXNoKG8pfXJldHVybiB0fX0sIjQ4MWIiOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPXt9fSwiNGJmOCI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImJlMTMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChyKGUpKX19LCI0YzViIjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiQsO2cnN2w6RyZGVzcmFua25pbmciLCJtY2FwIjoiQsO2cnN2w6RyZGUiLCIyNGhfdm9sdW1lIjoiVm9seW0gMjQgaCIsIjI0aF9oaWdoX2xvdyI6IjI0SCBow7Znc3QvbMOkZ3N0YSJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcml2cyBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJKw6RtZsO2cmVsc2UgYXYga3J5cHRvcHJpc2VyIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IkrDpG1mw7ZyZWxzZSBhdiBrcnlwdG9iw7Zyc3bDpHJkZSJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRyaXZzIGF2ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNCBoIGjDtmdzdGEiLCIyNGhfbG93IjoiMjRoIGzDpGdzdGEiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmlzYSBwcmlzbGlzdGEgZsO2ciAle2NvaW59IiwicG93ZXJlZF9ieSI6IkRyaXZzIGF2ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiRHJpdnMgYXYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcml2cyBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcml2cyBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0IGggaMO2Z3N0YSIsIjI0aF9sb3ciOiIyNGggbMOkZ3N0YSIsInZpZXdfcHJpY2VfY2hhcnQiOiJWaXNhIHByaXNsaXN0YSBmw7ZyICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiRHJpdnMgYXYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZpc2EgcHJpc2xpc3RhIGbDtnIgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJEcml2cyBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiJUcsOkZGthcnRhIMO2dmVyIGtyeXB0b3ZhbHV0b3IiLCJzdWJ0aXRsZSI6Iigle3RvcH0gaSB0b3BwIGVmdGVyIGLDtnJzdsOkcmRlKSIsInBvd2VyZWRfYnkiOiJEcml2cyBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiT2JzISBEZXNzYSB2ZXJrdHlnIGZ1bmdlcmFyIHNvbSB1bmRlcmjDpWxsbmluZyBvY2ggdXRnw7ZyIGludGUgZmluYW5zaWVsbCByw6VkZ2l2bmluZy4iLCJzcGluIjoiU251cnJhIiwiYXZhaWxhYmxlX2NvaW5zIjoiVGlsbGfDpG5nbGlnYSBteW50In0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiUHJpc3VwcGRhdGVyaW5nIGhvcyBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiVG90YWx0IGLDtnJzdsOkcmRlIiwiMjRoX3ZvbCI6IlZvbHltIDI0IGgiLCJkb20iOiJEb20ifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiSGFuZGVsIiwicGFpciI6IlBhciIsInByaWNlIjoiUHJpcyIsInZvbHVtZSI6IlZvbHltIiwidHJ1c3Rfc2NvcmUiOiJGw7ZydHJvZW5kZWJldHlnIiwidmlld19wcmljZV9jaGFydCI6IlZpc2EgcHJpc3RhYmVsbCIsInBvd2VyZWRfYnkiOiJEcml2cyBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJWaXNhIGFsbGEgJXtjb2lufS1tYXJrbmFkZXIifX0nKX0sIjRkMDEiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMGY3YyIpLGk9bigiODNjMiIpLGE9aSgiJUZ1bmN0aW9uJSIpLG89YS5hcHBseSxjPWEuY2FsbDtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gci5hcHBseShjLGFyZ3VtZW50cyl9LGUuZXhwb3J0cy5hcHBseT1mdW5jdGlvbigpe3JldHVybiByLmFwcGx5KG8sYXJndW1lbnRzKX19LCI0ZTczIjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiS2FwaXRhbGl6w6FjacOzcyByYW5nIiwibWNhcCI6IlBpYWNpIGthcGl0YWxpesOhY2nDsyIsIjI0aF92b2x1bWUiOiIyNCDDs3LDoXMgZm9yZ2Fsb20iLCIyNGhfaGlnaF9sb3ciOiIyNCDDs3LDoXMgbWF4aW11bS9taW5pbXVtIn0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkEoeikgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSBqw7N2b2x0w6Fiw7NsIiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJLcmlwdG/DoXJmb2x5YW1vayDDtnNzemVoYXNvbmzDrXTDoXNhIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IktyaXB0b3BpYWNpIGthcGl0YWxpesOhY2nDsyDDtnNzemVoYXNvbmzDrXTDoXNhIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiQSh6KSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IGrDs3ZvbHTDoWLDs2wifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNCDDs3LDoXMgbWF4aW11bSIsIjI0aF9sb3ciOiIyNCDDs3LDoXMgbWluaW11bSIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59LcOhcmZvbHlhbWRpYWdyYW0gbWVndGVraW50w6lzZSIsInBvd2VyZWRfYnkiOiJBKHopICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gasOzdm9sdMOhYsOzbCJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJBKHopICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gasOzdm9sdMOhYsOzbCJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJBKHopICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gasOzdm9sdMOhYsOzbCJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiQSh6KSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IGrDs3ZvbHTDoWLDs2wifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjQgw7Nyw6FzIG1heGltdW0iLCIyNGhfbG93IjoiMjQgw7Nyw6FzIG1pbmltdW0iLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiJXtjb2lufS3DoXJmb2x5YW1kaWFncmFtIG1lZ3Rla2ludMOpc2UiLCJwb3dlcmVkX2J5IjoiQSh6KSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IGrDs3ZvbHTDoWLDs2wifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59LcOhcmZvbHlhbWRpYWdyYW0gbWVndGVraW50w6lzZSIsInBvd2VyZWRfYnkiOiJBKHopICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gasOzdm9sdMOhYsOzbCJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoiS3JpcHRvZGV2aXrDoWsgZmFzdHJ1a3TDunJhLXTDqXJrw6lwZSIsInN1YnRpdGxlIjoiKEVsc8WRICV7dG9wfSBrYXBpdGFsaXrDoWNpw7MgYWxhcGrDoW4pIiwicG93ZXJlZF9ieSI6IkEoeikgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSBqw7N2b2x0w6Fiw7NsIn0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiRmVsZWzFkXNzw6lnaSBueWlsYXRrb3phdDogZXogYXogY3NhayBlc3prw7Z6IHN6w7NyYWtvenRhdMOhc3JhIHN6b2xnw6FsLCBuZW0gbWluxZFzw7xsIHDDqW56w7xneWkgdGFuw6Fjc2Fkw6FzbmFrLiIsInNwaW4iOiJQw7ZyZ2V0w6lzIiwiYXZhaWxhYmxlX2NvaW5zIjoiRWzDqXJoZXTFkSDDqXJtw6lrIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiQ29pbkdlY2tvLcOhcmZvbHlhbWZyaXNzw610w6lzIiwidG90YWxfbWNhcCI6IlRlbGplcyBwLiBrYXAuIiwiMjRoX3ZvbCI6IjI0IMOzcsOhcyBmb3JnYWxvbSIsImRvbSI6IkRvbWluYW5jaWEifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiVMWRenNkZSIsInBhaXIiOiJEZXZpemFww6FyIiwicHJpY2UiOiLDgXJmb2x5YW0iLCJ2b2x1bWUiOiJGb3JnYWxvbSIsInRydXN0X3Njb3JlIjoiTWVnYsOtemhhdMOzc8OhZ2kgcG9udHN6w6FtIiwidmlld19wcmljZV9jaGFydCI6IsOBcmZvbHlhbWRpYWdyYW0gbWVndGVraW50w6lzZSIsInBvd2VyZWRfYnkiOiJBKHopICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gasOzdm9sdMOhYsOzbCIsInZpZXdfYWxsIjoiw5Zzc3plcyAle2NvaW59LXBpYWMgbWVndGVraW50w6lzZSJ9fScpfSwiNTBlZCI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57dmFsdWU6dCxkb25lOiEhZX19fSw1MTY4OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJkYmRiIikoIndrcyIpLGk9bigiNjJhMCIpLGE9bigiZTUzZCIpLlN5bWJvbCxvPSJmdW5jdGlvbiI9PXR5cGVvZiBhLGM9ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByW2VdfHwocltlXT1vJiZhW2VdfHwobz9hOmkpKCJTeW1ib2wuIitlKSl9O2Muc3RvcmU9cn0sIjUyMGEiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMGJmYiIpLGk9UmVnRXhwLnByb3RvdHlwZS5leGVjLGE9U3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLG89aSxjPSJsYXN0SW5kZXgiLHM9ZnVuY3Rpb24oKXt2YXIgZT0vYS8sdD0vYiovZztyZXR1cm4gaS5jYWxsKGUsImEiKSxpLmNhbGwodCwiYSIpLDAhPT1lW2NdfHwwIT09dFtjXX0oKSxwPXZvaWQgMCE9PS8oKT8/Ly5leGVjKCIiKVsxXSxsPXN8fHA7bCYmKG89ZnVuY3Rpb24oZSl7dmFyIHQsbixvLGwsdT10aGlzO3JldHVybiBwJiYobj1uZXcgUmVnRXhwKCJeIit1LnNvdXJjZSsiJCg/IVxccykiLHIuY2FsbCh1KSkpLHMmJih0PXVbY10pLG89aS5jYWxsKHUsZSkscyYmbyYmKHVbY109dS5nbG9iYWw/by5pbmRleCtvWzBdLmxlbmd0aDp0KSxwJiZvJiZvLmxlbmd0aD4xJiZhLmNhbGwob1swXSxuLChmdW5jdGlvbigpe2ZvcihsPTE7bDxhcmd1bWVudHMubGVuZ3RoLTI7bCsrKXZvaWQgMD09PWFyZ3VtZW50c1tsXSYmKG9bbF09dm9pZCAwKX0pKSxvfSksZS5leHBvcnRzPW99LCI1MmE3IjpmdW5jdGlvbihlLHQpe3QuZj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZX0sNTMwOTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJhIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKTt2YXIgcj17Y3VzdG9tRWxlbWVudDp7c3JjOiJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9kb2N1bWVudC1yZWdpc3Rlci1lbGVtZW50LzEuMTEuMS9kb2N1bWVudC1yZWdpc3Rlci1lbGVtZW50LmpzIixpbnRlZ3JpdHk6InNoYTM4NC16QTZWNGNoWUZHZ3NlemgxeUFRenVzMlZOVWN5VHlHSTNOTzdMNXBFaUU4QU9YdjNFQytPUzJDLy83MlZVNk1nIn0sZmV0Y2g6e3NyYzoiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvZmV0Y2gvMi4wLjQvZmV0Y2gubWluLmpzIixpbnRlZ3JpdHk6InNoYTM4NC0ya2t1cXdTQ0Z6ZTF5N1VjQWVqVUg2d3QyTXBRNG5hYSsreldQMFN4eVVDL2pud3E5MVNBZmUxNFJBcnVYdG5WIn0sY3NzdmFyOntzcmM6Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vY3NzLXZhcnMtcG9ueWZpbGxAMS4xNi4yIixpbnRlZ3JpdHk6InNoYTM4NC00c1ZWc3RHQVg1RUVIUXp4c2ZmMDVDZWRZNDZVVmpYT01jVTVlbHU5NHZ6dEc1Yk8yVlNBcTY5RDFaUEdQTDVFIn0sY29uZmV0dGk6e3NyYzoiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9jYW52YXMtY29uZmV0dGlAMS45LjMvZGlzdC9jb25mZXR0aS5icm93c2VyLm1pbi5qcyIsaW50ZWdyaXR5OiJzaGEzODQtR3ZKMjRPN0Jwbjd6TG5rVHpLRndhUE8wVWN6MG5uSlJra24yeFMwK1NaOHZ1Q01Zbi9QakMvaCtXSWVobkdTTSJ9fX0sIjUzZTIiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCIwN2UzIiksaT1uKCIyNDFlIiksYT1uKCI1NTU5IikoIklFX1BST1RPIiksbz1PYmplY3QucHJvdG90eXBlO2UuZXhwb3J0cz1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKGUpe3JldHVybiBlPWkoZSkscihlLGEpP2VbYV06ImZ1bmN0aW9uIj09dHlwZW9mIGUuY29uc3RydWN0b3ImJmUgaW5zdGFuY2VvZiBlLmNvbnN0cnVjdG9yP2UuY29uc3RydWN0b3IucHJvdG90eXBlOmUgaW5zdGFuY2VvZiBPYmplY3Q/bzpudWxsfX0sNTUzNzpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiODM3OCIpLGk9bigiNzcyNiIpLGE9Il9fY29yZS1qc19zaGFyZWRfXyIsbz1pW2FdfHwoaVthXT17fSk7KGUuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBvW2VdfHwob1tlXT12b2lkIDAhPT10P3Q6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjpyLnZlcnNpb24sbW9kZTpuKCIyZDAwIik/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxOSBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSJ9KX0sNTU1OTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZGJkYiIpKCJrZXlzIiksaT1uKCI2MmEwIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByW2VdfHwocltlXT1pKGUpKX19LCI1NjJlIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjQ2MDEiKSxpPW4oIjExNTMiKSxhPW4oIjhhYjUiKSxvPWEoIlN0cmluZy5wcm90b3R5cGUucmVwbGFjZSIpLGM9L15bXHgwOVx4MEFceDBCXHgwQ1x4MERceDIwXHhBMFx1MTY4MFx1MTgwRVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwQVx1MjAyRlx1MjA1Rlx1MzAwMFx1MjAyOFx1MjAyOVx1RkVGRl0rLyxzPS9bXHgwOVx4MEFceDBCXHgwQ1x4MERceDIwXHhBMFx1MTY4MFx1MTgwRVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwQVx1MjAyRlx1MjA1Rlx1MzAwMFx1MjAyOFx1MjAyOVx1RkVGRl0rJC87ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIGU9aShyKHRoaXMpKTtyZXR1cm4gbyhvKGUsYywiIikscywiIil9fSw1NzU0OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiJNYXJra2luYS1hcnZvbiBzaWphIiwibWNhcCI6Ik1hcmtraW5hLWFydm8iLCIyNGhfdm9sdW1lIjoiMjR0IHZvbHl5bWkiLCIyNGhfaGlnaF9sb3ciOiIyNHQga29ya2VpbiAvIGFsaW4gaGludGEifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUGFsdmVsdW4gdGFyam9hYSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJLcnlwdG9qZW4gaGlubmFudmVydGFpbHUiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiS3J5cHRvamVuIG1hcmtraW5hLWFydm9qZW4gdmVydGFpbHUifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQYWx2ZWx1biB0YXJqb2FhICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNHQgS29ya2VpbiIsIjI0aF9sb3ciOiIyNHQgQWxoYWlzaW4iLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiTsOkeXTDpCBrb2xpa29uICV7Y29pbn0gaGludGFrYWF2aW8iLCJwb3dlcmVkX2J5IjoiUGFsdmVsdW4gdGFyam9hYSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBhbHZlbHVuIHRhcmpvYWEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQYWx2ZWx1biB0YXJqb2FhICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBhbHZlbHVuIHRhcmpvYWEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNHQgS29ya2VpbiIsIjI0aF9sb3ciOiIyNHQgQWxoYWlzaW4iLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiTsOkeXTDpCBrb2xpa29uICV7Y29pbn0gaGludGFrYWF2aW8iLCJwb3dlcmVkX2J5IjoiUGFsdmVsdW4gdGFyam9hYSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fY29udmVydGVyX3dpZGdldCI6eyJ2aWV3X3ByaWNlX2NoYXJ0IjoiTsOkeXTDpCBrb2xpa29uICV7Y29pbn0gaGludGFrYWF2aW8iLCJwb3dlcmVkX2J5IjoiUGFsdmVsdW4gdGFyam9hYSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiJLcnlwdG92YWx1dXR0b2plbiBwdXVrYWF2aW8iLCJzdWJ0aXRsZSI6IihQYXJoYWF0ICV7dG9wfSBtYXJra2luYS1hcnZvbiBtdWthYW4pIiwicG93ZXJlZF9ieSI6IlBhbHZlbHVuIHRhcmpvYWEgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IlZhc3R1dXZhcGF1c2xhdXNla2U6IFTDpG3DpCB0ecO2a2FsdSBvbiB0YXJrb2l0ZXR0dSB2aWloZGVrw6R5dHTDtsO2biwgamEgc2VuIHNpc8OkbHTDtiBlaSBvbGUgdGFsb3VkZWxsaXN0YSBuZXV2b250YWEuIiwic3BpbiI6IlB5w7Zyw6R5dMOkIiwiYXZhaWxhYmxlX2NvaW5zIjoiU2FhdGF2aWxsYSBvbGV2YXQga29saWtvdCJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyBoaW5uYW5ww6Rpdml0eXMiLCJ0b3RhbF9tY2FwIjoiS29rb25haXNtYXJra2luYS1hcnZvIiwiMjRoX3ZvbCI6IjI0IHR1bm5pbiB2b2x5eW1pIiwiZG9tIjoiRG9taW5hbnNzaSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJLcnlwdG9ww7Zyc3NpIiwicGFpciI6IlBhcmkiLCJwcmljZSI6IkhpbnRhIiwidm9sdW1lIjoiVm9seXltaSIsInRydXN0X3Njb3JlIjoiVHJ1c3QgU2NvcmUiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiTsOkeXTDpCBoaW50YWthYXZpbyIsInBvd2VyZWRfYnkiOiJQYWx2ZWx1biB0YXJqb2FhICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJ2aWV3X2FsbCI6Ik7DpHl0w6Qga2Fpa2tpICV7Y29pbn0gbWFya2tpbmF0In19Jyl9LCI1ODRhIjpmdW5jdGlvbihlLHQpe3ZhciBuPWUuZXhwb3J0cz17dmVyc2lvbjoiMi42LjExIn07Im51bWJlciI9PXR5cGVvZiBfX2UmJihfX2U9bil9LCI1YjRlIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiMzZjMyIpLGk9bigiYjQ0NyIpLGE9bigiMGZjOSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuLG8pe3ZhciBjLHM9cih0KSxwPWkocy5sZW5ndGgpLGw9YShvLHApO2lmKGUmJm4hPW4pe3doaWxlKHA+bClpZihjPXNbbCsrXSxjIT1jKXJldHVybiEwfWVsc2UgZm9yKDtwPmw7bCsrKWlmKChlfHxsIGluIHMpJiZzW2xdPT09bilyZXR1cm4gZXx8bHx8MDtyZXR1cm4hZSYmLTF9fX0sIjVjMjIiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5yKHQpO24oIjZiNTQiKTt2YXIgcj1uKCIyYjBlIiksaT1uKCJjODk0IiksYT1uKCI1MzA5Iiksbz1uKCJhZjE0IiksYz1uKCJjNjQ5Iikscz1uKCJkYTY4IikscD1uKCI2MWRhIiksbD1uLm4ocCk7clsiYSJdLnVzZShpWyJhIl0pO3ZhciB1PWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOntzaGFkb3c6ITF9O3JbImEiXS5jdXN0b21FbGVtZW50KCJjb2luZ2Vja28tY29pbi1wcmljZS1tYXJxdWVlLXdpZGdldCIsc1siYSJdLHtzaGFkb3c6ZS5zaGFkb3csc2hhZG93Q3NzOmwuYS50b1N0cmluZygpLGNvbm5lY3RlZENhbGxiYWNrOmZ1bmN0aW9uKCl7aWYoIWUuc2hhZG93KXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO3QuaW5uZXJIVE1MPWwuYS50b1N0cmluZygpLGRvY3VtZW50LmhlYWQuYXBwZW5kKHQpfX19KX07T2JqZWN0KG9bImEiXSkoKT91KHtzaGFkb3c6ITB9KTpPYmplY3QoY1siYyJdKShbYVsiYSJdLmN1c3RvbUVsZW1lbnQsYVsiYSJdLmZldGNoLGFbImEiXS5jc3N2YXJdKS50aGVuKChmdW5jdGlvbigpe3JldHVybiB1KHtzaGFkb3c6ITF9KX0pKX0sIjVjYTEiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI3NzI2IiksaT1uKCI4Mzc4IiksYT1uKCIzMmU5Iiksbz1uKCIyYWJhIiksYz1uKCI5YjQzIikscz0icHJvdG90eXBlIixwPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbCx1LGQsXyxtPWUmcC5GLGY9ZSZwLkcsaD1lJnAuUyx2PWUmcC5QLHk9ZSZwLkIsZz1mP3I6aD9yW3RdfHwoclt0XT17fSk6KHJbdF18fHt9KVtzXSx3PWY/aTppW3RdfHwoaVt0XT17fSksYj13W3NdfHwod1tzXT17fSk7Zm9yKGwgaW4gZiYmKG49dCksbil1PSFtJiZnJiZ2b2lkIDAhPT1nW2xdLGQ9KHU/ZzpuKVtsXSxfPXkmJnU/YyhkLHIpOnYmJiJmdW5jdGlvbiI9PXR5cGVvZiBkP2MoRnVuY3Rpb24uY2FsbCxkKTpkLGcmJm8oZyxsLGQsZSZwLlUpLHdbbF0hPWQmJmEodyxsLF8pLHYmJmJbbF0hPWQmJihiW2xdPWQpfTtyLmNvcmU9aSxwLkY9MSxwLkc9MixwLlM9NCxwLlA9OCxwLkI9MTYscC5XPTMyLHAuVT02NCxwLlI9MTI4LGUuZXhwb3J0cz1wfSwiNWQ1OCI6ZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKCJkOGQ2Iil9LCI1ZDY3IjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiQ2xhc3NpZmljYcOnw6NvIGRhIGNhcGl0YWxpemHDp8OjbyBkZSBtZXJjYWRvIiwibWNhcCI6IkNhcGl0YWxpemHDp8OjbyBkZSBtZXJjYWRvIiwiMjRoX3ZvbHVtZSI6IlZvbHVtZSBlbSAyNCBIIiwiMjRoX2hpZ2hfbG93IjoiMjRIIEFsdGEvQmFpeGEifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiRGVzZW52b2x2aWRvIHBvciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJDb21wYXJhw6fDo28gZGUgUHJlw6dvcyBkZSBDcmlwdG8iLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiQ29tcGFyYcOnw6NvIGRlIENhcGl0YWxpemHDp8OjbyBkZSBNZXJjYWRvIGRlIENyaXB0byJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRlc2Vudm9sdmlkbyBwb3IgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6IkFsdGEgZGUgMjQgaCIsIjI0aF9sb3ciOiJCYWl4YSBkZSAyNCBoIiwidmlld19wcmljZV9jaGFydCI6IlZlciBHcsOhZmljbyBkZSBQcmXDp29zICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiRGVzZW52b2x2aWRvIHBvciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRlc2Vudm9sdmlkbyBwb3IgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEZXNlbnZvbHZpZG8gcG9yICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRlc2Vudm9sdmlkbyBwb3IgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiJBbHRhIGRlIDI0IGgiLCIyNGhfbG93IjoiQmFpeGEgZGUgMjQgaCIsInZpZXdfcHJpY2VfY2hhcnQiOiJWZXIgR3LDoWZpY28gZGUgUHJlw6dvcyAle2NvaW59IiwicG93ZXJlZF9ieSI6IkRlc2Vudm9sdmlkbyBwb3IgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZlciBHcsOhZmljbyBkZSBQcmXDp29zICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiRGVzZW52b2x2aWRvIHBvciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiJNYXBhIGRlIMOhcnZvcmUgZGUgY3JpcHRvbW9lZGFzIiwic3VidGl0bGUiOiIoUHJpbmNpcGFpcyAle3RvcH0gTW9lZGFzIHBvciBDYXBpdGFsaXphw6fDo28gZGUgTWVyY2FkbykiLCJwb3dlcmVkX2J5IjoiRGVzZW52b2x2aWRvIHBvciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiQXRlbsOnw6NvOiBFc3RhcyBmZXJyYW1lbnRhcyBzw6NvIHBhcmEgZmlucyBkZSBlbnRyZXRlbmltZW50byBlIG7Do28gY29uc3RpdHVlbSBjb25zZWxob3MgZmluYW5jZWlyb3MuIiwic3BpbiI6IkdpcmFyIiwiYXZhaWxhYmxlX2NvaW5zIjoiTW9lZGFzIERpc3BvbsOtdmVpcyJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkF0dWFsaXphw6fDo28gZG8gUHJlw6dvcyBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiQ2FwaXRhbGl6YcOnw6NvIFRvdGFsIGRlIE1lcmNhZG8iLCIyNGhfdm9sIjoiVm9sdW1lIGVtIDI0IGgiLCJkb20iOiJEb20ifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiQ8OibWJpbyIsInBhaXIiOiJQYXIiLCJwcmljZSI6IlByZcOnbyIsInZvbHVtZSI6IlZvbHVtZSIsInRydXN0X3Njb3JlIjoiUGxhY2FyIGRlIENvbmZpYW7Dp2EiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmVyIEdyw6FmaWNvIGRlIFByZcOnb3MiLCJwb3dlcmVkX2J5IjoiRGVzZW52b2x2aWRvIHBvciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJWZXIgdG9kb3Mgb3MgbWVyY2Fkb3MgJXtjb2lufSJ9fScpfSwiNWRiYyI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImQzZjQiKSxpPW4oIjhiOTciKS5zZXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYSxvPXQuY29uc3RydWN0b3I7cmV0dXJuIG8hPT1uJiYiZnVuY3Rpb24iPT10eXBlb2YgbyYmKGE9by5wcm90b3R5cGUpIT09bi5wcm90b3R5cGUmJnIoYSkmJmkmJmkoZSxhKSxlfX0sIjVkZjIiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI1Y2ExIiksaT1uKCJkNzUyIik7cihyLlMrci5GKihOdW1iZXIucGFyc2VGbG9hdCE9aSksIk51bWJlciIse3BhcnNlRmxvYXQ6aX0pfSwiNWRmMyI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIwMmY0IikoITApO24oIjAxZjkiKShTdHJpbmcsIlN0cmluZyIsKGZ1bmN0aW9uKGUpe3RoaXMuX3Q9U3RyaW5nKGUpLHRoaXMuX2k9MH0pLChmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fdCxuPXRoaXMuX2k7cmV0dXJuIG4+PXQubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KGU9cih0LG4pLHRoaXMuX2krPWUubGVuZ3RoLHt2YWx1ZTplLGRvbmU6ITF9KX0pKX0sIjVlZGEiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI1Y2ExIiksaT1uKCI4Mzc4IiksYT1uKCI3OWU1Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49KGkuT2JqZWN0fHx7fSlbZV18fE9iamVjdFtlXSxvPXt9O29bZV09dChuKSxyKHIuUytyLkYqYSgoZnVuY3Rpb24oKXtuKDEpfSkpLCJPYmplY3QiLG8pfX0sIjVmMWIiOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiMjNjNiIpLGk9UmVnRXhwLnByb3RvdHlwZS5leGVjO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWUuZXhlYztpZigiZnVuY3Rpb24iPT09dHlwZW9mIG4pe3ZhciBhPW4uY2FsbChlLHQpO2lmKCJvYmplY3QiIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVnRXhwIGV4ZWMgbWV0aG9kIHJldHVybmVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGFuIE9iamVjdCBvciBudWxsIik7cmV0dXJuIGF9aWYoIlJlZ0V4cCIhPT1yKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCNleGVjIGNhbGxlZCBvbiBpbmNvbXBhdGlibGUgcmVjZWl2ZXIiKTtyZXR1cm4gaS5jYWxsKGUsdCl9fSw2MDQ1OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiJSaW5rb3Mga2FwaXRhbGl6YWNpam9zIHJlaXRpbmdhcyIsIm1jYXAiOiJSaW5rb3Mga2FwaXRhbGl6YWNpamEiLCIyNGhfdm9sdW1lIjoiMjQgdmFsLiBhcGltdGlzIiwiMjRoX2hpZ2hfbG93IjoiQXVrxaHEjWlhdXNpYSAvIG1hxb5pYXVzaWEgcGVyIDI0IHZhbC4ifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoixK5kaWVndGEgcGFnYWwgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiS3JpcHRvdmFsaXV0xbMga2FpbsWzIHBhbHlnaW5pbWFzIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IktyaXB0b3ZhbGl1dMWzIHJpbmtvcyB0YWxwb3MgcGFseWdpbmltYXMifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLErmRpZWd0YSBwYWdhbCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiRGlkxb5pYXVzaWEgcGVyIDI0IHZhbC4iLCIyNGhfbG93Ijoixb1lbWlhdXNpYSBwZXIgMjQgdmFsLiIsInZpZXdfcHJpY2VfY2hhcnQiOiJQZXLFvmnFq3LEl3RpICV7Y29pbn0gS2FpbsWzIGRpYWdyYW1hIiwicG93ZXJlZF9ieSI6IsSuZGllZ3RhIHBhZ2FsICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoixK5kaWVndGEgcGFnYWwgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLErmRpZWd0YSBwYWdhbCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLErmRpZWd0YSBwYWdhbCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IkRpZMW+aWF1c2lhIHBlciAyNCB2YWwuIiwiMjRoX2xvdyI6IsW9ZW1pYXVzaWEgcGVyIDI0IHZhbC4iLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiUGVyxb5pxatyxJd0aSAle2NvaW59IEthaW7FsyBkaWFncmFtYSIsInBvd2VyZWRfYnkiOiLErmRpZWd0YSBwYWdhbCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fY29udmVydGVyX3dpZGdldCI6eyJ2aWV3X3ByaWNlX2NoYXJ0IjoiUGVyxb5pxatyxJd0aSAle2NvaW59IEthaW7FsyBkaWFncmFtYSIsInBvd2VyZWRfYnkiOiLErmRpZWd0YSBwYWdhbCAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiJLcmlwdG92YWxpdXTFsyBtZWRpcyIsInN1YnRpdGxlIjoiKFBvcHVsaWFyaWF1c2lvcyAgJXt0b3B9IHBhZ2FsIHJpbmtvcyBrYXBpdGFsaXphY2lqxIUpIiwicG93ZXJlZF9ieSI6IsSuZGllZ3RhIHBhZ2FsICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiJBdHNha29teWLEl3MgYXByaWJvamltYXM6IMWgaWUgxK9yYW5raWFpIHNraXJ0aSBwcmFtb2dhaSBpciBuxJdyYSBmaW5hbnNpbsSXcyBrb25zdWx0YWNpam9zLiIsInNwaW4iOiJTdWt0aSIsImF2YWlsYWJsZV9jb2lucyI6IlByaWVpbmFtb3MgbW9uZXRvcyJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyBLYWluxbMgQXRuYXVqaW5pbWFzIiwidG90YWxfbWNhcCI6IkJlbmRyYSBNIHJpYmEiLCIyNGhfdm9sIjoiQXBpbXRpcyBwZXIgMjQgdmFsLiIsImRvbSI6IkRvbWluYXZpbWFzIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IktlaXR5a2xhIiwicGFpciI6IlBvcmEiLCJwcmljZSI6IkthaW5hIiwidm9sdW1lIjoiQXBpbXRpcyIsInRydXN0X3Njb3JlIjoiUGFzaXRpa8SXamltbyBiYWxhcyIsInZpZXdfcHJpY2VfY2hhcnQiOiJQZXLFvmnFq3LEl3RpIEthaW7FsyBkaWFncmFtxIUiLCJwb3dlcmVkX2J5IjoixK5kaWVndGEgcGFnYWwgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiUGVyxb5pxatyxJd0aSB2aXNhcyAle2NvaW59IHJpbmthcyJ9fScpfSwiNjEzYiI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjU1MzciKSgia2V5cyIpLGk9bigiY2E1YSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gcltlXXx8KHJbZV09aShlKSl9fSwiNjFkYSI6ZnVuY3Rpb24oZSx0LG4pe3Q9ZS5leHBvcnRzPW4oIjI0ZmIiKSghMSksdC5pKG4oIjc1ZmMiKSwiIiksdC5wdXNoKFtlLmksIi5jZy1jb250YWluZXIge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuXG4gIGNvbG9yOiAjNGM0YzRjO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgZm9udC1zaXplOiAxMnB4O1xuXG4gIG1pbi13aWR0aDogMzAwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uY2ctY29udGFpbmVyW2RhdGEtbG9hZGluZ10gLmNnLXdpZGdldCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jZy1jb2luLXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQxLCAxOTgsIDcxLCAwLjIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uY2ctZXZlbi1yb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNmZmY4O1xufVxuLmNnLWFycm93LXVwIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgYm9yZGVyLWJvdHRvbTogNnB4IHNvbGlkICM0Yjg4MDA7XG59XG5cbi5jZy1hcnJvdy1kb3duIHtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG5cbiAgYm9yZGVyLXRvcDogNnB4IHNvbGlkICNhMTFiMGE7XG59XG5cbi5jZy1mb290ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLCAxOTgsIDcxLCAwLjEpO1xufVxuXG4uY2ctd2lkZ2V0IHNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBib3JkZXItY29sb3I6IHJnYigxNDEsIDE5OCwgNzEpO1xufVxuLmNnLXdpZGdldCBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzRjNGM0Yztcbn1cbi5jZy13aWRnZXQgYTpob3ZlciB7XG4gIGNvbG9yOiAjNGM0YzRjO1xufVxuXG4uY2ctY29pbi1yb3cgaW1nIHtcbiAgd2lkdGg6IDIycHg7XG59XG5cbi5jZy1tYXJxdWVlIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNnLW1hcnF1ZWUtY29udGVudC0xIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDAlOyAvKiBzaG93IHRoZSBtYXJxdWVlIGp1c3Qgb3V0c2lkZSB0aGUgcGFyYWdyYXBoICovXG4gIGFuaW1hdGlvbjogbWFycXVlZSAzMHMgbGluZWFyIGluZmluaXRlO1xufVxuLmNnLW1hcnF1ZWUtY29udGVudC1sb25nIHtcbiAgYW5pbWF0aW9uOiBtYXJxdWVlIDEwMHMgbGluZWFyIGluZmluaXRlO1xufVxuXG4uY2ctbWFycXVlZS1jb250ZW50LTIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMCU7IC8qIHNob3cgdGhlIG1hcnF1ZWUganVzdCBvdXRzaWRlIHRoZSBwYXJhZ3JhcGggKi9cbiAgYW5pbWF0aW9uOiBtYXJxdWVlMiAzMHMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIG1hcnF1ZWUge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbWFycXVlZTIge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG59XG4iLCIiXSl9LCI2MjZhIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiMmQ5NSIpO2UuZXhwb3J0cz1PYmplY3QoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKT9PYmplY3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIlN0cmluZyI9PXIoZSk/ZS5zcGxpdCgiIik6T2JqZWN0KGUpfX0sIjYyYTAiOmZ1bmN0aW9uKGUsdCl7dmFyIG49MCxyPU1hdGgucmFuZG9tKCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJTeW1ib2woIi5jb25jYXQodm9pZCAwPT09ZT8iIjplLCIpXyIsKCsrbityKS50b1N0cmluZygzNikpfX0sIjYyZWEiOmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiLQoNC10LnRgtC40L3QsyDRgNC40L3QutC+0LLQvtGXINC60LDQv9GW0YLQsNC70ZbQt9Cw0YbRltGXIiwibWNhcCI6ItCg0LjQvdC60L7QstCwINC60LDQv9GW0YLQsNC70ZbQt9Cw0YbRltGPIiwiMjRoX3ZvbHVtZSI6ItCe0LHRgdGP0LMg0LfQsCAyNCDQs9C+0LTQuNC90LgiLCIyNGhfaGlnaF9sb3ciOiLQnNCw0LrRgS4v0LzRltC9LiDQt9CwIDI0INCz0L7QtNC40L3QuCJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLQn9GA0LDRhtGO0ZQg0L3QsCDQv9C70LDRgtGE0L7RgNC80ZYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoi0J/QvtGA0ZbQstC90Y/QvdC90Y8g0YbRltC9INC60YDQuNC/0YLQvtCy0LDQu9GO0YIiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoi0J/QvtGA0ZbQstC90Y/QvdC90Y8g0YDQuNC90LrQvtCy0L7RlyDQutCw0L/RltGC0LDQu9GW0LfQsNGG0ZbRlyDQutGA0LjQv9GC0L7QstCw0LvRjtGCIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/RgNCw0YbRjtGUINC90LAg0L/Qu9Cw0YLRhNC+0YDQvNGWICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiLQnNCw0LrRgdC40LzRg9C8INC30LAgMjQg0LPQvtC00LjQvdC4IiwiMjRoX2xvdyI6ItCc0ZbQvdGW0LzRg9C8INC30LAgMjQg0LPQvtC00LjQvdC4Iiwidmlld19wcmljZV9jaGFydCI6ItCf0LXRgNC10LPQu9GP0L3Rg9GC0Lgg0LPRgNCw0YTRltC6INGG0ZbQvdC4ICV7Y29pbn0iLCJwb3dlcmVkX2J5Ijoi0J/RgNCw0YbRjtGUINC90LAg0L/Qu9Cw0YLRhNC+0YDQvNGWICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/RgNCw0YbRjtGUINC90LAg0L/Qu9Cw0YLRhNC+0YDQvNGWICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/RgNCw0YbRjtGUINC90LAg0L/Qu9Cw0YLRhNC+0YDQvNGWICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6ItCf0YDQsNGG0Y7RlCDQvdCwINC/0LvQsNGC0YTQvtGA0LzRliAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6ItCc0LDQutGB0LjQvNGD0Lwg0LfQsCAyNCDQs9C+0LTQuNC90LgiLCIyNGhfbG93Ijoi0JzRltC90ZbQvNGD0Lwg0LfQsCAyNCDQs9C+0LTQuNC90LgiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi0J/QtdGA0LXQs9C70Y/QvdGD0YLQuCDQs9GA0LDRhNGW0Log0YbRltC90LggJXtjb2lufSIsInBvd2VyZWRfYnkiOiLQn9GA0LDRhtGO0ZQg0L3QsCDQv9C70LDRgtGE0L7RgNC80ZYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6ItCf0LXRgNC10LPQu9GP0L3Rg9GC0Lgg0LPRgNCw0YTRltC6INGG0ZbQvdC4ICV7Y29pbn0iLCJwb3dlcmVkX2J5Ijoi0J/RgNCw0YbRjtGUINC90LAg0L/Qu9Cw0YLRhNC+0YDQvNGWICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6ItCa0LDRgNGC0LAg0LTQtdGA0LXQstCwINC60YDQuNC/0YLQvtCy0LDQu9GO0YLQuCIsInN1YnRpdGxlIjoiKNCa0YDQsNGJ0ZYgJXt0b3B9INC30LAg0YDQuNC90LrQvtCy0L7RjiDQutCw0L/RltGC0LDQu9GW0LfQsNGG0ZbRlNGOKSIsInBvd2VyZWRfYnkiOiLQn9GA0LDRhtGO0ZQg0L3QsCDQv9C70LDRgtGE0L7RgNC80ZYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6ItCS0ZbQtNC80L7QstCwINCy0ZbQtCDQstGW0LTQv9C+0LLRltC00LDQu9GM0L3QvtGB0YLRljog0KbRliDRltC90YHRgtGA0YPQvNC10L3RgtC4INC00LDQvdGWINGP0Log0YDQvtC30LLQsNC20LDQu9GM0L3RliDQuSDQvdC1INGUINGE0ZbQvdCw0L3RgdC+0LLQuNC80Lgg0YDQtdC60L7QvNC10L3QtNCw0YbRltGP0LzQuC4iLCJzcGluIjoi0KHQv9GW0L0iLCJhdmFpbGFibGVfY29pbnMiOiLQlNC+0YHRgtGD0L/QvdGWINC80L7QvdC10YLQuCJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6ItCe0L3QvtCy0LvQtdC90L3RjyDRhtGW0L3QuCBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoi0JfQsNCz0LDQu9GM0L3QsCDRgNC40L0uINC60LDQvy4iLCIyNGhfdm9sIjoi0J7QsdGB0Y/QsyDRgtC+0YDQs9GW0LIg0LfQsCAyNCDQs9C+0LTQuNC90LgiLCJkb20iOiLQlNC+0LzRltC90YPQstCw0L3QvdGPIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6ItCR0ZbRgNC20LAiLCJwYWlyIjoi0J/QsNGA0LAiLCJwcmljZSI6ItCm0ZbQvdCwIiwidm9sdW1lIjoi0J7QsdGB0Y/QsyIsInRydXN0X3Njb3JlIjoi0J/QvtC60LDQt9C90LjQuiDQvdCw0LTRltC50L3QvtGB0YLRliIsInZpZXdfcHJpY2VfY2hhcnQiOiLQn9C10YDQtdCz0LvRj9C90YPRgtC4INCz0YDQsNGE0ZbQuiDRhtGW0L3QuCIsInBvd2VyZWRfYnkiOiLQn9GA0LDRhtGO0ZQg0L3QsCDQv9C70LDRgtGE0L7RgNC80ZYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoi0J/QtdGA0LXQs9C70Y/QvdGD0YLQuCDQstGB0ZYg0YDQuNC90LrQuCAle2NvaW59In19Jyl9LCI2M2I2IjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZTUzZCIpLGk9bigiNTg0YSIpLGE9bigiZDg2NCIpLG89bigiMzVlOCIpLGM9bigiMDdlMyIpLHM9InByb3RvdHlwZSIscD1mdW5jdGlvbihlLHQsbil7dmFyIGwsdSxkLF89ZSZwLkYsbT1lJnAuRyxmPWUmcC5TLGg9ZSZwLlAsdj1lJnAuQix5PWUmcC5XLGc9bT9pOmlbdF18fChpW3RdPXt9KSx3PWdbc10sYj1tP3I6Zj9yW3RdOihyW3RdfHx7fSlbc107Zm9yKGwgaW4gbSYmKG49dCksbil1PSFfJiZiJiZ2b2lkIDAhPT1iW2xdLHUmJmMoZyxsKXx8KGQ9dT9iW2xdOm5bbF0sZ1tsXT1tJiYiZnVuY3Rpb24iIT10eXBlb2YgYltsXT9uW2xdOnYmJnU/YShkLHIpOnkmJmJbbF09PWQ/ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24odCxuLHIpe2lmKHRoaXMgaW5zdGFuY2VvZiBlKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgZTtjYXNlIDE6cmV0dXJuIG5ldyBlKHQpO2Nhc2UgMjpyZXR1cm4gbmV3IGUodCxuKX1yZXR1cm4gbmV3IGUodCxuLHIpfXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07cmV0dXJuIHRbc109ZVtzXSx0fShkKTpoJiYiZnVuY3Rpb24iPT10eXBlb2YgZD9hKEZ1bmN0aW9uLmNhbGwsZCk6ZCxoJiYoKGcudmlydHVhbHx8KGcudmlydHVhbD17fSkpW2xdPWQsZSZwLlImJncmJiF3W2xdJiZvKHcsbCxkKSkpfTtwLkY9MSxwLkc9MixwLlM9NCxwLlA9OCxwLkI9MTYscC5XPTMyLHAuVT02NCxwLlI9MTI4LGUuZXhwb3J0cz1wfSw2NzE4OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJlNTNkIiksaT1uKCI1ODRhIiksYT1uKCJiOGUzIiksbz1uKCJjY2I5IiksYz1uKCJkOWY2IikuZjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9aS5TeW1ib2x8fChpLlN5bWJvbD1hP3t9OnIuU3ltYm9sfHx7fSk7Il8iPT1lLmNoYXJBdCgwKXx8ZSBpbiB0fHxjKHQsZSx7dmFsdWU6by5mKGUpfSl9fSwiNjdiYiI6ZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKCJmOTIxIil9LDY4MjE6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjYyNmEiKSxpPW4oImJlMTMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHIoaShlKSl9fSwiNjg4ZSI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj0iRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQgY2FsbGVkIG9uIGluY29tcGF0aWJsZSAiLGk9QXJyYXkucHJvdG90eXBlLnNsaWNlLGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxvPSJbb2JqZWN0IEZ1bmN0aW9uXSI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXRoaXM7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiB0fHxhLmNhbGwodCkhPT1vKXRocm93IG5ldyBUeXBlRXJyb3Iocit0KTtmb3IodmFyIG4sYz1pLmNhbGwoYXJndW1lbnRzLDEpLHM9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3RhbmNlb2Ygbil7dmFyIHI9dC5hcHBseSh0aGlzLGMuY29uY2F0KGkuY2FsbChhcmd1bWVudHMpKSk7cmV0dXJuIE9iamVjdChyKT09PXI/cjp0aGlzfXJldHVybiB0LmFwcGx5KGUsYy5jb25jYXQoaS5jYWxsKGFyZ3VtZW50cykpKX0scD1NYXRoLm1heCgwLHQubGVuZ3RoLWMubGVuZ3RoKSxsPVtdLHU9MDt1PHA7dSsrKWwucHVzaCgiJCIrdSk7aWYobj1GdW5jdGlvbigiYmluZGVyIiwicmV0dXJuIGZ1bmN0aW9uICgiK2wuam9pbigiLCIpKyIpeyByZXR1cm4gYmluZGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTsgfSIpKHMpLHQucHJvdG90eXBlKXt2YXIgZD1mdW5jdGlvbigpe307ZC5wcm90b3R5cGU9dC5wcm90b3R5cGUsbi5wcm90b3R5cGU9bmV3IGQsZC5wcm90b3R5cGU9bnVsbH1yZXR1cm4gbn19LCI2OWE4IjpmdW5jdGlvbihlLHQpe3ZhciBuPXt9Lmhhc093blByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0KX19LCI2OWQzIjpmdW5jdGlvbihlLHQsbil7bigiNjcxOCIpKCJhc3luY0l0ZXJhdG9yIil9LCI2YTk5IjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZDNmNCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2lmKCFyKGUpKXJldHVybiBlO3ZhciBuLGk7aWYodCYmImZ1bmN0aW9uIj09dHlwZW9mKG49ZS50b1N0cmluZykmJiFyKGk9bi5jYWxsKGUpKSlyZXR1cm4gaTtpZigiZnVuY3Rpb24iPT10eXBlb2Yobj1lLnZhbHVlT2YpJiYhcihpPW4uY2FsbChlKSkpcmV0dXJuIGk7aWYoIXQmJiJmdW5jdGlvbiI9PXR5cGVvZihuPWUudG9TdHJpbmcpJiYhcihpPW4uY2FsbChlKSkpcmV0dXJuIGk7dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LCI2YWJmIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZTZmMyIpLGk9bigiMTY5MSIpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihlKXtyZXR1cm4gcihlLGkpfX0sIjZiNGMiOmZ1bmN0aW9uKGUsdCl7dmFyIG49e30udG9TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBuLmNhbGwoZSkuc2xpY2UoOCwtMSl9fSwiNmI1NCI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuKCIzODQ2Iik7dmFyIHI9bigiY2I3YyIpLGk9bigiMGJmYiIpLGE9bigiOWUxZSIpLG89InRvU3RyaW5nIixjPS8uL1tvXSxzPWZ1bmN0aW9uKGUpe24oIjJhYmEiKShSZWdFeHAucHJvdG90eXBlLG8sZSwhMCl9O24oIjc5ZTUiKSgoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPWMuY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9KX0pKT9zKChmdW5jdGlvbigpe3ZhciBlPXIodGhpcyk7cmV0dXJuIi8iLmNvbmNhdChlLnNvdXJjZSwiLyIsImZsYWdzImluIGU/ZS5mbGFnczohYSYmZSBpbnN0YW5jZW9mIFJlZ0V4cD9pLmNhbGwoZSk6dm9pZCAwKX0pKTpjLm5hbWUhPW8mJnMoKGZ1bmN0aW9uKCl7cmV0dXJuIGMuY2FsbCh0aGlzKX0pKX0sIjZjMWMiOmZ1bmN0aW9uKGUsdCxuKXtuKCJjMzY3Iik7Zm9yKHZhciByPW4oImU1M2QiKSxpPW4oIjM1ZTgiKSxhPW4oIjQ4MWIiKSxvPW4oIjUxNjgiKSgidG9TdHJpbmdUYWciKSxjPSJDU1NSdWxlTGlzdCxDU1NTdHlsZURlY2xhcmF0aW9uLENTU1ZhbHVlTGlzdCxDbGllbnRSZWN0TGlzdCxET01SZWN0TGlzdCxET01TdHJpbmdMaXN0LERPTVRva2VuTGlzdCxEYXRhVHJhbnNmZXJJdGVtTGlzdCxGaWxlTGlzdCxIVE1MQWxsQ29sbGVjdGlvbixIVE1MQ29sbGVjdGlvbixIVE1MRm9ybUVsZW1lbnQsSFRNTFNlbGVjdEVsZW1lbnQsTWVkaWFMaXN0LE1pbWVUeXBlQXJyYXksTmFtZWROb2RlTWFwLE5vZGVMaXN0LFBhaW50UmVxdWVzdExpc3QsUGx1Z2luLFBsdWdpbkFycmF5LFNWR0xlbmd0aExpc3QsU1ZHTnVtYmVyTGlzdCxTVkdQYXRoU2VnTGlzdCxTVkdQb2ludExpc3QsU1ZHU3RyaW5nTGlzdCxTVkdUcmFuc2Zvcm1MaXN0LFNvdXJjZUJ1ZmZlckxpc3QsU3R5bGVTaGVldExpc3QsVGV4dFRyYWNrQ3VlTGlzdCxUZXh0VHJhY2tMaXN0LFRvdWNoTGlzdCIuc3BsaXQoIiwiKSxzPTA7czxjLmxlbmd0aDtzKyspe3ZhciBwPWNbc10sbD1yW3BdLHU9bCYmbC5wcm90b3R5cGU7dSYmIXVbb10mJmkodSxvLHApLGFbcF09YS5BcnJheX19LCI2Y2UyIjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiTWFya3RrYXBpdGFsaXNpZXJ1bmdzcmFuZyIsIm1jYXAiOiJNYXJrdGthcGl0YWxpc2llcnVuZyIsIjI0aF92b2x1bWUiOiIyNC1TdHVuZGVuIFZvbHVtZW4iLCIyNGhfaGlnaF9sb3ciOiIyNC1TdHVuZGVuLUhvY2gvLVRpZWYifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVW50ZXJzdMO8dHp0IHZvbiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJLcnlwdG8tS3Vyc3ZlcmdsZWljaCIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiJLcnlwdG8tTWFya3RrYXBpdGFsaXNpZXJ1bmdzdmVyZ2xlaWNoIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVW50ZXJzdMO8dHp0IHZvbiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjQtU3R1bmRlbi1Ib2NoIiwiMjRoX2xvdyI6IjI0LVN0dW5kZW4tVGllZiIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IEt1cnNkaWFncmFtbSBhbnplaWdlbiIsInBvd2VyZWRfYnkiOiJVbnRlcnN0w7x0enQgdm9uICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVW50ZXJzdMO8dHp0IHZvbiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlVudGVyc3TDvHR6dCB2b24gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVW50ZXJzdMO8dHp0IHZvbiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0LVN0dW5kZW4tSG9jaCIsIjI0aF9sb3ciOiIyNC1TdHVuZGVuLVRpZWYiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiJXtjb2lufSBLdXJzZGlhZ3JhbW0gYW56ZWlnZW4iLCJwb3dlcmVkX2J5IjoiVW50ZXJzdMO8dHp0IHZvbiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fY29udmVydGVyX3dpZGdldCI6eyJ2aWV3X3ByaWNlX2NoYXJ0IjoiJXtjb2lufSBLdXJzZGlhZ3JhbW0gYW56ZWlnZW4iLCJwb3dlcmVkX2J5IjoiVW50ZXJzdMO8dHp0IHZvbiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiJLcnlwdG93w6RocnVuZ3MtVHJlZS1NYXAiLCJzdWJ0aXRsZSI6IihUb3AtJXt0b3B9IG5hY2ggTWFya3RrYXBpdGFsaXNpZXJ1bmcpIiwicG93ZXJlZF9ieSI6IlVudGVyc3TDvHR6dCB2b24gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IkRpc2NsYWltZXI6IERpZXNlIFdlcmt6ZXVnZSBkaWVuZW4gYWxzIFVudGVyaGFsdHVuZyB1bmQgc3RlbGxlbiBrZWluZSBmaW5hbnppZWxsZSBCZXJhdHVuZyBkYXIuIiwic3BpbiI6IkRyZWhlbiIsImF2YWlsYWJsZV9jb2lucyI6IlZlcmbDvGdiYXJlIENvaW5zIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiQ29pbkdlY2tvIEt1cnNha3R1YWxpc2llcnVuZyIsInRvdGFsX21jYXAiOiJNYXJrdGthcGl0YWxpc2llcnVuZyBpbnNnZXNhbXQiLCIyNGhfdm9sIjoiMjQtU3R1bmRlbi1Wb2x1bWVuIiwiZG9tIjoiRG9taW5hbnoifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiQsO2cnNlIiwicGFpciI6IlBhYXIiLCJwcmljZSI6Ikt1cnMiLCJ2b2x1bWUiOiJWb2x1bWVuIiwidHJ1c3Rfc2NvcmUiOiJWZXJ0cmF1ZW5zd2VydCIsInZpZXdfcHJpY2VfY2hhcnQiOiIgS3Vyc2RpYWdyYW1tIGFuemVpZ2VuIiwicG93ZXJlZF9ieSI6IlVudGVyc3TDvHR6dCB2b24gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiQWxsZSAle2NvaW59LU3DpHJrdGUgYW56ZWlnZW4ifX0nKX0sIjcxYzEiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCIzYTM4IiksaT1uKCIyNWViIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciBhLG8sYz1TdHJpbmcoaSh0KSkscz1yKG4pLHA9Yy5sZW5ndGg7cmV0dXJuIHM8MHx8cz49cD9lPyIiOnZvaWQgMDooYT1jLmNoYXJDb2RlQXQocyksYTw1NTI5Nnx8YT41NjMxOXx8cysxPT09cHx8KG89Yy5jaGFyQ29kZUF0KHMrMSkpPDU2MzIwfHxvPjU3MzQzP2U/Yy5jaGFyQXQocyk6YTplP2Muc2xpY2UocyxzKzIpOm8tNTYzMjArKGEtNTUyOTY8PDEwKSs2NTUzNil9fX0sNzUxNDpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjVjYTEiKSxpPW4oIjBhNDkiKSg1KSxhPSJmaW5kIixvPSEwO2EgaW5bXSYmQXJyYXkoMSlbYV0oKGZ1bmN0aW9uKCl7bz0hMX0pKSxyKHIuUCtyLkYqbywiQXJyYXkiLHtmaW5kOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksbigiOWM2YyIpKGEpfSwiNzVmYyI6ZnVuY3Rpb24oZSx0LG4pe3Q9ZS5leHBvcnRzPW4oIjI0ZmIiKSghMSksdC5wdXNoKFtlLmksIi5jZy1kZWZhdWx0IHtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgc2Vnb2UgdWksIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsXG4gICAgYXBwbGUgY29sb3IgZW1vamksIHNlZ29lIHVpIGVtb2ppLCBzZWdvZSB1aSBzeW1ib2w7XG59XG4uY2ctYm9sZCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uY2ctY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNnLXByaW1hcnktY29sb3Ige1xuICBjb2xvcjogIzhkYzY0NyAhaW1wb3J0YW50O1xufVxuLmNnLXByaW1hcnktY29sb3ItZGFyayB7XG4gIGNvbG9yOiAjNGI4ODAwICFpbXBvcnRhbnQ7XG59XG4uY2ctcmVkLWNvbG9yLWRhcmsge1xuICBjb2xvcjogI2MyMjIwZCAhaW1wb3J0YW50O1xufVxuLmNnLXJlZC1jb2xvciB7XG4gIGNvbG9yOiAjZmY2MTRkICFpbXBvcnRhbnQ7XG59XG4uY2ctMnhzIHtcbiAgZm9udC1zaXplOiA4LjhweDsgLyogMC41NXJlbTsgKi9cbn1cbi5jZy14cyB7XG4gIGZvbnQtc2l6ZTogMTAuNHB4OyAvKiAwLjY1cmVtICovXG59XG4uY2ctc20ge1xuICBmb250LXNpemU6IDEyLjhweDsgLyogMC44cmVtICovXG59XG4uY2ctbm9ybWFsIHtcbiAgZm9udC1zaXplOiAxMy42cHg7IC8qIDAuODVyZW0gKi9cbn1cbi5jZy1iYXNlIHtcbiAgZm9udC1zaXplOiAxNnB4OyAvKiAxNnB4ICovXG59XG4uY2ctbWVkaXVtIHtcbiAgZm9udC1zaXplOiAxOS4ycHg7IC8qIDEuMnJlbSAqL1xufVxuLmNnLWxnIHtcbiAgZm9udC1zaXplOiAyNHB4OyAvKiAxLjVyZW0gKi9cbn1cbi5jZy14bCB7XG4gIGZvbnQtc2l6ZTogMzAuNHB4OyAvKiAxLjlyZW0gKi9cbn1cbi5jZy1jYXAge1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cbi5jZy1uby11bmRlcmxpbmUge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uY2ctbm93cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNnLW0tMCB7XG4gIG1hcmdpbjogMDtcbn1cbi5jZy1tLTEge1xuICBtYXJnaW46IDRweDtcbn1cbi5jZy1tLTIge1xuICBtYXJnaW46IDhweDtcbn1cbi5jZy1tdC0xIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuLmNnLW1iLTEge1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG4uY2ctbWwtMSB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG4uY2ctbXItMSB7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuLmNnLW10LTIge1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG4uY2ctbWwtMiB7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG4uY2ctbXItMiB7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLmNnLW1iLTIge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG4uY2ctbXgtMSB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xufVxuLmNnLW15LTEge1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cbi5jZy1teC0yIHtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG4uY2ctbXktMiB7XG4gIG1hcmdpbi10b3A6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmNnLW15LTUge1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uY2ctcC0xIHtcbiAgcGFkZGluZzogNHB4O1xufVxuLmNnLXAtMiB7XG4gIHBhZGRpbmc6IDhweDtcbn1cbi5jZy1wLTMge1xuICBwYWRkaW5nOiAxMnB4O1xufVxuLmNnLXAtNCB7XG4gIHBhZGRpbmc6IDE2cHg7XG59XG4uY2ctcHQtMSB7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG59XG4uY2ctcGItMSB7XG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XG59XG4uY2ctcHQtMiB7XG4gIHBhZGRpbmctdG9wOiA4cHg7XG59XG4uY2ctcGItMiB7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG59XG4uY2ctcHQtMyB7XG4gIHBhZGRpbmctdG9wOiAxMnB4O1xufVxuLmNnLXBiLTMge1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cbi5jZy1weS0xIHtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbn1cbi5jZy1weC0xIHtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cbi5jZy1weS0yIHtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgcGFkZGluZy1ib3R0b206IDhweDtcbn1cbi5jZy1weC0yIHtcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcbn1cbi5jZy1weS0zIHtcbiAgcGFkZGluZy10b3A6IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xufVxuLmNnLXB4LTMge1xuICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEycHg7XG59XG4uY2ctcHgtNCB7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgcGFkZGluZy1yaWdodDogMTZweDtcbn1cbi5jZy1weS00IHtcbiAgcGFkZGluZy10b3A6IDE2cHg7XG4gIHBhZGRpbmctYm90dG9tOiAxNnB4O1xufVxuLmNnLXB5LTUge1xuICBwYWRkaW5nLXRvcDogMjBweDtcbiAgcGFkZGluZy1ib3R0b206IDIwcHg7XG59XG4uY2ctcHItMSB7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cbi5jZy1wci0yIHtcbiAgcGFkZGluZy1yaWdodDogOHB4O1xufVxuXG4uY2ctZmxleCB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbn1cbi5jZy1mbGV4LXJvdyB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4uY2ctZmxleC1jb2x1bW4ge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uY2ctaXRlbXMtc3RyZXRjaCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0cmV0Y2g7XG59XG4uY2ctaXRlbXMtc3RhcnQge1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5jZy1pdGVtcy1jZW50ZXIge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNnLWl0ZW1zLWVuZCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cbi5jZy1pdGVtcy1iYXNlbGluZSB7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cblxuLmNnLWp1c3RpZnktc3RhcnQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG4uY2ctanVzdGlmeS1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jZy1qdXN0aWZ5LWVuZCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4uY2ctanVzdGlmeS1iZXR3ZWVuIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuLmNnLWp1c3RpZnktYXJvdW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG59XG5cbi5jZy1zZWxmLWF1dG8ge1xuICBhbGlnbi1zZWxmOiBhdXRvO1xufVxuLmNnLXNlbGYtc3RhcnQge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuLmNnLXNlbGYtY2VudGVyIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLmNnLXNlbGYtZW5kIHtcbiAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG59XG4uY2ctc2VsZi1zdHJldGNoIHtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbn1cblxuLmNnLXJlbGF0aXZlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNnLWFic29sdXRlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuLmNnLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIiXSl9LDc2MTg6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGN9KSk7dmFyIHI9bigiNWQ1OCIpLGk9bi5uKHIpLGE9bigiNjdiYiIpLG89bi5uKGEpO2Z1bmN0aW9uIGMoZSl7cmV0dXJuIGM9ImZ1bmN0aW9uIj09PXR5cGVvZiBvLmEmJiJzeW1ib2wiPT09dHlwZW9mIGkuYT9mdW5jdGlvbihlKXtyZXR1cm4gdHlwZW9mIGV9OmZ1bmN0aW9uKGUpe3JldHVybiBlJiYiZnVuY3Rpb24iPT09dHlwZW9mIG8uYSYmZS5jb25zdHJ1Y3Rvcj09PW8uYSYmZSE9PW8uYS5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGMoZSl9fSwiNzY1ZCI6ZnVuY3Rpb24oZSx0LG4pe24oIjY3MTgiKSgib2JzZXJ2YWJsZSIpfSw3NzA0OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiLQn9C+0LfQuNGG0LjRjyDQsiDRgNC10LnRgtC40L3Qs9C1INC/0L4g0YDRi9C90L7Rh9C90L7QuSDQutCw0L/QuNGC0LDQu9C40LfQsNGG0LjQuCIsIm1jYXAiOiLQoNGL0L3QvtGH0L3QsNGPINC60LDQv9C40YLQsNC70LjQt9Cw0YbQuNGPIiwiMjRoX3ZvbHVtZSI6ItCe0LHRitC10Lwg0LfQsCAyNCDRh9Cw0YHQsCIsIjI0aF9oaWdoX2xvdyI6ItCc0LDQutGBLi/QvNC40L0uINC30LAgMjQg0YfQsNGB0LAifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/RgNC4INC/0L7QtNC00LXRgNC20LrQtSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiLQodGA0LDQstC90LXQvdC40LUg0YbQtdC9INC60YDQuNC/0YLQvtCy0LDQu9GO0YIiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoi0KHRgNCw0LLQvdC10L3QuNC1INGA0YvQvdC+0YfQvdC+0Lkg0LrQsNC/0LjRgtCw0LvQuNC30LDRhtC40Lgg0LrRgNC40L/RgtC+0LLQsNC70Y7RgiJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6ItCf0YDQuCDQv9C+0LTQtNC10YDQttC60LUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6ItCc0LDQutGBLiDQt9CwIDI0INGH0LDRgdCwIiwiMjRoX2xvdyI6ItCc0LjQvS4g0LfQsCAyNMKg0YfQsNGB0LAiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0LPRgNCw0YTQuNC6INGG0LXQvSAle2NvaW59IiwicG93ZXJlZF9ieSI6ItCf0YDQuCDQv9C+0LTQtNC10YDQttC60LUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLQn9GA0Lgg0L/QvtC00LTQtdGA0LbQutC1ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/RgNC4INC/0L7QtNC00LXRgNC20LrQtSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLQn9GA0Lgg0L/QvtC00LTQtdGA0LbQutC1ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoi0JzQsNC60YEuINC30LAgMjTCoNGH0LDRgdCwIiwiMjRoX2xvdyI6ItCc0LjQvS4g0LfQsCAyNMKg0YfQsNGB0LAiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0LPRgNCw0YTQuNC6INGG0LXQvSAle2NvaW59IiwicG93ZXJlZF9ieSI6ItCf0YDQuCDQv9C+0LTQtNC10YDQttC60LUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6ItCf0L7RgdC80L7RgtGA0LXRgtGMINCz0YDQsNGE0LjQuiDRhtC10L0gJXtjb2lufSIsInBvd2VyZWRfYnkiOiLQn9GA0Lgg0L/QvtC00LTQtdGA0LbQutC1ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6ItCa0LDRgNGC0LAg0LTQtdGA0LXQstCwINC60YDQuNC/0YLQvtCy0LDQu9GO0YIiLCJzdWJ0aXRsZSI6IijQm9GD0YfRiNC40LUg0LzQvtC90LXRgtGLICV7dG9wfSDQv9C+INGA0YvQvdC+0YfQvdC+0Lkg0LrQsNC/0LjRgtCw0LvQuNC30LDRhtC40LgpIiwicG93ZXJlZF9ieSI6ItCf0YDQuCDQv9C+0LTQtNC10YDQttC60LUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6ItCe0YLQutCw0Lcg0L7RgiDQvtGC0LLQtdGC0YHRgtCy0LXQvdC90L7RgdGC0Lg6INCt0YLQuCDQuNC90YHRgtGA0YPQvNC10L3RgtGLINC00LDQvdGLINCyINC60LDRh9C10YHRgtCy0LUg0YDQsNC30LLQu9C10LrQsNGC0LXQu9GM0L3Ri9GFINC4INC90LUg0Y/QstC70Y/RjtGC0YHRjyDRhNC40L3QsNC90YHQvtCy0YvQvNC4INGA0LXQutC+0LzQtdC90LTQsNGG0LjRj9C80LguIiwic3BpbiI6ItCh0L/QuNC9IiwiYXZhaWxhYmxlX2NvaW5zIjoi0JTQvtGB0YLRg9C/0L3Ri9C1INC80L7QvdC10YLRiyJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6ItCe0LHQvdC+0LLQu9C10L3QuNC1INGG0LXQvdGLIENvaW5HZWNrbyIsInRvdGFsX21jYXAiOiLQoNGL0L0u0LrQsNC/LiDQstGB0LXQs9C+IiwiMjRoX3ZvbCI6ItCe0LHRitC10Lwg0YLQvtGA0LPQvtCyINC30LAgMjQg0YfQsNGB0LAiLCJkb20iOiLQlNC+0LzQuNC90LjRgNC+0LLQsNC90LjQtSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiLQkdC40YDQttCwIiwicGFpciI6ItCf0LDRgNCwIiwicHJpY2UiOiLQptC10L3QsCIsInZvbHVtZSI6ItCe0LHQvtGA0L7RgiIsInRydXN0X3Njb3JlIjoi0J/QvtC60LDQt9Cw0YLQtdC70Ywg0L3QsNC00LXQttC90L7RgdGC0LgiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi0J/QvtGB0LzQvtGC0YDQtdGC0Ywg0LPRgNCw0YTQuNC6INGG0LXQvSIsInBvd2VyZWRfYnkiOiLQn9GA0Lgg0L/QvtC00LTQtdGA0LbQutC1ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJ2aWV3X2FsbCI6ItCf0L7RgdC80L7RgtGA0LXRgtGMINCy0YHQtSDRgNGL0L3QutC4ICV7Y29pbn0ifX0nKX0sNzcyNjpmdW5jdGlvbihlLHQpe3ZhciBuPWUuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIF9fZyYmKF9fZz1uKX0sIjc3ZjEiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI0NTg4IiksaT1NYXRoLm1heCxhPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBlPXIoZSksZTwwP2koZSt0LDApOmEoZSx0KX19LCI3OTRiIjpmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPSFuKCI4ZTYwIikmJiFuKCIyOTRjIikoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShuKCIxZWM5IikoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sIjc5YWEiOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IFR5cGVFcnJvcihlKyIgaXMgbm90IGEgZnVuY3Rpb24hIik7cmV0dXJuIGV9fSwiNzllNSI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiEhZSgpfWNhdGNoKHQpe3JldHVybiEwfX19LCI3YTAzIjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoi4KSu4KS+4KSw4KWN4KSV4KWH4KSfIOCkleCliOCkqiDgpLDgpYjgpILgpJUiLCJtY2FwIjoi4KSu4KS+4KSw4KWN4KSV4KWH4KSfIOCkleCliOCkqiIsIjI0aF92b2x1bWUiOiIyNOCkmOCkgiDgpJXgpL4g4KS14KS+4KSy4KWN4KSv4KWC4KSuIiwiMjRoX2hpZ2hfbG93IjoiMjTgpJjgpIIg4KSV4KS+IOCkueCkvuCkiC/gpLLgpYsifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDgpKbgpY3gpLXgpL7gpLDgpL4g4KS44KSC4KSa4KS+4KSy4KS/4KSkIiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiLgpJXgpY3gpLDgpL/gpKrgpY3gpJ/gpYsg4KSq4KWN4KSw4KS+4KSH4KS4IOCkleClgCDgpKTgpYHgpLLgpKjgpL4iLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoi4KSV4KWN4KSw4KS/4KSq4KWN4KSf4KWLIOCkruCkvuCksOCljeCkleClh+CknyDgpJXgpYjgpKog4KSV4KWAIOCkpOClgeCksuCkqOCkviJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCkguCkmuCkvuCksuCkv+CkpCJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6IjI04KSY4KSCIOCkleCkviDgpLngpL7gpIgiLCIyNGhfbG93IjoiMjTgpJjgpIIg4KSV4KS+IOCksuCliyIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IOCkleCkviDgpKrgpY3gpLDgpL7gpIfgpLgg4KSa4KS+4KSw4KWN4KSfIOCkpuClh+CkluClh+CkgiIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpJrgpL7gpLLgpL/gpKQifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDgpKbgpY3gpLXgpL7gpLDgpL4g4KS44KSC4KSa4KS+4KSy4KS/4KSkIn0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g4KSm4KWN4KS14KS+4KSw4KS+IOCkuOCkguCkmuCkvuCksuCkv+CkpCJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDgpKbgpY3gpLXgpL7gpLDgpL4g4KS44KSC4KSa4KS+4KSy4KS/4KSkIn0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI04KSY4KSCIOCkleCkviDgpLngpL7gpIgiLCIyNGhfbG93IjoiMjTgpJjgpIIg4KSV4KS+IOCksuCliyIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IOCkleCkviDgpKrgpY3gpLDgpL7gpIfgpLgg4KSa4KS+4KSw4KWN4KSfIOCkpuClh+CkluClh+CkgiIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpJrgpL7gpLLgpL/gpKQifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IOCkleCkviDgpKrgpY3gpLDgpL7gpIfgpLgg4KSa4KS+4KSw4KWN4KSfIOCkpuClh+CkluClh+CkgiIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpJrgpL7gpLLgpL/gpKQifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IuCkleCljeCksOCkv+CkquCljeCkn+Cli+CkleCksOCkguCkuOClgCDgpJ/gpY3gpLDgpYAg4KSu4KWI4KSqIiwic3VidGl0bGUiOiIo4KSu4KS+4KSw4KWN4KSV4KWH4KSfIOCkleCliOCkqiDgpJXgpYcg4KSG4KSn4KS+4KSwIOCkquCksCDgpJ/gpYngpKogJXt0b3B9KSIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpJrgpL7gpLLgpL/gpKQifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLgpKHgpL/gpLjgpY3gpJXgpY3gpLLgpYfgpK7gpLA6IOCkr+CkuSDgpK7gpKjgpYvgpLDgpILgpJzgpKgg4KSV4KSw4KSo4KWHIOCkleClhyDgpLLgpL/gpI8g4KSV4KS+4KSuIOCkleCksOCkpOCkviDgpLngpYgg4KSU4KSwIOCkh+CkuOCkruClh+CkgiDgpJXgpYvgpIgg4KSG4KSw4KWN4KSl4KS/4KSVIOCkuOCksuCkvuCkuSDgpKjgpLngpYDgpIIg4KSm4KWAIOCknOCkvuCkpOClgCDgpLngpYjgpaQiLCJzcGluIjoi4KS44KWN4KSq4KS/4KSoIOCkleCksOClh+CkgiIsImF2YWlsYWJsZV9jb2lucyI6IuCkruCljOCknOClguCkpiDgpJXgpYngpIfgpKgifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiJDb2luR2Vja28g4KSq4KWN4KSw4KS+4KSH4KS4IOCkheCkquCkoeClh+CknyIsInRvdGFsX21jYXAiOiLgpJXgpYHgpLIg4KSu4KS+4KSw4KWN4KSV4KWH4KSfIOCkleCliOCkqiIsIjI0aF92b2wiOiIyNOCkmOCkguCkn+ClhyDgpJXgpL4g4KS14KS+4KSy4KWN4KSv4KWC4KSuIiwiZG9tIjoi4KS14KSw4KWN4KSa4KS44KWN4KS1In0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IuCkj+CkleCljeCkuOCkmuClh+CkguCknCIsInBhaXIiOiLgpKrgpYfgpK/gpLAiLCJwcmljZSI6IuCkquCljeCksOCkvuCkh+CkuCIsInZvbHVtZSI6IuCkteCkvuCksuCljeCkr+ClguCkriIsInRydXN0X3Njb3JlIjoi4KSf4KWN4KSw4KS44KWN4KSfIOCkuOCljeCkleCli+CksCIsInZpZXdfcHJpY2VfY2hhcnQiOiLgpKrgpY3gpLDgpL7gpIfgpLgg4KSa4KS+4KSw4KWN4KSfIOCkpuClh+CkleClh+CkgiIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOCkpuCljeCkteCkvuCksOCkviDgpLjgpILgpJrgpL7gpLLgpL/gpKQiLCJ2aWV3X2FsbCI6IuCkuOCkreClgCAle2NvaW59IOCkruCkvuCksOCljeCkleClh+Ckn+Cli+CkgiDgpJXgpYsg4KSm4KWH4KSW4KWH4KSCIn19Jyl9LCI3ZGFiIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJiIiwoZnVuY3Rpb24oKXtyZXR1cm4gaX0pKSxuLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSk7bigiYWM2YSIpLG4oIjQ1NmQiKTt2YXIgcj17QlRDOiEwLEVUSDohMCxVU0Q6ITAsQUVEOiEwLEFSUzohMCxBVUQ6ITAsQlJMOiEwLENBRDohMCxDSEY6ITAsQ0xQOiEwLENOWTohMCxDWks6ITAsREtLOiEwLEVVUjohMCxHQlA6ITAsSEtEOiEwLEhVRjohMCxJRFI6ITAsSUxTOiEwLElOUjohMCxKUFk6ITAsS1JXOiEwLEtXRDohMCxMS1I6ITAsTVhOOiEwLE1ZUjohMCxOT0s6ITAsTlpEOiEwLFBIUDohMCxQS1I6ITAsUExOOiEwLFJVQjohMCxTQVI6ITAsU0VLOiEwLFNHRDohMCxUSEI6ITAsVFJZOiEwLFRXRDohMCxaQVI6ITB9O2Z1bmN0aW9uIGkoKXtyZXR1cm4gT2JqZWN0LmtleXMocil9dmFyIGE9WyJBRUQiLCJBUlMiLCJBVUQiLCJCQ0giLCJCRFQiLCJCSEQiLCJCSVRTIiwiQk1EIiwiQk5CIiwiQlJMIiwiQlRDIiwiQ0FEIiwiQ0hGIiwiQ0xQIiwiQ05ZIiwiQ1pLIiwiREtLIiwiRE9UIiwiRU9TIiwiRVRIIiwiRVVSIiwiR0JQIiwiR0VMIiwiSEtEIiwiSFVGIiwiSURSIiwiSUxTIiwiSU5SIiwiSlBZIiwiS1JXIiwiS1dEIiwiTElOSyIsIkxLUiIsIkxUQyIsIk1NSyIsIk1YTiIsIk1ZUiIsIk5HTiIsIk5PSyIsIk5aRCIsIlBIUCIsIlBLUiIsIlBMTiIsIlJVQiIsIlNBUiIsIlNBVFMiLCJTRUsiLCJTR0QiLCJUSEIiLCJUUlkiLCJUV0QiLCJVQUgiLCJVU0QiLCJWRUYiLCJWTkQiLCJYQUciLCJYQVUiLCJYRFIiLCJYTE0iLCJYUlAiLCJZRkkiLCJaQVIiXX0sIjdlOTAiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJkOWY2IiksaT1uKCJlNGFlIiksYT1uKCJjM2ExIik7ZS5leHBvcnRzPW4oIjhlNjAiKT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbihlLHQpe2koZSk7dmFyIG4sbz1hKHQpLGM9by5sZW5ndGgscz0wO3doaWxlKGM+cylyLmYoZSxuPW9bcysrXSx0W25dKTtyZXR1cm4gZX19LCI3ZjIwIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiODZjYyIpLmYsaT1uKCI2OWE4IiksYT1uKCIyYjRjIikoInRvU3RyaW5nVGFnIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtlJiYhaShlPW4/ZTplLnByb3RvdHlwZSxhKSYmcihlLGEse2NvbmZpZ3VyYWJsZTohMCx2YWx1ZTp0fSl9fSwiN2Y3ZiI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjg2Y2MiKS5mLGk9RnVuY3Rpb24ucHJvdG90eXBlLGE9L15ccypmdW5jdGlvbiAoW14gKF0qKS8sbz0ibmFtZSI7byBpbiBpfHxuKCI5ZTFlIikmJnIoaSxvLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChhKVsxXX1jYXRjaChlKXtyZXR1cm4iIn19fSl9LDgzNzg6ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmV4cG9ydHM9e3ZlcnNpb246IjIuNi4xMSJ9OyJudW1iZXIiPT10eXBlb2YgX19lJiYoX19lPW4pfSwiODNjMiI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcixpPVR5cGVFcnJvcixhPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7aWYoYSl0cnl7YSh7fSwiIil9Y2F0Y2goUyl7YT1udWxsfXZhciBvLGMscyxwPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IGl9LGw9YT9mdW5jdGlvbigpe3RyeXtyZXR1cm4gYXJndW1lbnRzLmNhbGxlZSxwfWNhdGNoKGUpe3RyeXtyZXR1cm4gYShhcmd1bWVudHMsImNhbGxlZSIpLmdldH1jYXRjaCh0KXtyZXR1cm4gcH19fSgpOnAsdT1uKCI5ZDNjIikoKSxkPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX19wcm90b19ffSxfPW8/ZChvKTpyLG09Yz9jLmNvbnN0cnVjdG9yOnIsZj1zP2Qocyk6cixoPXM/cygpOnIsdj0idW5kZWZpbmVkIj09PXR5cGVvZiBVaW50OEFycmF5P3I6ZChVaW50OEFycmF5KSx5PXsiJUFycmF5JSI6QXJyYXksIiVBcnJheUJ1ZmZlciUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIEFycmF5QnVmZmVyP3I6QXJyYXlCdWZmZXIsIiVBcnJheUJ1ZmZlclByb3RvdHlwZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIEFycmF5QnVmZmVyP3I6QXJyYXlCdWZmZXIucHJvdG90eXBlLCIlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUiOnU/ZChbXVtTeW1ib2wuaXRlcmF0b3JdKCkpOnIsIiVBcnJheVByb3RvdHlwZSUiOkFycmF5LnByb3RvdHlwZSwiJUFycmF5UHJvdG9fZW50cmllcyUiOkFycmF5LnByb3RvdHlwZS5lbnRyaWVzLCIlQXJyYXlQcm90b19mb3JFYWNoJSI6QXJyYXkucHJvdG90eXBlLmZvckVhY2gsIiVBcnJheVByb3RvX2tleXMlIjpBcnJheS5wcm90b3R5cGUua2V5cywiJUFycmF5UHJvdG9fdmFsdWVzJSI6QXJyYXkucHJvdG90eXBlLnZhbHVlcywiJUFzeW5jRnJvbVN5bmNJdGVyYXRvclByb3RvdHlwZSUiOnIsIiVBc3luY0Z1bmN0aW9uJSI6bSwiJUFzeW5jRnVuY3Rpb25Qcm90b3R5cGUlIjptP20ucHJvdG90eXBlOnIsIiVBc3luY0dlbmVyYXRvciUiOnM/ZChoKTpyLCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiOmYsIiVBc3luY0dlbmVyYXRvclByb3RvdHlwZSUiOmY/Zi5wcm90b3R5cGU6ciwiJUFzeW5jSXRlcmF0b3JQcm90b3R5cGUlIjpoJiZ1JiZTeW1ib2wuYXN5bmNJdGVyYXRvcj9oW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpOnIsIiVBdG9taWNzJSI6InVuZGVmaW5lZCI9PT10eXBlb2YgQXRvbWljcz9yOkF0b21pY3MsIiVCb29sZWFuJSI6Qm9vbGVhbiwiJUJvb2xlYW5Qcm90b3R5cGUlIjpCb29sZWFuLnByb3RvdHlwZSwiJURhdGFWaWV3JSI6InVuZGVmaW5lZCI9PT10eXBlb2YgRGF0YVZpZXc/cjpEYXRhVmlldywiJURhdGFWaWV3UHJvdG90eXBlJSI6InVuZGVmaW5lZCI9PT10eXBlb2YgRGF0YVZpZXc/cjpEYXRhVmlldy5wcm90b3R5cGUsIiVEYXRlJSI6RGF0ZSwiJURhdGVQcm90b3R5cGUlIjpEYXRlLnByb3RvdHlwZSwiJWRlY29kZVVSSSUiOmRlY29kZVVSSSwiJWRlY29kZVVSSUNvbXBvbmVudCUiOmRlY29kZVVSSUNvbXBvbmVudCwiJWVuY29kZVVSSSUiOmVuY29kZVVSSSwiJWVuY29kZVVSSUNvbXBvbmVudCUiOmVuY29kZVVSSUNvbXBvbmVudCwiJUVycm9yJSI6RXJyb3IsIiVFcnJvclByb3RvdHlwZSUiOkVycm9yLnByb3RvdHlwZSwiJWV2YWwlIjpldmFsLCIlRXZhbEVycm9yJSI6RXZhbEVycm9yLCIlRXZhbEVycm9yUHJvdG90eXBlJSI6RXZhbEVycm9yLnByb3RvdHlwZSwiJUZsb2F0MzJBcnJheSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIEZsb2F0MzJBcnJheT9yOkZsb2F0MzJBcnJheSwiJUZsb2F0MzJBcnJheVByb3RvdHlwZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIEZsb2F0MzJBcnJheT9yOkZsb2F0MzJBcnJheS5wcm90b3R5cGUsIiVGbG9hdDY0QXJyYXklIjoidW5kZWZpbmVkIj09PXR5cGVvZiBGbG9hdDY0QXJyYXk/cjpGbG9hdDY0QXJyYXksIiVGbG9hdDY0QXJyYXlQcm90b3R5cGUlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBGbG9hdDY0QXJyYXk/cjpGbG9hdDY0QXJyYXkucHJvdG90eXBlLCIlRnVuY3Rpb24lIjpGdW5jdGlvbiwiJUZ1bmN0aW9uUHJvdG90eXBlJSI6RnVuY3Rpb24ucHJvdG90eXBlLCIlR2VuZXJhdG9yJSI6bz9kKG8oKSk6ciwiJUdlbmVyYXRvckZ1bmN0aW9uJSI6XywiJUdlbmVyYXRvclByb3RvdHlwZSUiOl8/Xy5wcm90b3R5cGU6ciwiJUludDhBcnJheSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIEludDhBcnJheT9yOkludDhBcnJheSwiJUludDhBcnJheVByb3RvdHlwZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIEludDhBcnJheT9yOkludDhBcnJheS5wcm90b3R5cGUsIiVJbnQxNkFycmF5JSI6InVuZGVmaW5lZCI9PT10eXBlb2YgSW50MTZBcnJheT9yOkludDE2QXJyYXksIiVJbnQxNkFycmF5UHJvdG90eXBlJSI6InVuZGVmaW5lZCI9PT10eXBlb2YgSW50MTZBcnJheT9yOkludDhBcnJheS5wcm90b3R5cGUsIiVJbnQzMkFycmF5JSI6InVuZGVmaW5lZCI9PT10eXBlb2YgSW50MzJBcnJheT9yOkludDMyQXJyYXksIiVJbnQzMkFycmF5UHJvdG90eXBlJSI6InVuZGVmaW5lZCI9PT10eXBlb2YgSW50MzJBcnJheT9yOkludDMyQXJyYXkucHJvdG90eXBlLCIlaXNGaW5pdGUlIjppc0Zpbml0ZSwiJWlzTmFOJSI6aXNOYU4sIiVJdGVyYXRvclByb3RvdHlwZSUiOnU/ZChkKFtdW1N5bWJvbC5pdGVyYXRvcl0oKSkpOnIsIiVKU09OJSI6Im9iamVjdCI9PT10eXBlb2YgSlNPTj9KU09OOnIsIiVKU09OUGFyc2UlIjoib2JqZWN0Ij09PXR5cGVvZiBKU09OP0pTT04ucGFyc2U6ciwiJU1hcCUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIE1hcD9yOk1hcCwiJU1hcEl0ZXJhdG9yUHJvdG90eXBlJSI6InVuZGVmaW5lZCIhPT10eXBlb2YgTWFwJiZ1P2QoKG5ldyBNYXApW1N5bWJvbC5pdGVyYXRvcl0oKSk6ciwiJU1hcFByb3RvdHlwZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIE1hcD9yOk1hcC5wcm90b3R5cGUsIiVNYXRoJSI6TWF0aCwiJU51bWJlciUiOk51bWJlciwiJU51bWJlclByb3RvdHlwZSUiOk51bWJlci5wcm90b3R5cGUsIiVPYmplY3QlIjpPYmplY3QsIiVPYmplY3RQcm90b3R5cGUlIjpPYmplY3QucHJvdG90eXBlLCIlT2JqUHJvdG9fdG9TdHJpbmclIjpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLCIlT2JqUHJvdG9fdmFsdWVPZiUiOk9iamVjdC5wcm90b3R5cGUudmFsdWVPZiwiJXBhcnNlRmxvYXQlIjpwYXJzZUZsb2F0LCIlcGFyc2VJbnQlIjpwYXJzZUludCwiJVByb21pc2UlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBQcm9taXNlP3I6UHJvbWlzZSwiJVByb21pc2VQcm90b3R5cGUlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBQcm9taXNlP3I6UHJvbWlzZS5wcm90b3R5cGUsIiVQcm9taXNlUHJvdG9fdGhlbiUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFByb21pc2U/cjpQcm9taXNlLnByb3RvdHlwZS50aGVuLCIlUHJvbWlzZV9hbGwlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBQcm9taXNlP3I6UHJvbWlzZS5hbGwsIiVQcm9taXNlX3JlamVjdCUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFByb21pc2U/cjpQcm9taXNlLnJlamVjdCwiJVByb21pc2VfcmVzb2x2ZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFByb21pc2U/cjpQcm9taXNlLnJlc29sdmUsIiVQcm94eSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFByb3h5P3I6UHJveHksIiVSYW5nZUVycm9yJSI6UmFuZ2VFcnJvciwiJVJhbmdlRXJyb3JQcm90b3R5cGUlIjpSYW5nZUVycm9yLnByb3RvdHlwZSwiJVJlZmVyZW5jZUVycm9yJSI6UmVmZXJlbmNlRXJyb3IsIiVSZWZlcmVuY2VFcnJvclByb3RvdHlwZSUiOlJlZmVyZW5jZUVycm9yLnByb3RvdHlwZSwiJVJlZmxlY3QlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBSZWZsZWN0P3I6UmVmbGVjdCwiJVJlZ0V4cCUiOlJlZ0V4cCwiJVJlZ0V4cFByb3RvdHlwZSUiOlJlZ0V4cC5wcm90b3R5cGUsIiVTZXQlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBTZXQ/cjpTZXQsIiVTZXRJdGVyYXRvclByb3RvdHlwZSUiOiJ1bmRlZmluZWQiIT09dHlwZW9mIFNldCYmdT9kKChuZXcgU2V0KVtTeW1ib2wuaXRlcmF0b3JdKCkpOnIsIiVTZXRQcm90b3R5cGUlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBTZXQ/cjpTZXQucHJvdG90eXBlLCIlU2hhcmVkQXJyYXlCdWZmZXIlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj9yOlNoYXJlZEFycmF5QnVmZmVyLCIlU2hhcmVkQXJyYXlCdWZmZXJQcm90b3R5cGUlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlcj9yOlNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlwZSwiJVN0cmluZyUiOlN0cmluZywiJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJSI6dT9kKCIiW1N5bWJvbC5pdGVyYXRvcl0oKSk6ciwiJVN0cmluZ1Byb3RvdHlwZSUiOlN0cmluZy5wcm90b3R5cGUsIiVTeW1ib2wlIjp1P1N5bWJvbDpyLCIlU3ltYm9sUHJvdG90eXBlJSI6dT9TeW1ib2wucHJvdG90eXBlOnIsIiVTeW50YXhFcnJvciUiOlN5bnRheEVycm9yLCIlU3ludGF4RXJyb3JQcm90b3R5cGUlIjpTeW50YXhFcnJvci5wcm90b3R5cGUsIiVUaHJvd1R5cGVFcnJvciUiOmwsIiVUeXBlZEFycmF5JSI6diwiJVR5cGVkQXJyYXlQcm90b3R5cGUlIjp2P3YucHJvdG90eXBlOnIsIiVUeXBlRXJyb3IlIjppLCIlVHlwZUVycm9yUHJvdG90eXBlJSI6aS5wcm90b3R5cGUsIiVVaW50OEFycmF5JSI6InVuZGVmaW5lZCI9PT10eXBlb2YgVWludDhBcnJheT9yOlVpbnQ4QXJyYXksIiVVaW50OEFycmF5UHJvdG90eXBlJSI6InVuZGVmaW5lZCI9PT10eXBlb2YgVWludDhBcnJheT9yOlVpbnQ4QXJyYXkucHJvdG90eXBlLCIlVWludDhDbGFtcGVkQXJyYXklIjoidW5kZWZpbmVkIj09PXR5cGVvZiBVaW50OENsYW1wZWRBcnJheT9yOlVpbnQ4Q2xhbXBlZEFycmF5LCIlVWludDhDbGFtcGVkQXJyYXlQcm90b3R5cGUlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBVaW50OENsYW1wZWRBcnJheT9yOlVpbnQ4Q2xhbXBlZEFycmF5LnByb3RvdHlwZSwiJVVpbnQxNkFycmF5JSI6InVuZGVmaW5lZCI9PT10eXBlb2YgVWludDE2QXJyYXk/cjpVaW50MTZBcnJheSwiJVVpbnQxNkFycmF5UHJvdG90eXBlJSI6InVuZGVmaW5lZCI9PT10eXBlb2YgVWludDE2QXJyYXk/cjpVaW50MTZBcnJheS5wcm90b3R5cGUsIiVVaW50MzJBcnJheSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFVpbnQzMkFycmF5P3I6VWludDMyQXJyYXksIiVVaW50MzJBcnJheVByb3RvdHlwZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFVpbnQzMkFycmF5P3I6VWludDMyQXJyYXkucHJvdG90eXBlLCIlVVJJRXJyb3IlIjpVUklFcnJvciwiJVVSSUVycm9yUHJvdG90eXBlJSI6VVJJRXJyb3IucHJvdG90eXBlLCIlV2Vha01hcCUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFdlYWtNYXA/cjpXZWFrTWFwLCIlV2Vha01hcFByb3RvdHlwZSUiOiJ1bmRlZmluZWQiPT09dHlwZW9mIFdlYWtNYXA/cjpXZWFrTWFwLnByb3RvdHlwZSwiJVdlYWtTZXQlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBXZWFrU2V0P3I6V2Vha1NldCwiJVdlYWtTZXRQcm90b3R5cGUlIjoidW5kZWZpbmVkIj09PXR5cGVvZiBXZWFrU2V0P3I6V2Vha1NldC5wcm90b3R5cGV9LGc9bigiMGY3YyIpLHc9Zy5jYWxsKEZ1bmN0aW9uLmNhbGwsU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlKSxiPS9bXiUuW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwlJCkpL2csaz0vXFwoXFwpPy9nLHg9ZnVuY3Rpb24oZSl7dmFyIHQ9W107cmV0dXJuIHcoZSxiLChmdW5jdGlvbihlLG4scixpKXt0W3QubGVuZ3RoXT1yP3coaSxrLCIkMSIpOm58fGV9KSksdH0sQz1mdW5jdGlvbihlLHQpe2lmKCEoZSBpbiB5KSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoImludHJpbnNpYyAiK2UrIiBkb2VzIG5vdCBleGlzdCEiKTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiB5W2VdJiYhdCl0aHJvdyBuZXcgaSgiaW50cmluc2ljICIrZSsiIGV4aXN0cywgYnV0IGlzIG5vdCBhdmFpbGFibGUuIFBsZWFzZSBmaWxlIGFuIGlzc3VlISIpO3JldHVybiB5W2VdfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZigic3RyaW5nIiE9PXR5cGVvZiBlfHwwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW50cmluc2ljIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtpZihhcmd1bWVudHMubGVuZ3RoPjEmJiJib29sZWFuIiE9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJhbGxvd01pc3NpbmciIGFyZ3VtZW50IG11c3QgYmUgYSBib29sZWFuJyk7Zm9yKHZhciBuPXgoZSkscj1DKCIlIisobi5sZW5ndGg+MD9uWzBdOiIiKSsiJSIsdCksbz0xO288bi5sZW5ndGg7bys9MSlpZihudWxsIT1yKWlmKGEmJm8rMT49bi5sZW5ndGgpe3ZhciBjPWEocixuW29dKTtpZighdCYmIShuW29daW4gcikpdGhyb3cgbmV3IGkoImJhc2UgaW50cmluc2ljIGZvciAiK2UrIiBleGlzdHMsIGJ1dCB0aGUgcHJvcGVydHkgaXMgbm90IGF2YWlsYWJsZS4iKTtyPWM/Yy5nZXR8fGMudmFsdWU6cltuW29dXX1lbHNlIHI9cltuW29dXTtyZXR1cm4gcn19LDg0MzY6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSwiODRmMiI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9e319LDg2ODA6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IuC4reC4seC4meC4lOC4seC4muC4oeC4ueC4peC4hOC5iOC4suC4leC4suC4oeC4o+C4suC4hOC4suC4leC4peC4suC4lCIsIm1jYXAiOiLguKHguLnguKXguITguYjguLLguJXguLLguKHguKPguLLguITguLLguJXguKXguLLguJQiLCIyNGhfdm9sdW1lIjoi4Lib4Lij4Li04Lih4Liy4LiTIDI0IOC4iuC4seC5iOC4p+C5guC4oeC4hyIsIjI0aF9oaWdoX2xvdyI6IuC4quC4ueC4hyAvIOC4leC5iOC4syAyNCDguIrguKEuIn0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IuC4guC4seC4muC5gOC4hOC4peC4t+C5iOC4reC4meC5guC4lOC4oiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiLguIHguLLguKPguYDguJvguKPguLXguKLguJrguYDguJfguLXguKLguJrguKPguLLguITguLLguITguKPguLTguJvguYLguJUiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoi4LiB4Liy4Lij4LmA4Lib4Lij4Li14Lii4Lia4LmA4LiX4Li14Lii4Lia4Lih4Li54Lil4LiE4LmI4Liy4LiV4Lil4Liy4LiU4LiE4Lij4Li04Lib4LmC4LiVIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmC4LiU4LiiICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNCDguIrguKEuIOC4quC4ueC4h+C4quC4uOC4lCIsIjI0aF9sb3ciOiIyNCDguIrguKEuIOC4leC5iOC4s+C4quC4uOC4lCIsInZpZXdfcHJpY2VfY2hhcnQiOiLguJTguLnguIHguKPguLLguJ/guKPguLLguITguLIgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLguILguLHguJrguYDguITguKXguLfguYjguK3guJnguYLguJTguKIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLguILguLHguJrguYDguITguKXguLfguYjguK3guJnguYLguJTguKIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLguILguLHguJrguYDguITguKXguLfguYjguK3guJnguYLguJTguKIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmC4LiU4LiiICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjQg4LiK4LihLiDguKrguLnguIfguKrguLjguJQiLCIyNGhfbG93IjoiMjQg4LiK4LihLiDguJXguYjguLPguKrguLjguJQiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi4LiU4Li54LiB4Lij4Liy4Lif4Lij4Liy4LiE4LiyICV7Y29pbn0iLCJwb3dlcmVkX2J5Ijoi4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmC4LiU4LiiICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiLguJTguLnguIHguKPguLLguJ/guKPguLLguITguLIgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLguILguLHguJrguYDguITguKXguLfguYjguK3guJnguYLguJTguKIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoi4LmB4Lic4LiZ4LiX4Li14LmI4Lij4Li54Lib4LiV4LmJ4LiZ4LmE4Lih4LmJIENyeXB0b2N1cnJlbmN5Iiwic3VidGl0bGUiOiIoJXt0b3B9IOC4quC4ueC4h+C4quC4uOC4lOC4leC4suC4oeC4oeC4ueC4peC4hOC5iOC4suC4leC4peC4suC4lCkiLCJwb3dlcmVkX2J5Ijoi4LiC4Lix4Lia4LmA4LiE4Lil4Li34LmI4Lit4LiZ4LmC4LiU4LiiICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLguILguYnguK3guIjguLPguIHguLHguJTguITguKfguLLguKHguKPguLHguJrguJzguLTguJTguIrguK3guJo6IOC5gOC4hOC4o+C4t+C5iOC4reC4h+C4oeC4t+C4reC4meC4teC5ieC4l+C4s+C4q+C4meC5ieC4suC4l+C4teC5iOC5gOC4m+C5h+C4meC4hOC4p+C4suC4oeC4muC4seC4meC5gOC4l+C4tOC4h+C5geC4peC4sOC5hOC4oeC5iOC5g+C4iuC5iOC4hOC4s+C5geC4meC4sOC4meC4s+C4l+C4suC4h+C4geC4suC4o+C5gOC4h+C4tOC4mSIsInNwaW4iOiLguKvguKHguLjguJkiLCJhdmFpbGFibGVfY29pbnMiOiLguYDguKvguKPguLXguKLguI3guJfguLXguYjguKHguLXguK3guKLguLnguYgifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiLguK3guLHguJ7guYDguJTguJfguKPguLLguITguLIgQ29pbkdlY2tvIiwidG90YWxfbWNhcCI6IuC4hOC4p+C4suC4oeC4iOC4uOC4l+C4seC5ieC4h+C4q+C4oeC4lOC4guC4reC4hyBNIiwiMjRoX3ZvbCI6IuC4m+C4o+C4tOC4oeC4suC4kyAyNCDguIrguKEuIiwiZG9tIjoi4LiB4Liy4Lij4LiE4Lij4Lit4LiH4Liq4LmI4Lin4LiZ4LmB4Lia4LmI4LiH4LmD4LiZ4LiV4Lil4Liy4LiUIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IuC4leC4peC4suC4lOC5geC4peC4geC5gOC4m+C4peC4teC5iOC4ouC4mSIsInBhaXIiOiLguITguLnguYgiLCJwcmljZSI6IuC4o+C4suC4hOC4siIsInZvbHVtZSI6IuC4m+C4o+C4tOC4oeC4suC4kyIsInRydXN0X3Njb3JlIjoi4LiE4Liw4LmB4LiZ4LiZ4LiE4Lin4Liy4Lih4LiZ4LmI4Liy4LmA4LiK4Li34LmI4Lit4LiW4Li34LitIiwidmlld19wcmljZV9jaGFydCI6IuC4lOC4ueC4geC4o+C4suC4n+C4o+C4suC4hOC4siIsInBvd2VyZWRfYnkiOiLguILguLHguJrguYDguITguKXguLfguYjguK3guJnguYLguJTguKIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoi4LiU4Li54LiV4Lil4Liy4LiUICV7Y29pbn0g4LiX4Lix4LmJ4LiH4Lir4Lih4LiUIn19Jyl9LCI4NmNjIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiY2I3YyIpLGk9bigiYzY5YSIpLGE9bigiNmE5OSIpLG89T2JqZWN0LmRlZmluZVByb3BlcnR5O3QuZj1uKCI5ZTFlIik/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGUsdCxuKXtpZihyKGUpLHQ9YSh0LCEwKSxyKG4pLGkpdHJ5e3JldHVybiBvKGUsdCxuKX1jYXRjaChjKXt9aWYoImdldCJpbiBufHwic2V0ImluIG4pdGhyb3cgVHlwZUVycm9yKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEiKTtyZXR1cm4idmFsdWUiaW4gbiYmKGVbdF09bi52YWx1ZSksZX19LCI4OWIyIjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiT2NlbmEgd2cuIGthcGl0YWxpemFjamkgcnlua3UiLCJtY2FwIjoiS2FwaXRhbGl6YWNqYSByeW5rb3dhIiwiMjRoX3ZvbHVtZSI6IldvbHVtZW4g4oCTIDI0IGdvZHouIiwiMjRoX2hpZ2hfbG93IjoiMjQgaCDigJMgbWFrcy4vbWluLiJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJPYnPFgnVnaXdhbmUgcHJ6ZXogJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiUG9yw7N3bmFuaWUga3Vyc3Uga3J5cHRvIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IlBvcsOzd25hbmllIGthcGl0YWxpemFjamkgcnlua293ZWoga3J5cHRvIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiT2JzxYJ1Z2l3YW5lIHByemV6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNCBnb2R6LiDigJMgd3lzb2tvIiwiMjRoX2xvdyI6IjI0IGdvZHouIOKAkyBuaXNrbyIsInZpZXdfcHJpY2VfY2hhcnQiOiJXecWbd2lldGwgd3lrcmVzIGt1cnN1ICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiT2JzxYJ1Z2l3YW5lIHByemV6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiT2JzxYJ1Z2l3YW5lIHByemV6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiT2JzxYJ1Z2l3YW5lIHByemV6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6Ik9ic8WCdWdpd2FuZSBwcnpleiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0IGdvZHouIOKAkyB3eXNva28iLCIyNGhfbG93IjoiMjQgZ29kei4g4oCTIG5pc2tvIiwidmlld19wcmljZV9jaGFydCI6Ild5xZt3aWV0bCB3eWtyZXMga3Vyc3UgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJPYnPFgnVnaXdhbmUgcHJ6ZXogJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6Ild5xZt3aWV0bCB3eWtyZXMga3Vyc3UgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJPYnPFgnVnaXdhbmUgcHJ6ZXogJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoiRHJ6ZXdvIGtyeXB0b3dhbHV0Iiwic3VidGl0bGUiOiIoVG9wICV7dG9wfSB3ZWTFgnVnIGthcGl0YWxpemFjamkgcnlua293ZWopIiwicG93ZXJlZF9ieSI6Ik9ic8WCdWdpd2FuZSBwcnpleiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiT8Wbd2lhZGN6ZW5pZTogTmFyesSZZHppYSB0ZSBzxYJ1xbzEhSByb3pyeXdjZSBpIG5pZSBzdGFub3dpxIUgcG9yYWR5IGZpbmFuc293ZWouIiwic3BpbiI6Ilpha3LEmcSHIiwiYXZhaWxhYmxlX2NvaW5zIjoiRG9zdMSZcG5lIHdhbHV0eSJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkFrdHVhbGl6YWNqYSBrdXJzdSBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiQ2HFgmtvd2l0YSBrYXBpdGFsaXphY2phIHJ5bmtvd2EiLCIyNGhfdm9sIjoiV29sdW1lbiDigJMgMjQgZ29kei4iLCJkb20iOiJEb21pbmFjamEifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiR2llxYJkYSIsInBhaXIiOiJQYXJhIiwicHJpY2UiOiJLdXJzIiwidm9sdW1lIjoiV29sdW1lbiIsInRydXN0X3Njb3JlIjoiV3NrYcW6bmlrIHphdWZhbmlhIiwidmlld19wcmljZV9jaGFydCI6Ild5xZt3aWV0bCB3eWtyZXMga3Vyc3UiLCJwb3dlcmVkX2J5IjoiT2JzxYJ1Z2l3YW5lIHByemV6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJ2aWV3X2FsbCI6IlpvYmFjeiB3c3p5c3RraWUgcnlua2kgJXtjb2lufSJ9fScpfSwiOGFiNSI6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI4M2MyIiksaT1uKCI0ZDAxIiksYT1pKHIoIlN0cmluZy5wcm90b3R5cGUuaW5kZXhPZiIpKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKGUsISF0KTtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIG4mJmEoZSwiLnByb3RvdHlwZS4iKT9pKG4pOm59fSwiOGI5NyI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImQzZjQiKSxpPW4oImNiN2MiKSxhPWZ1bmN0aW9uKGUsdCl7aWYoaShlKSwhcih0KSYmbnVsbCE9PXQpdGhyb3cgVHlwZUVycm9yKHQrIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSEiKX07ZS5leHBvcnRzPXtzZXQ6T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKGUsdCxyKXt0cnl7cj1uKCI5YjQzIikoRnVuY3Rpb24uY2FsbCxuKCIxMWU5IikuZihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQsMikscihlLFtdKSx0PSEoZSBpbnN0YW5jZW9mIEFycmF5KX1jYXRjaChpKXt0PSEwfXJldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiBhKGUsbiksdD9lLl9fcHJvdG9fXz1uOnIoZSxuKSxlfX0oe30sITEpOnZvaWQgMCksY2hlY2s6YX19LCI4ZTYwIjpmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPSFuKCIyOTRjIikoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KSl9LCI4ZjYwIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImExNTkiKSxpPW4oImFlYmQiKSxhPW4oIjQ1ZjIiKSxvPXt9O24oIjM1ZTgiKShvLG4oIjUxNjgiKSgiaXRlcmF0b3IiKSwoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2UucHJvdG90eXBlPXIobyx7bmV4dDppKDEsbil9KSxhKGUsdCsiIEl0ZXJhdG9yIil9fSw5MDAzOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI2YjRjIik7ZS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGUpe3JldHVybiJBcnJheSI9PXIoZSl9fSw5MDkzOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJjZTEwIiksaT1uKCJlMTFlIikuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTt0LmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKGUpe3JldHVybiByKGUsaSl9fSw5MTM4OmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9bigiMzVlOCIpfSwiOTJkNyI6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IlJhbmcgcHJlbWEgdHLFvmnFoW5vaiBrYXBpdC4iLCJtY2FwIjoiVHLFvmnFoW5hIGthcGl0LiIsIjI0aF92b2x1bWUiOiJWb2x1bWVuIHUgMjQgaCIsIjI0aF9oaWdoX2xvdyI6IlZpc29rYS9uaXNrYSB1IDI0IGgifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUG9rcmXEh2UgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiVXNwb3JlZGJhIGNpamVuZSBrcmlwdG92YWx1dGEiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiVXNwb3JlZGJhIHRyxb5pxaFuZSBrYXBpdGFsaXphY2lqZSBrcmlwdG92YWx1dGEifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb2tyZcSHZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiVmlzb2thIHUgMjQgaCIsIjI0aF9sb3ciOiJOaXNrYSB1IDI0IGgiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiUHJpa2HFvmkgZ3JhZmlrb24gY2lqZW5lICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiUG9rcmXEh2UgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb2tyZcSHZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBva3JlxIdlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBva3JlxIdlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiVmlzb2thIHUgMjQgaCIsIjI0aF9sb3ciOiJOaXNrYSB1IDI0IGgiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiUHJpa2HFvmkgZ3JhZmlrb24gY2lqZW5lICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiUG9rcmXEh2UgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlByaWthxb5pIGdyYWZpa29uIGNpamVuZSAle2NvaW59IiwicG93ZXJlZF9ieSI6IlBva3JlxIdlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IkthcnRhIHNhIHN0YWJsb20ga3JpcHRvdmFsdXRhIiwic3VidGl0bGUiOiIoTmFqdmXEh2loICV7dG9wfSBwcmVtYSB0csW+acWhbm9qIGthcGl0YWxpemFjaWppKSIsInBvd2VyZWRfYnkiOiJQb2tyZcSHZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiSXpqYXZhIG8gb2RyaWNhbmp1IG9kZ292b3Jub3N0aTogb3ZpIGFsYXRpIHphYmF2bm9nIHN1IGthcmFrdGVyYSBpIG5lIHByZWRzdGF2bGphanUgZmluYW5jaWpza2kgc2F2amV0LiIsInNwaW4iOiJTcGluIiwiYXZhaWxhYmxlX2NvaW5zIjoiRG9zdHVwbmkgbm92xI1pxIdpIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiQcW+dXJpcmFuamUgY2lqZW5lIG5hIHBsYXRmb3JtaSBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiVWt1cG5hIHRyxb4uIGthcGl0YWxpemFjaWphIiwiMjRoX3ZvbCI6IlZvbHVtZW4gdSAyNCBoIiwiZG9tIjoiRG9taW5hbnRub3N0In0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IkJ1cnphIiwicGFpciI6IlBhciIsInByaWNlIjoiQ2lqZW5hIiwidm9sdW1lIjoiVm9sdW1lbiIsInRydXN0X3Njb3JlIjoiT2NqZW5hIHBvdXpkYW5vc3RpIiwidmlld19wcmljZV9jaGFydCI6IlByaWthxb5pIGdyYWZpa29uIGNpamVuZSIsInBvd2VyZWRfYnkiOiJQb2tyZcSHZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJQcmlrYcW+aSBzdmEgdHLFvmnFoXRhIHphICV7Y29pbn0ifX0nKX0sOTU0MjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiUmFuZyBjYXBpdGFsaXphcmUgbGEgYnVyc8SDIiwibWNhcCI6IkNhcGl0YWxpemFyZSBsYSBidXJzxIMiLCIyNGhfdm9sdW1lIjoiVm9sdW0gw65uIHVsdGltZWxlIDI0IG9yZSIsIjI0aF9oaWdoX2xvdyI6Ik1heGltL01pbmltIMOubiAyNGgifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiU3VzyJtpbnV0IGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IkNvbXBhcmFyZWEgcHJlyJt1cmlsb3IgQ3JpcHRvIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IkNvbXBhcmFyZSBjYXBpdGFsaXphcmVhIGxhIGJ1cnNhIGNyaXB0byJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlN1c8ibaW51dCBkZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTWF4aW0gw65uIHVsdGltZWxlIDI0IG9yZSIsIjI0aF9sb3ciOiJNaW5pbSDDrm4gdWx0aW1lbGUgMjQgb3JlIiwidmlld19wcmljZV9jaGFydCI6IlZlemkgZ3JhZmljdWwgZGUgcHJlyJt1cmkgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJTdXPIm2ludXQgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJTdXPIm2ludXQgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJTdXPIm2ludXQgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiU3VzyJtpbnV0IGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTWF4aW0gw65uIHVsdGltZWxlIDI0IG9yZSIsIjI0aF9sb3ciOiJNaW5pbSDDrm4gdWx0aW1lbGUgMjQgb3JlIiwidmlld19wcmljZV9jaGFydCI6IlZlemkgZ3JhZmljdWwgZGUgcHJlyJt1cmkgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJTdXPIm2ludXQgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZlemkgZ3JhZmljdWwgZGUgcHJlyJt1cmkgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJTdXPIm2ludXQgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoiSGFydGEgYXJib3Jlc2NlbnTEgyBhIGNyaXB0b21vbmVkZWxvciIsInN1YnRpdGxlIjoiKFRvcCAle3RvcH0gZHVwxIMgY2FwaXRhbGl6YXJlYSBidXJzaWVyxIMpIiwicG93ZXJlZF9ieSI6IlN1c8ibaW51dCBkZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiQXZlcnRpc21lbnQ6IEFjZXN0IGluc3RydW1lbnQgZXN0ZSBwZW50cnUgZGl2ZXJ0aXNtZW50IMiZaSBudSBhcmUgcm9sdWwgZGUgY29uc2lsaWVyZSBmaW5hbmNpYXLEgy4iLCJzcGluIjoiUm90aXJlIiwiYXZhaWxhYmxlX2NvaW5zIjoiTW9uZWRlIGRpc3BvbmliaWxlIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiQWN0dWFsaXphcmUgUHJlyJsgQ29pbkdlY2tvIiwidG90YWxfbWNhcCI6IlRvdGFsIGNhcGl0YWxpemFyZSBsYSBidXJzxIMiLCIyNGhfdm9sIjoiVm9sdW0gw65uIHVsdGltZWxlIDI0IG9yZSIsImRvbSI6IkRvbWluYcibaWUifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoiU2NoaW1iIiwicGFpciI6IlBlcmVjaGUiLCJwcmljZSI6IlByZcibIiwidm9sdW1lIjoiVm9sdW0iLCJ0cnVzdF9zY29yZSI6IlNjb3IgZGUgw65uY3JlZGVyZSIsInZpZXdfcHJpY2VfY2hhcnQiOiJWZXppIGdyYWZpY3VsIGRlIHByZcibdXJpIiwicG93ZXJlZF9ieSI6IlN1c8ibaW51dCBkZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJWZXppIHRvYXRlIHBpZcibZWxlICV7Y29pbn0ifX0nKX0sIjlhYTkiOmZ1bmN0aW9uKGUsdCl7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LCI5YjQzIjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZDhlOCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYocihlKSx2b2lkIDA9PT10KXJldHVybiBlO3N3aXRjaChuKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBlLmNhbGwodCxuKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBlLmNhbGwodCxuLHIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKG4scixpKXtyZXR1cm4gZS5jYWxsKHQsbixyLGkpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sIjljNmMiOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCIyYjRjIikoInVuc2NvcGFibGVzIiksaT1BcnJheS5wcm90b3R5cGU7dm9pZCAwPT1pW3JdJiZuKCIzMmU5IikoaSxyLHt9KSxlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aVtyXVtlXT0hMH19LCI5ZDNjIjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXt2YXIgcj10LlN5bWJvbCxpPW4oImQ2ZGEiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIHImJigiZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmKCJzeW1ib2wiPT09dHlwZW9mIHIoImZvbyIpJiYoInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJiYXIiKSYmaSgpKSkpfX0pLmNhbGwodGhpcyxuKCJjOGJhIikpfSwiOWRlZiI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjQ1ODgiKSxpPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT4wP2kocihlKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sIjllMWUiOmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9IW4oIjc5ZTUiKSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKX0sYTBkMzpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjBmN2MiKTtlLmV4cG9ydHM9ci5jYWxsKEZ1bmN0aW9uLmNhbGwsT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSl9LGExNTk6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImU0YWUiKSxpPW4oIjdlOTAiKSxhPW4oIjE2OTEiKSxvPW4oIjU1NTkiKSgiSUVfUFJPVE8iKSxjPWZ1bmN0aW9uKCl7fSxzPSJwcm90b3R5cGUiLHA9ZnVuY3Rpb24oKXt2YXIgZSx0PW4oIjFlYzkiKSgiaWZyYW1lIikscj1hLmxlbmd0aCxpPSI8IixvPSI+Ijt0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLG4oIjMyZmMiKS5hcHBlbmRDaGlsZCh0KSx0LnNyYz0iamF2YXNjcmlwdDoiLGU9dC5jb250ZW50V2luZG93LmRvY3VtZW50LGUub3BlbigpLGUud3JpdGUoaSsic2NyaXB0IitvKyJkb2N1bWVudC5GPU9iamVjdCIraSsiL3NjcmlwdCIrbyksZS5jbG9zZSgpLHA9ZS5GO3doaWxlKHItLSlkZWxldGUgcFtzXVthW3JdXTtyZXR1cm4gcCgpfTtlLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24oZSx0KXt2YXIgbjtyZXR1cm4gbnVsbCE9PWU/KGNbc109cihlKSxuPW5ldyBjLGNbc109bnVsbCxuW29dPWUpOm49cCgpLHZvaWQgMD09PXQ/bjppKG4sdCl9fSxhMzA2OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiJDbGFzaWZpY2FjacOzbiBkZSBjYXBpdGFsaXphY2nDs24gZGUgbWVyY2FkbyIsIm1jYXAiOiJDYXAuIGRlIG1lcmNhZG8iLCIyNGhfdm9sdW1lIjoiMjRIIFZvbHVtZW4iLCIyNGhfaGlnaF9sb3ciOiJNw6F4aW1vL23DrW5pbW8gZW4gMjTCoGgifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IkNvbXBhcmFjacOzbiBkZSBwcmVjaW9zIGRlIGNyaXB0b21vbmVkYXMiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiQ29tcGFyYWNpw7NuIGRlIGxhIGNhcGl0YWxpemFjacOzbiBkZWwgbWVyY2FkbyBkZSBjcmlwdG9tb25lZGFzIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiJNw6F4aW1vIGVuIDI0IGgiLCIyNGhfbG93IjoiTcOtbmltbyBlbiAyNCBoIiwidmlld19wcmljZV9jaGFydCI6IlZlciBncsOhZmljbyBkZSBwcmVjaW9zIGRlICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkNvbiB0ZWNub2xvZ8OtYSBkZSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6Ik3DoXhpbW8gZW4gMjQgaCIsIjI0aF9sb3ciOiJNw61uaW1vIGVuIDI0IGgiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmVyIGdyw6FmaWNvIGRlIHByZWNpb3MgZGUgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJDb24gdGVjbm9sb2fDrWEgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZlciBncsOhZmljbyBkZSBwcmVjaW9zIGRlICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6Ik1hcGEgZGUgw6FyYm9sIGRlIGNyaXB0b21vbmVkYXMiLCJzdWJ0aXRsZSI6IihQcmluY2lwYWxlcyAle3RvcH0gc2Vnw7puIGxhIGNhcGl0YWxpemFjacOzbiBkZSBtZXJjYWRvKSIsInBvd2VyZWRfYnkiOiJDb24gdGVjbm9sb2fDrWEgZGUgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IkRlc2NhcmdvIGRlIHJlc3BvbnNhYmlsaWRhZDogZXN0YXMgaGVycmFtaWVudGFzIHRpZW5lbiBmaW5lcyBpbmZvcm1hdGl2b3MgeSBubyBjb25zdGl0dXllbiBhc2Vzb3JhbWllbnRvIGZpbmFuY2llcm8uIiwic3BpbiI6IkdpcmFyIiwiYXZhaWxhYmxlX2NvaW5zIjoiTW9uZWRhcyBkaXNwb25pYmxlcyJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkFjdHVhbGl6YWNpw7NuIGRlIHByZWNpbyBkZSBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiQ2FwIE0gdG90YWwiLCIyNGhfdm9sIjoiVm9sdW1lbiBlbiAyNMKgaCIsImRvbSI6IkRvbSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJJbnRlcmNhbWJpb3MiLCJwYWlyIjoiUGFyIiwicHJpY2UiOiJQcmVjaW8iLCJ2b2x1bWUiOiJWb2x1bWVuIiwidHJ1c3Rfc2NvcmUiOiJQdW50dWFjacOzbiBkZSBjb25maWFuemEiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmVyIGdyw6FmaWNvIGRlIHByZWNpb3MiLCJwb3dlcmVkX2J5IjoiQ29uIHRlY25vbG9nw61hIGRlICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJ2aWV3X2FsbCI6IlZlciB0b2RvcyBsb3MgbWVyY2Fkb3MgZGUgJXtjb2lufSJ9fScpfSxhNDgxOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiY2I3YyIpLGk9bigiNGJmOCIpLGE9bigiOWRlZiIpLG89bigiNDU4OCIpLGM9bigiMDM5MCIpLHM9bigiNWYxYiIpLHA9TWF0aC5tYXgsbD1NYXRoLm1pbix1PU1hdGguZmxvb3IsZD0vXCQoWyQmYCddfFxkXGQ/fDxbXj5dKj4pL2csXz0vXCQoWyQmYCddfFxkXGQ/KS9nLG09ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/ZTpTdHJpbmcoZSl9O24oIjIxNGYiKSgicmVwbGFjZSIsMiwoZnVuY3Rpb24oZSx0LG4sZil7cmV0dXJuW2Z1bmN0aW9uKHIsaSl7dmFyIGE9ZSh0aGlzKSxvPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09bz9vLmNhbGwocixhLGkpOm4uY2FsbChTdHJpbmcoYSkscixpKX0sZnVuY3Rpb24oZSx0KXt2YXIgaT1mKG4sZSx0aGlzLHQpO2lmKGkuZG9uZSlyZXR1cm4gaS52YWx1ZTt2YXIgdT1yKGUpLGQ9U3RyaW5nKHRoaXMpLF89ImZ1bmN0aW9uIj09PXR5cGVvZiB0O198fCh0PVN0cmluZyh0KSk7dmFyIHY9dS5nbG9iYWw7aWYodil7dmFyIHk9dS51bmljb2RlO3UubGFzdEluZGV4PTB9dmFyIGc9W107d2hpbGUoMSl7dmFyIHc9cyh1LGQpO2lmKG51bGw9PT13KWJyZWFrO2lmKGcucHVzaCh3KSwhdilicmVhazt2YXIgYj1TdHJpbmcod1swXSk7IiI9PT1iJiYodS5sYXN0SW5kZXg9YyhkLGEodS5sYXN0SW5kZXgpLHkpKX1mb3IodmFyIGs9IiIseD0wLEM9MDtDPGcubGVuZ3RoO0MrKyl7dz1nW0NdO2Zvcih2YXIgUz1TdHJpbmcod1swXSksUD1wKGwobyh3LmluZGV4KSxkLmxlbmd0aCksMCksaj1bXSxPPTE7Tzx3Lmxlbmd0aDtPKyspai5wdXNoKG0od1tPXSkpO3ZhciBBPXcuZ3JvdXBzO2lmKF8pe3ZhciBFPVtTXS5jb25jYXQoaixQLGQpO3ZvaWQgMCE9PUEmJkUucHVzaChBKTt2YXIgVD1TdHJpbmcodC5hcHBseSh2b2lkIDAsRSkpfWVsc2UgVD1oKFMsZCxQLGosQSx0KTtQPj14JiYoays9ZC5zbGljZSh4LFApK1QseD1QK1MubGVuZ3RoKX1yZXR1cm4gaytkLnNsaWNlKHgpfV07ZnVuY3Rpb24gaChlLHQscixhLG8sYyl7dmFyIHM9citlLmxlbmd0aCxwPWEubGVuZ3RoLGw9XztyZXR1cm4gdm9pZCAwIT09byYmKG89aShvKSxsPWQpLG4uY2FsbChjLGwsKGZ1bmN0aW9uKG4saSl7dmFyIGM7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBlO2Nhc2UiYCI6cmV0dXJuIHQuc2xpY2UoMCxyKTtjYXNlIiciOnJldHVybiB0LnNsaWNlKHMpO2Nhc2UiPCI6Yz1vW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGw9K2k7aWYoMD09PWwpcmV0dXJuIG47aWYobD5wKXt2YXIgZD11KGwvMTApO3JldHVybiAwPT09ZD9uOmQ8PXA/dm9pZCAwPT09YVtkLTFdP2kuY2hhckF0KDEpOmFbZC0xXStpLmNoYXJBdCgxKTpufWM9YVtsLTFdfXJldHVybiB2b2lkIDA9PT1jPyIiOmN9KSl9fSkpfSxhNjI1OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImNvaW5fZGV0YWlscyI6eyJtY2FwX3JhbmsiOiJSYW5nb3JkZSBtYXJrdGthcGl0YWxpc2F0aWUiLCJtY2FwIjoiTWFya3RrYXAuIiwiMjRoX3ZvbHVtZSI6IjI0VSB2b2x1bWUiLCIyNGhfaGlnaF9sb3ciOiIyNC11dXJzIGhvb2cvbGFhZyJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJNb2dlbGlqayBnZW1hYWt0IGRvb3IgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiVmVyZ2VsaWpraW5nIHZhbiBjcnlwdG9wcmlqemVuIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IlZlcmdlbGlqa2luZyB2YW4gY3J5cHRvbWFya3RrYXBpdGFsaXNhdGllcyJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6Ik1vZ2VsaWprIGdlbWFha3QgZG9vciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjRVIGhvb2ciLCIyNGhfbG93IjoiMjRVIGxhYWciLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiS29lcnNncmFmaWVrIHZhbiAle2NvaW59IGJla2lqa2VuIiwicG93ZXJlZF9ieSI6Ik1vZ2VsaWprIGdlbWFha3QgZG9vciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6Ik1vZ2VsaWprIGdlbWFha3QgZG9vciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6Ik1vZ2VsaWprIGdlbWFha3QgZG9vciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJNb2dlbGlqayBnZW1hYWt0IGRvb3IgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNFUgaG9vZyIsIjI0aF9sb3ciOiIyNFUgbGFhZyIsInZpZXdfcHJpY2VfY2hhcnQiOiJLb2Vyc2dyYWZpZWsgdmFuICV7Y29pbn0gYmVraWprZW4iLCJwb3dlcmVkX2J5IjoiTW9nZWxpamsgZ2VtYWFrdCBkb29yICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiJLb2Vyc2dyYWZpZWsgdmFuICV7Y29pbn0gYmVraWprZW4iLCJwb3dlcmVkX2J5IjoiTW9nZWxpamsgZ2VtYWFrdCBkb29yICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IkJvb21rYWFydCBjcnlwdG9jdXJyZW5jeVwncyIsInN1YnRpdGxlIjoiKFRvcCAle3RvcH0gbXVudGVuIG9wIG1hcmt0a2FwaXRhbGlzYXRpZSkiLCJwb3dlcmVkX2J5IjoiTW9nZWxpamsgZ2VtYWFrdCBkb29yICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiJEaXNjbGFpbWVyOiBEZXplIHRvb2xzIHppam4gYmVkb2VsZCBhbHMgZW50ZXJ0YWlubWVudCBlbiB2b3JtZW4gZ2VlbiBmaW5hbmNpZWVsIGFkdmllcy4iLCJzcGluIjoiRHJhYWllbiIsImF2YWlsYWJsZV9jb2lucyI6IkJlc2NoaWtiYXJlIG11bnRlbiJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyBwcmlqc3VwZGF0ZSIsInRvdGFsX21jYXAiOiJUb3RhbGUgbWFya3RrYXBpdGFsaXNhdGllIiwiMjRoX3ZvbCI6IjI0aCBWb2x1bWUiLCJkb20iOiJEb21pbmFudGllIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IkJldXJzIiwicGFpciI6IlBhYXIiLCJwcmljZSI6IlByaWpzIiwidm9sdW1lIjoiVm9sdW1lIiwidHJ1c3Rfc2NvcmUiOiJUcnVzdCBTY29yZSIsInZpZXdfcHJpY2VfY2hhcnQiOiJLb2Vyc2dyYWZpZWsgYmVraWprZW4iLCJwb3dlcmVkX2J5IjoiTW9nZWxpamsgZ2VtYWFrdCBkb29yICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJ2aWV3X2FsbCI6IkJla2lqayBhbGxlICV7Y29pbn0tbWFya3RlbiJ9fScpfSxhYTc3OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI1Y2ExIiksaT1uKCJiZTEzIiksYT1uKCI3OWU1Iiksbz1uKCJmZGVmIiksYz0iWyIrbysiXSIscz0i4oCLwoUiLHA9UmVnRXhwKCJeIitjK2MrIioiKSxsPVJlZ0V4cChjK2MrIiokIiksdT1mdW5jdGlvbihlLHQsbil7dmFyIGk9e30sYz1hKChmdW5jdGlvbigpe3JldHVybiEhb1tlXSgpfHxzW2VdKCkhPXN9KSkscD1pW2VdPWM/dChkKTpvW2VdO24mJihpW25dPXApLHIoci5QK3IuRipjLCJTdHJpbmciLGkpfSxkPXUudHJpbT1mdW5jdGlvbihlLHQpe3JldHVybiBlPVN0cmluZyhpKGUpKSwxJnQmJihlPWUucmVwbGFjZShwLCIiKSksMiZ0JiYoZT1lLnJlcGxhY2UobCwiIikpLGV9O2UuZXhwb3J0cz11fSxhYWUzOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJkM2Y0IiksaT1uKCIyZDk1IiksYT1uKCIyYjRjIikoIm1hdGNoIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiByKGUpJiYodm9pZCAwIT09KHQ9ZVthXSk/ISF0OiJSZWdFeHAiPT1pKGUpKX19LGFjNmE6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uKCJjYWRmIiksaT1uKCIwZDU4IiksYT1uKCIyYWJhIiksbz1uKCI3NzI2IiksYz1uKCIzMmU5Iikscz1uKCI4NGYyIikscD1uKCIyYjRjIiksbD1wKCJpdGVyYXRvciIpLHU9cCgidG9TdHJpbmdUYWciKSxkPXMuQXJyYXksXz17Q1NTUnVsZUxpc3Q6ITAsQ1NTU3R5bGVEZWNsYXJhdGlvbjohMSxDU1NWYWx1ZUxpc3Q6ITEsQ2xpZW50UmVjdExpc3Q6ITEsRE9NUmVjdExpc3Q6ITEsRE9NU3RyaW5nTGlzdDohMSxET01Ub2tlbkxpc3Q6ITAsRGF0YVRyYW5zZmVySXRlbUxpc3Q6ITEsRmlsZUxpc3Q6ITEsSFRNTEFsbENvbGxlY3Rpb246ITEsSFRNTENvbGxlY3Rpb246ITEsSFRNTEZvcm1FbGVtZW50OiExLEhUTUxTZWxlY3RFbGVtZW50OiExLE1lZGlhTGlzdDohMCxNaW1lVHlwZUFycmF5OiExLE5hbWVkTm9kZU1hcDohMSxOb2RlTGlzdDohMCxQYWludFJlcXVlc3RMaXN0OiExLFBsdWdpbjohMSxQbHVnaW5BcnJheTohMSxTVkdMZW5ndGhMaXN0OiExLFNWR051bWJlckxpc3Q6ITEsU1ZHUGF0aFNlZ0xpc3Q6ITEsU1ZHUG9pbnRMaXN0OiExLFNWR1N0cmluZ0xpc3Q6ITEsU1ZHVHJhbnNmb3JtTGlzdDohMSxTb3VyY2VCdWZmZXJMaXN0OiExLFN0eWxlU2hlZXRMaXN0OiEwLFRleHRUcmFja0N1ZUxpc3Q6ITEsVGV4dFRyYWNrTGlzdDohMSxUb3VjaExpc3Q6ITF9LG09aShfKSxmPTA7ZjxtLmxlbmd0aDtmKyspe3ZhciBoLHY9bVtmXSx5PV9bdl0sZz1vW3ZdLHc9ZyYmZy5wcm90b3R5cGU7aWYodyYmKHdbbF18fGModyxsLGQpLHdbdV18fGModyx1LHYpLHNbdl09ZCx5KSlmb3IoaCBpbiByKXdbaF18fGEodyxoLHJbaF0sITApfX0sYWNlZDpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiWOG6v3AgaOG6oW5nIFbhu5FuIGjDs2EgdGjhu4sgdHLGsOG7nW5nIiwibWNhcCI6Ilbhu5FuIGjDs2EgdGjhu4sgdHLGsOG7nW5nIiwiMjRoX3ZvbHVtZSI6Ikto4buRaSBsxrDhu6NuZyB0cm9uZyAyNGgiLCIyNGhfaGlnaF9sb3ciOiJN4bupYyBjYW8gbmjhuqV0L3Ro4bqlcCBuaOG6pXQgdHJvbmcgMjQgZ2nhu50ifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoixJDGsOG7o2MgaOG7lyB0cuG7oyBi4bufaSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJTbyBzw6FuaCBnacOhIHRp4buBbiBtw6MgaMOzYSIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiJTbyBzw6FuaCBnacOhIHRy4buLIHbhu5FuIGjDs2EgdGjhu4sgdHLGsOG7nW5nIGPhu6dhIHRp4buBbiBtw6MgaMOzYSJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IsSQxrDhu6NjIGjhu5cgdHLhu6MgYuG7n2kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6IkNhbyB0cm9uZyAyNEgiLCIyNGhfbG93IjoiVGjhuqVwIHRyb25nIDI0SCIsInZpZXdfcHJpY2VfY2hhcnQiOiJYZW0gYmnhu4N1IMSR4buTIGdpw6EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLEkMaw4bujYyBo4buXIHRy4bujIGLhu59pICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoixJDGsOG7o2MgaOG7lyB0cuG7oyBi4bufaSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IsSQxrDhu6NjIGjhu5cgdHLhu6MgYuG7n2kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoixJDGsOG7o2MgaOG7lyB0cuG7oyBi4bufaSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IkNhbyB0cm9uZyAyNEgiLCIyNGhfbG93IjoiVGjhuqVwIHRyb25nIDI0SCIsInZpZXdfcHJpY2VfY2hhcnQiOiJYZW0gYmnhu4N1IMSR4buTIGdpw6EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLEkMaw4bujYyBo4buXIHRy4bujIGLhu59pICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiJYZW0gYmnhu4N1IMSR4buTIGdpw6EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLEkMaw4bujYyBo4buXIHRy4bujIGLhu59pICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IlPGoSDEkeG7kyBjw6J5IFRp4buBbiBtw6MgaMOzYSIsInN1YnRpdGxlIjoiKCV7dG9wfSBow6BuZyDEkeG6p3UgdGhlbyBnacOhIHRy4buLIHbhu5FuIGjDs2EgdGjhu4sgdHLGsOG7nW5nKSIsInBvd2VyZWRfYnkiOiLEkMaw4bujYyBo4buXIHRy4bujIGLhu59pICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiJUdXnDqm4gYuG7kSBtaeG7hW4gdHLhu6sgdHLDoWNoIG5oaeG7h206IEPDtG5nIGPhu6UgbsOgeSDEkcaw4bujYyBkw7luZyBjaG8gbeG7pWMgxJHDrWNoIGdp4bqjaSB0csOtIHbDoCBraMO0bmcgY+G6pXUgdGjDoG5oIHRow7RuZyB0aW4gdMawIHbhuqVuIHTDoGkgY2jDrW5oLiIsInNwaW4iOiLEkOG7k25nIFNwaW4iLCJhdmFpbGFibGVfY29pbnMiOiJUaeG7gW4g4bqjbyBraOG6oyBk4bulbmcifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiJD4bqtcCBuaOG6rXQgZ2nDoSB0csOqbiBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiVOG7lW5nIGdpw6EgdHLhu4sgduG7kW4gaMOzYSB0aOG7iyB0csaw4budbmciLCIyNGhfdm9sIjoiS2jhu5FpIGzGsOG7o25nIGdpYW8gZOG7i2NoIHRyb25nIDI0IGdp4budIiwiZG9tIjoixq91IHRo4bq/In0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IlPDoG4gZ2lhbyBk4buLY2giLCJwYWlyIjoiQ+G6t3AiLCJwcmljZSI6Ikdpw6EiLCJ2b2x1bWUiOiJLaOG7kWkgbMaw4bujbmciLCJ0cnVzdF9zY29yZSI6IsSQaeG7g20gdGluIGPhuq15Iiwidmlld19wcmljZV9jaGFydCI6IlhlbSBiaeG7g3UgxJHhu5MgZ2nDoSIsInBvd2VyZWRfYnkiOiLEkMaw4bujYyBo4buXIHRy4bujIGLhu59pICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJ2aWV3X2FsbCI6IlhlbSB04bqldCBj4bqjIGPDoWMgdGjhu4sgdHLGsOG7nW5nICV7Y29pbn0ifX0nKX0sYWViZDpmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybntlbnVtZXJhYmxlOiEoMSZlKSxjb25maWd1cmFibGU6ISgyJmUpLHdyaXRhYmxlOiEoNCZlKSx2YWx1ZTp0fX19LGFmMDg6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6Itiq2LXZhtmK2YEg2KfZhNmC2YrZhdipINin2YTYs9mI2YLZitipIiwibWNhcCI6Itin2YTZgtmK2YXYqSDYp9mE2LPZiNmC2YrYqSAiLCIyNGhfdm9sdW1lIjoi2K3YrNmFINin2YTYqtiv2KfZiNmEINi52YTZiSDZhdiv2KfYsSAyNCDYs9in2LnYqSIsIjI0aF9oaWdoX2xvdyI6Itin2LHYqtmB2KfYuS/Yp9mG2K7Zgdin2LYg2LnZhNmJINmF2K/Yp9ixIDI0INiz2KfYudipIn0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6ItmF2K/YudmI2YUg2YXZhiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiLZhdmC2KfYsdmG2Kkg2LPYudixINin2YTYudmF2YTYp9iqINin2YTZhdi02YHYsdipIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6ItmF2YLYp9ix2YbYqSDYp9mE2YLZitmF2Kkg2KfZhNiz2YjZgtmK2Kkg2YTZhNi52YXZhNin2Kog2KfZhNmF2LTZgdix2KkifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLZhdiv2LnZiNmFINmF2YYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6ItmF2LHYqtmB2Lkg2LnZhNmJINmF2K/Yp9ixIDI0INiz2KfYudipIiwiMjRoX2xvdyI6ItmF2YbYrtmB2LYg2LnZhNmJINmF2K/Yp9ixIDI0INiz2KfYudipIiwidmlld19wcmljZV9jaGFydCI6Iti52LHYtiDYp9mE2LHYs9mFINin2YTYqNmK2KfZhtmKINmE2LPYudixICV7Y29pbn0iLCJwb3dlcmVkX2J5Ijoi2YXYr9i52YjZhSDZhdmGICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi2YXYr9i52YjZhSDZhdmGICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi2YXYr9i52YjZhSDZhdmGICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6ItmF2K/YudmI2YUg2YXZhiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6ItmF2LHYqtmB2Lkg2LnZhNmJINmF2K/Yp9ixIDI0INiz2KfYudipIiwiMjRoX2xvdyI6ItmF2YbYrtmB2LYg2LnZhNmJINmF2K/Yp9ixIDI0INiz2KfYudipIiwidmlld19wcmljZV9jaGFydCI6Iti52LHYtiAle2NvaW59INin2YTYsdiz2YUg2KfZhNio2YrYp9mG2Yog2YTZhNiz2LnYsSIsInBvd2VyZWRfYnkiOiLZhdiv2LnZiNmFINmF2YYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6Iti52LHYtiAle2NvaW59INin2YTYsdiz2YUg2KfZhNio2YrYp9mG2Yog2YTZhNiz2LnYsSIsInBvd2VyZWRfYnkiOiLZhdiv2LnZiNmFINmF2YYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoi2K7YsdmK2LfYqSDYtNis2LHYqSDYp9mE2LnZhdmE2KfYqiDYp9mE2YXYtNmB2LHYqSIsInN1YnRpdGxlIjoiKNij2YHYttmEICV7dG9wfSDZiNmB2YLZi9inINmE2YTZgtmK2YXYqSDYp9mE2LPZiNmC2YrYqSkiLCJwb3dlcmVkX2J5Ijoi2YXYr9i52YjZhSDZhdmGICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLYpdiu2YTYp9ihINin2YTZhdiz2KTZiNmE2YrYqTog2KrYs9iq2K7Yr9mFINmH2LDZhyDYp9mE2KPYr9mI2KfYqiDZg9ij2K/ZiNin2Kog2KrYsdmB2YrZh9mK2Kkg2YjZhNinINiq2LTZg9mR2YQg2YXYtNmI2LHYqSDZhdin2YTZitipLiIsInNwaW4iOiLYr9mI2LHYp9mGIiwiYXZhaWxhYmxlX2NvaW5zIjoi2LnZhdmE2KfYqiDZhdiq2KfYrdipIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoi2KrYrdiv2YrYqyDYs9i52LEgQ29pbkdlY2tvIiwidG90YWxfbWNhcCI6Itil2KzZhdin2YTZiiDYp9mE2YLZitmF2Kkg2KfZhNiz2YjZgtmK2KkiLCIyNGhfdm9sIjoi2KfZhNit2KzZhSDYudmE2Ykg2YXYr9in2LEgMjQg2LPYp9i52KkiLCJkb20iOiLYp9mE2YfZitmF2YbYqSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiLYqNmI2LHYtdipIiwicGFpciI6Itiy2YjYrCIsInByaWNlIjoi2KfZhNiz2LnYsSIsInZvbHVtZSI6Itin2YTYrdis2YUiLCJ0cnVzdF9zY29yZSI6ItmG2YLYp9i3INin2YTYq9mC2KkgVHJ1c3QgU2NvcmUiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi2LnYsdi2INin2YTYsdiz2YUg2KfZhNio2YrYp9mG2Yog2YTZhNiz2LnYsSIsInBvd2VyZWRfYnkiOiLZhdiv2LnZiNmFINmF2YYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoi2LnYsdi2INis2YXZiti5INij2LPZiNin2YIgJXtjb2lufSJ9fScpfSxhZjE0OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7bi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiByfSkpO24oIjc2MTgiKTtmdW5jdGlvbiByKCl7cmV0dXJuIG51bGwhPWRvY3VtZW50LmhlYWQuYXR0YWNoU2hhZG93JiZudWxsIT13aW5kb3cuY3VzdG9tRWxlbWVudHMmJm51bGwhPXdpbmRvdy5mZXRjaH19LGIwYzU6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI1MjBhIik7bigiNWNhMSIpKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOnIhPT0vLi8uZXhlY30se2V4ZWM6cn0pfSxiM2ZkOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiZjM2NyIpLGk9bigiMWI3ZiIpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlPWkoKTtyZXR1cm4gcihTdHJpbmcucHJvdG90eXBlLHt0cmltOmV9LHt0cmltOmZ1bmN0aW9uKCl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUudHJpbSE9PWV9fSksZX19LGI0NDc6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjNhMzgiKSxpPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZT4wP2kocihlKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sYjhlMzpmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz0hMH0sYmE4ZDpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoi15PXqNeS16og16nXldeV15kg16nXldenIiwibWNhcCI6Itep15XXldeZINep15XXpyIsIjI0aF92b2x1bWUiOiLXoNek15cg157XodeX16gg15EtMjQg16nXoteV16oiLCIyNGhfaGlnaF9sb3ciOiLXqdeZ15Av16nXpNecINeRLTI0INep16LXldeqIn0sImNvaW5fY29tcGFyZV9jaGFydF93aWRnZXQiOnsicG93ZXJlZF9ieSI6Itee15XXpNei15wg16LXnCDXmdeT15kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoi15TXqdeV15XXkNeqINee15fXmdeo15kg157XmNeR16LXldeqINen16jXmdek15jXlSIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiLXlNep15XXldeQ16og16nXldeV15kg16nXldenINep15wg157XmNeR16LXldeqINen16jXmdek15jXlSJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6Itee15XXpNei15wg16LXnCDXmdeT15kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6Itep15nXkCDXkS0yNCDXqdei15XXqiIsIjI0aF9sb3ciOiLXqdek15wg15EtMjQg16nXoteV16oiLCJ2aWV3X3ByaWNlX2NoYXJ0Ijoi15TXpteSINeQ16og15jXkdec16og15TXnteX15nXqNeZ150g16nXnCAle2NvaW59IiwicG93ZXJlZF9ieSI6Itee15XXpNei15wg16LXnCDXmdeT15kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLXnteV16TXotecINei15wg15nXk9eZICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi157Xldek16LXnCDXotecINeZ15PXmSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLXnteV16TXotecINei15wg15nXk9eZICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoi16nXmdeQINeRLTI0INep16LXldeqIiwiMjRoX2xvdyI6Itep16TXnCDXkS0yNCDXqdei15XXqiIsInZpZXdfcHJpY2VfY2hhcnQiOiLXlNem15Ig15DXqiDXmNeR15zXqiDXlNee15fXmdeo15nXnSDXqdecICV7Y29pbn0iLCJwb3dlcmVkX2J5Ijoi157Xldek16LXnCDXotecINeZ15PXmSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fY29udmVydGVyX3dpZGdldCI6eyJ2aWV3X3ByaWNlX2NoYXJ0Ijoi15TXpteSINeQ16og15jXkdec16og15TXnteX15nXqNeZ150g16nXnCAle2NvaW59IiwicG93ZXJlZF9ieSI6Itee15XXpNei15wg16LXnCDXmdeT15kgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoi157XpNeqINeU16LXpSDXqdecINee15jXkdei15XXqiDXp9eo15nXpNeY15UiLCJzdWJ0aXRsZSI6Iigle3RvcH0g157XldeR15nXnNeZ150g15zXpNeZINep15XXldeZINep15XXpykiLCJwb3dlcmVkX2J5Ijoi157Xldek16LXnCDXotecINeZ15PXmSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoi15vXqteRINeV15nXqteV16g6INeb15zXmdedINeQ15zXlSDXntep157XqdeZ150g15zXpteV16jXmiDXkdeZ15PXldeoINeV15DXmdeg150g157XlNeV15XXmdedINeZ15nXoteV16Ug16TXmdeg16DXodeZLiIsInNwaW4iOiLXodeV15HXkSIsImF2YWlsYWJsZV9jb2lucyI6Itee15jXkdei15XXqiDXltee15nXoNeZ150ifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiLXoteT15vXldefINee15fXmdeo15kgQ29pbkdlY2tvIiwidG90YWxfbWNhcCI6Itep15XXldeZINep15XXpyDXm9eV15zXnCIsIjI0aF92b2wiOiLXoNek15cg15EtMjQg16nXoteV16oiLCJkb20iOiLXk9eV157Xmdeg16DXmNeZ15XXqiJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiLXkdeV16jXodeUIiwicGFpciI6Item157XkyIsInByaWNlIjoi157Xl9eZ16jXnteX15nXqCIsInZvbHVtZSI6Iteg16TXlyIsInRydXN0X3Njb3JlIjoi16bXmdeV158g15DXnteZ16DXldeqIiwidmlld19wcmljZV9jaGFydCI6IteU16bXkiDXmNeR15zXqiDXnteX15nXqNeZ150iLCJwb3dlcmVkX2J5Ijoi157Xldek16LXnCDXotecINeZ15PXmSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiLXlNem15Ig15DXqiDXm9ecINeU16nXldeV16fXmdedINep15wgJXtjb2lufSJ9fScpfSxiZTEzOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09ZSl0aHJvdyBUeXBlRXJyb3IoIkNhbid0IGNhbGwgbWV0aG9kIG9uICAiK2UpO3JldHVybiBlfX0sYmYwYjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiMzU1ZCIpLGk9bigiYWViZCIpLGE9bigiMzZjMyIpLG89bigiMWJjMyIpLGM9bigiMDdlMyIpLHM9bigiNzk0YiIpLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt0LmY9bigiOGU2MCIpP3A6ZnVuY3Rpb24oZSx0KXtpZihlPWEoZSksdD1vKHQsITApLHMpdHJ5e3JldHVybiBwKGUsdCl9Y2F0Y2gobil7fWlmKGMoZSx0KSlyZXR1cm4gaSghci5mLmNhbGwoZSx0KSxlW3RdKX19LGJmMGY6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIEx9KSk7dmFyIHI9bigiNzYxOCIpLGk9bigiYWYwOCIpLGE9bigiZGNkMCIpLG89bigiYzY4NiIpLGM9bigiMjFhYSIpLHM9bigiNmNlMiIpLHA9bigiZjE4NCIpLGw9bigiZWRkNCIpLHU9bigiYTMwNiIpLGQ9bigiNTc1NCIpLF89bigiZjY5MyIpLG09bigiYmE4ZCIpLGY9bigiN2EwMyIpLGg9bigiOTJkNyIpLHY9bigiNGU3MyIpLHk9bigiMjEwYyIpLGc9bigiMDgyNSIpLHc9bigiMDQyMyIpLGI9bigiZGQxMSIpLGs9bigiNjA0NSIpLHg9bigiYTYyNSIpLEM9bigiZjk0NyIpLFM9bigiODliMiIpLFA9bigiNWQ2NyIpLGo9bigiOTU0MiIpLE89bigiNzcwNCIpLEE9bigiM2RhOSIpLEU9bigiZDM0YSIpLFQ9bigiNGM1YiIpLEQ9bigiODY4MCIpLHo9bigiZmZlYiIpLE09bigiNjJlYSIpLCQ9bigiYWNlZCIpLE49bigiMzUwNCIpLEk9bigiMDU2YyIpLEY9e2FyOmksYmc6YSxjczpvLGRhOmMsZGU6cyxlbDpwLGVuOmwsZXM6dSxmaTpkLGZyOl8saGU6bSxoaTpmLGhyOmgsaHU6dixpZDp5LGl0OmcsamE6dyxrbzpiLGx0Omssbmw6eCxubzpDLHBsOlMscHQ6UCxybzpqLHJ1Ok8sc2s6QSxzbDpFLHN2OlQsdGg6RCx0cjp6LHVrOk0sdmk6JCx6aDpOLCJ6aC10dyI6SX07ZnVuY3Rpb24gTChlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06ImVuIjtyZXR1cm4gUihGW2VdLEZbdF0pfWZ1bmN0aW9uIFIoZSx0KXt2YXIgbj1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHQpKTtmb3IodmFyIGkgaW4gbil7dmFyIGE9ZVtpXSxvPW5baV07aWYoYSYmbylpZigib2JqZWN0Ij09PU9iamVjdChyWyJhIl0pKGEpJiYib2JqZWN0Ij09PU9iamVjdChyWyJhIl0pKG8pKWZvcih2YXIgYyBpbiBlW2ldKW5baV1bY109ZVtpXVtjXTtlbHNlIG5baV09ZVtpXX1yZXR1cm4gbn10WyJhIl09Rn0sYzFlMjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oIjJiMGUiKSxpPW4oIjI4OGEiKSxhPW4ubihpKSxvPW4oImJmMGYiKSxjPWZ1bmN0aW9uKCl7cmV0dXJuIHJbImEiXS5taXhpbih7ZGF0YTpmdW5jdGlvbigpe3JldHVybntwb2x5Z2xvdDpuZXcgYS5hKHtwaHJhc2VzOk9iamVjdChvWyJiIl0pKCJlbiIpfSl9fSxtZXRob2RzOntyZWxvYWRMb2NhbGU6ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT10aGlzLmxvY2FsZSl7aWYoIW9bImEiXVt0aGlzLmxvY2FsZV0pdGhyb3cgbmV3IEVycm9yKCJMb2NhbGUgbm90IHN1cHBvcnRlZCBieSB3aWRnZXQuIENvbnRhY3Qgc3VwcG9ydEBjb2luZ2Vja28uY29tIGZvciBoZWxwLiIpO3RoaXMucG9seWdsb3Q9bmV3IGEuYSh7cGhyYXNlczpPYmplY3Qob1siYiJdKSh0aGlzLmxvY2FsZSwiZW4iKX0pfX19LHdhdGNoOntsb2NhbGU6ZnVuY3Rpb24oKXt0aGlzLnJlbG9hZExvY2FsZSgpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMucmVsb2FkTG9jYWxlKCl9fSl9O3RbImEiXT1jfSxjMjA3OmZ1bmN0aW9uKGUsdCl7fSxjMzY2OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI2ODIxIiksaT1uKCI5ZGVmIiksYT1uKCI3N2YxIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4sbyl7dmFyIGMscz1yKHQpLHA9aShzLmxlbmd0aCksbD1hKG8scCk7aWYoZSYmbiE9bil7d2hpbGUocD5sKWlmKGM9c1tsKytdLGMhPWMpcmV0dXJuITB9ZWxzZSBmb3IoO3A+bDtsKyspaWYoKGV8fGwgaW4gcykmJnNbbF09PT1uKXJldHVybiBlfHxsfHwwO3JldHVybiFlJiYtMX19fSxjMzY3OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiODQzNiIpLGk9bigiNTBlZCIpLGE9bigiNDgxYiIpLG89bigiMzZjMyIpO2UuZXhwb3J0cz1uKCIzMGYxIikoQXJyYXksIkFycmF5IiwoZnVuY3Rpb24oZSx0KXt0aGlzLl90PW8oZSksdGhpcy5faT0wLHRoaXMuX2s9dH0pLChmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3QsdD10aGlzLl9rLG49dGhpcy5faSsrO3JldHVybiFlfHxuPj1lLmxlbmd0aD8odGhpcy5fdD12b2lkIDAsaSgxKSk6aSgwLCJrZXlzIj09dD9uOiJ2YWx1ZXMiPT10P2Vbbl06W24sZVtuXV0pfSksInZhbHVlcyIpLGEuQXJndW1lbnRzPWEuQXJyYXkscigia2V5cyIpLHIoInZhbHVlcyIpLHIoImVudHJpZXMiKX0sYzNhMTpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZTZmMyIpLGk9bigiMTY5MSIpO2UuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24oZSl7cmV0dXJuIHIoZSxpKX19LGM1ZjY6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCI3NzI2IiksaT1uKCI2OWE4IiksYT1uKCIyZDk1Iiksbz1uKCI1ZGJjIiksYz1uKCI2YTk5Iikscz1uKCI3OWU1IikscD1uKCI5MDkzIikuZixsPW4oIjExZTkiKS5mLHU9bigiODZjYyIpLmYsZD1uKCJhYTc3IikudHJpbSxfPSJOdW1iZXIiLG09cltfXSxmPW0saD1tLnByb3RvdHlwZSx2PWEobigiMmFlYiIpKGgpKT09Xyx5PSJ0cmltImluIFN0cmluZy5wcm90b3R5cGUsZz1mdW5jdGlvbihlKXt2YXIgdD1jKGUsITEpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmdC5sZW5ndGg+Mil7dD15P3QudHJpbSgpOmQodCwzKTt2YXIgbixyLGksYT10LmNoYXJDb2RlQXQoMCk7aWYoNDM9PT1hfHw0NT09PWEpe2lmKG49dC5jaGFyQ29kZUF0KDIpLDg4PT09bnx8MTIwPT09bilyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1hKXtzd2l0Y2godC5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6cj0yLGk9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpyPTgsaT01NTticmVhaztkZWZhdWx0OnJldHVybit0fWZvcih2YXIgbyxzPXQuc2xpY2UoMikscD0wLGw9cy5sZW5ndGg7cDxsO3ArKylpZihvPXMuY2hhckNvZGVBdChwKSxvPDQ4fHxvPmkpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQocyxyKX19cmV0dXJuK3R9O2lmKCFtKCIgMG8xIil8fCFtKCIwYjEiKXx8bSgiKzB4MSIpKXttPWZ1bmN0aW9uKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg8MT8wOmUsbj10aGlzO3JldHVybiBuIGluc3RhbmNlb2YgbSYmKHY/cygoZnVuY3Rpb24oKXtoLnZhbHVlT2YuY2FsbChuKX0pKTphKG4pIT1fKT9vKG5ldyBmKGcodCkpLG4sbSk6Zyh0KX07Zm9yKHZhciB3LGI9bigiOWUxZSIpP3AoZik6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJbnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLGs9MDtiLmxlbmd0aD5rO2srKylpKGYsdz1iW2tdKSYmIWkobSx3KSYmdShtLHcsbChmLHcpKTttLnByb3RvdHlwZT1oLGguY29uc3RydWN0b3I9bSxuKCIyYWJhIikocixfLG0pfX0sYzY0OTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO24uZCh0LCJjIiwoZnVuY3Rpb24oKXtyZXR1cm4gcn0pKSxuLmQodCwiYiIsKGZ1bmN0aW9uKCl7cmV0dXJuIGF9KSksbi5kKHQsImEiLChmdW5jdGlvbigpe3JldHVybiBvfSkpO24oImE0ODEiKSxuKCI1ZGYzIiksbigiYWM2YSIpO2Z1bmN0aW9uIHIoZSl7dmFyIHQ9W107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe2koZSx0LG4pfSkpKX0pKSxQcm9taXNlLmFsbCh0KX1mdW5jdGlvbiBpKGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpmdW5jdGlvbigpe30sbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZnVuY3Rpb24oKXt9LHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ci5zcmM9ZS5zcmMsci5jcm9zc09yaWdpbj0iYW5vbnltb3VzIixyLmludGVncml0eT1lLmludGVncml0eSxyLm9ubG9hZD10LHIub25lcnJvcj1mdW5jdGlvbigpe24obmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBzY3JpcHQgIitlLnNyYykpfSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpfWZ1bmN0aW9uIGEoZSx0LG4pe3ZhciByO3JldHVybiBmdW5jdGlvbigpe3ZhciBpPXRoaXMsYT1hcmd1bWVudHMsbz1mdW5jdGlvbigpe3I9bnVsbCxufHxlLmFwcGx5KGksYSl9LGM9biYmIXI7Y2xlYXJUaW1lb3V0KHIpLHI9c2V0VGltZW91dChvLHQpLGMmJmUuYXBwbHkoaSxhKX19ZnVuY3Rpb24gbyhlKXt2YXIgdD1bXS5zbGljZSxuPTE8PWFyZ3VtZW50cy5sZW5ndGg/dC5jYWxsKGFyZ3VtZW50cywwKTpbXSxyPS8oXnxbXHNcbl18PFtBLVphLXpdKlwvPz4pKCg/Omh0dHBzP3xmdHApOlwvXC9bXC1BLVowLTkrXHUwMDI2XHUyMDE5QCNcLyU/PSgpfl98ITosLjtdKltcLUEtWjAtOStcdTAwMjZAI1wvJT1+KClffF0pL2dpO3JldHVybiBuLmxlbmd0aD4wP2UucmVwbGFjZShyLChmdW5jdGlvbihlLHQsbil7dmFyIHI9JzxhIGhyZWY9IicrbisnIiBjbGFzcz0iY2ctcHJpbWFyeS1jb2xvci1kYXJrIGNnLW5vLXVuZGVybGluZSIgdGFyZ2V0PSJfYmxhbmsiPicrbisiPC9hPiI7cmV0dXJuIiIrdCtyfSkpOmUucmVwbGFjZShyLCckMTxhIGNsYXNzPSJjZy1wcmltYXJ5LWNvbG9yLWRhcmsgY2ctbm8tdW5kZXJsaW5lIiB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iJDIiPiQyPC9hPicpfX0sYzY4NjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiUG/FmWFkw60gcG9kbGUgdHLFvm7DrSBrYXBpdGFsaXphY2UiLCJtY2FwIjoiVHLFvm7DrSBrYXBpdGFsaXphY2UiLCIyNGhfdm9sdW1lIjoiT2JqZW0gemEgMjQgaG9kLiIsIjI0aF9oaWdoX2xvdyI6Ik5lanZ5xaHFocOtL25lam5pxb7FocOtIHphIDI0IGhvZC4ifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVnl1xb7DrXbDoSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJTcm92bsOhbsOtIGNlbiBrcnlwdG9txJtuIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IlNyb3Zuw6Fuw60ga2FwaXRhbGl6YWNlIGtyeXB0byB0cmh1In0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVnl1xb7DrXbDoSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTmVqdnnFocWhw60gemEgMjQgaG9kLiIsIjI0aF9sb3ciOiJOZWpuacW+xaHDrSB6YSAyNCBob2QuIiwidmlld19wcmljZV9jaGFydCI6IlpvYnJheml0IGNlbm92w70gZ3JhZiAle2NvaW59IiwicG93ZXJlZF9ieSI6IlZ5dcW+w612w6EgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJWeXXFvsOtdsOhICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVnl1xb7DrXbDoSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJWeXXFvsOtdsOhICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTmVqdnnFocWhw60gemEgMjQgaG9kLiIsIjI0aF9sb3ciOiJOZWpuacW+xaHDrSB6YSAyNCBob2QuIiwidmlld19wcmljZV9jaGFydCI6IlpvYnJheml0IGNlbm92w70gZ3JhZiAle2NvaW59IiwicG93ZXJlZF9ieSI6IlZ5dcW+w612w6EgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlpvYnJheml0IGNlbm92w70gZ3JhZiAle2NvaW59IiwicG93ZXJlZF9ieSI6IlZ5dcW+w612w6EgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoiU3Ryb21vdsOhIG1hcGEga3J5cHRvbcSbbiIsInN1YnRpdGxlIjoiKE5laiAle3RvcH0gcG9kbGUgdHLFvm7DrSBrYXBpdGFsaXphY2UpIiwicG93ZXJlZF9ieSI6IlZ5dcW+w612w6EgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6Ik9kbcOtdG51dMOtIG9kcG92xJtkbm9zdGk6IHR5dG8gbsOhc3Ryb2plIHNsb3XFvsOtIHBybyB6w6FiYXZ1IGEgbmVwxZllZHN0YXZ1asOtIGZvcm11IGZpbmFuxI1uw61obyBwb3JhZGVuc3R2w60uIiwic3BpbiI6IlJvenRvxI1pdCIsImF2YWlsYWJsZV9jb2lucyI6IkRvc3R1cG7DqSBtaW5jZSJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkFrdHVhbGl6YWNlIGNlbnkgQ29pbkdlY2tvIiwidG90YWxfbWNhcCI6IkNlbGtvdsOhIHRyxb5uw60ga2FwLiIsIjI0aF92b2wiOiJPYmplbSAoMjQgaC4pIiwiZG9tIjoiRG9tIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IkJ1cnphIiwicGFpciI6IlDDoXIiLCJwcmljZSI6IkNlbmEiLCJ2b2x1bWUiOiJPYmplbSIsInRydXN0X3Njb3JlIjoiU2vDs3JlIGTFr3bEm3J5aG9kbm9zdGkiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiWm9icmF6aXQgY2Vub3bDvSBncmFmIiwicG93ZXJlZF9ieSI6IlZ5dcW+w612w6EgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiWm9icmF6aXQgdsWhZWNobnkgdHJoeSBwcm8gJXtjb2lufSJ9fScpfSxjNjlhOmZ1bmN0aW9uKGUsdCxuKXtlLmV4cG9ydHM9IW4oIjllMWUiKSYmIW4oIjc5ZTUiKSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KG4oIjIzMGUiKSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpfSxjODk0OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7Ci8qKgogICogdnVlLWN1c3RvbS1lbGVtZW50IHYzLjIuNgogICogKGMpIDIwMTggS2Fyb2wgRmFiamHFhGN6dWsKICAqIEBsaWNlbnNlIE1JVAogICovZnVuY3Rpb24gcihlLHQpe3JldHVybiBlLl9fcHJvdG9fXz10LGV9T2JqZWN0LnNldFByb3RvdHlwZU9mPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8cjtyLmJpbmQoT2JqZWN0KTtmdW5jdGlvbiBpKCl7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2YgU3ltYm9sJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBSZWZsZWN0JiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eSYmIU9iamVjdC5pc1NlYWxlZChQcm94eSl9dmFyIGE9aSgpLG89ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKHQsbixyKXtyZXR1cm4gbiYmZSh0LnByb3RvdHlwZSxuKSxyJiZlKHQsciksdH19KCk7ZnVuY3Rpb24gYyhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHMoZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiF0fHwib2JqZWN0IiE9PXR5cGVvZiB0JiYiZnVuY3Rpb24iIT09dHlwZW9mIHQ/ZTp0fWZ1bmN0aW9uIHAoZSx0KXtpZigiZnVuY3Rpb24iIT09dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uLCBub3QgIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YoZSx0KTplLl9fcHJvdG9fXz10KX1mdW5jdGlvbiBsKCl7cmV0dXJuIFJlZmxlY3QuY29uc3RydWN0KEhUTUxFbGVtZW50LFtdLHRoaXMuX19wcm90b19fLmNvbnN0cnVjdG9yKX1mdW5jdGlvbiB1KGUpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjdXN0b21FbGVtZW50cyl7aWYoYSl7dmFyIG49ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihlKXt2YXIgdDtjKHRoaXMsbik7dmFyIHI9cyh0aGlzLChuLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKG4pKS5jYWxsKHRoaXMpKSxhPWU/SFRNTEVsZW1lbnQuY2FsbChlKTpyO3JldHVybiBpLmNhbGwoYSksdD1hLHMocix0KX1yZXR1cm4gcChuLGUpLG8obixudWxsLFt7a2V5OiJvYnNlcnZlZEF0dHJpYnV0ZXMiLGdldDpmdW5jdGlvbigpe3JldHVybiB0Lm9ic2VydmVkQXR0cmlidXRlc3x8W119fV0pLG59KGwpO3JldHVybiBuLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz11LG4ucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWQsbi5wcm90b3R5cGUuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrPV8sbShlLG4pLG59dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZT9IVE1MRWxlbWVudC5jYWxsKGUpOnRoaXM7cmV0dXJuIGkuY2FsbCh0KSx0fTtyZXR1cm4gci5vYnNlcnZlZEF0dHJpYnV0ZXM9dC5vYnNlcnZlZEF0dHJpYnV0ZXN8fFtdLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOnJ9fSksci5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9dSxyLnByb3RvdHlwZS5kaXNjb25uZWN0ZWRDYWxsYmFjaz1kLHIucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1fLG0oZSxyKSxyfWZ1bmN0aW9uIGkoKXshMD09PXQuc2hhZG93JiZIVE1MRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93JiZ0aGlzLmF0dGFjaFNoYWRvdyh7bW9kZToib3BlbiJ9KSwiZnVuY3Rpb24iPT09dHlwZW9mIHQuY29uc3RydWN0b3JDYWxsYmFjayYmdC5jb25zdHJ1Y3RvckNhbGxiYWNrLmNhbGwodGhpcyl9ZnVuY3Rpb24gdSgpeyJmdW5jdGlvbiI9PT10eXBlb2YgdC5jb25uZWN0ZWRDYWxsYmFjayYmdC5jb25uZWN0ZWRDYWxsYmFjay5jYWxsKHRoaXMpfWZ1bmN0aW9uIGQoKXsiZnVuY3Rpb24iPT09dHlwZW9mIHQuZGlzY29ubmVjdGVkQ2FsbGJhY2smJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2suY2FsbCh0aGlzKX1mdW5jdGlvbiBfKGUsbixyKXsiZnVuY3Rpb24iPT09dHlwZW9mIHQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJiZ0LmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjay5jYWxsKHRoaXMsZSxuLHIpfWZ1bmN0aW9uIG0oZSx0KXt2YXIgbj1jdXN0b21FbGVtZW50cy5nZXQoZSk7cmV0dXJuInVuZGVmaW5lZCIhPT10eXBlb2Ygbj9uOmN1c3RvbUVsZW1lbnRzLmRlZmluZShlLHQpfX1PYmplY3Quc2V0UHJvdG90eXBlT2YobC5wcm90b3R5cGUsSFRNTEVsZW1lbnQucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YobCxIVE1MRWxlbWVudCk7dmFyIGQ9Ly0oXHcpL2csXz1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKGQsKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/dC50b1VwcGVyQ2FzZSgpOiIifSkpfSxtPS8oW14tXSkoW0EtWl0pL2csZj1mdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKG0sIiQxLSQyIikucmVwbGFjZShtLCIkMS0kMiIpLnRvTG93ZXJDYXNlKCl9O2Z1bmN0aW9uIGgoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsbj1lLmxlbmd0aC10LHI9bmV3IEFycmF5KG4pO3doaWxlKG4tLSlyW25dPWVbbit0XTtyZXR1cm4gcn12YXIgdj0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiZlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZlIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZX07ZnVuY3Rpb24geShlLHQpe3ZhciBuPWUscj1bInRydWUiLCJmYWxzZSJdLmluZGV4T2YoZSk+LTEsaT1wYXJzZUZsb2F0KG4sMTApLGE9IWlzTmFOKGkpJiZpc0Zpbml0ZShuKSYmInN0cmluZyI9PT10eXBlb2YgbiYmIW4ubWF0Y2goL14wK1teLl1cZCokL2cpO3JldHVybiB0JiZ0IT09Qm9vbGVhbiYmKCJ1bmRlZmluZWQiPT09dHlwZW9mIG4/InVuZGVmaW5lZCI6dihuKSkhPT10P249dChlKTpyfHx0PT09Qm9vbGVhbj9uPSIiPT09bnx8InRydWUiPT09bjphJiYobj1pKSxufWZ1bmN0aW9uIGcoZSx0KXtpZihlJiZlLmxlbmd0aCllLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPV8oZSk7LTE9PT10LmNhbWVsQ2FzZS5pbmRleE9mKG4pJiZ0LmNhbWVsQ2FzZS5wdXNoKG4pfSkpO2Vsc2UgaWYoZSYmIm9iamVjdCI9PT0oInVuZGVmaW5lZCI9PT10eXBlb2YgZT8idW5kZWZpbmVkIjp2KGUpKSlmb3IodmFyIG4gaW4gZSl7dmFyIHI9XyhuKTstMT09PXQuY2FtZWxDYXNlLmluZGV4T2YocikmJnQuY2FtZWxDYXNlLnB1c2gociksZVtyXSYmZVtyXS50eXBlJiYodC50eXBlc1tuXT1bXS5jb25jYXQoZVtyXS50eXBlKVswXSl9fWZ1bmN0aW9uIHcoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdD17Y2FtZWxDYXNlOltdLGh5cGhlbmF0ZTpbXSx0eXBlczp7fX07aWYoZS5taXhpbnMmJmUubWl4aW5zLmZvckVhY2goKGZ1bmN0aW9uKGUpe2coZS5wcm9wcyx0KX0pKSxlLmV4dGVuZHMmJmUuZXh0ZW5kcy5wcm9wcyl7dmFyIG49ZS5leHRlbmRzLnByb3BzO2cobix0KX1yZXR1cm4gZyhlLnByb3BzLHQpLHQuY2FtZWxDYXNlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3QuaHlwaGVuYXRlLnB1c2goZihlKSl9KSksdH1mdW5jdGlvbiBiKGUsdCl7dC5jYW1lbENhc2UuZm9yRWFjaCgoZnVuY3Rpb24obixyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fW25dfSxzZXQ6ZnVuY3Rpb24oZSl7aWYoIm9iamVjdCIhPT0oInVuZGVmaW5lZCI9PT10eXBlb2YgZT8idW5kZWZpbmVkIjp2KGUpKSYmImZ1bmN0aW9uIiE9PXR5cGVvZiBlfHwhdGhpcy5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fKXt2YXIgbj10LnR5cGVzW3QuY2FtZWxDYXNlW3JdXTt0aGlzLnNldEF0dHJpYnV0ZSh0Lmh5cGhlbmF0ZVtyXSx5KGUsbikpfWVsc2V7dmFyIGk9dC5jYW1lbENhc2Vbcl07dGhpcy5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fW2ldPWV9fX0pfSkpfWZ1bmN0aW9uIGsoZSx0LG4pe3ZhciByPXQucHJvcHNEYXRhfHx7fTtyZXR1cm4gbi5oeXBoZW5hdGUuZm9yRWFjaCgoZnVuY3Rpb24odCxpKXt2YXIgYT1uLmNhbWVsQ2FzZVtpXSxvPWUuYXR0cmlidXRlc1t0XXx8ZVthXSxjPW51bGw7bi50eXBlc1thXSYmKGM9bi50eXBlc1thXSksbyBpbnN0YW5jZW9mIEF0dHI/clthXT15KG8udmFsdWUsYyk6InVuZGVmaW5lZCIhPT10eXBlb2YgbyYmKHJbYV09byl9KSkscn1mdW5jdGlvbiB4KGUpe3ZhciB0PXt9O3JldHVybiBoKGUuYXR0cmlidXRlcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dFsidnVlLXNsb3QiPT09ZS5ub2RlTmFtZT8ic2xvdCI6ZS5ub2RlTmFtZV09ZS5ub2RlVmFsdWV9KSksdH1mdW5jdGlvbiBDKGUpe2lmKGUuY2hpbGROb2Rlcy5sZW5ndGgpcmV0dXJuIGUuY2hpbGROb2RlcztpZihlLmNvbnRlbnQmJmUuY29udGVudC5jaGlsZE5vZGVzJiZlLmNvbnRlbnQuY2hpbGROb2Rlcy5sZW5ndGgpcmV0dXJuIGUuY29udGVudC5jaGlsZE5vZGVzO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmlubmVySFRNTD1lLmlubmVySFRNTCx0LmNoaWxkTm9kZXN9ZnVuY3Rpb24gUyhlLHQsbil7dmFyIHI9Qyh0KSxpPWgocikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iI3RleHQiPT09dC5ub2RlTmFtZT90Lm5vZGVWYWx1ZTplKHQudGFnTmFtZSx7YXR0cnM6eCh0KSxkb21Qcm9wczp7aW5uZXJIVE1MOnQuaW5uZXJIVE1MfX0pfSkpO3JldHVybiBuLnNsb3Q9dC5pZCxlKCJ0ZW1wbGF0ZSIsbixpKX1mdW5jdGlvbiBQKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdLHQ9YXJndW1lbnRzWzFdLG49W107cmV0dXJuIGgoZSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoIiN0ZXh0Ij09PWUubm9kZU5hbWUpZS5ub2RlVmFsdWUudHJpbSgpJiZuLnB1c2godCgic3BhbiIsZS5ub2RlVmFsdWUpKTtlbHNlIGlmKCIjY29tbWVudCIhPT1lLm5vZGVOYW1lKXt2YXIgcj14KGUpLGk9e2F0dHJzOnIsZG9tUHJvcHM6e2lubmVySFRNTDoiIj09PWUuaW5uZXJIVE1MP2UuaW5uZXJUZXh0OmUuaW5uZXJIVE1MfX07ci5zbG90JiYoaS5zbG90PXIuc2xvdCxyLnNsb3Q9dm9pZCAwKTt2YXIgYT0iVEVNUExBVEUiPT09ZS50YWdOYW1lP1ModCxlLGkpOnQoZS50YWdOYW1lLGkpO24ucHVzaChhKX19KSksbn1mdW5jdGlvbiBqKGUsdCl7dmFyIG49e2J1YmJsZXM6ITEsY2FuY2VsYWJsZTohMSxkZXRhaWw6dH0scj12b2lkIDA7cmV0dXJuImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZlbnQ/cj1uZXcgQ3VzdG9tRXZlbnQoZSxuKToocj1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxyLmluaXRDdXN0b21FdmVudChlLG4uYnViYmxlcyxuLmNhbmNlbGFibGUsbi5kZXRhaWwpKSxyfWZ1bmN0aW9uIE8oZSx0KXtmb3IodmFyIG49YXJndW1lbnRzLmxlbmd0aCxyPUFycmF5KG4+Mj9uLTI6MCksaT0yO2k8bjtpKyspcltpLTJdPWFyZ3VtZW50c1tpXTt2YXIgYT1qKHQsW10uY29uY2F0KHIpKTtlLmRpc3BhdGNoRXZlbnQoYSl9ZnVuY3Rpb24gQShlLHQsbixyLGkpe2lmKCFlLl9fdnVlX2N1c3RvbV9lbGVtZW50X18pe3ZhciBhPWZ1bmN0aW9uKCl7dGhpcy4kZW1pdD1mdW5jdGlvbigpe2Zvcih2YXIgdCxuPWFyZ3VtZW50cy5sZW5ndGgscj1BcnJheShuKSxpPTA7aTxuO2krKylyW2ldPWFyZ3VtZW50c1tpXTtPLmFwcGx5KHZvaWQgMCxbZV0uY29uY2F0KHIpKSx0aGlzLl9fcHJvdG9fXyYmKHQ9dGhpcy5fX3Byb3RvX18uJGVtaXQpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKX19LG89dC51dGlsLmV4dGVuZCh7fSxuKSxjPWsoZSxvLHIpLHM9dC52ZXJzaW9uJiZwYXJzZUludCh0LnZlcnNpb24uc3BsaXQoIi4iKVswXSwxMCl8fDA7aWYoby5iZWZvcmVDcmVhdGU9W10uY29uY2F0KG8uYmVmb3JlQ3JlYXRlfHxbXSxhKSxvLl9jb21waWxlZCl7dmFyIHA9e307by5fQ3RvciYmKHA9T2JqZWN0LnZhbHVlcyhvLl9DdG9yKVswXS5vcHRpb25zKSxwLmJlZm9yZUNyZWF0ZT1vLmJlZm9yZUNyZWF0ZX12YXIgbD12b2lkIDA7aWYocz49Mil7dmFyIHU9ZS5jbG9uZU5vZGUoITApLmNoaWxkTm9kZXM7bD17cHJvcHNEYXRhOmMscHJvcHM6ci5jYW1lbENhc2UsY29tcHV0ZWQ6e3JlYWN0aXZlUHJvcHM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9e307cmV0dXJuIHIuY2FtZWxDYXNlLmZvckVhY2goKGZ1bmN0aW9uKG4peyJ1bmRlZmluZWQiIT09dHlwZW9mIGVbbl0mJih0W25dPWVbbl0pfSkpLHR9fSxyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9e3Byb3BzOnRoaXMucmVhY3RpdmVQcm9wc307cmV0dXJuIGUobyx0LFAodSxlKSl9fX1lbHNlIGlmKDE9PT1zKWw9byxsLnByb3BzRGF0YT1jO2Vsc2V7bD1vO3ZhciBkPXt9O09iamVjdC5rZXlzKGMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2RbZV09e2RlZmF1bHQ6Y1tlXX19KSksbC5wcm9wcz1kfXZhciBfPXM+PTI/IjxkaXY+PC9kaXY+IjooIjxkaXY+IitlLmlubmVySFRNTCsiPC9kaXY+IikucmVwbGFjZSgvdnVlLXNsb3Q9L2csInNsb3Q9Iik7aWYoaS5zaGFkb3cmJmUuc2hhZG93Um9vdD8oZS5zaGFkb3dSb290LmlubmVySFRNTD1fLGwuZWw9ZS5zaGFkb3dSb290LmNoaWxkcmVuWzBdKTooZS5pbm5lckhUTUw9XyxsLmVsPWUuY2hpbGRyZW5bMF0pLGIoZSxyKSwiZnVuY3Rpb24iPT09dHlwZW9mIGkuYmVmb3JlQ3JlYXRlVnVlSW5zdGFuY2UmJihsPWkuYmVmb3JlQ3JlYXRlVnVlSW5zdGFuY2UobCl8fGwpLGUuX192dWVfY3VzdG9tX2VsZW1lbnRfXz1uZXcgdChsKSxlLl9fdnVlX2N1c3RvbV9lbGVtZW50X3Byb3BzX189cixlLmdldFZ1ZUluc3RhbmNlPWZ1bmN0aW9uKCl7cmV0dXJuIGUuX192dWVfY3VzdG9tX2VsZW1lbnRfXy4kY2hpbGRyZW5bMF19LGkuc2hhZG93JiZpLnNoYWRvd0NzcyYmZS5zaGFkb3dSb290KXt2YXIgbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO20udHlwZT0idGV4dC9jc3MiLG0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaS5zaGFkb3dDc3MpKSxlLnNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQobSl9ZS5yZW1vdmVBdHRyaWJ1dGUoInZjZS1jbG9hayIpLGUuc2V0QXR0cmlidXRlKCJ2Y2UtcmVhZHkiLCIiKSxPKGUsInZjZS1yZWFkeSIpfX1mdW5jdGlvbiBFKGUpe2UuY3VzdG9tRWxlbWVudD1mdW5jdGlvbih0LG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fSxpPSJmdW5jdGlvbiI9PT10eXBlb2YgbixhPWkmJntwcm9wczpyLnByb3BzfHxbXX0sbz13KGk/YTpuKSxjPXUodCx7Y29uc3RydWN0b3JDYWxsYmFjazpmdW5jdGlvbigpeyJmdW5jdGlvbiI9PT10eXBlb2Ygci5jb25zdHJ1Y3RvckNhbGxiYWNrJiZyLmNvbnN0cnVjdG9yQ2FsbGJhY2suY2FsbCh0aGlzKX0sY29ubmVjdGVkQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGM9aSYmbigpLHM9YyYmYy50aGVuJiYiZnVuY3Rpb24iPT09dHlwZW9mIGMudGhlbjtpZigiZnVuY3Rpb24iPT09dHlwZW9mIHIuY29ubmVjdGVkQ2FsbGJhY2smJnIuY29ubmVjdGVkQ2FsbGJhY2suY2FsbCh0aGlzKSxpJiYhcyl0aHJvdyBuZXcgRXJyb3IoIkFzeW5jIGNvbXBvbmVudCAiK3QrIiBkbyBub3QgcmV0dXJucyBQcm9taXNlIik7dGhpcy5fX2RldGFjaGVkX198fChzP2MudGhlbigoZnVuY3Rpb24odCl7dmFyIG49dyh0KTtBKGEsZSx0LG4sciksImZ1bmN0aW9uIj09PXR5cGVvZiByLnZ1ZUluc3RhbmNlQ3JlYXRlZENhbGxiYWNrJiZyLnZ1ZUluc3RhbmNlQ3JlYXRlZENhbGxiYWNrLmNhbGwoYSl9KSk6KEEodGhpcyxlLG4sbyxyKSwiZnVuY3Rpb24iPT09dHlwZW9mIHIudnVlSW5zdGFuY2VDcmVhdGVkQ2FsbGJhY2smJnIudnVlSW5zdGFuY2VDcmVhdGVkQ2FsbGJhY2suY2FsbCh0aGlzKSkpLHRoaXMuX19kZXRhY2hlZF9fPSExfSxkaXNjb25uZWN0ZWRDYWxsYmFjazpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5fX2RldGFjaGVkX189ITAsImZ1bmN0aW9uIj09PXR5cGVvZiByLmRpc2Nvbm5lY3RlZENhbGxiYWNrJiZyLmRpc2Nvbm5lY3RlZENhbGxiYWNrLmNhbGwodGhpcyksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtlLl9fZGV0YWNoZWRfXyYmZS5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fJiYoZS5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fLiRkZXN0cm95KCEwKSxkZWxldGUgZS5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fLGRlbGV0ZSBlLl9fdnVlX2N1c3RvbV9lbGVtZW50X3Byb3BzX18pfSksci5kZXN0cm95VGltZW91dHx8M2UzKX0sYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOmZ1bmN0aW9uKGUsdCxuKXtpZih0aGlzLl9fdnVlX2N1c3RvbV9lbGVtZW50X18mJiJ1bmRlZmluZWQiIT09dHlwZW9mIG4pe3ZhciBpPV8oZSk7ImZ1bmN0aW9uIj09PXR5cGVvZiByLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayYmci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2suY2FsbCh0aGlzLGUsdCxuKTt2YXIgYT10aGlzLl9fdnVlX2N1c3RvbV9lbGVtZW50X3Byb3BzX18udHlwZXNbaV07dGhpcy5fX3Z1ZV9jdXN0b21fZWxlbWVudF9fW2ldPXkobixhKX19LG9ic2VydmVkQXR0cmlidXRlczpvLmh5cGhlbmF0ZSxzaGFkb3c6ISFyLnNoYWRvdyYmISFIVE1MRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93fSk7cmV0dXJuIGN9fSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmd2luZG93LlZ1ZSYmKHdpbmRvdy5WdWUudXNlKEUpLEUuaW5zdGFsbGVkJiYoRS5pbnN0YWxsZWQ9ITEpKSx0WyJhIl09RX0sYzhiYTpmdW5jdGlvbihlLHQpe3ZhciBuO249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKTt0cnl7bj1ufHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaChyKXsib2JqZWN0Ij09PXR5cGVvZiB3aW5kb3cmJihuPXdpbmRvdyl9ZS5leHBvcnRzPW59LGNhNWE6ZnVuY3Rpb24oZSx0KXt2YXIgbj0wLHI9TWF0aC5yYW5kb20oKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIlN5bWJvbCgiLmNvbmNhdCh2b2lkIDA9PT1lPyIiOmUsIilfIiwoKytuK3IpLnRvU3RyaW5nKDM2KSl9fSxjYTlmOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiNGQwMSIpLGk9bigiZjM2NyIpLGE9bigiNTYyZSIpLG89bigiMWI3ZiIpLGM9bigiYjNmZCIpLHM9cihvKCkpO2kocyx7Z2V0UG9seWZpbGw6byxpbXBsZW1lbnRhdGlvbjphLHNoaW06Y30pLGUuZXhwb3J0cz1zfSxjYWRmOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigiOWM2YyIpLGk9bigiZDUzYiIpLGE9bigiODRmMiIpLG89bigiNjgyMSIpO2UuZXhwb3J0cz1uKCIwMWY5IikoQXJyYXksIkFycmF5IiwoZnVuY3Rpb24oZSx0KXt0aGlzLl90PW8oZSksdGhpcy5faT0wLHRoaXMuX2s9dH0pLChmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3QsdD10aGlzLl9rLG49dGhpcy5faSsrO3JldHVybiFlfHxuPj1lLmxlbmd0aD8odGhpcy5fdD12b2lkIDAsaSgxKSk6aSgwLCJrZXlzIj09dD9uOiJ2YWx1ZXMiPT10P2Vbbl06W24sZVtuXV0pfSksInZhbHVlcyIpLGEuQXJndW1lbnRzPWEuQXJyYXkscigia2V5cyIpLHIoInZhbHVlcyIpLHIoImVudHJpZXMiKX0sY2I3YzpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZDNmNCIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZighcihlKSl0aHJvdyBUeXBlRXJyb3IoZSsiIGlzIG5vdCBhbiBvYmplY3QhIik7cmV0dXJuIGV9fSxjY2I5OmZ1bmN0aW9uKGUsdCxuKXt0LmY9bigiNTE2OCIpfSxjZDFjOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCJlODUzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyhyKGUpKSh0KX19LGNlMTA6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjY5YTgiKSxpPW4oIjY4MjEiKSxhPW4oImMzNjYiKSghMSksbz1uKCI2MTNiIikoIklFX1BST1RPIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sYz1pKGUpLHM9MCxwPVtdO2ZvcihuIGluIGMpbiE9byYmcihjLG4pJiZwLnB1c2gobik7d2hpbGUodC5sZW5ndGg+cylyKGMsbj10W3MrK10pJiYofmEocCxuKXx8cC5wdXNoKG4pKTtyZXR1cm4gcH19LGQwMjQ6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKCIyMWQwIiksaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGE9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxvPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspYS5jYWxsKGUscikmJihudWxsPT1uP3QoZVtyXSxyLGUpOnQuY2FsbChuLGVbcl0scixlKSl9LGM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyludWxsPT1uP3QoZS5jaGFyQXQocikscixlKTp0LmNhbGwobixlLmNoYXJBdChyKSxyLGUpfSxzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHIgaW4gZSlhLmNhbGwoZSxyKSYmKG51bGw9PW4/dChlW3JdLHIsZSk6dC5jYWxsKG4sZVtyXSxyLGUpKX0scD1mdW5jdGlvbihlLHQsbil7aWYoIXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dmFyIGE7YXJndW1lbnRzLmxlbmd0aD49MyYmKGE9biksIltvYmplY3QgQXJyYXldIj09PWkuY2FsbChlKT9vKGUsdCxhKToic3RyaW5nIj09PXR5cGVvZiBlP2MoZSx0LGEpOnMoZSx0LGEpfTtlLmV4cG9ydHM9cH0sZDM0YTpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiUmFuZyB0csW+bmUga2FwaXRhbGl6YWNpamUiLCJtY2FwIjoiVHLFvm5hIGthcGl0YWxpemFjaWphIiwiMjRoX3ZvbHVtZSI6Ik9ic2VnIHYgMjQgaCIsIjI0aF9oaWdoX2xvdyI6Ik5hanYuL25ham0uIHYgMjQgaCJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJVcG9yYWJsamEgdGVobm9sb2dpam8gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiUHJpbWVyamF2YSBjZW4ga3JpcHRvdmFsdXQiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiUHJpbWVyamF2YSB0csW+bmUga2FwaXRhbGl6YWNpamUga3JpcHRvdmFsdXQifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJVcG9yYWJsamEgdGVobm9sb2dpam8gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6Ik5hanYuIHYgMjQgaCIsIjI0aF9sb3ciOiJOYWptLiB2IDI0IGgiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiT2dsZWQgZ3JhZmlrb25hIGtvdmFuY2EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJVcG9yYWJsamEgdGVobm9sb2dpam8gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJVcG9yYWJsamEgdGVobm9sb2dpam8gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJVcG9yYWJsamEgdGVobm9sb2dpam8gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiVXBvcmFibGphIHRlaG5vbG9naWpvICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTmFqdi4gdiAyNCBoIiwiMjRoX2xvdyI6Ik5ham0uIHYgMjQgaCIsInZpZXdfcHJpY2VfY2hhcnQiOiJPZ2xlZCBncmFmaWtvbmEga292YW5jYSAle2NvaW59IiwicG93ZXJlZF9ieSI6IlVwb3JhYmxqYSB0ZWhub2xvZ2lqbyAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fY29udmVydGVyX3dpZGdldCI6eyJ2aWV3X3ByaWNlX2NoYXJ0IjoiT2dsZWQgZ3JhZmlrb25hIGtvdmFuY2EgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJVcG9yYWJsamEgdGVobm9sb2dpam8gJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoiRHJldmVzbmkgcG9nbGVkIGtyaXB0b3ZhbHV0Iiwic3VidGl0bGUiOiIoVG9wICV7dG9wfSBwbyB0csW+bmkga2FwaXRhbGl6YWNpamkpIiwicG93ZXJlZF9ieSI6IlVwb3JhYmxqYSB0ZWhub2xvZ2lqbyAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiSXpqYXZhIG8gb21laml0dmkgb2Rnb3Zvcm5vc3RpOiBUYSBvcm9kamEgc28gbmFtZW5qZW5hIHJhenZlZHJpbHUgaW4gbmUgcHJlZHN0YXZsamFqbyBmaW5hbsSNbmVnYSBzdmV0b3ZhbmphLiIsInNwaW4iOiJaYXZydGkiLCJhdmFpbGFibGVfY29pbnMiOiJSYXpwb2xvxb5saml2aSBrb3ZhbmNpIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiUG9zb2RvYml0ZXYgY2VuZSBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiU2t1cC4gdHIuIGthcC4iLCIyNGhfdm9sIjoiT2JzZWcgdHJnb3ZhbmphIHYgMjQgaCIsImRvbSI6IkRvbWluYW50bm9zdCJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJCb3J6YSIsInBhaXIiOiJQYXIiLCJwcmljZSI6IkNlbmEiLCJ2b2x1bWUiOiJPYnNlZyIsInRydXN0X3Njb3JlIjoiT2NlbmEgemF1cGFuamEiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiT2dsZWQgY2VuaWthIiwicG93ZXJlZF9ieSI6IlVwb3JhYmxqYSB0ZWhub2xvZ2lqbyAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJPZ2xlZCB2c2VoIHRyZ292IGtvdmFuY2EgJXtjb2lufSJ9fScpfSxkM2Y0OmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT09dHlwZW9mIGU/bnVsbCE9PWU6ImZ1bmN0aW9uIj09PXR5cGVvZiBlfX0sZDRhYjpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PXIuY2FsbChlKSxuPSJbb2JqZWN0IEFyZ3VtZW50c10iPT09dDtyZXR1cm4gbnx8KG49IltvYmplY3QgQXJyYXldIiE9PXQmJm51bGwhPT1lJiYib2JqZWN0Ij09PXR5cGVvZiBlJiYibnVtYmVyIj09PXR5cGVvZiBlLmxlbmd0aCYmZS5sZW5ndGg+PTAmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1yLmNhbGwoZS5jYWxsZWUpKSxufX0sZDUyNTpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoKXtyZXR1cm57dW5zdWJzY3JpYmU6ZnVuY3Rpb24oKXt9fX1uLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSl9LGQ1M2I6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm57dmFsdWU6dCxkb25lOiEhZX19fSxkNmM3OmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxpPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsYT1BcnJheS5wcm90b3R5cGUuc2xpY2Usbz1uKCJkNGFiIiksYz1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLHM9IWMuY2FsbCh7dG9TdHJpbmc6bnVsbH0sInRvU3RyaW5nIikscD1jLmNhbGwoKGZ1bmN0aW9uKCl7fSksInByb3RvdHlwZSIpLGw9WyJ0b1N0cmluZyIsInRvTG9jYWxlU3RyaW5nIiwidmFsdWVPZiIsImhhc093blByb3BlcnR5IiwiaXNQcm90b3R5cGVPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY29uc3RydWN0b3IiXSx1PWZ1bmN0aW9uKGUpe3ZhciB0PWUuY29uc3RydWN0b3I7cmV0dXJuIHQmJnQucHJvdG90eXBlPT09ZX0sZD17JGFwcGxpY2F0aW9uQ2FjaGU6ITAsJGNvbnNvbGU6ITAsJGV4dGVybmFsOiEwLCRmcmFtZTohMCwkZnJhbWVFbGVtZW50OiEwLCRmcmFtZXM6ITAsJGlubmVySGVpZ2h0OiEwLCRpbm5lcldpZHRoOiEwLCRvdXRlckhlaWdodDohMCwkb3V0ZXJXaWR0aDohMCwkcGFnZVhPZmZzZXQ6ITAsJHBhZ2VZT2Zmc2V0OiEwLCRwYXJlbnQ6ITAsJHNjcm9sbExlZnQ6ITAsJHNjcm9sbFRvcDohMCwkc2Nyb2xsWDohMCwkc2Nyb2xsWTohMCwkc2VsZjohMCwkd2Via2l0SW5kZXhlZERCOiEwLCR3ZWJraXRTdG9yYWdlSW5mbzohMCwkd2luZG93OiEwfSxfPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93KXJldHVybiExO2Zvcih2YXIgZSBpbiB3aW5kb3cpdHJ5e2lmKCFkWyIkIitlXSYmci5jYWxsKHdpbmRvdyxlKSYmbnVsbCE9PXdpbmRvd1tlXSYmIm9iamVjdCI9PT10eXBlb2Ygd2luZG93W2VdKXRyeXt1KHdpbmRvd1tlXSl9Y2F0Y2godCl7cmV0dXJuITB9fWNhdGNoKHQpe3JldHVybiEwfXJldHVybiExfSgpLG09ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93fHwhXylyZXR1cm4gdShlKTt0cnl7cmV0dXJuIHUoZSl9Y2F0Y2godCl7cmV0dXJuITF9fSxmPWZ1bmN0aW9uKGUpe3ZhciB0PW51bGwhPT1lJiYib2JqZWN0Ij09PXR5cGVvZiBlLG49IltvYmplY3QgRnVuY3Rpb25dIj09PWkuY2FsbChlKSxhPW8oZSksYz10JiYiW29iamVjdCBTdHJpbmddIj09PWkuY2FsbChlKSx1PVtdO2lmKCF0JiYhbiYmIWEpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0LmtleXMgY2FsbGVkIG9uIGEgbm9uLW9iamVjdCIpO3ZhciBkPXAmJm47aWYoYyYmZS5sZW5ndGg+MCYmIXIuY2FsbChlLDApKWZvcih2YXIgXz0wO188ZS5sZW5ndGg7KytfKXUucHVzaChTdHJpbmcoXykpO2lmKGEmJmUubGVuZ3RoPjApZm9yKHZhciBmPTA7ZjxlLmxlbmd0aDsrK2YpdS5wdXNoKFN0cmluZyhmKSk7ZWxzZSBmb3IodmFyIGggaW4gZSlkJiYicHJvdG90eXBlIj09PWh8fCFyLmNhbGwoZSxoKXx8dS5wdXNoKFN0cmluZyhoKSk7aWYocylmb3IodmFyIHY9bShlKSx5PTA7eTxsLmxlbmd0aDsrK3kpdiYmImNvbnN0cnVjdG9yIj09PWxbeV18fCFyLmNhbGwoZSxsW3ldKXx8dS5wdXNoKGxbeV0pO3JldHVybiB1fTtmLnNoaW09ZnVuY3Rpb24oKXtpZihPYmplY3Qua2V5cyl7dmFyIGU9ZnVuY3Rpb24oKXtyZXR1cm4gMj09PShPYmplY3Qua2V5cyhhcmd1bWVudHMpfHwiIikubGVuZ3RofSgxLDIpO2lmKCFlKXt2YXIgdD1PYmplY3Qua2V5cztPYmplY3Qua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gbyhlKT90KGEuY2FsbChlKSk6dChlKX19fWVsc2UgT2JqZWN0LmtleXM9ZjtyZXR1cm4gT2JqZWN0LmtleXN8fGZ9LGUuZXhwb3J0cz1mfSxkNmRhOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBTeW1ib2x8fCJmdW5jdGlvbiIhPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylyZXR1cm4hMTtpZigic3ltYm9sIj09PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IpcmV0dXJuITA7dmFyIGU9e30sdD1TeW1ib2woInRlc3QiKSxuPU9iamVjdCh0KTtpZigic3RyaW5nIj09PXR5cGVvZiB0KXJldHVybiExO2lmKCJbb2JqZWN0IFN5bWJvbF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpKXJldHVybiExO2lmKCJbb2JqZWN0IFN5bWJvbF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pKXJldHVybiExO3ZhciByPTQyO2Zvcih0IGluIGVbdF09cixlKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgT2JqZWN0LmtleXMmJjAhPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyYmMCE9PU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpLmxlbmd0aClyZXR1cm4hMTt2YXIgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpO2lmKDEhPT1pLmxlbmd0aHx8aVswXSE9PXQpcmV0dXJuITE7aWYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChlLHQpKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcil7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpO2lmKGEudmFsdWUhPT1yfHwhMCE9PWEuZW51bWVyYWJsZSlyZXR1cm4hMX1yZXR1cm4hMH19LGQ3NTI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjc3MjYiKS5wYXJzZUZsb2F0LGk9bigiYWE3NyIpLnRyaW07ZS5leHBvcnRzPTEvcihuKCJmZGVmIikrIi0wIikhPT0tMS8wP2Z1bmN0aW9uKGUpe3ZhciB0PWkoU3RyaW5nKGUpLDMpLG49cih0KTtyZXR1cm4gMD09PW4mJiItIj09dC5jaGFyQXQoMCk/LTA6bn06cn0sZDg2NDpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiNzlhYSIpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYocihlKSx2b2lkIDA9PT10KXJldHVybiBlO3N3aXRjaChuKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiBlLmNhbGwodCxuKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihuLHIpe3JldHVybiBlLmNhbGwodCxuLHIpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKG4scixpKXtyZXR1cm4gZS5jYWxsKHQsbixyLGkpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0LGFyZ3VtZW50cyl9fX0sZDhkNjpmdW5jdGlvbihlLHQsbil7bigiMTY1NCIpLG4oIjZjMWMiKSxlLmV4cG9ydHM9bigiY2NiOSIpLmYoIml0ZXJhdG9yIil9LGQ4ZTg6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgVHlwZUVycm9yKGUrIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4gZX19LGQ5ZjY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImU0YWUiKSxpPW4oIjc5NGIiKSxhPW4oIjFiYzMiKSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt0LmY9bigiOGU2MCIpP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihlLHQsbil7aWYocihlKSx0PWEodCwhMCkscihuKSxpKXRyeXtyZXR1cm4gbyhlLHQsbil9Y2F0Y2goYyl7fWlmKCJnZXQiaW4gbnx8InNldCJpbiBuKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhIik7cmV0dXJuInZhbHVlImluIG4mJihlW3RdPW4udmFsdWUpLGV9fSxkYTMwOmZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcihlKXtyZXR1cm4gZS5wYXJlbnRFbGVtZW50fHxlLmdldFJvb3ROb2RlKCkuaG9zdH1uLmQodCwiYSIsKGZ1bmN0aW9uKCl7cmV0dXJuIHJ9KSl9LGRhNjg6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1mdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1lLiRjcmVhdGVFbGVtZW50LG49ZS5fc2VsZi5fY3x8dDtyZXR1cm4gbigiZGl2Iix7c3RhdGljQ2xhc3M6ImNnLWNvbnRhaW5lciIsY2xhc3M6ZS5jb250YWluZXJDbGFzcyxzdHlsZTplLmNvbnRhaW5lclN0eWxlLGF0dHJzOnsiZGF0YS1sb2FkaW5nIjplLmxvYWRpbmd9fSxbZS5sb2FkaW5nP24oImRpdiIse3N0YXRpY0NsYXNzOiJjZy1wLTMgY2ctYmFzZSJ9LFtlLl92KCJMb2FkaW5nIHdpZGdldC4uLiIpXSk6bigiZGl2Iix7c3RhdGljQ2xhc3M6ImNnLXdpZGdldCJ9LFtuKCJkaXYiLHtzdGF0aWNDbGFzczoiY2ctbWFycXVlZSIsc3R5bGU6e2JhY2tncm91bmRDb2xvcjplLmJhY2tncm91bmRDb2xvcn19LGUuX2woMiwoZnVuY3Rpb24odCl7cmV0dXJuIG4oInNwYW4iLHtrZXk6dCxjbGFzczpbImNnLW1hcnF1ZWUtY29udGVudC0iK3QsZS5jb2lucy5sZW5ndGg+MjU/ImNnLW1hcnF1ZWUtY29udGVudC1sb25nIjoiIl19LFtuKCJkaXYiLHtzdGF0aWNDbGFzczoiY2ctZmxleCBjZy1mbGV4LXJvdyJ9LFtlLl9sKGUuY29pbnMsKGZ1bmN0aW9uKHQpe3JldHVybiBuKCJhIix7a2V5OnQuaWQsc3RhdGljQ2xhc3M6ImNnLXB5LTIgY2ctcHgtMyBjZy1mbGV4IGNnLWNvaW4tcm93IGNnLXNtIixzdHlsZTp7Y29sb3I6ZS5mb250Q29sb3J9LGF0dHJzOntocmVmOmUubGlua1RvQ29pbk92ZXJ2aWV3KHQuaWQpLHRhcmdldDoiX2JsYW5rIn19LFtuKCJkaXYiLHtzdGF0aWNDbGFzczoiY2ctZmxleCBjZy1pdGVtcy1jZW50ZXIifSxbbigiaW1nIix7c3RhdGljQ2xhc3M6ImNnLW1yLTIiLGF0dHJzOntzcmM6dC5pbWFnZX19KSxuKCJzcGFuIixbbigic3BhbiIse3N0YXRpY0NsYXNzOiJjZy1ib2xkIn0sW2UuX3YoZS5fcyh0Lm5hbWUpKV0pLGUuX3YoIiAoIitlLl9zKHQuc3ltYm9sLnRvVXBwZXJDYXNlKCkpKyIpXG4gICAgICAgICAgICAgICIpXSldKSxlLmxvYWRpbmdQcmljZT9lLl9lKCk6bigiZGl2Iix7c3RhdGljQ2xhc3M6ImNnLW1sLTIgY2ctZmxleCBjZy1qdXN0aWZ5LWVuZCBjZy1pdGVtcy1jZW50ZXIiLGNsYXNzOmUuaXNOZWdhdGl2ZSh0LnByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aCk/ImNnLXJlZC1jb2xvci1kYXJrIjoiY2ctcHJpbWFyeS1jb2xvci1kYXJrIn0sW24oImRpdiIsW24oInNwYW4iLHtzdGF0aWNDbGFzczoiY2ctYm9sZCIsY2xhc3M6ZS5wcmljaW5nSGlnaGxpZ2h0Q2xhc3Nlc1t0LmlkXX0sW2UuX3YoIlxuICAgICAgICAgICAgICAgICAgIitlLl9zKGUuZm9ybWF0Q3VycmVuY3kodC5jdXJyZW50X3ByaWNlKSkrIlxuICAgICAgICAgICAgICAgICIpXSksbigic3BhbiIsW2UuX3YoIigiK2UuX3MoZS5mb3JtYXRQZXJjZW50YWdlKHQucHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoKSkrIikiKV0pXSksbigiZGl2Iix7c3RhdGljQ2xhc3M6ImNnLW1sLTIiLGNsYXNzOmUuaXNOZWdhdGl2ZSh0LnByaWNlX2NoYW5nZV9wZXJjZW50YWdlXzI0aCk/ImNnLWFycm93LWRvd24iOiJjZy1hcnJvdy11cCJ9KV0pXSl9KSksbigiZGl2Iix7c3RhdGljQ2xhc3M6ImNnLWZsZXggY2ctaXRlbXMtY2VudGVyIn0sW24oImEiLHtzdGF0aWNDbGFzczoiY2ctYm9sZCBjZy1zbSBjZy1weC0zIixkb21Qcm9wczp7aW5uZXJIVE1MOmUuX3MoZS5wb3dlcmVkQnlDb2luR2Vja28pfX0pXSldLDIpXSl9KSksMCldKV0pfSxpPVtdLGE9KG4oIjc1MTQiKSxuKCI1ZGYyIiksbigiYWM2YSIpLG4oIjI4YTUiKSxuKCJjNWY2IiksbigiMmIwZSIpKSxvPW4oIjdkYWIiKSxjPW4oImRhMzAiKSxzPW4oImU4YmEiKSxwPW4oImQ1MjUiKSxsPW4oImMxZTIiKSx1PW4oIjJmNmQiKSxkPXtuYW1lOiJDb2luZ2Vja29Db2luUHJpY2VNYXJxdWVlV2lkZ2V0IixtaXhpbnM6W09iamVjdChsWyJhIl0pKCksdVsiYSJdXSxwcm9wczp7Y29pbklkczp7dHlwZTpTdHJpbmcsZGVmYXVsdDoiYml0Y29pbixldGhlcmV1bSxlb3MscmlwcGxlLGxpdGVjb2luLHRyb24sbmVvLG1vbmVybyJ9LGN1cnJlbmN5Ont0eXBlOlN0cmluZyxkZWZhdWx0OiJ1c2QifSxsb2NhbGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6ImVuIn0sd2lkdGg6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sYmFja2dyb3VuZENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjZmZmZmZmIn0sZm9udENvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OiIjNGM0YzRjIn19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bG9hZGluZzohMCxwb2x5Z2xvdDp7fSxhcGlEYXRhOltdLGNvbnRhaW5lckNsYXNzOiJsYXJnZSIsbG9hZGluZ1ByaWNlOiExLHByaWNpbmdIaWdobGlnaHRDbGFzc2VzOnt9fX0sY29tcHV0ZWQ6e21hcnF1ZWVDbGFzczpmdW5jdGlvbigpe3JldHVybnthY3RpdmU6ITAsInRleHQtZGFuZ2VyIjohMX19LGN1cnJlbmN5Q29kZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbmN5LnRvTG93ZXJDYXNlKCl9LHNhbml0aXplZENvaW5JZHM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvaW5JZHMuc3BsaXQoIiwiKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBlLnRyaW0oKX0pKSx0PVtdLG49e307cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7bltlXXx8dC5wdXNoKGUpLG5bZV09ZX0pKSx0fSxjb2luczpmdW5jdGlvbigpe2lmKCEodGhpcy5hcGlEYXRhLmxlbmd0aD4wKSlyZXR1cm5bXTt2YXIgZT17fTtyZXR1cm4gdGhpcy5hcGlEYXRhLmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbdC5pZF09dH0pKSx0aGlzLnNhbml0aXplZENvaW5JZHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKX0scG93ZXJlZEJ5Q29pbkdlY2tvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucG9seWdsb3QudCgiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldC5wb3dlcmVkX2J5Iix7bmFtZToiQ29pbkdlY2tvIixuYW1lX3N0YXJ0Oic8YSBjbGFzcz0iY2ctcHJpbWFyeS1jb2xvci1kYXJrIGNnLW5vLXVuZGVybGluZSIgaHJlZj0iaHR0cHM6Ly93d3cuY29pbmdlY2tvLmNvbS8nLmNvbmNhdCh0aGlzLmxvY2FsZSwiPyIpLmNvbmNhdCh0aGlzLnV0bVBhcmFtcyh0aGlzLnNhbml0aXplZENvaW5JZHMuam9pbigpKSwnIiB0YXJnZXQ9Il9ibGFuayI+JyksbmFtZV9lbmQ6IjwvYT4ifSl9LGNvbnRhaW5lclN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOjA9PT10aGlzLndpZHRoPyIxMDAlIjoiIi5jb25jYXQodGhpcy53aWR0aCwicHgiKSxiYWNrZ3JvdW5kQ29sb3I6dGhpcy5iYWNrZ3JvdW5kQ29sb3J9fX0sbWV0aG9kczp7Y3VycmVuY3lDaGFuZ2VkOmZ1bmN0aW9uKGUpe09iamVjdChjWyJhIl0pKHRoaXMuJGVsKS5zZXRBdHRyaWJ1dGUoImN1cnJlbmN5IixlLnRhcmdldC52YWx1ZS50b0xvd2VyQ2FzZSgpKX0sZm9ybWF0Q3VycmVuY3k6ZnVuY3Rpb24oZSl7cmV0dXJuIE9iamVjdChzWyJmb3JtYXRDdXJyZW5jeSJdKShlLHRoaXMuY3VycmVuY3lDb2RlLHRoaXMubG9jYWxlKX0sZm9ybWF0UGVyY2VudGFnZTpmdW5jdGlvbihlKXt2YXIgdD1OdW1iZXIucGFyc2VGbG9hdChlKTtyZXR1cm4iIi5jb25jYXQodC50b0ZpeGVkKDIpLCIlIil9LGZldGNoRGF0YTpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sbj10LmNvaW5SZWxvYWQscj12b2lkIDAhPT1uJiZuLGk9dC5jdXJyZW5jeVJlbG9hZCxhPXZvaWQgMCE9PWkmJmk7cj90aGlzLmxvYWRpbmc9ITA6YSYmKHRoaXMubG9hZGluZ1ByaWNlPSEwKSxmZXRjaCgiaHR0cHM6Ly9hcGkuY29pbmdlY2tvLmNvbS9hcGkvdjMvY29pbnMvbWFya2V0cz92c19jdXJyZW5jeT0iLmNvbmNhdCh0aGlzLmN1cnJlbmN5Q29kZSwiJmlkcz0iKS5jb25jYXQodGhpcy5zYW5pdGl6ZWRDb2luSWRzLmpvaW4oIiwiKSwiJmxvY2FsZT0iKS5jb25jYXQodGhpcy5sb2NhbGUpKS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KSkudGhlbigoZnVuY3Rpb24odCl7dCYmKGUuYXBpRGF0YT10LGUubG9hZGluZz0hMSxlLmxvYWRpbmdQcmljZT0hMSl9KSl9LGlzTmVnYXRpdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIE51bWJlci5wYXJzZUZsb2F0KGUpPDB9LGxpbmtUb0NvaW5PdmVydmlldzpmdW5jdGlvbihlKXtyZXR1cm4iaHR0cHM6Ly93d3cuY29pbmdlY2tvLmNvbS9yZXNvdXJjZV9yZWRpcmVjdD9sb2NhbGU9Ii5jb25jYXQodGhpcy5sb2NhbGUsIiZyb3V0ZT1jb2lucy8iKS5jb25jYXQoZSwiJiIpLmNvbmNhdCh0aGlzLnV0bVBhcmFtcyhlKSl9LHV0bVBhcmFtczpmdW5jdGlvbihlKXtyZXR1cm4idXRtX3NvdXJjZT0iLmNvbmNhdCh3aW5kb3cubG9jYXRpb24uaG9zdCwiJnV0bV9tZWRpdW09Y29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCZ1dG1fY29udGVudD0iKS5jb25jYXQoZSl9LGxpc3RlbkZvclByaWNlQ2hhbmdlczpmdW5jdGlvbigpe3ZhciBlPXRoaXM7dGhpcy5jb2luRGF0YUxpc3RlbmVyJiZ0aGlzLmNvaW5EYXRhTGlzdGVuZXIudW5zdWJzY3JpYmUoKSx0aGlzLmNvaW5EYXRhTGlzdGVuZXI9T2JqZWN0KHBbImEiXSkodGhpcy5zYW5pdGl6ZWRDb2luSWRzLChmdW5jdGlvbih0KXt2YXIgbj1lLmFwaURhdGEuZmluZCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT10LmN9KSk7aWYobil7dmFyIHI9bi5jdXJyZW50X3ByaWNlLGk9dC5wW2UuY3VycmVuY3lDb2RlXTtlLmZvcm1hdEN1cnJlbmN5KHIpIT09ZS5mb3JtYXRDdXJyZW5jeShpKSYmKHBhcnNlRmxvYXQocik8PXBhcnNlRmxvYXQoaSk/ZS5oaWdobGlnaHRQcmljaW5nKG4uaWQsImNnLXByaW1hcnktY29sb3IiKTplLmhpZ2hsaWdodFByaWNpbmcobi5pZCwiY2ctcmVkLWNvbG9yIikpLG4uY3VycmVudF9wcmljZT10LnBbZS5jdXJyZW5jeUNvZGVdLG4ucHJpY2VfY2hhbmdlX3BlcmNlbnRhZ2VfMjRoPXQuZVtlLmN1cnJlbmN5Q29kZV19fSkpfSxoaWdobGlnaHRQcmljaW5nOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpczthWyJhIl0uc2V0KHRoaXMucHJpY2luZ0hpZ2hsaWdodENsYXNzZXMsZSx0KSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe2FbImEiXS5zZXQobi5wcmljaW5nSGlnaGxpZ2h0Q2xhc3NlcyxlLG51bGwpfSksMWUzKX0sc3VwcG9ydGVkQ3VycmVuY2llczpvWyJiIl19LHdhdGNoOntjb2luSWRzOmZ1bmN0aW9uKCl7dGhpcy5mZXRjaERhdGEoe2NvaW5SZWxvYWQ6ITB9KSx0aGlzLmxpc3RlbkZvclByaWNlQ2hhbmdlcygpLHRoaXMucHJpY2luZ0hpZ2hsaWdodENsYXNzZXM9e319LGN1cnJlbmN5OmZ1bmN0aW9uKCl7dGhpcy5mZXRjaERhdGEoe2N1cnJlbmN5UmVsb2FkOiEwfSl9LGxvY2FsZTpmdW5jdGlvbigpe3RoaXMuZmV0Y2hEYXRhKCl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5mZXRjaERhdGEoKSx0aGlzLmxpc3RlbkZvclByaWNlQ2hhbmdlcygpfSxtb3VudGVkOmZ1bmN0aW9uKCl7fSxkZXN0cm95ZWQ6ZnVuY3Rpb24oKXt0aGlzLmNvaW5EYXRhTGlzdGVuZXImJnRoaXMuY29pbkRhdGFMaXN0ZW5lci51bnN1YnNjcmliZSgpfX0sXz1kLG09bigiMjg3NyIpLGY9T2JqZWN0KG1bImEiXSkoXyxyLGksITEsbnVsbCxudWxsLG51bGwpO3RbImEiXT1mLmV4cG9ydHN9LGRiZGI6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjU4NGEiKSxpPW4oImU1M2QiKSxhPSJfX2NvcmUtanNfc2hhcmVkX18iLG89aVthXXx8KGlbYV09e30pOyhlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gb1tlXXx8KG9bZV09dm9pZCAwIT09dD90Ont9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246ci52ZXJzaW9uLG1vZGU6bigiYjhlMyIpPyJwdXJlIjoiZ2xvYmFsIixjb3B5cmlnaHQ6IsKpIDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LGRjZDA6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6ItCg0LXQudGC0LjQvdCzINC/0L4g0L/QsNC30LDRgNC90LAg0LrQsNC/0LjRgtCw0LvQuNC30LDRhtC40Y8iLCJtY2FwIjoi0J/QsNC30LDRgNC90LAg0LrQsNC/0LjRgtCw0LvQuNC30LDRhtC40Y8iLCIyNGhfdm9sdW1lIjoi0J7QsdC10Lwg0LfQsCAyNCDRhy4iLCIyNGhfaGlnaF9sb3ciOiLQndCw0Lkt0LLQuNGB0L7QutCwL9C90LDQuS3QvdC40YHQutCwINGB0YLQvtC50L3QvtGB0YIg0LfQsCAyNCDRhy4ifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/QvtC00LTRitGA0LbQsCDRgdC1INC+0YIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoi0KHRgNCw0LLQvdC10L3QuNC1INC90LAg0YbQtdC90LjRgtC1INC90LAg0LrRgNC40L/RgtC+0LLQsNC70YPRgtC40YLQtSIsImNyeXB0b19tYXJrZXRfY2FwX2NvbXBhcmlzb24iOiLQodGA0LDQstC90LXQvdC40LUg0L3QsCDQv9Cw0LfQsNGA0L3QsNGC0LAg0LrQsNC/0LjRgtCw0LvQuNC30LDRhtC40Y8g0L3QsCDQutGA0LjQv9GC0L7QstCw0LvRg9GC0LjRgtC1In0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/QvtC00LTRitGA0LbQsCDRgdC1INC+0YIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6ItCd0LDQuS3QstC40YHQvtC60LAg0YHRgtC+0LnQvdC+0YHRgiDQt9CwIDI0INGHLiIsIjI0aF9sb3ciOiLQndCw0Lkt0L3QuNGB0LrQsCDRgdGC0L7QudC90L7RgdGCINC30LAgMjQg0YcuIiwidmlld19wcmljZV9jaGFydCI6ItCf0YDQtdCz0LvQtdC0INC90LAg0LPRgNCw0YTQuNC60LDRgtCwINC90LAg0YbQtdC90LjRgtC1INC90LAgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLQn9C+0LTQtNGK0YDQttCwINGB0LUg0L7RgiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6ItCf0L7QtNC00YrRgNC20LAg0YHQtSDQvtGCICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/QvtC00LTRitGA0LbQsCDRgdC1INC+0YIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5Ijoi0J/QvtC00LTRitGA0LbQsCDRgdC1INC+0YIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiLQndCw0Lkt0LLQuNGB0L7QutCwINGB0YLQvtC50L3QvtGB0YIg0LfQsCAyNCDRhy4iLCIyNGhfbG93Ijoi0J3QsNC5LdC90LjRgdC60LAg0YHRgtC+0LnQvdC+0YHRgiDQt9CwIDI0INGHLiIsInZpZXdfcHJpY2VfY2hhcnQiOiLQn9GA0LXQs9C70LXQtCDQvdCwINCz0YDQsNGE0LjQutCw0YLQsCDQvdCwINGG0LXQvdC40YLQtSDQvdCwICV7Y29pbn0iLCJwb3dlcmVkX2J5Ijoi0J/QvtC00LTRitGA0LbQsCDRgdC1INC+0YIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6ItCf0YDQtdCz0LvQtdC0INC90LAg0LPRgNCw0YTQuNC60LDRgtCwINC90LAg0YbQtdC90LjRgtC1INC90LAgJXtjb2lufSIsInBvd2VyZWRfYnkiOiLQn9C+0LTQtNGK0YDQttCwINGB0LUg0L7RgiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiLQlNGK0YDQstC+0LLQuNC00L3QsCDQutCw0YDRgtCwINC90LAg0LrRgNC40L/RgtC+0LLQsNC70YPRgtC40YLQtSIsInN1YnRpdGxlIjoiKNCi0L7QvyAle3RvcH0g0L/QviDQv9Cw0LfQsNGA0L3QsCDQutCw0L/QuNGC0LDQu9C40LfQsNGG0LjRjykiLCJwb3dlcmVkX2J5Ijoi0J/QvtC00LTRitGA0LbQsCDRgdC1INC+0YIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6ItCe0YLQutCw0Lcg0L7RgiDQvtGC0LPQvtCy0L7RgNC90L7RgdGCOiDQotC10LfQuCDQuNC90YHRgtGA0YPQvNC10L3RgtC4INGB0LAg0LfQsCDRgNCw0LfQstC70LXRh9C10L3QuNC1INC4INC90LUg0L/RgNC10LTRgdGC0LDQstC70Y/QstCw0YIg0YTQuNC90LDQvdGB0L7QsiDRgdGK0LLQtdGCLiIsInNwaW4iOiLQn9C70LDRgtGE0L7RgNC80LAgU3BpbiIsImF2YWlsYWJsZV9jb2lucyI6ItCd0LDQu9C40YfQvdC4INCy0LDQu9GD0YLQuCJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6ItCQ0LrRgtGD0LDQu9C40LfQuNGA0LDQvdC1INC90LAg0YbQtdC90LjRgtC1INCyIENvaW5HZWNrbyIsInRvdGFsX21jYXAiOiLQntCx0YnQsCDQv9Cw0LfQsNGA0L3QsCDQutCw0L/QuNGC0LDQu9C40LfQsNGG0LjRjyIsIjI0aF92b2wiOiLQntCx0LXQvCDQt9CwIDI0INGHLiIsImRvbSI6ItCU0L7QvC4ifSwiY29pbl9tYXJrZXRfdGlja2VyX2xpc3Rfd2lkZ2V0Ijp7ImV4Y2hhbmdlIjoi0JHQvtGA0YHQsCIsInBhaXIiOiLQlNCy0L7QudC60LAiLCJwcmljZSI6ItCm0LXQvdCwIiwidm9sdW1lIjoi0J7QsdC10LwiLCJ0cnVzdF9zY29yZSI6ItCg0LXQt9GD0LvRgtCw0YIg0LfQsCDQtNC+0LLQtdGA0LjQtSIsInZpZXdfcHJpY2VfY2hhcnQiOiLQn9GA0LXQs9C70LXQtCDQvdCwINCz0YDQsNGE0LjQutCw0YLQsCDQvdCwINGG0LXQvdC40YLQtSIsInBvd2VyZWRfYnkiOiLQn9C+0LTQtNGK0YDQttCwINGB0LUg0L7RgiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiLQn9GA0LXQs9C70LXQtCDQvdCwINCy0YHQuNGH0LrQuCDQv9Cw0LfQsNGA0Lgg0LfQsCAle2NvaW59In19Jyl9LGRkMTE6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IuyLnOqwgOy0neyVoSDsiJzsnIQiLCJtY2FwIjoi7Iuc6rCA7LSd7JWhIiwiMjRoX3ZvbHVtZSI6IjI07Iuc6rCEIOuzvOulqCIsIjI0aF9oaWdoX2xvdyI6IjI07Iuc6rCEIOqzoOqwgC/soIDqsIAifSwiY29pbl9jb21wYXJlX2NoYXJ0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDsoJzqs7UiLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IuyVlO2YuO2ZlO2PkCDqsIDqsqkg67mE6rWQIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IuyVlO2YuO2ZlO2PkCDsi5zqsIDstJ3slaEg67mE6rWQIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDsoJzqs7UifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNOyLnOqwhCDqs6DqsIAiLCIyNGhfbG93IjoiMjTsi5zqsIQg7KCA6rCAIiwidmlld19wcmljZV9jaGFydCI6IiV7Y29pbn0g6rCA6rKpIOywqO2KuCDsobDtmowiLCJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDsoJzqs7UifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDsoJzqs7UifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDsoJzqs7UifSwiYmVhbV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0g7KCc6rO1In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI07Iuc6rCEIOqzoOqwgCIsIjI0aF9sb3ciOiIyNOyLnOqwhCDsoIDqsIAiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiJXtjb2lufSDqsIDqsqkg7LCo7Yq4IOyhsO2ajCIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOygnOqztSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IiV7Y29pbn0g6rCA6rKpIOywqO2KuCDsobDtmowiLCJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSDsoJzqs7UifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IuyVlO2YuO2ZlO2PkCDrgpjrrLTsp4Drj4QiLCJzdWJ0aXRsZSI6Iijsi5zqsIDstJ3slaEg6riw7KSAIOyDgeychCAle3RvcH0g7L2U7J24KSIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOygnOqztSJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IuqzoOyngCDsgqztla06IOuzuCDrj4TqtazripQg7J6s66+466Gc66eMIO2ZnOyaqe2VoCDsiJgg7J6I7Iq164uI64ukLCDquIjsnLXsoIHsnbgg7J6Q66y47J20IOyVhOuLmeuLiOuLpC4iLCJzcGluIjoi7ZqM7KCEIiwiYXZhaWxhYmxlX2NvaW5zIjoi7IKs7JqpIOqwgOuKpSDsvZTsnbgifSwiY29pbl9kYWlseV9wcmljZV93aWRnZXQiOnsidGl0bGUiOiJDb2luR2Vja28g6rCA6rKpIOyXheuNsOydtO2KuCIsInRvdGFsX21jYXAiOiLstJ0g7Iuc6rCA7LSd7JWhIiwiMjRoX3ZvbCI6IjI07Iuc6rCEIOqxsOuemOufiSIsImRvbSI6IuyngOuwsOugpSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiLqsbDrnpjshowiLCJwYWlyIjoi7IyNIiwicHJpY2UiOiLsi5zshLgiLCJ2b2x1bWUiOiLqsbDrnpjrn4kiLCJ0cnVzdF9zY29yZSI6IuyLoOuisOyngOyImCIsInZpZXdfcHJpY2VfY2hhcnQiOiLqsIDqsqkg7LCo7Yq4IOyhsO2ajCIsInBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IOygnOqztSIsInZpZXdfYWxsIjoi7KCE7LK0ICV7Y29pbn0g66eI7LyTIOyhsO2ajCJ9fScpfSxlMTFlOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPSJjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YiLnNwbGl0KCIsIil9LGU0YWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oImY3NzIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIXIoZSkpdGhyb3cgVHlwZUVycm9yKGUrIiBpcyBub3QgYW4gb2JqZWN0ISIpO3JldHVybiBlfX0sZTUzZDpmdW5jdGlvbihlLHQpe3ZhciBuPWUuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIF9fZyYmKF9fZz1uKX0sZTZmMzpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiMDdlMyIpLGk9bigiMzZjMyIpLGE9bigiNWI0ZSIpKCExKSxvPW4oIjU1NTkiKSgiSUVfUFJPVE8iKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixjPWkoZSkscz0wLHA9W107Zm9yKG4gaW4gYyluIT1vJiZyKGMsbikmJnAucHVzaChuKTt3aGlsZSh0Lmxlbmd0aD5zKXIoYyxuPXRbcysrXSkmJih+YShwLG4pfHxwLnB1c2gobikpO3JldHVybiBwfX0sZTg1MzpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiZDNmNCIpLGk9bigiMTE2OSIpLGE9bigiMmI0YyIpKCJzcGVjaWVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiBpKGUpJiYodD1lLmNvbnN0cnVjdG9yLCJmdW5jdGlvbiIhPXR5cGVvZiB0fHx0IT09QXJyYXkmJiFpKHQucHJvdG90eXBlKXx8KHQ9dm9pZCAwKSxyKHQpJiYodD10W2FdLG51bGw9PT10JiYodD12b2lkIDApKSksdm9pZCAwPT09dD9BcnJheTp0fX0sZThiYTpmdW5jdGlvbihlLHQsbil7KGZ1bmN0aW9uKGUsbil7bih0KX0pKDAsKGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijtjb25zdCB0PXtCVEM6IuKCvyIsRVRIOiLOniIsVVNEOiIkIixDQUQ6IkMkIixHQlA6IsKjIixFVVI6IuKCrCIsQ0hGOiJGci4iLFNFSzoia3IiLEpQWToiwqUiLENOWToiwqUiLElOUjoi4oK5IixSVUI6IuKCvSIsQVVEOiJBJCIsSEtEOiJISyQiLFNHRDoiUyQiLFRXRDoiTlQkIixCUkw6IlIkIixLUlc6IuKCqSIsWkFSOiJSIixNWVI6IlJNIixJRFI6IlJwIixOWkQ6Ik5aJCIsTVhOOiJNWCQiLFBIUDoi4oKxIixES0s6ImtyLiIsUExOOiJ6xYIiLEFFRDoiREgiLEFSUzoiJCIsQ0xQOiJDTFAiLENaSzoiS8SNIixIVUY6IkZ0IixJTFM6IuKCqiIsS1dEOiJLRCIsTEtSOiJScyIsTk9LOiJrciIsUEtSOiLigqgiLFNBUjoiU1IiLFRIQjoi4Li/IixUUlk6IuKCuiIsWEFVOiJYQVUiLFhBRzoiWEFHIixYRFI6IlhEUiJ9LG49e01ZUjp7bG9jYXRpb246e3N0YXJ0OiEwfSxmb3JMb2NhbGVzOntlbjohMH19LFNHRDp7bG9jYXRpb246e3N0YXJ0OiEwfSxmb3JMb2NhbGVzOntlbjohMH19LFBIUDp7bG9jYXRpb246e3N0YXJ0OiEwfSxmb3JMb2NhbGVzOntlbjohMH19LEJUQzp7bG9jYXRpb246e3N0YXJ0OiEwfSxmb3JMb2NhbGVzOntlbjohMH19LEVUSDp7bG9jYXRpb246e3N0YXJ0OiEwfSxmb3JMb2NhbGVzOntlbjohMH19fTtmdW5jdGlvbiByKCl7cmV0dXJuISgib2JqZWN0IiE9dHlwZW9mIEludGx8fCFJbnRsfHwiZnVuY3Rpb24iIT10eXBlb2YgSW50bC5OdW1iZXJGb3JtYXQpfWZ1bmN0aW9uIGkoZSl7cmV0dXJuIkJUQyI9PT1lfHwiRVRIIj09PWV9ZnVuY3Rpb24gYShlKXtyZXR1cm4gaShlKXx8bnVsbD09dFtlXX1mdW5jdGlvbiBvKGUsdCl7Y29uc3Qgbj1uZXcgUmVnRXhwKGAoXFwufCwpKDB7JHt0KzF9LH0pKD89WzEtOV0/KWApO3JldHVybiBlLnJlcGxhY2UobiwodCxuLHIpPT5gJHtufTA8c3ViIHRpdGxlPSIke2V9Ij4ke3IubGVuZ3RofTwvc3ViPmApfWZ1bmN0aW9uIGMoZSxyPSJlbiIsaSl7InVuZGVmaW5lZCIhPT10eXBlb2YgaSYmKGU9byhlLGkpKTtjb25zdCBhPWUubWF0Y2goL15bQS1aXXszfVxzPy8pO2lmKG51bGwhPWEpe2NvbnN0IGk9YVswXS50cmltKCksbz1uW2ldO3JldHVybiBvJiZvLmxvY2F0aW9uLnN0YXJ0JiZvLmZvckxvY2FsZXNbcl0/ZS5yZXBsYWNlKGFbMF0sdFtpXSk6ZX1jb25zdCBjPWUubWF0Y2goL1tBLVpdezN9JC8pO2lmKG51bGwhPWMpe2NvbnN0IGk9Y1swXSxhPW5baV07cmV0dXJuIGEmJmEubG9jYXRpb24uZW5kJiZhLmZvckxvY2FsZXNbcl0/ZS5yZXBsYWNlKGksdFtpXSk6ZX1yZXR1cm4gZX1mdW5jdGlvbiBzKGUsdCxuLHIpe3RyeXtjb25zdCBpPXtzdHlsZToiY3VycmVuY3kiLGN1cnJlbmN5OmUsY3VycmVuY3lEaXNwbGF5OiJzeW1ib2wifTtyZXR1cm4gdm9pZCAwIT09bj8oaS5taW5pbXVtRnJhY3Rpb25EaWdpdHM9bixpLm1heGltdW1GcmFjdGlvbkRpZ2l0cz1uKTp2b2lkIDAhPT1yJiYoaS5tYXhpbXVtU2lnbmlmaWNhbnREaWdpdHM9ciksbmV3IEludGwuTnVtYmVyRm9ybWF0KHQsaSl9Y2F0Y2goaSl7cmV0dXJuIHAoZSx0LG4pfX1mdW5jdGlvbiBwKGUsdCxuPTIpe3JldHVybiBlPWUudG9VcHBlckNhc2UoKSxuPjI/e2Zvcm1hdDp0PT5hKGUpP2Ake3QudG9GaXhlZChuKX0gJHtlfWA6YCR7ZX0gJHt0LnRvRml4ZWQobil9YH06e2Zvcm1hdDpuPT5hKGUpP2Ake24udG9Mb2NhbGVTdHJpbmcodCl9ICR7ZX1gOmAke2V9ICR7bi50b0xvY2FsZVN0cmluZyh0KX1gfX1mdW5jdGlvbiBsKGUsdCl7aWYoIXIoKSlyZXR1cm4gcChlLHQsMCk7bGV0IG49e3N0eWxlOiJkZWNpbWFsIixub3RhdGlvbjoiY29tcGFjdCIsbWluaW11bUZyYWN0aW9uRGlnaXRzOjAsbWF4aW11bUZyYWN0aW9uRGlnaXRzOjN9O3JldHVybiBhKGUpJiYhaShlKXx8KG4uc3R5bGU9ImN1cnJlbmN5IixuLmN1cnJlbmN5PWUpLG5ldyBJbnRsLk51bWJlckZvcm1hdCh0LG4pfWZ1bmN0aW9uIHUoZSx0LG4sbyl7Y29uc3QgYz1yKCksbD1jJiYoIWEoZSl8fGkoZSkpO3JldHVybiBsP3MoZSx0LG4sbyk6cChlLHQsbil9bGV0IGQsXyxtLGYsaCx2LHksZyx3LGIsayx4LEM9e307ZnVuY3Rpb24gUygpe0M9e319ZnVuY3Rpb24gUChlLHQpe2NvbnN0IG49YCR7ZX0tJHt0fWAscj1DW25dO209cj9yLmN1cnJlbmN5Rm9ybWF0dGVyTm9ybWFsOnUoZSx0KSxmPXI/ci5jdXJyZW5jeUZvcm1hdHRlck5vRGVjaW1hbDp1KGUsdCwwKSxoPXI/ci5jdXJyZW5jeUZvcm1hdHRlck1lZGl1bTp1KGUsdCwzKSx2PXI/ci5jdXJyZW5jeUZvcm1hdHRlclR3b0RlY2ltYWw6dShlLHQsMikseT1yP3IuY3VycmVuY3lGb3JtYXR0ZXJTbWFsbDp1KGUsdCw2KSxnPXI/ci5jdXJyZW5jeUZvcm1hdHRlclZlcnlTbWFsbDp1KGUsdCw4KSx3PXI/ci5jdXJyZW5jeUZvcm1hdHRlclZlcnlWZXJ5U21hbGw6dShlLHQsMTIpLGI9cj9yLmN1cnJlbmN5Rm9ybWF0dGVyMTVEUDp1KGUsdCwxNSksaz1yP3IuY3VycmVuY3lGb3JtYXR0ZXIxOERQOnUoZSx0LDE4KSx4PXI/ci5jdXJyZW5jeUZvcm1hdHRlckFiYnJldmlhdGVkOmwoZSx0KSxudWxsPT1yJiYoQ1tuXT17fSxDW25dLmN1cnJlbmN5Rm9ybWF0dGVyTm9ybWFsPW0sQ1tuXS5jdXJyZW5jeUZvcm1hdHRlck5vRGVjaW1hbD1mLENbbl0uY3VycmVuY3lGb3JtYXR0ZXJNZWRpdW09aCxDW25dLmN1cnJlbmN5Rm9ybWF0dGVyVHdvRGVjaW1hbD12LENbbl0uY3VycmVuY3lGb3JtYXR0ZXJTbWFsbD15LENbbl0uY3VycmVuY3lGb3JtYXR0ZXJWZXJ5U21hbGw9ZyxDW25dLmN1cnJlbmN5Rm9ybWF0dGVyVmVyeVZlcnlTbWFsbD13LENbbl0uY3VycmVuY3lGb3JtYXR0ZXIxNURQPWIsQ1tuXS5jdXJyZW5jeUZvcm1hdHRlcjE4RFA9ayxDW25dLmN1cnJlbmN5Rm9ybWF0dGVyQWJicmV2aWF0ZWQ9eCl9Y29uc3Qgaj01MCxPPTFlMyxBPTFlNTtmdW5jdGlvbiBFKGUsdCxuPSJlbiIscj0hMSxvPSExLHM9ITEpe3Q9dC50b1VwcGVyQ2FzZSgpO2xldCBwPXZvaWQgMDtpZihkPT09dCYmXz09bnx8KGQ9dCxfPW4sUCh0LG4pKSxzKXtsZXQgcj14LmZvcm1hdChlKTtyZXR1cm4gYSh0KSYmIWkodCkmJihyPWAke3J9ICR7dH1gKSxjKHIsbil9aWYoITA9PT1vJiZlPjEwMClyZXR1cm4gYyhmLmZvcm1hdChlKSxuKTtpZigib2JqZWN0Ij09PXR5cGVvZiBvJiZudWxsIT09byl7aWYocil7bGV0IHQ9by5oYXNPd25Qcm9wZXJ0eSgiZGVjaW1hbFBsYWNlcyIpP2UudG9GaXhlZChvLmRlY2ltYWxQbGFjZXMpOmU7cmV0dXJuYCR7cGFyc2VGbG9hdCh0KS50b1ByZWNpc2lvbihvLnNpZ25pZmljYW50RmlndXJlcykvMX1gfWlmKG8uaGFzT3duUHJvcGVydHkoIm1heGltdW1EZWNpbWFsVHJhaWxpbmdaZXJvZXMiKSYmKHA9by5tYXhpbXVtRGVjaW1hbFRyYWlsaW5nWmVyb2VzKSxvLmhhc093blByb3BlcnR5KCJkZWNpbWFsUGxhY2VzIikmJm8uaGFzT3duUHJvcGVydHkoInNpZ25pZmljYW50RmlndXJlcyIpKXtjb25zdCByPXUodCxuLHZvaWQgMCxvLnNpZ25pZmljYW50RmlndXJlcyk7cmV0dXJuIGMoci5mb3JtYXQoTnVtYmVyLnBhcnNlRmxvYXQoZS50b0ZpeGVkKG8uZGVjaW1hbFBsYWNlcykpKSxuLHApfWlmKG8uaGFzT3duUHJvcGVydHkoImRlY2ltYWxQbGFjZXMiKXx8by5oYXNPd25Qcm9wZXJ0eSgic2lnbmlmaWNhbnRGaWd1cmVzIikpe2NvbnN0IHI9dSh0LG4sby5kZWNpbWFsUGxhY2VzLG8uc2lnbmlmaWNhbnRGaWd1cmVzKTtyZXR1cm4gYyhyLmZvcm1hdChlKSxuLHApfX1pZighYSh0KSl7Y29uc3QgaT1NYXRoLmFicyhlKTtyZXR1cm4gcj9pPDFlLTEyP2UudG9GaXhlZCgxOCk6aTwxZS05P2UudG9GaXhlZCgxNSk6aTwxZS02P2UudG9GaXhlZCgxMik6aTwuMDAxP2UudG9GaXhlZCg4KTppPDE/ZS50b0ZpeGVkKDYpOmUudG9GaXhlZCgyKTowPT09aT9jKG0uZm9ybWF0KGUpLG4scCk6aTwxZS0xMj9jKGsuZm9ybWF0KGUpLG4scCk6aTwxZS05P2MoYi5mb3JtYXQoZSksbixwKTppPDFlLTY/Yyh3LmZvcm1hdChlKSxuLHApOmk8LjA1P2MoZy5mb3JtYXQoZSksbixwKTppPDE/Yyh5LmZvcm1hdChlKSxuLHApOiJKUFkiPT09dCYmaTwxMDA/Yyh2LmZvcm1hdChlKSxuLHApOmMoaT5BP2YuZm9ybWF0KGUpOm0uZm9ybWF0KGUpLG4pfXtsZXQgdD1wYXJzZUZsb2F0KGUpO2lmKHIpcmV0dXJuIDA9PT1lP3QudG9GaXhlZCgyKTp0LnRvUHJlY2lzaW9uKDgpO2lmKDA9PT1lKXJldHVybiBjKG0uZm9ybWF0KGUpLG4scCk7aWYodD49TylyZXR1cm4gYyhmLmZvcm1hdChlKSxuKTtpZih0Pj1qJiZ0PE8pcmV0dXJuIGMoaC5mb3JtYXQoZSksbixwKTtpZih0Pj0xJiZ0PGopcmV0dXJuIGMoeS5mb3JtYXQoZSksbixwKTtpZih0Pj0xZS02JiZ0PDEpcmV0dXJuIGMoZy5mb3JtYXQoZSksbixwKTtpZih0Pj0xZS05JiZ0PDFlLTYpcmV0dXJuIGMody5mb3JtYXQoZSksbixwKTtpZih0Pj0xZS0xMiYmdDwxZS05KXJldHVybiBjKGIuZm9ybWF0KGUpLG4scCk7aWYodDwxZS0xMilyZXR1cm4gYyhrLmZvcm1hdChlKSxuLHApfX1lLmNsZWFyQ2FjaGU9UyxlLmZvcm1hdEN1cnJlbmN5PUUsZS5pc0NyeXB0bz1hLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0sZWJkNjpmdW5jdGlvbihlLHQsbil7dmFyIHI9bigiY2I3YyIpLGk9bigiZDhlOCIpLGE9bigiMmI0YyIpKCJzcGVjaWVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sbz1yKGUpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1vfHx2b2lkIDA9PShuPXIobylbYV0pP3Q6aShuKX19LGViZmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4oIjYyYTAiKSgibWV0YSIpLGk9bigiZjc3MiIpLGE9bigiMDdlMyIpLG89bigiZDlmNiIpLmYsYz0wLHM9T2JqZWN0LmlzRXh0ZW5zaWJsZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0scD0hbigiMjk0YyIpKChmdW5jdGlvbigpe3JldHVybiBzKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSkpLGw9ZnVuY3Rpb24oZSl7byhlLHIse3ZhbHVlOntpOiJPIisgKytjLHc6e319fSl9LHU9ZnVuY3Rpb24oZSx0KXtpZighaShlKSlyZXR1cm4ic3ltYm9sIj09dHlwZW9mIGU/ZTooInN0cmluZyI9PXR5cGVvZiBlPyJTIjoiUCIpK2U7aWYoIWEoZSxyKSl7aWYoIXMoZSkpcmV0dXJuIkYiO2lmKCF0KXJldHVybiJFIjtsKGUpfXJldHVybiBlW3JdLml9LGQ9ZnVuY3Rpb24oZSx0KXtpZighYShlLHIpKXtpZighcyhlKSlyZXR1cm4hMDtpZighdClyZXR1cm4hMTtsKGUpfXJldHVybiBlW3JdLnd9LF89ZnVuY3Rpb24oZSl7cmV0dXJuIHAmJm0uTkVFRCYmcyhlKSYmIWEoZSxyKSYmbChlKSxlfSxtPWUuZXhwb3J0cz17S0VZOnIsTkVFRDohMSxmYXN0S2V5OnUsZ2V0V2VhazpkLG9uRnJlZXplOl99fSxlZGQ0OmZ1bmN0aW9uKGUpe2UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImFwaV9lcnJvciI6IkNhblwndCBjb25uZWN0IHRvIENvaW5HZWNrbyBBUEkuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuIiwicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkiLCJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiTWFya2V0IENhcCBSYW5rIiwibWNhcCI6Ik1hcmtldCBDYXAiLCIyNGhfdm9sdW1lIjoiMjRoIFZvbHVtZSIsIjI0aF9oaWdoX2xvdyI6IjI0aCBIaWdoL0xvdyJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0iLCJjcnlwdG9fcHJpY2VfY29tcGFyaXNvbiI6IkNyeXB0byBQcmljZSBDb21wYXJpc29uIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IkNyeXB0byBNYXJrZXQgQ2FwIENvbXBhcmlzb24ifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9jaGFydF93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNEggSGlnaCIsIjI0aF9sb3ciOiIyNEggTG93Iiwidmlld19wcmljZV9jaGFydCI6IlZpZXcgJXtjb2lufSBQcmljZSBDaGFydCIsInBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUG93ZXJlZCBieSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUG93ZXJlZCBieSAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0SCBIaWdoIiwiMjRoX2xvdyI6IjI0SCBMb3ciLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVmlldyAle2NvaW59IFByaWNlIENoYXJ0IiwicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZpZXcgJXtjb2lufSBQcmljZSBDaGFydCIsInBvd2VyZWRfYnkiOiJQb3dlcmVkIGJ5ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IkNyeXB0b2N1cnJlbmNpZXMgVHJlZSBNYXAiLCJzdWJ0aXRsZSI6IihUb3AgJXt0b3B9IGJ5IE1hcmtldCBDYXApIiwicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInByaWNlIjoiUHJpY2UiLCJtYXJrZXRfY2FwIjoiTWFya2V0IENhcCIsIjI0aF9jaGFuZ2UiOiIyNGggQ2hhbmdlIn0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJyYW5kb21fY29pbl9nZW5lcmF0b3IiOiJSYW5kb20gQ29pbiBHZW5lcmF0b3IiLCJjb2luc19mcm9tIjoiY29pbnMgZnJvbSIsImRpc2NsYWltZXIiOiJEaXNjbGFpbWVyOiBUaGlzIHRvb2wgaXMgY3JlYXRlZCBmb3IgZW50ZXJ0YWlubWVudCBwdXJwb3NlcyBhbmQgZG9lcyBub3QgY29uc3RpdHV0ZSBmaW5hbmNpYWwgYWR2aWNlLiIsInNwaW4iOiJTcGluIiwiYXZhaWxhYmxlX2NvaW5zIjoiQXZhaWxhYmxlIENvaW5zIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoiQ29pbkdlY2tvIFByaWNlIFVwZGF0ZSIsInRvdGFsX21jYXAiOiJUb3RhbCBNIGNhcCIsIjI0aF92b2wiOiIyNGggVm9sdW1lIiwiZG9tIjoiRG9tIn0sImNvaW5fbWFya2V0X3RpY2tlcl9saXN0X3dpZGdldCI6eyJleGNoYW5nZSI6IkV4Y2hhbmdlIiwicGFpciI6IlBhaXIiLCJwcmljZSI6IlByaWNlIiwidm9sdW1lIjoiVm9sdW1lIiwidHJ1c3Rfc2NvcmUiOiJUcnVzdCBTY29yZSIsInZpZXdfcHJpY2VfY2hhcnQiOiJWaWV3IFByaWNlIENoYXJ0IiwicG93ZXJlZF9ieSI6IlBvd2VyZWQgYnkgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiVmlldyBhbGwgJXtjb2lufSBtYXJrZXRzIn19Jyl9LGYxODQ6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6Is6azrHPhM6sz4TOsc6+zrcgzrrOtc+GzrHOu86xzrnOv8+Azr/Or863z4POt8+CIiwibWNhcCI6Is6azrXPhs6xzrvOsc65zr/PgM6/zq/Ot8+DzrciLCIyNGhfdm9sdW1lIjoizozOs866zr/PgiAyNCDPic+Bz47OvSIsIjI0aF9oaWdoX2xvdyI6Is6lz4jOt867z4zPgi/Op86xzrzOt867z4zPgiAyNCDPic+Bz47OvSJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLOoM6xz4HOrc+HzrXPhM6xzrkgzrHPgM+MOiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiLOo8+NzrPOus+BzrnPg863IM+EzrnOvM+Ozr0gzrrPgc+Fz4DPhM6/zr3Ov868zrnPg868zqzPhM+Jzr0iLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoizqPPjc6zzrrPgc65z4POtyDOus61z4bOsc67zrHOuc6/z4DOv86vzrfPg863z4IgzrrPgc+Fz4DPhM6/zr3Ov868zrnPg868zqzPhM+Jzr0ifSwiY29pbl9wcmljZV9zdGF0aWNfaGVhZGxpbmVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiLOoM6xz4HOrc+HzrXPhM6xzrkgzrHPgM+MOiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoizqXPiM63zrvPjM+CIDI0IM+Jz4HPjs69IiwiMjRoX2xvdyI6Is6nzrHOvM63zrvPjM+CIDI0IM+Jz4HPjs69Iiwidmlld19wcmljZV9jaGFydCI6Is6gz4HOv86yzr/Ou86uIM6zz4HOsc+Gzq7OvM6xz4TOv8+CIM+EzrnOvM+Ozr0gJXtjb2lufSIsInBvd2VyZWRfYnkiOiLOoM6xz4HOrc+HzrXPhM6xzrkgzrHPgM+MOiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6Is6gzrHPgc6tz4fOtc+EzrHOuSDOsc+Az4w6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9saXN0X3dpZGdldCI6eyJwb3dlcmVkX2J5IjoizqDOsc+Bzq3Ph861z4TOsc65IM6xz4DPjDogJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoizqDOsc+Bzq3Ph861z4TOsc65IM6xz4DPjDogJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiLOpc+IzrfOu8+Mz4IgMjQgz4nPgc+Ozr0iLCIyNGhfbG93IjoizqfOsc68zrfOu8+Mz4IgMjQgz4nPgc+Ozr0iLCJ2aWV3X3ByaWNlX2NoYXJ0IjoizqDPgc6/zrLOv867zq4gzrPPgc6xz4bOrs68zrHPhM6/z4Igz4TOuc68z47OvSAle2NvaW59IiwicG93ZXJlZF9ieSI6Is6gzrHPgc6tz4fOtc+EzrHOuSDOsc+Az4w6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiLOoM+Bzr/Oss6/zrvOriDOs8+BzrHPhs6uzrzOsc+Ezr/PgiDPhM65zrzPjs69ICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoizqDOsc+Bzq3Ph861z4TOsc65IM6xz4DPjDogJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2hlYXRtYXBfd2lkZ2V0Ijp7InRpdGxlIjoizpPPgc6sz4bOt868zrEgdHJlZW1hcCDOus+Bz4XPgM+Ezr/Ovc6/zrzOuc+DzrzOrM+Ez4nOvSIsInN1YnRpdGxlIjoiKM6azr/Pgc+Fz4bOsc6vzrEgJXt0b3B9IM66zrHPhM6sIM66zrXPhs6xzrvOsc65zr/PgM6/zq/Ot8+DzrcpIiwicG93ZXJlZF9ieSI6Is6gzrHPgc6tz4fOtc+EzrHOuSDOsc+Az4w6ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiLOkc+Azr/PgM6/zq/Ot8+DzrcgzrXPhc64z4XOvc+Ozr06IM6Rz4XPhM6sIM+EzrEgzrXPgc6zzrHOu861zq/OsSDPh8+BzrfPg865zrzOv8+Azr/Ouc6/z43Ovc+EzrHOuSDOs865zrEgzrvPjM6zzr/Phc+CIM+Iz4XPh86xzrPPic6zzq/Osc+CIM66zrHOuSDOtM61zr0gzrHPgM6/z4TOtc67zr/Pjc69IM+Hz4HOt868zrHPhM6/zr/Ouc66zr/Ovc6/zrzOuc66zq3PgiDPg8+FzrzOss6/z4XOu86tz4IuIiwic3BpbiI6IlNwaW4iLCJhdmFpbGFibGVfY29pbnMiOiLOlM65zrHOuM6tz4POuc68zrEgzr3Ov868zq/Pg868zrHPhM6xIn0sImNvaW5fZGFpbHlfcHJpY2Vfd2lkZ2V0Ijp7InRpdGxlIjoizpXOvc63zrzOrc+Bz4nPg863IM+EzrnOvM+Ozr0gzrHPgM+MIM+Ezr8gQ29pbkdlY2tvIiwidG90YWxfbWNhcCI6Is6jz4XOvc6/zrvOuc66zq4gzrrOtc+GzrHOu86xzrnOv8+Azr/Or863z4POtyIsIjI0aF92b2wiOiLOjM6zzrrOv8+CIM+EzrnPgiDPhM61zrvOtc+Fz4TOsc6vzrXPgiAyNCDPjs+BzrXPgiIsImRvbSI6Is6az4XPgc65zrHPgc+Hzq/OsSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiLOkc69z4TOsc67zrvOsc66z4TOrs+BzrnOvyIsInBhaXIiOiLOls61z43Os86/z4IiLCJwcmljZSI6Is6kzrnOvM6uIiwidm9sdW1lIjoizozOs866zr/PgiIsInRydXN0X3Njb3JlIjoiVHJ1c3QgU2NvcmUiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoizqDPgc6/zrLOv867zq4gzrPPgc6xz4bOrs68zrHPhM6/z4Igz4TOuc68z47OvSIsInBvd2VyZWRfYnkiOiLOoM6xz4HOrc+HzrXPhM6xzrkgzrHPgM+MOiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiLOoM+Bzr/Oss6/zrvOriDPjM67z4nOvSDPhM+Jzr0gzrHOs86/z4HPjs69ICV7Y29pbn0ifX0nKX0sZjM2NzpmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oImQ2YzciKSxpPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woImZvbyIpLGE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxvPUFycmF5LnByb3RvdHlwZS5jb25jYXQsYz1PYmplY3QuZGVmaW5lUHJvcGVydHkscz1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGUmJiJbb2JqZWN0IEZ1bmN0aW9uXSI9PT1hLmNhbGwoZSl9LHA9ZnVuY3Rpb24oKXt2YXIgZT17fTt0cnl7Zm9yKHZhciB0IGluIGMoZSwieCIse2VudW1lcmFibGU6ITEsdmFsdWU6ZX0pLGUpcmV0dXJuITE7cmV0dXJuIGUueD09PWV9Y2F0Y2gobil7cmV0dXJuITF9fSxsPWMmJnAoKSx1PWZ1bmN0aW9uKGUsdCxuLHIpeyghKHQgaW4gZSl8fHMocikmJnIoKSkmJihsP2MoZSx0LHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTpuLHdyaXRhYmxlOiEwfSk6ZVt0XT1uKX0sZD1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06e30sYT1yKHQpO2kmJihhPW8uY2FsbChhLE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpKTtmb3IodmFyIGM9MDtjPGEubGVuZ3RoO2MrPTEpdShlLGFbY10sdFthW2NdXSxuW2FbY11dKX07ZC5zdXBwb3J0c0Rlc2NyaXB0b3JzPSEhbCxlLmV4cG9ydHM9ZH0sZjY5MzpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiQ2xhc3NlbWVudCIsIm1jYXAiOiJDYXBpdGFsaXNhdGlvbiBib3Vyc2nDqHJlIiwiMjRoX3ZvbHVtZSI6IlZvbHVtZSBzdXIgMjTCoGgiLCIyNGhfaGlnaF9sb3ciOiIyNEggSGF1dCAvIEJhcyJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQcm9wb3PDqSBwYXIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiQ29tcGFyYWlzb24gQ291cnMgQ3J5cHRvbW9ubmFpZXMiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiQ29tcGFyYWlzb24gQ2FwaXRhbGlzYXRpb25zIENyeXB0byJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IlByb3Bvc8OpIHBhciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTGUgcGx1cyDDqWxldsOpIHN1ciAyNMKgaCIsIjI0aF9sb3ciOiJMZSBwbHVzIGJhcyBzdXIgMjTCoGgiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVm9pciBsZSBHcmFwaGlxdWUgZGUgQ291cnMgZGUgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJQcm9wb3PDqSBwYXIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3ByaWNlX21hcnF1ZWVfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQcm9wb3PDqSBwYXIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJQcm9wb3PDqSBwYXIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJiZWFtX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiUHJvcG9zw6kgcGFyICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl90aWNrZXJfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiTGUgcGx1cyDDqWxldsOpIHN1ciAyNMKgaCIsIjI0aF9sb3ciOiJMZSBwbHVzIGJhcyBzdXIgMjTCoGgiLCJ2aWV3X3ByaWNlX2NoYXJ0IjoiVm9pciBsZSBHcmFwaGlxdWUgZGUgQ291cnMgZGUgJXtjb2lufSIsInBvd2VyZWRfYnkiOiJQcm9wb3PDqSBwYXIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX2NvbnZlcnRlcl93aWRnZXQiOnsidmlld19wcmljZV9jaGFydCI6IlZvaXIgbGUgR3JhcGhpcXVlIGRlIENvdXJzIGRlICV7Y29pbn0iLCJwb3dlcmVkX2J5IjoiUHJvcG9zw6kgcGFyICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IkRpYWdyYW1tZSBkZXMgY3J5cHRvLW1vbm5haWVzIiwic3VidGl0bGUiOiIoVG9wICV7dG9wfSBwYXIgQ2FwaXRhbGlzYXRpb24pIiwicG93ZXJlZF9ieSI6IlByb3Bvc8OpIHBhciAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sInJhbmRvbV9jb2luX3dpZGdldCI6eyJkaXNjbGFpbWVyIjoiQXZlcnRpc3NlbWVudCA6IENlcyBvdXRpbHMgc2VydmVudCBkZSBkaXZlcnRpc3NlbWVudCBldCBuZSBjb25zdGl0dWVudCBwYXMgZGVzIGNvbnNlaWxzIGZpbmFuY2llcnMuIiwic3BpbiI6IlRvdXJuZXIiLCJhdmFpbGFibGVfY29pbnMiOiJNb25uYWllcyBEaXNwb25pYmxlcyJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6Ik1pc2Ugw6AgSm91ciBDb3VycyBDb2luR2Vja28iLCJ0b3RhbF9tY2FwIjoiVG90YWwgQ2FwaXRhbGlzYXRpb24iLCIyNGhfdm9sIjoiVm9sdW1lIHN1ciAyNMKgaCIsImRvbSI6IkRvbSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJQbGF0ZS1mb3JtZSBkXCfDqWNoYW5nZSIsInBhaXIiOiJQYWlyZSIsInByaWNlIjoiQ291cnMiLCJ2b2x1bWUiOiJWb2x1bWUiLCJ0cnVzdF9zY29yZSI6IlNjb3JlIGRlIGNvbmZpYW5jZSIsInZpZXdfcHJpY2VfY2hhcnQiOiJWb2lyIEdyYXBoaXF1ZSBDb3VycyIsInBvd2VyZWRfYnkiOiJQcm9wb3PDqSBwYXIgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsInZpZXdfYWxsIjoiVm9pciB0b3VzIGxlcyBtYXJjaMOpcyAle2NvaW59In19Jyl9LGY3NzI6ZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIm9iamVjdCI9PT10eXBlb2YgZT9udWxsIT09ZToiZnVuY3Rpb24iPT09dHlwZW9mIGV9fSxmOTIxOmZ1bmN0aW9uKGUsdCxuKXtuKCIwMTRiIiksbigiYzIwNyIpLG4oIjY5ZDMiKSxuKCI3NjVkIiksZS5leHBvcnRzPW4oIjU4NGEiKS5TeW1ib2x9LGY5NDc6ZnVuY3Rpb24oZSl7ZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siY29pbl9kZXRhaWxzIjp7Im1jYXBfcmFuayI6IlJhbmdlcmluZyBldHRlciBtYXJrZWRzdmVyZGkiLCJtY2FwIjoiTWFya2Vkc3ZlcmRpIiwiMjRoX3ZvbHVtZSI6IjI0LXRpbWVycyBWb2x1bSIsIjI0aF9oaWdoX2xvdyI6IjI0LXRpbWVycyBIw7h5L0xhdiJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcmV2ZXQgYXYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSIsImNyeXB0b19wcmljZV9jb21wYXJpc29uIjoiS3J5cHRvcHJpcyBzYW1tZW5saWduaW5nIiwiY3J5cHRvX21hcmtldF9jYXBfY29tcGFyaXNvbiI6IktyeXB0byBtYXJrZWRzdmVyZGkgc2FtbWVubGlnbmluZyJ9LCJjb2luX3ByaWNlX3N0YXRpY19oZWFkbGluZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRyZXZldCBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfY2hhcnRfd2lkZ2V0Ijp7IjI0aF9oaWdoIjoiMjQtdGltZXJzIGjDuHkiLCIyNGhfbG93IjoiMjQtdGltZXJzIGxhdiIsInZpZXdfcHJpY2VfY2hhcnQiOiJTZSAle2NvaW59IHByaXNkaWFncmFtIiwicG93ZXJlZF9ieSI6IkRyZXZldCBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fcHJpY2VfbWFycXVlZV93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRyZXZldCBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5fbGlzdF93aWRnZXQiOnsicG93ZXJlZF9ieSI6IkRyZXZldCBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiJEcmV2ZXQgYXYgJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSJ9LCJjb2luX3RpY2tlcl93aWRnZXQiOnsiMjRoX2hpZ2giOiIyNC10aW1lcnMgaMO4eSIsIjI0aF9sb3ciOiIyNC10aW1lcnMgbGF2Iiwidmlld19wcmljZV9jaGFydCI6IlNlICV7Y29pbn0gcHJpc2RpYWdyYW0iLCJwb3dlcmVkX2J5IjoiRHJldmV0IGF2ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiJTZSAle2NvaW59IHByaXNkaWFncmFtIiwicG93ZXJlZF9ieSI6IkRyZXZldCBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9In0sImNvaW5faGVhdG1hcF93aWRnZXQiOnsidGl0bGUiOiJUcmVkaWFncmFtIGZvciBrcnlwdG92YWx1dGFlciIsInN1YnRpdGxlIjoiKFRvcHAgJXt0b3B9IGV0dGVyIG1hcmtlZHN2ZXJkaSkiLCJwb3dlcmVkX2J5IjoiRHJldmV0IGF2ICV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0ifSwicmFuZG9tX2NvaW5fd2lkZ2V0Ijp7ImRpc2NsYWltZXIiOiJBbnN2YXJzZnJhc2tyaXZlbHNlOiBEZXR0ZSBlciB2ZXJrdMO4eSBzb20gdW5kZXJob2xkbmluZyBvZyB1dGdqw7hyIGlra2Ugw7hrb25vbWlza2UgcsOlZC4iLCJzcGluIjoiU251cnIiLCJhdmFpbGFibGVfY29pbnMiOiJUaWxnamVuZ2VsaWdlIG15bnRlciJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyBwcmlzb3BwZGF0ZXJpbmciLCJ0b3RhbF9tY2FwIjoiVG90YWwgTSBNYXJrZWRzdmVyZGkiLCIyNGhfdm9sIjoiMjR0IG9tc2V0bmluZyIsImRvbSI6IkRvbSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJCw7hycyIsInBhaXIiOiJQYXIiLCJwcmljZSI6Ikt1cnMiLCJ2b2x1bWUiOiJPbXNldG5pbmciLCJ0cnVzdF9zY29yZSI6IlRydXN0LXBvZW5nc3VtIiwidmlld19wcmljZV9jaGFydCI6IlNlIHByaXNkaWFncmFtIiwicG93ZXJlZF9ieSI6IkRyZXZldCBhdiAle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9Iiwidmlld19hbGwiOiJWaXMgYWxsZSAle2NvaW59IG1hcmtlZGVyIn19Jyl9LGZhNGU6ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj0hMSxpPWZ1bmN0aW9uKCl7fTtpZihyKXt2YXIgYT1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7dD1uZXcgQXJyYXkobj4xP24tMTowKTtmb3IodmFyIHI9MTtyPG47cisrKXRbci0xXT1hcmd1bWVudHNbcl07dmFyIGk9MCxhPSJXYXJuaW5nOiAiK2UucmVwbGFjZSgvJXMvZywoZnVuY3Rpb24oKXtyZXR1cm4gdFtpKytdfSkpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUuZXJyb3IoYSk7dHJ5e3Rocm93IG5ldyBFcnJvcihhKX1jYXRjaChvKXt9fTtpPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1hcmd1bWVudHMubGVuZ3RoO249bmV3IEFycmF5KHI+Mj9yLTI6MCk7Zm9yKHZhciBpPTI7aTxyO2krKyluW2ktMl09YXJndW1lbnRzW2ldO2lmKHZvaWQgMD09PXQpdGhyb3cgbmV3IEVycm9yKCJgd2FybmluZyhjb25kaXRpb24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyBtZXNzYWdlIGFyZ3VtZW50Iik7ZXx8YS5hcHBseShudWxsLFt0XS5jb25jYXQobikpfX1lLmV4cG9ydHM9aX0sZmE1YjpmdW5jdGlvbihlLHQsbil7ZS5leHBvcnRzPW4oIjU1MzciKSgibmF0aXZlLWZ1bmN0aW9uLXRvLXN0cmluZyIsRnVuY3Rpb24udG9TdHJpbmcpfSxmYWIyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uKCI3NzI2IikuZG9jdW1lbnQ7ZS5leHBvcnRzPXImJnIuZG9jdW1lbnRFbGVtZW50fSxmZGVmOmZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPSJcdFxuXHZcZlxyIMKg4ZqA4aCO4oCA4oCB4oCC4oCD4oCE4oCF4oCG4oCH4oCI4oCJ4oCK4oCv4oGf44CAXHUyMDI4XHUyMDI5XHVmZWZmIn0sZmZlYjpmdW5jdGlvbihlKXtlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJjb2luX2RldGFpbHMiOnsibWNhcF9yYW5rIjoiUGl5YXNhIERlxJ9lcmkgU8SxcmFsYW1hc8SxIiwibWNhcCI6IlBpeWFzYSBEZcSfZXJpIiwiMjRoX3ZvbHVtZSI6IjI0IFNhYXRsaWsgSGFjaW0iLCIyNGhfaGlnaF9sb3ciOiIyNFNBIFnDvGtzZWsgLyBEw7zFn8O8ayJ9LCJjb2luX2NvbXBhcmVfY2hhcnRfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IHRhcmFmxLFuZGFuIGRlc3Rla2xlbm1la3RlZGlyIiwiY3J5cHRvX3ByaWNlX2NvbXBhcmlzb24iOiJLcmlwdG8gRml5YXQgS2FyxZ/EsWxhxZ90xLFybWFzxLEiLCJjcnlwdG9fbWFya2V0X2NhcF9jb21wYXJpc29uIjoiS3JpcHRvIFBpeWFzYSBEZcSfZXJpIEthcsWfxLFsYcWfdMSxcm1hc8SxIn0sImNvaW5fcHJpY2Vfc3RhdGljX2hlYWRsaW5lX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSB0YXJhZsSxbmRhbiBkZXN0ZWtsZW5tZWt0ZWRpciJ9LCJjb2luX3ByaWNlX2NoYXJ0X3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0UyBZw7xrc2VrIiwiMjRoX2xvdyI6IjI0UyBEw7zFn8O8ayIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IEZpeWF0IEdyYWZpxJ9pbmkgR8O2csO8bnTDvGxlIiwicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gdGFyYWbEsW5kYW4gZGVzdGVrbGVubWVrdGVkaXIifSwiY29pbl9wcmljZV9tYXJxdWVlX3dpZGdldCI6eyJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSB0YXJhZsSxbmRhbiBkZXN0ZWtsZW5tZWt0ZWRpciJ9LCJjb2luX2xpc3Rfd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IHRhcmFmxLFuZGFuIGRlc3Rla2xlbm1la3RlZGlyIn0sImJlYW1fd2lkZ2V0Ijp7InBvd2VyZWRfYnkiOiIle25hbWVfc3RhcnR9JXtuYW1lfSV7bmFtZV9lbmR9IHRhcmFmxLFuZGFuIGRlc3Rla2xlbm1la3RlZGlyIn0sImNvaW5fdGlja2VyX3dpZGdldCI6eyIyNGhfaGlnaCI6IjI0UyBZw7xrc2VrIiwiMjRoX2xvdyI6IjI0UyBEw7zFn8O8ayIsInZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IEZpeWF0IEdyYWZpxJ9pbmkgR8O2csO8bnTDvGxlIiwicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gdGFyYWbEsW5kYW4gZGVzdGVrbGVubWVrdGVkaXIifSwiY29pbl9jb252ZXJ0ZXJfd2lkZ2V0Ijp7InZpZXdfcHJpY2VfY2hhcnQiOiIle2NvaW59IEZpeWF0IEdyYWZpxJ9pbmkgR8O2csO8bnTDvGxlIiwicG93ZXJlZF9ieSI6IiV7bmFtZV9zdGFydH0le25hbWV9JXtuYW1lX2VuZH0gdGFyYWbEsW5kYW4gZGVzdGVrbGVubWVrdGVkaXIifSwiY29pbl9oZWF0bWFwX3dpZGdldCI6eyJ0aXRsZSI6IktyaXB0byBQYXJhIEHEn2FjxLEgSGFyaXRhc8SxIiwic3VidGl0bGUiOiIoUGl5YXNhIERlxJ9lcmluZSBHw7ZyZSBFbiDEsHlpICV7dG9wfSkiLCJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSB0YXJhZsSxbmRhbiBkZXN0ZWtsZW5tZWt0ZWRpciJ9LCJyYW5kb21fY29pbl93aWRnZXQiOnsiZGlzY2xhaW1lciI6IlNvcnVtbHVsdWsgUmVkZGk6IEJ1IGFyYcOnbGFyIGXEn2xlbmNlIGFtYcOnbMSxZMSxciB2ZSBmaW5hbnNhbCB0YXZzaXllIHRlxZ9raWwgZXRtZXouIiwic3BpbiI6IkTDtm5kw7xyIiwiYXZhaWxhYmxlX2NvaW5zIjoiTWV2Y3V0IENvaW5cJ2xlciJ9LCJjb2luX2RhaWx5X3ByaWNlX3dpZGdldCI6eyJ0aXRsZSI6IkNvaW5HZWNrbyBGaXlhdCBHw7xuY2VsbGVtZXNpIiwidG90YWxfbWNhcCI6IlRvcGxhbSBQIGRlxJ9lcmkiLCIyNGhfdm9sIjoiMjQgU2FhdGxpayBIYWNpbSIsImRvbSI6IkhrbSJ9LCJjb2luX21hcmtldF90aWNrZXJfbGlzdF93aWRnZXQiOnsiZXhjaGFuZ2UiOiJCb3JzYSIsInBhaXIiOiLDh2lmdCIsInByaWNlIjoiRml5YXQiLCJ2b2x1bWUiOiJIYWNpbSIsInRydXN0X3Njb3JlIjoiR8O8dmVuIFB1YW7EsSIsInZpZXdfcHJpY2VfY2hhcnQiOiIgRml5YXQgR3JhZmnEn2luaSBHw7Zyw7xudMO8bGUiLCJwb3dlcmVkX2J5IjoiJXtuYW1lX3N0YXJ0fSV7bmFtZX0le25hbWVfZW5kfSB0YXJhZsSxbmRhbiBkZXN0ZWtsZW5tZWt0ZWRpciIsInZpZXdfYWxsIjoiVMO8bSAle2NvaW59IHBpeWFzYWxhcsSxbsSxIGfDtnLDvG50w7xsZSJ9fScpfX0pOw=="}},"time_used":96,"timings":{"blocked":-1,"dns":61,"connect":19,"send":0,"wait":14,"receive":2,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/owl.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.710Z","timestamp":1785129412710,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/owl.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 17911\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":85303,"size_decoded":18149,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (360)","md5":"54428880ec8df798ac3d666f5113c7ff","sha1":"9e43e74b8677f39e87f1b11be4d536c618b14bb3","sha256":"0402874ff311f284b18af9e4c453ee5bf0916a3b7335f0be52dcb54a1a31338b","sha512":"abceb872c8942d366a533c0c572e0e6e31d1b428ad2bc6fa1e746fd31811b6f8dfcd77814723adf44e1a8585436b511097576159b8eab40706b025e3158eda24","ssdeep":"1536:/PLoreUScogMjVNPP8aLMBJk8u9hKt1o619IYj1oJ0SQIOZ:/fHNPP/qJ9BoC9XplIOZ","tlshash":"e48383c5f36c261b422a31785e9e23ce713d412ad91118af7ca4e9dc28d546c836eff9","first_seen":"2023-03-07T01:10:42Z","last_seen":"2026-07-27T15:00:25.620182Z","times_seen":4661,"resource_available":true,"data":"LyoqCiAqIE93bCBDYXJvdXNlbCB2Mi4yLjAKICogQ29weXJpZ2h0IDIwMTMtMjAxNiBEYXZpZCBEZXV0c2NoCiAqIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL093bENhcm91c2VsMi9Pd2xDYXJvdXNlbDIvYmxvYi9tYXN0ZXIvTElDRU5TRSkKICovCi8qKgogKiBPd2wgY2Fyb3VzZWwKICogQHZlcnNpb24gMi4xLjYKICogQGF1dGhvciBCYXJ0b3N6IFdvamNpZWNob3dza2kKICogQGF1dGhvciBEYXZpZCBEZXV0c2NoCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQogKiBAdG9kbyBMYXp5IExvYWQgSWNvbgogKiBAdG9kbyBwcmV2ZW50IGFuaW1hdGlvbmVuZCBidWJsaW5nCiAqIEB0b2RvIGl0ZW1zU2NhbGVVcAogKiBAdG9kbyBUZXN0IFplcHRvCiAqIEB0b2RvIHN0YWdlUGFkZGluZyBjYWxjdWxhdGUgd3JvbmcgYWN0aXZlIGNsYXNzZXMKICovCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7CgoJLyoqCgkgKiBDcmVhdGVzIGEgY2Fyb3VzZWwuCgkgKiBAY2xhc3MgVGhlIE93bCBDYXJvdXNlbC4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8alF1ZXJ5fSBlbGVtZW50IC0gVGhlIGVsZW1lbnQgdG8gY3JlYXRlIHRoZSBjYXJvdXNlbCBmb3IuCgkgKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnNdIC0gVGhlIG9wdGlvbnMKCSAqLwoJZnVuY3Rpb24gT3dsKGVsZW1lbnQsIG9wdGlvbnMpIHsKCgkJLyoqCgkJICogQ3VycmVudCBzZXR0aW5ncyBmb3IgdGhlIGNhcm91c2VsLgoJCSAqIEBwdWJsaWMKCQkgKi8KCQl0aGlzLnNldHRpbmdzID0gbnVsbDsKCgkJLyoqCgkJICogQ3VycmVudCBvcHRpb25zIHNldCBieSB0aGUgY2FsbGVyIGluY2x1ZGluZyBkZWZhdWx0cy4KCQkgKiBAcHVibGljCgkJICovCgkJdGhpcy5vcHRpb25zID0gJC5leHRlbmQoe30sIE93bC5EZWZhdWx0cywgb3B0aW9ucyk7CgoJCS8qKgoJCSAqIFBsdWdpbiBlbGVtZW50LgoJCSAqIEBwdWJsaWMKCQkgKi8KCQl0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KTsKCgkJLyoqCgkJICogUHJveGllZCBldmVudCBoYW5kbGVycy4KCQkgKiBAcHJvdGVjdGVkCgkJICovCgkJdGhpcy5faGFuZGxlcnMgPSB7fTsKCgkJLyoqCgkJICogUmVmZXJlbmNlcyB0byB0aGUgcnVubmluZyBwbHVnaW5zIG9mIHRoaXMgY2Fyb3VzZWwuCgkJICogQHByb3RlY3RlZAoJCSAqLwoJCXRoaXMuX3BsdWdpbnMgPSB7fTsKCgkJLyoqCgkJICogQ3VycmVudGx5IHN1cHByZXNzZWQgZXZlbnRzIHRvIHByZXZlbnQgdGhlbSBmcm9tIGJlZWluZyByZXRyaWdnZXJlZC4KCQkgKiBAcHJvdGVjdGVkCgkJICovCgkJdGhpcy5fc3VwcmVzcyA9IHt9OwoKCQkvKioKCQkgKiBBYnNvbHV0ZSBjdXJyZW50IHBvc2l0aW9uLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKi8KCQl0aGlzLl9jdXJyZW50ID0gbnVsbDsKCgkJLyoqCgkJICogQW5pbWF0aW9uIHNwZWVkIGluIG1pbGxpc2Vjb25kcy4KCQkgKiBAcHJvdGVjdGVkCgkJICovCgkJdGhpcy5fc3BlZWQgPSBudWxsOwoKCQkvKioKCQkgKiBDb29yZGluYXRlcyBvZiBhbGwgaXRlbXMgaW4gcGl4ZWwuCgkJICogQHRvZG8gVGhlIG5hbWUgb2YgdGhpcyBtZW1iZXIgaXMgbWlzc2xlYWRpbmcuCgkJICogQHByb3RlY3RlZAoJCSAqLwoJCXRoaXMuX2Nvb3JkaW5hdGVzID0gW107CgoJCS8qKgoJCSAqIEN1cnJlbnQgYnJlYWtwb2ludC4KCQkgKiBAdG9kbyBSZWFsIG1lZGlhIHF1ZXJpZXMgd291bGQgYmUgbmljZS4KCQkgKiBAcHJvdGVjdGVkCgkJICovCgkJdGhpcy5fYnJlYWtwb2ludCA9IG51bGw7CgoJCS8qKgoJCSAqIEN1cnJlbnQgd2lkdGggb2YgdGhlIHBsdWdpbiBlbGVtZW50LgoJCSAqLwoJCXRoaXMuX3dpZHRoID0gbnVsbDsKCgkJLyoqCgkJICogQWxsIHJlYWwgaXRlbXMuCgkJICogQHByb3RlY3RlZAoJCSAqLwoJCXRoaXMuX2l0ZW1zID0gW107CgoJCS8qKgoJCSAqIEFsbCBjbG9uZWQgaXRlbXMuCgkJICogQHByb3RlY3RlZAoJCSAqLwoJCXRoaXMuX2Nsb25lcyA9IFtdOwoKCQkvKioKCQkgKiBNZXJnZSB2YWx1ZXMgb2YgYWxsIGl0ZW1zLgoJCSAqIEB0b2RvIE1heWJlIHRoaXMgY291bGQgYmUgcGFydCBvZiBhIHBsdWdpbi4KCQkgKiBAcHJvdGVjdGVkCgkJICovCgkJdGhpcy5fbWVyZ2VycyA9IFtdOwoKCQkvKioKCQkgKiBXaWR0aHMgb2YgYWxsIGl0ZW1zLgoJCSAqLwoJCXRoaXMuX3dpZHRocyA9IFtdOwoKCQkvKioKCQkgKiBJbnZhbGlkYXRlZCBwYXJ0cyB3aXRoaW4gdGhlIHVwZGF0ZSBwcm9jZXNzLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKi8KCQl0aGlzLl9pbnZhbGlkYXRlZCA9IHt9OwoKCQkvKioKCQkgKiBPcmRlcmVkIGxpc3Qgb2Ygd29ya2VycyBmb3IgdGhlIHVwZGF0ZSBwcm9jZXNzLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKi8KCQl0aGlzLl9waXBlID0gW107CgoJCS8qKgoJCSAqIEN1cnJlbnQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHRoZSBkcmFnIG9wZXJhdGlvbi4KCQkgKiBAdG9kbyAjMjYxCgkJICogQHByb3RlY3RlZAoJCSAqLwoJCXRoaXMuX2RyYWcgPSB7CgkJCXRpbWU6IG51bGwsCgkJCXRhcmdldDogbnVsbCwKCQkJcG9pbnRlcjogbnVsbCwKCQkJc3RhZ2U6IHsKCQkJCXN0YXJ0OiBudWxsLAoJCQkJY3VycmVudDogbnVsbAoJCQl9LAoJCQlkaXJlY3Rpb246IG51bGwKCQl9OwoKCQkvKioKCQkgKiBDdXJyZW50IHN0YXRlIGluZm9ybWF0aW9uIGFuZCB0aGVpciB0YWdzLgoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICogQHByb3RlY3RlZAoJCSAqLwoJCXRoaXMuX3N0YXRlcyA9IHsKCQkJY3VycmVudDoge30sCgkJCXRhZ3M6IHsKCQkJCSdpbml0aWFsaXppbmcnOiBbICdidXN5JyBdLAoJCQkJJ2FuaW1hdGluZyc6IFsgJ2J1c3knIF0sCgkJCQknZHJhZ2dpbmcnOiBbICdpbnRlcmFjdGluZycgXQoJCQl9CgkJfTsKCgkJJC5lYWNoKFsgJ29uUmVzaXplJywgJ29uVGhyb3R0bGVkUmVzaXplJyBdLCAkLnByb3h5KGZ1bmN0aW9uKGksIGhhbmRsZXIpIHsKCQkJdGhpcy5faGFuZGxlcnNbaGFuZGxlcl0gPSAkLnByb3h5KHRoaXNbaGFuZGxlcl0sIHRoaXMpOwoJCX0sIHRoaXMpKTsKCgkJJC5lYWNoKE93bC5QbHVnaW5zLCAkLnByb3h5KGZ1bmN0aW9uKGtleSwgcGx1Z2luKSB7CgkJCXRoaXMuX3BsdWdpbnNba2V5LmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpICsga2V5LnNsaWNlKDEpXQoJCQkJPSBuZXcgcGx1Z2luKHRoaXMpOwoJCX0sIHRoaXMpKTsKCgkJJC5lYWNoKE93bC5Xb3JrZXJzLCAkLnByb3h5KGZ1bmN0aW9uKHByaW9yaXR5LCB3b3JrZXIpIHsKCQkJdGhpcy5fcGlwZS5wdXNoKHsKCQkJCSdmaWx0ZXInOiB3b3JrZXIuZmlsdGVyLAoJCQkJJ3J1bic6ICQucHJveHkod29ya2VyLnJ1biwgdGhpcykKCQkJfSk7CgkJfSwgdGhpcykpOwoKCQl0aGlzLnNldHVwKCk7CgkJdGhpcy5pbml0aWFsaXplKCk7Cgl9CgoJLyoqCgkgKiBEZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBjYXJvdXNlbC4KCSAqIEBwdWJsaWMKCSAqLwoJT3dsLkRlZmF1bHRzID0gewoJCWl0ZW1zOiAzLAoJCWxvb3A6IGZhbHNlLAoJCWNlbnRlcjogZmFsc2UsCgkJcmV3aW5kOiBmYWxzZSwKCgkJbW91c2VEcmFnOiB0cnVlLAoJCXRvdWNoRHJhZzogdHJ1ZSwKCQlwdWxsRHJhZzogdHJ1ZSwKCQlmcmVlRHJhZzogZmFsc2UsCgoJCW1hcmdpbjogMCwKCQlzdGFnZVBhZGRpbmc6IDAsCgoJCW1lcmdlOiBmYWxzZSwKCQltZXJnZUZpdDogdHJ1ZSwKCQlhdXRvV2lkdGg6IGZhbHNlLAoKCQlzdGFydFBvc2l0aW9uOiAwLAoJCXJ0bDogZmFsc2UsCgoJCXNtYXJ0U3BlZWQ6IDI1MCwKCQlmbHVpZFNwZWVkOiBmYWxzZSwKCQlkcmFnRW5kU3BlZWQ6IGZhbHNlLAoKCQlyZXNwb25zaXZlOiB7fSwKCQlyZXNwb25zaXZlUmVmcmVzaFJhdGU6IDIwMCwKCQlyZXNwb25zaXZlQmFzZUVsZW1lbnQ6IHdpbmRvdywKCgkJZmFsbGJhY2tFYXNpbmc6ICdzd2luZycsCgoJCWluZm86IGZhbHNlLAoKCQluZXN0ZWRJdGVtU2VsZWN0b3I6IGZhbHNlLAoJCWl0ZW1FbGVtZW50OiAnZGl2JywKCQlzdGFnZUVsZW1lbnQ6ICdkaXYnLAoKCQlyZWZyZXNoQ2xhc3M6ICdvd2wtcmVmcmVzaCcsCgkJbG9hZGVkQ2xhc3M6ICdvd2wtbG9hZGVkJywKCQlsb2FkaW5nQ2xhc3M6ICdvd2wtbG9hZGluZycsCgkJcnRsQ2xhc3M6ICdvd2wtcnRsJywKCQlyZXNwb25zaXZlQ2xhc3M6ICdvd2wtcmVzcG9uc2l2ZScsCgkJZHJhZ0NsYXNzOiAnb3dsLWRyYWcnLAoJCWl0ZW1DbGFzczogJ293bC1pdGVtJywKCQlzdGFnZUNsYXNzOiAnb3dsLXN0YWdlJywKCQlzdGFnZU91dGVyQ2xhc3M6ICdvd2wtc3RhZ2Utb3V0ZXInLAoJCWdyYWJDbGFzczogJ293bC1ncmFiJwoJfTsKCgkvKioKCSAqIEVudW1lcmF0aW9uIGZvciB3aWR0aC4KCSAqIEBwdWJsaWMKCSAqIEByZWFkb25seQoJICogQGVudW0ge1N0cmluZ30KCSAqLwoJT3dsLldpZHRoID0gewoJCURlZmF1bHQ6ICdkZWZhdWx0JywKCQlJbm5lcjogJ2lubmVyJywKCQlPdXRlcjogJ291dGVyJwoJfTsKCgkvKioKCSAqIEVudW1lcmF0aW9uIGZvciB0eXBlcy4KCSAqIEBwdWJsaWMKCSAqIEByZWFkb25seQoJICogQGVudW0ge1N0cmluZ30KCSAqLwoJT3dsLlR5cGUgPSB7CgkJRXZlbnQ6ICdldmVudCcsCgkJU3RhdGU6ICdzdGF0ZScKCX07CgoJLyoqCgkgKiBDb250YWlucyBhbGwgcmVnaXN0ZXJlZCBwbHVnaW5zLgoJICogQHB1YmxpYwoJICovCglPd2wuUGx1Z2lucyA9IHt9OwoKCS8qKgoJICogTGlzdCBvZiB3b3JrZXJzIGludm9sdmVkIGluIHRoZSB1cGRhdGUgcHJvY2Vzcy4KCSAqLwoJT3dsLldvcmtlcnMgPSBbIHsKCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ3NldHRpbmdzJyBdLAoJCXJ1bjogZnVuY3Rpb24oKSB7CgkJCXRoaXMuX3dpZHRoID0gdGhpcy4kZWxlbWVudC53aWR0aCgpOwoJCX0KCX0sIHsKCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLAoJCXJ1bjogZnVuY3Rpb24oY2FjaGUpIHsKCQkJY2FjaGUuY3VycmVudCA9IHRoaXMuX2l0ZW1zICYmIHRoaXMuX2l0ZW1zW3RoaXMucmVsYXRpdmUodGhpcy5fY3VycmVudCldOwoJCX0KCX0sIHsKCQlmaWx0ZXI6IFsgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLAoJCXJ1bjogZnVuY3Rpb24oKSB7CgkJCXRoaXMuJHN0YWdlLmNoaWxkcmVuKCcuY2xvbmVkJykucmVtb3ZlKCk7CgkJfQoJfSwgewoJCWZpbHRlcjogWyAnd2lkdGgnLCAnaXRlbXMnLCAnc2V0dGluZ3MnIF0sCgkJcnVuOiBmdW5jdGlvbihjYWNoZSkgewoJCQl2YXIgbWFyZ2luID0gdGhpcy5zZXR0aW5ncy5tYXJnaW4gfHwgJycsCgkJCQlncmlkID0gIXRoaXMuc2V0dGluZ3MuYXV0b1dpZHRoLAoJCQkJcnRsID0gdGhpcy5zZXR0aW5ncy5ydGwsCgkJCQljc3MgPSB7CgkJCQkJJ3dpZHRoJzogJ2F1dG8nLAoJCQkJCSdtYXJnaW4tbGVmdCc6IHJ0bCA/IG1hcmdpbiA6ICcnLAoJCQkJCSdtYXJnaW4tcmlnaHQnOiBydGwgPyAnJyA6IG1hcmdpbgoJCQkJfTsKCgkJCSFncmlkICYmIHRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuY3NzKGNzcyk7CgoJCQljYWNoZS5jc3MgPSBjc3M7CgkJfQoJfSwgewoJCWZpbHRlcjogWyAnd2lkdGgnLCAnaXRlbXMnLCAnc2V0dGluZ3MnIF0sCgkJcnVuOiBmdW5jdGlvbihjYWNoZSkgewoJCQl2YXIgd2lkdGggPSAodGhpcy53aWR0aCgpIC8gdGhpcy5zZXR0aW5ncy5pdGVtcykudG9GaXhlZCgzKSAtIHRoaXMuc2V0dGluZ3MubWFyZ2luLAoJCQkJbWVyZ2UgPSBudWxsLAoJCQkJaXRlcmF0b3IgPSB0aGlzLl9pdGVtcy5sZW5ndGgsCgkJCQlncmlkID0gIXRoaXMuc2V0dGluZ3MuYXV0b1dpZHRoLAoJCQkJd2lkdGhzID0gW107CgoJCQljYWNoZS5pdGVtcyA9IHsKCQkJCW1lcmdlOiBmYWxzZSwKCQkJCXdpZHRoOiB3aWR0aAoJCQl9OwoKCQkJd2hpbGUgKGl0ZXJhdG9yLS0pIHsKCQkJCW1lcmdlID0gdGhpcy5fbWVyZ2Vyc1tpdGVyYXRvcl07CgkJCQltZXJnZSA9IHRoaXMuc2V0dGluZ3MubWVyZ2VGaXQgJiYgTWF0aC5taW4obWVyZ2UsIHRoaXMuc2V0dGluZ3MuaXRlbXMpIHx8IG1lcmdlOwoKCQkJCWNhY2hlLml0ZW1zLm1lcmdlID0gbWVyZ2UgPiAxIHx8IGNhY2hlLml0ZW1zLm1lcmdlOwoKCQkJCXdpZHRoc1tpdGVyYXRvcl0gPSAhZ3JpZCA/IHRoaXMuX2l0ZW1zW2l0ZXJhdG9yXS53aWR0aCgpIDogd2lkdGggKiBtZXJnZTsKCQkJfQoKCQkJdGhpcy5fd2lkdGhzID0gd2lkdGhzOwoJCX0KCX0sIHsKCQlmaWx0ZXI6IFsgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLAoJCXJ1bjogZnVuY3Rpb24oKSB7CgkJCXZhciBjbG9uZXMgPSBbXSwKCQkJCWl0ZW1zID0gdGhpcy5faXRlbXMsCgkJCQlzZXR0aW5ncyA9IHRoaXMuc2V0dGluZ3MsCgkJCQl2aWV3ID0gTWF0aC5tYXgoc2V0dGluZ3MuaXRlbXMgKiAyLCA0KSwKCQkJCXNpemUgPSBNYXRoLmNlaWwoaXRlbXMubGVuZ3RoIC8gMikgKiAyLAoJCQkJcmVwZWF0ID0gc2V0dGluZ3MubG9vcCAmJiBpdGVtcy5sZW5ndGggPyBzZXR0aW5ncy5yZXdpbmQgPyB2aWV3IDogTWF0aC5tYXgodmlldywgc2l6ZSkgOiAwLAoJCQkJYXBwZW5kID0gJycsCgkJCQlwcmVwZW5kID0gJyc7CgoJCQlyZXBlYXQgLz0gMjsKCgkJCXdoaWxlIChyZXBlYXQtLSkgewoJCQkJY2xvbmVzLnB1c2godGhpcy5ub3JtYWxpemUoY2xvbmVzLmxlbmd0aCAvIDIsIHRydWUpKTsKCQkJCWFwcGVuZCA9IGFwcGVuZCArIGl0ZW1zW2Nsb25lc1tjbG9uZXMubGVuZ3RoIC0gMV1dWzBdLm91dGVySFRNTDsKCQkJCWNsb25lcy5wdXNoKHRoaXMubm9ybWFsaXplKGl0ZW1zLmxlbmd0aCAtIDEgLSAoY2xvbmVzLmxlbmd0aCAtIDEpIC8gMiwgdHJ1ZSkpOwoJCQkJcHJlcGVuZCA9IGl0ZW1zW2Nsb25lc1tjbG9uZXMubGVuZ3RoIC0gMV1dWzBdLm91dGVySFRNTCArIHByZXBlbmQ7CgkJCX0KCgkJCXRoaXMuX2Nsb25lcyA9IGNsb25lczsKCgkJCSQoYXBwZW5kKS5hZGRDbGFzcygnY2xvbmVkJykuYXBwZW5kVG8odGhpcy4kc3RhZ2UpOwoJCQkkKHByZXBlbmQpLmFkZENsYXNzKCdjbG9uZWQnKS5wcmVwZW5kVG8odGhpcy4kc3RhZ2UpOwoJCX0KCX0sIHsKCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLAoJCXJ1bjogZnVuY3Rpb24oKSB7CgkJCXZhciBydGwgPSB0aGlzLnNldHRpbmdzLnJ0bCA/IDEgOiAtMSwKCQkJCXNpemUgPSB0aGlzLl9jbG9uZXMubGVuZ3RoICsgdGhpcy5faXRlbXMubGVuZ3RoLAoJCQkJaXRlcmF0b3IgPSAtMSwKCQkJCXByZXZpb3VzID0gMCwKCQkJCWN1cnJlbnQgPSAwLAoJCQkJY29vcmRpbmF0ZXMgPSBbXTsKCgkJCXdoaWxlICgrK2l0ZXJhdG9yIDwgc2l6ZSkgewoJCQkJcHJldmlvdXMgPSBjb29yZGluYXRlc1tpdGVyYXRvciAtIDFdIHx8IDA7CgkJCQljdXJyZW50ID0gdGhpcy5fd2lkdGhzW3RoaXMucmVsYXRpdmUoaXRlcmF0b3IpXSArIHRoaXMuc2V0dGluZ3MubWFyZ2luOwoJCQkJY29vcmRpbmF0ZXMucHVzaChwcmV2aW91cyArIGN1cnJlbnQgKiBydGwpOwoJCQl9CgoJCQl0aGlzLl9jb29yZGluYXRlcyA9IGNvb3JkaW5hdGVzOwoJCX0KCX0sIHsKCQlmaWx0ZXI6IFsgJ3dpZHRoJywgJ2l0ZW1zJywgJ3NldHRpbmdzJyBdLAoJCXJ1bjogZnVuY3Rpb24oKSB7CgkJCXZhciBwYWRkaW5nID0gdGhpcy5zZXR0aW5ncy5zdGFnZVBhZGRpbmcsCgkJCQljb29yZGluYXRlcyA9IHRoaXMuX2Nvb3JkaW5hdGVzLAoJCQkJY3NzID0gewoJCQkJCSd3aWR0aCc6IE1hdGguY2VpbChNYXRoLmFicyhjb29yZGluYXRlc1tjb29yZGluYXRlcy5sZW5ndGggLSAxXSkpICsgcGFkZGluZyAqIDIsCgkJCQkJJ3BhZGRpbmctbGVmdCc6IHBhZGRpbmcgfHwgJycsCgkJCQkJJ3BhZGRpbmctcmlnaHQnOiBwYWRkaW5nIHx8ICcnCgkJCQl9OwoKCQkJdGhpcy4kc3RhZ2UuY3NzKGNzcyk7CgkJfQoJfSwgewoJCWZpbHRlcjogWyAnd2lkdGgnLCAnaXRlbXMnLCAnc2V0dGluZ3MnIF0sCgkJcnVuOiBmdW5jdGlvbihjYWNoZSkgewoJCQl2YXIgaXRlcmF0b3IgPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGgsCgkJCQlncmlkID0gIXRoaXMuc2V0dGluZ3MuYXV0b1dpZHRoLAoJCQkJaXRlbXMgPSB0aGlzLiRzdGFnZS5jaGlsZHJlbigpOwoKCQkJaWYgKGdyaWQgJiYgY2FjaGUuaXRlbXMubWVyZ2UpIHsKCQkJCXdoaWxlIChpdGVyYXRvci0tKSB7CgkJCQkJY2FjaGUuY3NzLndpZHRoID0gdGhpcy5fd2lkdGhzW3RoaXMucmVsYXRpdmUoaXRlcmF0b3IpXTsKCQkJCQlpdGVtcy5lcShpdGVyYXRvcikuY3NzKGNhY2hlLmNzcyk7CgkJCQl9CgkJCX0gZWxzZSBpZiAoZ3JpZCkgewoJCQkJY2FjaGUuY3NzLndpZHRoID0gY2FjaGUuaXRlbXMud2lkdGg7CgkJCQlpdGVtcy5jc3MoY2FjaGUuY3NzKTsKCQkJfQoJCX0KCX0sIHsKCQlmaWx0ZXI6IFsgJ2l0ZW1zJyBdLAoJCXJ1bjogZnVuY3Rpb24oKSB7CgkJCXRoaXMuX2Nvb3JkaW5hdGVzLmxlbmd0aCA8IDEgJiYgdGhpcy4kc3RhZ2UucmVtb3ZlQXR0cignc3R5bGUnKTsKCQl9Cgl9LCB7CgkJZmlsdGVyOiBbICd3aWR0aCcsICdpdGVtcycsICdzZXR0aW5ncycgXSwKCQlydW46IGZ1bmN0aW9uKGNhY2hlKSB7CgkJCWNhY2hlLmN1cnJlbnQgPSBjYWNoZS5jdXJyZW50ID8gdGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS5pbmRleChjYWNoZS5jdXJyZW50KSA6IDA7CgkJCWNhY2hlLmN1cnJlbnQgPSBNYXRoLm1heCh0aGlzLm1pbmltdW0oKSwgTWF0aC5taW4odGhpcy5tYXhpbXVtKCksIGNhY2hlLmN1cnJlbnQpKTsKCQkJdGhpcy5yZXNldChjYWNoZS5jdXJyZW50KTsKCQl9Cgl9LCB7CgkJZmlsdGVyOiBbICdwb3NpdGlvbicgXSwKCQlydW46IGZ1bmN0aW9uKCkgewoJCQl0aGlzLmFuaW1hdGUodGhpcy5jb29yZGluYXRlcyh0aGlzLl9jdXJyZW50KSk7CgkJfQoJfSwgewoJCWZpbHRlcjogWyAnd2lkdGgnLCAncG9zaXRpb24nLCAnaXRlbXMnLCAnc2V0dGluZ3MnIF0sCgkJcnVuOiBmdW5jdGlvbigpIHsKCQkJdmFyIHJ0bCA9IHRoaXMuc2V0dGluZ3MucnRsID8gMSA6IC0xLAoJCQkJcGFkZGluZyA9IHRoaXMuc2V0dGluZ3Muc3RhZ2VQYWRkaW5nICogMiwKCQkJCWJlZ2luID0gdGhpcy5jb29yZGluYXRlcyh0aGlzLmN1cnJlbnQoKSkgKyBwYWRkaW5nLAoJCQkJZW5kID0gYmVnaW4gKyB0aGlzLndpZHRoKCkgKiBydGwsCgkJCQlpbm5lciwgb3V0ZXIsIG1hdGNoZXMgPSBbXSwgaSwgbjsKCgkJCWZvciAoaSA9IDAsIG4gPSB0aGlzLl9jb29yZGluYXRlcy5sZW5ndGg7IGkgPCBuOyBpKyspIHsKCQkJCWlubmVyID0gdGhpcy5fY29vcmRpbmF0ZXNbaSAtIDFdIHx8IDA7CgkJCQlvdXRlciA9IE1hdGguYWJzKHRoaXMuX2Nvb3JkaW5hdGVzW2ldKSArIHBhZGRpbmcgKiBydGw7CgoJCQkJaWYgKCh0aGlzLm9wKGlubmVyLCAnPD0nLCBiZWdpbikgJiYgKHRoaXMub3AoaW5uZXIsICc+JywgZW5kKSkpCgkJCQkJfHwgKHRoaXMub3Aob3V0ZXIsICc8JywgYmVnaW4pICYmIHRoaXMub3Aob3V0ZXIsICc+JywgZW5kKSkpIHsKCQkJCQltYXRjaGVzLnB1c2goaSk7CgkJCQl9CgkJCX0KCgkJCXRoaXMuJHN0YWdlLmNoaWxkcmVuKCcuYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpOwoJCQl0aGlzLiRzdGFnZS5jaGlsZHJlbignOmVxKCcgKyBtYXRjaGVzLmpvaW4oJyksIDplcSgnKSArICcpJykuYWRkQ2xhc3MoJ2FjdGl2ZScpOwoKCQkJaWYgKHRoaXMuc2V0dGluZ3MuY2VudGVyKSB7CgkJCQl0aGlzLiRzdGFnZS5jaGlsZHJlbignLmNlbnRlcicpLnJlbW92ZUNsYXNzKCdjZW50ZXInKTsKCQkJCXRoaXMuJHN0YWdlLmNoaWxkcmVuKCkuZXEodGhpcy5jdXJyZW50KCkpLmFkZENsYXNzKCdjZW50ZXInKTsKCQkJfQoJCX0KCX0gXTsKCgkvKioKCSAqIEluaXRpYWxpemVzIHRoZSBjYXJvdXNlbC4KCSAqIEBwcm90ZWN0ZWQKCSAqLwoJT3dsLnByb3RvdHlwZS5pbml0aWFsaXplID0gZnVuY3Rpb24oKSB7CgkJdGhpcy5lbnRlcignaW5pdGlhbGl6aW5nJyk7CgkJdGhpcy50cmlnZ2VyKCdpbml0aWFsaXplJyk7CgoJCXRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3ModGhpcy5zZXR0aW5ncy5ydGxDbGFzcywgdGhpcy5zZXR0aW5ncy5ydGwpOwoKCQlpZiAodGhpcy5zZXR0aW5ncy5hdXRvV2lkdGggJiYgIXRoaXMuaXMoJ3ByZS1sb2FkaW5nJykpIHsKCQkJdmFyIGltZ3MsIG5lc3RlZFNlbGVjdG9yLCB3aWR0aDsKCQkJaW1ncyA9IHRoaXMuJGVsZW1lbnQuZmluZCgnaW1nJyk7CgkJCW5lc3RlZFNlbGVjdG9yID0gdGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IgPyAnLicgKyB0aGlzLnNldHRpbmdzLm5lc3RlZEl0ZW1TZWxlY3RvciA6IHVuZGVmaW5lZDsKCQkJd2lkdGggPSB0aGlzLiRlbGVtZW50LmNoaWxkcmVuKG5lc3RlZFNlbGVjdG9yKS53aWR0aCgpOwoKCQkJaWYgKGltZ3MubGVuZ3RoICYmIHdpZHRoIDw9IDApIHsKCQkJCXRoaXMucHJlbG9hZEF1dG9XaWR0aEltYWdlcyhpbWdzKTsKCQkJfQoJCX0KCgkJdGhpcy4kZWxlbWVudC5hZGRDbGFzcyh0aGlzLm9wdGlvbnMubG9hZGluZ0NsYXNzKTsKCgkJLy8gY3JlYXRlIHN0YWdlCgkJdGhpcy4kc3RhZ2UgPSAkKCc8JyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VFbGVtZW50ICsgJyBjbGFzcz0iJyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VDbGFzcyArICciLz4nKQoJCQkud3JhcCgnPGRpdiBjbGFzcz0iJyArIHRoaXMuc2V0dGluZ3Muc3RhZ2VPdXRlckNsYXNzICsgJyIvPicpOwoKCQkvLyBhcHBlbmQgc3RhZ2UKCQl0aGlzLiRlbGVtZW50LmFwcGVuZCh0aGlzLiRzdGFnZS5wYXJlbnQoKSk7CgoJCS8vIGFwcGVuZCBjb250ZW50CgkJdGhpcy5yZXBsYWNlKHRoaXMuJGVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy4kc3RhZ2UucGFyZW50KCkpKTsKCgkJLy8gY2hlY2sgdmlzaWJpbGl0eQoJCWlmICh0aGlzLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpKSB7CgkJCS8vIHVwZGF0ZSB2aWV3CgkJCXRoaXMucmVmcmVzaCgpOwoJCX0gZWxzZSB7CgkJCS8vIGludmFsaWRhdGUgd2lkdGgKCQkJdGhpcy5pbnZhbGlkYXRlKCd3aWR0aCcpOwoJCX0KCgkJdGhpcy4kZWxlbWVudAoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRpbmdDbGFzcykKCQkJLmFkZENsYXNzKHRoaXMub3B0aW9ucy5sb2FkZWRDbGFzcyk7CgoJCS8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJzCgkJdGhpcy5yZWdpc3RlckV2ZW50SGFuZGxlcnMoKTsKCgkJdGhpcy5sZWF2ZSgnaW5pdGlhbGl6aW5nJyk7CgkJdGhpcy50cmlnZ2VyKCdpbml0aWFsaXplZCcpOwoJfTsKCgkvKioKCSAqIFNldHVwcyB0aGUgY3VycmVudCBzZXR0aW5ncy4KCSAqIEB0b2RvIFJlbW92ZSByZXNwb25zaXZlIGNsYXNzZXMuIFdoeSBzaG91bGQgYWRhcHRpdmUgZGVzaWducyBiZSBicm91Z2h0IGludG8gSUU4PwoJICogQHRvZG8gU3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBieSB1c2luZyBgbWF0Y2hNZWRpYWAgd291bGQgYmUgbmljZS4KCSAqIEBwdWJsaWMKCSAqLwoJT3dsLnByb3RvdHlwZS5zZXR1cCA9IGZ1bmN0aW9uKCkgewoJCXZhciB2aWV3cG9ydCA9IHRoaXMudmlld3BvcnQoKSwKCQkJb3ZlcndyaXRlcyA9IHRoaXMub3B0aW9ucy5yZXNwb25zaXZlLAoJCQltYXRjaCA9IC0xLAoJCQlzZXR0aW5ncyA9IG51bGw7CgoJCWlmICghb3ZlcndyaXRlcykgewoJCQlzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCB0aGlzLm9wdGlvbnMpOwoJCX0gZWxzZSB7CgkJCSQuZWFjaChvdmVyd3JpdGVzLCBmdW5jdGlvbihicmVha3BvaW50KSB7CgkJCQlpZiAoYnJlYWtwb2ludCA8PSB2aWV3cG9ydCAmJiBicmVha3BvaW50ID4gbWF0Y2gpIHsKCQkJCQltYXRjaCA9IE51bWJlcihicmVha3BvaW50KTsKCQkJCX0KCQkJfSk7CgoJCQlzZXR0aW5ncyA9ICQuZXh0ZW5kKHt9LCB0aGlzLm9wdGlvbnMsIG92ZXJ3cml0ZXNbbWF0Y2hdKTsKCQkJaWYgKHR5cGVvZiBzZXR0aW5ncy5zdGFnZVBhZGRpbmcgPT09ICdmdW5jdGlvbicpIHsKCQkJCXNldHRpbmdzLnN0YWdlUGFkZGluZyA9IHNldHRpbmdzLnN0YWdlUGFkZGluZygpOwoJCQl9CgkJCWRlbGV0ZSBzZXR0aW5ncy5yZXNwb25zaXZlOwoKCQkJLy8gcmVzcG9uc2l2ZSBjbGFzcwoJCQlpZiAoc2V0dGluZ3MucmVzcG9uc2l2ZUNsYXNzKSB7CgkJCQl0aGlzLiRlbGVtZW50LmF0dHIoJ2NsYXNzJywKCQkJCQl0aGlzLiRlbGVtZW50LmF0dHIoJ2NsYXNzJykucmVwbGFjZShuZXcgUmVnRXhwKCcoJyArIHRoaXMub3B0aW9ucy5yZXNwb25zaXZlQ2xhc3MgKyAnLSlcXFMrXFxzJywgJ2cnKSwgJyQxJyArIG1hdGNoKQoJCQkJKTsKCQkJfQoJCX0KCgkJdGhpcy50cmlnZ2VyKCdjaGFuZ2UnLCB7IHByb3BlcnR5OiB7IG5hbWU6ICdzZXR0aW5ncycsIHZhbHVlOiBzZXR0aW5ncyB9IH0pOwoJCXRoaXMuX2JyZWFrcG9pbnQgPSBtYXRjaDsKCQl0aGlzLnNldHRpbmdzID0gc2V0dGluZ3M7CgkJdGhpcy5pbnZhbGlkYXRlKCdzZXR0aW5ncycpOwoJCXRoaXMudHJpZ2dlcignY2hhbmdlZCcsIHsgcHJvcGVydHk6IHsgbmFtZTogJ3NldHRpbmdzJywgdmFsdWU6IHRoaXMuc2V0dGluZ3MgfSB9KTsKCX07CgoJLyoqCgkgKiBVcGRhdGVzIG9wdGlvbiBsb2dpYyBpZiBuZWNlc3NlcnkuCgkgKiBAcHJvdGVjdGVkCgkgKi8KCU93bC5wcm90b3R5cGUub3B0aW9uc0xvZ2ljID0gZnVuY3Rpb24oKSB7CgkJaWYgKHRoaXMuc2V0dGluZ3MuYXV0b1dpZHRoKSB7CgkJCXRoaXMuc2V0dGluZ3Muc3RhZ2VQYWRkaW5nID0gZmFsc2U7CgkJCXRoaXMuc2V0dGluZ3MubWVyZ2UgPSBmYWxzZTsKCQl9Cgl9OwoKCS8qKgoJICogUHJlcGFyZXMgYW4gaXRlbSBiZWZvcmUgYWRkLgoJICogQHRvZG8gUmVuYW1lIGV2ZW50IHBhcmFtZXRlciBgY29udGVudGAgdG8gYGl0ZW1gLgoJICogQHByb3RlY3RlZAoJICogQHJldHVybnMge2pRdWVyeXxIVE1MRWxlbWVudH0gLSBUaGUgaXRlbSBjb250YWluZXIuCgkgKi8KCU93bC5wcm90b3R5cGUucHJlcGFyZSA9IGZ1bmN0aW9uKGl0ZW0pIHsKCQl2YXIgZXZlbnQgPSB0aGlzLnRyaWdnZXIoJ3ByZXBhcmUnLCB7IGNvbnRlbnQ6IGl0ZW0gfSk7CgoJCWlmICghZXZlbnQuZGF0YSkgewoJCQlldmVudC5kYXRhID0gJCgnPCcgKyB0aGlzLnNldHRpbmdzLml0ZW1FbGVtZW50ICsgJy8+JykKCQkJCS5hZGRDbGFzcyh0aGlzLm9wdGlvbnMuaXRlbUNsYXNzKS5hcHBlbmQoaXRlbSkKCQl9CgoJCXRoaXMudHJpZ2dlcigncHJlcGFyZWQnLCB7IGNvbnRlbnQ6IGV2ZW50LmRhdGEgfSk7CgoJCXJldHVybiBldmVudC5kYXRhOwoJfTsKCgkvKioKCSAqIFVwZGF0ZXMgdGhlIHZpZXcuCgkgKiBAcHVibGljCgkgKi8KCU93bC5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24oKSB7CgkJdmFyIGkgPSAwLAoJCQluID0gdGhpcy5fcGlwZS5sZW5ndGgsCgkJCWZpbHRlciA9ICQucHJveHkoZnVuY3Rpb24ocCkgeyByZXR1cm4gdGhpc1twXSB9LCB0aGlzLl9pbnZhbGlkYXRlZCksCgkJCWNhY2hlID0ge307CgoJCXdoaWxlIChpIDwgbikgewoJCQlpZiAodGhpcy5faW52YWxpZGF0ZWQuYWxsIHx8ICQuZ3JlcCh0aGlzLl9waXBlW2ldLmZpbHRlciwgZmlsdGVyKS5sZW5ndGggPiAwKSB7CgkJCQl0aGlzLl9waXBlW2ldLnJ1bihjYWNoZSk7CgkJCX0KCQkJaSsrOwoJCX0KCgkJdGhpcy5faW52YWxpZGF0ZWQgPSB7fTsKCgkJIXRoaXMuaXMoJ3ZhbGlkJykgJiYgdGhpcy5lbnRlcigndmFsaWQnKTsKCX07CgoJLyoqCgkgKiBHZXRzIHRoZSB3aWR0aCBvZiB0aGUgdmlldy4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7T3dsLldpZHRofSBbZGltZW5zaW9uPU93bC5XaWR0aC5EZWZhdWx0XSAtIFRoZSBkaW1lbnNpb24gdG8gcmV0dXJuLgoJICogQHJldHVybnMge051bWJlcn0gLSBUaGUgd2lkdGggb2YgdGhlIHZpZXcgaW4gcGl4ZWwuCgkgKi8KCU93bC5wcm90b3R5cGUud2lkdGggPSBmdW5jdGlvbihkaW1lbnNpb24pIHsKCQlkaW1lbnNpb24gPSBkaW1lbnNpb24gfHwgT3dsLldpZHRoLkRlZmF1bHQ7CgkJc3dpdGNoIChkaW1lbnNpb24pIHsKCQkJY2FzZSBPd2wuV2lkdGguSW5uZXI6CgkJCWNhc2UgT3dsLldpZHRoLk91dGVyOgoJCQkJcmV0dXJuIHRoaXMuX3dpZHRoOwoJCQlkZWZhdWx0OgoJCQkJcmV0dXJuIHRoaXMuX3dpZHRoIC0gdGhpcy5zZXR0aW5ncy5zdGFnZVBhZGRpbmcgKiAyICsgdGhpcy5zZXR0aW5ncy5tYXJnaW47CgkJfQoJfTsKCgkvKioKCSAqIFJlZnJlc2hlcyB0aGUgY2Fyb3VzZWwgcHJpbWFyaWx5IGZvciBhZGFwdGl2ZSBwdXJwb3Nlcy4KCSAqIEBwdWJsaWMKCSAqLwoJT3dsLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24oKSB7CgkJdGhpcy5lbnRlcigncmVmcmVzaGluZycpOwoJCXRoaXMudHJpZ2dlcigncmVmcmVzaCcpOwoKCQl0aGlzLnNldHVwKCk7CgoJCXRoaXMub3B0aW9uc0xvZ2ljKCk7CgoJCXRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLnJlZnJlc2hDbGFzcyk7CgoJCXRoaXMudXBkYXRlKCk7CgoJCXRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLnJlZnJlc2hDbGFzcyk7CgoJCXRoaXMubGVhdmUoJ3JlZnJlc2hpbmcnKTsKCQl0aGlzLnRyaWdnZXIoJ3JlZnJlc2hlZCcpOwoJfTsKCgkvKioKCSAqIENoZWNrcyB3aW5kb3cgYHJlc2l6ZWAgZXZlbnQuCgkgKiBAcHJvdGVjdGVkCgkgKi8KCU93bC5wcm90b3R5cGUub25UaHJvdHRsZWRSZXNpemUgPSBmdW5jdGlvbigpIHsKCQl3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMucmVzaXplVGltZXIpOwoJCXRoaXMucmVzaXplVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCh0aGlzLl9oYW5kbGVycy5vblJlc2l6ZSwgdGhpcy5zZXR0aW5ncy5yZXNwb25zaXZlUmVmcmVzaFJhdGUpOwoJfTsKCgkvKioKCSAqIENoZWNrcyB3aW5kb3cgYHJlc2l6ZWAgZXZlbnQuCgkgKiBAcHJvdGVjdGVkCgkgKi8KCU93bC5wcm90b3R5cGUub25SZXNpemUgPSBmdW5jdGlvbigpIHsKCQlpZiAoIXRoaXMuX2l0ZW1zLmxlbmd0aCkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlpZiAodGhpcy5fd2lkdGggPT09IHRoaXMuJGVsZW1lbnQud2lkdGgoKSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlpZiAoIXRoaXMuJGVsZW1lbnQuaXMoJzp2aXNpYmxlJykpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJdGhpcy5lbnRlcigncmVzaXppbmcnKTsKCgkJaWYgKHRoaXMudHJpZ2dlcigncmVzaXplJykuaXNEZWZhdWx0UHJldmVudGVkKCkpIHsKCQkJdGhpcy5sZWF2ZSgncmVzaXppbmcnKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJdGhpcy5pbnZhbGlkYXRlKCd3aWR0aCcpOwoKCQl0aGlzLnJlZnJlc2goKTsKCgkJdGhpcy5sZWF2ZSgncmVzaXppbmcnKTsKCQl0aGlzLnRyaWdnZXIoJ3Jlc2l6ZWQnKTsKCX07CgoJLyoqCgkgKiBSZWdpc3RlcnMgZXZlbnQgaGFuZGxlcnMuCgkgKiBAdG9kbyBDaGVjayBgbXNQb2ludGVyRW5hYmxlZGAKCSAqIEB0b2RvICMyNjEKCSAqIEBwcm90ZWN0ZWQKCSAqLwoJT3dsLnByb3RvdHlwZS5yZWdpc3RlckV2ZW50SGFuZGxlcnMgPSBmdW5jdGlvbigpIHsKCQlpZiAoJC5zdXBwb3J0LnRyYW5zaXRpb24pIHsKCQkJdGhpcy4kc3RhZ2Uub24oJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kICsgJy5vd2wuY29yZScsICQucHJveHkodGhpcy5vblRyYW5zaXRpb25FbmQsIHRoaXMpKTsKCQl9CgoJCWlmICh0aGlzLnNldHRpbmdzLnJlc3BvbnNpdmUgIT09IGZhbHNlKSB7CgkJCXRoaXMub24od2luZG93LCAncmVzaXplJywgdGhpcy5faGFuZGxlcnMub25UaHJvdHRsZWRSZXNpemUpOwoJCX0KCgkJaWYgKHRoaXMuc2V0dGluZ3MubW91c2VEcmFnKSB7CgkJCXRoaXMuJGVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmRyYWdDbGFzcyk7CgkJCXRoaXMuJHN0YWdlLm9uKCdtb3VzZWRvd24ub3dsLmNvcmUnLCAkLnByb3h5KHRoaXMub25EcmFnU3RhcnQsIHRoaXMpKTsKCQkJdGhpcy4kc3RhZ2Uub24oJ2RyYWdzdGFydC5vd2wuY29yZSBzZWxlY3RzdGFydC5vd2wuY29yZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2UgfSk7CgkJfQoKCQlpZiAodGhpcy5zZXR0aW5ncy50b3VjaERyYWcpewoJCQl0aGlzLiRzdGFnZS5vbigndG91Y2hzdGFydC5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdTdGFydCwgdGhpcykpOwoJCQl0aGlzLiRzdGFnZS5vbigndG91Y2hjYW5jZWwub3dsLmNvcmUnLCAkLnByb3h5KHRoaXMub25EcmFnRW5kLCB0aGlzKSk7CgkJfQoJfTsKCgkvKioKCSAqIEhhbmRsZXMgYHRvdWNoc3RhcnRgIGFuZCBgbW91c2Vkb3duYCBldmVudHMuCgkgKiBAdG9kbyBIb3Jpem9udGFsIHN3aXBlIHRocmVzaG9sZCBhcyBvcHRpb24KCSAqIEB0b2RvICMyNjEKCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy4KCSAqLwoJT3dsLnByb3RvdHlwZS5vbkRyYWdTdGFydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CgkJdmFyIHN0YWdlID0gbnVsbDsKCgkJaWYgKGV2ZW50LndoaWNoID09PSAzKSB7CgkJCXJldHVybjsKCQl9CgoJCWlmICgkLnN1cHBvcnQudHJhbnNmb3JtKSB7CgkJCXN0YWdlID0gdGhpcy4kc3RhZ2UuY3NzKCd0cmFuc2Zvcm0nKS5yZXBsYWNlKC8uKlwofFwpfCAvZywgJycpLnNwbGl0KCcsJyk7CgkJCXN0YWdlID0gewoJCQkJeDogc3RhZ2Vbc3RhZ2UubGVuZ3RoID09PSAxNiA/IDEyIDogNF0sCgkJCQl5OiBzdGFnZVtzdGFnZS5sZW5ndGggPT09IDE2ID8gMTMgOiA1XQoJCQl9OwoJCX0gZWxzZSB7CgkJCXN0YWdlID0gdGhpcy4kc3RhZ2UucG9zaXRpb24oKTsKCQkJc3RhZ2UgPSB7CgkJCQl4OiB0aGlzLnNldHRpbmdzLnJ0bCA/CgkJCQkJc3RhZ2UubGVmdCArIHRoaXMuJHN0YWdlLndpZHRoKCkgLSB0aGlzLndpZHRoKCkgKyB0aGlzLnNldHRpbmdzLm1hcmdpbiA6CgkJCQkJc3RhZ2UubGVmdCwKCQkJCXk6IHN0YWdlLnRvcAoJCQl9OwoJCX0KCgkJaWYgKHRoaXMuaXMoJ2FuaW1hdGluZycpKSB7CgkJCSQuc3VwcG9ydC50cmFuc2Zvcm0gPyB0aGlzLmFuaW1hdGUoc3RhZ2UueCkgOiB0aGlzLiRzdGFnZS5zdG9wKCkKCQkJdGhpcy5pbnZhbGlkYXRlKCdwb3NpdGlvbicpOwoJCX0KCgkJdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcyh0aGlzLm9wdGlvbnMuZ3JhYkNsYXNzLCBldmVudC50eXBlID09PSAnbW91c2Vkb3duJyk7CgoJCXRoaXMuc3BlZWQoMCk7CgoJCXRoaXMuX2RyYWcudGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwoJCXRoaXMuX2RyYWcudGFyZ2V0ID0gJChldmVudC50YXJnZXQpOwoJCXRoaXMuX2RyYWcuc3RhZ2Uuc3RhcnQgPSBzdGFnZTsKCQl0aGlzLl9kcmFnLnN0YWdlLmN1cnJlbnQgPSBzdGFnZTsKCQl0aGlzLl9kcmFnLnBvaW50ZXIgPSB0aGlzLnBvaW50ZXIoZXZlbnQpOwoKCQkkKGRvY3VtZW50KS5vbignbW91c2V1cC5vd2wuY29yZSB0b3VjaGVuZC5vd2wuY29yZScsICQucHJveHkodGhpcy5vbkRyYWdFbmQsIHRoaXMpKTsKCgkJJChkb2N1bWVudCkub25lKCdtb3VzZW1vdmUub3dsLmNvcmUgdG91Y2htb3ZlLm93bC5jb3JlJywgJC5wcm94eShmdW5jdGlvbihldmVudCkgewoJCQl2YXIgZGVsdGEgPSB0aGlzLmRpZmZlcmVuY2UodGhpcy5fZHJhZy5wb2ludGVyLCB0aGlzLnBvaW50ZXIoZXZlbnQpKTsKCgkJCSQoZG9jdW1lbnQpLm9uKCdtb3VzZW1vdmUub3dsLmNvcmUgdG91Y2htb3ZlLm93bC5jb3JlJywgJC5wcm94eSh0aGlzLm9uRHJhZ01vdmUsIHRoaXMpKTsKCgkJCWlmIChNYXRoLmFicyhkZWx0YS54KSA8IE1hdGguYWJzKGRlbHRhLnkpICYmIHRoaXMuaXMoJ3ZhbGlkJykpIHsKCQkJCXJldHVybjsKCQkJfQoKCQkJZXZlbnQucHJldmVudERlZmF1bHQoKTsKCgkJCXRoaXMuZW50ZXIoJ2RyYWdnaW5nJyk7CgkJCXRoaXMudHJpZ2dlcignZHJhZycpOwoJCX0sIHRoaXMpKTsKCX07CgoJLyoqCgkgKiBIYW5kbGVzIHRoZSBgdG91Y2htb3ZlYCBhbmQgYG1vdXNlbW92ZWAgZXZlbnRzLgoJICogQHRvZG8gIzI2MQoJICogQHByb3RlY3RlZAoJICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLgoJICovCglPd2wucHJvdG90eXBlLm9uRHJhZ01vdmUgPSBmdW5jdGlvbihldmVudCkgewoJCXZhciBtaW5pbXVtID0gbnVsbCwKCQkJbWF4aW11bSA9IG51bGwsCgkJCXB1bGwgPSBudWxsLAoJCQlkZWx0YSA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnBvaW50ZXIsIHRoaXMucG9pbnRlcihldmVudCkpLAoJCQlzdGFnZSA9IHRoaXMuZGlmZmVyZW5jZSh0aGlzLl9kcmFnLnN0YWdlLnN0YXJ0LCBkZWx0YSk7CgoJCWlmICghdGhpcy5pcygnZHJhZ2dpbmcnKSkgewoJCQlyZXR1cm47CgkJfQoKCQlldmVudC5wcmV2ZW50RGVmYXVsdCgpOwoKCQlpZiAodGhpcy5zZXR0aW5ncy5sb29wKSB7CgkJCW1pbmltdW0gPSB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKTsKCQkJbWF4aW11bSA9IHRoaXMuY29vcmRpbmF0ZXModGhpcy5tYXhpbXVtKCkgKyAxKSAtIG1pbmltdW07CgkJCXN0YWdlLnggPSAoKChzdGFnZS54IC0gbWluaW11bSkgJSBtYXhpbXVtICsgbWF4aW11bSkgJSBtYXhpbXVtKSArIG1pbmltdW07CgkJfSBlbHNlIHsKCQkJbWluaW11bSA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1heGltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWluaW11bSgpKTsKCQkJbWF4aW11bSA9IHRoaXMuc2V0dGluZ3MucnRsID8gdGhpcy5jb29yZGluYXRlcyh0aGlzLm1pbmltdW0oKSkgOiB0aGlzLmNvb3JkaW5hdGVzKHRoaXMubWF4aW11bSgpKTsKCQkJcHVsbCA9IHRoaXMuc2V0dGluZ3MucHVsbERyYWcgPyAtMSAqIGRlbHRhLnggLyA1IDogMDsKCQkJc3RhZ2UueCA9IE1hdGgubWF4KE1hdGgubWluKHN0YWdlLngsIG1pbmltdW0gKyBwdWxsKSwgbWF4aW11bSArIHB1bGwpOwoJCX0KCgkJdGhpcy5fZHJhZy5zdGFnZS5jdXJyZW50ID0gc3RhZ2U7CgoJCXRoaXMuYW5pbWF0ZShzdGFnZS54KTsKCX07CgoJLyoqCgkgKiBIYW5kbGVzIHRoZSBgdG91Y2hlbmRgIGFuZCBgbW91c2V1cGAgZXZlbnRzLgoJICogQHRvZG8gIzI2MQoJICogQHRvZG8gVGhyZXNob2xkIGZvciBjbGljayBldmVudAoJICogQHByb3RlY3RlZAoJICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLgoJICovCglPd2wucHJvdG90eXBlLm9uRHJhZ0VuZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CgkJdmFyIGRlbHRhID0gdGhpcy5kaWZmZXJlbmNlKHRoaXMuX2RyYWcucG9pbnRlciwgdGhpcy5wb2ludGVyKGV2ZW50KSksCgkJCXN0YWdlID0gdGhpcy5fZHJhZy5zdGFnZS5jdXJyZW50LAoJCQlkaXJlY3Rpb24gPSBkZWx0YS54ID4gMCBeIHRoaXMuc2V0dGluZ3MucnRsID8gJ2xlZnQnIDogJ3JpZ2h0JzsKCgkJJChkb2N1bWVudCkub2ZmKCcub3dsLmNvcmUnKTsKCgkJdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZ3JhYkNsYXNzKTsKCgkJaWYgKGRlbHRhLnggIT09IDAgJiYgdGhpcy5pcygnZHJhZ2dpbmcnKSB8fCAhdGhpcy5pcygndmFsaWQnKSkgewoJCQl0aGlzLnNwZWVkKHRoaXMuc2V0dGluZ3MuZHJhZ0VuZFNwZWVkIHx8IHRoaXMuc2V0dGluZ3Muc21hcnRTcGVlZCk7CgkJCXRoaXMuY3VycmVudCh0aGlzLmNsb3Nlc3Qoc3RhZ2UueCwgZGVsdGEueCAhPT0gMCA/IGRpcmVjdGlvbiA6IHRoaXMuX2RyYWcuZGlyZWN0aW9uKSk7CgkJCXRoaXMuaW52YWxpZGF0ZSgncG9zaXRpb24nKTsKCQkJdGhpcy51cGRhdGUoKTsKCgkJCXRoaXMuX2RyYWcuZGlyZWN0aW9uID0gZGlyZWN0aW9uOwoKCQkJaWYgKE1hdGguYWJzKGRlbHRhLngpID4gMyB8fCBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuX2RyYWcudGltZSA+IDMwMCkgewoJCQkJdGhpcy5fZHJhZy50YXJnZXQub25lKCdjbGljay5vd2wuY29yZScsIGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0pOwoJCQl9CgkJfQoKCQlpZiAoIXRoaXMuaXMoJ2RyYWdnaW5nJykpIHsKCQkJcmV0dXJuOwoJCX0KCgkJdGhpcy5sZWF2ZSgnZHJhZ2dpbmcnKTsKCQl0aGlzLnRyaWdnZXIoJ2RyYWdnZWQnKTsKCX07CgoJLyoqCgkgKiBHZXRzIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjbG9zZXN0IGl0ZW0gZm9yIGEgY29vcmRpbmF0ZS4KCSAqIEB0b2RvIFNldHRpbmcgYGZyZWVEcmFnYCBtYWtlcyBgY2xvc2VzdGAgbm90IHJldXNhYmxlLiBTZWUgIzE2NS4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7TnVtYmVyfSBjb29yZGluYXRlIC0gVGhlIGNvb3JkaW5hdGUgaW4gcGl4ZWwuCgkgKiBAcGFyYW0ge1N0cmluZ30gZGlyZWN0aW9uIC0gVGhlIGRpcmVjdGlvbiB0byBjaGVjayBmb3IgdGhlIGNsb3Nlc3QgaXRlbS4gRXRoZXIgYGxlZnRgIG9yIGByaWdodGAuCgkgKiBAcmV0dXJuIHtOdW1iZXJ9IC0gVGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjbG9zZXN0IGl0ZW0uCgkgKi8KCU93bC5wcm90b3R5cGUuY2xvc2VzdCA9IGZ1bmN0aW9uKGNvb3JkaW5hdGUsIGRpcmVjdGlvbikgewoJCXZhciBwb3NpdGlvbiA9IC0xLAoJCQlwdWxsID0gMzAsCgkJCXdpZHRoID0gdGhpcy53aWR0aCgpLAoJCQljb29yZGluYXRlcyA9IHRoaXMuY29vcmRpbmF0ZXMoKTsKCgkJaWYgKCF0aGlzLnNldHRpbmdzLmZyZWVEcmFnKSB7CgkJCS8vIGNoZWNrIGNsb3Nlc3QgaXRlbQoJCQkkLmVhY2goY29vcmRpbmF0ZXMsICQucHJveHkoZnVuY3Rpb24oaW5kZXgsIHZhbHVlKSB7CgkJCQkvLyBvbiBhIGxlZnQgcHVsbCwgY2hlY2sgb24gY3VycmVudCBpbmRleAoJCQkJaWYgKGRpcmVjdGlvbiA9PT0gJ2xlZnQnICYmIGNvb3JkaW5hdGUgPiB2YWx1ZSAtIHB1bGwgJiYgY29vcmRpbmF0ZSA8IHZhbHVlICsgcHVsbCkgewoJCQkJCXBvc2l0aW9uID0gaW5kZXg7CgkJCQkvLyBvbiBhIHJpZ2h0IHB1bGwsIGNoZWNrIG9uIHByZXZpb3VzIGluZGV4CgkJCQkvLyB0byBkbyBzbywgc3VidHJhY3Qgd2lkdGggZnJvbSB2YWx1ZSBhbmQgc2V0IHBvc2l0aW9uID0gaW5kZXggKyAxCgkJCQl9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gJ3JpZ2h0JyAmJiBjb29yZGluYXRlID4gdmFsdWUgLSB3aWR0aCAtIHB1bGwgJiYgY29vcmRpbmF0ZSA8IHZhbHVlIC0gd2lkdGggKyBwdWxsKSB7CgkJCQkJcG9zaXRpb24gPSBpbmRleCArIDE7CgkJCQl9IGVsc2UgaWYgKHRoaXMub3AoY29vcmRpbmF0ZSwgJzwnLCB2YWx1ZSkKCQkJCQkmJiB0aGlzLm9wKGNvb3JkaW5hdGUsICc+JywgY29vcmRpbmF0ZXNbaW5kZXggKyAxXSB8fCB2YWx1ZSAtIHdpZHRoKSkgewoJCQkJCXBvc2l0aW9uID0gZGlyZWN0aW9uID09PSAnbGVmdCcgPyBpbmRleCArIDEgOiBpbmRleDsKCQkJCX0KCQkJCXJldHVybiBwb3NpdGlvbiA9PT0gLTE7CgkJCX0sIHRoaXMpKTsKCQl9CgoJCWlmICghdGhpcy5zZXR0aW5ncy5sb29wKSB7CgkJCS8vIG5vbiBsb29wIGJvdW5kcmllcwoJCQlpZiAodGhpcy5vcChjb29yZGluYXRlLCAnPicsIGNvb3JkaW5hdGVzW3RoaXMubWluaW11bSgpXSkpIHsKCQkJCXBvc2l0aW9uID0gY29vcmRpbmF0ZSA9IHRoaXMubWluaW11bSgpOwoJCQl9IGVsc2UgaWYgKHRoaXMub3AoY29vcmRpbmF0ZSwgJzwnLCBjb29yZGluYXRlc1t0aGlzLm1heGltdW0oKV0pKSB7CgkJCQlwb3NpdGlvbiA9IGNvb3JkaW5hdGUgPSB0aGlzLm1heGltdW0oKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHBvc2l0aW9uOwoJfTsKCgkvKioKCSAqIEFuaW1hdGVzIHRoZSBzdGFnZS4KCSAqIEB0b2RvICMyNzAKCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBjb29yZGluYXRlIC0gVGhlIGNvb3JkaW5hdGUgaW4gcGl4ZWxzLgoJICovCglPd2wucHJvdG90eXBlLmFuaW1hdGUgPSBmdW5jdGlvbihjb29yZGluYXRlKSB7CgkJdmFyIGFuaW1hdGUgPSB0aGlzLnNwZWVkKCkgPiAwOwoKCQl0aGlzLmlzKCdhbmltYXRpbmcnKSAmJiB0aGlzLm9uVHJhbnNpdGlvbkVuZCgpOwoKCQlpZiAoYW5pbWF0ZSkgewoJCQl0aGlzLmVudGVyKCdhbmltYXRpbmcnKTsKCQkJdGhpcy50cmlnZ2VyKCd0cmFuc2xhdGUnKTsKCQl9CgoJCWlmICgkLnN1cHBvcnQudHJhbnNmb3JtM2QgJiYgJC5zdXBwb3J0LnRyYW5zaXRpb24pIHsKCQkJdGhpcy4kc3RhZ2UuY3NzKHsKCQkJCXRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKCcgKyBjb29yZGluYXRlICsgJ3B4LDBweCwwcHgpJywKCQkJCXRyYW5zaXRpb246ICh0aGlzLnNwZWVkKCkgLyAxMDAwKSArICdzJwoJCQl9KTsKCQl9IGVsc2UgaWYgKGFuaW1hdGUpIHsKCQkJdGhpcy4kc3RhZ2UuYW5pbWF0ZSh7CgkJCQlsZWZ0OiBjb29yZGluYXRlICsgJ3B4JwoJCQl9LCB0aGlzLnNwZWVkKCksIHRoaXMuc2V0dGluZ3MuZmFsbGJhY2tFYXNpbmcsICQucHJveHkodGhpcy5vblRyYW5zaXRpb25FbmQsIHRoaXMpKTsKCQl9IGVsc2UgewoJCQl0aGlzLiRzdGFnZS5jc3MoewoJCQkJbGVmdDogY29vcmRpbmF0ZSArICdweCcKCQkJfSk7CgkJfQoJfTsKCgkvKioKCSAqIENoZWNrcyB3aGV0aGVyIHRoZSBjYXJvdXNlbCBpcyBpbiBhIHNwZWNpZmljIHN0YXRlIG9yIG5vdC4KCSAqIEBwYXJhbSB7U3RyaW5nfSBzdGF0ZSAtIFRoZSBzdGF0ZSB0byBjaGVjay4KCSAqIEByZXR1cm5zIHtCb29sZWFufSAtIFRoZSBmbGFnIHdoaWNoIGluZGljYXRlcyBpZiB0aGUgY2Fyb3VzZWwgaXMgYnVzeS4KCSAqLwoJT3dsLnByb3RvdHlwZS5pcyA9IGZ1bmN0aW9uKHN0YXRlKSB7CgkJcmV0dXJuIHRoaXMuX3N0YXRlcy5jdXJyZW50W3N0YXRlXSAmJiB0aGlzLl9zdGF0ZXMuY3VycmVudFtzdGF0ZV0gPiAwOwoJfTsKCgkvKioKCSAqIFNldHMgdGhlIGFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGl0ZW0uCgkgKiBAcHVibGljCgkgKiBAcGFyYW0ge051bWJlcn0gW3Bvc2l0aW9uXSAtIFRoZSBuZXcgYWJzb2x1dGUgcG9zaXRpb24gb3Igbm90aGluZyB0byBsZWF2ZSBpdCB1bmNoYW5nZWQuCgkgKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBpdGVtLgoJICovCglPd2wucHJvdG90eXBlLmN1cnJlbnQgPSBmdW5jdGlvbihwb3NpdGlvbikgewoJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiB0aGlzLl9jdXJyZW50OwoJCX0KCgkJaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCkgewoJCQlyZXR1cm4gdW5kZWZpbmVkOwoJCX0KCgkJcG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbik7CgoJCWlmICh0aGlzLl9jdXJyZW50ICE9PSBwb3NpdGlvbikgewoJCQl2YXIgZXZlbnQgPSB0aGlzLnRyaWdnZXIoJ2NoYW5nZScsIHsgcHJvcGVydHk6IHsgbmFtZTogJ3Bvc2l0aW9uJywgdmFsdWU6IHBvc2l0aW9uIH0gfSk7CgoJCQlpZiAoZXZlbnQuZGF0YSAhPT0gdW5kZWZpbmVkKSB7CgkJCQlwb3NpdGlvbiA9IHRoaXMubm9ybWFsaXplKGV2ZW50LmRhdGEpOwoJCQl9CgoJCQl0aGlzLl9jdXJyZW50ID0gcG9zaXRpb247CgoJCQl0aGlzLmludmFsaWRhdGUoJ3Bvc2l0aW9uJyk7CgoJCQl0aGlzLnRyaWdnZXIoJ2NoYW5nZWQnLCB7IHByb3BlcnR5OiB7IG5hbWU6ICdwb3NpdGlvbicsIHZhbHVlOiB0aGlzLl9jdXJyZW50IH0gfSk7CgkJfQoKCQlyZXR1cm4gdGhpcy5fY3VycmVudDsKCX07CgoJLyoqCgkgKiBJbnZhbGlkYXRlcyB0aGUgZ2l2ZW4gcGFydCBvZiB0aGUgdXBkYXRlIHJvdXRpbmUuCgkgKiBAcGFyYW0ge1N0cmluZ30gW3BhcnRdIC0gVGhlIHBhcnQgdG8gaW52YWxpZGF0ZS4KCSAqIEByZXR1cm5zIHtBcnJheS48U3RyaW5nPn0gLSBUaGUgaW52YWxpZGF0ZWQgcGFydHMuCgkgKi8KCU93bC5wcm90b3R5cGUuaW52YWxpZGF0ZSA9IGZ1bmN0aW9uKHBhcnQpIHsKCQlpZiAoJC50eXBlKHBhcnQpID09PSAnc3RyaW5nJykgewoJCQl0aGlzLl9pbnZhbGlkYXRlZFtwYXJ0XSA9IHRydWU7CgkJCXRoaXMuaXMoJ3ZhbGlkJykgJiYgdGhpcy5sZWF2ZSgndmFsaWQnKTsKCQl9CgkJcmV0dXJuICQubWFwKHRoaXMuX2ludmFsaWRhdGVkLCBmdW5jdGlvbih2LCBpKSB7IHJldHVybiBpIH0pOwoJfTsKCgkvKioKCSAqIFJlc2V0cyB0aGUgYWJzb2x1dGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgaXRlbS4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgbmV3IGl0ZW0uCgkgKi8KCU93bC5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbihwb3NpdGlvbikgewoJCXBvc2l0aW9uID0gdGhpcy5ub3JtYWxpemUocG9zaXRpb24pOwoKCQlpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm47CgkJfQoKCQl0aGlzLl9zcGVlZCA9IDA7CgkJdGhpcy5fY3VycmVudCA9IHBvc2l0aW9uOwoKCQl0aGlzLnN1cHByZXNzKFsgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGVkJyBdKTsKCgkJdGhpcy5hbmltYXRlKHRoaXMuY29vcmRpbmF0ZXMocG9zaXRpb24pKTsKCgkJdGhpcy5yZWxlYXNlKFsgJ3RyYW5zbGF0ZScsICd0cmFuc2xhdGVkJyBdKTsKCX07CgoJLyoqCgkgKiBOb3JtYWxpemVzIGFuIGFic29sdXRlIG9yIGEgcmVsYXRpdmUgcG9zaXRpb24gb2YgYW4gaXRlbS4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwb3NpdGlvbiB0byBub3JtYWxpemUuCgkgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWxhdGl2ZT1mYWxzZV0gLSBXaGV0aGVyIHRoZSBnaXZlbiBwb3NpdGlvbiBpcyByZWxhdGl2ZSBvciBub3QuCgkgKiBAcmV0dXJucyB7TnVtYmVyfSAtIFRoZSBub3JtYWxpemVkIHBvc2l0aW9uLgoJICovCglPd2wucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uKHBvc2l0aW9uLCByZWxhdGl2ZSkgewoJCXZhciBuID0gdGhpcy5faXRlbXMubGVuZ3RoLAoJCQltID0gcmVsYXRpdmUgPyAwIDogdGhpcy5fY2xvbmVzLmxlbmd0aDsKCgkJaWYgKCF0aGlzLmlzTnVtZXJpYyhwb3NpdGlvbikgfHwgbiA8IDEpIHsKCQkJcG9zaXRpb24gPSB1bmRlZmluZWQ7CgkJfSBlbHNlIGlmIChwb3NpdGlvbiA8IDAgfHwgcG9zaXRpb24gPj0gbiArIG0pIHsKCQkJcG9zaXRpb24gPSAoKHBvc2l0aW9uIC0gbSAvIDIpICUgbiArIG4pICUgbiArIG0gLyAyOwoJCX0KCgkJcmV0dXJuIHBvc2l0aW9uOwoJfTsKCgkvKioKCSAqIENvbnZlcnRzIGFuIGFic29sdXRlIHBvc2l0aW9uIG9mIGFuIGl0ZW0gaW50byBhIHJlbGF0aXZlIG9uZS4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiB0byBjb252ZXJ0LgoJICogQHJldHVybnMge051bWJlcn0gLSBUaGUgY29udmVydGVkIHBvc2l0aW9uLgoJICovCglPd2wucHJvdG90eXBlLnJlbGF0aXZlID0gZnVuY3Rpb24ocG9zaXRpb24pIHsKCQlwb3NpdGlvbiAtPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMjsKCQlyZXR1cm4gdGhpcy5ub3JtYWxpemUocG9zaXRpb24sIHRydWUpOwoJfTsKCgkvKioKCSAqIEdldHMgdGhlIG1heGltdW0gcG9zaXRpb24gZm9yIHRoZSBjdXJyZW50IGl0ZW0uCgkgKiBAcHVibGljCgkgKiBAcGFyYW0ge0Jvb2xlYW59IFtyZWxhdGl2ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHJldHVybiBhbiBhYnNvbHV0ZSBwb3NpdGlvbiBvciBhIHJlbGF0aXZlIHBvc2l0aW9uLgoJICogQHJldHVybnMge051bWJlcn0KCSAqLwoJT3dsLnByb3RvdHlwZS5tYXhpbXVtID0gZnVuY3Rpb24ocmVsYXRpdmUpIHsKCQl2YXIgc2V0dGluZ3MgPSB0aGlzLnNldHRpbmdzLAoJCQltYXhpbXVtID0gdGhpcy5fY29vcmRpbmF0ZXMubGVuZ3RoLAoJCQlpdGVyYXRvciwKCQkJcmVjaXByb2NhbEl0ZW1zV2lkdGgsCgkJCWVsZW1lbnRXaWR0aDsKCgkJaWYgKHNldHRpbmdzLmxvb3ApIHsKCQkJbWF4aW11bSA9IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyICsgdGhpcy5faXRlbXMubGVuZ3RoIC0gMTsKCQl9IGVsc2UgaWYgKHNldHRpbmdzLmF1dG9XaWR0aCB8fCBzZXR0aW5ncy5tZXJnZSkgewoJCQlpdGVyYXRvciA9IHRoaXMuX2l0ZW1zLmxlbmd0aDsKCQkJcmVjaXByb2NhbEl0ZW1zV2lkdGggPSB0aGlzLl9pdGVtc1stLWl0ZXJhdG9yXS53aWR0aCgpOwoJCQllbGVtZW50V2lkdGggPSB0aGlzLiRlbGVtZW50LndpZHRoKCk7CgkJCXdoaWxlIChpdGVyYXRvci0tKSB7CgkJCQlyZWNpcHJvY2FsSXRlbXNXaWR0aCArPSB0aGlzLl9pdGVtc1tpdGVyYXRvcl0ud2lkdGgoKSArIHRoaXMuc2V0dGluZ3MubWFyZ2luOwoJCQkJaWYgKHJlY2lwcm9jYWxJdGVtc1dpZHRoID4gZWxlbWVudFdpZHRoKSB7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCX0KCQkJbWF4aW11bSA9IGl0ZXJhdG9yICsgMTsKCQl9IGVsc2UgaWYgKHNldHRpbmdzLmNlbnRlcikgewoJCQltYXhpbXVtID0gdGhpcy5faXRlbXMubGVuZ3RoIC0gMTsKCQl9IGVsc2UgewoJCQltYXhpbXVtID0gdGhpcy5faXRlbXMubGVuZ3RoIC0gc2V0dGluZ3MuaXRlbXM7CgkJfQoKCQlpZiAocmVsYXRpdmUpIHsKCQkJbWF4aW11bSAtPSB0aGlzLl9jbG9uZXMubGVuZ3RoIC8gMjsKCQl9CgoJCXJldHVybiBNYXRoLm1heChtYXhpbXVtLCAwKTsKCX07CgoJLyoqCgkgKiBHZXRzIHRoZSBtaW5pbXVtIHBvc2l0aW9uIGZvciB0aGUgY3VycmVudCBpdGVtLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtCb29sZWFufSBbcmVsYXRpdmU9ZmFsc2VdIC0gV2hldGhlciB0byByZXR1cm4gYW4gYWJzb2x1dGUgcG9zaXRpb24gb3IgYSByZWxhdGl2ZSBwb3NpdGlvbi4KCSAqIEByZXR1cm5zIHtOdW1iZXJ9CgkgKi8KCU93bC5wcm90b3R5cGUubWluaW11bSA9IGZ1bmN0aW9uKHJlbGF0aXZlKSB7CgkJcmV0dXJuIHJlbGF0aXZlID8gMCA6IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyOwoJfTsKCgkvKioKCSAqIEdldHMgYW4gaXRlbSBhdCB0aGUgc3BlY2lmaWVkIHJlbGF0aXZlIHBvc2l0aW9uLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtOdW1iZXJ9IFtwb3NpdGlvbl0gLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgdGhlIGl0ZW0uCgkgKiBAcmV0dXJuIHtqUXVlcnl8QXJyYXkuPGpRdWVyeT59IC0gVGhlIGl0ZW0gYXQgdGhlIGdpdmVuIHBvc2l0aW9uIG9yIGFsbCBpdGVtcyBpZiBubyBwb3NpdGlvbiB3YXMgZ2l2ZW4uCgkgKi8KCU93bC5wcm90b3R5cGUuaXRlbXMgPSBmdW5jdGlvbihwb3NpdGlvbikgewoJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiB0aGlzLl9pdGVtcy5zbGljZSgpOwoJCX0KCgkJcG9zaXRpb24gPSB0aGlzLm5vcm1hbGl6ZShwb3NpdGlvbiwgdHJ1ZSk7CgkJcmV0dXJuIHRoaXMuX2l0ZW1zW3Bvc2l0aW9uXTsKCX07CgoJLyoqCgkgKiBHZXRzIGFuIGl0ZW0gYXQgdGhlIHNwZWNpZmllZCByZWxhdGl2ZSBwb3NpdGlvbi4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb25dIC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBpdGVtLgoJICogQHJldHVybiB7alF1ZXJ5fEFycmF5LjxqUXVlcnk+fSAtIFRoZSBpdGVtIGF0IHRoZSBnaXZlbiBwb3NpdGlvbiBvciBhbGwgaXRlbXMgaWYgbm8gcG9zaXRpb24gd2FzIGdpdmVuLgoJICovCglPd2wucHJvdG90eXBlLm1lcmdlcnMgPSBmdW5jdGlvbihwb3NpdGlvbikgewoJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiB0aGlzLl9tZXJnZXJzLnNsaWNlKCk7CgkJfQoKCQlwb3NpdGlvbiA9IHRoaXMubm9ybWFsaXplKHBvc2l0aW9uLCB0cnVlKTsKCQlyZXR1cm4gdGhpcy5fbWVyZ2Vyc1twb3NpdGlvbl07Cgl9OwoKCS8qKgoJICogR2V0cyB0aGUgYWJzb2x1dGUgcG9zaXRpb25zIG9mIGNsb25lcyBmb3IgYW4gaXRlbS4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBbcG9zaXRpb25dIC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBpdGVtLgoJICogQHJldHVybnMge0FycmF5LjxOdW1iZXI+fSAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbnMgb2YgY2xvbmVzIGZvciB0aGUgaXRlbSBvciBhbGwgaWYgbm8gcG9zaXRpb24gd2FzIGdpdmVuLgoJICovCglPd2wucHJvdG90eXBlLmNsb25lcyA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CgkJdmFyIG9kZCA9IHRoaXMuX2Nsb25lcy5sZW5ndGggLyAyLAoJCQlldmVuID0gb2RkICsgdGhpcy5faXRlbXMubGVuZ3RoLAoJCQltYXAgPSBmdW5jdGlvbihpbmRleCkgeyByZXR1cm4gaW5kZXggJSAyID09PSAwID8gZXZlbiArIGluZGV4IC8gMiA6IG9kZCAtIChpbmRleCArIDEpIC8gMiB9OwoKCQlpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm4gJC5tYXAodGhpcy5fY2xvbmVzLCBmdW5jdGlvbih2LCBpKSB7IHJldHVybiBtYXAoaSkgfSk7CgkJfQoKCQlyZXR1cm4gJC5tYXAodGhpcy5fY2xvbmVzLCBmdW5jdGlvbih2LCBpKSB7IHJldHVybiB2ID09PSBwb3NpdGlvbiA/IG1hcChpKSA6IG51bGwgfSk7Cgl9OwoKCS8qKgoJICogU2V0cyB0aGUgY3VycmVudCBhbmltYXRpb24gc3BlZWQuCgkgKiBAcHVibGljCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgaW4gbWlsbGlzZWNvbmRzIG9yIG5vdGhpbmcgdG8gbGVhdmUgaXQgdW5jaGFuZ2VkLgoJICogQHJldHVybnMge051bWJlcn0gLSBUaGUgY3VycmVudCBhbmltYXRpb24gc3BlZWQgaW4gbWlsbGlzZWNvbmRzLgoJICovCglPd2wucHJvdG90eXBlLnNwZWVkID0gZnVuY3Rpb24oc3BlZWQpIHsKCQlpZiAoc3BlZWQgIT09IHVuZGVmaW5lZCkgewoJCQl0aGlzLl9zcGVlZCA9IHNwZWVkOwoJCX0KCgkJcmV0dXJuIHRoaXMuX3NwZWVkOwoJfTsKCgkvKioKCSAqIEdldHMgdGhlIGNvb3JkaW5hdGUgb2YgYW4gaXRlbS4KCSAqIEB0b2RvIFRoZSBuYW1lIG9mIHRoaXMgbWV0aG9kIGlzIG1pc3NsZWFuZGluZy4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgaXRlbSB3aXRoaW4gYG1pbmltdW0oKWAgYW5kIGBtYXhpbXVtKClgLgoJICogQHJldHVybnMge051bWJlcnxBcnJheS48TnVtYmVyPn0gLSBUaGUgY29vcmRpbmF0ZSBvZiB0aGUgaXRlbSBpbiBwaXhlbCBvciBhbGwgY29vcmRpbmF0ZXMuCgkgKi8KCU93bC5wcm90b3R5cGUuY29vcmRpbmF0ZXMgPSBmdW5jdGlvbihwb3NpdGlvbikgewoJCXZhciBtdWx0aXBsaWVyID0gMSwKCQkJbmV3UG9zaXRpb24gPSBwb3NpdGlvbiAtIDEsCgkJCWNvb3JkaW5hdGU7CgoJCWlmIChwb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7CgkJCXJldHVybiAkLm1hcCh0aGlzLl9jb29yZGluYXRlcywgJC5wcm94eShmdW5jdGlvbihjb29yZGluYXRlLCBpbmRleCkgewoJCQkJcmV0dXJuIHRoaXMuY29vcmRpbmF0ZXMoaW5kZXgpOwoJCQl9LCB0aGlzKSk7CgkJfQoKCQlpZiAodGhpcy5zZXR0aW5ncy5jZW50ZXIpIHsKCQkJaWYgKHRoaXMuc2V0dGluZ3MucnRsKSB7CgkJCQltdWx0aXBsaWVyID0gLTE7CgkJCQluZXdQb3NpdGlvbiA9IHBvc2l0aW9uICsgMTsKCQkJfQoKCQkJY29vcmRpbmF0ZSA9IHRoaXMuX2Nvb3JkaW5hdGVzW3Bvc2l0aW9uXTsKCQkJY29vcmRpbmF0ZSArPSAodGhpcy53aWR0aCgpIC0gY29vcmRpbmF0ZSArICh0aGlzLl9jb29yZGluYXRlc1tuZXdQb3NpdGlvbl0gfHwgMCkpIC8gMiAqIG11bHRpcGxpZXI7CgkJfSBlbHNlIHsKCQkJY29vcmRpbmF0ZSA9IHRoaXMuX2Nvb3JkaW5hdGVzW25ld1Bvc2l0aW9uXSB8fCAwOwoJCX0KCgkJY29vcmRpbmF0ZSA9IE1hdGguY2VpbChjb29yZGluYXRlKTsKCgkJcmV0dXJuIGNvb3JkaW5hdGU7Cgl9OwoKCS8qKgoJICogQ2FsY3VsYXRlcyB0aGUgc3BlZWQgZm9yIGEgdHJhbnNsYXRpb24uCgkgKiBAcHJvdGVjdGVkCgkgKiBAcGFyYW0ge051bWJlcn0gZnJvbSAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgc3RhcnQgaXRlbS4KCSAqIEBwYXJhbSB7TnVtYmVyfSB0byAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0uCgkgKiBAcGFyYW0ge051bWJlcn0gW2ZhY3Rvcj11bmRlZmluZWRdIC0gVGhlIHRpbWUgZmFjdG9yIGluIG1pbGxpc2Vjb25kcy4KCSAqIEByZXR1cm5zIHtOdW1iZXJ9IC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNsYXRpb24uCgkgKi8KCU93bC5wcm90b3R5cGUuZHVyYXRpb24gPSBmdW5jdGlvbihmcm9tLCB0bywgZmFjdG9yKSB7CgkJaWYgKGZhY3RvciA9PT0gMCkgewoJCQlyZXR1cm4gMDsKCQl9CgoJCXJldHVybiBNYXRoLm1pbihNYXRoLm1heChNYXRoLmFicyh0byAtIGZyb20pLCAxKSwgNikgKiBNYXRoLmFicygoZmFjdG9yIHx8IHRoaXMuc2V0dGluZ3Muc21hcnRTcGVlZCkpOwoJfTsKCgkvKioKCSAqIFNsaWRlcyB0byB0aGUgc3BlY2lmaWVkIGl0ZW0uCgkgKiBAcHVibGljCgkgKiBAcGFyYW0ge051bWJlcn0gcG9zaXRpb24gLSBUaGUgcG9zaXRpb24gb2YgdGhlIGl0ZW0uCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zaXRpb24uCgkgKi8KCU93bC5wcm90b3R5cGUudG8gPSBmdW5jdGlvbihwb3NpdGlvbiwgc3BlZWQpIHsKCQl2YXIgY3VycmVudCA9IHRoaXMuY3VycmVudCgpLAoJCQlyZXZlcnQgPSBudWxsLAoJCQlkaXN0YW5jZSA9IHBvc2l0aW9uIC0gdGhpcy5yZWxhdGl2ZShjdXJyZW50KSwKCQkJZGlyZWN0aW9uID0gKGRpc3RhbmNlID4gMCkgLSAoZGlzdGFuY2UgPCAwKSwKCQkJaXRlbXMgPSB0aGlzLl9pdGVtcy5sZW5ndGgsCgkJCW1pbmltdW0gPSB0aGlzLm1pbmltdW0oKSwKCQkJbWF4aW11bSA9IHRoaXMubWF4aW11bSgpOwoKCQlpZiAodGhpcy5zZXR0aW5ncy5sb29wKSB7CgkJCWlmICghdGhpcy5zZXR0aW5ncy5yZXdpbmQgJiYgTWF0aC5hYnMoZGlzdGFuY2UpID4gaXRlbXMgLyAyKSB7CgkJCQlkaXN0YW5jZSArPSBkaXJlY3Rpb24gKiAtMSAqIGl0ZW1zOwoJCQl9CgoJCQlwb3NpdGlvbiA9IGN1cnJlbnQgKyBkaXN0YW5jZTsKCQkJcmV2ZXJ0ID0gKChwb3NpdGlvbiAtIG1pbmltdW0pICUgaXRlbXMgKyBpdGVtcykgJSBpdGVtcyArIG1pbmltdW07CgoJCQlpZiAocmV2ZXJ0ICE9PSBwb3NpdGlvbiAmJiByZXZlcnQgLSBkaXN0YW5jZSA8PSBtYXhpbXVtICYmIHJldmVydCAtIGRpc3RhbmNlID4gMCkgewoJCQkJY3VycmVudCA9IHJldmVydCAtIGRpc3RhbmNlOwoJCQkJcG9zaXRpb24gPSByZXZlcnQ7CgkJCQl0aGlzLnJlc2V0KGN1cnJlbnQpOwoJCQl9CgkJfSBlbHNlIGlmICh0aGlzLnNldHRpbmdzLnJld2luZCkgewoJCQltYXhpbXVtICs9IDE7CgkJCXBvc2l0aW9uID0gKHBvc2l0aW9uICUgbWF4aW11bSArIG1heGltdW0pICUgbWF4aW11bTsKCQl9IGVsc2UgewoJCQlwb3NpdGlvbiA9IE1hdGgubWF4KG1pbmltdW0sIE1hdGgubWluKG1heGltdW0sIHBvc2l0aW9uKSk7CgkJfQoKCQl0aGlzLnNwZWVkKHRoaXMuZHVyYXRpb24oY3VycmVudCwgcG9zaXRpb24sIHNwZWVkKSk7CgkJdGhpcy5jdXJyZW50KHBvc2l0aW9uKTsKCgkJaWYgKHRoaXMuJGVsZW1lbnQuaXMoJzp2aXNpYmxlJykpIHsKCQkJdGhpcy51cGRhdGUoKTsKCQl9Cgl9OwoKCS8qKgoJICogU2xpZGVzIHRvIHRoZSBuZXh0IGl0ZW0uCgkgKiBAcHVibGljCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHRyYW5zaXRpb24uCgkgKi8KCU93bC5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHNwZWVkKSB7CgkJc3BlZWQgPSBzcGVlZCB8fCBmYWxzZTsKCQl0aGlzLnRvKHRoaXMucmVsYXRpdmUodGhpcy5jdXJyZW50KCkpICsgMSwgc3BlZWQpOwoJfTsKCgkvKioKCSAqIFNsaWRlcyB0byB0aGUgcHJldmlvdXMgaXRlbS4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWRdIC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNpdGlvbi4KCSAqLwoJT3dsLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24oc3BlZWQpIHsKCQlzcGVlZCA9IHNwZWVkIHx8IGZhbHNlOwoJCXRoaXMudG8odGhpcy5yZWxhdGl2ZSh0aGlzLmN1cnJlbnQoKSkgLSAxLCBzcGVlZCk7Cgl9OwoKCS8qKgoJICogSGFuZGxlcyB0aGUgZW5kIG9mIGFuIGFuaW1hdGlvbi4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy4KCSAqLwoJT3dsLnByb3RvdHlwZS5vblRyYW5zaXRpb25FbmQgPSBmdW5jdGlvbihldmVudCkgewoKCQkvLyBpZiBjc3MyIGFuaW1hdGlvbiB0aGVuIGV2ZW50IG9iamVjdCBpcyB1bmRlZmluZWQKCQlpZiAoZXZlbnQgIT09IHVuZGVmaW5lZCkgewoJCQlldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCS8vIENhdGNoIG9ubHkgb3dsLXN0YWdlIHRyYW5zaXRpb25FbmQgZXZlbnQKCQkJaWYgKChldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudCB8fCBldmVudC5vcmlnaW5hbFRhcmdldCkgIT09IHRoaXMuJHN0YWdlLmdldCgwKSkgewoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfQoKCQl0aGlzLmxlYXZlKCdhbmltYXRpbmcnKTsKCQl0aGlzLnRyaWdnZXIoJ3RyYW5zbGF0ZWQnKTsKCX07CgoJLyoqCgkgKiBHZXRzIHZpZXdwb3J0IHdpZHRoLgoJICogQHByb3RlY3RlZAoJICogQHJldHVybiB7TnVtYmVyfSAtIFRoZSB3aWR0aCBpbiBwaXhlbC4KCSAqLwoJT3dsLnByb3RvdHlwZS52aWV3cG9ydCA9IGZ1bmN0aW9uKCkgewoJCXZhciB3aWR0aDsKCQlpZiAodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVCYXNlRWxlbWVudCAhPT0gd2luZG93KSB7CgkJCXdpZHRoID0gJCh0aGlzLm9wdGlvbnMucmVzcG9uc2l2ZUJhc2VFbGVtZW50KS53aWR0aCgpOwoJCX0gZWxzZSBpZiAod2luZG93LmlubmVyV2lkdGgpIHsKCQkJd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKCQl9IGVsc2UgaWYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpIHsKCQkJd2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7CgkJfSBlbHNlIHsKCQkJdGhyb3cgJ0NhbiBub3QgZGV0ZWN0IHZpZXdwb3J0IHdpZHRoLic7CgkJfQoJCXJldHVybiB3aWR0aDsKCX07CgoJLyoqCgkgKiBSZXBsYWNlcyB0aGUgY3VycmVudCBjb250ZW50LgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtIVE1MRWxlbWVudHxqUXVlcnl8U3RyaW5nfSBjb250ZW50IC0gVGhlIG5ldyBjb250ZW50LgoJICovCglPd2wucHJvdG90eXBlLnJlcGxhY2UgPSBmdW5jdGlvbihjb250ZW50KSB7CgkJdGhpcy4kc3RhZ2UuZW1wdHkoKTsKCQl0aGlzLl9pdGVtcyA9IFtdOwoKCQlpZiAoY29udGVudCkgewoJCQljb250ZW50ID0gKGNvbnRlbnQgaW5zdGFuY2VvZiBqUXVlcnkpID8gY29udGVudCA6ICQoY29udGVudCk7CgkJfQoKCQlpZiAodGhpcy5zZXR0aW5ncy5uZXN0ZWRJdGVtU2VsZWN0b3IpIHsKCQkJY29udGVudCA9IGNvbnRlbnQuZmluZCgnLicgKyB0aGlzLnNldHRpbmdzLm5lc3RlZEl0ZW1TZWxlY3Rvcik7CgkJfQoKCQljb250ZW50LmZpbHRlcihmdW5jdGlvbigpIHsKCQkJcmV0dXJuIHRoaXMubm9kZVR5cGUgPT09IDE7CgkJfSkuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGluZGV4LCBpdGVtKSB7CgkJCWl0ZW0gPSB0aGlzLnByZXBhcmUoaXRlbSk7CgkJCXRoaXMuJHN0YWdlLmFwcGVuZChpdGVtKTsKCQkJdGhpcy5faXRlbXMucHVzaChpdGVtKTsKCQkJdGhpcy5fbWVyZ2Vycy5wdXNoKGl0ZW0uZmluZCgnW2RhdGEtbWVyZ2VdJykuYWRkQmFjaygnW2RhdGEtbWVyZ2VdJykuYXR0cignZGF0YS1tZXJnZScpICogMSB8fCAxKTsKCQl9LCB0aGlzKSk7CgoJCXRoaXMucmVzZXQodGhpcy5pc051bWVyaWModGhpcy5zZXR0aW5ncy5zdGFydFBvc2l0aW9uKSA/IHRoaXMuc2V0dGluZ3Muc3RhcnRQb3NpdGlvbiA6IDApOwoKCQl0aGlzLmludmFsaWRhdGUoJ2l0ZW1zJyk7Cgl9OwoKCS8qKgoJICogQWRkcyBhbiBpdGVtLgoJICogQHRvZG8gVXNlIGBpdGVtYCBpbnN0ZWFkIG9mIGBjb250ZW50YCBmb3IgdGhlIGV2ZW50IGFyZ3VtZW50cy4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8alF1ZXJ5fFN0cmluZ30gY29udGVudCAtIFRoZSBpdGVtIGNvbnRlbnQgdG8gYWRkLgoJICogQHBhcmFtIHtOdW1iZXJ9IFtwb3NpdGlvbl0gLSBUaGUgcmVsYXRpdmUgcG9zaXRpb24gYXQgd2hpY2ggdG8gaW5zZXJ0IHRoZSBpdGVtIG90aGVyd2lzZSB0aGUgaXRlbSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBlbmQuCgkgKi8KCU93bC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24oY29udGVudCwgcG9zaXRpb24pIHsKCQl2YXIgY3VycmVudCA9IHRoaXMucmVsYXRpdmUodGhpcy5fY3VycmVudCk7CgoJCXBvc2l0aW9uID0gcG9zaXRpb24gPT09IHVuZGVmaW5lZCA/IHRoaXMuX2l0ZW1zLmxlbmd0aCA6IHRoaXMubm9ybWFsaXplKHBvc2l0aW9uLCB0cnVlKTsKCQljb250ZW50ID0gY29udGVudCBpbnN0YW5jZW9mIGpRdWVyeSA/IGNvbnRlbnQgOiAkKGNvbnRlbnQpOwoKCQl0aGlzLnRyaWdnZXIoJ2FkZCcsIHsgY29udGVudDogY29udGVudCwgcG9zaXRpb246IHBvc2l0aW9uIH0pOwoKCQljb250ZW50ID0gdGhpcy5wcmVwYXJlKGNvbnRlbnQpOwoKCQlpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwIHx8IHBvc2l0aW9uID09PSB0aGlzLl9pdGVtcy5sZW5ndGgpIHsKCQkJdGhpcy5faXRlbXMubGVuZ3RoID09PSAwICYmIHRoaXMuJHN0YWdlLmFwcGVuZChjb250ZW50KTsKCQkJdGhpcy5faXRlbXMubGVuZ3RoICE9PSAwICYmIHRoaXMuX2l0ZW1zW3Bvc2l0aW9uIC0gMV0uYWZ0ZXIoY29udGVudCk7CgkJCXRoaXMuX2l0ZW1zLnB1c2goY29udGVudCk7CgkJCXRoaXMuX21lcmdlcnMucHVzaChjb250ZW50LmZpbmQoJ1tkYXRhLW1lcmdlXScpLmFkZEJhY2soJ1tkYXRhLW1lcmdlXScpLmF0dHIoJ2RhdGEtbWVyZ2UnKSAqIDEgfHwgMSk7CgkJfSBlbHNlIHsKCQkJdGhpcy5faXRlbXNbcG9zaXRpb25dLmJlZm9yZShjb250ZW50KTsKCQkJdGhpcy5faXRlbXMuc3BsaWNlKHBvc2l0aW9uLCAwLCBjb250ZW50KTsKCQkJdGhpcy5fbWVyZ2Vycy5zcGxpY2UocG9zaXRpb24sIDAsIGNvbnRlbnQuZmluZCgnW2RhdGEtbWVyZ2VdJykuYWRkQmFjaygnW2RhdGEtbWVyZ2VdJykuYXR0cignZGF0YS1tZXJnZScpICogMSB8fCAxKTsKCQl9CgoJCXRoaXMuX2l0ZW1zW2N1cnJlbnRdICYmIHRoaXMucmVzZXQodGhpcy5faXRlbXNbY3VycmVudF0uaW5kZXgoKSk7CgoJCXRoaXMuaW52YWxpZGF0ZSgnaXRlbXMnKTsKCgkJdGhpcy50cmlnZ2VyKCdhZGRlZCcsIHsgY29udGVudDogY29udGVudCwgcG9zaXRpb246IHBvc2l0aW9uIH0pOwoJfTsKCgkvKioKCSAqIFJlbW92ZXMgYW4gaXRlbSBieSBpdHMgcG9zaXRpb24uCgkgKiBAdG9kbyBVc2UgYGl0ZW1gIGluc3RlYWQgb2YgYGNvbnRlbnRgIGZvciB0aGUgZXZlbnQgYXJndW1lbnRzLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtOdW1iZXJ9IHBvc2l0aW9uIC0gVGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBpdGVtIHRvIHJlbW92ZS4KCSAqLwoJT3dsLnByb3RvdHlwZS5yZW1vdmUgPSBmdW5jdGlvbihwb3NpdGlvbikgewoJCXBvc2l0aW9uID0gdGhpcy5ub3JtYWxpemUocG9zaXRpb24sIHRydWUpOwoKCQlpZiAocG9zaXRpb24gPT09IHVuZGVmaW5lZCkgewoJCQlyZXR1cm47CgkJfQoKCQl0aGlzLnRyaWdnZXIoJ3JlbW92ZScsIHsgY29udGVudDogdGhpcy5faXRlbXNbcG9zaXRpb25dLCBwb3NpdGlvbjogcG9zaXRpb24gfSk7CgoJCXRoaXMuX2l0ZW1zW3Bvc2l0aW9uXS5yZW1vdmUoKTsKCQl0aGlzLl9pdGVtcy5zcGxpY2UocG9zaXRpb24sIDEpOwoJCXRoaXMuX21lcmdlcnMuc3BsaWNlKHBvc2l0aW9uLCAxKTsKCgkJdGhpcy5pbnZhbGlkYXRlKCdpdGVtcycpOwoKCQl0aGlzLnRyaWdnZXIoJ3JlbW92ZWQnLCB7IGNvbnRlbnQ6IG51bGwsIHBvc2l0aW9uOiBwb3NpdGlvbiB9KTsKCX07CgoJLyoqCgkgKiBQcmVsb2FkcyBpbWFnZXMgd2l0aCBhdXRvIHdpZHRoLgoJICogQHRvZG8gUmVwbGFjZSBieSBhIG1vcmUgZ2VuZXJpYyBhcHByb2FjaAoJICogQHByb3RlY3RlZAoJICovCglPd2wucHJvdG90eXBlLnByZWxvYWRBdXRvV2lkdGhJbWFnZXMgPSBmdW5jdGlvbihpbWFnZXMpIHsKCQlpbWFnZXMuZWFjaCgkLnByb3h5KGZ1bmN0aW9uKGksIGVsZW1lbnQpIHsKCQkJdGhpcy5lbnRlcigncHJlLWxvYWRpbmcnKTsKCQkJZWxlbWVudCA9ICQoZWxlbWVudCk7CgkJCSQobmV3IEltYWdlKCkpLm9uZSgnbG9hZCcsICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJZWxlbWVudC5hdHRyKCdzcmMnLCBlLnRhcmdldC5zcmMpOwoJCQkJZWxlbWVudC5jc3MoJ29wYWNpdHknLCAxKTsKCQkJCXRoaXMubGVhdmUoJ3ByZS1sb2FkaW5nJyk7CgkJCQkhdGhpcy5pcygncHJlLWxvYWRpbmcnKSAmJiAhdGhpcy5pcygnaW5pdGlhbGl6aW5nJykgJiYgdGhpcy5yZWZyZXNoKCk7CgkJCX0sIHRoaXMpKS5hdHRyKCdzcmMnLCBlbGVtZW50LmF0dHIoJ3NyYycpIHx8IGVsZW1lbnQuYXR0cignZGF0YS1zcmMnKSB8fCBlbGVtZW50LmF0dHIoJ2RhdGEtc3JjLXJldGluYScpKTsKCQl9LCB0aGlzKSk7Cgl9OwoKCS8qKgoJICogRGVzdHJveXMgdGhlIGNhcm91c2VsLgoJICogQHB1YmxpYwoJICovCglPd2wucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHsKCgkJdGhpcy4kZWxlbWVudC5vZmYoJy5vd2wuY29yZScpOwoJCXRoaXMuJHN0YWdlLm9mZignLm93bC5jb3JlJyk7CgkJJChkb2N1bWVudCkub2ZmKCcub3dsLmNvcmUnKTsKCgkJaWYgKHRoaXMuc2V0dGluZ3MucmVzcG9uc2l2ZSAhPT0gZmFsc2UpIHsKCQkJd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnJlc2l6ZVRpbWVyKTsKCQkJdGhpcy5vZmYod2luZG93LCAncmVzaXplJywgdGhpcy5faGFuZGxlcnMub25UaHJvdHRsZWRSZXNpemUpOwoJCX0KCgkJZm9yICh2YXIgaSBpbiB0aGlzLl9wbHVnaW5zKSB7CgkJCXRoaXMuX3BsdWdpbnNbaV0uZGVzdHJveSgpOwoJCX0KCgkJdGhpcy4kc3RhZ2UuY2hpbGRyZW4oJy5jbG9uZWQnKS5yZW1vdmUoKTsKCgkJdGhpcy4kc3RhZ2UudW53cmFwKCk7CgkJdGhpcy4kc3RhZ2UuY2hpbGRyZW4oKS5jb250ZW50cygpLnVud3JhcCgpOwoJCXRoaXMuJHN0YWdlLmNoaWxkcmVuKCkudW53cmFwKCk7CgoJCXRoaXMuJGVsZW1lbnQKCQkJLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5yZWZyZXNoQ2xhc3MpCgkJCS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMubG9hZGluZ0NsYXNzKQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmxvYWRlZENsYXNzKQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLnJ0bENsYXNzKQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmRyYWdDbGFzcykKCQkJLnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5ncmFiQ2xhc3MpCgkJCS5hdHRyKCdjbGFzcycsIHRoaXMuJGVsZW1lbnQuYXR0cignY2xhc3MnKS5yZXBsYWNlKG5ldyBSZWdFeHAodGhpcy5vcHRpb25zLnJlc3BvbnNpdmVDbGFzcyArICctXFxTK1xccycsICdnJyksICcnKSkKCQkJLnJlbW92ZURhdGEoJ293bC5jYXJvdXNlbCcpOwoJfTsKCgkvKioKCSAqIE9wZXJhdG9ycyB0byBjYWxjdWxhdGUgcmlnaHQtdG8tbGVmdCBhbmQgbGVmdC10by1yaWdodC4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7TnVtYmVyfSBbYV0gLSBUaGUgbGVmdCBzaWRlIG9wZXJhbmQuCgkgKiBAcGFyYW0ge1N0cmluZ30gW29dIC0gVGhlIG9wZXJhdG9yLgoJICogQHBhcmFtIHtOdW1iZXJ9IFtiXSAtIFRoZSByaWdodCBzaWRlIG9wZXJhbmQuCgkgKi8KCU93bC5wcm90b3R5cGUub3AgPSBmdW5jdGlvbihhLCBvLCBiKSB7CgkJdmFyIHJ0bCA9IHRoaXMuc2V0dGluZ3MucnRsOwoJCXN3aXRjaCAobykgewoJCQljYXNlICc8JzoKCQkJCXJldHVybiBydGwgPyBhID4gYiA6IGEgPCBiOwoJCQljYXNlICc+JzoKCQkJCXJldHVybiBydGwgPyBhIDwgYiA6IGEgPiBiOwoJCQljYXNlICc+PSc6CgkJCQlyZXR1cm4gcnRsID8gYSA8PSBiIDogYSA+PSBiOwoJCQljYXNlICc8PSc6CgkJCQlyZXR1cm4gcnRsID8gYSA+PSBiIDogYSA8PSBiOwoJCQlkZWZhdWx0OgoJCQkJYnJlYWs7CgkJfQoJfTsKCgkvKioKCSAqIEF0dGFjaGVzIHRvIGFuIGludGVybmFsIGV2ZW50LgoJICogQHByb3RlY3RlZAoJICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBldmVudCBzb3VyY2UuCgkgKiBAcGFyYW0ge1N0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQgbmFtZS4KCSAqIEBwYXJhbSB7RnVuY3Rpb259IGxpc3RlbmVyIC0gVGhlIGV2ZW50IGhhbmRsZXIgdG8gYXR0YWNoLgoJICogQHBhcmFtIHtCb29sZWFufSBjYXB0dXJlIC0gV2V0aGVyIHRoZSBldmVudCBzaG91bGQgYmUgaGFuZGxlZCBhdCB0aGUgY2FwdHVyaW5nIHBoYXNlIG9yIG5vdC4KCSAqLwoJT3dsLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBsaXN0ZW5lciwgY2FwdHVyZSkgewoJCWlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKCQkJZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lciwgY2FwdHVyZSk7CgkJfSBlbHNlIGlmIChlbGVtZW50LmF0dGFjaEV2ZW50KSB7CgkJCWVsZW1lbnQuYXR0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBsaXN0ZW5lcik7CgkJfQoJfTsKCgkvKioKCSAqIERldGFjaGVzIGZyb20gYW4gaW50ZXJuYWwgZXZlbnQuCgkgKiBAcHJvdGVjdGVkCgkgKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbGVtZW50IC0gVGhlIGV2ZW50IHNvdXJjZS4KCSAqIEBwYXJhbSB7U3RyaW5nfSBldmVudCAtIFRoZSBldmVudCBuYW1lLgoJICogQHBhcmFtIHtGdW5jdGlvbn0gbGlzdGVuZXIgLSBUaGUgYXR0YWNoZWQgZXZlbnQgaGFuZGxlciB0byBkZXRhY2guCgkgKiBAcGFyYW0ge0Jvb2xlYW59IGNhcHR1cmUgLSBXZXRoZXIgdGhlIGF0dGFjaGVkIGV2ZW50IGhhbmRsZXIgd2FzIHJlZ2lzdGVyZWQgYXMgYSBjYXB0dXJpbmcgbGlzdGVuZXIgb3Igbm90LgoJICovCglPd2wucHJvdG90eXBlLm9mZiA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBsaXN0ZW5lciwgY2FwdHVyZSkgewoJCWlmIChlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHsKCQkJZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBsaXN0ZW5lciwgY2FwdHVyZSk7CgkJfSBlbHNlIGlmIChlbGVtZW50LmRldGFjaEV2ZW50KSB7CgkJCWVsZW1lbnQuZGV0YWNoRXZlbnQoJ29uJyArIGV2ZW50LCBsaXN0ZW5lcik7CgkJfQoJfTsKCgkvKioKCSAqIFRyaWdnZXJzIGEgcHVibGljIGV2ZW50LgoJICogQHRvZG8gUmVtb3ZlIGBzdGF0dXNgLCBgcmVsYXRlZFRhcmdldGAgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gVGhlIGV2ZW50IG5hbWUuCgkgKiBAcGFyYW0geyp9IFtkYXRhPW51bGxdIC0gVGhlIGV2ZW50IGRhdGEuCgkgKiBAcGFyYW0ge1N0cmluZ30gW25hbWVzcGFjZT1jYXJvdXNlbF0gLSBUaGUgZXZlbnQgbmFtZXNwYWNlLgoJICogQHBhcmFtIHtTdHJpbmd9IFtzdGF0ZV0gLSBUaGUgc3RhdGUgd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudC4KCSAqIEBwYXJhbSB7Qm9vbGVhbn0gW2VudGVyPWZhbHNlXSAtIEluZGljYXRlcyBpZiB0aGUgY2FsbCBlbnRlcnMgdGhlIHNwZWNpZmllZCBzdGF0ZSBvciBub3QuCgkgKiBAcmV0dXJucyB7RXZlbnR9IC0gVGhlIGV2ZW50IGFyZ3VtZW50cy4KCSAqLwoJT3dsLnByb3RvdHlwZS50cmlnZ2VyID0gZnVuY3Rpb24obmFtZSwgZGF0YSwgbmFtZXNwYWNlLCBzdGF0ZSwgZW50ZXIpIHsKCQl2YXIgc3RhdHVzID0gewoJCQlpdGVtOiB7IGNvdW50OiB0aGlzLl9pdGVtcy5sZW5ndGgsIGluZGV4OiB0aGlzLmN1cnJlbnQoKSB9CgkJfSwgaGFuZGxlciA9ICQuY2FtZWxDYXNlKAoJCQkkLmdyZXAoWyAnb24nLCBuYW1lLCBuYW1lc3BhY2UgXSwgZnVuY3Rpb24odikgeyByZXR1cm4gdiB9KQoJCQkJLmpvaW4oJy0nKS50b0xvd2VyQ2FzZSgpCgkJKSwgZXZlbnQgPSAkLkV2ZW50KAoJCQlbIG5hbWUsICdvd2wnLCBuYW1lc3BhY2UgfHwgJ2Nhcm91c2VsJyBdLmpvaW4oJy4nKS50b0xvd2VyQ2FzZSgpLAoJCQkkLmV4dGVuZCh7IHJlbGF0ZWRUYXJnZXQ6IHRoaXMgfSwgc3RhdHVzLCBkYXRhKQoJCSk7CgoJCWlmICghdGhpcy5fc3VwcmVzc1tuYW1lXSkgewoJCQkkLmVhY2godGhpcy5fcGx1Z2lucywgZnVuY3Rpb24obmFtZSwgcGx1Z2luKSB7CgkJCQlpZiAocGx1Z2luLm9uVHJpZ2dlcikgewoJCQkJCXBsdWdpbi5vblRyaWdnZXIoZXZlbnQpOwoJCQkJfQoJCQl9KTsKCgkJCXRoaXMucmVnaXN0ZXIoeyB0eXBlOiBPd2wuVHlwZS5FdmVudCwgbmFtZTogbmFtZSB9KTsKCQkJdGhpcy4kZWxlbWVudC50cmlnZ2VyKGV2ZW50KTsKCgkJCWlmICh0aGlzLnNldHRpbmdzICYmIHR5cGVvZiB0aGlzLnNldHRpbmdzW2hhbmRsZXJdID09PSAnZnVuY3Rpb24nKSB7CgkJCQl0aGlzLnNldHRpbmdzW2hhbmRsZXJdLmNhbGwodGhpcywgZXZlbnQpOwoJCQl9CgkJfQoKCQlyZXR1cm4gZXZlbnQ7Cgl9OwoKCS8qKgoJICogRW50ZXJzIGEgc3RhdGUuCgkgKiBAcGFyYW0gbmFtZSAtIFRoZSBzdGF0ZSBuYW1lLgoJICovCglPd2wucHJvdG90eXBlLmVudGVyID0gZnVuY3Rpb24obmFtZSkgewoJCSQuZWFjaChbIG5hbWUgXS5jb25jYXQodGhpcy5fc3RhdGVzLnRhZ3NbbmFtZV0gfHwgW10pLCAkLnByb3h5KGZ1bmN0aW9uKGksIG5hbWUpIHsKCQkJaWYgKHRoaXMuX3N0YXRlcy5jdXJyZW50W25hbWVdID09PSB1bmRlZmluZWQpIHsKCQkJCXRoaXMuX3N0YXRlcy5jdXJyZW50W25hbWVdID0gMDsKCQkJfQoKCQkJdGhpcy5fc3RhdGVzLmN1cnJlbnRbbmFtZV0rKzsKCQl9LCB0aGlzKSk7Cgl9OwoKCS8qKgoJICogTGVhdmVzIGEgc3RhdGUuCgkgKiBAcGFyYW0gbmFtZSAtIFRoZSBzdGF0ZSBuYW1lLgoJICovCglPd2wucHJvdG90eXBlLmxlYXZlID0gZnVuY3Rpb24obmFtZSkgewoJCSQuZWFjaChbIG5hbWUgXS5jb25jYXQodGhpcy5fc3RhdGVzLnRhZ3NbbmFtZV0gfHwgW10pLCAkLnByb3h5KGZ1bmN0aW9uKGksIG5hbWUpIHsKCQkJdGhpcy5fc3RhdGVzLmN1cnJlbnRbbmFtZV0tLTsKCQl9LCB0aGlzKSk7Cgl9OwoKCS8qKgoJICogUmVnaXN0ZXJzIGFuIGV2ZW50IG9yIHN0YXRlLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtPYmplY3R9IG9iamVjdCAtIFRoZSBldmVudCBvciBzdGF0ZSB0byByZWdpc3Rlci4KCSAqLwoJT3dsLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uKG9iamVjdCkgewoJCWlmIChvYmplY3QudHlwZSA9PT0gT3dsLlR5cGUuRXZlbnQpIHsKCQkJaWYgKCEkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdKSB7CgkJCQkkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdID0ge307CgkJCX0KCgkJCWlmICghJC5ldmVudC5zcGVjaWFsW29iamVjdC5uYW1lXS5vd2wpIHsKCQkJCXZhciBfZGVmYXVsdCA9ICQuZXZlbnQuc3BlY2lhbFtvYmplY3QubmFtZV0uX2RlZmF1bHQ7CgkJCQkkLmV2ZW50LnNwZWNpYWxbb2JqZWN0Lm5hbWVdLl9kZWZhdWx0ID0gZnVuY3Rpb24oZSkgewoJCQkJCWlmIChfZGVmYXVsdCAmJiBfZGVmYXVsdC5hcHBseSAmJiAoIWUubmFtZXNwYWNlIHx8IGUubmFtZXNwYWNlLmluZGV4T2YoJ293bCcpID09PSAtMSkpIHsKCQkJCQkJcmV0dXJuIF9kZWZhdWx0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgkJCQkJfQoJCQkJCXJldHVybiBlLm5hbWVzcGFjZSAmJiBlLm5hbWVzcGFjZS5pbmRleE9mKCdvd2wnKSA+IC0xOwoJCQkJfTsKCQkJCSQuZXZlbnQuc3BlY2lhbFtvYmplY3QubmFtZV0ub3dsID0gdHJ1ZTsKCQkJfQoJCX0gZWxzZSBpZiAob2JqZWN0LnR5cGUgPT09IE93bC5UeXBlLlN0YXRlKSB7CgkJCWlmICghdGhpcy5fc3RhdGVzLnRhZ3Nbb2JqZWN0Lm5hbWVdKSB7CgkJCQl0aGlzLl9zdGF0ZXMudGFnc1tvYmplY3QubmFtZV0gPSBvYmplY3QudGFnczsKCQkJfSBlbHNlIHsKCQkJCXRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSA9IHRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXS5jb25jYXQob2JqZWN0LnRhZ3MpOwoJCQl9CgoJCQl0aGlzLl9zdGF0ZXMudGFnc1tvYmplY3QubmFtZV0gPSAkLmdyZXAodGhpcy5fc3RhdGVzLnRhZ3Nbb2JqZWN0Lm5hbWVdLCAkLnByb3h5KGZ1bmN0aW9uKHRhZywgaSkgewoJCQkJcmV0dXJuICQuaW5BcnJheSh0YWcsIHRoaXMuX3N0YXRlcy50YWdzW29iamVjdC5uYW1lXSkgPT09IGk7CgkJCX0sIHRoaXMpKTsKCQl9Cgl9OwoKCS8qKgoJICogU3VwcHJlc3NlcyBldmVudHMuCgkgKiBAcHJvdGVjdGVkCgkgKiBAcGFyYW0ge0FycmF5LjxTdHJpbmc+fSBldmVudHMgLSBUaGUgZXZlbnRzIHRvIHN1cHByZXNzLgoJICovCglPd2wucHJvdG90eXBlLnN1cHByZXNzID0gZnVuY3Rpb24oZXZlbnRzKSB7CgkJJC5lYWNoKGV2ZW50cywgJC5wcm94eShmdW5jdGlvbihpbmRleCwgZXZlbnQpIHsKCQkJdGhpcy5fc3VwcmVzc1tldmVudF0gPSB0cnVlOwoJCX0sIHRoaXMpKTsKCX07CgoJLyoqCgkgKiBSZWxlYXNlcyBzdXBwcmVzc2VkIGV2ZW50cy4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7QXJyYXkuPFN0cmluZz59IGV2ZW50cyAtIFRoZSBldmVudHMgdG8gcmVsZWFzZS4KCSAqLwoJT3dsLnByb3RvdHlwZS5yZWxlYXNlID0gZnVuY3Rpb24oZXZlbnRzKSB7CgkJJC5lYWNoKGV2ZW50cywgJC5wcm94eShmdW5jdGlvbihpbmRleCwgZXZlbnQpIHsKCQkJZGVsZXRlIHRoaXMuX3N1cHJlc3NbZXZlbnRdOwoJCX0sIHRoaXMpKTsKCX07CgoJLyoqCgkgKiBHZXRzIHVuaWZpZWQgcG9pbnRlciBjb29yZGluYXRlcyBmcm9tIGV2ZW50LgoJICogQHRvZG8gIzI2MQoJICogQHByb3RlY3RlZAoJICogQHBhcmFtIHtFdmVudH0gLSBUaGUgYG1vdXNlZG93bmAgb3IgYHRvdWNoc3RhcnRgIGV2ZW50LgoJICogQHJldHVybnMge09iamVjdH0gLSBDb250YWlucyBgeGAgYW5kIGB5YCBjb29yZGluYXRlcyBvZiBjdXJyZW50IHBvaW50ZXIgcG9zaXRpb24uCgkgKi8KCU93bC5wcm90b3R5cGUucG9pbnRlciA9IGZ1bmN0aW9uKGV2ZW50KSB7CgkJdmFyIHJlc3VsdCA9IHsgeDogbnVsbCwgeTogbnVsbCB9OwoKCQlldmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQgfHwgZXZlbnQgfHwgd2luZG93LmV2ZW50OwoKCQlldmVudCA9IGV2ZW50LnRvdWNoZXMgJiYgZXZlbnQudG91Y2hlcy5sZW5ndGggPwoJCQlldmVudC50b3VjaGVzWzBdIDogZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXMubGVuZ3RoID8KCQkJCWV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdIDogZXZlbnQ7CgoJCWlmIChldmVudC5wYWdlWCkgewoJCQlyZXN1bHQueCA9IGV2ZW50LnBhZ2VYOwoJCQlyZXN1bHQueSA9IGV2ZW50LnBhZ2VZOwoJCX0gZWxzZSB7CgkJCXJlc3VsdC54ID0gZXZlbnQuY2xpZW50WDsKCQkJcmVzdWx0LnkgPSBldmVudC5jbGllbnRZOwoJCX0KCgkJcmV0dXJuIHJlc3VsdDsKCX07CgoJLyoqCgkgKiBEZXRlcm1pbmVzIGlmIHRoZSBpbnB1dCBpcyBhIE51bWJlciBvciBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBhIE51bWJlcgoJICogQHByb3RlY3RlZAoJICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfE9iamVjdHxBcnJheXxCb29sZWFufFJlZ0V4cHxGdW5jdGlvbnxTeW1ib2x9IC0gVGhlIGlucHV0IHRvIGJlIHRlc3RlZAoJICogQHJldHVybnMge0Jvb2xlYW59IC0gQW4gaW5kaWNhdGlvbiBpZiB0aGUgaW5wdXQgaXMgYSBOdW1iZXIgb3IgY2FuIGJlIGNvZXJjZWQgdG8gYSBOdW1iZXIKCSAqLwoJT3dsLnByb3RvdHlwZS5pc051bWVyaWMgPSBmdW5jdGlvbihudW1iZXIpIHsKCQlyZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQobnVtYmVyKSk7Cgl9OwoKCS8qKgoJICogR2V0cyB0aGUgZGlmZmVyZW5jZSBvZiB0d28gdmVjdG9ycy4KCSAqIEB0b2RvICMyNjEKCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7T2JqZWN0fSAtIFRoZSBmaXJzdCB2ZWN0b3IuCgkgKiBAcGFyYW0ge09iamVjdH0gLSBUaGUgc2Vjb25kIHZlY3Rvci4KCSAqIEByZXR1cm5zIHtPYmplY3R9IC0gVGhlIGRpZmZlcmVuY2UuCgkgKi8KCU93bC5wcm90b3R5cGUuZGlmZmVyZW5jZSA9IGZ1bmN0aW9uKGZpcnN0LCBzZWNvbmQpIHsKCQlyZXR1cm4gewoJCQl4OiBmaXJzdC54IC0gc2Vjb25kLngsCgkJCXk6IGZpcnN0LnkgLSBzZWNvbmQueQoJCX07Cgl9OwoKCS8qKgoJICogVGhlIGpRdWVyeSBQbHVnaW4gZm9yIHRoZSBPd2wgQ2Fyb3VzZWwKCSAqIEB0b2RvIE5hdmlnYXRpb24gcGx1Z2luIGBuZXh0YCBhbmQgYHByZXZgCgkgKiBAcHVibGljCgkgKi8KCSQuZm4ub3dsQ2Fyb3VzZWwgPSBmdW5jdGlvbihvcHRpb24pIHsKCQl2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7CgoJCXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7CgkJCXZhciAkdGhpcyA9ICQodGhpcyksCgkJCQlkYXRhID0gJHRoaXMuZGF0YSgnb3dsLmNhcm91c2VsJyk7CgoJCQlpZiAoIWRhdGEpIHsKCQkJCWRhdGEgPSBuZXcgT3dsKHRoaXMsIHR5cGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uKTsKCQkJCSR0aGlzLmRhdGEoJ293bC5jYXJvdXNlbCcsIGRhdGEpOwoKCQkJCSQuZWFjaChbCgkJCQkJJ25leHQnLCAncHJldicsICd0bycsICdkZXN0cm95JywgJ3JlZnJlc2gnLCAncmVwbGFjZScsICdhZGQnLCAncmVtb3ZlJwoJCQkJXSwgZnVuY3Rpb24oaSwgZXZlbnQpIHsKCQkJCQlkYXRhLnJlZ2lzdGVyKHsgdHlwZTogT3dsLlR5cGUuRXZlbnQsIG5hbWU6IGV2ZW50IH0pOwoJCQkJCWRhdGEuJGVsZW1lbnQub24oZXZlbnQgKyAnLm93bC5jYXJvdXNlbC5jb3JlJywgJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQkJCWlmIChlLm5hbWVzcGFjZSAmJiBlLnJlbGF0ZWRUYXJnZXQgIT09IHRoaXMpIHsKCQkJCQkJCXRoaXMuc3VwcHJlc3MoWyBldmVudCBdKTsKCQkJCQkJCWRhdGFbZXZlbnRdLmFwcGx5KHRoaXMsIFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKSk7CgkJCQkJCQl0aGlzLnJlbGVhc2UoWyBldmVudCBdKTsKCQkJCQkJfQoJCQkJCX0sIGRhdGEpKTsKCQkJCX0pOwoJCQl9CgoJCQlpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJyAmJiBvcHRpb24uY2hhckF0KDApICE9PSAnXycpIHsKCQkJCWRhdGFbb3B0aW9uXS5hcHBseShkYXRhLCBhcmdzKTsKCQkJfQoJCX0pOwoJfTsKCgkvKioKCSAqIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIGpRdWVyeSBQbHVnaW4KCSAqIEBwdWJsaWMKCSAqLwoJJC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3RvciA9IE93bDsKCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsKCi8qKgogKiBBdXRvUmVmcmVzaCBQbHVnaW4KICogQHZlcnNpb24gMi4xLjAKICogQGF1dGhvciBBcnR1cyBLb2xhbm93c2tpCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaAogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKICovCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7CgoJLyoqCgkgKiBDcmVhdGVzIHRoZSBhdXRvIHJlZnJlc2ggcGx1Z2luLgoJICogQGNsYXNzIFRoZSBBdXRvIFJlZnJlc2ggUGx1Z2luCgkgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsCgkgKi8KCXZhciBBdXRvUmVmcmVzaCA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7CgkJLyoqCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T3dsfQoJCSAqLwoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsKCgkJLyoqCgkJICogUmVmcmVzaCBpbnRlcnZhbC4KCQkgKiBAcHJvdGVjdGVkCgkJICogQHR5cGUge251bWJlcn0KCQkgKi8KCQl0aGlzLl9pbnRlcnZhbCA9IG51bGw7CgoJCS8qKgoJCSAqIFdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgY3VycmVudGx5IHZpc2libGUgb3Igbm90LgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7Qm9vbGVhbn0KCQkgKi8KCQl0aGlzLl92aXNpYmxlID0gbnVsbDsKCgkJLyoqCgkJICogQWxsIGV2ZW50IGhhbmRsZXJzLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T2JqZWN0fQoJCSAqLwoJCXRoaXMuX2hhbmRsZXJzID0gewoJCQknaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvUmVmcmVzaCkgewoJCQkJCXRoaXMud2F0Y2goKTsKCQkJCX0KCQkJfSwgdGhpcykKCQl9OwoKCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zCgkJdGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIEF1dG9SZWZyZXNoLkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpOwoKCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycwoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpOwoJfTsKCgkvKioKCSAqIERlZmF1bHQgb3B0aW9ucy4KCSAqIEBwdWJsaWMKCSAqLwoJQXV0b1JlZnJlc2guRGVmYXVsdHMgPSB7CgkJYXV0b1JlZnJlc2g6IHRydWUsCgkJYXV0b1JlZnJlc2hJbnRlcnZhbDogNTAwCgl9OwoKCS8qKgoJICogV2F0Y2hlcyB0aGUgZWxlbWVudC4KCSAqLwoJQXV0b1JlZnJlc2gucHJvdG90eXBlLndhdGNoID0gZnVuY3Rpb24oKSB7CgkJaWYgKHRoaXMuX2ludGVydmFsKSB7CgkJCXJldHVybjsKCQl9CgoJCXRoaXMuX3Zpc2libGUgPSB0aGlzLl9jb3JlLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpOwoJCXRoaXMuX2ludGVydmFsID0gd2luZG93LnNldEludGVydmFsKCQucHJveHkodGhpcy5yZWZyZXNoLCB0aGlzKSwgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvUmVmcmVzaEludGVydmFsKTsKCX07CgoJLyoqCgkgKiBSZWZyZXNoZXMgdGhlIGVsZW1lbnQuCgkgKi8KCUF1dG9SZWZyZXNoLnByb3RvdHlwZS5yZWZyZXNoID0gZnVuY3Rpb24oKSB7CgkJaWYgKHRoaXMuX2NvcmUuJGVsZW1lbnQuaXMoJzp2aXNpYmxlJykgPT09IHRoaXMuX3Zpc2libGUpIHsKCQkJcmV0dXJuOwoJCX0KCgkJdGhpcy5fdmlzaWJsZSA9ICF0aGlzLl92aXNpYmxlOwoKCQl0aGlzLl9jb3JlLiRlbGVtZW50LnRvZ2dsZUNsYXNzKCdvd2wtaGlkZGVuJywgIXRoaXMuX3Zpc2libGUpOwoKCQl0aGlzLl92aXNpYmxlICYmICh0aGlzLl9jb3JlLmludmFsaWRhdGUoJ3dpZHRoJykgJiYgdGhpcy5fY29yZS5yZWZyZXNoKCkpOwoJfTsKCgkvKioKCSAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uCgkgKi8KCUF1dG9SZWZyZXNoLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7CgkJdmFyIGhhbmRsZXIsIHByb3BlcnR5OwoKCQl3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9pbnRlcnZhbCk7CgoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgewoJCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7CgkJfQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsKCQkJdHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7CgkJfQoJfTsKCgkkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuQXV0b1JlZnJlc2ggPSBBdXRvUmVmcmVzaDsKCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsKCi8qKgogKiBMYXp5IFBsdWdpbgogKiBAdmVyc2lvbiAyLjEuMAogKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraQogKiBAYXV0aG9yIERhdmlkIERldXRzY2gKICogQGxpY2Vuc2UgVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqLwo7KGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoKCS8qKgoJICogQ3JlYXRlcyB0aGUgbGF6eSBwbHVnaW4uCgkgKiBAY2xhc3MgVGhlIExhenkgUGx1Z2luCgkgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsCgkgKi8KCXZhciBMYXp5ID0gZnVuY3Rpb24oY2Fyb3VzZWwpIHsKCgkJLyoqCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T3dsfQoJCSAqLwoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsKCgkJLyoqCgkJICogQWxyZWFkeSBsb2FkZWQgaXRlbXMuCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtBcnJheS48alF1ZXJ5Pn0KCQkgKi8KCQl0aGlzLl9sb2FkZWQgPSBbXTsKCgkJLyoqCgkJICogRXZlbnQgaGFuZGxlcnMuCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICovCgkJdGhpcy5faGFuZGxlcnMgPSB7CgkJCSdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwgY2hhbmdlLm93bC5jYXJvdXNlbCByZXNpemVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKCFlLm5hbWVzcGFjZSkgewoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQlpZiAoIXRoaXMuX2NvcmUuc2V0dGluZ3MgfHwgIXRoaXMuX2NvcmUuc2V0dGluZ3MubGF6eUxvYWQpIHsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJaWYgKChlLnByb3BlcnR5ICYmIGUucHJvcGVydHkubmFtZSA9PSAncG9zaXRpb24nKSB8fCBlLnR5cGUgPT0gJ2luaXRpYWxpemVkJykgewoJCQkJCXZhciBzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsCgkJCQkJCW4gPSAoc2V0dGluZ3MuY2VudGVyICYmIE1hdGguY2VpbChzZXR0aW5ncy5pdGVtcyAvIDIpIHx8IHNldHRpbmdzLml0ZW1zKSwKCQkJCQkJaSA9ICgoc2V0dGluZ3MuY2VudGVyICYmIG4gKiAtMSkgfHwgMCksCgkJCQkJCXBvc2l0aW9uID0gKGUucHJvcGVydHkgJiYgZS5wcm9wZXJ0eS52YWx1ZSAhPT0gdW5kZWZpbmVkID8gZS5wcm9wZXJ0eS52YWx1ZSA6IHRoaXMuX2NvcmUuY3VycmVudCgpKSArIGksCgkJCQkJCWNsb25lcyA9IHRoaXMuX2NvcmUuY2xvbmVzKCkubGVuZ3RoLAoJCQkJCQlsb2FkID0gJC5wcm94eShmdW5jdGlvbihpLCB2KSB7IHRoaXMubG9hZCh2KSB9LCB0aGlzKTsKCgkJCQkJd2hpbGUgKGkrKyA8IG4pIHsKCQkJCQkJdGhpcy5sb2FkKGNsb25lcyAvIDIgKyB0aGlzLl9jb3JlLnJlbGF0aXZlKHBvc2l0aW9uKSk7CgkJCQkJCWNsb25lcyAmJiAkLmVhY2godGhpcy5fY29yZS5jbG9uZXModGhpcy5fY29yZS5yZWxhdGl2ZShwb3NpdGlvbikpLCBsb2FkKTsKCQkJCQkJcG9zaXRpb24rKzsKCQkJCQl9CgkJCQl9CgkJCX0sIHRoaXMpCgkJfTsKCgkJLy8gc2V0IHRoZSBkZWZhdWx0IG9wdGlvbnMKCQl0aGlzLl9jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgTGF6eS5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTsKCgkJLy8gcmVnaXN0ZXIgZXZlbnQgaGFuZGxlcgoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpOwoJfTsKCgkvKioKCSAqIERlZmF1bHQgb3B0aW9ucy4KCSAqIEBwdWJsaWMKCSAqLwoJTGF6eS5EZWZhdWx0cyA9IHsKCQlsYXp5TG9hZDogZmFsc2UKCX07CgoJLyoqCgkgKiBMb2FkcyBhbGwgcmVzb3VyY2VzIG9mIGFuIGl0ZW0gYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4KCSAqIEBwYXJhbSB7TnVtYmVyfSBwb3NpdGlvbiAtIFRoZSBhYnNvbHV0ZSBwb3NpdGlvbiBvZiB0aGUgaXRlbS4KCSAqIEBwcm90ZWN0ZWQKCSAqLwoJTGF6eS5wcm90b3R5cGUubG9hZCA9IGZ1bmN0aW9uKHBvc2l0aW9uKSB7CgkJdmFyICRpdGVtID0gdGhpcy5fY29yZS4kc3RhZ2UuY2hpbGRyZW4oKS5lcShwb3NpdGlvbiksCgkJCSRlbGVtZW50cyA9ICRpdGVtICYmICRpdGVtLmZpbmQoJy5vd2wtbGF6eScpOwoKCQlpZiAoISRlbGVtZW50cyB8fCAkLmluQXJyYXkoJGl0ZW0uZ2V0KDApLCB0aGlzLl9sb2FkZWQpID4gLTEpIHsKCQkJcmV0dXJuOwoJCX0KCgkJJGVsZW1lbnRzLmVhY2goJC5wcm94eShmdW5jdGlvbihpbmRleCwgZWxlbWVudCkgewoJCQl2YXIgJGVsZW1lbnQgPSAkKGVsZW1lbnQpLCBpbWFnZSwKCQkJCXVybCA9ICh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA+IDEgJiYgJGVsZW1lbnQuYXR0cignZGF0YS1zcmMtcmV0aW5hJykpIHx8ICRlbGVtZW50LmF0dHIoJ2RhdGEtc3JjJyk7CgoJCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ2xvYWQnLCB7IGVsZW1lbnQ6ICRlbGVtZW50LCB1cmw6IHVybCB9LCAnbGF6eScpOwoKCQkJaWYgKCRlbGVtZW50LmlzKCdpbWcnKSkgewoJCQkJJGVsZW1lbnQub25lKCdsb2FkLm93bC5sYXp5JywgJC5wcm94eShmdW5jdGlvbigpIHsKCQkJCQkkZWxlbWVudC5jc3MoJ29wYWNpdHknLCAxKTsKCQkJCQl0aGlzLl9jb3JlLnRyaWdnZXIoJ2xvYWRlZCcsIHsgZWxlbWVudDogJGVsZW1lbnQsIHVybDogdXJsIH0sICdsYXp5Jyk7CgkJCQl9LCB0aGlzKSkuYXR0cignc3JjJywgdXJsKTsKCQkJfSBlbHNlIHsKCQkJCWltYWdlID0gbmV3IEltYWdlKCk7CgkJCQlpbWFnZS5vbmxvYWQgPSAkLnByb3h5KGZ1bmN0aW9uKCkgewoJCQkJCSRlbGVtZW50LmNzcyh7CgkJCQkJCSdiYWNrZ3JvdW5kLWltYWdlJzogJ3VybCgnICsgdXJsICsgJyknLAoJCQkJCQknb3BhY2l0eSc6ICcxJwoJCQkJCX0pOwoJCQkJCXRoaXMuX2NvcmUudHJpZ2dlcignbG9hZGVkJywgeyBlbGVtZW50OiAkZWxlbWVudCwgdXJsOiB1cmwgfSwgJ2xhenknKTsKCQkJCX0sIHRoaXMpOwoJCQkJaW1hZ2Uuc3JjID0gdXJsOwoJCQl9CgkJfSwgdGhpcykpOwoKCQl0aGlzLl9sb2FkZWQucHVzaCgkaXRlbS5nZXQoMCkpOwoJfTsKCgkvKioKCSAqIERlc3Ryb3lzIHRoZSBwbHVnaW4uCgkgKiBAcHVibGljCgkgKi8KCUxhenkucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHsKCQl2YXIgaGFuZGxlciwgcHJvcGVydHk7CgoJCWZvciAoaGFuZGxlciBpbiB0aGlzLmhhbmRsZXJzKSB7CgkJCXRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuaGFuZGxlcnNbaGFuZGxlcl0pOwoJCX0KCQlmb3IgKHByb3BlcnR5IGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSB7CgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOwoJCX0KCX07CgoJJC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkxhenkgPSBMYXp5OwoKfSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpOwoKLyoqCiAqIEF1dG9IZWlnaHQgUGx1Z2luCiAqIEB2ZXJzaW9uIDIuMS4wCiAqIEBhdXRob3IgQmFydG9zeiBXb2pjaWVjaG93c2tpCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaAogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKICovCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7CgoJLyoqCgkgKiBDcmVhdGVzIHRoZSBhdXRvIGhlaWdodCBwbHVnaW4uCgkgKiBAY2xhc3MgVGhlIEF1dG8gSGVpZ2h0IFBsdWdpbgoJICogQHBhcmFtIHtPd2x9IGNhcm91c2VsIC0gVGhlIE93bCBDYXJvdXNlbAoJICovCgl2YXIgQXV0b0hlaWdodCA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7CgkJLyoqCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T3dsfQoJCSAqLwoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsKCgkJLyoqCgkJICogQWxsIGV2ZW50IGhhbmRsZXJzLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T2JqZWN0fQoJCSAqLwoJCXRoaXMuX2hhbmRsZXJzID0gewoJCQknaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsIHJlZnJlc2hlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9IZWlnaHQpIHsKCQkJCQl0aGlzLnVwZGF0ZSgpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvSGVpZ2h0ICYmIGUucHJvcGVydHkubmFtZSA9PSAncG9zaXRpb24nKXsKCQkJCQl0aGlzLnVwZGF0ZSgpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ2xvYWRlZC5vd2wubGF6eSc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodAoJCQkJCSYmIGUuZWxlbWVudC5jbG9zZXN0KCcuJyArIHRoaXMuX2NvcmUuc2V0dGluZ3MuaXRlbUNsYXNzKS5pbmRleCgpID09PSB0aGlzLl9jb3JlLmN1cnJlbnQoKSkgewoJCQkJCXRoaXMudXBkYXRlKCk7CgkJCQl9CgkJCX0sIHRoaXMpCgkJfTsKCgkJLy8gc2V0IGRlZmF1bHQgb3B0aW9ucwoJCXRoaXMuX2NvcmUub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCBBdXRvSGVpZ2h0LkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpOwoKCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycwoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpOwoJfTsKCgkvKioKCSAqIERlZmF1bHQgb3B0aW9ucy4KCSAqIEBwdWJsaWMKCSAqLwoJQXV0b0hlaWdodC5EZWZhdWx0cyA9IHsKCQlhdXRvSGVpZ2h0OiBmYWxzZSwKCQlhdXRvSGVpZ2h0Q2xhc3M6ICdvd2wtaGVpZ2h0JwoJfTsKCgkvKioKCSAqIFVwZGF0ZXMgdGhlIHZpZXcuCgkgKi8KCUF1dG9IZWlnaHQucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkgewoJCXZhciBzdGFydCA9IHRoaXMuX2NvcmUuX2N1cnJlbnQsCgkJCWVuZCA9IHN0YXJ0ICsgdGhpcy5fY29yZS5zZXR0aW5ncy5pdGVtcywKCQkJdmlzaWJsZSA9IHRoaXMuX2NvcmUuJHN0YWdlLmNoaWxkcmVuKCkudG9BcnJheSgpLnNsaWNlKHN0YXJ0LCBlbmQpLAoJCQloZWlnaHRzID0gW10sCgkJCW1heGhlaWdodCA9IDA7CgoJCSQuZWFjaCh2aXNpYmxlLCBmdW5jdGlvbihpbmRleCwgaXRlbSkgewoJCQloZWlnaHRzLnB1c2goJChpdGVtKS5oZWlnaHQoKSk7CgkJfSk7CgoJCW1heGhlaWdodCA9IE1hdGgubWF4LmFwcGx5KG51bGwsIGhlaWdodHMpOwoKCQl0aGlzLl9jb3JlLiRzdGFnZS5wYXJlbnQoKQoJCQkuaGVpZ2h0KG1heGhlaWdodCkKCQkJLmFkZENsYXNzKHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b0hlaWdodENsYXNzKTsKCX07CgoJQXV0b0hlaWdodC5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkgewoJCXZhciBoYW5kbGVyLCBwcm9wZXJ0eTsKCgkJZm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7CgkJCXRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuX2hhbmRsZXJzW2hhbmRsZXJdKTsKCQl9CgkJZm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkgewoJCQl0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTsKCQl9Cgl9OwoKCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5BdXRvSGVpZ2h0ID0gQXV0b0hlaWdodDsKCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsKCi8qKgogKiBWaWRlbyBQbHVnaW4KICogQHZlcnNpb24gMi4xLjAKICogQGF1dGhvciBCYXJ0b3N6IFdvamNpZWNob3dza2kKICogQGF1dGhvciBEYXZpZCBEZXV0c2NoCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQogKi8KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsKCgkvKioKCSAqIENyZWF0ZXMgdGhlIHZpZGVvIHBsdWdpbi4KCSAqIEBjbGFzcyBUaGUgVmlkZW8gUGx1Z2luCgkgKiBAcGFyYW0ge093bH0gY2Fyb3VzZWwgLSBUaGUgT3dsIENhcm91c2VsCgkgKi8KCXZhciBWaWRlbyA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7CgkJLyoqCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T3dsfQoJCSAqLwoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsKCgkJLyoqCgkJICogQ2FjaGUgYWxsIHZpZGVvIFVSTHMuCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICovCgkJdGhpcy5fdmlkZW9zID0ge307CgoJCS8qKgoJCSAqIEN1cnJlbnQgcGxheWluZyBpdGVtLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7alF1ZXJ5fQoJCSAqLwoJCXRoaXMuX3BsYXlpbmcgPSBudWxsOwoKCQkvKioKCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuCgkJICogQHRvZG8gVGhlIGNsb25lZCBjb250ZW50IHJlbW92YWxlIGlzIHRvbyBsYXRlCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICovCgkJdGhpcy5faGFuZGxlcnMgPSB7CgkJCSdpbml0aWFsaXplZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSkgewoJCQkJCXRoaXMuX2NvcmUucmVnaXN0ZXIoeyB0eXBlOiAnc3RhdGUnLCBuYW1lOiAncGxheWluZycsIHRhZ3M6IFsgJ2ludGVyYWN0aW5nJyBdIH0pOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ3Jlc2l6ZS5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLnZpZGVvICYmIHRoaXMuaXNJbkZ1bGxTY3JlZW4oKSkgewoJCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJCX0KCQkJfSwgdGhpcyksCgkJCSdyZWZyZXNoZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5pcygncmVzaXppbmcnKSkgewoJCQkJCXRoaXMuX2NvcmUuJHN0YWdlLmZpbmQoJy5jbG9uZWQgLm93bC12aWRlby1mcmFtZScpLnJlbW92ZSgpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAncG9zaXRpb24nICYmIHRoaXMuX3BsYXlpbmcpIHsKCQkJCQl0aGlzLnN0b3AoKTsKCQkJCX0KCQkJfSwgdGhpcyksCgkJCSdwcmVwYXJlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmICghZS5uYW1lc3BhY2UpIHsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJdmFyICRlbGVtZW50ID0gJChlLmNvbnRlbnQpLmZpbmQoJy5vd2wtdmlkZW8nKTsKCgkJCQlpZiAoJGVsZW1lbnQubGVuZ3RoKSB7CgkJCQkJJGVsZW1lbnQuY3NzKCdkaXNwbGF5JywgJ25vbmUnKTsKCQkJCQl0aGlzLmZldGNoKCRlbGVtZW50LCAkKGUuY29udGVudCkpOwoJCQkJfQoJCQl9LCB0aGlzKQoJCX07CgoJCS8vIHNldCBkZWZhdWx0IG9wdGlvbnMKCQl0aGlzLl9jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgVmlkZW8uRGVmYXVsdHMsIHRoaXMuX2NvcmUub3B0aW9ucyk7CgoJCS8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJzCgkJdGhpcy5fY29yZS4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7CgoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub24oJ2NsaWNrLm93bC52aWRlbycsICcub3dsLXZpZGVvLXBsYXktaWNvbicsICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQl0aGlzLnBsYXkoZSk7CgkJfSwgdGhpcykpOwoJfTsKCgkvKioKCSAqIERlZmF1bHQgb3B0aW9ucy4KCSAqIEBwdWJsaWMKCSAqLwoJVmlkZW8uRGVmYXVsdHMgPSB7CgkJdmlkZW86IGZhbHNlLAoJCXZpZGVvSGVpZ2h0OiBmYWxzZSwKCQl2aWRlb1dpZHRoOiBmYWxzZQoJfTsKCgkvKioKCSAqIEdldHMgdGhlIHZpZGVvIElEIGFuZCB0aGUgdHlwZSAoWW91VHViZS9WaW1lby92emFhciBvbmx5KS4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7alF1ZXJ5fSB0YXJnZXQgLSBUaGUgdGFyZ2V0IGNvbnRhaW5pbmcgdGhlIHZpZGVvIGRhdGEuCgkgKiBAcGFyYW0ge2pRdWVyeX0gaXRlbSAtIFRoZSBpdGVtIGNvbnRhaW5pbmcgdGhlIHZpZGVvLgoJICovCglWaWRlby5wcm90b3R5cGUuZmV0Y2ggPSBmdW5jdGlvbih0YXJnZXQsIGl0ZW0pIHsKCQkJdmFyIHR5cGUgPSAoZnVuY3Rpb24oKSB7CgkJCQkJaWYgKHRhcmdldC5hdHRyKCdkYXRhLXZpbWVvLWlkJykpIHsKCQkJCQkJcmV0dXJuICd2aW1lbyc7CgkJCQkJfSBlbHNlIGlmICh0YXJnZXQuYXR0cignZGF0YS12emFhci1pZCcpKSB7CgkJCQkJCXJldHVybiAndnphYXInCgkJCQkJfSBlbHNlIHsKCQkJCQkJcmV0dXJuICd5b3V0dWJlJzsKCQkJCQl9CgkJCQl9KSgpLAoJCQkJaWQgPSB0YXJnZXQuYXR0cignZGF0YS12aW1lby1pZCcpIHx8IHRhcmdldC5hdHRyKCdkYXRhLXlvdXR1YmUtaWQnKSB8fCB0YXJnZXQuYXR0cignZGF0YS12emFhci1pZCcpLAoJCQkJd2lkdGggPSB0YXJnZXQuYXR0cignZGF0YS13aWR0aCcpIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MudmlkZW9XaWR0aCwKCQkJCWhlaWdodCA9IHRhcmdldC5hdHRyKCdkYXRhLWhlaWdodCcpIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MudmlkZW9IZWlnaHQsCgkJCQl1cmwgPSB0YXJnZXQuYXR0cignaHJlZicpOwoKCQlpZiAodXJsKSB7CgoJCQkvKgoJCQkJCVBhcnNlcyB0aGUgaWQncyBvdXQgb2YgdGhlIGZvbGxvd2luZyB1cmxzIChhbmQgcHJvYmFibHkgbW9yZSk6CgkJCQkJaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj06aWQKCQkJCQlodHRwczovL3lvdXR1LmJlLzppZAoJCQkJCWh0dHBzOi8vdmltZW8uY29tLzppZAoJCQkJCWh0dHBzOi8vdmltZW8uY29tL2NoYW5uZWxzLzpjaGFubmVsLzppZAoJCQkJCWh0dHBzOi8vdmltZW8uY29tL2dyb3Vwcy86Z3JvdXAvdmlkZW9zLzppZAoJCQkJCWh0dHBzOi8vYXBwLnZ6YWFyLmNvbS92aWRlb3MvOmlkCgoJCQkJCVZpc3VhbCBleGFtcGxlOiBodHRwczovL3JlZ2V4cGVyLmNvbS8jKGh0dHAlM0ElN0NodHRwcyUzQSU3QyklNUMlMkYlNUMlMkYocGxheWVyLiU3Q3d3dy4lN0NhcHAuKSUzRih2aW1lbyU1Qy5jb20lN0N5b3V0dShiZSU1Qy5jb20lN0MlNUMuYmUlN0NiZSU1Qy5nb29nbGVhcGlzJTVDLmNvbSklN0N2emFhciU1Qy5jb20pJTVDJTJGKHZpZGVvJTVDJTJGJTdDdmlkZW9zJTVDJTJGJTdDZW1iZWQlNUMlMkYlN0NjaGFubmVscyU1QyUyRi4lMkIlNUMlMkYlN0Nncm91cHMlNUMlMkYuJTJCJTVDJTJGJTdDd2F0Y2glNUMlM0Z2JTNEJTdDdiU1QyUyRiklM0YoJTVCQS1aYS16MC05Ll8lMjUtJTVEKikoJTVDJTI2JTVDUyUyQiklM0YKCQkJKi8KCgkJCWlkID0gdXJsLm1hdGNoKC8oaHR0cDp8aHR0cHM6fClcL1wvKHBsYXllci58d3d3LnxhcHAuKT8odmltZW9cLmNvbXx5b3V0dShiZVwuY29tfFwuYmV8YmVcLmdvb2dsZWFwaXNcLmNvbSl8dnphYXJcLmNvbSlcLyh2aWRlb1wvfHZpZGVvc1wvfGVtYmVkXC98Y2hhbm5lbHNcLy4rXC98Z3JvdXBzXC8uK1wvfHdhdGNoXD92PXx2XC8pPyhbQS1aYS16MC05Ll8lLV0qKShcJlxTKyk/Lyk7CgoJCQlpZiAoaWRbM10uaW5kZXhPZigneW91dHUnKSA+IC0xKSB7CgkJCQl0eXBlID0gJ3lvdXR1YmUnOwoJCQl9IGVsc2UgaWYgKGlkWzNdLmluZGV4T2YoJ3ZpbWVvJykgPiAtMSkgewoJCQkJdHlwZSA9ICd2aW1lbyc7CgkJCX0gZWxzZSBpZiAoaWRbM10uaW5kZXhPZigndnphYXInKSA+IC0xKSB7CgkJCQl0eXBlID0gJ3Z6YWFyJzsKCQkJfSBlbHNlIHsKCQkJCXRocm93IG5ldyBFcnJvcignVmlkZW8gVVJMIG5vdCBzdXBwb3J0ZWQuJyk7CgkJCX0KCQkJaWQgPSBpZFs2XTsKCQl9IGVsc2UgewoJCQl0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgdmlkZW8gVVJMLicpOwoJCX0KCgkJdGhpcy5fdmlkZW9zW3VybF0gPSB7CgkJCXR5cGU6IHR5cGUsCgkJCWlkOiBpZCwKCQkJd2lkdGg6IHdpZHRoLAoJCQloZWlnaHQ6IGhlaWdodAoJCX07CgoJCWl0ZW0uYXR0cignZGF0YS12aWRlbycsIHVybCk7CgoJCXRoaXMudGh1bWJuYWlsKHRhcmdldCwgdGhpcy5fdmlkZW9zW3VybF0pOwoJfTsKCgkvKioKCSAqIENyZWF0ZXMgdmlkZW8gdGh1bWJuYWlsLgoJICogQHByb3RlY3RlZAoJICogQHBhcmFtIHtqUXVlcnl9IHRhcmdldCAtIFRoZSB0YXJnZXQgY29udGFpbmluZyB0aGUgdmlkZW8gZGF0YS4KCSAqIEBwYXJhbSB7T2JqZWN0fSBpbmZvIC0gVGhlIHZpZGVvIGluZm8gb2JqZWN0LgoJICogQHNlZSBgZmV0Y2hgCgkgKi8KCVZpZGVvLnByb3RvdHlwZS50aHVtYm5haWwgPSBmdW5jdGlvbih0YXJnZXQsIHZpZGVvKSB7CgkJdmFyIHRuTGluaywKCQkJaWNvbiwKCQkJcGF0aCwKCQkJZGltZW5zaW9ucyA9IHZpZGVvLndpZHRoICYmIHZpZGVvLmhlaWdodCA/ICdzdHlsZT0id2lkdGg6JyArIHZpZGVvLndpZHRoICsgJ3B4O2hlaWdodDonICsgdmlkZW8uaGVpZ2h0ICsgJ3B4OyInIDogJycsCgkJCWN1c3RvbVRuID0gdGFyZ2V0LmZpbmQoJ2ltZycpLAoJCQlzcmNUeXBlID0gJ3NyYycsCgkJCWxhenlDbGFzcyA9ICcnLAoJCQlzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsCgkJCWNyZWF0ZSA9IGZ1bmN0aW9uKHBhdGgpIHsKCQkJCWljb24gPSAnPGRpdiBjbGFzcz0ib3dsLXZpZGVvLXBsYXktaWNvbiI+PC9kaXY+JzsKCgkJCQlpZiAoc2V0dGluZ3MubGF6eUxvYWQpIHsKCQkJCQl0bkxpbmsgPSAnPGRpdiBjbGFzcz0ib3dsLXZpZGVvLXRuICcgKyBsYXp5Q2xhc3MgKyAnIiAnICsgc3JjVHlwZSArICc9IicgKyBwYXRoICsgJyI+PC9kaXY+JzsKCQkJCX0gZWxzZSB7CgkJCQkJdG5MaW5rID0gJzxkaXYgY2xhc3M9Im93bC12aWRlby10biIgc3R5bGU9Im9wYWNpdHk6MTtiYWNrZ3JvdW5kLWltYWdlOnVybCgnICsgcGF0aCArICcpIj48L2Rpdj4nOwoJCQkJfQoJCQkJdGFyZ2V0LmFmdGVyKHRuTGluayk7CgkJCQl0YXJnZXQuYWZ0ZXIoaWNvbik7CgkJCX07CgoJCS8vIHdyYXAgdmlkZW8gY29udGVudCBpbnRvIG93bC12aWRlby13cmFwcGVyIGRpdgoJCXRhcmdldC53cmFwKCc8ZGl2IGNsYXNzPSJvd2wtdmlkZW8td3JhcHBlciInICsgZGltZW5zaW9ucyArICc+PC9kaXY+Jyk7CgoJCWlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmxhenlMb2FkKSB7CgkJCXNyY1R5cGUgPSAnZGF0YS1zcmMnOwoJCQlsYXp5Q2xhc3MgPSAnb3dsLWxhenknOwoJCX0KCgkJLy8gY3VzdG9tIHRodW1ibmFpbAoJCWlmIChjdXN0b21Ubi5sZW5ndGgpIHsKCQkJY3JlYXRlKGN1c3RvbVRuLmF0dHIoc3JjVHlwZSkpOwoJCQljdXN0b21Ubi5yZW1vdmUoKTsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJaWYgKHZpZGVvLnR5cGUgPT09ICd5b3V0dWJlJykgewoJCQlwYXRoID0gIi8vaW1nLnlvdXR1YmUuY29tL3ZpLyIgKyB2aWRlby5pZCArICIvaHFkZWZhdWx0LmpwZyI7CgkJCWNyZWF0ZShwYXRoKTsKCQl9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2aW1lbycpIHsKCQkJJC5hamF4KHsKCQkJCXR5cGU6ICdHRVQnLAoJCQkJdXJsOiAnLy92aW1lby5jb20vYXBpL3YyL3ZpZGVvLycgKyB2aWRlby5pZCArICcuanNvbicsCgkJCQlqc29ucDogJ2NhbGxiYWNrJywKCQkJCWRhdGFUeXBlOiAnanNvbnAnLAoJCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgewoJCQkJCXBhdGggPSBkYXRhWzBdLnRodW1ibmFpbF9sYXJnZTsKCQkJCQljcmVhdGUocGF0aCk7CgkJCQl9CgkJCX0pOwoJCX0gZWxzZSBpZiAodmlkZW8udHlwZSA9PT0gJ3Z6YWFyJykgewoJCQkkLmFqYXgoewoJCQkJdHlwZTogJ0dFVCcsCgkJCQl1cmw6ICcvL3Z6YWFyLmNvbS9hcGkvdmlkZW9zLycgKyB2aWRlby5pZCArICcuanNvbicsCgkJCQlqc29ucDogJ2NhbGxiYWNrJywKCQkJCWRhdGFUeXBlOiAnanNvbnAnLAoJCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgewoJCQkJCXBhdGggPSBkYXRhLmZyYW1lZ3JhYl91cmw7CgkJCQkJY3JlYXRlKHBhdGgpOwoJCQkJfQoJCQl9KTsKCQl9Cgl9OwoKCS8qKgoJICogU3RvcHMgdGhlIGN1cnJlbnQgdmlkZW8uCgkgKiBAcHVibGljCgkgKi8KCVZpZGVvLnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24oKSB7CgkJdGhpcy5fY29yZS50cmlnZ2VyKCdzdG9wJywgbnVsbCwgJ3ZpZGVvJyk7CgkJdGhpcy5fcGxheWluZy5maW5kKCcub3dsLXZpZGVvLWZyYW1lJykucmVtb3ZlKCk7CgkJdGhpcy5fcGxheWluZy5yZW1vdmVDbGFzcygnb3dsLXZpZGVvLXBsYXlpbmcnKTsKCQl0aGlzLl9wbGF5aW5nID0gbnVsbDsKCQl0aGlzLl9jb3JlLmxlYXZlKCdwbGF5aW5nJyk7CgkJdGhpcy5fY29yZS50cmlnZ2VyKCdzdG9wcGVkJywgbnVsbCwgJ3ZpZGVvJyk7Cgl9OwoKCS8qKgoJICogU3RhcnRzIHRoZSBjdXJyZW50IHZpZGVvLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgYXJndW1lbnRzLgoJICovCglWaWRlby5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uKGV2ZW50KSB7CgkJdmFyIHRhcmdldCA9ICQoZXZlbnQudGFyZ2V0KSwKCQkJaXRlbSA9IHRhcmdldC5jbG9zZXN0KCcuJyArIHRoaXMuX2NvcmUuc2V0dGluZ3MuaXRlbUNsYXNzKSwKCQkJdmlkZW8gPSB0aGlzLl92aWRlb3NbaXRlbS5hdHRyKCdkYXRhLXZpZGVvJyldLAoJCQl3aWR0aCA9IHZpZGVvLndpZHRoIHx8ICcxMDAlJywKCQkJaGVpZ2h0ID0gdmlkZW8uaGVpZ2h0IHx8IHRoaXMuX2NvcmUuJHN0YWdlLmhlaWdodCgpLAoJCQlodG1sOwoKCQlpZiAodGhpcy5fcGxheWluZykgewoJCQlyZXR1cm47CgkJfQoKCQl0aGlzLl9jb3JlLmVudGVyKCdwbGF5aW5nJyk7CgkJdGhpcy5fY29yZS50cmlnZ2VyKCdwbGF5JywgbnVsbCwgJ3ZpZGVvJyk7CgoJCWl0ZW0gPSB0aGlzLl9jb3JlLml0ZW1zKHRoaXMuX2NvcmUucmVsYXRpdmUoaXRlbS5pbmRleCgpKSk7CgoJCXRoaXMuX2NvcmUucmVzZXQoaXRlbS5pbmRleCgpKTsKCgkJaWYgKHZpZGVvLnR5cGUgPT09ICd5b3V0dWJlJykgewoJCQlodG1sID0gJzxpZnJhbWUgd2lkdGg9IicgKyB3aWR0aCArICciIGhlaWdodD0iJyArIGhlaWdodCArICciIHNyYz0iLy93d3cueW91dHViZS5jb20vZW1iZWQvJyArCgkJCQl2aWRlby5pZCArICc/YXV0b3BsYXk9MSZ2PScgKyB2aWRlby5pZCArICciIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JzsKCQl9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT09ICd2aW1lbycpIHsKCQkJaHRtbCA9ICc8aWZyYW1lIHNyYz0iLy9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLycgKyB2aWRlby5pZCArCgkJCQknP2F1dG9wbGF5PTEiIHdpZHRoPSInICsgd2lkdGggKyAnIiBoZWlnaHQ9IicgKyBoZWlnaHQgKwoJCQkJJyIgZnJhbWVib3JkZXI9IjAiIHdlYmtpdGFsbG93ZnVsbHNjcmVlbiBtb3phbGxvd2Z1bGxzY3JlZW4gYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPic7CgkJfSBlbHNlIGlmICh2aWRlby50eXBlID09PSAndnphYXInKSB7CgkJCWh0bWwgPSAnPGlmcmFtZSBmcmFtZWJvcmRlcj0iMCInICsgJ2hlaWdodD0iJyArIGhlaWdodCArICciJyArICd3aWR0aD0iJyArIHdpZHRoICsKCQkJCSciIGFsbG93ZnVsbHNjcmVlbiBtb3phbGxvd2Z1bGxzY3JlZW4gd2Via2l0QWxsb3dGdWxsU2NyZWVuICcgKwoJCQkJJ3NyYz0iLy92aWV3LnZ6YWFyLmNvbS8nICsgdmlkZW8uaWQgKyAnL3BsYXllcj9hdXRvcGxheT10cnVlIj48L2lmcmFtZT4nOwoJCX0KCgkJJCgnPGRpdiBjbGFzcz0ib3dsLXZpZGVvLWZyYW1lIj4nICsgaHRtbCArICc8L2Rpdj4nKS5pbnNlcnRBZnRlcihpdGVtLmZpbmQoJy5vd2wtdmlkZW8nKSk7CgoJCXRoaXMuX3BsYXlpbmcgPSBpdGVtLmFkZENsYXNzKCdvd2wtdmlkZW8tcGxheWluZycpOwoJfTsKCgkvKioKCSAqIENoZWNrcyB3aGV0aGVyIGFuIHZpZGVvIGlzIGN1cnJlbnRseSBpbiBmdWxsIHNjcmVlbiBtb2RlIG9yIG5vdC4KCSAqIEB0b2RvIEJhZCBzdHlsZSBiZWNhdXNlIGxvb2tzIGxpa2UgYSByZWFkb25seSBtZXRob2QgYnV0IGNoYW5nZXMgbWVtYmVycy4KCSAqIEBwcm90ZWN0ZWQKCSAqIEByZXR1cm5zIHtCb29sZWFufQoJICovCglWaWRlby5wcm90b3R5cGUuaXNJbkZ1bGxTY3JlZW4gPSBmdW5jdGlvbigpIHsKCQl2YXIgZWxlbWVudCA9IGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50IHx8CgkJCQlkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudDsKCgkJcmV0dXJuIGVsZW1lbnQgJiYgJChlbGVtZW50KS5wYXJlbnQoKS5oYXNDbGFzcygnb3dsLXZpZGVvLWZyYW1lJyk7Cgl9OwoKCS8qKgoJICogRGVzdHJveXMgdGhlIHBsdWdpbi4KCSAqLwoJVmlkZW8ucHJvdG90eXBlLmRlc3Ryb3kgPSBmdW5jdGlvbigpIHsKCQl2YXIgaGFuZGxlciwgcHJvcGVydHk7CgoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKCdjbGljay5vd2wudmlkZW8nKTsKCgkJZm9yIChoYW5kbGVyIGluIHRoaXMuX2hhbmRsZXJzKSB7CgkJCXRoaXMuX2NvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuX2hhbmRsZXJzW2hhbmRsZXJdKTsKCQl9CgkJZm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkgewoJCQl0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTsKCQl9Cgl9OwoKCSQuZm4ub3dsQ2Fyb3VzZWwuQ29uc3RydWN0b3IuUGx1Z2lucy5WaWRlbyA9IFZpZGVvOwoKfSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpOwoKLyoqCiAqIEFuaW1hdGUgUGx1Z2luCiAqIEB2ZXJzaW9uIDIuMS4wCiAqIEBhdXRob3IgQmFydG9zeiBXb2pjaWVjaG93c2tpCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaAogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKICovCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7CgoJLyoqCgkgKiBDcmVhdGVzIHRoZSBhbmltYXRlIHBsdWdpbi4KCSAqIEBjbGFzcyBUaGUgTmF2aWdhdGlvbiBQbHVnaW4KCSAqIEBwYXJhbSB7T3dsfSBzY29wZSAtIFRoZSBPd2wgQ2Fyb3VzZWwKCSAqLwoJdmFyIEFuaW1hdGUgPSBmdW5jdGlvbihzY29wZSkgewoJCXRoaXMuY29yZSA9IHNjb3BlOwoJCXRoaXMuY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIEFuaW1hdGUuRGVmYXVsdHMsIHRoaXMuY29yZS5vcHRpb25zKTsKCQl0aGlzLnN3YXBwaW5nID0gdHJ1ZTsKCQl0aGlzLnByZXZpb3VzID0gdW5kZWZpbmVkOwoJCXRoaXMubmV4dCA9IHVuZGVmaW5lZDsKCgkJdGhpcy5oYW5kbGVycyA9IHsKCQkJJ2NoYW5nZS5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSAmJiBlLnByb3BlcnR5Lm5hbWUgPT0gJ3Bvc2l0aW9uJykgewoJCQkJCXRoaXMucHJldmlvdXMgPSB0aGlzLmNvcmUuY3VycmVudCgpOwoJCQkJCXRoaXMubmV4dCA9IGUucHJvcGVydHkudmFsdWU7CgkJCQl9CgkJCX0sIHRoaXMpLAoJCQknZHJhZy5vd2wuY2Fyb3VzZWwgZHJhZ2dlZC5vd2wuY2Fyb3VzZWwgdHJhbnNsYXRlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSkgewoJCQkJCXRoaXMuc3dhcHBpbmcgPSBlLnR5cGUgPT0gJ3RyYW5zbGF0ZWQnOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ3RyYW5zbGF0ZS5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLnN3YXBwaW5nICYmICh0aGlzLmNvcmUub3B0aW9ucy5hbmltYXRlT3V0IHx8IHRoaXMuY29yZS5vcHRpb25zLmFuaW1hdGVJbikpIHsKCQkJCQl0aGlzLnN3YXAoKTsKCQkJCX0KCQkJfSwgdGhpcykKCQl9OwoKCQl0aGlzLmNvcmUuJGVsZW1lbnQub24odGhpcy5oYW5kbGVycyk7Cgl9OwoKCS8qKgoJICogRGVmYXVsdCBvcHRpb25zLgoJICogQHB1YmxpYwoJICovCglBbmltYXRlLkRlZmF1bHRzID0gewoJCWFuaW1hdGVPdXQ6IGZhbHNlLAoJCWFuaW1hdGVJbjogZmFsc2UKCX07CgoJLyoqCgkgKiBUb2dnbGVzIHRoZSBhbmltYXRpb24gY2xhc3NlcyB3aGVuZXZlciBhbiB0cmFuc2xhdGlvbnMgc3RhcnRzLgoJICogQHByb3RlY3RlZAoJICogQHJldHVybnMge0Jvb2xlYW58dW5kZWZpbmVkfQoJICovCglBbmltYXRlLnByb3RvdHlwZS5zd2FwID0gZnVuY3Rpb24oKSB7CgoJCWlmICh0aGlzLmNvcmUuc2V0dGluZ3MuaXRlbXMgIT09IDEpIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCEkLnN1cHBvcnQuYW5pbWF0aW9uIHx8ICEkLnN1cHBvcnQudHJhbnNpdGlvbikgewoJCQlyZXR1cm47CgkJfQoKCQl0aGlzLmNvcmUuc3BlZWQoMCk7CgoJCXZhciBsZWZ0LAoJCQljbGVhciA9ICQucHJveHkodGhpcy5jbGVhciwgdGhpcyksCgkJCXByZXZpb3VzID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMucHJldmlvdXMpLAoJCQluZXh0ID0gdGhpcy5jb3JlLiRzdGFnZS5jaGlsZHJlbigpLmVxKHRoaXMubmV4dCksCgkJCWluY29taW5nID0gdGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVJbiwKCQkJb3V0Z29pbmcgPSB0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZU91dDsKCgkJaWYgKHRoaXMuY29yZS5jdXJyZW50KCkgPT09IHRoaXMucHJldmlvdXMpIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKG91dGdvaW5nKSB7CgkJCWxlZnQgPSB0aGlzLmNvcmUuY29vcmRpbmF0ZXModGhpcy5wcmV2aW91cykgLSB0aGlzLmNvcmUuY29vcmRpbmF0ZXModGhpcy5uZXh0KTsKCQkJcHJldmlvdXMub25lKCQuc3VwcG9ydC5hbmltYXRpb24uZW5kLCBjbGVhcikKCQkJCS5jc3MoIHsgJ2xlZnQnOiBsZWZ0ICsgJ3B4JyB9ICkKCQkJCS5hZGRDbGFzcygnYW5pbWF0ZWQgb3dsLWFuaW1hdGVkLW91dCcpCgkJCQkuYWRkQ2xhc3Mob3V0Z29pbmcpOwoJCX0KCgkJaWYgKGluY29taW5nKSB7CgkJCW5leHQub25lKCQuc3VwcG9ydC5hbmltYXRpb24uZW5kLCBjbGVhcikKCQkJCS5hZGRDbGFzcygnYW5pbWF0ZWQgb3dsLWFuaW1hdGVkLWluJykKCQkJCS5hZGRDbGFzcyhpbmNvbWluZyk7CgkJfQoJfTsKCglBbmltYXRlLnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uKGUpIHsKCQkkKGUudGFyZ2V0KS5jc3MoIHsgJ2xlZnQnOiAnJyB9ICkKCQkJLnJlbW92ZUNsYXNzKCdhbmltYXRlZCBvd2wtYW5pbWF0ZWQtb3V0IG93bC1hbmltYXRlZC1pbicpCgkJCS5yZW1vdmVDbGFzcyh0aGlzLmNvcmUuc2V0dGluZ3MuYW5pbWF0ZUluKQoJCQkucmVtb3ZlQ2xhc3ModGhpcy5jb3JlLnNldHRpbmdzLmFuaW1hdGVPdXQpOwoJCXRoaXMuY29yZS5vblRyYW5zaXRpb25FbmQoKTsKCX07CgoJLyoqCgkgKiBEZXN0cm95cyB0aGUgcGx1Z2luLgoJICogQHB1YmxpYwoJICovCglBbmltYXRlLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7CgkJdmFyIGhhbmRsZXIsIHByb3BlcnR5OwoKCQlmb3IgKGhhbmRsZXIgaW4gdGhpcy5oYW5kbGVycykgewoJCQl0aGlzLmNvcmUuJGVsZW1lbnQub2ZmKGhhbmRsZXIsIHRoaXMuaGFuZGxlcnNbaGFuZGxlcl0pOwoJCX0KCQlmb3IgKHByb3BlcnR5IGluIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKSB7CgkJCXR5cGVvZiB0aGlzW3Byb3BlcnR5XSAhPSAnZnVuY3Rpb24nICYmICh0aGlzW3Byb3BlcnR5XSA9IG51bGwpOwoJCX0KCX07CgoJJC5mbi5vd2xDYXJvdXNlbC5Db25zdHJ1Y3Rvci5QbHVnaW5zLkFuaW1hdGUgPSBBbmltYXRlOwoKfSkod2luZG93LlplcHRvIHx8IHdpbmRvdy5qUXVlcnksIHdpbmRvdywgZG9jdW1lbnQpOwoKLyoqCiAqIEF1dG9wbGF5IFBsdWdpbgogKiBAdmVyc2lvbiAyLjEuMAogKiBAYXV0aG9yIEJhcnRvc3ogV29qY2llY2hvd3NraQogKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2kKICogQGF1dGhvciBEYXZpZCBEZXV0c2NoCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQogKi8KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsKCgkvKioKCSAqIENyZWF0ZXMgdGhlIGF1dG9wbGF5IHBsdWdpbi4KCSAqIEBjbGFzcyBUaGUgQXV0b3BsYXkgUGx1Z2luCgkgKiBAcGFyYW0ge093bH0gc2NvcGUgLSBUaGUgT3dsIENhcm91c2VsCgkgKi8KCXZhciBBdXRvcGxheSA9IGZ1bmN0aW9uKGNhcm91c2VsKSB7CgkJLyoqCgkJICogUmVmZXJlbmNlIHRvIHRoZSBjb3JlLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T3dsfQoJCSAqLwoJCXRoaXMuX2NvcmUgPSBjYXJvdXNlbDsKCgkJLyoqCgkJICogVGhlIGF1dG9wbGF5IHRpbWVvdXQuCgkJICogQHR5cGUge1RpbWVvdXR9CgkJICovCgkJdGhpcy5fdGltZW91dCA9IG51bGw7CgoJCS8qKgoJCSAqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgYXV0b3BsYXkgaXMgcGF1c2VkLgoJCSAqIEB0eXBlIHtCb29sZWFufQoJCSAqLwoJCXRoaXMuX3BhdXNlZCA9IGZhbHNlOwoKCQkvKioKCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICovCgkJdGhpcy5faGFuZGxlcnMgPSB7CgkJCSdjaGFuZ2VkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKGUubmFtZXNwYWNlICYmIGUucHJvcGVydHkubmFtZSA9PT0gJ3NldHRpbmdzJykgewoJCQkJCWlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5KSB7CgkJCQkJCXRoaXMucGxheSgpOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXRoaXMuc3RvcCgpOwoJCQkJCX0KCQkJCX0gZWxzZSBpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAncG9zaXRpb24nKSB7CgkJCQkJLy9jb25zb2xlLmxvZygncGxheT8nLCBlKTsKCQkJCQlpZiAodGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheSkgewoJCQkJCQl0aGlzLl9zZXRBdXRvUGxheUludGVydmFsKCk7CgkJCQkJfQoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ2luaXRpYWxpemVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXkpIHsKCQkJCQl0aGlzLnBsYXkoKTsKCQkJCX0KCQkJfSwgdGhpcyksCgkJCSdwbGF5Lm93bC5hdXRvcGxheSc6ICQucHJveHkoZnVuY3Rpb24oZSwgdCwgcykgewoJCQkJaWYgKGUubmFtZXNwYWNlKSB7CgkJCQkJdGhpcy5wbGF5KHQsIHMpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ3N0b3Aub3dsLmF1dG9wbGF5JzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UpIHsKCQkJCQl0aGlzLnN0b3AoKTsKCQkJCX0KCQkJfSwgdGhpcyksCgkJCSdtb3VzZW92ZXIub3dsLmF1dG9wbGF5JzogJC5wcm94eShmdW5jdGlvbigpIHsKCQkJCWlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7CgkJCQkJdGhpcy5wYXVzZSgpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ21vdXNlbGVhdmUub3dsLmF1dG9wbGF5JzogJC5wcm94eShmdW5jdGlvbigpIHsKCQkJCWlmICh0aGlzLl9jb3JlLnNldHRpbmdzLmF1dG9wbGF5SG92ZXJQYXVzZSAmJiB0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7CgkJCQkJdGhpcy5wbGF5KCk7CgkJCQl9CgkJCX0sIHRoaXMpLAoJCQkndG91Y2hzdGFydC5vd2wuY29yZSc6ICQucHJveHkoZnVuY3Rpb24oKSB7CgkJCQlpZiAodGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheUhvdmVyUGF1c2UgJiYgdGhpcy5fY29yZS5pcygncm90YXRpbmcnKSkgewoJCQkJCXRoaXMucGF1c2UoKTsKCQkJCX0KCQkJfSwgdGhpcyksCgkJCSd0b3VjaGVuZC5vd2wuY29yZSc6ICQucHJveHkoZnVuY3Rpb24oKSB7CgkJCQlpZiAodGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheUhvdmVyUGF1c2UpIHsKCQkJCQl0aGlzLnBsYXkoKTsKCQkJCX0KCQkJfSwgdGhpcykKCQl9OwoKCQkvLyByZWdpc3RlciBldmVudCBoYW5kbGVycwoJCXRoaXMuX2NvcmUuJGVsZW1lbnQub24odGhpcy5faGFuZGxlcnMpOwoKCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zCgkJdGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIEF1dG9wbGF5LkRlZmF1bHRzLCB0aGlzLl9jb3JlLm9wdGlvbnMpOwoJfTsKCgkvKioKCSAqIERlZmF1bHQgb3B0aW9ucy4KCSAqIEBwdWJsaWMKCSAqLwoJQXV0b3BsYXkuRGVmYXVsdHMgPSB7CgkJYXV0b3BsYXk6IGZhbHNlLAoJCWF1dG9wbGF5VGltZW91dDogNTAwMCwKCQlhdXRvcGxheUhvdmVyUGF1c2U6IGZhbHNlLAoJCWF1dG9wbGF5U3BlZWQ6IGZhbHNlCgl9OwoKCS8qKgoJICogU3RhcnRzIHRoZSBhdXRvcGxheS4KCSAqIEBwdWJsaWMKCSAqIEBwYXJhbSB7TnVtYmVyfSBbdGltZW91dF0gLSBUaGUgaW50ZXJ2YWwgYmVmb3JlIHRoZSBuZXh0IGFuaW1hdGlvbiBzdGFydHMuCgkgKiBAcGFyYW0ge051bWJlcn0gW3NwZWVkXSAtIFRoZSBhbmltYXRpb24gc3BlZWQgZm9yIHRoZSBhbmltYXRpb25zLgoJICovCglBdXRvcGxheS5wcm90b3R5cGUucGxheSA9IGZ1bmN0aW9uKHRpbWVvdXQsIHNwZWVkKSB7CgkJdGhpcy5fcGF1c2VkID0gZmFsc2U7CgoJCWlmICh0aGlzLl9jb3JlLmlzKCdyb3RhdGluZycpKSB7CgkJCXJldHVybjsKCQl9CgoJCXRoaXMuX2NvcmUuZW50ZXIoJ3JvdGF0aW5nJyk7CgoJCXRoaXMuX3NldEF1dG9QbGF5SW50ZXJ2YWwoKTsKCX07CgoJLyoqCgkgKiBHZXRzIGEgbmV3IHRpbWVvdXQKCSAqIEBwcml2YXRlCgkgKiBAcGFyYW0ge051bWJlcn0gW3RpbWVvdXRdIC0gVGhlIGludGVydmFsIGJlZm9yZSB0aGUgbmV4dCBhbmltYXRpb24gc3RhcnRzLgoJICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZF0gLSBUaGUgYW5pbWF0aW9uIHNwZWVkIGZvciB0aGUgYW5pbWF0aW9ucy4KCSAqIEByZXR1cm4ge1RpbWVvdXR9CgkgKi8KCUF1dG9wbGF5LnByb3RvdHlwZS5fZ2V0TmV4dFRpbWVvdXQgPSBmdW5jdGlvbih0aW1lb3V0LCBzcGVlZCkgewoJCWlmICggdGhpcy5fdGltZW91dCApIHsKCQkJd2luZG93LmNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTsKCQl9CgkJcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KCQucHJveHkoZnVuY3Rpb24oKSB7CgkJCWlmICh0aGlzLl9wYXVzZWQgfHwgdGhpcy5fY29yZS5pcygnYnVzeScpIHx8IHRoaXMuX2NvcmUuaXMoJ2ludGVyYWN0aW5nJykgfHwgZG9jdW1lbnQuaGlkZGVuKSB7CgkJCQlyZXR1cm47CgkJCX0KCQkJdGhpcy5fY29yZS5uZXh0KHNwZWVkIHx8IHRoaXMuX2NvcmUuc2V0dGluZ3MuYXV0b3BsYXlTcGVlZCk7CgkJfSwgdGhpcyksIHRpbWVvdXQgfHwgdGhpcy5fY29yZS5zZXR0aW5ncy5hdXRvcGxheVRpbWVvdXQpOwoJfTsKCgkvKioKCSAqIFNldHMgYXV0b3BsYXkgaW4gbW90aW9uLgoJICogQHByaXZhdGUKCSAqLwoJQXV0b3BsYXkucHJvdG90eXBlLl9zZXRBdXRvUGxheUludGVydmFsID0gZnVuY3Rpb24oKSB7CgkJdGhpcy5fdGltZW91dCA9IHRoaXMuX2dldE5leHRUaW1lb3V0KCk7Cgl9OwoKCS8qKgoJICogU3RvcHMgdGhlIGF1dG9wbGF5LgoJICogQHB1YmxpYwoJICovCglBdXRvcGxheS5wcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uKCkgewoJCWlmICghdGhpcy5fY29yZS5pcygncm90YXRpbmcnKSkgewoJCQlyZXR1cm47CgkJfQoKCQl3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpOwoJCXRoaXMuX2NvcmUubGVhdmUoJ3JvdGF0aW5nJyk7Cgl9OwoKCS8qKgoJICogU3RvcHMgdGhlIGF1dG9wbGF5LgoJICogQHB1YmxpYwoJICovCglBdXRvcGxheS5wcm90b3R5cGUucGF1c2UgPSBmdW5jdGlvbigpIHsKCQlpZiAoIXRoaXMuX2NvcmUuaXMoJ3JvdGF0aW5nJykpIHsKCQkJcmV0dXJuOwoJCX0KCgkJdGhpcy5fcGF1c2VkID0gdHJ1ZTsKCX07CgoJLyoqCgkgKiBEZXN0cm95cyB0aGUgcGx1Z2luLgoJICovCglBdXRvcGxheS5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkgewoJCXZhciBoYW5kbGVyLCBwcm9wZXJ0eTsKCgkJdGhpcy5zdG9wKCk7CgoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgewoJCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7CgkJfQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsKCQkJdHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7CgkJfQoJfTsKCgkkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuYXV0b3BsYXkgPSBBdXRvcGxheTsKCn0pKHdpbmRvdy5aZXB0byB8fCB3aW5kb3cualF1ZXJ5LCB3aW5kb3csIGRvY3VtZW50KTsKCi8qKgogKiBOYXZpZ2F0aW9uIFBsdWdpbgogKiBAdmVyc2lvbiAyLjEuMAogKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2kKICogQGF1dGhvciBEYXZpZCBEZXV0c2NoCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQogKi8KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsKCSd1c2Ugc3RyaWN0JzsKCgkvKioKCSAqIENyZWF0ZXMgdGhlIG5hdmlnYXRpb24gcGx1Z2luLgoJICogQGNsYXNzIFRoZSBOYXZpZ2F0aW9uIFBsdWdpbgoJICogQHBhcmFtIHtPd2x9IGNhcm91c2VsIC0gVGhlIE93bCBDYXJvdXNlbC4KCSAqLwoJdmFyIE5hdmlnYXRpb24gPSBmdW5jdGlvbihjYXJvdXNlbCkgewoJCS8qKgoJCSAqIFJlZmVyZW5jZSB0byB0aGUgY29yZS4KCQkgKiBAcHJvdGVjdGVkCgkJICogQHR5cGUge093bH0KCQkgKi8KCQl0aGlzLl9jb3JlID0gY2Fyb3VzZWw7CgoJCS8qKgoJCSAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBwbHVnaW4gaXMgaW5pdGlhbGl6ZWQgb3Igbm90LgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7Qm9vbGVhbn0KCQkgKi8KCQl0aGlzLl9pbml0aWFsaXplZCA9IGZhbHNlOwoKCQkvKioKCQkgKiBUaGUgY3VycmVudCBwYWdpbmcgaW5kZXhlcy4KCQkgKiBAcHJvdGVjdGVkCgkJICogQHR5cGUge0FycmF5fQoJCSAqLwoJCXRoaXMuX3BhZ2VzID0gW107CgoJCS8qKgoJCSAqIEFsbCBET00gZWxlbWVudHMgb2YgdGhlIHVzZXIgaW50ZXJmYWNlLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T2JqZWN0fQoJCSAqLwoJCXRoaXMuX2NvbnRyb2xzID0ge307CgoJCS8qKgoJCSAqIE1hcmt1cCBmb3IgYW4gaW5kaWNhdG9yLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7QXJyYXkuPFN0cmluZz59CgkJICovCgkJdGhpcy5fdGVtcGxhdGVzID0gW107CgoJCS8qKgoJCSAqIFRoZSBjYXJvdXNlbCBlbGVtZW50LgoJCSAqIEB0eXBlIHtqUXVlcnl9CgkJICovCgkJdGhpcy4kZWxlbWVudCA9IHRoaXMuX2NvcmUuJGVsZW1lbnQ7CgoJCS8qKgoJCSAqIE92ZXJyaWRkZW4gbWV0aG9kcyBvZiB0aGUgY2Fyb3VzZWwuCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICovCgkJdGhpcy5fb3ZlcnJpZGVzID0gewoJCQluZXh0OiB0aGlzLl9jb3JlLm5leHQsCgkJCXByZXY6IHRoaXMuX2NvcmUucHJldiwKCQkJdG86IHRoaXMuX2NvcmUudG8KCQl9OwoKCQkvKioKCQkgKiBBbGwgZXZlbnQgaGFuZGxlcnMuCgkJICogQHByb3RlY3RlZAoJCSAqIEB0eXBlIHtPYmplY3R9CgkJICovCgkJdGhpcy5faGFuZGxlcnMgPSB7CgkJCSdwcmVwYXJlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSAmJiB0aGlzLl9jb3JlLnNldHRpbmdzLmRvdHNEYXRhKSB7CgkJCQkJdGhpcy5fdGVtcGxhdGVzLnB1c2goJzxkaXYgY2xhc3M9IicgKyB0aGlzLl9jb3JlLnNldHRpbmdzLmRvdENsYXNzICsgJyI+JyArCgkJCQkJCSQoZS5jb250ZW50KS5maW5kKCdbZGF0YS1kb3RdJykuYWRkQmFjaygnW2RhdGEtZG90XScpLmF0dHIoJ2RhdGEtZG90JykgKyAnPC9kaXY+Jyk7CgkJCQl9CgkJCX0sIHRoaXMpLAoJCQknYWRkZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSkgewoJCQkJCXRoaXMuX3RlbXBsYXRlcy5zcGxpY2UoZS5wb3NpdGlvbiwgMCwgdGhpcy5fdGVtcGxhdGVzLnBvcCgpKTsKCQkJCX0KCQkJfSwgdGhpcyksCgkJCSdyZW1vdmUub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5kb3RzRGF0YSkgewoJCQkJCXRoaXMuX3RlbXBsYXRlcy5zcGxpY2UoZS5wb3NpdGlvbiwgMSk7CgkJCQl9CgkJCX0sIHRoaXMpLAoJCQknY2hhbmdlZC5vd2wuY2Fyb3VzZWwnOiAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCWlmIChlLm5hbWVzcGFjZSAmJiBlLnByb3BlcnR5Lm5hbWUgPT0gJ3Bvc2l0aW9uJykgewoJCQkJCXRoaXMuZHJhdygpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ2luaXRpYWxpemVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKGUubmFtZXNwYWNlICYmICF0aGlzLl9pbml0aWFsaXplZCkgewoJCQkJCXRoaXMuX2NvcmUudHJpZ2dlcignaW5pdGlhbGl6ZScsIG51bGwsICduYXZpZ2F0aW9uJyk7CgkJCQkJdGhpcy5pbml0aWFsaXplKCk7CgkJCQkJdGhpcy51cGRhdGUoKTsKCQkJCQl0aGlzLmRyYXcoKTsKCQkJCQl0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7CgkJCQkJdGhpcy5fY29yZS50cmlnZ2VyKCdpbml0aWFsaXplZCcsIG51bGwsICduYXZpZ2F0aW9uJyk7CgkJCQl9CgkJCX0sIHRoaXMpLAoJCQkncmVmcmVzaGVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKGUubmFtZXNwYWNlICYmIHRoaXMuX2luaXRpYWxpemVkKSB7CgkJCQkJdGhpcy5fY29yZS50cmlnZ2VyKCdyZWZyZXNoJywgbnVsbCwgJ25hdmlnYXRpb24nKTsKCQkJCQl0aGlzLnVwZGF0ZSgpOwoJCQkJCXRoaXMuZHJhdygpOwoJCQkJCXRoaXMuX2NvcmUudHJpZ2dlcigncmVmcmVzaGVkJywgbnVsbCwgJ25hdmlnYXRpb24nKTsKCQkJCX0KCQkJfSwgdGhpcykKCQl9OwoKCQkvLyBzZXQgZGVmYXVsdCBvcHRpb25zCgkJdGhpcy5fY29yZS5vcHRpb25zID0gJC5leHRlbmQoe30sIE5hdmlnYXRpb24uRGVmYXVsdHMsIHRoaXMuX2NvcmUub3B0aW9ucyk7CgoJCS8vIHJlZ2lzdGVyIGV2ZW50IGhhbmRsZXJzCgkJdGhpcy4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7Cgl9OwoKCS8qKgoJICogRGVmYXVsdCBvcHRpb25zLgoJICogQHB1YmxpYwoJICogQHRvZG8gUmVuYW1lIGBzbGlkZUJ5YCB0byBgbmF2QnlgCgkgKi8KCU5hdmlnYXRpb24uRGVmYXVsdHMgPSB7CgkJbmF2OiBmYWxzZSwKCQluYXZUZXh0OiBbICdwcmV2JywgJ25leHQnIF0sCgkJbmF2U3BlZWQ6IGZhbHNlLAoJCW5hdkVsZW1lbnQ6ICdkaXYnLAoJCW5hdkNvbnRhaW5lcjogZmFsc2UsCgkJbmF2Q29udGFpbmVyQ2xhc3M6ICdvd2wtbmF2JywKCQluYXZDbGFzczogWyAnb3dsLXByZXYnLCAnb3dsLW5leHQnIF0sCgkJc2xpZGVCeTogMSwKCQlkb3RDbGFzczogJ293bC1kb3QnLAoJCWRvdHNDbGFzczogJ293bC1kb3RzJywKCQlkb3RzOiB0cnVlLAoJCWRvdHNFYWNoOiBmYWxzZSwKCQlkb3RzRGF0YTogZmFsc2UsCgkJZG90c1NwZWVkOiBmYWxzZSwKCQlkb3RzQ29udGFpbmVyOiBmYWxzZQoJfTsKCgkvKioKCSAqIEluaXRpYWxpemVzIHRoZSBsYXlvdXQgb2YgdGhlIHBsdWdpbiBhbmQgZXh0ZW5kcyB0aGUgY2Fyb3VzZWwuCgkgKiBAcHJvdGVjdGVkCgkgKi8KCU5hdmlnYXRpb24ucHJvdG90eXBlLmluaXRpYWxpemUgPSBmdW5jdGlvbigpIHsKCQl2YXIgb3ZlcnJpZGUsCgkJCXNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5nczsKCgkJLy8gY3JlYXRlIERPTSBzdHJ1Y3R1cmUgZm9yIHJlbGF0aXZlIG5hdmlnYXRpb24KCQl0aGlzLl9jb250cm9scy4kcmVsYXRpdmUgPSAoc2V0dGluZ3MubmF2Q29udGFpbmVyID8gJChzZXR0aW5ncy5uYXZDb250YWluZXIpCgkJCTogJCgnPGRpdj4nKS5hZGRDbGFzcyhzZXR0aW5ncy5uYXZDb250YWluZXJDbGFzcykuYXBwZW5kVG8odGhpcy4kZWxlbWVudCkpLmFkZENsYXNzKCdkaXNhYmxlZCcpOwoKCQl0aGlzLl9jb250cm9scy4kcHJldmlvdXMgPSAkKCc8JyArIHNldHRpbmdzLm5hdkVsZW1lbnQgKyAnPicpCgkJCS5hZGRDbGFzcyhzZXR0aW5ncy5uYXZDbGFzc1swXSkKCQkJLmh0bWwoc2V0dGluZ3MubmF2VGV4dFswXSkKCQkJLnByZXBlbmRUbyh0aGlzLl9jb250cm9scy4kcmVsYXRpdmUpCgkJCS5vbignY2xpY2snLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJCXRoaXMucHJldihzZXR0aW5ncy5uYXZTcGVlZCk7CgkJCX0sIHRoaXMpKTsKCQl0aGlzLl9jb250cm9scy4kbmV4dCA9ICQoJzwnICsgc2V0dGluZ3MubmF2RWxlbWVudCArICc+JykKCQkJLmFkZENsYXNzKHNldHRpbmdzLm5hdkNsYXNzWzFdKQoJCQkuaHRtbChzZXR0aW5ncy5uYXZUZXh0WzFdKQoJCQkuYXBwZW5kVG8odGhpcy5fY29udHJvbHMuJHJlbGF0aXZlKQoJCQkub24oJ2NsaWNrJywgJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQl0aGlzLm5leHQoc2V0dGluZ3MubmF2U3BlZWQpOwoJCQl9LCB0aGlzKSk7CgoJCS8vIGNyZWF0ZSBET00gc3RydWN0dXJlIGZvciBhYnNvbHV0ZSBuYXZpZ2F0aW9uCgkJaWYgKCFzZXR0aW5ncy5kb3RzRGF0YSkgewoJCQl0aGlzLl90ZW1wbGF0ZXMgPSBbICQoJzxkaXY+JykKCQkJCS5hZGRDbGFzcyhzZXR0aW5ncy5kb3RDbGFzcykKCQkJCS5hcHBlbmQoJCgnPHNwYW4+JykpCgkJCQkucHJvcCgnb3V0ZXJIVE1MJykgXTsKCQl9CgoJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZSA9IChzZXR0aW5ncy5kb3RzQ29udGFpbmVyID8gJChzZXR0aW5ncy5kb3RzQ29udGFpbmVyKQoJCQk6ICQoJzxkaXY+JykuYWRkQ2xhc3Moc2V0dGluZ3MuZG90c0NsYXNzKS5hcHBlbmRUbyh0aGlzLiRlbGVtZW50KSkuYWRkQ2xhc3MoJ2Rpc2FibGVkJyk7CgoJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5vbignY2xpY2snLCAnZGl2JywgJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCXZhciBpbmRleCA9ICQoZS50YXJnZXQpLnBhcmVudCgpLmlzKHRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZSkKCQkJCT8gJChlLnRhcmdldCkuaW5kZXgoKSA6ICQoZS50YXJnZXQpLnBhcmVudCgpLmluZGV4KCk7CgoJCQllLnByZXZlbnREZWZhdWx0KCk7CgoJCQl0aGlzLnRvKGluZGV4LCBzZXR0aW5ncy5kb3RzU3BlZWQpOwoJCX0sIHRoaXMpKTsKCgkJLy8gb3ZlcnJpZGUgcHVibGljIG1ldGhvZHMgb2YgdGhlIGNhcm91c2VsCgkJZm9yIChvdmVycmlkZSBpbiB0aGlzLl9vdmVycmlkZXMpIHsKCQkJdGhpcy5fY29yZVtvdmVycmlkZV0gPSAkLnByb3h5KHRoaXNbb3ZlcnJpZGVdLCB0aGlzKTsKCQl9Cgl9OwoKCS8qKgoJICogRGVzdHJveXMgdGhlIHBsdWdpbi4KCSAqIEBwcm90ZWN0ZWQKCSAqLwoJTmF2aWdhdGlvbi5wcm90b3R5cGUuZGVzdHJveSA9IGZ1bmN0aW9uKCkgewoJCXZhciBoYW5kbGVyLCBjb250cm9sLCBwcm9wZXJ0eSwgb3ZlcnJpZGU7CgoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgewoJCQl0aGlzLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7CgkJfQoJCWZvciAoY29udHJvbCBpbiB0aGlzLl9jb250cm9scykgewoJCQl0aGlzLl9jb250cm9sc1tjb250cm9sXS5yZW1vdmUoKTsKCQl9CgkJZm9yIChvdmVycmlkZSBpbiB0aGlzLm92ZXJpZGVzKSB7CgkJCXRoaXMuX2NvcmVbb3ZlcnJpZGVdID0gdGhpcy5fb3ZlcnJpZGVzW292ZXJyaWRlXTsKCQl9CgkJZm9yIChwcm9wZXJ0eSBpbiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKSkgewoJCQl0eXBlb2YgdGhpc1twcm9wZXJ0eV0gIT0gJ2Z1bmN0aW9uJyAmJiAodGhpc1twcm9wZXJ0eV0gPSBudWxsKTsKCQl9Cgl9OwoKCS8qKgoJICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgc3RhdGUuCgkgKiBAcHJvdGVjdGVkCgkgKi8KCU5hdmlnYXRpb24ucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uKCkgewoJCXZhciBpLCBqLCBrLAoJCQlsb3dlciA9IHRoaXMuX2NvcmUuY2xvbmVzKCkubGVuZ3RoIC8gMiwKCQkJdXBwZXIgPSBsb3dlciArIHRoaXMuX2NvcmUuaXRlbXMoKS5sZW5ndGgsCgkJCW1heGltdW0gPSB0aGlzLl9jb3JlLm1heGltdW0odHJ1ZSksCgkJCXNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5ncywKCQkJc2l6ZSA9IHNldHRpbmdzLmNlbnRlciB8fCBzZXR0aW5ncy5hdXRvV2lkdGggfHwgc2V0dGluZ3MuZG90c0RhdGEKCQkJCT8gMSA6IHNldHRpbmdzLmRvdHNFYWNoIHx8IHNldHRpbmdzLml0ZW1zOwoKCQlpZiAoc2V0dGluZ3Muc2xpZGVCeSAhPT0gJ3BhZ2UnKSB7CgkJCXNldHRpbmdzLnNsaWRlQnkgPSBNYXRoLm1pbihzZXR0aW5ncy5zbGlkZUJ5LCBzZXR0aW5ncy5pdGVtcyk7CgkJfQoKCQlpZiAoc2V0dGluZ3MuZG90cyB8fCBzZXR0aW5ncy5zbGlkZUJ5ID09ICdwYWdlJykgewoJCQl0aGlzLl9wYWdlcyA9IFtdOwoKCQkJZm9yIChpID0gbG93ZXIsIGogPSAwLCBrID0gMDsgaSA8IHVwcGVyOyBpKyspIHsKCQkJCWlmIChqID49IHNpemUgfHwgaiA9PT0gMCkgewoJCQkJCXRoaXMuX3BhZ2VzLnB1c2goewoJCQkJCQlzdGFydDogTWF0aC5taW4obWF4aW11bSwgaSAtIGxvd2VyKSwKCQkJCQkJZW5kOiBpIC0gbG93ZXIgKyBzaXplIC0gMQoJCQkJCX0pOwoJCQkJCWlmIChNYXRoLm1pbihtYXhpbXVtLCBpIC0gbG93ZXIpID09PSBtYXhpbXVtKSB7CgkJCQkJCWJyZWFrOwoJCQkJCX0KCQkJCQlqID0gMCwgKytrOwoJCQkJfQoJCQkJaiArPSB0aGlzLl9jb3JlLm1lcmdlcnModGhpcy5fY29yZS5yZWxhdGl2ZShpKSk7CgkJCX0KCQl9Cgl9OwoKCS8qKgoJICogRHJhd3MgdGhlIHVzZXIgaW50ZXJmYWNlLgoJICogQHRvZG8gVGhlIG9wdGlvbiBgZG90c0RhdGFgIHdvbnQgd29yay4KCSAqIEBwcm90ZWN0ZWQKCSAqLwoJTmF2aWdhdGlvbi5wcm90b3R5cGUuZHJhdyA9IGZ1bmN0aW9uKCkgewoJCXZhciBkaWZmZXJlbmNlLAoJCQlzZXR0aW5ncyA9IHRoaXMuX2NvcmUuc2V0dGluZ3MsCgkJCWRpc2FibGVkID0gdGhpcy5fY29yZS5pdGVtcygpLmxlbmd0aCA8PSBzZXR0aW5ncy5pdGVtcywKCQkJaW5kZXggPSB0aGlzLl9jb3JlLnJlbGF0aXZlKHRoaXMuX2NvcmUuY3VycmVudCgpKSwKCQkJbG9vcCA9IHNldHRpbmdzLmxvb3AgfHwgc2V0dGluZ3MucmV3aW5kOwoKCQl0aGlzLl9jb250cm9scy4kcmVsYXRpdmUudG9nZ2xlQ2xhc3MoJ2Rpc2FibGVkJywgIXNldHRpbmdzLm5hdiB8fCBkaXNhYmxlZCk7CgoJCWlmIChzZXR0aW5ncy5uYXYpIHsKCQkJdGhpcy5fY29udHJvbHMuJHByZXZpb3VzLnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFsb29wICYmIGluZGV4IDw9IHRoaXMuX2NvcmUubWluaW11bSh0cnVlKSk7CgkJCXRoaXMuX2NvbnRyb2xzLiRuZXh0LnRvZ2dsZUNsYXNzKCdkaXNhYmxlZCcsICFsb29wICYmIGluZGV4ID49IHRoaXMuX2NvcmUubWF4aW11bSh0cnVlKSk7CgkJfQoKCQl0aGlzLl9jb250cm9scy4kYWJzb2x1dGUudG9nZ2xlQ2xhc3MoJ2Rpc2FibGVkJywgIXNldHRpbmdzLmRvdHMgfHwgZGlzYWJsZWQpOwoKCQlpZiAoc2V0dGluZ3MuZG90cykgewoJCQlkaWZmZXJlbmNlID0gdGhpcy5fcGFnZXMubGVuZ3RoIC0gdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmNoaWxkcmVuKCkubGVuZ3RoOwoKCQkJaWYgKHNldHRpbmdzLmRvdHNEYXRhICYmIGRpZmZlcmVuY2UgIT09IDApIHsKCQkJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5odG1sKHRoaXMuX3RlbXBsYXRlcy5qb2luKCcnKSk7CgkJCX0gZWxzZSBpZiAoZGlmZmVyZW5jZSA+IDApIHsKCQkJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5hcHBlbmQobmV3IEFycmF5KGRpZmZlcmVuY2UgKyAxKS5qb2luKHRoaXMuX3RlbXBsYXRlc1swXSkpOwoJCQl9IGVsc2UgaWYgKGRpZmZlcmVuY2UgPCAwKSB7CgkJCQl0aGlzLl9jb250cm9scy4kYWJzb2x1dGUuY2hpbGRyZW4oKS5zbGljZShkaWZmZXJlbmNlKS5yZW1vdmUoKTsKCQkJfQoKCQkJdGhpcy5fY29udHJvbHMuJGFic29sdXRlLmZpbmQoJy5hY3RpdmUnKS5yZW1vdmVDbGFzcygnYWN0aXZlJyk7CgkJCXRoaXMuX2NvbnRyb2xzLiRhYnNvbHV0ZS5jaGlsZHJlbigpLmVxKCQuaW5BcnJheSh0aGlzLmN1cnJlbnQoKSwgdGhpcy5fcGFnZXMpKS5hZGRDbGFzcygnYWN0aXZlJyk7CgkJfQoJfTsKCgkvKioKCSAqIEV4dGVuZHMgZXZlbnQgZGF0YS4KCSAqIEBwcm90ZWN0ZWQKCSAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gVGhlIGV2ZW50IG9iamVjdCB3aGljaCBnZXRzIHRocm93bi4KCSAqLwoJTmF2aWdhdGlvbi5wcm90b3R5cGUub25UcmlnZ2VyID0gZnVuY3Rpb24oZXZlbnQpIHsKCQl2YXIgc2V0dGluZ3MgPSB0aGlzLl9jb3JlLnNldHRpbmdzOwoKCQlldmVudC5wYWdlID0gewoJCQlpbmRleDogJC5pbkFycmF5KHRoaXMuY3VycmVudCgpLCB0aGlzLl9wYWdlcyksCgkJCWNvdW50OiB0aGlzLl9wYWdlcy5sZW5ndGgsCgkJCXNpemU6IHNldHRpbmdzICYmIChzZXR0aW5ncy5jZW50ZXIgfHwgc2V0dGluZ3MuYXV0b1dpZHRoIHx8IHNldHRpbmdzLmRvdHNEYXRhCgkJCQk/IDEgOiBzZXR0aW5ncy5kb3RzRWFjaCB8fCBzZXR0aW5ncy5pdGVtcykKCQl9OwoJfTsKCgkvKioKCSAqIEdldHMgdGhlIGN1cnJlbnQgcGFnZSBwb3NpdGlvbiBvZiB0aGUgY2Fyb3VzZWwuCgkgKiBAcHJvdGVjdGVkCgkgKiBAcmV0dXJucyB7TnVtYmVyfQoJICovCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5jdXJyZW50ID0gZnVuY3Rpb24oKSB7CgkJdmFyIGN1cnJlbnQgPSB0aGlzLl9jb3JlLnJlbGF0aXZlKHRoaXMuX2NvcmUuY3VycmVudCgpKTsKCQlyZXR1cm4gJC5ncmVwKHRoaXMuX3BhZ2VzLCAkLnByb3h5KGZ1bmN0aW9uKHBhZ2UsIGluZGV4KSB7CgkJCXJldHVybiBwYWdlLnN0YXJ0IDw9IGN1cnJlbnQgJiYgcGFnZS5lbmQgPj0gY3VycmVudDsKCQl9LCB0aGlzKSkucG9wKCk7Cgl9OwoKCS8qKgoJICogR2V0cyB0aGUgY3VycmVudCBzdWNjZXNvci9wcmVkZWNlc3NvciBwb3NpdGlvbi4KCSAqIEBwcm90ZWN0ZWQKCSAqIEByZXR1cm5zIHtOdW1iZXJ9CgkgKi8KCU5hdmlnYXRpb24ucHJvdG90eXBlLmdldFBvc2l0aW9uID0gZnVuY3Rpb24oc3VjY2Vzc29yKSB7CgkJdmFyIHBvc2l0aW9uLCBsZW5ndGgsCgkJCXNldHRpbmdzID0gdGhpcy5fY29yZS5zZXR0aW5nczsKCgkJaWYgKHNldHRpbmdzLnNsaWRlQnkgPT0gJ3BhZ2UnKSB7CgkJCXBvc2l0aW9uID0gJC5pbkFycmF5KHRoaXMuY3VycmVudCgpLCB0aGlzLl9wYWdlcyk7CgkJCWxlbmd0aCA9IHRoaXMuX3BhZ2VzLmxlbmd0aDsKCQkJc3VjY2Vzc29yID8gKytwb3NpdGlvbiA6IC0tcG9zaXRpb247CgkJCXBvc2l0aW9uID0gdGhpcy5fcGFnZXNbKChwb3NpdGlvbiAlIGxlbmd0aCkgKyBsZW5ndGgpICUgbGVuZ3RoXS5zdGFydDsKCQl9IGVsc2UgewoJCQlwb3NpdGlvbiA9IHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpOwoJCQlsZW5ndGggPSB0aGlzLl9jb3JlLml0ZW1zKCkubGVuZ3RoOwoJCQlzdWNjZXNzb3IgPyBwb3NpdGlvbiArPSBzZXR0aW5ncy5zbGlkZUJ5IDogcG9zaXRpb24gLT0gc2V0dGluZ3Muc2xpZGVCeTsKCQl9CgoJCXJldHVybiBwb3NpdGlvbjsKCX07CgoJLyoqCgkgKiBTbGlkZXMgdG8gdGhlIG5leHQgaXRlbSBvciBwYWdlLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZD1mYWxzZV0gLSBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSB0cmFuc2l0aW9uLgoJICovCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5uZXh0ID0gZnVuY3Rpb24oc3BlZWQpIHsKCQkkLnByb3h5KHRoaXMuX292ZXJyaWRlcy50bywgdGhpcy5fY29yZSkodGhpcy5nZXRQb3NpdGlvbih0cnVlKSwgc3BlZWQpOwoJfTsKCgkvKioKCSAqIFNsaWRlcyB0byB0aGUgcHJldmlvdXMgaXRlbSBvciBwYWdlLgoJICogQHB1YmxpYwoJICogQHBhcmFtIHtOdW1iZXJ9IFtzcGVlZD1mYWxzZV0gLSBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIHRoZSB0cmFuc2l0aW9uLgoJICovCglOYXZpZ2F0aW9uLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24oc3BlZWQpIHsKCQkkLnByb3h5KHRoaXMuX292ZXJyaWRlcy50bywgdGhpcy5fY29yZSkodGhpcy5nZXRQb3NpdGlvbihmYWxzZSksIHNwZWVkKTsKCX07CgoJLyoqCgkgKiBTbGlkZXMgdG8gdGhlIHNwZWNpZmllZCBpdGVtIG9yIHBhZ2UuCgkgKiBAcHVibGljCgkgKiBAcGFyYW0ge051bWJlcn0gcG9zaXRpb24gLSBUaGUgcG9zaXRpb24gb2YgdGhlIGl0ZW0gb3IgcGFnZS4KCSAqIEBwYXJhbSB7TnVtYmVyfSBbc3BlZWRdIC0gVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciB0aGUgdHJhbnNpdGlvbi4KCSAqIEBwYXJhbSB7Qm9vbGVhbn0gW3N0YW5kYXJkPWZhbHNlXSAtIFdoZXRoZXIgdG8gdXNlIHRoZSBzdGFuZGFyZCBiZWhhdmlvdXIgb3Igbm90LgoJICovCglOYXZpZ2F0aW9uLnByb3RvdHlwZS50byA9IGZ1bmN0aW9uKHBvc2l0aW9uLCBzcGVlZCwgc3RhbmRhcmQpIHsKCQl2YXIgbGVuZ3RoOwoKCQlpZiAoIXN0YW5kYXJkICYmIHRoaXMuX3BhZ2VzLmxlbmd0aCkgewoJCQlsZW5ndGggPSB0aGlzLl9wYWdlcy5sZW5ndGg7CgkJCSQucHJveHkodGhpcy5fb3ZlcnJpZGVzLnRvLCB0aGlzLl9jb3JlKSh0aGlzLl9wYWdlc1soKHBvc2l0aW9uICUgbGVuZ3RoKSArIGxlbmd0aCkgJSBsZW5ndGhdLnN0YXJ0LCBzcGVlZCk7CgkJfSBlbHNlIHsKCQkJJC5wcm94eSh0aGlzLl9vdmVycmlkZXMudG8sIHRoaXMuX2NvcmUpKHBvc2l0aW9uLCBzcGVlZCk7CgkJfQoJfTsKCgkkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuTmF2aWdhdGlvbiA9IE5hdmlnYXRpb247Cgp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgovKioKICogSGFzaCBQbHVnaW4KICogQHZlcnNpb24gMi4xLjAKICogQGF1dGhvciBBcnR1cyBLb2xhbm93c2tpCiAqIEBhdXRob3IgRGF2aWQgRGV1dHNjaAogKiBAbGljZW5zZSBUaGUgTUlUIExpY2Vuc2UgKE1JVCkKICovCjsoZnVuY3Rpb24oJCwgd2luZG93LCBkb2N1bWVudCwgdW5kZWZpbmVkKSB7CgkndXNlIHN0cmljdCc7CgoJLyoqCgkgKiBDcmVhdGVzIHRoZSBoYXNoIHBsdWdpbi4KCSAqIEBjbGFzcyBUaGUgSGFzaCBQbHVnaW4KCSAqIEBwYXJhbSB7T3dsfSBjYXJvdXNlbCAtIFRoZSBPd2wgQ2Fyb3VzZWwKCSAqLwoJdmFyIEhhc2ggPSBmdW5jdGlvbihjYXJvdXNlbCkgewoJCS8qKgoJCSAqIFJlZmVyZW5jZSB0byB0aGUgY29yZS4KCQkgKiBAcHJvdGVjdGVkCgkJICogQHR5cGUge093bH0KCQkgKi8KCQl0aGlzLl9jb3JlID0gY2Fyb3VzZWw7CgoJCS8qKgoJCSAqIEhhc2ggaW5kZXggZm9yIHRoZSBpdGVtcy4KCQkgKiBAcHJvdGVjdGVkCgkJICogQHR5cGUge09iamVjdH0KCQkgKi8KCQl0aGlzLl9oYXNoZXMgPSB7fTsKCgkJLyoqCgkJICogVGhlIGNhcm91c2VsIGVsZW1lbnQuCgkJICogQHR5cGUge2pRdWVyeX0KCQkgKi8KCQl0aGlzLiRlbGVtZW50ID0gdGhpcy5fY29yZS4kZWxlbWVudDsKCgkJLyoqCgkJICogQWxsIGV2ZW50IGhhbmRsZXJzLgoJCSAqIEBwcm90ZWN0ZWQKCQkgKiBAdHlwZSB7T2JqZWN0fQoJCSAqLwoJCXRoaXMuX2hhbmRsZXJzID0gewoJCQknaW5pdGlhbGl6ZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgdGhpcy5fY29yZS5zZXR0aW5ncy5zdGFydFBvc2l0aW9uID09PSAnVVJMSGFzaCcpIHsKCQkJCQkkKHdpbmRvdykudHJpZ2dlcignaGFzaGNoYW5nZS5vd2wubmF2aWdhdGlvbicpOwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ3ByZXBhcmVkLm93bC5jYXJvdXNlbCc6ICQucHJveHkoZnVuY3Rpb24oZSkgewoJCQkJaWYgKGUubmFtZXNwYWNlKSB7CgkJCQkJdmFyIGhhc2ggPSAkKGUuY29udGVudCkuZmluZCgnW2RhdGEtaGFzaF0nKS5hZGRCYWNrKCdbZGF0YS1oYXNoXScpLmF0dHIoJ2RhdGEtaGFzaCcpOwoKCQkJCQlpZiAoIWhhc2gpIHsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCgkJCQkJdGhpcy5faGFzaGVzW2hhc2hdID0gZS5jb250ZW50OwoJCQkJfQoJCQl9LCB0aGlzKSwKCQkJJ2NoYW5nZWQub3dsLmNhcm91c2VsJzogJC5wcm94eShmdW5jdGlvbihlKSB7CgkJCQlpZiAoZS5uYW1lc3BhY2UgJiYgZS5wcm9wZXJ0eS5uYW1lID09PSAncG9zaXRpb24nKSB7CgkJCQkJdmFyIGN1cnJlbnQgPSB0aGlzLl9jb3JlLml0ZW1zKHRoaXMuX2NvcmUucmVsYXRpdmUodGhpcy5fY29yZS5jdXJyZW50KCkpKSwKCQkJCQkJaGFzaCA9ICQubWFwKHRoaXMuX2hhc2hlcywgZnVuY3Rpb24oaXRlbSwgaGFzaCkgewoJCQkJCQkJcmV0dXJuIGl0ZW0gPT09IGN1cnJlbnQgPyBoYXNoIDogbnVsbDsKCQkJCQkJfSkuam9pbigpOwoKCQkJCQlpZiAoIWhhc2ggfHwgd2luZG93LmxvY2F0aW9uLmhhc2guc2xpY2UoMSkgPT09IGhhc2gpIHsKCQkJCQkJcmV0dXJuOwoJCQkJCX0KCgkJCQkJd2luZG93LmxvY2F0aW9uLmhhc2ggPSBoYXNoOwoJCQkJfQoJCQl9LCB0aGlzKQoJCX07CgoJCS8vIHNldCBkZWZhdWx0IG9wdGlvbnMKCQl0aGlzLl9jb3JlLm9wdGlvbnMgPSAkLmV4dGVuZCh7fSwgSGFzaC5EZWZhdWx0cywgdGhpcy5fY29yZS5vcHRpb25zKTsKCgkJLy8gcmVnaXN0ZXIgdGhlIGV2ZW50IGhhbmRsZXJzCgkJdGhpcy4kZWxlbWVudC5vbih0aGlzLl9oYW5kbGVycyk7CgoJCS8vIHJlZ2lzdGVyIGV2ZW50IGxpc3RlbmVyIGZvciBoYXNoIG5hdmlnYXRpb24KCQkkKHdpbmRvdykub24oJ2hhc2hjaGFuZ2Uub3dsLm5hdmlnYXRpb24nLCAkLnByb3h5KGZ1bmN0aW9uKGUpIHsKCQkJdmFyIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksCgkJCQlpdGVtcyA9IHRoaXMuX2NvcmUuJHN0YWdlLmNoaWxkcmVuKCksCgkJCQlwb3NpdGlvbiA9IHRoaXMuX2hhc2hlc1toYXNoXSAmJiBpdGVtcy5pbmRleCh0aGlzLl9oYXNoZXNbaGFzaF0pOwoKCQkJaWYgKHBvc2l0aW9uID09PSB1bmRlZmluZWQgfHwgcG9zaXRpb24gPT09IHRoaXMuX2NvcmUuY3VycmVudCgpKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCXRoaXMuX2NvcmUudG8odGhpcy5fY29yZS5yZWxhdGl2ZShwb3NpdGlvbiksIGZhbHNlLCB0cnVlKTsKCQl9LCB0aGlzKSk7Cgl9OwoKCS8qKgoJICogRGVmYXVsdCBvcHRpb25zLgoJICogQHB1YmxpYwoJICovCglIYXNoLkRlZmF1bHRzID0gewoJCVVSTGhhc2hMaXN0ZW5lcjogZmFsc2UKCX07CgoJLyoqCgkgKiBEZXN0cm95cyB0aGUgcGx1Z2luLgoJICogQHB1YmxpYwoJICovCglIYXNoLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7CgkJdmFyIGhhbmRsZXIsIHByb3BlcnR5OwoKCQkkKHdpbmRvdykub2ZmKCdoYXNoY2hhbmdlLm93bC5uYXZpZ2F0aW9uJyk7CgoJCWZvciAoaGFuZGxlciBpbiB0aGlzLl9oYW5kbGVycykgewoJCQl0aGlzLl9jb3JlLiRlbGVtZW50Lm9mZihoYW5kbGVyLCB0aGlzLl9oYW5kbGVyc1toYW5kbGVyXSk7CgkJfQoJCWZvciAocHJvcGVydHkgaW4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpIHsKCQkJdHlwZW9mIHRoaXNbcHJvcGVydHldICE9ICdmdW5jdGlvbicgJiYgKHRoaXNbcHJvcGVydHldID0gbnVsbCk7CgkJfQoJfTsKCgkkLmZuLm93bENhcm91c2VsLkNvbnN0cnVjdG9yLlBsdWdpbnMuSGFzaCA9IEhhc2g7Cgp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgovKioKICogU3VwcG9ydCBQbHVnaW4KICoKICogQHZlcnNpb24gMi4xLjAKICogQGF1dGhvciBWaXZpZCBQbGFuZXQgU29mdHdhcmUgR21iSAogKiBAYXV0aG9yIEFydHVzIEtvbGFub3dza2kKICogQGF1dGhvciBEYXZpZCBEZXV0c2NoCiAqIEBsaWNlbnNlIFRoZSBNSVQgTGljZW5zZSAoTUlUKQogKi8KOyhmdW5jdGlvbigkLCB3aW5kb3csIGRvY3VtZW50LCB1bmRlZmluZWQpIHsKCgl2YXIgc3R5bGUgPSAkKCc8c3VwcG9ydD4nKS5nZXQoMCkuc3R5bGUsCgkJcHJlZml4ZXMgPSAnV2Via2l0IE1veiBPIG1zJy5zcGxpdCgnICcpLAoJCWV2ZW50cyA9IHsKCQkJdHJhbnNpdGlvbjogewoJCQkJZW5kOiB7CgkJCQkJV2Via2l0VHJhbnNpdGlvbjogJ3dlYmtpdFRyYW5zaXRpb25FbmQnLAoJCQkJCU1velRyYW5zaXRpb246ICd0cmFuc2l0aW9uZW5kJywKCQkJCQlPVHJhbnNpdGlvbjogJ29UcmFuc2l0aW9uRW5kJywKCQkJCQl0cmFuc2l0aW9uOiAndHJhbnNpdGlvbmVuZCcKCQkJCX0KCQkJfSwKCQkJYW5pbWF0aW9uOiB7CgkJCQllbmQ6IHsKCQkJCQlXZWJraXRBbmltYXRpb246ICd3ZWJraXRBbmltYXRpb25FbmQnLAoJCQkJCU1vekFuaW1hdGlvbjogJ2FuaW1hdGlvbmVuZCcsCgkJCQkJT0FuaW1hdGlvbjogJ29BbmltYXRpb25FbmQnLAoJCQkJCWFuaW1hdGlvbjogJ2FuaW1hdGlvbmVuZCcKCQkJCX0KCQkJfQoJCX0sCgkJdGVzdHMgPSB7CgkJCWNzc3RyYW5zZm9ybXM6IGZ1bmN0aW9uKCkgewoJCQkJcmV0dXJuICEhdGVzdCgndHJhbnNmb3JtJyk7CgkJCX0sCgkJCWNzc3RyYW5zZm9ybXMzZDogZnVuY3Rpb24oKSB7CgkJCQlyZXR1cm4gISF0ZXN0KCdwZXJzcGVjdGl2ZScpOwoJCQl9LAoJCQljc3N0cmFuc2l0aW9uczogZnVuY3Rpb24oKSB7CgkJCQlyZXR1cm4gISF0ZXN0KCd0cmFuc2l0aW9uJyk7CgkJCX0sCgkJCWNzc2FuaW1hdGlvbnM6IGZ1bmN0aW9uKCkgewoJCQkJcmV0dXJuICEhdGVzdCgnYW5pbWF0aW9uJyk7CgkJCX0KCQl9OwoKCWZ1bmN0aW9uIHRlc3QocHJvcGVydHksIHByZWZpeGVkKSB7CgkJdmFyIHJlc3VsdCA9IGZhbHNlLAoJCQl1cHBlciA9IHByb3BlcnR5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcHJvcGVydHkuc2xpY2UoMSk7CgoJCSQuZWFjaCgocHJvcGVydHkgKyAnICcgKyBwcmVmaXhlcy5qb2luKHVwcGVyICsgJyAnKSArIHVwcGVyKS5zcGxpdCgnICcpLCBmdW5jdGlvbihpLCBwcm9wZXJ0eSkgewoJCQlpZiAoc3R5bGVbcHJvcGVydHldICE9PSB1bmRlZmluZWQpIHsKCQkJCXJlc3VsdCA9IHByZWZpeGVkID8gcHJvcGVydHkgOiB0cnVlOwoJCQkJcmV0dXJuIGZhbHNlOwoJCQl9CgkJfSk7CgoJCXJldHVybiByZXN1bHQ7Cgl9CgoJZnVuY3Rpb24gcHJlZml4ZWQocHJvcGVydHkpIHsKCQlyZXR1cm4gdGVzdChwcm9wZXJ0eSwgdHJ1ZSk7Cgl9CgoJaWYgKHRlc3RzLmNzc3RyYW5zaXRpb25zKCkpIHsKCQkvKiBqc2hpbnQgLVcwNTMgKi8KCQkkLnN1cHBvcnQudHJhbnNpdGlvbiA9IG5ldyBTdHJpbmcocHJlZml4ZWQoJ3RyYW5zaXRpb24nKSkKCQkkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQgPSBldmVudHMudHJhbnNpdGlvbi5lbmRbICQuc3VwcG9ydC50cmFuc2l0aW9uIF07Cgl9CgoJaWYgKHRlc3RzLmNzc2FuaW1hdGlvbnMoKSkgewoJCS8qIGpzaGludCAtVzA1MyAqLwoJCSQuc3VwcG9ydC5hbmltYXRpb24gPSBuZXcgU3RyaW5nKHByZWZpeGVkKCdhbmltYXRpb24nKSkKCQkkLnN1cHBvcnQuYW5pbWF0aW9uLmVuZCA9IGV2ZW50cy5hbmltYXRpb24uZW5kWyAkLnN1cHBvcnQuYW5pbWF0aW9uIF07Cgl9CgoJaWYgKHRlc3RzLmNzc3RyYW5zZm9ybXMoKSkgewoJCS8qIGpzaGludCAtVzA1MyAqLwoJCSQuc3VwcG9ydC50cmFuc2Zvcm0gPSBuZXcgU3RyaW5nKHByZWZpeGVkKCd0cmFuc2Zvcm0nKSk7CgkJJC5zdXBwb3J0LnRyYW5zZm9ybTNkID0gdGVzdHMuY3NzdHJhbnNmb3JtczNkKCk7Cgl9Cgp9KSh3aW5kb3cuWmVwdG8gfHwgd2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7Cg=="}},"time_used":38,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":34,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/jquery.fancybox.min.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.816Z","timestamp":1785129412816,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/jquery.fancybox.min.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2938\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":13735,"size_decoded":3247,"mime_type":"text/css","magic":"Unicode text, UTF-8 text, with very long lines (13734), with no line terminators","md5":"35d290afd71a6053d8195ea13170b4e9","sha1":"a64676403bb5c23f9800963b0b8f0475b532601f","sha256":"e467f75601e845da217ae845b688b227a19fbf1e8fc776a42a4905869496d2e2","sha512":"0136028681f47450835a9bd6345bb647c95f2be3e963980e5b5e355f3cdc602772313640c5d9b72ae71252bbe8099b11de5663f3fde49b71a5170e42959f7788","ssdeep":"96:tGA07/mPQRZa6f3sNGzssDH7jGSWWf8+WDJT53RjRuCicfMAJpEbyZh5fN2WdZ:tVQfXcVa7KWdMT539MCeAL55fJ","tlshash":"b0524e63a140311c903bce21d7df8948e279d55266221affe68cf919cbc7be912d62c6","first_seen":"2023-04-05T04:47:26Z","last_seen":"2026-07-29T07:07:17.25625Z","times_seen":6971,"resource_available":false,"data":"QGNoYXJzZXQgIlVURi04Ijtib2R5LmZhbmN5Ym94LWFjdGl2ZXtvdmVyZmxvdzpoaWRkZW59Ym9keS5mYW5jeWJveC1pb3NmaXh7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3JpZ2h0OjB9LmZhbmN5Ym94LWlzLWhpZGRlbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTk5OTlweDtsZWZ0Oi05OTk5cHg7dmlzaWJpbGl0eTpoaWRkZW59LmZhbmN5Ym94LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4Ojk5OTkyOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCk7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksUm9ib3RvLEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWZ9LmZhbmN5Ym94LWJnLC5mYW5jeWJveC1pbm5lciwuZmFuY3lib3gtb3V0ZXIsLmZhbmN5Ym94LXN0YWdle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowfS5mYW5jeWJveC1vdXRlcntvdmVyZmxvdy15OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LmZhbmN5Ym94LWJne2JhY2tncm91bmQ6IzFlMWUxZTtvcGFjaXR5OjA7dHJhbnNpdGlvbi1kdXJhdGlvbjppbmhlcml0O3RyYW5zaXRpb24tcHJvcGVydHk6b3BhY2l0eTt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjQ3LDAsLjc0LC43MSl9LmZhbmN5Ym94LWlzLW9wZW4gLmZhbmN5Ym94LWJne29wYWNpdHk6Ljg3O3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllciguMjIsLjYxLC4zNiwxKX0uZmFuY3lib3gtY2FwdGlvbi13cmFwLC5mYW5jeWJveC1pbmZvYmFyLC5mYW5jeWJveC10b29sYmFye3Bvc2l0aW9uOmFic29sdXRlO2RpcmVjdGlvbjpsdHI7ei1pbmRleDo5OTk5NztvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjI1cztib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZhbmN5Ym94LXNob3ctY2FwdGlvbiAuZmFuY3lib3gtY2FwdGlvbi13cmFwLC5mYW5jeWJveC1zaG93LWluZm9iYXIgLmZhbmN5Ym94LWluZm9iYXIsLmZhbmN5Ym94LXNob3ctdG9vbGJhciAuZmFuY3lib3gtdG9vbGJhcntvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlO3RyYW5zaXRpb246b3BhY2l0eSAuMjVzLHZpc2liaWxpdHkgMHN9LmZhbmN5Ym94LWluZm9iYXJ7dG9wOjA7bGVmdDowO2ZvbnQtc2l6ZToxM3B4O3BhZGRpbmc6MCAxMHB4O2hlaWdodDo0NHB4O21pbi13aWR0aDo0NHB4O2xpbmUtaGVpZ2h0OjQ0cHg7Y29sb3I6I2NjYzt0ZXh0LWFsaWduOmNlbnRlcjtwb2ludGVyLWV2ZW50czpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC1mb250LXNtb290aGluZzpzdWJwaXhlbC1hbnRpYWxpYXNlZDttaXgtYmxlbmQtbW9kZTpleGNsdXNpb259LmZhbmN5Ym94LXRvb2xiYXJ7dG9wOjA7cmlnaHQ6MDttYXJnaW46MDtwYWRkaW5nOjB9LmZhbmN5Ym94LXN0YWdle292ZXJmbG93OmhpZGRlbjtkaXJlY3Rpb246bHRyO3otaW5kZXg6OTk5OTQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKX0uZmFuY3lib3gtaXMtY2xvc2luZyAuZmFuY3lib3gtc3RhZ2V7b3ZlcmZsb3c6dmlzaWJsZX0uZmFuY3lib3gtc2xpZGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO292ZXJmbG93OmF1dG87b3V0bGluZTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dGV4dC1hbGlnbjpjZW50ZXI7ei1pbmRleDo5OTk5NDstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtkaXNwbGF5Om5vbmU7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uLXByb3BlcnR5Om9wYWNpdHksLXdlYmtpdC10cmFuc2Zvcm07dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sb3BhY2l0eTt0cmFuc2l0aW9uLXByb3BlcnR5OnRyYW5zZm9ybSxvcGFjaXR5LC13ZWJraXQtdHJhbnNmb3JtfS5mYW5jeWJveC1zbGlkZTpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7aGVpZ2h0OjEwMCU7d2lkdGg6MH0uZmFuY3lib3gtaXMtc2xpZGluZyAuZmFuY3lib3gtc2xpZGUsLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50LC5mYW5jeWJveC1zbGlkZS0tbmV4dCwuZmFuY3lib3gtc2xpZGUtLXByZXZpb3Vze2Rpc3BsYXk6YmxvY2t9LmZhbmN5Ym94LXNsaWRlLS1pbWFnZXtvdmVyZmxvdzp2aXNpYmxlfS5mYW5jeWJveC1zbGlkZS0taW1hZ2U6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uZmFuY3lib3gtc2xpZGUtLXZpZGVvIC5mYW5jeWJveC1jb250ZW50LC5mYW5jeWJveC1zbGlkZS0tdmlkZW8gaWZyYW1le2JhY2tncm91bmQ6IzAwMH0uZmFuY3lib3gtc2xpZGUtLW1hcCAuZmFuY3lib3gtY29udGVudCwuZmFuY3lib3gtc2xpZGUtLW1hcCBpZnJhbWV7YmFja2dyb3VuZDojZTVlM2RmfS5mYW5jeWJveC1zbGlkZS0tbmV4dHt6LWluZGV4Ojk5OTk1fS5mYW5jeWJveC1zbGlkZT4qe2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MjRweDttYXJnaW46NDRweCAwO2JvcmRlci13aWR0aDowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO292ZXJmbG93OmF1dG87Ym94LXNpemluZzpib3JkZXItYm94fS5mYW5jeWJveC1zbGlkZT5iYXNlLC5mYW5jeWJveC1zbGlkZT5saW5rLC5mYW5jeWJveC1zbGlkZT5tZXRhLC5mYW5jeWJveC1zbGlkZT5zY3JpcHQsLmZhbmN5Ym94LXNsaWRlPnN0eWxlLC5mYW5jeWJveC1zbGlkZT50aXRsZXtkaXNwbGF5Om5vbmV9LmZhbmN5Ym94LXNsaWRlIC5mYW5jeWJveC1pbWFnZS13cmFwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7ei1pbmRleDo5OTk5NTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0O292ZXJmbG93OnZpc2libGU7LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOnRvcCBsZWZ0O3RyYW5zZm9ybS1vcmlnaW46dG9wIGxlZnQ7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtiYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5LC13ZWJraXQtdHJhbnNmb3JtO3RyYW5zaXRpb24tcHJvcGVydHk6dHJhbnNmb3JtLG9wYWNpdHk7dHJhbnNpdGlvbi1wcm9wZXJ0eTp0cmFuc2Zvcm0sb3BhY2l0eSwtd2Via2l0LXRyYW5zZm9ybX0uZmFuY3lib3gtY2FuLXpvb21PdXQgLmZhbmN5Ym94LWltYWdlLXdyYXB7Y3Vyc29yOnpvb20tb3V0fS5mYW5jeWJveC1jYW4tem9vbUluIC5mYW5jeWJveC1pbWFnZS13cmFwe2N1cnNvcjp6b29tLWlufS5mYW5jeWJveC1jYW4tZHJhZyAuZmFuY3lib3gtaW1hZ2Utd3JhcHtjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFifS5mYW5jeWJveC1pcy1kcmFnZ2luZyAuZmFuY3lib3gtaW1hZ2Utd3JhcHtjdXJzb3I6LXdlYmtpdC1ncmFiYmluZztjdXJzb3I6Z3JhYmJpbmd9LmZhbmN5Ym94LWltYWdlLC5mYW5jeWJveC1zcGFjZWJhbGx7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO21heC13aWR0aDpub25lO21heC1oZWlnaHQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmZhbmN5Ym94LXNwYWNlYmFsbHt6LWluZGV4OjF9LmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNvbnRlbnR7cGFkZGluZzowO3dpZHRoOjgwJTtoZWlnaHQ6ODAlO21heC13aWR0aDpjYWxjKDEwMCUgLSAxMDBweCk7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSA4OHB4KTtvdmVyZmxvdzp2aXNpYmxlO2JhY2tncm91bmQ6I2ZmZn0uZmFuY3lib3gtaWZyYW1le2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowO2JvcmRlcjowO2hlaWdodDoxMDAlfS5mYW5jeWJveC1lcnJvciwuZmFuY3lib3gtaWZyYW1le21hcmdpbjowO3dpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmfS5mYW5jeWJveC1lcnJvcntwYWRkaW5nOjQwcHg7bWF4LXdpZHRoOjM4MHB4O2N1cnNvcjpkZWZhdWx0fS5mYW5jeWJveC1lcnJvciBwe21hcmdpbjowO3BhZGRpbmc6MDtjb2xvcjojNDQ0O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjIwcHh9LmZhbmN5Ym94LWJ1dHRvbntib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246dG9wO3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7bWFyZ2luOjA7cGFkZGluZzoxMHB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOnJnYmEoMzAsMzAsMzAsLjYpO3RyYW5zaXRpb246Y29sb3IgLjNzIGVhc2U7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTpub25lfS5mYW5jeWJveC1idXR0b24sLmZhbmN5Ym94LWJ1dHRvbjpsaW5rLC5mYW5jeWJveC1idXR0b246dmlzaXRlZHtjb2xvcjojY2NjfS5mYW5jeWJveC1idXR0b246Zm9jdXMsLmZhbmN5Ym94LWJ1dHRvbjpob3Zlcntjb2xvcjojZmZmfS5mYW5jeWJveC1idXR0b25bZGlzYWJsZWRde2NvbG9yOiNjY2M7Y3Vyc29yOmRlZmF1bHQ7b3BhY2l0eTouNn0uZmFuY3lib3gtYnV0dG9uIHN2Z3tkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OnZpc2libGU7c2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbn0uZmFuY3lib3gtYnV0dG9uIHN2ZyBwYXRoe2ZpbGw6Y3VycmVudENvbG9yO3N0cm9rZTpjdXJyZW50Q29sb3I7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDozfS5mYW5jeWJveC1idXR0b24tLXNoYXJlIHN2ZyBwYXRoe3N0cm9rZS13aWR0aDoxfS5mYW5jeWJveC1idXR0b24tLXBhdXNlIHN2ZyBwYXRoOm50aC1jaGlsZCgxKSwuZmFuY3lib3gtYnV0dG9uLS1wbGF5IHN2ZyBwYXRoOm50aC1jaGlsZCgyKXtkaXNwbGF5Om5vbmV9LmZhbmN5Ym94LWJ1dHRvbi0tem9vbSBzdmcgcGF0aHtmaWxsOnRyYW5zcGFyZW50fS5mYW5jeWJveC1uYXZpZ2F0aW9ue2Rpc3BsYXk6bm9uZX0uZmFuY3lib3gtc2hvdy1uYXYgLmZhbmN5Ym94LW5hdmlnYXRpb257ZGlzcGxheTpibG9ja30uZmFuY3lib3gtbmF2aWdhdGlvbiBidXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTttYXJnaW46LTUwcHggMCAwO3otaW5kZXg6OTk5OTc7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt3aWR0aDo2MHB4O2hlaWdodDoxMDBweDtwYWRkaW5nOjE3cHh9LmZhbmN5Ym94LW5hdmlnYXRpb24gYnV0dG9uOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDozMHB4O3JpZ2h0OjEwcHg7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtiYWNrZ3JvdW5kOnJnYmEoMzAsMzAsMzAsLjYpfS5mYW5jeWJveC1uYXZpZ2F0aW9uIC5mYW5jeWJveC1idXR0b24tLWFycm93X2xlZnR7bGVmdDowfS5mYW5jeWJveC1uYXZpZ2F0aW9uIC5mYW5jeWJveC1idXR0b24tLWFycm93X3JpZ2h0e3JpZ2h0OjB9LmZhbmN5Ym94LWNsb3NlLXNtYWxse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7d2lkdGg6NDBweDtoZWlnaHQ6NDBweDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7ei1pbmRleDoxMDtjdXJzb3I6cG9pbnRlcn0uZmFuY3lib3gtY2xvc2Utc21hbGw6YWZ0ZXJ7Y29udGVudDoiw5ciO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1cHg7cmlnaHQ6NXB4O3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Zm9udDoyMnB4LzMwcHggQXJpYWwsSGVsdmV0aWNhIE5ldWUsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Y29sb3I6Izg4ODtmb250LXdlaWdodDozMDA7dGV4dC1hbGlnbjpjZW50ZXI7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyLXdpZHRoOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjI1cztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoyfS5mYW5jeWJveC1jbG9zZS1zbWFsbDpmb2N1c3tvdXRsaW5lOm5vbmV9LmZhbmN5Ym94LWNsb3NlLXNtYWxsOmZvY3VzOmFmdGVye291dGxpbmU6MXB4IGRvdHRlZCAjODg4fS5mYW5jeWJveC1jbG9zZS1zbWFsbDpob3ZlcjphZnRlcntjb2xvcjojNTU1O2JhY2tncm91bmQ6I2VlZX0uZmFuY3lib3gtc2xpZGUtLWlmcmFtZSAuZmFuY3lib3gtY2xvc2Utc21hbGwsLmZhbmN5Ym94LXNsaWRlLS1pbWFnZSAuZmFuY3lib3gtY2xvc2Utc21hbGx7dG9wOjA7cmlnaHQ6LTQwcHh9LmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmFmdGVyLC5mYW5jeWJveC1zbGlkZS0taW1hZ2UgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmFmdGVye2ZvbnQtc2l6ZTozNXB4O2NvbG9yOiNhYWF9LmZhbmN5Ym94LXNsaWRlLS1pZnJhbWUgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmhvdmVyOmFmdGVyLC5mYW5jeWJveC1zbGlkZS0taW1hZ2UgLmZhbmN5Ym94LWNsb3NlLXNtYWxsOmhvdmVyOmFmdGVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uZmFuY3lib3gtaXMtc2NhbGluZyAuZmFuY3lib3gtY2xvc2Utc21hbGwsLmZhbmN5Ym94LWlzLXpvb21hYmxlLmZhbmN5Ym94LWNhbi1kcmFnIC5mYW5jeWJveC1jbG9zZS1zbWFsbHtkaXNwbGF5Om5vbmV9LmZhbmN5Ym94LWNhcHRpb24td3JhcHtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtwYWRkaW5nOjYwcHggMnZ3IDA7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHRyYW5zcGFyZW50IDAscmdiYSgwLDAsMCwuMSkgMjAlLHJnYmEoMCwwLDAsLjIpIDQwJSxyZ2JhKDAsMCwwLC42KSA4MCUscmdiYSgwLDAsMCwuOCkpO3BvaW50ZXItZXZlbnRzOm5vbmV9LmZhbmN5Ym94LWNhcHRpb257cGFkZGluZzozMHB4IDA7Ym9yZGVyLXRvcDoxcHggc29saWQgaHNsYSgwLDAlLDEwMCUsLjQpO2ZvbnQtc2l6ZToxNHB4O2NvbG9yOiNmZmY7bGluZS1oZWlnaHQ6MjBweDstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6bm9uZX0uZmFuY3lib3gtY2FwdGlvbiBhLC5mYW5jeWJveC1jYXB0aW9uIGJ1dHRvbiwuZmFuY3lib3gtY2FwdGlvbiBzZWxlY3R7cG9pbnRlci1ldmVudHM6YWxsO3Bvc2l0aW9uOnJlbGF0aXZlfS5mYW5jeWJveC1jYXB0aW9uIGF7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5mYW5jeWJveC1zbGlkZT4uZmFuY3lib3gtbG9hZGluZ3tib3JkZXI6NnB4IHNvbGlkIGhzbGEoMCwwJSwzOSUsLjQpO2JvcmRlci10b3A6NnB4IHNvbGlkIGhzbGEoMCwwJSwxMDAlLC42KTtib3JkZXItcmFkaXVzOjEwMCU7aGVpZ2h0OjUwcHg7d2lkdGg6NTBweDstd2Via2l0LWFuaW1hdGlvbjphIC44cyBpbmZpbml0ZSBsaW5lYXI7YW5pbWF0aW9uOmEgLjhzIGluZmluaXRlIGxpbmVhcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1MCU7bGVmdDo1MCU7bWFyZ2luLXRvcDotMzBweDttYXJnaW4tbGVmdDotMzBweDt6LWluZGV4Ojk5OTk5fUAtd2Via2l0LWtleWZyYW1lcyBhezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNTlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19QGtleWZyYW1lcyBhezAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfXRvey13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNTlkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzU5ZGVnKX19LmZhbmN5Ym94LWFuaW1hdGVke3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmN1YmljLWJlemllcigwLDAsLjI1LDEpfS5mYW5jeWJveC1meC1zbGlkZS5mYW5jeWJveC1zbGlkZS0tcHJldmlvdXN7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXNsaWRlLmZhbmN5Ym94LXNsaWRlLS1uZXh0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO29wYWNpdHk6MH0uZmFuY3lib3gtZngtc2xpZGUuZmFuY3lib3gtc2xpZGUtLWN1cnJlbnR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWigwKTtvcGFjaXR5OjF9LmZhbmN5Ym94LWZ4LWZhZGUuZmFuY3lib3gtc2xpZGUtLW5leHQsLmZhbmN5Ym94LWZ4LWZhZGUuZmFuY3lib3gtc2xpZGUtLXByZXZpb3Vze29wYWNpdHk6MDt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjpjdWJpYy1iZXppZXIoLjE5LDEsLjIyLDEpfS5mYW5jeWJveC1meC1mYWRlLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50e29wYWNpdHk6MX0uZmFuY3lib3gtZngtem9vbS1pbi1vdXQuZmFuY3lib3gtc2xpZGUtLXByZXZpb3Vzey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoMS41LDEuNSwxLjUpO3RyYW5zZm9ybTpzY2FsZTNkKDEuNSwxLjUsMS41KTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXpvb20taW4tb3V0LmZhbmN5Ym94LXNsaWRlLS1uZXh0ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlM2QoLjUsLjUsLjUpO3RyYW5zZm9ybTpzY2FsZTNkKC41LC41LC41KTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXpvb20taW4tb3V0LmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50ey13ZWJraXQtdHJhbnNmb3JtOnNjYWxlWCgxKTt0cmFuc2Zvcm06c2NhbGVYKDEpO29wYWNpdHk6MX0uZmFuY3lib3gtZngtcm90YXRlLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c3std2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKC0xdHVybik7b3BhY2l0eTowfS5mYW5jeWJveC1meC1yb3RhdGUuZmFuY3lib3gtc2xpZGUtLW5leHR7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTt0cmFuc2Zvcm06cm90YXRlKDF0dXJuKTtvcGFjaXR5OjB9LmZhbmN5Ym94LWZ4LXJvdGF0ZS5mYW5jeWJveC1zbGlkZS0tY3VycmVudHstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTtvcGFjaXR5OjF9LmZhbmN5Ym94LWZ4LWNpcmN1bGFyLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c3std2Via2l0LXRyYW5zZm9ybTpzY2FsZTNkKDAsMCwwKSB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKDAsMCwwKSB0cmFuc2xhdGUzZCgtMTAwJSwwLDApO29wYWNpdHk6MH0uZmFuY3lib3gtZngtY2lyY3VsYXIuZmFuY3lib3gtc2xpZGUtLW5leHR7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUzZCgwLDAsMCkgdHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTpzY2FsZTNkKDAsMCwwKSB0cmFuc2xhdGUzZCgxMDAlLDAsMCk7b3BhY2l0eTowfS5mYW5jeWJveC1meC1jaXJjdWxhci5mYW5jeWJveC1zbGlkZS0tY3VycmVudHstd2Via2l0LXRyYW5zZm9ybTpzY2FsZVgoMSkgdHJhbnNsYXRlWigwKTt0cmFuc2Zvcm06c2NhbGVYKDEpIHRyYW5zbGF0ZVooMCk7b3BhY2l0eToxfS5mYW5jeWJveC1meC10dWJlLmZhbmN5Ym94LXNsaWRlLS1wcmV2aW91c3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApIHNjYWxlKC4xKSBza2V3KC0xMGRlZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKC0xMDAlLDAsMCkgc2NhbGUoLjEpIHNrZXcoLTEwZGVnKX0uZmFuY3lib3gtZngtdHViZS5mYW5jeWJveC1zbGlkZS0tbmV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2NhbGUoLjEpIHNrZXcoMTBkZWcpO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCkgc2NhbGUoLjEpIHNrZXcoMTBkZWcpfS5mYW5jeWJveC1meC10dWJlLmZhbmN5Ym94LXNsaWRlLS1jdXJyZW50ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGUoMSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVooMCkgc2NhbGUoMSl9LmZhbmN5Ym94LXNoYXJle3BhZGRpbmc6MzBweDtib3JkZXItcmFkaXVzOjNweDtiYWNrZ3JvdW5kOiNmNGY0ZjQ7bWF4LXdpZHRoOjkwJTt0ZXh0LWFsaWduOmNlbnRlcn0uZmFuY3lib3gtc2hhcmUgaDF7Y29sb3I6IzIyMjttYXJnaW46MCAwIDIwcHg7Zm9udC1zaXplOjM1cHg7Zm9udC13ZWlnaHQ6NzAwfS5mYW5jeWJveC1zaGFyZSBwe21hcmdpbjowO3BhZGRpbmc6MH1wLmZhbmN5Ym94LXNoYXJlX19saW5rc3ttYXJnaW4tcmlnaHQ6LTEwcHh9LmZhbmN5Ym94LXNoYXJlX19idXR0b257ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1kZWNvcmF0aW9uOm5vbmU7bWFyZ2luOjAgMTBweCAxMHB4IDA7cGFkZGluZzowIDE1cHg7bWluLXdpZHRoOjEzMHB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6I2ZmZjt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjQwcHg7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2NvbG9yOiNmZmY7dHJhbnNpdGlvbjphbGwgLjJzfS5mYW5jeWJveC1zaGFyZV9fYnV0dG9uOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5mYW5jeWJveC1zaGFyZV9fYnV0dG9uLS1mYntiYWNrZ3JvdW5kOiMzYjU5OTh9LmZhbmN5Ym94LXNoYXJlX19idXR0b24tLWZiOmhvdmVye2JhY2tncm91bmQ6IzM0NGU4Nn0uZmFuY3lib3gtc2hhcmVfX2J1dHRvbi0tcHR7YmFja2dyb3VuZDojYmQwODFkfS5mYW5jeWJveC1zaGFyZV9fYnV0dG9uLS1wdDpob3ZlcntiYWNrZ3JvdW5kOiNhYTA3MTl9LmZhbmN5Ym94LXNoYXJlX19idXR0b24tLXR3e2JhY2tncm91bmQ6IzFkYTFmMn0uZmFuY3lib3gtc2hhcmVfX2J1dHRvbi0tdHc6aG92ZXJ7YmFja2dyb3VuZDojMGQ5NWU4fS5mYW5jeWJveC1zaGFyZV9fYnV0dG9uIHN2Z3twb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTFweDt3aWR0aDoyNXB4O2hlaWdodDoyNXB4O21hcmdpbi1yaWdodDo3cHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS5mYW5jeWJveC1zaGFyZV9fYnV0dG9uIHN2ZyBwYXRoe2ZpbGw6I2ZmZn0uZmFuY3lib3gtc2hhcmVfX2lucHV0e2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlO21hcmdpbjoxMHB4IDAgMDtwYWRkaW5nOjEwcHggMTVweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOiM1ZDViNWI7Zm9udC1zaXplOjE0cHg7b3V0bGluZTpub25lO2JvcmRlcjowO2JvcmRlci1ib3R0b206MnB4IHNvbGlkICNkN2Q3ZDd9LmZhbmN5Ym94LXRodW1ic3tkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDt3aWR0aDoyMTJweDttYXJnaW46MDtwYWRkaW5nOjJweCAycHggNHB4O2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDo5OTk5NX0uZmFuY3lib3gtdGh1bWJzLXh7b3ZlcmZsb3cteTpoaWRkZW47b3ZlcmZsb3cteDphdXRvfS5mYW5jeWJveC1zaG93LXRodW1icyAuZmFuY3lib3gtdGh1bWJze2Rpc3BsYXk6YmxvY2t9LmZhbmN5Ym94LXNob3ctdGh1bWJzIC5mYW5jeWJveC1pbm5lcntyaWdodDoyMTJweH0uZmFuY3lib3gtdGh1bWJzPnVse2xpc3Qtc3R5bGU6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87Zm9udC1zaXplOjA7d2hpdGUtc3BhY2U6bm93cmFwfS5mYW5jeWJveC10aHVtYnMteD51bHtvdmVyZmxvdzpoaWRkZW59LmZhbmN5Ym94LXRodW1icy15PnVsOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo3cHh9LmZhbmN5Ym94LXRodW1icy15PnVsOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czoxMHB4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDZweCByZ2JhKDAsMCwwLC4zKX0uZmFuY3lib3gtdGh1bWJzLXk+dWw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzJhMmEyYTtib3JkZXItcmFkaXVzOjEwcHh9LmZhbmN5Ym94LXRodW1icz51bD5saXtmbG9hdDpsZWZ0O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7bWFyZ2luOjJweDt3aWR0aDoxMDBweDtoZWlnaHQ6NzVweDttYXgtd2lkdGg6Y2FsYyg1MCUgLSA0cHgpO21heC1oZWlnaHQ6Y2FsYygxMDAlIC0gOHB4KTtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmU7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47Ym94LXNpemluZzpib3JkZXItYm94fWxpLmZhbmN5Ym94LXRodW1icy1sb2FkaW5ne2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuMSl9LmZhbmN5Ym94LXRodW1icz51bD5saT5pbWd7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO21heC13aWR0aDpub25lO21heC1oZWlnaHQ6bm9uZTstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmZhbmN5Ym94LXRodW1icz51bD5saTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDtib3JkZXI6NHB4IHNvbGlkICM0ZWE3Zjk7ei1pbmRleDo5OTk5MTtvcGFjaXR5OjA7dHJhbnNpdGlvbjphbGwgLjJzIGN1YmljLWJlemllciguMjUsLjQ2LC40NSwuOTQpfS5mYW5jeWJveC10aHVtYnM+dWw+bGkuZmFuY3lib3gtdGh1bWJzLWFjdGl2ZTpiZWZvcmV7b3BhY2l0eToxfUBtZWRpYSAobWF4LXdpZHRoOjgwMHB4KXsuZmFuY3lib3gtdGh1bWJze3dpZHRoOjExMHB4fS5mYW5jeWJveC1zaG93LXRodW1icyAuZmFuY3lib3gtaW5uZXJ7cmlnaHQ6MTEwcHh9LmZhbmN5Ym94LXRodW1icz51bD5saXttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTBweCl9fQ=="}},"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":"danis-miners.com/css/bootstrap.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.472Z","timestamp":1785129412472,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/bootstrap.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 19106\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":140930,"size_decoded":19416,"mime_type":"text/css","magic":"ASCII text, with very long lines (65324)","md5":"a7022c6fa83d91db67738d6e3cd3252d","sha1":"1ae238d0c533b209ea5becf4317e13237ed3d42e","sha256":"31df1e69ea3aece8a8bae5c08bcb7f5e977cb76f886897b301355359b66a48ec","sha512":"8aa45d7fed0a30598d66076c03ef1bcf53162085d005409abcf61549523cddf7157c7d98d8f9cda282cdd386e04cda14890bc8ce27622072407083ffb80115f7","ssdeep":"1536:ux1bwyUPAy+QYYDnDEBi82NcuSEz/9OOL/gIENM6HN26e:q1MbPnTLYIENM6HN26e","tlshash":"c2d372a7f5a0312da467c61960d0bafe156f8285d7221ffaf42737644b895cb0a73e0c","first_seen":"2023-04-05T10:27:23Z","last_seen":"2026-07-29T05:33:45.286153Z","times_seen":8481,"resource_available":false,"data":"LyohCiAqIEJvb3RzdHJhcCB2NC4xLjEgKGh0dHBzOi8vZ2V0Ym9vdHN0cmFwLmNvbS8pCiAqIENvcHlyaWdodCAyMDExLTIwMTggVGhlIEJvb3RzdHJhcCBBdXRob3JzCiAqIENvcHlyaWdodCAyMDExLTIwMTggVHdpdHRlciwgSW5jLgogKiBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21hc3Rlci9MSUNFTlNFKQogKi86cm9vdHstLWJsdWU6IzAwN2JmZjstLWluZGlnbzojNjYxMGYyOy0tcHVycGxlOiM2ZjQyYzE7LS1waW5rOiNlODNlOGM7LS1yZWQ6I2RjMzU0NTstLW9yYW5nZTojZmQ3ZTE0Oy0teWVsbG93OiNmZmMxMDc7LS1ncmVlbjojMjhhNzQ1Oy0tdGVhbDojMjBjOTk3Oy0tY3lhbjojMTdhMmI4Oy0td2hpdGU6I2ZmZjstLWdyYXk6IzZjNzU3ZDstLWdyYXktZGFyazojMzQzYTQwOy0tcHJpbWFyeTojMDA3YmZmOy0tc2Vjb25kYXJ5OiM2Yzc1N2Q7LS1zdWNjZXNzOiMyOGE3NDU7LS1pbmZvOiMxN2EyYjg7LS13YXJuaW5nOiNmZmMxMDc7LS1kYW5nZXI6I2RjMzU0NTstLWxpZ2h0OiNmOGY5ZmE7LS1kYXJrOiMzNDNhNDA7LS1icmVha3BvaW50LXhzOjA7LS1icmVha3BvaW50LXNtOjU3NnB4Oy0tYnJlYWtwb2ludC1tZDo3NjhweDstLWJyZWFrcG9pbnQtbGc6OTkycHg7LS1icmVha3BvaW50LXhsOjEyMDBweDstLWZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsIlNlZ29lIFVJIixSb2JvdG8sIkhlbHZldGljYSBOZXVlIixBcmlhbCxzYW5zLXNlcmlmLCJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIiwiU2Vnb2UgVUkgU3ltYm9sIjstLWZvbnQtZmFtaWx5LW1vbm9zcGFjZTpTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsIkxpYmVyYXRpb24gTW9ubyIsIkNvdXJpZXIgTmV3Iixtb25vc3BhY2V9Kiw6OmFmdGVyLDo6YmVmb3Jle2JveC1zaXppbmc6Ym9yZGVyLWJveH1odG1se2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4xNTstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlOy1tcy1vdmVyZmxvdy1zdHlsZTpzY3JvbGxiYXI7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fUAtbXMtdmlld3BvcnR7d2lkdGg6ZGV2aWNlLXdpZHRofWFydGljbGUsYXNpZGUsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGhlYWRlcixoZ3JvdXAsbWFpbixuYXYsc2VjdGlvbntkaXNwbGF5OmJsb2NrfWJvZHl7bWFyZ2luOjA7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsIlNlZ29lIFVJIixSb2JvdG8sIkhlbHZldGljYSBOZXVlIixBcmlhbCxzYW5zLXNlcmlmLCJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIiwiU2Vnb2UgVUkgU3ltYm9sIjtmb250LXNpemU6MXJlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQtY29sb3I6I2ZmZn1bdGFiaW5kZXg9Ii0xIl06Zm9jdXN7b3V0bGluZTowIWltcG9ydGFudH1ocntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowO292ZXJmbG93OnZpc2libGV9aDEsaDIsaDMsaDQsaDUsaDZ7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjVyZW19cHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToxcmVtfWFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0sYWJiclt0aXRsZV17dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO2N1cnNvcjpoZWxwO2JvcmRlci1ib3R0b206MH1hZGRyZXNze21hcmdpbi1ib3R0b206MXJlbTtmb250LXN0eWxlOm5vcm1hbDtsaW5lLWhlaWdodDppbmhlcml0fWRsLG9sLHVse21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFyZW19b2wgb2wsb2wgdWwsdWwgb2wsdWwgdWx7bWFyZ2luLWJvdHRvbTowfWR0e2ZvbnQtd2VpZ2h0OjcwMH1kZHttYXJnaW4tYm90dG9tOi41cmVtO21hcmdpbi1sZWZ0OjB9YmxvY2txdW90ZXttYXJnaW46MCAwIDFyZW19ZGZue2ZvbnQtc3R5bGU6aXRhbGljfWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmJvbGRlcn1zbWFsbHtmb250LXNpemU6ODAlfXN1YixzdXB7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjc1JTtsaW5lLWhlaWdodDowO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfXN1Yntib3R0b206LS4yNWVtfXN1cHt0b3A6LS41ZW19YXtjb2xvcjojMDA3YmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7LXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDpvYmplY3RzfWE6aG92ZXJ7Y29sb3I6IzAwNTZiMzt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pe2NvbG9yOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9YTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSk6Zm9jdXMsYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSk6aG92ZXJ7Y29sb3I6aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZX1hOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKTpmb2N1c3tvdXRsaW5lOjB9Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6U0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLCJMaWJlcmF0aW9uIE1vbm8iLCJDb3VyaWVyIE5ldyIsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19cHJle21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjFyZW07b3ZlcmZsb3c6YXV0bzstbXMtb3ZlcmZsb3ctc3R5bGU6c2Nyb2xsYmFyfWZpZ3VyZXttYXJnaW46MCAwIDFyZW19aW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtib3JkZXItc3R5bGU6bm9uZX1zdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW59dGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlfWNhcHRpb257cGFkZGluZy10b3A6Ljc1cmVtO3BhZGRpbmctYm90dG9tOi43NXJlbTtjb2xvcjojNmM3NTdkO3RleHQtYWxpZ246bGVmdDtjYXB0aW9uLXNpZGU6Ym90dG9tfXRoe3RleHQtYWxpZ246aW5oZXJpdH1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOi41cmVtfWJ1dHRvbntib3JkZXItcmFkaXVzOjB9YnV0dG9uOmZvY3Vze291dGxpbmU6MXB4IGRvdHRlZDtvdXRsaW5lOjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcn1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe21hcmdpbjowO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmluaGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1idXR0b24saW5wdXR7b3ZlcmZsb3c6dmlzaWJsZX1idXR0b24sc2VsZWN0e3RleHQtdHJhbnNmb3JtOm5vbmV9W3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF0sYnV0dG9uLGh0bWwgW3R5cGU9YnV0dG9uXXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufVt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIsYnV0dG9uOjotbW96LWZvY3VzLWlubmVye3BhZGRpbmc6MDtib3JkZXItc3R5bGU6bm9uZX1pbnB1dFt0eXBlPWNoZWNrYm94XSxpbnB1dFt0eXBlPXJhZGlvXXtib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzowfWlucHV0W3R5cGU9ZGF0ZV0saW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0saW5wdXRbdHlwZT1tb250aF0saW5wdXRbdHlwZT10aW1lXXstd2Via2l0LWFwcGVhcmFuY2U6bGlzdGJveH10ZXh0YXJlYXtvdmVyZmxvdzphdXRvO3Jlc2l6ZTp2ZXJ0aWNhbH1maWVsZHNldHttaW4td2lkdGg6MDtwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjA7bWFyZ2luLWJvdHRvbTouNXJlbTtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3JtYWx9cHJvZ3Jlc3N7dmVydGljYWwtYWxpZ246YmFzZWxpbmV9W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17b3V0bGluZS1vZmZzZXQ6LTJweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX1bdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Ojotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbntmb250OmluaGVyaXQ7LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1vdXRwdXR7ZGlzcGxheTppbmxpbmUtYmxvY2t9c3VtbWFyeXtkaXNwbGF5Omxpc3QtaXRlbTtjdXJzb3I6cG9pbnRlcn10ZW1wbGF0ZXtkaXNwbGF5Om5vbmV9W2hpZGRlbl17ZGlzcGxheTpub25lIWltcG9ydGFudH0uaDEsLmgyLC5oMywuaDQsLmg1LC5oNixoMSxoMixoMyxoNCxoNSxoNnttYXJnaW4tYm90dG9tOi41cmVtO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMjtjb2xvcjppbmhlcml0fS5oMSxoMXtmb250LXNpemU6Mi41cmVtfS5oMixoMntmb250LXNpemU6MnJlbX0uaDMsaDN7Zm9udC1zaXplOjEuNzVyZW19Lmg0LGg0e2ZvbnQtc2l6ZToxLjVyZW19Lmg1LGg1e2ZvbnQtc2l6ZToxLjI1cmVtfS5oNixoNntmb250LXNpemU6MXJlbX0ubGVhZHtmb250LXNpemU6MS4yNXJlbTtmb250LXdlaWdodDozMDB9LmRpc3BsYXktMXtmb250LXNpemU6NnJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfS5kaXNwbGF5LTJ7Zm9udC1zaXplOjUuNXJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfS5kaXNwbGF5LTN7Zm9udC1zaXplOjQuNXJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfS5kaXNwbGF5LTR7Zm9udC1zaXplOjMuNXJlbTtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6MS4yfWhye21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjFyZW07Ym9yZGVyOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMSl9LnNtYWxsLHNtYWxse2ZvbnQtc2l6ZTo4MCU7Zm9udC13ZWlnaHQ6NDAwfS5tYXJrLG1hcmt7cGFkZGluZzouMmVtO2JhY2tncm91bmQtY29sb3I6I2ZjZjhlM30ubGlzdC11bnN0eWxlZHtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxlOm5vbmV9Lmxpc3QtaW5saW5le3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZX0ubGlzdC1pbmxpbmUtaXRlbXtkaXNwbGF5OmlubGluZS1ibG9ja30ubGlzdC1pbmxpbmUtaXRlbTpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouNXJlbX0uaW5pdGlhbGlzbXtmb250LXNpemU6OTAlO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0uYmxvY2txdW90ZXttYXJnaW4tYm90dG9tOjFyZW07Zm9udC1zaXplOjEuMjVyZW19LmJsb2NrcXVvdGUtZm9vdGVye2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjgwJTtjb2xvcjojNmM3NTdkfS5ibG9ja3F1b3RlLWZvb3Rlcjo6YmVmb3Jle2NvbnRlbnQ6IlwyMDE0IFwwMEEwIn0uaW1nLWZsdWlke21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5pbWctdGh1bWJuYWlse3BhZGRpbmc6LjI1cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZWUyZTY7Ym9yZGVyLXJhZGl1czouMjVyZW07bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99LmZpZ3VyZXtkaXNwbGF5OmlubGluZS1ibG9ja30uZmlndXJlLWltZ3ttYXJnaW4tYm90dG9tOi41cmVtO2xpbmUtaGVpZ2h0OjF9LmZpZ3VyZS1jYXB0aW9ue2ZvbnQtc2l6ZTo5MCU7Y29sb3I6IzZjNzU3ZH1jb2Rle2ZvbnQtc2l6ZTo4Ny41JTtjb2xvcjojZTgzZThjO3dvcmQtYnJlYWs6YnJlYWstd29yZH1hPmNvZGV7Y29sb3I6aW5oZXJpdH1rYmR7cGFkZGluZzouMnJlbSAuNHJlbTtmb250LXNpemU6ODcuNSU7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTI1Mjk7Ym9yZGVyLXJhZGl1czouMnJlbX1rYmQga2Jke3BhZGRpbmc6MDtmb250LXNpemU6MTAwJTtmb250LXdlaWdodDo3MDB9cHJle2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOjg3LjUlO2NvbG9yOiMyMTI1Mjl9cHJlIGNvZGV7Zm9udC1zaXplOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt3b3JkLWJyZWFrOm5vcm1hbH0ucHJlLXNjcm9sbGFibGV7bWF4LWhlaWdodDozNDBweDtvdmVyZmxvdy15OnNjcm9sbH0uY29udGFpbmVye3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4O21hcmdpbi1yaWdodDphdXRvO21hcmdpbi1sZWZ0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jb250YWluZXJ7bWF4LXdpZHRoOjU0MHB4fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbnRhaW5lcnttYXgtd2lkdGg6NzIwcHh9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY29udGFpbmVye21heC13aWR0aDo5NjBweH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY29udGFpbmVye21heC13aWR0aDoxMTQwcHh9fS5jb250YWluZXItZmx1aWR7d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHg7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b30ucm93e2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDttYXJnaW4tcmlnaHQ6LTE1cHg7bWFyZ2luLWxlZnQ6LTE1cHh9Lm5vLWd1dHRlcnN7bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MH0ubm8tZ3V0dGVycz4uY29sLC5uby1ndXR0ZXJzPltjbGFzcyo9Y29sLV17cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfS5jb2wsLmNvbC0xLC5jb2wtMTAsLmNvbC0xMSwuY29sLTEyLC5jb2wtMiwuY29sLTMsLmNvbC00LC5jb2wtNSwuY29sLTYsLmNvbC03LC5jb2wtOCwuY29sLTksLmNvbC1hdXRvLC5jb2wtbGcsLmNvbC1sZy0xLC5jb2wtbGctMTAsLmNvbC1sZy0xMSwuY29sLWxnLTEyLC5jb2wtbGctMiwuY29sLWxnLTMsLmNvbC1sZy00LC5jb2wtbGctNSwuY29sLWxnLTYsLmNvbC1sZy03LC5jb2wtbGctOCwuY29sLWxnLTksLmNvbC1sZy1hdXRvLC5jb2wtbWQsLmNvbC1tZC0xLC5jb2wtbWQtMTAsLmNvbC1tZC0xMSwuY29sLW1kLTEyLC5jb2wtbWQtMiwuY29sLW1kLTMsLmNvbC1tZC00LC5jb2wtbWQtNSwuY29sLW1kLTYsLmNvbC1tZC03LC5jb2wtbWQtOCwuY29sLW1kLTksLmNvbC1tZC1hdXRvLC5jb2wtc20sLmNvbC1zbS0xLC5jb2wtc20tMTAsLmNvbC1zbS0xMSwuY29sLXNtLTEyLC5jb2wtc20tMiwuY29sLXNtLTMsLmNvbC1zbS00LC5jb2wtc20tNSwuY29sLXNtLTYsLmNvbC1zbS03LC5jb2wtc20tOCwuY29sLXNtLTksLmNvbC1zbS1hdXRvLC5jb2wteGwsLmNvbC14bC0xLC5jb2wteGwtMTAsLmNvbC14bC0xMSwuY29sLXhsLTEyLC5jb2wteGwtMiwuY29sLXhsLTMsLmNvbC14bC00LC5jb2wteGwtNSwuY29sLXhsLTYsLmNvbC14bC03LC5jb2wteGwtOCwuY29sLXhsLTksLmNvbC14bC1hdXRve3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWluLWhlaWdodDoxcHg7cGFkZGluZy1yaWdodDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4fS5jb2x7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MDtmbGV4LWJhc2lzOjA7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY29sLWF1dG97LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jb2wtMXstbXMtZmxleDowIDAgOC4zMzMzMzMlO2ZsZXg6MCAwIDguMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMlfS5jb2wtMnstbXMtZmxleDowIDAgMTYuNjY2NjY3JTtmbGV4OjAgMCAxNi42NjY2NjclO21heC13aWR0aDoxNi42NjY2NjclfS5jb2wtM3stbXMtZmxleDowIDAgMjUlO2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jb2wtNHstbXMtZmxleDowIDAgMzMuMzMzMzMzJTtmbGV4OjAgMCAzMy4zMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMlfS5jb2wtNXstbXMtZmxleDowIDAgNDEuNjY2NjY3JTtmbGV4OjAgMCA0MS42NjY2NjclO21heC13aWR0aDo0MS42NjY2NjclfS5jb2wtNnstbXMtZmxleDowIDAgNTAlO2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jb2wtN3stbXMtZmxleDowIDAgNTguMzMzMzMzJTtmbGV4OjAgMCA1OC4zMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMlfS5jb2wtOHstbXMtZmxleDowIDAgNjYuNjY2NjY3JTtmbGV4OjAgMCA2Ni42NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjclfS5jb2wtOXstbXMtZmxleDowIDAgNzUlO2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jb2wtMTB7LW1zLWZsZXg6MCAwIDgzLjMzMzMzMyU7ZmxleDowIDAgODMuMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzJX0uY29sLTExey1tcy1mbGV4OjAgMCA5MS42NjY2NjclO2ZsZXg6MCAwIDkxLjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NyV9LmNvbC0xMnstbXMtZmxleDowIDAgMTAwJTtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vcmRlci1maXJzdHstbXMtZmxleC1vcmRlcjotMTtvcmRlcjotMX0ub3JkZXItbGFzdHstbXMtZmxleC1vcmRlcjoxMztvcmRlcjoxM30ub3JkZXItMHstbXMtZmxleC1vcmRlcjowO29yZGVyOjB9Lm9yZGVyLTF7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5vcmRlci0yey1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn0ub3JkZXItM3stbXMtZmxleC1vcmRlcjozO29yZGVyOjN9Lm9yZGVyLTR7LW1zLWZsZXgtb3JkZXI6NDtvcmRlcjo0fS5vcmRlci01ey1tcy1mbGV4LW9yZGVyOjU7b3JkZXI6NX0ub3JkZXItNnstbXMtZmxleC1vcmRlcjo2O29yZGVyOjZ9Lm9yZGVyLTd7LW1zLWZsZXgtb3JkZXI6NztvcmRlcjo3fS5vcmRlci04ey1tcy1mbGV4LW9yZGVyOjg7b3JkZXI6OH0ub3JkZXItOXstbXMtZmxleC1vcmRlcjo5O29yZGVyOjl9Lm9yZGVyLTEwey1tcy1mbGV4LW9yZGVyOjEwO29yZGVyOjEwfS5vcmRlci0xMXstbXMtZmxleC1vcmRlcjoxMTtvcmRlcjoxMX0ub3JkZXItMTJ7LW1zLWZsZXgtb3JkZXI6MTI7b3JkZXI6MTJ9Lm9mZnNldC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzJX0ub2Zmc2V0LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY3JX0ub2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMlfS5vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjclfS5vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9Lm9mZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMyV9Lm9mZnNldC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NyV9Lm9mZnNldC05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMyV9Lm9mZnNldC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjclfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY29sLXNtey1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjA7ZmxleC1iYXNpczowOy1tcy1mbGV4LXBvc2l0aXZlOjE7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNvbC1zbS1hdXRvey1tcy1mbGV4OjAgMCBhdXRvO2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY29sLXNtLTF7LW1zLWZsZXg6MCAwIDguMzMzMzMzJTtmbGV4OjAgMCA4LjMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzJX0uY29sLXNtLTJ7LW1zLWZsZXg6MCAwIDE2LjY2NjY2NyU7ZmxleDowIDAgMTYuNjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY3JX0uY29sLXNtLTN7LW1zLWZsZXg6MCAwIDI1JTtmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY29sLXNtLTR7LW1zLWZsZXg6MCAwIDMzLjMzMzMzMyU7ZmxleDowIDAgMzMuMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzJX0uY29sLXNtLTV7LW1zLWZsZXg6MCAwIDQxLjY2NjY2NyU7ZmxleDowIDAgNDEuNjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY3JX0uY29sLXNtLTZ7LW1zLWZsZXg6MCAwIDUwJTtmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY29sLXNtLTd7LW1zLWZsZXg6MCAwIDU4LjMzMzMzMyU7ZmxleDowIDAgNTguMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzJX0uY29sLXNtLTh7LW1zLWZsZXg6MCAwIDY2LjY2NjY2NyU7ZmxleDowIDAgNjYuNjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY3JX0uY29sLXNtLTl7LW1zLWZsZXg6MCAwIDc1JTtmbGV4OjAgMCA3NSU7bWF4LXdpZHRoOjc1JX0uY29sLXNtLTEwey1tcy1mbGV4OjAgMCA4My4zMzMzMzMlO2ZsZXg6MCAwIDgzLjMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMyV9LmNvbC1zbS0xMXstbXMtZmxleDowIDAgOTEuNjY2NjY3JTtmbGV4OjAgMCA5MS42NjY2NjclO21heC13aWR0aDo5MS42NjY2NjclfS5jb2wtc20tMTJ7LW1zLWZsZXg6MCAwIDEwMCU7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0ub3JkZXItc20tZmlyc3R7LW1zLWZsZXgtb3JkZXI6LTE7b3JkZXI6LTF9Lm9yZGVyLXNtLWxhc3R7LW1zLWZsZXgtb3JkZXI6MTM7b3JkZXI6MTN9Lm9yZGVyLXNtLTB7LW1zLWZsZXgtb3JkZXI6MDtvcmRlcjowfS5vcmRlci1zbS0xey1tcy1mbGV4LW9yZGVyOjE7b3JkZXI6MX0ub3JkZXItc20tMnstbXMtZmxleC1vcmRlcjoyO29yZGVyOjJ9Lm9yZGVyLXNtLTN7LW1zLWZsZXgtb3JkZXI6MztvcmRlcjozfS5vcmRlci1zbS00ey1tcy1mbGV4LW9yZGVyOjQ7b3JkZXI6NH0ub3JkZXItc20tNXstbXMtZmxleC1vcmRlcjo1O29yZGVyOjV9Lm9yZGVyLXNtLTZ7LW1zLWZsZXgtb3JkZXI6NjtvcmRlcjo2fS5vcmRlci1zbS03ey1tcy1mbGV4LW9yZGVyOjc7b3JkZXI6N30ub3JkZXItc20tOHstbXMtZmxleC1vcmRlcjo4O29yZGVyOjh9Lm9yZGVyLXNtLTl7LW1zLWZsZXgtb3JkZXI6OTtvcmRlcjo5fS5vcmRlci1zbS0xMHstbXMtZmxleC1vcmRlcjoxMDtvcmRlcjoxMH0ub3JkZXItc20tMTF7LW1zLWZsZXgtb3JkZXI6MTE7b3JkZXI6MTF9Lm9yZGVyLXNtLTEyey1tcy1mbGV4LW9yZGVyOjEyO29yZGVyOjEyfS5vZmZzZXQtc20tMHttYXJnaW4tbGVmdDowfS5vZmZzZXQtc20tMXttYXJnaW4tbGVmdDo4LjMzMzMzMyV9Lm9mZnNldC1zbS0ye21hcmdpbi1sZWZ0OjE2LjY2NjY2NyV9Lm9mZnNldC1zbS0ze21hcmdpbi1sZWZ0OjI1JX0ub2Zmc2V0LXNtLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzJX0ub2Zmc2V0LXNtLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY3JX0ub2Zmc2V0LXNtLTZ7bWFyZ2luLWxlZnQ6NTAlfS5vZmZzZXQtc20tN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMlfS5vZmZzZXQtc20tOHttYXJnaW4tbGVmdDo2Ni42NjY2NjclfS5vZmZzZXQtc20tOXttYXJnaW4tbGVmdDo3NSV9Lm9mZnNldC1zbS0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMlfS5vZmZzZXQtc20tMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jb2wtbWR7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MDtmbGV4LWJhc2lzOjA7LW1zLWZsZXgtcG9zaXRpdmU6MTtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY29sLW1kLWF1dG97LW1zLWZsZXg6MCAwIGF1dG87ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0aDpub25lfS5jb2wtbWQtMXstbXMtZmxleDowIDAgOC4zMzMzMzMlO2ZsZXg6MCAwIDguMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMlfS5jb2wtbWQtMnstbXMtZmxleDowIDAgMTYuNjY2NjY3JTtmbGV4OjAgMCAxNi42NjY2NjclO21heC13aWR0aDoxNi42NjY2NjclfS5jb2wtbWQtM3stbXMtZmxleDowIDAgMjUlO2ZsZXg6MCAwIDI1JTttYXgtd2lkdGg6MjUlfS5jb2wtbWQtNHstbXMtZmxleDowIDAgMzMuMzMzMzMzJTtmbGV4OjAgMCAzMy4zMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMlfS5jb2wtbWQtNXstbXMtZmxleDowIDAgNDEuNjY2NjY3JTtmbGV4OjAgMCA0MS42NjY2NjclO21heC13aWR0aDo0MS42NjY2NjclfS5jb2wtbWQtNnstbXMtZmxleDowIDAgNTAlO2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jb2wtbWQtN3stbXMtZmxleDowIDAgNTguMzMzMzMzJTtmbGV4OjAgMCA1OC4zMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMlfS5jb2wtbWQtOHstbXMtZmxleDowIDAgNjYuNjY2NjY3JTtmbGV4OjAgMCA2Ni42NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjclfS5jb2wtbWQtOXstbXMtZmxleDowIDAgNzUlO2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jb2wtbWQtMTB7LW1zLWZsZXg6MCAwIDgzLjMzMzMzMyU7ZmxleDowIDAgODMuMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzJX0uY29sLW1kLTExey1tcy1mbGV4OjAgMCA5MS42NjY2NjclO2ZsZXg6MCAwIDkxLjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NyV9LmNvbC1tZC0xMnstbXMtZmxleDowIDAgMTAwJTtmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5vcmRlci1tZC1maXJzdHstbXMtZmxleC1vcmRlcjotMTtvcmRlcjotMX0ub3JkZXItbWQtbGFzdHstbXMtZmxleC1vcmRlcjoxMztvcmRlcjoxM30ub3JkZXItbWQtMHstbXMtZmxleC1vcmRlcjowO29yZGVyOjB9Lm9yZGVyLW1kLTF7LW1zLWZsZXgtb3JkZXI6MTtvcmRlcjoxfS5vcmRlci1tZC0yey1tcy1mbGV4LW9yZGVyOjI7b3JkZXI6Mn0ub3JkZXItbWQtM3stbXMtZmxleC1vcmRlcjozO29yZGVyOjN9Lm9yZGVyLW1kLTR7LW1zLWZsZXgtb3JkZXI6NDtvcmRlcjo0fS5vcmRlci1tZC01ey1tcy1mbGV4LW9yZGVyOjU7b3JkZXI6NX0ub3JkZXItbWQtNnstbXMtZmxleC1vcmRlcjo2O29yZGVyOjZ9Lm9yZGVyLW1kLTd7LW1zLWZsZXgtb3JkZXI6NztvcmRlcjo3fS5vcmRlci1tZC04ey1tcy1mbGV4LW9yZGVyOjg7b3JkZXI6OH0ub3JkZXItbWQtOXstbXMtZmxleC1vcmRlcjo5O29yZGVyOjl9Lm9yZGVyLW1kLTEwey1tcy1mbGV4LW9yZGVyOjEwO29yZGVyOjEwfS5vcmRlci1tZC0xMXstbXMtZmxleC1vcmRlcjoxMTtvcmRlcjoxMX0ub3JkZXItbWQtMTJ7LW1zLWZsZXgtb3JkZXI6MTI7b3JkZXI6MTJ9Lm9mZnNldC1tZC0we21hcmdpbi1sZWZ0OjB9Lm9mZnNldC1tZC0xe21hcmdpbi1sZWZ0OjguMzMzMzMzJX0ub2Zmc2V0LW1kLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY3JX0ub2Zmc2V0LW1kLTN7bWFyZ2luLWxlZnQ6MjUlfS5vZmZzZXQtbWQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMlfS5vZmZzZXQtbWQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjclfS5vZmZzZXQtbWQtNnttYXJnaW4tbGVmdDo1MCV9Lm9mZnNldC1tZC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMyV9Lm9mZnNldC1tZC04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NyV9Lm9mZnNldC1tZC05e21hcmdpbi1sZWZ0Ojc1JX0ub2Zmc2V0LW1kLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMyV9Lm9mZnNldC1tZC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNvbC1sZ3stbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jb2wtbGctYXV0b3stbXMtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNvbC1sZy0xey1tcy1mbGV4OjAgMCA4LjMzMzMzMyU7ZmxleDowIDAgOC4zMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMyV9LmNvbC1sZy0yey1tcy1mbGV4OjAgMCAxNi42NjY2NjclO2ZsZXg6MCAwIDE2LjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NyV9LmNvbC1sZy0zey1tcy1mbGV4OjAgMCAyNSU7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNvbC1sZy00ey1tcy1mbGV4OjAgMCAzMy4zMzMzMzMlO2ZsZXg6MCAwIDMzLjMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMyV9LmNvbC1sZy01ey1tcy1mbGV4OjAgMCA0MS42NjY2NjclO2ZsZXg6MCAwIDQxLjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NyV9LmNvbC1sZy02ey1tcy1mbGV4OjAgMCA1MCU7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNvbC1sZy03ey1tcy1mbGV4OjAgMCA1OC4zMzMzMzMlO2ZsZXg6MCAwIDU4LjMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMyV9LmNvbC1sZy04ey1tcy1mbGV4OjAgMCA2Ni42NjY2NjclO2ZsZXg6MCAwIDY2LjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NyV9LmNvbC1sZy05ey1tcy1mbGV4OjAgMCA3NSU7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNvbC1sZy0xMHstbXMtZmxleDowIDAgODMuMzMzMzMzJTtmbGV4OjAgMCA4My4zMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMlfS5jb2wtbGctMTF7LW1zLWZsZXg6MCAwIDkxLjY2NjY2NyU7ZmxleDowIDAgOTEuNjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY3JX0uY29sLWxnLTEyey1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9Lm9yZGVyLWxnLWZpcnN0ey1tcy1mbGV4LW9yZGVyOi0xO29yZGVyOi0xfS5vcmRlci1sZy1sYXN0ey1tcy1mbGV4LW9yZGVyOjEzO29yZGVyOjEzfS5vcmRlci1sZy0wey1tcy1mbGV4LW9yZGVyOjA7b3JkZXI6MH0ub3JkZXItbGctMXstbXMtZmxleC1vcmRlcjoxO29yZGVyOjF9Lm9yZGVyLWxnLTJ7LW1zLWZsZXgtb3JkZXI6MjtvcmRlcjoyfS5vcmRlci1sZy0zey1tcy1mbGV4LW9yZGVyOjM7b3JkZXI6M30ub3JkZXItbGctNHstbXMtZmxleC1vcmRlcjo0O29yZGVyOjR9Lm9yZGVyLWxnLTV7LW1zLWZsZXgtb3JkZXI6NTtvcmRlcjo1fS5vcmRlci1sZy02ey1tcy1mbGV4LW9yZGVyOjY7b3JkZXI6Nn0ub3JkZXItbGctN3stbXMtZmxleC1vcmRlcjo3O29yZGVyOjd9Lm9yZGVyLWxnLTh7LW1zLWZsZXgtb3JkZXI6ODtvcmRlcjo4fS5vcmRlci1sZy05ey1tcy1mbGV4LW9yZGVyOjk7b3JkZXI6OX0ub3JkZXItbGctMTB7LW1zLWZsZXgtb3JkZXI6MTA7b3JkZXI6MTB9Lm9yZGVyLWxnLTExey1tcy1mbGV4LW9yZGVyOjExO29yZGVyOjExfS5vcmRlci1sZy0xMnstbXMtZmxleC1vcmRlcjoxMjtvcmRlcjoxMn0ub2Zmc2V0LWxnLTB7bWFyZ2luLWxlZnQ6MH0ub2Zmc2V0LWxnLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMlfS5vZmZzZXQtbGctMnttYXJnaW4tbGVmdDoxNi42NjY2NjclfS5vZmZzZXQtbGctM3ttYXJnaW4tbGVmdDoyNSV9Lm9mZnNldC1sZy00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMyV9Lm9mZnNldC1sZy01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NyV9Lm9mZnNldC1sZy02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LWxnLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzJX0ub2Zmc2V0LWxnLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY3JX0ub2Zmc2V0LWxnLTl7bWFyZ2luLWxlZnQ6NzUlfS5vZmZzZXQtbGctMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzJX0ub2Zmc2V0LWxnLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNvbC14bHstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jb2wteGwtYXV0b3stbXMtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNvbC14bC0xey1tcy1mbGV4OjAgMCA4LjMzMzMzMyU7ZmxleDowIDAgOC4zMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMyV9LmNvbC14bC0yey1tcy1mbGV4OjAgMCAxNi42NjY2NjclO2ZsZXg6MCAwIDE2LjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NyV9LmNvbC14bC0zey1tcy1mbGV4OjAgMCAyNSU7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNvbC14bC00ey1tcy1mbGV4OjAgMCAzMy4zMzMzMzMlO2ZsZXg6MCAwIDMzLjMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMyV9LmNvbC14bC01ey1tcy1mbGV4OjAgMCA0MS42NjY2NjclO2ZsZXg6MCAwIDQxLjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NyV9LmNvbC14bC02ey1tcy1mbGV4OjAgMCA1MCU7ZmxleDowIDAgNTAlO21heC13aWR0aDo1MCV9LmNvbC14bC03ey1tcy1mbGV4OjAgMCA1OC4zMzMzMzMlO2ZsZXg6MCAwIDU4LjMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMyV9LmNvbC14bC04ey1tcy1mbGV4OjAgMCA2Ni42NjY2NjclO2ZsZXg6MCAwIDY2LjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NyV9LmNvbC14bC05ey1tcy1mbGV4OjAgMCA3NSU7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNvbC14bC0xMHstbXMtZmxleDowIDAgODMuMzMzMzMzJTtmbGV4OjAgMCA4My4zMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMlfS5jb2wteGwtMTF7LW1zLWZsZXg6MCAwIDkxLjY2NjY2NyU7ZmxleDowIDAgOTEuNjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY3JX0uY29sLXhsLTEyey1tcy1mbGV4OjAgMCAxMDAlO2ZsZXg6MCAwIDEwMCU7bWF4LXdpZHRoOjEwMCV9Lm9yZGVyLXhsLWZpcnN0ey1tcy1mbGV4LW9yZGVyOi0xO29yZGVyOi0xfS5vcmRlci14bC1sYXN0ey1tcy1mbGV4LW9yZGVyOjEzO29yZGVyOjEzfS5vcmRlci14bC0wey1tcy1mbGV4LW9yZGVyOjA7b3JkZXI6MH0ub3JkZXIteGwtMXstbXMtZmxleC1vcmRlcjoxO29yZGVyOjF9Lm9yZGVyLXhsLTJ7LW1zLWZsZXgtb3JkZXI6MjtvcmRlcjoyfS5vcmRlci14bC0zey1tcy1mbGV4LW9yZGVyOjM7b3JkZXI6M30ub3JkZXIteGwtNHstbXMtZmxleC1vcmRlcjo0O29yZGVyOjR9Lm9yZGVyLXhsLTV7LW1zLWZsZXgtb3JkZXI6NTtvcmRlcjo1fS5vcmRlci14bC02ey1tcy1mbGV4LW9yZGVyOjY7b3JkZXI6Nn0ub3JkZXIteGwtN3stbXMtZmxleC1vcmRlcjo3O29yZGVyOjd9Lm9yZGVyLXhsLTh7LW1zLWZsZXgtb3JkZXI6ODtvcmRlcjo4fS5vcmRlci14bC05ey1tcy1mbGV4LW9yZGVyOjk7b3JkZXI6OX0ub3JkZXIteGwtMTB7LW1zLWZsZXgtb3JkZXI6MTA7b3JkZXI6MTB9Lm9yZGVyLXhsLTExey1tcy1mbGV4LW9yZGVyOjExO29yZGVyOjExfS5vcmRlci14bC0xMnstbXMtZmxleC1vcmRlcjoxMjtvcmRlcjoxMn0ub2Zmc2V0LXhsLTB7bWFyZ2luLWxlZnQ6MH0ub2Zmc2V0LXhsLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMlfS5vZmZzZXQteGwtMnttYXJnaW4tbGVmdDoxNi42NjY2NjclfS5vZmZzZXQteGwtM3ttYXJnaW4tbGVmdDoyNSV9Lm9mZnNldC14bC00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMyV9Lm9mZnNldC14bC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NyV9Lm9mZnNldC14bC02e21hcmdpbi1sZWZ0OjUwJX0ub2Zmc2V0LXhsLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzJX0ub2Zmc2V0LXhsLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY3JX0ub2Zmc2V0LXhsLTl7bWFyZ2luLWxlZnQ6NzUlfS5vZmZzZXQteGwtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzJX0ub2Zmc2V0LXhsLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NyV9fS50YWJsZXt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21hcmdpbi1ib3R0b206MXJlbTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS50YWJsZSB0ZCwudGFibGUgdGh7cGFkZGluZzouNzVyZW07dmVydGljYWwtYWxpZ246dG9wO2JvcmRlci10b3A6MXB4IHNvbGlkICNkZWUyZTZ9LnRhYmxlIHRoZWFkIHRoe3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tOjJweCBzb2xpZCAjZGVlMmU2fS50YWJsZSB0Ym9keSt0Ym9keXtib3JkZXItdG9wOjJweCBzb2xpZCAjZGVlMmU2fS50YWJsZSAudGFibGV7YmFja2dyb3VuZC1jb2xvcjojZmZmfS50YWJsZS1zbSB0ZCwudGFibGUtc20gdGh7cGFkZGluZzouM3JlbX0udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjFweCBzb2xpZCAjZGVlMmU2fS50YWJsZS1ib3JkZXJlZCB0ZCwudGFibGUtYm9yZGVyZWQgdGh7Ym9yZGVyOjFweCBzb2xpZCAjZGVlMmU2fS50YWJsZS1ib3JkZXJlZCB0aGVhZCB0ZCwudGFibGUtYm9yZGVyZWQgdGhlYWQgdGh7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHh9LnRhYmxlLWJvcmRlcmxlc3MgdGJvZHkrdGJvZHksLnRhYmxlLWJvcmRlcmxlc3MgdGQsLnRhYmxlLWJvcmRlcmxlc3MgdGgsLnRhYmxlLWJvcmRlcmxlc3MgdGhlYWQgdGh7Ym9yZGVyOjB9LnRhYmxlLXN0cmlwZWQgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA1KX0udGFibGUtaG92ZXIgdGJvZHkgdHI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNzUpfS50YWJsZS1wcmltYXJ5LC50YWJsZS1wcmltYXJ5PnRkLC50YWJsZS1wcmltYXJ5PnRoe2JhY2tncm91bmQtY29sb3I6I2I4ZGFmZn0udGFibGUtaG92ZXIgLnRhYmxlLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojOWZjZGZmfS50YWJsZS1ob3ZlciAudGFibGUtcHJpbWFyeTpob3Zlcj50ZCwudGFibGUtaG92ZXIgLnRhYmxlLXByaW1hcnk6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojOWZjZGZmfS50YWJsZS1zZWNvbmRhcnksLnRhYmxlLXNlY29uZGFyeT50ZCwudGFibGUtc2Vjb25kYXJ5PnRoe2JhY2tncm91bmQtY29sb3I6I2Q2ZDhkYn0udGFibGUtaG92ZXIgLnRhYmxlLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjOGNiY2Z9LnRhYmxlLWhvdmVyIC50YWJsZS1zZWNvbmRhcnk6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1zZWNvbmRhcnk6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojYzhjYmNmfS50YWJsZS1zdWNjZXNzLC50YWJsZS1zdWNjZXNzPnRkLC50YWJsZS1zdWNjZXNzPnRoe2JhY2tncm91bmQtY29sb3I6I2MzZTZjYn0udGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYjFkZmJifS50YWJsZS1ob3ZlciAudGFibGUtc3VjY2Vzczpob3Zlcj50ZCwudGFibGUtaG92ZXIgLnRhYmxlLXN1Y2Nlc3M6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojYjFkZmJifS50YWJsZS1pbmZvLC50YWJsZS1pbmZvPnRkLC50YWJsZS1pbmZvPnRoe2JhY2tncm91bmQtY29sb3I6I2JlZTVlYn0udGFibGUtaG92ZXIgLnRhYmxlLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYWJkZGU1fS50YWJsZS1ob3ZlciAudGFibGUtaW5mbzpob3Zlcj50ZCwudGFibGUtaG92ZXIgLnRhYmxlLWluZm86aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojYWJkZGU1fS50YWJsZS13YXJuaW5nLC50YWJsZS13YXJuaW5nPnRkLC50YWJsZS13YXJuaW5nPnRoe2JhY2tncm91bmQtY29sb3I6I2ZmZWViYX0udGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZlOGExfS50YWJsZS1ob3ZlciAudGFibGUtd2FybmluZzpob3Zlcj50ZCwudGFibGUtaG92ZXIgLnRhYmxlLXdhcm5pbmc6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojZmZlOGExfS50YWJsZS1kYW5nZXIsLnRhYmxlLWRhbmdlcj50ZCwudGFibGUtZGFuZ2VyPnRoe2JhY2tncm91bmQtY29sb3I6I2Y1YzZjYn0udGFibGUtaG92ZXIgLnRhYmxlLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmMWIwYjd9LnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1kYW5nZXI6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojZjFiMGI3fS50YWJsZS1saWdodCwudGFibGUtbGlnaHQ+dGQsLnRhYmxlLWxpZ2h0PnRoe2JhY2tncm91bmQtY29sb3I6I2ZkZmRmZX0udGFibGUtaG92ZXIgLnRhYmxlLWxpZ2h0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2VjZWNmNn0udGFibGUtaG92ZXIgLnRhYmxlLWxpZ2h0OmhvdmVyPnRkLC50YWJsZS1ob3ZlciAudGFibGUtbGlnaHQ6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojZWNlY2Y2fS50YWJsZS1kYXJrLC50YWJsZS1kYXJrPnRkLC50YWJsZS1kYXJrPnRoe2JhY2tncm91bmQtY29sb3I6I2M2YzhjYX0udGFibGUtaG92ZXIgLnRhYmxlLWRhcms6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojYjliYmJlfS50YWJsZS1ob3ZlciAudGFibGUtZGFyazpob3Zlcj50ZCwudGFibGUtaG92ZXIgLnRhYmxlLWRhcms6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjojYjliYmJlfS50YWJsZS1hY3RpdmUsLnRhYmxlLWFjdGl2ZT50ZCwudGFibGUtYWN0aXZlPnRoe2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuMDc1KX0udGFibGUtaG92ZXIgLnRhYmxlLWFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsLjA3NSl9LnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXI+dGQsLnRhYmxlLWhvdmVyIC50YWJsZS1hY3RpdmU6aG92ZXI+dGh7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wNzUpfS50YWJsZSAudGhlYWQtZGFyayB0aHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzIxMjUyOTtib3JkZXItY29sb3I6IzMyMzgzZX0udGFibGUgLnRoZWFkLWxpZ2h0IHRoe2NvbG9yOiM0OTUwNTc7YmFja2dyb3VuZC1jb2xvcjojZTllY2VmO2JvcmRlci1jb2xvcjojZGVlMmU2fS50YWJsZS1kYXJre2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjEyNTI5fS50YWJsZS1kYXJrIHRkLC50YWJsZS1kYXJrIHRoLC50YWJsZS1kYXJrIHRoZWFkIHRoe2JvcmRlci1jb2xvcjojMzIzODNlfS50YWJsZS1kYXJrLnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfS50YWJsZS1kYXJrLnRhYmxlLXN0cmlwZWQgdGJvZHkgdHI6bnRoLW9mLXR5cGUob2RkKXtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjA1KX0udGFibGUtZGFyay50YWJsZS1ob3ZlciB0Ym9keSB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjA3NSl9QG1lZGlhIChtYXgtd2lkdGg6NTc1Ljk4cHgpey50YWJsZS1yZXNwb25zaXZlLXNte2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtvdmVyZmxvdy14OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcn0udGFibGUtcmVzcG9uc2l2ZS1zbT4udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjB9fUBtZWRpYSAobWF4LXdpZHRoOjc2Ny45OHB4KXsudGFibGUtcmVzcG9uc2l2ZS1tZHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7b3ZlcmZsb3cteDphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOy1tcy1vdmVyZmxvdy1zdHlsZTotbXMtYXV0b2hpZGluZy1zY3JvbGxiYXJ9LnRhYmxlLXJlc3BvbnNpdmUtbWQ+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfX1AbWVkaWEgKG1heC13aWR0aDo5OTEuOThweCl7LnRhYmxlLXJlc3BvbnNpdmUtbGd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO292ZXJmbG93LXg6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDstbXMtb3ZlcmZsb3ctc3R5bGU6LW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyfS50YWJsZS1yZXNwb25zaXZlLWxnPi50YWJsZS1ib3JkZXJlZHtib3JkZXI6MH19QG1lZGlhIChtYXgtd2lkdGg6MTE5OS45OHB4KXsudGFibGUtcmVzcG9uc2l2ZS14bHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7b3ZlcmZsb3cteDphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOy1tcy1vdmVyZmxvdy1zdHlsZTotbXMtYXV0b2hpZGluZy1zY3JvbGxiYXJ9LnRhYmxlLXJlc3BvbnNpdmUteGw+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfX0udGFibGUtcmVzcG9uc2l2ZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7b3ZlcmZsb3cteDphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOy1tcy1vdmVyZmxvdy1zdHlsZTotbXMtYXV0b2hpZGluZy1zY3JvbGxiYXJ9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfS5mb3JtLWNvbnRyb2x7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO3BhZGRpbmc6LjM3NXJlbSAuNzVyZW07Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MS41O2NvbG9yOiM0OTUwNTc7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czouMjVyZW07dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXR9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZm9ybS1jb250cm9se3RyYW5zaXRpb246bm9uZX19LmZvcm0tY29udHJvbDo6LW1zLWV4cGFuZHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowfS5mb3JtLWNvbnRyb2w6Zm9jdXN7Y29sb3I6IzQ5NTA1NztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM4MGJkZmY7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KX0uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM2Yzc1N2Q7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6Oi1tb3otcGxhY2Vob2xkZXJ7Y29sb3I6IzZjNzU3ZDtvcGFjaXR5OjF9LmZvcm0tY29udHJvbDotbXMtaW5wdXQtcGxhY2Vob2xkZXJ7Y29sb3I6IzZjNzU3ZDtvcGFjaXR5OjF9LmZvcm0tY29udHJvbDo6LW1zLWlucHV0LXBsYWNlaG9sZGVye2NvbG9yOiM2Yzc1N2Q7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6OnBsYWNlaG9sZGVye2NvbG9yOiM2Yzc1N2Q7b3BhY2l0eToxfS5mb3JtLWNvbnRyb2w6ZGlzYWJsZWQsLmZvcm0tY29udHJvbFtyZWFkb25seV17YmFja2dyb3VuZC1jb2xvcjojZTllY2VmO29wYWNpdHk6MX1zZWxlY3QuZm9ybS1jb250cm9sOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKXtoZWlnaHQ6Y2FsYygyLjI1cmVtICsgMnB4KX1zZWxlY3QuZm9ybS1jb250cm9sOmZvY3VzOjotbXMtdmFsdWV7Y29sb3I6IzQ5NTA1NztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmZvcm0tY29udHJvbC1maWxlLC5mb3JtLWNvbnRyb2wtcmFuZ2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5jb2wtZm9ybS1sYWJlbHtwYWRkaW5nLXRvcDpjYWxjKC4zNzVyZW0gKyAxcHgpO3BhZGRpbmctYm90dG9tOmNhbGMoLjM3NXJlbSArIDFweCk7bWFyZ2luLWJvdHRvbTowO2ZvbnQtc2l6ZTppbmhlcml0O2xpbmUtaGVpZ2h0OjEuNX0uY29sLWZvcm0tbGFiZWwtbGd7cGFkZGluZy10b3A6Y2FsYyguNXJlbSArIDFweCk7cGFkZGluZy1ib3R0b206Y2FsYyguNXJlbSArIDFweCk7Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MS41fS5jb2wtZm9ybS1sYWJlbC1zbXtwYWRkaW5nLXRvcDpjYWxjKC4yNXJlbSArIDFweCk7cGFkZGluZy1ib3R0b206Y2FsYyguMjVyZW0gKyAxcHgpO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNX0uZm9ybS1jb250cm9sLXBsYWludGV4dHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZy10b3A6LjM3NXJlbTtwYWRkaW5nLWJvdHRvbTouMzc1cmVtO21hcmdpbi1ib3R0b206MDtsaW5lLWhlaWdodDoxLjU7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItd2lkdGg6MXB4IDB9LmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLWxnLC5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbC1zbSwuaW5wdXQtZ3JvdXAtbGc+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmJ0biwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFwcGVuZD4uZm9ybS1jb250cm9sLXBsYWludGV4dC5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uZm9ybS1jb250cm9sLXBsYWludGV4dC5idG4sLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmlucHV0LWdyb3VwLXRleHQsLmlucHV0LWdyb3VwLXNtPi5mb3JtLWNvbnRyb2wtcGxhaW50ZXh0LmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFwcGVuZD4uZm9ybS1jb250cm9sLXBsYWludGV4dC5idG4sLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1hcHBlbmQ+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuaW5wdXQtZ3JvdXAtdGV4dCwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLXByZXBlbmQ+LmZvcm0tY29udHJvbC1wbGFpbnRleHQuYnRuLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uZm9ybS1jb250cm9sLXBsYWludGV4dC5pbnB1dC1ncm91cC10ZXh0e3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH0uZm9ybS1jb250cm9sLXNtLC5pbnB1dC1ncm91cC1zbT4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5idG4sLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1hcHBlbmQ+LmlucHV0LWdyb3VwLXRleHQsLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5idG4sLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5pbnB1dC1ncm91cC10ZXh0e3BhZGRpbmc6LjI1cmVtIC41cmVtO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOi4ycmVtfS5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYXBwZW5kPnNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYXBwZW5kPnNlbGVjdC5pbnB1dC1ncm91cC10ZXh0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLXByZXBlbmQ+c2VsZWN0LmJ0bjpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1wcmVwZW5kPnNlbGVjdC5pbnB1dC1ncm91cC10ZXh0Om5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwuaW5wdXQtZ3JvdXAtc20+c2VsZWN0LmZvcm0tY29udHJvbDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksc2VsZWN0LmZvcm0tY29udHJvbC1zbTpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSl7aGVpZ2h0OmNhbGMoMS44MTI1cmVtICsgMnB4KX0uZm9ybS1jb250cm9sLWxnLC5pbnB1dC1ncm91cC1sZz4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYXBwZW5kPi5idG4sLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1hcHBlbmQ+LmlucHV0LWdyb3VwLXRleHQsLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5idG4sLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1wcmVwZW5kPi5pbnB1dC1ncm91cC10ZXh0e3BhZGRpbmc6LjVyZW0gMXJlbTtmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDoxLjU7Ym9yZGVyLXJhZGl1czouM3JlbX0uaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFwcGVuZD5zZWxlY3QuYnRuOm5vdChbc2l6ZV0pOm5vdChbbXVsdGlwbGVdKSwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFwcGVuZD5zZWxlY3QuaW5wdXQtZ3JvdXAtdGV4dDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1ncm91cC1wcmVwZW5kPnNlbGVjdC5idG46bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLC5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtcHJlcGVuZD5zZWxlY3QuaW5wdXQtZ3JvdXAtdGV4dDpub3QoW3NpemVdKTpub3QoW211bHRpcGxlXSksLmlucHV0LWdyb3VwLWxnPnNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pLHNlbGVjdC5mb3JtLWNvbnRyb2wtbGc6bm90KFtzaXplXSk6bm90KFttdWx0aXBsZV0pe2hlaWdodDpjYWxjKDIuODc1cmVtICsgMnB4KX0uZm9ybS1ncm91cHttYXJnaW4tYm90dG9tOjFyZW19LmZvcm0tdGV4dHtkaXNwbGF5OmJsb2NrO21hcmdpbi10b3A6LjI1cmVtfS5mb3JtLXJvd3tkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7bWFyZ2luLXJpZ2h0Oi01cHg7bWFyZ2luLWxlZnQ6LTVweH0uZm9ybS1yb3c+LmNvbCwuZm9ybS1yb3c+W2NsYXNzKj1jb2wtXXtwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLWxlZnQ6NXB4fS5mb3JtLWNoZWNre3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7cGFkZGluZy1sZWZ0OjEuMjVyZW19LmZvcm0tY2hlY2staW5wdXR7cG9zaXRpb246YWJzb2x1dGU7bWFyZ2luLXRvcDouM3JlbTttYXJnaW4tbGVmdDotMS4yNXJlbX0uZm9ybS1jaGVjay1pbnB1dDpkaXNhYmxlZH4uZm9ybS1jaGVjay1sYWJlbHtjb2xvcjojNmM3NTdkfS5mb3JtLWNoZWNrLWxhYmVse21hcmdpbi1ib3R0b206MH0uZm9ybS1jaGVjay1pbmxpbmV7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmctbGVmdDowO21hcmdpbi1yaWdodDouNzVyZW19LmZvcm0tY2hlY2staW5saW5lIC5mb3JtLWNoZWNrLWlucHV0e3Bvc2l0aW9uOnN0YXRpYzttYXJnaW4tdG9wOjA7bWFyZ2luLXJpZ2h0Oi4zMTI1cmVtO21hcmdpbi1sZWZ0OjB9LnZhbGlkLWZlZWRiYWNre2Rpc3BsYXk6bm9uZTt3aWR0aDoxMDAlO21hcmdpbi10b3A6LjI1cmVtO2ZvbnQtc2l6ZTo4MCU7Y29sb3I6IzI4YTc0NX0udmFsaWQtdG9vbHRpcHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTt6LWluZGV4OjU7ZGlzcGxheTpub25lO21heC13aWR0aDoxMDAlO3BhZGRpbmc6LjVyZW07bWFyZ2luLXRvcDouMXJlbTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDQwLDE2Nyw2OSwuOCk7Ym9yZGVyLXJhZGl1czouMnJlbX0uY3VzdG9tLXNlbGVjdC5pcy12YWxpZCwuZm9ybS1jb250cm9sLmlzLXZhbGlkLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tc2VsZWN0OnZhbGlkLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6dmFsaWR7Ym9yZGVyLWNvbG9yOiMyOGE3NDV9LmN1c3RvbS1zZWxlY3QuaXMtdmFsaWQ6Zm9jdXMsLmZvcm0tY29udHJvbC5pcy12YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDp2YWxpZDpmb2N1cywud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sOnZhbGlkOmZvY3Vze2JvcmRlci1jb2xvcjojMjhhNzQ1O2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSg0MCwxNjcsNjksLjI1KX0uY3VzdG9tLXNlbGVjdC5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmN1c3RvbS1zZWxlY3QuaXMtdmFsaWR+LnZhbGlkLXRvb2x0aXAsLmZvcm0tY29udHJvbC5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmZvcm0tY29udHJvbC5pcy12YWxpZH4udmFsaWQtdG9vbHRpcCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDp2YWxpZH4udmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6dmFsaWR+LnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZH4udmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDp2YWxpZH4udmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5mb3JtLWNvbnRyb2wtZmlsZS5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmZvcm0tY29udHJvbC1maWxlLmlzLXZhbGlkfi52YWxpZC10b29sdGlwLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2wtZmlsZTp2YWxpZH4udmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbC1maWxlOnZhbGlkfi52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWR+LmZvcm0tY2hlY2stbGFiZWwsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWR+LmZvcm0tY2hlY2stbGFiZWx7Y29sb3I6IzI4YTc0NX0uZm9ybS1jaGVjay1pbnB1dC5pcy12YWxpZH4udmFsaWQtZmVlZGJhY2ssLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWR+LnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6dmFsaWR+LnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNoZWNrLWlucHV0OnZhbGlkfi52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkfi5jdXN0b20tY29udHJvbC1sYWJlbCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWR+LmN1c3RvbS1jb250cm9sLWxhYmVse2NvbG9yOiMyOGE3NDV9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM3MWRkOGF9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkfi52YWxpZC1mZWVkYmFjaywuY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWR+LnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OnZhbGlkfi52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWR+LnZhbGlkLXRvb2x0aXB7ZGlzcGxheTpibG9ja30uY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtdmFsaWQ6Y2hlY2tlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWNvbnRyb2wtaW5wdXQ6dmFsaWQ6Y2hlY2tlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiMzNGNlNTd9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLXZhbGlkOmZvY3Vzfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tY29udHJvbC1pbnB1dDp2YWxpZDpmb2N1c34uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtib3gtc2hhZG93OjAgMCAwIDFweCAjZmZmLDAgMCAwIC4ycmVtIHJnYmEoNDAsMTY3LDY5LC4yNSl9LmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkfi5jdXN0b20tZmlsZS1sYWJlbCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6dmFsaWR+LmN1c3RvbS1maWxlLWxhYmVse2JvcmRlci1jb2xvcjojMjhhNzQ1fS5jdXN0b20tZmlsZS1pbnB1dC5pcy12YWxpZH4uY3VzdG9tLWZpbGUtbGFiZWw6OmJlZm9yZSwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6dmFsaWR+LmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOmluaGVyaXR9LmN1c3RvbS1maWxlLWlucHV0LmlzLXZhbGlkfi52YWxpZC1mZWVkYmFjaywuY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWR+LnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OnZhbGlkfi52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6dmFsaWR+LnZhbGlkLXRvb2x0aXB7ZGlzcGxheTpibG9ja30uY3VzdG9tLWZpbGUtaW5wdXQuaXMtdmFsaWQ6Zm9jdXN+LmN1c3RvbS1maWxlLWxhYmVsLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDp2YWxpZDpmb2N1c34uY3VzdG9tLWZpbGUtbGFiZWx7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDQwLDE2Nyw2OSwuMjUpfS5pbnZhbGlkLWZlZWRiYWNre2Rpc3BsYXk6bm9uZTt3aWR0aDoxMDAlO21hcmdpbi10b3A6LjI1cmVtO2ZvbnQtc2l6ZTo4MCU7Y29sb3I6I2RjMzU0NX0uaW52YWxpZC10b29sdGlwe3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO3otaW5kZXg6NTtkaXNwbGF5Om5vbmU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzouNXJlbTttYXJnaW4tdG9wOi4xcmVtO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjE7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIwLDUzLDY5LC44KTtib3JkZXItcmFkaXVzOi4ycmVtfS5jdXN0b20tc2VsZWN0LmlzLWludmFsaWQsLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tc2VsZWN0OmludmFsaWQsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlke2JvcmRlci1jb2xvcjojZGMzNTQ1fS5jdXN0b20tc2VsZWN0LmlzLWludmFsaWQ6Zm9jdXMsLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkOmZvY3VzLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tc2VsZWN0OmludmFsaWQ6Zm9jdXMsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkOmZvY3Vze2JvcmRlci1jb2xvcjojZGMzNTQ1O2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyMjAsNTMsNjksLjI1KX0uY3VzdG9tLXNlbGVjdC5pcy1pbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC5jdXN0b20tc2VsZWN0LmlzLWludmFsaWR+LmludmFsaWQtdG9vbHRpcCwuZm9ybS1jb250cm9sLmlzLWludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLmZvcm0tY29udHJvbC5pcy1pbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1zZWxlY3Q6aW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuY3VzdG9tLXNlbGVjdDppbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmZvcm0tY29udHJvbDppbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC53YXMtdmFsaWRhdGVkIC5mb3JtLWNvbnRyb2w6aW52YWxpZH4uaW52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmZvcm0tY29udHJvbC1maWxlLmlzLWludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLmZvcm0tY29udHJvbC1maWxlLmlzLWludmFsaWR+LmludmFsaWQtdG9vbHRpcCwud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6aW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuZm9ybS1jb250cm9sLWZpbGU6aW52YWxpZH4uaW52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmZvcm0tY2hlY2staW5wdXQuaXMtaW52YWxpZH4uZm9ybS1jaGVjay1sYWJlbCwud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDppbnZhbGlkfi5mb3JtLWNoZWNrLWxhYmVse2NvbG9yOiNkYzM1NDV9LmZvcm0tY2hlY2staW5wdXQuaXMtaW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywuZm9ybS1jaGVjay1pbnB1dC5pcy1pbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmZvcm0tY2hlY2staW5wdXQ6aW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuZm9ybS1jaGVjay1pbnB1dDppbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXB7ZGlzcGxheTpibG9ja30uY3VzdG9tLWNvbnRyb2wtaW5wdXQuaXMtaW52YWxpZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWwsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWR+LmN1c3RvbS1jb250cm9sLWxhYmVse2NvbG9yOiNkYzM1NDV9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLWludmFsaWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojZWZhMmE5fS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkfi5pbnZhbGlkLWZlZWRiYWNrLC5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkfi5pbnZhbGlkLXRvb2x0aXAsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWR+LmludmFsaWQtdG9vbHRpcHtkaXNwbGF5OmJsb2NrfS5jdXN0b20tY29udHJvbC1pbnB1dC5pcy1pbnZhbGlkOmNoZWNrZWR+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWQ6Y2hlY2tlZH4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNlNDYwNmR9LmN1c3RvbS1jb250cm9sLWlucHV0LmlzLWludmFsaWQ6Zm9jdXN+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1jb250cm9sLWlucHV0OmludmFsaWQ6Zm9jdXN+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7Ym94LXNoYWRvdzowIDAgMCAxcHggI2ZmZiwwIDAgMCAuMnJlbSByZ2JhKDIyMCw1Myw2OSwuMjUpfS5jdXN0b20tZmlsZS1pbnB1dC5pcy1pbnZhbGlkfi5jdXN0b20tZmlsZS1sYWJlbCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZH4uY3VzdG9tLWZpbGUtbGFiZWx7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmN1c3RvbS1maWxlLWlucHV0LmlzLWludmFsaWR+LmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmUsLndhcy12YWxpZGF0ZWQgLmN1c3RvbS1maWxlLWlucHV0OmludmFsaWR+LmN1c3RvbS1maWxlLWxhYmVsOjpiZWZvcmV7Ym9yZGVyLWNvbG9yOmluaGVyaXR9LmN1c3RvbS1maWxlLWlucHV0LmlzLWludmFsaWR+LmludmFsaWQtZmVlZGJhY2ssLmN1c3RvbS1maWxlLWlucHV0LmlzLWludmFsaWR+LmludmFsaWQtdG9vbHRpcCwud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZH4uaW52YWxpZC1mZWVkYmFjaywud2FzLXZhbGlkYXRlZCAuY3VzdG9tLWZpbGUtaW5wdXQ6aW52YWxpZH4uaW52YWxpZC10b29sdGlwe2Rpc3BsYXk6YmxvY2t9LmN1c3RvbS1maWxlLWlucHV0LmlzLWludmFsaWQ6Zm9jdXN+LmN1c3RvbS1maWxlLWxhYmVsLC53YXMtdmFsaWRhdGVkIC5jdXN0b20tZmlsZS1pbnB1dDppbnZhbGlkOmZvY3Vzfi5jdXN0b20tZmlsZS1sYWJlbHtib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjIwLDUzLDY5LC4yNSl9LmZvcm0taW5saW5le2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9LmZvcm0taW5saW5lIC5mb3JtLWNoZWNre3dpZHRoOjEwMCV9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5mb3JtLWlubGluZSBsYWJlbHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWJvdHRvbTowfS5mb3JtLWlubGluZSAuZm9ybS1ncm91cHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleDowIDAgYXV0bztmbGV4OjAgMCBhdXRvOy1tcy1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbTowfS5mb3JtLWlubGluZSAuZm9ybS1jb250cm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmF1dG87dmVydGljYWwtYWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAuZm9ybS1jb250cm9sLXBsYWludGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uZm9ybS1pbmxpbmUgLmN1c3RvbS1zZWxlY3QsLmZvcm0taW5saW5lIC5pbnB1dC1ncm91cHt3aWR0aDphdXRvfS5mb3JtLWlubGluZSAuZm9ybS1jaGVja3tkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6YXV0bztwYWRkaW5nLWxlZnQ6MH0uZm9ybS1pbmxpbmUgLmZvcm0tY2hlY2staW5wdXR7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDowO21hcmdpbi1yaWdodDouMjVyZW07bWFyZ2luLWxlZnQ6MH0uZm9ybS1pbmxpbmUgLmN1c3RvbS1jb250cm9sey1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZm9ybS1pbmxpbmUgLmN1c3RvbS1jb250cm9sLWxhYmVse21hcmdpbi1ib3R0b206MH19LmJ0bntkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXdlaWdodDo0MDA7dGV4dC1hbGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOi4yNXJlbTt0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5idG57dHJhbnNpdGlvbjpub25lfX0uYnRuOmZvY3VzLC5idG46aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmJ0bi5mb2N1cywuYnRuOmZvY3Vze291dGxpbmU6MDtib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSl9LmJ0bi5kaXNhYmxlZCwuYnRuOmRpc2FibGVke29wYWNpdHk6LjY1fS5idG46bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9LmJ0bjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmV7YmFja2dyb3VuZC1pbWFnZTpub25lfWEuYnRuLmRpc2FibGVkLGZpZWxkc2V0OmRpc2FibGVkIGEuYnRue3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ0bi1wcmltYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmO2JvcmRlci1jb2xvcjojMDA3YmZmfS5idG4tcHJpbWFyeTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwNjlkOTtib3JkZXItY29sb3I6IzAwNjJjY30uYnRuLXByaW1hcnkuZm9jdXMsLmJ0bi1wcmltYXJ5OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjUpfS5idG4tcHJpbWFyeS5kaXNhYmxlZCwuYnRuLXByaW1hcnk6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmY7Ym9yZGVyLWNvbG9yOiMwMDdiZmZ9LmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDYyY2M7Ym9yZGVyLWNvbG9yOiMwMDVjYmZ9LmJ0bi1wcmltYXJ5Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tcHJpbWFyeS5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuNSl9LmJ0bi1zZWNvbmRhcnl7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM2Yzc1N2Q7Ym9yZGVyLWNvbG9yOiM2Yzc1N2R9LmJ0bi1zZWNvbmRhcnk6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM1YTYyNjg7Ym9yZGVyLWNvbG9yOiM1NDViNjJ9LmJ0bi1zZWNvbmRhcnkuZm9jdXMsLmJ0bi1zZWNvbmRhcnk6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDEwOCwxMTcsMTI1LC41KX0uYnRuLXNlY29uZGFyeS5kaXNhYmxlZCwuYnRuLXNlY29uZGFyeTpkaXNhYmxlZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzZjNzU3ZDtib3JkZXItY29sb3I6IzZjNzU3ZH0uYnRuLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzU0NWI2Mjtib3JkZXItY29sb3I6IzRlNTU1Yn0uYnRuLXNlY29uZGFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tc2Vjb25kYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMTA4LDExNywxMjUsLjUpfS5idG4tc3VjY2Vzc3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI4YTc0NTtib3JkZXItY29sb3I6IzI4YTc0NX0uYnRuLXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMTg4Mzg7Ym9yZGVyLWNvbG9yOiMxZTdlMzR9LmJ0bi1zdWNjZXNzLmZvY3VzLC5idG4tc3VjY2Vzczpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNDAsMTY3LDY5LC41KX0uYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi1zdWNjZXNzOmRpc2FibGVke2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjhhNzQ1O2JvcmRlci1jb2xvcjojMjhhNzQ1fS5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWU3ZTM0O2JvcmRlci1jb2xvcjojMWM3NDMwfS5idG4tc3VjY2Vzczpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLXN1Y2Nlc3MuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSg0MCwxNjcsNjksLjUpfS5idG4taW5mb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE3YTJiODtib3JkZXItY29sb3I6IzE3YTJiOH0uYnRuLWluZm86aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxMzg0OTY7Ym9yZGVyLWNvbG9yOiMxMTdhOGJ9LmJ0bi1pbmZvLmZvY3VzLC5idG4taW5mbzpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjMsMTYyLDE4NCwuNSl9LmJ0bi1pbmZvLmRpc2FibGVkLC5idG4taW5mbzpkaXNhYmxlZHtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE3YTJiODtib3JkZXItY29sb3I6IzE3YTJiOH0uYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4taW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzExN2E4Yjtib3JkZXItY29sb3I6IzEwNzA3Zn0uYnRuLWluZm86bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4taW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1pbmZvLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjMsMTYyLDE4NCwuNSl9LmJ0bi13YXJuaW5ne2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4td2FybmluZzpob3Zlcntjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2UwYTgwMDtib3JkZXItY29sb3I6I2QzOWUwMH0uYnRuLXdhcm5pbmcuZm9jdXMsLmJ0bi13YXJuaW5nOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyNTUsMTkzLDcsLjUpfS5idG4td2FybmluZy5kaXNhYmxlZCwuYnRuLXdhcm5pbmc6ZGlzYWJsZWR7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmMxMDc7Ym9yZGVyLWNvbG9yOiNmZmMxMDd9LmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNkMzllMDA7Ym9yZGVyLWNvbG9yOiNjNjk1MDB9LmJ0bi13YXJuaW5nOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4td2FybmluZy5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDI1NSwxOTMsNywuNSl9LmJ0bi1kYW5nZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkYzM1NDU7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmJ0bi1kYW5nZXI6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNjODIzMzM7Ym9yZGVyLWNvbG9yOiNiZDIxMzB9LmJ0bi1kYW5nZXIuZm9jdXMsLmJ0bi1kYW5nZXI6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIyMCw1Myw2OSwuNSl9LmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmJ0bi1kYW5nZXI6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNkYzM1NDU7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmJ0bi1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNiZDIxMzA7Ym9yZGVyLWNvbG9yOiNiMjFmMmR9LmJ0bi1kYW5nZXI6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLWRhbmdlci5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIyMCw1Myw2OSwuNSl9LmJ0bi1saWdodHtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYTtib3JkZXItY29sb3I6I2Y4ZjlmYX0uYnRuLWxpZ2h0OmhvdmVye2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZTJlNmVhO2JvcmRlci1jb2xvcjojZGFlMGU1fS5idG4tbGlnaHQuZm9jdXMsLmJ0bi1saWdodDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjQ4LDI0OSwyNTAsLjUpfS5idG4tbGlnaHQuZGlzYWJsZWQsLmJ0bi1saWdodDpkaXNhYmxlZHtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYTtib3JkZXItY29sb3I6I2Y4ZjlmYX0uYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2RhZTBlNTtib3JkZXItY29sb3I6I2QzZDlkZn0uYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLWxpZ2h0LmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjQ4LDI0OSwyNTAsLjUpfS5idG4tZGFya3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzM0M2E0MDtib3JkZXItY29sb3I6IzM0M2E0MH0uYnRuLWRhcms6aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyMzI3MmI7Ym9yZGVyLWNvbG9yOiMxZDIxMjR9LmJ0bi1kYXJrLmZvY3VzLC5idG4tZGFyazpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNTIsNTgsNjQsLjUpfS5idG4tZGFyay5kaXNhYmxlZCwuYnRuLWRhcms6ZGlzYWJsZWR7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzNDNhNDA7Ym9yZGVyLWNvbG9yOiMzNDNhNDB9LmJ0bi1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tZGFyay5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxZDIxMjQ7Ym9yZGVyLWNvbG9yOiMxNzFhMWR9LmJ0bi1kYXJrOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tZGFyay5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDUyLDU4LDY0LC41KX0uYnRuLW91dGxpbmUtcHJpbWFyeXtjb2xvcjojMDA3YmZmO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjojMDA3YmZmfS5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmO2JvcmRlci1jb2xvcjojMDA3YmZmfS5idG4tb3V0bGluZS1wcmltYXJ5LmZvY3VzLC5idG4tb3V0bGluZS1wcmltYXJ5OmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjUpfS5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkLC5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVke2NvbG9yOiMwMDdiZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tb3V0bGluZS1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXItY29sb3I6IzAwN2JmZn0uYnRuLW91dGxpbmUtcHJpbWFyeTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLXByaW1hcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tb3V0bGluZS1wcmltYXJ5LmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC41KX0uYnRuLW91dGxpbmUtc2Vjb25kYXJ5e2NvbG9yOiM2Yzc1N2Q7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiM2Yzc1N2R9LmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzZjNzU3ZDtib3JkZXItY29sb3I6IzZjNzU3ZH0uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmZvY3VzLC5idG4tb3V0bGluZS1zZWNvbmRhcnk6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDEwOCwxMTcsMTI1LC41KX0uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkLC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNmM3NTdkO2JvcmRlci1jb2xvcjojNmM3NTdkfS5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1zZWNvbmRhcnk6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tb3V0bGluZS1zZWNvbmRhcnkuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgxMDgsMTE3LDEyNSwuNSl9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3N7Y29sb3I6IzI4YTc0NTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6IzI4YTc0NX0uYnRuLW91dGxpbmUtc3VjY2Vzczpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI4YTc0NTtib3JkZXItY29sb3I6IzI4YTc0NX0uYnRuLW91dGxpbmUtc3VjY2Vzcy5mb2N1cywuYnRuLW91dGxpbmUtc3VjY2Vzczpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNDAsMTY3LDY5LC41KX0uYnRuLW91dGxpbmUtc3VjY2Vzcy5kaXNhYmxlZCwuYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZHtjb2xvcjojMjhhNzQ1O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlLC5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtc3VjY2Vzcy5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMyOGE3NDU7Ym9yZGVyLWNvbG9yOiMyOGE3NDV9LmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkuYWN0aXZlOmZvY3VzLC5idG4tb3V0bGluZS1zdWNjZXNzOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtc3VjY2Vzcy5kcm9wZG93bi10b2dnbGU6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDQwLDE2Nyw2OSwuNSl9LmJ0bi1vdXRsaW5lLWluZm97Y29sb3I6IzE3YTJiODtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6IzE3YTJiOH0uYnRuLW91dGxpbmUtaW5mbzpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE3YTJiODtib3JkZXItY29sb3I6IzE3YTJiOH0uYnRuLW91dGxpbmUtaW5mby5mb2N1cywuYnRuLW91dGxpbmUtaW5mbzpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjMsMTYyLDE4NCwuNSl9LmJ0bi1vdXRsaW5lLWluZm8uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWR7Y29sb3I6IzE3YTJiODtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tb3V0bGluZS1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmUsLnNob3c+LmJ0bi1vdXRsaW5lLWluZm8uZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMTdhMmI4O2JvcmRlci1jb2xvcjojMTdhMmI4fS5idG4tb3V0bGluZS1pbmZvOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLW91dGxpbmUtaW5mbzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKTphY3RpdmU6Zm9jdXMsLnNob3c+LmJ0bi1vdXRsaW5lLWluZm8uZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyMywxNjIsMTg0LC41KX0uYnRuLW91dGxpbmUtd2FybmluZ3tjb2xvcjojZmZjMTA3O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4tb3V0bGluZS13YXJuaW5nOmhvdmVye2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3O2JvcmRlci1jb2xvcjojZmZjMTA3fS5idG4tb3V0bGluZS13YXJuaW5nLmZvY3VzLC5idG4tb3V0bGluZS13YXJuaW5nOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyNTUsMTkzLDcsLjUpfS5idG4tb3V0bGluZS13YXJuaW5nLmRpc2FibGVkLC5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVke2NvbG9yOiNmZmMxMDc7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtd2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1vdXRsaW5lLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tb3V0bGluZS13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2ZmYzEwNztib3JkZXItY29sb3I6I2ZmYzEwN30uYnRuLW91dGxpbmUtd2FybmluZzpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLXdhcm5pbmc6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tb3V0bGluZS13YXJuaW5nLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjU1LDE5Myw3LC41KX0uYnRuLW91dGxpbmUtZGFuZ2Vye2NvbG9yOiNkYzM1NDU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiNkYzM1NDV9LmJ0bi1vdXRsaW5lLWRhbmdlcjpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2RjMzU0NTtib3JkZXItY29sb3I6I2RjMzU0NX0uYnRuLW91dGxpbmUtZGFuZ2VyLmZvY3VzLC5idG4tb3V0bGluZS1kYW5nZXI6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDIyMCw1Myw2OSwuNSl9LmJ0bi1vdXRsaW5lLWRhbmdlci5kaXNhYmxlZCwuYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVke2NvbG9yOiNkYzM1NDU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSwuYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2RjMzU0NTtib3JkZXItY29sb3I6I2RjMzU0NX0uYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZTpmb2N1cywuYnRuLW91dGxpbmUtZGFuZ2VyOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtZGFuZ2VyLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjIwLDUzLDY5LC41KX0uYnRuLW91dGxpbmUtbGlnaHR7Y29sb3I6I2Y4ZjlmYTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6I2Y4ZjlmYX0uYnRuLW91dGxpbmUtbGlnaHQ6aG92ZXJ7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmE7Ym9yZGVyLWNvbG9yOiNmOGY5ZmF9LmJ0bi1vdXRsaW5lLWxpZ2h0LmZvY3VzLC5idG4tb3V0bGluZS1saWdodDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoMjQ4LDI0OSwyNTAsLjUpfS5idG4tb3V0bGluZS1saWdodC5kaXNhYmxlZCwuYnRuLW91dGxpbmUtbGlnaHQ6ZGlzYWJsZWR7Y29sb3I6I2Y4ZjlmYTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tb3V0bGluZS1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1vdXRsaW5lLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSwuc2hvdz4uYnRuLW91dGxpbmUtbGlnaHQuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiMyMTI1Mjk7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhO2JvcmRlci1jb2xvcjojZjhmOWZhfS5idG4tb3V0bGluZS1saWdodDpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLWxpZ2h0Om5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZTpmb2N1cywuc2hvdz4uYnRuLW91dGxpbmUtbGlnaHQuZHJvcGRvd24tdG9nZ2xlOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgLjJyZW0gcmdiYSgyNDgsMjQ5LDI1MCwuNSl9LmJ0bi1vdXRsaW5lLWRhcmt7Y29sb3I6IzM0M2E0MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXItY29sb3I6IzM0M2E0MH0uYnRuLW91dGxpbmUtZGFyazpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzM0M2E0MDtib3JkZXItY29sb3I6IzM0M2E0MH0uYnRuLW91dGxpbmUtZGFyay5mb2N1cywuYnRuLW91dGxpbmUtZGFyazpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNTIsNTgsNjQsLjUpfS5idG4tb3V0bGluZS1kYXJrLmRpc2FibGVkLC5idG4tb3V0bGluZS1kYXJrOmRpc2FibGVke2NvbG9yOiMzNDNhNDA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLW91dGxpbmUtZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsLmJ0bi1vdXRsaW5lLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLC5zaG93Pi5idG4tb3V0bGluZS1kYXJrLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzM0M2E0MDtib3JkZXItY29sb3I6IzM0M2E0MH0uYnRuLW91dGxpbmUtZGFyazpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmU6Zm9jdXMsLmJ0bi1vdXRsaW5lLWRhcms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlOmZvY3VzLC5zaG93Pi5idG4tb3V0bGluZS1kYXJrLmRyb3Bkb3duLXRvZ2dsZTpmb2N1c3tib3gtc2hhZG93OjAgMCAwIC4ycmVtIHJnYmEoNTIsNTgsNjQsLjUpfS5idG4tbGlua3tmb250LXdlaWdodDo0MDA7Y29sb3I6IzAwN2JmZjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tbGluazpob3Zlcntjb2xvcjojMDA1NmIzO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1saW5rLmZvY3VzLC5idG4tbGluazpmb2N1c3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3gtc2hhZG93Om5vbmV9LmJ0bi1saW5rLmRpc2FibGVkLC5idG4tbGluazpkaXNhYmxlZHtjb2xvcjojNmM3NTdkO3BvaW50ZXItZXZlbnRzOm5vbmV9LmJ0bi1ncm91cC1sZz4uYnRuLC5idG4tbGd7cGFkZGluZzouNXJlbSAxcmVtO2ZvbnQtc2l6ZToxLjI1cmVtO2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOi4zcmVtfS5idG4tZ3JvdXAtc20+LmJ0biwuYnRuLXNte3BhZGRpbmc6LjI1cmVtIC41cmVtO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOi4ycmVtfS5idG4tYmxvY2t7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlfS5idG4tYmxvY2srLmJ0bi1ibG9ja3ttYXJnaW4tdG9wOi41cmVtfWlucHV0W3R5cGU9YnV0dG9uXS5idG4tYmxvY2ssaW5wdXRbdHlwZT1yZXNldF0uYnRuLWJsb2NrLGlucHV0W3R5cGU9c3VibWl0XS5idG4tYmxvY2t7d2lkdGg6MTAwJX0uZmFkZXt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXJ9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsuZmFkZXt0cmFuc2l0aW9uOm5vbmV9fS5mYWRlOm5vdCguc2hvdyl7b3BhY2l0eTowfS5jb2xsYXBzZTpub3QoLnNob3cpe2Rpc3BsYXk6bm9uZX0uY29sbGFwc2luZ3twb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjpoZWlnaHQgLjM1cyBlYXNlfUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmNvbGxhcHNpbmd7dHJhbnNpdGlvbjpub25lfX0uZHJvcGRvd24sLmRyb3BsZWZ0LC5kcm9wcmlnaHQsLmRyb3B1cHtwb3NpdGlvbjpyZWxhdGl2ZX0uZHJvcGRvd24tdG9nZ2xlOjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDowO2hlaWdodDowO21hcmdpbi1sZWZ0Oi4yNTVlbTt2ZXJ0aWNhbC1hbGlnbjouMjU1ZW07Y29udGVudDoiIjtib3JkZXItdG9wOi4zZW0gc29saWQ7Ym9yZGVyLXJpZ2h0Oi4zZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1sZWZ0Oi4zZW0gc29saWQgdHJhbnNwYXJlbnR9LmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXJ7bWFyZ2luLWxlZnQ6MH0uZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7ei1pbmRleDoxMDAwO2Rpc3BsYXk6bm9uZTtmbG9hdDpsZWZ0O21pbi13aWR0aDoxMHJlbTtwYWRkaW5nOi41cmVtIDA7bWFyZ2luOi4xMjVyZW0gMCAwO2ZvbnQtc2l6ZToxcmVtO2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjpsZWZ0O2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5kcm9wZG93bi1tZW51LXJpZ2h0e3JpZ2h0OjA7bGVmdDphdXRvfS5kcm9wdXAgLmRyb3Bkb3duLW1lbnV7dG9wOmF1dG87Ym90dG9tOjEwMCU7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206LjEyNXJlbX0uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLWxlZnQ6LjI1NWVtO3ZlcnRpY2FsLWFsaWduOi4yNTVlbTtjb250ZW50OiIiO2JvcmRlci10b3A6MDtib3JkZXItcmlnaHQ6LjNlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4zZW0gc29saWQ7Ym9yZGVyLWxlZnQ6LjNlbSBzb2xpZCB0cmFuc3BhcmVudH0uZHJvcHVwIC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVye21hcmdpbi1sZWZ0OjB9LmRyb3ByaWdodCAuZHJvcGRvd24tbWVudXt0b3A6MDtyaWdodDphdXRvO2xlZnQ6MTAwJTttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6LjEyNXJlbX0uZHJvcHJpZ2h0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLWxlZnQ6LjI1NWVtO3ZlcnRpY2FsLWFsaWduOi4yNTVlbTtjb250ZW50OiIiO2JvcmRlci10b3A6LjNlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6MDtib3JkZXItYm90dG9tOi4zZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6LjNlbSBzb2xpZH0uZHJvcHJpZ2h0IC5kcm9wZG93bi10b2dnbGU6ZW1wdHk6OmFmdGVye21hcmdpbi1sZWZ0OjB9LmRyb3ByaWdodCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlcnt2ZXJ0aWNhbC1hbGlnbjowfS5kcm9wbGVmdCAuZHJvcGRvd24tbWVudXt0b3A6MDtyaWdodDoxMDAlO2xlZnQ6YXV0bzttYXJnaW4tdG9wOjA7bWFyZ2luLXJpZ2h0Oi4xMjVyZW19LmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLWxlZnQ6LjI1NWVtO3ZlcnRpY2FsLWFsaWduOi4yNTVlbTtjb250ZW50OiIifS5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlOjphZnRlcntkaXNwbGF5Om5vbmV9LmRyb3BsZWZ0IC5kcm9wZG93bi10b2dnbGU6OmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDowO2hlaWdodDowO21hcmdpbi1yaWdodDouMjU1ZW07dmVydGljYWwtYWxpZ246LjI1NWVtO2NvbnRlbnQ6IiI7Ym9yZGVyLXRvcDouM2VtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDouM2VtIHNvbGlkO2JvcmRlci1ib3R0b206LjNlbSBzb2xpZCB0cmFuc3BhcmVudH0uZHJvcGxlZnQgLmRyb3Bkb3duLXRvZ2dsZTplbXB0eTo6YWZ0ZXJ7bWFyZ2luLWxlZnQ6MH0uZHJvcGxlZnQgLmRyb3Bkb3duLXRvZ2dsZTo6YmVmb3Jle3ZlcnRpY2FsLWFsaWduOjB9LmRyb3Bkb3duLW1lbnVbeC1wbGFjZW1lbnRePWJvdHRvbV0sLmRyb3Bkb3duLW1lbnVbeC1wbGFjZW1lbnRePWxlZnRdLC5kcm9wZG93bi1tZW51W3gtcGxhY2VtZW50Xj1yaWdodF0sLmRyb3Bkb3duLW1lbnVbeC1wbGFjZW1lbnRePXRvcF17cmlnaHQ6YXV0bztib3R0b206YXV0b30uZHJvcGRvd24tZGl2aWRlcntoZWlnaHQ6MDttYXJnaW46LjVyZW0gMDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXRvcDoxcHggc29saWQgI2U5ZWNlZn0uZHJvcGRvd24taXRlbXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZzouMjVyZW0gMS41cmVtO2NsZWFyOmJvdGg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMyMTI1Mjk7dGV4dC1hbGlnbjppbmhlcml0O3doaXRlLXNwYWNlOm5vd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowfS5kcm9wZG93bi1pdGVtOmZvY3VzLC5kcm9wZG93bi1pdGVtOmhvdmVye2NvbG9yOiMxNjE4MWI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZjhmOWZhfS5kcm9wZG93bi1pdGVtLmFjdGl2ZSwuZHJvcGRvd24taXRlbTphY3RpdmV7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmZ9LmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQsLmRyb3Bkb3duLWl0ZW06ZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5kcm9wZG93bi1tZW51LnNob3d7ZGlzcGxheTpibG9ja30uZHJvcGRvd24taGVhZGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouNXJlbSAxLjVyZW07bWFyZ2luLWJvdHRvbTowO2ZvbnQtc2l6ZTouODc1cmVtO2NvbG9yOiM2Yzc1N2Q7d2hpdGUtc3BhY2U6bm93cmFwfS5kcm9wZG93bi1pdGVtLXRleHR7ZGlzcGxheTpibG9jaztwYWRkaW5nOi4yNXJlbSAxLjVyZW07Y29sb3I6IzIxMjUyOX0uYnRuLWdyb3VwLC5idG4tZ3JvdXAtdmVydGljYWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLC5idG4tZ3JvdXA+LmJ0bntwb3NpdGlvbjpyZWxhdGl2ZTstbXMtZmxleDowIDEgYXV0bztmbGV4OjAgMSBhdXRvfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpob3ZlciwuYnRuLWdyb3VwPi5idG46aG92ZXJ7ei1pbmRleDoxfS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi5hY3RpdmUsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOmFjdGl2ZSwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46Zm9jdXMsLmJ0bi1ncm91cD4uYnRuLmFjdGl2ZSwuYnRuLWdyb3VwPi5idG46YWN0aXZlLC5idG4tZ3JvdXA+LmJ0bjpmb2N1c3t6LWluZGV4OjF9LmJ0bi1ncm91cCAuYnRuKy5idG4sLmJ0bi1ncm91cCAuYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cCAuYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cCAuYnRuLWdyb3VwKy5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuKy5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3VwKy5idG4tZ3JvdXB7bWFyZ2luLWxlZnQ6LTFweH0uYnRuLXRvb2xiYXJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmJ0bi10b29sYmFyIC5pbnB1dC1ncm91cHt3aWR0aDphdXRvfS5idG4tZ3JvdXA+LmJ0bjpmaXJzdC1jaGlsZHttYXJnaW4tbGVmdDowfS5idG4tZ3JvdXA+LmJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpPi5idG4sLmJ0bi1ncm91cD4uYnRuOm5vdCg6bGFzdC1jaGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwPi5idG46bm90KDpmaXJzdC1jaGlsZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uZHJvcGRvd24tdG9nZ2xlLXNwbGl0e3BhZGRpbmctcmlnaHQ6LjU2MjVyZW07cGFkZGluZy1sZWZ0Oi41NjI1cmVtfS5kcm9wZG93bi10b2dnbGUtc3BsaXQ6OmFmdGVyLC5kcm9wcmlnaHQgLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdDo6YWZ0ZXIsLmRyb3B1cCAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjphZnRlcnttYXJnaW4tbGVmdDowfS5kcm9wbGVmdCAuZHJvcGRvd24tdG9nZ2xlLXNwbGl0OjpiZWZvcmV7bWFyZ2luLXJpZ2h0OjB9LmJ0bi1ncm91cC1zbT4uYnRuKy5kcm9wZG93bi10b2dnbGUtc3BsaXQsLmJ0bi1zbSsuZHJvcGRvd24tdG9nZ2xlLXNwbGl0e3BhZGRpbmctcmlnaHQ6LjM3NXJlbTtwYWRkaW5nLWxlZnQ6LjM3NXJlbX0uYnRuLWdyb3VwLWxnPi5idG4rLmRyb3Bkb3duLXRvZ2dsZS1zcGxpdCwuYnRuLWxnKy5kcm9wZG93bi10b2dnbGUtc3BsaXR7cGFkZGluZy1yaWdodDouNzVyZW07cGFkZGluZy1sZWZ0Oi43NXJlbX0uYnRuLWdyb3VwLXZlcnRpY2Fsey1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYnRuLWdyb3VwLXZlcnRpY2FsIC5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbCAuYnRuLWdyb3Vwe3dpZHRoOjEwMCV9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuKy5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwKy5idG4tZ3JvdXB7bWFyZ2luLXRvcDotMXB4O21hcmdpbi1sZWZ0OjB9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSl7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwOm5vdCg6Zmlyc3QtY2hpbGQpPi5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAtdG9nZ2xlPi5idG4sLmJ0bi1ncm91cC10b2dnbGU+LmJ0bi1ncm91cD4uYnRue21hcmdpbi1ib3R0b206MH0uYnRuLWdyb3VwLXRvZ2dsZT4uYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdLC5idG4tZ3JvdXAtdG9nZ2xlPi5idG4gaW5wdXRbdHlwZT1yYWRpb10sLmJ0bi1ncm91cC10b2dnbGU+LmJ0bi1ncm91cD4uYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdLC5idG4tZ3JvdXAtdG9nZ2xlPi5idG4tZ3JvdXA+LmJ0biBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTtjbGlwOnJlY3QoMCwwLDAsMCk7cG9pbnRlci1ldmVudHM6bm9uZX0uaW5wdXQtZ3JvdXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LWFsaWduOnN0cmV0Y2g7YWxpZ24taXRlbXM6c3RyZXRjaDt3aWR0aDoxMDAlfS5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGUsLmlucHV0LWdyb3VwPi5jdXN0b20tc2VsZWN0LC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9se3Bvc2l0aW9uOnJlbGF0aXZlOy1tcy1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG87d2lkdGg6MSU7bWFyZ2luLWJvdHRvbTowfS5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGU6Zm9jdXMsLmlucHV0LWdyb3VwPi5jdXN0b20tc2VsZWN0OmZvY3VzLC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9sOmZvY3Vze3otaW5kZXg6M30uaW5wdXQtZ3JvdXA+LmN1c3RvbS1maWxlKy5jdXN0b20tZmlsZSwuaW5wdXQtZ3JvdXA+LmN1c3RvbS1maWxlKy5jdXN0b20tc2VsZWN0LC5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGUrLmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXA+LmN1c3RvbS1zZWxlY3QrLmN1c3RvbS1maWxlLC5pbnB1dC1ncm91cD4uY3VzdG9tLXNlbGVjdCsuY3VzdG9tLXNlbGVjdCwuaW5wdXQtZ3JvdXA+LmN1c3RvbS1zZWxlY3QrLmZvcm0tY29udHJvbCwuaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbCsuY3VzdG9tLWZpbGUsLmlucHV0LWdyb3VwPi5mb3JtLWNvbnRyb2wrLmN1c3RvbS1zZWxlY3QsLmlucHV0LWdyb3VwPi5mb3JtLWNvbnRyb2wrLmZvcm0tY29udHJvbHttYXJnaW4tbGVmdDotMXB4fS5pbnB1dC1ncm91cD4uY3VzdG9tLXNlbGVjdDpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9sOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5pbnB1dC1ncm91cD4uY3VzdG9tLXNlbGVjdDpub3QoOmZpcnN0LWNoaWxkKSwuaW5wdXQtZ3JvdXA+LmZvcm0tY29udHJvbDpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGV7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0uaW5wdXQtZ3JvdXA+LmN1c3RvbS1maWxlOm5vdCg6bGFzdC1jaGlsZCkgLmN1c3RvbS1maWxlLWxhYmVsLC5pbnB1dC1ncm91cD4uY3VzdG9tLWZpbGU6bm90KDpsYXN0LWNoaWxkKSAuY3VzdG9tLWZpbGUtbGFiZWw6OmFmdGVye2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uaW5wdXQtZ3JvdXA+LmN1c3RvbS1maWxlOm5vdCg6Zmlyc3QtY2hpbGQpIC5jdXN0b20tZmlsZS1sYWJlbHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5pbnB1dC1ncm91cC1hcHBlbmQsLmlucHV0LWdyb3VwLXByZXBlbmR7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmlucHV0LWdyb3VwLWFwcGVuZCAuYnRuLC5pbnB1dC1ncm91cC1wcmVwZW5kIC5idG57cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyfS5pbnB1dC1ncm91cC1hcHBlbmQgLmJ0bisuYnRuLC5pbnB1dC1ncm91cC1hcHBlbmQgLmJ0bisuaW5wdXQtZ3JvdXAtdGV4dCwuaW5wdXQtZ3JvdXAtYXBwZW5kIC5pbnB1dC1ncm91cC10ZXh0Ky5idG4sLmlucHV0LWdyb3VwLWFwcGVuZCAuaW5wdXQtZ3JvdXAtdGV4dCsuaW5wdXQtZ3JvdXAtdGV4dCwuaW5wdXQtZ3JvdXAtcHJlcGVuZCAuYnRuKy5idG4sLmlucHV0LWdyb3VwLXByZXBlbmQgLmJ0bisuaW5wdXQtZ3JvdXAtdGV4dCwuaW5wdXQtZ3JvdXAtcHJlcGVuZCAuaW5wdXQtZ3JvdXAtdGV4dCsuYnRuLC5pbnB1dC1ncm91cC1wcmVwZW5kIC5pbnB1dC1ncm91cC10ZXh0Ky5pbnB1dC1ncm91cC10ZXh0e21hcmdpbi1sZWZ0Oi0xcHh9LmlucHV0LWdyb3VwLXByZXBlbmR7bWFyZ2luLXJpZ2h0Oi0xcHh9LmlucHV0LWdyb3VwLWFwcGVuZHttYXJnaW4tbGVmdDotMXB4fS5pbnB1dC1ncm91cC10ZXh0e2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzouMzc1cmVtIC43NXJlbTttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjFyZW07Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojNDk1MDU3O3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWY7Ym9yZGVyOjFweCBzb2xpZCAjY2VkNGRhO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5pbnB1dC1ncm91cC10ZXh0IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5pbnB1dC1ncm91cC10ZXh0IGlucHV0W3R5cGU9cmFkaW9de21hcmdpbi10b3A6MH0uaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLWFwcGVuZDpsYXN0LWNoaWxkPi5idG46bm90KDpsYXN0LWNoaWxkKTpub3QoLmRyb3Bkb3duLXRvZ2dsZSksLmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1hcHBlbmQ6bGFzdC1jaGlsZD4uaW5wdXQtZ3JvdXAtdGV4dDpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtYXBwZW5kOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLWFwcGVuZDpub3QoOmxhc3QtY2hpbGQpPi5pbnB1dC1ncm91cC10ZXh0LC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uYnRuLC5pbnB1dC1ncm91cD4uaW5wdXQtZ3JvdXAtcHJlcGVuZD4uaW5wdXQtZ3JvdXAtdGV4dHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1hcHBlbmQ+LmJ0biwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLWFwcGVuZD4uaW5wdXQtZ3JvdXAtdGV4dCwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLXByZXBlbmQ6Zmlyc3QtY2hpbGQ+LmJ0bjpub3QoOmZpcnN0LWNoaWxkKSwuaW5wdXQtZ3JvdXA+LmlucHV0LWdyb3VwLXByZXBlbmQ6Zmlyc3QtY2hpbGQ+LmlucHV0LWdyb3VwLXRleHQ6bm90KDpmaXJzdC1jaGlsZCksLmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpPi5idG4sLmlucHV0LWdyb3VwPi5pbnB1dC1ncm91cC1wcmVwZW5kOm5vdCg6Zmlyc3QtY2hpbGQpPi5pbnB1dC1ncm91cC10ZXh0e2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmN1c3RvbS1jb250cm9se3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWluLWhlaWdodDoxLjVyZW07cGFkZGluZy1sZWZ0OjEuNXJlbX0uY3VzdG9tLWNvbnRyb2wtaW5saW5le2Rpc3BsYXk6LW1zLWlubGluZS1mbGV4Ym94O2Rpc3BsYXk6aW5saW5lLWZsZXg7bWFyZ2luLXJpZ2h0OjFyZW19LmN1c3RvbS1jb250cm9sLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6LTE7b3BhY2l0eTowfS5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmfS5jdXN0b20tY29udHJvbC1pbnB1dDpmb2N1c34uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtib3gtc2hhZG93OjAgMCAwIDFweCAjZmZmLDAgMCAwIC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSl9LmN1c3RvbS1jb250cm9sLWlucHV0OmFjdGl2ZX4uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2IzZDdmZn0uY3VzdG9tLWNvbnRyb2wtaW5wdXQ6ZGlzYWJsZWR+LmN1c3RvbS1jb250cm9sLWxhYmVse2NvbG9yOiM2Yzc1N2R9LmN1c3RvbS1jb250cm9sLWlucHV0OmRpc2FibGVkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZn0uY3VzdG9tLWNvbnRyb2wtbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLWJvdHRvbTowfS5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMjVyZW07bGVmdDotMS41cmVtO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTtwb2ludGVyLWV2ZW50czpub25lO2NvbnRlbnQ6IiI7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO2JhY2tncm91bmQtY29sb3I6I2RlZTJlNn0uY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMjVyZW07bGVmdDotMS41cmVtO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTtjb250ZW50OiIiO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjUwJSA1MCV9LmN1c3RvbS1jaGVja2JveCAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtib3JkZXItcmFkaXVzOi4yNXJlbX0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDggOCclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmZicgZD0nTTYuNTY0Ljc1bC0zLjU5IDMuNjEyLTEuNTM4LTEuNTVMMCA0LjI2IDIuOTc0IDcuMjUgOCAyLjE5M3onLyUzRSUzQy9zdmclM0UiKX0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDppbmRldGVybWluYXRlfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDppbmRldGVybWluYXRlfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDQgNCclM0UlM0NwYXRoIHN0cm9rZT0nJTIzZmZmJyBkPSdNMCAyaDQnLyUzRSUzQy9zdmclM0UiKX0uY3VzdG9tLWNoZWNrYm94IC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDEyMywyNTUsLjUpfS5jdXN0b20tY2hlY2tib3ggLmN1c3RvbS1jb250cm9sLWlucHV0OmRpc2FibGVkOmluZGV0ZXJtaW5hdGV+LmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMTIzLDI1NSwuNSl9LmN1c3RvbS1yYWRpbyAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZXtib3JkZXItcmFkaXVzOjUwJX0uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YWZ0ZXJ7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzRSUzQ2NpcmNsZSByPSczJyBmaWxsPSclMjNmZmYnLyUzRSUzQy9zdmclM0UiKX0uY3VzdG9tLXJhZGlvIC5jdXN0b20tY29udHJvbC1pbnB1dDpkaXNhYmxlZDpjaGVja2Vkfi5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDEyMywyNTUsLjUpfS5jdXN0b20tc2VsZWN0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OmNhbGMoMi4yNXJlbSArIDJweCk7cGFkZGluZzouMzc1cmVtIDEuNzVyZW0gLjM3NXJlbSAuNzVyZW07bGluZS1oZWlnaHQ6MS41O2NvbG9yOiM0OTUwNTc7dmVydGljYWwtYWxpZ246bWlkZGxlO2JhY2tncm91bmQ6I2ZmZiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDQgNSclM0UlM0NwYXRoIGZpbGw9JyUyMzM0M2E0MCcgZD0nTTIgMEwwIDJoNHptMCA1TDAgM2g0eicvJTNFJTNDL3N2ZyUzRSIpIG5vLXJlcGVhdCByaWdodCAuNzVyZW0gY2VudGVyO2JhY2tncm91bmQtc2l6ZTo4cHggMTBweDtib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czouMjVyZW07LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5jdXN0b20tc2VsZWN0OmZvY3Vze2JvcmRlci1jb2xvcjojODBiZGZmO291dGxpbmU6MDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA1cHggcmdiYSgxMjgsMTg5LDI1NSwuNSl9LmN1c3RvbS1zZWxlY3Q6Zm9jdXM6Oi1tcy12YWx1ZXtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY3VzdG9tLXNlbGVjdFttdWx0aXBsZV0sLmN1c3RvbS1zZWxlY3Rbc2l6ZV06bm90KFtzaXplPSIxIl0pe2hlaWdodDphdXRvO3BhZGRpbmctcmlnaHQ6Ljc1cmVtO2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uY3VzdG9tLXNlbGVjdDpkaXNhYmxlZHtjb2xvcjojNmM3NTdkO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZn0uY3VzdG9tLXNlbGVjdDo6LW1zLWV4cGFuZHtvcGFjaXR5OjB9LmN1c3RvbS1zZWxlY3Qtc217aGVpZ2h0OmNhbGMoMS44MTI1cmVtICsgMnB4KTtwYWRkaW5nLXRvcDouMzc1cmVtO3BhZGRpbmctYm90dG9tOi4zNzVyZW07Zm9udC1zaXplOjc1JX0uY3VzdG9tLXNlbGVjdC1sZ3toZWlnaHQ6Y2FsYygyLjg3NXJlbSArIDJweCk7cGFkZGluZy10b3A6LjM3NXJlbTtwYWRkaW5nLWJvdHRvbTouMzc1cmVtO2ZvbnQtc2l6ZToxMjUlfS5jdXN0b20tZmlsZXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMDAlO2hlaWdodDpjYWxjKDIuMjVyZW0gKyAycHgpO21hcmdpbi1ib3R0b206MH0uY3VzdG9tLWZpbGUtaW5wdXR7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoyO3dpZHRoOjEwMCU7aGVpZ2h0OmNhbGMoMi4yNXJlbSArIDJweCk7bWFyZ2luOjA7b3BhY2l0eTowfS5jdXN0b20tZmlsZS1pbnB1dDpmb2N1c34uY3VzdG9tLWZpbGUtbGFiZWx7Ym9yZGVyLWNvbG9yOiM4MGJkZmY7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpfS5jdXN0b20tZmlsZS1pbnB1dDpmb2N1c34uY3VzdG9tLWZpbGUtbGFiZWw6OmFmdGVye2JvcmRlci1jb2xvcjojODBiZGZmfS5jdXN0b20tZmlsZS1pbnB1dDpsYW5nKGVuKX4uY3VzdG9tLWZpbGUtbGFiZWw6OmFmdGVye2NvbnRlbnQ6IkJyb3dzZSJ9LmN1c3RvbS1maWxlLWxhYmVse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7bGVmdDowO3otaW5kZXg6MTtoZWlnaHQ6Y2FsYygyLjI1cmVtICsgMnB4KTtwYWRkaW5nOi4zNzVyZW0gLjc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czouMjVyZW19LmN1c3RvbS1maWxlLWxhYmVsOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MztkaXNwbGF5OmJsb2NrO2hlaWdodDoyLjI1cmVtO3BhZGRpbmc6LjM3NXJlbSAuNzVyZW07bGluZS1oZWlnaHQ6MS41O2NvbG9yOiM0OTUwNTc7Y29udGVudDoiQnJvd3NlIjtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjZWQ0ZGE7Ym9yZGVyLXJhZGl1czowIC4yNXJlbSAuMjVyZW0gMH0uY3VzdG9tLXJhbmdle3dpZHRoOjEwMCU7cGFkZGluZy1sZWZ0OjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmV9LmN1c3RvbS1yYW5nZTpmb2N1c3tvdXRsaW5lOjB9LmN1c3RvbS1yYW5nZTo6LW1vei1mb2N1cy1vdXRlcntib3JkZXI6MH0uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYnt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO21hcmdpbi10b3A6LS4yNXJlbTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmY7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxcmVtOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZX0uY3VzdG9tLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYjpmb2N1c3tvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAxcHggI2ZmZiwwIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpfS5jdXN0b20tcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1iOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNiM2Q3ZmZ9LmN1c3RvbS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7d2lkdGg6MTAwJTtoZWlnaHQ6LjVyZW07Y29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjojZGVlMmU2O2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjFyZW19LmN1c3RvbS1yYW5nZTo6LW1vei1yYW5nZS10aHVtYnt3aWR0aDoxcmVtO2hlaWdodDoxcmVtO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXI6MDtib3JkZXItcmFkaXVzOjFyZW07LW1vei1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lfS5jdXN0b20tcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWI6Zm9jdXN7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNmZmYsMCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KX0uY3VzdG9tLXJhbmdlOjotbW96LXJhbmdlLXRodW1iOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNiM2Q3ZmZ9LmN1c3RvbS1yYW5nZTo6LW1vei1yYW5nZS10cmFja3t3aWR0aDoxMDAlO2hlaWdodDouNXJlbTtjb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNkZWUyZTY7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MXJlbX0uY3VzdG9tLXJhbmdlOjotbXMtdGh1bWJ7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmY7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czoxcmVtO2FwcGVhcmFuY2U6bm9uZX0uY3VzdG9tLXJhbmdlOjotbXMtdGh1bWI6Zm9jdXN7b3V0bGluZTowO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNmZmYsMCAwIDAgLjJyZW0gcmdiYSgwLDEyMywyNTUsLjI1KX0uY3VzdG9tLXJhbmdlOjotbXMtdGh1bWI6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2IzZDdmZn0uY3VzdG9tLXJhbmdlOjotbXMtdHJhY2t7d2lkdGg6MTAwJTtoZWlnaHQ6LjVyZW07Y29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXdpZHRoOi41cmVtfS5jdXN0b20tcmFuZ2U6Oi1tcy1maWxsLWxvd2Vye2JhY2tncm91bmQtY29sb3I6I2RlZTJlNjtib3JkZXItcmFkaXVzOjFyZW19LmN1c3RvbS1yYW5nZTo6LW1zLWZpbGwtdXBwZXJ7bWFyZ2luLXJpZ2h0OjE1cHg7YmFja2dyb3VuZC1jb2xvcjojZGVlMmU2O2JvcmRlci1yYWRpdXM6MXJlbX0ubmF2e2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjA7bGlzdC1zdHlsZTpub25lfS5uYXYtbGlua3tkaXNwbGF5OmJsb2NrO3BhZGRpbmc6LjVyZW0gMXJlbX0ubmF2LWxpbms6Zm9jdXMsLm5hdi1saW5rOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXYtbGluay5kaXNhYmxlZHtjb2xvcjojNmM3NTdkfS5uYXYtdGFic3tib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGVlMmU2fS5uYXYtdGFicyAubmF2LWl0ZW17bWFyZ2luLWJvdHRvbTotMXB4fS5uYXYtdGFicyAubmF2LWxpbmt7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19Lm5hdi10YWJzIC5uYXYtbGluazpmb2N1cywubmF2LXRhYnMgLm5hdi1saW5rOmhvdmVye2JvcmRlci1jb2xvcjojZTllY2VmICNlOWVjZWYgI2RlZTJlNn0ubmF2LXRhYnMgLm5hdi1saW5rLmRpc2FibGVke2NvbG9yOiM2Yzc1N2Q7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9Lm5hdi10YWJzIC5uYXYtaXRlbS5zaG93IC5uYXYtbGluaywubmF2LXRhYnMgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojNDk1MDU3O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RlZTJlNiAjZGVlMmU2ICNmZmZ9Lm5hdi10YWJzIC5kcm9wZG93bi1tZW51e21hcmdpbi10b3A6LTFweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ubmF2LXBpbGxzIC5uYXYtbGlua3tib3JkZXItcmFkaXVzOi4yNXJlbX0ubmF2LXBpbGxzIC5uYXYtbGluay5hY3RpdmUsLm5hdi1waWxscyAuc2hvdz4ubmF2LWxpbmt7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmZ9Lm5hdi1maWxsIC5uYXYtaXRlbXstbXMtZmxleDoxIDEgYXV0bztmbGV4OjEgMSBhdXRvO3RleHQtYWxpZ246Y2VudGVyfS5uYXYtanVzdGlmaWVkIC5uYXYtaXRlbXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTowO2ZsZXgtYmFzaXM6MDstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxO3RleHQtYWxpZ246Y2VudGVyfS50YWItY29udGVudD4udGFiLXBhbmV7ZGlzcGxheTpub25lfS50YWItY29udGVudD4uYWN0aXZle2Rpc3BsYXk6YmxvY2t9Lm5hdmJhcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzouNXJlbSAxcmVtfS5uYXZiYXI+LmNvbnRhaW5lciwubmF2YmFyPi5jb250YWluZXItZmx1aWR7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5uYXZiYXItYnJhbmR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy10b3A6LjMxMjVyZW07cGFkZGluZy1ib3R0b206LjMxMjVyZW07bWFyZ2luLXJpZ2h0OjFyZW07Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3dyYXB9Lm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWJyYW5kOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZiYXItbmF2e2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9Lm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH0ubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjpzdGF0aWM7ZmxvYXQ6bm9uZX0ubmF2YmFyLXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy10b3A6LjVyZW07cGFkZGluZy1ib3R0b206LjVyZW19Lm5hdmJhci1jb2xsYXBzZXstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZToxMDAlO2ZsZXgtYmFzaXM6MTAwJTstbXMtZmxleC1wb3NpdGl2ZToxO2ZsZXgtZ3JvdzoxOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lm5hdmJhci10b2dnbGVye3BhZGRpbmc6LjI1cmVtIC43NXJlbTtmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOi4yNXJlbX0ubmF2YmFyLXRvZ2dsZXI6Zm9jdXMsLm5hdmJhci10b2dnbGVyOmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXZiYXItdG9nZ2xlcjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKXtjdXJzb3I6cG9pbnRlcn0ubmF2YmFyLXRvZ2dsZXItaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxLjVlbTtoZWlnaHQ6MS41ZW07dmVydGljYWwtYWxpZ246bWlkZGxlO2NvbnRlbnQ6IiI7YmFja2dyb3VuZDpuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6MTAwJSAxMDAlfUBtZWRpYSAobWF4LXdpZHRoOjU3NS45OHB4KXsubmF2YmFyLWV4cGFuZC1zbT4uY29udGFpbmVyLC5uYXZiYXItZXhwYW5kLXNtPi5jb250YWluZXItZmx1aWR7cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lm5hdmJhci1leHBhbmQtc217LW1zLWZsZXgtZmxvdzpyb3cgbm93cmFwO2ZsZXgtZmxvdzpyb3cgbm93cmFwOy1tcy1mbGV4LXBhY2s6c3RhcnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9Lm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1uYXZ7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9Lm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQtc20gLm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6LjVyZW07cGFkZGluZy1sZWZ0Oi41cmVtfS5uYXZiYXItZXhwYW5kLXNtPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQtc20+LmNvbnRhaW5lci1mbHVpZHstbXMtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwfS5uYXZiYXItZXhwYW5kLXNtIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTphdXRvO2ZsZXgtYmFzaXM6YXV0b30ubmF2YmFyLWV4cGFuZC1zbSAubmF2YmFyLXRvZ2dsZXJ7ZGlzcGxheTpub25lfX1AbWVkaWEgKG1heC13aWR0aDo3NjcuOThweCl7Lm5hdmJhci1leHBhbmQtbWQ+LmNvbnRhaW5lciwubmF2YmFyLWV4cGFuZC1tZD4uY29udGFpbmVyLWZsdWlke3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItZXhwYW5kLW1key1tcy1mbGV4LWZsb3c6cm93IG5vd3JhcDtmbGV4LWZsb3c6cm93IG5vd3JhcDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93fS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlfS5uYXZiYXItZXhwYW5kLW1kIC5uYXZiYXItbmF2IC5uYXYtbGlua3twYWRkaW5nLXJpZ2h0Oi41cmVtO3BhZGRpbmctbGVmdDouNXJlbX0ubmF2YmFyLWV4cGFuZC1tZD4uY29udGFpbmVyLC5uYXZiYXItZXhwYW5kLW1kPi5jb250YWluZXItZmx1aWR7LW1zLWZsZXgtd3JhcDpub3dyYXA7ZmxleC13cmFwOm5vd3JhcH0ubmF2YmFyLWV4cGFuZC1tZCAubmF2YmFyLWNvbGxhcHNle2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6YXV0bztmbGV4LWJhc2lzOmF1dG99Lm5hdmJhci1leHBhbmQtbWQgLm5hdmJhci10b2dnbGVye2Rpc3BsYXk6bm9uZX19QG1lZGlhIChtYXgtd2lkdGg6OTkxLjk4cHgpey5uYXZiYXItZXhwYW5kLWxnPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQtbGc+LmNvbnRhaW5lci1mbHVpZHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsubmF2YmFyLWV4cGFuZC1sZ3stbXMtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdnstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd30ubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0ubmF2YmFyLWV4cGFuZC1sZyAubmF2YmFyLW5hdiAubmF2LWxpbmt7cGFkZGluZy1yaWdodDouNXJlbTtwYWRkaW5nLWxlZnQ6LjVyZW19Lm5hdmJhci1leHBhbmQtbGc+LmNvbnRhaW5lciwubmF2YmFyLWV4cGFuZC1sZz4uY29udGFpbmVyLWZsdWlkey1tcy1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXB9Lm5hdmJhci1leHBhbmQtbGcgLm5hdmJhci1jb2xsYXBzZXtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50Oy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOmF1dG87ZmxleC1iYXNpczphdXRvfS5uYXZiYXItZXhwYW5kLWxnIC5uYXZiYXItdG9nZ2xlcntkaXNwbGF5Om5vbmV9fUBtZWRpYSAobWF4LXdpZHRoOjExOTkuOThweCl7Lm5hdmJhci1leHBhbmQteGw+LmNvbnRhaW5lciwubmF2YmFyLWV4cGFuZC14bD4uY29udGFpbmVyLWZsdWlke3BhZGRpbmctcmlnaHQ6MDtwYWRkaW5nLWxlZnQ6MH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsubmF2YmFyLWV4cGFuZC14bHstbXMtZmxleC1mbG93OnJvdyBub3dyYXA7ZmxleC1mbG93OnJvdyBub3dyYXA7LW1zLWZsZXgtcGFjazpzdGFydDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0ubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLW5hdnstbXMtZmxleC1kaXJlY3Rpb246cm93O2ZsZXgtZGlyZWN0aW9uOnJvd30ubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLW5hdiAuZHJvcGRvd24tbWVudXtwb3NpdGlvbjphYnNvbHV0ZX0ubmF2YmFyLWV4cGFuZC14bCAubmF2YmFyLW5hdiAubmF2LWxpbmt7cGFkZGluZy1yaWdodDouNXJlbTtwYWRkaW5nLWxlZnQ6LjVyZW19Lm5hdmJhci1leHBhbmQteGw+LmNvbnRhaW5lciwubmF2YmFyLWV4cGFuZC14bD4uY29udGFpbmVyLWZsdWlkey1tcy1mbGV4LXdyYXA6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXB9Lm5hdmJhci1leHBhbmQteGwgLm5hdmJhci1jb2xsYXBzZXtkaXNwbGF5Oi1tcy1mbGV4Ym94IWltcG9ydGFudDtkaXNwbGF5OmZsZXghaW1wb3J0YW50Oy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOmF1dG87ZmxleC1iYXNpczphdXRvfS5uYXZiYXItZXhwYW5kLXhsIC5uYXZiYXItdG9nZ2xlcntkaXNwbGF5Om5vbmV9fS5uYXZiYXItZXhwYW5key1tcy1mbGV4LWZsb3c6cm93IG5vd3JhcDtmbGV4LWZsb3c6cm93IG5vd3JhcDstbXMtZmxleC1wYWNrOnN0YXJ0O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5uYXZiYXItZXhwYW5kPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQ+LmNvbnRhaW5lci1mbHVpZHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9Lm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXZ7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LWRpcmVjdGlvbjpyb3d9Lm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYgLmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGV9Lm5hdmJhci1leHBhbmQgLm5hdmJhci1uYXYgLm5hdi1saW5re3BhZGRpbmctcmlnaHQ6LjVyZW07cGFkZGluZy1sZWZ0Oi41cmVtfS5uYXZiYXItZXhwYW5kPi5jb250YWluZXIsLm5hdmJhci1leHBhbmQ+LmNvbnRhaW5lci1mbHVpZHstbXMtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwfS5uYXZiYXItZXhwYW5kIC5uYXZiYXItY29sbGFwc2V7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudDstbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTphdXRvO2ZsZXgtYmFzaXM6YXV0b30ubmF2YmFyLWV4cGFuZCAubmF2YmFyLXRvZ2dsZXJ7ZGlzcGxheTpub25lfS5uYXZiYXItbGlnaHQgLm5hdmJhci1icmFuZHtjb2xvcjpyZ2JhKDAsMCwwLC45KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItYnJhbmQ6Zm9jdXMsLm5hdmJhci1saWdodCAubmF2YmFyLWJyYW5kOmhvdmVye2NvbG9yOnJnYmEoMCwwLDAsLjkpfS5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5re2NvbG9yOnJnYmEoMCwwLDAsLjUpfS5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rOmZvY3VzLC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOnJnYmEoMCwwLDAsLjcpfS5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rLmRpc2FibGVke2NvbG9yOnJnYmEoMCwwLDAsLjMpfS5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLmFjdGl2ZT4ubmF2LWxpbmssLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAubmF2LWxpbmsuYWN0aXZlLC5uYXZiYXItbGlnaHQgLm5hdmJhci1uYXYgLm5hdi1saW5rLnNob3csLm5hdmJhci1saWdodCAubmF2YmFyLW5hdiAuc2hvdz4ubmF2LWxpbmt7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lm5hdmJhci1saWdodCAubmF2YmFyLXRvZ2dsZXJ7Y29sb3I6cmdiYSgwLDAsMCwuNSk7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjEpfS5uYXZiYXItbGlnaHQgLm5hdmJhci10b2dnbGVyLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDAsIDAsIDAsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM0UlM0Mvc3ZnJTNFIil9Lm5hdmJhci1saWdodCAubmF2YmFyLXRleHR7Y29sb3I6cmdiYSgwLDAsMCwuNSl9Lm5hdmJhci1saWdodCAubmF2YmFyLXRleHQgYXtjb2xvcjpyZ2JhKDAsMCwwLC45KX0ubmF2YmFyLWxpZ2h0IC5uYXZiYXItdGV4dCBhOmZvY3VzLC5uYXZiYXItbGlnaHQgLm5hdmJhci10ZXh0IGE6aG92ZXJ7Y29sb3I6cmdiYSgwLDAsMCwuOSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItYnJhbmR7Y29sb3I6I2ZmZn0ubmF2YmFyLWRhcmsgLm5hdmJhci1icmFuZDpmb2N1cywubmF2YmFyLWRhcmsgLm5hdmJhci1icmFuZDpob3Zlcntjb2xvcjojZmZmfS5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAubmF2LWxpbmt7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSl9Lm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluazpmb2N1cywubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjc1KX0ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLm5hdi1saW5rLmRpc2FibGVke2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjI1KX0ubmF2YmFyLWRhcmsgLm5hdmJhci1uYXYgLmFjdGl2ZT4ubmF2LWxpbmssLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluay5hY3RpdmUsLm5hdmJhci1kYXJrIC5uYXZiYXItbmF2IC5uYXYtbGluay5zaG93LC5uYXZiYXItZGFyayAubmF2YmFyLW5hdiAuc2hvdz4ubmF2LWxpbmt7Y29sb3I6I2ZmZn0ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVye2NvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjUpO2JvcmRlci1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC4xKX0ubmF2YmFyLWRhcmsgLm5hdmJhci10b2dnbGVyLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHZpZXdCb3g9JzAgMCAzMCAzMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggc3Ryb2tlPSdyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSknIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8lM0UlM0Mvc3ZnJTNFIil9Lm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dHtjb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX0ubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0IGF7Y29sb3I6I2ZmZn0ubmF2YmFyLWRhcmsgLm5hdmJhci10ZXh0IGE6Zm9jdXMsLm5hdmJhci1kYXJrIC5uYXZiYXItdGV4dCBhOmhvdmVye2NvbG9yOiNmZmZ9LmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjA7d29yZC13cmFwOmJyZWFrLXdvcmQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY2xpcDpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTI1KTtib3JkZXItcmFkaXVzOi4yNXJlbX0uY2FyZD5ocnttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDowfS5jYXJkPi5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtfS5jYXJkPi5saXN0LWdyb3VwOmxhc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4yNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbX0uY2FyZC1ib2R5ey1tcy1mbGV4OjEgMSBhdXRvO2ZsZXg6MSAxIGF1dG87cGFkZGluZzoxLjI1cmVtfS5jYXJkLXRpdGxle21hcmdpbi1ib3R0b206Ljc1cmVtfS5jYXJkLXN1YnRpdGxle21hcmdpbi10b3A6LS4zNzVyZW07bWFyZ2luLWJvdHRvbTowfS5jYXJkLXRleHQ6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmNhcmQtbGluazpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uY2FyZC1saW5rKy5jYXJkLWxpbmt7bWFyZ2luLWxlZnQ6MS4yNXJlbX0uY2FyZC1oZWFkZXJ7cGFkZGluZzouNzVyZW0gMS4yNXJlbTttYXJnaW4tYm90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wMyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTI1KX0uY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCkgY2FsYyguMjVyZW0gLSAxcHgpIDAgMH0uY2FyZC1oZWFkZXIrLmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wOjB9LmNhcmQtZm9vdGVye3BhZGRpbmc6Ljc1cmVtIDEuMjVyZW07YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4wMyk7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLDAsMCwuMTI1KX0uY2FyZC1mb290ZXI6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjAgMCBjYWxjKC4yNXJlbSAtIDFweCkgY2FsYyguMjVyZW0gLSAxcHgpfS5jYXJkLWhlYWRlci10YWJze21hcmdpbi1yaWdodDotLjYyNXJlbTttYXJnaW4tYm90dG9tOi0uNzVyZW07bWFyZ2luLWxlZnQ6LS42MjVyZW07Ym9yZGVyLWJvdHRvbTowfS5jYXJkLWhlYWRlci1waWxsc3ttYXJnaW4tcmlnaHQ6LS42MjVyZW07bWFyZ2luLWxlZnQ6LS42MjVyZW19LmNhcmQtaW1nLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7cGFkZGluZzoxLjI1cmVtfS5jYXJkLWltZ3t3aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6Y2FsYyguMjVyZW0gLSAxcHgpfS5jYXJkLWltZy10b3B7d2lkdGg6MTAwJTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czpjYWxjKC4yNXJlbSAtIDFweCl9LmNhcmQtaW1nLWJvdHRvbXt3aWR0aDoxMDAlO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOmNhbGMoLjI1cmVtIC0gMXB4KX0uY2FyZC1kZWNre2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jYXJkLWRlY2sgLmNhcmR7bWFyZ2luLWJvdHRvbToxNXB4fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2FyZC1kZWNrey1tcy1mbGV4LWZsb3c6cm93IHdyYXA7ZmxleC1mbG93OnJvdyB3cmFwO21hcmdpbi1yaWdodDotMTVweDttYXJnaW4tbGVmdDotMTVweH0uY2FyZC1kZWNrIC5jYXJke2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4OjEgMCAwJTtmbGV4OjEgMCAwJTstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tYm90dG9tOjA7bWFyZ2luLWxlZnQ6MTVweH19LmNhcmQtZ3JvdXB7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNhcmQtZ3JvdXA+LmNhcmR7bWFyZ2luLWJvdHRvbToxNXB4fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2FyZC1ncm91cHstbXMtZmxleC1mbG93OnJvdyB3cmFwO2ZsZXgtZmxvdzpyb3cgd3JhcH0uY2FyZC1ncm91cD4uY2FyZHstbXMtZmxleDoxIDAgMCU7ZmxleDoxIDAgMCU7bWFyZ2luLWJvdHRvbTowfS5jYXJkLWdyb3VwPi5jYXJkKy5jYXJke21hcmdpbi1sZWZ0OjA7Ym9yZGVyLWxlZnQ6MH0uY2FyZC1ncm91cD4uY2FyZDpmaXJzdC1jaGlsZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmNhcmQtZ3JvdXA+LmNhcmQ6Zmlyc3QtY2hpbGQgLmNhcmQtaGVhZGVyLC5jYXJkLWdyb3VwPi5jYXJkOmZpcnN0LWNoaWxkIC5jYXJkLWltZy10b3B7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0uY2FyZC1ncm91cD4uY2FyZDpmaXJzdC1jaGlsZCAuY2FyZC1mb290ZXIsLmNhcmQtZ3JvdXA+LmNhcmQ6Zmlyc3QtY2hpbGQgLmNhcmQtaW1nLWJvdHRvbXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOmxhc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uY2FyZC1ncm91cD4uY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWhlYWRlciwuY2FyZC1ncm91cD4uY2FyZDpsYXN0LWNoaWxkIC5jYXJkLWltZy10b3B7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5jYXJkLWdyb3VwPi5jYXJkOmxhc3QtY2hpbGQgLmNhcmQtZm9vdGVyLC5jYXJkLWdyb3VwPi5jYXJkOmxhc3QtY2hpbGQgLmNhcmQtaW1nLWJvdHRvbXtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmNhcmQtZ3JvdXA+LmNhcmQ6b25seS1jaGlsZHtib3JkZXItcmFkaXVzOi4yNXJlbX0uY2FyZC1ncm91cD4uY2FyZDpvbmx5LWNoaWxkIC5jYXJkLWhlYWRlciwuY2FyZC1ncm91cD4uY2FyZDpvbmx5LWNoaWxkIC5jYXJkLWltZy10b3B7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtfS5jYXJkLWdyb3VwPi5jYXJkOm9ubHktY2hpbGQgLmNhcmQtZm9vdGVyLC5jYXJkLWdyb3VwPi5jYXJkOm9ubHktY2hpbGQgLmNhcmQtaW1nLWJvdHRvbXtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW19LmNhcmQtZ3JvdXA+LmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpe2JvcmRlci1yYWRpdXM6MH0uY2FyZC1ncm91cD4uY2FyZDpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCg6b25seS1jaGlsZCkgLmNhcmQtZm9vdGVyLC5jYXJkLWdyb3VwPi5jYXJkOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCk6bm90KDpvbmx5LWNoaWxkKSAuY2FyZC1oZWFkZXIsLmNhcmQtZ3JvdXA+LmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWltZy1ib3R0b20sLmNhcmQtZ3JvdXA+LmNhcmQ6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKTpub3QoOm9ubHktY2hpbGQpIC5jYXJkLWltZy10b3B7Ym9yZGVyLXJhZGl1czowfX0uY2FyZC1jb2x1bW5zIC5jYXJke21hcmdpbi1ib3R0b206Ljc1cmVtfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2FyZC1jb2x1bW5zey13ZWJraXQtY29sdW1uLWNvdW50OjM7LW1vei1jb2x1bW4tY291bnQ6Mztjb2x1bW4tY291bnQ6Mzstd2Via2l0LWNvbHVtbi1nYXA6MS4yNXJlbTstbW96LWNvbHVtbi1nYXA6MS4yNXJlbTtjb2x1bW4tZ2FwOjEuMjVyZW07b3JwaGFuczoxO3dpZG93czoxfS5jYXJkLWNvbHVtbnMgLmNhcmR7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJX19LmFjY29yZGlvbiAuY2FyZDpub3QoOmZpcnN0LW9mLXR5cGUpOm5vdCg6bGFzdC1vZi10eXBlKXtib3JkZXItYm90dG9tOjA7Ym9yZGVyLXJhZGl1czowfS5hY2NvcmRpb24gLmNhcmQ6bm90KDpmaXJzdC1vZi10eXBlKSAuY2FyZC1oZWFkZXI6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowfS5hY2NvcmRpb24gLmNhcmQ6Zmlyc3Qtb2YtdHlwZXtib3JkZXItYm90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmFjY29yZGlvbiAuY2FyZDpsYXN0LW9mLXR5cGV7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjB9LmJyZWFkY3J1bWJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmc6Ljc1cmVtIDFyZW07bWFyZ2luLWJvdHRvbToxcmVtO2xpc3Qtc3R5bGU6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWY7Ym9yZGVyLXJhZGl1czouMjVyZW19LmJyZWFkY3J1bWItaXRlbSsuYnJlYWRjcnVtYi1pdGVte3BhZGRpbmctbGVmdDouNXJlbX0uYnJlYWRjcnVtYi1pdGVtKy5icmVhZGNydW1iLWl0ZW06OmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nLXJpZ2h0Oi41cmVtO2NvbG9yOiM2Yzc1N2Q7Y29udGVudDoiLyJ9LmJyZWFkY3J1bWItaXRlbSsuYnJlYWRjcnVtYi1pdGVtOmhvdmVyOjpiZWZvcmV7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uYnJlYWRjcnVtYi1pdGVtKy5icmVhZGNydW1iLWl0ZW06aG92ZXI6OmJlZm9yZXt0ZXh0LWRlY29yYXRpb246bm9uZX0uYnJlYWRjcnVtYi1pdGVtLmFjdGl2ZXtjb2xvcjojNmM3NTdkfS5wYWdpbmF0aW9ue2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmctbGVmdDowO2xpc3Qtc3R5bGU6bm9uZTtib3JkZXItcmFkaXVzOi4yNXJlbX0ucGFnZS1saW5re3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7cGFkZGluZzouNXJlbSAuNzVyZW07bWFyZ2luLWxlZnQ6LTFweDtsaW5lLWhlaWdodDoxLjI1O2NvbG9yOiMwMDdiZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgI2RlZTJlNn0ucGFnZS1saW5rOmhvdmVye3otaW5kZXg6Mjtjb2xvcjojMDA1NmIzO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2U5ZWNlZjtib3JkZXItY29sb3I6I2RlZTJlNn0ucGFnZS1saW5rOmZvY3Vze3otaW5kZXg6MjtvdXRsaW5lOjA7Ym94LXNoYWRvdzowIDAgMCAuMnJlbSByZ2JhKDAsMTIzLDI1NSwuMjUpfS5wYWdlLWxpbms6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9LnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5re21hcmdpbi1sZWZ0OjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW19LnBhZ2UtaXRlbTpsYXN0LWNoaWxkIC5wYWdlLWxpbmt7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjI1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4yNXJlbX0ucGFnZS1pdGVtLmFjdGl2ZSAucGFnZS1saW5re3otaW5kZXg6MTtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZjtib3JkZXItY29sb3I6IzAwN2JmZn0ucGFnZS1pdGVtLmRpc2FibGVkIC5wYWdlLWxpbmt7Y29sb3I6IzZjNzU3ZDtwb2ludGVyLWV2ZW50czpub25lO2N1cnNvcjphdXRvO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2RlZTJlNn0ucGFnaW5hdGlvbi1sZyAucGFnZS1saW5re3BhZGRpbmc6Ljc1cmVtIDEuNXJlbTtmb250LXNpemU6MS4yNXJlbTtsaW5lLWhlaWdodDoxLjV9LnBhZ2luYXRpb24tbGcgLnBhZ2UtaXRlbTpmaXJzdC1jaGlsZCAucGFnZS1saW5re2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjNyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouM3JlbX0ucGFnaW5hdGlvbi1sZyAucGFnZS1pdGVtOmxhc3QtY2hpbGQgLnBhZ2UtbGlua3tib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouM3JlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouM3JlbX0ucGFnaW5hdGlvbi1zbSAucGFnZS1saW5re3BhZGRpbmc6LjI1cmVtIC41cmVtO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OjEuNX0ucGFnaW5hdGlvbi1zbSAucGFnZS1pdGVtOmZpcnN0LWNoaWxkIC5wYWdlLWxpbmt7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMnJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4ycmVtfS5wYWdpbmF0aW9uLXNtIC5wYWdlLWl0ZW06bGFzdC1jaGlsZCAucGFnZS1saW5re2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4ycmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOi4ycmVtfS5iYWRnZXtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOi4yNWVtIC40ZW07Zm9udC1zaXplOjc1JTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7dmVydGljYWwtYWxpZ246YmFzZWxpbmU7Ym9yZGVyLXJhZGl1czouMjVyZW19LmJhZGdlOmVtcHR5e2Rpc3BsYXk6bm9uZX0uYnRuIC5iYWRnZXtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTFweH0uYmFkZ2UtcGlsbHtwYWRkaW5nLXJpZ2h0Oi42ZW07cGFkZGluZy1sZWZ0Oi42ZW07Ym9yZGVyLXJhZGl1czoxMHJlbX0uYmFkZ2UtcHJpbWFyeXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzAwN2JmZn0uYmFkZ2UtcHJpbWFyeVtocmVmXTpmb2N1cywuYmFkZ2UtcHJpbWFyeVtocmVmXTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzAwNjJjY30uYmFkZ2Utc2Vjb25kYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojNmM3NTdkfS5iYWRnZS1zZWNvbmRhcnlbaHJlZl06Zm9jdXMsLmJhZGdlLXNlY29uZGFyeVtocmVmXTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzU0NWI2Mn0uYmFkZ2Utc3VjY2Vzc3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI4YTc0NX0uYmFkZ2Utc3VjY2Vzc1tocmVmXTpmb2N1cywuYmFkZ2Utc3VjY2Vzc1tocmVmXTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzFlN2UzNH0uYmFkZ2UtaW5mb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzE3YTJiOH0uYmFkZ2UtaW5mb1tocmVmXTpmb2N1cywuYmFkZ2UtaW5mb1tocmVmXTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzExN2E4Yn0uYmFkZ2Utd2FybmluZ3tjb2xvcjojMjEyNTI5O2JhY2tncm91bmQtY29sb3I6I2ZmYzEwN30uYmFkZ2Utd2FybmluZ1tocmVmXTpmb2N1cywuYmFkZ2Utd2FybmluZ1tocmVmXTpob3Zlcntjb2xvcjojMjEyNTI5O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2QzOWUwMH0uYmFkZ2UtZGFuZ2Vye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZGMzNTQ1fS5iYWRnZS1kYW5nZXJbaHJlZl06Zm9jdXMsLmJhZGdlLWRhbmdlcltocmVmXTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2JkMjEzMH0uYmFkZ2UtbGlnaHR7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmF9LmJhZGdlLWxpZ2h0W2hyZWZdOmZvY3VzLC5iYWRnZS1saWdodFtocmVmXTpob3Zlcntjb2xvcjojMjEyNTI5O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2RhZTBlNX0uYmFkZ2UtZGFya3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzM0M2E0MH0uYmFkZ2UtZGFya1tocmVmXTpmb2N1cywuYmFkZ2UtZGFya1tocmVmXTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6IzFkMjEyNH0uanVtYm90cm9ue3BhZGRpbmc6MnJlbSAxcmVtO21hcmdpbi1ib3R0b206MnJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWY7Ym9yZGVyLXJhZGl1czouM3JlbX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lmp1bWJvdHJvbntwYWRkaW5nOjRyZW0gMnJlbX19Lmp1bWJvdHJvbi1mbHVpZHtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjA7Ym9yZGVyLXJhZGl1czowfS5hbGVydHtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOi43NXJlbSAxLjI1cmVtO21hcmdpbi1ib3R0b206MXJlbTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6LjI1cmVtfS5hbGVydC1oZWFkaW5ne2NvbG9yOmluaGVyaXR9LmFsZXJ0LWxpbmt7Zm9udC13ZWlnaHQ6NzAwfS5hbGVydC1kaXNtaXNzaWJsZXtwYWRkaW5nLXJpZ2h0OjRyZW19LmFsZXJ0LWRpc21pc3NpYmxlIC5jbG9zZXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO3BhZGRpbmc6Ljc1cmVtIDEuMjVyZW07Y29sb3I6aW5oZXJpdH0uYWxlcnQtcHJpbWFyeXtjb2xvcjojMDA0MDg1O2JhY2tncm91bmQtY29sb3I6I2NjZTVmZjtib3JkZXItY29sb3I6I2I4ZGFmZn0uYWxlcnQtcHJpbWFyeSBocntib3JkZXItdG9wLWNvbG9yOiM5ZmNkZmZ9LmFsZXJ0LXByaW1hcnkgLmFsZXJ0LWxpbmt7Y29sb3I6IzAwMjc1Mn0uYWxlcnQtc2Vjb25kYXJ5e2NvbG9yOiMzODNkNDE7YmFja2dyb3VuZC1jb2xvcjojZTJlM2U1O2JvcmRlci1jb2xvcjojZDZkOGRifS5hbGVydC1zZWNvbmRhcnkgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojYzhjYmNmfS5hbGVydC1zZWNvbmRhcnkgLmFsZXJ0LWxpbmt7Y29sb3I6IzIwMjMyNn0uYWxlcnQtc3VjY2Vzc3tjb2xvcjojMTU1NzI0O2JhY2tncm91bmQtY29sb3I6I2Q0ZWRkYTtib3JkZXItY29sb3I6I2MzZTZjYn0uYWxlcnQtc3VjY2VzcyBocntib3JkZXItdG9wLWNvbG9yOiNiMWRmYmJ9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWxpbmt7Y29sb3I6IzBiMmUxM30uYWxlcnQtaW5mb3tjb2xvcjojMGM1NDYwO2JhY2tncm91bmQtY29sb3I6I2QxZWNmMTtib3JkZXItY29sb3I6I2JlZTVlYn0uYWxlcnQtaW5mbyBocntib3JkZXItdG9wLWNvbG9yOiNhYmRkZTV9LmFsZXJ0LWluZm8gLmFsZXJ0LWxpbmt7Y29sb3I6IzA2MmMzM30uYWxlcnQtd2FybmluZ3tjb2xvcjojODU2NDA0O2JhY2tncm91bmQtY29sb3I6I2ZmZjNjZDtib3JkZXItY29sb3I6I2ZmZWViYX0uYWxlcnQtd2FybmluZyBocntib3JkZXItdG9wLWNvbG9yOiNmZmU4YTF9LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWxpbmt7Y29sb3I6IzUzM2YwM30uYWxlcnQtZGFuZ2Vye2NvbG9yOiM3MjFjMjQ7YmFja2dyb3VuZC1jb2xvcjojZjhkN2RhO2JvcmRlci1jb2xvcjojZjVjNmNifS5hbGVydC1kYW5nZXIgaHJ7Ym9yZGVyLXRvcC1jb2xvcjojZjFiMGI3fS5hbGVydC1kYW5nZXIgLmFsZXJ0LWxpbmt7Y29sb3I6IzQ5MTIxN30uYWxlcnQtbGlnaHR7Y29sb3I6IzgxODE4MjtiYWNrZ3JvdW5kLWNvbG9yOiNmZWZlZmU7Ym9yZGVyLWNvbG9yOiNmZGZkZmV9LmFsZXJ0LWxpZ2h0IGhye2JvcmRlci10b3AtY29sb3I6I2VjZWNmNn0uYWxlcnQtbGlnaHQgLmFsZXJ0LWxpbmt7Y29sb3I6IzY4Njg2OH0uYWxlcnQtZGFya3tjb2xvcjojMWIxZTIxO2JhY2tncm91bmQtY29sb3I6I2Q2ZDhkOTtib3JkZXItY29sb3I6I2M2YzhjYX0uYWxlcnQtZGFyayBocntib3JkZXItdG9wLWNvbG9yOiNiOWJiYmV9LmFsZXJ0LWRhcmsgLmFsZXJ0LWxpbmt7Y29sb3I6IzA0MDUwNX1ALXdlYmtpdC1rZXlmcmFtZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXN7ZnJvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjFyZW0gMH10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH19QGtleWZyYW1lcyBwcm9ncmVzcy1iYXItc3RyaXBlc3tmcm9te2JhY2tncm91bmQtcG9zaXRpb246MXJlbSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246MCAwfX0ucHJvZ3Jlc3N7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7aGVpZ2h0OjFyZW07b3ZlcmZsb3c6aGlkZGVuO2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZC1jb2xvcjojZTllY2VmO2JvcmRlci1yYWRpdXM6LjI1cmVtfS5wcm9ncmVzcy1iYXJ7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmY7dHJhbnNpdGlvbjp3aWR0aCAuNnMgZWFzZX1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5wcm9ncmVzcy1iYXJ7dHJhbnNpdGlvbjpub25lfX0ucHJvZ3Jlc3MtYmFyLXN0cmlwZWR7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtc2l6ZToxcmVtIDFyZW19LnByb2dyZXNzLWJhci1hbmltYXRlZHstd2Via2l0LWFuaW1hdGlvbjpwcm9ncmVzcy1iYXItc3RyaXBlcyAxcyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnByb2dyZXNzLWJhci1zdHJpcGVzIDFzIGxpbmVhciBpbmZpbml0ZX0ubWVkaWF7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ubWVkaWEtYm9keXstbXMtZmxleDoxO2ZsZXg6MX0ubGlzdC1ncm91cHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tYm90dG9tOjB9Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb257d2lkdGg6MTAwJTtjb2xvcjojNDk1MDU3O3RleHQtYWxpZ246aW5oZXJpdH0ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojNDk1MDU3O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtY29sb3I6I2Y4ZjlmYX0ubGlzdC1ncm91cC1pdGVtLWFjdGlvbjphY3RpdmV7Y29sb3I6IzIxMjUyOTtiYWNrZ3JvdW5kLWNvbG9yOiNlOWVjZWZ9Lmxpc3QtZ3JvdXAtaXRlbXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3BhZGRpbmc6Ljc1cmVtIDEuMjVyZW07bWFyZ2luLWJvdHRvbTotMXB4O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjEyNSl9Lmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW19Lmxpc3QtZ3JvdXAtaXRlbTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMjVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW19Lmxpc3QtZ3JvdXAtaXRlbTpmb2N1cywubGlzdC1ncm91cC1pdGVtOmhvdmVye3otaW5kZXg6MTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkLC5saXN0LWdyb3VwLWl0ZW06ZGlzYWJsZWR7Y29sb3I6IzZjNzU3ZDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmV7ei1pbmRleDoyO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDA3YmZmO2JvcmRlci1jb2xvcjojMDA3YmZmfS5saXN0LWdyb3VwLWZsdXNoIC5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLXJpZ2h0OjA7Ym9yZGVyLWxlZnQ6MDtib3JkZXItcmFkaXVzOjB9Lmxpc3QtZ3JvdXAtZmx1c2g6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wOjB9Lmxpc3QtZ3JvdXAtZmx1c2g6bGFzdC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTowfS5saXN0LWdyb3VwLWl0ZW0tcHJpbWFyeXtjb2xvcjojMDA0MDg1O2JhY2tncm91bmQtY29sb3I6I2I4ZGFmZn0ubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojMDA0MDg1O2JhY2tncm91bmQtY29sb3I6IzlmY2RmZn0ubGlzdC1ncm91cC1pdGVtLXByaW1hcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDQwODU7Ym9yZGVyLWNvbG9yOiMwMDQwODV9Lmxpc3QtZ3JvdXAtaXRlbS1zZWNvbmRhcnl7Y29sb3I6IzM4M2Q0MTtiYWNrZ3JvdW5kLWNvbG9yOiNkNmQ4ZGJ9Lmxpc3QtZ3JvdXAtaXRlbS1zZWNvbmRhcnkubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLXNlY29uZGFyeS5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiMzODNkNDE7YmFja2dyb3VuZC1jb2xvcjojYzhjYmNmfS5saXN0LWdyb3VwLWl0ZW0tc2Vjb25kYXJ5Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzgzZDQxO2JvcmRlci1jb2xvcjojMzgzZDQxfS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojMTU1NzI0O2JhY2tncm91bmQtY29sb3I6I2MzZTZjYn0ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojMTU1NzI0O2JhY2tncm91bmQtY29sb3I6I2IxZGZiYn0ubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MubGlzdC1ncm91cC1pdGVtLWFjdGlvbi5hY3RpdmV7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMxNTU3MjQ7Ym9yZGVyLWNvbG9yOiMxNTU3MjR9Lmxpc3QtZ3JvdXAtaXRlbS1pbmZve2NvbG9yOiMwYzU0NjA7YmFja2dyb3VuZC1jb2xvcjojYmVlNWVifS5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uOmhvdmVye2NvbG9yOiMwYzU0NjA7YmFja2dyb3VuZC1jb2xvcjojYWJkZGU1fS5saXN0LWdyb3VwLWl0ZW0taW5mby5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzBjNTQ2MDtib3JkZXItY29sb3I6IzBjNTQ2MH0ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmd7Y29sb3I6Izg1NjQwNDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmVlYmF9Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6Izg1NjQwNDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmU4YTF9Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojODU2NDA0O2JvcmRlci1jb2xvcjojODU2NDA0fS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2Vye2NvbG9yOiM3MjFjMjQ7YmFja2dyb3VuZC1jb2xvcjojZjVjNmNifS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpob3Zlcntjb2xvcjojNzIxYzI0O2JhY2tncm91bmQtY29sb3I6I2YxYjBiN30ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzcyMWMyNDtib3JkZXItY29sb3I6IzcyMWMyNH0ubGlzdC1ncm91cC1pdGVtLWxpZ2h0e2NvbG9yOiM4MTgxODI7YmFja2dyb3VuZC1jb2xvcjojZmRmZGZlfS5saXN0LWdyb3VwLWl0ZW0tbGlnaHQubGlzdC1ncm91cC1pdGVtLWFjdGlvbjpmb2N1cywubGlzdC1ncm91cC1pdGVtLWxpZ2h0Lmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzgxODE4MjtiYWNrZ3JvdW5kLWNvbG9yOiNlY2VjZjZ9Lmxpc3QtZ3JvdXAtaXRlbS1saWdodC5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uLmFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzgxODE4Mjtib3JkZXItY29sb3I6IzgxODE4Mn0ubGlzdC1ncm91cC1pdGVtLWRhcmt7Y29sb3I6IzFiMWUyMTtiYWNrZ3JvdW5kLWNvbG9yOiNjNmM4Y2F9Lmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246Zm9jdXMsLmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb246aG92ZXJ7Y29sb3I6IzFiMWUyMTtiYWNrZ3JvdW5kLWNvbG9yOiNiOWJiYmV9Lmxpc3QtZ3JvdXAtaXRlbS1kYXJrLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb24uYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMWIxZTIxO2JvcmRlci1jb2xvcjojMWIxZTIxfS5jbG9zZXtmbG9hdDpyaWdodDtmb250LXNpemU6MS41cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxO2NvbG9yOiMwMDA7dGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO29wYWNpdHk6LjV9LmNsb3NlOmZvY3VzLC5jbG9zZTpob3Zlcntjb2xvcjojMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO29wYWNpdHk6Ljc1fS5jbG9zZTpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKXtjdXJzb3I6cG9pbnRlcn1idXR0b24uY2xvc2V7cGFkZGluZzowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm1vZGFsLW9wZW57b3ZlcmZsb3c6aGlkZGVufS5tb2RhbHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4OjEwNTA7ZGlzcGxheTpub25lO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lOjB9Lm1vZGFsLW9wZW4gLm1vZGFse292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0b30ubW9kYWwtZGlhbG9ne3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87bWFyZ2luOi41cmVtO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1vZGFsLmZhZGUgLm1vZGFsLWRpYWxvZ3t0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBlYXNlLW91dDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0LC13ZWJraXQtdHJhbnNmb3JtIC4zcyBlYXNlLW91dDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMjUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTI1JSl9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsubW9kYWwuZmFkZSAubW9kYWwtZGlhbG9ne3RyYW5zaXRpb246bm9uZX19Lm1vZGFsLnNob3cgLm1vZGFsLWRpYWxvZ3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlKDAsMCl9Lm1vZGFsLWRpYWxvZy1jZW50ZXJlZHtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6Y2FsYygxMDAlIC0gKC41cmVtICogMikpfS5tb2RhbC1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO3dpZHRoOjEwMCU7cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czouM3JlbTtvdXRsaW5lOjB9Lm1vZGFsLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7bGVmdDowO3otaW5kZXg6MTA0MDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9Lm1vZGFsLWJhY2tkcm9wLmZhZGV7b3BhY2l0eTowfS5tb2RhbC1iYWNrZHJvcC5zaG93e29wYWNpdHk6LjV9Lm1vZGFsLWhlYWRlcntkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjFyZW07Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2U5ZWNlZjtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4zcmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4zcmVtfS5tb2RhbC1oZWFkZXIgLmNsb3Nle3BhZGRpbmc6MXJlbTttYXJnaW46LTFyZW0gLTFyZW0gLTFyZW0gYXV0b30ubW9kYWwtdGl0bGV7bWFyZ2luLWJvdHRvbTowO2xpbmUtaGVpZ2h0OjEuNX0ubW9kYWwtYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTstbXMtZmxleDoxIDEgYXV0bztmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MXJlbX0ubW9kYWwtZm9vdGVye2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MXJlbTtib3JkZXItdG9wOjFweCBzb2xpZCAjZTllY2VmfS5tb2RhbC1mb290ZXI+Om5vdCg6Zmlyc3QtY2hpbGQpe21hcmdpbi1sZWZ0Oi4yNXJlbX0ubW9kYWwtZm9vdGVyPjpub3QoOmxhc3QtY2hpbGQpe21hcmdpbi1yaWdodDouMjVyZW19Lm1vZGFsLXNjcm9sbGJhci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5OXB4O3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6c2Nyb2xsfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsubW9kYWwtZGlhbG9ne21heC13aWR0aDo1MDBweDttYXJnaW46MS43NXJlbSBhdXRvfS5tb2RhbC1kaWFsb2ctY2VudGVyZWR7bWluLWhlaWdodDpjYWxjKDEwMCUgLSAoMS43NXJlbSAqIDIpKX0ubW9kYWwtc217bWF4LXdpZHRoOjMwMHB4fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm1vZGFsLWxne21heC13aWR0aDo4MDBweH19LnRvb2x0aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDcwO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Zm9udC1mYW1pbHk6LWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsIlNlZ29lIFVJIixSb2JvdG8sIkhlbHZldGljYSBOZXVlIixBcmlhbCxzYW5zLXNlcmlmLCJBcHBsZSBDb2xvciBFbW9qaSIsIlNlZ29lIFVJIEVtb2ppIiwiU2Vnb2UgVUkgU3ltYm9sIjtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS41O3RleHQtYWxpZ246bGVmdDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93Om5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZTtsZXR0ZXItc3BhY2luZzpub3JtYWw7d29yZC1icmVhazpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3aGl0ZS1zcGFjZTpub3JtYWw7bGluZS1icmVhazphdXRvO2ZvbnQtc2l6ZTouODc1cmVtO3dvcmQtd3JhcDpicmVhay13b3JkO29wYWNpdHk6MH0udG9vbHRpcC5zaG93e29wYWNpdHk6Ljl9LnRvb2x0aXAgLmFycm93e3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6LjhyZW07aGVpZ2h0Oi40cmVtfS50b29sdGlwIC5hcnJvdzo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6IiI7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZH0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj10b3BdLC5icy10b29sdGlwLXRvcHtwYWRkaW5nOi40cmVtIDB9LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49dG9wXSAuYXJyb3csLmJzLXRvb2x0aXAtdG9wIC5hcnJvd3tib3R0b206MH0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj10b3BdIC5hcnJvdzo6YmVmb3JlLC5icy10b29sdGlwLXRvcCAuYXJyb3c6OmJlZm9yZXt0b3A6MDtib3JkZXItd2lkdGg6LjRyZW0gLjRyZW0gMDtib3JkZXItdG9wLWNvbG9yOiMwMDB9LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdLC5icy10b29sdGlwLXJpZ2h0e3BhZGRpbmc6MCAuNHJlbX0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0gLmFycm93LC5icy10b29sdGlwLXJpZ2h0IC5hcnJvd3tsZWZ0OjA7d2lkdGg6LjRyZW07aGVpZ2h0Oi44cmVtfS5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePXJpZ2h0XSAuYXJyb3c6OmJlZm9yZSwuYnMtdG9vbHRpcC1yaWdodCAuYXJyb3c6OmJlZm9yZXtyaWdodDowO2JvcmRlci13aWR0aDouNHJlbSAuNHJlbSAuNHJlbSAwO2JvcmRlci1yaWdodC1jb2xvcjojMDAwfS5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0sLmJzLXRvb2x0aXAtYm90dG9te3BhZGRpbmc6LjRyZW0gMH0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dIC5hcnJvdywuYnMtdG9vbHRpcC1ib3R0b20gLmFycm93e3RvcDowfS5icy10b29sdGlwLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0gLmFycm93OjpiZWZvcmUsLmJzLXRvb2x0aXAtYm90dG9tIC5hcnJvdzo6YmVmb3Jle2JvdHRvbTowO2JvcmRlci13aWR0aDowIC40cmVtIC40cmVtO2JvcmRlci1ib3R0b20tY29sb3I6IzAwMH0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1sZWZ0XSwuYnMtdG9vbHRpcC1sZWZ0e3BhZGRpbmc6MCAuNHJlbX0uYnMtdG9vbHRpcC1hdXRvW3gtcGxhY2VtZW50Xj1sZWZ0XSAuYXJyb3csLmJzLXRvb2x0aXAtbGVmdCAuYXJyb3d7cmlnaHQ6MDt3aWR0aDouNHJlbTtoZWlnaHQ6LjhyZW19LmJzLXRvb2x0aXAtYXV0b1t4LXBsYWNlbWVudF49bGVmdF0gLmFycm93OjpiZWZvcmUsLmJzLXRvb2x0aXAtbGVmdCAuYXJyb3c6OmJlZm9yZXtsZWZ0OjA7Ym9yZGVyLXdpZHRoOi40cmVtIDAgLjRyZW0gLjRyZW07Ym9yZGVyLWxlZnQtY29sb3I6IzAwMH0udG9vbHRpcC1pbm5lcnttYXgtd2lkdGg6MjAwcHg7cGFkZGluZzouMjVyZW0gLjVyZW07Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Ym9yZGVyLXJhZGl1czouMjVyZW19LnBvcG92ZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA2MDtkaXNwbGF5OmJsb2NrO21heC13aWR0aDoyNzZweDtmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCwiU2Vnb2UgVUkiLFJvYm90bywiSGVsdmV0aWNhIE5ldWUiLEFyaWFsLHNhbnMtc2VyaWYsIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJTZWdvZSBVSSBTeW1ib2wiO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjQwMDtsaW5lLWhlaWdodDoxLjU7dGV4dC1hbGlnbjpsZWZ0O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6bm9uZTt0ZXh0LXRyYW5zZm9ybTpub25lO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLWJyZWFrOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3doaXRlLXNwYWNlOm5vcm1hbDtsaW5lLWJyZWFrOmF1dG87Zm9udC1zaXplOi44NzVyZW07d29yZC13cmFwOmJyZWFrLXdvcmQ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjIpO2JvcmRlci1yYWRpdXM6LjNyZW19LnBvcG92ZXIgLmFycm93e3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MXJlbTtoZWlnaHQ6LjVyZW07bWFyZ2luOjAgLjNyZW19LnBvcG92ZXIgLmFycm93OjphZnRlciwucG9wb3ZlciAuYXJyb3c6OmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiI7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1zdHlsZTpzb2xpZH0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj10b3BdLC5icy1wb3BvdmVyLXRvcHttYXJnaW4tYm90dG9tOi41cmVtfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePXRvcF0gLmFycm93LC5icy1wb3BvdmVyLXRvcCAuYXJyb3d7Ym90dG9tOmNhbGMoKC41cmVtICsgMXB4KSAqIC0xKX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj10b3BdIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49dG9wXSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci10b3AgLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci10b3AgLmFycm93OjpiZWZvcmV7Ym9yZGVyLXdpZHRoOi41cmVtIC41cmVtIDB9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49dG9wXSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci10b3AgLmFycm93OjpiZWZvcmV7Ym90dG9tOjA7Ym9yZGVyLXRvcC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49dG9wXSAuYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLXRvcCAuYXJyb3c6OmFmdGVye2JvdHRvbToxcHg7Ym9yZGVyLXRvcC1jb2xvcjojZmZmfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePXJpZ2h0XSwuYnMtcG9wb3Zlci1yaWdodHttYXJnaW4tbGVmdDouNXJlbX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0gLmFycm93LC5icy1wb3BvdmVyLXJpZ2h0IC5hcnJvd3tsZWZ0OmNhbGMoKC41cmVtICsgMXB4KSAqIC0xKTt3aWR0aDouNXJlbTtoZWlnaHQ6MXJlbTttYXJnaW46LjNyZW0gMH0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0gLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0gLmFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItcmlnaHQgLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci1yaWdodCAuYXJyb3c6OmJlZm9yZXtib3JkZXItd2lkdGg6LjVyZW0gLjVyZW0gLjVyZW0gMH0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1yaWdodF0gLmFycm93OjpiZWZvcmUsLmJzLXBvcG92ZXItcmlnaHQgLmFycm93OjpiZWZvcmV7bGVmdDowO2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49cmlnaHRdIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItcmlnaHQgLmFycm93OjphZnRlcntsZWZ0OjFweDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZn0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dLC5icy1wb3BvdmVyLWJvdHRvbXttYXJnaW4tdG9wOi41cmVtfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0gLmFycm93LC5icy1wb3BvdmVyLWJvdHRvbSAuYXJyb3d7dG9wOmNhbGMoKC41cmVtICsgMXB4KSAqIC0xKX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1ib3R0b21dIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49Ym90dG9tXSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjpiZWZvcmV7Ym9yZGVyLXdpZHRoOjAgLjVyZW0gLjVyZW0gLjVyZW19LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49Ym90dG9tXSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1ib3R0b20gLmFycm93OjpiZWZvcmV7dG9wOjA7Ym9yZGVyLWJvdHRvbS1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49Ym90dG9tXSAuYXJyb3c6OmFmdGVyLC5icy1wb3BvdmVyLWJvdHRvbSAuYXJyb3c6OmFmdGVye3RvcDoxcHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWJvdHRvbV0gLnBvcG92ZXItaGVhZGVyOjpiZWZvcmUsLmJzLXBvcG92ZXItYm90dG9tIC5wb3BvdmVyLWhlYWRlcjo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6NTAlO2Rpc3BsYXk6YmxvY2s7d2lkdGg6MXJlbTttYXJnaW4tbGVmdDotLjVyZW07Y29udGVudDoiIjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjdmN2Y3fS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdLC5icy1wb3BvdmVyLWxlZnR7bWFyZ2luLXJpZ2h0Oi41cmVtfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdIC5hcnJvdywuYnMtcG9wb3Zlci1sZWZ0IC5hcnJvd3tyaWdodDpjYWxjKCguNXJlbSArIDFweCkgKiAtMSk7d2lkdGg6LjVyZW07aGVpZ2h0OjFyZW07bWFyZ2luOi4zcmVtIDB9LmJzLXBvcG92ZXItYXV0b1t4LXBsYWNlbWVudF49bGVmdF0gLmFycm93OjphZnRlciwuYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1sZWZ0XSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItbGVmdCAuYXJyb3c6OmJlZm9yZXtib3JkZXItd2lkdGg6LjVyZW0gMCAuNXJlbSAuNXJlbX0uYnMtcG9wb3Zlci1hdXRvW3gtcGxhY2VtZW50Xj1sZWZ0XSAuYXJyb3c6OmJlZm9yZSwuYnMtcG9wb3Zlci1sZWZ0IC5hcnJvdzo6YmVmb3Jle3JpZ2h0OjA7Ym9yZGVyLWxlZnQtY29sb3I6cmdiYSgwLDAsMCwuMjUpfS5icy1wb3BvdmVyLWF1dG9beC1wbGFjZW1lbnRePWxlZnRdIC5hcnJvdzo6YWZ0ZXIsLmJzLXBvcG92ZXItbGVmdCAuYXJyb3c6OmFmdGVye3JpZ2h0OjFweDtib3JkZXItbGVmdC1jb2xvcjojZmZmfS5wb3BvdmVyLWhlYWRlcntwYWRkaW5nOi41cmVtIC43NXJlbTttYXJnaW4tYm90dG9tOjA7Zm9udC1zaXplOjFyZW07Y29sb3I6aW5oZXJpdDtiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2ViZWJlYjtib3JkZXItdG9wLWxlZnQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOmNhbGMoLjNyZW0gLSAxcHgpfS5wb3BvdmVyLWhlYWRlcjplbXB0eXtkaXNwbGF5Om5vbmV9LnBvcG92ZXItYm9keXtwYWRkaW5nOi41cmVtIC43NXJlbTtjb2xvcjojMjEyNTI5fS5jYXJvdXNlbHtwb3NpdGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW59LmNhcm91c2VsLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpub25lOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTt0cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC42cyBlYXNlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlLC13ZWJraXQtdHJhbnNmb3JtIC42cyBlYXNlOy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47LXdlYmtpdC1wZXJzcGVjdGl2ZToxMDAwcHg7cGVyc3BlY3RpdmU6MTAwMHB4fUBtZWRpYSBzY3JlZW4gYW5kIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LmNhcm91c2VsLWl0ZW17dHJhbnNpdGlvbjpub25lfX0uY2Fyb3VzZWwtaXRlbS1uZXh0LC5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWl0ZW0uYWN0aXZle2Rpc3BsYXk6YmxvY2t9LmNhcm91c2VsLWl0ZW0tbmV4dCwuY2Fyb3VzZWwtaXRlbS1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowfS5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1yaWdodHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmNhcm91c2VsLWl0ZW0tbmV4dC5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWl0ZW0tcHJldi5jYXJvdXNlbC1pdGVtLXJpZ2h0ey13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX0uYWN0aXZlLmNhcm91c2VsLWl0ZW0tcmlnaHQsLmNhcm91c2VsLWl0ZW0tbmV4dHstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDEwMCUpfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXJpZ2h0LC5jYXJvdXNlbC1pdGVtLW5leHR7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgxMDAlLDAsMCl9fS5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1pdGVtLXByZXZ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWl0ZW0tcHJldnstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgtMTAwJSwwLDApfX0uY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbXtvcGFjaXR5OjA7dHJhbnNpdGlvbi1kdXJhdGlvbjouNnM7dHJhbnNpdGlvbi1wcm9wZXJ0eTpvcGFjaXR5fS5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLW5leHQuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLXByZXYuY2Fyb3VzZWwtaXRlbS1yaWdodCwuY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS5hY3RpdmV7b3BhY2l0eToxfS5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1sZWZ0LC5jYXJvdXNlbC1mYWRlIC5hY3RpdmUuY2Fyb3VzZWwtaXRlbS1yaWdodHtvcGFjaXR5OjB9LmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dCwuY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVYKDApfUBzdXBwb3J0cyAoKC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSBvciAodHJhbnNmb3JtLXN0eWxlOnByZXNlcnZlLTNkKSl7LmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLWxlZnQsLmNhcm91c2VsLWZhZGUgLmFjdGl2ZS5jYXJvdXNlbC1pdGVtLXByZXYsLmNhcm91c2VsLWZhZGUgLmNhcm91c2VsLWl0ZW0tbmV4dCwuY2Fyb3VzZWwtZmFkZSAuY2Fyb3VzZWwtaXRlbS1wcmV2LC5jYXJvdXNlbC1mYWRlIC5jYXJvdXNlbC1pdGVtLmFjdGl2ZXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19LmNhcm91c2VsLWNvbnRyb2wtbmV4dCwuY2Fyb3VzZWwtY29udHJvbC1wcmV2e3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNSU7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcjtvcGFjaXR5Oi41fS5jYXJvdXNlbC1jb250cm9sLW5leHQ6Zm9jdXMsLmNhcm91c2VsLWNvbnRyb2wtbmV4dDpob3ZlciwuY2Fyb3VzZWwtY29udHJvbC1wcmV2OmZvY3VzLC5jYXJvdXNlbC1jb250cm9sLXByZXY6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29yYXRpb246bm9uZTtvdXRsaW5lOjA7b3BhY2l0eTouOX0uY2Fyb3VzZWwtY29udHJvbC1wcmV2e2xlZnQ6MH0uY2Fyb3VzZWwtY29udHJvbC1uZXh0e3JpZ2h0OjB9LmNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uLC5jYXJvdXNlbC1jb250cm9sLXByZXYtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2Fyb3VzZWwtY29udHJvbC1wcmV2LWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nJTIzZmZmJyB2aWV3Qm94PScwIDAgOCA4JyUzRSUzQ3BhdGggZD0nTTUuMjUgMGwtNCA0IDQgNCAxLjUtMS41LTIuNS0yLjUgMi41LTIuNS0xLjUtMS41eicvJTNFJTNDL3N2ZyUzRSIpfS5jYXJvdXNlbC1jb250cm9sLW5leHQtaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSclMjNmZmYnIHZpZXdCb3g9JzAgMCA4IDgnJTNFJTNDcGF0aCBkPSdNMi43NSAwbC0xLjUgMS41IDIuNSAyLjUtMi41IDIuNSAxLjUgMS41IDQtNC00LTR6Jy8lM0UlM0Mvc3ZnJTNFIil9LmNhcm91c2VsLWluZGljYXRvcnN7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDtib3R0b206MTBweDtsZWZ0OjA7ei1pbmRleDoxNTtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctbGVmdDowO21hcmdpbi1yaWdodDoxNSU7bWFyZ2luLWxlZnQ6MTUlO2xpc3Qtc3R5bGU6bm9uZX0uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaXtwb3NpdGlvbjpyZWxhdGl2ZTstbXMtZmxleDowIDEgYXV0bztmbGV4OjAgMSBhdXRvO3dpZHRoOjMwcHg7aGVpZ2h0OjNweDttYXJnaW4tcmlnaHQ6M3B4O21hcmdpbi1sZWZ0OjNweDt0ZXh0LWluZGVudDotOTk5cHg7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC41KX0uY2Fyb3VzZWwtaW5kaWNhdG9ycyBsaTo6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMTBweDtsZWZ0OjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MTBweDtjb250ZW50OiIifS5jYXJvdXNlbC1pbmRpY2F0b3JzIGxpOjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206LTEwcHg7bGVmdDowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwcHg7Y29udGVudDoiIn0uY2Fyb3VzZWwtaW5kaWNhdG9ycyAuYWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ZmZn0uY2Fyb3VzZWwtY2FwdGlvbntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNSU7Ym90dG9tOjIwcHg7bGVmdDoxNSU7ei1pbmRleDoxMDtwYWRkaW5nLXRvcDoyMHB4O3BhZGRpbmctYm90dG9tOjIwcHg7Y29sb3I6I2ZmZjt0ZXh0LWFsaWduOmNlbnRlcn0uYWxpZ24tYmFzZWxpbmV7dmVydGljYWwtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi10b3B7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudH0uYWxpZ24tbWlkZGxle3ZlcnRpY2FsLWFsaWduOm1pZGRsZSFpbXBvcnRhbnR9LmFsaWduLWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjpib3R0b20haW1wb3J0YW50fS5hbGlnbi10ZXh0LWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LWJvdHRvbSFpbXBvcnRhbnR9LmFsaWduLXRleHQtdG9we3ZlcnRpY2FsLWFsaWduOnRleHQtdG9wIWltcG9ydGFudH0uYmctcHJpbWFyeXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDdiZmYhaW1wb3J0YW50fWEuYmctcHJpbWFyeTpmb2N1cyxhLmJnLXByaW1hcnk6aG92ZXIsYnV0dG9uLmJnLXByaW1hcnk6Zm9jdXMsYnV0dG9uLmJnLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDA2MmNjIWltcG9ydGFudH0uYmctc2Vjb25kYXJ5e2JhY2tncm91bmQtY29sb3I6IzZjNzU3ZCFpbXBvcnRhbnR9YS5iZy1zZWNvbmRhcnk6Zm9jdXMsYS5iZy1zZWNvbmRhcnk6aG92ZXIsYnV0dG9uLmJnLXNlY29uZGFyeTpmb2N1cyxidXR0b24uYmctc2Vjb25kYXJ5OmhvdmVye2JhY2tncm91bmQtY29sb3I6IzU0NWI2MiFpbXBvcnRhbnR9LmJnLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojMjhhNzQ1IWltcG9ydGFudH1hLmJnLXN1Y2Nlc3M6Zm9jdXMsYS5iZy1zdWNjZXNzOmhvdmVyLGJ1dHRvbi5iZy1zdWNjZXNzOmZvY3VzLGJ1dHRvbi5iZy1zdWNjZXNzOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzFlN2UzNCFpbXBvcnRhbnR9LmJnLWluZm97YmFja2dyb3VuZC1jb2xvcjojMTdhMmI4IWltcG9ydGFudH1hLmJnLWluZm86Zm9jdXMsYS5iZy1pbmZvOmhvdmVyLGJ1dHRvbi5iZy1pbmZvOmZvY3VzLGJ1dHRvbi5iZy1pbmZvOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzExN2E4YiFpbXBvcnRhbnR9LmJnLXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmZjMTA3IWltcG9ydGFudH1hLmJnLXdhcm5pbmc6Zm9jdXMsYS5iZy13YXJuaW5nOmhvdmVyLGJ1dHRvbi5iZy13YXJuaW5nOmZvY3VzLGJ1dHRvbi5iZy13YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2QzOWUwMCFpbXBvcnRhbnR9LmJnLWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNkYzM1NDUhaW1wb3J0YW50fWEuYmctZGFuZ2VyOmZvY3VzLGEuYmctZGFuZ2VyOmhvdmVyLGJ1dHRvbi5iZy1kYW5nZXI6Zm9jdXMsYnV0dG9uLmJnLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNiZDIxMzAhaW1wb3J0YW50fS5iZy1saWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNmOGY5ZmEhaW1wb3J0YW50fWEuYmctbGlnaHQ6Zm9jdXMsYS5iZy1saWdodDpob3ZlcixidXR0b24uYmctbGlnaHQ6Zm9jdXMsYnV0dG9uLmJnLWxpZ2h0OmhvdmVye2JhY2tncm91bmQtY29sb3I6I2RhZTBlNSFpbXBvcnRhbnR9LmJnLWRhcmt7YmFja2dyb3VuZC1jb2xvcjojMzQzYTQwIWltcG9ydGFudH1hLmJnLWRhcms6Zm9jdXMsYS5iZy1kYXJrOmhvdmVyLGJ1dHRvbi5iZy1kYXJrOmZvY3VzLGJ1dHRvbi5iZy1kYXJrOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzFkMjEyNCFpbXBvcnRhbnR9LmJnLXdoaXRle2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9LmJnLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQhaW1wb3J0YW50fS5ib3JkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGVlMmU2IWltcG9ydGFudH0uYm9yZGVyLXRvcHtib3JkZXItdG9wOjFweCBzb2xpZCAjZGVlMmU2IWltcG9ydGFudH0uYm9yZGVyLXJpZ2h0e2JvcmRlci1yaWdodDoxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnR9LmJvcmRlci1ib3R0b217Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2RlZTJlNiFpbXBvcnRhbnR9LmJvcmRlci1sZWZ0e2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjZGVlMmU2IWltcG9ydGFudH0uYm9yZGVyLTB7Ym9yZGVyOjAhaW1wb3J0YW50fS5ib3JkZXItdG9wLTB7Ym9yZGVyLXRvcDowIWltcG9ydGFudH0uYm9yZGVyLXJpZ2h0LTB7Ym9yZGVyLXJpZ2h0OjAhaW1wb3J0YW50fS5ib3JkZXItYm90dG9tLTB7Ym9yZGVyLWJvdHRvbTowIWltcG9ydGFudH0uYm9yZGVyLWxlZnQtMHtib3JkZXItbGVmdDowIWltcG9ydGFudH0uYm9yZGVyLXByaW1hcnl7Ym9yZGVyLWNvbG9yOiMwMDdiZmYhaW1wb3J0YW50fS5ib3JkZXItc2Vjb25kYXJ5e2JvcmRlci1jb2xvcjojNmM3NTdkIWltcG9ydGFudH0uYm9yZGVyLXN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiMyOGE3NDUhaW1wb3J0YW50fS5ib3JkZXItaW5mb3tib3JkZXItY29sb3I6IzE3YTJiOCFpbXBvcnRhbnR9LmJvcmRlci13YXJuaW5ne2JvcmRlci1jb2xvcjojZmZjMTA3IWltcG9ydGFudH0uYm9yZGVyLWRhbmdlcntib3JkZXItY29sb3I6I2RjMzU0NSFpbXBvcnRhbnR9LmJvcmRlci1saWdodHtib3JkZXItY29sb3I6I2Y4ZjlmYSFpbXBvcnRhbnR9LmJvcmRlci1kYXJre2JvcmRlci1jb2xvcjojMzQzYTQwIWltcG9ydGFudH0uYm9yZGVyLXdoaXRle2JvcmRlci1jb2xvcjojZmZmIWltcG9ydGFudH0ucm91bmRlZHtib3JkZXItcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtdG9we2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMjVyZW0haW1wb3J0YW50fS5yb3VuZGVkLXJpZ2h0e2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudH0ucm91bmRlZC1ib3R0b217Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjI1cmVtIWltcG9ydGFudDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnR9LnJvdW5kZWQtbGVmdHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4yNXJlbSFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMjVyZW0haW1wb3J0YW50fS5yb3VuZGVkLWNpcmNsZXtib3JkZXItcmFkaXVzOjUwJSFpbXBvcnRhbnR9LnJvdW5kZWQtMHtib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50fS5jbGVhcmZpeDo6YWZ0ZXJ7ZGlzcGxheTpibG9jaztjbGVhcjpib3RoO2NvbnRlbnQ6IiJ9LmQtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1mbGV4e2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtaW5saW5lLWZsZXh7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuZC1zbS1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtc20taW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uZC1zbS1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5kLXNtLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLXNtLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLXNtLXRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9LmQtc20tdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLXNtLWZsZXh7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1zbS1pbmxpbmUtZmxleHtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZC1tZC1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtbWQtaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uZC1tZC1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5kLW1kLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLW1kLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLW1kLXRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9LmQtbWQtdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLW1kLWZsZXh7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1tZC1pbmxpbmUtZmxleHtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuZC1sZy1ub25le2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmQtbGctaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uZC1sZy1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5kLWxnLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLWxnLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fS5kLWxnLXRhYmxlLXJvd3tkaXNwbGF5OnRhYmxlLXJvdyFpbXBvcnRhbnR9LmQtbGctdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLWxnLWZsZXh7ZGlzcGxheTotbXMtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1sZy1pbmxpbmUtZmxleHtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveCFpbXBvcnRhbnQ7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmQteGwtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLXhsLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQteGwtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC14bC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC14bC10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC14bC10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLXhsLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC14bC1mbGV4e2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQteGwtaW5saW5lLWZsZXh7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fX1AbWVkaWEgcHJpbnR7LmQtcHJpbnQtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLXByaW50LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1wcmludC1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1wcmludC10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1wcmludC10YWJsZS1yb3d7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fS5kLXByaW50LXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1wcmludC1mbGV4e2Rpc3BsYXk6LW1zLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtcHJpbnQtaW5saW5lLWZsZXh7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3ghaW1wb3J0YW50O2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fX0uZW1iZWQtcmVzcG9uc2l2ZXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbn0uZW1iZWQtcmVzcG9uc2l2ZTo6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIn0uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQtcmVzcG9uc2l2ZS1pdGVtLC5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLC5lbWJlZC1yZXNwb25zaXZlIGlmcmFtZSwuZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsLmVtYmVkLXJlc3BvbnNpdmUgdmlkZW97cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyOjB9LmVtYmVkLXJlc3BvbnNpdmUtMjFieTk6OmJlZm9yZXtwYWRkaW5nLXRvcDo0Mi44NTcxNDMlfS5lbWJlZC1yZXNwb25zaXZlLTE2Ynk5OjpiZWZvcmV7cGFkZGluZy10b3A6NTYuMjUlfS5lbWJlZC1yZXNwb25zaXZlLTRieTM6OmJlZm9yZXtwYWRkaW5nLXRvcDo3NSV9LmVtYmVkLXJlc3BvbnNpdmUtMWJ5MTo6YmVmb3Jle3BhZGRpbmctdG9wOjEwMCV9LmZsZXgtcm93ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmZsZXgtY29sdW1uey1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmZsZXgtcm93LXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtY29sdW1uLXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtd3JhcHstbXMtZmxleC13cmFwOndyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uZmxleC1ub3dyYXB7LW1zLWZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5mbGV4LXdyYXAtcmV2ZXJzZXstbXMtZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtZmlsbHstbXMtZmxleDoxIDEgYXV0byFpbXBvcnRhbnQ7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmZsZXgtZ3Jvdy0wey1tcy1mbGV4LXBvc2l0aXZlOjAhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1ncm93LTF7LW1zLWZsZXgtcG9zaXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LXNocmluay0wey1tcy1mbGV4LW5lZ2F0aXZlOjAhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LXNocmluay0xey1tcy1mbGV4LW5lZ2F0aXZlOjEhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc3RhcnR7LW1zLWZsZXgtcGFjazpzdGFydCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtZW5key1tcy1mbGV4LXBhY2s6ZW5kIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtY2VudGVyey1tcy1mbGV4LXBhY2s6Y2VudGVyIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWJldHdlZW57LW1zLWZsZXgtcGFjazpqdXN0aWZ5IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1hcm91bmR7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMtc3RhcnR7LW1zLWZsZXgtYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1lbmR7LW1zLWZsZXgtYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWNlbnRlcnstbXMtZmxleC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWJhc2VsaW5ley1tcy1mbGV4LWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXN0cmV0Y2h7LW1zLWZsZXgtYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc3RhcnR7LW1zLWZsZXgtbGluZS1wYWNrOnN0YXJ0IWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWVuZHstbXMtZmxleC1saW5lLXBhY2s6ZW5kIWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1jZW50ZXJ7LW1zLWZsZXgtbGluZS1wYWNrOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWJldHdlZW57LW1zLWZsZXgtbGluZS1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtYXJvdW5key1tcy1mbGV4LWxpbmUtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc3RyZXRjaHstbXMtZmxleC1saW5lLXBhY2s6c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tc2VsZi1hdXRvey1tcy1mbGV4LWl0ZW0tYWxpZ246YXV0byFpbXBvcnRhbnQ7YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1zdGFydHstbXMtZmxleC1pdGVtLWFsaWduOnN0YXJ0IWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLWVuZHstbXMtZmxleC1pdGVtLWFsaWduOmVuZCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtY2VudGVyey1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyIWltcG9ydGFudDthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLXNlbGYtYmFzZWxpbmV7LW1zLWZsZXgtaXRlbS1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc3RyZXRjaHstbXMtZmxleC1pdGVtLWFsaWduOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5mbGV4LXNtLXJvd3stbXMtZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5mbGV4LXNtLWNvbHVtbnstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50fS5mbGV4LXNtLXJvdy1yZXZlcnNley1tcy1mbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXNtLWNvbHVtbi1yZXZlcnNley1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXNtLXdyYXB7LW1zLWZsZXgtd3JhcDp3cmFwIWltcG9ydGFudDtmbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmZsZXgtc20tbm93cmFwey1tcy1mbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudDtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uZmxleC1zbS13cmFwLXJldmVyc2V7LW1zLWZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5mbGV4LXNtLWZpbGx7LW1zLWZsZXg6MSAxIGF1dG8haW1wb3J0YW50O2ZsZXg6MSAxIGF1dG8haW1wb3J0YW50fS5mbGV4LXNtLWdyb3ctMHstbXMtZmxleC1wb3NpdGl2ZTowIWltcG9ydGFudDtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmZsZXgtc20tZ3Jvdy0xey1tcy1mbGV4LXBvc2l0aXZlOjEhaW1wb3J0YW50O2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uZmxleC1zbS1zaHJpbmstMHstbXMtZmxleC1uZWdhdGl2ZTowIWltcG9ydGFudDtmbGV4LXNocmluazowIWltcG9ydGFudH0uZmxleC1zbS1zaHJpbmstMXstbXMtZmxleC1uZWdhdGl2ZToxIWltcG9ydGFudDtmbGV4LXNocmluazoxIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0ey1tcy1mbGV4LXBhY2s6c3RhcnQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLWVuZHstbXMtZmxleC1wYWNrOmVuZCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXNtLWNlbnRlcnstbXMtZmxleC1wYWNrOmNlbnRlciFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1zbS1iZXR3ZWVuey1tcy1mbGV4LXBhY2s6anVzdGlmeSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5key1tcy1mbGV4LXBhY2s6ZGlzdHJpYnV0ZSFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXNtLXN0YXJ0ey1tcy1mbGV4LWFsaWduOnN0YXJ0IWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24taXRlbXMtc20tZW5key1tcy1mbGV4LWFsaWduOmVuZCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1jZW50ZXJ7LW1zLWZsZXgtYWxpZ246Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1iYXNlbGluZXstbXMtZmxleC1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1zbS1zdHJldGNoey1tcy1mbGV4LWFsaWduOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLXN0YXJ0ey1tcy1mbGV4LWxpbmUtcGFjazpzdGFydCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tY29udGVudC1zbS1lbmR7LW1zLWZsZXgtbGluZS1wYWNrOmVuZCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtc20tY2VudGVyey1tcy1mbGV4LWxpbmUtcGFjazpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1zbS1iZXR3ZWVuey1tcy1mbGV4LWxpbmUtcGFjazpqdXN0aWZ5IWltcG9ydGFudDthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLWFyb3VuZHstbXMtZmxleC1saW5lLXBhY2s6ZGlzdHJpYnV0ZSFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXNtLXN0cmV0Y2h7LW1zLWZsZXgtbGluZS1wYWNrOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc20tYXV0b3stbXMtZmxleC1pdGVtLWFsaWduOmF1dG8haW1wb3J0YW50O2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmFsaWduLXNlbGYtc20tc3RhcnR7LW1zLWZsZXgtaXRlbS1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uYWxpZ24tc2VsZi1zbS1lbmR7LW1zLWZsZXgtaXRlbS1hbGlnbjplbmQhaW1wb3J0YW50O2FsaWduLXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWNlbnRlcnstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLWJhc2VsaW5ley1tcy1mbGV4LWl0ZW0tYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5hbGlnbi1zZWxmLXNtLXN0cmV0Y2h7LW1zLWZsZXgtaXRlbS1hbGlnbjpzdHJldGNoIWltcG9ydGFudDthbGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZsZXgtbWQtcm93ey1tcy1mbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmZsZXgtbWQtY29sdW1uey1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW4haW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmZsZXgtbWQtcm93LXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtY29sdW1uLXJldmVyc2V7LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtd3JhcHstbXMtZmxleC13cmFwOndyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uZmxleC1tZC1ub3dyYXB7LW1zLWZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50O2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5mbGV4LW1kLXdyYXAtcmV2ZXJzZXstbXMtZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmZsZXgtbWQtZmlsbHstbXMtZmxleDoxIDEgYXV0byFpbXBvcnRhbnQ7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmZsZXgtbWQtZ3Jvdy0wey1tcy1mbGV4LXBvc2l0aXZlOjAhaW1wb3J0YW50O2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uZmxleC1tZC1ncm93LTF7LW1zLWZsZXgtcG9zaXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5mbGV4LW1kLXNocmluay0wey1tcy1mbGV4LW5lZ2F0aXZlOjAhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5mbGV4LW1kLXNocmluay0xey1tcy1mbGV4LW5lZ2F0aXZlOjEhaW1wb3J0YW50O2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtc3RhcnR7LW1zLWZsZXgtcGFjazpzdGFydCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtZW5key1tcy1mbGV4LXBhY2s6ZW5kIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVyey1tcy1mbGV4LXBhY2s6Y2VudGVyIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LW1kLWJldHdlZW57LW1zLWZsZXgtcGFjazpqdXN0aWZ5IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1tZC1hcm91bmR7LW1zLWZsZXgtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbWQtc3RhcnR7LW1zLWZsZXgtYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1tZC1lbmR7LW1zLWZsZXgtYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLWNlbnRlcnstbXMtZmxleC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLWJhc2VsaW5ley1tcy1mbGV4LWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLW1kLXN0cmV0Y2h7LW1zLWZsZXgtYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtc3RhcnR7LW1zLWZsZXgtbGluZS1wYWNrOnN0YXJ0IWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLWVuZHstbXMtZmxleC1saW5lLXBhY2s6ZW5kIWltcG9ydGFudDthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1tZC1jZW50ZXJ7LW1zLWZsZXgtbGluZS1wYWNrOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LW1kLWJldHdlZW57LW1zLWZsZXgtbGluZS1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtYXJvdW5key1tcy1mbGV4LWxpbmUtcGFjazpkaXN0cmlidXRlIWltcG9ydGFudDthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbWQtc3RyZXRjaHstbXMtZmxleC1saW5lLXBhY2s6c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tc2VsZi1tZC1hdXRvey1tcy1mbGV4LWl0ZW0tYWxpZ246YXV0byFpbXBvcnRhbnQ7YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uYWxpZ24tc2VsZi1tZC1zdGFydHstbXMtZmxleC1pdGVtLWFsaWduOnN0YXJ0IWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5hbGlnbi1zZWxmLW1kLWVuZHstbXMtZmxleC1pdGVtLWFsaWduOmVuZCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbWQtY2VudGVyey1tcy1mbGV4LWl0ZW0tYWxpZ246Y2VudGVyIWltcG9ydGFudDthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbWQtYmFzZWxpbmV7LW1zLWZsZXgtaXRlbS1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbWQtc3RyZXRjaHstbXMtZmxleC1pdGVtLWFsaWduOnN0cmV0Y2ghaW1wb3J0YW50O2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuZmxleC1sZy1yb3d7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uZmxleC1sZy1jb2x1bW57LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uZmxleC1sZy1yb3ctcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy1jb2x1bW4tcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy13cmFwey1tcy1mbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LWxnLW5vd3JhcHstbXMtZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmZsZXgtbGctd3JhcC1yZXZlcnNley1tcy1mbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudDtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uZmxleC1sZy1maWxsey1tcy1mbGV4OjEgMSBhdXRvIWltcG9ydGFudDtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uZmxleC1sZy1ncm93LTB7LW1zLWZsZXgtcG9zaXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5mbGV4LWxnLWdyb3ctMXstbXMtZmxleC1wb3NpdGl2ZToxIWltcG9ydGFudDtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmZsZXgtbGctc2hyaW5rLTB7LW1zLWZsZXgtbmVnYXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmZsZXgtbGctc2hyaW5rLTF7LW1zLWZsZXgtbmVnYXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1zdGFydHstbXMtZmxleC1wYWNrOnN0YXJ0IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1lbmR7LW1zLWZsZXgtcGFjazplbmQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC1sZy1jZW50ZXJ7LW1zLWZsZXgtcGFjazpjZW50ZXIhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQtbGctYmV0d2VlbnstbXMtZmxleC1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LWxnLWFyb3VuZHstbXMtZmxleC1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy1sZy1zdGFydHstbXMtZmxleC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLWxnLWVuZHstbXMtZmxleC1hbGlnbjplbmQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctY2VudGVyey1tcy1mbGV4LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctYmFzZWxpbmV7LW1zLWZsZXgtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24taXRlbXMtbGctc3RyZXRjaHstbXMtZmxleC1hbGlnbjpzdHJldGNoIWltcG9ydGFudDthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1sZy1zdGFydHstbXMtZmxleC1saW5lLXBhY2s6c3RhcnQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctZW5key1tcy1mbGV4LWxpbmUtcGFjazplbmQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LWxnLWNlbnRlcnstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyIWltcG9ydGFudDthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQtbGctYmV0d2VlbnstbXMtZmxleC1saW5lLXBhY2s6anVzdGlmeSFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1sZy1hcm91bmR7LW1zLWZsZXgtbGluZS1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC1sZy1zdHJldGNoey1tcy1mbGV4LWxpbmUtcGFjazpzdHJldGNoIWltcG9ydGFudDthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLWF1dG97LW1zLWZsZXgtaXRlbS1hbGlnbjphdXRvIWltcG9ydGFudDthbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5hbGlnbi1zZWxmLWxnLXN0YXJ0ey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLXNlbGYtbGctZW5key1tcy1mbGV4LWl0ZW0tYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1jZW50ZXJ7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1iYXNlbGluZXstbXMtZmxleC1pdGVtLWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24tc2VsZi1sZy1zdHJldGNoey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuZmxleC14bC1yb3d7LW1zLWZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uZmxleC14bC1jb2x1bW57LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uZmxleC14bC1yb3ctcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14bC1jb2x1bW4tcmV2ZXJzZXstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14bC13cmFwey1tcy1mbGV4LXdyYXA6d3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5mbGV4LXhsLW5vd3JhcHstbXMtZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnQ7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmZsZXgteGwtd3JhcC1yZXZlcnNley1tcy1mbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudDtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uZmxleC14bC1maWxsey1tcy1mbGV4OjEgMSBhdXRvIWltcG9ydGFudDtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uZmxleC14bC1ncm93LTB7LW1zLWZsZXgtcG9zaXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5mbGV4LXhsLWdyb3ctMXstbXMtZmxleC1wb3NpdGl2ZToxIWltcG9ydGFudDtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmZsZXgteGwtc2hyaW5rLTB7LW1zLWZsZXgtbmVnYXRpdmU6MCFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmZsZXgteGwtc2hyaW5rLTF7LW1zLWZsZXgtbmVnYXRpdmU6MSFpbXBvcnRhbnQ7ZmxleC1zaHJpbms6MSFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1zdGFydHstbXMtZmxleC1wYWNrOnN0YXJ0IWltcG9ydGFudDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1lbmR7LW1zLWZsZXgtcGFjazplbmQhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9Lmp1c3RpZnktY29udGVudC14bC1jZW50ZXJ7LW1zLWZsZXgtcGFjazpjZW50ZXIhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5qdXN0aWZ5LWNvbnRlbnQteGwtYmV0d2VlbnstbXMtZmxleC1wYWNrOmp1c3RpZnkhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXhsLWFyb3VuZHstbXMtZmxleC1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5hbGlnbi1pdGVtcy14bC1zdGFydHstbXMtZmxleC1hbGlnbjpzdGFydCFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWl0ZW1zLXhsLWVuZHstbXMtZmxleC1hbGlnbjplbmQhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtY2VudGVyey1tcy1mbGV4LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtYmFzZWxpbmV7LW1zLWZsZXgtYWxpZ246YmFzZWxpbmUhaW1wb3J0YW50O2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24taXRlbXMteGwtc3RyZXRjaHstbXMtZmxleC1hbGlnbjpzdHJldGNoIWltcG9ydGFudDthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1zdGFydHstbXMtZmxleC1saW5lLXBhY2s6c3RhcnQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQteGwtZW5key1tcy1mbGV4LWxpbmUtcGFjazplbmQhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5hbGlnbi1jb250ZW50LXhsLWNlbnRlcnstbXMtZmxleC1saW5lLXBhY2s6Y2VudGVyIWltcG9ydGFudDthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmFsaWduLWNvbnRlbnQteGwtYmV0d2VlbnstbXMtZmxleC1saW5lLXBhY2s6anVzdGlmeSFpbXBvcnRhbnQ7YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1hcm91bmR7LW1zLWZsZXgtbGluZS1wYWNrOmRpc3RyaWJ1dGUhaW1wb3J0YW50O2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uYWxpZ24tY29udGVudC14bC1zdHJldGNoey1tcy1mbGV4LWxpbmUtcGFjazpzdHJldGNoIWltcG9ydGFudDthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5hbGlnbi1zZWxmLXhsLWF1dG97LW1zLWZsZXgtaXRlbS1hbGlnbjphdXRvIWltcG9ydGFudDthbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5hbGlnbi1zZWxmLXhsLXN0YXJ0ey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RhcnQhaW1wb3J0YW50O2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmFsaWduLXNlbGYteGwtZW5key1tcy1mbGV4LWl0ZW0tYWxpZ246ZW5kIWltcG9ydGFudDthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1jZW50ZXJ7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXIhaW1wb3J0YW50O2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1iYXNlbGluZXstbXMtZmxleC1pdGVtLWFsaWduOmJhc2VsaW5lIWltcG9ydGFudDthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uYWxpZ24tc2VsZi14bC1zdHJldGNoey1tcy1mbGV4LWl0ZW0tYWxpZ246c3RyZXRjaCFpbXBvcnRhbnQ7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19LmZsb2F0LWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmZsb2F0LXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uZmxvYXQtbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmZsb2F0LXNtLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmZsb2F0LXNtLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uZmxvYXQtc20tbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5mbG9hdC1tZC1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC1tZC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmZsb2F0LW1kLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuZmxvYXQtbGctbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uZmxvYXQtbGctcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5mbG9hdC1sZy1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5mbG9hdC14bC1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5mbG9hdC14bC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmZsb2F0LXhsLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fS5wb3NpdGlvbi1zdGF0aWN7cG9zaXRpb246c3RhdGljIWltcG9ydGFudH0ucG9zaXRpb24tcmVsYXRpdmV7cG9zaXRpb246cmVsYXRpdmUhaW1wb3J0YW50fS5wb3NpdGlvbi1hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnR9LnBvc2l0aW9uLWZpeGVke3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudH0ucG9zaXRpb24tc3RpY2t5e3Bvc2l0aW9uOi13ZWJraXQtc3RpY2t5IWltcG9ydGFudDtwb3NpdGlvbjpzdGlja3khaW1wb3J0YW50fS5maXhlZC10b3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7ei1pbmRleDoxMDMwfS5maXhlZC1ib3R0b217cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDMwfUBzdXBwb3J0cyAoKHBvc2l0aW9uOi13ZWJraXQtc3RpY2t5KSBvciAocG9zaXRpb246c3RpY2t5KSl7LnN0aWNreS10b3B7cG9zaXRpb246LXdlYmtpdC1zdGlja3k7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAyMH19LnNyLW9ubHl7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7d2hpdGUtc3BhY2U6bm93cmFwO2JvcmRlcjowfS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvO2hlaWdodDphdXRvO292ZXJmbG93OnZpc2libGU7Y2xpcDphdXRvO3doaXRlLXNwYWNlOm5vcm1hbH0uc2hhZG93LXNte2JveC1zaGFkb3c6MCAuMTI1cmVtIC4yNXJlbSByZ2JhKDAsMCwwLC4wNzUpIWltcG9ydGFudH0uc2hhZG93e2JveC1zaGFkb3c6MCAuNXJlbSAxcmVtIHJnYmEoMCwwLDAsLjE1KSFpbXBvcnRhbnR9LnNoYWRvdy1sZ3tib3gtc2hhZG93OjAgMXJlbSAzcmVtIHJnYmEoMCwwLDAsLjE3NSkhaW1wb3J0YW50fS5zaGFkb3ctbm9uZXtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fS53LTI1e3dpZHRoOjI1JSFpbXBvcnRhbnR9LnctNTB7d2lkdGg6NTAlIWltcG9ydGFudH0udy03NXt3aWR0aDo3NSUhaW1wb3J0YW50fS53LTEwMHt3aWR0aDoxMDAlIWltcG9ydGFudH0udy1hdXRve3dpZHRoOmF1dG8haW1wb3J0YW50fS5oLTI1e2hlaWdodDoyNSUhaW1wb3J0YW50fS5oLTUwe2hlaWdodDo1MCUhaW1wb3J0YW50fS5oLTc1e2hlaWdodDo3NSUhaW1wb3J0YW50fS5oLTEwMHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnR9LmgtYXV0b3toZWlnaHQ6YXV0byFpbXBvcnRhbnR9Lm13LTEwMHttYXgtd2lkdGg6MTAwJSFpbXBvcnRhbnR9Lm1oLTEwMHttYXgtaGVpZ2h0OjEwMCUhaW1wb3J0YW50fS5tLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tdC0wLC5teS0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm1yLTAsLm14LTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fS5tYi0wLC5teS0we21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm1sLTAsLm14LTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm0tMXttYXJnaW46LjI1cmVtIWltcG9ydGFudH0ubXQtMSwubXktMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnR9Lm1yLTEsLm14LTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1iLTEsLm15LTF7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5tbC0xLC5teC0xe21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm0tMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tdC0yLC5teS0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tci0yLC5teC0ye21hcmdpbi1yaWdodDouNXJlbSFpbXBvcnRhbnR9Lm1iLTIsLm15LTJ7bWFyZ2luLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9Lm1sLTIsLm14LTJ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5tLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tdC0zLC5teS0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm1yLTMsLm14LTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5tYi0zLC5teS0ze21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm1sLTMsLm14LTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm0tNHttYXJnaW46MS41cmVtIWltcG9ydGFudH0ubXQtNCwubXktNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnR9Lm1yLTQsLm14LTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1iLTQsLm15LTR7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5tbC00LC5teC00e21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm0tNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm10LTUsLm15LTV7bWFyZ2luLXRvcDozcmVtIWltcG9ydGFudH0ubXItNSwubXgtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnR9Lm1iLTUsLm15LTV7bWFyZ2luLWJvdHRvbTozcmVtIWltcG9ydGFudH0ubWwtNSwubXgtNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ucC0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnB0LTAsLnB5LTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnByLTAsLnB4LTB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH0ucGItMCwucHktMHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucGwtMCwucHgtMHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9LnAtMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnB0LTEsLnB5LTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHItMSwucHgtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9LnBiLTEsLnB5LTF7cGFkZGluZy1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ucGwtMSwucHgtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucC0ye3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5wdC0yLC5weS0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudH0ucHItMiwucHgtMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGItMiwucHktMntwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnBsLTIsLnB4LTJ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucC0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnB0LTMsLnB5LTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnByLTMsLnB4LTN7cGFkZGluZy1yaWdodDoxcmVtIWltcG9ydGFudH0ucGItMywucHktM3twYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucGwtMywucHgtM3twYWRkaW5nLWxlZnQ6MXJlbSFpbXBvcnRhbnR9LnAtNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnB0LTQsLnB5LTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHItNCwucHgtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9LnBiLTQsLnB5LTR7cGFkZGluZy1ib3R0b206MS41cmVtIWltcG9ydGFudH0ucGwtNCwucHgtNHtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucC01e3BhZGRpbmc6M3JlbSFpbXBvcnRhbnR9LnB0LTUsLnB5LTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnR9LnByLTUsLnB4LTV7cGFkZGluZy1yaWdodDozcmVtIWltcG9ydGFudH0ucGItNSwucHktNXtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucGwtNSwucHgtNXtwYWRkaW5nLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm0tYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm10LWF1dG8sLm15LWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubXItYXV0bywubXgtYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9Lm1iLWF1dG8sLm15LWF1dG97bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubWwtYXV0bywubXgtYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7Lm0tc20tMHttYXJnaW46MCFpbXBvcnRhbnR9Lm10LXNtLTAsLm15LXNtLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXItc20tMCwubXgtc20tMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1iLXNtLTAsLm15LXNtLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWwtc20tMCwubXgtc20tMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubS1zbS0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tdC1zbS0xLC5teS1zbS0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXItc20tMSwubXgtc20tMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWItc20tMSwubXktc20tMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1sLXNtLTEsLm14LXNtLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubS1zbS0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm10LXNtLTIsLm15LXNtLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm1yLXNtLTIsLm14LXNtLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWItc20tMiwubXktc20tMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWwtc20tMiwubXgtc20tMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm0tc20tM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm10LXNtLTMsLm15LXNtLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXItc20tMywubXgtc20tM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1iLXNtLTMsLm15LXNtLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWwtc20tMywubXgtc20tM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubS1zbS00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tdC1zbS00LC5teS1zbS00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXItc20tNCwubXgtc20tNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWItc20tNCwubXktc20tNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1sLXNtLTQsLm14LXNtLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubS1zbS01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubXQtc20tNSwubXktc20tNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tci1zbS01LC5teC1zbS01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWItc20tNSwubXktc20tNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tbC1zbS01LC5teC1zbS01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5wLXNtLTB7cGFkZGluZzowIWltcG9ydGFudH0ucHQtc20tMCwucHktc20tMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHItc20tMCwucHgtc20tMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wYi1zbS0wLC5weS1zbS0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wbC1zbS0wLC5weC1zbS0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucC1zbS0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucHQtc20tMSwucHktc20tMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wci1zbS0xLC5weC1zbS0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGItc20tMSwucHktc20tMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wbC1zbS0xLC5weC1zbS0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wLXNtLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnB0LXNtLTIsLnB5LXNtLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wci1zbS0yLC5weC1zbS0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wYi1zbS0yLC5weS1zbS0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGwtc20tMiwucHgtc20tMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wLXNtLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucHQtc20tMywucHktc20tM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHItc20tMywucHgtc20tM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wYi1zbS0zLC5weS1zbS0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wbC1zbS0zLC5weC1zbS0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucC1zbS00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucHQtc20tNCwucHktc20tNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wci1zbS00LC5weC1zbS00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGItc20tNCwucHktc20tNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wbC1zbS00LC5weC1zbS00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wLXNtLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHQtc20tNSwucHktc20tNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucHItc20tNSwucHgtc20tNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1zbS01LC5weS1zbS01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wbC1zbS01LC5weC1zbS01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ubS1zbS1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXQtc20tYXV0bywubXktc20tYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tci1zbS1hdXRvLC5teC1zbS1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItc20tYXV0bywubXktc20tYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tbC1zbS1hdXRvLC5teC1zbS1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm0tbWQtMHttYXJnaW46MCFpbXBvcnRhbnR9Lm10LW1kLTAsLm15LW1kLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXItbWQtMCwubXgtbWQtMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1iLW1kLTAsLm15LW1kLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWwtbWQtMCwubXgtbWQtMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubS1tZC0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tdC1tZC0xLC5teS1tZC0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXItbWQtMSwubXgtbWQtMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWItbWQtMSwubXktbWQtMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1sLW1kLTEsLm14LW1kLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubS1tZC0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm10LW1kLTIsLm15LW1kLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm1yLW1kLTIsLm14LW1kLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWItbWQtMiwubXktbWQtMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWwtbWQtMiwubXgtbWQtMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm0tbWQtM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm10LW1kLTMsLm15LW1kLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXItbWQtMywubXgtbWQtM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1iLW1kLTMsLm15LW1kLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWwtbWQtMywubXgtbWQtM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubS1tZC00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tdC1tZC00LC5teS1tZC00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXItbWQtNCwubXgtbWQtNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWItbWQtNCwubXktbWQtNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1sLW1kLTQsLm14LW1kLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubS1tZC01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubXQtbWQtNSwubXktbWQtNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tci1tZC01LC5teC1tZC01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWItbWQtNSwubXktbWQtNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tbC1tZC01LC5teC1tZC01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5wLW1kLTB7cGFkZGluZzowIWltcG9ydGFudH0ucHQtbWQtMCwucHktbWQtMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHItbWQtMCwucHgtbWQtMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wYi1tZC0wLC5weS1tZC0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wbC1tZC0wLC5weC1tZC0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucC1tZC0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucHQtbWQtMSwucHktbWQtMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wci1tZC0xLC5weC1tZC0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGItbWQtMSwucHktbWQtMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wbC1tZC0xLC5weC1tZC0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wLW1kLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnB0LW1kLTIsLnB5LW1kLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wci1tZC0yLC5weC1tZC0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wYi1tZC0yLC5weS1tZC0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGwtbWQtMiwucHgtbWQtMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wLW1kLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucHQtbWQtMywucHktbWQtM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHItbWQtMywucHgtbWQtM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wYi1tZC0zLC5weS1tZC0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wbC1tZC0zLC5weC1tZC0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucC1tZC00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucHQtbWQtNCwucHktbWQtNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wci1tZC00LC5weC1tZC00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGItbWQtNCwucHktbWQtNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wbC1tZC00LC5weC1tZC00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wLW1kLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHQtbWQtNSwucHktbWQtNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucHItbWQtNSwucHgtbWQtNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1tZC01LC5weS1tZC01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wbC1tZC01LC5weC1tZC01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ubS1tZC1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXQtbWQtYXV0bywubXktbWQtYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tci1tZC1hdXRvLC5teC1tZC1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItbWQtYXV0bywubXktbWQtYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tbC1tZC1hdXRvLC5teC1tZC1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7Lm0tbGctMHttYXJnaW46MCFpbXBvcnRhbnR9Lm10LWxnLTAsLm15LWxnLTB7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ubXItbGctMCwubXgtbGctMHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnR9Lm1iLWxnLTAsLm15LWxnLTB7bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudH0ubWwtbGctMCwubXgtbGctMHttYXJnaW4tbGVmdDowIWltcG9ydGFudH0ubS1sZy0xe21hcmdpbjouMjVyZW0haW1wb3J0YW50fS5tdC1sZy0xLC5teS1sZy0xe21hcmdpbi10b3A6LjI1cmVtIWltcG9ydGFudH0ubXItbGctMSwubXgtbGctMXttYXJnaW4tcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ubWItbGctMSwubXktbGctMXttYXJnaW4tYm90dG9tOi4yNXJlbSFpbXBvcnRhbnR9Lm1sLWxnLTEsLm14LWxnLTF7bWFyZ2luLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ubS1sZy0ye21hcmdpbjouNXJlbSFpbXBvcnRhbnR9Lm10LWxnLTIsLm15LWxnLTJ7bWFyZ2luLXRvcDouNXJlbSFpbXBvcnRhbnR9Lm1yLWxnLTIsLm14LWxnLTJ7bWFyZ2luLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ubWItbGctMiwubXktbGctMnttYXJnaW4tYm90dG9tOi41cmVtIWltcG9ydGFudH0ubWwtbGctMiwubXgtbGctMnttYXJnaW4tbGVmdDouNXJlbSFpbXBvcnRhbnR9Lm0tbGctM3ttYXJnaW46MXJlbSFpbXBvcnRhbnR9Lm10LWxnLTMsLm15LWxnLTN7bWFyZ2luLXRvcDoxcmVtIWltcG9ydGFudH0ubXItbGctMywubXgtbGctM3ttYXJnaW4tcmlnaHQ6MXJlbSFpbXBvcnRhbnR9Lm1iLWxnLTMsLm15LWxnLTN7bWFyZ2luLWJvdHRvbToxcmVtIWltcG9ydGFudH0ubWwtbGctMywubXgtbGctM3ttYXJnaW4tbGVmdDoxcmVtIWltcG9ydGFudH0ubS1sZy00e21hcmdpbjoxLjVyZW0haW1wb3J0YW50fS5tdC1sZy00LC5teS1sZy00e21hcmdpbi10b3A6MS41cmVtIWltcG9ydGFudH0ubXItbGctNCwubXgtbGctNHttYXJnaW4tcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ubWItbGctNCwubXktbGctNHttYXJnaW4tYm90dG9tOjEuNXJlbSFpbXBvcnRhbnR9Lm1sLWxnLTQsLm14LWxnLTR7bWFyZ2luLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ubS1sZy01e21hcmdpbjozcmVtIWltcG9ydGFudH0ubXQtbGctNSwubXktbGctNXttYXJnaW4tdG9wOjNyZW0haW1wb3J0YW50fS5tci1sZy01LC5teC1sZy01e21hcmdpbi1yaWdodDozcmVtIWltcG9ydGFudH0ubWItbGctNSwubXktbGctNXttYXJnaW4tYm90dG9tOjNyZW0haW1wb3J0YW50fS5tbC1sZy01LC5teC1sZy01e21hcmdpbi1sZWZ0OjNyZW0haW1wb3J0YW50fS5wLWxnLTB7cGFkZGluZzowIWltcG9ydGFudH0ucHQtbGctMCwucHktbGctMHtwYWRkaW5nLXRvcDowIWltcG9ydGFudH0ucHItbGctMCwucHgtbGctMHtwYWRkaW5nLXJpZ2h0OjAhaW1wb3J0YW50fS5wYi1sZy0wLC5weS1sZy0we3BhZGRpbmctYm90dG9tOjAhaW1wb3J0YW50fS5wbC1sZy0wLC5weC1sZy0we3BhZGRpbmctbGVmdDowIWltcG9ydGFudH0ucC1sZy0xe3BhZGRpbmc6LjI1cmVtIWltcG9ydGFudH0ucHQtbGctMSwucHktbGctMXtwYWRkaW5nLXRvcDouMjVyZW0haW1wb3J0YW50fS5wci1sZy0xLC5weC1sZy0xe3BhZGRpbmctcmlnaHQ6LjI1cmVtIWltcG9ydGFudH0ucGItbGctMSwucHktbGctMXtwYWRkaW5nLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5wbC1sZy0xLC5weC1sZy0xe3BhZGRpbmctbGVmdDouMjVyZW0haW1wb3J0YW50fS5wLWxnLTJ7cGFkZGluZzouNXJlbSFpbXBvcnRhbnR9LnB0LWxnLTIsLnB5LWxnLTJ7cGFkZGluZy10b3A6LjVyZW0haW1wb3J0YW50fS5wci1sZy0yLC5weC1sZy0ye3BhZGRpbmctcmlnaHQ6LjVyZW0haW1wb3J0YW50fS5wYi1sZy0yLC5weS1sZy0ye3BhZGRpbmctYm90dG9tOi41cmVtIWltcG9ydGFudH0ucGwtbGctMiwucHgtbGctMntwYWRkaW5nLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5wLWxnLTN7cGFkZGluZzoxcmVtIWltcG9ydGFudH0ucHQtbGctMywucHktbGctM3twYWRkaW5nLXRvcDoxcmVtIWltcG9ydGFudH0ucHItbGctMywucHgtbGctM3twYWRkaW5nLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5wYi1sZy0zLC5weS1sZy0ze3BhZGRpbmctYm90dG9tOjFyZW0haW1wb3J0YW50fS5wbC1sZy0zLC5weC1sZy0ze3BhZGRpbmctbGVmdDoxcmVtIWltcG9ydGFudH0ucC1sZy00e3BhZGRpbmc6MS41cmVtIWltcG9ydGFudH0ucHQtbGctNCwucHktbGctNHtwYWRkaW5nLXRvcDoxLjVyZW0haW1wb3J0YW50fS5wci1sZy00LC5weC1sZy00e3BhZGRpbmctcmlnaHQ6MS41cmVtIWltcG9ydGFudH0ucGItbGctNCwucHktbGctNHtwYWRkaW5nLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5wbC1sZy00LC5weC1sZy00e3BhZGRpbmctbGVmdDoxLjVyZW0haW1wb3J0YW50fS5wLWxnLTV7cGFkZGluZzozcmVtIWltcG9ydGFudH0ucHQtbGctNSwucHktbGctNXtwYWRkaW5nLXRvcDozcmVtIWltcG9ydGFudH0ucHItbGctNSwucHgtbGctNXtwYWRkaW5nLXJpZ2h0OjNyZW0haW1wb3J0YW50fS5wYi1sZy01LC5weS1sZy01e3BhZGRpbmctYm90dG9tOjNyZW0haW1wb3J0YW50fS5wbC1sZy01LC5weC1sZy01e3BhZGRpbmctbGVmdDozcmVtIWltcG9ydGFudH0ubS1sZy1hdXRve21hcmdpbjphdXRvIWltcG9ydGFudH0ubXQtbGctYXV0bywubXktbGctYXV0b3ttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fS5tci1sZy1hdXRvLC5teC1sZy1hdXRve21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH0ubWItbGctYXV0bywubXktbGctYXV0b3ttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fS5tbC1sZy1hdXRvLC5teC1sZy1hdXRve21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5tLXhsLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tdC14bC0wLC5teS14bC0we21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm1yLXhsLTAsLm14LXhsLTB7bWFyZ2luLXJpZ2h0OjAhaW1wb3J0YW50fS5tYi14bC0wLC5teS14bC0we21hcmdpbi1ib3R0b206MCFpbXBvcnRhbnR9Lm1sLXhsLTAsLm14LXhsLTB7bWFyZ2luLWxlZnQ6MCFpbXBvcnRhbnR9Lm0teGwtMXttYXJnaW46LjI1cmVtIWltcG9ydGFudH0ubXQteGwtMSwubXkteGwtMXttYXJnaW4tdG9wOi4yNXJlbSFpbXBvcnRhbnR9Lm1yLXhsLTEsLm14LXhsLTF7bWFyZ2luLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTEsLm15LXhsLTF7bWFyZ2luLWJvdHRvbTouMjVyZW0haW1wb3J0YW50fS5tbC14bC0xLC5teC14bC0xe21hcmdpbi1sZWZ0Oi4yNXJlbSFpbXBvcnRhbnR9Lm0teGwtMnttYXJnaW46LjVyZW0haW1wb3J0YW50fS5tdC14bC0yLC5teS14bC0ye21hcmdpbi10b3A6LjVyZW0haW1wb3J0YW50fS5tci14bC0yLC5teC14bC0ye21hcmdpbi1yaWdodDouNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTIsLm15LXhsLTJ7bWFyZ2luLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9Lm1sLXhsLTIsLm14LXhsLTJ7bWFyZ2luLWxlZnQ6LjVyZW0haW1wb3J0YW50fS5tLXhsLTN7bWFyZ2luOjFyZW0haW1wb3J0YW50fS5tdC14bC0zLC5teS14bC0ze21hcmdpbi10b3A6MXJlbSFpbXBvcnRhbnR9Lm1yLXhsLTMsLm14LXhsLTN7bWFyZ2luLXJpZ2h0OjFyZW0haW1wb3J0YW50fS5tYi14bC0zLC5teS14bC0ze21hcmdpbi1ib3R0b206MXJlbSFpbXBvcnRhbnR9Lm1sLXhsLTMsLm14LXhsLTN7bWFyZ2luLWxlZnQ6MXJlbSFpbXBvcnRhbnR9Lm0teGwtNHttYXJnaW46MS41cmVtIWltcG9ydGFudH0ubXQteGwtNCwubXkteGwtNHttYXJnaW4tdG9wOjEuNXJlbSFpbXBvcnRhbnR9Lm1yLXhsLTQsLm14LXhsLTR7bWFyZ2luLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9Lm1iLXhsLTQsLm15LXhsLTR7bWFyZ2luLWJvdHRvbToxLjVyZW0haW1wb3J0YW50fS5tbC14bC00LC5teC14bC00e21hcmdpbi1sZWZ0OjEuNXJlbSFpbXBvcnRhbnR9Lm0teGwtNXttYXJnaW46M3JlbSFpbXBvcnRhbnR9Lm10LXhsLTUsLm15LXhsLTV7bWFyZ2luLXRvcDozcmVtIWltcG9ydGFudH0ubXIteGwtNSwubXgteGwtNXttYXJnaW4tcmlnaHQ6M3JlbSFpbXBvcnRhbnR9Lm1iLXhsLTUsLm15LXhsLTV7bWFyZ2luLWJvdHRvbTozcmVtIWltcG9ydGFudH0ubWwteGwtNSwubXgteGwtNXttYXJnaW4tbGVmdDozcmVtIWltcG9ydGFudH0ucC14bC0we3BhZGRpbmc6MCFpbXBvcnRhbnR9LnB0LXhsLTAsLnB5LXhsLTB7cGFkZGluZy10b3A6MCFpbXBvcnRhbnR9LnByLXhsLTAsLnB4LXhsLTB7cGFkZGluZy1yaWdodDowIWltcG9ydGFudH0ucGIteGwtMCwucHkteGwtMHtwYWRkaW5nLWJvdHRvbTowIWltcG9ydGFudH0ucGwteGwtMCwucHgteGwtMHtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnR9LnAteGwtMXtwYWRkaW5nOi4yNXJlbSFpbXBvcnRhbnR9LnB0LXhsLTEsLnB5LXhsLTF7cGFkZGluZy10b3A6LjI1cmVtIWltcG9ydGFudH0ucHIteGwtMSwucHgteGwtMXtwYWRkaW5nLXJpZ2h0Oi4yNXJlbSFpbXBvcnRhbnR9LnBiLXhsLTEsLnB5LXhsLTF7cGFkZGluZy1ib3R0b206LjI1cmVtIWltcG9ydGFudH0ucGwteGwtMSwucHgteGwtMXtwYWRkaW5nLWxlZnQ6LjI1cmVtIWltcG9ydGFudH0ucC14bC0ye3BhZGRpbmc6LjVyZW0haW1wb3J0YW50fS5wdC14bC0yLC5weS14bC0ye3BhZGRpbmctdG9wOi41cmVtIWltcG9ydGFudH0ucHIteGwtMiwucHgteGwtMntwYWRkaW5nLXJpZ2h0Oi41cmVtIWltcG9ydGFudH0ucGIteGwtMiwucHkteGwtMntwYWRkaW5nLWJvdHRvbTouNXJlbSFpbXBvcnRhbnR9LnBsLXhsLTIsLnB4LXhsLTJ7cGFkZGluZy1sZWZ0Oi41cmVtIWltcG9ydGFudH0ucC14bC0ze3BhZGRpbmc6MXJlbSFpbXBvcnRhbnR9LnB0LXhsLTMsLnB5LXhsLTN7cGFkZGluZy10b3A6MXJlbSFpbXBvcnRhbnR9LnByLXhsLTMsLnB4LXhsLTN7cGFkZGluZy1yaWdodDoxcmVtIWltcG9ydGFudH0ucGIteGwtMywucHkteGwtM3twYWRkaW5nLWJvdHRvbToxcmVtIWltcG9ydGFudH0ucGwteGwtMywucHgteGwtM3twYWRkaW5nLWxlZnQ6MXJlbSFpbXBvcnRhbnR9LnAteGwtNHtwYWRkaW5nOjEuNXJlbSFpbXBvcnRhbnR9LnB0LXhsLTQsLnB5LXhsLTR7cGFkZGluZy10b3A6MS41cmVtIWltcG9ydGFudH0ucHIteGwtNCwucHgteGwtNHtwYWRkaW5nLXJpZ2h0OjEuNXJlbSFpbXBvcnRhbnR9LnBiLXhsLTQsLnB5LXhsLTR7cGFkZGluZy1ib3R0b206MS41cmVtIWltcG9ydGFudH0ucGwteGwtNCwucHgteGwtNHtwYWRkaW5nLWxlZnQ6MS41cmVtIWltcG9ydGFudH0ucC14bC01e3BhZGRpbmc6M3JlbSFpbXBvcnRhbnR9LnB0LXhsLTUsLnB5LXhsLTV7cGFkZGluZy10b3A6M3JlbSFpbXBvcnRhbnR9LnByLXhsLTUsLnB4LXhsLTV7cGFkZGluZy1yaWdodDozcmVtIWltcG9ydGFudH0ucGIteGwtNSwucHkteGwtNXtwYWRkaW5nLWJvdHRvbTozcmVtIWltcG9ydGFudH0ucGwteGwtNSwucHgteGwtNXtwYWRkaW5nLWxlZnQ6M3JlbSFpbXBvcnRhbnR9Lm0teGwtYXV0b3ttYXJnaW46YXV0byFpbXBvcnRhbnR9Lm10LXhsLWF1dG8sLm15LXhsLWF1dG97bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH0ubXIteGwtYXV0bywubXgteGwtYXV0b3ttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9Lm1iLXhsLWF1dG8sLm15LXhsLWF1dG97bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH0ubWwteGwtYXV0bywubXgteGwtYXV0b3ttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH19LnRleHQtbW9ub3NwYWNle2ZvbnQtZmFtaWx5OlNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcywiTGliZXJhdGlvbiBNb25vIiwiQ291cmllciBOZXciLG1vbm9zcGFjZX0udGV4dC1qdXN0aWZ5e3RleHQtYWxpZ246anVzdGlmeSFpbXBvcnRhbnR9LnRleHQtbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcCFpbXBvcnRhbnR9LnRleHQtdHJ1bmNhdGV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS50ZXh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsudGV4dC1zbS1sZWZ0e3RleHQtYWxpZ246bGVmdCFpbXBvcnRhbnR9LnRleHQtc20tcmlnaHR7dGV4dC1hbGlnbjpyaWdodCFpbXBvcnRhbnR9LnRleHQtc20tY2VudGVye3RleHQtYWxpZ246Y2VudGVyIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey50ZXh0LW1kLWxlZnR7dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH0udGV4dC1tZC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1tZC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LnRleHQtbGctbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LWxnLXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS50ZXh0LWxnLWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LnRleHQteGwtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50fS50ZXh0LXhsLXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50fS50ZXh0LXhsLWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnR9fS50ZXh0LWxvd2VyY2FzZXt0ZXh0LXRyYW5zZm9ybTpsb3dlcmNhc2UhaW1wb3J0YW50fS50ZXh0LXVwcGVyY2FzZXt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UhaW1wb3J0YW50fS50ZXh0LWNhcGl0YWxpemV7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZSFpbXBvcnRhbnR9LmZvbnQtd2VpZ2h0LWxpZ2h0e2ZvbnQtd2VpZ2h0OjMwMCFpbXBvcnRhbnR9LmZvbnQtd2VpZ2h0LW5vcm1hbHtmb250LXdlaWdodDo0MDAhaW1wb3J0YW50fS5mb250LXdlaWdodC1ib2xke2ZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnR9LmZvbnQtaXRhbGlje2ZvbnQtc3R5bGU6aXRhbGljIWltcG9ydGFudH0udGV4dC13aGl0ZXtjb2xvcjojZmZmIWltcG9ydGFudH0udGV4dC1wcmltYXJ5e2NvbG9yOiMwMDdiZmYhaW1wb3J0YW50fWEudGV4dC1wcmltYXJ5OmZvY3VzLGEudGV4dC1wcmltYXJ5OmhvdmVye2NvbG9yOiMwMDYyY2MhaW1wb3J0YW50fS50ZXh0LXNlY29uZGFyeXtjb2xvcjojNmM3NTdkIWltcG9ydGFudH1hLnRleHQtc2Vjb25kYXJ5OmZvY3VzLGEudGV4dC1zZWNvbmRhcnk6aG92ZXJ7Y29sb3I6IzU0NWI2MiFpbXBvcnRhbnR9LnRleHQtc3VjY2Vzc3tjb2xvcjojMjhhNzQ1IWltcG9ydGFudH1hLnRleHQtc3VjY2Vzczpmb2N1cyxhLnRleHQtc3VjY2Vzczpob3Zlcntjb2xvcjojMWU3ZTM0IWltcG9ydGFudH0udGV4dC1pbmZve2NvbG9yOiMxN2EyYjghaW1wb3J0YW50fWEudGV4dC1pbmZvOmZvY3VzLGEudGV4dC1pbmZvOmhvdmVye2NvbG9yOiMxMTdhOGIhaW1wb3J0YW50fS50ZXh0LXdhcm5pbmd7Y29sb3I6I2ZmYzEwNyFpbXBvcnRhbnR9YS50ZXh0LXdhcm5pbmc6Zm9jdXMsYS50ZXh0LXdhcm5pbmc6aG92ZXJ7Y29sb3I6I2QzOWUwMCFpbXBvcnRhbnR9LnRleHQtZGFuZ2Vye2NvbG9yOiNkYzM1NDUhaW1wb3J0YW50fWEudGV4dC1kYW5nZXI6Zm9jdXMsYS50ZXh0LWRhbmdlcjpob3Zlcntjb2xvcjojYmQyMTMwIWltcG9ydGFudH0udGV4dC1saWdodHtjb2xvcjojZjhmOWZhIWltcG9ydGFudH1hLnRleHQtbGlnaHQ6Zm9jdXMsYS50ZXh0LWxpZ2h0OmhvdmVye2NvbG9yOiNkYWUwZTUhaW1wb3J0YW50fS50ZXh0LWRhcmt7Y29sb3I6IzM0M2E0MCFpbXBvcnRhbnR9YS50ZXh0LWRhcms6Zm9jdXMsYS50ZXh0LWRhcms6aG92ZXJ7Y29sb3I6IzFkMjEyNCFpbXBvcnRhbnR9LnRleHQtYm9keXtjb2xvcjojMjEyNTI5IWltcG9ydGFudH0udGV4dC1tdXRlZHtjb2xvcjojNmM3NTdkIWltcG9ydGFudH0udGV4dC1ibGFjay01MHtjb2xvcjpyZ2JhKDAsMCwwLC41KSFpbXBvcnRhbnR9LnRleHQtd2hpdGUtNTB7Y29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuNSkhaW1wb3J0YW50fS50ZXh0LWhpZGV7Zm9udDowLzAgYTtjb2xvcjp0cmFuc3BhcmVudDt0ZXh0LXNoYWRvdzpub25lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjB9LnZpc2libGV7dmlzaWJpbGl0eTp2aXNpYmxlIWltcG9ydGFudH0uaW52aXNpYmxle3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7Kiw6OmFmdGVyLDo6YmVmb3Jle3RleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9YTpub3QoLmJ0bil7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1hYmJyW3RpdGxlXTo6YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIodGl0bGUpICIpIn1wcmV7d2hpdGUtc3BhY2U6cHJlLXdyYXAhaW1wb3J0YW50fWJsb2NrcXVvdGUscHJle2JvcmRlcjoxcHggc29saWQgI2FkYjViZDtwYWdlLWJyZWFrLWluc2lkZTphdm9pZH10aGVhZHtkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cH1pbWcsdHJ7cGFnZS1icmVhay1pbnNpZGU6YXZvaWR9aDIsaDMscHtvcnBoYW5zOjM7d2lkb3dzOjN9aDIsaDN7cGFnZS1icmVhay1hZnRlcjphdm9pZH1AcGFnZXtzaXplOmEzfWJvZHl7bWluLXdpZHRoOjk5MnB4IWltcG9ydGFudH0uY29udGFpbmVye21pbi13aWR0aDo5OTJweCFpbXBvcnRhbnR9Lm5hdmJhcntkaXNwbGF5Om5vbmV9LmJhZGdle2JvcmRlcjoxcHggc29saWQgIzAwMH0udGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIWltcG9ydGFudH0udGFibGUgdGQsLnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9LnRhYmxlLWJvcmRlcmVkIHRkLC50YWJsZS1ib3JkZXJlZCB0aHtib3JkZXI6MXB4IHNvbGlkICNkZWUyZTYhaW1wb3J0YW50fS50YWJsZS1kYXJre2NvbG9yOmluaGVyaXR9LnRhYmxlLWRhcmsgdGJvZHkrdGJvZHksLnRhYmxlLWRhcmsgdGQsLnRhYmxlLWRhcmsgdGgsLnRhYmxlLWRhcmsgdGhlYWQgdGh7Ym9yZGVyLWNvbG9yOiNkZWUyZTZ9LnRhYmxlIC50aGVhZC1kYXJrIHRoe2NvbG9yOmluaGVyaXQ7Ym9yZGVyLWNvbG9yOiNkZWUyZTZ9fQovKiMgc291cmNlTWFwcGluZ1VSTD1ib290c3RyYXAubWluLmNzcy5tYXAgKi8="}},"time_used":23,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/style.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.477Z","timestamp":1785129412477,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/style.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 29794\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":255818,"size_decoded":30104,"mime_type":"text/css","magic":"ASCII text","md5":"ef5519274cd38d539064d2fe3770a18b","sha1":"54a9c75dfe96a20275f43f5ca2832bffafeb4052","sha256":"956b167b0bb07234e9f96afe2a501e6f09aabba5c1d7e81fc038b8c0e195ed6f","sha512":"9fb5c560071be8c7a3ef747a984168b17aa6702bb9d459425049066b1d246b77c99f44b9224cd116224d20bd6f2afdf38e0da35f080f6512941090a84b1e566e","ssdeep":"1536:ZF2XjOPMnGOfLcVq1XlcQpmvRH8BU7R+c1Ey8RuhVZ2HQM2XjYd2XjM2Xj2V/04U:ZGGMc4WWkt","tlshash":"1a44646255213408a21bd35cbbc57a992e3d9093ed3f0e5eb2567a2dc7823d91133f8e","first_seen":"2026-03-11T03:38:22.226869Z","last_seen":"2026-07-27T10:24:20.318208Z","times_seen":9,"resource_available":false,"data":"LyogU29sdmEgSFRNTCBUZW1wbGF0ZSovCgovKioqKioqKioqKioqIFRBQkxFIE9GIENPTlRFTlRTICoqKioqKioqKioqKioqKgoxLiBGb250cwoyLiBSZXNldAozLiBHbG9iYWwKNC4gTWFpbiBIZWFkZXIgLyBTdHlsZSBUd28gLyBTdHlsZSBUaHJlZQo1LiBNYWluIFNsaWRlcgo2LiBXZWxjb21lIFNlY3Rpb24KNy4gU2VydmljZXMgU2VjdGlvbgo4LiBDYWxsIFRvIEFjdGlvbiBTZWN0aW9uCjkuIFByb2plY3RzIFNlY3Rpb24KMTAuIENhbGwgVG8gQWN0aW9uIFNlY3Rpb24gVHdvCjExLiBFeHBlcnQgU2VjdGlvbgoxMi4gQ2xpZW50cyBTZWN0aW9uCjEzLiBUd28gRnVsbHdpZHRoIENvbHVtbiBTZWN0aW9uCjE0LiBDbGllbnRzIFNlY3Rpb24gLyBTdHlsZSBUd28KMTUuIE1haW4gRm9vdGVyIC8gU3R5bGUgVHdvIC8gU3R5bGUgVGhyZWUKMTYuIEluZHVzdHJpYWwgU2VjdGlvbgoxNy4gQ2hvb3NlIFNlY3Rpb24KMTguIFByb2Nlc3MgU2VjdGlvbgoxOS4gRnVsbFdpZHRoIFByb2Nlc3MgU2VjdGlvbgoyMC4gRmFxIFNlY3Rpb24KMjEuIFRlc3RpbW9uaWFsIFNlY3Rpb24KMjIuIEJsb2dzIFNlY3Rpb24KMjMuIE5ld3NMZXR0ZXIgU2VjdGlvbiAvIFN0eWxlIFR3bwoyNC4gRmVhdHVyZSBTZWN0aW9uCjI1LiBDb3VudGVyIFNlY3Rpb24KMjYuIFByaWNpbmcgU2VjdGlvbgoyNy4gQ29udGFjdCBGb3JtIFNlY3Rpb24KMjguIFBhZ2UgVGl0bGUKMjkuIENvbW1pbmcgU29vbiBTZWN0aW9uCjMwLiBTZXJ2aWNlcyBTaW5nbGUgU2VjdGlvbgozMS4gUHJvamVjdCBEZXRhaWwgU2VjdGlvbgozMi4gU2hvcCBJdGVtcwozMy4gU2hvcGluZyBDYXJ0IFNlY3Rpb24KMzQuIENoZWNrb3V0IFNlY3Rpb24KMzUuIFNob3AgRGV0YWlsIFNlY3Rpb24KMzYuIE91ciBCbG9ncyBTZWN0aW9uCjM3LiBCbG9nIERldGFpbCBTZWN0aW9uCjM4LiBTaWRlYmFyIFdpZGdldHMKMzkuIENvbnRhY3QgSW5mbyBTZWN0aW9uCjQwLiBNYXAgU2VjdGlvbgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCkBpbXBvcnQgdXJsKCcuLi9leHRlcm5hbGU5MmFlOTJhZTkyYS5odG1sP2xpbms9aHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PUhpbmQrU2lsaWd1cmk6NDAwLDUwMCw2MDAsNzAwfFBvcHBpbnM6MzAwLDQwMCw1MDAsNjAwLDcwMCw4MDAsOTAwJmFtcDtkaXNwbGF5PXN3YXAnKTsKCi8qIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7CmZvbnQtZmFtaWx5OiAnSGluZCBTaWxpZ3VyaScsIHNhbnMtc2VyaWY7ICovCgpAaW1wb3J0IHVybCgnZm9udC1hd2Vzb21lLmNzcycpOwpAaW1wb3J0IHVybCgnZmxhdGljb24uY3NzJyk7CkBpbXBvcnQgdXJsKCdhbmltYXRlLmNzcycpOwpAaW1wb3J0IHVybCgnb3dsLmNzcycpOwpAaW1wb3J0IHVybCgnanF1ZXJ5LXVpLmNzcycpOwpAaW1wb3J0IHVybCgnY3VzdG9tLWFuaW1hdGUuY3NzJyk7CkBpbXBvcnQgdXJsKCdqcXVlcnkuZmFuY3lib3gubWluLmNzcycpOwpAaW1wb3J0IHVybCgnanF1ZXJ5LmJvb3RzdHJhcC10b3VjaHNwaW4uY3NzJyk7CkBpbXBvcnQgdXJsKCdqcXVlcnkubUN1c3RvbVNjcm9sbGJhci5taW4uY3NzJyk7CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVJlc2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogKioqLwogCiogewoJbWFyZ2luOjBweDsKCXBhZGRpbmc6MHB4OwoJYm9yZGVyOm5vbmU7CglvdXRsaW5lOm5vbmU7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJR2xvYmFsIFNldHRpbmdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogKioqLwoKYm9keSB7Cglmb250LWZhbWlseTogJ0hpbmQgU2lsaWd1cmknLCBzYW5zLXNlcmlmOwoJZm9udC1zaXplOjE0cHg7Cgljb2xvcjojNzc3Nzc3OwoJbGluZS1oZWlnaHQ6MS43ZW07Cglmb250LXdlaWdodDo0MDA7CgliYWNrZ3JvdW5kOiNmZmZmZmY7Cgktd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKCS1tb3otZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOwp9CgouYm9yZGVyZWQtbGF5b3V0IC5wYWdlLXdyYXBwZXJ7CglwYWRkaW5nOjBweCA1MHB4IDBweDsKfQoKYXsKCXRleHQtZGVjb3JhdGlvbjpub25lOwoJY3Vyc29yOnBvaW50ZXI7Cgljb2xvcjojYzIyYTJhOwp9CgpidXR0b257CgljdXJzb3I6cG9pbnRlcjsKCXRleHQtZGVjb3JhdGlvbjpub25lOwoJb3V0bGluZTpub25lICFpbXBvcnRhbnQ7Cn0KCmE6aG92ZXIsYTpmb2N1cyxhOnZpc2l0ZWR7Cgl0ZXh0LWRlY29yYXRpb246bm9uZTsKCW91dGxpbmU6bm9uZSAhaW1wb3J0YW50Owp9CgpoMSxoMixoMyxoNCxoNSxoNiB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtd2VpZ2h0Om5vcm1hbDsKCW1hcmdpbjowcHg7CgliYWNrZ3JvdW5kOm5vbmU7CglsaW5lLWhlaWdodDoxLjZlbTsKCWZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7Cn0KCmlucHV0LGJ1dHRvbixzZWxlY3QsdGV4dGFyZWF7CgkKfQoKdGV4dGFyZWF7CglvdmVyZmxvdzpoaWRkZW47Cn0KCnB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWxpbmUtaGVpZ2h0OjEuOGVtOwkKfQoKLmF1dG8tY29udGFpbmVyewoJcG9zaXRpb246c3RhdGljOwoJbWF4LXdpZHRoOjEyMDBweDsKCXBhZGRpbmc6MHB4IDE1cHg7CgltYXJnaW46MCBhdXRvOwp9CgoubWVkaXVtLWNvbnRhaW5lcnsKCW1heC13aWR0aDo4NTBweDsKfQoKLnBhZ2Utd3JhcHBlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luOjAgYXV0bzsKCXdpZHRoOjEwMCU7CgltaW4td2lkdGg6MzAwcHg7Cn0KCnVsLGxpewoJbGlzdC1zdHlsZTpub25lOwoJcGFkZGluZzowcHg7CgltYXJnaW46MHB4OwkKfQoKaW1newoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgltYXgtd2lkdGg6MTAwJTsKfQoKLnRoZW1lLWJ0bnsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5jZW50ZXJlZHsKCXRleHQtYWxpZ246Y2VudGVyOwkKfQoKLyogVHlwb2dyYXBoeSAqLwoKaDF7Cglmb250LXNpemU6NjBweDsKfQoKaDJ7Cglmb250LXNpemU6MzZweDsKfQoKaDN7Cglmb250LXNpemU6MjhweDsKfQoKaDR7Cglmb250LXNpemU6MjBweDsKfQoKaDV7Cglmb250LXNpemU6MjBweDsKfQoKaDZ7Cglmb250LXNpemU6MThweDsKfQoKLyogTGlzdCBTdHlsZSBPbmUgKi8KCi5saXN0LXN0eWxlLW9uZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubGlzdC1zdHlsZS1vbmUgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCW1hcmdpbi1ib3R0b206MTVweDsKCXBhZGRpbmctbGVmdDozNXB4OwoJbGluZS1oZWlnaHQ6IDEuOGVtOwp9CgoubGlzdC1zdHlsZS1vbmUgbGkgLmljb257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWNvbG9yOiMwMGFlZWY7Cglmb250LXNpemU6MjBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9CgovKiBMaXN0IFN0eWxlIFRocmVlICovCgoubGlzdC1zdHlsZS10aHJlZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubGlzdC1zdHlsZS10aHJlZSBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NjAwOwoJbWFyZ2luLWJvdHRvbToxMHB4OwoJcGFkZGluZy1sZWZ0OjMwcHg7CglsaW5lLWhlaWdodDogMS42ZW07Cn0KCi5saXN0LXN0eWxlLXRocmVlIGxpOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonXGYwMGMnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJZm9udC13ZWlnaHQ6NDAwOwoJY29sb3I6IzAwYWVlZjsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7Cn0KCi8qIExpc3QgU3R5bGUgVHdvICovCgoubGlzdC1zdHlsZS10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmxpc3Qtc3R5bGUtdHdvIGxpewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7Cglmb250LXdlaWdodDo0MDA7CgltYXJnaW4tYm90dG9tOjE1cHg7CglwYWRkaW5nLWxlZnQ6ODBweDsKCWxpbmUtaGVpZ2h0OiAxLjhlbTsKfQoKLmxpc3Qtc3R5bGUtdHdvIGxpIHN0cm9uZ3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NzAwOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToyNHB4OwoJZGlzcGxheTpibG9jazsKCW1hcmdpbi1ib3R0b206M3B4Owp9CgoubGlzdC1zdHlsZS10d28gbGkgLmljb257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjUwcHg7CgloZWlnaHQ6NTBweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MjBweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJbGluZS1oZWlnaHQ6NTBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjRDE2NDFBKSwgY29sb3Itc3RvcCgxMDAsICMwMGFlZWYpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7Cn0KCi5saXN0LXN0eWxlLXR3by5zdHlsZS10d28gbGkgc3Ryb25newoJY29sb3I6IzAwMDAwMDsKfQoKLmxpc3Qtc3R5bGUtdHdvLnN0eWxlLXR3byBsaXsKCWNvbG9yOiM2NjY2NjY7Cn0KCi8qQnRuIFN0eWxlIE9uZSovCgouYnRuLXN0eWxlLW9uZXsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCWZvbnQtc2l6ZTogMTZweDsKCWxpbmUtaGVpZ2h0OiAzMHB4OwoJY29sb3I6ICNmZmZmZmY7Cglmb250LXdlaWdodDogNjAwOwoJb3ZlcmZsb3c6IGhpZGRlbjsKCWJhY2tncm91bmQ6bm9uZTsKCWJvcmRlci1yYWRpdXM6MHB4OwoJcGFkZGluZzogMTVweCA0NHB4IDE1cHg7Cgl0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjMDBhZWVmIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDBhZWVmIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgIzAwYWVlZiksIGNvbG9yLXN0b3AoMTAwLCAjMjQyMzM0KSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMwMGFlZWYgMCUsICMyNDIzMzQgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDBhZWVmIDAlLCAjMjQyMzM0IDEwMCUpOwoJZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZjsKfQoKLmJ0bi1zdHlsZS1vbmU6YmVmb3JlewoJcG9zaXRpb246IGFic29sdXRlOwoJY29udGVudDogJyc7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB6LWluZGV4OiAxOwogICAgb3BhY2l0eTogMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCAjRDE2NDFBKSwgY29sb3Itc3RvcCgxMDAsICMwMGFlZWYpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7Cn0KCi5idG4tc3R5bGUtb25lIC50eHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXotaW5kZXg6MTsKfQoKLmJ0bi1zdHlsZS1vbmU6aG92ZXI6OmJlZm9yZXsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwp9CgouYnRuLXN0eWxlLW9uZTpob3ZlcnsKCWNvbG9yOiAjZmZmZmZmOwp9CgovKiBCdG4gU3R5bGUgVHdvICovCgouYnRuLXN0eWxlLXR3b3sKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCWZvbnQtc2l6ZTogMTZweDsKCWxpbmUtaGVpZ2h0OiAzMHB4OwoJY29sb3I6ICNmZmZmZmY7CglwYWRkaW5nOiAxMHB4IDMycHggMTBweDsKCWZvbnQtd2VpZ2h0OiA0MDA7CglvdmVyZmxvdzogaGlkZGVuOwoJYmFja2dyb3VuZDpub25lOwoJbGV0dGVyLXNwYWNpbmc6MXB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKCWJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsKCQp9CgouYnRuLXN0eWxlLXR3bzpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgljb250ZW50OiAnJzsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHotaW5kZXg6IDE7CiAgICBvcGFjaXR5OiAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogI2MyMmEyYTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwp9CgouYnRuLXN0eWxlLXR3byAudHh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl6LWluZGV4OjE7Cn0KCi5idG4tc3R5bGUtdHdvOmhvdmVyOjpiZWZvcmV7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKfQoKLmJ0bi1zdHlsZS10d286aG92ZXJ7Cgljb2xvcjogI2ZmZmZmZjsKCWJvcmRlci1jb2xvcjojYzIyYTJhOwp9CgovKiBCdG4gU3R5bGUgVGhyZWUgKi8KCi5idG4tc3R5bGUtdGhyZWV7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cglmb250LXNpemU6IDE2cHg7CglsaW5lLWhlaWdodDogMzBweDsKCWNvbG9yOiAjZmZmZmZmOwoJZm9udC13ZWlnaHQ6IDQwMDsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kOm5vbmU7Cglib3JkZXItcmFkaXVzOjBweDsKCXBhZGRpbmc6IDE0cHggNDRweCAxNHB4OwoJdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMwMGFlZWYgMCUsICMyNDIzMzQgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAsICMwMGFlZWYpLCBjb2xvci1zdG9wKDEwMCwgIzI0MjMzNCkpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMDBhZWVmIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKCWZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7Cn0KCi5idG4tc3R5bGUtdGhyZWU6YmVmb3JlewoJcG9zaXRpb246IGFic29sdXRlOwoJY29udGVudDogJyc7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB6LWluZGV4OiAxOwogICAgb3BhY2l0eTogMDsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCAjRDE2NDFBKSwgY29sb3Itc3RvcCgxMDAsICMwMGFlZWYpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7Cn0KCi5idG4tc3R5bGUtdGhyZWUgLnR4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwp9CgouYnRuLXN0eWxlLXRocmVlOmhvdmVyOjpiZWZvcmV7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKfQoKLmJ0bi1zdHlsZS10aHJlZTpob3ZlcnsKCWNvbG9yOiAjZmZmZmZmOwp9CgovKiBCdG4gU3R5bGUgRm91ciAqLwoKLmJ0bi1zdHlsZS1mb3VyewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAxOHB4OwoJbGluZS1oZWlnaHQ6IDMwcHg7Cgljb2xvcjogI2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OiA2MDA7CglvdmVyZmxvdzogaGlkZGVuOwoJYmFja2dyb3VuZDpub25lOwoJYm9yZGVyLXJhZGl1czowcHg7CglwYWRkaW5nOiAyNXB4IDUycHggMjVweDsKCXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICMwOTE0OTQgMCUsICMzMTQxZmUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICMwOTE0OTQgMCUsICMzMTQxZmUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwLCAjMDkxNDk0KSwgY29sb3Itc3RvcCgxMDAsICMzMTQxZmUpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICMwOTE0OTQgMCUsICMzMTQxZmUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICMwOTE0OTQgMCUsICMzMTQxZmUgMTAwJSk7Cn0KCi5idG4tc3R5bGUtZm91cjpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgljb250ZW50OiAnJzsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHotaW5kZXg6IDE7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MUZFIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQocmlnaHQsICMwOTE0OTQgMCUsICMzMTQxRkUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQocmlnaHQsICMwOTE0OTQgMCUsICMzMTQxRkUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgcmlnaHQgdG9wLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjMDkxNDk0KSwgY29sb3Itc3RvcCgxMDAsICMzMTQxRkUpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MUZFIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICMwOTE0OTQgMCUsICMzMTQxRkUgMTAwJSk7Cn0KCi5idG4tc3R5bGUtZm91ciAudHh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl6LWluZGV4OjE7Cn0KCi5idG4tc3R5bGUtZm91cjpob3Zlcjo6YmVmb3JlewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7Cn0KCi5idG4tc3R5bGUtZm91cjpob3ZlcnsKCWNvbG9yOiAjZmZmZmZmOwp9CgovKiBCdG4gU3R5bGUgRml2ZSAqLwoKLmJ0bi1zdHlsZS1maXZlewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAxNnB4OwoJbGluZS1oZWlnaHQ6IDMwcHg7Cgljb2xvcjogIzA5MTM5NDsKCXBhZGRpbmc6IDEycHggMzhweCAxMnB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kOm5vbmU7CglsZXR0ZXItc3BhY2luZzoxcHg7Cglib3JkZXItcmFkaXVzOjBweDsKCXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cglib3JkZXI6MnB4IHNvbGlkICMzMjQxZmY7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cn0KCi5idG4tc3R5bGUtZml2ZTpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgljb250ZW50OiAnJzsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHotaW5kZXg6IDE7CiAgICBvcGFjaXR5OiAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzMyNDFmZjsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwp9CgouYnRuLXN0eWxlLWZpdmUgLnR4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwp9CgouYnRuLXN0eWxlLWZpdmU6aG92ZXI6OmJlZm9yZXsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwp9CgouYnRuLXN0eWxlLWZpdmU6aG92ZXJ7Cgljb2xvcjogI2ZmZmZmZjsKCWJvcmRlci1jb2xvcjojMzI0MWZmOwp9CgovKiBCdG4gU3R5bGUgU2l4ICovCgouYnRuLXN0eWxlLXNpeHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCWZvbnQtc2l6ZTogMThweDsKCWxpbmUtaGVpZ2h0OiAzMHB4OwoJY29sb3I6ICNmZmZmZmY7Cglmb250LXdlaWdodDogNjAwOwoJb3ZlcmZsb3c6IGhpZGRlbjsKCWJhY2tncm91bmQ6bm9uZTsKCWJvcmRlci1yYWRpdXM6MHB4OwoJcGFkZGluZzogMTRweCA0NnB4IDE0cHg7Cgl0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzA5MTQ5NCAwJSwgIzMxNDFmZSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgIzA5MTQ5NCksIGNvbG9yLXN0b3AoMTAwLCAjMzE0MWZlKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwp9CgouYnRuLXN0eWxlLXNpeDpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgljb250ZW50OiAnJzsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHotaW5kZXg6IDE7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MUZFIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQocmlnaHQsICMwOTE0OTQgMCUsICMzMTQxRkUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQocmlnaHQsICMwOTE0OTQgMCUsICMzMTQxRkUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgcmlnaHQgdG9wLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjMDkxNDk0KSwgY29sb3Itc3RvcCgxMDAsICMzMTQxRkUpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MUZFIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICMwOTE0OTQgMCUsICMzMTQxRkUgMTAwJSk7Cn0KCi5idG4tc3R5bGUtc2l4IC50eHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXotaW5kZXg6MTsKfQoKLmJ0bi1zdHlsZS1zaXg6aG92ZXI6OmJlZm9yZXsKICAgIG9wYWNpdHk6IDE7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwp9CgouYnRuLXN0eWxlLXNpeDpob3ZlcnsKCWNvbG9yOiAjZmZmZmZmOwp9CgovKiBCdG4gU3R5bGUgU2V2ZW4gKi8KCi5idG4tc3R5bGUtc2V2ZW57Cglwb3NpdGlvbjogcmVsYXRpdmU7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cglmb250LXNpemU6IDE2cHg7CglsaW5lLWhlaWdodDogMzBweDsKCWNvbG9yOiAjMTgyMTJlOwoJcGFkZGluZzogMTJweCAzOHB4IDEycHg7Cglmb250LXdlaWdodDogNjAwOwoJb3ZlcmZsb3c6IGhpZGRlbjsKCWJhY2tncm91bmQ6bm9uZTsKCWxldHRlci1zcGFjaW5nOjFweDsKCWJvcmRlci1yYWRpdXM6MHB4OwoJdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKfQoKLmJ0bi1zdHlsZS1zZXZlbjpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgljb250ZW50OiAnJzsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHotaW5kZXg6IDE7CiAgICBvcGFjaXR5OiAwOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzE4MjEyZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgwLjIsIDEpOwp9CgouYnRuLXN0eWxlLXNldmVuIC50eHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXotaW5kZXg6MTsKfQoKLmJ0bi1zdHlsZS1zZXZlbjpob3Zlcjo6YmVmb3JlewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7Cn0KCi5idG4tc3R5bGUtc2V2ZW46aG92ZXJ7Cgljb2xvcjogI2ZmZmZmZjsKfQoKLyogQnRuIFN0eWxlIEVpZ2h0ICovCgouYnRuLXN0eWxlLWVpZ2h0ewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAxNHB4OwoJbGluZS1oZWlnaHQ6IDMwcHg7Cgljb2xvcjogIzMyNDFmZjsKCXBhZGRpbmc6IDExcHggMzRweCAxMXB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kOm5vbmU7CglsZXR0ZXItc3BhY2luZzoxcHg7Cglib3JkZXItcmFkaXVzOjBweDsKCXRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwoJYm9yZGVyOjFweCBzb2xpZCAjMDkxMzk0OwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgouYnRuLXN0eWxlLWVpZ2h0OmJlZm9yZXsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCWNvbnRlbnQ6ICcnOwogICAgdG9wOiAwOwogICAgbGVmdDogMDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgei1pbmRleDogMTsKICAgIG9wYWNpdHk6IDA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjIyMjIyOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7Cn0KCi5idG4tc3R5bGUtZWlnaHQgLnR4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwp9CgouYnRuLXN0eWxlLWVpZ2h0OmhvdmVyOjpiZWZvcmV7CiAgICBvcGFjaXR5OiAxOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKfQoKLmJ0bi1zdHlsZS1laWdodDpob3ZlcnsKCWNvbG9yOiAjZmZmZmZmOwoJYm9yZGVyLWNvbG9yOiMyMjIyMjI7Cn0KCi8qIEJ0biBTdHlsZSBOaW5lICovCgouYnRuLXN0eWxlLW5pbmV7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cglmb250LXNpemU6IDE2cHg7CglsaW5lLWhlaWdodDogMzBweDsKCWNvbG9yOiAjZmZmZmZmOwoJZm9udC13ZWlnaHQ6IDYwMDsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kOm5vbmU7Cglib3JkZXItcmFkaXVzOjZweDsKCXBhZGRpbmc6MTVweCA0NHB4IDE1cHg7Cgl0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgIzAwYWVlZiAwJSwgIzI1MjQzNSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICMwMGFlZWYgMCUsICMyNTI0MzUgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgIzAwYWVlZiAwJSwgIzI1MjQzNSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAsICMwMGFlZWYpLCBjb2xvci1zdG9wKDEwMCwgIzI1MjQzNSkpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgIzAwYWVlZiAwJSwgIzI1MjQzNSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzAwYWVlZiAwJSwgIzI1MjQzNSAxMDAlKTsKCWZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7Cn0KCi5idG4tc3R5bGUtbmluZTpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgljb250ZW50OiAnJzsKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIHotaW5kZXg6IDE7CiAgICBvcGFjaXR5OiAwOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuMiwgMSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDBhZWVmIDAlLCAjNUUzQzFBIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQocmlnaHQsICMwMGFlZWYgMCUsICM1RTNDMUEgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQocmlnaHQsICMwMGFlZWYgMCUsICM1RTNDMUEgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgcmlnaHQgdG9wLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjMDBhZWVmKSwgY29sb3Itc3RvcCgxMDAsICM1RTNDMUEpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDBhZWVmIDAlLCAjNUUzQzFBIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICMwMGFlZWYgMCUsICM1RTNDMUEgMTAwJSk7Cn0KCi5idG4tc3R5bGUtbmluZSAudHh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl6LWluZGV4OjE7Cn0KCi5idG4tc3R5bGUtbmluZTpob3Zlcjo6YmVmb3JlewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7Cn0KCi5idG4tc3R5bGUtbmluZTpob3ZlcnsKCWNvbG9yOiAjZmZmZmZmOwp9CgouYnRuLXN0eWxlLW5pbmUuc3R5bGUtdHdvewoJYm9yZGVyLXJhZGl1czowcHg7Cn0KCi8qIEJ0biBTdHlsZSBUZW4gKi8KCi5idG4tc3R5bGUtdGVuewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAxNnB4OwoJbGluZS1oZWlnaHQ6IDMwcHg7Cgljb2xvcjogIzI0MjMzNDsKCXBhZGRpbmc6IDEycHggMzhweCAxMnB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kOm5vbmU7Cglib3JkZXItcmFkaXVzOjJweDsKCXRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZjsKfQoKLmJ0bi1zdHlsZS10ZW46YmVmb3JlewoJcG9zaXRpb246IGFic29sdXRlOwoJY29udGVudDogJyc7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB6LWluZGV4OiAxOwogICAgb3BhY2l0eTogMDsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yLCAxKTsKfQoKLmJ0bi1zdHlsZS10ZW4gLnR4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwp9CgouYnRuLXN0eWxlLXRlbjpob3Zlcjo6YmVmb3JlewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7Cn0KCi5idG4tc3R5bGUtdGVuOmhvdmVyewoJY29sb3I6ICNmZmZmZmY7Cn0KCi8qIEJ0biBTdHlsZSBFbGV2ZW4gKi8KCi5idG4tc3R5bGUtZWxldmVuewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAxNHB4OwoJbGluZS1oZWlnaHQ6IDMwcHg7Cgljb2xvcjogI2ZmZmZmZjsKCXBhZGRpbmc6IDExcHggMzRweCAxMXB4OwoJZm9udC13ZWlnaHQ6IDYwMDsKCW92ZXJmbG93OiBoaWRkZW47CgliYWNrZ3JvdW5kOm5vbmU7CglsZXR0ZXItc3BhY2luZzoxcHg7Cglib3JkZXItcmFkaXVzOjJweDsKCXRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwoJYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOwoJZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZjsKfQoKLmJ0bi1zdHlsZS1lbGV2ZW46YmVmb3JlewoJcG9zaXRpb246IGFic29sdXRlOwoJY29udGVudDogJyc7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwogICAgd2lkdGg6IDEwMCU7CiAgICBoZWlnaHQ6IDEwMCU7CiAgICB6LWluZGV4OiAxOwogICAgb3BhY2l0eTogMDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC40czsKICAgIC1vLXRyYW5zaXRpb246IGFsbCAwLjRzOwogICAgdHJhbnNpdGlvbjogYWxsIDAuNHM7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC4yLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMC4yLCAxKTsKfQoKLmJ0bi1zdHlsZS1lbGV2ZW4gLnR4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwp9CgouYnRuLXN0eWxlLWVsZXZlbjpob3Zlcjo6YmVmb3JlewogICAgb3BhY2l0eTogMTsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7Cn0KCi5idG4tc3R5bGUtZWxldmVuOmhvdmVyewoJY29sb3I6ICMyNDIzMzQ7Cglib3JkZXItY29sb3I6I2ZmZmZmZjsKfQoKLyogU29jaWFsIEljb24gT25lICovCgouc29jaWFsLWljb24tb25lewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogYmxvY2s7Cn0KCi5zb2NpYWwtaWNvbi1vbmUgLnRpdGxlewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZm9udC1zaXplOiAyMHB4OwoJbGluZS1oZWlnaHQ6IDI2cHg7Cgljb2xvcjogI2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OiA3MDA7CglkaXNwbGF5OmJsb2NrOwoJbWFyZ2luLWJvdHRvbToxMnB4Owp9Cgouc29jaWFsLWljb24tb25lIGxpewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJZm9udC1zaXplOiAxNnB4OwoJbGluZS1oZWlnaHQ6IDI0cHg7Cgljb2xvcjogI2ZmZmZmZjsKCW1hcmdpbi1yaWdodDogNHB4Owp9Cgouc29jaWFsLWljb24tb25lIGxpOmxhc3QtY2hpbGR7CgltYXJnaW4tcmlnaHQ6IDA7Cn0KCi5zb2NpYWwtaWNvbi1vbmUgbGkgYXsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWRpc3BsYXk6IGJsb2NrOwoJZm9udC1zaXplOiAxNnB4OwoJbGluZS1oZWlnaHQ6IDI0cHg7Cgljb2xvcjogI2ZmZmZmZjsKCXdpZHRoOjQwcHg7CgloZWlnaHQ6NDBweDsKCWxpbmUtaGVpZ2h0OjM4cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNzApOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwp9Cgouc29jaWFsLWljb24tb25lIGxpIGE6aG92ZXJ7Cgljb2xvcjogIzAwMDAwMDsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKfQoKLyogU29jaWFsIEljb24gVHdvICovCgouc29jaWFsLWljb24tdHdvewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zb2NpYWwtaWNvbi10d28gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbjowcHggNHB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi5zb2NpYWwtaWNvbi10d28gbGkgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6NDBweDsKCWhlaWdodDo0MHB4OwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7CglsaW5lLWhlaWdodDozOHB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cglib3JkZXI6MXB4IHNvbGlkICMwMGFlZWY7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cn0KCi5zb2NpYWwtaWNvbi10d28gbGkgYTpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7Cglib3JkZXItY29sb3I6IzAwYWVlZjsKCWJhY2tncm91bmQtY29sb3I6IzAwYWVlZjsKfQoKLnRoZW1lX2NvbG9yewoJY29sb3I6I2MyMmEyYTsKfQoKLnByZWxvYWRlcnsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MHB4OyB0b3A6MHB4OyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDo5OTk5OTk7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9pY29ucy9wcmVsb2FkZXIuc3ZnKTsgYmFja2dyb3VuZC1zaXplOjEyMHB4O30KCmltZ3sKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJbWF4LXdpZHRoOjEwMCU7CgloZWlnaHQ6YXV0bzsJCn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJU2Nyb2xsIFRvIFRvcCBzdHlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnNjcm9sbC10by10b3B7Cglwb3NpdGlvbjpmaXhlZDsKCWJvdHRvbToxNXB4OwoJcmlnaHQ6MTVweDsKCXdpZHRoOjQwcHg7CgloZWlnaHQ6NDBweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTNweDsKCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKCWxpbmUtaGVpZ2h0OjM4cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCXotaW5kZXg6MTAwOwoJY3Vyc29yOnBvaW50ZXI7CgliYWNrZ3JvdW5kOiMwYTBhMGE7CglkaXNwbGF5Om5vbmU7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwkJCn0KCi5zY3JvbGwtdG8tdG9wOmhvdmVyewoJY29sb3I6I2ZmZmZmZjsKCWJhY2tncm91bmQ6I2MyMmEyYTsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglTZWN0aW9uIFRpdGxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouc2VjLXRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjUwcHg7Cn0KCi5zZWMtdGl0bGUgLnRpdGxlewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgY29sb3I6ICMwMGFlZWY7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBmb250LXdlaWdodDogNTAwOwoJbWFyZ2luLWJvdHRvbTogMTVweDsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwp9Cgouc2VjLXRpdGxlIGgyewoJcG9zaXRpb246IHJlbGF0aXZlOwogICAgY29sb3I6ICMyMjIyMjI7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgbGluZS1oZWlnaHQ6IDEuM2VtOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KCi5zZWMtdGl0bGUgLnRleHR7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBjb2xvcjogIzIyMjIyMjsKICAgIGZvbnQtc2l6ZTogMTZweDsKICAgIGZvbnQtd2VpZ2h0OiA0MDA7CglsaW5lLWhlaWdodDoxLjhlbTsKCW1hcmdpbi10b3A6MTVweDsKfQoKLnNlYy10aXRsZS5saWdodCBoMnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi5zZWMtdGl0bGUubGlnaHQgLnRpdGxlLAouc2VjLXRpdGxlLmxpZ2h0IC50ZXh0ewoJY29sb3I6I2ZmZmZmZjsKfQoKLyogU3R5bGUgVHdvICovCgouc2VjLXRpdGxlLnN0eWxlLXR3byAudGl0bGV7Cgljb2xvcjojMDkxMzk0Owp9CgovKiBTdHlsZSBUaHJlZSAqLwoKLnNlYy10aXRsZS5zdHlsZS10aHJlZSAudGl0bGV7Cgljb2xvcjojMDBhZWVmOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVNlY3Rpb24gVGl0bGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5zZWMtdGl0bGUtdHdvewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjcwcHg7Cn0KCi5zZWMtdGl0bGUtdHdvIGgyewoJcG9zaXRpb246IHJlbGF0aXZlOwogICAgY29sb3I6ICMyMjIyMjI7CiAgICBmb250LXNpemU6IDQ4cHg7CiAgICBmb250LXdlaWdodDogNDAwOwogICAgbGluZS1oZWlnaHQ6IDEuM2VtOwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KCi5zZWMtdGl0bGUtdHdvIC50aXRsZXsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGNvbG9yOiAjMjIyMjIyOwogICAgZm9udC1zaXplOiAyNHB4OwogICAgZm9udC13ZWlnaHQ6IDUwMDsKCW1hcmdpbi10b3A6MzVweDsKCXBhZGRpbmc6MHB4IDcwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwp9Cgouc2VjLXRpdGxlLXR3byAudGl0bGUgLmxlZnQtc2VwYXJhdGV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjEycHg7Cgl3aWR0aDo1NXB4Owp9Cgouc2VjLXRpdGxlLXR3byAudGl0bGUgLmxlZnQtc2VwYXJhdGU6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJaGVpZ2h0OjJweDsKCXdpZHRoOjM4cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiMyMjIyMjI7Cn0KCi5zZWMtdGl0bGUtdHdvIC50aXRsZSAubGVmdC1zZXBhcmF0ZTphZnRlcnsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCXJpZ2h0OjBweDsKCXRvcDotNHB4OwoJaGVpZ2h0OjEwcHg7Cgl3aWR0aDoxMHB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojYzIyYTJhOwp9Cgouc2VjLXRpdGxlLXR3byAudGl0bGUgLnJpZ2h0LXNlcGFyYXRlewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cgl0b3A6MTJweDsKCXdpZHRoOjU1cHg7Cn0KCi5zZWMtdGl0bGUtdHdvIC50aXRsZSAucmlnaHQtc2VwYXJhdGU6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJcmlnaHQ6MHB4OwoJdG9wOjBweDsKCWhlaWdodDoycHg7Cgl3aWR0aDozOHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMjIyMjIyOwp9Cgouc2VjLXRpdGxlLXR3byAudGl0bGUgLnJpZ2h0LXNlcGFyYXRlOmFmdGVyewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6LTRweDsKCWhlaWdodDoxMHB4OwoJd2lkdGg6MTBweDsKCWJvcmRlci1yYWRpdXM6NTBweDsKCWJhY2tncm91bmQtY29sb3I6I2MyMmEyYTsKfQoKLnNlYy10aXRsZS10d28gLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiM3Nzc3Nzc7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjEuOWVtOwoJbWFyZ2luLXRvcDoyNXB4Owp9Cgouc2VjLXRpdGxlLXR3by5saWdodCBoMiwKLnNlYy10aXRsZS10d28ubGlnaHQgLnRpdGxlewoJY29sb3I6I2ZmZmZmZjsKfQoKLnNlYy10aXRsZS10d28ubGlnaHQgLnRpdGxlIC5sZWZ0LXNlcGFyYXRlOmJlZm9yZSwKLnNlYy10aXRsZS10d28ubGlnaHQgLnRpdGxlIC5yaWdodC1zZXBhcmF0ZTpiZWZvcmV7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJTWFpbiBIZWFkZXIgc3R5bGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5tYWluLWhlYWRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxMDsKCXdpZHRoOjEwMCU7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo3cHggMHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOwp9CgovKiBIZWFkZXIgVG9wICovCgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1sZWZ0ewoJcG9zaXRpb246cmVsYXRpdmU7CglmbG9hdDpsZWZ0Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1sZWZ0IC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE0cHg7CglsaW5lLWhlaWdodDoxLjNlbTsKCXBhZGRpbmc6OXB4IDBweDsKfQoKLyogRW5kIEhlYWRlciBUb3AgKi8KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLXJpZ2h0ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLXJpZ2h0IC5sb2dpbi1pbmZvewoJcG9zaXRpb246cmVsYXRpdmU7CglmbG9hdDpsZWZ0OwoJbWFyZ2luLXRvcDo2cHg7CgltYXJnaW4tcmlnaHQ6MTVweDsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wIC50b3AtcmlnaHQgLmxvZ2luLWluZm8gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MHB4IDE0cHg7CglsaW5lLWhlaWdodDoxLjJlbTsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZmZmZmZmOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1yaWdodCAubG9naW4taW5mbyBsaTpsYXN0LWNoaWxkewoJYm9yZGVyLXJpZ2h0OjBweDsKCXBhZGRpbmctcmlnaHQ6MHB4Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1yaWdodCAubG9naW4taW5mbyBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wIC50b3AtcmlnaHQgLmxvZ2luLWluZm8gbGkgYTpob3ZlcnsKCWNvbG9yOiMwMGFlZWY7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLXJpZ2h0IC5zb2NpYWwtbmF2IGxpLmZhY2Vib29rIGF7Cgljb2xvcjojMTY1OTliOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1yaWdodCAuc29jaWFsLW5hdiBsaS50d2l0dGVyIGF7Cgljb2xvcjojMDNhOWY0Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1yaWdodCAuc29jaWFsLW5hdiBsaS5nb29nbGUgYXsKCWNvbG9yOiNmZjAwMDA7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLXJpZ2h0IC5zb2NpYWwtbmF2IGxpLmxpbmtlZGluIGF7Cgljb2xvcjojMDA3OGI1Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1yaWdodCAuc29jaWFsLW5hdnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wIC50b3AtcmlnaHQgLnNvY2lhbC1uYXYgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1sZWZ0OjdweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AgLnRvcC1yaWdodCAuc29jaWFsLW5hdiBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDozNnB4OwoJaGVpZ2h0OjM2cHg7Cgljb2xvcjojYzYzYTJhOwoJZm9udC1zaXplOjE2cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWxpbmUtaGVpZ2h0OjM2cHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLXJpZ2h0IC5zb2NpYWwtbmF2IGxpIGE6aG92ZXJ7Cgljb2xvcjojYzIyYTJhOwp9CgovKiBIZWFkZXIgVG9wIFR3byAqLwoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3b3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxNXB4IDBweDsKCWJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxlZnR7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglwYWRkaW5nLWxlZnQ6MjE1cHg7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLmluZm8tbGlzdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAuaW5mby1saXN0IGxpewoJcG9zaXRpb246IHJlbGF0aXZlOwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLXJpZ2h0OjIwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAuaW5mby1saXN0IGxpOmxhc3QtY2hpbGR7CgltYXJnaW4tcmlnaHQ6MHB4Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdHdvIC5pbmZvLWxpc3QgbGkgLmljb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1yaWdodDo4cHg7Cgljb2xvcjojMDkxMzk2Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdHdvIC5pbmZvLWxpc3QgbGkgYXsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWNvbG9yOiM2NjY2NjY7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdHdvIC5pbmZvLWxpc3QgbGkgYTpob3ZlcnsKCWNvbG9yOiMzMjQxZmY7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1saXN0ewoJcG9zaXRpb246cmVsYXRpdmU7CglmbG9hdDpsZWZ0OwoJbWFyZ2luLWxlZnQ6ODBweDsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAudG9wLWxpc3QgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1yaWdodDoxOHB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnRvcC1saXN0IGxpOmxhc3QtY2hpbGR7CgltYXJnaW4tcmlnaHQ6MHB4Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdHdvIC50b3AtbGlzdCBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE2cHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdHdvIC50b3AtbGlzdCBsaSBhOmhvdmVyewoJY29sb3I6IzBhMTM5NTsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAuc29jaWFsLW5hdnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MjBweDsKCXRvcDoxNXB4OwoJcGFkZGluZzowcHggMHB4Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdHdvIC5zb2NpYWwtbmF2IGxpewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tbGVmdDoxNXB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnNvY2lhbC1uYXYgbGkgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6Izc3Nzc3NzsKCWZvbnQtc2l6ZToxNXB4OwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXR3byAuc29jaWFsLW5hdiBsaSBhOmhvdmVyewoJY29sb3I6IzMyNDFmZjsKfQoKLmhlYWRlci1zdHlsZS10d28uZml4ZWQtaGVhZGVyIC5oZWFkZXItdXBwZXJ7Cglwb3NpdGlvbjpmaXhlZDsKCXRvcDowcHg7Cgl3aWR0aDoxMDAlOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgouaGVhZGVyLXN0eWxlLXR3by5maXhlZC1oZWFkZXIgLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyIC5sb2dvLWJveHsKCXBhZGRpbmc6NXB4IDUwcHggNXB4IDE1cHg7Cgl0b3A6MHB4Owp9CgouaGVhZGVyLXN0eWxlLXR3by5maXhlZC1oZWFkZXIgLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyIC5sb2dvLWJveDpiZWZvcmV7Cglib3JkZXItYm90dG9tOjgwcHggc29saWQgIzIyMjIyMjsKfQoKLyogSGVhZGVyIFRvcCBUaHJlZSAqLwoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXRocmVlewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10aHJlZSAudG9wLWxlZnR7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglmbG9hdDpsZWZ0OwoJcGFkZGluZzoxNXB4IDBweDsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXRocmVlIC50b3AtbGVmdCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTRweDsKfQoKLmhlYWRlci1zdHlsZS10aHJlZXsKCXBvc2l0aW9uOmFic29sdXRlOwp9CgoubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXRocmVlIC5uYXYtb3V0ZXJ7CglmbG9hdDpyaWdodDsKfQoKLmhlYWRlci1zdHlsZS10aHJlZSAuaGVhZGVyLWxvd2VyIC5pbm5lci1jb250YWluZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDozMHB4Owp9CgouaGVhZGVyLXN0eWxlLXRocmVlIC5oZWFkZXItbG93ZXIgLmlubmVyLWNvbnRhaW5lcjpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDo5NXB4OwoJYm90dG9tOjBweDsKCXotaW5kZXg6LTE7Cglib3JkZXItcmFkaXVzOjhweDsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKfQoKLmhlYWRlci1zdHlsZS10aHJlZSAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiBhewoJcGFkZGluZzoyNXB4IDIwcHg7Cgljb2xvcjojMjQyMzM0OwoJZm9udC13ZWlnaHQ6NTAwOwp9CgouaGVhZGVyLXN0eWxlLXRocmVlIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaTpiZWZvcmV7Cgl0b3A6MzBweDsKfQoKLmhlYWRlci1zdHlsZS10aHJlZSAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGk6YmVmb3JlewoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNDApOwp9CgouaGVhZGVyLXN0eWxlLXRocmVlIC5oZWFkZXItbG93ZXIgLm9wdGlvbnMtYm94IC5ncmlkLWJveCAuaWNvbnsKCWNvbG9yOiM2MDNlMWE7Cn0KCi5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdGhyZWUgLmhlYWRlci1sb3dlciAuc2VhcmNoLWJveC1idG57Cgljb2xvcjojM2MyMTA3OwoJYm9yZGVyLWNvbG9yOiMzYzIxMDc7Cn0KCi5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdGhyZWUgLm9wdGlvbnMtYm94IC5ncmlkLWJveHsKCWhlaWdodDo4MHB4OwoJbGluZS1oZWlnaHQ6ODhweDsKfQoKLm1haW4taGVhZGVyLmhlYWRlci1zdHlsZS10aHJlZSAuaGVhZGVyLWxvd2VyIC5zZWFyY2gtYm94LW91dGVyewoJbWFyZ2luLXRvcDoxOHB4Owp9CgoubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXRocmVlIC5vcHRpb25zLWJveCAuYnRuLWJveHsKCW1hcmdpbi10b3A6MTBweDsKfQoKLmhlYWRlci1zdHlsZS10aHJlZS5maXhlZC1oZWFkZXIgLmhlYWRlci1sb3dlcnsKCXBvc2l0aW9uOmZpeGVkOwoJd2lkdGg6MTAwJTsKCXRvcDowcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cglib3gtc2hhZG93OjBweCAwcHggMTBweCByZ2JhKDAsMCwwLDAuMTApOwp9CgouaGVhZGVyLXN0eWxlLXRocmVlLmZpeGVkLWhlYWRlciAuaGVhZGVyLWxvd2VyIC5pbm5lci1jb250YWluZXJ7CglwYWRkaW5nOjBweDsKfQoKLmhlYWRlci1zdHlsZS10aHJlZS5maXhlZC1oZWFkZXIgLmhlYWRlci1sb3dlciAuaW5uZXItY29udGFpbmVyOmJlZm9yZXsKCWRpc3BsYXk6bm9uZTsKfQoKLmhlYWRlci1zdHlsZS10aHJlZSAubWFpbi1tZW51ewoJbWFyZ2luLXJpZ2h0OjUwcHg7Cn0KCi8qIE1haW4gSGVhZGVyICovCgoubWFpbi1oZWFkZXIgLm1haW4tYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjBweCAwcHg7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDoxMDAlOwoJYmFja2dyb3VuZDpub25lOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLm1haW4taGVhZGVyIC5tYWluLWJveCAub3V0ZXItY29udGFpbmVyewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjBweCA0MHB4Owp9CgoubWFpbi1oZWFkZXIgLm1haW4tYm94IC5sb2dvLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCWxlZnQ6MHB4OwoJei1pbmRleDoxMDsKCXBhZGRpbmc6MzBweCAwcHg7Cn0KCi5tYWluLWhlYWRlciAubWFpbi1ib3ggLmxvZ28tYm94IC5sb2dvIGltZ3sKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJbWF4LXdpZHRoOjEwMCU7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwkKfQoKLm1haW4taGVhZGVyIC5uYXYtdG9nZ2xlcnsKCXBvc2l0aW9uOmFic29sdXRlOwoJdG9wOjUwJTsKCW1hcmdpbi10b3A6MHB4OwoJZGlzcGxheTogYmxvY2s7Cn0KCi5tYWluLWhlYWRlciAubmF2LXRvZ2dsZXIgYnV0dG9uewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJY29sb3I6IzQ0NDQ0NDsKCXRleHQtYWxpZ246Y2VudGVyOwoJZm9udC1zaXplOjI0cHg7CglsaW5lLWhlaWdodDozNHB4OwoJZm9udC13ZWlnaHQ6bm9ybWFsOwoJYmFja2dyb3VuZDpub25lOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci11cHBlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLm1haW4taGVhZGVyIC5oZWFkZXItdXBwZXIgLnVwcGVyLXJpZ2h0ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nLXRvcDo0MHB4Owp9CgoubWFpbi1oZWFkZXIgLm5hdi1vdXRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLW9uZSAuaGVhZGVyLWxvd2VyewoJcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogMHB4OwogICAgcmlnaHQ6IDBweDsKfQoKLm1haW4taGVhZGVyLmhlYWRlci1zdHlsZS1vbmUgLmhlYWRlci1sb3dlciAubmF2LW91dGVyOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCXJpZ2h0OjBweDsKCXRvcDowcHg7CgloZWlnaHQ6MTAwJTsKCXdpZHRoOjEwMDAlOwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNDUpOwp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci11cHBlciAubG9nby1ib3h7CglwYWRkaW5nOjI2cHggMHB4IDI1cHg7Cn0KCi5tYWluLWhlYWRlciAuaW5mby1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZsb2F0OmxlZnQ7Cgl6LWluZGV4OjE7CgltaW4taGVpZ2h0OjU2cHg7CgltYXJnaW4tbGVmdDo1MHB4OwoJZm9udC1zaXplOjE1cHg7Cgljb2xvcjojNzc3Nzc3OwoJdGV4dC1hbGlnbjpsZWZ0OwoJcGFkZGluZzowcHggMHB4IDIwcHggNjVweDsKfQoKLm1haW4taGVhZGVyIC5pbmZvLWJveCAuaWNvbi1ib3h7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjNweDsKCWZvbnQtc2l6ZTo0MnB4OwoJbGluZS1oZWlnaHQ6MWVtOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCQoJY29sb3I6I2QxNjQxYjsKCWxpbmUtaGVpZ2h0OjFlbTsKCWJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2QxNjQxYiAwJSwgI2MxMjgyYSAxMDAlKTsKICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50Owp9CgoubWFpbi1oZWFkZXIgLmluZm8tYm94IHVsIGxpewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDoyMHB4OwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLWJvdHRvbTo4cHg7Cglmb250LXdlaWdodDo0MDA7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwp9CgoubWFpbi1oZWFkZXIgLmluZm8tYm94IHN0cm9uZ3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NjAwOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZToxOHB4OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKCQp9CgoubWFpbi1tZW51ewoJcG9zaXRpb246c3RhdGljOwoJZmxvYXQ6bGVmdDsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5tYWluLW1lbnUgLm5hdmJhci1jb2xsYXBzZXsKCXBhZGRpbmc6MHB4OwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbnsKCXBvc2l0aW9uOnN0YXRpYzsKCW1hcmdpbjowcHg7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCW1hcmdpbi1yaWdodDowcHg7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGk6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJdG9wOjIwcHg7CgloZWlnaHQ6MjBweDsKCXdpZHRoOjFweDsKCW9wYWNpdHk6MC40OwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGk6bGFzdC1jaGlsZHsKCW1hcmdpbi1yaWdodDowcHg7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaTpsYXN0LWNoaWxkOjphZnRlcnsKCWRpc3BsYXk6bm9uZTsKfQoKLnN0aWNreS1oZWFkZXIgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsKCXBhZGRpbmc6MjBweCAwcHggIWltcG9ydGFudDsKCWNvbG9yOiM0NDQ0NDQgIWltcG9ydGFudDsKfQoKLnN0aWNreS1oZWFkZXIgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpOmhvdmVyID4gYSwKLnN0aWNreS1oZWFkZXIgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpLmN1cnJlbnQgPiBhewoJY29sb3I6I2MyMmEyYTsKCWJhY2tncm91bmQtY29sb3I6aW5oZXJpdCAhaW1wb3J0YW50Owp9Cgouc3RpY2t5LWhlYWRlciAubmF2LW91dGVyIC5vcHRpb25zLWJveHsKCW1hcmdpbi10b3A6MjZweDsKfQoKLmNhcnQtcHJvZHVjdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbToyNHB4OwoJbWluLWhlaWdodDo5MHB4OwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U0ZTRlNDsKfQoKLmNhcnQtcHJvZHVjdCAuaW5uZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDo5MHB4OwoJbWluLWhlaWdodDo3MHB4Owp9CgouY2FydC1wcm9kdWN0IC5pbm5lciAuY3Jvc3MtaWNvbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MHB4OwoJdG9wOi0ycHg7Cgl6LWluZGV4OjE7Cgljb2xvcjojMjYzMTIwOwoJZm9udC1zaXplOjE2cHg7CgljdXJzb3I6cG9pbnRlcjsKfQoKLmNhcnQtcHJvZHVjdCAuaW5uZXIgLmltYWdlewoJcG9zaXRpb246YWJzb2x1dGU7Cgl3aWR0aDo3MHB4OwoJaGVpZ2h0OjcwcHg7CglsZWZ0OjBweDsKCXRvcDowcHg7Cn0KCi5jYXJ0LXByb2R1Y3QgLmlubmVyIGgzewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo2MDA7Cglmb250LXNpemU6MTVweDsKCW1hcmdpbjowcHg7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cn0KCi5jYXJ0LXByb2R1Y3QgLmlubmVyIGgzIGF7Cgljb2xvcjojMjIyMjIyOwp9CgouY2FydC1wcm9kdWN0IC5pbm5lciAucXVhbnRpdHktdGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6MzAwOwoJY29sb3I6IzIyMjIyMjsKCWxpbmUtaGVpZ2h0OjFlbTsKCW1hcmdpbi10b3A6NnB4Owp9CgouY2FydC1wcm9kdWN0IC5pbm5lciAucHJpY2V7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtd2VpZ2h0OjYwMDsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luOjBweDsKCWNvbG9yOiMyMjIyMjI7CglsaW5lLWhlaWdodDoxZW07CgltYXJnaW4tdG9wOjZweDsKfQoKLmhlYWRlci1zdHlsZS10d28gLmF1dG8tY29udGFpbmVyewoJCn0KCi5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lciAubG9nby1ib3h7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOiAtNTRweDsKICAgIHotaW5kZXg6IDE7CiAgICBwYWRkaW5nOiAzMnB4IDUwcHggMzJweCAxNXB4OwoJYmFja2dyb3VuZC1jb2xvcjojMjIyMjIyOwp9CgouaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5pbm5lci1jb250YWluZXIgLmxvZ28tYm94OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCXJpZ2h0Oi01MHB4OwoJdG9wOjBweDsKCWJvcmRlci1ib3R0b206IDEzNHB4IHNvbGlkICMyMjIyMjI7CiAgICBib3JkZXItcmlnaHQ6IDUwcHggc29saWQgdHJhbnNwYXJlbnQ7Cn0KCi5oZWFkZXItc3R5bGUtdHdvIC5uYXYtb3V0ZXJ7CiAgICBwb3NpdGlvbjpzdGF0aWM7Cn0KCi5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLmlubmVyLWNvbnRhaW5lcnsKCXBhZGRpbmctbGVmdDoyMTVweDsKfQoKLmhlYWRlci1zdHlsZS10d28gLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwsCi5oZWFkZXItc3R5bGUtdHdvIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bHsKCWJvcmRlci1jb2xvcjojMmYzZmY4Owp9CgouaGVhZGVyLXN0eWxlLXRocmVlIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsLAouaGVhZGVyLXN0eWxlLXRocmVlIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bHsKCWJvcmRlci1jb2xvcjojMDBhZWVmOwp9CgouY29udGFjdC1zZWN0aW9uLXR3byAuZm9ybS1jb2x1bW4gLmlubmVyLWNvbHVtbiAuZGVmYXVsdC1mb3JtLnN0eWxlLXR3byAuZm9ybS1ncm91cCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWFjdGl2ZXsKCWJhY2tncm91bmQtY29sb3I6IzAwYWVlZjsKCWJvcmRlci1jb2xvcjojMDBhZWVmOwp9CgovKlN0aWNreSBIZWFkZXIqLwoKLnN0aWNreS1oZWFkZXJ7Cglwb3NpdGlvbjpmaXhlZDsKCW9wYWNpdHk6MDsKCXZpc2liaWxpdHk6aGlkZGVuOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MTAwJTsKCXBhZGRpbmc6MHB4IDBweDsKCWJhY2tncm91bmQ6I2ZmZmZmZjsKCXotaW5kZXg6MDsKCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNmU2ZTY7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9Cgouc3RpY2t5LWhlYWRlciAubG9nb3sKCXBhZGRpbmc6OXB4IDBweCA5cHg7Cn0KCi5maXhlZC1oZWFkZXIgLnN0aWNreS1oZWFkZXJ7Cgl6LWluZGV4Ojk5OTk5OTsKCW9wYWNpdHk6MTsKCXZpc2liaWxpdHk6dmlzaWJsZTsKCS1tcy1hbmltYXRpb24tbmFtZTogZmFkZUluRG93bjsKCS1tb3otYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247Cgktb3AtYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247Cgktd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duOwoJYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247CgktbXMtYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsKCS1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsKCS1vcC1hbmltYXRpb24tZHVyYXRpb246IDUwMG1zOwoJLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDUwMG1zOwoJYW5pbWF0aW9uLWR1cmF0aW9uOiA1MDBtczsKCS1tcy1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7CgktbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKCS1vcC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7Cgktd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKCWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKCS1tcy1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwoJLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwoJLW9wLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7Cgktd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7CglhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiAxOwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCWNvbG9yOiNmZmZmZmY7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWxpbmUtaGVpZ2h0OjMwcHg7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwoJbGV0dGVyLXNwYWNpbmc6MHB4OwoJb3BhY2l0eToxOwoJZm9udC13ZWlnaHQ6NDAwOwoJcGFkZGluZzoxNXB4IDI1cHg7Cglmb250LXNpemU6MTVweDsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmOwp9Cgouc3RpY2t5LWhlYWRlciAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1sZWZ0OjMwcHg7CgltYXJnaW4tcmlnaHQ6MHB4ICFpbXBvcnRhbnQ7Cn0KCi5zdGlja3ktaGVhZGVyIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaS5kcm9wZG93biA+IGE6YmVmb3JlewoJZGlzcGxheTpub25lOwp9Cgouc3RpY2t5LWhlYWRlciAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGk6YmVmb3JlLAouc3RpY2t5LWhlYWRlciAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGk6YWZ0ZXJ7CglkaXNwbGF5Om5vbmU7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaTpob3ZlciA+IGEsCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaS5jdXJyZW50ID4gYXsKCW9wYWNpdHk6MTsKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWx7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjEyMCU7Cgl3aWR0aDoyNTBweDsKCXBhZGRpbmc6MHB4OwoJei1pbmRleDoxMDA7CglkaXNwbGF5Om5vbmU7CgliYWNrZ3JvdW5kOiNmZmZmZmY7Cglib3JkZXItdG9wOjNweCBzb2xpZCAjYzIyYTJhOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS13ZWJraXQtYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7CgktbXMtYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7Cgktby1ib3gtc2hhZG93OjJweCAycHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpLC0ycHggMHB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KTsKCS1tb3otYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7Cglib3gtc2hhZG93OjJweCAycHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpLC0ycHggMHB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KTsKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwuZnJvbS1yaWdodHsKCWxlZnQ6YXV0bzsKCXJpZ2h0OjBweDsJCn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTApOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpOmxhc3QtY2hpbGR7Cglib3JkZXItYm90dG9tOm5vbmU7CQp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpID4gYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXBhZGRpbmc6MTBweCAxNXB4OwoJbGluZS1oZWlnaHQ6MjRweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWZvbnQtc2l6ZToxNnB4OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKCWNvbG9yOiMyYTJhMmE7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJCn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGk6aG92ZXIgPiBhewoJY29sb3I6I2ZmZmZmZjsKCWJhY2tncm91bmQ6IzJjMmMyYzsJCn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkuZHJvcGRvd24gPiBhOmFmdGVyewoJZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7Cgljb250ZW50OiAiXGYxMDUiOwoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDoxMHB4OwoJdG9wOjEwcHg7Cgl3aWR0aDoxMHB4OwoJaGVpZ2h0OjIwcHg7CglkaXNwbGF5OmJsb2NrOwoJY29sb3I6IzI1M2Q0YTsKCWxpbmUtaGVpZ2h0OjIwcHg7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0Om5vcm1hbDsKCXRleHQtYWxpZ246Y2VudGVyOwoJei1pbmRleDo1OwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaS5kcm9wZG93bjpob3ZlciA+IGE6YWZ0ZXJ7Cgljb2xvcjojZmZmZmZmOwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjEwMCU7Cgl0b3A6MjBweDsKCXdpZHRoOjI1MHB4OwoJcGFkZGluZzowcHg7Cgl6LWluZGV4OjEwMDsKCWRpc3BsYXk6bm9uZTsKCWJhY2tncm91bmQ6I2ZmZmZmZjsKCWJvcmRlci10b3A6M3B4IHNvbGlkICNjMjJhMmE7Cgktd2Via2l0LWJveC1zaGFkb3c6MnB4IDJweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSksLTJweCAwcHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpOwoJLW1zLWJveC1zaGFkb3c6MnB4IDJweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSksLTJweCAwcHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpOwoJLW8tYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7CgktbW96LWJveC1zaGFkb3c6MnB4IDJweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSksLTJweCAwcHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpOwoJYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsID4gbGkgPiB1bC5mcm9tLXJpZ2h0ewoJbGVmdDphdXRvOwoJcmlnaHQ6MHB4OwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTApOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpID4gdWwgPiBsaTpsYXN0LWNoaWxkewoJYm9yZGVyLWJvdHRvbTpub25lOwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGkgPiBhewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJcGFkZGluZzoxMHB4IDE1cHg7CglsaW5lLWhlaWdodDoyNHB4OwoJZm9udC13ZWlnaHQ6NDAwOwoJZm9udC1zaXplOjE2cHg7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwoJY29sb3I6IzI3MjcyNzsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGk6aG92ZXIgPiBhewoJY29sb3I6I2ZmZmZmZjsKCWJhY2tncm91bmQ6IzJjMmMyYzsKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGkuZHJvcGRvd24gPiBhOmFmdGVyewoJZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7Cgljb250ZW50OiAiXGYxMDUiOwoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDoxMHB4OwoJdG9wOjExcHg7Cgl3aWR0aDoxMHB4OwoJaGVpZ2h0OjIwcHg7CglkaXNwbGF5OmJsb2NrOwoJY29sb3I6IzI3MjcyNzsKCWxpbmUtaGVpZ2h0OjIwcHg7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0Om5vcm1hbDsKCXRleHQtYWxpZ246Y2VudGVyOwoJei1pbmRleDo1OwkKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsID4gbGkuZHJvcGRvd246aG92ZXIgPiBhOmFmdGVyewoJY29sb3I6I2ZmZmZmZjsJCn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaS5kcm9wZG93bjpob3ZlciA+IHVsewoJdmlzaWJpbGl0eTp2aXNpYmxlOwoJb3BhY2l0eToxOwoJdG9wOjEwMCU7CQp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uIGxpID4gdWwgPiBsaS5kcm9wZG93bjpob3ZlciA+IHVsewoJdmlzaWJpbGl0eTp2aXNpYmxlOwoJb3BhY2l0eToxOwoJdG9wOjA7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwkKfQoKLm1haW4tbWVudSAubmF2YmFyLWNvbGxhcHNlID4gdWwgbGkuZHJvcGRvd24gLmRyb3Bkb3duLWJ0bnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MTBweDsKCXRvcDo2cHg7Cgl3aWR0aDozMHB4OwoJaGVpZ2h0OjMwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWNvbG9yOiNmZmZmZmY7CglsaW5lLWhlaWdodDoyOHB4OwoJYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOwoJYmFja2dyb3VuZC1zaXplOjIwcHg7CgljdXJzb3I6cG9pbnRlcjsKCXotaW5kZXg6NTsKCWRpc3BsYXk6bm9uZTsKfQoKLm1haW4taGVhZGVyIC5vcHRpb25zLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6cmlnaHQ7Cn0KCi8qIEdyaWQgQm94ICovCgoubWFpbi1oZWFkZXIgLm9wdGlvbnMtYm94IC5ncmlkLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCWhlaWdodDo2MHB4OwoJZGlzcGxheTpibG9jazsKCWZvbnQtc2l6ZToyMHB4OwoJY29sb3I6I2ZmZmZmZjsKCXBhZGRpbmc6MHB4OwoJbWFyZ2luOjBweDsKCWN1cnNvcjpwb2ludGVyOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglsaW5lLWhlaWdodDo2OHB4OwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLm1haW4taGVhZGVyIC5vcHRpb25zLWJveCAuZ3JpZC1ib3ggLmljb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7CglsaW5lLWhlaWdodDoxZW07Cn0KCi5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdHdvIC5vcHRpb25zLWJveCAuZ3JpZC1ib3ggLmljb257Cgljb2xvcjojODc4Nzg3Owp9CgoubWFpbi1oZWFkZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCAuaWNvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzAwMDAwMDsKfQoKLmhlYWRlci1zdHlsZS10d28gLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gYXsKCWNvbG9yOiMyMjIyMjI7CglwYWRkaW5nOjI1cHggMjBweDsKfQoKLmhlYWRlci1zdHlsZS10d28gLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpOmJlZm9yZXsKCXRvcDozMHB4OwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM0LDM0LDM0LDEpOwp9CgouaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5zZWFyY2gtYm94LW91dGVyewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDo4MHB4OwoJaGVpZ2h0OjgwcHg7CglmbG9hdDpsZWZ0OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglib3JkZXItbGVmdDoxcHggc29saWQgI2RkZGRkZDsKCWJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZGRkZDsKfQoKLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuc2VhcmNoLWJveC1idG57CglsaW5lLWhlaWdodDo4MHB4OwoJY29sb3I6Izg3ODc4NzsKCWZvbnQtc2l6ZToyMnB4OwoJY3Vyc29yOnBvaW50ZXI7Cn0KCi5tYWluLWhlYWRlci5oZWFkZXItc3R5bGUtdHdvIC5vcHRpb25zLWJveHsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MHB4Owp9CgoubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXR3byAub3B0aW9ucy1ib3ggLmdyaWQtYm94ewoJaGVpZ2h0OjgwcHg7Cgl3aWR0aDo4MHB4OwoJbGluZS1oZWlnaHQ6ODBweDsKCWJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZGRkZGRkOwp9CgoKLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAub3B0aW9ucy1ib3ggLmNhcnQtYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglmbG9hdDpsZWZ0OwoJd2lkdGg6ODBweDsKCWhlaWdodDo4MHB4OwoJZGlzcGxheTpibG9jazsKCWZvbnQtc2l6ZToyMHB4OwoJY29sb3I6IzAwMDAwMDsKCXBhZGRpbmc6MHB4OwoJbWFyZ2luOjBweDsKCWN1cnNvcjpwb2ludGVyOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglsaW5lLWhlaWdodDo4MHB4OwoJYmFja2dyb3VuZC1jb2xvcjpub25lOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAub3B0aW9ucy1ib3ggLmNhcnQtYm94IGJ1dHRvbnsKCWJhY2tncm91bmQ6bm9uZTsKfQoKLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAub3B0aW9ucy1ib3ggLmNhcnQtYm94IGJ1dHRvbiAudG90YWx7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjE4cHg7Cgl0b3A6MThweDsKCXdpZHRoOjIwcHg7CgloZWlnaHQ6MjBweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTBweDsKCWxpbmUtaGVpZ2h0OjIwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWZvbnQtc3R5bGU6bm9ybWFsOwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMzI0MWZmOwp9CgouaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5vcHRpb25zLWJveCAuY2FydC1ib3ggYnV0dG9uOmFmdGVyewoJZGlzcGxheTpub25lOwp9CgovKiBDYXJ0IFBhbmVsICovCgouaGVhZGVyLXN0eWxlLXR3byAuaGVhZGVyLXVwcGVyIC5vcHRpb25zLWJveCAuY2FydC1ib3ggLmNhcnQtcGFuZWx7CglsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CglyaWdodDogMHB4ICFpbXBvcnRhbnQ7Cglib3JkZXItcmFkaXVzOjBweDsKCXBhZGRpbmc6MjBweCAyMHB4OwoJbWluLXdpZHRoOjMwMHB4OwoJbWFyZ2luLXRvcDo4MHB4OwoJYm94LXNoYWRvdzogMHB4IDBweCAyNXB4IHJnYmEoMCwwLDAsMC4xNSk7Cglib3JkZXI6M3B4IHNvbGlkICMzMDNmZmI7Cgktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCkgIWltcG9ydGFudDsKCXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwcHgsIDBweCkgIWltcG9ydGFudDsKfQoKLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAub3B0aW9ucy1ib3ggLmNhcnQtYm94IC5jYXJ0LXBhbmVsIC5jYXJ0LXRvdGFsewoJY29sb3I6IzAwMDAwMDsKCWZvbnQtc2l6ZToxNXB4OwoJZm9udC13ZWlnaHQ6NDAwOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglsaW5lLWhlaWdodDoxZW07CgltYXJnaW4tdG9wOjZweDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCAuY2FydC1wYW5lbCAuY2FydC10b3RhbCBzcGFuewoJZm9udC13ZWlnaHQ6ODAwOwoJZm9udC1zaXplOjE4cHg7Cn0KCi5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCAuY2FydC1wYW5lbCAuYnRucy1ib3hlZHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CgltYXJnaW4tdG9wOjE1cHg7Cn0KCi5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCAuY2FydC1wYW5lbCAuYnRucy1ib3hlZCBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luOjBweCA1cHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAub3B0aW9ucy1ib3ggLmNhcnQtYm94IC5jYXJ0LXBhbmVsIC5idG5zLWJveGVkIGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXdlaWdodDo1MDA7Cglmb250LXNpemU6MTJweDsKCWxpbmUtaGVpZ2h0OjEuOWVtOwoJcGFkZGluZzoxMHB4IDIwcHggOHB4OwoJYm9yZGVyLXJhZGl1czogMnB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiMzMDNmZmI7Cglib3JkZXI6MXB4IHNvbGlkICMzMDNmZmI7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cn0KCi5oZWFkZXItc3R5bGUtdHdvIC5oZWFkZXItdXBwZXIgLm9wdGlvbnMtYm94IC5jYXJ0LWJveCAuY2FydC1wYW5lbCAuYnRucy1ib3hlZCBsaSBhOmhvdmVyewoJY29sb3I6IzMwM2ZmYjsKCWJhY2tncm91bmQ6bm9uZTsKfQoKLyogQnV0dG9uIEJveCAqLwoKLm1haW4taGVhZGVyIC5vcHRpb25zLWJveCAuYnRuLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCWhlaWdodDo2MHB4Owp9CgoubWFpbi1oZWFkZXIgLmhlYWRlci1sb3dlciAuc2VhcmNoLWJveC1vdXRlcnsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWZsb2F0OmxlZnQ7CgltYXJnaW4tdG9wOjEwcHg7CgltYXJnaW4tbGVmdDoyNXB4OwoJbWFyZ2luLXJpZ2h0OjI1cHg7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLWxvd2VyIC5zZWFyY2gtYm94LWJ0bnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCXdpZHRoOjQwcHg7CgloZWlnaHQ6NDBweDsKCWRpc3BsYXk6YmxvY2s7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiNmZmZmZmY7CglwYWRkaW5nOjBweDsKCW1hcmdpbjowcHg7CgljdXJzb3I6cG9pbnRlcjsKCWxpbmUtaGVpZ2h0OjM4cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJvcmRlci1yYWRpdXM6NTBweDsKCWJhY2tncm91bmQ6bm9uZTsKCWJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5tYWluLWhlYWRlciAuaGVhZGVyLWxvd2VyIC5zZWFyY2gtYm94LWJ0bjphZnRlcnsKCWRpc3BsYXk6bm9uZTsKfQoKLyoqKioqKioqKioqKioqKioqKioqKioqKiBNZWdhIE1lbnUgKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpLmhhcy1tZWdhLW1lbnV7Cglwb3NpdGlvbjpzdGF0aWM7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IC5tZWdhLW1lbnV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJcmlnaHQ6IDA7CgltYXJnaW46IGF1dG87Cgl3aWR0aDoxMDAlOwoJbWF4LXdpZHRoOiAxMTcwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwogICAgcGFkZGluZzogNDVweCA0MHB4IDMwcHggNDVweDsKICAgIHRvcDogMTAwJTsKCXotaW5kZXg6MTAwOwoJb3BhY2l0eTogMDsKCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMCk7CgktbW96LXRyYW5zZm9ybTogc2NhbGVZKDApOwoJLW1zLXRyYW5zZm9ybTogc2NhbGVZKDApOwoJLW8tdHJhbnNmb3JtOiBzY2FsZVkoMCk7Cgl0cmFuc2Zvcm06IHNjYWxlWSgwKTsKCS13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJLW1vei10cmFuc2Zvcm0tb3JpZ2luOiB0b3A7CgktbXMtdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJLW8tdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7CgktbXMtYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7Cgktby1ib3gtc2hhZG93OjJweCAycHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpLC0ycHggMHB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KTsKCS1tb3otYm94LXNoYWRvdzoycHggMnB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KSwtMnB4IDBweCA1cHggMXB4IHJnYmEoMCwwLDAsMC4wNSk7Cglib3gtc2hhZG93OjJweCAycHggNXB4IDFweCByZ2JhKDAsMCwwLDAuMDUpLC0ycHggMHB4IDVweCAxcHggcmdiYSgwLDAsMCwwLjA1KTsKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpOmhvdmVyID4gLm1lZ2EtbWVudXsKCW9wYWNpdHk6IDE7Cgl2aXNpYmlsaXR5OiB2aXNpYmxlOwoJLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxKTsKCS1tb3otdHJhbnNmb3JtOiBzY2FsZVkoMSk7CgktbXMtdHJhbnNmb3JtOiBzY2FsZVkoMSk7Cgktby10cmFuc2Zvcm06IHNjYWxlWSgxKTsKCXRyYW5zZm9ybTogc2NhbGVZKDEpOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiAubWVnYS1tZW51IC5tZWdhLW1lbnUtYmFyewoJcG9zaXRpb246IHJlbGF0aXZlOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgaDN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMwMjBlMjg7Cglmb250LXNpemU6MjBweDsKCWZvbnQtd2VpZ2h0OjUwMDsKCXBhZGRpbmctYm90dG9tOjEwcHg7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjJmMmYyOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgPiB1bHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgLm1lZ2EtbWVudS1iYXIgLmNvbHVtbiA+IHVsID4gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjJmMmYyOwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSAubWVnYS1tZW51LWJhciAuY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjEwcHg7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSAubWVnYS1tZW51LWJhciAuY29sdW1uID4gdWwgPiBsaTpsYXN0LWNoaWxkewoJYm9yZGVyOm5vbmU7Cn0KCi5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSAubWVnYS1tZW51LWJhciAuY29sdW1uID4gdWwgPiBsaSA+IGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7CglwYWRkaW5nOjE0cHggMjBweDsKCWxpbmUtaGVpZ2h0OjIwcHg7Cglmb250LXdlaWdodDo0MDA7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiMyMjIyMjI7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpIC5tZWdhLW1lbnUtYmFyIC5jb2x1bW4gPiB1bCA+IGxpID4gYTpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7CgliYWNrZ3JvdW5kOiMyYzJjMmM7Cn0KCi5oZWFkZXItc3R5bGUtb25lLmZpeGVkLWhlYWRlciAuaGVhZGVyLWxvd2VyewoJcG9zaXRpb246Zml4ZWQ7Cgl0b3A6MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMjIyMjIyOwp9CgouaGVhZGVyLXN0eWxlLW9uZS5maXhlZC1oZWFkZXIgLmhlYWRlci1sb3dlciAubmF2LW91dGVyOmJlZm9yZXsKCWRpc3BsYXk6bm9uZTsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglNYWluIFNsaWRlciBCYW5uZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5tYWluLXNsaWRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1zbGlkZXIgLmF1dG8tY29udGFpbmVyewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5tYWluLXNsaWRlciAuc2xpZGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MjMwcHggMHB4IDI2MHB4OwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwoJYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OwoJYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOwp9CgoubWFpbi1zbGlkZXIgLnRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOiAxNnB4OwoJZm9udC13ZWlnaHQ6IDQwMDsKCW1hcmdpbi1ib3R0b206IDI0cHg7CglvcGFjaXR5OiAwOwoJbGV0dGVyLXNwYWNpbmc6MXB4OwoJdHJhbnNmb3JtOiBzY2FsZVkoMCk7Cgl0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDEwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJCn0KCi5tYWluLXNsaWRlciAuYWN0aXZlIC50aXRsZXsKCW9wYWNpdHk6IDE7Cgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsKCS13ZWJraXQtdHJhbnNpdGlvbi1kZWxheTogNTAwbXM7CgktbW96LXRyYW5zaXRpb24tZGVsYXk6IDUwMG1zOwoJLW1zLXRyYW5zaXRpb24tZGVsYXk6IDUwMG1zOwoJLW8tdHJhbnNpdGlvbi1kZWxheTogNTAwbXM7Cgl0cmFuc2l0aW9uLWRlbGF5OiA1MDBtczsKfQoKLm1haW4tc2xpZGVyIGgxewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC13ZWlnaHQ6NjAwOwoJbGluZS1oZWlnaHQ6MS4yZW07CgltYXJnaW4tYm90dG9tOjMwcHg7CglvcGFjaXR5OiAwOwoJdHJhbnNmb3JtOiBzY2FsZVkoMCk7Cgl0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDEwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwp9CgoubWFpbi1zbGlkZXIgLmFjdGl2ZSBoMXsKCW9wYWNpdHk6IDE7Cgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsKCXRyYW5zaXRpb24tZGVsYXk6IDEwMDBtczsKfQoKLm1haW4tc2xpZGVyIC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZWVlZWVlOwoJZm9udC1zaXplOjE2cHg7CglvcGFjaXR5OjA7Cgl0cmFuc2Zvcm06IHNjYWxlWSgwKTsKCXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKCWxpbmUtaGVpZ2h0OiAxLjllbTsKCWZvbnQtd2VpZ2h0OjQwMDsKCW1hcmdpbi1ib3R0b206NDJweCAhaW1wb3J0YW50OwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCAxMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKfQoKLm1haW4tc2xpZGVyIC5hY3RpdmUgLnRleHR7CglvcGFjaXR5OiAxOwoJdHJhbnNmb3JtOiBzY2FsZVkoMSk7Cgl0cmFuc2l0aW9uLWRlbGF5OiAxNTAwbXM7Cn0KCi5tYWluLXNsaWRlciAubGluay1ib3h7CglvcGFjaXR5OjA7Cgl0cmFuc2Zvcm06IHNjYWxlWSgwKTsKCXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCAxMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKfQoKLm1haW4tc2xpZGVyIC5hY3RpdmUgLmxpbmstYm94ewoJb3BhY2l0eTogMTsKCXRyYW5zZm9ybTogc2NhbGVZKDEpOwoJdHJhbnNpdGlvbi1kZWxheTogMjAwMG1zOwp9CgoubWFpbi1zbGlkZXIgLmxpbmstYm94IC50aGVtZS1idG57CgltYXJnaW4tcmlnaHQ6MjBweDsKCWZsb2F0OmxlZnQ7Cn0KCi5tYWluLXNsaWRlciAubGluay1ib3ggLnZpZGVvLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6NjBweDsKCWhlaWdodDo2MHB4OwoJY29sb3I6IzZiNmI2YjsKCWZvbnQtc2l6ZToxOHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglib3JkZXItcmFkaXVzOjUwcHg7CglsaW5lLWhlaWdodDogNjBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJZmxvYXQ6bGVmdDsKCW1hcmdpbi1yaWdodDo0MHB4OwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgliYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7Cn0KCi5tYWluLXNsaWRlciAubGluay1ib3ggLnZpZGVvLWJveCAub3ZlcmxheS1ib3ggc3BhbnsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXdpZHRoOjYwcHg7CgloZWlnaHQ6IDYwcHg7CglsZWZ0OjUwJTsKICAgIHRvcDogNTAlOwoJei1pbmRleDo5OTsKCWNvbG9yOiAjZmZmZmZmOwoJZm9udC13ZWlnaHQ6NDAwOwoJZm9udC1zaXplOjE2cHg7Cgl0ZXh0LWFsaWduOiBjZW50ZXI7Cglib3JkZXItcmFkaXVzOjUwJTsKCXBhZGRpbmctbGVmdDo3cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJbWFyZ2luLXRvcDogLTMwcHg7CgltYXJnaW4tbGVmdDotMzBweDsKCXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwogICAgLW1vei10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKCWJveC1zaGFkb3c6MHB4IDBweCAxNXB4IHJnYmEoMCwwLDAsMC4xMCk7Cn0KCi5tYWluLXNsaWRlciAubGluay1ib3ggLnZpZGVvLWJveCAucmlwcGxlLAoubWFpbi1zbGlkZXIgLmxpbmstYm94IC52aWRlby1ib3ggLnJpcHBsZTpiZWZvcmUsCi5tYWluLXNsaWRlciAubGluay1ib3ggLnZpZGVvLWJveCAucmlwcGxlOmFmdGVyIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgaGVpZ2h0OiA2MHB4OwogICAgd2lkdGg6IDYwcHg7CgltYXJnaW4tbGVmdDouNXB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAtby10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1MCU7CiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDUwJTsKICAgIC1tcy1ib3JkZXItcmFkaXVzOiA1MCU7CiAgICAtby1ib3JkZXItcmFkaXVzOiA1MCU7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNCk7CiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNCk7CiAgICAtbXMtYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC40KTsKICAgIC1vLWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNCk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjQpOwogICAgLXdlYmtpdC1hbmltYXRpb246IHJpcHBsZSAzcyBpbmZpbml0ZTsKICAgIC1tb3otYW5pbWF0aW9uOiByaXBwbGUgM3MgaW5maW5pdGU7CiAgICAtbXMtYW5pbWF0aW9uOiByaXBwbGUgM3MgaW5maW5pdGU7CiAgICAtby1hbmltYXRpb246IHJpcHBsZSAzcyBpbmZpbml0ZTsKICAgIGFuaW1hdGlvbjogcmlwcGxlIDNzIGluZmluaXRlOwp9CgoubWFpbi1zbGlkZXIgLmxpbmstYm94IC52aWRlby1ib3ggLnJpcHBsZTpiZWZvcmUgewogICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC45czsKICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAuOXM7CiAgICAtbXMtYW5pbWF0aW9uLWRlbGF5OiAuOXM7CiAgICAtby1hbmltYXRpb24tZGVsYXk6IC45czsKICAgIGFuaW1hdGlvbi1kZWxheTogLjlzOwogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KCi5tYWluLXNsaWRlciAubGluay1ib3ggLnZpZGVvLWJveCAucmlwcGxlOmFmdGVyIHsKICAgIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAuNnM7CiAgICAtbW96LWFuaW1hdGlvbi1kZWxheTogLjZzOwogICAgLW1zLWFuaW1hdGlvbi1kZWxheTogLjZzOwogICAgLW8tYW5pbWF0aW9uLWRlbGF5OiAuNnM7CiAgICBhbmltYXRpb24tZGVsYXk6IC42czsKICAgIGNvbnRlbnQ6ICIiOwogICAgcG9zaXRpb246IGFic29sdXRlOwp9CgpALXdlYmtpdC1rZXlmcmFtZXMgcmlwcGxlIHsKICAgIDcwJSB7Ym94LXNoYWRvdzogMCAwIDAgNzBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO30KICAgIDEwMCUge2JveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTt9Cn0KCkBrZXlmcmFtZXMgcmlwcGxlIHsKICAgIDcwJSB7Ym94LXNoYWRvdzogMCAwIDAgNzBweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApO30KICAgIDEwMCUge2JveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTt9Cn0KCi5tYWluLXNsaWRlciAub3dsLWRvdHN7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjExMHB4OwoJdG9wOjUwJTsKfQoKLm1haW4tc2xpZGVyIC5vd2wtZG90cyAub3dsLWRvdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6MTZweDsKCWhlaWdodDoxNnB4OwoJbWFyZ2luLWJvdHRvbToxMHB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJbWFyZ2luLWJvdHRvbToxMHB4Owp9CgoubWFpbi1zbGlkZXIgLm93bC1kb3RzIC5vd2wtZG90OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXJpZ2h0OjBweDsKCWJvdHRvbTowcHg7CglvcGFjaXR5OjA7Cglib3JkZXItcmFkaXVzOjUwcHg7Cglib3JkZXI6M3B4IHNvbGlkICMwMGFlZWY7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLm1haW4tc2xpZGVyIC5vd2wtZG90cyAub3dsLWRvdC5hY3RpdmU6YmVmb3JlLAoubWFpbi1zbGlkZXIgLm93bC1kb3RzIC5vd2wtZG90OmhvdmVyOjpiZWZvcmV7CglvcGFjaXR5OjE7Cn0KCi5tYWluLXNsaWRlciAub3dsLW5hdnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6NTAlOwoJei1pbmRleDoxOwoJd2lkdGg6MTAwJTsKCW9wYWNpdHk6MDsKCW1hcmdpbi10b3A6LTEwcHg7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLm1haW4tc2xpZGVyOmhvdmVyIC5vd2wtbmF2ewoJb3BhY2l0eToxOwp9CgoubWFpbi1zbGlkZXIgLm93bC1uYXYgLm93bC1wcmV2ewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjIwcHg7Cgl3aWR0aDo2MHB4OwoJaGVpZ2h0OjYwcHg7Cgljb2xvcjojZmZmZmZmOwoJbGluZS1oZWlnaHQ6NTZweDsKCWZvbnQtc2l6ZToyNHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglib3JkZXItcmFkaXVzOjUwcHg7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJYm9yZGVyOjJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNjApOwp9CgoubWFpbi1zbGlkZXIgLm93bC1uYXYgLm93bC1uZXh0ewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDoyMHB4OwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToyNHB4OwoJd2lkdGg6NjBweDsKCWhlaWdodDo2MHB4OwoJY29sb3I6I2ZmZmZmZjsKCWxpbmUtaGVpZ2h0OjU2cHg7Cglib3JkZXItcmFkaXVzOjUwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglib3JkZXI6MnB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC42MCk7Cn0KCi5tYWluLXNsaWRlciAub3dsLW5hdiAub3dsLXByZXY6aG92ZXIsCi5tYWluLXNsaWRlciAub3dsLW5hdiAub3dsLW5leHQ6aG92ZXJ7Cgljb2xvcjojZmZhYTAwOwp9CgovKiBTaWRlYmFyIEluZm8gQ29udGVudHMgKi8KCi5zaWRlYmFyLWluZm8tY29udGVudHN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnNpZGViYXItaW5mby1jb250ZW50cyAuY29udGVudC1pbm5lcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5sb2dvIHsKCXBhZGRpbmc6MHB4IDBweCA0MHB4Owp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5sb2dvIGltZ3sKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJbWF4LXdpZHRoOjEwMCU7CQp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5jb250ZW50LWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5jb250ZW50LWJveCBoMnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjIwcHg7Cgljb2xvcjojZmZmZmZmOwoJZm9udC13ZWlnaHQ6NTAwOwoJbWFyZ2luLWJvdHRvbToyMHB4Owp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5jb250ZW50LWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjE0cHg7Cgljb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuOTApOwoJbWFyZ2luLWJvdHRvbToyNXB4Owp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5jb250YWN0LWluZm97Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6NjBweDsKfQoKLnNpZGViYXItaW5mby1jb250ZW50cyAuY29udGVudC1pbm5lciAuY29udGFjdC1pbmZvIGgyewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MjBweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXdlaWdodDo1MDA7CgltYXJnaW4tYm90dG9tOjIwcHg7Cn0KCi5zaWRlYmFyLWluZm8tY29udGVudHMgLmNvbnRlbnQtaW5uZXIgLnNvY2lhbC1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6MjBweDsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLnNpZGViYXItaW5mby1jb250ZW50cyAuY29udGVudC1pbm5lciAuc29jaWFsLWJveCBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgltYXJnaW4tcmlnaHQ6NnB4OwoJdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIC1vLXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwp9Cgouc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5zb2NpYWwtYm94IGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjM2cHg7CgloZWlnaHQ6MzZweDsKCWNvbG9yOiMyMjIyMjI7Cgl6LWluZGV4OjE7Cglmb250LXNpemU6MTNweDsKCWxpbmUtaGVpZ2h0OjM2cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJvcmRlci1yYWRpdXM6NTAlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cn0KCi5jbG9zZS1zaWRlLXdpZGdldCwKLmNsb3NlLXNpZGUtd2lkZ2V0OmhvdmVyewoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToyNHB4Owp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCU1haW4gU2xpZGVyIFR3bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLm1haW4tc2xpZGVyLXR3b3sKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1zbGlkZXItdHdvIC5jb250ZW50LWJveGVkewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDo1NSU7CglmbG9hdDpyaWdodDsKfQoKLm1haW4tc2xpZGVyLXR3byAuc2xpZGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MjMwcHggMHB4IDI2MHB4OwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwoJYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OwoJYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOwp9CgoubWFpbi1zbGlkZXItdHdvIGgxewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC13ZWlnaHQ6NjAwOwoJbGluZS1oZWlnaHQ6MS4yZW07CgltYXJnaW4tYm90dG9tOjMwcHg7CglvcGFjaXR5OiAwOwoJdHJhbnNmb3JtOiBzY2FsZVkoMCk7Cgl0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDEwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwp9CgoubWFpbi1zbGlkZXItdHdvIC5hY3RpdmUgaDF7CglvcGFjaXR5OiAxOwoJdHJhbnNmb3JtOiBzY2FsZVkoMSk7Cgl0cmFuc2l0aW9uLWRlbGF5OiAzMDBtczsKfQoKLm1haW4tc2xpZGVyLXR3byAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4OwoJb3BhY2l0eTowOwoJdHJhbnNmb3JtOiBzY2FsZVkoMCk7Cgl0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7CglsaW5lLWhlaWdodDogMS45ZW07Cglmb250LXdlaWdodDo0MDA7CgltYXJnaW4tYm90dG9tOjQycHggIWltcG9ydGFudDsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cn0KCi5tYWluLXNsaWRlci10d28gLmFjdGl2ZSAudGV4dHsKCW9wYWNpdHk6IDE7Cgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsKCXRyYW5zaXRpb24tZGVsYXk6IDYwMG1zOwp9CgoubWFpbi1zbGlkZXItdHdvIC5saW5rLWJveHsKCW9wYWNpdHk6MDsKCXRyYW5zZm9ybTogc2NhbGVZKDApOwoJdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDEwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwp9CgoubWFpbi1zbGlkZXItdHdvIC5hY3RpdmUgLmxpbmstYm94ewoJb3BhY2l0eTogMTsKCXRyYW5zZm9ybTogc2NhbGVZKDEpOwoJdHJhbnNpdGlvbi1kZWxheTogOTAwbXM7Cn0KCi5tYWluLXNsaWRlci10d28gLmxpbmstYm94IC50aGVtZS1idG57CgltYXJnaW4tcmlnaHQ6MjBweDsKCWZsb2F0OmxlZnQ7Cn0KCi5tYWluLXNsaWRlci10d28gLm93bC1kb3RzewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDoxMTBweDsKCXRvcDo1MCU7CglkaXNwbGF5Om5vbmU7Cn0KCi5tYWluLXNsaWRlci10d28gLm93bC1kb3RzIC5vd2wtZG90ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxNnB4OwoJaGVpZ2h0OjE2cHg7CgltYXJnaW4tYm90dG9tOjEwcHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7CgltYXJnaW4tYm90dG9tOjEwcHg7Cn0KCi5tYWluLXNsaWRlci10d28gLm93bC1kb3RzIC5vd2wtZG90OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXJpZ2h0OjBweDsKCWJvdHRvbTowcHg7CglvcGFjaXR5OjA7Cglib3JkZXItcmFkaXVzOjUwcHg7Cglib3JkZXI6M3B4IHNvbGlkICMwYTE0OTU7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLm1haW4tc2xpZGVyLXR3byAub3dsLWRvdHMgLm93bC1kb3QuYWN0aXZlOmJlZm9yZSwKLm1haW4tc2xpZGVyLXR3byAub3dsLWRvdHMgLm93bC1kb3Q6aG92ZXI6OmJlZm9yZXsKCW9wYWNpdHk6MTsKfQoKLm1haW4tc2xpZGVyLXR3byAub3dsLW5hdnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6NTAlOwoJei1pbmRleDoxOwoJd2lkdGg6MTAwJTsKCW9wYWNpdHk6MDsKCW1hcmdpbi10b3A6LTEwcHg7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLm1haW4tc2xpZGVyLXR3bzpob3ZlciAub3dsLW5hdnsKCW9wYWNpdHk6MTsKfQoKLm1haW4tc2xpZGVyLXR3byAub3dsLW5hdiAub3dsLXByZXZ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MjBweDsKCXdpZHRoOjYwcHg7CgloZWlnaHQ6NjBweDsKCWNvbG9yOiMwYTE0OTU7CglsaW5lLWhlaWdodDo1NnB4OwoJZm9udC1zaXplOjI0cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJvcmRlci1yYWRpdXM6NTBweDsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglib3JkZXI6MnB4IHNvbGlkICMwYTE0OTU7Cn0KCi5tYWluLXNsaWRlci10d28gLm93bC1uYXYgLm93bC1uZXh0ewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDoyMHB4OwoJY29sb3I6IzBhMTQ5NTsKCWZvbnQtc2l6ZToyNHB4OwoJd2lkdGg6NjBweDsKCWhlaWdodDo2MHB4OwoJY29sb3I6IzBhMTQ5NTsKCWxpbmUtaGVpZ2h0OjU2cHg7Cglib3JkZXItcmFkaXVzOjUwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglib3JkZXI6MnB4IHNvbGlkICMwYTE0OTU7Cn0KCi5tYWluLXNsaWRlci10d28gLm93bC1uYXYgLm93bC1wcmV2OmhvdmVyLAoubWFpbi1zbGlkZXItdHdvIC5vd2wtbmF2IC5vd2wtbmV4dDpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7CgliYWNrZ3JvdW5kLWNvbG9yOiMwYTE0OTU7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJTWFpbiBTbGlkZXIgVGhyZWUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCgoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglGZWF0dXJlZCBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouZmVhdHVyZWQtc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgovKkN1c3RvbSBTZWxlY3QqLwoKLmZvcm0tZ3JvdXAgLnVpLXNlbGVjdG1lbnUtYnV0dG9uLnVpLWJ1dHRvbnsKCXdpZHRoOjEwMCU7Cglmb250LXNpemU6MTRweDsKCWZvbnQtc3R5bGU6bm9ybWFsOwoJaGVpZ2h0OjUwcHg7CglwYWRkaW5nOjEwcHggMjBweCAxMHB4IDIwcHg7CglsaW5lLWhlaWdodDoyOHB4OwoJY29sb3I6Izc3Nzc3NzsKCWJvcmRlcjogbm9uZTsKCWJvcmRlci1yYWRpdXM6MHB4OwoJYmFja2dyb3VuZDojZmZmZmZmOwoJYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOwp9CgouZm9ybS1ncm91cCAudWktYnV0dG9uIC51aS1pY29uewoJYmFja2dyb3VuZDpub25lOwoJcG9zaXRpb246cmVsYXRpdmU7Cgl0b3A6MnB4OwoJdGV4dC1pbmRlbnQ6MHB4OwoJY29sb3I6IzMzMzMzMzsJCn0KCi5mb3JtLWdyb3VwIC51aS1idXR0b24gLnVpLWljb246YmVmb3JlewoJZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7Cgljb250ZW50OiAiXGYxMDciOwoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cgl0b3A6MnB4ICFpbXBvcnRhbnQ7Cgl0b3A6MTNweDsKCXdpZHRoOjEwcHg7CgloZWlnaHQ6MjBweDsKCWRpc3BsYXk6YmxvY2s7Cgljb2xvcjojOTk5OTk5OwoJbGluZS1oZWlnaHQ6MjBweDsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6bm9ybWFsOwoJdGV4dC1hbGlnbjpjZW50ZXI7Cgl6LWluZGV4OjU7Cglmb250LXdlaWdodDo4MDA7Cn0KCi51aS13aWRnZXQudWktd2lkZ2V0LWNvbnRlbnR7CgkKfQoKLnVpLW1lbnUgLnVpLW1lbnUtaXRlbXsKCWZvbnQtc2l6ZToxNHB4Owp9CgoudWktbWVudSAudWktbWVudS1pdGVtOmxhc3QtY2hpbGR7Cglib3JkZXI6bm9uZTsJCn0KCi51aS1zdGF0ZS1hY3RpdmUsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlewoJYmFja2dyb3VuZDojYzIyYTJhOwoJYm9yZGVyLWNvbG9yOiNjMjJhMmE7Cn0KCi51aS1tZW51IC51aS1tZW51LWl0ZW0td3JhcHBlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXBhZGRpbmc6OHB4IDIwcHg7Cglmb250LXNpemU6MTRweDsKCWxpbmUtaGVpZ2h0OjI0cHg7Cn0KCi51aS1tZW51LWl0ZW06aG92ZXJ7CgliYWNrZ3JvdW5kLWNvbG9yOiNjMjJhMmE7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJU2VhcmNoIFBvcHVwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouc2VhcmNoLXBvcHVwewoJcG9zaXRpb246IGZpeGVkOwoJbGVmdDogMDsKCXRvcDogMDsKCWhlaWdodDogMTAwdmg7Cgl3aWR0aDogMTAwJTsKCXotaW5kZXg6IDk5OTk5OwoJbWFyZ2luLXRvcDogLTU0MHB4OwoJdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKCWJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMC45MCk7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC44NjAsIDAuMDAwLCAwLjA3MCwgMS4wMDApOwogICAgLW1vei10cmFuc2l0aW9uOiBhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuODYwLCAwLjAwMCwgMC4wNzAsIDEuMDAwKTsKICAgIC1vLXRyYW5zaXRpb246IGFsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC44NjAsIDAuMDAwLCAwLjA3MCwgMS4wMDApOwogICAgdHJhbnNpdGlvbjogYWxsIDE1MDBtcyBjdWJpYy1iZXppZXIoMC44NjAsIDAuMDAwLCAwLjA3MCwgMS4wMDApOyAvKiBlYXNlSW5PdXRRdWludCAqLwogICAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuODYwLCAwLjAwMCwgMC4wNzAsIDEuMDAwKTsKICAgIC1tb3otdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjg2MCwgMC4wMDAsIDAuMDcwLCAxLjAwMCk7CiAgICAtby10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuODYwLCAwLjAwMCwgMC4wNzAsIDEuMDAwKTsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC44NjAsIDAuMDAwLCAwLjA3MCwgMS4wMDApOyAvKiBlYXNlSW5PdXRRdWludCAqLwp9Cgouc2lkZW5hdi1iYXItdmlzaWJsZSAuc2VhcmNoLXBvcHVwewoJd2lkdGg6IDgwJTsKfQoKLnNlYXJjaC1wb3B1cDpiZWZvcmV7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwOwoJdG9wOiAxMDAlOwoJd2lkdGg6IDEwMCU7CgloZWlnaHQ6IDU2MHB4OwoJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29ucy93YXZlcy1zaGFwZS5wbmcpOwoJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKCWJhY2tncm91bmQtc2l6ZTogY292ZXI7CgltYXJnaW4tdG9wOiAwcHg7Cgljb250ZW50OiAiIjsKfQoKLnNlYXJjaC1hY3RpdmUgLnNlYXJjaC1wb3B1cHsKCXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7CgltYXJnaW4tdG9wOiAwOwp9Cgouc2VhcmNoLXBvcHVwIC5jbG9zZS1zZWFyY2h7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwOwoJcmlnaHQ6IDA7Cgl0b3A6IDc1JTsKCW1hcmdpbjogMCBhdXRvOwoJbWFyZ2luLXRvcDogLTIwMHB4OwoJYm9yZGVyLXJhZGl1czogNTAlOwoJdGV4dC1hbGlnbjogY2VudGVyOwoJYmFja2dyb3VuZC1jb2xvcjogI2MxMmIyOTsKCXdpZHRoOiA3MHB4OwoJY3Vyc29yOnBvaW50ZXI7Cglib3gtc2hhZG93OiAwIDAgMTBweCByZ2JhKDAsMCwwLDAuMDUpOwoJYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICNmZmZmZmY7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCA1MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDUwMG1zIGVhc2U7CglvcGFjaXR5OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwp9Cgouc2VhcmNoLXBvcHVwIC5jbG9zZS1zZWFyY2ggc3BhbnsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWRpc3BsYXk6IGJsb2NrOwoJaGVpZ2h0OiA3MHB4OwoJd2lkdGg6IDcwcHg7Cglmb250LXNpemU6IDMwcHg7CglsaW5lLWhlaWdodDogNzBweDsKCWNvbG9yOiAjZmZmZmZmOwp9Cgouc2VhcmNoLWFjdGl2ZSAuc2VhcmNoLXBvcHVwIC5jbG9zZS1zZWFyY2h7Cgl2aXNpYmlsaXR5OiB2aXNpYmxlOwoJb3BhY2l0eTogMTsKCXRvcDogNTAlOwoJLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAxNTAwbXM7CgktbW96LXRyYW5zaXRpb24tZGVsYXk6IDE1MDBtczsKCS1tcy10cmFuc2l0aW9uLWRlbGF5OiAxNTAwbXM7Cgktby10cmFuc2l0aW9uLWRlbGF5OiAxNTAwbXM7Cgl0cmFuc2l0aW9uLWRlbGF5OiAxNTAwbXM7Cn0KCi5zZWFyY2gtcG9wdXAgZm9ybXsKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCW1heC13aWR0aDogNzAwcHg7Cgl0b3A6IDUwJTsKCWxlZnQ6IDE1cHg7CglyaWdodDogMTVweDsKCW1hcmdpbjotMzVweCBhdXRvIDA7Cgl0cmFuc2Zvcm06IHNjYWxlWCgwKTsKCXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6ICMxMTExMTE7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cn0KCi5zZWFyY2gtYWN0aXZlIC5zZWFyY2gtcG9wdXAgZm9ybXsKCXRyYW5zZm9ybTogc2NhbGVYKDEpOwoJLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiAxMjAwbXM7CgktbW96LXRyYW5zaXRpb24tZGVsYXk6IDEyMDBtczsKCS1tcy10cmFuc2l0aW9uLWRlbGF5OiAxMjAwbXM7Cgktby10cmFuc2l0aW9uLWRlbGF5OiAxMjAwbXM7Cgl0cmFuc2l0aW9uLWRlbGF5OiAxMjAwbXM7Cn0KCi5zZWFyY2gtcG9wdXAgLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbjowcHg7CQoJb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLnNlYXJjaC1wb3B1cCAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5zZWFyY2gtcG9wdXAgLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0ic2VhcmNoIl17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cglmb250LXNpemU6MThweDsKCWxpbmUtaGVpZ2h0OiA1MHB4OwoJY29sb3I6IzAwMDAwMDsKCWhlaWdodDo3MHB4OwoJd2lkdGg6MTAwJTsKCXBhZGRpbmc6IDEwcHggMzBweDsKCWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJZm9udC13ZWlnaHQ6NTAwOwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLnNlYXJjaC1wb3B1cCAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJzdWJtaXQiXSwKLnNlYXJjaC1wb3B1cCAuZm9ybS1ncm91cCBidXR0b257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjMwcHg7Cgl0b3A6MHB4OwoJaGVpZ2h0OjcwcHg7CglsaW5lLWhlaWdodDogNzBweDsKCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglmb250LXNpemU6MjRweDsKCWNvbG9yOiMwMDAwMDA7CglwYWRkaW5nOiAwOwoJY3Vyc29yOnBvaW50ZXI7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9Cgouc2VhcmNoLXBvcHVwIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InN1Ym1pdCJdOmhvdmVyLAouc2VhcmNoLXBvcHVwIC5mb3JtLWdyb3VwIGJ1dHRvbjpob3ZlcnsKCWNvbG9yOiAjMDAwMDAwOwp9Cgouc2VhcmNoLXBvcHVwIGlucHV0OjpwbGFjZWhvbGRlciwKLnNlYXJjaC1wb3B1cCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Cgljb2xvcjojMDAwMDAwOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCQkJTW9iaWxlIE1lbnUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5uYXYtb3V0ZXIgLm1vYmlsZS1uYXYtdG9nZ2xlcnsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWZsb2F0OiByaWdodDsKCWZvbnQtc2l6ZTogNDBweDsKCWxpbmUtaGVpZ2h0OiA1MHB4OwoJY3Vyc29yOiBwb2ludGVyOwoJY29sb3I6I2ZmZmZmZjsKCWRpc3BsYXk6IG5vbmU7Cn0KCi5tb2JpbGUtbWVudXsKCXBvc2l0aW9uOiBmaXhlZDsKCXJpZ2h0OiAwOwoJdG9wOiAwOwoJd2lkdGg6IDMwMHB4OwoJcGFkZGluZy1yaWdodDozMHB4OwoJbWF4LXdpZHRoOjEwMCU7CgloZWlnaHQ6IDEwMCU7CglvcGFjaXR5OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwoJei1pbmRleDogOTk5OTk5Owp9CgoubW9iaWxlLW1lbnUgLm5hdi1sb2dvewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjIwcHggMjBweDsKCXRleHQtYWxpZ246bGVmdDsJCn0KCi5tb2JpbGUtbWVudSAubmF2LWxvZ28gaW1newoJbWF4LXdpZHRoOjIwMHB4Owp9CgoubW9iaWxlLW1lbnUtdmlzaWJsZXsKCW92ZXJmbG93OiBoaWRkZW47Cn0KCi5tb2JpbGUtbWVudS12aXNpYmxlIC5tb2JpbGUtbWVudXsKCW9wYWNpdHk6IDE7Cgl2aXNpYmlsaXR5OiB2aXNpYmxlOwp9CgoubW9iaWxlLW1lbnUgLm1lbnUtYmFja2Ryb3B7Cglwb3NpdGlvbjogZml4ZWQ7CglyaWdodDogMDsKCXRvcDogMDsKCXdpZHRoOiAxMDAlOwoJaGVpZ2h0OiAxMDAlOwoJei1pbmRleDogMTsKCWJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC45MCk7Cgktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDElKTsKCS1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAxJSk7Cgl0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAxJSk7Cn0KCi5tb2JpbGUtbWVudS12aXNpYmxlIC5tb2JpbGUtbWVudSAubWVudS1iYWNrZHJvcHsKCW9wYWNpdHk6IDE7Cgl2aXNpYmlsaXR5OiB2aXNpYmxlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjdzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuN3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjdzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjdzIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAwLjdzIGVhc2U7Cgktd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7CgktbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsKCXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7Cn0KCi5tb2JpbGUtbWVudSAubWVudS1ib3h7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwcHg7Cgl0b3A6IDBweDsKCXdpZHRoOiAxMDAlOwoJaGVpZ2h0OiAxMDAlOwoJbWF4LWhlaWdodDogMTAwJTsKCW92ZXJmbG93LXk6IGF1dG87CgliYWNrZ3JvdW5kOiAjZmZmZmZmOwoJcGFkZGluZzogMHB4IDBweDsKCXotaW5kZXg6IDU7CglvcGFjaXR5OiAwOwoJdmlzaWJpbGl0eTogaGlkZGVuOwoJYm9yZGVyLXJhZGl1czogMHB4OwoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAxJSk7CgktbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMSUpOwoJdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMSUpOwp9CgoubW9iaWxlLW1lbnUtdmlzaWJsZSAubW9iaWxlLW1lbnUgLm1lbnUtYm94ewoJb3BhY2l0eTogMTsKCXZpc2liaWxpdHk6IHZpc2libGU7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuN3MgZWFzZSA1MDBtczsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC43cyBlYXNlIDUwMG1zOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuN3MgZWFzZSA1MDBtczsKCS1vLXRyYW5zaXRpb246YWxsIDAuN3MgZWFzZSA1MDBtczsKCXRyYW5zaXRpb246YWxsIDAuN3MgZWFzZSA1MDBtczsKCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsKCS1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpOwoJdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTsKfQoKLm1vYmlsZS1tZW51IC5jbG9zZS1idG57Cglwb3NpdGlvbjogYWJzb2x1dGU7CglyaWdodDogM3B4OwoJdG9wOiAzcHg7CglsaW5lLWhlaWdodDogMzBweDsKCXdpZHRoOiAzMHB4OwoJdGV4dC1hbGlnbjogY2VudGVyOwoJZm9udC1zaXplOiAxNHB4OwoJY29sb3I6ICMyMDIwMjA7CgljdXJzb3I6IHBvaW50ZXI7Cgl6LWluZGV4OiAxMDsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC41cyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjVzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC41cyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC41cyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMC41cyBlYXNlOwoJLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpOwoJLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTBweCk7Cgl0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpOwp9CgoubW9iaWxlLW1lbnUtdmlzaWJsZSAubW9iaWxlLW1lbnUgLmNsb3NlLWJ0bnsKCS13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7CgktbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDBweCk7Cgl0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTsKfQoKLm1vYmlsZS1tZW51IC5jbG9zZS1idG46aG92ZXJ7CglvcGFjaXR5OiAwLjUwOwp9CgoubW9iaWxlLW1lbnUgLm5hdmlnYXRpb257Cglwb3NpdGlvbjogcmVsYXRpdmU7CglkaXNwbGF5OiBibG9jazsKCXdpZHRoOjEwMCU7Cglib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEwKTsKfQoKLm1vYmlsZS1tZW51IC5uYXZpZ2F0aW9uIGxpewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogYmxvY2s7Cglib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEwKTsKfQoKLm1vYmlsZS1tZW51IC5uYXZpZ2F0aW9uIGxpID4gdWwgPiBsaTpsYXN0LWNoaWxkewoJYm9yZGVyLWJvdHRvbTogbm9uZTsKfQoKLm1vYmlsZS1tZW51IC5uYXZpZ2F0aW9uIGxpID4gdWwgPiBsaTpmaXJzdC1jaGlsZHsKCWJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTApOwp9CgoubW9iaWxlLW1lbnUgLm5hdmlnYXRpb24gbGkgPiBhewoJcG9zaXRpb246IHJlbGF0aXZlOwoJZGlzcGxheTogYmxvY2s7CglsaW5lLWhlaWdodDogMjRweDsKCXBhZGRpbmc6IDEwcHggMjBweDsKCWZvbnQtc2l6ZTogMTVweDsKCWNvbG9yOiAjNDA0MDQwOwoJdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KCi5tb2JpbGUtbWVudSAubmF2aWdhdGlvbiBsaTpob3ZlciA+IGEsCi5tb2JpbGUtbWVudSAubmF2aWdhdGlvbiBsaS5jdXJyZW50ID4gYXsKCWNvbG9yOiNjMzMxMjc7Cn0KCi5tb2JpbGUtbWVudSAubmF2aWdhdGlvbiBsaS5kcm9wZG93biAuZHJvcGRvd24tYnRuewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6NDRweDsKCWhlaWdodDo0NHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjQ0cHg7Cgljb2xvcjojNDA0MDQwOwoJY3Vyc29yOnBvaW50ZXI7Cgl6LWluZGV4OjU7Cn0KCi5tb2JpbGUtbWVudSAubmF2aWdhdGlvbiBsaS5kcm9wZG93biAuZHJvcGRvd24tYnRuOmFmdGVyewoJY29udGVudDonJzsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6MTBweDsKCXdpZHRoOjFweDsKCWhlaWdodDoyNHB4OwoJYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMCk7Cn0KCi5tb2JpbGUtbWVudSAubmF2aWdhdGlvbiBsaSA+IHVsLAoubW9iaWxlLW1lbnUgLm5hdmlnYXRpb24gbGkgPiB1bCA+IGxpID4gdWx7CglkaXNwbGF5OiBub25lOwp9Cgouc3RpY2t5LWhlYWRlciAubmF2YmFyLWhlYWRlcnsKCWRpc3BsYXk6bm9uZTsKfQoKCgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVNlcnZpY2VzIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5zZXJ2aWNlcy1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zZXJ2aWNlcy1zZWN0aW9uIC5jb25zdWx0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOnJpZ2h0OwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLXRvcDoxNXB4Owp9Cgouc2VydmljZXMtc2VjdGlvbiAuY29uc3VsdCBhewoJZm9udC13ZWlnaHQ6NjAwOwoJY29sb3I6IzAwYWVlZjsKfQoKLnNlcnZpY2VzLXNlY3Rpb24gLmlubmVyLWNvbnRhaW5lcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLXRvcDotMTYwcHg7Cn0KCi5zZXJ2aWNlcy1zZWN0aW9uIC5wYXRlcm4tbGF5ZXJ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjEyMHB4OwoJaGVpZ2h0OjM3MHB4OwoJd2lkdGg6NTAlOwp9Cgouc2VydmljZXMtc2VjdGlvbiAub3dsLW5hdnsKCWRpc3BsYXk6bm9uZTsKfQoKLnNlcnZpY2VzLXNlY3Rpb24gLm93bC1kb3RzewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9Cgouc2VydmljZXMtc2VjdGlvbiAub3dsLWRvdHMgLm93bC1kb3R7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwcHg7CgloZWlnaHQ6MTBweDsKCW1hcmdpbi1sZWZ0OjEwcHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6IzIyMjIyMjsKfQoKLnNlcnZpY2VzLXNlY3Rpb24gLm93bC1kb3RzIC5vd2wtZG90LmFjdGl2ZSwKLnNlcnZpY2VzLXNlY3Rpb24gLm93bC1kb3RzIC5vd2wtZG90OmhvdmVyewoJYmFja2dyb3VuZC1jb2xvcjojYzMzMjI4Owp9CgovKiBTZXJ2aWNlIEJsb2NrICovCgouc2VydmljZS1ibG9ja3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwoJbWFyZ2luLWJvdHRvbTo2MHB4Owp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjQ1cHggNTVweCA3MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cglib3gtc2hhZG93OjBweCAwcHggMTBweCByZ2JhKDAsMCwwLDAuMTUpOwp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjBweDsKCWhlaWdodDoxMDAlOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgY29sb3Itc3RvcCgwLCAjRDE2NDFBKSwgY29sb3Itc3RvcCgxMDAsICMwMGFlZWYpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3g6aG92ZXI6OmJlZm9yZXsKCXdpZHRoOjEwMCU7Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3ggLmNvbnRlbnQtYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglvdmVyZmxvdzpoaWRkZW47Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3ggLmljb24tYm94ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3ggLmljb24tYm94IC5pY29uewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDoxZW07Cgljb2xvcjojZDE2NDFiOwoJbGluZS1oZWlnaHQ6MWVtOwoJZm9udC1zaXplOjcwcHg7CgliYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNkMTY0MWIgMCUsICNjMTI4MmEgMTAwJSk7CiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDsKICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94OmhvdmVyIC5pY29uLWJveCAuaWNvbnsKCWNvbG9yOiNmZmZmZmY7Cgktd2Via2l0LXRleHQtZmlsbC1jb2xvcjppbmhlcml0Owp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94IGg1ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo2MDA7CgltYXJnaW4tdG9wOjE2cHg7CgltYXJnaW4tYm90dG9tOjIycHg7CglwYWRkaW5nLWJvdHRvbToxNHB4Owp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94IGg1IGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7CglsaW5lLWhlaWdodDoxLjNlbTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94IGg1IGE6aG92ZXJ7Cgljb2xvcjojZDA2MzFhOwp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94OmhvdmVyIC50ZXh0LAouc2VydmljZS1ibG9jayAuaW5uZXItYm94OmhvdmVyIGg1IGF7Cgljb2xvcjojZmZmZmZmOwp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94IGg1OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJYm90dG9tOjBweDsKCWhlaWdodDozcHg7Cgl3aWR0aDo0NHB4OwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgI0QxNjQxQSksIGNvbG9yLXN0b3AoMTAwLCAjMDBhZWVmKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwp9Cgouc2VydmljZS1ibG9jayAuaW5uZXItYm94OmhvdmVyIGg1OmJlZm9yZXsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZmZmZiAwJSwgI2ZmZmZmZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNmZmZmZmYgMCUsICNmZmZmZmYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZmZmZiAwJSwgI2ZmZmZmZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAsICNmZmZmZmYpLCBjb2xvci1zdG9wKDEwMCwgI2ZmZmZmZikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI2ZmZmZmZiAwJSwgI2ZmZmZmZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZmZmZiAwJSwgI2ZmZmZmZiAxMDAlKTsKfQoKLnNlcnZpY2UtYmxvY2sgLmlubmVyLWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS44ZW07Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLnNlcnZpY2UtYmxvY2sgLmlubmVyLWJveCAuYmlnLWljb257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJYm90dG9tOjBweDsKCWxpbmUtaGVpZ2h0OjFlbTsKCWNvbG9yOiNkMTY0MWI7CglsaW5lLWhlaWdodDoxZW07Cglmb250LXNpemU6MTEwcHg7CglvcGFjaXR5OjAuMjsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZDE2NDFiIDAlLCAjYzEyODJhIDEwMCUpOwogICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7CiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3g6aG92ZXIgLmJpZy1pY29uewoJY29sb3I6I2ZmZmZmZjsKCS13ZWJraXQtdGV4dC1maWxsLWNvbG9yOmluaGVyaXQ7Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3ggLmFycm93LWJveHsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6LTQwcHg7Cglib3R0b206LTI1cHg7Cgl3aWR0aDo1MHB4OwoJaGVpZ2h0OjUwcHg7CglvcGFjaXR5OjA7Cgljb2xvcjojMjIyMjIyOwoJbGluZS1oZWlnaHQ6NTBweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJZm9udC13ZWlnaHQ6NzAwOwoJZm9udC1zaXplOjIwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCWJveC1zaGFkb3c6MHB4IDBweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7Cn0KCi5zZXJ2aWNlLWJsb2NrIC5pbm5lci1ib3g6aG92ZXIgLmFycm93LWJveHsKCXJpZ2h0OjMwcHg7CglvcGFjaXR5OjE7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJSW50cm9kdWN0aW9uIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxMjBweCAwcHggMTIwcHg7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuaW1hZ2UtY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjQwcHg7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuaW1hZ2UtY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6NTVweCAzNXB4IDBweCA0MHB4Owp9CgouaW50cm9kdWN0aW9uLXNlY3Rpb24gLmltYWdlLWNvbHVtbiAuaW5uZXItY29sdW1uOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCXJpZ2h0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDo0NDhweDsKCWhlaWdodDo1NzBweDsKCWJhY2tncm91bmQ6dXJsKC4uL2ltYWdlcy9iYWNrZ3JvdW5kL3BhdHRlcm4tMi5wbmcpOwoJYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Owp9CgouaW50cm9kdWN0aW9uLXNlY3Rpb24gLmltYWdlLWNvbHVtbiAuaW1hZ2V7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmludHJvZHVjdGlvbi1zZWN0aW9uIC5pbWFnZS1jb2x1bW4gLmltYWdlIGltZ3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6MTAwJTsKCWRpc3BsYXk6YmxvY2s7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuaW1hZ2UtY29sdW1uIC5pbWFnZSAucHJvamVjdHN7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6LTQwcHg7Cglib3R0b206LTU1cHg7CglwYWRkaW5nOjIycHggNjBweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MjRweDsKCWxpbmUtaGVpZ2h0OjEuNGVtOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgY29sb3Itc3RvcCgwLCAjRDE2NDFBKSwgY29sb3Itc3RvcCgxMDAsICMwMGFlZWYpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuY29udGVudC1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLmludHJvZHVjdGlvbi1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuY29udGVudC1jb2x1bW4gLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjVweDsKfQoKLmludHJvZHVjdGlvbi1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAudGV4dCBwewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjdlbTsKCW1hcmdpbi1ib3R0b206MThweDsKfQoKLmludHJvZHVjdGlvbi1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAudGV4dCBwOmxhc3QtY2hpbGR7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLmludHJvZHVjdGlvbi1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAuY29udGFjdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy10b3A6MjZweDsKCW1hcmdpbi10b3A6MzBweDsKCWNvbG9yOiNjMTI4MmE7Cglmb250LXdlaWdodDo3MDA7Cglmb250LXNpemU6MzBweDsKCWJvcmRlci10b3A6MXB4IHNvbGlkICNlMWUxZTE7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuY29udGVudC1jb2x1bW4gLmNvbnRhY3QgLnF1ZXN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMDBhZWVmOwoJZm9udC1zaXplOjE4cHg7Cglmb250LXdlaWdodDo2MDA7CglkaXNwbGF5OmJsb2NrOwp9CgouaW50cm9kdWN0aW9uLXNlY3Rpb24gLmNvbnRlbnQtY29sdW1uIC5jb250YWN0IGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNjMTI4MmE7Cglmb250LXdlaWdodDo3MDA7CglsaW5lLWhlaWdodDoxLjZlbTsKCW1hcmdpbi10b3A6MTBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuY29udGVudC1jb2x1bW4gLmNvbnRhY3QgYTpob3ZlcnsKCWNvbG9yOiMwMGFlZWY7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJQ291bnRlciBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouY291bnRlci1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjkwcHggMHB4IDYwcHg7CgliYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7CgliYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7CgliYWNrZ3JvdW5kLXNpemU6Y292ZXI7Cn0KCi5jb3VudGVyLXNlY3Rpb246YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJcmlnaHQ6MHB4OwoJYm90dG9tOjBweDsKCWJhY2tncm91bmQtY29sb3I6cmdiYSgzNCwzNCwzNCwwLjgwKTsKfQoKLmNvdW50ZXItc2VjdGlvbiAuc2VjLXRpdGxlewoJbWFyZ2luLWJvdHRvbTo1MHB4Owp9CgovKkZhY3QgQ291bnRlciovCgouZmFjdC1jb3VudGVyewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5mYWN0LWNvdW50ZXIgLmNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDo1OwoJbWFyZ2luLWJvdHRvbTozMHB4Owp9CgouZmFjdC1jb3VudGVyIC5jb2x1bW4gLmlubmVyewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoyMzBweDsKCWhlaWdodDoyMzBweDsKCW1hcmdpbjowIGF1dG87Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCXBhZGRpbmc6NjVweCAyMHB4OwoJb3ZlcmZsb3c6aGlkZGVuOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cglib3JkZXItcmFkaXVzOjE1MHB4IDE1MHB4IDBweCAxNTBweDsKCWJhY2tncm91bmQtY29sb3I6IzM2MzYzNjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5mYWN0LWNvdW50ZXIgLmNvbHVtbiAuaW5uZXI6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MHB4OwoJaGVpZ2h0OjEwMCU7Cgl0cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgI0QxNjQxQSksIGNvbG9yLXN0b3AoMTAwLCAjMDBhZWVmKSk7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwp9CgouZmFjdC1jb3VudGVyIC5jb2x1bW4gLmlubmVyOmhvdmVyOjpiZWZvcmV7Cgl3aWR0aDoxMDAlOwp9CgouZmFjdC1jb3VudGVyIC5jb3VudC1vdXRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NzAwOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZTogNDhweDsKCWxpbmUtaGVpZ2h0OjFlbTsKfQoKLmZhY3QtY291bnRlciAuY291bnQtb3V0ZXIgLmNvdW50LXRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtd2VpZ2h0OjcwMDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6IDQ4cHg7Cn0KCi5mYWN0LWNvdW50ZXIgLmNvbHVtbiAuY291bnRlci10aXRsZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjI2cHg7Cglmb250LXdlaWdodDo1MDA7Cgljb2xvcjojZmZmZmZmOwoJbWFyZ2luLXRvcDoxOHB4OwoJbGluZS1oZWlnaHQ6MS4zZW07Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwoJZGlzcGxheTpibG9jazsKfQoKLmZhY3QtY291bnRlciAuY291bnQtb3V0ZXIgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTRweDsKCW1hcmdpbi10b3A6NnB4OwoJZm9udC13ZWlnaHQ6NDAwOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUNvdW50ZXIgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnBvcnRmb2xpby1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDEwMHB4Owp9CgoucG9ydGZvbGlvLXNlY3Rpb24gLmZpbHRlcnN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NTVweDsKCXRleHQtYWxpZ246Y2VudGVyOwp9CgoucG9ydGZvbGlvLXNlY3Rpb24gLmZpbHRlcnMgLmZpbHRlci10YWJzewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjBweCAyNXB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Cglib3JkZXI6MXB4IHNvbGlkICNlMWUxZTE7Cn0KCi5wb3J0Zm9saW8tc2VjdGlvbiAuZmlsdGVycyBsaXsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGNvbG9yOiAjNjY2NjY2OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKCXBhZGRpbmc6OXB4IDIwcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CiAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKfQoKLnBvcnRmb2xpby1zZWN0aW9uIC5maWx0ZXJzIC5maWx0ZXIuYWN0aXZlLAoucG9ydGZvbGlvLXNlY3Rpb24gLmZpbHRlcnMgLmZpbHRlcjpob3ZlcnsKICAgIGNvbG9yOiNmZmZmZmY7CgliYWNrZ3JvdW5kLWNvbG9yOiNjZjVkMWM7Cn0KCi5wb3J0Zm9saW8tc2VjdGlvbiAudGV4dC1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnBvcnRmb2xpby1zZWN0aW9uIC50ZXh0LWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4OwoJcGFkZGluZzoxNHB4IDM2cHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJvcmRlcjoxcHggZGFzaGVkICNhMWExYTE7Cn0KCi5wb3J0Zm9saW8tc2VjdGlvbiAudGV4dC1ib3ggLnRleHQgYXsKCWZvbnQtd2VpZ2h0OjYwMDsKfQoKLyogUHJvamVjdCBCbG9jayBUaHJlZSAqLwoKLnByb2plY3QtYmxvY2t7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLnByb2plY3QtYmxvY2sgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSBpbWd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7CglkaXNwbGF5OmJsb2NrOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3h7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjEwMCU7CgloZWlnaHQ6MTAwJTsKCWRpc3BsYXk6YmxvY2s7CglwYWRkaW5nOjQwcHggNDBweDsKCS13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlOwoJdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlOwoJdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTsKCXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZTsKCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTsKCS1tcy10cmFuc2Zvcm06IHNjYWxlKDAsIDEpOwoJdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTsKCS13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CgktbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7Cgl0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKfQoKLnByb2plY3QtYmxvY2sgLmlubmVyLWJveDpob3ZlciAuaW1hZ2UgLm92ZXJsYXktYm94ewoJLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwoJLW1zLXRyYW5zZm9ybTogc2NhbGUoMSwgMSk7Cgl0cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwoJLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7CgktbXMtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwoJdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3g6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MTAwJTsKCWhlaWdodDoxMDAlOwoJb3BhY2l0eTowLjk7CglkaXNwbGF5OmJsb2NrOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMCwgI0QxNjQxQSksIGNvbG9yLXN0b3AoMTAwLCAjMDBhZWVmKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLm92ZXJsYXktaW5uZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWhlaWdodDoxMDAlOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLnRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7CgltYXJnaW4tYm90dG9tOjhweDsKCWxldHRlci1zcGFjaW5nOjFweDsKCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKfQoKLnByb2plY3QtYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC13ZWlnaHQ6NjAwOwoJbGluZS1oZWlnaHQ6MS4zZW07Cn0KCi5wcm9qZWN0LWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCBoNCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLnNvY2lhbC1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6MjBweDsKfQoKLnByb2plY3QtYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtYm94IGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxOHB4OwoJY29sb3I6I2ZmZmZmZjsKCW1hcmdpbi1yaWdodDoxOHB4OwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLnByb2plY3QtYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtYm94IGE6aG92ZXJ7Cgljb2xvcjojMjIyMjIyOwp9CgoucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLnBsdXN7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJYm90dG9tOjBweDsKCXdpZHRoOjUwcHg7CgloZWlnaHQ6NTBweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MThweDsKCWxpbmUtaGVpZ2h0OjUwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWZvbnQtd2VpZ2h0OjcwMDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYmFja2dyb3VuZC1jb2xvcjojMjIyMjIyOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLnByb2plY3QtYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5wbHVzOmhvdmVyewoJYmFja2dyb3VuZC1jb2xvcjojOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVRlc3RpbW9uaWFsIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi50ZXN0aW1vbmlhbC1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDEwMHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOwp9CgoudGVzdGltb25pYWwtc2VjdGlvbiAucGF0ZXJuLWxheWVyewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cgl0b3A6MHB4OwoJbGVmdDowcHg7Cglib3R0b206MHB4OwoJYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OwoJYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCB0b3A7Cn0KCi50ZXN0aW1vbmlhbC1zZWN0aW9uIC5jbGllbnQtdGh1bWItb3V0ZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1heC13aWR0aDo5MDBweDsKCW92ZXJmbG93OmhpZGRlbjsKCXBhZGRpbmctdG9wOjQ1cHg7CgltYXJnaW46MCBhdXRvOwoJbWFyZ2luLWJvdHRvbTozMHB4Owp9CgoudGVzdGltb25pYWwtc2VjdGlvbiAuY2xpZW50LXRodW1iLW91dGVyIC5vd2wtaXRlbS5hY3RpdmUgLnRodW1iLWl0ZW0gLnRodW1iLWJveHsKCXotaW5kZXg6OTk5OwoJLW8tdHJhbnNmb3JtOiBzY2FsZSgxLjEsMS4xKTsKCS1tcy10cmFuc2Zvcm06IHNjYWxlKDEuMSwxLjEpOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMSwxLjEpOwogICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEsMS4xKTsKfQoKLnRlc3RpbW9uaWFsLXNlY3Rpb24gLmNsaWVudC10aHVtYi1vdXRlciAuY2xpZW50LXRodW1icy1jYXJvdXNlbHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1heC13aWR0aDogODBweDsKICAgIG1hcmdpbjogMCBhdXRvOwoJdGV4dC1hbGlnbjpjZW50ZXI7Cn0KCi50ZXN0aW1vbmlhbC1zZWN0aW9uIC5jbGllbnQtdGh1bWItb3V0ZXIgLmNsaWVudC10aHVtYnMtY2Fyb3VzZWwgLm93bC1zdGFnZS1vdXRlcnsKCW92ZXJmbG93OnZpc2libGU7Cn0KCi50ZXN0aW1vbmlhbC1zZWN0aW9uIC5jbGllbnQtdGh1bWItb3V0ZXIgLnRodW1iLWl0ZW0gLnRodW1iLWJveHsKCXdpZHRoOjkwcHg7CgloZWlnaHQ6OTBweDsKCWN1cnNvcjpwb2ludGVyOwoJYm9yZGVyLXJhZGl1czowJTsKCW1hcmdpbjogMCBhdXRvOwoJb3ZlcmZsb3c6aGlkZGVuOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLnRlc3RpbW9uaWFsLXNlY3Rpb24gLmNsaWVudC10aHVtYi1vdXRlciAudGh1bWItaXRlbSAuYXV0aG9yLWluZm97Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1sZWZ0Oi01NXB4OwoJbWFyZ2luLXJpZ2h0Oi03MHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7CglwYWRkaW5nLXRvcDoyMHB4Owp9CgoudGVzdGltb25pYWwtc2VjdGlvbiAuY2xpZW50LXRodW1iLW91dGVyIC50aHVtYi1pdGVtIC5hdXRob3ItaW5mbyAuYXV0aG9yLW5hbWV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXdlaWdodDo3MDA7Cglmb250LXNpemU6MjBweDsKCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKfQoKLnRlc3RpbW9uaWFsLXNlY3Rpb24gLmNsaWVudC10aHVtYi1vdXRlciAudGh1bWItaXRlbSAuYXV0aG9yLWluZm8gLmRlc2lnbmF0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMDBhZWVmOwoJZm9udC13ZWlnaHQ6NDAwOwoJZm9udC1zaXplOjE0cHg7CgltYXJnaW4tdG9wOjJweDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi50ZXN0aW1vbmlhbC1zZWN0aW9uIC5jbGllbnQtdGh1bWItb3V0ZXIgLm93bC1pdGVtewoJei1pbmRleDowOwkKfQoKLnRlc3RpbW9uaWFsLXNlY3Rpb24gLmNsaWVudC10aHVtYi1vdXRlciAub3dsLWl0ZW0uYWN0aXZlewoJei1pbmRleDoxMDsJCn0KCi50ZXN0aW1vbmlhbC1zZWN0aW9uIC5jbGllbnQtdGh1bWItb3V0ZXIgLmNsaWVudC10aHVtYnMtY2Fyb3VzZWwgLnRodW1iLWl0ZW0gaW1newoJb3ZlcmZsb3c6aGlkZGVuOwoJd2lkdGg6MTAwJTsKCWhlaWdodDoxMDAlOwoJZGlzcGxheTpibG9jazsKCWJvcmRlci1yYWRpdXM6MCU7Cn0KCi50ZXN0aW1vbmlhbC1zZWN0aW9uIC5vd2wtbmF2LAoudGVzdGltb25pYWwtc2VjdGlvbiAub3dsLWRvdHN7CiAgICBkaXNwbGF5Om5vbmU7Cn0KCi50ZXN0aW1vbmlhbC1ibG9ja3sKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy10b3A6NzBweDsKCXRleHQtYWxpZ246Y2VudGVyOwp9CgoudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveDpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjUwJTsKCXRvcDowcHg7Cgl3aWR0aDozcHg7CgloZWlnaHQ6NDVweDsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQoYm90dG9tLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGJvdHRvbSwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IGJvdHRvbSwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMCwgI0QxNjQxQSksIGNvbG9yLXN0b3AoMTAwLCAjMDBhZWVmKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChib3R0b20sICNEMTY0MUEgMCUsICMwMGFlZWYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwp9CgoudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS44ZW07Cn0KCi50ZXN0aW1vbmlhbC1ibG9jayAuaW5uZXItYm94IC5xdW90ZS1vdXRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6MTgwcHg7CgltYXJnaW46MCBhdXRvOwoJbWFyZ2luLXRvcDozNXB4Owp9CgoudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveCAucXVvdGUtb3V0ZXI6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MTVweDsKCWhlaWdodDozcHg7Cgl3aWR0aDoxMDAlOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgI0QxNjQxQSAwJSwgIzAwYWVlZiAxMDAlKTsKICAgIGJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgI0QxNjQxQSksIGNvbG9yLXN0b3AoMTAwLCAjMDBhZWVmKSk7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjRDE2NDFBIDAlLCAjMDBhZWVmIDEwMCUpOwp9CgoudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveCAucXVvdGUtb3V0ZXIgLnF1b3RlLWljb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbjowIGF1dG87Cgl3aWR0aDozNnB4OwoJaGVpZ2h0OjM2cHg7Cgljb2xvcjojYzEyODJhOwoJbGluZS1oZWlnaHQ6MzZweDsKCW1hcmdpbjowIGF1dG87Cglib3JkZXItcmFkaXVzOjUwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgoudGVzdGltb25pYWwtYmxvY2sgLmlubmVyLWJveCAucmF0aW5newoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCW1hcmdpbi10b3A6MzBweDsKfQoKLnRlc3RpbW9uaWFsLWJsb2NrIC5pbm5lci1ib3ggLnJhdGluZyAuZmF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMwMGFlZWY7Cglmb250LXNpemU6MTZweDsKCW1hcmdpbjowcHggMnB4Owp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVRlYW0gU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnRlYW0tc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo5NXB4IDBweCAxMDBweDsKfQoKLnRlYW0tc2VjdGlvbiAub3dsLW5hdnsKCWRpc3BsYXk6bm9uZTsKfQoKLnRlYW0tc2VjdGlvbiAub3dsLWRvdHN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRleHQtYWxpZ246Y2VudGVyOwoJbWFyZ2luLXRvcDozMHB4Owp9CgoudGVhbS1zZWN0aW9uIC5vd2wtZG90cyAub3dsLWRvdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6MTBweDsKCWhlaWdodDoxMHB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJbWFyZ2luOjBweCA1cHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6I2Q3ZDdkNzsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKfQoKLnRlYW0tc2VjdGlvbiAub3dsLWRvdHMgLm93bC1kb3QuYWN0aXZlLAoudGVhbS1zZWN0aW9uIC5vd2wtZG90cyAub3dsLWRvdDpob3ZlcnsKCWJhY2tncm91bmQtY29sb3I6I2MxMjgyYTsKfQoKLnRlYW0tYmxvY2t7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoudGVhbS1ibG9jayAuaW5uZXItYm94IC5pbWFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy1ib3R0b206NDBweDsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgaW1newoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJZGlzcGxheTpibG9jazsKCWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwp9CgoudGVhbS1ibG9jayAuaW5uZXItYm94OmhvdmVyIC5pbWFnZSBpbWd7CglmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7Cn0KCi50ZWFtLWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveHsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cglib3R0b206MHB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi50ZWFtLWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuc29jaWFsLW5hdnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MTAwJTsKCWRpc3BsYXk6YmxvY2s7CglwYWRkaW5nOjlweCAyMHB4IDlweDsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCWJvcmRlci1yYWRpdXM6MHB4IDhweCAwcHggMHB4OwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwp9CgoudGVhbS1ibG9jayAuaW5uZXItYm94OmhvdmVyIC5pbWFnZSAub3ZlcmxheS1ib3ggLnNvY2lhbC1uYXZ7Cgl0b3A6LTQycHg7Cn0KCi50ZWFtLWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuc29jaWFsLW5hdiBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLXJpZ2h0OjEycHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtbmF2IGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MTZweDsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtbmF2IGxpLmZhY2Vib29rIGF7Cgljb2xvcjojMTY1OTliOwp9CgoudGVhbS1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLnNvY2lhbC1uYXYgbGkudHdpdHRlciBhewoJY29sb3I6IzAzYTlmNDsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtbmF2IGxpLmdvb2dsZSBhewoJY29sb3I6I2ZmMDAwMDsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5zb2NpYWwtbmF2IGxpLmxpbmtlZCBhewoJY29sb3I6IzIyOGFiZjsKfQoKLnRlYW0tYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94IC5jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjIwcHggNTVweCAyMHB4IDI1cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cglib3JkZXItcmFkaXVzOjBweCAwcHggOHB4IDBweDsKCWJveC1zaGFkb3c6MHB4IDBweCAxMHB4IHJnYmEoMCwwLDAsMC4xMCk7Cn0KCi50ZWFtLWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY29udGVudCBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS4zZW07Cglmb250LXdlaWdodDo3MDA7Cn0KCi50ZWFtLWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY29udGVudCBoNCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwp9CgoudGVhbS1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLmNvbnRlbnQgLmRlc2lnbmF0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMDBhZWVmOwoJZm9udC1zaXplOjE0cHg7CgltYXJnaW4tdG9wOjJweDsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglDb3VudGVyIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5jb250YWN0LXNlY3Rpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6OTBweCAwcHggNTBweDsKCWJhY2tncm91bmQtc2l6ZTpjb3ZlcjsKfQoKLmNvbnRhY3Qtc2VjdGlvbjpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOTApOwp9CgouY29udGFjdC1zZWN0aW9uIC5mb3JtLWNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9CgouY29udGFjdC1zZWN0aW9uIC5mb3JtLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjBweCAzMHB4Owp9CgouZGVmYXVsdC1mb3JtIC5mb3JtLWdyb3VwewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjIwcHg7Cn0KCi5kZWZhdWx0LWZvcm0gLmZvcm0tZ3JvdXA6bGFzdC1jaGlsZHsKCW1hcmdpbi1ib3R0b206MHB4Owp9CgouZGVmYXVsdC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwKLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJlbWFpbCJdLAouZGVmYXVsdC1mb3JtIC5mb3JtLWdyb3VwIHNlbGVjdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7CglsaW5lLWhlaWdodDoyNHB4OwoJcGFkZGluZzoxNXB4IDI1cHg7Cgljb2xvcjojZmZmZmZmOwoJaGVpZ2h0OjYwcHg7Cglmb250LXNpemU6MTRweDsKCWJhY2tncm91bmQ6bm9uZTsKCWZvbnQtd2VpZ2h0OjQwMDsKCWJvcmRlci1yYWRpdXM6MnB4OwoJYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwoJYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDQpOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciwKLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYTo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlcnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi5kZWZhdWx0LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdOmZvY3VzLAouZGVmYXVsdC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXMsCi5kZWZhdWx0LWZvcm0gLmZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXN7Cglib3JkZXItY29sb3I6IzMyMmYyZjsKfQoKLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7CglsaW5lLWhlaWdodDoyNHB4OwoJcGFkZGluZzoxNXB4IDI1cHg7Cgljb2xvcjojZmZmZmZmOwoJaGVpZ2h0OjIzMHB4OwoJYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpOwoJYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMDQpOwoJcmVzaXplOm5vbmU7Cglmb250LXNpemU6MTRweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWJvcmRlci1yYWRpdXM6MnB4OwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCAudGhlbWUtYnRuewoJY3Vyc29yOnBvaW50ZXI7Cn0KCi5kZWZhdWx0LWZvcm0uc3R5bGUtdHdvIC5mb3JtLWdyb3VwIGlucHV0LAouZGVmYXVsdC1mb3JtLnN0eWxlLXR3byAuZm9ybS1ncm91cCB0ZXh0YXJlYXsKCWNvbG9yOiMwMDAwMDA7Cglib3JkZXItY29sb3I6cmdiYSgwLDAsMCwwLjEyKTsKfQoKLmRlZmF1bHQtZm9ybS5zdHlsZS10d28gLmZvcm0tZ3JvdXAgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIsCi5kZWZhdWx0LWZvcm0uc3R5bGUtdHdvIC5mb3JtLWdyb3VwIHRleHRhcmVhOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyewoJY29sb3I6IzAwMDAwMDsKfQoKLmNvbnRhY3Qtc2VjdGlvbiAuY29udGVudC1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLmNvbnRhY3Qtc2VjdGlvbiAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCU5ld3MgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLm5ld3Mtc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo5NXB4IDBweCA3MHB4Owp9CgoubmV3cy1zZWN0aW9uLnN0eWxlLXR3b3sKCXBhZGRpbmctdG9wOjBweDsKfQoKLm5ld3MtYmxvY2t7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLm5ld3MtYmxvY2sgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubmV3cy1ibG9jayAuaW5uZXItYm94IC5pbWFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJb3ZlcmZsb3c6aGlkZGVuOwoJYmFja2dyb3VuZC1jb2xvcjojMDBhZWVmOwp9CgoubmV3cy1ibG9jayAuaW5uZXItYm94IC5pbWFnZSBpbWd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7CglkaXNwbGF5OmJsb2NrOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKfQoKLm5ld3MtYmxvY2sgLmlubmVyLWJveDpob3ZlciAuaW1hZ2UgaW1newoJb3BhY2l0eTowLjU7Cgl0cmFuc2Zvcm06c2NhbGUoMS4wNiwxLjA2KTsKfQoKLm5ld3MtYmxvY2sgLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglwYWRkaW5nOjI1cHggMjJweCAwcHg7Cglib3JkZXI6MXB4IHNvbGlkICNlZWVlZWU7Cn0KCi5uZXdzLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnBvc3QtbWV0YXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubmV3cy1ibG9jayAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5wb3N0LW1ldGEgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1yaWdodDoxMnB4OwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi5uZXdzLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnBvc3QtbWV0YSBsaSAuaWNvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLXJpZ2h0OjhweDsKfQoKLm5ld3MtYmxvY2sgLmlubmVyLWJveCAubG93ZXItY29udGVudCBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS40ZW07CgltYXJnaW46MTVweCAwcHggMTJweDsKfQoKLm5ld3MtYmxvY2sgLmlubmVyLWJveCAubG93ZXItY29udGVudCBoNCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo3MDA7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjIwcHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgoubmV3cy1ibG9jayAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGg0IGE6aG92ZXJ7Cgljb2xvcjojYzEyODJhOwp9CgoubmV3cy1ibG9jayAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjhlbTsKCXBhZGRpbmctYm90dG9tOjIycHg7Cn0KCi5uZXdzLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLmxvd2VyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxNXB4IDBweDsKCWJvcmRlci10b3A6MXB4IHNvbGlkICNlZWVlZWU7Cn0KCi5uZXdzLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLmxvd2VyLWJveCAucmVhZC1tb3JlewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE2cHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgoubmV3cy1ibG9jayAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5sb3dlci1ib3ggLnJlYWQtbW9yZTpob3ZlcnsKCWNvbG9yOiNjMTI4MmE7Cn0KCi5uZXdzLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLmxvd2VyLWJveCAuY29tbWVudHN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiM2NjY2NjY7Cglmb250LXNpemU6MTZweDsKfQoKLm5ld3MtYmxvY2sgLmlubmVyLWJveCAudGhlbWUtYnRuewoJZm9udC13ZWlnaHQ6NDAwOwoJYm9yZGVyLXJhZGl1czowcHg7Cgl3aWR0aDoxMDAlOwoJY29sb3I6IzY2NjY2NjsKCWJhY2tncm91bmQtY29sb3I6I2VlZWVlZTsKCW1hcmdpbi10b3A6MTBweDsKCXBhZGRpbmc6MTJweCA0NHB4IDEycHg7CgltYXJnaW4tYm90dG9tOjE4cHg7CgliYWNrZ3JvdW5kLWltYWdlOm5vbmU7Cn0KCi5uZXdzLWJsb2NrIC5pbm5lci1ib3ggLnRoZW1lLWJ0bjpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi5uZXdzLWJsb2NrLnN0eWxlLXR3byAuaW5uZXItYm94IC5pbWFnZXsKCWJhY2tncm91bmQtY29sb3I6IzMyNDBmZDsKfQoKLm5ld3MtYmxvY2suc3R5bGUtdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgaDQgYTpob3ZlciwKLm5ld3MtYmxvY2suc3R5bGUtdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLmxvd2VyLWJveCAucmVhZC1tb3JlOmhvdmVyewoJY29sb3I6IzMyNDBmZDsKfQoKLm5ld3MtYmxvY2suc3R5bGUtdGhyZWUgLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXRleHQtYWxpZ246bGVmdDsKCXBhZGRpbmc6MjVweCAyOHB4IDBweDsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglDbGllbnRzIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5jbGllbnRzLXNlY3Rpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6NjBweCAwcHggNjBweDsKCWJhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTsKfQoKLmNsaWVudHMtc2VjdGlvbiAuc3BvbnNvcnMtb3V0ZXIgLm93bC1kb3RzLAouY2xpZW50cy1zZWN0aW9uIC5zcG9uc29ycy1vdXRlciAub3dsLW5hdnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpub25lOwp9CgouY2xpZW50cy1zZWN0aW9uIC5zcG9uc29ycy1vdXRlciAuaW1hZ2UtYm94ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCW1hcmdpbjowcHg7Cn0KCi5jbGllbnRzLXNlY3Rpb24gLnNwb25zb3JzLW91dGVyIC5pbWFnZS1ib3ggaW1newoJbWF4LXdpZHRoOjEwMCU7Cgl3aWR0aDphdXRvOwoJb3BhY2l0eTowLjU7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCS13ZWJraXQtZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7CglmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5jbGllbnRzLXNlY3Rpb24gLnNwb25zb3JzLW91dGVyIC5pbWFnZS1ib3ggaW1nOmhvdmVyewoJb3BhY2l0eToxOwoJLXdlYmtpdC1maWx0ZXI6IGdyYXlzY2FsZSgwJSk7CglmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJTWFpbiBGb290ZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5tYWluLWZvb3RlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzowcHggMHB4IDBweDsKCWJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjsKCWJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTpjb3ZlcjsKfQoKLm1haW4tZm9vdGVyIC5mb290ZXItd2lkZ2V0ewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjQwcHg7Cn0KCi5tYWluLWZvb3RlciAud2lkZ2V0cy1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjkwcHggMHB4IDUwcHg7Cn0KCi5tYWluLWZvb3RlciAuZm9vdGVyLXRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjQ1cHg7CgltYXJnaW4tdG9wOjI1cHg7Cn0KCi5tYWluLWZvb3RlciAuZm9vdGVyLXdpZGdldCBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NzAwOwoJY29sb3I6I2ZmZmZmZjsKCWxpbmUtaGVpZ2h0OjEuMmVtOwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLm1haW4tZm9vdGVyIC5sb2dvLXdpZGdldHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1mb290ZXIgLmxvZ28td2lkZ2V0IC5sb2dvewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjI1cHg7Cn0KCi5tYWluLWZvb3RlciAubG9nby13aWRnZXQgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNiYmJiYmI7Cglmb250LXNpemU6IDE2cHg7Cglmb250LXdlaWdodDogNDAwOwoJbGluZS1oZWlnaHQ6IDEuOGVtOwoJbWFyZ2luLWJvdHRvbTogMzBweDsKfQoKLm1haW4tZm9vdGVyIC5jb250YWN0LWxpbmt7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLm1haW4tZm9vdGVyIC5jb250YWN0LWxpbmsgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNiYmJiYmI7Cglmb250LXNpemU6MTZweDsKCW1hcmdpbi1ib3R0b206MTJweDsKfQoKLm1haW4tZm9vdGVyIC5jb250YWN0LWxpbmsgbGkgc3BhbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCW1hcmdpbi1yaWdodDo2cHg7Cn0KCi8qIFJlY2VudCBQb3N0cyAqLwoKLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldCAucG9zdHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCW1pbi1oZWlnaHQ6IDkwcHg7CglwYWRkaW5nLWxlZnQ6IDExMHB4OwoJbWFyZ2luLWJvdHRvbTogMzBweDsKfQoKLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldCAucG9zdDpsYXN0LWNoaWxkewoJbWFyZ2luLWJvdHRvbTogMDsKfQoKLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldCAucG9zdCAudGh1bWJ7Cglwb3NpdGlvbjogYWJzb2x1dGU7CglsZWZ0OiAwOwoJdG9wOiAwOwoJaGVpZ2h0OiA5MHB4OwoJd2lkdGg6IDkwcHg7CglvdmVyZmxvdzogaGlkZGVuOwp9CgoubWFpbi1mb290ZXIgLm5ld3Mtd2lkZ2V0IC5wb3N0IC50aHVtYiBhewoJZGlzcGxheTogYmxvY2s7Cn0KCi5tYWluLWZvb3RlciAubmV3cy13aWRnZXQgLnBvc3QgLnRodW1iIGltZ3sKCWRpc3BsYXk6IGJsb2NrOwoJd2lkdGg6IDEwMCU7CgloZWlnaHQ6IGF1dG87Cn0KCi5tYWluLWZvb3RlciAubmV3cy13aWRnZXQgLnBvc3QgaDV7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cgljb2xvcjogI2ZmZmZmZjsKCWxpbmUtaGVpZ2h0OiAzMHB4OwoJZm9udC13ZWlnaHQ6IDcwMDsKCXRvcDogLTVweDsKfQoKLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldCAucG9zdCBoNSBhewoJY29sb3I6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKfQoKLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldCAucG9zdCBoNSBhOmhvdmVyewoJY29sb3I6ICMwMGFlZWY7Cn0KCi5tYWluLWZvb3RlciAubmV3cy13aWRnZXQgLnBvc3QgLmRhdGV7Cglwb3NpdGlvbjogcmVsYXRpdmU7CglkaXNwbGF5OiBibG9jazsKCWZvbnQtc2l6ZTogMTRweDsKCWxpbmUtaGVpZ2h0OiAzMHB4OwoJY29sb3I6ICM4ODg4ODg7Cn0KCi5tYWluLWZvb3RlciAubmV3c2xldHRlci13aWRnZXQgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNiYmJiYmI7Cgl0b3A6LTEwcHg7Cglmb250LXNpemU6IDE2cHg7Cglmb250LXdlaWdodDogNDAwOwoJbGluZS1oZWlnaHQ6IDEuOGVtOwoJbWFyZ2luLWJvdHRvbTogMzBweDsKfQoKLyogTmV3c2xldHR0ZXIgRm9ybSAqLwoKLm1haW4tZm9vdGVyIC5uZXdzbGV0dGVyLWZvcm17CgltYXJnaW4tYm90dG9tOjM1cHg7Cn0KCi5tYWluLWZvb3RlciAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJbWFyZ2luLWJvdHRvbToxMHB4Owp9CgoubWFpbi1mb290ZXIgLm5ld3NsZXR0ZXItZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5tYWluLWZvb3RlciAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJbGluZS1oZWlnaHQ6MjZweDsKCXBhZGRpbmc6MTBweCA4NXB4IDEwcHggMTVweDsKCWhlaWdodDo1MHB4OwoJZm9udC1zaXplOjE1cHg7Cgljb2xvcjojZmZmZmZmOwoJYmFja2dyb3VuZDpub25lOwoJYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsJCn0KCi5tYWluLWZvb3RlciAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGJ1dHRvbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MHB4OwoJdG9wOjBweDsKCXBhZGRpbmc6MTNweCAyMHB4OwoJZm9udC1zaXplOjE2cHg7Cgljb2xvcjojZmZmZmZmOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiMwMGFlZWY7CgljdXJzb3I6cG9pbnRlcjsKfQoKLyogU2VydmljZSBMaXN0ICovCgoubWFpbi1mb290ZXIgLnNlcnZpY2UtbGlzdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1mb290ZXIgLnNlcnZpY2UtbGlzdCBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbToyMnB4Owp9CgoubWFpbi1mb290ZXIgLnNlcnZpY2UtbGlzdCBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7CglwYWRkaW5nLWxlZnQ6MjBweDsKfQoKLm1haW4tZm9vdGVyIC5zZXJ2aWNlLWxpc3QgbGkgYTpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6J1xmMTAxJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCWZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnOwp9CgoubWFpbi1mb290ZXIgLnBhdGVybi1sYXllcnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDotMTIwcHg7Cglib3R0b206MTcwcHg7Cgl3aWR0aDoyNTBweDsKCWhlaWdodDoyNTBweDsKCWZpbHRlcjogZ3JheXNjYWxlKDEwMCUpOwogICAgb3BhY2l0eTogMC4xOwp9CgoubWFpbi1mb290ZXIgLnBhdGVybi1sYXllci10d297Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0Oi0xMjBweDsKCXRvcDoxMDBweDsKCXdpZHRoOjI1MHB4OwoJaGVpZ2h0OjI1MHB4OwoJZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7CiAgICBvcGFjaXR5OiAwLjE7Cn0KCi5tYWluLWZvb3RlciAuZm9vdGVyLWJvdHRvbXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyNXB4IDBweDsKCWJhY2tncm91bmQtY29sb3I6IzIyMjIyMjsKfQoKLm1haW4tZm9vdGVyIC5mb290ZXItYm90dG9tIC5jb3B5cmlnaHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTZweDsKfQoKLm1haW4tZm9vdGVyIC5mb290ZXItYm90dG9tIC5mb290ZXItbmF2ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5tYWluLWZvb3RlciAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdiBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgltYXJnaW4tbGVmdDoxOHB4OwoJbGluZS1oZWlnaHQ6MS4xZW07Cn0KCi5tYWluLWZvb3RlciAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdiBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwkKfQoKLm1haW4tZm9vdGVyIC5mb290ZXItYm90dG9tIC5mb290ZXItbmF2IGxpOmxhc3QtY2hpbGR7CglwYWRkaW5nLXJpZ2h0OjBweDsKCW1hcmdpbi1yaWdodDowcHg7Cglib3JkZXItcmlnaHQ6MHB4Owp9CgoubWFpbi1mb290ZXIgLmZvb3Rlci1ib3R0b20gLmZvb3Rlci1uYXYgbGkgYTpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi5tYWluLWZvb3Rlci5zdHlsZS10d28gLmNvbnRhY3QtbGluayBsaSBzcGFuLAoubWFpbi1mb290ZXIuc3R5bGUtdHdvIC5jb250YWN0LWxpbmsgbGksCi5tYWluLWZvb3Rlci5zdHlsZS10d28gLm5ld3NsZXR0ZXItd2lkZ2V0IC50ZXh0LAoubWFpbi1mb290ZXIuc3R5bGUtdHdvIC5sb2dvLXdpZGdldCAudGV4dCwKLm1haW4tZm9vdGVyLnN0eWxlLXR3byAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdiBsaSBhewoJY29sb3I6I2ZmZmZmZjsKfQoKLm1haW4tZm9vdGVyLnN0eWxlLXR3byAuZm9vdGVyLWJvdHRvbXsKCWJhY2tncm91bmQtY29sb3I6IzMyNDFmZjsKfQoKLm1haW4tZm9vdGVyLnN0eWxlLXR3byAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGJ1dHRvbnsKCWJhY2tncm91bmQtY29sb3I6IzMyNDFmZjsKfQoKLm1haW4tZm9vdGVyLnN0eWxlLXR3byAubmV3cy13aWRnZXQgLnBvc3QgaDV7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjYwMDsKCWxpbmUtaGVpZ2h0OjEuN2VtOwp9CgoubWFpbi1mb290ZXIuc3R5bGUtdHdvIC5uZXdzLXdpZGdldCAucG9zdCBoNSBhOmhvdmVyewoJY29sb3I6IzMyNDFmZjsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglDYWxsIFRvIEFjdGlvbiBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouY2FsbC10by1hY3Rpb24tc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouY2FsbC10by1hY3Rpb24tc2VjdGlvbiAuaW5uZXItY29udGFpbmVyewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tdG9wOi05MHB4OwoJei1pbmRleDoxOwoJcGFkZGluZzo2NXB4IDBweCAzNXB4IDE1MHB4Owp9CgouY2FsbC10by1hY3Rpb24tc2VjdGlvbiAuaW5uZXItY29udGFpbmVyOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjEwMDAlOwoJaGVpZ2h0OjEwMCU7CglkaXNwbGF5OmJsb2NrOwoJYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2JhY2tncm91bmQvNC5qcGcpIHJlcGVhdC14OwoJYmFja2dyb3VuZC1zaXplOmNvbnRhaW47Cn0KCi5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC50aXRsZS1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjVweDsKfQoKLmNhbGwtdG8tYWN0aW9uLXNlY3Rpb24gLnRpdGxlLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC50aXRsZS1jb2x1bW4gLmNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDo0NXB4OwoJYm9yZGVyLWxlZnQ6M3B4IHNvbGlkICMzMjQxZmY7Cn0KCi5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC50aXRsZS1jb2x1bW4gaDN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXdlaWdodDo3MDA7CglsaW5lLWhlaWdodDoxLjNlbTsKfQoKLmNhbGwtdG8tYWN0aW9uLXNlY3Rpb24gLnRpdGxlLWNvbHVtbiAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWxpbmUtaGVpZ2h0OjEuNmVtOwoJbWFyZ2luLXRvcDoxNXB4OwoJZm9udC1zaXplOjE2cHg7Cn0KCi5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC5idG4tY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC5idG4tY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRleHQtYWxpZ246cmlnaHQ7CglwYWRkaW5nLXRvcDoxMHB4Owp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUZsdWlkIFNlY3Rpb24gT25lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouZmx1aWQtc2VjdGlvbi1vbmV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MTYwcHggMHB4IDBweDsKfQoKLmZsdWlkLXNlY3Rpb24tb25lIC5vdXRlci1jb250YWluZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1pbi1oZWlnaHQ6MjUwcHg7Cn0KCi5mbHVpZC1zZWN0aW9uLW9uZSAuaW1hZ2UtY29sdW1uewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDo0NiU7CgloZWlnaHQ6MTAwJTsKCWJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKCWJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjsKCWJhY2tncm91bmQtc2l6ZTpjb3ZlcjsJCn0KCi5mbHVpZC1zZWN0aW9uLW9uZSAuaW1hZ2UtY29sdW1uIC5pbWFnZS1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6bm9uZTsJCn0KCi5mbHVpZC1zZWN0aW9uLW9uZSAuaW1hZ2UtY29sdW1uIC5pbWFnZS1ib3ggaW1newoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJd2lkdGg6MTAwJTsKfQoKLmZsdWlkLXNlY3Rpb24tb25lIC5pbWFnZS1jb2x1bW46YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJcmlnaHQ6LTQ1cHg7Cgl0b3A6LTQ1cHg7Cgl3aWR0aDo0NTZweDsKCWhlaWdodDoxNjVweDsKCXotaW5kZXg6LTE7CgliYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvYmFja2dyb3VuZC9wYXR0ZXJuLTQuanBnKSBuby1yZXBlYXQ7Cn0KCi5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZsb2F0OnJpZ2h0OwoJd2lkdGg6NTAlOwp9CgouZmx1aWQtc2VjdGlvbi1vbmUgLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1heC13aWR0aDo2MDBweDsKCXdpZHRoOjEwMCU7CglwYWRkaW5nOjBweCAxNXB4IDBweCA2MHB4Owp9CgouZmx1aWQtc2VjdGlvbi1vbmUgLmNvbnRlbnQtY29sdW1uIC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjhlbTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLmZsdWlkLXNlY3Rpb24tb25lIC5jb250ZW50LWNvbHVtbiAuc2tpbGxzewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjQ1cHg7Cn0KCi5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmJ0bi1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmZsdWlkLXNlY3Rpb24tb25lIC5jb250ZW50LWNvbHVtbiAuYnRuLWJveCAudGhlbWUtYnRuewoJZmxvYXQ6bGVmdDsKCW1hcmdpbi1yaWdodDozNXB4Owp9CgovKiBTa2lsbHMgU2VjdGlvbiAqLwoKLnNraWxscyAuc2tpbGwtaXRlbXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbToyMHB4Owp9Cgouc2tpbGxzIC5za2lsbC1pdGVtOmxhc3QtY2hpbGR7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLnNraWxscyAuc2tpbGwtaXRlbSAuc2tpbGwtYmFyewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJaGVpZ2h0OjVweDsJCn0KCi5za2lsbHMgLnNraWxsLWl0ZW0gLnNraWxsLWJhciAuYmFyLWlubmVyewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJb3ZlcmZsb3c6aGlkZGVuOwoJaGVpZ2h0OjVweDsKCWJhY2tncm91bmQ6I2NjY2NjYzsKfQoKLnNraWxscy5zdHlsZS10d28gLnNraWxsLWl0ZW0gLnNraWxsLWJhciAuYmFyLWlubmVyewoJYmFja2dyb3VuZC1jb2xvcjojZWVlZWVlOwp9Cgouc2tpbGxzIC5za2lsbC1pdGVtIC5za2lsbC1iYXIgLmJhci1pbm5lciAuYmFyewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7CgloZWlnaHQ6NXB4OwoJd2lkdGg6MHB4OwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzA5MTQ5NCAwJSwgIzMxNDFmZSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgIzA5MTQ5NCksIGNvbG9yLXN0b3AoMTAwLCAjMzE0MWZlKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJCgktd2Via2l0LXRyYW5zaXRpb246YWxsIDIwMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDIwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMjAwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDIwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMjAwMG1zIGVhc2U7Cn0KCi5za2lsbHMgLnNraWxsLWl0ZW0gLnNraWxsLWhlYWRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo2cHg7Cn0KCi5za2lsbHMgLnNraWxsLWl0ZW0gLnNraWxsLWhlYWRlciAuc2tpbGwtdGl0bGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnNraWxscyAuc2tpbGwtaXRlbSAuc2tpbGwtaGVhZGVyIC5za2lsbC10aXRsZXsKCWZsb2F0OmxlZnQ7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE0cHg7Cglmb250LXdlaWdodDo1MDA7CglsaW5lLWhlaWdodDoxLjRlbTsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5za2lsbHMgLnNraWxsLWl0ZW0gLnNraWxsLWhlYWRlciAuc2tpbGwtcGVyY2VudGFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6cmlnaHQ7Cglmb250LXdlaWdodDo0MDA7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE0cHg7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJU2VydmljZXMgU2VjdGlvbiBUd28KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5zZXJ2aWNlcy1zZWN0aW9uLXR3b3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy10b3A6MTAwcHg7Cgl6LWluZGV4OjE7Cn0KCi5zZXJ2aWNlcy1zZWN0aW9uLXR3by5zdHlsZS10d297CglwYWRkaW5nLXRvcDowcHg7Cn0KCi8qIFNlcnZpY2UgQmxvY2sgVHdvICovCgouc2VydmljZS1ibG9jay10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRleHQtYWxpZ246Y2VudGVyOwoJcGFkZGluZzozMHB4IDMwcHggMzBweDsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJYm9yZGVyOjFweCBzb2xpZCAjZWJlYmViOwp9CgovKi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94OmhvdmVyewoJYm9yZGVyLWNvbG9yOiMzMjQwZmU7Cn0gKi8KCi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjEwMCU7CgloZWlnaHQ6MTAwJTsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFRUZFRiAwJSwgI2ZmZmZmZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNFRUVGRUYgMCUsICNmZmZmZmYgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFRUZFRiAwJSwgI2ZmZmZmZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAsICNFRUVGRUYpLCBjb2xvci1zdG9wKDEwMCwgI2ZmZmZmZikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI0VFRUZFRiAwJSwgI2ZmZmZmZiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0VFRUZFRiAwJSwgI2ZmZmZmZiAxMDAlKTsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3ggLmljb24tYm94ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94IC5pY29uLWJveCAuaWNvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MWVtOwoJY29sb3I6IzEwMWFhNTsKCWxpbmUtaGVpZ2h0OjFlbTsKCWZvbnQtc2l6ZTo1NHB4OwoJYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzEwMWFhNSAwJSwgIzMyNDBmZSAxMDAlKTsKICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0OwogICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50OwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo1MDA7CgltYXJnaW4tdG9wOjE2cHg7CgltYXJnaW4tYm90dG9tOjEzcHg7Cn0KCi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94IGg0IGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7CglsaW5lLWhlaWdodDoxLjNlbTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jay10d28gLmlubmVyLWJveDpob3ZlciBoNCBhewoJY29sb3I6IzMyNDBmZTsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3ggLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjEuOGVtOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94IC5ib3JkZXItb25lewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDotMXB4OwoJdG9wOi0xcHg7Cglib3R0b206LTFweDsKCWxlZnQ6LTFweDsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3ggLmJvcmRlci1vbmU6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJcmlnaHQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjJweDsKCWhlaWdodDowcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiMxMDFhYTU7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jay10d28gLmlubmVyLWJveDpob3ZlciAuYm9yZGVyLW9uZTpiZWZvcmV7CgloZWlnaHQ6MTAwJTsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3ggLmJvcmRlci1vbmU6YWZ0ZXJ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJd2lkdGg6MHB4OwoJaGVpZ2h0OjJweDsKCWJhY2tncm91bmQtY29sb3I6IzEwMWFhNTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cn0KCi5zZXJ2aWNlLWJsb2NrLXR3byAuaW5uZXItYm94OmhvdmVyIC5ib3JkZXItb25lOmFmdGVyewoJd2lkdGg6MTAwJTsKCXRyYW5zaXRpb24tZGVsYXk6IDM1MG1zOwp9CgoKCgoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3ggLmJvcmRlci10d297Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0Oi0xcHg7Cgl0b3A6LTFweDsKCWJvdHRvbTotMXB4OwoJbGVmdDotMXB4Owp9Cgouc2VydmljZS1ibG9jay10d28gLmlubmVyLWJveCAuYm9yZGVyLXR3bzpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCWJvdHRvbTowcHg7Cgl3aWR0aDoycHg7CgloZWlnaHQ6MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMTAxYWE1OwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3g6aG92ZXIgLmJvcmRlci10d286YmVmb3JlewoJaGVpZ2h0OjEwMCU7Cgl0cmFuc2l0aW9uLWRlbGF5OiA3MDBtczsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3ggLmJvcmRlci10d286YWZ0ZXJ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDowcHg7CgloZWlnaHQ6MnB4OwoJYmFja2dyb3VuZC1jb2xvcjojMTAxYWE1OwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKfQoKLnNlcnZpY2UtYmxvY2stdHdvIC5pbm5lci1ib3g6aG92ZXIgLmJvcmRlci10d286YWZ0ZXJ7Cgl3aWR0aDoxMDAlOwoJdHJhbnNpdGlvbi1kZWxheTogMTEwMG1zOwp9Cgouc2VydmljZS1ibG9jay10d28uc3R5bGUtdHdvIC5pbm5lci1ib3ggLmljb24tYm94IC5pY29uewoJY29sb3I6IzAwYWVlZjsKICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOmluaGVyaXQ7Cn0KCi5zZXJ2aWNlLWJsb2NrLXR3by5zdHlsZS10d28gLmlubmVyLWJveDpob3ZlcnsKCWJvcmRlci1jb2xvcjojMDBhZWVmOwp9CgovKiAuc2VydmljZS1ibG9jay10d28gLmlubmVyLWJveDpob3ZlciBoNCBhewoJY29sb3I6IzMyNDBmZTsKfSAqLwoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglDb3VudGVyIFNlY3Rpb24gVHdvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouY291bnRlci1zZWN0aW9uLXR3b3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyMjVweCAwcHggNzBweDsKfQoKLmNvdW50ZXItc2VjdGlvbi10d28ubWFyZ2luLXRvcHsKCW1hcmdpbi10b3A6LTE2MHB4Owp9CgouY291bnRlci1zZWN0aW9uLXR3bzpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDM0LDM0LDM0LDAuODApOwp9CgovKiBGYWN0IENvdW50ZXIgKi8KCi5mYWN0LWNvdW50ZXItdHdvewoJcG9zaXRpb246cmVsYXRpdmU7CgliYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQ7CgliYWNrZ3JvdW5kLXNpemU6Y292ZXI7Cn0KCi5mYWN0LWNvdW50ZXItdHdvIC5jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLmZhY3QtY291bnRlci10d28gLmNvbHVtbiAuaW5uZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmZhY3QtY291bnRlci10d28gLmNvdW50LW91dGVyewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nLWxlZnQ6MTAwcHg7Cn0KCi5mYWN0LWNvdW50ZXItdHdvIC5jb2x1bW4gLmlubmVyIC5pY29uewoJcG9zaXRpb246YWJzb2x1dGU7Cgl3aWR0aDo4MHB4OwoJaGVpZ2h0OjgwcHg7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgljb2xvcjojMzI0MWZmOwoJZm9udC1zaXplOjQ0cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWxpbmUtaGVpZ2h0OjY4cHg7Cglmb250LXdlaWdodDogNDAwOwoJbWFyZ2luLWJvdHRvbTowcHg7Cglib3JkZXI6NXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMCk7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLmZhY3QtY291bnRlci10d28gLmNvbHVtbiAuaW5uZXI6aG92ZXIgLmljb257Cgljb2xvcjojZmZmZmZmOwp9CgouZmFjdC1jb3VudGVyLXR3byAuY29sdW1uIC5pbm5lcjpob3ZlciAuaWNvbnsKCWJvcmRlci1jb2xvcjojMzI0MWZmOwp9CgouZmFjdC1jb3VudGVyLXR3byAuY291bnQtb3V0ZXIgLnBlcmNlbnRhZ2V7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWZvbnQtd2VpZ2h0OjYwMDsKCWNvbG9yOiMwMjBlMjg7Cglmb250LXNpemU6NDhweDsKCWxpbmUtaGVpZ2h0OjFlbTsKfQoKLmZhY3QtY291bnRlci10d28gLmNvbHVtbiAuaW5uZXIgLmNvdW50LW91dGVyewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo3MDA7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjQ4cHg7CglsaW5lLWhlaWdodDoxZW07CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLmZhY3QtY291bnRlci10d28gLmNvbHVtbiAuaW5uZXIgLmNvdW50ZXItdGl0bGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxOHB4OwoJZm9udC13ZWlnaHQ6MzAwOwoJbWFyZ2luLXRvcDoxMHB4OwoJY29sb3I6I2JiYmJiYjsKCWxpbmUtaGVpZ2h0OjEuMmVtOwp9CgouZmFjdC1jb3VudGVyLXR3by5zdHlsZS10d28gLmNvbHVtbiAuaW5uZXIgLmljb257Cgljb2xvcjojZDA2NTFhOwp9CgouZmFjdC1jb3VudGVyLXR3by5zdHlsZS10d28gLmNvbHVtbiAuaW5uZXI6aG92ZXIgLmljb257Cglib3JkZXItY29sb3I6I2QwNjUxYTsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglTZXJ2aWNlcyBTZWN0aW9uIFRocmVlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouc2VydmljZXMtc2VjdGlvbi10aHJlZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo5NXB4IDBweCA5NXB4Owp9Cgouc2VydmljZXMtc2VjdGlvbi10aHJlZSAubG93ZXItdGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE2cHg7Cn0KCi5zZXJ2aWNlcy1zZWN0aW9uLXRocmVlIC5sb3dlci10ZXh0IGF7Cgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOwoJY29sb3I6IzMyNDFmZjsKCWZvbnQtd2VpZ2h0OjYwMDsKfQoKLnNlcnZpY2UtYmxvY2stdGhyZWV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NTBweDsgCn0KCi5zZXJ2aWNlLWJsb2NrLXRocmVlIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnNlcnZpY2UtYmxvY2stdGhyZWUgLmlubmVyLWJveCAuaW1hZ2V7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW92ZXJmbG93OmhpZGRlbjsKCWJhY2tncm91bmQtY29sb3I6IzJmM2VmODsKfQoKLnNlcnZpY2UtYmxvY2stdGhyZWUgLmlubmVyLWJveCAuaW1hZ2UgaW1newoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJZGlzcGxheTpibG9jazsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKfQoKLnNlcnZpY2UtYmxvY2stdGhyZWUgLmlubmVyLWJveDpob3ZlciAuaW1hZ2UgaW1newoJb3BhY2l0eTowLjc7Cgl0cmFuc2Zvcm06cm90YXRlKDNkZWcpIHNjYWxlKDEuMDksMS4wOSk7Cn0KCi5zZXJ2aWNlLWJsb2NrLXRocmVlIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRleHQtYWxpZ246Y2VudGVyOwoJcGFkZGluZzoyNXB4IDI1cHggNTBweDsKCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2NjY2M7Cn0KCi5zZXJ2aWNlLWJsb2NrLXRocmVlIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQ6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MTAwJTsKCWhlaWdodDoxMDAlOwoJZGlzcGxheTpibG9jazsKCS13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlOwoJdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC40cyBlYXNlOwoJdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZTsKCXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHMgZWFzZTsKCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTsKCS1tcy10cmFuc2Zvcm06IHNjYWxlKDEsIDApOwoJdHJhbnNmb3JtOiBzY2FsZSgwLCAxKTsKCS13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyOwoJLW1zLXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjsKCXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgIzFhMzk2YiksIGNvbG9yLXN0b3AoMTAwLCAjMWEzOTZiKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMxYTM5NmIgMCUsICMxYTM5NmIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwp9Cgouc2VydmljZS1ibG9jay10aHJlZSAuaW5uZXItYm94OmhvdmVyIC5sb3dlci1jb250ZW50OmJlZm9yZXsKCS13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKCS1tcy10cmFuc2Zvcm06IHNjYWxlKDEsIDEpOwoJdHJhbnNmb3JtOiBzY2FsZSgxLCAxKTsKCS13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7CgktbXMtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7Cgl0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjsKfQoKLnNlcnZpY2UtYmxvY2stdGhyZWUgLmlubmVyLWJveCBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS4zZW07Cglmb250LXdlaWdodDo3MDA7Cn0KCi5zZXJ2aWNlLWJsb2NrLXRocmVlIC5pbm5lci1ib3ggaDQgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jay10aHJlZSAuaW5uZXItYm94OmhvdmVyIC50ZXh0LAouc2VydmljZS1ibG9jay10aHJlZSAuaW5uZXItYm94OmhvdmVyIGg0IGF7Cgljb2xvcjojZmZmZmZmOwp9Cgouc2VydmljZS1ibG9jay10aHJlZSAuaW5uZXItYm94IC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjdlbTsKCW1hcmdpbi10b3A6MTJweDsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jay10aHJlZSAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5wbHVzLWJveHsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cglib3R0b206LTIwcHg7Cgl3aWR0aDo0MHB4OwoJaGVpZ2h0OjQwcHg7Cgljb2xvcjojZmZmZmZmOwoJb3BhY2l0eTowOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglsaW5lLWhlaWdodDo0MHB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJZm9udC13ZWlnaHQ6NzAwOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMxYTM5NmIgMCUsICMxYTM5NmIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAsICMxYTM5NmIpLCBjb2xvci1zdG9wKDEwMCwgIzFhMzk2YikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKfQoKLnNlcnZpY2UtYmxvY2stdGhyZWUgLmlubmVyLWJveDpob3ZlciAubG93ZXItY29udGVudCAucGx1cy1ib3h7CglsZWZ0OjUwJTsKCW9wYWNpdHk6MTsKCW1hcmdpbi1sZWZ0Oi0yMHB4Owp9Cgouc2VydmljZS1ibG9jay10aHJlZS5zdHlsZS10d28gLmlubmVyLWJveCAuaW1hZ2V7CgliYWNrZ3JvdW5kLWNvbG9yOiNkMDY1MWE7Cn0KCi5zZXJ2aWNlLWJsb2NrLXRocmVlLnN0eWxlLXR3byAuaW5uZXItYm94IC5sb3dlci1jb250ZW50OmJlZm9yZXsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjYzIyYTI5IDAlLCAjZDA2NDFhIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjYzIyYTI5IDAlLCAjZDA2NDFhIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2MyMmEyOSAwJSwgI2QwNjQxYSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgI2MyMmEyOSksIGNvbG9yLXN0b3AoMTAwLCAjZDA2NDFhKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNjMjJhMjkgMCUsICNkMDY0MWEgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzIyYTI5IDAlLCAjZDA2NDFhIDEwMCUpOwp9Cgouc2VydmljZS1ibG9jay10aHJlZS5zdHlsZS10d28gLmlubmVyLWJveCAubG93ZXItY29udGVudCAucGx1cy1ib3h7CgliYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7CgliYWNrZ3JvdW5kLWltYWdlOm5vbmU7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJUHJvamVjdHMgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnByb2plY3RzLXNlY3Rpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW92ZXJmbG93OmhpZGRlbjsKCXBhZGRpbmc6OTVweCAwcHggOTBweDsKCWJhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZDsKCWJhY2tncm91bmQtc2l6ZTpjb3ZlcjsKfQoKLnByb2plY3RzLXNlY3Rpb24gLm93bC1jYXJvdXNlbCAub3dsLXN0YWdlLW91dGVyewoJb3ZlcmZsb3c6dmlzaWJsZTsKfQoKLnByb2plY3RzLXNlY3Rpb24gLm93bC1jYXJvdXNlbDpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglyaWdodDoxMDAlOwoJdG9wOjBweDsKCXdpZHRoOjEwMDAlOwoJaGVpZ2h0OjEwMCU7Cgl6LWluZGV4OjE7CgliYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMiwyLDIsMSk7Cn0KCi5wcm9qZWN0cy1zZWN0aW9uIC5sb3dlci10ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJdGV4dC1hbGlnbjpyaWdodDsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLXRvcDoxMHB4Owp9CgoucHJvamVjdHMtc2VjdGlvbiAubG93ZXItdGV4dCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMzI0MWZmOwoJZm9udC13ZWlnaHQ6NjAwOwp9CgoucHJvamVjdHMtc2VjdGlvbjpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIsMiwyLDEpOwp9CgoucHJvamVjdHMtc2VjdGlvbiAuc2VjLXRpdGxlIC50aGVtZS1idG57CgltYXJnaW4tdG9wOjE1cHg7Cn0KCi5wcm9qZWN0cy1zZWN0aW9uIC5zZWMtdGl0bGV7CgltYXJnaW4tYm90dG9tOjQwcHg7Cn0KCi5wcm9qZWN0cy1zZWN0aW9uIC5vd2wtbmF2ewoJZGlzcGxheTpub25lOwp9CgoucHJvamVjdHMtc2VjdGlvbiAub3dsLWRvdHN7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJYm90dG9tOi0zMHB4Owp9CgoucHJvamVjdHMtc2VjdGlvbiAub3dsLWRvdHMgLm93bC1kb3R7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwcHg7CgloZWlnaHQ6MTBweDsKCW1hcmdpbi1yaWdodDoxMHB4OwoJYm9yZGVyLXJhZGl1czowcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKfQoKLnByb2plY3RzLXNlY3Rpb24gLm93bC1kb3RzIC5vd2wtZG90LmFjdGl2ZSwKLnByb2plY3RzLXNlY3Rpb24gLm93bC1kb3RzIC5vd2wtZG90OmhvdmVyewoJYmFja2dyb3VuZC1jb2xvcjojMmMzYWVmOwp9CgovKiBQcm9qZWN0IEJsb2NrIFR3byAqLwoKLnByb2plY3QtYmxvY2stdHdvewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjMwcHg7Cn0KCi5wcm9qZWN0LWJsb2NrLXR3byAuaW5uZXItYm94ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5wcm9qZWN0LWJsb2NrLXR3byAuaW5uZXItYm94IC5pbWFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJb3ZlcmZsb3c6aGlkZGVuOwoJYmFja2dyb3VuZC1jb2xvcjojMzEzZmZjOwp9CgoucHJvamVjdC1ibG9jay10d28gLmlubmVyLWJveCAuaW1hZ2UgaW1newoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJZGlzcGxheTpibG9jazsKCXRyYW5zZm9ybTpzY2FsZSgxLjIsMS4yKTsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKfQoKLnByb2plY3QtYmxvY2stdHdvIC5pbm5lci1ib3g6aG92ZXIgLmltYWdlIGltZ3sKCXRyYW5zZm9ybTpzY2FsZSgxLDEpOwoJb3BhY2l0eTowLjk7Cn0KCi5wcm9qZWN0LWJsb2NrLXR3byAuaW5uZXItYm94IC5hcnJvdy1ib3h7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjBweDsKCXRvcDotMTdweDsKCWNvbG9yOiNmZmZmZmY7Cgl3aWR0aDo3MHB4OwoJaGVpZ2h0OjM0cHg7CglvcGFjaXR5OjA7Cgl6LWluZGV4OjI7Cglmb250LXNpemU6MjBweDsKCWxpbmUtaGVpZ2h0OjM0cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQobGVmdCwgIzA5MTQ5NCAwJSwgIzMxNDFmZSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGNvbG9yLXN0b3AoMCwgIzA5MTQ5NCksIGNvbG9yLXN0b3AoMTAwLCAjMzE0MWZlKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDkxNDk0IDAlLCAjMzE0MWZlIDEwMCUpOwp9CgoucHJvamVjdC1ibG9jay10d28gLmlubmVyLWJveDpob3ZlciAuYXJyb3ctYm94ewoJcmlnaHQ6NDBweDsKCW9wYWNpdHk6MTsKfQoKLnByb2plY3QtYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MzVweCAyNXB4IDMwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cn0KCi5wcm9qZWN0LWJsb2NrLXR3byAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDoxLjNlbTsKCWZvbnQtd2VpZ2h0OjcwMDsKfQoKLnByb2plY3QtYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgaDQgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKfQoKLnByb2plY3QtYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWxpbmUtaGVpZ2h0OjEuN2VtOwoJZm9udC13ZWlnaHQ6NDAwOwoJY29sb3I6Izc3Nzc3NzsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLXRvcDoxMnB4Owp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVByaWNlIFNlY3Rpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5wcmljZS1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDcwcHg7CgliYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBib3R0b207CgliYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Cn0KCi5wcmljZS1zZWN0aW9uIC5zZWMtdGl0bGV7CgltYXJnaW4tYm90dG9tOjcwcHg7Cn0KCi5wcmljZS1ibG9ja3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTozMHB4Owp9CgoucHJpY2UtYmxvY2sgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cglib3JkZXI6MXB4IHNvbGlkICNmNWY1ZjU7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLnByaWNlLWJsb2NrLmFjdGl2ZSAuaW5uZXItYm94LAoucHJpY2UtYmxvY2sgLmlubmVyLWJveDpob3ZlcnsKCWJveC1zaGFkb3c6MHB4IDBweCAxNXB4IHJnYmEoMCwwLDAsMC4xMik7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC5yZWNvbWVuZHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNHB4OwoJZm9udC13ZWlnaHQ6NjAwOwoJbWFyZ2luLXRvcDoyNXB4OwoJZGlzcGxheTpibG9jazsKCXBhZGRpbmctbGVmdDozMHB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC5yZWNvbWVuZDpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6ICdcZjE2ZCc7CglsZWZ0OjBweDsKCWJvdHRvbTowcHg7Cgljb2xvcjojMDkxMzk0OwoJZm9udC13ZWlnaHQ6NDAwOwoJZm9udC1mYW1pbHk6ICJGbGF0aWNvbiI7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC40NHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzozMHB4IDMwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6IzFhMzk2YjsKfQoKLnByaWNlLWJsb2NrIC5pbm5lci1ib3ggLnVwcGVyLWJveDpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCWJvdHRvbTowcHg7CglyaWdodDowcHg7CgloZWlnaHQ6MHB4OwoJd2lkdGg6MTAwJTsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgIzFhMzk2YiksIGNvbG9yLXN0b3AoMTAwLCAjMWEzOTZiKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMxYTM5NmIgMCUsICMxYTM5NmIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwp9CgoucHJpY2UtYmxvY2suYWN0aXZlIC5pbm5lci1ib3ggLnVwcGVyLWJveDpiZWZvcmUsCi5wcmljZS1ibG9jayAuaW5uZXItYm94OmhvdmVyIC51cHBlci1ib3g6YmVmb3JlewoJaGVpZ2h0OjEwMCU7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC51cHBlci1ib3ggLnRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo3MDA7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjIwcHg7CglsaW5lLWhlaWdodDoxLjNlbTsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLnByaWNlLWJsb2NrLmFjdGl2ZXsKCXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yOHB4KTsKICAgIHRyYW5zZm9ybTp0cmFuc2xhdGV4KDI4cHgpOwp9CgoucHJpY2UtYmxvY2sgLmlubmVyLWJveDpob3ZlciAudXBwZXItYm94IHN1YiwKLnByaWNlLWJsb2NrIC5pbm5lci1ib3g6aG92ZXIgLnVwcGVyLWJveCAucHJpY2UsCi5wcmljZS1ibG9jayAuaW5uZXItYm94OmhvdmVyIC51cHBlci1ib3ggLnRpdGxlLAoucHJpY2UtYmxvY2suYWN0aXZlIC5pbm5lci1ib3ggLnVwcGVyLWJveCBzdWIsCi5wcmljZS1ibG9jay5hY3RpdmUgLmlubmVyLWJveCAudXBwZXItYm94IC5wcmljZSwKLnByaWNlLWJsb2NrLmFjdGl2ZSAuaW5uZXItYm94IC51cHBlci1ib3ggLnRpdGxlewoJY29sb3I6I2ZmZmZmZjsKfQoKLnByaWNlLWJsb2NrIC5pbm5lci1ib3ggLnVwcGVyLWJveCAucHJpY2V7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMzMjQxZmY7Cglmb250LXNpemU6NzJweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWxpbmUtaGVpZ2h0OjFlbTsKCW1hcmdpbi10b3A6MTBweDsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9CgoucHJpY2UtYmxvY2sgLmlubmVyLWJveCAudXBwZXItYm94IHN1cHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdG9wOi0yOHB4OwoJZm9udC1zaXplOjI0cHg7Cglmb250LXdlaWdodDo3MDA7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC51cHBlci1ib3ggc3ViewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjEycHg7Cglmb250LXdlaWdodDo0MDA7CgltYXJnaW4tbGVmdDotMTBweDsKfQoKLnByaWNlLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo0MHB4IDQwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKfQoKLnByaWNlLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWJveCAucHJpY2UtbGlzdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC5sb3dlci1ib3ggLnByaWNlLWxpc3QgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiM2NjY2NjY7Cglmb250LXNpemU6MTZweDsKCXRleHQtYWxpZ246bGVmdDsKCW1hcmdpbi1ib3R0b206MTZweDsKCXBhZGRpbmctbGVmdDoyNXB4Owp9CgoucHJpY2UtYmxvY2sgLmlubmVyLWJveCAubG93ZXItYm94IC5wcmljZS1saXN0IGxpOmxhc3QtY2hpbGR7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLnByaWNlLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWJveCAucHJpY2UtbGlzdCBsaTpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6J1xmMDBjJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWNvbG9yOiMzMjQxZmY7Cglmb250LXNpemU6MTZweDsKCWZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnOwp9CgoucHJpY2UtYmxvY2sgLmlubmVyLWJveCAubG93ZXItYm94IC5wcmljZS1saXN0IGxpIHNwYW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXdlaWdodDo1MDA7Cn0KCi5wcmljZS1ibG9jayAuaW5uZXItYm94IC5sb3dlci1ib3ggLnByaWNlLWxpc3QgbGkuYmxhbmt7CglmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKTsKCW9wYWNpdHk6MC41Owp9CgoucHJpY2UtYmxvY2sgLmlubmVyLWJveCAubG93ZXItYm94IC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjEuOGVtOwoJcGFkZGluZy10b3A6MjJweDsKCW1hcmdpbi10b3A6MzBweDsKCW1hcmdpbi1ib3R0b206MjVweDsKCWJvcmRlci10b3A6MnB4IHNvbGlkICNlMWUxZTE7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJVmlkZW8gU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnZpZGVvLXNlY3Rpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRleHQtYWxpZ246Y2VudGVyOwoJcGFkZGluZzo5NXB4IDBweCA5NXB4OwoJYmFja2dyb3VuZC1hdHRhY2htZW50OmZpeGVkOwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwp9CgoudmlkZW8tc2VjdGlvbjpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJb3BhY2l0eTowLjk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMxYTM5NmIgMCUsICMxYTM5NmIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAsICMxYTM5NmIpLCBjb2xvci1zdG9wKDEwMCwgIzFhMzk2YikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKfQoKLnZpZGVvLXNlY3Rpb24uc3R5bGUtdHdvOmJlZm9yZXsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjYzEyODJhIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjYzEyODJhIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI2MxMjgyYSAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgI2MxMjgyYSksIGNvbG9yLXN0b3AoMTAwLCAjMjQyMzM0KSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNjMTI4MmEgMCUsICMyNDIzMzQgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjYzEyODJhIDAlLCAjMjQyMzM0IDEwMCUpOwp9CgoudmlkZW8tc2VjdGlvbi5zdHlsZS10d28gLnZpZGVvLWJveHsKCWNvbG9yOiMyMjIyMjI7Cn0KCi52aWRlby1zZWN0aW9uIC52aWRlby1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjkwcHg7CgloZWlnaHQ6OTBweDsKCWNvbG9yOiMwOTEzOTQ7Cglmb250LXNpemU6MjhweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJbGluZS1oZWlnaHQ6IDkwcHg7CgltYXJnaW4tdG9wOjMwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOwp9CgoudmlkZW8tc2VjdGlvbiAudmlkZW8tYm94IC5vdmVybGF5LWJveCBzcGFuewoJcG9zaXRpb246IGFic29sdXRlOwoJd2lkdGg6OTBweDsKCWhlaWdodDogOTBweDsKCWxlZnQ6NTAlOwogICAgdG9wOiA1MCU7Cgl6LWluZGV4Ojk5OwoJY29sb3I6ICMwOTEzOTQ7Cglmb250LXdlaWdodDo0MDA7Cglmb250LXNpemU6MjJweDsKCXRleHQtYWxpZ246IGNlbnRlcjsKCWJvcmRlci1yYWRpdXM6NTAlOwoJcGFkZGluZy1sZWZ0OjdweDsKCWJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CgltYXJnaW4tdG9wOiAtNDVweDsKCW1hcmdpbi1sZWZ0Oi00NXB4OwoJdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtbW96LXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIC1vLXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwoJYm94LXNoYWRvdzowcHggMHB4IDE1cHggcmdiYSgwLDAsMCwwLjEwKTsKfQoKLnZpZGVvLXNlY3Rpb24gLnZpZGVvLWJveCAucmlwcGxlLAoudmlkZW8tc2VjdGlvbiAudmlkZW8tYm94IC5yaXBwbGU6YmVmb3JlLAoudmlkZW8tc2VjdGlvbiAudmlkZW8tYm94IC5yaXBwbGU6YWZ0ZXIgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICBoZWlnaHQ6IDkwcHg7CiAgICB3aWR0aDogOTBweDsKCW1hcmdpbi1sZWZ0Oi41cHg7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDUwJTsKICAgIC1tb3otYm9yZGVyLXJhZGl1czogNTAlOwogICAgLW1zLWJvcmRlci1yYWRpdXM6IDUwJTsKICAgIC1vLWJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC40KTsKICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC40KTsKICAgIC1tcy1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjQpOwogICAgLW8tYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIC40KTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNCk7CiAgICAtd2Via2l0LWFuaW1hdGlvbjogcmlwcGxlIDNzIGluZmluaXRlOwogICAgLW1vei1hbmltYXRpb246IHJpcHBsZSAzcyBpbmZpbml0ZTsKICAgIC1tcy1hbmltYXRpb246IHJpcHBsZSAzcyBpbmZpbml0ZTsKICAgIC1vLWFuaW1hdGlvbjogcmlwcGxlIDNzIGluZmluaXRlOwogICAgYW5pbWF0aW9uOiByaXBwbGUgM3MgaW5maW5pdGU7Cn0KCi52aWRlby1zZWN0aW9uIC52aWRlby1ib3ggLnJpcHBsZTpiZWZvcmUgewogICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC45czsKICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAuOXM7CiAgICAtbXMtYW5pbWF0aW9uLWRlbGF5OiAuOXM7CiAgICAtby1hbmltYXRpb24tZGVsYXk6IC45czsKICAgIGFuaW1hdGlvbi1kZWxheTogLjlzOwogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KCi52aWRlby1zZWN0aW9uIC52aWRlby1ib3ggLnJpcHBsZTphZnRlciB7CiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLjZzOwogICAgLW1vei1hbmltYXRpb24tZGVsYXk6IC42czsKICAgIC1tcy1hbmltYXRpb24tZGVsYXk6IC42czsKICAgIC1vLWFuaW1hdGlvbi1kZWxheTogLjZzOwogICAgYW5pbWF0aW9uLWRlbGF5OiAuNnM7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHJpcHBsZSB7CiAgICA3MCUge2JveC1zaGFkb3c6IDAgMCAwIDcwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTt9CiAgICAxMDAlIHtib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7fQp9CgpAa2V5ZnJhbWVzIHJpcHBsZSB7CiAgICA3MCUge2JveC1zaGFkb3c6IDAgMCAwIDcwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTt9CiAgICAxMDAlIHtib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7fQp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVRlYW0gU2VjdGlvbiBUd28KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi50ZWFtLXNlY3Rpb24tdHdvewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDEwMHB4OwoJYmFja2dyb3VuZC1jb2xvcjojZjZmN2ZmOwp9CgoudGVhbS1ibG9jay10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3ggLmltYWdlewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi50ZWFtLWJsb2NrLXR3byAuaW5uZXItYm94IC5pbWFnZSBpbWd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7CglkaXNwbGF5OmJsb2NrOwp9CgoudGVhbS1ibG9jay10d28gLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgoudGVhbS1ibG9jay10d28gLmlubmVyLWJveCAubG93ZXItY29udGVudCAuc29jaWFsLW5hdnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cglib3R0b206MHB4OwoJd2lkdGg6MTAwJTsKCWRpc3BsYXk6YmxvY2s7CglvcGFjaXR5OjA7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCXBhZGRpbmc6OXB4IDIwcHggOXB4OwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJYm9yZGVyLXJhZGl1czowcHggOHB4IDBweCAwcHg7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cglib3gtc2hhZG93OjBweCAwcHggMTBweCByZ2JhKDAsMCwwLDAuMTApOwp9CgoudGVhbS1ibG9jay10d28gLmlubmVyLWJveDpob3ZlciAubG93ZXItY29udGVudCAuc29jaWFsLW5hdnsKCWJvdHRvbTotNDJweDsKCW9wYWNpdHk6MTsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnNvY2lhbC1uYXYgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1yaWdodDoxNXB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi50ZWFtLWJsb2NrLXR3byAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5zb2NpYWwtbmF2IGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MTZweDsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnNvY2lhbC1uYXYgbGkuZmFjZWJvb2sgYXsKCWNvbG9yOiMxNjU5OWI7Cn0KCi50ZWFtLWJsb2NrLXR3byAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5zb2NpYWwtbmF2IGxpLnR3aXR0ZXIgYXsKCWNvbG9yOiMwM2E5ZjQ7Cn0KCi50ZWFtLWJsb2NrLXR3byAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5zb2NpYWwtbmF2IGxpLmdvb2dsZSBhewoJY29sb3I6I2ZmMDAwMDsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnNvY2lhbC1uYXYgbGkubGlua2VkIGF7Cgljb2xvcjojMjI4YWJmOwp9CgoudGVhbS1ibG9jay10d28gLmlubmVyLWJveCAubG93ZXItY29udGVudCAuY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglwYWRkaW5nOjIwcHggMjBweCAyMHB4IDIwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cglib3JkZXItcmFkaXVzOjBweCAwcHggOHB4IDBweDsKCWJveC1zaGFkb3c6MHB4IDBweCAxMHB4IHJnYmEoMCwwLDAsMC4xMCk7Cn0KCi50ZWFtLWJsb2NrLXR3byAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5jb250ZW50IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDoxLjNlbTsKCWZvbnQtd2VpZ2h0OjcwMDsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLmNvbnRlbnQgaDQgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKfQoKLnRlYW0tYmxvY2stdHdvIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLmNvbnRlbnQgLmRlc2lnbmF0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMzI0MWZmOwoJZm9udC1zaXplOjE0cHg7CgltYXJnaW4tdG9wOjJweDsKfQoKCgoKCgoubmV3cy1ibG9jay10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjBweDsKfQoKLm5ld3MtYmxvY2stdHdvIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWJvcmRlcjoxcHggc29saWQgI2VlZWVlZTsKfQoKLm5ld3MtYmxvY2stdHdvIC5pbm5lci1ib3g6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJcmlnaHQ6MHB4OwoJd2lkdGg6MTAwJTsKCWhlaWdodDowcHg7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMxYTM5NmIgMCUsICMxYTM5NmIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAsICMxYTM5NmIpLCBjb2xvci1zdG9wKDEwMCwgIzFhMzk2YikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMWEzOTZiIDAlLCAjMWEzOTZiIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzFhMzk2YiAwJSwgIzFhMzk2YiAxMDAlKTsKfQoKLm5ld3MtYmxvY2stdHdvIC5pbm5lci1ib3g6aG92ZXI6OmJlZm9yZXsKCWhlaWdodDoxMDAlOwp9CgoubmV3cy1ibG9jay10d28gLmlubmVyLWJveCAuY29udGVudC1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MjBweCAyNXB4IDIwcHg7Cn0KCi5uZXdzLWJsb2NrLXR3byAuaW5uZXItYm94IC5jb250ZW50LWJveCBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS42ZW07Cn0KCi5uZXdzLWJsb2NrLXR3byAuaW5uZXItYm94IC5jb250ZW50LWJveCBoNCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo3MDA7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjIwcHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgoubmV3cy1ibG9jay10d28gLmlubmVyLWJveCAuY29udGVudC1ib3ggLnBvc3QtbWV0YXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLXRvcDoxNXB4OwoJcGFkZGluZy10b3A6MTVweDsKCWJvcmRlci10b3A6MXB4IHNvbGlkICNlZWVlZWU7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgoubmV3cy1ibG9jay10d28gLmlubmVyLWJveCAuY29udGVudC1ib3ggLnBvc3QtbWV0YSBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLXJpZ2h0OjEycHg7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE0cHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5uZXdzLWJsb2NrLXR3byAuaW5uZXItYm94IC5jb250ZW50LWJveCAucG9zdC1tZXRhIGxpIC5pY29uewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tcmlnaHQ6OHB4OwoJdG9wOjFweDsKfQoKLm5ld3MtYmxvY2stdHdvIC5pbm5lci1ib3ggLmNvbnRlbnQtYm94IC5wb3N0LW1ldGEgbGk6bGFzdC1jaGlsZHsKCW1hcmdpbi1yaWdodDowcHg7Cn0KCi5uZXdzLWJsb2NrLXR3byAuaW5uZXItYm94OmhvdmVyIC5jb250ZW50LWJveCAucG9zdC1tZXRhIGxpLAoubmV3cy1ibG9jay10d28gLmlubmVyLWJveDpob3ZlciAuY29udGVudC1ib3ggaDQgYXsKCWNvbG9yOiNmZmZmZmY7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJTWFpbiBTbGlkZXIgVGhyZWUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5tYWluLXNsaWRlci10aHJlZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLnNvY2lhbC1uYXZ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6NDBweDsKCWJvdHRvbTo2MHB4OwoJei1pbmRleDoyOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLnNvY2lhbC1uYXYgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MTZweDsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5zb2NpYWwtbmF2IGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTZweDsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5tYWluLXNsaWRlci10aHJlZSAuc29jaWFsLW5hdiBsaSBhOmhvdmVyewoJY29sb3I6IzAwYWVlZjsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC50ZXh0LWJveGVkewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjUwJTsKCWJvdHRvbTotMTE1cHg7Cgl6LWluZGV4OjM7Cgl3aWR0aDoxMDAlOwoJbWF4LXdpZHRoOjU4NXB4OwoJcGFkZGluZzo0MHB4IDUwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC50ZXh0LWJveGVkIC5ib3gtdGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToyNHB4OwoJbGluZS1oZWlnaHQ6MS44ZW07Cn0KCi5tYWluLXNsaWRlci10aHJlZSAuc2xpZGU6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6NTAlOwoJaGVpZ2h0OjEwMCU7Cgl6LWluZGV4OjI7CgliYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvbWFpbi1zbGlkZXIvcGF0dGVybi0xLmpwZykgbm8tcmVwZWF0OwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLmNvbnRlbnQtYm94ZWR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXotaW5kZXg6MzsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5zbGlkZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyMzBweCAwcHggMjYwcHg7CgliYWNrZ3JvdW5kLXNpemU6Y292ZXI7CgliYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7CgliYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7Cn0KCi5tYWluLXNsaWRlci10aHJlZSAudGl0bGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6IDE2cHg7Cglmb250LXdlaWdodDogNDAwOwoJbWFyZ2luLWJvdHRvbTogMjRweDsKCW9wYWNpdHk6IDA7CglsZXR0ZXItc3BhY2luZzoxcHg7Cgl0cmFuc2Zvcm06IHNjYWxlWSgwKTsKCXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7CgkKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5hY3RpdmUgLnRpdGxlewoJb3BhY2l0eTogMTsKCXRyYW5zZm9ybTogc2NhbGVZKDEpOwoJLXdlYmtpdC10cmFuc2l0aW9uLWRlbGF5OiA1MDBtczsKCS1tb3otdHJhbnNpdGlvbi1kZWxheTogNTAwbXM7CgktbXMtdHJhbnNpdGlvbi1kZWxheTogNTAwbXM7Cgktby10cmFuc2l0aW9uLWRlbGF5OiA1MDBtczsKCXRyYW5zaXRpb24tZGVsYXk6IDUwMG1zOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgaDF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXdlaWdodDo2MDA7CglsaW5lLWhlaWdodDoxLjJlbTsKCW1hcmdpbi1ib3R0b206MzBweDsKCW9wYWNpdHk6IDA7Cgl0cmFuc2Zvcm06IHNjYWxlWSgwKTsKCXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOiBhbGwgMTAwMG1zIGVhc2U7Cn0KCi5tYWluLXNsaWRlci10aHJlZSAuYWN0aXZlIGgxewoJb3BhY2l0eTogMTsKCXRyYW5zZm9ybTogc2NhbGVZKDEpOwoJdHJhbnNpdGlvbi1kZWxheTogMTAwMG1zOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNlZWVlZWU7Cglmb250LXNpemU6MTZweDsKCW9wYWNpdHk6MDsKCXRyYW5zZm9ybTogc2NhbGVZKDApOwoJdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJbGluZS1oZWlnaHQ6IDEuOWVtOwoJZm9udC13ZWlnaHQ6NDAwOwoJbWFyZ2luLWJvdHRvbTo0MnB4ICFpbXBvcnRhbnQ7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDEwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLmFjdGl2ZSAudGV4dHsKCW9wYWNpdHk6IDE7Cgl0cmFuc2Zvcm06IHNjYWxlWSgxKTsKCXRyYW5zaXRpb24tZGVsYXk6IDE1MDBtczsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5saW5rLWJveHsKCW9wYWNpdHk6MDsKCXRyYW5zZm9ybTogc2NhbGVZKDApOwoJdHJhbnNmb3JtLW9yaWdpbjogdG9wOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAxMDAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDEwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDEwMDBtcyBlYXNlOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLmFjdGl2ZSAubGluay1ib3h7CglvcGFjaXR5OiAxOwoJdHJhbnNmb3JtOiBzY2FsZVkoMSk7Cgl0cmFuc2l0aW9uLWRlbGF5OiAyMDAwbXM7Cn0KCi5tYWluLXNsaWRlci10aHJlZSAubGluay1ib3ggLnRoZW1lLWJ0bnsKCW1hcmdpbi1yaWdodDoyMHB4OwoJZmxvYXQ6bGVmdDsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5vd2wtZG90c3sKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MTEwcHg7Cgl0b3A6NTAlOwoJZGlzcGxheTpub25lOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLm93bC1kb3RzIC5vd2wtZG90ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxNnB4OwoJaGVpZ2h0OjE2cHg7CgltYXJnaW4tYm90dG9tOjEwcHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7CgltYXJnaW4tYm90dG9tOjEwcHg7Cn0KCi5tYWluLXNsaWRlci10aHJlZSAub3dsLWRvdHMgLm93bC1kb3Q6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJcmlnaHQ6MHB4OwoJYm90dG9tOjBweDsKCW9wYWNpdHk6MDsKCWJvcmRlci1yYWRpdXM6NTBweDsKCWJvcmRlcjozcHggc29saWQgIzAwYWVlZjsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLm93bC1kb3RzIC5vd2wtZG90LmFjdGl2ZTpiZWZvcmUsCi5tYWluLXNsaWRlci10aHJlZSAub3dsLWRvdHMgLm93bC1kb3Q6aG92ZXI6OmJlZm9yZXsKCW9wYWNpdHk6MTsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5vd2wtbmF2ewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDo1MCU7Cgl6LWluZGV4OjE7Cgl3aWR0aDoxMDAlOwoJbWFyZ2luLXRvcDotMTBweDsKCWRpc3BsYXk6bm9uZTsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5vd2wtbmF2IC5vd2wtcHJldnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDoyMHB4OwoJd2lkdGg6NjBweDsKCWhlaWdodDo2MHB4OwoJY29sb3I6I2ZmZmZmZjsKCWxpbmUtaGVpZ2h0OjU2cHg7Cglmb250LXNpemU6MjRweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCWJvcmRlcjoycHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjYwKTsKfQoKLm1haW4tc2xpZGVyLXRocmVlIC5vd2wtbmF2IC5vd2wtbmV4dHsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MjBweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MjRweDsKCXdpZHRoOjYwcHg7CgloZWlnaHQ6NjBweDsKCWNvbG9yOiNmZmZmZmY7CglsaW5lLWhlaWdodDo1NnB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJYm9yZGVyOjJweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNjApOwp9CgoubWFpbi1zbGlkZXItdGhyZWUgLm93bC1uYXYgLm93bC1wcmV2OmhvdmVyLAoubWFpbi1zbGlkZXItdGhyZWUgLm93bC1uYXYgLm93bC1uZXh0OmhvdmVyewoJY29sb3I6I2ZmYWEwMDsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglXZSBBcmUgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLndlLWFyZS1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjE4MHB4IDBweCA2MHB4Owp9Cgoud2UtYXJlLXNlY3Rpb24gLnRpdGxlLWNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9Cgoud2UtYXJlLXNlY3Rpb24gLnRpdGxlLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi53ZS1hcmUtc2VjdGlvbiAuY29udGVudC1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLndlLWFyZS1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjYwcHggMHB4IDUwcHggNjBweDsKCWJvcmRlci1sZWZ0OjFweCBzb2xpZCAjYmJiYmJiOwp9Cgoud2UtYXJlLXNlY3Rpb24gLmNvbnRlbnQtY29sdW1uIC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiM2NjY2NjY7CglsaW5lLWhlaWdodDoxLjllbTsKCW1heC13aWR0aDo0MDBweDsKfQoKLndlLWFyZS1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAudGhlbWUtYnRuewoJbWFyZ2luLXRvcDozNXB4Owp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUZlYXR1cmVkIFNlY3Rpb24gVHdvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouZmVhdHVyZWQtc2VjdGlvbi10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MTAwcHggMHB4IDYwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Cn0KCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAucGF0ZXJuLWxheWVyewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDo0NjJweDsKCWhlaWdodDo0ODhweDsKCWJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsKfQoKLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5wYXRlcm4tbGF5ZXItdHdvewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJd2lkdGg6NDYycHg7CgloZWlnaHQ6NTEycHg7CgliYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Cn0KCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuYmxvY2tzLWNvbHVtbiAuZmVhdHVyZS1ibG9jazpudGgtY2hpbGQoMil7CgltYXJnaW4tdG9wOjcwcHg7Cn0KCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuYmxvY2tzLWNvbHVtbiAuZmVhdHVyZS1ibG9jazpudGgtY2hpbGQoMyl7CgltYXJnaW4tdG9wOi03MHB4Owp9CgouZmVhdHVyZS1ibG9ja3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9CgouZmVhdHVyZS1ibG9jayAuaW5uZXItYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjUwcHggMjVweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJYm9yZGVyLXJhZGl1czo1cHg7CglvdmVyZmxvdzpoaWRkZW47CgliYWNrZ3JvdW5kLWNvbG9yOiMyNDIzMzQ7Cn0KCi5mZWF0dXJlLWJsb2NrIC5pbm5lci1ib3ggLmljb24tYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDoxZW07Cglmb250LXNpemU6NjJweDsKCWNvbG9yOiMwMGFlZWY7Cn0KCi5mZWF0dXJlLWJsb2NrIC5pbm5lci1ib3ggaDR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7CglsaW5lLWhlaWdodDoxLjNlbTsKCWZvbnQtd2VpZ2h0OjcwMDsKCW1hcmdpbjoxNHB4IDBweDsKfQoKLmZlYXR1cmUtYmxvY2sgLmlubmVyLWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS43ZW07Cn0KCi5mZWF0dXJlLWJsb2NrIC5pbm5lci1ib3ggLm92ZXJsYXktYm94ewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDoxMDAlOwoJaGVpZ2h0OjEwMCU7Cgljb2xvcjojZmZmZmZmOwoJdGV4dC1hbGlnbjpjZW50ZXI7CgkKCW9wYWNpdHk6MDsKCS13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIHRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTkwZGVnKTsKICAgIC1tcy10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7CiAgICAtby10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7CiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7CiAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKICAgIC1tb3otdHJhbnNmb3JtLW9yaWdpbjogdG9wOwogICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKICAgIC1vLXRyYW5zZm9ybS1vcmlnaW46IHRvcDsKICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsKICAgIC1tcy10cmFuc2l0aW9uOiBhbGwgMC41czsKICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjVzOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDAuNXM7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC41czsKfQoKLmZlYXR1cmUtYmxvY2sgLmlubmVyLWJveDpob3ZlciAub3ZlcmxheS1ib3h7CglvcGFjaXR5OjE7Cgktd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7CiAgICAtbW96LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7CiAgICAtbXMtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgwZGVnKTsKICAgIC1vLXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMGRlZyk7CiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpOwp9CgouZmVhdHVyZS1ibG9jayAuaW5uZXItYm94IC5vdmVybGF5LWJveDpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOTApOwp9CgouZmVhdHVyZS1ibG9jayAuaW5uZXItYm94IC5vdmVybGF5LWJveCAub3ZlcmxheS1pbm5lcnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MTAwJTsKCWhlaWdodDoxMDAlOwoJZGlzcGxheTp0YWJsZTsKCXZlcnRpY2FsLWFsaWduOm1pZGRsZTsKCXBhZGRpbmc6MTBweCAzMHB4Owp9CgouZmVhdHVyZS1ibG9jayAuaW5uZXItYm94IC5vdmVybGF5LWJveCAub3ZlcmxheS1pbm5lciAuY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTp0YWJsZS1jZWxsOwoJdmVydGljYWwtYWxpZ246bWlkZGxlOwp9CgouZmVhdHVyZS1ibG9jayAuaW5uZXItYm94IC5vdmVybGF5LWJveCAuaWNvbi10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWxpbmUtaGVpZ2h0OjFlbTsKCWZvbnQtc2l6ZTo2MnB4OwoJY29sb3I6I2ZmZmZmZjsKfQoKLmZlYXR1cmUtYmxvY2sgLmlubmVyLWJveCAub3ZlcmxheS1ib3ggaDV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWxpbmUtaGVpZ2h0OjEuM2VtOwoJZm9udC13ZWlnaHQ6NzAwOwoJbWFyZ2luOjE1cHggMHB4IDEycHg7Cn0KCi5mZWF0dXJlLWJsb2NrIC5pbm5lci1ib3ggLm92ZXJsYXktYm94IGg1IGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMwMGFlZWY7Cn0KCi5mZWF0dXJlLWJsb2NrIC5pbm5lci1ib3ggLm92ZXJsYXktYm94IC5yZWFkLW1vcmV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTVweDsKCW1hcmdpbi10b3A6NjBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLmZlYXR1cmUtYmxvY2sgLmlubmVyLWJveCAub3ZlcmxheS1ib3ggLnJlYWQtbW9yZTpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjUwJTsKCXRvcDotNjBweDsKCXdpZHRoOjRweDsKCWhlaWdodDo1MHB4OwoJbWFyZ2luLWxlZnQ6LTJweDsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgliYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjUwLDI1MCwyNTAsMC4yMCk7Cn0KCi5mZWF0dXJlLWJsb2NrIC5pbm5lci1ib3ggLm92ZXJsYXktYm94IC5yZWFkLW1vcmU6aG92ZXI6OmJlZm9yZXsKCWJhY2tncm91bmQtY29sb3I6cmdiYSgxNzgsMTIxLDM5LDAuODApOwp9CgouZmVhdHVyZS1ibG9jayAuaW5uZXItYm94IC5vdmVybGF5LWJveCAucmVhZC1tb3JlOmhvdmVyewoJY29sb3I6IzAwYWVlZjsKfQoKLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouZmVhdHVyZWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDo0MHB4Owp9CgouZmVhdHVyZWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5ibG9ja3Mtb3V0ZXIgLmZlYXR1cmUtYmxvY2stdHdvOmxhc3QtY2hpbGR7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbiAubGluay1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6NTBweDsKfQoKLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbiAubGluay1ib3ggLnZpZGVvLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6NjBweDsKCWhlaWdodDo2MHB4OwoJY29sb3I6IzM4MWQwMTsKCWZvbnQtc2l6ZToxOHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglib3JkZXItcmFkaXVzOjUwcHg7CglsaW5lLWhlaWdodDogNjBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJZmxvYXQ6bGVmdDsKCW1hcmdpbi1yaWdodDo0MHB4OwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgliYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7Cn0KCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmxpbmstYm94IC52aWRlby1ib3ggLm92ZXJsYXktYm94IHNwYW57Cglwb3NpdGlvbjogYWJzb2x1dGU7Cgl3aWR0aDo2MHB4OwoJaGVpZ2h0OiA2MHB4OwoJbGVmdDo1MCU7CiAgICB0b3A6IDUwJTsKCXotaW5kZXg6OTk7Cgljb2xvcjogIzM4MWQwMTsKCWZvbnQtd2VpZ2h0OjQwMDsKCWZvbnQtc2l6ZToxNnB4OwoJdGV4dC1hbGlnbjogY2VudGVyOwoJYm9yZGVyLXJhZGl1czo1MCU7CglwYWRkaW5nLWxlZnQ6N3B4OwoJYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsKCWRpc3BsYXk6IGlubGluZS1ibG9jazsKCW1hcmdpbi10b3A6IC0zMHB4OwoJbWFyZ2luLWxlZnQ6LTMwcHg7Cgl0cmFuc2l0aW9uOiBhbGwgOTAwbXMgZWFzZTsKICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwogICAgLW1zLXRyYW5zaXRpb246IGFsbCA5MDBtcyBlYXNlOwogICAgLW8tdHJhbnNpdGlvbjogYWxsIDkwMG1zIGVhc2U7Cglib3gtc2hhZG93OjBweCAwcHggMTVweCByZ2JhKDAsMCwwLDAuMTApOwp9CgouZmVhdHVyZWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5saW5rLWJveCAudmlkZW8tYm94IC5yaXBwbGUsCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmxpbmstYm94IC52aWRlby1ib3ggLnJpcHBsZTpiZWZvcmUsCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmxpbmstYm94IC52aWRlby1ib3ggLnJpcHBsZTphZnRlciB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDUwJTsKICAgIGxlZnQ6IDUwJTsKICAgIGhlaWdodDogNjBweDsKICAgIHdpZHRoOiA2MHB4OwoJbWFyZ2luLWxlZnQ6LjVweDsKICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgLW1zLXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgLW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNTAlOwogICAgLW1vei1ib3JkZXItcmFkaXVzOiA1MCU7CiAgICAtbXMtYm9yZGVyLXJhZGl1czogNTAlOwogICAgLW8tYm9yZGVyLXJhZGl1czogNTAlOwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTc3LCAxMjAsIDM5LCAuNCk7CiAgICAtbW96LWJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgxNzcsIDEyMCwgMzksIC40KTsKICAgIC1tcy1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTc3LCAxMjAsIDM5LCAuNCk7CiAgICAtby1ib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTc3LCAxMjAsIDM5LCAuNCk7CiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMTc3LCAxMjAsIDM5LCAuNCk7CiAgICAtd2Via2l0LWFuaW1hdGlvbjogcmlwcGxlIDNzIGluZmluaXRlOwogICAgLW1vei1hbmltYXRpb246IHJpcHBsZSAzcyBpbmZpbml0ZTsKICAgIC1tcy1hbmltYXRpb246IHJpcHBsZSAzcyBpbmZpbml0ZTsKICAgIC1vLWFuaW1hdGlvbjogcmlwcGxlIDNzIGluZmluaXRlOwogICAgYW5pbWF0aW9uOiByaXBwbGUgM3MgaW5maW5pdGU7Cn0KCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmxpbmstYm94IC52aWRlby1ib3ggLnJpcHBsZTpiZWZvcmUgewogICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC45czsKICAgIC1tb3otYW5pbWF0aW9uLWRlbGF5OiAuOXM7CiAgICAtbXMtYW5pbWF0aW9uLWRlbGF5OiAuOXM7CiAgICAtby1hbmltYXRpb24tZGVsYXk6IC45czsKICAgIGFuaW1hdGlvbi1kZWxheTogLjlzOwogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cn0KCi5mZWF0dXJlZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmxpbmstYm94IC52aWRlby1ib3ggLnJpcHBsZTphZnRlciB7CiAgICAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTogLjZzOwogICAgLW1vei1hbmltYXRpb24tZGVsYXk6IC42czsKICAgIC1tcy1hbmltYXRpb24tZGVsYXk6IC42czsKICAgIC1vLWFuaW1hdGlvbi1kZWxheTogLjZzOwogICAgYW5pbWF0aW9uLWRlbGF5OiAuNnM7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHJpcHBsZSB7CiAgICA3MCUge2JveC1zaGFkb3c6IDAgMCAwIDcwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTt9CiAgICAxMDAlIHtib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7fQp9CgpAa2V5ZnJhbWVzIHJpcHBsZSB7CiAgICA3MCUge2JveC1zaGFkb3c6IDAgMCAwIDcwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTt9CiAgICAxMDAlIHtib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7fQp9CgouZmVhdHVyZS1ibG9jay10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDVweDsKfQoKLmZlYXR1cmUtYmxvY2stdHdvIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDoxMDBweDsKfQoKLmZlYXR1cmUtYmxvY2stdHdvIC5pbm5lci1ib3ggLmljb24tYm94ewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDo1cHg7CglsaW5lLWhlaWdodDoxZW07Cgljb2xvcjojMjQyMzM0OwoJZm9udC1zaXplOjYwcHg7Cn0KCi5mZWF0dXJlLWJsb2NrLXR3byAuaW5uZXItYm94IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDoxLjRlbTsKCWZvbnQtd2VpZ2h0OjcwMDsKfQoKLmZlYXR1cmUtYmxvY2stdHdvIC5pbm5lci1ib3ggaDQgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzAwYWVlZjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5mZWF0dXJlLWJsb2NrLXR3byAuaW5uZXItYm94IGg0IGE6aG92ZXJ7Cgljb2xvcjojMzcxYzAwOwp9CgouZmVhdHVyZS1ibG9jay10d28gLmlubmVyLWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS42ZW07CgltYXJnaW4tdG9wOjEwcHg7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJU2VydmljZXMgU2VjdGlvbiBGb3VyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouc2VydmljZXMtc2VjdGlvbi1mb3VyewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDk1cHg7Cn0KCi5zZXJ2aWNlcy1zZWN0aW9uLWZvdXIgLnNlYy10aXRsZXsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLnNlcnZpY2VzLXNlY3Rpb24tZm91cjpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206MHB4OwoJYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuOTApOwp9Cgouc2VydmljZXMtc2VjdGlvbi1mb3VyIC5vd2wtbmF2ewoJZGlzcGxheTpub25lOwp9Cgouc2VydmljZXMtc2VjdGlvbi1mb3VyIC5vd2wtZG90c3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CgltYXJnaW4tdG9wOjMwcHg7Cn0KCi5zZXJ2aWNlcy1zZWN0aW9uLWZvdXIgLm93bC1kb3RzIC5vd2wtZG90ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMHB4OwoJaGVpZ2h0OjEwcHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CgltYXJnaW46MHB4IDVweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwp9Cgouc2VydmljZXMtc2VjdGlvbi1mb3VyIC5vd2wtZG90cyAub3dsLWRvdC5hY3RpdmUsCi5zZXJ2aWNlcy1zZWN0aW9uLWZvdXIgLm93bC1kb3RzIC5vd2wtZG90OmhvdmVyewoJYmFja2dyb3VuZC1jb2xvcjojYjA3NzI2Owp9Cgouc2VydmljZXMtc2VjdGlvbi1mb3VyIC5sb3dlci10ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7CgltYXJnaW4tdG9wOjMwcHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKfQoKLnNlcnZpY2VzLXNlY3Rpb24tZm91ciAubG93ZXItdGV4dCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMDBhZWVmOwoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsKfQoKLyogU2VydmljZSBCbG9jayBGb3VyICovCgouc2VydmljZS1ibG9jay1mb3VyewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjMwcHg7Cn0KCi5zZXJ2aWNlLWJsb2NrLWZvdXIgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9Cgouc2VydmljZS1ibG9jay1mb3VyIC5pbm5lci1ib3ggLmltYWdlewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zZXJ2aWNlLWJsb2NrLWZvdXIgLmlubmVyLWJveCAuaW1hZ2UgaW1newoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJZGlzcGxheTpibG9jazsKfQoKLnNlcnZpY2UtYmxvY2stZm91ciAuaW5uZXItYm94IC5sb3dlci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1sZWZ0OjIwcHg7CgltYXJnaW4tcmlnaHQ6MjBweDsKCXBhZGRpbmc6MjVweCAyMHB4OwoJZGlzcGxheTpibG9jazsKCW1hcmdpbi10b3A6LTM2cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cn0KCi5zZXJ2aWNlLWJsb2NrLWZvdXIgLmlubmVyLWJveCAubG93ZXItYm94OmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJYm90dG9tOjBweDsKCXdpZHRoOjEwMCU7CgloZWlnaHQ6MHB4OwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDYwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCA2MDBtcyBlYXNlOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChyaWdodCwgIzAwYWVlZiAwJSwgIzVFM0MxQSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDBhZWVmIDAlLCAjNUUzQzFBIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHJpZ2h0LCAjMDBhZWVmIDAlLCAjNUUzQzFBIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIHJpZ2h0IHRvcCwgbGVmdCB0b3AsIGNvbG9yLXN0b3AoMCwgIzAwYWVlZiksIGNvbG9yLXN0b3AoMTAwLCAjNUUzQzFBKSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChyaWdodCwgIzAwYWVlZiAwJSwgIzVFM0MxQSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBsZWZ0LCAjMDBhZWVmIDAlLCAjNUUzQzFBIDEwMCUpOwp9Cgouc2VydmljZS1ibG9jay1mb3VyIC5pbm5lci1ib3g6aG92ZXIgLmxvd2VyLWJveDpiZWZvcmV7CgloZWlnaHQ6MTAwJTsKfQoKLnNlcnZpY2UtYmxvY2stZm91ciAuaW5uZXItYm94IC5sb3dlci1ib3ggLmxvd2VyLWlubmVyewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nLWxlZnQ6NTZweDsKfQoKLnNlcnZpY2UtYmxvY2stZm91ciAuaW5uZXItYm94IC5sb3dlci1ib3ggLmxvd2VyLWlubmVyIC5pY29uewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgljb2xvcjojYjE3ODI3OwoJbGluZS1oZWlnaHQ6MWVtOwoJZm9udC1zaXplOjMycHg7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cn0KCi5zZXJ2aWNlLWJsb2NrLWZvdXIgLmlubmVyLWJveDpob3ZlciAubG93ZXItYm94IC5sb3dlci1pbm5lciAuaWNvbnsKCWNvbG9yOiNiMDc4MjY7Cn0KCi5zZXJ2aWNlLWJsb2NrLWZvdXIgLmlubmVyLWJveCAubG93ZXItYm94IC5sb3dlci1pbm5lciBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NjAwOwoJbGluZS1oZWlnaHQ6MS4zZW07Cn0KCi5zZXJ2aWNlLWJsb2NrLWZvdXIgLmlubmVyLWJveCAubG93ZXItYm94IC5sb3dlci1pbm5lciBoNCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwp9Cgouc2VydmljZS1ibG9jay1mb3VyIC5pbm5lci1ib3g6aG92ZXIgLmxvd2VyLWJveCAubG93ZXItaW5uZXIgaDQgYXsKCWNvbG9yOiNmZmZmZmY7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJUHJvY2VzcyBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgoucHJvY2Vzcy1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDcwcHg7Cn0KCi5wcm9jZXNzLXNlY3Rpb24gLmlubmVyLWNvbnRhaW5lcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoucHJvY2Vzcy1zZWN0aW9uOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJYm90dG9tOjgwcHg7Cgl3aWR0aDoxMDAlOwoJaGVpZ2h0OjI2M3B4OwoJYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2JhY2tncm91bmQvcGF0dGVybi05LnBuZykgbm8tcmVwZWF0OwoJYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgYm90dG9tOwp9CgoucHJvY2Vzcy1ibG9ja3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTozMHB4Owp9CgoucHJvY2Vzcy1ibG9jazpudGgtY2hpbGQoMil7CgltYXJnaW4tdG9wOjcwcHg7Cn0KCi5wcm9jZXNzLWJsb2NrIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWJvcmRlci1yYWRpdXM6NTAlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglwYWRkaW5nOjIwcHggMjBweDsKCXdpZHRoOjI3MHB4OwoJaGVpZ2h0OjI3MHB4OwoJbWFyZ2luOjAgYXV0bzsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCWJveC1zaGFkb3c6MHB4IDBweCAxNXB4IHJnYmEoMCwwLDAsMC4xMik7Cn0KCi5wcm9jZXNzLWJsb2NrIC5pbm5lci1ib3ggLnByb2Nlc3MtbnVtYmVyewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDoxNXB4OwoJdG9wOjE1cHg7Cgl3aWR0aDo3MHB4OwoJaGVpZ2h0OjcwcHg7Cgl6LWluZGV4OjE7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjMwcHg7Cglmb250LXdlaWdodDo1MDA7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWxpbmUtaGVpZ2h0OjYwcHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiMyNDIzMzQ7Cglib3JkZXI6NXB4IHNvbGlkICNmZmZmZmY7Cn0KCi5wcm9jZXNzLWJsb2NrOm50aC1jaGlsZCgyKSAuaW5uZXItYm94IC5wcm9jZXNzLW51bWJlcnsKCWJvdHRvbTowcHg7Cgl0b3A6YXV0bzsKfQoKLnByb2Nlc3MtYmxvY2s6bnRoLWNoaWxkKDMpIC5pbm5lci1ib3ggLnByb2Nlc3MtbnVtYmVyewoJbGVmdDoxNXB4OwoJcmlnaHQ6YXV0bzsKfQoKLnByb2Nlc3MtYmxvY2sgLmlubmVyLWJveCAuY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJYm9yZGVyLXJhZGl1czo1MCU7Cgl3aWR0aDoyMzBweDsKCWhlaWdodDoyMzBweDsKCXBhZGRpbmc6NTVweCAxNXB4IDQwcHg7Cglib3JkZXI6NnB4IHNvbGlkICNmNWY1ZjU7Cgktd2Via2l0LXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cn0KCi5wcm9jZXNzLWJsb2NrIC5pbm5lci1ib3g6aG92ZXIgLmNvbnRlbnR7Cglib3JkZXItY29sb3I6IzAwYWVlZjsKfQoKLnByb2Nlc3MtYmxvY2sgLmlubmVyLWJveCAuY29udGVudCBoM3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NzAwOwoJY29sb3I6IzIyMjIyMjsKCWxpbmUtaGVpZ2h0OjEuM2VtOwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwp9CgoucHJvY2Vzcy1ibG9jayAuaW5uZXItYm94OmhvdmVyIC5jb250ZW50IGgzewoJY29sb3I6IzAwYWVlZjsKfQoKLnByb2Nlc3MtYmxvY2sgLmlubmVyLWJveCAuY29udGVudCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS43ZW07Cgljb2xvcjojNzc3Nzc3OwoJZm9udC1zaXplOjE2cHg7CgltYXJnaW4tdG9wOjEwcHg7Cn0KCi5wcm9jZXNzLWJsb2NrLnN0eWxlLXR3byAuaW5uZXItYm94OmhvdmVyIC5jb250ZW50IGgzewoJY29sb3I6IzAwYWVlZjsKfQoKLnByb2Nlc3MtYmxvY2suc3R5bGUtdHdvIC5pbm5lci1ib3g6aG92ZXIgLmNvbnRlbnR7Cglib3JkZXItY29sb3I6IzAwYWVlZjsKfQoKLnByb2Nlc3MtYmxvY2suc3R5bGUtdHdvIC5pbm5lci1ib3ggLnByb2Nlc3MtbnVtYmVyewoJYmFja2dyb3VuZC1jb2xvcjojYzEyODJhOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUZsdWlkIFNlY3Rpb24gVHdvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouZmx1aWQtc2VjdGlvbi10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MHB4IDBweCAwcHg7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3byAub3V0ZXItY29udGFpbmVyewoJcG9zaXRpb246cmVsYXRpdmU7CgltaW4taGVpZ2h0OjI1MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMjQyMzM0Owp9CgouZmx1aWQtc2VjdGlvbi10d28gLmltYWdlLWNvbHVtbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6NTAlOwoJaGVpZ2h0OjEwMCU7CgliYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7CgliYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7CgliYWNrZ3JvdW5kLXNpemU6Y292ZXI7CQp9CgouZmx1aWQtc2VjdGlvbi10d28gLmltYWdlLWNvbHVtbiAuaW1hZ2UtYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5Om5vbmU7CQp9CgouZmx1aWQtc2VjdGlvbi10d28gLmltYWdlLWNvbHVtbiAuaW1hZ2UtYm94IGltZ3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZsb2F0OnJpZ2h0OwoJd2lkdGg6NTAlOwp9CgouZmx1aWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1heC13aWR0aDo2MDBweDsKCXdpZHRoOjEwMCU7CglwYWRkaW5nOjgwcHggMTVweCAxMjBweCA3MHB4Owp9CgouZmx1aWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5jb2x1bW4tbGlzdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouZmx1aWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5jb2x1bW4tbGlzdCBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNnB4OwoJcGFkZGluZy1sZWZ0OjQwcHg7CglsaW5lLWhlaWdodDoxLjdlbTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLmZsdWlkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbiAuY29sdW1uLWxpc3QgbGk6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OiAiXGYxZWMiOwoJbGVmdDowcHg7Cgl0b3A6NHB4OwoJZm9udC1zaXplOjIwcHg7Cgljb2xvcjojMDBhZWVmOwoJbGluZS1oZWlnaHQ6MWVtOwoJZm9udC1mYW1pbHk6ICJGbGF0aWNvbiI7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmNvbHVtbi1saXN0IGxpIHN0cm9uZ3sKCWZvbnQtd2VpZ2h0OjcwMDsKCW1hcmdpbi1ib3R0b206MTJweDsKCWZvbnQtc2l6ZToyNHB4OwoJZGlzcGxheTpibG9jazsKfQoKLmZsdWlkLXNlY3Rpb24tdHdvIC5sb3dlci1jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsKfQoKLmZsdWlkLXNlY3Rpb24tdHdvIC5sb3dlci1jb250ZW50IC5jb250ZW50LWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzozNXB4IDU1cHg7CgltYXJnaW4tdG9wOi04MHB4OwoJYm9yZGVyLXJhZGl1czoxMDBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYm9yZGVyOjRweCBzb2xpZCAjZmZmZmZmOwoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNBRTc2MjYgMCUsICMzZDIxMDIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNBRTc2MjYgMCUsICMzZDIxMDIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjQUU3NjI2IDAlLCAjM2QyMTAyIDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCAjQUU3NjI2KSwgY29sb3Itc3RvcCgxMDAsICMzZDIxMDIpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI0FFNzYyNiAwJSwgIzNkMjEwMiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNBRTc2MjYgMCUsICMzZDIxMDIgMTAwJSk7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3byAuaW5mby1saXN0ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3byAuaW5mby1saXN0IGxpewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7Cgl0ZXh0LWFsaWduOmxlZnQ7CglwYWRkaW5nLXRvcDoxMnB4OwoJbWluLWhlaWdodDo4MHB4OwoJcGFkZGluZy1yaWdodDo4MHB4OwoJbWFyZ2luLXJpZ2h0OjgwcHg7CglsaW5lLWhlaWdodDoxLjllbTsKCXBhZGRpbmctbGVmdDoxMTVweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJYm9yZGVyLXJpZ2h0OjJweCBzb2xpZCByZ2JhKDAsMCwwLDAuNjApOwp9CgouZmx1aWQtc2VjdGlvbi10d28gLmluZm8tbGlzdCBsaTpsYXN0LWNoaWxkewoJbWFyZ2luLXJpZ2h0OjBweDsKCXBhZGRpbmctcmlnaHQ6MHB4OwoJYm9yZGVyOm5vbmU7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3byAuaW5mby1saXN0IGxpIC5pY29uewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDo4MHB4OwoJaGVpZ2h0OjgwcHg7Cglmb250LXNpemU6NDRweDsKCWxpbmUtaGVpZ2h0Ojc0cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJvcmRlci1yYWRpdXM6NTBweDsKCWJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQocmlnaHQsICNBRTc2MjYgMCUsICMzRDIxMDIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChyaWdodCwgI0FFNzYyNiAwJSwgIzNEMjEwMiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudChyaWdodCwgI0FFNzYyNiAwJSwgIzNEMjEwMiAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCByaWdodCB0b3AsIGxlZnQgdG9wLCBjb2xvci1zdG9wKDAsICNBRTc2MjYpLCBjb2xvci1zdG9wKDEwMCwgIzNEMjEwMikpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmlnaHQsICNBRTc2MjYgMCUsICMzRDIxMDIgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI0FFNzYyNiAwJSwgIzNEMjEwMiAxMDAlKTsKfQoKLmZsdWlkLXNlY3Rpb24tdHdvIC5pbmZvLWxpc3QgbGkgc3Ryb25newoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo3MDA7Cglmb250LXNpemU6MjRweDsKCWRpc3BsYXk6YmxvY2s7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3by5zdHlsZS10d28gLm91dGVyLWNvbnRhaW5lcnsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKfQoKLmZsdWlkLXNlY3Rpb24tdHdvLnN0eWxlLXR3byAuY29udGVudC1jb2x1bW4gLmNvbHVtbi1saXN0IGxpewoJY29sb3I6IzY2NjY2NjsKfQoKLmZsdWlkLXNlY3Rpb24tdHdvLnN0eWxlLXR3byAuY29udGVudC1jb2x1bW4gLmNvbHVtbi1saXN0IGxpIHN0cm9uZ3sKCWNvbG9yOiMwMGFlZWY7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3by5zdHlsZS10d28gLmxvd2VyLWNvbnRlbnQgLmNvbnRlbnQtYm94ewoJYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICNjMTI4MmEgMCUsICMyNDIzMzQgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICNjMTI4MmEgMCUsICMyNDIzMzQgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQodG9wLCAjYzEyODJhIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLCAjYzEyODJhKSwgY29sb3Itc3RvcCgxMDAsICMyNDIzMzQpKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2MxMjgyYSAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNjMTI4MmEgMCUsICMyNDIzMzQgMTAwJSk7Cn0KCi5mbHVpZC1zZWN0aW9uLXR3by5zdHlsZS10d28gLmluZm8tbGlzdCBsaSAuaWNvbnsKCWJhY2tncm91bmQtaW1hZ2U6bm9uZTsKCWNvbG9yOiNkMDYxMWI7Cglib3JkZXItY29sb3I6IzQ2NDY0NjsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglUZXN0aW1vbmlhbCBTZWN0aW9uIFR3bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnRlc3RpbW9uaWFsLXNlY3Rpb24tdHdvewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDEyMHB4OwoJYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1Owp9CgoudGVzdGltb25pYWwtc2VjdGlvbi10d28uc3R5bGUtdHdvewoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJcGFkZGluZy1ib3R0b206NzBweDsKfQoKLnRlc3RpbW9uaWFsLXNlY3Rpb24tdHdvLnN0eWxlLXR3byAudGVzdGltb25pYWwtYmxvY2stdHdvewoJbWFyZ2luLWJvdHRvbTo2MHB4Owp9CgoudGVzdGltb25pYWwtYmxvY2stdHdvewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi50ZXN0aW1vbmlhbC1ibG9jay10d28gLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy10b3A6NzBweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJYm9yZGVyLXJhZGl1czo4cHg7CglwYWRkaW5nOjUwcHggMzVweCAwcHg7Cn0KCi50ZXN0aW1vbmlhbC1ibG9jay10d28gLmlubmVyLWJveDpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7CglyaWdodDowcHg7Cglib3R0b206NzBweDsKCWJvcmRlci1yYWRpdXM6OHB4OwoJLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246IGFsbCAzMDBtcyBlYXNlOwoJYm94LXNoYWRvdzowcHggMHB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTsKCWJhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2ltYWdlcy9iYWNrZ3JvdW5kL3BhdHRlcm4tMTAuanBnKTsKfQoKLnRlc3RpbW9uaWFsLWJsb2NrLXR3byAuaW5uZXItYm94OmhvdmVyOjpiZWZvcmV7CgliYWNrZ3JvdW5kLWltYWdlOm5vbmU7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cn0KCi50ZXN0aW1vbmlhbC1ibG9jay10d28gLmlubmVyLWJveCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjhlbTsKfQoKLnRlc3RpbW9uaWFsLWJsb2NrLXR3byAuaW5uZXItYm94IC5yYXRpbmd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMwMGFlZWY7CgltYXJnaW4tdG9wOjEwcHg7Cglmb250LXNpemU6MTZweDsKfQoKLnRlc3RpbW9uaWFsLWJsb2NrLXR3byAuaW5uZXItYm94IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJbGluZS1oZWlnaHQ6MS40ZW07Cglmb250LXdlaWdodDo3MDA7CgltYXJnaW4tdG9wOjEwcHg7Cn0KCi50ZXN0aW1vbmlhbC1ibG9jay10d28gLmlubmVyLWJveCAuZGVzaWduYXRpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiM3Nzc3Nzc7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjEuM2VtOwoJbWFyZ2luLXRvcDoxMHB4OwoJbWFyZ2luLWJvdHRvbToyNXB4Owp9CgoudGVzdGltb25pYWwtYmxvY2stdHdvIC5pbm5lci1ib3ggLmF1dGhvci1pbWFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoudGVzdGltb25pYWwtYmxvY2stdHdvIC5pbm5lci1ib3ggLmF1dGhvci1pbWFnZSAuaW1hZ2V7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEzM3B4OwoJaGVpZ2h0OjEzM3B4OwoJYm9yZGVyLXJhZGl1czo1MCU7CglvdmVyZmxvdzpoaWRkZW47CgltYXJnaW46MCBhdXRvOwp9CgoudGVzdGltb25pYWwtYmxvY2stdHdvIC5pbm5lci1ib3ggLmF1dGhvci1pbWFnZSAucXVvdGUtaWNvbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDo1MCU7Cglib3R0b206LTIwcHg7Cgljb2xvcjojZmZmZmZmOwoJd2lkdGg6NDBweDsKCWhlaWdodDo0MHB4OwoJbWFyZ2luLWxlZnQ6LTIwcHg7CglsaW5lLWhlaWdodDo0MHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cglib3JkZXItcmFkaXVzOjUwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6IzAwYWVlZjsKfQoKLnRlc3RpbW9uaWFsLWJsb2NrLXR3by5zdHlsZS10d28gLmlubmVyLWJveCAucmF0aW5newoJY29sb3I6IzAwYWVlZjsKfQoKLnRlc3RpbW9uaWFsLWJsb2NrLXR3by5zdHlsZS10d28gLmlubmVyLWJveCAuYXV0aG9yLWltYWdlIC5xdW90ZS1pY29uewoJYmFja2dyb3VuZC1jb2xvcjojYzEyODJhOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUNvbnRhY3QgU2VjdGlvbiBUd28KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5jb250YWN0LXNlY3Rpb24tdHdvewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjBweCAwcHggNTBweDsKfQoKLmNvbnRhY3Qtc2VjdGlvbi10d28gLmltYWdlLWNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9CgouY29udGFjdC1zZWN0aW9uLXR3byAuaW1hZ2UtY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctcmlnaHQ6MTAwcHg7Cn0KCi5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLmltYWdlewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tdG9wOi0xMHB4OwoJYm9yZGVyLXRvcDoyMHB4IHNvbGlkICMwMGFlZWY7Cn0KCi5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLmltYWdlIGltZ3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6MTAwJTsKCWRpc3BsYXk6YmxvY2s7Cn0KCi5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLmltYWdlOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCXJpZ2h0Oi02MHB4OwoJYm90dG9tOi02MHB4OwoJd2lkdGg6Mzg4cHg7CgloZWlnaHQ6NTA1cHg7CgliYWNrZ3JvdW5kOnVybCguLi9pbWFnZXMvYmFja2dyb3VuZC9wYXR0ZXJuLTExLnBuZykgbm8tcmVwZWF0Owp9CgouY29udGFjdC1zZWN0aW9uLXR3byAuaW1hZ2UtY29sdW1uIC5udW1iZXItYm94ewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tdG9wOjkwcHg7Cn0KCi5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLm51bWJlci1ib3ggLmJveC1pbm5lcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy1sZWZ0OjEwNXB4OwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZTozMHB4OwoJZm9udC13ZWlnaHQ6NTAwOwoJbGluZS1oZWlnaHQ6MS4zZW07CglwYWRkaW5nLXRvcDo2cHg7Cn0KCi5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLm51bWJlci1ib3ggLmljb257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjgwcHg7CgloZWlnaHQ6ODBweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MzhweDsKCWJvcmRlci1yYWRpdXM6NTBweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJbGluZS1oZWlnaHQ6ODBweDsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjQUU3NjI2IDAlLCAjM2QyMTAyIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjQUU3NjI2IDAlLCAjM2QyMTAyIDEwMCUpOwogICAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwgI0FFNzYyNiAwJSwgIzNkMjEwMiAxMDAlKTsKICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMCwgI0FFNzYyNiksIGNvbG9yLXN0b3AoMTAwLCAjM2QyMTAyKSk7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICNBRTc2MjYgMCUsICMzZDIxMDIgMTAwJSk7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjQUU3NjI2IDAlLCAjM2QyMTAyIDEwMCUpOwp9CgouY29udGFjdC1zZWN0aW9uLXR3byAuaW1hZ2UtY29sdW1uIC5udW1iZXItYm94IHN0cm9uZ3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MzBweDsKCWZvbnQtd2VpZ2h0OjcwMDsKfQoKLmNvbnRhY3Qtc2VjdGlvbi10d28gLmZvcm0tY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjQwcHg7Cn0KCi5jb250YWN0LXNlY3Rpb24tdHdvIC5mb3JtLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nLXRvcDo5MHB4Owp9CgouY29udGFjdC1zZWN0aW9uLXR3byAuZm9ybS1jb2x1bW4gLnByb2dyYW17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLWJvdHRvbToyNXB4Owp9CgouY29udGFjdC1zZWN0aW9uLXR3by5zdHlsZS10d28gLmltYWdlLWNvbHVtbiAuaW1hZ2V7Cglib3JkZXItY29sb3I6IzAwYWVlZjsKfQoKLmNvbnRhY3Qtc2VjdGlvbi10d28uc3R5bGUtdHdvIC5pbWFnZS1jb2x1bW4gLm51bWJlci1ib3ggLmljb257CgliYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMwMGFlZWYgMCUsICMyNDIzMzQgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAsICMwMGFlZWYpLCBjb2xvci1zdG9wKDEwMCwgIzI0MjMzNCkpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMDBhZWVmIDAlLCAjMjQyMzM0IDEwMCUpOwoJYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwYWVlZiAwJSwgIzI0MjMzNCAxMDAlKTsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglGb290ZXIgU3R5bGUgVHdvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouZm9vdGVyLXN0eWxlLXR3b3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwp9CgouZm9vdGVyLXN0eWxlLXR3byAud2lkZ2V0cy1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjgwcHggMHB4Owp9CgouZm9vdGVyLXN0eWxlLXR3byAud2lkZ2V0cy1zZWN0aW9uIC51cHBlci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjBweDsKfQoKLmZvb3Rlci1zdHlsZS10d28gLnVwcGVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouZm9vdGVyLXN0eWxlLXR3byAudXBwZXItYm94IC50aXRsZS1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLmZvb3Rlci1zdHlsZS10d28gLnVwcGVyLWJveCAudGl0bGUtY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmZvb3Rlci1zdHlsZS10d28gLnVwcGVyLWJveCBoNHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZTozMHB4OwoJbGluZS1oZWlnaHQ6MS4zZW07Cglmb250LXdlaWdodDo3MDA7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC51cHBlci1ib3ggLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjEuM2VtOwoJbWFyZ2luLXRvcDoxNHB4OwoJb3BhY2l0eTowLjc7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC51cHBlci1ib3ggLmZvcm0tY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjMwcHg7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC51cHBlci1ib3ggLmZvcm0tY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctdG9wOjE1cHg7Cn0KCi8qIE5ld3NsZXR0dGVyIEZvcm0gKi8KCi5mb290ZXItc3R5bGUtdHdvIC5uZXdzbGV0dGVyLWZvcm17CgltYXJnaW4tYm90dG9tOjM1cHg7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5uZXdzbGV0dGVyLWZvcm0gLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7CgltYXJnaW4tYm90dG9tOjEwcHg7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5uZXdzbGV0dGVyLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdLAouZm9vdGVyLXN0eWxlLXR3byAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJbGluZS1oZWlnaHQ6MjZweDsKCXBhZGRpbmc6MTBweCA4NXB4IDEwcHggMjVweDsKCWhlaWdodDo1MHB4OwoJZm9udC1zaXplOjE1cHg7Cgljb2xvcjojZmZmZmZmOwoJYmFja2dyb3VuZDpub25lOwoJYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsJCn0KCi5mb290ZXItc3R5bGUtdHdvIC5uZXdzbGV0dGVyLWZvcm0gLmZvcm0tZ3JvdXAgYnV0dG9uewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cgl0b3A6MHB4OwoJcGFkZGluZzoxM3B4IDIwcHg7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiNmZmZmZmY7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6IzAwYWVlZjsKCWN1cnNvcjpwb2ludGVyOwp9CgouZm9vdGVyLXN0eWxlLXR3byAud2lkZ2V0cy1zZWN0aW9uIC5sb3dlci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWJvcmRlci10b3A6MXB4IHNvbGlkICMwMGFlZWY7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMDBhZWVmOwp9CgouZm9vdGVyLXN0eWxlLXR3byAubG93ZXItYm94IC5mb290ZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDozMy4zMzMlOwoJZmxvYXQ6bGVmdDsKCWJvcmRlci1yaWdodDoxcHggc29saWQgIzAwYWVlZjsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmxvd2VyLWJveCAuZm9vdGVyLWNvbHVtbjpsYXN0LWNoaWxkewoJYm9yZGVyLXJpZ2h0OjBweDsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmxvd2VyLWJveCAuZm9vdGVyLWNvbHVtbiAuZm9vdGVyLXdpZGdldHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo1MHB4IDQwcHg7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5mb290ZXItdGl0bGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjBweDsKCW1hcmdpbi10b3A6MjBweDsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci13aWRnZXQgaDR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtd2VpZ2h0OjcwMDsKCWNvbG9yOiNmZmZmZmY7CglsaW5lLWhlaWdodDoxLjJlbTsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5pbmZvLWxpc3R7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmluZm8tbGlzdCBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS45ZW07Cglmb250LXNpemU6MTZweDsKCXBhZGRpbmctbGVmdDozNXB4OwoJbWFyZ2luLWJvdHRvbToyMHB4OwoJY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwLjYwKTsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmluZm8tbGlzdCBsaSBzdHJvbmd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cglmb250LXdlaWdodDo3MDA7Cgljb2xvcjojMDBhZWVmOwoJZm9udC1zaXplOjIwcHg7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5pbmZvLWxpc3QgbGkgLmljb257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjhweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MTZweDsKCWxpbmUtaGVpZ2h0OjFlbTsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmluZm8tbGlzdCBsaTpsYXN0LWNoaWxkewoJbWFyZ2luLWJvdHRvbTowcHg7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5sb2dvewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmxvZ28tdGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjllbTsKCXRleHQtYWxpZ246Y2VudGVyOwoJbWFyZ2luLXRvcDoyNXB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7CgltYXJnaW4tYm90dG9tOjIwcHg7Cgljb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDAuODApOwp9CgouZm9vdGVyLXN0eWxlLXR3byAuc29jaWFsLWljb24tdHdvewoJdGV4dC1hbGlnbjpjZW50ZXI7Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5mb290ZXItbGlzdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouZm9vdGVyLXN0eWxlLXR3byAuZm9vdGVyLWxpc3QgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MTVweDsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci1saXN0IGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7CglvcGFjaXR5OjAuNzsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NDAwOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci1saXN0IGxpIGE6aG92ZXJ7Cgljb2xvcjojMDBhZWVmOwp9CgouZm9vdGVyLXN0eWxlLXR3byAuZm9vdGVyLWJvdHRvbXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyNXB4IDBweDsKCWJhY2tncm91bmQtY29sb3I6IzAwYWVlZjsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci1ib3R0b20gLmNvcHlyaWdodHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNnB4Owp9CgouZm9vdGVyLXN0eWxlLXR3byAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouZm9vdGVyLXN0eWxlLXR3byAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdiBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgltYXJnaW4tbGVmdDoxOHB4OwoJbGluZS1oZWlnaHQ6MS4xZW07Cn0KCi5mb290ZXItc3R5bGUtdHdvIC5mb290ZXItYm90dG9tIC5mb290ZXItbmF2IGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMzNzFjMDA7Cglmb250LXNpemU6MTZweDsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CQp9CgouZm9vdGVyLXN0eWxlLXR3byAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdiBsaTpsYXN0LWNoaWxkewoJcGFkZGluZy1yaWdodDowcHg7CgltYXJnaW4tcmlnaHQ6MHB4OwoJYm9yZGVyLXJpZ2h0OjBweDsKfQoKLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci1ib3R0b20gLmZvb3Rlci1uYXYgbGkgYTpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJUGFnZSBUaXRsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnBhZ2UtdGl0bGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MTcwcHggMHB4IDExMHB4OwoJYmFja2dyb3VuZC1zaXplOmNvdmVyOwoJYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OwoJYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOwoJYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDsKfQoKLnBhZ2UtdGl0bGUgLmF1dG8tY29udGFpbmVyewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5wYWdlLXRpdGxlIC50aXRsZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNnB4OwoJbWFyZ2luLWJvdHRvbToxMnB4Owp9CgoucGFnZS10aXRsZSBoMnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OjcwMDsKCWxpbmUtaGVpZ2h0OjEuMmVtOwoJbWFyZ2luLWJvdHRvbTogMTBweDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5wYWdlLWJyZWFkY3J1bWJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6MzBweDsKfQoKLnBhZ2UtYnJlYWRjcnVtYiBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CgltYXJnaW4tcmlnaHQ6MTBweDsKCXBhZGRpbmctcmlnaHQ6MTVweDsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6MThweDsKCWZvbnQtd2VpZ2h0OjUwMDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5wYWdlLWJyZWFkY3J1bWIgbGk6YWZ0ZXJ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6ICJcZjEwNSI7CglyaWdodDotMnB4OwoJdG9wOi0xcHg7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE0cHg7Cglmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJzsKfQoKLnBhZ2UtYnJlYWRjcnVtYiBsaTpsYXN0LWNoaWxkOjphZnRlcnsKCWRpc3BsYXk6IG5vbmU7Cn0KCi5wYWdlLWJyZWFkY3J1bWIgbGk6bGFzdC1jaGlsZHsKCXBhZGRpbmctcmlnaHQ6MHB4OwoJbWFyZ2luLXJpZ2h0OjBweDsKfQoKLnBhZ2UtYnJlYWRjcnVtYiBsaSBhewoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OjUwMDsKCXRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5wYWdlLWJyZWFkY3J1bWIgbGkgYTpob3ZlcnsKCWNvbG9yOiNjZjYwMWI7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJRmFxJ3MgUGFnZSBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouZmFxLXBhZ2Utc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo5NXB4IDBweCA3MHB4Owp9CgouZmFxLXBhZ2Utc2VjdGlvbiAuc2VjLXRpdGxlewoJbWFyZ2luLWJvdHRvbTo1MHB4Owp9CgouZmFxLXBhZ2Utc2VjdGlvbiAuYWNjb3JkaWFuLWNvbHVtbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9CgouZmFxLXBhZ2Utc2VjdGlvbiAuYWNjb3JkaWFuLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJQWNjb3JkaW9uIFN0eWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgouYWNjb3JkaW9uLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJYm9yZGVyOjFweCBzb2xpZCAjZDdkN2Q3Owp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2t7Cglwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBtYXJnaW4tYm90dG9tOjBweDsKCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkN2Q3ZDc7Cn0KCi5hY2NvcmRpb24tYm94IC5ibG9jay5hY3RpdmUtYmxvY2t7CgkKfQoKLmFjY29yZGlvbi1ib3ggLmJsb2NrOmxhc3QtY2hpbGR7Cglib3JkZXItYm90dG9tOjBweDsKfQoKLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5hY2MtYnRuewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWN1cnNvcjpwb2ludGVyOwoJbGluZS1oZWlnaHQ6MzRweDsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXdlaWdodDo2MDA7CgliYWNrZ3JvdW5kOm5vbmU7CglwYWRkaW5nOjEzcHggNTBweCAxM3B4IDg1cHg7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZjsKfQoKLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5hY2MtYnRuLmFjdGl2ZXsKCQp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmljb24tb3V0ZXJ7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjYwcHg7CgloZWlnaHQ6NjBweDsKCWZvbnQtc2l6ZToyMHB4OwoJY29sb3I6ICMwMGFlZWY7Cglib3JkZXItcmFkaXVzOjBweDsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkN2Q3ZDc7Cn0KCi5hY2NvcmRpb24tYm94IC5ibG9jayAuYWNjLWJ0bi5hY3RpdmV7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDdkN2Q3Owp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmljb24tb3V0ZXIgLmljb257CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CglyaWdodDogMHB4OwoJd2lkdGg6NjBweDsKCWhlaWdodDo2MHB4OwoJY29sb3I6IzAwYWVlZjsKICAgIGZvbnQtc2l6ZTogMTRweDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKCWxpbmUtaGVpZ2h0OjYwcHg7Cn0KCi5hY2NvcmRpb24tYm94IC5ibG9jayAuaWNvbi1vdXRlciAuaWNvbi1wbHVzewoJb3BhY2l0eToxOwp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmljb24tb3V0ZXIgLmljb24tbWludXN7CglvcGFjaXR5OjA7Cn0KCi5hY2NvcmRpb24tYm94IC5ibG9jayAuYWNjLWJ0bi5hY3RpdmUgLmljb24tb3V0ZXIgLmljb24tbWludXN7CglvcGFjaXR5OjE7Cn0KCi5hY2NvcmRpb24tYm94IC5ibG9jayAuYWNjLWJ0bi5hY3RpdmUgLmljb24tb3V0ZXIgLmljb24tcGx1c3sKCW9wYWNpdHk6MDsKfQoKLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5hY2MtY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpub25lOwp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmFjYy1jb250ZW50IC5jb250ZW50LXRleHR7CglwYWRkaW5nLWJvdHRvbTo2cHg7Cn0KCi5hY2NvcmRpb24tYm94IC5ibG9jayAuYWNjLWNvbnRlbnQuY3VycmVudHsKCWRpc3BsYXk6YmxvY2s7CQp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxNnB4OwoJY29sb3I6IzY2NjY2NjsKCWxpbmUtaGVpZ2h0OjEuOGVtOwoJcGFkZGluZzozMHB4IDM1cHggMzBweCAzMHB4Owp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmNvbnRlbnQgLmFjY29yZGlhbi10ZXh0ewoJbGluZS1oZWlnaHQ6MS45ZW07Cglmb250LXNpemU6MTZweDsJCgljb2xvcjojODQ4NThhOwoJZm9udC13ZWlnaHQ6NjAwOwp9CgouYWNjb3JkaW9uLWJveCAuYmxvY2sgLmNvbnRlbnQgcDpsYXN0LWNoaWxkewoJbWFyZ2luLWJvdHRvbTowcHg7CQp9CgouZmFxLXBhZ2Utc2VjdGlvbiAuZm9ybS1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLmZhcS1wYWdlLXNlY3Rpb24gLmZvcm0tY29sdW1uIC5pbm5lci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDozMHB4Owp9CgouZmFxLXBhZ2Utc2VjdGlvbiAuZm9ybS1jb2x1bW4gLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKLmZhcS1wYWdlLXNlY3Rpb24gLmZvcm0tY29sdW1uIC5mb3JtLWdyb3VwIGlucHV0ewoJaGVpZ2h0OjY0cHg7Cn0KCi8qRXJyb3IgU2VjdGlvbiovCgouZXJyb3Itc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxMDBweCAwcHggMTAwcHg7Cn0KCi5lcnJvci1zZWN0aW9uIC5jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKfQoKLmVycm9yLXNlY3Rpb24gaDF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MTgwcHg7Cglmb250LXdlaWdodDo2MDA7CglsaW5lLWhlaWdodDoxZW07CgltYXJnaW4tYm90dG9tOjEwcHg7Cn0KCi5lcnJvci1zZWN0aW9uIGgyewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjUwcHg7Cglmb250LXdlaWdodDozMDA7CglsaW5lLWhlaWdodDoxLjJlbTsKCW1hcmdpbi1ib3R0b206MTBweDsKfQoKLmVycm9yLXNlY3Rpb24gLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MjBweDsKCWZvbnQtd2VpZ2h0OjMwMDsKCW1hcmdpbi10b3A6MjBweDsKCW1hcmdpbi1ib3R0b206MzBweDsKfQoKCi8qIENvbW1pbmcgU29vbiAqLwoKLmNvbW1pbmctc29vbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpjZW50ZXI7CglwYWRkaW5nOjEwMHB4IDBweCAxMDBweDsKfQoKLmNvbW1pbmctc29vbiAuY29udGVudHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmNvbW1pbmctc29vbiAuY29udGVudCAuY29udGVudC1pbm5lcnsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLmNvbW1pbmctc29vbiAuY29udGVudCAuY29udGVudC1pbm5lciBoMnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZTo5MHB4OwoJZm9udC13ZWlnaHQ6MzAwOwoJbGluZS1oZWlnaHQ6MS4yZW07CgltYXJnaW4tYm90dG9tOjgwcHg7Cn0KCi5jb21taW5nLXNvb24gLmNvbnRlbnQgLmNvbnRlbnQtaW5uZXIgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MjBweDsKCWZvbnQtd2VpZ2h0OjMwMDsKCWxpbmUtaGVpZ2h0OjEuNmVtOwoJbWFyZ2luLXRvcDoyOHB4OwoJbWFyZ2luLWJvdHRvbTo2MHB4OwoJbGV0dGVyLXNwYWNpbmc6MXB4Owp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUNvdW50ZG93biBzdHlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnRpbWUtY291bnRlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoudGltZS1jb3VudGVyIC50aW1lLWNvdW50ZG93bnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgoudGltZS1jb3VudGVyIC50aW1lLWNvdW50ZG93biAuY291bnRlci1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbjowcHggMTVweCAwcHg7Cgl3aWR0aDoxNzBweDsKCWhlaWdodDoxNzBweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CglwYWRkaW5nOjEwcHggMHB4IDEwcHg7Cglib3JkZXI6MnB4IHNvbGlkICMyMjIyMjI7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE4cHg7CglsaW5lLWhlaWdodDozMHB4OwoJdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwoJZm9udC13ZWlnaHQ6MzAwOwoJbWFyZ2luLWJvdHRvbTozMHB4Owp9CgoudGltZS1jb3VudGVyIC50aW1lLWNvdW50ZG93biAuY291bnRlci1jb2x1bW4gLmNvdW50ewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJZm9udC1zaXplOjY1cHg7CglsaW5lLWhlaWdodDo0MHB4OwoJcGFkZGluZzozMHB4IDEwcHg7Cgljb2xvcjojMjIyMjIyOwoJbGV0dGVyLXNwYWNpbmc6MXB4OwoJZm9udC13ZWlnaHQ6MzAwOwp9CgouY29tbWluZy1zb29uIC5lbWFpbGVkLWZvcm0gLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7CgltYXgtd2lkdGg6NjUwcHg7CgltYXJnaW46MCBhdXRvOwoJd2lkdGg6MTAwJTsKCW1hcmdpbi1ib3R0b206MjBweDsKfQoKLmNvbW1pbmctc29vbiAuZW1haWxlZC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwKLmNvbW1pbmctc29vbiAuZW1haWxlZC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRlbCJdLAouY29tbWluZy1zb29uIC5lbWFpbGVkLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0iZW1haWwiXSwKLmNvbW1pbmctc29vbiAuZW1haWxlZC1mb3JtIC5mb3JtLWdyb3VwIHRleHRhcmVhewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJd2lkdGg6MTAwJTsKCWxpbmUtaGVpZ2h0OjIwcHg7CgloZWlnaHQ6NjBweDsKCWZvbnQtc2l6ZToxNHB4OwoJY29sb3I6Izc5Nzk3OTsKCW92ZXJmbG93OmhpZGRlbjsKCXBhZGRpbmc6MTBweCA1MHB4IDEwcHggMzBweDsKCWJhY2tncm91bmQ6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cglib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7Cn0KCi5jb21taW5nLXNvb24gLmVtYWlsZWQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJzdWJtaXQiXSwKLmNvbW1pbmctc29vbiAuZW1haWxlZC1mb3JtIGJ1dHRvbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6NXB4OwoJdG9wOjVweDsKCXdpZHRoOjE2MHB4OwoJaGVpZ2h0OjUwcHg7CglsaW5lLWhlaWdodDo0MHB4OwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNHB4OwoJZm9udC13ZWlnaHQ6MzAwOwoJdGV4dC1hbGlnbjpjZW50ZXI7CgliYWNrZ3JvdW5kOiMyMjIyMjI7CglsZXR0ZXItc3BhY2luZzoxcHg7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVNpZGViYXIgUGFnZSBDb250YWluZXIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5zaWRlYmFyLXBhZ2UtY29udGFpbmVyewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjEwMHB4IDBweCA2MHB4Owp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29udGVudC1zaWRlLAouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuc2lkZWJhci1zaWRlewoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuc2lkZWJhci1zaWRlIC5zaWRlYmFyewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi8qIFNlcnZpY2UgRGV0YWlsICovCgouc2VydmljZS1kZXRhaWx7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnNlcnZpY2UtZGV0YWlsIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnNlcnZpY2UtZGV0YWlsIC5pbm5lci1ib3ggLmltYWdlewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zZXJ2aWNlLWRldGFpbCAuaW5uZXItYm94IC5pbWFnZSBpbWd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7CglkaXNwbGF5OmJsb2NrOwp9Cgouc2VydmljZS1kZXRhaWwgLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZy10b3A6MjVweDsKfQoKLnNlcnZpY2UtZGV0YWlsIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgaDJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXdlaWdodDo2MDA7Cn0KCi5zZXJ2aWNlLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zZXJ2aWNlLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC50ZXh0IHB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWxpbmUtaGVpZ2h0OjEuOGVtOwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4Owp9Cgouc2VydmljZS1kZXRhaWwgLmlubmVyLWJveCAubG93ZXItY29udGVudCBoM3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtd2VpZ2h0OjYwMDsKCW1hcmdpbi1ib3R0b206MTJweDsKfQoKLnNlcnZpY2UtZGV0YWlsIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnR3by1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctdG9wOjQ1cHg7CgltYXJnaW4tdG9wOjM1cHg7CgltYXJnaW4tYm90dG9tOjQwcHg7Cglib3JkZXItdG9wOjFweCBzb2xpZCAjZWJlYmViOwp9CgovKlNpZGViYXIgV2lkZ2V0Ki8KCi5zaWRlYmFyLXdpZGdldHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbi1ib3R0b206IDMwcHg7Cn0KCi8qQmxvZyBDYXRlZ29yeSovCgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9Cgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSAud2lkZ2V0LWNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6NDBweCAzNXB4Owp9Cgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSAud2lkZ2V0LWNvbnRlbnQ6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJcmlnaHQ6MHB4OwoJaGVpZ2h0OjMwMHB4OwoJYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1Owp9Cgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSAuc2VydmljZXMtY2F0ewoJYm94LXNoYWRvdzowcHggMHB4IDEwcHggcmdiYSgwLDAsMCwwLjEwKTsKfQoKLnNpZGViYXItc2VydmljZXMtY2F0ZWdvcnkgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MXB4OwoJdGV4dC1hbGlnbjpyaWdodDsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5zaWRlYmFyLXNlcnZpY2VzLWNhdGVnb3J5IGxpOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6MHB4OwoJdG9wOjBweDsKCXdpZHRoOjBweDsKCWhlaWdodDoxMDAlOwoJei1pbmRleDoxOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tcy1saW5lYXItZ3JhZGllbnQobGVmdCwgI0MxMjgyQSAwJSwgI0QxNjUxQSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICNDMTI4MkEgMCUsICNEMTY1MUEgMTAwJSk7CgliYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgI0MxMjgyQSAwJSwgI0QxNjUxQSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBjb2xvci1zdG9wKDAsICNDMTI4MkEpLCBjb2xvci1zdG9wKDEwMCwgI0QxNjUxQSkpOwoJYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgI0MxMjgyQSAwJSwgI0QxNjUxQSAxMDAlKTsKCWJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI0MxMjgyQSAwJSwgI0QxNjUxQSAxMDAlKTsKfQoKLnNpZGViYXItc2VydmljZXMtY2F0ZWdvcnkgbGk6aG92ZXI6OmJlZm9yZSwKLnNpZGViYXItc2VydmljZXMtY2F0ZWdvcnkgbGkuYWN0aXZlOjpiZWZvcmV7Cgl3aWR0aDoxMDAlOwp9Cgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE1cHg7Cglmb250LXdlaWdodDo2MDA7CglkaXNwbGF5OmJsb2NrOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2FjYWNhYzsKCXBhZGRpbmc6MjBweCAzMnB4IDE2cHggMzhweDsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5zaWRlYmFyLXNlcnZpY2VzLWNhdGVnb3J5IGxpOmxhc3QtY2hpbGQgYXsKCWJvcmRlci1ib3R0b206MHB4Owp9Cgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSBsaSBhIHNwYW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXotaW5kZXg6MTsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cn0KCi5zaWRlYmFyLXNlcnZpY2VzLWNhdGVnb3J5IGxpLmFjdGl2ZSBhIHNwYW4sCi5zaWRlYmFyLXNlcnZpY2VzLWNhdGVnb3J5IGxpOmhvdmVyIGEgc3BhbnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi5zaWRlYmFyLXNlcnZpY2VzLWNhdGVnb3J5IGxpIGE6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OidcZjBkOSc7CglsZWZ0OjIycHg7Cgl0b3A6MThweDsKCWNvbG9yOiMwMGFlZWY7Cglmb250LXNpemU6MThweDsKCXotaW5kZXg6MTsKCWZvbnQtZmFtaWx5OiAnRm9udEF3ZXNvbWUnOwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLnNpZGViYXItc2VydmljZXMtY2F0ZWdvcnkgbGkuYWN0aXZlIGE6YmVmb3JlLAouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSBsaTpob3ZlciBhOjpiZWZvcmV7Cgljb2xvcjojZmZmZmZmOwp9Cgouc2lkZWJhci1zZXJ2aWNlcy1jYXRlZ29yeSBsaS5hY3RpdmUgYSwKLnNpZGViYXItc2VydmljZXMtY2F0ZWdvcnkgbGkgYTpob3ZlcnsKCWNvbG9yOiNmZmZmZmY7Cn0KCi8qIEJyb2NodXJlIEJveCAqLwoKLmJyb2NodXJlLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbToxMHB4OwoJYm9yZGVyLXJhZGl1czowcHg7CglwYWRkaW5nOjIwcHggMTVweCAyMHB4IDMwcHg7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgliYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLmJyb2NodXJlLWJveCAuaW5uZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctbGVmdDo2MHB4OwoJcGFkZGluZy1yaWdodDo2MHB4Owp9CgouYnJvY2h1cmUtYm94IC5pbm5lciAuZG93bmxvYWR7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjEwcHg7Cgl0b3A6NXB4OwoJb3BhY2l0eTowLjc7Cgljb2xvcjojMDAwMDAwOwoJZm9udC1zaXplOjE4cHg7CglsaW5lLWhlaWdodDoxZW07Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLmJyb2NodXJlLWJveDpob3ZlciAuaW5uZXIgLmRvd25sb2FkewoJY29sb3I6I2ZmZmZmZjsKCW9wYWNpdHk6OTsKfQoKLmJyb2NodXJlLWJveCAub3ZlcmxheS1saW5rewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDoxMDAlOwoJaGVpZ2h0OjEwMCU7CglkaXNwbGF5OmJsb2NrOwp9CgouYnJvY2h1cmUtYm94IC5pbm5lciAuaWNvbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJY29sb3I6IzAwMDAwMDsKCWZvbnQtc2l6ZToyOHB4OwoJZm9udC13ZWlnaHQ6NTAwOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5icm9jaHVyZS1ib3ggLmlubmVyIC50ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWNvbG9yOiM2NjY2NjY7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLmJyb2NodXJlLWJveDpob3ZlcnsKCWJhY2tncm91bmQtY29sb3I6I2NmNWMxZDsKfQoKLmJyb2NodXJlLWJveDpob3ZlciAuaWNvbiwKLmJyb2NodXJlLWJveDpob3ZlciAudGV4dHsKCWNvbG9yOiNmZmZmZmY7Cn0KCi8qIENvbnRhY3QgV2lkZ2V0ICovCgouY29udGFjdC13aWRnZXQgLndpZGdldC1jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjUwcHggMzBweCA1MHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7CgliYWNrZ3JvdW5kLWNvbG9yOiMyMjIyMjI7Cn0KCi5jb250YWN0LXdpZGdldCAud2lkZ2V0LWNvbnRlbnQgLmljb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cglmb250LXNpemU6NTZweDsKCWxpbmUtaGVpZ2h0OjFlbTsKfQoKLmNvbnRhY3Qtd2lkZ2V0IC53aWRnZXQtY29udGVudCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjIwcHg7Cgljb2xvcjojZmZmZmZmOwoJbGluZS1oZWlnaHQ6MS44ZW07CgltYXJnaW4tdG9wOjE4cHg7Cn0KCi5jb250YWN0LXdpZGdldCAud2lkZ2V0LWNvbnRlbnQgLm51bWJlcnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjMwcHg7Cgljb2xvcjojZmZmZmZmOwoJbGluZS1oZWlnaHQ6MS40ZW07CgltYXJnaW4tdG9wOjE4cHg7Cglmb250LXdlaWdodDo3MDA7Cn0KCi5jb250YWN0LXdpZGdldCAud2lkZ2V0LWNvbnRlbnQgLmVtYWlsewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiNmZmZmZmY7CglsaW5lLWhlaWdodDoxLjRlbTsKCW1hcmdpbi10b3A6NXB4OwoJZm9udC13ZWlnaHQ6NDAwOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVByb2plY3RzIFBhZ2UgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnByb2plY3RzLXBhZ2Utc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzo5NXB4IDBweCA5NXB4Owp9CgoucHJvamVjdHMtcGFnZS1zZWN0aW9uIC5maWx0ZXJzewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjU1cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKfQoKLnByb2plY3RzLXBhZ2Utc2VjdGlvbiAuZmlsdGVycyAuZmlsdGVyLXRhYnN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MHB4IDEycHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsKCWJvcmRlcjoxcHggc29saWQgI2UxZTFlMTsKfQoKLnByb2plY3RzLXBhZ2Utc2VjdGlvbiAuZmlsdGVycyBsaXsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGNvbG9yOiAjNjY2NjY2OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZm9udC1zaXplOiAxNnB4OwogICAgZm9udC13ZWlnaHQ6IDQwMDsKCXBhZGRpbmc6OXB4IDIwcHg7CiAgICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CiAgICAtbXMtdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMzAwbXMgZWFzZTsKfQoKLnByb2plY3RzLXBhZ2Utc2VjdGlvbiAuZmlsdGVycyAuZmlsdGVyLmFjdGl2ZSwKLnByb2plY3RzLXBhZ2Utc2VjdGlvbiAuZmlsdGVycyAuZmlsdGVyOmhvdmVyewogICAgY29sb3I6I2ZmZmZmZjsKCWJhY2tncm91bmQtY29sb3I6I2NmNWQxYzsKfQoKLnByb2plY3QtYmxvY2subWl4ewoJZGlzcGxheTpub25lOwp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCVByb2plY3RzIERldGFpbCBTZWN0aW9uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoqKiovCgoucHJvamVjdHMtZGV0YWlsLXNlY3Rpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MTAwcHggMHB4IDk1cHg7Cn0KCi5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAuYXV0by1jb250YWluZXJ7CgltYXgtd2lkdGg6OTcwcHg7Cn0KCi5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAuaW1hZ2V7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5pbWFnZSBpbWd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXdpZHRoOjEwMCU7CglkaXNwbGF5OmJsb2NrOwp9CgoucHJvamVjdHMtZGV0YWlsLXNlY3Rpb24gLmltYWdlIC5wcm9qZWN0LWluZm97Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjMwcHg7Cgl0b3A6MTAwJTsKCW1heC13aWR0aDozNDBweDsKCXdpZHRoOjEwMCU7CgltYXJnaW4tdG9wOi0xMjVweDsKfQoKLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5pbWFnZSAucHJvamVjdC1pbmZvIC5pbmZvLWlubmVyewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjMwcHggMzBweDsKCWRpc3BsYXk6YmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiNjMTI4MmE7Cn0KCi5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAuaW1hZ2UgLnByb2plY3QtaW5mbyAuaW5mby1pbm5lciBoM3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OjcwMDsKCWxpbmUtaGVpZ2h0OjEuM2VtOwoJbWFyZ2luLWJvdHRvbToyNHB4Owp9CgoucHJvamVjdHMtZGV0YWlsLXNlY3Rpb24gLmltYWdlIC5wcm9qZWN0LWluZm8gLmluZm8taW5uZXIgdWx7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5pbWFnZSAucHJvamVjdC1pbmZvIC5pbmZvLWlubmVyIHVsIGxpewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7CgltYXJnaW4tYm90dG9tOjE1cHg7Cn0KCi5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAuaW1hZ2UgLnByb2plY3QtaW5mbyAuaW5mby1pbm5lciB1bCBsaSBzcGFuewoJcG9zaXRpb246cmVsYXRpdmU7CglyaWdodDowcHg7Cgl3aWR0aDo1MCU7CglmbG9hdDpyaWdodDsKfQoKLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5sb3dlci1jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nLXRvcDoyNXB4Owp9CgoucHJvamVjdHMtZGV0YWlsLXNlY3Rpb24gLmxvd2VyLWNvbnRlbnQgLnRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMDBhZWVmOwoJZm9udC1zaXplOjE0cHg7CglsaW5lLWhlaWdodDoxLjNlbTsKfQoKLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5sb3dlci1jb250ZW50IGgyewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJbGluZS1oZWlnaHQ6MS4zZW07Cglmb250LXdlaWdodDo3MDA7CgltYXJnaW4tdG9wOjEwcHg7CgltYXJnaW4tYm90dG9tOjEycHg7Cn0KCi5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAubG93ZXItY29udGVudCBwewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNjY2NjY2OwoJZm9udC1zaXplOjE2cHg7CglsaW5lLWhlaWdodDoxLjhlbTsKCW1hcmdpbi1ib3R0b206MTJweDsKfQoKLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5sb3dlci1jb250ZW50IGgzewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJbGluZS1oZWlnaHQ6MS4zZW07Cglmb250LXdlaWdodDo3MDA7CgltYXJnaW4tdG9wOjEwcHg7CgltYXJnaW4tYm90dG9tOjEycHg7Cn0KCi5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAubG93ZXItY29udGVudCAudHdvLWNvbHVtbnsKCW1hcmdpbi10b3A6MjVweDsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglTdHlsZWQgUGFnaW5hdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnN0eWxlZC1wYWdpbmF0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zdHlsZWQtcGFnaW5hdGlvbiBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luOjBweCA0cHggMTBweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9Cgouc3R5bGVkLXBhZ2luYXRpb24gbGkgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJd2lkdGg6NDBweDsKCWhlaWdodDo0MHB4OwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNHB4OwoJZm9udC13ZWlnaHQ6NDAwOwoJbGluZS1oZWlnaHQ6MzhweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cglib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLnN0eWxlZC1wYWdpbmF0aW9uIGxpLmFjdGl2ZSBhLAouc3R5bGVkLXBhZ2luYXRpb24gbGk6aG92ZXIgYXsKCWNvbG9yOiNmZmZmZmY7Cglib3JkZXItY29sb3I6IzAwYWVlZjsKCWJhY2tncm91bmQtY29sb3I6IzAwYWVlZjsKfQoKLnN0eWxlZC1wYWdpbmF0aW9uIGxpLnByZXYgYXsKCXdpZHRoOjEwMHB4OwoJaGVpZ2h0OjQwcHg7Cglmb250LXNpemU6MTRweDsKCWNvbG9yOiNmZmZmZmY7Cglib3JkZXItY29sb3I6IzMzMzMzMzsKCWJvcmRlci1yYWRpdXM6MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5zdHlsZWQtcGFnaW5hdGlvbiBsaS5uZXh0IGF7Cgl3aWR0aDoxMDBweDsKCWhlaWdodDo0MHB4OwoJZm9udC1zaXplOjE0cHg7Cgljb2xvcjojZmZmZmZmOwoJYm9yZGVyLWNvbG9yOiMzMzMzMzM7CgliYWNrZ3JvdW5kLWNvbG9yOiMzMzMzMzM7Cglib3JkZXItcmFkaXVzOjBweDsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc3R5bGVkLXBhZ2luYXRpb24gbGkucHJldiBhOmhvdmVyLAouc3R5bGVkLXBhZ2luYXRpb24gbGkubmV4dCBhOmhvdmVyewoJYmFja2dyb3VuZC1jb2xvcjojMDBhZWVmOwoJYm9yZGVyLWNvbG9yOiMwMGFlZWY7Cn0KCi5zaWRlYmFyLXdpZGdldC10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLnNpZGViYXItd2lkZ2V0LXR3byAud2lkZ2V0LWNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MjVweCAyNXB4OwoJYm9yZGVyLXRvcDoycHggc29saWQgIzAwYWVlZjsKfQoKLnNpZGViYXItd2lkZ2V0LXR3byAud2lkZ2V0LWNvbnRlbnQ6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJcmlnaHQ6MHB4OwoJaGVpZ2h0OjEwNHB4OwoJYmFja2dyb3VuZDp1cmwoLi4vaW1hZ2VzL2JhY2tncm91bmQvcGF0dGVybi0xMy5qcGcpIHJlcGVhdC14Owp9Cgouc2lkZWJhci10aXRsZS10d297Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjBweDsKfQoKLnNpZGViYXItdGl0bGUtdHdvIGg0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjI0cHg7CgltYXJnaW4tYm90dG9tOjE1cHg7Cn0KCi8qU2VhcmNoIEJveCBXaWRnZXQqLwoKLnNpZGViYXIgLnNlYXJjaC1ib3ggLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbjowcHg7CQp9Cgouc2lkZWJhciAuc2VhcmNoLWJveCAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5zaWRlYmFyIC5zZWFyY2gtYm94IC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InNlYXJjaCJdewoJcG9zaXRpb246cmVsYXRpdmU7CglsaW5lLWhlaWdodDozOHB4OwoJcGFkZGluZzoxMHB4IDUwcHggMTBweCAyNXB4OwoJYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOwoJYmFja2dyb3VuZDpub25lOwoJZGlzcGxheTpibG9jazsKCWZvbnQtc2l6ZToxNnB4OwoJd2lkdGg6MTAwJTsKCWhlaWdodDo2MHB4OwoJYm9yZGVyLXJhZGl1czowcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9Cgouc2lkZWJhciAuc2VhcmNoLWJveCAuZm9ybS1ncm91cCBidXR0b257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjBweDsKCXRvcDowcHg7CgloZWlnaHQ6NjBweDsKCXdpZHRoOjYwcHg7CglkaXNwbGF5OmJsb2NrOwoJZm9udC1zaXplOjE2cHg7Cgljb2xvcjojZmZmZmZmOwoJY3Vyc29yOnBvaW50ZXI7CglsaW5lLWhlaWdodDoxMDAlOwoJZm9udC13ZWlnaHQ6bm9ybWFsOwoJYmFja2dyb3VuZDojMDBhZWVmOwp9CgouYmxvZy1jYXQtdHdvewoJcG9zaXRpb246cmVsYXRpdmU7Cglib3JkZXItcmFkaXVzOjBweDsKCW92ZXJmbG93OmhpZGRlbjsKCWJvcmRlcjoxcHggc29saWQgI2RkZGRkZDsKfQoKLmJsb2ctY2F0LXR3byBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouYmxvZy1jYXQtdHdvIGxpIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiM2NjY2NjY7Cglmb250LXNpemU6MTZweDsKCXBhZGRpbmc6MTZweCAzMHB4OwoJZGlzcGxheTpibG9jazsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkZGRkOwp9CgouYmxvZy1jYXQtdHdvIGxpIGE6aG92ZXJ7Cgljb2xvcjojZmZmZmZmOwoJYmFja2dyb3VuZC1jb2xvcjojMDBhZWVmOwp9CgouYmxvZy1jYXQtdHdvIGxpOmxhc3QtY2hpbGQgYXsKCWJvcmRlci1ib3R0b206MHB4Owp9CgouYmxvZy1jYXQtdHdvIGxpIGEgc3BhbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MzBweDsKfQoKLyogUG9wdWxhciBQb3N0cyAqLwoKLnBvcHVsYXItcG9zdHMgLnBvc3Qtb3V0ZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MjVweCAyMHB4OwoJYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwp9CgovKlBvc3QgV2lkZ2V0Ki8KCi5wb3B1bGFyLXBvc3RzIC5wb3N0ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTRweDsKCWNvbG9yOiM2NjY2NjY7CgltaW4taGVpZ2h0OjExMHB4OwoJcGFkZGluZy1sZWZ0OjExMHB4OwoJbWFyZ2luLWJvdHRvbToyNXB4OwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U3ZTdlYjsKfQoKLnBvcHVsYXItcG9zdHMgLnBvc3Q6bGFzdC1jaGlsZHsKCWJvcmRlci1ib3R0b206MHB4OwoJbWFyZ2luLWJvdHRvbTowcHg7Cn0KCi5wb3B1bGFyLXBvc3RzIC5wb3N0IC5wb3N0LXRodW1iewoJIHBvc2l0aW9uOmFic29sdXRlOwoJIGxlZnQ6MHB4OwoJIHRvcDowcHg7Cgkgd2lkdGg6ODBweDsKCSBoZWlnaHQ6ODBweDsKfQoKLnBvcHVsYXItcG9zdHMgLnBvc3QgLnBvc3QtdGh1bWIgaW1newoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLnBvcHVsYXItcG9zdHMgLnBvc3QgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRvcDowcHg7Cglmb250LXNpemU6MThweDsKCW1hcmdpbjowcHggMHB4IDNweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWNvbG9yOiMyMjIyMjI7CglsaW5lLWhlaWdodDoxLjRlbTsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5wb3B1bGFyLXBvc3RzIC5wb3N0IC50ZXh0IGF7Cgljb2xvcjojMjIyMjIyOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5wb3B1bGFyLXBvc3RzIC5wb3N0IGE6aG92ZXJ7Cgljb2xvcjojMDBhZWVmOwp9CgoucG9wdWxhci1wb3N0cyAucG9zdC1pbmZvewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTRweDsKCWNvbG9yOiM4ODg4ODg7Cglmb250LXdlaWdodDo0MDA7CglwYWRkaW5nLWxlZnQ6MjBweDsKfQoKLnBvcHVsYXItcG9zdHMgLnBvc3QtaW5mbzpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6ICJcZjA3MyI7CglsZWZ0OjBweDsKCXRvcDo0cHg7Cgljb2xvcjojNzc3Nzc3OwoJZm9udC1zaXplOjE0cHg7CglsaW5lLWhlaWdodDoxZW07Cglmb250LWZhbWlseTogJ0ZvbnRBd2Vzb21lJzsKfQoKLyogUG9wdWxhciBUYWdzICovCgouc2lkZWJhciAudGFncyBhewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCWxpbmUtaGVpZ2h0OjI0cHg7CglwYWRkaW5nOjhweCAyNHB4IDhweDsKCW1hcmdpbjowcHggNnB4IDEwcHggMHB4OwoJY29sb3I6Izg4ODg4ODsKCXRleHQtYWxpZ246Y2VudGVyOwoJZm9udC1zaXplOjE0cHg7CgliYWNrZ3JvdW5kOm5vbmU7Cglmb250LXdlaWdodDo0MDA7Cglib3JkZXItcmFkaXVzOjBweDsKCWJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsKCWJvcmRlcjoxcHggc29saWQgI2RkZGRkZDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9Cgouc2lkZWJhciAudGFncyBhOmhvdmVyewoJYm9yZGVyLWNvbG9yOiNjMTI4MmE7CgliYWNrZ3JvdW5kLWNvbG9yOiNjMTI4MmE7Cgljb2xvcjojZmZmZmZmOwp9CgovKiBCbG9nIERldGFpbCAqLwoKLmJsb2ctZGV0YWlsewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjMwcHg7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5pbWFnZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJb3ZlcmZsb3c6aGlkZGVuOwoJYmFja2dyb3VuZC1jb2xvcjojMDBhZWVmOwp9CgouYmxvZy1kZXRhaWwgLmlubmVyLWJveCAuaW1hZ2UgaW1newoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJZGlzcGxheTpibG9jazsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCA2MDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgNjAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDYwMG1zIGVhc2U7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94OmhvdmVyIC5pbWFnZSBpbWd7CglvcGFjaXR5OjAuNTsKCXRyYW5zZm9ybTpzY2FsZSgxLjA2LDEuMDYpOwp9CgouYmxvZy1kZXRhaWwgLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyNXB4IDIycHggMHB4OwoJYm9yZGVyOjFweCBzb2xpZCAjZWVlZWVlOwp9CgouYmxvZy1kZXRhaWwgLmlubmVyLWJveCAubG93ZXItY29udGVudCAucG9zdC1tZXRhewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5wb3N0LW1ldGEgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1yaWdodDoxMnB4OwoJY29sb3I6IzY2NjY2NjsKCWZvbnQtc2l6ZToxNnB4OwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC5wb3N0LW1ldGEgbGkgLmljb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1yaWdodDo4cHg7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGg0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC13ZWlnaHQ6NzAwOwoJbGluZS1oZWlnaHQ6MS40ZW07CgltYXJnaW46MTVweCAwcHggMTJweDsKfQoKLmJsb2ctZGV0YWlsIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmJsb2ctZGV0YWlsIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnRleHQgcHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGluZS1oZWlnaHQ6MS44ZW07Cgljb2xvcjojNzc3Nzc3OwoJZm9udC1zaXplOjE2cHg7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGJsb2NrcXVvdGV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MzVweCAzMHB4OwoJYm9yZGVyLXJhZGl1czo1cHg7Cglib3JkZXI6MXB4IGRvdHRlZCAjNDI0MjQyOwp9CgouYmxvZy1kZXRhaWwgLmlubmVyLWJveCAubG93ZXItY29udGVudCBibG9ja3F1b3RlIC5xdW90ZS1hdXRob3J7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjM1cHg7Cgl0b3A6LTIwcHg7Cgljb2xvcjojZmI2ZjYyOwoJZm9udC1zaXplOjE2cHg7CglwYWRkaW5nOjhweCAyMHB4OwoJYm9yZGVyLXJhZGl1czo1MHB4OwoJYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOwoJYm94LXNoYWRvdzowcHggMHB4IDEwcHggcmdiYSgwLDAsMCwwLjE4KTsKfQoKLmJsb2ctZGV0YWlsIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgYmxvY2txdW90ZSAucXVvdGUtdGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS44ZW07Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGJsb2NrcXVvdGUgLmljb257Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjYwcHg7Cglib3R0b206LTI3cHg7Cgl3aWR0aDo1NHB4OwoJaGVpZ2h0OjU0cHg7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjIwcHg7CglsaW5lLWhlaWdodDo1NHB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7CgliYWNrZ3JvdW5kLWNvbG9yOiNjZTU5MWQ7Cn0KCi5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IC50d28tY29sdW1uewoJbWFyZ2luLXRvcDo0NXB4OwoJbWFyZ2luLWJvdHRvbTozNXB4Owp9CgovKiBwb3N0IHNoYXJlIG9wdGlvbnMgKi8KCi5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tdG9wOiA0MHB4OwoJcGFkZGluZzoyMnB4IDBweDsKCWJvcmRlci10b3A6MXB4IHNvbGlkICNkZGRkZGQ7Cn0KCi5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zIC50YWdzIHNwYW57Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXdlaWdodDo0MDA7CgltYXJnaW4tcmlnaHQ6OHB4OwoJdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KCi5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zIC50YWdzIGF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiM2NjY2NjY7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWxpbmUtaGVpZ2h0OiAxZW07CglwYWRkaW5nLXJpZ2h0OiAxMnB4OwoJbWFyZ2luLXJpZ2h0OiAxMHB4OwoJZGlzcGxheTogaW5saW5lLWJsb2NrOwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlYmViZWI7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9CgouYmxvZy1kZXRhaWwgLnBvc3Qtc2hhcmUtb3B0aW9ucyAudGFncyBhOmxhc3QtY2hpbGR7Cglib3JkZXItcmlnaHQ6bm9uZTsKCW1hcmdpbi1yaWdodDogMHB4OwoJcGFkZGluZy1yaWdodDogMHB4Owp9CgouYmxvZy1kZXRhaWwgLnBvc3Qtc2hhcmUtb3B0aW9ucyAudGFnc3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmNDgwMDsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NDAwOwoJbWFyZ2luLXRvcDozcHg7Cn0KCi5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zIC50YWdzIGE6aG92ZXJ7Cgljb2xvcjojMDBhZWVmOwp9CgouYmxvZy1kZXRhaWwgLnBvc3Qtc2hhcmUtb3B0aW9ucyAuc29jaWFsLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouYmxvZy1kZXRhaWwgLnBvc3Qtc2hhcmUtb3B0aW9ucyAuc29jaWFsLWJveCBsaXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWxlZnQ6MTVweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9CgouYmxvZy1kZXRhaWwgLnBvc3Qtc2hhcmUtb3B0aW9ucyAuc29jaWFsLWJveCBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiM3Nzc3Nzc7CglkaXNwbGF5OmlubGluZS1ibG9jazsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5ibG9nLWRldGFpbCAucG9zdC1zaGFyZS1vcHRpb25zIC5zb2NpYWwtYm94IGxpIGE6aG92ZXJ7Cgljb2xvcjojMDBhZWVmOwp9CgovKiBOZXdzIFBvc3RzICovCgoubmV3cy1wb3N0c3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyNXB4IDI1cHg7CgltYXJnaW4tdG9wOiA0MHB4OwoJbWFyZ2luLWJvdHRvbTo2MHB4OwoJYm9yZGVyOiAxcHggZG90dGVkICMwMDAwMDA7Cn0KCi5uZXdzLXBvc3RzOmJlZm9yZXsKCXBvc2l0aW9uOmFic29sdXRlOwoJY29udGVudDonJzsKCWxlZnQ6NTAlOwoJdG9wOjBweDsKCXdpZHRoOjNweDsKCWhlaWdodDoxMDAlOwoJbWFyZ2luLWxlZnQ6LTFweDsKCWJhY2tncm91bmQtY29sb3I6I2RkZGRkZDsKfQoKLm5ld3MtcG9zdHMgaDR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjYwMDsKCWxpbmUtaGVpZ2h0OjEuN2VtOwoJbWFyZ2luOjBweDsKCW1hcmdpbi1ib3R0b206MTBweDsKfQoKLm5ld3MtcG9zdHMgLnByZXYtcG9zdCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE2cHg7Cglmb250LXdlaWdodDo3MDA7Cgl0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5uZXdzLXBvc3RzIC5wcmV2LXBvc3QgLmltYWdlewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDo4cHg7Cgl3aWR0aDoxMDBweDsKCWhlaWdodDoxMDBweDsKfQoKLm5ld3MtcG9zdHMgLm5leHQtcG9zdHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdGV4dC1hbGlnbjpyaWdodDsKCXBhZGRpbmctdG9wOjE1cHg7CgltaW4taGVpZ2h0OjExMHB4OwoJcGFkZGluZy1yaWdodDoxMzVweDsKfQoKLm5ld3MtcG9zdHMgLm5leHQtcG9zdCAuaW1hZ2V7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjBweDsKCXRvcDo4cHg7Cgl3aWR0aDoxMDBweDsKCWhlaWdodDoxMDBweDsKfQoKLm5ld3MtcG9zdHMgLm5leHQtcG9zdCBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjE2cHg7Cglmb250LXdlaWdodDo3MDA7Cgl0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5uZXdzLXBvc3RzIC5wcmV2LXBvc3R7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctdG9wOjE1cHg7CglwYWRkaW5nLWxlZnQ6MTM1cHg7CgltaW4taGVpZ2h0OjExMHB4Owp9CgoubmV3cy1wb3N0cyAucHJldi1wb3N0IGE6aG92ZXIsCi5uZXdzLXBvc3RzIC5uZXh0LXBvc3QgYTpob3ZlcnsKCWNvbG9yOiNjMTI4MmE7Cn0KCi5uZXdzLXBvc3RzIC5hcnJvd3sKCXBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7Cglmb250LXNpemU6MTRweCAhaW1wb3J0YW50OwoJY29sb3I6Izg0ODQ4NCAhaW1wb3J0YW50OwoJZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJQ29tbWVudHMgQXJlYQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICoqKi8KCi5zaWRlYmFyLXBhZ2UtY29udGFpbmVyIC5jb21tZW50cy1hcmVhewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tdG9wOjYwcHg7CgltYXJnaW4tYm90dG9tOjUwcHg7Cn0KCi5zaWRlYmFyLXBhZ2UtY29udGFpbmVyIC5ncm91cC10aXRsZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuZ3JvdXAtdGl0bGUgaDR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXdlaWdodDo2MDA7CgltYXJnaW4tYm90dG9tOjIwcHg7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MHB4IDBweCAwcHg7CgltYXJnaW4tYm90dG9tOjYwcHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3g6bGFzdC1jaGlsZHsKCW1hcmdpbi1ib3R0b206MHB4Owp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC1zaXplOjE0cHg7CgltaW4taGVpZ2h0OjEyMHB4OwoJcGFkZGluZzoxNXB4IDBweCAwcHggMTYwcHg7Cglib3JkZXI6MXB4IGRhc2hlZCAjZGRkZGRkOwp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAucmVwbHktY29tbWVudHsKCW1hcmdpbi1sZWZ0OjcwcHg7CQp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3ggLmF1dGhvci10aHVtYnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6MHB4OwoJd2lkdGg6MTIwcHg7CgloZWlnaHQ6MTIwcHg7CgltYXJnaW4tYm90dG9tOjBweDsKCW92ZXJmbG93OmhpZGRlbjsKfQoKLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IC5hdXRob3ItdGh1bWIgaW1newoJd2lkdGg6MTAwJTsKCWRpc3BsYXk6YmxvY2s7Cn0KCi5zaWRlYmFyLXBhZ2UtY29udGFpbmVyIC5jb21tZW50cy1hcmVhIC5jb21tZW50LWluZm97CgltYXJnaW4tYm90dG9tOjVweDsKfQoKLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IHN0cm9uZ3sKCWZvbnQtc2l6ZToyMHB4OwoJZm9udC13ZWlnaHQ6NjAwOwoJY29sb3I6IzIyMjIyMjsKCWRpc3BsYXk6YmxvY2s7CglsaW5lLWhlaWdodDoxLjNlbTsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IC50ZXh0ewoJY29sb3I6Izc3Nzc3NzsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS43ZW07CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtaW5mbyAuY29tbWVudC10aW1lewoJZm9udC1zaXplOjE2cHg7Cgljb2xvcjojNzc3Nzc3OwoJbWFyZ2luLWxlZnQ6MTVweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3ggLnRoZW1lLWJ0bnsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6NTBweDsKCWJvdHRvbTotMThweDsKCWZvbnQtc2l6ZToxNnB4OwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OjQwMDsKCXBhZGRpbmc6N3B4IDIwcHg7Cglib3JkZXItcmFkaXVzOjUwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNjMTI4MmE7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwp9Cgouc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3ggLnRoZW1lLWJ0bjpob3ZlcnsKCQp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUNvbW1lbnQgRm9ybQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cHsKCW1hcmdpbi1ib3R0b206MjBweDsKfQoKLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cDpsYXN0LWNoaWxkewoJbWFyZ2luLWJvdHRvbTowcHg7Cn0KCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdLAouY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InBhc3N3b3JkIl0sCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGVsIl0sCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0iZW1haWwiXSwKLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCBzZWxlY3R7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJbGluZS1oZWlnaHQ6MjhweDsKCXBhZGRpbmc6MTBweCAyNXB4OwoJY29sb3I6Izg4ODg4ODsKCWJvcmRlcjoxcHggc29saWQgI2RkZGRkZDsKCWhlaWdodDo1NHB4OwoJZm9udC1zaXplOjE0cHg7Cglib3JkZXItcmFkaXVzOjBweDsKCWJhY2tncm91bmQ6I2ZmZmZmZjsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdOmZvY3VzLAouY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InBhc3N3b3JkIl06Zm9jdXMsCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGVsIl06Zm9jdXMsCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0iZW1haWwiXTpmb2N1cywKLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMsCi5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXN7Cglib3JkZXItY29sb3I6I2MxMjgyYTsKfQoKLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7CglsaW5lLWhlaWdodDoyNHB4OwoJcGFkZGluZzoxMHB4IDI1cHggMTBweDsKCWNvbG9yOiM4ODg4ODg7Cglib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7CgloZWlnaHQ6MTg1cHg7CgliYWNrZ3JvdW5kOiNmZmZmZmY7CglyZXNpemU6bm9uZTsKCWZvbnQtc2l6ZToxNHB4OwoJYm9yZGVyLXJhZGl1czowcHg7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgouY29tbWVudC1mb3JtIC50aGVtZS1idG57CgljdXJzb3I6cG9pbnRlcjsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglDb250YWN0IFBhZ2UgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLmNvbnRhY3QtcGFnZS1zZWN0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjk1cHggMHB4IDYwcHg7Cn0KCi5jb250YWN0LXBhZ2Utc2VjdGlvbiAuaW5mby1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLmNvbnRhY3QtcGFnZS1zZWN0aW9uIC5pbmZvLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5jb250YWN0LXBhZ2Utc2VjdGlvbiAuZm9ybS1jb2x1bW57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NDBweDsKfQoKLmNvbnRhY3QtcGFnZS1zZWN0aW9uIC5mb3JtLWNvbHVtbiAuaW5uZXItY29sdW1uewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5jb250YWN0LWZvcm0gaW5wdXQuZXJyb3IsCi5jb250YWN0LWZvcm0gc2VsZWN0LmVycm9yLAouY29udGFjdC1mb3JtIHRleHRhcmVhLmVycm9yewoJYm9yZGVyLWNvbG9yOiNmZjAwMDAgIWltcG9ydGFudDsJCn0KCi5jb250YWN0LWZvcm0gbGFiZWwuZXJyb3J7CglkaXNwbGF5OmJsb2NrOwoJbGluZS1oZWlnaHQ6MjRweDsKCXBhZGRpbmc6NXB4IDBweCAwcHg7CgltYXJnaW46MHB4OwoJdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwoJZm9udC1zaXplOjEycHg7Cgljb2xvcjojZmYwMDAwOwoJZm9udC13ZWlnaHQ6NTAwOwkKfQoKLyoqKgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgkJQ29udGFjdCBNYXAgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5jb250YWN0LW1hcC1zZWN0aW9uewoJcG9zaXRpb246IHJlbGF0aXZlOwoJcGFkZGluZy10b3A6NDBweDsKCXBhZGRpbmctYm90dG9tOjEwMHB4Owp9CgouY29udGFjdC1tYXAtc2VjdGlvbiAubWFwLW91dGVyewoJcG9zaXRpb246IHJlbGF0aXZlOwoJaGVpZ2h0OiA1MDBweDsKfSAKCi5jb250YWN0LW1hcC1zZWN0aW9uIC5tYXAtY2FudmFzewoJcG9zaXRpb246IGFic29sdXRlOwoJbGVmdDogMDsKCXRvcDogMDsKCXdpZHRoOiAxMDAlOwoJaGVpZ2h0OiA1MDBweDsKfQoKLypTaG9wIEl0ZW0qLwoKLnNob3AtaXRlbXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo3MHB4Owp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW91dGxpbmU6MTVweCBzb2xpZCAjZmZmZmZmOwoJdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7Cn0KCi5zaG9wLWl0ZW0gLmlubmVyLWJveDpob3ZlciAuaW1hZ2UgLm92ZXJsYXktYm94ewoJb3BhY2l0eToxOwp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmltYWdlewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6I2Y4ZjhmODsKfQoKLnNob3AtaXRlbSAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3h7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCWNvbnRlbnQ6Jyc7CglsZWZ0OjBweDsKCXRvcDowcHg7Cgl3aWR0aDoxMDAlOwoJaGVpZ2h0OjEwMCU7CglvcGFjaXR5OjA7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWJhY2tncm91bmQtY29sb3I6cmdiYSg1MSw1MSw1MSwwLjcwKTsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY2FydC1vcHRpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRvcDo1MCU7CgltYXJnaW4tdG9wOi0yNXB4Owp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY2FydC1vcHRpb24gbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbjowcHggM3B4OwoJY29sb3I6I2MxMjgyYTsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY2FydC1vcHRpb24gbGkgYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxOHB4OwoJZGlzcGxheTpibG9jazsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY2FydC1vcHRpb24gbGkgYSAuZmF7CiAgICBmb250LXNpemU6IDE2cHg7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgd2lkdGg6IDQwcHg7CiAgICBoZWlnaHQ6IDQwcHg7CiAgICBsaW5lLWhlaWdodDogMzhweDsKfQoKLnNob3AtaXRlbSAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLmNhcnQtb3B0aW9uIGxpIGE6aG92ZXJ7Cgljb2xvcjojZmZmZmZmOwp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmltYWdlIGltZ3sKCXdpZHRoOjEwMCU7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLnNob3AtaXRlbSAuaW5uZXItYm94IC5sb3dlci1jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjIwcHggMHB4IDBweDsKfQoKLnNob3AtaXRlbSAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGgzewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MThweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCW1hcmdpbi1ib3R0b206NnB4Owp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgaDMgYXsKCWNvbG9yOiMwMDAwMDA7Cgl0cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKfQoKLnNob3AtaXRlbSAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGgzIGE6aG92ZXJ7Cgljb2xvcjojYzEyODJhOwp9Cgouc2hvcC1pdGVtIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQgLnByaWNlewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojYzEyODJhOwoJZm9udC1zaXplOjE4cHg7Cglmb250LXdlaWdodDo3MDA7Cn0KCi5zaG9wLWl0ZW0gLmlubmVyLWJveCAubG93ZXItY29udGVudCAucHJpY2UgLmRpc2NvdW50ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNzc3Nzc3OwoJbWFyZ2luLXJpZ2h0OjhweDsKCXRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7Cn0KCi5zaG9wLWl0ZW0gLmlubmVyLWJveCAubG93ZXItY29udGVudCAucmF0aW5nIC5mYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiNjMTI4MmE7Cn0KCgoKCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206NTBweDsKfQoKLnByb2R1Y3QtZGV0YWlscyAuaW1hZ2UtY29sdW1uLAoucHJvZHVjdC1kZXRhaWxzIC5pbmZvLWNvbHVtbnsKCW1hcmdpbi1ib3R0b206MjBweDsKfQoKLnByb2R1Y3QtZGV0YWlscyAuaW1hZ2UtY29sdW1uIC5pbWFnZS1ib3ggaW1newoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJd2lkdGg6MTAwJTsKCWJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAuZGV0YWlscy1oZWFkZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MTZweDsKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAuZGV0YWlscy1oZWFkZXIgaDR7Cglmb250LXNpemU6MjRweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCW1hcmdpbjo1cHggMHB4IDIwcHg7CglsaW5lLWhlaWdodDoxLjRlbTsKCWNvbG9yOiMzMzMzMzM7Cn0KCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHMgLmRldGFpbHMtaGVhZGVyIGg0IGF7Cgljb2xvcjojMzMzMzMzOwkKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAuZGV0YWlscy1oZWFkZXIgLnJhdGluZ3sKCWZvbnQtc2l6ZToxOHB4OwoJY29sb3I6I2MxMjgyYTsKCW1hcmdpbi1ib3R0b206MTVweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9CgoucHJvZHVjdC1kZXRhaWxzIC5iYXNpYy1kZXRhaWxzIC5kZXRhaWxzLWhlYWRlciAucmV2aWV3c3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cgljb2xvcjojNzc3Nzc3OwoJZm9udC13ZWlnaHQ6NzAwOwoJbWFyZ2luLWxlZnQ6MTVweDsKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAuZGV0YWlscy1oZWFkZXIgLnJhdGluZyAuZmF7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAuZGV0YWlscy1oZWFkZXIgLnJhdGluZyAudHh0ewoJZm9udC1zaXplOjE0cHg7CglwYWRkaW5nLWxlZnQ6MTBweDsKCWNvbG9yOiM3Nzc3Nzc7CQp9CgoucHJvZHVjdC1kZXRhaWxzIC5iYXNpYy1kZXRhaWxzIC5kZXRhaWxzLWhlYWRlciAuaXRlbS1wcmljZXsKCWZvbnQtc2l6ZToyMnB4OwoJZm9udC13ZWlnaHQ6NzAwOwoJY29sb3I6I2MxMjgyYTsKCWxpbmUtaGVpZ2h0OjI0cHg7Cn0KCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHMgLnByb2QtaW5mb3sKCW1hcmdpbi1ib3R0b206MTVweDsKCWxpbmUtaGVpZ2h0OjEuNmVtOwoJZm9udC1zaXplOjEzcHg7CQp9CgoucHJvZHVjdC1kZXRhaWxzIC5iYXNpYy1kZXRhaWxzIC5wcm9kLWluZm8gc3Ryb25newoJZm9udC13ZWlnaHQ6NzAwOwoJY29sb3I6IzExMTExMTsJCn0KCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHMgLnRleHR7CgltYXJnaW4tYm90dG9tOjI1cHg7Cgljb2xvcjojNzc3Nzc3OwoJZm9udC1zaXplOjE2cHg7Cglmb250LXdlaWdodDo0MDA7CglsaW5lLWhlaWdodDoxLjhlbTsJCn0KCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHMgLml0ZW0tcXVhbnRpdHkgLmZpZWxkLWxhYmVsewoJZmxvYXQ6bGVmdDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWZvbnQtc2l6ZToxNHB4OwoJbGluZS1oZWlnaHQ6MzJweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJcGFkZGluZy1yaWdodDoyMHB4OwkKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAucXVhbnRpdHktc3Bpbm5lciwKLmNhcnQtc2VjdGlvbiBpbnB1dC5xdWFudGl0eS1zcGlubmVyewoJbGluZS1oZWlnaHQ6MjRweDsKCXBhZGRpbmc6MTBweCAxNXB4ICFpbXBvcnRhbnQ7CgloZWlnaHQ6NDZweCAhaW1wb3J0YW50OwoJYm94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7CQp9CgoucHJvZHVjdC1kZXRhaWxzIC5iYXNpYy1kZXRhaWxzIC5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgPiAuYnRuLAouY2FydC1zZWN0aW9uIC5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgPiAuYnRuewoJcGFkZGluZzoxMXB4IDEwcHg7CgliYWNrZ3JvdW5kOiNmNGY1ZjY7CQp9CgoucHJvZHVjdC1kZXRhaWxzIC5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgaSwKLmNhcnQtc2VjdGlvbiAuYm9vdHN0cmFwLXRvdWNoc3BpbiAuaW5wdXQtZ3JvdXAtYnRuLXZlcnRpY2FsIGl7Cgl0b3A6NnB4OwkKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAuaXRlbS1xdWFudGl0eXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6bGVmdDsKCXdpZHRoOjg1cHg7CgltYXJnaW4tYm90dG9tOjI1cHg7CgltYXJnaW4tcmlnaHQ6MjBweDsJCn0KCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHMgLml0ZW0tcXVhbnRpdHkgLmZpZWxkLWxhYmVsewoJZmxvYXQ6bGVmdDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWZvbnQtc2l6ZToxNHB4OwoJbGluZS1oZWlnaHQ6MzJweDsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwoJcGFkZGluZy1yaWdodDoyMHB4OwkKfQoKLnByb2R1Y3QtZGV0YWlscyAuYmFzaWMtZGV0YWlscyAucXVhbnRpdHktc3Bpbm5lciwKLmNhcnQtdGFibGUgaW5wdXQucXVhbnRpdHktc3Bpbm5lcnsKCWZvbnQtc2l6ZToxOHB4OwoJbGluZS1oZWlnaHQ6MjRweDsKCXBhZGRpbmc6MTBweCAxNXB4ICFpbXBvcnRhbnQ7CgloZWlnaHQ6NTBweCAhaW1wb3J0YW50OwoJYm94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7CQp9CgoucHJvZHVjdC1kZXRhaWxzIC5iYXNpYy1kZXRhaWxzIC5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgPiAuYnRuLAouY2FydC10YWJsZSAuYm9vdHN0cmFwLXRvdWNoc3BpbiAuaW5wdXQtZ3JvdXAtYnRuLXZlcnRpY2FsID4gLmJ0bnsKCXBhZGRpbmc6MTJweCAxMHB4OwoJZGlzcGxheTpub25lOwoJYmFja2dyb3VuZDojZjRmNWY2OwoJYm9yZGVyLXJhZGl1czowcHg7CQp9CgoucHJvZHVjdC1kZXRhaWxzIC5ib290c3RyYXAtdG91Y2hzcGluIC5pbnB1dC1ncm91cC1idG4tdmVydGljYWwgaSwKLmNhcnQtdGFibGUgLmJvb3RzdHJhcC10b3VjaHNwaW4gLmlucHV0LWdyb3VwLWJ0bi12ZXJ0aWNhbCBpewoJdG9wOjhweDsJCn0KCi5wcm9kdWN0LWRldGFpbHMgLmJhc2ljLWRldGFpbHMgLmFkZC10by1jYXJ0ewoJcGFkZGluZzoxMXB4IDIwcHg7Cglmb250LXdlaWdodDo3MDA7Cglib3JkZXItcmFkaXVzOjBweDsKCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKfQoKLyoqKiAKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CglQcm9kdWN0IFRhYnMgU3R5bGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5zaG9wLXNpbmdsZSAucHJvZHVjdC1kZXRhaWxzIC5wcm9kLXRhYnN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmctYm90dG9tOjYwcHg7CgltYXJnaW4tYm90dG9tOjgwcHg7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjY2NjOwp9Cgouc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzIC50YWItYnRuc3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJei1pbmRleDoxOwoJbWFyZ2luLWJvdHRvbTo1MHB4Owp9Cgouc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzIC50YWItYnRucyAudGFiLWJ0bnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdG9wOjFweDsKCWRpc3BsYXk6YmxvY2s7CglmbG9hdDpsZWZ0OwoJbWFyZ2luLXJpZ2h0OjEwcHg7Cglmb250LXNpemU6MTZweDsKCWJhY2tncm91bmQ6I2VlZWVlZTsKCWNvbG9yOiMwMDAwMDA7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cglmb250LXdlaWdodDo3MDA7CglsaW5lLWhlaWdodDoyNHB4OwoJY3Vyc29yOnBvaW50ZXI7CglwYWRkaW5nOjEzcHggNDNweCAxM3B4OwoJdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKfQoKLnNob3Atc2luZ2xlIC5wcm9kdWN0LWRldGFpbHMgLnByb2QtdGFicyAudGFiLWJ0bnMgLnRhYi1idG46aG92ZXIsCi5zaG9wLXNpbmdsZSAucHJvZHVjdC1kZXRhaWxzIC5wcm9kLXRhYnMgLnRhYi1idG5zIC50YWItYnRuLmFjdGl2ZS1idG57Cgljb2xvcjojZmZmZmZmOwoJYmFja2dyb3VuZDojYzEyODJhOwp9Cgouc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzIC50YWJzLWNvbnRlbnR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLnNob3Atc2luZ2xlIC5wcm9kdWN0LWRldGFpbHMgLnByb2QtdGFicyAudGFicy1jb250ZW50IC50YWJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6bm9uZTsKCWJvcmRlci10b3A6MHB4Owp9Cgouc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzIC50YWJzLWNvbnRlbnQgLnRhYi5hY3RpdmUtdGFiewoJZGlzcGxheTpibG9jazsJCn0KCi5zaG9wLXNpbmdsZSAucHJvZHVjdC1kZXRhaWxzIC5wcm9kLXRhYnMgLnRhYnMtY29udGVudCAudGFiIC5jb250ZW50ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zaG9wLXNpbmdsZSAucHJvZHVjdC1kZXRhaWxzIC5wcm9kLXRhYnMgLnRhYnMtY29udGVudCAudGFiIC5jb250ZW50IHB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxNnB4OwoJbGluZS1oZWlnaHQ6MS43ZW07CgltYXJnaW4tYm90dG9tOjI1cHg7Cgljb2xvcjojNzk3OTc5Owp9Cgouc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzIC50YWJzLWNvbnRlbnQgLnRhYiAuY29udGVudCBwOmxhc3QtY2hpbGR7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLnByb2QtdGFicyAudGFicy1jb250ZW50IC50YWIgLnRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMDAwMDAwOwoJZm9udC1zaXplOjI0cHg7Cglmb250LXdlaWdodDo3MDA7CgltYXJnaW4tYm90dG9tOjM1cHg7Cglmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwp9CgovKkNvbW1lbnQgRm9ybSovCgouc2hvcC1jb21tZW50LWZvcm17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6NTBweDsKfQoKLnNob3AtY29tbWVudC1mb3JtIGgyewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMzMzMzMzOwoJZm9udC1zaXplOjI0cHg7Cglmb250LXdlaWdodDo3MDA7CgltYXJnaW4tYm90dG9tOjEwcHg7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cn0KCi5zaG9wLWNvbW1lbnQtZm9ybSAubWFpbC10ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNzc3Nzc3OwoJZm9udC1zaXplOjE2cHg7CgltYXJnaW4tYm90dG9tOjE1cHg7Cn0KCi5zaG9wLWNvbW1lbnQtZm9ybSAuZ3JvdXAtdGl0bGV7CgltYXJnaW4tYm90dG9tOjIwcHg7Cn0KCi5zaG9wLWNvbW1lbnQtZm9ybSAucmF0aW5nLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbToyMHB4Owp9Cgouc2hvcC1jb21tZW50LWZvcm0gLnJhdGluZy1ib3ggLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxNnB4OwoJY29sb3I6IzMzMzMzMzsKCW1hcmdpbi1ib3R0b206MTVweDsKfQoKLnNob3AtY29tbWVudC1mb3JtIC5yYXRpbmctYm94IC5yYXRpbmd7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9Cgouc2hvcC1jb21tZW50LWZvcm0gLnJhdGluZy1ib3ggLnJhdGluZyAuZmF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6aW5saW5lLWJsb2NrOwp9Cgouc2hvcC1jb21tZW50LWZvcm0gLnJhdGluZy1ib3ggLnJhdGluZyBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMzMzMzMzOwoJZm9udC1zaXplOjE0cHg7CglkaXNwbGF5OmlubGluZS1ibG9jazsKfQoKLnNob3AtY29tbWVudC1mb3JtIC5yYXRpbmctYm94IC5yYXRpbmcgYTpob3ZlcnsKCWNvbG9yOiNjMTI4MmE7Cn0KCi5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbToyMHB4Owp9Cgouc2hvcC1jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgbGFiZWx7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMzMzMzMzM7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjQwMDsKfQoKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwOmxhc3QtY2hpbGR7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InBhc3N3b3JkIl0sCi5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZWwiXSwKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl0sCi5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCBzZWxlY3R7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJbGluZS1oZWlnaHQ6MjhweDsKCXBhZGRpbmc6MTBweCAxNXB4OwoJYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOwoJaGVpZ2h0OjUwcHg7Cgljb2xvcjojODQ4NDg0OwoJZm9udC13ZWlnaHQ6MzAwOwoJYmFja2dyb3VuZDojZmZmZmZmOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cywKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InBhc3N3b3JkIl06Zm9jdXMsCi5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZWwiXTpmb2N1cywKLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXMsCi5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCBzZWxlY3Q6Zm9jdXMsCi5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1c3sKCWJvcmRlci1jb2xvcjojYzEyODJhOwp9Cgouc2hvcC1jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgdGV4dGFyZWF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJbGluZS1oZWlnaHQ6MjZweDsKCXBhZGRpbmc6MTBweCAxNXB4OwoJY29sb3I6Izg0ODQ4NDsKCWJvcmRlcjoxcHggc29saWQgI2RkZGRkZDsKCWhlaWdodDoxMjBweDsKCWZvbnQtd2VpZ2h0OjMwMDsKCWJhY2tncm91bmQ6I2ZmZmZmZjsKCXJlc2l6ZTpub25lOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLnNob3AtY29tbWVudC1mb3JtIGJ1dHRvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZm9udC13ZWlnaHQ6NzAwOwoJYm9yZGVyLXJhZGl1czowcHg7Cglmb250LXNpemU6MTZweDsKCXBhZGRpbmc6N3B4IDI4cHg7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cn0KCi5zaG9wLWNvbW1lbnQtZm9ybSBpbnB1dDpmb2N1cywKLnNob3AtY29tbWVudC1mb3JtIHNlbGVjdDpmb2N1cywKLnNob3AtY29tbWVudC1mb3JtIHRleHRhcmVhOmZvY3VzewoJYm9yZGVyLWNvbG9yOiNmMDY1Mjk7CQp9CgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUNhcnQgU2VjdGlvbiBzdHlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLmNhcnQtc2VjdGlvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxMDBweCAwcHggOTBweDsKfQoKLmNhcnQtb3V0ZXJ7Cglwb3NpdGlvbjpyZWxhdGl2ZTsJCn0KCi5jaGVja291dC1wYWdlIC5jYXJ0LW91dGVyewoJbWFyZ2luLWJvdHRvbTo0MHB4OwkKfQoKLmNhcnQtb3V0ZXIgLnRhYmxlLW91dGVyewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJb3ZlcmZsb3cteDoJYXV0bzsKfQoKLmNhcnQtb3V0ZXIgLmNhcnQtdGFibGV7Cgl3aWR0aDoxMDAlOwoJbWluLXdpZHRoOjkwMHB4OwkKfQoKLmNhcnQtdGFibGUgLmNhcnQtaGVhZGVyewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDAlOwoJdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOwoJZm9udC1zaXplOjEzcHg7CgliYWNrZ3JvdW5kOiMzMzMzMzM7Cgljb2xvcjojZmZmZmZmOwoJYm9yZGVyOjFweCBzb2xpZCAjZWJlYmViOwp9CgouY2FydC10YWJsZSB0aGVhZCB0ciB0aHsKCWxpbmUtaGVpZ2h0OjI0cHg7CglwYWRkaW5nOjEzcHggMjVweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWZvbnQtc2l6ZToxNnB4OwoJbGV0dGVyLXNwYWNpbmc6MXB4OwoJdGV4dC1hbGlnbjpjZW50ZXI7Cgl0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Cglib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2NjY2M7Cglmb250LWZhbWlseTogJ1JhbGV3YXknLCBzYW5zLXNlcmlmOwp9CgouY2FydC10YWJsZSB0aGVhZCB0ciB0aCAuZmF7Cglmb250LXNpemU6MThweDsJCn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIHRkewoJbGluZS1oZWlnaHQ6MjRweDsKCXBhZGRpbmc6MjVweCAyNXB4IDIwcHg7Cn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIC5xdHl7Cgl3aWR0aDoyMDBweDsKCXBhZGRpbmctcmlnaHQ6ODBweDsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnF0eSAucXVhbnRpdHktc3Bpbm5lcnsKCWJhY2tncm91bmQ6I2ZmZmZmZjsJCn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIC5wcm9kLWNvbHVtbiAuY29sdW1uLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWluLWhlaWdodDoxMTBweDsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnByb2QtY29sdW1uIC5jb2x1bW4tYm94IC5wcm9kLXRodW1iewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDoxMDBweDsJCn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIC5wcm9kLWNvbHVtbiAuY29sdW1uLWJveCAucHJvZC10aHVtYiBpbWd7CgkgZGlzcGxheTpibG9jazsKCSBtYXgtd2lkdGg6MTAwJTsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnByb2QtY29sdW1uIC5jb2x1bW4tYm94IGg0ewoJZm9udC1zaXplOjE0cHg7Cgljb2xvcjojNDQ0NDQ0OwoJZm9udC13ZWlnaHQ6NDAwOwoJbGluZS1oZWlnaHQ6OTBweDsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnByb2QtY29sdW1uIC5hdXRob3J7Cglmb250LXNpemU6MTNweDsKCWNvbG9yOiMzMzMzMzM7CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnN1Yi10b3RhbHsKCWZvbnQtd2VpZ2h0OjQwMDsKCWNvbG9yOiM3OTc5Nzk7Cglmb250LXNpemU6MTdweDsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnN1Yi10b3RhbC5wcmljZXsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnJlbW92ZS1idG57Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxNHB4OwoJY29sb3I6IzFjMWMxYzsKCWxpbmUtaGVpZ2h0OjMwcHg7Cglmb250LXdlaWdodDo1MDA7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9CgouY2FydC10YWJsZSB0Ym9keSB0ciAucmVtb3ZlLWJ0biAuZmF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWZvbnQtc2l6ZToxOHB4OwoJbGluZS1oZWlnaHQ6MzBweDsKfQoKLmNhcnQtdGFibGUgdGJvZHkgdHIgLnJlbW92ZS1idG46aG92ZXJ7Cgljb2xvcjojYzEyODJhOwp9CgouY2FydC10YWJsZSB0Ym9keSB0cnsKCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2NjY2M7CQp9CgouY2FydC10YWJsZSB0Ym9keSB0ciB0ZHsKCXZlcnRpY2FsLWFsaWduOm1pZGRsZTsKCWNvbG9yOiM3OTc5Nzk7Cglmb250LXNpemU6MTdweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2NjY2M7Cn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIHRkLnByb2QtY29sdW1uewoJcGFkZGluZy1sZWZ0OjQ4cHg7Cn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIHRkLnRvdGFsewoJZm9udC1zaXplOjE4cHg7Cgljb2xvcjojMzMzMzMzOwp9CgouY2FydC10YWJsZSB0Ym9keSB0ciB0ZDpsYXN0LWNoaWxkewoJYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZWJlYmViOwoJdGV4dC1hbGlnbjpjZW50ZXI7Cn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIHRkIC5wcm9kLXRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTZweDsKCWNvbG9yOiMzMzMzMzM7Cglmb250LXdlaWdodDo0MDA7Cn0KCi5jYXJ0LXRhYmxlIHRib2R5IHRyIHRkIC5xdWFudGl0eS1zcGlubmVyewoJcGFkZGluZzo1cHggMHB4IDVweCAyMHB4OwoJbGluZS1oZWlnaHQ6MjRweDsKCWhlaWdodDozNHB4OwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmNhcnQtdGFibGUgdGJvZHkgLmF2YWlsYWJsZS1pbmZvewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nLWxlZnQ6NTBweDsJCn0KCi5jYXJ0LXRhYmxlIHRib2R5IC5hdmFpbGFibGUtaW5mbyAuaWNvbnsKCXBvc2l0aW9uOmFic29sdXRlOwoJbGVmdDowcHg7Cgl0b3A6NXB4OwoJd2lkdGg6NDBweDsKCWhlaWdodDo0MHB4OwoJbGluZS1oZWlnaHQ6NDBweDsKCXRleHQtYWxpZ246Y2VudGVyOwoJZm9udC1zaXplOjE4cHg7Cgljb2xvcjojZmZmZmZmOwoJYmFja2dyb3VuZDojMjIzNTU1OwoJYm9yZGVyLXJhZGl1czo1MCU7Cn0KCi5jYXJ0LXNlY3Rpb24gLmNhcnQtb3B0aW9uc3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyMHB4IDBweCAxMHB4OwoJbWFyZ2luLWJvdHRvbTozMHB4OwoJYm9yZGVyLXRvcDowcHg7Cn0KCi5jYXJ0LXNlY3Rpb24gLmFwcGx5LWNvdXBvbnsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouY2FydC1zZWN0aW9uIC5jYXJ0LW9wdGlvbnMgLmNhcnQtYnRuewoJcGFkZGluZzoxMHB4IDM5cHggMTBweDsKICAgIGxpbmUtaGVpZ2h0OiAyNHB4OwoJZm9udC1zaXplOjEzcHg7Cglmb250LXdlaWdodDo3MDA7Cglib3JkZXItcmFkaXVzOjBweDsKCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKfQoKLmNhcnQtc2VjdGlvbiAuYXBwbHktY291cG9uIC5mb3JtLWdyb3VwewoJcG9zaXRpb246cmVsYXRpdmU7CglmbG9hdDpsZWZ0OwoJbWFyZ2luLXJpZ2h0OjMwcHg7CQp9CgouY2FydC1zZWN0aW9uIC5hcHBseS1jb3Vwb24gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdewoJZGlzcGxheTpibG9jazsKCWxpbmUtaGVpZ2h0OjE1cHg7CglwYWRkaW5nOjhweCAyMHB4OwoJYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOwoJd2lkdGg6MjI1cHg7CgloZWlnaHQ6NDRweDsKCWJhY2tncm91bmQ6I2ZmZmZmZjsKfQoKLmNhcnQtc2VjdGlvbiAuY291cG9uLWJ0bnsKICAgIHBhZGRpbmc6MTBweCAzOXB4IDEwcHg7CiAgICBsaW5lLWhlaWdodDogMjRweDsKCWZvbnQtc2l6ZToxM3B4OwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtd2VpZ2h0OjcwMDsKCXRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsKCWJhY2tncm91bmQtY29sb3I6I2MxMjgyYTsKfQoKLmNhcnQtc2VjdGlvbiAuY2FydC1vcHRpb25zIC5idG4tc3R5bGUtb25lewoJdG9wOi03cHg7CglwYWRkaW5nLWxlZnQ6MzJweDsKCXBhZGRpbmctcmlnaHQ6MzJweDsKfQoKLmNhcnQtc2VjdGlvbiAudG90YWxzLXRhYmxlewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjIwcHg7Cglib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7Cn0KCi5jYXJ0LXNlY3Rpb24gLnRvdGFscy10YWJsZSBsaXsKCWxpbmUtaGVpZ2h0OjI0cHg7CglwYWRkaW5nOjE0cHggMzBweDsKCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2NjY2M7CQp9CgouY2FydC1zZWN0aW9uIC50b3RhbHMtdGFibGUgbGk6Zmlyc3QtY2hpbGR7CgkKfQoKLmNhcnQtc2VjdGlvbiAudG90YWxzLXRhYmxlIGxpIGgzewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXdlaWdodDo3MDA7Cgljb2xvcjojMzMzMzMzOwoJZm9udC1zaXplOjE4cHg7Cn0KCi5jYXJ0LXNlY3Rpb24gLnRvdGFscy10YWJsZSBsaTpsYXN0LWNoaWxkewoJYm9yZGVyLWJvdHRvbTpub25lOwoJcGFkZGluZzo1MHB4IDMwcHg7Cn0KCi5jYXJ0LXNlY3Rpb24gLnRvdGFscy10YWJsZSAuY29sewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJZmxvYXQ6bGVmdDsKCWxpbmUtaGVpZ2h0OjI0cHg7Cgl3aWR0aDo1MCU7Cgljb2xvcjojMzMzMzMzOwoJZm9udC1zaXplOjE2cHg7Cglmb250LXdlaWdodDo3MDA7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwp9CgouY2FydC1zZWN0aW9uIC50b3RhbHMtdGFibGUgbGkgLmNvbDpsYXN0LWNoaWxkewoJdGV4dC1hbGlnbjpyaWdodDsJCn0KCi5jYXJ0LXNlY3Rpb24gLnRvdGFscy10YWJsZSAudG90YWwgLnByaWNlewoJY29sb3I6I2MxMjgyYTsKCWZvbnQtd2VpZ2h0OjcwMDsKfQoKLmNhcnQtc2VjdGlvbiAudG90YWxzLXRhYmxlIC5wcm9jZWVkLWJ0bnsKICAgIHBhZGRpbmc6IDEzcHggMzRweCAxM3B4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBmb250LXNpemU6IDE0cHg7CiAgICBmb250LXdlaWdodDogNzAwOwogICAgYm9yZGVyLXJhZGl1czogMHB4OwogICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKfQoKCi5zaGlwcGluZy1ibG9ja3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9Cgouc2hpcHBpbmctYmxvY2sgLmlubmVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxNnB4IDIwcHggNnB4OwoJYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOwp9Cgouc2hpcHBpbmctYmxvY2sgLmlubmVyLWJveCBoM3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzMzMzMzMzsKCWZvbnQtc2l6ZToxNXB4OwoJZm9udC13ZWlnaHQ6NzAwOwoJbWFyZ2luLWJvdHRvbToxMHB4OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLnNoaXBwaW5nLWJsb2NrIC5pbm5lci1ib3ggaDR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiNjMTI4MmE7Cglmb250LXNpemU6MTRweDsKCWZvbnQtd2VpZ2h0OjYwMDsKCW1hcmdpbi1ib3R0b206MTVweDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi5zaGlwcGluZy1mb3JtewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjE1cHg7Cn0KCi5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwKLnNoaXBwaW5nLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0icGFzc3dvcmQiXSwKLnNoaXBwaW5nLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGVsIl0sCi5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJbGluZS1oZWlnaHQ6MThweDsKCXBhZGRpbmc6MTBweCAyMHB4OwoJaGVpZ2h0OjQwcHg7Cglmb250LXNpemU6MTRweDsKCWJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsKCS13ZWJraXQtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cywKLnNoaXBwaW5nLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0icGFzc3dvcmQiXTpmb2N1cywKLnNoaXBwaW5nLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGVsIl06Zm9jdXMsCi5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl06Zm9jdXMsCi5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwIHNlbGVjdDpmb2N1cywKLnNoaXBwaW5nLWZvcm0gLmZvcm0tZ3JvdXAgdGV4dGFyZWE6Zm9jdXN7Cglib3JkZXItY29sb3I6I2MxMjgyYTsKfQoKLnNoaXBwaW5nLWZvcm0gYnV0dG9uewoJbWFyZ2luLXRvcDowcHg7Cglmb250LXNpemU6MTVweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCWJvcmRlci1yYWRpdXM6MHB4OwoJcGFkZGluZzo2cHggMjZweDsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cn0KCi8qKiogCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoJQ2hlY2tPdXQgU2VjdGlvb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioqKi8KCi5jaGVja291dC1wYWdlewoJcG9zaXRpb246cmVsYXRpdmU7CglwYWRkaW5nOjEwMHB4IDBweCAxMDBweDsKfQoKLmNoZWNrb3V0LXBhZ2UgLmRlZmF1bHQtbGlua3N7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MzBweDsJCn0KCi5jaGVja291dC1wYWdlIC5kZWZhdWx0LWxpbmtzIGxpewoJbGluZS1oZWlnaHQ6MjRweDsKCXBhZGRpbmc6MTRweCAzMHB4IDE4cHg7CgliYWNrZ3JvdW5kOiMzMzMzMzM7Cgljb2xvcjojZmZmZmZmOwoJZm9udC1zaXplOjE2cHg7Cn0KCi5jaGVja291dC1wYWdlIC5kZWZhdWx0LWxpbmtzIGxpIC5mYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJdG9wOjJweDsKCW1hcmdpbi1yaWdodDoyMHB4OwoJZm9udC1zaXplOjI0cHg7Cgljb2xvcjojYzEyODJhOwp9CgouY2hlY2tvdXQtcGFnZSAuZGVmYXVsdC1saW5rcyBsaSBhewoJY29sb3I6I2MxMjgyYTsKfQoKLmNoZWNrb3V0LWZvcm17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmNoZWNrb3V0LWZvcm0gLmNoZWNrb3V0LXRpdGxlewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5jaGVja291dC1mb3JtIC5jaGVja291dC10aXRsZSBoMnsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzIyMjIyMjsKCWZvbnQtc2l6ZTozMHB4OwoJbWFyZ2luLWJvdHRvbToxNXB4Owp9CgouY2hlY2tvdXQtZm9ybSAuZm9ybS1ncm91cHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTo1cHg7CQp9CgouY2hlY2tvdXQtZm9ybSAuZm9ybS1ncm91cCAuZmllbGQtbGFiZWx7CglkaXNwbGF5OmJsb2NrOwoJbGluZS1oZWlnaHQ6MjRweDsKCW1hcmdpbi1ib3R0b206NnB4OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKCWNvbG9yOiMyMjIyMjI7CQoJZm9udC1zaXplOjE2cHg7Cglmb250LXdlaWdodDo0MDA7Cn0KCi5jaGVja291dC1mb3JtIC5mb3JtLWdyb3VwIC5maWVsZC1sYWJlbCBzdXB7Cgl0b3A6LTFweDsKCWZvbnQtc2l6ZToxNnB4Owp9CgouY2hlY2tvdXQtZm9ybSAuZm9ybS1ncm91cCAudGV4dHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6Izc3Nzc3NzsKCWZvbnQtc2l6ZToxNXB4OwoJbWFyZ2luLWJvdHRvbTo1cHg7Cn0KCi5jaGVja291dC1mb3JtIGlucHV0W3R5cGU9InRleHQiXSwKLmNoZWNrb3V0LWZvcm0gaW5wdXRbdHlwZT0iZW1haWwiXSwKLmNoZWNrb3V0LWZvcm0gaW5wdXRbdHlwZT0icGFzc3dvcmQiXSwKLmNoZWNrb3V0LWZvcm0gaW5wdXRbdHlwZT0idGVsIl0sCi5jaGVja291dC1mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdLAouY2hlY2tvdXQtZm9ybSBpbnB1dFt0eXBlPSJ1cmwiXSwKLmNoZWNrb3V0LWZvcm0gc2VsZWN0LAouY2hlY2tvdXQtZm9ybSB0ZXh0YXJlYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7CgliYWNrZ3JvdW5kOiNmZmZmZmY7CglsaW5lLWhlaWdodDoyMnB4OwoJcGFkZGluZzoxMnB4IDE1cHg7CgloZWlnaHQ6NDhweDsKCW1hcmdpbi1ib3R0b206MTBweDsKCWJvcmRlcjoxcHggc29saWQgI2UwZTBlMDsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5jaGVja291dC1mb3JtIHRleHRhcmVhewoJcmVzaXplOm5vbmU7CgloZWlnaHQ6NjBweCAhaW1wb3J0YW50OwkKfQoKLmNoZWNrb3V0LWZvcm0gaW5wdXQ6Zm9jdXMsCi5jaGVja291dC1mb3JtIHNlbGVjdDpmb2N1cywKLmNoZWNrb3V0LWZvcm0gdGV4dGFyZWE6Zm9jdXN7Cglib3JkZXItY29sb3I6I2MxMjgyYTsJCn0KCi5jaGVja291dC1wYWdlIC5jaGVjay1ib3h7CglsaW5lLWhlaWdodDoyNHB4OwoJZm9udC1zaXplOjE0cHg7Cglmb250LXdlaWdodDpub3JtYWw7CglwYWRkaW5nLXRvcDo1cHg7CQp9CgouY2hlY2tvdXQtcGFnZSAuY2hlY2stYm94IGxhYmVsewoJcG9zaXRpb246cmVsYXRpdmU7Cgl0b3A6LTFweDsKCWZvbnQtd2VpZ2h0Om5vcm1hbDsKCXBhZGRpbmc6MHB4OwoJZm9udC1zaXplOjE2cHg7CgljdXJzb3I6cG9pbnRlcjsKCWNvbG9yOiMzMzMzMzM7Cn0KCi5jaGVja291dC1wYWdlIC5sb3dlci1jb250ZW50ewoJbWFyZ2luLXRvcDozMHB4Owp9CgouY2hlY2tvdXQtcGFnZSAubG93ZXItY29udGVudCAub3JkZXItY29sdW1uewoJbWFyZ2luLWJvdHRvbTo0MHB4Owp9CgouY2hlY2tvdXQtcGFnZSAubG93ZXItY29udGVudCAuY29sdW1uIGgyewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMjIyMjIyOwoJZm9udC1zaXplOjI0cHg7CgltYXJnaW4tYm90dG9tOjMwcHg7CglwYWRkaW5nLWJvdHRvbToxMnB4Owp9CgouY2hlY2tvdXQtcGFnZSAubG93ZXItY29udGVudCAuY29sdW1uIGgyOmFmdGVyewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDowcHg7Cglib3R0b206MHB4OwoJd2lkdGg6NDBweDsKCWhlaWdodDoycHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNjMTI4MmE7Cn0KCi8qQ291cG9uIEJveCovCgouY291cG9uLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoyNXB4IDI1cHg7CgltYXJnaW4tYm90dG9tOjI1cHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Cn0KCi5jb3Vwb24tZm9ybXsKCXBvc2l0aW9uOnJlbGF0aXZlOwp9CgouY291cG9uLWZvcm0gLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MHB4Owp9CgouY291cG9uLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJd2lkdGg6MTAwJTsKCWxpbmUtaGVpZ2h0OjI4cHg7CglwYWRkaW5nOjEwcHggMjBweDsKCWhlaWdodDo0NHB4OwoJZm9udC1zaXplOjE0cHg7Cglib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwp9CgouY291cG9uLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdOmZvY3VzewoJYm9yZGVyLWNvbG9yOiNjMTI4MmE7Cn0KCi5jb3Vwb24tZm9ybSBidXR0b257CgltYXJnaW4tdG9wOjBweDsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NzAwOwoJYm9yZGVyLXJhZGl1czowcHg7CglwYWRkaW5nOjhweCAyNnB4OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLm9yZGVyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLXRvcDoxNXB4Owp9Cgoub3JkZXItYm94IGgyewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojMzMzMzMzOwoJZm9udC1zaXplOjI4cHg7Cglmb250LXdlaWdodDo3MDA7CgltYXJnaW4tYm90dG9tOjIwcHg7Cn0KCi5vcmRlci1ib3ggLnRpdGxlLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxM3B4IDMwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiMzMzMzMzM7Cn0KCi5vcmRlci1ib3ggLnRpdGxlLWJveCAuY29sewoJcG9zaXRpb246cmVsYXRpdmU7Cgl3aWR0aDo1MCU7CglmbG9hdDpsZWZ0OwoJY29sb3I6I2ZmZmZmZjsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NzAwOwp9Cgoub3JkZXItYm94IHVsewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5vcmRlci1ib3ggdWwgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MjVweCAzMHB4OwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY2NjYzsKfQoKLm9yZGVyLWJveCB1bCBsaSBzdHJvbmd7Cgljb2xvcjojMzMzMzMzOwoJZm9udC13ZWlnaHQ6NzAwOwoJZm9udC1zaXplOjE2cHg7Cn0KCi5vcmRlci1ib3ggdWwgbGkgc3BhbnsKCXdpZHRoOjUwJTsKCWZsb2F0OnJpZ2h0OwoJY29sb3I6I2MxMjgyYTsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NzAwOwp9Cgoub3JkZXItYm94IHVsIGxpIHNwYW4uZnJlZXsKCWNvbG9yOiM3Nzc3Nzc7Cglmb250LXNpemU6MTZweDsKfQoKLm9yZGVyLWJveCB1bCBsaTpsYXN0LWNoaWxkewoJYm9yZGVyLWJvdHRvbTpub25lOwp9CgoucGF5bWVudC1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6MjBweDsKCWJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsKfQoKLnBheW1lbnQtYm94IC51cHBlci1ib3h7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXBhZGRpbmc6MTVweCAzNXB4OwoJYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2I3YjdiNzsKfQoKCi5wYXltZW50LW9wdGlvbnN7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi10b3A6MjBweDsKCW1hcmdpbi1ib3R0b206MjBweDsJCn0KCi5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpewoJcG9zaXRpb246cmVsYXRpdmU7CgltYXJnaW4tYm90dG9tOjEwcHg7CQp9CgoucGF5bWVudC1ib3ggLnBheW1lbnQtb3B0aW9ucyBsaSAucmFkaW8tb3B0aW9uewoJcG9zaXRpb246cmVsYXRpdmU7CQkKfQoKLnBheW1lbnQtYm94IC5wYXltZW50LW9wdGlvbnMgbGkgLnJhZGlvLW9wdGlvbiBsYWJlbHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7CglwYWRkaW5nLWxlZnQ6MzBweDsKCWZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKCWxldHRlci1zcGFjaW5nOjFweDsKCWNvbG9yOiMzMzMzMzM7CgljdXJzb3I6cG9pbnRlcjsKCWZvbnQtc2l6ZToxOHB4Owp9CgoucGF5bWVudC1ib3ggLnBheW1lbnQtb3B0aW9ucyBsaSAucmFkaW8tb3B0aW9uIGxhYmVsIHN0cm9uZ3sKfQoKLnBheW1lbnQtYm94IC5wYXltZW50LW9wdGlvbnMgbGkgLnJhZGlvLW9wdGlvbiBpbnB1dFt0eXBlPSJyYWRpbyJdewoJcG9zaXRpb246YWJzb2x1dGU7CglsZWZ0OjBweDsKCXRvcDozcHg7CQp9CgoucGF5bWVudC1ib3ggLnBheW1lbnQtb3B0aW9ucyBsaSAucmFkaW8tb3B0aW9uIGxhYmVsIC5zbWFsbC10ZXh0ewoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJbGV0dGVyLXNwYWNpbmc6MHB4OwoJdGV4dC10cmFuc2Zvcm06bm9uZTsKCWZvbnQtd2VpZ2h0Om5vcm1hbDsKCWZvbnQtc2l6ZToxNHB4OwoJY29sb3I6Izc3Nzc3NzsKCWxpbmUtaGVpZ2h0OjEuOGVtOwoJcGFkZGluZzoxNXB4IDIwcHg7CgltYXJnaW4tdG9wOjIwcHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNlZGVkZWQ7Cn0KCi5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpIC5yYWRpby1vcHRpb24gbGFiZWwgLnNtYWxsLXRleHQ6YmVmb3JlewoJcG9zaXRpb246YWJzb2x1dGU7Cgljb250ZW50OicnOwoJbGVmdDozMHB4OwoJdG9wOi0xM3B4OwoJYm9yZGVyLWxlZnQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7Cglib3JkZXItcmlnaHQ6IDE1cHggc29saWQgdHJhbnNwYXJlbnQ7Cglib3JkZXItYm90dG9tOiAxNXB4IHNvbGlkICNlZGVkZWQ7Cn0KCi5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpIC5yYWRpby1vcHRpb24gbGFiZWwgaW1newoJcG9zaXRpb246cmVsYXRpdmU7CglkaXNwbGF5OmJsb2NrOwoJbWF4LXdpZHRoOjEwMCU7CglwYWRkaW5nLWxlZnQ6MzBweDsJCgltYXJnaW4tdG9wOjIwcHg7Cn0KCi5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpIC5yYWRpby1vcHRpb24gLndoYXQtcGF5cGFsbHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCWNvbG9yOiM3Nzc3Nzc7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjcwMDsKCW1hcmdpbi1sZWZ0OjEyMHB4OwoJbWFyZ2luLXRvcDoxMHB4Owp9CgoucGF5bWVudC1ib3ggLmxvd2VyLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJcGFkZGluZzoxNXB4IDE1cHg7Cn0KCi5wYXltZW50LWJveCAubG93ZXItYm94IC5idG4tc3R5bGUtb25lewogICAgZm9udC1zaXplOiAxOHB4OwogICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKICAgIHBhZGRpbmc6IDhweCAxOXB4OwogICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7Cn0KCi8qIEJsYWcgQ2F0ICovCgouY2F0ZWdvcmllcy13aWRnZXQgLmJsb2ctY2F0ewoJcG9zaXRpb246cmVsYXRpdmU7Cn0KCi5jYXRlZ29yaWVzLXdpZGdldCAuYmxvZy1jYXQgbGl7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmNhdGVnb3JpZXMtd2lkZ2V0IC5ibG9nLWNhdCBsaSBhewoJcG9zaXRpb246cmVsYXRpdmU7Cgljb2xvcjojNDQ0NDQ0OwoJcGFkZGluZzoxNXB4IDBweDsKCWRpc3BsYXk6YmxvY2s7Cglmb250LXNpemU6MTZweDsKCXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cglib3JkZXItYm90dG9tOjFweCBkYXNoZWQgI2NjY2NjYzsKfQoKLmNhdGVnb3JpZXMtd2lkZ2V0IC5ibG9nLWNhdCBsaSBhOmhvdmVyewoJY29sb3I6I2MxMjgyYTsKfQoKLmNhdGVnb3JpZXMtd2lkZ2V0IC5ibG9nLWNhdCBsaTpsYXN0LWNoaWxkIGF7Cglib3JkZXItYm90dG9tOm5vbmU7Cn0KCi5jYXRlZ29yaWVzLXdpZGdldCAuYmxvZy1jYXQgbGkgYSBzcGFuewoJcG9zaXRpb246YWJzb2x1dGU7CglyaWdodDowcHg7Cn0KCi8qUG9zdCBXaWRnZXQqLwoKLnNpZGViYXIgLnBvcHVsYXItcG9zdHMtdHdvIC5wb3N0ewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTRweDsKCWNvbG9yOiM2NjY2NjY7CglwYWRkaW5nOjBweCAwcHg7CglwYWRkaW5nLWxlZnQ6OTVweDsKCW1pbi1oZWlnaHQ6MTAwcHg7CgltYXJnaW4tYm90dG9tOjMwcHg7Cglib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkZGRkOwp9Cgouc2lkZWJhciAucG9wdWxhci1wb3N0cy10d28gLnBvc3Q6bGFzdC1jaGlsZHsKCW1hcmdpbi1ib3R0b206MHB4OwoJYm9yZGVyLWJvdHRvbTpub25lOwoJbWluLWhlaWdodDphdXRvOwp9Cgouc2lkZWJhciAucG9wdWxhci1wb3N0cy10d28gLnBvc3QgLnBvc3QtdGh1bWJ7CgkgcG9zaXRpb246YWJzb2x1dGU7CgkgbGVmdDowcHg7CgkgdG9wOjBweDsKCSB3aWR0aDo3NXB4Owp9Cgouc2lkZWJhciAucG9wdWxhci1wb3N0cy10d28gLnBvc3QgLnBvc3QtdGh1bWIgLm92ZXJsYXktYm94ewoJcG9zaXRpb246IGFic29sdXRlOwogICAgY29udGVudDogJyc7CiAgICBsZWZ0OiAwcHg7CiAgICB0b3A6IDBweDsKICAgIHdpZHRoOiAxMDAlOwogICAgaGVpZ2h0OiAxMDAlOwogICAgZGlzcGxheTogYmxvY2s7CiAgICBjb2xvcjogI2MxMjgyYTsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIG9wYWNpdHk6IDA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgLW1vei10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgLW1zLXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAtby10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSw1MSw1MSwwLjcwKTsKfQoKLnNpZGViYXIgLnBvcHVsYXItcG9zdHMtdHdvIC5wb3N0IC5wb3N0LXRodW1iIC5vdmVybGF5LWJveCAuZmF7Cgl0b3A6IDUwJTsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1hcmdpbi10b3A6IC0xMnB4OwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5zaWRlYmFyIC5wb3B1bGFyLXBvc3RzLXR3byAucG9zdDpob3ZlciAucG9zdC10aHVtYiAub3ZlcmxheS1ib3h7CglvcGFjaXR5OjE7Cn0KCi5zaWRlYmFyIC5wb3B1bGFyLXBvc3RzLXR3byAucG9zdCAucG9zdC10aHVtYiBpbWd7CglkaXNwbGF5OmJsb2NrOwoJd2lkdGg6MTAwJTsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2lkZWJhciAucG9wdWxhci1wb3N0cy10d28gLnBvc3QgLnRleHR7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRvcDowcHg7Cglmb250LXNpemU6MThweDsKCW1hcmdpbjowcHggMHB4IDBweDsKCWZvbnQtd2VpZ2h0OjQwMDsKCWNvbG9yOiMzMzMzMzM7CglsaW5lLWhlaWdodDoxLjVlbTsKCXRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7Cglmb250LWZhbWlseTogJ09zd2FsZCcsIHNhbnMtc2VyaWY7Cn0KCi5zaWRlYmFyIC5wb3B1bGFyLXBvc3RzLXR3byAucG9zdCAudGV4dCBhewoJY29sb3I6IzMzMzMzMzsKCXRyYW5zaXRpb246YWxsIDAuM3MgZWFzZTsKCS1tb3otdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwoJLW8tdHJhbnNpdGlvbjphbGwgMC4zcyBlYXNlOwp9Cgouc2lkZWJhciAucG9wdWxhci1wb3N0cy10d28gLnBvc3QgYTpob3ZlcnsKCWNvbG9yOiNjMTI4MmE7Cn0KCi5zaWRlYmFyIC5wb3B1bGFyLXBvc3RzLXR3byAucG9zdC1pbmZvewoJcG9zaXRpb246cmVsYXRpdmU7Cglmb250LXNpemU6MTRweDsKCWNvbG9yOiM3Nzc3Nzc7Cglmb250LXdlaWdodDo0MDA7CgltYXJnaW4tdG9wOjRweDsKfQoKLmxvZ2luLWZvcm17Cglwb3NpdGlvbjpyZWxhdGl2ZTsKfQoKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MTJweDsKfQoKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXA6bnRoLWNoaWxkKDIpewoJbWFyZ2luLWJvdHRvbTozMHB4Owp9CgoubG9naW4tc2VjdGlvbi5zdHlsZS10d28gLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXA6bnRoLWNoaWxkKDIpewoJbWFyZ2luLWJvdHRvbToxNXB4Owp9CgoubG9naW4tZm9ybSAuZm9ybS1ncm91cCBsYWJlbHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzMzMzMzMzsKCWZvbnQtd2VpZ2h0OjQwMDsKCWZvbnQtc2l6ZToxNnB4Owp9CgoubG9naW4tZm9ybSAuZm9ybS1ncm91cC5uby1tYXJnaW57CgltYXJnaW4tYm90dG9tOjBweDsKfQoKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdLAoubG9naW4tZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJwYXNzd29yZCJdLAoubG9naW4tZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZWwiXSwKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0iZW1haWwiXXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTpibG9jazsKCXdpZHRoOjEwMCU7CglsaW5lLWhlaWdodDoyOHB4OwoJcGFkZGluZzoxMHB4IDIwcHg7CgloZWlnaHQ6NTBweDsKCWZvbnQtc2l6ZToxNHB4OwoJYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOwoJLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1zLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAzMDBtcyBlYXNlOwoJdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKfQoKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0idGV4dCJdOmZvY3VzLAoubG9naW4tZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJwYXNzd29yZCJdOmZvY3VzLAoubG9naW4tZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZWwiXTpmb2N1cywKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0iZW1haWwiXTpmb2N1cywKLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXAgc2VsZWN0OmZvY3VzLAoubG9naW4tZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYTpmb2N1c3sKCWJvcmRlci1jb2xvcjojYzEyODJhOwp9CgoubG9naW4tZm9ybSBidXR0b257CgltYXJnaW4tdG9wOjBweDsKCWZvbnQtc2l6ZToxNnB4OwoJZm9udC13ZWlnaHQ6NzAwOwoJYm9yZGVyLXJhZGl1czowcHg7CglwYWRkaW5nOjZweCAxOXB4OwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLmxvZ2luLWZvcm0gLnBzd3sKCXBvc2l0aW9uOnJlbGF0aXZlOwoJY29sb3I6IzMzMzMzMzsKCWZvbnQtc2l6ZToxNnB4Owp9CgovKiBCb3ggVmVyc2lvbiAqLwoKLmJveC12ZXJzaW9uewoJZGlzcGxheTpub25lOwp9CgouY29sb3ItcGFsYXRlIC5ydGwtdmVyc2lvbi5vcHRpb24tYm94ewoJbWFyZ2luLWxlZnQ6MHB4OwoJZmxvYXQ6bm9uZTsKCXBhZGRpbmctdG9wOjI1cHg7Cn0KCi5jb2xvci1wYWxhdGUgLm9wdGlvbi1ib3ggPiBsaXsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCWNvbG9yOiNmZmZmZmY7Cgl3aWR0aDogNDAlOwoJbWFyZ2luOjBweCAzcHg7CgljdXJzb3I6IHBvaW50ZXI7CgltYXJnaW4tYm90dG9tOiA5cHg7CglwYWRkaW5nOjhweCAyMHB4OwoJZm9udC1zaXplOjE0cHg7CglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZDE2MzFiOwoJdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsKfQoKLmNvbG9yLXRyaWdnZXIgLmZhewoJLXdlYmtpdC1hbmltYXRpb246IHJvdGF0aW9uIDJzIGluZmluaXRlIGxpbmVhcjsKfQoKQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0aW9uIHsKCWZyb20gewoJCQktd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOwoJfQoJdG8gewoJCQktd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7Cgl9Cn0KCi8qIFJUTCBDb2RlICovCgoucnRsIC5tYWluLWhlYWRlciAuaGVhZGVyLXRvcCAudG9wLWxlZnR7CglmbG9hdDpyaWdodDsKfQoKLnJ0bCAubWFpbi1oZWFkZXIgLmhlYWRlci11cHBlciAudXBwZXItcmlnaHQsCi5ydGwgLm1haW4taGVhZGVyIC5oZWFkZXItdG9wIC50b3AtcmlnaHR7CglmbG9hdDpsZWZ0Owp9CgoucnRsIC5tYWluLWhlYWRlciAuaGVhZGVyLXVwcGVyIC5sb2dvLWJveHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZmxvYXQ6cmlnaHQ7Cn0KCi5ydGwgLm1haW4taGVhZGVyIC5pbmZvLWJveHsKCXRleHQtYWxpZ246cmlnaHQ7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDo2NXB4Owp9CgoucnRsIC5tYWluLWhlYWRlciAuaW5mby1ib3ggLmljb24tYm94ewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSwKLnJ0bCAubWFpbi1tZW51ewoJZmxvYXQ6cmlnaHQ7Cn0KCi5ydGwgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpOmxhc3QtY2hpbGQ6OmJlZm9yZXsKCWRpc3BsYXk6bm9uZTsKfQoKLnJ0bCAubWFpbi1oZWFkZXIgLmhlYWRlci1sb3dlciAuc2VhcmNoLWJveC1vdXRlciwKLnJ0bCAubWFpbi1oZWFkZXIgLm9wdGlvbnMtYm94IC5ncmlkLWJveCwKLnJ0bCAubWFpbi1oZWFkZXIgLm9wdGlvbnMtYm94IC5idG4tYm94ewoJZmxvYXQ6cmlnaHQ7Cn0KCi5ydGwgLmludHJvZHVjdGlvbi1zZWN0aW9uIC5pbWFnZS1jb2x1bW4gLmltYWdlIC5wcm9qZWN0cywKLnJ0bCAuaW50cm9kdWN0aW9uLXNlY3Rpb24gLmNvbnRlbnQtY29sdW1uIC5pbm5lci1jb2x1bW4sCi5ydGwgLnNlcnZpY2UtYmxvY2sgLmlubmVyLWJveCwKLnJ0bCAubWFpbi1zbGlkZXIgLnNsaWRlewoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuc2VydmljZS1ibG9jayAuaW5uZXItYm94IGg1OmJlZm9yZSwKLnJ0bCAuc2VydmljZS1ibG9jayAuaW5uZXItYm94IC5iaWctaWNvbnsKCXJpZ2h0OjBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAuY2FsbC10by1hY3Rpb24tc2VjdGlvbiAudGl0bGUtY29sdW1uLAoucnRsIC5pbnRyb2R1Y3Rpb24tc2VjdGlvbiAuaW1hZ2UtY29sdW1uewoJb3JkZXI6MjsKfQoKLnJ0bCAuY2FsbC10by1hY3Rpb24tc2VjdGlvbiAuYnRuLWNvbHVtbiwKLnJ0bCAuaW50cm9kdWN0aW9uLXNlY3Rpb24gLmNvbnRlbnQtY29sdW1uewoJb3JkZXI6MTsKfQoKLnJ0bCAubGlzdC1zdHlsZS10aHJlZSBsaXsKCXBhZGRpbmctbGVmdDowcHg7CglwYWRkaW5nLXJpZ2h0OjMwcHg7Cn0KCi5ydGwgLmxpc3Qtc3R5bGUtdGhyZWUgbGk6YmVmb3JlewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC50ZWFtLWJsb2NrIC5pbm5lci1ib3ggLmltYWdlIC5vdmVybGF5LWJveCAuY29udGVudHsKCXBhZGRpbmctcmlnaHQ6MTVweDsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnByb2plY3QtYmxvY2sgLmlubmVyLWJveCAuaW1hZ2UgLm92ZXJsYXktYm94ewoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAucHJvamVjdC1ibG9jayAuaW5uZXItYm94IC5pbWFnZSAub3ZlcmxheS1ib3ggLnNvY2lhbC1ib3ggYXsKCW1hcmdpbi1yaWdodDowcHg7CgltYXJnaW4tbGVmdDoxMnB4Owp9CgoucnRsIC5tYWluLWZvb3RlciAuZm9vdGVyLXdpZGdldCwKLnJ0bCAuY29udGFjdC1zZWN0aW9uIC5jb250ZW50LWNvbHVtbiAuaW5uZXItY29sdW1uLAoucnRsIC5kZWZhdWx0LWZvcm0gLmZvcm0tZ3JvdXAgdGV4dGFyZWEsCi5ydGwgLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5ydGwgLmRlZmF1bHQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJlbWFpbCJdLAoucnRsIC5kZWZhdWx0LWZvcm0gLmZvcm0tZ3JvdXAgc2VsZWN0ewoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAubGlzdC1zdHlsZS10d28gbGl7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDo4MHB4OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAubWFpbi1mb290ZXIgLm5ld3Mtd2lkZ2V0IC5wb3N0IC50aHVtYiwKLnJ0bCAubGlzdC1zdHlsZS10d28gbGkgLmljb257CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cn0KCi5ydGwgLm1haW4tZm9vdGVyIC5uZXdzLXdpZGdldCAucG9zdHsKCXBhZGRpbmctbGVmdDowcHg7CglwYWRkaW5nLXJpZ2h0OjExMHB4Owp9CgoucnRsIC5tYWluLWZvb3RlciAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwgCi5ydGwgLm1haW4tZm9vdGVyIC5uZXdzbGV0dGVyLWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0iZW1haWwiXXsKCXBhZGRpbmctbGVmdDo4NXB4OwoJcGFkZGluZy1yaWdodDoxNXB4OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAubWFpbi1mb290ZXIgLm5ld3NsZXR0ZXItZm9ybSAuZm9ybS1ncm91cCBidXR0b257CglsZWZ0OjBweDsKCXJpZ2h0OmF1dG87Cn0KCi5ydGwgLnNvY2lhbC1pY29uLW9uZSAudGl0bGV7CgltYXJnaW4tcmlnaHQ6MHB4Owp9CgoucnRsIC5tYWluLWZvb3RlciAuZm9vdGVyLWJvdHRvbSAuZm9vdGVyLW5hdiBsaXsKCWZsb2F0OnJpZ2h0Owp9CgoucnRsIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IHVsewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAubWFpbi1tZW51IC5uYXZpZ2F0aW9uID4gbGkgPiB1bCA+IGxpLmRyb3Bkb3duID4gYTphZnRlcnsKCWxlZnQ6MTBweDsKCXJpZ2h0OmF1dG87Cgl0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7Cn0KCi5ydGwgLm1haW4tbWVudSAubmF2aWdhdGlvbiA+IGxpID4gdWwgPiBsaSA+IHVsewoJcmlnaHQ6MTAwJTsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAuc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5zb2NpYWwtYm94LAoucnRsIC5tYWluLW1lbnUgLm5hdmlnYXRpb24gPiBsaSA+IC5tZWdhLW1lbnUgLm1lZ2EtbWVudS1iYXJ7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5zaWRlYmFyLWluZm8tY29udGVudHMgLmNvbnRlbnQtaW5uZXIgLnNvY2lhbC1ib3ggbGl7CgltYXJnaW4tbGVmdDoxMHB4OwoJbWFyZ2luLXJpZ2h0OjBweDsKfQoKLnJ0bCAubWFpbi1oZWFkZXIuaGVhZGVyLXN0eWxlLXR3byAub3B0aW9ucy1ib3h7CglsZWZ0OjBweDsKCXJpZ2h0OmF1dG87Cn0KCi5ydGwgLmhlYWRlci1zdHlsZS10d28gLmhlYWRlci11cHBlciAuaW5uZXItY29udGFpbmVyIC5sb2dvLWJveHsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5tYWluLWhlYWRlciAuaGVhZGVyLXRvcC10d28gLnNvY2lhbC1uYXZ7CglsZWZ0OjIwcHg7CglyaWdodDphdXRvOwoJZGlzcGxheTpub25lOwp9CgoucnRsIC5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbiwKLnJ0bCAubWFpbi1zbGlkZXItdHdvIC5jb250ZW50LWJveGVkLAoucnRsIC5zaWRlYmFyLWluZm8tY29udGVudHMgLmNvbnRlbnQtaW5uZXIgLmNvbnRhY3QtaW5mbywKLnJ0bCAuc2lkZWJhci1pbmZvLWNvbnRlbnRzIC5jb250ZW50LWlubmVyIC5jb250ZW50LWJveHsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLmxpc3Qtc3R5bGUtb25lIGxpewoJcGFkZGluZy1sZWZ0OjBweDsKCXBhZGRpbmctcmlnaHQ6MzRweDsKfQoKLnJ0bCAubGlzdC1zdHlsZS1vbmUgbGkgLmljb257CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cn0KCi5ydGwgLm1haW4tc2xpZGVyLXR3byAubGluay1ib3ggLnRoZW1lLWJ0bnsKCW1hcmdpbi1yaWdodDowcHg7CgltYXJnaW4tbGVmdDoyMHB4Owp9CgoucnRsIC5jYWxsLXRvLWFjdGlvbi1zZWN0aW9uIC50aXRsZS1jb2x1bW4gLmNvbnRlbnR7CglwYWRkaW5nLXJpZ2h0OjU1cHg7CglwYWRkaW5nLWxlZnQ6MHB4OwoJYm9yZGVyLWxlZnQ6MHB4OwoJdGV4dC1hbGlnbjpyaWdodDsKCWJvcmRlci1yaWdodDo1cHggc29saWQgIzMyNDFmZjsKfQoKLnJ0bCAuY2FsbC10by1hY3Rpb24tc2VjdGlvbiAuYnRuLWNvbHVtbiAuaW5uZXItY29sdW1uewoJdGV4dC1hbGlnbjpsZWZ0Owp9CgoucnRsIC5mbHVpZC1zZWN0aW9uLW9uZSAuY29udGVudC1jb2x1bW4gLmJ0bi1ib3ggLnRoZW1lLWJ0bnsKCWZsb2F0OnJpZ2h0OwoJbWFyZ2luLXJpZ2h0OjBweDsKCW1hcmdpbi1sZWZ0OjI1cHg7Cn0KCi5ydGwgLnNraWxscyAuc2tpbGwtaXRlbSAuc2tpbGwtaGVhZGVyIC5za2lsbC10aXRsZXsKCWZsb2F0OnJpZ2h0Owp9CgoucnRsIC5za2lsbHMgLnNraWxsLWl0ZW0gLnNraWxsLWhlYWRlciAuc2tpbGwtcGVyY2VudGFnZXsKCWZsb2F0OmxlZnQ7Cn0KCi5ydGwgLmZhY3QtY291bnRlci10d28gLmNvdW50LW91dGVyewoJcGFkZGluZy1sZWZ0OjBweDsKCXBhZGRpbmctcmlnaHQ6MTAwcHg7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5mYWN0LWNvdW50ZXItdHdvIC5jb2x1bW4gLmlubmVyIC5pY29uewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5uZXdzLWJsb2NrLXR3byAuaW5uZXItYm94IC5jb250ZW50LWJveCBoNCwKLnJ0bCAucHJvamVjdC1ibG9jay10d28gLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLm1haW4taGVhZGVyIC5oZWFkZXItdG9wLXRocmVlIC50b3AtbGVmdCAudGV4dCwKLnJ0bCAubWFpbi1oZWFkZXIgLmhlYWRlci10b3AtdGhyZWUgLnRvcC1sZWZ0ewoJd2lkdGg6MTAwJTsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLmhlYWRlci1zdHlsZS10aHJlZSAuaGVhZGVyLWxvd2VyIC5pbm5lci1jb250YWluZXIgLmxvZ28tYm94ewoJZmxvYXQ6cmlnaHQ7Cn0KCi5ydGwgLmhlYWRlci1zdHlsZS10aHJlZSAuaGVhZGVyLWxvd2VyIC5pbm5lci1jb250YWluZXI6YmVmb3JlewoJcmlnaHQ6MHB4OwoJbGVmdDo5NXB4Owp9CgoucnRsIC5tYWluLXNsaWRlci10aHJlZSAuY29udGVudC1ib3hlZHsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLm1haW4tc2xpZGVyLXRocmVlIC5zb2NpYWwtbmF2ewoJcmlnaHQ6MzBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAubWFpbi1zbGlkZXItdGhyZWUgLnNsaWRlOmJlZm9yZXsKCXJpZ2h0OjBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAubWFpbi1zbGlkZXItdGhyZWUgLmxpbmstYm94IC50aGVtZS1idG57CgltYXJnaW4tcmlnaHQ6MHB4OwoJbWFyZ2luLWxlZnQ6MjBweDsKfQoKLnJ0bCAubWFpbi1zbGlkZXItdGhyZWUgLnRleHQtYm94ZWR7CglyaWdodDo1MCU7CglsZWZ0OmF1dG87Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC53ZS1hcmUtc2VjdGlvbiAudGl0bGUtY29sdW1uewoJb3JkZXI6MjsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLndlLWFyZS1zZWN0aW9uIC5jb250ZW50LWNvbHVtbnsKCW9yZGVyOjE7Cn0KCi5ydGwgLmZvb3Rlci1zdHlsZS10d28gLnVwcGVyLWJveCAudGl0bGUtY29sdW1uLAoucnRsIC5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4sCi5ydGwgLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5ibG9ja3MtY29sdW1uewoJb3JkZXI6MjsKfQoKLnJ0bCAuZm9vdGVyLXN0eWxlLXR3byAudXBwZXItYm94IC5mb3JtLWNvbHVtbiwKLnJ0bCAuY29udGFjdC1zZWN0aW9uLXR3byAuZm9ybS1jb2x1bW4sCi5ydGwgLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbnsKCW9yZGVyOjE7Cn0KCi5ydGwgLmZvb3Rlci1zdHlsZS10d28gLnVwcGVyLWJveCAudGl0bGUtY29sdW1uIC5pbm5lci1jb2x1bW4sCi5ydGwgLmZlYXR1cmVkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbiAuaW5uZXItY29sdW1uewoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuZmVhdHVyZS1ibG9jay10d28gLmlubmVyLWJveHsKCXBhZGRpbmctbGVmdDowcHg7CglwYWRkaW5nLXJpZ2h0OjEwMHB4Owp9CgoucnRsIC5mZWF0dXJlLWJsb2NrLXR3byAuaW5uZXItYm94IC5pY29uLWJveHsKCXJpZ2h0OjBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAuZmVhdHVyZWQtc2VjdGlvbi10d28gLmNvbnRlbnQtY29sdW1uIC5saW5rLWJveCAudmlkZW8tYm94ewoJZmxvYXQ6cmlnaHQ7CgltYXJnaW4tcmlnaHQ6MHB4OwoJbWFyZ2luLWxlZnQ6NTBweDsKfQoKLnJ0bCAuc2VydmljZS1ibG9jay1mb3VyIC5pbm5lci1ib3ggLmxvd2VyLWJveCAubG93ZXItaW5uZXJ7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDo1NnB4OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuc2VydmljZS1ibG9jay1mb3VyIC5pbm5lci1ib3ggLmxvd2VyLWJveCAubG93ZXItaW5uZXIgLmljb257CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cn0KCi5ydGwgLmZsdWlkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbiAuY29sdW1uLWxpc3QgbGk6YmVmb3JlewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwoJdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpOwp9CgoucnRsIC5mbHVpZC1zZWN0aW9uLXR3byAuaW1hZ2UtY29sdW1uewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5mbHVpZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW57CglmbG9hdDpsZWZ0Owp9CgoucnRsIC5mbHVpZC1zZWN0aW9uLXR3byAuY29udGVudC1jb2x1bW4gLmlubmVyLWNvbHVtbnsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLmZsdWlkLXNlY3Rpb24tdHdvIC5jb250ZW50LWNvbHVtbiAuY29sdW1uLWxpc3QgbGl7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDo0MHB4Owp9CgoucnRsIC5mbHVpZC1zZWN0aW9uLXR3byAuaW5mby1saXN0IGxpewoJYm9yZGVyOm5vbmU7CglwYWRkaW5nLWxlZnQ6MHB4OwoJdGV4dC1hbGlnbjpyaWdodDsKCXBhZGRpbmctcmlnaHQ6MTI1cHg7Cn0KCi5ydGwgLmNvbnRhY3Qtc2VjdGlvbi10d28gLmltYWdlLWNvbHVtbiAubnVtYmVyLWJveCAuaWNvbiwKLnJ0bCAuZmx1aWQtc2VjdGlvbi10d28gLmluZm8tbGlzdCBsaSAuaWNvbnsKCXJpZ2h0OjBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAuYWNjb3JkaW9uLWJveCAuYmxvY2sgLmNvbnRlbnQsCi5ydGwgLmZvb3Rlci1zdHlsZS10d28gLmZvb3Rlci1ib3R0b20gLmNvcHlyaWdodCwKLnJ0bCAuZm9vdGVyLXN0eWxlLXR3byAuZm9vdGVyLWxpc3QsCi5ydGwgLmNvbnRhY3Qtc2VjdGlvbi10d28gLmZvcm0tY29sdW1uIC5pbm5lci1jb2x1bW57Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5jb250YWN0LXNlY3Rpb24tdHdvIC5pbWFnZS1jb2x1bW4gLm51bWJlci1ib3ggLmJveC1pbm5lcnsKCXBhZGRpbmctbGVmdDowcHg7Cgl0ZXh0LWFsaWduOnJpZ2h0OwoJcGFkZGluZy1yaWdodDoxMDBweDsKfQoKLnJ0bCAuZm9vdGVyLXN0eWxlLXR3byAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGJ1dHRvbnsKCWxlZnQ6MHB4OwoJcmlnaHQ6YXV0bzsKfQoKLnJ0bCAuZm9vdGVyLXN0eWxlLXR3byAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwKLnJ0bCAuZm9vdGVyLXN0eWxlLXR3byAubmV3c2xldHRlci1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9ImVtYWlsIl17Cgl0ZXh0LWFsaWduOnJpZ2h0OwoJcGFkZGluZy1yaWdodDoyMHB4Owp9CgoucnRsIC5mb290ZXItc3R5bGUtdHdvIC5pbmZvLWxpc3QgbGl7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDozNXB4OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuZm9vdGVyLXN0eWxlLXR3byAuaW5mby1saXN0IGxpIC5pY29uewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5mb290ZXItc3R5bGUtdHdvIC5mb290ZXItYm90dG9tIC5mb290ZXItbmF2IGxpewoJZmxvYXQ6cmlnaHQ7Cn0KCi5ydGwgLnBhZ2UtdGl0bGUgLnB1bGwtbGVmdHsKCWZsb2F0OnJpZ2h0OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAucGFnZS10aXRsZSAucHVsbC1yaWdodHsKCWZsb2F0OmxlZnQ7Cn0KCi5ydGwgLnBhZ2UtYnJlYWRjcnVtYiBsaXsKCWZsb2F0OnJpZ2h0OwoJbWFyZ2luLXJpZ2h0OjBweDsKCXBhZGRpbmctcmlnaHQ6MHB4OwoJcGFkZGluZy1sZWZ0OjE1cHg7CgltYXJnaW4tbGVmdDoxMHB4OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAucGFnZS1icmVhZGNydW1iIGxpOmFmdGVyewoJbGVmdDowcHg7Cgl0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7Cn0KCi5ydGwgLnByaWNlLWJsb2NrIC5pbm5lci1ib3ggLmxvd2VyLWJveCAucHJpY2UtbGlzdCBsaXsKCXRleHQtYWxpZ246cmlnaHQ7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDoyNXB4Owp9CgoucnRsIC5wcmljZS1ibG9jayAuaW5uZXItYm94IC5sb3dlci1ib3ggLnByaWNlLWxpc3QgbGk6YmVmb3JlewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5wcmljZS1ibG9jayAuaW5uZXItYm94IC5yZWNvbWVuZHsKCXBhZGRpbmctbGVmdDowcHg7CglwYWRkaW5nLXJpZ2h0OjMwcHg7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5wcmljZS1ibG9jayAuaW5uZXItYm94IC5yZWNvbWVuZDpiZWZvcmV7CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cn0KCi5ydGwgLmFjY29yZGlvbi1ib3ggLmJsb2NrIC5hY2MtYnRuewoJcGFkZGluZzoxM3B4IDg1cHggMTNweCA1MHB4OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuYWNjb3JkaW9uLWJveCAuYmxvY2sgLmljb24tb3V0ZXJ7CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cglib3JkZXItcmlnaHQ6bm9uZTsKCWJvcmRlci1sZWZ0OjFweCBzb2xpZCAjZDdkN2Q3Owp9CgoucnRsIC5jb21taW5nLXNvb24gLmVtYWlsZWQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJzdWJtaXQiXSwKLnJ0bCAuY29tbWluZy1zb29uIC5lbWFpbGVkLWZvcm0gYnV0dG9uewoJbGVmdDo1cHg7CglyaWdodDphdXRvOwp9CgoucnRsIC5jb21taW5nLXNvb24gLmVtYWlsZWQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5ydGwgLmNvbW1pbmctc29vbiAuZW1haWxlZC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRlbCJdLAoucnRsIC5jb21taW5nLXNvb24gLmVtYWlsZWQtZm9ybSAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJlbWFpbCJdLAoucnRsIC5jb21taW5nLXNvb24gLmVtYWlsZWQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYXsKCXBhZGRpbmctbGVmdDoxODVweDsKCXBhZGRpbmctcmlnaHQ6MjBweDsKfQoKLnJ0bCAuc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29udGVudC1zaWRlewoJb3JkZXI6MjsKfQoKLnJ0bCAuc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuc2lkZWJhci1zaWRlewoJb3JkZXI6MTsKfQoKLnJ0bCAuYmxvZy1jYXQtdHdvIGxpIGEsCi5ydGwgLnNpZGViYXItdGl0bGUtdHdvLAoucnRsIC5zZXJ2aWNlLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50LAoucnRsIC5icm9jaHVyZS1ib3ggLmlubmVyewoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuc2lkZWJhciAuc2VhcmNoLWJveCAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5ydGwgLnNpZGViYXIgLnNlYXJjaC1ib3ggLmZvcm0tZ3JvdXAgaW5wdXRbdHlwZT0ic2VhcmNoIl17CglwYWRkaW5nOjEwcHggMTVweCAxMHB4IDYwcHg7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5ibG9nLWNhdC10d28gbGkgYSBzcGFuewoJbGVmdDoyMHB4OwoJcmlnaHQ6YXV0bzsKfQoKLnJ0bCAuc2lkZWJhciAuc2VhcmNoLWJveCAuZm9ybS1ncm91cCBidXR0b257CglsZWZ0OjBweDsKCXJpZ2h0OmF1dG87Cn0KCi5ydGwgLm5ld3MtYmxvY2suc3R5bGUtdGhyZWUgLmlubmVyLWJveCAubG93ZXItY29udGVudHsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnBvcHVsYXItcG9zdHMgLnBvc3R7CglwYWRkaW5nLWxlZnQ6MHB4OwoJcGFkZGluZy1yaWdodDoxMTBweDsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnBvcHVsYXItcG9zdHMgLnBvc3QgLnBvc3QtdGh1bWJ7CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cn0KCi5ydGwgLnBvcHVsYXItcG9zdHMgLnBvc3QtaW5mb3sKCXBhZGRpbmctbGVmdDowcHg7CglwYWRkaW5nLXJpZ2h0OjIwcHg7Cn0KCi5ydGwgLnBvcHVsYXItcG9zdHMgLnBvc3QtaW5mbzpiZWZvcmV7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXJpZ2h0OjBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAuc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuZ3JvdXAtdGl0bGUgaDQsCi5ydGwgLmJsb2ctZGV0YWlsIC5pbm5lci1ib3ggLmxvd2VyLWNvbnRlbnQsCi5ydGwgLnRhZ3N7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5zaWRlYmFyIC50YWdzIGF7CgltYXJnaW4tcmlnaHQ6MHB4OwoJbWFyZ2luLWxlZnQ6NXB4Owp9CgoucnRsIC5ibG9nLWRldGFpbCAuaW5uZXItYm94IC5sb3dlci1jb250ZW50IGJsb2NrcXVvdGUgLnF1b3RlLWF1dGhvcnsKCWxlZnQ6MzVweDsKCXJpZ2h0OmF1dG87Cn0KCi5ydGwgLmJsb2ctZGV0YWlsIC5wb3N0LXNoYXJlLW9wdGlvbnMgLnRhZ3N7CglmbG9hdDpyaWdodDsKfQoKLnJ0bCAuYmxvZy1kZXRhaWwgLnBvc3Qtc2hhcmUtb3B0aW9ucyAuc29jaWFsLWJveHsKCWZsb2F0OmxlZnQ7Cn0KCi5ydGwgLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnR7CglwYWRkaW5nLXJpZ2h0OjE2MHB4OwoJcGFkZGluZy1sZWZ0OjBweDsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IC5hdXRob3ItdGh1bWJ7CglyaWdodDowcHg7CglsZWZ0OmF1dG87Cn0KCi5ydGwgLnNpZGViYXItcGFnZS1jb250YWluZXIgLmNvbW1lbnRzLWFyZWEgLmNvbW1lbnQtYm94IHN0cm9uZ3sKCWZsb2F0OnJpZ2h0OwoJbWFyZ2luLWxlZnQ6MThweDsKfQoKLnJ0bCAuc2lkZWJhci1wYWdlLWNvbnRhaW5lciAuY29tbWVudHMtYXJlYSAuY29tbWVudC1ib3ggLnRoZW1lLWJ0bnsKCWxlZnQ6NDBweDsKCXJpZ2h0OmF1dG87Cn0KCi5ydGwgLmNhcnQtc2VjdGlvbiAudG90YWxzLXRhYmxlIGxpIGgzLAoucnRsIC5zaGlwcGluZy1ibG9jayAuaW5uZXItYm94LAoucnRsIC5zaGlwcGluZy1mb3JtIC5mb3JtLWdyb3VwIGlucHV0LAoucnRsIC5jYXJ0LXNlY3Rpb24gLmFwcGx5LWNvdXBvbiAuZm9ybS1ncm91cCBpbnB1dFt0eXBlPSJ0ZXh0Il0sCi5ydGwgLnNob3AtY29tbWVudC1mb3JtIC5mb3JtLWdyb3VwIGlucHV0LAoucnRsIC5zaG9wLWNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYSwKLnJ0bCAuc2hvcC1zaW5nbGUgLnByb2R1Y3QtZGV0YWlscyAucHJvZC10YWJzLAoucnRsIC5zaG9wLWl0ZW0gLmlubmVyLWJveCAubG93ZXItY29udGVudCBoMywKLnJ0bCAuY2F0ZWdvcmllcy13aWRnZXQgLmJsb2ctY2F0IGxpIGEsCi5ydGwgLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cDpsYXN0LWNoaWxkLAoucnRsIC5jb21tZW50LWZvcm0gLmZvcm0tZ3JvdXAgaW5wdXQsCi5ydGwgLmNvbW1lbnQtZm9ybSAuZm9ybS1ncm91cCB0ZXh0YXJlYXsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnNpZGViYXIgLnBvcHVsYXItcG9zdHMtdHdvIC5wb3N0ewoJcGFkZGluZy1sZWZ0OjBweDsKCXBhZGRpbmctcmlnaHQ6OTVweDsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnNpZGViYXIgLnBvcHVsYXItcG9zdHMtdHdvIC5wb3N0IC5wb3N0LXRodW1iewoJcmlnaHQ6MHB4OwoJbGVmdDphdXRvOwp9CgoucnRsIC5jYXRlZ29yaWVzLXdpZGdldCAuYmxvZy1jYXQgbGkgYSBzcGFuewoJbGVmdDowcHg7CglyaWdodDphdXRvOwp9CgoucnRsIC5wcm9kdWN0LWRldGFpbHMgLmltYWdlLWNvbHVtbnsKCW9yZGVyOjI7Cn0KCi5ydGwgLnByb2R1Y3QtZGV0YWlscyAuaW5mby1jb2x1bW57CglvcmRlcjoxOwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAuY2FydC1zZWN0aW9uIC50b3RhbHMtdGFibGUgbGkgLmNvbDpsYXN0LWNoaWxkewoJZmxvYXQ6bGVmdDsKfQoKLnJ0bCAuY2FydC1zZWN0aW9uIC50b3RhbHMtdGFibGUgbGkgLmNvbDpmaXJzdC1jaGlsZHsKCWZsb2F0OnJpZ2h0OwoJdGV4dC1hbGlnbjpyaWdodDsKfQoKLnJ0bCAub3JkZXItYm94LAoucnRsIC5jaGVja291dC1mb3JtLAoucnRsIC5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpIC5yYWRpby1vcHRpb24gbGFiZWwgLnNtYWxsLXRleHQsCi5ydGwgLmNoZWNrb3V0LWZvcm0gaW5wdXQsCi5ydGwgLmNoZWNrb3V0LWZvcm0gdGV4dGFyZWEsCi5ydGwgLmxvZ2luLWZvcm0gLmZvcm0tZ3JvdXAsCi5ydGwgLmNvbnRhY3QtcGFnZS1zZWN0aW9uIC5pbmZvLWNvbHVtbiAuaW5uZXItY29sdW1uLAoucnRsIC5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpIC5yYWRpby1vcHRpb24sCi5ydGwgLmNvdXBvbi1mb3JtIC5mb3JtLWdyb3VwIGlucHV0W3R5cGU9InRleHQiXSwKLnJ0bCAuY2hlY2tvdXQtcGFnZSAuZGVmYXVsdC1saW5rcyBsaXsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnBheW1lbnQtYm94IC5wYXltZW50LW9wdGlvbnMgbGkgLnJhZGlvLW9wdGlvbiBsYWJlbHsKCXBhZGRpbmctbGVmdDowcHg7CglwYWRkaW5nLXJpZ2h0OjMwcHg7Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5wYXltZW50LWJveCAucGF5bWVudC1vcHRpb25zIGxpIC5yYWRpby1vcHRpb24gaW5wdXRbdHlwZT0icmFkaW8iXXsKCXJpZ2h0OjBweDsKCWxlZnQ6YXV0bzsKfQoKLnJ0bCAubWFpbi1zbGlkZXIgLm93bC1kb3RzewoJdG9wOjYwJTsKCWxlZnQ6MzBweDsKCXJpZ2h0OmF1dG87Cn0KCi5ydGwgLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5sb3dlci1jb250ZW50LAoucnRsIC5wcm9qZWN0cy1kZXRhaWwtc2VjdGlvbiAuaW1hZ2UgLnByb2plY3QtaW5mbyAuaW5mby1pbm5lcnsKCXRleHQtYWxpZ246cmlnaHQ7Cn0KCi5ydGwgLnByb2plY3RzLWRldGFpbC1zZWN0aW9uIC5pbWFnZSAucHJvamVjdC1pbmZvewoJbGVmdDozMHB4OwoJcmlnaHQ6YXV0bzsKfQoKCgovKioqIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCUxvZ2luIC8gUmVnaXN0ZXIgU2VjdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKKioqLwoKLnJlZ2lzdGVyLXNlY3Rpb257Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXotaW5kZXg6IDk7CgliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOwoJcGFkZGluZzo2MHB4IDBweCA0MHB4Owp9CgoucmVnaXN0ZXItc2VjdGlvbiAuZm9ybS1jb2x1bW57CgltYXJnaW4tYm90dG9tOjQwcHg7CQp9CgoucmVnaXN0ZXItc2VjdGlvbiAuZm9ybS1jb2x1bW4gLnNlYy10aXRsZXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTozMHB4OwkKfQoKLnJlZ2lzdGVyLXNlY3Rpb24gLmZvcm0tY29sdW1uIC5zZWMtdGl0bGUgaDJ7Cgp9Cgouc3R5bGVkLWZvcm17Cglwb3NpdGlvbjpyZWxhdGl2ZTsJCn0KCi5zdHlsZWQtZm9ybSAuc3VibWl0LXRleHR7Cglmb250LXNpemU6MTVweDsKCWNvbG9yOiM5ZTllOWU7Cglmb250LXdlaWdodDo0MDA7CgltYXJnaW4tdG9wOjEwcHg7Cn0KCi5zdHlsZWQtZm9ybSAuZm9ybS1ncm91cHsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbWFyZ2luLWJvdHRvbTozMHB4OwoJZm9udC1zaXplOjE0cHg7Cgljb2xvcjojODQ4NDg0Owp9CgouY2hlY2tvdXQtc2VjdGlvbiAuc3R5bGVkLWZvcm0gLmZvcm0tZ3JvdXB7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCW1hcmdpbi1ib3R0b206MjBweDsJCn0KCi5zdHlsZWQtZm9ybSAuZm9ybS1ncm91cCAuY2hlY2stYm94ewoJbGluZS1oZWlnaHQ6MjRweDsKCWZvbnQtc2l6ZToxNXB4OwoJZm9udC13ZWlnaHQ6bm9ybWFsOwoJcGFkZGluZy10b3A6NXB4OwoJY29sb3I6IzI3MjcyNzsKfQoKLnN0eWxlZC1mb3JtIC5mb3JtLWdyb3VwIC5jaGVjay1ib3ggbGFiZWx7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCXRvcDotMXB4OwoJZm9udC13ZWlnaHQ6bm9ybWFsOwoJcGFkZGluZzowcHg7Cglmb250LXNpemU6MTVweDsKCWN1cnNvcjpwb2ludGVyOwp9Cgouc3R5bGVkLWZvcm0gLnB1bGwtbGVmdCBsYWJlbCwKLnN0eWxlZC1mb3JtIC5wdWxsLXJpZ2h0IGxhYmVsewoJY3Vyc29yOnBvaW50ZXI7Cn0KCi5zdHlsZWQtZm9ybSAuZm9ybS1ncm91cCAuYWRvbi1pY29uewoJcG9zaXRpb246YWJzb2x1dGU7Cgl0b3A6NTAlOwoJbWFyZ2luLXRvcDotMTBweDsKCXJpZ2h0OjEwcHg7Cgl3aWR0aDoyMHB4OwoJaGVpZ2h0OjIwcHg7CglsaW5lLWhlaWdodDoyMHB4OwoJZm9udC1zaXplOjE1cHg7Cgljb2xvcjojOTk5OTk5OwoJei1pbmRleDoyOwp9Cgouc3R5bGVkLWZvcm0gLmZvcm0tZ3JvdXAgLmZpZWxkLWxhYmVsewoJZGlzcGxheTpibG9jazsKCWNvbG9yOiMyNzI3Mjc7Cgl0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOwoJZm9udC1zaXplOjE2cHg7CgltYXJnaW4tYm90dG9tOjdweDsKCWZvbnQtd2VpZ2h0OjQwMDsKfQoKLnN0eWxlZC1mb3JtIGlucHV0W3R5cGU9InRleHQiXSwKLnN0eWxlZC1mb3JtIGlucHV0W3R5cGU9ImVtYWlsIl0sCi5zdHlsZWQtZm9ybSBpbnB1dFt0eXBlPSJwYXNzd29yZCJdLAouc3R5bGVkLWZvcm0gaW5wdXRbdHlwZT0idGVsIl0sCi5zdHlsZWQtZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXSwKLnN0eWxlZC1mb3JtIGlucHV0W3R5cGU9InVybCJdLAouc3R5bGVkLWZvcm0gc2VsZWN0LAouc3R5bGVkLWZvcm0gdGV4dGFyZWF7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWRpc3BsYXk6YmxvY2s7Cgl3aWR0aDoxMDAlOwoJYmFja2dyb3VuZDojZmZmZmZmOwoJbGluZS1oZWlnaHQ6MzBweDsKCXBhZGRpbmc6OHB4IDIwcHg7CgloZWlnaHQ6NTBweDsKCWJvcmRlcjoxcHggc29saWQgI2Y0ZjRmNDsKCXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgMzAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDMwMG1zIGVhc2U7Cn0KCi5zdHlsZWQtZm9ybSAucmVtZW1iZXItbWV7Cglwb3NpdGlvbjpyZWxhdGl2ZTsKCWNvbG9yOiMyMjIyMjI7Cglmb250LXNpemU6MTZweDsKCWZvbnQtd2VpZ2h0OjUwMDsKfQoKLnNvY2lhbC1saW5rcy10d28gYXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJZGlzcGxheTppbmxpbmUtYmxvY2s7Cglmb250LXNpemU6MTRweDsKCXdpZHRoOjQycHg7CgloZWlnaHQ6NDJweDsKCWxpbmUtaGVpZ2h0OjQycHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsKCWNvbG9yOiNmZmZmZmY7CgliYWNrZ3JvdW5kOiNmYzcyMWU7CgltYXJnaW46MHB4IDBweCAwcHggNXB4OwoJdHJhbnNpdGlvbjphbGwgMC41cyBlYXNlOwoJLW1vei10cmFuc2l0aW9uOmFsbCAwLjVzIGVhc2U7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDAuNXMgZWFzZTsKCS1tcy10cmFuc2l0aW9uOmFsbCAwLjVzIGVhc2U7Cgktby10cmFuc2l0aW9uOmFsbCAwLjVzIGVhc2U7Cn0KCi5zb2NpYWwtbGlua3MtdHdvIGE6aG92ZXJ7CglvcGFjaXR5OjAuODA7Cn0KCi5zb2NpYWwtbGlua3MtdHdvIC5mYWNlYm9va3sKCWJhY2tncm91bmQ6IzNiNTk5ODsJCn0KCi5zb2NpYWwtbGlua3MtdHdvIC50d2l0dGVyewoJYmFja2dyb3VuZDojMzNjY2ZlOwkKfQoKLnNvY2lhbC1saW5rcy10d28gLmdvb2dsZS1wbHVzewoJYmFja2dyb3VuZDojZGQ0YjM5OwkKfQoKLnJ0bCAuc3R5bGVkLWZvcm0gaW5wdXQsCi5ydGwgLnJlZ2lzdGVyLXNlY3Rpb257Cgl0ZXh0LWFsaWduOnJpZ2h0Owp9CgoucnRsIC5zdHlsZWQtZm9ybSAuZm9ybS1ncm91cCAuYWRvbi1pY29uewoJbGVmdDoxMHB4OwoJcmlnaHQ6YXV0bzsKfQoKLnJ0bCAuc2VhcmNoLXBvcHVwIC5zZWFyY2gtZm9ybSBmaWVsZHNldCBpbnB1dFt0eXBlPSJzdWJtaXQiXXsKCXBvc2l0aW9uOnJlbGF0aXZlOwoJbGVmdDowcHg7CglyaWdodDphdXRvOwp9CgoucnRsIC5zZWFyY2gtcG9wdXAgLnNlYXJjaC1mb3JtIGZpZWxkc2V0IGlucHV0W3R5cGU9InNlYXJjaCJdewoJcGFkZGluZzoyMHB4IDIwcHggMjBweCAyMjBweDsKfQoKLnNlYXJjaC1wb3B1cCAuY2xvc2Utc2VhcmNoLnN0eWxlLXR3b3sKCXBvc2l0aW9uOiBhYnNvbHV0ZTsKCXJpZ2h0OiAyNXB4OwoJbGVmdDogYXV0bzsKCWNvbG9yOiNmZmZmZmY7Cgl3aWR0aDphdXRvOwoJaGVpZ2h0OmF1dG87Cgl0b3A6MjVweDsKCW1hcmdpbjowcHg7Cglib3JkZXI6bm9uZTsKCWJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OwoJYm94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7Cgktd2Via2l0LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbW96LXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7CgktbXMtdHJhbnNpdGlvbjphbGwgNTAwbXMgZWFzZTsKCS1vLXRyYW5zaXRpb246YWxsIDUwMG1zIGVhc2U7Cgl0cmFuc2l0aW9uOmFsbCA1MDBtcyBlYXNlOwp9Cgouc2VhcmNoLXBvcHVwIC5jbG9zZS1zZWFyY2guc3R5bGUtdHdvIHNwYW57Cglmb250LXNpemU6MjBweDsKCWNvbG9yOiNmZmZmZmY7Cn0="}},"time_used":42,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":20,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/popper.min.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.698Z","timestamp":1785129412698,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/popper.min.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 6957\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":20498,"size_decoded":7194,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (20322), with CRLF line terminators","md5":"9b1dcd93871ac6da23becaef039b4b16","sha1":"3cf72db9816ea8cf313e6891fac2b9ad810a6fdb","sha256":"5f2a323cdac82cec5be5ee5416fec1b1f2d622c98166677215859af195ed29ad","sha512":"4f8a18119b63c6db95389d643c7951c401e0f933bb8bf8768c017e4a2ab715a494a69f2117b913eca37c1e60dcec02b3b5d5804e52e5083cb1d8e20e063e6e05","ssdeep":"384:25LFrVVVnCQvIR/CFU4hHPV4kdxXvYqo2D75zCx+vI2am3MxGpGTgd/9jt9+Db9H:INVVVnyiU41xXvlD7wx+v0xyGTgnZO9H","tlshash":"f392a2cc3294b06647e791a7a07f960eb2339875650e9410f299f2e97c30ef9913bc79","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-28T09:09:16.694968Z","times_seen":2218,"resource_available":true,"data":"LyoNCiBDb3B5cmlnaHQgKEMpIEZlZGVyaWNvIFppdm9sbyAyMDE4DQogRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlIChsaWNlbnNlIHRlcm1zIGFyZSBhdCBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUKS4NCiAqLyhmdW5jdGlvbihlLHQpeydvYmplY3QnPT10eXBlb2YgZXhwb3J0cyYmJ3VuZGVmaW5lZCchPXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9dCgpOidmdW5jdGlvbic9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKHQpOmUuUG9wcGVyPXQoKX0pKHRoaXMsZnVuY3Rpb24oKXsndXNlIHN0cmljdCc7ZnVuY3Rpb24gZShlKXtyZXR1cm4gZSYmJ1tvYmplY3QgRnVuY3Rpb25dJz09PXt9LnRvU3RyaW5nLmNhbGwoZSl9ZnVuY3Rpb24gdChlLHQpe2lmKDEhPT1lLm5vZGVUeXBlKXJldHVybltdO3ZhciBvPWdldENvbXB1dGVkU3R5bGUoZSxudWxsKTtyZXR1cm4gdD9vW3RdOm99ZnVuY3Rpb24gbyhlKXtyZXR1cm4nSFRNTCc9PT1lLm5vZGVOYW1lP2U6ZS5wYXJlbnROb2RlfHxlLmhvc3R9ZnVuY3Rpb24gbihlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuYm9keTtzd2l0Y2goZS5ub2RlTmFtZSl7Y2FzZSdIVE1MJzpjYXNlJ0JPRFknOnJldHVybiBlLm93bmVyRG9jdW1lbnQuYm9keTtjYXNlJyNkb2N1bWVudCc6cmV0dXJuIGUuYm9keTt9dmFyIGk9dChlKSxyPWkub3ZlcmZsb3cscD1pLm92ZXJmbG93WCxzPWkub3ZlcmZsb3dZO3JldHVybiAvKGF1dG98c2Nyb2xsfG92ZXJsYXkpLy50ZXN0KHIrcytwKT9lOm4obyhlKSl9ZnVuY3Rpb24gcihlKXtpZighZSlyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O2Zvcih2YXIgbz1pZSgxMCk/ZG9jdW1lbnQuYm9keTpudWxsLG49ZS5vZmZzZXRQYXJlbnQ7bj09PW8mJmUubmV4dEVsZW1lbnRTaWJsaW5nOyluPShlPWUubmV4dEVsZW1lbnRTaWJsaW5nKS5vZmZzZXRQYXJlbnQ7dmFyIGk9biYmbi5ub2RlTmFtZTtyZXR1cm4gaSYmJ0JPRFknIT09aSYmJ0hUTUwnIT09aT8tMSE9PVsnVEQnLCdUQUJMRSddLmluZGV4T2Yobi5ub2RlTmFtZSkmJidzdGF0aWMnPT09dChuLCdwb3NpdGlvbicpP3Iobik6bjplP2Uub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50fWZ1bmN0aW9uIHAoZSl7dmFyIHQ9ZS5ub2RlTmFtZTtyZXR1cm4nQk9EWSchPT10JiYoJ0hUTUwnPT09dHx8cihlLmZpcnN0RWxlbWVudENoaWxkKT09PWUpfWZ1bmN0aW9uIHMoZSl7cmV0dXJuIG51bGw9PT1lLnBhcmVudE5vZGU/ZTpzKGUucGFyZW50Tm9kZSl9ZnVuY3Rpb24gZChlLHQpe2lmKCFlfHwhZS5ub2RlVHlwZXx8IXR8fCF0Lm5vZGVUeXBlKXJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dmFyIG89ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORyxuPW8/ZTp0LGk9bz90OmUsYT1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2Euc2V0U3RhcnQobiwwKSxhLnNldEVuZChpLDApO3ZhciBsPWEuY29tbW9uQW5jZXN0b3JDb250YWluZXI7aWYoZSE9PWwmJnQhPT1sfHxuLmNvbnRhaW5zKGkpKXJldHVybiBwKGwpP2w6cihsKTt2YXIgZj1zKGUpO3JldHVybiBmLmhvc3Q/ZChmLmhvc3QsdCk6ZChlLHModCkuaG9zdCl9ZnVuY3Rpb24gYShlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06J3RvcCcsbz0ndG9wJz09PXQ/J3Njcm9sbFRvcCc6J3Njcm9sbExlZnQnLG49ZS5ub2RlTmFtZTtpZignQk9EWSc9PT1ufHwnSFRNTCc9PT1uKXt2YXIgaT1lLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LHI9ZS5vd25lckRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnR8fGk7cmV0dXJuIHJbb119cmV0dXJuIGVbb119ZnVuY3Rpb24gbChlLHQpe3ZhciBvPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sbj1hKHQsJ3RvcCcpLGk9YSh0LCdsZWZ0Jykscj1vPy0xOjE7cmV0dXJuIGUudG9wKz1uKnIsZS5ib3R0b20rPW4qcixlLmxlZnQrPWkqcixlLnJpZ2h0Kz1pKnIsZX1mdW5jdGlvbiBmKGUsdCl7dmFyIG89J3gnPT09dD8nTGVmdCc6J1RvcCcsbj0nTGVmdCc9PW8/J1JpZ2h0JzonQm90dG9tJztyZXR1cm4gcGFyc2VGbG9hdChlWydib3JkZXInK28rJ1dpZHRoJ10sMTApK3BhcnNlRmxvYXQoZVsnYm9yZGVyJytuKydXaWR0aCddLDEwKX1mdW5jdGlvbiBtKGUsdCxvLG4pe3JldHVybiBRKHRbJ29mZnNldCcrZV0sdFsnc2Nyb2xsJytlXSxvWydjbGllbnQnK2VdLG9bJ29mZnNldCcrZV0sb1snc2Nyb2xsJytlXSxpZSgxMCk/b1snb2Zmc2V0JytlXStuWydtYXJnaW4nKygnSGVpZ2h0Jz09PWU/J1RvcCc6J0xlZnQnKV0rblsnbWFyZ2luJysoJ0hlaWdodCc9PT1lPydCb3R0b20nOidSaWdodCcpXTowKX1mdW5jdGlvbiBoKCl7dmFyIGU9ZG9jdW1lbnQuYm9keSx0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxvPWllKDEwKSYmZ2V0Q29tcHV0ZWRTdHlsZSh0KTtyZXR1cm57aGVpZ2h0Om0oJ0hlaWdodCcsZSx0LG8pLHdpZHRoOm0oJ1dpZHRoJyxlLHQsbyl9fWZ1bmN0aW9uIGMoZSl7cmV0dXJuIGRlKHt9LGUse3JpZ2h0OmUubGVmdCtlLndpZHRoLGJvdHRvbTplLnRvcCtlLmhlaWdodH0pfWZ1bmN0aW9uIGcoZSl7dmFyIG89e307dHJ5e2lmKGllKDEwKSl7bz1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3ZhciBuPWEoZSwndG9wJyksaT1hKGUsJ2xlZnQnKTtvLnRvcCs9bixvLmxlZnQrPWksby5ib3R0b20rPW4sby5yaWdodCs9aX1lbHNlIG89ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1jYXRjaCh0KXt9dmFyIHI9e2xlZnQ6by5sZWZ0LHRvcDpvLnRvcCx3aWR0aDpvLnJpZ2h0LW8ubGVmdCxoZWlnaHQ6by5ib3R0b20tby50b3B9LHA9J0hUTUwnPT09ZS5ub2RlTmFtZT9oKCk6e30scz1wLndpZHRofHxlLmNsaWVudFdpZHRofHxyLnJpZ2h0LXIubGVmdCxkPXAuaGVpZ2h0fHxlLmNsaWVudEhlaWdodHx8ci5ib3R0b20tci50b3AsbD1lLm9mZnNldFdpZHRoLXMsbT1lLm9mZnNldEhlaWdodC1kO2lmKGx8fG0pe3ZhciBnPXQoZSk7bC09ZihnLCd4JyksbS09ZihnLCd5Jyksci53aWR0aC09bCxyLmhlaWdodC09bX1yZXR1cm4gYyhyKX1mdW5jdGlvbiB1KGUsbyl7dmFyIGk9Mjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxyPWllKDEwKSxwPSdIVE1MJz09PW8ubm9kZU5hbWUscz1nKGUpLGQ9ZyhvKSxhPW4oZSksZj10KG8pLG09cGFyc2VGbG9hdChmLmJvcmRlclRvcFdpZHRoLDEwKSxoPXBhcnNlRmxvYXQoZi5ib3JkZXJMZWZ0V2lkdGgsMTApO2kmJidIVE1MJz09PW8ubm9kZU5hbWUmJihkLnRvcD1RKGQudG9wLDApLGQubGVmdD1RKGQubGVmdCwwKSk7dmFyIHU9Yyh7dG9wOnMudG9wLWQudG9wLW0sbGVmdDpzLmxlZnQtZC5sZWZ0LWgsd2lkdGg6cy53aWR0aCxoZWlnaHQ6cy5oZWlnaHR9KTtpZih1Lm1hcmdpblRvcD0wLHUubWFyZ2luTGVmdD0wLCFyJiZwKXt2YXIgYj1wYXJzZUZsb2F0KGYubWFyZ2luVG9wLDEwKSx5PXBhcnNlRmxvYXQoZi5tYXJnaW5MZWZ0LDEwKTt1LnRvcC09bS1iLHUuYm90dG9tLT1tLWIsdS5sZWZ0LT1oLXksdS5yaWdodC09aC15LHUubWFyZ2luVG9wPWIsdS5tYXJnaW5MZWZ0PXl9cmV0dXJuKHImJiFpP28uY29udGFpbnMoYSk6bz09PWEmJidCT0RZJyE9PWEubm9kZU5hbWUpJiYodT1sKHUsbykpLHV9ZnVuY3Rpb24gYihlKXt2YXIgdD0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG89ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPXUoZSxvKSxpPVEoby5jbGllbnRXaWR0aCx3aW5kb3cuaW5uZXJXaWR0aHx8MCkscj1RKG8uY2xpZW50SGVpZ2h0LHdpbmRvdy5pbm5lckhlaWdodHx8MCkscD10PzA6YShvKSxzPXQ/MDphKG8sJ2xlZnQnKSxkPXt0b3A6cC1uLnRvcCtuLm1hcmdpblRvcCxsZWZ0OnMtbi5sZWZ0K24ubWFyZ2luTGVmdCx3aWR0aDppLGhlaWdodDpyfTtyZXR1cm4gYyhkKX1mdW5jdGlvbiB5KGUpe3ZhciBuPWUubm9kZU5hbWU7cmV0dXJuJ0JPRFknPT09bnx8J0hUTUwnPT09bj8hMTonZml4ZWQnPT09dChlLCdwb3NpdGlvbicpfHx5KG8oZSkpfWZ1bmN0aW9uIHcoZSl7aWYoIWV8fCFlLnBhcmVudEVsZW1lbnR8fGllKCkpcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtmb3IodmFyIG89ZS5wYXJlbnRFbGVtZW50O28mJidub25lJz09PXQobywndHJhbnNmb3JtJyk7KW89by5wYXJlbnRFbGVtZW50O3JldHVybiBvfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR9ZnVuY3Rpb24gRShlLHQsaSxyKXt2YXIgcD00PGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XSYmYXJndW1lbnRzWzRdLHM9e3RvcDowLGxlZnQ6MH0sYT1wP3coZSk6ZChlLHQpO2lmKCd2aWV3cG9ydCc9PT1yKXM9YihhLHApO2Vsc2V7dmFyIGw7J3Njcm9sbFBhcmVudCc9PT1yPyhsPW4obyh0KSksJ0JPRFknPT09bC5ub2RlTmFtZSYmKGw9ZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpOid3aW5kb3cnPT09cj9sPWUub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6bD1yO3ZhciBmPXUobCxhLHApO2lmKCdIVE1MJz09PWwubm9kZU5hbWUmJiF5KGEpKXt2YXIgbT1oKCksYz1tLmhlaWdodCxnPW0ud2lkdGg7cy50b3ArPWYudG9wLWYubWFyZ2luVG9wLHMuYm90dG9tPWMrZi50b3Ascy5sZWZ0Kz1mLmxlZnQtZi5tYXJnaW5MZWZ0LHMucmlnaHQ9ZytmLmxlZnR9ZWxzZSBzPWZ9cmV0dXJuIHMubGVmdCs9aSxzLnRvcCs9aSxzLnJpZ2h0LT1pLHMuYm90dG9tLT1pLHN9ZnVuY3Rpb24gdihlKXt2YXIgdD1lLndpZHRoLG89ZS5oZWlnaHQ7cmV0dXJuIHQqb31mdW5jdGlvbiB4KGUsdCxvLG4saSl7dmFyIHI9NTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbNV0/YXJndW1lbnRzWzVdOjA7aWYoLTE9PT1lLmluZGV4T2YoJ2F1dG8nKSlyZXR1cm4gZTt2YXIgcD1FKG8sbixyLGkpLHM9e3RvcDp7d2lkdGg6cC53aWR0aCxoZWlnaHQ6dC50b3AtcC50b3B9LHJpZ2h0Ont3aWR0aDpwLnJpZ2h0LXQucmlnaHQsaGVpZ2h0OnAuaGVpZ2h0fSxib3R0b206e3dpZHRoOnAud2lkdGgsaGVpZ2h0OnAuYm90dG9tLXQuYm90dG9tfSxsZWZ0Ont3aWR0aDp0LmxlZnQtcC5sZWZ0LGhlaWdodDpwLmhlaWdodH19LGQ9T2JqZWN0LmtleXMocykubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBkZSh7a2V5OmV9LHNbZV0se2FyZWE6dihzW2VdKX0pfSkuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiB0LmFyZWEtZS5hcmVhfSksYT1kLmZpbHRlcihmdW5jdGlvbihlKXt2YXIgdD1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQ+PW8uY2xpZW50V2lkdGgmJm4+PW8uY2xpZW50SGVpZ2h0fSksbD0wPGEubGVuZ3RoP2FbMF0ua2V5OmRbMF0ua2V5LGY9ZS5zcGxpdCgnLScpWzFdO3JldHVybiBsKyhmPyctJytmOicnKX1mdW5jdGlvbiBPKGUsdCxvKXt2YXIgbj0zPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106bnVsbCxpPW4/dyh0KTpkKHQsbyk7cmV0dXJuIHUobyxpLG4pfWZ1bmN0aW9uIEwoZSl7dmFyIHQ9Z2V0Q29tcHV0ZWRTdHlsZShlKSxvPXBhcnNlRmxvYXQodC5tYXJnaW5Ub3ApK3BhcnNlRmxvYXQodC5tYXJnaW5Cb3R0b20pLG49cGFyc2VGbG9hdCh0Lm1hcmdpbkxlZnQpK3BhcnNlRmxvYXQodC5tYXJnaW5SaWdodCksaT17d2lkdGg6ZS5vZmZzZXRXaWR0aCtuLGhlaWdodDplLm9mZnNldEhlaWdodCtvfTtyZXR1cm4gaX1mdW5jdGlvbiBTKGUpe3ZhciB0PXtsZWZ0OidyaWdodCcscmlnaHQ6J2xlZnQnLGJvdHRvbTondG9wJyx0b3A6J2JvdHRvbSd9O3JldHVybiBlLnJlcGxhY2UoL2xlZnR8cmlnaHR8Ym90dG9tfHRvcC9nLGZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSl9ZnVuY3Rpb24gVChlLHQsbyl7bz1vLnNwbGl0KCctJylbMF07dmFyIG49TChlKSxpPXt3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodH0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihvKSxwPXI/J3RvcCc6J2xlZnQnLHM9cj8nbGVmdCc6J3RvcCcsZD1yPydoZWlnaHQnOid3aWR0aCcsYT1yPyd3aWR0aCc6J2hlaWdodCc7cmV0dXJuIGlbcF09dFtwXSt0W2RdLzItbltkXS8yLGlbc109bz09PXM/dFtzXS1uW2FdOnRbUyhzKV0saX1mdW5jdGlvbiBEKGUsdCl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maW5kP2UuZmluZCh0KTplLmZpbHRlcih0KVswXX1mdW5jdGlvbiBDKGUsdCxvKXtpZihBcnJheS5wcm90b3R5cGUuZmluZEluZGV4KXJldHVybiBlLmZpbmRJbmRleChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XT09PW99KTt2YXIgbj1EKGUsZnVuY3Rpb24oZSl7cmV0dXJuIGVbdF09PT1vfSk7cmV0dXJuIGUuaW5kZXhPZihuKX1mdW5jdGlvbiBOKHQsbyxuKXt2YXIgaT12b2lkIDA9PT1uP3Q6dC5zbGljZSgwLEModCwnbmFtZScsbikpO3JldHVybiBpLmZvckVhY2goZnVuY3Rpb24odCl7dFsnZnVuY3Rpb24nXSYmY29uc29sZS53YXJuKCdgbW9kaWZpZXIuZnVuY3Rpb25gIGlzIGRlcHJlY2F0ZWQsIHVzZSBgbW9kaWZpZXIuZm5gIScpO3ZhciBuPXRbJ2Z1bmN0aW9uJ118fHQuZm47dC5lbmFibGVkJiZlKG4pJiYoby5vZmZzZXRzLnBvcHBlcj1jKG8ub2Zmc2V0cy5wb3BwZXIpLG8ub2Zmc2V0cy5yZWZlcmVuY2U9YyhvLm9mZnNldHMucmVmZXJlbmNlKSxvPW4obyx0KSl9KSxvfWZ1bmN0aW9uIGsoKXtpZighdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZCl7dmFyIGU9e2luc3RhbmNlOnRoaXMsc3R5bGVzOnt9LGFycm93U3R5bGVzOnt9LGF0dHJpYnV0ZXM6e30sZmxpcHBlZDohMSxvZmZzZXRzOnt9fTtlLm9mZnNldHMucmVmZXJlbmNlPU8odGhpcy5zdGF0ZSx0aGlzLnBvcHBlcix0aGlzLnJlZmVyZW5jZSx0aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCksZS5wbGFjZW1lbnQ9eCh0aGlzLm9wdGlvbnMucGxhY2VtZW50LGUub2Zmc2V0cy5yZWZlcmVuY2UsdGhpcy5wb3BwZXIsdGhpcy5yZWZlcmVuY2UsdGhpcy5vcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LHRoaXMub3B0aW9ucy5tb2RpZmllcnMuZmxpcC5wYWRkaW5nKSxlLm9yaWdpbmFsUGxhY2VtZW50PWUucGxhY2VtZW50LGUucG9zaXRpb25GaXhlZD10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZCxlLm9mZnNldHMucG9wcGVyPVQodGhpcy5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCksZS5vZmZzZXRzLnBvcHBlci5wb3NpdGlvbj10aGlzLm9wdGlvbnMucG9zaXRpb25GaXhlZD8nZml4ZWQnOidhYnNvbHV0ZScsZT1OKHRoaXMubW9kaWZpZXJzLGUpLHRoaXMuc3RhdGUuaXNDcmVhdGVkP3RoaXMub3B0aW9ucy5vblVwZGF0ZShlKToodGhpcy5zdGF0ZS5pc0NyZWF0ZWQ9ITAsdGhpcy5vcHRpb25zLm9uQ3JlYXRlKGUpKX19ZnVuY3Rpb24gUChlLHQpe3JldHVybiBlLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG89ZS5uYW1lLG49ZS5lbmFibGVkO3JldHVybiBuJiZvPT09dH0pfWZ1bmN0aW9uIFcoZSl7Zm9yKHZhciB0PVshMSwnbXMnLCdXZWJraXQnLCdNb3onLCdPJ10sbz1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLHI9aT8nJytpK286ZTtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGRvY3VtZW50LmJvZHkuc3R5bGVbcl0pcmV0dXJuIHJ9cmV0dXJuIG51bGx9ZnVuY3Rpb24gQigpe3JldHVybiB0aGlzLnN0YXRlLmlzRGVzdHJveWVkPSEwLFAodGhpcy5tb2RpZmllcnMsJ2FwcGx5U3R5bGUnKSYmKHRoaXMucG9wcGVyLnJlbW92ZUF0dHJpYnV0ZSgneC1wbGFjZW1lbnQnKSx0aGlzLnBvcHBlci5zdHlsZS5wb3NpdGlvbj0nJyx0aGlzLnBvcHBlci5zdHlsZS50b3A9JycsdGhpcy5wb3BwZXIuc3R5bGUubGVmdD0nJyx0aGlzLnBvcHBlci5zdHlsZS5yaWdodD0nJyx0aGlzLnBvcHBlci5zdHlsZS5ib3R0b209JycsdGhpcy5wb3BwZXIuc3R5bGUud2lsbENoYW5nZT0nJyx0aGlzLnBvcHBlci5zdHlsZVtXKCd0cmFuc2Zvcm0nKV09JycpLHRoaXMuZGlzYWJsZUV2ZW50TGlzdGVuZXJzKCksdGhpcy5vcHRpb25zLnJlbW92ZU9uRGVzdHJveSYmdGhpcy5wb3BwZXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBvcHBlciksdGhpc31mdW5jdGlvbiBIKGUpe3ZhciB0PWUub3duZXJEb2N1bWVudDtyZXR1cm4gdD90LmRlZmF1bHRWaWV3OndpbmRvd31mdW5jdGlvbiBBKGUsdCxvLGkpe3ZhciByPSdCT0RZJz09PWUubm9kZU5hbWUscD1yP2Uub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldzplO3AuYWRkRXZlbnRMaXN0ZW5lcih0LG8se3Bhc3NpdmU6ITB9KSxyfHxBKG4ocC5wYXJlbnROb2RlKSx0LG8saSksaS5wdXNoKHApfWZ1bmN0aW9uIEkoZSx0LG8saSl7by51cGRhdGVCb3VuZD1pLEgoZSkuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJyxvLnVwZGF0ZUJvdW5kLHtwYXNzaXZlOiEwfSk7dmFyIHI9bihlKTtyZXR1cm4gQShyLCdzY3JvbGwnLG8udXBkYXRlQm91bmQsby5zY3JvbGxQYXJlbnRzKSxvLnNjcm9sbEVsZW1lbnQ9cixvLmV2ZW50c0VuYWJsZWQ9ITAsb31mdW5jdGlvbiBNKCl7dGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkfHwodGhpcy5zdGF0ZT1JKHRoaXMucmVmZXJlbmNlLHRoaXMub3B0aW9ucyx0aGlzLnN0YXRlLHRoaXMuc2NoZWR1bGVVcGRhdGUpKX1mdW5jdGlvbiBGKGUsdCl7cmV0dXJuIEgoZSkucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJyx0LnVwZGF0ZUJvdW5kKSx0LnNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsdC51cGRhdGVCb3VuZCl9KSx0LnVwZGF0ZUJvdW5kPW51bGwsdC5zY3JvbGxQYXJlbnRzPVtdLHQuc2Nyb2xsRWxlbWVudD1udWxsLHQuZXZlbnRzRW5hYmxlZD0hMSx0fWZ1bmN0aW9uIFIoKXt0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQmJihjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnNjaGVkdWxlVXBkYXRlKSx0aGlzLnN0YXRlPUYodGhpcy5yZWZlcmVuY2UsdGhpcy5zdGF0ZSkpfWZ1bmN0aW9uIFUoZSl7cmV0dXJuJychPT1lJiYhaXNOYU4ocGFyc2VGbG9hdChlKSkmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIFkoZSx0KXtPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBuPScnOy0xIT09Wyd3aWR0aCcsJ2hlaWdodCcsJ3RvcCcsJ3JpZ2h0JywnYm90dG9tJywnbGVmdCddLmluZGV4T2YobykmJlUodFtvXSkmJihuPSdweCcpLGUuc3R5bGVbb109dFtvXStufSl9ZnVuY3Rpb24gaihlLHQpe09iamVjdC5rZXlzKHQpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIG49dFtvXTshMT09PW4/ZS5yZW1vdmVBdHRyaWJ1dGUobyk6ZS5zZXRBdHRyaWJ1dGUobyx0W29dKX0pfWZ1bmN0aW9uIHEoZSx0LG8pe3ZhciBuPUQoZSxmdW5jdGlvbihlKXt2YXIgbz1lLm5hbWU7cmV0dXJuIG89PT10fSksaT0hIW4mJmUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09byYmZS5lbmFibGVkJiZlLm9yZGVyPG4ub3JkZXJ9KTtpZighaSl7dmFyIHI9J2AnK3QrJ2AnO2NvbnNvbGUud2FybignYCcrbysnYCcrJyBtb2RpZmllciBpcyByZXF1aXJlZCBieSAnK3IrJyBtb2RpZmllciBpbiBvcmRlciB0byB3b3JrLCBiZSBzdXJlIHRvIGluY2x1ZGUgaXQgYmVmb3JlICcrcisnIScpfXJldHVybiBpfWZ1bmN0aW9uIEsoZSl7cmV0dXJuJ2VuZCc9PT1lPydzdGFydCc6J3N0YXJ0Jz09PWU/J2VuZCc6ZX1mdW5jdGlvbiBWKGUpe3ZhciB0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbz1sZS5pbmRleE9mKGUpLG49bGUuc2xpY2UobysxKS5jb25jYXQobGUuc2xpY2UoMCxvKSk7cmV0dXJuIHQ/bi5yZXZlcnNlKCk6bn1mdW5jdGlvbiB6KGUsdCxvLG4pe3ZhciBpPWUubWF0Y2goLygoPzpcLXxcKyk/XGQqXC4/XGQqKSguKikvKSxyPStpWzFdLHA9aVsyXTtpZighcilyZXR1cm4gZTtpZigwPT09cC5pbmRleE9mKCclJykpe3ZhciBzO3N3aXRjaChwKXtjYXNlJyVwJzpzPW87YnJlYWs7Y2FzZSclJzpjYXNlJyVyJzpkZWZhdWx0OnM9bjt9dmFyIGQ9YyhzKTtyZXR1cm4gZFt0XS8xMDAqcn1pZigndmgnPT09cHx8J3Z3Jz09PXApe3ZhciBhO3JldHVybiBhPSd2aCc9PT1wP1EoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCx3aW5kb3cuaW5uZXJIZWlnaHR8fDApOlEoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHdpbmRvdy5pbm5lcldpZHRofHwwKSxhLzEwMCpyfXJldHVybiByfWZ1bmN0aW9uIEcoZSx0LG8sbil7dmFyIGk9WzAsMF0scj0tMSE9PVsncmlnaHQnLCdsZWZ0J10uaW5kZXhPZihuKSxwPWUuc3BsaXQoLyhcK3xcLSkvKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudHJpbSgpfSkscz1wLmluZGV4T2YoRChwLGZ1bmN0aW9uKGUpe3JldHVybi0xIT09ZS5zZWFyY2goLyx8XHMvKX0pKTtwW3NdJiYtMT09PXBbc10uaW5kZXhPZignLCcpJiZjb25zb2xlLndhcm4oJ09mZnNldHMgc2VwYXJhdGVkIGJ5IHdoaXRlIHNwYWNlKHMpIGFyZSBkZXByZWNhdGVkLCB1c2UgYSBjb21tYSAoLCkgaW5zdGVhZC4nKTt2YXIgZD0vXHMqLFxzKnxccysvLGE9LTE9PT1zP1twXTpbcC5zbGljZSgwLHMpLmNvbmNhdChbcFtzXS5zcGxpdChkKVswXV0pLFtwW3NdLnNwbGl0KGQpWzFdXS5jb25jYXQocC5zbGljZShzKzEpKV07cmV0dXJuIGE9YS5tYXAoZnVuY3Rpb24oZSxuKXt2YXIgaT0oMT09PW4/IXI6cik/J2hlaWdodCc6J3dpZHRoJyxwPSExO3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybicnPT09ZVtlLmxlbmd0aC0xXSYmLTEhPT1bJysnLCctJ10uaW5kZXhPZih0KT8oZVtlLmxlbmd0aC0xXT10LHA9ITAsZSk6cD8oZVtlLmxlbmd0aC0xXSs9dCxwPSExLGUpOmUuY29uY2F0KHQpfSxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB6KGUsaSx0LG8pfSl9KSxhLmZvckVhY2goZnVuY3Rpb24oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obyxuKXtVKG8pJiYoaVt0XSs9byooJy0nPT09ZVtuLTFdPy0xOjEpKX0pfSksaX1mdW5jdGlvbiBfKGUsdCl7dmFyIG8sbj10Lm9mZnNldCxpPWUucGxhY2VtZW50LHI9ZS5vZmZzZXRzLHA9ci5wb3BwZXIscz1yLnJlZmVyZW5jZSxkPWkuc3BsaXQoJy0nKVswXTtyZXR1cm4gbz1VKCtuKT9bK24sMF06RyhuLHAscyxkKSwnbGVmdCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQtPW9bMV0pOidyaWdodCc9PT1kPyhwLnRvcCs9b1swXSxwLmxlZnQrPW9bMV0pOid0b3AnPT09ZD8ocC5sZWZ0Kz1vWzBdLHAudG9wLT1vWzFdKTonYm90dG9tJz09PWQmJihwLmxlZnQrPW9bMF0scC50b3ArPW9bMV0pLGUucG9wcGVyPXAsZX1mb3IodmFyIFg9TWF0aC5taW4sSj1NYXRoLmZsb29yLFE9TWF0aC5tYXgsWj0ndW5kZWZpbmVkJyE9dHlwZW9mIHdpbmRvdyYmJ3VuZGVmaW5lZCchPXR5cGVvZiBkb2N1bWVudCwkPVsnRWRnZScsJ1RyaWRlbnQnLCdGaXJlZm94J10sZWU9MCx0ZT0wO3RlPCQubGVuZ3RoO3RlKz0xKWlmKFomJjA8PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigkW3RlXSkpe2VlPTE7YnJlYWt9dmFyIGk9WiYmd2luZG93LlByb21pc2Usb2U9aT9mdW5jdGlvbihlKXt2YXIgdD0hMTtyZXR1cm4gZnVuY3Rpb24oKXt0fHwodD0hMCx3aW5kb3cuUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3Q9ITEsZSgpfSkpfX06ZnVuY3Rpb24oZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsc2V0VGltZW91dChmdW5jdGlvbigpe3Q9ITEsZSgpfSxlZSkpfX0sbmU9e30saWU9ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06J2FsbCc7cmV0dXJuKGU9ZS50b1N0cmluZygpLG5lLmhhc093blByb3BlcnR5KGUpKT9uZVtlXTooJzExJz09PWU/bmVbZV09LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1RyaWRlbnQnKTonMTAnPT09ZT9uZVtlXT0tMSE9PW5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ01TSUUgMTAnKTonYWxsJz09PWU/bmVbZV09LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ1RyaWRlbnQnKXx8LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoJ01TSUUnKTp2b2lkIDAsbmUuYWxsPW5lLmFsbHx8T2JqZWN0LmtleXMobmUpLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIG5lW2VdfSksbmVbZV0pfSxyZT1mdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpfSxwZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSx0KXtmb3IodmFyIG8sbj0wO248dC5sZW5ndGg7bisrKW89dFtuXSxvLmVudW1lcmFibGU9by5lbnVtZXJhYmxlfHwhMSxvLmNvbmZpZ3VyYWJsZT0hMCwndmFsdWUnaW4gbyYmKG8ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG8ua2V5LG8pfXJldHVybiBmdW5jdGlvbih0LG8sbil7cmV0dXJuIG8mJmUodC5wcm90b3R5cGUsbyksbiYmZSh0LG4pLHR9fSgpLHNlPWZ1bmN0aW9uKGUsdCxvKXtyZXR1cm4gdCBpbiBlP09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm8sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTplW3RdPW8sZX0sZGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG89MTtvPGFyZ3VtZW50cy5sZW5ndGg7bysrKWZvcih2YXIgbiBpbiB0PWFyZ3VtZW50c1tvXSx0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG4pJiYoZVtuXT10W25dKTtyZXR1cm4gZX0sYWU9WydhdXRvLXN0YXJ0JywnYXV0bycsJ2F1dG8tZW5kJywndG9wLXN0YXJ0JywndG9wJywndG9wLWVuZCcsJ3JpZ2h0LXN0YXJ0JywncmlnaHQnLCdyaWdodC1lbmQnLCdib3R0b20tZW5kJywnYm90dG9tJywnYm90dG9tLXN0YXJ0JywnbGVmdC1lbmQnLCdsZWZ0JywnbGVmdC1zdGFydCddLGxlPWFlLnNsaWNlKDMpLGZlPXtGTElQOidmbGlwJyxDTE9DS1dJU0U6J2Nsb2Nrd2lzZScsQ09VTlRFUkNMT0NLV0lTRTonY291bnRlcmNsb2Nrd2lzZSd9LG1lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChvLG4pe3ZhciBpPXRoaXMscj0yPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmUodGhpcyx0KSx0aGlzLnNjaGVkdWxlVXBkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShpLnVwZGF0ZSl9LHRoaXMudXBkYXRlPW9lKHRoaXMudXBkYXRlLmJpbmQodGhpcykpLHRoaXMub3B0aW9ucz1kZSh7fSx0LkRlZmF1bHRzLHIpLHRoaXMuc3RhdGU9e2lzRGVzdHJveWVkOiExLGlzQ3JlYXRlZDohMSxzY3JvbGxQYXJlbnRzOltdfSx0aGlzLnJlZmVyZW5jZT1vJiZvLmpxdWVyeT9vWzBdOm8sdGhpcy5wb3BwZXI9biYmbi5qcXVlcnk/blswXTpuLHRoaXMub3B0aW9ucy5tb2RpZmllcnM9e30sT2JqZWN0LmtleXMoZGUoe30sdC5EZWZhdWx0cy5tb2RpZmllcnMsci5tb2RpZmllcnMpKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kub3B0aW9ucy5tb2RpZmllcnNbZV09ZGUoe30sdC5EZWZhdWx0cy5tb2RpZmllcnNbZV18fHt9LHIubW9kaWZpZXJzP3IubW9kaWZpZXJzW2VdOnt9KX0pLHRoaXMubW9kaWZpZXJzPU9iamVjdC5rZXlzKHRoaXMub3B0aW9ucy5tb2RpZmllcnMpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZGUoe25hbWU6ZX0saS5vcHRpb25zLm1vZGlmaWVyc1tlXSl9KS5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUub3JkZXItdC5vcmRlcn0pLHRoaXMubW9kaWZpZXJzLmZvckVhY2goZnVuY3Rpb24odCl7dC5lbmFibGVkJiZlKHQub25Mb2FkKSYmdC5vbkxvYWQoaS5yZWZlcmVuY2UsaS5wb3BwZXIsaS5vcHRpb25zLHQsaS5zdGF0ZSl9KSx0aGlzLnVwZGF0ZSgpO3ZhciBwPXRoaXMub3B0aW9ucy5ldmVudHNFbmFibGVkO3AmJnRoaXMuZW5hYmxlRXZlbnRMaXN0ZW5lcnMoKSx0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQ9cH1yZXR1cm4gcGUodCxbe2tleTondXBkYXRlJyx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBrLmNhbGwodGhpcyl9fSx7a2V5OidkZXN0cm95Jyx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBCLmNhbGwodGhpcyl9fSx7a2V5OidlbmFibGVFdmVudExpc3RlbmVycycsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTS5jYWxsKHRoaXMpfX0se2tleTonZGlzYWJsZUV2ZW50TGlzdGVuZXJzJyx2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBSLmNhbGwodGhpcyl9fV0pLHR9KCk7cmV0dXJuIG1lLlV0aWxzPSgndW5kZWZpbmVkJz09dHlwZW9mIHdpbmRvdz9nbG9iYWw6d2luZG93KS5Qb3BwZXJVdGlscyxtZS5wbGFjZW1lbnRzPWFlLG1lLkRlZmF1bHRzPXtwbGFjZW1lbnQ6J2JvdHRvbScscG9zaXRpb25GaXhlZDohMSxldmVudHNFbmFibGVkOiEwLHJlbW92ZU9uRGVzdHJveTohMSxvbkNyZWF0ZTpmdW5jdGlvbigpe30sb25VcGRhdGU6ZnVuY3Rpb24oKXt9LG1vZGlmaWVyczp7c2hpZnQ6e29yZGVyOjEwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUpe3ZhciB0PWUucGxhY2VtZW50LG89dC5zcGxpdCgnLScpWzBdLG49dC5zcGxpdCgnLScpWzFdO2lmKG4pe3ZhciBpPWUub2Zmc2V0cyxyPWkucmVmZXJlbmNlLHA9aS5wb3BwZXIscz0tMSE9PVsnYm90dG9tJywndG9wJ10uaW5kZXhPZihvKSxkPXM/J2xlZnQnOid0b3AnLGE9cz8nd2lkdGgnOidoZWlnaHQnLGw9e3N0YXJ0OnNlKHt9LGQscltkXSksZW5kOnNlKHt9LGQscltkXStyW2FdLXBbYV0pfTtlLm9mZnNldHMucG9wcGVyPWRlKHt9LHAsbFtuXSl9cmV0dXJuIGV9fSxvZmZzZXQ6e29yZGVyOjIwMCxlbmFibGVkOiEwLGZuOl8sb2Zmc2V0OjB9LHByZXZlbnRPdmVyZmxvdzp7b3JkZXI6MzAwLGVuYWJsZWQ6ITAsZm46ZnVuY3Rpb24oZSx0KXt2YXIgbz10LmJvdW5kYXJpZXNFbGVtZW50fHxyKGUuaW5zdGFuY2UucG9wcGVyKTtlLmluc3RhbmNlLnJlZmVyZW5jZT09PW8mJihvPXIobykpO3ZhciBuPUUoZS5pbnN0YW5jZS5wb3BwZXIsZS5pbnN0YW5jZS5yZWZlcmVuY2UsdC5wYWRkaW5nLG8sZS5wb3NpdGlvbkZpeGVkKTt0LmJvdW5kYXJpZXM9bjt2YXIgaT10LnByaW9yaXR5LHA9ZS5vZmZzZXRzLnBvcHBlcixzPXtwcmltYXJ5OmZ1bmN0aW9uKGUpe3ZhciBvPXBbZV07cmV0dXJuIHBbZV08bltlXSYmIXQuZXNjYXBlV2l0aFJlZmVyZW5jZSYmKG89UShwW2VdLG5bZV0pKSxzZSh7fSxlLG8pfSxzZWNvbmRhcnk6ZnVuY3Rpb24oZSl7dmFyIG89J3JpZ2h0Jz09PWU/J2xlZnQnOid0b3AnLGk9cFtvXTtyZXR1cm4gcFtlXT5uW2VdJiYhdC5lc2NhcGVXaXRoUmVmZXJlbmNlJiYoaT1YKHBbb10sbltlXS0oJ3JpZ2h0Jz09PWU/cC53aWR0aDpwLmhlaWdodCkpKSxzZSh7fSxvLGkpfX07cmV0dXJuIGkuZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD0tMT09PVsnbGVmdCcsJ3RvcCddLmluZGV4T2YoZSk/J3NlY29uZGFyeSc6J3ByaW1hcnknO3A9ZGUoe30scCxzW3RdKGUpKX0pLGUub2Zmc2V0cy5wb3BwZXI9cCxlfSxwcmlvcml0eTpbJ2xlZnQnLCdyaWdodCcsJ3RvcCcsJ2JvdHRvbSddLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDonc2Nyb2xsUGFyZW50J30sa2VlcFRvZ2V0aGVyOntvcmRlcjo0MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXt2YXIgdD1lLm9mZnNldHMsbz10LnBvcHBlcixuPXQucmVmZXJlbmNlLGk9ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxyPUoscD0tMSE9PVsndG9wJywnYm90dG9tJ10uaW5kZXhPZihpKSxzPXA/J3JpZ2h0JzonYm90dG9tJyxkPXA/J2xlZnQnOid0b3AnLGE9cD8nd2lkdGgnOidoZWlnaHQnO3JldHVybiBvW3NdPHIobltkXSkmJihlLm9mZnNldHMucG9wcGVyW2RdPXIobltkXSktb1thXSksb1tkXT5yKG5bc10pJiYoZS5vZmZzZXRzLnBvcHBlcltkXT1yKG5bc10pKSxlfX0sYXJyb3c6e29yZGVyOjUwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsbyl7dmFyIG47aWYoIXEoZS5pbnN0YW5jZS5tb2RpZmllcnMsJ2Fycm93Jywna2VlcFRvZ2V0aGVyJykpcmV0dXJuIGU7dmFyIGk9by5lbGVtZW50O2lmKCdzdHJpbmcnPT10eXBlb2YgaSl7aWYoaT1lLmluc3RhbmNlLnBvcHBlci5xdWVyeVNlbGVjdG9yKGkpLCFpKXJldHVybiBlO31lbHNlIGlmKCFlLmluc3RhbmNlLnBvcHBlci5jb250YWlucyhpKSlyZXR1cm4gY29uc29sZS53YXJuKCdXQVJOSU5HOiBgYXJyb3cuZWxlbWVudGAgbXVzdCBiZSBjaGlsZCBvZiBpdHMgcG9wcGVyIGVsZW1lbnQhJyksZTt2YXIgcj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLHA9ZS5vZmZzZXRzLHM9cC5wb3BwZXIsZD1wLnJlZmVyZW5jZSxhPS0xIT09WydsZWZ0JywncmlnaHQnXS5pbmRleE9mKHIpLGw9YT8naGVpZ2h0Jzond2lkdGgnLGY9YT8nVG9wJzonTGVmdCcsbT1mLnRvTG93ZXJDYXNlKCksaD1hPydsZWZ0JzondG9wJyxnPWE/J2JvdHRvbSc6J3JpZ2h0Jyx1PUwoaSlbbF07ZFtnXS11PHNbbV0mJihlLm9mZnNldHMucG9wcGVyW21dLT1zW21dLShkW2ddLXUpKSxkW21dK3U+c1tnXSYmKGUub2Zmc2V0cy5wb3BwZXJbbV0rPWRbbV0rdS1zW2ddKSxlLm9mZnNldHMucG9wcGVyPWMoZS5vZmZzZXRzLnBvcHBlcik7dmFyIGI9ZFttXStkW2xdLzItdS8yLHk9dChlLmluc3RhbmNlLnBvcHBlciksdz1wYXJzZUZsb2F0KHlbJ21hcmdpbicrZl0sMTApLEU9cGFyc2VGbG9hdCh5Wydib3JkZXInK2YrJ1dpZHRoJ10sMTApLHY9Yi1lLm9mZnNldHMucG9wcGVyW21dLXctRTtyZXR1cm4gdj1RKFgoc1tsXS11LHYpLDApLGUuYXJyb3dFbGVtZW50PWksZS5vZmZzZXRzLmFycm93PShuPXt9LHNlKG4sbSxNYXRoLnJvdW5kKHYpKSxzZShuLGgsJycpLG4pLGV9LGVsZW1lbnQ6J1t4LWFycm93XSd9LGZsaXA6e29yZGVyOjYwMCxlbmFibGVkOiEwLGZuOmZ1bmN0aW9uKGUsdCl7aWYoUChlLmluc3RhbmNlLm1vZGlmaWVycywnaW5uZXInKSlyZXR1cm4gZTtpZihlLmZsaXBwZWQmJmUucGxhY2VtZW50PT09ZS5vcmlnaW5hbFBsYWNlbWVudClyZXR1cm4gZTt2YXIgbz1FKGUuaW5zdGFuY2UucG9wcGVyLGUuaW5zdGFuY2UucmVmZXJlbmNlLHQucGFkZGluZyx0LmJvdW5kYXJpZXNFbGVtZW50LGUucG9zaXRpb25GaXhlZCksbj1lLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdLGk9UyhuKSxyPWUucGxhY2VtZW50LnNwbGl0KCctJylbMV18fCcnLHA9W107c3dpdGNoKHQuYmVoYXZpb3Ipe2Nhc2UgZmUuRkxJUDpwPVtuLGldO2JyZWFrO2Nhc2UgZmUuQ0xPQ0tXSVNFOnA9VihuKTticmVhaztjYXNlIGZlLkNPVU5URVJDTE9DS1dJU0U6cD1WKG4sITApO2JyZWFrO2RlZmF1bHQ6cD10LmJlaGF2aW9yO31yZXR1cm4gcC5mb3JFYWNoKGZ1bmN0aW9uKHMsZCl7aWYobiE9PXN8fHAubGVuZ3RoPT09ZCsxKXJldHVybiBlO249ZS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXSxpPVMobik7dmFyIGE9ZS5vZmZzZXRzLnBvcHBlcixsPWUub2Zmc2V0cy5yZWZlcmVuY2UsZj1KLG09J2xlZnQnPT09biYmZihhLnJpZ2h0KT5mKGwubGVmdCl8fCdyaWdodCc9PT1uJiZmKGEubGVmdCk8ZihsLnJpZ2h0KXx8J3RvcCc9PT1uJiZmKGEuYm90dG9tKT5mKGwudG9wKXx8J2JvdHRvbSc9PT1uJiZmKGEudG9wKTxmKGwuYm90dG9tKSxoPWYoYS5sZWZ0KTxmKG8ubGVmdCksYz1mKGEucmlnaHQpPmYoby5yaWdodCksZz1mKGEudG9wKTxmKG8udG9wKSx1PWYoYS5ib3R0b20pPmYoby5ib3R0b20pLGI9J2xlZnQnPT09biYmaHx8J3JpZ2h0Jz09PW4mJmN8fCd0b3AnPT09biYmZ3x8J2JvdHRvbSc9PT1uJiZ1LHk9LTEhPT1bJ3RvcCcsJ2JvdHRvbSddLmluZGV4T2Yobiksdz0hIXQuZmxpcFZhcmlhdGlvbnMmJih5JiYnc3RhcnQnPT09ciYmaHx8eSYmJ2VuZCc9PT1yJiZjfHwheSYmJ3N0YXJ0Jz09PXImJmd8fCF5JiYnZW5kJz09PXImJnUpOyhtfHxifHx3KSYmKGUuZmxpcHBlZD0hMCwobXx8YikmJihuPXBbZCsxXSksdyYmKHI9SyhyKSksZS5wbGFjZW1lbnQ9bisocj8nLScrcjonJyksZS5vZmZzZXRzLnBvcHBlcj1kZSh7fSxlLm9mZnNldHMucG9wcGVyLFQoZS5pbnN0YW5jZS5wb3BwZXIsZS5vZmZzZXRzLnJlZmVyZW5jZSxlLnBsYWNlbWVudCkpLGU9TihlLmluc3RhbmNlLm1vZGlmaWVycyxlLCdmbGlwJykpfSksZX0sYmVoYXZpb3I6J2ZsaXAnLHBhZGRpbmc6NSxib3VuZGFyaWVzRWxlbWVudDondmlld3BvcnQnfSxpbm5lcjp7b3JkZXI6NzAwLGVuYWJsZWQ6ITEsZm46ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wbGFjZW1lbnQsbz10LnNwbGl0KCctJylbMF0sbj1lLm9mZnNldHMsaT1uLnBvcHBlcixyPW4ucmVmZXJlbmNlLHA9LTEhPT1bJ2xlZnQnLCdyaWdodCddLmluZGV4T2Yobykscz0tMT09PVsndG9wJywnbGVmdCddLmluZGV4T2Yobyk7cmV0dXJuIGlbcD8nbGVmdCc6J3RvcCddPXJbb10tKHM/aVtwPyd3aWR0aCc6J2hlaWdodCddOjApLGUucGxhY2VtZW50PVModCksZS5vZmZzZXRzLnBvcHBlcj1jKGkpLGV9fSxoaWRlOntvcmRlcjo4MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtpZighcShlLmluc3RhbmNlLm1vZGlmaWVycywnaGlkZScsJ3ByZXZlbnRPdmVyZmxvdycpKXJldHVybiBlO3ZhciB0PWUub2Zmc2V0cy5yZWZlcmVuY2Usbz1EKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidwcmV2ZW50T3ZlcmZsb3cnPT09ZS5uYW1lfSkuYm91bmRhcmllcztpZih0LmJvdHRvbTxvLnRvcHx8dC5sZWZ0Pm8ucmlnaHR8fHQudG9wPm8uYm90dG9tfHx0LnJpZ2h0PG8ubGVmdCl7aWYoITA9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSEwLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPScnfWVsc2V7aWYoITE9PT1lLmhpZGUpcmV0dXJuIGU7ZS5oaWRlPSExLGUuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddPSExfXJldHVybiBlfX0sY29tcHV0ZVN0eWxlOntvcmRlcjo4NTAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlLHQpe3ZhciBvPXQueCxuPXQueSxpPWUub2Zmc2V0cy5wb3BwZXIscD1EKGUuaW5zdGFuY2UubW9kaWZpZXJzLGZ1bmN0aW9uKGUpe3JldHVybidhcHBseVN0eWxlJz09PWUubmFtZX0pLmdwdUFjY2VsZXJhdGlvbjt2b2lkIDAhPT1wJiZjb25zb2xlLndhcm4oJ1dBUk5JTkc6IGBncHVBY2NlbGVyYXRpb25gIG9wdGlvbiBtb3ZlZCB0byBgY29tcHV0ZVN0eWxlYCBtb2RpZmllciBhbmQgd2lsbCBub3QgYmUgc3VwcG9ydGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBQb3BwZXIuanMhJyk7dmFyIHMsZCxhPXZvaWQgMD09PXA/dC5ncHVBY2NlbGVyYXRpb246cCxsPXIoZS5pbnN0YW5jZS5wb3BwZXIpLGY9ZyhsKSxtPXtwb3NpdGlvbjppLnBvc2l0aW9ufSxoPXtsZWZ0OkooaS5sZWZ0KSx0b3A6SihpLnRvcCksYm90dG9tOkooaS5ib3R0b20pLHJpZ2h0OkooaS5yaWdodCl9LGM9J2JvdHRvbSc9PT1vPyd0b3AnOidib3R0b20nLHU9J3JpZ2h0Jz09PW4/J2xlZnQnOidyaWdodCcsYj1XKCd0cmFuc2Zvcm0nKTtpZihkPSdib3R0b20nPT1jPy1mLmhlaWdodCtoLmJvdHRvbTpoLnRvcCxzPSdyaWdodCc9PXU/LWYud2lkdGgraC5yaWdodDpoLmxlZnQsYSYmYiltW2JdPSd0cmFuc2xhdGUzZCgnK3MrJ3B4LCAnK2QrJ3B4LCAwKScsbVtjXT0wLG1bdV09MCxtLndpbGxDaGFuZ2U9J3RyYW5zZm9ybSc7ZWxzZXt2YXIgeT0nYm90dG9tJz09Yz8tMToxLHc9J3JpZ2h0Jz09dT8tMToxO21bY109ZCp5LG1bdV09cyp3LG0ud2lsbENoYW5nZT1jKycsICcrdX12YXIgRT17IngtcGxhY2VtZW50IjplLnBsYWNlbWVudH07cmV0dXJuIGUuYXR0cmlidXRlcz1kZSh7fSxFLGUuYXR0cmlidXRlcyksZS5zdHlsZXM9ZGUoe30sbSxlLnN0eWxlcyksZS5hcnJvd1N0eWxlcz1kZSh7fSxlLm9mZnNldHMuYXJyb3csZS5hcnJvd1N0eWxlcyksZX0sZ3B1QWNjZWxlcmF0aW9uOiEwLHg6J2JvdHRvbScseToncmlnaHQnfSxhcHBseVN0eWxlOntvcmRlcjo5MDAsZW5hYmxlZDohMCxmbjpmdW5jdGlvbihlKXtyZXR1cm4gWShlLmluc3RhbmNlLnBvcHBlcixlLnN0eWxlcyksaihlLmluc3RhbmNlLnBvcHBlcixlLmF0dHJpYnV0ZXMpLGUuYXJyb3dFbGVtZW50JiZPYmplY3Qua2V5cyhlLmFycm93U3R5bGVzKS5sZW5ndGgmJlkoZS5hcnJvd0VsZW1lbnQsZS5hcnJvd1N0eWxlcyksZX0sb25Mb2FkOmZ1bmN0aW9uKGUsdCxvLG4saSl7dmFyIHI9TyhpLHQsZSxvLnBvc2l0aW9uRml4ZWQpLHA9eChvLnBsYWNlbWVudCxyLHQsZSxvLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50LG8ubW9kaWZpZXJzLmZsaXAucGFkZGluZyk7cmV0dXJuIHQuc2V0QXR0cmlidXRlKCd4LXBsYWNlbWVudCcscCksWSh0LHtwb3NpdGlvbjpvLnBvc2l0aW9uRml4ZWQ/J2ZpeGVkJzonYWJzb2x1dGUnfSksb30sZ3B1QWNjZWxlcmF0aW9uOnZvaWQgMH19fSxtZX0pOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9wcGVyLm1pbi5qcy5tYXA="}},"time_used":45,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":21,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery.fancybox.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.704Z","timestamp":1785129412704,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/jquery.fancybox.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 34739\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":154104,"size_decoded":34977,"mime_type":"text/javascript","magic":"JavaScript source, Unicode text, UTF-8 text","md5":"6e11711058a9459a94d5a19b26a78135","sha1":"76792d5913afe035b6ccbac585b0b5e70b33aa76","sha256":"7b99eee1db728472aaa8452017a0d755f488e8d647cc0f62baf45f8ff65b95ba","sha512":"6ecbe997bc6e82fa7976a98e291ec31e043de23f0f5d06834fcc809cde8d0c3ffa0e96c734dfc0b0fbc313e405eac603540913794bb3a9a86ac56db5d2ab868a","ssdeep":"1536:26iljQs+4wETv0qwF/fwUsjuFR4amerr3txU0Me7/pby+mHWgGbAdKfW7WP83RSp:2NoETcqwF3wO/VUbZZr7WP83RSD6E3t","tlshash":"f3e3968a67bd112589333129ab8f705eb57e8423a10dd9263cad53481fc13a943f5fee","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T07:07:17.237721Z","times_seen":3528,"resource_available":true,"data":"Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gZmFuY3lCb3ggdjMuMi4xMAovLwovLyBMaWNlbnNlZCBHUEx2MyBmb3Igb3BlbiBzb3VyY2UgdXNlCi8vIG9yIGZhbmN5Qm94IENvbW1lcmNpYWwgTGljZW5zZSBmb3IgY29tbWVyY2lhbCB1c2UKLy8KLy8gaHR0cDovL2ZhbmN5YXBwcy5jb20vZmFuY3lib3gvCi8vIENvcHlyaWdodCAyMDE3IGZhbmN5QXBwcwovLwovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo7KGZ1bmN0aW9uICh3aW5kb3csIGRvY3VtZW50LCAkLCB1bmRlZmluZWQpIHsKICAgICd1c2Ugc3RyaWN0JzsKCiAgICAvLyBJZiB0aGVyZSdzIG5vIGpRdWVyeSwgZmFuY3lCb3ggY2FuJ3Qgd29yawogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICBpZiAoICEkICkgewogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBDaGVjayBpZiBmYW5jeUJveCBpcyBhbHJlYWR5IGluaXRpYWxpemVkCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgaWYgKCAkLmZuLmZhbmN5Ym94ICkgewoKICAgICAgICBpZiAoICdjb25zb2xlJyBpbiB3aW5kb3cgKSB7CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCAnZmFuY3lCb3ggYWxyZWFkeSBpbml0aWFsaXplZCcgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcml2YXRlIGRlZmF1bHQgc2V0dGluZ3MKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIHZhciBkZWZhdWx0cyA9IHsKCiAgICAgICAgLy8gRW5hYmxlIGluZmluaXRlIGdhbGxlcnkgbmF2aWdhdGlvbgogICAgICAgIGxvb3AgOiBmYWxzZSwKCiAgICAgICAgLy8gU3BhY2UgYXJvdW5kIGltYWdlLCBpZ25vcmVkIGlmIHpvb21lZC1pbiBvciB2aWV3cG9ydCB3aWR0aCBpcyBzbWFsbGVyIHRoYW4gODAwcHgKICAgICAgICBtYXJnaW4gOiBbNDQsIDBdLAoKICAgICAgICAvLyBIb3Jpem9udGFsIHNwYWNlIGJldHdlZW4gc2xpZGVzCiAgICAgICAgZ3V0dGVyIDogNTAsCgogICAgICAgIC8vIEVuYWJsZSBrZXlib2FyZCBuYXZpZ2F0aW9uCiAgICAgICAga2V5Ym9hcmQgOiB0cnVlLAoKICAgICAgICAvLyBTaG91bGQgZGlzcGxheSBuYXZpZ2F0aW9uIGFycm93cyBhdCB0aGUgc2NyZWVuIGVkZ2VzCiAgICAgICAgYXJyb3dzIDogdHJ1ZSwKCiAgICAgICAgLy8gU2hvdWxkIGRpc3BsYXkgaW5mb2JhciAoY291bnRlciBhbmQgYXJyb3dzIGF0IHRoZSB0b3ApCiAgICAgICAgaW5mb2JhciA6IHRydWUsCgogICAgICAgIC8vIFNob3VsZCBkaXNwbGF5IHRvb2xiYXIgKGJ1dHRvbnMgYXQgdGhlIHRvcCkKICAgICAgICB0b29sYmFyIDogdHJ1ZSwKCiAgICAgICAgLy8gV2hhdCBidXR0b25zIHNob3VsZCBhcHBlYXIgaW4gdGhlIHRvcCByaWdodCBjb3JuZXIuCiAgICAgICAgLy8gQnV0dG9ucyB3aWxsIGJlIGNyZWF0ZWQgdXNpbmcgdGVtcGxhdGVzIGZyb20gYGJ0blRwbGAgb3B0aW9uCiAgICAgICAgLy8gYW5kIHRoZXkgd2lsbCBiZSBwbGFjZWQgaW50byB0b29sYmFyIChjbGFzcz0iZmFuY3lib3gtdG9vbGJhciJgIGVsZW1lbnQpCiAgICAgICAgYnV0dG9ucyA6IFsKICAgICAgICAgICAgJ3NsaWRlU2hvdycsCiAgICAgICAgICAgICdmdWxsU2NyZWVuJywKICAgICAgICAgICAgJ3RodW1icycsCiAgICAgICAgICAgICdzaGFyZScsCiAgICAgICAgICAgIC8vJ2Rvd25sb2FkJywKICAgICAgICAgICAgLy8nem9vbScsCiAgICAgICAgICAgICdjbG9zZScKICAgICAgICBdLAoKICAgICAgICAvLyBEZXRlY3QgImlkbGUiIHRpbWUgaW4gc2Vjb25kcwogICAgICAgIGlkbGVUaW1lIDogMywKCiAgICAgICAgLy8gU2hvdWxkIGRpc3BsYXkgYnV0dG9ucyBhdCB0b3AgcmlnaHQgY29ybmVyIG9mIHRoZSBjb250ZW50CiAgICAgICAgLy8gSWYgJ2F1dG8nIC0gdGhleSB3aWxsIGJlIGNyZWF0ZWQgZm9yIGNvbnRlbnQgaGF2aW5nIHR5cGUgJ2h0bWwnLCAnaW5saW5lJyBvciAnYWpheCcKICAgICAgICAvLyBVc2UgdGVtcGxhdGUgZnJvbSBgYnRuVHBsLnNtYWxsQnRuYCBmb3IgY3VzdG9taXphdGlvbgogICAgICAgIHNtYWxsQnRuIDogJ2F1dG8nLAoKICAgICAgICAvLyBEaXNhYmxlIHJpZ2h0LWNsaWNrIGFuZCB1c2Ugc2ltcGxlIGltYWdlIHByb3RlY3Rpb24gZm9yIGltYWdlcwogICAgICAgIHByb3RlY3QgOiBmYWxzZSwKCiAgICAgICAgLy8gU2hvcnRjdXQgdG8gbWFrZSBjb250ZW50ICJtb2RhbCIgLSBkaXNhYmxlIGtleWJvYXJkIG5hdmlndGlvbiwgaGlkZSBidXR0b25zLCBldGMKICAgICAgICBtb2RhbCA6IGZhbHNlLAoKICAgICAgICBpbWFnZSA6IHsKCiAgICAgICAgICAgIC8vIFdhaXQgZm9yIGltYWdlcyB0byBsb2FkIGJlZm9yZSBkaXNwbGF5aW5nCiAgICAgICAgICAgIC8vIFJlcXVpcmVzIHByZWRlZmluZWQgaW1hZ2UgZGltZW5zaW9ucwogICAgICAgICAgICAvLyBJZiAnYXV0bycgLSB3aWxsIHpvb20gaW4gdGh1bWJuYWlsIGlmICd3aWR0aCcgYW5kICdoZWlnaHQnIGF0dHJpYnV0ZXMgYXJlIGZvdW5kCiAgICAgICAgICAgIHByZWxvYWQgOiAiYXV0byIKCiAgICAgICAgfSwKCiAgICAgICAgYWpheCA6IHsKCiAgICAgICAgICAgIC8vIE9iamVjdCBjb250YWluaW5nIHNldHRpbmdzIGZvciBhamF4IHJlcXVlc3QKICAgICAgICAgICAgc2V0dGluZ3MgOiB7CgogICAgICAgICAgICAgICAgLy8gVGhpcyBoZWxwcyB0byBpbmRpY2F0ZSB0aGF0IHJlcXVlc3QgY29tZXMgZnJvbSB0aGUgbW9kYWwKICAgICAgICAgICAgICAgIC8vIEZlZWwgZnJlZSB0byBjaGFuZ2UgbmFtaW5nCiAgICAgICAgICAgICAgICBkYXRhIDogewogICAgICAgICAgICAgICAgICAgIGZhbmN5Ym94IDogdHJ1ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgIH0sCgogICAgICAgIGlmcmFtZSA6IHsKCiAgICAgICAgICAgIC8vIElmcmFtZSB0ZW1wbGF0ZQogICAgICAgICAgICB0cGwgOiAnPGlmcmFtZSBpZD0iZmFuY3lib3gtZnJhbWV7cm5kfSIgbmFtZT0iZmFuY3lib3gtZnJhbWV7cm5kfSIgY2xhc3M9ImZhbmN5Ym94LWlmcmFtZSIgZnJhbWVib3JkZXI9IjAiIHZzcGFjZT0iMCIgaHNwYWNlPSIwIiB3ZWJraXRBbGxvd0Z1bGxTY3JlZW4gbW96YWxsb3dmdWxsc2NyZWVuIGFsbG93RnVsbFNjcmVlbiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgc3JjPSIiPjwvaWZyYW1lPicsCgogICAgICAgICAgICAvLyBQcmVsb2FkIGlmcmFtZSBiZWZvcmUgZGlzcGxheWluZyBpdAogICAgICAgICAgICAvLyBUaGlzIGFsbG93cyB0byBjYWxjdWxhdGUgaWZyYW1lIGNvbnRlbnQgd2lkdGggYW5kIGhlaWdodAogICAgICAgICAgICAvLyAobm90ZTogRHVlIHRvICJTYW1lIE9yaWdpbiBQb2xpY3kiLCB5b3UgY2FuJ3QgZ2V0IGNyb3NzIGRvbWFpbiBkYXRhKS4KICAgICAgICAgICAgcHJlbG9hZCA6IHRydWUsCgogICAgICAgICAgICAvLyBDdXN0b20gQ1NTIHN0eWxpbmcgZm9yIGlmcmFtZSB3cmFwcGluZyBlbGVtZW50CiAgICAgICAgICAgIC8vIFlvdSBjYW4gdXNlIHRoaXMgdG8gc2V0IGN1c3RvbSBpZnJhbWUgZGltZW5zaW9ucwogICAgICAgICAgICBjc3MgOiB7fSwKCiAgICAgICAgICAgIC8vIElmcmFtZSB0YWcgYXR0cmlidXRlcwogICAgICAgICAgICBhdHRyIDogewogICAgICAgICAgICAgICAgc2Nyb2xsaW5nIDogJ2F1dG8nCiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKCiAgICAgICAgLy8gRGVmYXVsdCBjb250ZW50IHR5cGUgaWYgY2Fubm90IGJlIGRldGVjdGVkIGF1dG9tYXRpY2FsbHkKICAgICAgICBkZWZhdWx0VHlwZSA6ICdpbWFnZScsCgogICAgICAgIC8vIE9wZW4vY2xvc2UgYW5pbWF0aW9uIHR5cGUKICAgICAgICAvLyBQb3NzaWJsZSB2YWx1ZXM6CiAgICAgICAgLy8gICBmYWxzZSAgICAgICAgICAgIC0gZGlzYWJsZQogICAgICAgIC8vICAgInpvb20iICAgICAgICAgICAtIHpvb20gaW1hZ2VzIGZyb20vdG8gdGh1bWJuYWlsCiAgICAgICAgLy8gICAiZmFkZSIKICAgICAgICAvLyAgICJ6b29tLWluLW91dCIKICAgICAgICAvLwogICAgICAgIGFuaW1hdGlvbkVmZmVjdCA6ICJ6b29tIiwKCiAgICAgICAgLy8gRHVyYXRpb24gaW4gbXMgZm9yIG9wZW4vY2xvc2UgYW5pbWF0aW9uCiAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24gOiA1MDAsCgogICAgICAgIC8vIFNob3VsZCBpbWFnZSBjaGFuZ2Ugb3BhY2l0eSB3aGlsZSB6b29taW5nCiAgICAgICAgLy8gSWYgb3BhY2l0eSBpcyAiYXV0byIsIHRoZW4gb3BhY2l0eSB3aWxsIGJlIGNoYW5nZWQgaWYgaW1hZ2UgYW5kIHRodW1ibmFpbCBoYXZlIGRpZmZlcmVudCBhc3BlY3QgcmF0aW9zCiAgICAgICAgem9vbU9wYWNpdHkgOiAiYXV0byIsCgogICAgICAgIC8vIFRyYW5zaXRpb24gZWZmZWN0IGJldHdlZW4gc2xpZGVzCiAgICAgICAgLy8KICAgICAgICAvLyBQb3NzaWJsZSB2YWx1ZXM6CiAgICAgICAgLy8gICBmYWxzZSAgICAgICAgICAgIC0gZGlzYWJsZQogICAgICAgIC8vICAgImZhZGUnCiAgICAgICAgLy8gICAic2xpZGUnCiAgICAgICAgLy8gICAiY2lyY3VsYXInCiAgICAgICAgLy8gICAidHViZScKICAgICAgICAvLyAgICJ6b29tLWluLW91dCcKICAgICAgICAvLyAgICJyb3RhdGUnCiAgICAgICAgLy8KICAgICAgICB0cmFuc2l0aW9uRWZmZWN0IDogImZhZGUiLAoKICAgICAgICAvLyBEdXJhdGlvbiBpbiBtcyBmb3IgdHJhbnNpdGlvbiBhbmltYXRpb24KICAgICAgICB0cmFuc2l0aW9uRHVyYXRpb24gOiAzNjYsCgogICAgICAgIC8vIEN1c3RvbSBDU1MgY2xhc3MgZm9yIHNsaWRlIGVsZW1lbnQKICAgICAgICBzbGlkZUNsYXNzIDogJycsCgogICAgICAgIC8vIEN1c3RvbSBDU1MgY2xhc3MgZm9yIGxheW91dAogICAgICAgIGJhc2VDbGFzcyA6ICcnLAoKICAgICAgICAvLyBCYXNlIHRlbXBsYXRlIGZvciBsYXlvdXQKICAgICAgICBiYXNlVHBsCToKICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWNvbnRhaW5lciIgcm9sZT0iZGlhbG9nIiB0YWJpbmRleD0iLTEiPicgKwogICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWJnIj48L2Rpdj4nICsKICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYW5jeWJveC1pbm5lciI+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWluZm9iYXIiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gZGF0YS1mYW5jeWJveC1pbmRleD48L3NwYW4+Jm5ic3A7LyZuYnNwOzxzcGFuIGRhdGEtZmFuY3lib3gtY291bnQ+PC9zcGFuPicgKwogICAgICAgICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFuY3lib3gtdG9vbGJhciI+e3tidXR0b25zfX08L2Rpdj4nICsKICAgICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iZmFuY3lib3gtbmF2aWdhdGlvbiI+e3thcnJvd3N9fTwvZGl2PicgKwogICAgICAgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJmYW5jeWJveC1zdGFnZSI+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWNhcHRpb24td3JhcCI+PGRpdiBjbGFzcz0iZmFuY3lib3gtY2FwdGlvbiI+PC9kaXY+PC9kaXY+JyArCiAgICAgICAgICAgICAgICAnPC9kaXY+JyArCiAgICAgICAgICAgICc8L2Rpdj4nLAoKICAgICAgICAvLyBMb2FkaW5nIGluZGljYXRvciB0ZW1wbGF0ZQogICAgICAgIHNwaW5uZXJUcGwgOiAnPGRpdiBjbGFzcz0iZmFuY3lib3gtbG9hZGluZyI+PC9kaXY+JywKCiAgICAgICAgLy8gRXJyb3IgbWVzc2FnZSB0ZW1wbGF0ZQogICAgICAgIGVycm9yVHBsIDogJzxkaXYgY2xhc3M9ImZhbmN5Ym94LWVycm9yIj48cD57e0VSUk9SfX08cD48L2Rpdj4nLAoKICAgICAgICBidG5UcGwgOiB7CgogICAgICAgICAgICBkb3dubG9hZCA6ICc8YSBkb3dubG9hZCBkYXRhLWZhbmN5Ym94LWRvd25sb2FkIGNsYXNzPSJmYW5jeWJveC1idXR0b24gZmFuY3lib3gtYnV0dG9uLS1kb3dubG9hZCIgdGl0bGU9Int7RE9XTkxPQUR9fSI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8c3ZnIHZpZXdCb3g9IjAgMCA0MCA0MCI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHBhdGggZD0iTTIwLDIzIEwyMCw4IEwyMCwyMyBMMTMsMTYgTDIwLDIzIEwyNywxNiBMMjAsMjMgTTI2LDI4IEwxMywyOCBMMjcsMjggTDE0LDI4IiAvPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPC9zdmc+JyArCiAgICAgICAgICAgICAgICAgICAgJzwvYT4nLAoKICAgICAgICAgICAgem9vbSA6ICc8YnV0dG9uIGRhdGEtZmFuY3lib3gtem9vbSBjbGFzcz0iZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tem9vbSIgdGl0bGU9Int7Wk9PTX19Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzxzdmcgdmlld0JveD0iMCAwIDQwIDQwIj4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICc8cGF0aCBkPSJNIDE4LDE3IG0tOCwwIGEgOCw4IDAgMSwwIDE2LDAgYSA4LDggMCAxLDAgLTE2LDAgTTI1LDIzIEwzMSwyOSBMMjUsMjMiIC8+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICc8L3N2Zz4nICsKICAgICAgICAgICAgICAgICAgICAnPC9idXR0b24+JywKCiAgICAgICAgICAgIGNsb3NlIDogJzxidXR0b24gZGF0YS1mYW5jeWJveC1jbG9zZSBjbGFzcz0iZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tY2xvc2UiIHRpdGxlPSJ7e0NMT1NFfX0iPicgKwogICAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB2aWV3Qm94PSIwIDAgNDAgNDAiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxwYXRoIGQ9Ik0xMCwxMCBMMzAsMzAgTTMwLDEwIEwxMCwzMCIgLz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzwvc3ZnPicgKwogICAgICAgICAgICAgICAgICAgICc8L2J1dHRvbj4nLAoKICAgICAgICAgICAgLy8gVGhpcyBzbWFsbCBjbG9zZSBidXR0b24gd2lsbCBiZSBhcHBlbmRlZCB0byB5b3VyIGh0bWwvaW5saW5lL2FqYXggY29udGVudCBieSBkZWZhdWx0LAogICAgICAgICAgICAvLyBpZiAic21hbGxCdG4iIG9wdGlvbiBpcyBub3Qgc2V0IHRvIGZhbHNlCiAgICAgICAgICAgIHNtYWxsQnRuICAgOiAnPGJ1dHRvbiBkYXRhLWZhbmN5Ym94LWNsb3NlIGNsYXNzPSJmYW5jeWJveC1jbG9zZS1zbWFsbCIgdGl0bGU9Int7Q0xPU0V9fSI+PC9idXR0b24+JywKCiAgICAgICAgICAgIC8vIEFycm93cwogICAgICAgICAgICBhcnJvd0xlZnQgOiAnPGJ1dHRvbiBkYXRhLWZhbmN5Ym94LXByZXYgY2xhc3M9ImZhbmN5Ym94LWJ1dHRvbiBmYW5jeWJveC1idXR0b24tLWFycm93X2xlZnQiIHRpdGxlPSJ7e1BSRVZ9fSI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB2aWV3Qm94PSIwIDAgNDAgNDAiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPHBhdGggZD0iTTEwLDIwIEwzMCwyMCBMMTAsMjAgTDE4LDI4IEwxMCwyMCBMMTgsMTIgTDEwLDIwIj48L3BhdGg+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPC9zdmc+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgJzwvYnV0dG9uPicsCgogICAgICAgICAgICBhcnJvd1JpZ2h0IDogJzxidXR0b24gZGF0YS1mYW5jeWJveC1uZXh0IGNsYXNzPSJmYW5jeWJveC1idXR0b24gZmFuY3lib3gtYnV0dG9uLS1hcnJvd19yaWdodCIgdGl0bGU9Int7TkVYVH19Ij4nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAnPHN2ZyB2aWV3Qm94PSIwIDAgNDAgNDAiPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxwYXRoIGQ9Ik0zMCwyMCBMMTAsMjAgTDMwLDIwIEwyMiwyOCBMMzAsMjAgTDIyLDEyIEwzMCwyMCI+PC9wYXRoPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICc8L3N2Zz4nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzwvYnV0dG9uPicKICAgICAgICB9LAoKICAgICAgICAvLyBDb250YWluZXIgaXMgaW5qZWN0ZWQgaW50byB0aGlzIGVsZW1lbnQKICAgICAgICBwYXJlbnRFbCA6ICdib2R5JywKCgogICAgICAgIC8vIEZvY3VzIGhhbmRsaW5nCiAgICAgICAgLy8gPT09PT09PT09PT09PT0KCiAgICAgICAgLy8gVHJ5IHRvIGZvY3VzIG9uIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBhZnRlciBvcGVuaW5nCiAgICAgICAgYXV0b0ZvY3VzIDogZmFsc2UsCgogICAgICAgIC8vIFB1dCBmb2N1cyBiYWNrIHRvIGFjdGl2ZSBlbGVtZW50IGFmdGVyIGNsb3NpbmcKICAgICAgICBiYWNrRm9jdXMgOiB0cnVlLAoKICAgICAgICAvLyBEbyBub3QgbGV0IHVzZXIgdG8gZm9jdXMgb24gZWxlbWVudCBvdXRzaWRlIG1vZGFsIGNvbnRlbnQKICAgICAgICB0cmFwRm9jdXMgOiB0cnVlLAoKCiAgICAgICAgLy8gTW9kdWxlIHNwZWNpZmljIG9wdGlvbnMKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBmdWxsU2NyZWVuIDogewogICAgICAgICAgICBhdXRvU3RhcnQgOiBmYWxzZSwKICAgICAgICB9LAoKICAgICAgICAvLyBTZXQgYHRvdWNoOiBmYWxzZWAgdG8gZGlzYWJsZSBkcmFnZ2luZy9zd2lwaW5nCiAgICAgICAgdG91Y2ggOiB7CiAgICAgICAgICAgIHZlcnRpY2FsIDogdHJ1ZSwgIC8vIEFsbG93IHRvIGRyYWcgY29udGVudCB2ZXJ0aWNhbGx5CiAgICAgICAgICAgIG1vbWVudHVtIDogdHJ1ZSAgIC8vIENvbnRpbnVlIG1vdmVtZW50IGFmdGVyIHJlbGVhc2luZyBtb3VzZS90b3VjaCB3aGVuIHBhbm5pbmcKICAgICAgICB9LAoKICAgICAgICAvLyBIYXNoIHZhbHVlIHdoZW4gaW5pdGlhbGl6aW5nIG1hbnVhbGx5LAogICAgICAgIC8vIHNldCBgZmFsc2VgIHRvIGRpc2FibGUgaGFzaCBjaGFuZ2UKICAgICAgICBoYXNoIDogbnVsbCwKCiAgICAgICAgLy8gQ3VzdG9taXplIG9yIGFkZCBuZXcgbWVkaWEgdHlwZXMKICAgICAgICAvLyBFeGFtcGxlOgogICAgICAgIC8qCiAgICAgICAgbWVkaWEgOiB7CiAgICAgICAgICAgIHlvdXR1YmUgOiB7CiAgICAgICAgICAgICAgICBwYXJhbXMgOiB7CiAgICAgICAgICAgICAgICAgICAgYXV0b3BsYXkgOiAwCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgKi8KICAgICAgICBtZWRpYSA6IHt9LAoKICAgICAgICBzbGlkZVNob3cgOiB7CiAgICAgICAgICAgIGF1dG9TdGFydCA6IGZhbHNlLAogICAgICAgICAgICBzcGVlZCAgICAgOiA0MDAwCiAgICAgICAgfSwKCiAgICAgICAgdGh1bWJzIDogewoJCQlhdXRvU3RhcnQgICA6IGZhbHNlLCAgICAgICAgICAgICAgICAgIC8vIERpc3BsYXkgdGh1bWJuYWlscyBvbiBvcGVuaW5nCgkJCWhpZGVPbkNsb3NlIDogdHJ1ZSwgICAgICAgICAgICAgICAgICAgLy8gSGlkZSB0aHVtYm5haWwgZ3JpZCB3aGVuIGNsb3NpbmcgYW5pbWF0aW9uIHN0YXJ0cwoJCQlwYXJlbnRFbCAgICA6ICcuZmFuY3lib3gtY29udGFpbmVyJywgIC8vIENvbnRhaW5lciBpcyBpbmplY3RlZCBpbnRvIHRoaXMgZWxlbWVudAoJCQlheGlzICAgICAgICA6ICd5JyAgICAgICAgICAgICAgICAgICAgIC8vIFZlcnRpY2FsICh5KSBvciBob3Jpem9udGFsICh4KSBzY3JvbGxpbmcKCQl9LAoKICAgICAgICAvLyBVc2UgbW91c2V3aGVlbCB0byBuYXZpZ2F0ZSBnYWxsZXJ5CiAgICAgICAgLy8gSWYgJ2F1dG8nIC0gZW5hYmxlZCBmb3IgaW1hZ2VzIG9ubHkKICAgICAgICB3aGVlbCA6ICdhdXRvJywKCiAgICAgICAgLy8gQ2FsbGJhY2tzCiAgICAgICAgLy89PT09PT09PT09CgogICAgICAgIC8vIFNlZSBEb2N1bWVudGF0aW9uL0FQSS9FdmVudHMgZm9yIG1vcmUgaW5mb3JtYXRpb24KICAgICAgICAvLyBFeGFtcGxlOgogICAgICAgIC8qCiAgICAgICAgICAgIGFmdGVyU2hvdzogZnVuY3Rpb24oIGluc3RhbmNlLCBjdXJyZW50ICkgewogICAgICAgICAgICAgICAgIGNvbnNvbGUuaW5mbyggJ0NsaWNrZWQgZWxlbWVudDonICk7CiAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCBjdXJyZW50Lm9wdHMuJG9yaWcgKTsKICAgICAgICAgICAgfQogICAgICAgICovCgogICAgICAgIG9uSW5pdCAgICAgICA6ICQubm9vcCwgIC8vIFdoZW4gaW5zdGFuY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQKCiAgICAgICAgYmVmb3JlTG9hZCAgIDogJC5ub29wLCAgLy8gQmVmb3JlIHRoZSBjb250ZW50IG9mIGEgc2xpZGUgaXMgYmVpbmcgbG9hZGVkCiAgICAgICAgYWZ0ZXJMb2FkICAgIDogJC5ub29wLCAgLy8gV2hlbiB0aGUgY29udGVudCBvZiBhIHNsaWRlIGlzIGRvbmUgbG9hZGluZwoKICAgICAgICBiZWZvcmVTaG93ICAgOiAkLm5vb3AsICAvLyBCZWZvcmUgb3BlbiBhbmltYXRpb24gc3RhcnRzCiAgICAgICAgYWZ0ZXJTaG93ICAgIDogJC5ub29wLCAgLy8gV2hlbiBjb250ZW50IGlzIGRvbmUgbG9hZGluZyBhbmQgYW5pbWF0aW5nCgogICAgICAgIGJlZm9yZUNsb3NlICA6ICQubm9vcCwgIC8vIEJlZm9yZSB0aGUgaW5zdGFuY2UgYXR0ZW1wdHMgdG8gY2xvc2UuIFJldHVybiBmYWxzZSB0byBjYW5jZWwgdGhlIGNsb3NlLgogICAgICAgIGFmdGVyQ2xvc2UgICA6ICQubm9vcCwgIC8vIEFmdGVyIGluc3RhbmNlIGhhcyBiZWVuIGNsb3NlZAoKICAgICAgICBvbkFjdGl2YXRlICAgOiAkLm5vb3AsICAvLyBXaGVuIGluc3RhbmNlIGlzIGJyb3VnaHQgdG8gZnJvbnQKICAgICAgICBvbkRlYWN0aXZhdGUgOiAkLm5vb3AsICAvLyBXaGVuIG90aGVyIGluc3RhbmNlIGhhcyBiZWVuIGFjdGl2YXRlZAoKCiAgICAgICAgLy8gSW50ZXJhY3Rpb24KICAgICAgICAvLyA9PT09PT09PT09PQoKICAgICAgICAvLyBVc2Ugb3B0aW9ucyBiZWxvdyB0byBjdXN0b21pemUgdGFrZW4gYWN0aW9uIHdoZW4gdXNlciBjbGlja3Mgb3IgZG91YmxlIGNsaWNrcyBvbiB0aGUgZmFuY3lCb3ggYXJlYSwKICAgICAgICAvLyBlYWNoIG9wdGlvbiBjYW4gYmUgc3RyaW5nIG9yIG1ldGhvZCB0aGF0IHJldHVybnMgdmFsdWUuCiAgICAgICAgLy8KICAgICAgICAvLyBQb3NzaWJsZSB2YWx1ZXM6CiAgICAgICAgLy8gICAiY2xvc2UiICAgICAgICAgICAtIGNsb3NlIGluc3RhbmNlCiAgICAgICAgLy8gICAibmV4dCIgICAgICAgICAgICAtIG1vdmUgdG8gbmV4dCBnYWxsZXJ5IGl0ZW0KICAgICAgICAvLyAgICJuZXh0T3JDbG9zZSIgICAgIC0gbW92ZSB0byBuZXh0IGdhbGxlcnkgaXRlbSBvciBjbG9zZSBpZiBnYWxsZXJ5IGhhcyBvbmx5IG9uZSBpdGVtCiAgICAgICAgLy8gICAidG9nZ2xlQ29udHJvbHMiICAtIHNob3cvaGlkZSBjb250cm9scwogICAgICAgIC8vICAgInpvb20iICAgICAgICAgICAgLSB6b29tIGltYWdlIChpZiBsb2FkZWQpCiAgICAgICAgLy8gICBmYWxzZSAgICAgICAgICAgICAtIGRvIG5vdGhpbmcKCiAgICAgICAgLy8gQ2xpY2tlZCBvbiB0aGUgY29udGVudAogICAgICAgIGNsaWNrQ29udGVudCA6IGZ1bmN0aW9uKCBjdXJyZW50LCBldmVudCApIHsKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQudHlwZSA9PT0gJ2ltYWdlJyA/ICd6b29tJyA6IGZhbHNlOwogICAgICAgIH0sCgogICAgICAgIC8vIENsaWNrZWQgb24gdGhlIHNsaWRlCiAgICAgICAgY2xpY2tTbGlkZSA6ICdjbG9zZScsCgogICAgICAgIC8vIENsaWNrZWQgb24gdGhlIGJhY2tncm91bmQgKGJhY2tkcm9wKSBlbGVtZW50CiAgICAgICAgY2xpY2tPdXRzaWRlIDogJ2Nsb3NlJywKCiAgICAgICAgLy8gU2FtZSBhcyBwcmV2aW91cyB0d28sIGJ1dCBmb3IgZG91YmxlIGNsaWNrCiAgICAgICAgZGJsY2xpY2tDb250ZW50IDogZmFsc2UsCiAgICAgICAgZGJsY2xpY2tTbGlkZSAgIDogZmFsc2UsCiAgICAgICAgZGJsY2xpY2tPdXRzaWRlIDogZmFsc2UsCgoKICAgICAgICAvLyBDdXN0b20gb3B0aW9ucyB3aGVuIG1vYmlsZSBkZXZpY2UgaXMgZGV0ZWN0ZWQKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgbW9iaWxlIDogewogICAgICAgICAgICBpZGxlVGltZSA6IGZhbHNlLAogICAgICAgICAgICBtYXJnaW4gICA6IDAsCgogICAgICAgICAgICBjbGlja0NvbnRlbnQgOiBmdW5jdGlvbiggY3VycmVudCwgZXZlbnQgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudC50eXBlID09PSAnaW1hZ2UnID8gJ3RvZ2dsZUNvbnRyb2xzJyA6IGZhbHNlOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjbGlja1NsaWRlIDogZnVuY3Rpb24oIGN1cnJlbnQsIGV2ZW50ICkgewogICAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnQudHlwZSA9PT0gJ2ltYWdlJyA/ICd0b2dnbGVDb250cm9scycgOiAnY2xvc2UnOwogICAgICAgICAgICB9LAogICAgICAgICAgICBkYmxjbGlja0NvbnRlbnQgOiBmdW5jdGlvbiggY3VycmVudCwgZXZlbnQgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudC50eXBlID09PSAnaW1hZ2UnID8gJ3pvb20nIDogZmFsc2U7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRibGNsaWNrU2xpZGUgOiBmdW5jdGlvbiggY3VycmVudCwgZXZlbnQgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudC50eXBlID09PSAnaW1hZ2UnID8gJ3pvb20nIDogZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKCiAgICAgICAgLy8gSW50ZXJuYXRpb25hbGl6YXRpb24KICAgICAgICAvLyA9PT09PT09PT09PT0KCiAgICAgICAgbGFuZyA6ICdlbicsCiAgICAgICAgaTE4biA6IHsKICAgICAgICAgICAgJ2VuJyA6IHsKICAgICAgICAgICAgICAgIENMT1NFICAgICAgIDogJ0Nsb3NlJywKICAgICAgICAgICAgICAgIE5FWFQgICAgICAgIDogJ05leHQnLAogICAgICAgICAgICAgICAgUFJFViAgICAgICAgOiAnUHJldmlvdXMnLAogICAgICAgICAgICAgICAgRVJST1IgICAgICAgOiAnVGhlIHJlcXVlc3RlZCBjb250ZW50IGNhbm5vdCBiZSBsb2FkZWQuIDxici8+IFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJywKICAgICAgICAgICAgICAgIFBMQVlfU1RBUlQgIDogJ1N0YXJ0IHNsaWRlc2hvdycsCiAgICAgICAgICAgICAgICBQTEFZX1NUT1AgICA6ICdQYXVzZSBzbGlkZXNob3cnLAogICAgICAgICAgICAgICAgRlVMTF9TQ1JFRU4gOiAnRnVsbCBzY3JlZW4nLAogICAgICAgICAgICAgICAgVEhVTUJTICAgICAgOiAnVGh1bWJuYWlscycsCiAgICAgICAgICAgICAgICBET1dOTE9BRCAgICA6ICdEb3dubG9hZCcsCiAgICAgICAgICAgICAgICBTSEFSRSAgICAgICA6ICdTaGFyZScsCiAgICAgICAgICAgICAgICBaT09NICAgICAgICA6ICdab29tJwogICAgICAgICAgICB9LAogICAgICAgICAgICAnZGUnIDogewogICAgICAgICAgICAgICAgQ0xPU0UgICAgICAgOiAnU2NobGllc3NlbicsCiAgICAgICAgICAgICAgICBORVhUICAgICAgICA6ICdXZWl0ZXInLAogICAgICAgICAgICAgICAgUFJFViAgICAgICAgOiAnWnVyw7xjaycsCiAgICAgICAgICAgICAgICBFUlJPUiAgICAgICA6ICdEaWUgYW5nZWZvcmRlcnRlbiBEYXRlbiBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuLiA8YnIvPiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIHNww6R0ZXIgbm9jaG1hbC4nLAogICAgICAgICAgICAgICAgUExBWV9TVEFSVCAgOiAnRGlhc2NoYXUgc3RhcnRlbicsCiAgICAgICAgICAgICAgICBQTEFZX1NUT1AgICA6ICdEaWFzY2hhdSBiZWVuZGVuJywKICAgICAgICAgICAgICAgIEZVTExfU0NSRUVOIDogJ1ZvbGxiaWxkJywKICAgICAgICAgICAgICAgIFRIVU1CUyAgICAgIDogJ1ZvcnNjaGF1YmlsZGVyJywKICAgICAgICAgICAgICAgIERPV05MT0FEICAgIDogJ0hlcnVudGVybGFkZW4nLAogICAgICAgICAgICAgICAgU0hBUkUgICAgICAgOiAnVGVpbGVuJywKICAgICAgICAgICAgICAgIFpPT00gICAgICAgIDogJ01hw59zdGFiJwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH07CgogICAgLy8gRmV3IHVzZWZ1bCB2YXJpYWJsZXMgYW5kIG1ldGhvZHMKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgdmFyICRXID0gJCh3aW5kb3cpOwogICAgdmFyICREID0gJChkb2N1bWVudCk7CgogICAgdmFyIGNhbGxlZCA9IDA7CgoKICAgIC8vIENoZWNrIGlmIGFuIG9iamVjdCBpcyBhIGpRdWVyeSBvYmplY3QgYW5kIG5vdCBhIG5hdGl2ZSBKYXZhU2NyaXB0IG9iamVjdAogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgdmFyIGlzUXVlcnkgPSBmdW5jdGlvbiAoIG9iaiApIHsKICAgICAgICByZXR1cm4gb2JqICYmIG9iai5oYXNPd25Qcm9wZXJ0eSAmJiBvYmogaW5zdGFuY2VvZiAkOwogICAgfTsKCgogICAgLy8gSGFuZGxlIG11bHRpcGxlIGJyb3dzZXJzIGZvciAicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiBhbmQgImNhbmNlbEFuaW1hdGlvbkZyYW1lIgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIHZhciByZXF1ZXN0QUZyYW1lID0gKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICAgICAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICAgICAgd2luZG93Lm1velJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAogICAgICAgICAgICAgICAgd2luZG93Lm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwKICAgICAgICAgICAgICAgIC8vIGlmIGFsbCBlbHNlIGZhaWxzLCB1c2Ugc2V0VGltZW91dAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKGNhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KGNhbGxiYWNrLCAxMDAwIC8gNjApOwogICAgICAgICAgICAgICAgfTsKICAgIH0pKCk7CgoKICAgIC8vIERldGVjdCB0aGUgc3VwcG9ydGVkIHRyYW5zaXRpb24tZW5kIGV2ZW50IHByb3BlcnR5IG5hbWUKICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICB2YXIgdHJhbnNpdGlvbkVuZCA9IChmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHQsIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmFrZWVsZW1lbnQiKTsKCiAgICAgICAgdmFyIHRyYW5zaXRpb25zID0gewogICAgICAgICAgICAidHJhbnNpdGlvbiIgICAgICA6ICJ0cmFuc2l0aW9uZW5kIiwKICAgICAgICAgICAgIk9UcmFuc2l0aW9uIiAgICAgOiAib1RyYW5zaXRpb25FbmQiLAogICAgICAgICAgICAiTW96VHJhbnNpdGlvbiIgICA6ICJ0cmFuc2l0aW9uZW5kIiwKICAgICAgICAgICAgIldlYmtpdFRyYW5zaXRpb24iOiAid2Via2l0VHJhbnNpdGlvbkVuZCIKICAgICAgICB9OwoKICAgICAgICBmb3IgKHQgaW4gdHJhbnNpdGlvbnMpIHsKICAgICAgICAgICAgaWYgKGVsLnN0eWxlW3RdICE9PSB1bmRlZmluZWQpewogICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zaXRpb25zW3RdOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJ3RyYW5zaXRpb25lbmQnOwogICAgfSkoKTsKCgogICAgLy8gRm9yY2UgcmVkcmF3IG9uIGFuIGVsZW1lbnQuCiAgICAvLyBUaGlzIGhlbHBzIGluIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIGRvZXNuJ3QgcmVkcmF3IGFuIHVwZGF0ZWQgZWxlbWVudCBwcm9wZXJseS4KICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIHZhciBmb3JjZVJlZHJhdyA9IGZ1bmN0aW9uKCAkZWwgKSB7CiAgICAgICAgcmV0dXJuICggJGVsICYmICRlbC5sZW5ndGggJiYgJGVsWzBdLm9mZnNldEhlaWdodCApOwogICAgfTsKCgogICAgLy8gQ2xhc3MgZGVmaW5pdGlvbgogICAgLy8gPT09PT09PT09PT09PT09PQoKICAgIHZhciBGYW5jeUJveCA9IGZ1bmN0aW9uKCBjb250ZW50LCBvcHRzLCBpbmRleCApIHsKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIHNlbGYub3B0cyA9ICQuZXh0ZW5kKCB0cnVlLCB7IGluZGV4IDogaW5kZXggfSwgJC5mYW5jeWJveC5kZWZhdWx0cywgb3B0cyB8fCB7fSApOwoKICAgICAgICBpZiAoICQuZmFuY3lib3guaXNNb2JpbGUgKSB7CiAgICAgICAgICAgIHNlbGYub3B0cyA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgc2VsZi5vcHRzLCBzZWxmLm9wdHMubW9iaWxlICk7CiAgICAgICAgfQoKICAgICAgICAvLyBFeGNsdWRlIGJ1dHRvbnMgb3B0aW9uIGZyb20gZGVlcCBtZXJnaW5nCiAgICAgICAgaWYgKCBvcHRzICYmICQuaXNBcnJheSggb3B0cy5idXR0b25zICkgKSB7CiAgICAgICAgICAgIHNlbGYub3B0cy5idXR0b25zID0gb3B0cy5idXR0b25zOwogICAgICAgIH0KCiAgICAgICAgc2VsZi5pZCAgICA9IHNlbGYub3B0cy5pZCB8fCArK2NhbGxlZDsKICAgICAgICBzZWxmLmdyb3VwID0gW107CgogICAgICAgIHNlbGYuY3VyckluZGV4ID0gcGFyc2VJbnQoIHNlbGYub3B0cy5pbmRleCwgMTAgKSB8fCAwOwogICAgICAgIHNlbGYucHJldkluZGV4ID0gbnVsbDsKCiAgICAgICAgc2VsZi5wcmV2UG9zID0gbnVsbDsKICAgICAgICBzZWxmLmN1cnJQb3MgPSAwOwoKICAgICAgICBzZWxmLmZpcnN0UnVuID0gbnVsbDsKCiAgICAgICAgLy8gQ3JlYXRlIGdyb3VwIGVsZW1lbnRzIGZyb20gb3JpZ2luYWwgaXRlbSBjb2xsZWN0aW9uCiAgICAgICAgc2VsZi5jcmVhdGVHcm91cCggY29udGVudCApOwoKICAgICAgICBpZiAoICFzZWxmLmdyb3VwLmxlbmd0aCApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgLy8gU2F2ZSBsYXN0IGFjdGl2ZSBlbGVtZW50IGFuZCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbgogICAgICAgIHNlbGYuJGxhc3RGb2N1cyA9ICQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuYmx1cigpOwoKICAgICAgICAvLyBDb2xsZWN0aW9uIG9mIGdhbGxlcnkgb2JqZWN0cwogICAgICAgIHNlbGYuc2xpZGVzID0ge307CgogICAgICAgIHNlbGYuaW5pdCgpOwogICAgfTsKCiAgICAkLmV4dGVuZChGYW5jeUJveC5wcm90b3R5cGUsIHsKCiAgICAgICAgLy8gQ3JlYXRlIERPTSBzdHJ1Y3R1cmUKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBpbml0IDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcywKICAgICAgICAgICAgICAgIGZpcnN0SXRlbSAgICAgID0gc2VsZi5ncm91cFsgc2VsZi5jdXJySW5kZXggXSwKICAgICAgICAgICAgICAgIGZpcnN0SXRlbU9wdHMgID0gZmlyc3RJdGVtLm9wdHMsCiAgICAgICAgICAgICAgICBzY3JvbGxiYXJXaWR0aCA9ICQuZmFuY3lib3guc2Nyb2xsYmFyV2lkdGgsCiAgICAgICAgICAgICAgICAkc2Nyb2xsRGl2LAogICAgICAgICAgICAgICAgJGNvbnRhaW5lciwKICAgICAgICAgICAgICAgIGJ1dHRvblN0cjsKCiAgICAgICAgICAgIHNlbGYuc2Nyb2xsVG9wICA9ICRELnNjcm9sbFRvcCgpOwogICAgICAgICAgICBzZWxmLnNjcm9sbExlZnQgPSAkRC5zY3JvbGxMZWZ0KCk7CgoKICAgICAgICAgICAgLy8gSGlkZSBzY3JvbGxiYXJzCiAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PQoKICAgICAgICAgICAgaWYgKCAhJC5mYW5jeWJveC5nZXRJbnN0YW5jZSgpICkgewoKICAgICAgICAgICAgICAgICQoICdib2R5JyApLmFkZENsYXNzKCAnZmFuY3lib3gtYWN0aXZlJyApOwoKICAgICAgICAgICAgICAgIC8vIGlPUyBoYWNrCiAgICAgICAgICAgICAgICBpZiAoIC9pUGFkfGlQaG9uZXxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpICYmICF3aW5kb3cuTVNTdHJlYW0gKSB7CgogICAgICAgICAgICAgICAgICAgIC8vIGlPUyBoYXMgcHJvYmxlbXMgZm9yIGlucHV0IGVsZW1lbnRzIGluc2lkZSBmaXhlZCBjb250YWluZXJzLAogICAgICAgICAgICAgICAgICAgIC8vIHRoZSB3b3JrYXJvdW5kIGlzIHRvIGFwcGx5IGBwb3NpdGlvbjogZml4ZWRgIHRvIGA8Ym9keT5gIGVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgLy8gdW5mb3J0dW5hdGVseSwgdGhpcyBtYWtlcyBpdCBsb3NlIHRoZSBzY3JvbGxiYXJzIGFuZCBmb3JjZXMgYWRkcmVzcyBiYXIgdG8gYXBwZWFyLgoKICAgICAgICAgICAgICAgICAgICBpZiAoIGZpcnN0SXRlbS50eXBlICE9PSAnaW1hZ2UnICkgewogICAgICAgICAgICAgICAgICAgICAgICAkKCAnYm9keScgKS5jc3MoICd0b3AnLCAkKCAnYm9keScgKS5zY3JvbGxUb3AoKSAqIC0xICkuYWRkQ2xhc3MoICdmYW5jeWJveC1pb3NmaXgnICk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoICEkLmZhbmN5Ym94LmlzTW9iaWxlICYmIGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ID4gd2luZG93LmlubmVySGVpZ2h0ICkgewoKICAgICAgICAgICAgICAgICAgICBpZiAoIHNjcm9sbGJhcldpZHRoID09PSB1bmRlZmluZWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzY3JvbGxEaXYgPSAkKCc8ZGl2IHN0eWxlPSJ3aWR0aDo1MHB4O2hlaWdodDo1MHB4O292ZXJmbG93OnNjcm9sbDsiIC8+JykuYXBwZW5kVG8oICdib2R5JyApOwoKICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyV2lkdGggPSAkLmZhbmN5Ym94LnNjcm9sbGJhcldpZHRoID0gJHNjcm9sbERpdlswXS5vZmZzZXRXaWR0aCAtICRzY3JvbGxEaXZbMF0uY2xpZW50V2lkdGg7CgogICAgICAgICAgICAgICAgICAgICAgICAkc2Nyb2xsRGl2LnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJCggJ2hlYWQnICkuYXBwZW5kKCAnPHN0eWxlIGlkPSJmYW5jeWJveC1zdHlsZS1ub3Njcm9sbCIgdHlwZT0idGV4dC9jc3MiPi5jb21wZW5zYXRlLWZvci1zY3JvbGxiYXIgeyBtYXJnaW4tcmlnaHQ6ICcgKyBzY3JvbGxiYXJXaWR0aCArICdweDsgfTwvc3R5bGU+JyApOwogICAgICAgICAgICAgICAgICAgICQoICdib2R5JyApLmFkZENsYXNzKCAnY29tcGVuc2F0ZS1mb3Itc2Nyb2xsYmFyJyApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgoKICAgICAgICAgICAgLy8gQnVpbGQgaHRtbCBtYXJrdXAgYW5kIHNldCByZWZlcmVuY2VzCiAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICAgICAgLy8gQnVpbGQgaHRtbCBjb2RlIGZvciBidXR0b25zIGFuZCBpbnNlcnQgaW50byBtYWluIHRlbXBsYXRlCiAgICAgICAgICAgIGJ1dHRvblN0ciA9ICcnOwoKICAgICAgICAgICAgJC5lYWNoKCBmaXJzdEl0ZW1PcHRzLmJ1dHRvbnMsIGZ1bmN0aW9uKCBpbmRleCwgdmFsdWUgKSB7CiAgICAgICAgICAgICAgICBidXR0b25TdHIgKz0gKCBmaXJzdEl0ZW1PcHRzLmJ0blRwbFsgdmFsdWUgXSB8fCAnJyApOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIENyZWF0ZSBtYXJrdXAgZnJvbSBiYXNlIHRlbXBsYXRlLCBpdCB3aWxsIGJlIGluaXRpYWxseSBoaWRkZW4gdG8KICAgICAgICAgICAgLy8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yayBsaWtlIHBhaW50aW5nIHdoaWxlIGluaXRpYWxpemluZyBpcyBub3QgY29tcGxldGUKICAgICAgICAgICAgJGNvbnRhaW5lciA9ICQoCiAgICAgICAgICAgICAgICBzZWxmLnRyYW5zbGF0ZSggc2VsZiwKICAgICAgICAgICAgICAgICAgICBmaXJzdEl0ZW1PcHRzLmJhc2VUcGwKICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoICdce1x7YnV0dG9uc1x9XH0nLCBidXR0b25TdHIgKQogICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSggJ1x7XHthcnJvd3NcfVx9JywgZmlyc3RJdGVtT3B0cy5idG5UcGwuYXJyb3dMZWZ0ICsgZmlyc3RJdGVtT3B0cy5idG5UcGwuYXJyb3dSaWdodCApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hdHRyKCAnaWQnLCAnZmFuY3lib3gtY29udGFpbmVyLScgKyBzZWxmLmlkICkKICAgICAgICAgICAgICAgIC5hZGRDbGFzcyggJ2ZhbmN5Ym94LWlzLWhpZGRlbicgKQogICAgICAgICAgICAgICAgLmFkZENsYXNzKCBmaXJzdEl0ZW1PcHRzLmJhc2VDbGFzcyApCiAgICAgICAgICAgICAgICAuZGF0YSggJ0ZhbmN5Qm94Jywgc2VsZiApCiAgICAgICAgICAgICAgICAuYXBwZW5kVG8oIGZpcnN0SXRlbU9wdHMucGFyZW50RWwgKTsKCiAgICAgICAgICAgIC8vIENyZWF0ZSBvYmplY3QgaG9sZGluZyByZWZlcmVuY2VzIHRvIGpRdWVyeSB3cmFwcGVkIG5vZGVzCiAgICAgICAgICAgIHNlbGYuJHJlZnMgPSB7CiAgICAgICAgICAgICAgICBjb250YWluZXIgOiAkY29udGFpbmVyCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBbICdiZycsICdpbm5lcicsICdpbmZvYmFyJywgJ3Rvb2xiYXInLCAnc3RhZ2UnLCAnY2FwdGlvbicsICduYXZpZ2F0aW9uJyBdLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgICAgICAgc2VsZi4kcmVmc1sgaXRlbSBdID0gJGNvbnRhaW5lci5maW5kKCAnLmZhbmN5Ym94LScgKyBpdGVtICk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCAnb25Jbml0JyApOwoKICAgICAgICAgICAgLy8gRW5hYmxlIGV2ZW50cywgZGVhY3RpdmUgcHJldmlvdXMgaW5zdGFuY2VzCiAgICAgICAgICAgIHNlbGYuYWN0aXZhdGUoKTsKCiAgICAgICAgICAgIC8vIEJ1aWxkIHNsaWRlcywgbG9hZCBhbmQgcmV2ZWFsIGNvbnRlbnQKICAgICAgICAgICAgc2VsZi5qdW1wVG8oIHNlbGYuY3VyckluZGV4ICk7CiAgICAgICAgfSwKCgogICAgICAgIC8vIFNpbXBsZSBpMThuIHN1cHBvcnQgLSByZXBsYWNlcyBvYmplY3Qga2V5cyBmb3VuZCBpbiB0ZW1wbGF0ZQogICAgICAgIC8vIHdpdGggY29ycmVzcG9uZGluZyB2YWx1ZXMKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgdHJhbnNsYXRlIDogZnVuY3Rpb24oIG9iaiwgc3RyICkgewogICAgICAgICAgICB2YXIgYXJyID0gb2JqLm9wdHMuaTE4blsgb2JqLm9wdHMubGFuZyBdOwoKICAgICAgICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKC9ce1x7KFx3KylcfVx9L2csIGZ1bmN0aW9uKG1hdGNoLCBuKSB7CiAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJbbl07CgogICAgICAgICAgICAgICAgaWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCgogICAgICAgIC8vIENyZWF0ZSBhcnJheSBvZiBnYWxseSBpdGVtIG9iamVjdHMKICAgICAgICAvLyBDaGVjayBpZiBlYWNoIG9iamVjdCBoYXMgdmFsaWQgdHlwZSBhbmQgY29udGVudAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGNyZWF0ZUdyb3VwIDogZnVuY3Rpb24gKCBjb250ZW50ICkgewogICAgICAgICAgICB2YXIgc2VsZiAgPSB0aGlzOwogICAgICAgICAgICB2YXIgaXRlbXMgPSAkLm1ha2VBcnJheSggY29udGVudCApOwoKICAgICAgICAgICAgJC5lYWNoKGl0ZW1zLCBmdW5jdGlvbiggaSwgaXRlbSApIHsKICAgICAgICAgICAgICAgIHZhciBvYmogID0ge30sCiAgICAgICAgICAgICAgICAgICAgb3B0cyA9IHt9LAogICAgICAgICAgICAgICAgICAgICRpdGVtLAogICAgICAgICAgICAgICAgICAgIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgZm91bmQsCiAgICAgICAgICAgICAgICAgICAgc3JjLAogICAgICAgICAgICAgICAgICAgIHNyY1BhcnRzOwoKICAgICAgICAgICAgICAgIC8vIFN0ZXAgMSAtIE1ha2Ugc3VyZSB3ZSBoYXZlIGFuIG9iamVjdAogICAgICAgICAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgICAgICAgICAgaWYgKCAkLmlzUGxhaW5PYmplY3QoIGl0ZW0gKSApIHsKCiAgICAgICAgICAgICAgICAgICAgLy8gV2UgcHJvYmFibHkgaGF2ZSBtYW51YWwgdXNhZ2UgaGVyZSwgc29tZXRoaW5nIGxpa2UKICAgICAgICAgICAgICAgICAgICAvLyAkLmZhbmN5Ym94Lm9wZW4oIFsgeyBzcmMgOiAiaW1hZ2UuanBnIiwgdHlwZSA6ICJpbWFnZSIgfSBdICkKCiAgICAgICAgICAgICAgICAgICAgb2JqICA9IGl0ZW07CiAgICAgICAgICAgICAgICAgICAgb3B0cyA9IGl0ZW0ub3B0cyB8fCBpdGVtOwoKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoICQudHlwZSggaXRlbSApID09PSAnb2JqZWN0JyAmJiAkKCBpdGVtICkubGVuZ3RoICkgewoKICAgICAgICAgICAgICAgICAgICAvLyBIZXJlIHdlIHByb2JhYmx5IGhhdmUgalF1ZXJ5IGNvbGxlY3Rpb24gcmV0dXJuZWQgYnkgc29tZSBzZWxlY3RvcgogICAgICAgICAgICAgICAgICAgICRpdGVtID0gJCggaXRlbSApOwoKICAgICAgICAgICAgICAgICAgICBvcHRzID0gJGl0ZW0uZGF0YSgpOwogICAgICAgICAgICAgICAgICAgIG9wdHMgPSAkLmV4dGVuZCgge30sIG9wdHMsIG9wdHMub3B0aW9ucyB8fCB7fSApOwoKICAgICAgICAgICAgICAgICAgICAvLyBIZXJlIHdlIHN0b3JlIGNsaWNrZWQgZWxlbWVudAogICAgICAgICAgICAgICAgICAgIG9wdHMuJG9yaWcgPSAkaXRlbTsKCiAgICAgICAgICAgICAgICAgICAgb2JqLnNyYyA9IG9wdHMuc3JjIHx8ICRpdGVtLmF0dHIoICdocmVmJyApOwoKICAgICAgICAgICAgICAgICAgICAvLyBBc3N1bWUgdGhhdCBzaW1wbGUgc3ludGF4IGlzIHVzZWQsIGZvciBleGFtcGxlOgogICAgICAgICAgICAgICAgICAgIC8vICAgYCQuZmFuY3lib3gub3BlbiggJCgiI3Rlc3QiKSwge30gKTtgCiAgICAgICAgICAgICAgICAgICAgaWYgKCAhb2JqLnR5cGUgJiYgIW9iai5zcmMgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG9iai50eXBlID0gJ2lubGluZSc7CiAgICAgICAgICAgICAgICAgICAgICAgIG9iai5zcmMgID0gaXRlbTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgLy8gQXNzdW1lIHdlIGhhdmUgYSBzaW1wbGUgaHRtbCBjb2RlLCBmb3IgZXhhbXBsZToKICAgICAgICAgICAgICAgICAgICAvLyAgICQuZmFuY3lib3gub3BlbiggJzxkaXY+PGgxPkhpITwvaDE+PC9kaXY+JyApOwoKICAgICAgICAgICAgICAgICAgICBvYmogPSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgOiAnaHRtbCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHNyYyAgOiBpdGVtICsgJycKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBFYWNoIGdhbGxlcnkgb2JqZWN0IGhhcyBmdWxsIGNvbGxlY3Rpb24gb2Ygb3B0aW9ucwogICAgICAgICAgICAgICAgb2JqLm9wdHMgPSAkLmV4dGVuZCggdHJ1ZSwge30sIHNlbGYub3B0cywgb3B0cyApOwoKICAgICAgICAgICAgICAgIC8vIERvIG5vdCBtZXJnZSBidXR0b25zIGFycmF5CiAgICAgICAgICAgICAgICBpZiAoICQuaXNBcnJheSggb3B0cy5idXR0b25zICkgKSB7CiAgICAgICAgICAgICAgICAgICAgb2JqLm9wdHMuYnV0dG9ucyA9IG9wdHMuYnV0dG9uczsKICAgICAgICAgICAgICAgIH0KCgogICAgICAgICAgICAgICAgLy8gU3RlcCAyIC0gTWFrZSBzdXJlIHdlIGhhdmUgY29udGVudCB0eXBlLCBpZiBub3QgLSB0cnkgdG8gZ3Vlc3MKICAgICAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgICAgICAgICAgdHlwZSA9IG9iai50eXBlIHx8IG9iai5vcHRzLnR5cGU7CiAgICAgICAgICAgICAgICBzcmMgID0gb2JqLnNyYyB8fCAnJzsKCiAgICAgICAgICAgICAgICBpZiAoICF0eXBlICYmIHNyYyApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIHNyYy5tYXRjaCgvKF5kYXRhOmltYWdlXC9bYS16MC05K1wvPV0qLCl8KFwuKGpwKGV8Z3xlZyl8Z2lmfHBuZ3xibXB8d2VicHxzdmd8aWNvKSgoXD98IykuKik/JCkvaSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW1hZ2UnOwoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBzcmMubWF0Y2goL1wuKHBkZikoKFw/fCMpLiopPyQvaSkgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAncGRmJzsKCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICggZm91bmQgPSBzcmMubWF0Y2goL1wuKG1wNHxtb3Z8b2d2KSgoXD98IykuKik/JC9pKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICd2aWRlbyc7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoICFvYmoub3B0cy52aWRlb0Zvcm1hdCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5vcHRzLnZpZGVvRm9ybWF0ID0gJ3ZpZGVvLycgKyAoIGZvdW5kWzFdID09PSAnb2d2JyA/ICdvZ2cnIDogZm91bmRbMV0gKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBzcmMuY2hhckF0KDApID09PSAnIycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnaW5saW5lJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCB0eXBlICkgewogICAgICAgICAgICAgICAgICAgIG9iai50eXBlID0gdHlwZTsKCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHNlbGYudHJpZ2dlciggJ29iamVjdE5lZWRzVHlwZScsIG9iaiApOwogICAgICAgICAgICAgICAgfQoKCiAgICAgICAgICAgICAgICAvLyBTdGVwIDMgLSBTb21lIGFkanVzdG1lbnRzCiAgICAgICAgICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgICAgICAgICAgb2JqLmluZGV4ID0gc2VsZi5ncm91cC5sZW5ndGg7CgogICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgJG9yaWcgYW5kICR0aHVtYiBvYmplY3RzIGV4aXN0CiAgICAgICAgICAgICAgICBpZiAoIG9iai5vcHRzLiRvcmlnICYmICFvYmoub3B0cy4kb3JpZy5sZW5ndGggKSB7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG9iai5vcHRzLiRvcmlnOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggIW9iai5vcHRzLiR0aHVtYiAmJiBvYmoub3B0cy4kb3JpZyApIHsKICAgICAgICAgICAgICAgICAgICBvYmoub3B0cy4kdGh1bWIgPSBvYmoub3B0cy4kb3JpZy5maW5kKCAnaW1nOmZpcnN0JyApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggb2JqLm9wdHMuJHRodW1iICYmICFvYmoub3B0cy4kdGh1bWIubGVuZ3RoICkgewogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmoub3B0cy4kdGh1bWI7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gImNhcHRpb24iIGlzIGEgInNwZWNpYWwiIG9wdGlvbiwgaXQgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIGNhcHRpb24gcGVyIGdhbGxlcnkgaXRlbSAuLgogICAgICAgICAgICAgICAgaWYgKCAkLnR5cGUoIG9iai5vcHRzLmNhcHRpb24gKSA9PT0gJ2Z1bmN0aW9uJyApIHsKICAgICAgICAgICAgICAgICAgICBvYmoub3B0cy5jYXB0aW9uID0gb2JqLm9wdHMuY2FwdGlvbi5hcHBseSggaXRlbSwgWyBzZWxmLCBvYmogXSApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJC50eXBlKCBzZWxmLm9wdHMuY2FwdGlvbiApID09PSAnZnVuY3Rpb24nICkgewogICAgICAgICAgICAgICAgICAgIG9iai5vcHRzLmNhcHRpb24gPSBzZWxmLm9wdHMuY2FwdGlvbi5hcHBseSggaXRlbSwgWyBzZWxmLCBvYmogXSApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBoYXZlIGNhcHRpb24gYXMgYSBzdHJpbmcgb3IgalF1ZXJ5IG9iamVjdAogICAgICAgICAgICAgICAgaWYgKCAhKCBvYmoub3B0cy5jYXB0aW9uIGluc3RhbmNlb2YgJCApICkgewogICAgICAgICAgICAgICAgICAgIG9iai5vcHRzLmNhcHRpb24gPSBvYmoub3B0cy5jYXB0aW9uID09PSB1bmRlZmluZWQgPyAnJyA6IG9iai5vcHRzLmNhcHRpb24gKyAnJzsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB1cmwgY29udGFpbnMgImZpbHRlciIgdXNlZCB0byBmaWx0ZXIgdGhlIGNvbnRlbnQKICAgICAgICAgICAgICAgIC8vIEV4YW1wbGU6ICJhamF4Lmh0bWwgI3NvbWV0aGluZyIKICAgICAgICAgICAgICAgIGlmICggdHlwZSA9PT0gJ2FqYXgnICkgewogICAgICAgICAgICAgICAgICAgIHNyY1BhcnRzID0gc3JjLnNwbGl0KC9ccysvLCAyKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCBzcmNQYXJ0cy5sZW5ndGggPiAxICkgewogICAgICAgICAgICAgICAgICAgICAgICBvYmouc3JjID0gc3JjUGFydHMuc2hpZnQoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG9iai5vcHRzLmZpbHRlciA9IHNyY1BhcnRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggb2JqLm9wdHMuc21hbGxCdG4gPT0gJ2F1dG8nICkgewoKICAgICAgICAgICAgICAgICAgICBpZiAoICQuaW5BcnJheSggdHlwZSwgWydodG1sJywgJ2lubGluZScsICdhamF4J10gKSA+IC0xICkgewogICAgICAgICAgICAgICAgICAgICAgICBvYmoub3B0cy50b29sYmFyICA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICBvYmoub3B0cy5zbWFsbEJ0biA9IHRydWU7CgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG9iai5vcHRzLnNtYWxsQnRuID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdHlwZSBpcyAicGRmIiwgdGhlbiBzaW1wbHkgbG9hZCBmaWxlIGludG8gaWZyYW1lCiAgICAgICAgICAgICAgICBpZiAoIHR5cGUgPT09ICdwZGYnICkgewogICAgICAgICAgICAgICAgICAgIG9iai50eXBlID0gJ2lmcmFtZSc7CgogICAgICAgICAgICAgICAgICAgIG9iai5vcHRzLmlmcmFtZS5wcmVsb2FkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gSGlkZSBhbGwgYnV0dG9ucyBhbmQgZGlzYWJsZSBpbnRlcmFjdGl2aXR5IGZvciBtb2RhbCBpdGVtcwogICAgICAgICAgICAgICAgaWYgKCBvYmoub3B0cy5tb2RhbCApIHsKCiAgICAgICAgICAgICAgICAgICAgb2JqLm9wdHMgPSAkLmV4dGVuZCh0cnVlLCBvYmoub3B0cywgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgYnV0dG9ucwogICAgICAgICAgICAgICAgICAgICAgICBpbmZvYmFyIDogMCwKICAgICAgICAgICAgICAgICAgICAgICAgdG9vbGJhciA6IDAsCgogICAgICAgICAgICAgICAgICAgICAgICBzbWFsbEJ0biA6IDAsCgogICAgICAgICAgICAgICAgICAgICAgICAvLyBEaXNhYmxlIGtleWJvYXJkIG5hdmlnYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAga2V5Ym9hcmQgOiAwLAoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGlzYWJsZSBzb21lIG1vZHVsZXMKICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGVTaG93ICA6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxTY3JlZW4gOiAwLAogICAgICAgICAgICAgICAgICAgICAgICB0aHVtYnMgICAgIDogMCwKICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2ggICAgICA6IDAsCgogICAgICAgICAgICAgICAgICAgICAgICAvLyBEaXNhYmxlIGNsaWNrIGV2ZW50IGhhbmRsZXJzCiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrQ29udGVudCAgICA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBjbGlja1NsaWRlICAgICAgOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tPdXRzaWRlICAgIDogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIGRibGNsaWNrQ29udGVudCA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICBkYmxjbGlja1NsaWRlICAgOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgZGJsY2xpY2tPdXRzaWRlIDogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gU3RlcCA0IC0gQWRkIHByb2Nlc3NlZCBvYmplY3QgdG8gZ3JvdXAKICAgICAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgICAgICAgICAgc2VsZi5ncm91cC5wdXNoKCBvYmogKTsKCiAgICAgICAgICAgIH0pOwoKICAgICAgICB9LAoKCiAgICAgICAgLy8gQXR0YWNoIGFuIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zIGZvcjoKICAgICAgICAvLyAgIC0gbmF2aWdhdGlvbiBidXR0b25zCiAgICAgICAgLy8gICAtIGJyb3dzZXIgc2Nyb2xsaW5nLCByZXNpemluZzsKICAgICAgICAvLyAgIC0gZm9jdXNpbmcKICAgICAgICAvLyAgIC0ga2V5Ym9hcmQKICAgICAgICAvLyAgIC0gZGV0ZWN0IGlkbGUKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBhZGRFdmVudHMgOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgc2VsZi5yZW1vdmVFdmVudHMoKTsKCiAgICAgICAgICAgIC8vIE1ha2UgbmF2aWdhdGlvbiBlbGVtZW50cyBjbGlja2FibGUKICAgICAgICAgICAgc2VsZi4kcmVmcy5jb250YWluZXIub24oJ2NsaWNrLmZiLWNsb3NlJywgJ1tkYXRhLWZhbmN5Ym94LWNsb3NlXScsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CgogICAgICAgICAgICAgICAgc2VsZi5jbG9zZSggZSApOwoKICAgICAgICAgICAgfSkub24oICdjbGljay5mYi1wcmV2IHRvdWNoZW5kLmZiLXByZXYnLCAnW2RhdGEtZmFuY3lib3gtcHJldl0nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICAgICAgICAgIHNlbGYucHJldmlvdXMoKTsKCiAgICAgICAgICAgIH0pLm9uKCAnY2xpY2suZmItbmV4dCB0b3VjaGVuZC5mYi1uZXh0JywgJ1tkYXRhLWZhbmN5Ym94LW5leHRdJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgICAgICAgICBzZWxmLm5leHQoKTsKCiAgICAgICAgICAgIH0pLm9uKCAnY2xpY2suZmInLCAnW2RhdGEtZmFuY3lib3gtem9vbV0nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAvLyBDbGljayBoYW5kbGVyIGZvciB6b29tIGJ1dHRvbgogICAgICAgICAgICAgICAgc2VsZlsgc2VsZi5pc1NjYWxlZERvd24oKSA/ICdzY2FsZVRvQWN0dWFsJyA6ICdzY2FsZVRvRml0JyBdKCk7CiAgICAgICAgICAgIH0pOwoKCiAgICAgICAgICAgIC8vIEhhbmRsZSBwYWdlIHNjcm9sbGluZyBhbmQgYnJvd3NlciByZXNpemluZwogICAgICAgICAgICAkVy5vbignb3JpZW50YXRpb25jaGFuZ2UuZmIgcmVzaXplLmZiJywgZnVuY3Rpb24oZSkgewoKICAgICAgICAgICAgICAgIGlmICggZSAmJiBlLm9yaWdpbmFsRXZlbnQgJiYgZS5vcmlnaW5hbEV2ZW50LnR5cGUgPT09ICJyZXNpemUiICkgewoKICAgICAgICAgICAgICAgICAgICByZXF1ZXN0QUZyYW1lKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZSgpOwogICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgIHNlbGYuJHJlZnMuc3RhZ2UuaGlkZSgpOwoKICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLiRyZWZzLnN0YWdlLnNob3coKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlKCk7CiAgICAgICAgICAgICAgICAgICAgfSwgNjAwKTsKCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIFRyYXAga2V5Ym9hcmQgZm9jdXMgaW5zaWRlIG9mIHRoZSBtb2RhbCwgc28gdGhlIHVzZXIgZG9lcyBub3QgYWNjaWRlbnRhbGx5IHRhYiBvdXRzaWRlIG9mIHRoZSBtb2RhbAogICAgICAgICAgICAvLyAoYS5rLmEuICJlc2NhcGluZyB0aGUgbW9kYWwiKQogICAgICAgICAgICAkRC5vbignZm9jdXNpbi5mYicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9ICQuZmFuY3lib3ggPyAkLmZhbmN5Ym94LmdldEluc3RhbmNlKCkgOiBudWxsOwoKICAgICAgICAgICAgICAgIGlmICggaW5zdGFuY2UuaXNDbG9zaW5nIHx8ICFpbnN0YW5jZS5jdXJyZW50IHx8ICFpbnN0YW5jZS5jdXJyZW50Lm9wdHMudHJhcEZvY3VzIHx8ICQoIGUudGFyZ2V0ICkuaGFzQ2xhc3MoICdmYW5jeWJveC1jb250YWluZXInICkgfHwgJCggZS50YXJnZXQgKS5pcyggZG9jdW1lbnQgKSApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCBpbnN0YW5jZSAmJiAkKCBlLnRhcmdldCApLmNzcyggJ3Bvc2l0aW9uJyApICE9PSAnZml4ZWQnICYmICFpbnN0YW5jZS4kcmVmcy5jb250YWluZXIuaGFzKCBlLnRhcmdldCApLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOwoKICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5mb2N1cygpOwoKICAgICAgICAgICAgICAgICAgICAvLyBTb21ldGltZXMgcGFnZSBnZXRzIHNjcm9sbGVkLCBzZXQgaXQgYmFjawogICAgICAgICAgICAgICAgICAgICRXLnNjcm9sbFRvcCggc2VsZi5zY3JvbGxUb3AgKS5zY3JvbGxMZWZ0KCBzZWxmLnNjcm9sbExlZnQgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CgoKICAgICAgICAgICAgLy8gRW5hYmxlIGtleWJvYXJkIG5hdmlnYXRpb24KICAgICAgICAgICAgJEQub24oJ2tleWRvd24uZmInLCBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzZWxmLmN1cnJlbnQsCiAgICAgICAgICAgICAgICAgICAga2V5Y29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoOwoKICAgICAgICAgICAgICAgIGlmICggIWN1cnJlbnQgfHwgIWN1cnJlbnQub3B0cy5rZXlib2FyZCApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCAkKGUudGFyZ2V0KS5pcygnaW5wdXQnKSB8fCAkKGUudGFyZ2V0KS5pcygndGV4dGFyZWEnKSApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gQmFja3NwYWNlIGFuZCBFc2Mga2V5cwogICAgICAgICAgICAgICAgaWYgKCBrZXljb2RlID09PSA4IHx8IGtleWNvZGUgPT09IDI3ICkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgICAgICAgICAgICAgc2VsZi5jbG9zZSggZSApOwoKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gTGVmdCBhcnJvdyBhbmQgVXAgYXJyb3cKICAgICAgICAgICAgICAgIGlmICgga2V5Y29kZSA9PT0gMzcgfHwga2V5Y29kZSA9PT0gMzggKSB7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwoKICAgICAgICAgICAgICAgICAgICBzZWxmLnByZXZpb3VzKCk7CgogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBSaWdoIGFycm93IGFuZCBEb3duIGFycm93CiAgICAgICAgICAgICAgICBpZiAoIGtleWNvZGUgPT09IDM5IHx8IGtleWNvZGUgPT09IDQwICkgewogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0KCk7CgogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBzZWxmLnRyaWdnZXIoJ2FmdGVyS2V5ZG93bicsIGUsIGtleWNvZGUpOwogICAgICAgICAgICB9KTsKCgogICAgICAgICAgICAvLyBIaWRlIGNvbnRyb2xzIGFmdGVyIHNvbWUgaW5hY3Rpdml0eSBwZXJpb2QKICAgICAgICAgICAgaWYgKCBzZWxmLmdyb3VwWyBzZWxmLmN1cnJJbmRleCBdLm9wdHMuaWRsZVRpbWUgKSB7CiAgICAgICAgICAgICAgICBzZWxmLmlkbGVTZWNvbmRzQ291bnRlciA9IDA7CgogICAgICAgICAgICAgICAgJEQub24oJ21vdXNlbW92ZS5mYi1pZGxlIG1vdXNlbGVhdmUuZmItaWRsZSBtb3VzZWRvd24uZmItaWRsZSB0b3VjaHN0YXJ0LmZiLWlkbGUgdG91Y2htb3ZlLmZiLWlkbGUgc2Nyb2xsLmZiLWlkbGUga2V5ZG93bi5mYi1pZGxlJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIHNlbGYuaWRsZVNlY29uZHNDb3VudGVyID0gMDsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCBzZWxmLmlzSWRsZSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zaG93Q29udHJvbHMoKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHNlbGYuaXNJZGxlID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBzZWxmLmlkbGVJbnRlcnZhbCA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBzZWxmLmlkbGVTZWNvbmRzQ291bnRlcisrOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIHNlbGYuaWRsZVNlY29uZHNDb3VudGVyID49IHNlbGYuZ3JvdXBbIHNlbGYuY3VyckluZGV4IF0ub3B0cy5pZGxlVGltZSAmJiAhc2VsZi5pc0RyYWdnaW5nICkgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlzSWRsZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaWRsZVNlY29uZHNDb3VudGVyID0gMDsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaGlkZUNvbnRyb2xzKCk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIH0sIDEwMDApOwogICAgICAgICAgICB9CgogICAgICAgIH0sCgoKICAgICAgICAvLyBSZW1vdmUgZXZlbnRzIGFkZGVkIGJ5IHRoZSBjb3JlCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICByZW1vdmVFdmVudHMgOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgJFcub2ZmKCAnb3JpZW50YXRpb25jaGFuZ2UuZmIgcmVzaXplLmZiJyApOwogICAgICAgICAgICAkRC5vZmYoICdmb2N1c2luLmZiIGtleWRvd24uZmIgLmZiLWlkbGUnICk7CgogICAgICAgICAgICB0aGlzLiRyZWZzLmNvbnRhaW5lci5vZmYoICcuZmItY2xvc2UgLmZiLXByZXYgLmZiLW5leHQnICk7CgogICAgICAgICAgICBpZiAoIHNlbGYuaWRsZUludGVydmFsICkgewogICAgICAgICAgICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwoIHNlbGYuaWRsZUludGVydmFsICk7CgogICAgICAgICAgICAgICAgc2VsZi5pZGxlSW50ZXJ2YWwgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCgogICAgICAgIC8vIENoYW5nZSB0byBwcmV2aW91cyBnYWxsZXJ5IGl0ZW0KICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHByZXZpb3VzIDogZnVuY3Rpb24oIGR1cmF0aW9uICkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5qdW1wVG8oIHRoaXMuY3VyclBvcyAtIDEsIGR1cmF0aW9uICk7CiAgICAgICAgfSwKCgogICAgICAgIC8vIENoYW5nZSB0byBuZXh0IGdhbGxlcnkgaXRlbQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBuZXh0IDogZnVuY3Rpb24oIGR1cmF0aW9uICkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5qdW1wVG8oIHRoaXMuY3VyclBvcyArIDEsIGR1cmF0aW9uICk7CiAgICAgICAgfSwKCgogICAgICAgIC8vIFN3aXRjaCB0byBzZWxlY3RlZCBnYWxsZXJ5IGl0ZW0KICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGp1bXBUbyA6IGZ1bmN0aW9uICggcG9zLCBkdXJhdGlvbiwgc2xpZGUgKSB7CiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpcywKICAgICAgICAgICAgICAgIGZpcnN0UnVuLAogICAgICAgICAgICAgICAgbG9vcCwKICAgICAgICAgICAgICAgIGN1cnJlbnQsCiAgICAgICAgICAgICAgICBwcmV2aW91cywKICAgICAgICAgICAgICAgIGNhbnZhc1dpZHRoLAogICAgICAgICAgICAgICAgY3VycmVudFBvcywKICAgICAgICAgICAgICAgIHRyYW5zaXRpb25Qcm9wczsKCiAgICAgICAgICAgIHZhciBncm91cExlbiA9IHNlbGYuZ3JvdXAubGVuZ3RoOwoKICAgICAgICAgICAgaWYgKCBzZWxmLmlzRHJhZ2dpbmcgfHwgc2VsZi5pc0Nsb3NpbmcgfHwgKCBzZWxmLmlzQW5pbWF0aW5nICYmIHNlbGYuZmlyc3RSdW4gKSApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcG9zICA9IHBhcnNlSW50KCBwb3MsIDEwICk7CiAgICAgICAgICAgIGxvb3AgPSBzZWxmLmN1cnJlbnQgPyBzZWxmLmN1cnJlbnQub3B0cy5sb29wIDogc2VsZi5vcHRzLmxvb3A7CgogICAgICAgICAgICBpZiAoICFsb29wICYmICggcG9zIDwgMCB8fCBwb3MgPj0gZ3JvdXBMZW4gKSApIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZmlyc3RSdW4gPSBzZWxmLmZpcnN0UnVuID0gKCBzZWxmLmZpcnN0UnVuID09PSBudWxsICk7CgogICAgICAgICAgICBpZiAoIGdyb3VwTGVuIDwgMiAmJiAhZmlyc3RSdW4gJiYgISFzZWxmLmlzRHJhZ2dpbmcgKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHByZXZpb3VzID0gc2VsZi5jdXJyZW50OwoKICAgICAgICAgICAgc2VsZi5wcmV2SW5kZXggPSBzZWxmLmN1cnJJbmRleDsKICAgICAgICAgICAgc2VsZi5wcmV2UG9zICAgPSBzZWxmLmN1cnJQb3M7CgogICAgICAgICAgICAvLyBDcmVhdGUgc2xpZGVzCiAgICAgICAgICAgIGN1cnJlbnQgPSBzZWxmLmNyZWF0ZVNsaWRlKCBwb3MgKTsKCiAgICAgICAgICAgIGlmICggZ3JvdXBMZW4gPiAxICkgewogICAgICAgICAgICAgICAgaWYgKCBsb29wIHx8IGN1cnJlbnQuaW5kZXggPiAwICkgewogICAgICAgICAgICAgICAgICAgIHNlbGYuY3JlYXRlU2xpZGUoIHBvcyAtIDEgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIGxvb3AgfHwgY3VycmVudC5pbmRleCA8IGdyb3VwTGVuIC0gMSApIHsKICAgICAgICAgICAgICAgICAgICBzZWxmLmNyZWF0ZVNsaWRlKCBwb3MgKyAxICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGYuY3VycmVudCAgID0gY3VycmVudDsKICAgICAgICAgICAgc2VsZi5jdXJySW5kZXggPSBjdXJyZW50LmluZGV4OwogICAgICAgICAgICBzZWxmLmN1cnJQb3MgICA9IGN1cnJlbnQucG9zOwoKICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCAnYmVmb3JlU2hvdycsIGZpcnN0UnVuICk7CgogICAgICAgICAgICBzZWxmLnVwZGF0ZUNvbnRyb2xzKCk7CgogICAgICAgICAgICBjdXJyZW50UG9zID0gJC5mYW5jeWJveC5nZXRUcmFuc2xhdGUoIGN1cnJlbnQuJHNsaWRlICk7CgogICAgICAgICAgICBjdXJyZW50LmlzTW92ZWQgICAgICAgID0gKCBjdXJyZW50UG9zLmxlZnQgIT09IDAgfHwgY3VycmVudFBvcy50b3AgIT09IDAgKSAmJiAhY3VycmVudC4kc2xpZGUuaGFzQ2xhc3MoICdmYW5jeWJveC1hbmltYXRlZCcgKTsKICAgICAgICAgICAgY3VycmVudC5mb3JjZWREdXJhdGlvbiA9IHVuZGVmaW5lZDsKCiAgICAgICAgICAgIGlmICggJC5pc051bWVyaWMoIGR1cmF0aW9uICkgKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50LmZvcmNlZER1cmF0aW9uID0gZHVyYXRpb247CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IGN1cnJlbnQub3B0c1sgZmlyc3RSdW4gPyAnYW5pbWF0aW9uRHVyYXRpb24nIDogJ3RyYW5zaXRpb25EdXJhdGlvbicgXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZHVyYXRpb24gPSBwYXJzZUludCggZHVyYXRpb24sIDEwICk7CgogICAgICAgICAgICAvLyBGcmVzaCBzdGFydCAtIHJldmVhbCBjb250YWluZXIsIGN1cnJlbnQgc2xpZGUgYW5kIHN0YXJ0IGxvYWRpbmcgY29udGVudAogICAgICAgICAgICBpZiAoIGZpcnN0UnVuICkgewoKICAgICAgICAgICAgICAgIGlmICggY3VycmVudC5vcHRzLmFuaW1hdGlvbkVmZmVjdCAmJiBkdXJhdGlvbiApIHsKICAgICAgICAgICAgICAgICAgICBzZWxmLiRyZWZzLmNvbnRhaW5lci5jc3MoICd0cmFuc2l0aW9uLWR1cmF0aW9uJywgZHVyYXRpb24gKyAnbXMnICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi4kcmVmcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1pcy1oaWRkZW4nICk7CgogICAgICAgICAgICAgICAgZm9yY2VSZWRyYXcoIHNlbGYuJHJlZnMuY29udGFpbmVyICk7CgogICAgICAgICAgICAgICAgc2VsZi4kcmVmcy5jb250YWluZXIuYWRkQ2xhc3MoICdmYW5jeWJveC1pcy1vcGVuJyApOwoKICAgICAgICAgICAgICAgIC8vIE1ha2UgZmlyc3Qgc2xpZGUgdmlzaWJsZSAodG8gZGlzcGxheSBsb2FkaW5nIGljb24sIGlmIG5lZWRlZCkKICAgICAgICAgICAgICAgIGN1cnJlbnQuJHNsaWRlLmFkZENsYXNzKCAnZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQnICk7CgogICAgICAgICAgICAgICAgc2VsZi5sb2FkU2xpZGUoIGN1cnJlbnQgKTsKCiAgICAgICAgICAgICAgICBzZWxmLnByZWxvYWQoICdpbWFnZScgKTsKCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIENsZWFuIHVwCiAgICAgICAgICAgICQuZWFjaChzZWxmLnNsaWRlcywgZnVuY3Rpb24oIGluZGV4LCBzbGlkZSApIHsKICAgICAgICAgICAgICAgICQuZmFuY3lib3guc3RvcCggc2xpZGUuJHNsaWRlICk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gTWFrZSBjdXJyZW50IHRoYXQgc2xpZGUgaXMgdmlzaWJsZSBldmVuIGlmIGNvbnRlbnQgaXMgc3RpbGwgbG9hZGluZwogICAgICAgICAgICBjdXJyZW50LiRzbGlkZS5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LXNsaWRlLS1uZXh0IGZhbmN5Ym94LXNsaWRlLS1wcmV2aW91cycgKS5hZGRDbGFzcyggJ2ZhbmN5Ym94LXNsaWRlLS1jdXJyZW50JyApOwoKICAgICAgICAgICAgLy8gSWYgc2xpZGVzIGhhdmUgYmVlbiBkcmFnZ2VkLCBhbmltYXRlIHRoZW0gdG8gY29ycmVjdCBwb3NpdGlvbgogICAgICAgICAgICBpZiAoIGN1cnJlbnQuaXNNb3ZlZCApIHsKICAgICAgICAgICAgICAgIGNhbnZhc1dpZHRoID0gTWF0aC5yb3VuZCggY3VycmVudC4kc2xpZGUud2lkdGgoKSApOwoKICAgICAgICAgICAgICAgICQuZWFjaChzZWxmLnNsaWRlcywgZnVuY3Rpb24oIGluZGV4LCBzbGlkZSApIHsKICAgICAgICAgICAgICAgICAgICB2YXIgcG9zID0gc2xpZGUucG9zIC0gY3VycmVudC5wb3M7CgogICAgICAgICAgICAgICAgICAgICQuZmFuY3lib3guYW5pbWF0ZSggc2xpZGUuJHNsaWRlLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRvcCAgOiAwLAogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IDogKCBwb3MgKiBjYW52YXNXaWR0aCApICsgKCBwb3MgKiBzbGlkZS5vcHRzLmd1dHRlciApCiAgICAgICAgICAgICAgICAgICAgfSwgZHVyYXRpb24sIGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGUuJHNsaWRlLnJlbW92ZUF0dHIoJ3N0eWxlJykucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1zbGlkZS0tbmV4dCBmYW5jeWJveC1zbGlkZS0tcHJldmlvdXMnICk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLnBvcyA9PT0gc2VsZi5jdXJyUG9zICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5pc01vdmVkID0gZmFsc2U7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzZWxmLiRyZWZzLnN0YWdlLmNoaWxkcmVuKCkucmVtb3ZlQXR0ciggJ3N0eWxlJyApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTdGFydCB0cmFuc2l0aW9uIHRoYXQgcmV2ZWFscyBjdXJyZW50IGNvbnRlbnQKICAgICAgICAgICAgLy8gb3Igd2FpdCB3aGVuIGl0IHdpbGwgYmUgbG9hZGVkCgogICAgICAgICAgICBpZiAoIGN1cnJlbnQuaXNMb2FkZWQgKSB7CiAgICAgICAgICAgICAgICBzZWxmLnJldmVhbENvbnRlbnQoIGN1cnJlbnQgKTsKCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzZWxmLmxvYWRTbGlkZSggY3VycmVudCApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzZWxmLnByZWxvYWQoICdpbWFnZScgKTsKCiAgICAgICAgICAgIGlmICggcHJldmlvdXMucG9zID09PSBjdXJyZW50LnBvcyApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gSGFuZGxlIHByZXZpb3VzIHNsaWRlCiAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICAgICAgdHJhbnNpdGlvblByb3BzID0gJ2ZhbmN5Ym94LXNsaWRlLS0nICsgKCBwcmV2aW91cy5wb3MgPiBjdXJyZW50LnBvcyA/ICduZXh0JyA6ICdwcmV2aW91cycgKTsKCiAgICAgICAgICAgIHByZXZpb3VzLiRzbGlkZS5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LXNsaWRlLS1jb21wbGV0ZSBmYW5jeWJveC1zbGlkZS0tY3VycmVudCBmYW5jeWJveC1zbGlkZS0tbmV4dCBmYW5jeWJveC1zbGlkZS0tcHJldmlvdXMnICk7CgogICAgICAgICAgICBwcmV2aW91cy5pc0NvbXBsZXRlID0gZmFsc2U7CgogICAgICAgICAgICBpZiAoICFkdXJhdGlvbiB8fCAoICFjdXJyZW50LmlzTW92ZWQgJiYgIWN1cnJlbnQub3B0cy50cmFuc2l0aW9uRWZmZWN0ICkgKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggY3VycmVudC5pc01vdmVkICkgewogICAgICAgICAgICAgICAgcHJldmlvdXMuJHNsaWRlLmFkZENsYXNzKCB0cmFuc2l0aW9uUHJvcHMgKTsKCiAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgdHJhbnNpdGlvblByb3BzID0gJ2ZhbmN5Ym94LWFuaW1hdGVkICcgKyB0cmFuc2l0aW9uUHJvcHMgKyAnIGZhbmN5Ym94LWZ4LScgKyBjdXJyZW50Lm9wdHMudHJhbnNpdGlvbkVmZmVjdDsKCiAgICAgICAgICAgICAgICAkLmZhbmN5Ym94LmFuaW1hdGUoIHByZXZpb3VzLiRzbGlkZSwgdHJhbnNpdGlvblByb3BzLCBkdXJhdGlvbiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMuJHNsaWRlLnJlbW92ZUNsYXNzKCB0cmFuc2l0aW9uUHJvcHMgKS5yZW1vdmVBdHRyKCAnc3R5bGUnICk7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKCgogICAgICAgIC8vIENyZWF0ZSBuZXcgInNsaWRlIiBlbGVtZW50CiAgICAgICAgLy8gVGhlc2UgYXJlIGdhbGxlcnkgaXRlbXMgIHRoYXQgYXJlIGFjdHVhbGx5IGFkZGVkIHRvIERPTQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgY3JlYXRlU2xpZGUgOiBmdW5jdGlvbiggcG9zICkgewoKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwogICAgICAgICAgICB2YXIgJHNsaWRlOwogICAgICAgICAgICB2YXIgaW5kZXg7CgogICAgICAgICAgICBpbmRleCA9IHBvcyAlIHNlbGYuZ3JvdXAubGVuZ3RoOwogICAgICAgICAgICBpbmRleCA9IGluZGV4IDwgMCA/IHNlbGYuZ3JvdXAubGVuZ3RoICsgaW5kZXggOiBpbmRleDsKCiAgICAgICAgICAgIGlmICggIXNlbGYuc2xpZGVzWyBwb3MgXSAmJiBzZWxmLmdyb3VwWyBpbmRleCBdICkgewogICAgICAgICAgICAgICAgJHNsaWRlID0gJCgnPGRpdiBjbGFzcz0iZmFuY3lib3gtc2xpZGUiPjwvZGl2PicpLmFwcGVuZFRvKCBzZWxmLiRyZWZzLnN0YWdlICk7CgogICAgICAgICAgICAgICAgc2VsZi5zbGlkZXNbIHBvcyBdID0gJC5leHRlbmQoIHRydWUsIHt9LCBzZWxmLmdyb3VwWyBpbmRleCBdLCB7CiAgICAgICAgICAgICAgICAgICAgcG9zICAgICAgOiBwb3MsCiAgICAgICAgICAgICAgICAgICAgJHNsaWRlICAgOiAkc2xpZGUsCiAgICAgICAgICAgICAgICAgICAgaXNMb2FkZWQgOiBmYWxzZSwKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlU2xpZGUoIHNlbGYuc2xpZGVzWyBwb3MgXSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gc2VsZi5zbGlkZXNbIHBvcyBdOwogICAgICAgIH0sCgoKICAgICAgICAvLyBTY2FsZSBpbWFnZSB0byB0aGUgYWN0dWFsIHNpemUgb2YgdGhlIGltYWdlCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBzY2FsZVRvQWN0dWFsIDogZnVuY3Rpb24oIHgsIHksIGR1cmF0aW9uICkgewoKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzZWxmLmN1cnJlbnQ7CiAgICAgICAgICAgIHZhciAkd2hhdCAgID0gY3VycmVudC4kY29udGVudDsKCiAgICAgICAgICAgIHZhciBpbWdQb3MsIHBvc1gsIHBvc1ksIHNjYWxlWCwgc2NhbGVZOwoKICAgICAgICAgICAgdmFyIGNhbnZhc1dpZHRoICA9IHBhcnNlSW50KCBjdXJyZW50LiRzbGlkZS53aWR0aCgpLCAxMCApOwogICAgICAgICAgICB2YXIgY2FudmFzSGVpZ2h0ID0gcGFyc2VJbnQoIGN1cnJlbnQuJHNsaWRlLmhlaWdodCgpLCAxMCApOwoKICAgICAgICAgICAgdmFyIG5ld0ltZ1dpZHRoICA9IGN1cnJlbnQud2lkdGg7CiAgICAgICAgICAgIHZhciBuZXdJbWdIZWlnaHQgPSBjdXJyZW50LmhlaWdodDsKCiAgICAgICAgICAgIGlmICggISggY3VycmVudC50eXBlID09ICdpbWFnZScgJiYgIWN1cnJlbnQuaGFzRXJyb3IpIHx8ICEkd2hhdCB8fCBzZWxmLmlzQW5pbWF0aW5nICkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkLmZhbmN5Ym94LnN0b3AoICR3aGF0ICk7CgogICAgICAgICAgICBzZWxmLmlzQW5pbWF0aW5nID0gdHJ1ZTsKCiAgICAgICAgICAgIHggPSB4ID09PSB1bmRlZmluZWQgPyBjYW52YXNXaWR0aCAgKiAwLjUgIDogeDsKICAgICAgICAgICAgeSA9IHkgPT09IHVuZGVmaW5lZCA/IGNhbnZhc0hlaWdodCAqIDAuNSAgOiB5OwoKICAgICAgICAgICAgaW1nUG9zID0gJC5mYW5jeWJveC5nZXRUcmFuc2xhdGUoICR3aGF0ICk7CgogICAgICAgICAgICBzY2FsZVggID0gbmV3SW1nV2lkdGggIC8gaW1nUG9zLndpZHRoOwogICAgICAgICAgICBzY2FsZVkgID0gbmV3SW1nSGVpZ2h0IC8gaW1nUG9zLmhlaWdodDsKCiAgICAgICAgICAgIC8vIEdldCBjZW50ZXIgcG9zaXRpb24gZm9yIG9yaWdpbmFsIGltYWdlCiAgICAgICAgICAgIHBvc1ggPSAoIGNhbnZhc1dpZHRoICogMC41ICAtIG5ld0ltZ1dpZHRoICogMC41ICk7CiAgICAgICAgICAgIHBvc1kgPSAoIGNhbnZhc0hlaWdodCAqIDAuNSAtIG5ld0ltZ0hlaWdodCAqIDAuNSApOwoKICAgICAgICAgICAgLy8gTWFrZSBzdXJlIGltYWdlIGRvZXMgbm90IG1vdmUgYXdheSBmcm9tIGVkZ2VzCiAgICAgICAgICAgIGlmICggbmV3SW1nV2lkdGggPiBjYW52YXNXaWR0aCApIHsKICAgICAgICAgICAgICAgIHBvc1ggPSBpbWdQb3MubGVmdCAqIHNjYWxlWCAtICggKCB4ICogc2NhbGVYICkgLSB4ICk7CgogICAgICAgICAgICAgICAgaWYgKCBwb3NYID4gMCApIHsKICAgICAgICAgICAgICAgICAgICBwb3NYID0gMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIHBvc1ggPCAgY2FudmFzV2lkdGggLSBuZXdJbWdXaWR0aCApIHsKICAgICAgICAgICAgICAgICAgICBwb3NYID0gY2FudmFzV2lkdGggLSBuZXdJbWdXaWR0aDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCBuZXdJbWdIZWlnaHQgPiBjYW52YXNIZWlnaHQpIHsKICAgICAgICAgICAgICAgIHBvc1kgPSBpbWdQb3MudG9wICAqIHNjYWxlWSAtICggKCB5ICogc2NhbGVZICkgLSB5ICk7CgogICAgICAgICAgICAgICAgaWYgKCBwb3NZID4gMCApIHsKICAgICAgICAgICAgICAgICAgICBwb3NZID0gMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIHBvc1kgPCAgY2FudmFzSGVpZ2h0IC0gbmV3SW1nSGVpZ2h0ICkgewogICAgICAgICAgICAgICAgICAgIHBvc1kgPSBjYW52YXNIZWlnaHQgLSBuZXdJbWdIZWlnaHQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGYudXBkYXRlQ3Vyc29yKCBuZXdJbWdXaWR0aCwgbmV3SW1nSGVpZ2h0ICk7CgogICAgICAgICAgICAkLmZhbmN5Ym94LmFuaW1hdGUoICR3aGF0LCB7CiAgICAgICAgICAgICAgICB0b3AgICAgOiBwb3NZLAogICAgICAgICAgICAgICAgbGVmdCAgIDogcG9zWCwKICAgICAgICAgICAgICAgIHNjYWxlWCA6IHNjYWxlWCwKICAgICAgICAgICAgICAgIHNjYWxlWSA6IHNjYWxlWQogICAgICAgICAgICB9LCBkdXJhdGlvbiB8fCAzMzAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgc2VsZi5pc0FuaW1hdGluZyA9IGZhbHNlOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIC8vIFN0b3Agc2xpZGVzaG93CiAgICAgICAgICAgIGlmICggc2VsZi5TbGlkZVNob3cgJiYgc2VsZi5TbGlkZVNob3cuaXNBY3RpdmUgKSB7CiAgICAgICAgICAgICAgICBzZWxmLlNsaWRlU2hvdy5zdG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKCiAgICAgICAgLy8gU2NhbGUgaW1hZ2UgdG8gZml0IGluc2lkZSBwYXJlbnQgZWxlbWVudAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgc2NhbGVUb0ZpdCA6IGZ1bmN0aW9uKCBkdXJhdGlvbiApIHsKCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgICAgIHZhciBjdXJyZW50ID0gc2VsZi5jdXJyZW50OwogICAgICAgICAgICB2YXIgJHdoYXQgICA9IGN1cnJlbnQuJGNvbnRlbnQ7CiAgICAgICAgICAgIHZhciBlbmQ7CgogICAgICAgICAgICBpZiAoICEoIGN1cnJlbnQudHlwZSA9PSAnaW1hZ2UnICYmICFjdXJyZW50Lmhhc0Vycm9yKSB8fCAhJHdoYXQgfHwgc2VsZi5pc0FuaW1hdGluZyApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJC5mYW5jeWJveC5zdG9wKCAkd2hhdCApOwoKICAgICAgICAgICAgc2VsZi5pc0FuaW1hdGluZyA9IHRydWU7CgogICAgICAgICAgICBlbmQgPSBzZWxmLmdldEZpdFBvcyggY3VycmVudCApOwoKICAgICAgICAgICAgc2VsZi51cGRhdGVDdXJzb3IoIGVuZC53aWR0aCwgZW5kLmhlaWdodCApOwoKICAgICAgICAgICAgJC5mYW5jeWJveC5hbmltYXRlKCAkd2hhdCwgewogICAgICAgICAgICAgICAgdG9wICAgIDogZW5kLnRvcCwKICAgICAgICAgICAgICAgIGxlZnQgICA6IGVuZC5sZWZ0LAogICAgICAgICAgICAgICAgc2NhbGVYIDogZW5kLndpZHRoICAvICR3aGF0LndpZHRoKCksCiAgICAgICAgICAgICAgICBzY2FsZVkgOiBlbmQuaGVpZ2h0IC8gJHdoYXQuaGVpZ2h0KCkKICAgICAgICAgICAgfSwgZHVyYXRpb24gfHwgMzMwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHNlbGYuaXNBbmltYXRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgfSk7CgogICAgICAgIH0sCgogICAgICAgIC8vIENhbGN1bGF0ZSBpbWFnZSBzaXplIHRvIGZpdCBpbnNpZGUgdmlld3BvcnQKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGdldEZpdFBvcyA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKICAgICAgICAgICAgdmFyIHNlbGYgID0gdGhpczsKICAgICAgICAgICAgdmFyICR3aGF0ID0gc2xpZGUuJGNvbnRlbnQ7CgogICAgICAgICAgICB2YXIgaW1nV2lkdGggID0gc2xpZGUud2lkdGg7CiAgICAgICAgICAgIHZhciBpbWdIZWlnaHQgPSBzbGlkZS5oZWlnaHQ7CgogICAgICAgICAgICB2YXIgbWFyZ2luID0gc2xpZGUub3B0cy5tYXJnaW47CgogICAgICAgICAgICB2YXIgY2FudmFzV2lkdGgsIGNhbnZhc0hlaWdodCwgbWluUmF0aW8sIHdpZHRoLCBoZWlnaHQ7CgogICAgICAgICAgICBpZiAoICEkd2hhdCB8fCAhJHdoYXQubGVuZ3RoIHx8ICggIWltZ1dpZHRoICYmICFpbWdIZWlnaHQpICkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBDb252ZXJ0ICJtYXJnaW4gdG8gQ1NTIHN0eWxlOiBbIHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCBdCiAgICAgICAgICAgIGlmICggJC50eXBlKCBtYXJnaW4gKSA9PT0gIm51bWJlciIgKSB7CiAgICAgICAgICAgICAgICBtYXJnaW4gPSBbIG1hcmdpbiwgbWFyZ2luIF07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggbWFyZ2luLmxlbmd0aCA9PSAyICkgewogICAgICAgICAgICAgICAgbWFyZ2luID0gWyBtYXJnaW5bMF0sIG1hcmdpblsxXSwgbWFyZ2luWzBdLCBtYXJnaW5bMV0gXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gV2UgY2FuIG5vdCB1c2UgJHNsaWRlIHdpZHRoIGhlcmUsIGJlY2F1c2UgaXQgY2FuIGhhdmUgZGlmZmVyZW50IGRpZW1lbnNpb25zIHdoaWxlIGluIHRyYW5zaXRvbgogICAgICAgICAgICBjYW52YXNXaWR0aCAgPSBwYXJzZUludCggc2VsZi4kcmVmcy5zdGFnZS53aWR0aCgpLCAxMCApICAtICggbWFyZ2luWyAxIF0gKyBtYXJnaW5bIDMgXSApOwogICAgICAgICAgICBjYW52YXNIZWlnaHQgPSBwYXJzZUludCggc2VsZi4kcmVmcy5zdGFnZS5oZWlnaHQoKSwgMTAgKSAtICggbWFyZ2luWyAwIF0gKyBtYXJnaW5bIDIgXSApOwoKICAgICAgICAgICAgbWluUmF0aW8gPSBNYXRoLm1pbigxLCBjYW52YXNXaWR0aCAvIGltZ1dpZHRoLCBjYW52YXNIZWlnaHQgLyBpbWdIZWlnaHQgKTsKCiAgICAgICAgICAgIHdpZHRoICA9IE1hdGguZmxvb3IoIG1pblJhdGlvICogaW1nV2lkdGggKTsKICAgICAgICAgICAgaGVpZ2h0ID0gTWF0aC5mbG9vciggbWluUmF0aW8gKiBpbWdIZWlnaHQgKTsKCiAgICAgICAgICAgIC8vIFVzZSBmbG9vciByb3VuZGluZyB0byBtYWtlIHN1cmUgaXQgcmVhbGx5IGZpdHMKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHRvcCAgICA6IE1hdGguZmxvb3IoICggY2FudmFzSGVpZ2h0IC0gaGVpZ2h0ICkgKiAwLjUgKSArIG1hcmdpblsgMCBdLAogICAgICAgICAgICAgICAgbGVmdCAgIDogTWF0aC5mbG9vciggKCBjYW52YXNXaWR0aCAgLSB3aWR0aCApICAqIDAuNSApICsgbWFyZ2luWyAzIF0sCiAgICAgICAgICAgICAgICB3aWR0aCAgOiB3aWR0aCwKICAgICAgICAgICAgICAgIGhlaWdodCA6IGhlaWdodAogICAgICAgICAgICB9OwoKICAgICAgICB9LAoKCiAgICAgICAgLy8gVXBkYXRlIGNvbnRlbnQgc2l6ZSBhbmQgcG9zaXRpb24gZm9yIGFsbCBzbGlkZXMKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHVwZGF0ZSA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgICAgICAkLmVhY2goIHNlbGYuc2xpZGVzLCBmdW5jdGlvbigga2V5LCBzbGlkZSApIHsKICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlU2xpZGUoIHNsaWRlICk7CiAgICAgICAgICAgIH0pOwogICAgICAgIH0sCgoKICAgICAgICAvLyBVcGRhdGUgc2xpZGUgY29udGVudCBwb3NpdGlvbiBhbmQgc2l6ZQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHVwZGF0ZVNsaWRlIDogZnVuY3Rpb24oIHNsaWRlLCBkdXJhdGlvbiApIHsKICAgICAgICAgICAgdmFyIHNlbGYgID0gdGhpcywKICAgICAgICAgICAgICAgICR3aGF0ID0gc2xpZGUgJiYgc2xpZGUuJGNvbnRlbnQ7CgogICAgICAgICAgICBpZiAoICR3aGF0ICYmICggc2xpZGUud2lkdGggfHwgc2xpZGUuaGVpZ2h0ICkgKSB7CiAgICAgICAgICAgICAgICBzZWxmLmlzQW5pbWF0aW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgJC5mYW5jeWJveC5zdG9wKCAkd2hhdCApOwoKICAgICAgICAgICAgICAgICQuZmFuY3lib3guc2V0VHJhbnNsYXRlKCAkd2hhdCwgc2VsZi5nZXRGaXRQb3MoIHNsaWRlICkgKTsKCiAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLnBvcyA9PT0gc2VsZi5jdXJyUG9zICkgewogICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlQ3Vyc29yKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNsaWRlLiRzbGlkZS50cmlnZ2VyKCAncmVmcmVzaCcgKTsKCiAgICAgICAgICAgIHNlbGYudHJpZ2dlciggJ29uVXBkYXRlJywgc2xpZGUgKTsKCiAgICAgICAgfSwKCgogICAgICAgIC8vIEhvcml6b250YWxseSBjZW50ZXIgc2xpZGUKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGNlbnRlclNsaWRlIDogZnVuY3Rpb24oIHNsaWRlLCBkdXJhdGlvbiApIHsKICAgICAgICAgICAgdmFyIHNlbGYgID0gdGhpcywgY2FudmFzV2lkdGgsIHBvczsKCiAgICAgICAgICAgIGlmICggc2VsZi5jdXJyZW50ICkgewogICAgICAgICAgICAgICAgY2FudmFzV2lkdGggPSBNYXRoLnJvdW5kKCBzbGlkZS4kc2xpZGUud2lkdGgoKSApOwogICAgICAgICAgICAgICAgcG9zID0gc2xpZGUucG9zIC0gc2VsZi5jdXJyZW50LnBvczsKCiAgICAgICAgICAgICAgICAkLmZhbmN5Ym94LmFuaW1hdGUoIHNsaWRlLiRzbGlkZSwgewogICAgICAgICAgICAgICAgICAgIHRvcCAgOiAwLAogICAgICAgICAgICAgICAgICAgIGxlZnQgOiAoIHBvcyAqIGNhbnZhc1dpZHRoICkgKyAoIHBvcyAqIHNsaWRlLm9wdHMuZ3V0dGVyICksCiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eSA6IDEKICAgICAgICAgICAgICAgIH0sIGR1cmF0aW9uID09PSB1bmRlZmluZWQgPyAwIDogZHVyYXRpb24sIG51bGwsIGZhbHNlKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgoKICAgICAgICAvLyBVcGRhdGUgY3Vyc29yIHN0eWxlIGRlcGVuZGluZyBpZiBjb250ZW50IGNhbiBiZSB6b29tZWQKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgdXBkYXRlQ3Vyc29yIDogZnVuY3Rpb24oIG5leHRXaWR0aCwgbmV4dEhlaWdodCApIHsKCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICAgICAgdmFyIGlzU2NhbGVkRG93bjsKCiAgICAgICAgICAgIHZhciAkY29udGFpbmVyID0gc2VsZi4kcmVmcy5jb250YWluZXIucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1pcy16b29tYWJsZSBmYW5jeWJveC1jYW4tem9vbUluIGZhbmN5Ym94LWNhbi1kcmFnIGZhbmN5Ym94LWNhbi16b29tT3V0JyApOwoKICAgICAgICAgICAgaWYgKCAhc2VsZi5jdXJyZW50IHx8IHNlbGYuaXNDbG9zaW5nICkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIHNlbGYuaXNab29tYWJsZSgpICkgewoKICAgICAgICAgICAgICAgICRjb250YWluZXIuYWRkQ2xhc3MoICdmYW5jeWJveC1pcy16b29tYWJsZScgKTsKCiAgICAgICAgICAgICAgICBpZiAoIG5leHRXaWR0aCAhPT0gdW5kZWZpbmVkICYmIG5leHRIZWlnaHQgIT09IHVuZGVmaW5lZCApIHsKICAgICAgICAgICAgICAgICAgICBpc1NjYWxlZERvd24gPSBuZXh0V2lkdGggPCBzZWxmLmN1cnJlbnQud2lkdGggJiYgbmV4dEhlaWdodCA8IHNlbGYuY3VycmVudC5oZWlnaHQ7CgogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpc1NjYWxlZERvd24gPSBzZWxmLmlzU2NhbGVkRG93bigpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggaXNTY2FsZWREb3duICkgewoKICAgICAgICAgICAgICAgICAgICAvLyBJZiBpbWFnZSBpcyBzY2FsZWQgZG93biwgdGhlbiwgb2J2aW91c2x5LCBpdCBjYW4gYmUgem9vbWVkIHRvIGZ1bGwgc2l6ZQogICAgICAgICAgICAgICAgICAgICRjb250YWluZXIuYWRkQ2xhc3MoICdmYW5jeWJveC1jYW4tem9vbUluJyApOwoKICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgIGlmICggc2VsZi5jdXJyZW50Lm9wdHMudG91Y2ggKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBpbWFnZSBzaXplIGlyIGxhcmdlbiB0aGFuIGF2YWlsYWJsZSBhdmFpbGFibGUgYW5kIHRvdWNoIG1vZHVsZSBpcyBub3QgZGlzYWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlbiB1c2VyIGNhbiBkbyBwYW5uaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICRjb250YWluZXIuYWRkQ2xhc3MoICdmYW5jeWJveC1jYW4tZHJhZycgKTsKCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGNvbnRhaW5lci5hZGRDbGFzcyggJ2ZhbmN5Ym94LWNhbi16b29tT3V0JyApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9IGVsc2UgaWYgKCBzZWxmLmN1cnJlbnQub3B0cy50b3VjaCApIHsKICAgICAgICAgICAgICAgICRjb250YWluZXIuYWRkQ2xhc3MoICdmYW5jeWJveC1jYW4tZHJhZycgKTsKICAgICAgICAgICAgfQoKICAgICAgICB9LAoKCiAgICAgICAgLy8gQ2hlY2sgaWYgY3VycmVudCBzbGlkZSBpcyB6b29tYWJsZQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgaXNab29tYWJsZSA6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzZWxmLmN1cnJlbnQ7CiAgICAgICAgICAgIHZhciBmaXRQb3M7CgogICAgICAgICAgICBpZiAoICFjdXJyZW50IHx8IHNlbGYuaXNDbG9zaW5nICkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBBc3N1bWUgdGhhdCBzbGlkZSBpcyB6b29tYWJsZSBpZgogICAgICAgICAgICAvLyAgIC0gaW1hZ2UgaXMgbG9hZGVkIHN1Y2Nlc3NmdWx5CiAgICAgICAgICAgIC8vICAgLSBjbGljayBhY3Rpb24gaXMgInpvb20iCiAgICAgICAgICAgIC8vICAgLSBhY3R1YWwgc2l6ZSBvZiB0aGUgaW1hZ2UgaXMgc21hbGxlciB0aGFuIGF2YWlsYWJsZSBhcmVhCiAgICAgICAgICAgIGlmICggY3VycmVudC50eXBlID09PSAnaW1hZ2UnICYmIGN1cnJlbnQuaXNMb2FkZWQgJiYgIWN1cnJlbnQuaGFzRXJyb3IgJiYKICAgICAgICAgICAgICAgICggY3VycmVudC5vcHRzLmNsaWNrQ29udGVudCA9PT0gJ3pvb20nIHx8ICggJC5pc0Z1bmN0aW9uKCBjdXJyZW50Lm9wdHMuY2xpY2tDb250ZW50ICkgJiYgY3VycmVudC5vcHRzLmNsaWNrQ29udGVudCggY3VycmVudCApID09PSAgInpvb20iICkgKQogICAgICAgICAgICApIHsKCiAgICAgICAgICAgICAgICBmaXRQb3MgPSBzZWxmLmdldEZpdFBvcyggY3VycmVudCApOwoKICAgICAgICAgICAgICAgIGlmICggY3VycmVudC53aWR0aCA+IGZpdFBvcy53aWR0aCB8fCBjdXJyZW50LmhlaWdodCA+IGZpdFBvcy5oZWlnaHQgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0sCgoKICAgICAgICAvLyBDaGVjayBpZiBjdXJyZW50IGltYWdlIGRpbWVuc2lvbnMgYXJlIHNtYWxsZXIgdGhhbiBhY3R1YWwKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgaXNTY2FsZWREb3duIDogZnVuY3Rpb24oKSB7CgogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgICAgICB2YXIgY3VycmVudCA9IHNlbGYuY3VycmVudDsKICAgICAgICAgICAgdmFyICR3aGF0ICAgPSBjdXJyZW50LiRjb250ZW50OwoKICAgICAgICAgICAgdmFyIHJleiA9IGZhbHNlOwoKICAgICAgICAgICAgaWYgKCAkd2hhdCApIHsKICAgICAgICAgICAgICAgIHJleiA9ICQuZmFuY3lib3guZ2V0VHJhbnNsYXRlKCAkd2hhdCApOwogICAgICAgICAgICAgICAgcmV6ID0gcmV6LndpZHRoIDwgY3VycmVudC53aWR0aCB8fCByZXouaGVpZ2h0IDwgY3VycmVudC5oZWlnaHQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiByZXo7CgogICAgICAgIH0sCgoKICAgICAgICAvLyBDaGVjayBpZiBpbWFnZSBkaW1lbnNpb25zIGV4Y2VlZCBwYXJlbnQgZWxlbWVudAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGNhblBhbiA6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzZWxmLmN1cnJlbnQ7CiAgICAgICAgICAgIHZhciAkd2hhdCAgID0gY3VycmVudC4kY29udGVudDsKCiAgICAgICAgICAgIHZhciByZXogPSBmYWxzZTsKCiAgICAgICAgICAgIGlmICggJHdoYXQgKSB7CiAgICAgICAgICAgICAgICByZXogPSBzZWxmLmdldEZpdFBvcyggY3VycmVudCApOwogICAgICAgICAgICAgICAgcmV6ID0gTWF0aC5hYnMoICR3aGF0LndpZHRoKCkgLSByZXoud2lkdGggKSA+IDEgIHx8IE1hdGguYWJzKCAkd2hhdC5oZWlnaHQoKSAtIHJlei5oZWlnaHQgKSA+IDE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiByZXo7CgogICAgICAgIH0sCgoKICAgICAgICAvLyBMb2FkIGNvbnRlbnQgaW50byB0aGUgc2xpZGUKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgbG9hZFNsaWRlIDogZnVuY3Rpb24oIHNsaWRlICkgewoKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzLCB0eXBlLCAkc2xpZGU7CiAgICAgICAgICAgIHZhciBhamF4TG9hZDsKCiAgICAgICAgICAgIGlmICggc2xpZGUuaXNMb2FkaW5nICkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIHNsaWRlLmlzTG9hZGVkICkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzbGlkZS5pc0xvYWRpbmcgPSB0cnVlOwoKICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCAnYmVmb3JlTG9hZCcsIHNsaWRlICk7CgogICAgICAgICAgICB0eXBlICAgPSBzbGlkZS50eXBlOwogICAgICAgICAgICAkc2xpZGUgPSBzbGlkZS4kc2xpZGU7CgogICAgICAgICAgICAkc2xpZGUKICAgICAgICAgICAgICAgIC5vZmYoICdyZWZyZXNoJyApCiAgICAgICAgICAgICAgICAudHJpZ2dlciggJ29uUmVzZXQnICkKICAgICAgICAgICAgICAgIC5hZGRDbGFzcyggJ2ZhbmN5Ym94LXNsaWRlLS0nICsgKCB0eXBlIHx8ICd1bmtub3duJyApICkKICAgICAgICAgICAgICAgIC5hZGRDbGFzcyggc2xpZGUub3B0cy5zbGlkZUNsYXNzICk7CgogICAgICAgICAgICAvLyBDcmVhdGUgY29udGVudCBkZXBlbmRpbmcgb24gdGhlIHR5cGUKCiAgICAgICAgICAgIHN3aXRjaCAoIHR5cGUgKSB7CgogICAgICAgICAgICAgICAgY2FzZSAnaW1hZ2UnOgoKICAgICAgICAgICAgICAgICAgICBzZWxmLnNldEltYWdlKCBzbGlkZSApOwoKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ2lmcmFtZSc6CgogICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0SWZyYW1lKCBzbGlkZSApOwoKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ2h0bWwnOgoKICAgICAgICAgICAgICAgICAgICBzZWxmLnNldENvbnRlbnQoIHNsaWRlLCBzbGlkZS5zcmMgfHwgc2xpZGUuY29udGVudCApOwoKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgJ2lubGluZSc6CgogICAgICAgICAgICAgICAgICAgIGlmICggJCggc2xpZGUuc3JjICkubGVuZ3RoICkgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldENvbnRlbnQoIHNsaWRlLCAkKCBzbGlkZS5zcmMgKSApOwoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldEVycm9yKCBzbGlkZSApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICdhamF4JzoKCiAgICAgICAgICAgICAgICAgICAgc2VsZi5zaG93TG9hZGluZyggc2xpZGUgKTsKCiAgICAgICAgICAgICAgICAgICAgYWpheExvYWQgPSAkLmFqYXgoICQuZXh0ZW5kKCB7fSwgc2xpZGUub3B0cy5hamF4LnNldHRpbmdzLCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHVybCA6IHNsaWRlLnNyYywKICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA6IGZ1bmN0aW9uICggZGF0YSwgdGV4dFN0YXR1cyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHRleHRTdGF0dXMgPT09ICdzdWNjZXNzJyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNldENvbnRlbnQoIHNsaWRlLCBkYXRhICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA6IGZ1bmN0aW9uICgganFYSFIsIHRleHRTdGF0dXMgKSB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCBqcVhIUiAmJiB0ZXh0U3RhdHVzICE9PSAnYWJvcnQnICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0RXJyb3IoIHNsaWRlICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSkpOwoKICAgICAgICAgICAgICAgICAgICAkc2xpZGUub25lKCAnb25SZXNldCcsIGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYWpheExvYWQuYWJvcnQoKTsKICAgICAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlICd2aWRlbycgOgoKICAgICAgICAgICAgICAgICAgICBzZWxmLnNldENvbnRlbnQoIHNsaWRlLAogICAgICAgICAgICAgICAgICAgICAgICAnPHZpZGVvIGNvbnRyb2xzPicgKwogICAgICAgICAgICAgICAgICAgICAgICAgICc8c291cmNlIHNyYz0iJyArIHNsaWRlLnNyYyArICciIHR5cGU9IicgKyBzbGlkZS5vcHRzLnZpZGVvRm9ybWF0ICsgJyI+JyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWW91ciBicm93c2VyIGRvZXNuXCd0IHN1cHBvcnQgSFRNTDUgdmlkZW8nICsKICAgICAgICAgICAgICAgICAgICAgICAgJzwvdmlkZW8+JwogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgZGVmYXVsdDoKCiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRFcnJvciggc2xpZGUgKTsKCiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0cnVlOwoKICAgICAgICB9LAoKCiAgICAgICAgLy8gVXNlIHRodW1ibmFpbCBpbWFnZSwgaWYgcG9zc2libGUKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBzZXRJbWFnZSA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKCiAgICAgICAgICAgIHZhciBzZWxmICAgPSB0aGlzOwogICAgICAgICAgICB2YXIgc3Jjc2V0ID0gc2xpZGUub3B0cy5zcmNzZXQgfHwgc2xpZGUub3B0cy5pbWFnZS5zcmNzZXQ7CgogICAgICAgICAgICB2YXIgZm91bmQsIHRlbXAsIHB4UmF0aW8sIHdpbmRvd1dpZHRoOwoKICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSAic3Jjc2V0IiwgdGhlbiB3ZSBuZWVkIHRvIGZpbmQgbWF0Y2hpbmcgInNyYyIgdmFsdWUuCiAgICAgICAgICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5LCBiZWNhdXNlIHdoZW4geW91IHNldCBhbiBzcmMgYXR0cmlidXRlLCB0aGUgYnJvd3NlciB3aWxsIHByZWxvYWQgdGhlIGltYWdlCiAgICAgICAgICAgIC8vIGJlZm9yZSBhbnkgamF2YXNjcmlwdCBvciBldmVuIENTUyBpcyBhcHBsaWVkLgogICAgICAgICAgICBpZiAoIHNyY3NldCApIHsKICAgICAgICAgICAgICAgIHB4UmF0aW8gICAgID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsKICAgICAgICAgICAgICAgIHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGggICogcHhSYXRpbzsKCiAgICAgICAgICAgICAgICB0ZW1wID0gc3Jjc2V0LnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uICggZWwgKSB7CiAgICAgICAgICAgIAkJdmFyIHJldCA9IHt9OwoKICAgICAgICAgICAgCQllbC50cmltKCkuc3BsaXQoL1xzKy8pLmZvckVhY2goZnVuY3Rpb24gKCBlbCwgaSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gcGFyc2VJbnQoIGVsLnN1YnN0cmluZygwLCBlbC5sZW5ndGggLSAxKSwgMTAgKTsKCiAgICAgICAgICAgIAkJCWlmICggaSA9PT0gMCApIHsKICAgICAgICAgICAgCQkJCXJldHVybiAoIHJldC51cmwgPSBlbCApOwogICAgICAgICAgICAJCQl9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHZhbHVlICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0LnZhbHVlICAgPSB2YWx1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldC5wb3N0Zml4ID0gZWxbIGVsLmxlbmd0aCAtIDEgXTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgCQl9KTsKCiAgICAgICAgICAgIAkJcmV0dXJuIHJldDsKICAgICAgICAgICAgCX0pOwoKICAgICAgICAgICAgICAgIC8vIFNvcnQgYnkgdmFsdWUKICAgICAgICAgICAgICAgIHRlbXAuc29ydChmdW5jdGlvbiAoYSwgYikgewogICAgICAgICAgICAgICAgICByZXR1cm4gYS52YWx1ZSAtIGIudmFsdWU7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBPaywgbm93IHdlIGhhdmUgYW4gYXJyYXkgb2YgYWxsIHNyY3NldCB2YWx1ZXMKICAgICAgICAgICAgICAgIGZvciAoIHZhciBqID0gMDsgaiA8IHRlbXAubGVuZ3RoOyBqKysgKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGVsID0gdGVtcFsgaiBdOwoKICAgICAgICAgICAgICAgICAgICBpZiAoICggZWwucG9zdGZpeCA9PT0gJ3cnICYmIGVsLnZhbHVlID49IHdpbmRvd1dpZHRoICkgfHwgKCBlbC5wb3N0Zml4ID09PSAneCcgJiYgZWwudmFsdWUgPj0gcHhSYXRpbyApICkgewogICAgICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IGVsOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gSWYgbm90IGZvdW5kLCB0YWtlIHRoZSBsYXN0IG9uZQogICAgICAgICAgICAgICAgaWYgKCAhZm91bmQgJiYgdGVtcC5sZW5ndGggKSB7CiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0ZW1wWyB0ZW1wLmxlbmd0aCAtIDEgXTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIGZvdW5kICkgewogICAgICAgICAgICAgICAgICAgIHNsaWRlLnNyYyA9IGZvdW5kLnVybDsKCiAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBkZWZhdWx0IHdpZHRoL2hlaWdodCB2YWx1ZXMsIHdlIGNhbiBjYWxjdWxhdGUgaGVpZ2h0IGZvciBtYXRjaGluZyBzb3VyY2UKICAgICAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLndpZHRoICYmIHNsaWRlLmhlaWdodCAmJiBmb3VuZC5wb3N0Zml4ID09ICd3JyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGUuaGVpZ2h0ID0gKCBzbGlkZS53aWR0aCAvIHNsaWRlLmhlaWdodCApICogZm91bmQudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlLndpZHRoICA9IGZvdW5kLnZhbHVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gVGhpcyB3aWxsIGJlIHdyYXBwZXIgY29udGFpbmluZyBib3RoIGdob3N0IGFuZCBhY3R1YWwgaW1hZ2UKICAgICAgICAgICAgc2xpZGUuJGNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPSJmYW5jeWJveC1pbWFnZS13cmFwIj48L2Rpdj4nKQogICAgICAgICAgICAgICAgLmFkZENsYXNzKCAnZmFuY3lib3gtaXMtaGlkZGVuJyApCiAgICAgICAgICAgICAgICAuYXBwZW5kVG8oIHNsaWRlLiRzbGlkZSApOwoKCiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSB0aHVtYm5haWwsIHdlIGNhbiBkaXNwbGF5IGl0IHdoaWxlIGFjdHVhbCBpbWFnZSBpcyBsb2FkaW5nCiAgICAgICAgICAgIC8vIFVzZXJzIHdpbGwgbm90IHN0YXJlIGF0IGJsYWNrIHNjcmVlbiBhbmQgYWN0dWFsIGltYWdlIHdpbGwgYXBwZWFyIGdyYWR1YWxseQogICAgICAgICAgICBpZiAoIHNsaWRlLm9wdHMucHJlbG9hZCAhPT0gZmFsc2UgJiYgc2xpZGUub3B0cy53aWR0aCAmJiBzbGlkZS5vcHRzLmhlaWdodCAmJiAoIHNsaWRlLm9wdHMudGh1bWIgfHwgc2xpZGUub3B0cy4kdGh1bWIgKSApIHsKCiAgICAgICAgICAgICAgICBzbGlkZS53aWR0aCAgPSBzbGlkZS5vcHRzLndpZHRoOwogICAgICAgICAgICAgICAgc2xpZGUuaGVpZ2h0ID0gc2xpZGUub3B0cy5oZWlnaHQ7CgogICAgICAgICAgICAgICAgc2xpZGUuJGdob3N0ID0gJCgnPGltZyAvPicpCiAgICAgICAgICAgICAgICAgICAgLm9uZSgnZXJyb3InLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykucmVtb3ZlKCk7CgogICAgICAgICAgICAgICAgICAgICAgICBzbGlkZS4kZ2hvc3QgPSBudWxsOwoKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRCaWdJbWFnZSggc2xpZGUgKTsKCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAub25lKCdsb2FkJywgZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFmdGVyTG9hZCggc2xpZGUgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0QmlnSW1hZ2UoIHNsaWRlICk7CgogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgLmFkZENsYXNzKCAnZmFuY3lib3gtaW1hZ2UnICkKICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oIHNsaWRlLiRjb250ZW50ICkKICAgICAgICAgICAgICAgICAgICAuYXR0ciggJ3NyYycsIHNsaWRlLm9wdHMudGh1bWIgfHwgc2xpZGUub3B0cy4kdGh1bWIuYXR0ciggJ3NyYycgKSApOwoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICBzZWxmLnNldEJpZ0ltYWdlKCBzbGlkZSApOwoKICAgICAgICAgICAgfQoKICAgICAgICB9LAoKCiAgICAgICAgLy8gQ3JlYXRlIGZ1bGwtc2l6ZSBpbWFnZQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgc2V0QmlnSW1hZ2UgOiBmdW5jdGlvbiAoIHNsaWRlICkgewogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAgICAgIHZhciAkaW1nID0gJCgnPGltZyAvPicpOwoKICAgICAgICAgICAgc2xpZGUuJGltYWdlID0gJGltZwogICAgICAgICAgICAgICAgLm9uZSgnZXJyb3InLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRFcnJvciggc2xpZGUgKTsKCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLm9uZSgnbG9hZCcsIGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgICAgICAvLyBDbGVhciB0aW1lb3V0IHRoYXQgY2hlY2tzIGlmIGxvYWRpbmcgaWNvbiBuZWVkcyB0byBiZSBkaXNwbGF5ZWQKICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoIHNsaWRlLnRpbW91dHMgKTsKCiAgICAgICAgICAgICAgICAgICAgc2xpZGUudGltb3V0cyA9IG51bGw7CgogICAgICAgICAgICAgICAgICAgIGlmICggc2VsZi5pc0Nsb3NpbmcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHNsaWRlLndpZHRoICA9IHNsaWRlLm9wdHMud2lkdGggIHx8IHRoaXMubmF0dXJhbFdpZHRoOwogICAgICAgICAgICAgICAgICAgIHNsaWRlLmhlaWdodCA9IHNsaWRlLm9wdHMuaGVpZ2h0IHx8IHRoaXMubmF0dXJhbEhlaWdodDsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCBzbGlkZS5vcHRzLmltYWdlLnNyY3NldCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGltZy5hdHRyKCAnc2l6ZXMnLCAnMTAwdncnICkuYXR0ciggJ3NyY3NldCcsIHNsaWRlLm9wdHMuaW1hZ2Uuc3Jjc2V0ICk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzZWxmLmhpZGVMb2FkaW5nKCBzbGlkZSApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLiRnaG9zdCApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNsaWRlLnRpbW91dHMgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGUudGltb3V0cyA9IG51bGw7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpZGUuJGdob3N0LmhpZGUoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIE1hdGgubWluKCAzMDAsIE1hdGgubWF4KCAxMDAwLCBzbGlkZS5oZWlnaHQgLyAxNjAwICkgKSApOwoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFmdGVyTG9hZCggc2xpZGUgKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5hZGRDbGFzcyggJ2ZhbmN5Ym94LWltYWdlJyApCiAgICAgICAgICAgICAgICAuYXR0cignc3JjJywgc2xpZGUuc3JjKQogICAgICAgICAgICAgICAgLmFwcGVuZFRvKCBzbGlkZS4kY29udGVudCApOwoKICAgICAgICAgICAgaWYgKCAoICRpbWdbMF0uY29tcGxldGUgfHwgJGltZ1swXS5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIgKSAmJiAkaW1nWzBdLm5hdHVyYWxXaWR0aCAmJiAkaW1nWzBdLm5hdHVyYWxIZWlnaHQgKSB7CiAgICAgICAgICAgICAgICAgICRpbWcudHJpZ2dlciggJ2xvYWQnICk7CgogICAgICAgICAgICB9IGVsc2UgaWYoICRpbWdbMF0uZXJyb3IgKSB7CiAgICAgICAgICAgICAgICAgJGltZy50cmlnZ2VyKCAnZXJyb3InICk7CgogICAgICAgICAgICB9IGVsc2UgewoKICAgICAgICAgICAgICAgIHNsaWRlLnRpbW91dHMgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGlmICggISRpbWdbMF0uY29tcGxldGUgJiYgIXNsaWRlLmhhc0Vycm9yICkgewogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNob3dMb2FkaW5nKCBzbGlkZSApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9LCAxMDApOwoKICAgICAgICAgICAgfQoKICAgICAgICB9LAoKCiAgICAgICAgLy8gQ3JlYXRlIGlmcmFtZSB3cmFwcGVyLCBpZnJhbWUgYW5kIGJpbmRpbmdzCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHNldElmcmFtZSA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKICAgICAgICAgICAgdmFyIHNlbGYJPSB0aGlzLAogICAgICAgICAgICAgICAgb3B0cyAgICA9IHNsaWRlLm9wdHMuaWZyYW1lLAogICAgICAgICAgICAgICAgJHNsaWRlCT0gc2xpZGUuJHNsaWRlLAogICAgICAgICAgICAgICAgJGlmcmFtZTsKCiAgICAgICAgICAgIHNsaWRlLiRjb250ZW50ID0gJCgnPGRpdiBjbGFzcz0iZmFuY3lib3gtY29udGVudCcgKyAoIG9wdHMucHJlbG9hZCA/ICcgZmFuY3lib3gtaXMtaGlkZGVuJyA6ICcnICkgKyAnIj48L2Rpdj4nKQogICAgICAgICAgICAgICAgLmNzcyggb3B0cy5jc3MgKQogICAgICAgICAgICAgICAgLmFwcGVuZFRvKCAkc2xpZGUgKTsKCiAgICAgICAgICAgICRpZnJhbWUgPSAkKCBvcHRzLnRwbC5yZXBsYWNlKC9ce3JuZFx9L2csIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSApCiAgICAgICAgICAgICAgICAuYXR0ciggb3B0cy5hdHRyICkKICAgICAgICAgICAgICAgIC5hcHBlbmRUbyggc2xpZGUuJGNvbnRlbnQgKTsKCiAgICAgICAgICAgIGlmICggb3B0cy5wcmVsb2FkICkgewoKICAgICAgICAgICAgICAgIHNlbGYuc2hvd0xvYWRpbmcoIHNsaWRlICk7CgogICAgICAgICAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwgaXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBkZXRlcm1pbmUgaWYgaWZyYW1lIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQKICAgICAgICAgICAgICAgIC8vIChkdWUgdG8gYnJvd3NlciBzZWN1cml0eSBwb2xpY3kpCgogICAgICAgICAgICAgICAgJGlmcmFtZS5vbignbG9hZC5mYiBlcnJvci5mYicsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSAxOwoKICAgICAgICAgICAgICAgICAgICBzbGlkZS4kc2xpZGUudHJpZ2dlciggJ3JlZnJlc2gnICk7CgogICAgICAgICAgICAgICAgICAgIHNlbGYuYWZ0ZXJMb2FkKCBzbGlkZSApOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy8gUmVjYWxjdWxhdGUgaWZyYW1lIGNvbnRlbnQgc2l6ZQogICAgICAgICAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICAgICAgICAgICRzbGlkZS5vbigncmVmcmVzaC5mYicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHZhciAkd3JhcCA9IHNsaWRlLiRjb250ZW50LAogICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVdpZHRoICA9IG9wdHMuY3NzLndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICBmcmFtZUhlaWdodCA9IG9wdHMuY3NzLmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsV2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICRjb250ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgJGJvZHk7CgogICAgICAgICAgICAgICAgICAgIGlmICggJGlmcmFtZVswXS5pc1JlYWR5ICE9PSAxICkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBjb250ZW50IGlzIGFjY2Vzc2libGUsCiAgICAgICAgICAgICAgICAgICAgLy8gaXQgd2lsbCBmYWlsIGlmIGZyYW1lIGlzIG5vdCB3aXRoIHRoZSBzYW1lIG9yaWdpbgoKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICAkY29udGVudHMgPSAkaWZyYW1lLmNvbnRlbnRzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRib2R5ICAgICA9ICRjb250ZW50cy5maW5kKCdib2R5Jyk7CgogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge30KCiAgICAgICAgICAgICAgICAgICAgLy8gQ2FsY3VsYXRlIGRpbWVuc2lvbnMgZm9yIHRoZSB3cmFwcGVyCiAgICAgICAgICAgICAgICAgICAgaWYgKCAkYm9keSAmJiAkYm9keS5sZW5ndGggKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGZyYW1lV2lkdGggPT09IHVuZGVmaW5lZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFdpZHRoID0gJGlmcmFtZVswXS5jb250ZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxXaWR0aDsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVdpZHRoID0gTWF0aC5jZWlsKCAkYm9keS5vdXRlcldpZHRoKHRydWUpICsgKCAkd3JhcC53aWR0aCgpIC0gc2Nyb2xsV2lkdGggKSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVXaWR0aCArPSAkd3JhcC5vdXRlcldpZHRoKCkgLSAkd3JhcC5pbm5lcldpZHRoKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZnJhbWVIZWlnaHQgPT09IHVuZGVmaW5lZCApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lSGVpZ2h0ID0gTWF0aC5jZWlsKCAkYm9keS5vdXRlckhlaWdodCh0cnVlKSApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVIZWlnaHQgKz0gJHdyYXAub3V0ZXJIZWlnaHQoKSAtICR3cmFwLmlubmVySGVpZ2h0KCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlc2l6ZSB3cmFwcGVyIHRvIGZpdCBpZnJhbWUgY29udGVudAogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGZyYW1lV2lkdGggKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd3JhcC53aWR0aCggZnJhbWVXaWR0aCApOwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGZyYW1lSGVpZ2h0ICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdyYXAuaGVpZ2h0KCBmcmFtZUhlaWdodCApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkd3JhcC5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LWlzLWhpZGRlbicgKTsKCiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgdGhpcy5hZnRlckxvYWQoIHNsaWRlICk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAkaWZyYW1lLmF0dHIoICdzcmMnLCBzbGlkZS5zcmMgKTsKCiAgICAgICAgICAgIGlmICggc2xpZGUub3B0cy5zbWFsbEJ0biA9PT0gdHJ1ZSApIHsKICAgICAgICAgICAgICAgIHNsaWRlLiRjb250ZW50LnByZXBlbmQoIHNlbGYudHJhbnNsYXRlKCBzbGlkZSwgc2xpZGUub3B0cy5idG5UcGwuc21hbGxCdG4gKSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBSZW1vdmUgaWZyYW1lIGlmIGNsb3Npbmcgb3IgY2hhbmdpbmcgZ2FsbGVyeSBpdGVtCiAgICAgICAgICAgICRzbGlkZS5vbmUoICdvblJlc2V0JywgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgIC8vIFRoaXMgaGVscHMgSUUgbm90IHRvIHRocm93IGVycm9ycyB3aGVuIGNsb3NpbmcKICAgICAgICAgICAgICAgIHRyeSB7CgogICAgICAgICAgICAgICAgICAgICQoIHRoaXMgKS5maW5kKCAnaWZyYW1lJyApLmhpZGUoKS5hdHRyKCAnc3JjJywgJy8vYWJvdXQ6YmxhbmsnICk7CgogICAgICAgICAgICAgICAgfSBjYXRjaCAoIGlnbm9yZSApIHt9CgogICAgICAgICAgICAgICAgJCggdGhpcyApLmVtcHR5KCk7CgogICAgICAgICAgICAgICAgc2xpZGUuaXNMb2FkZWQgPSBmYWxzZTsKCiAgICAgICAgICAgIH0pOwoKICAgICAgICB9LAoKCiAgICAgICAgLy8gV3JhcCBhbmQgYXBwZW5kIGNvbnRlbnQgdG8gdGhlIHNsaWRlCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgc2V0Q29udGVudCA6IGZ1bmN0aW9uICggc2xpZGUsIGNvbnRlbnQgKSB7CgogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgICAgICBpZiAoIHNlbGYuaXNDbG9zaW5nICkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzZWxmLmhpZGVMb2FkaW5nKCBzbGlkZSApOwoKICAgICAgICAgICAgc2xpZGUuJHNsaWRlLmVtcHR5KCk7CgogICAgICAgICAgICBpZiAoIGlzUXVlcnkoIGNvbnRlbnQgKSAmJiBjb250ZW50LnBhcmVudCgpLmxlbmd0aCApIHsKCiAgICAgICAgICAgICAgICAvLyBJZiBjb250ZW50IGlzIGEgalF1ZXJ5IG9iamVjdCwgdGhlbiBpdCB3aWxsIGJlIG1vdmVkIHRvIHRoZSBzbGlkZS4KICAgICAgICAgICAgICAgIC8vIFRoZSBwbGFjZWhvbGRlciBpcyBjcmVhdGVkIHNvIHdlIHdpbGwga25vdyB3aGVyZSB0byBwdXQgaXQgYmFjay4KICAgICAgICAgICAgICAgIC8vIElmIHVzZXIgaXMgbmF2aWdhdGluZyBnYWxsZXJ5IGZhc3QsIHRoZW4gdGhlIGNvbnRlbnQgbWlnaHQgYmUgYWxyZWFkeSBpbnNpZGUgZmFuY3lCb3gKICAgICAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgY29udGVudCBpcyBub3QgYWxyZWFkeSBtb3ZlZCB0byBmYW5jeUJveAogICAgICAgICAgICAgICAgY29udGVudC5wYXJlbnQoICcuZmFuY3lib3gtc2xpZGUtLWlubGluZScgKS50cmlnZ2VyKCAnb25SZXNldCcgKTsKCiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgdGVtcG9yYXJ5IGVsZW1lbnQgbWFya2luZyBvcmlnaW5hbCBwbGFjZSBvZiB0aGUgY29udGVudAogICAgICAgICAgICAgICAgc2xpZGUuJHBsYWNlaG9sZGVyID0gJCggJzxkaXY+PC9kaXY+JyApLmhpZGUoKS5pbnNlcnRBZnRlciggY29udGVudCApOwoKICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBjb250ZW50IGlzIHZpc2libGUKICAgICAgICAgICAgICAgIGNvbnRlbnQuY3NzKCdkaXNwbGF5JywgJ2lubGluZS1ibG9jaycpOwoKICAgICAgICAgICAgfSBlbHNlIGlmICggIXNsaWRlLmhhc0Vycm9yICkgewoKICAgICAgICAgICAgICAgIC8vIElmIGNvbnRlbnQgaXMganVzdCBhIHBsYWluIHRleHQsIHRyeSB0byBjb252ZXJ0IGl0IHRvIGh0bWwKICAgICAgICAgICAgICAgIGlmICggJC50eXBlKCBjb250ZW50ICkgPT09ICdzdHJpbmcnICkgewogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSAkKCc8ZGl2PicpLmFwcGVuZCggJC50cmltKCBjb250ZW50ICkgKS5jb250ZW50cygpOwoKICAgICAgICAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIHRleHQgbm9kZSwgdGhlbiBhZGQgd3JhcHBpbmcgZWxlbWVudCB0byBtYWtlIHZlcnRpY2FsIGFsaWdubWVudCB3b3JrCiAgICAgICAgICAgICAgICAgICAgaWYgKCBjb250ZW50WzBdLm5vZGVUeXBlID09PSAzICkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gJCgnPGRpdj4nKS5odG1sKCBjb250ZW50ICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIElmICJmaWx0ZXIiIG9wdGlvbiBpcyBwcm92aWRlZCwgdGhlbiBmaWx0ZXIgY29udGVudAogICAgICAgICAgICAgICAgaWYgKCBzbGlkZS5vcHRzLmZpbHRlciApIHsKICAgICAgICAgICAgICAgICAgICBjb250ZW50ID0gJCgnPGRpdj4nKS5odG1sKCBjb250ZW50ICkuZmluZCggc2xpZGUub3B0cy5maWx0ZXIgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNsaWRlLiRzbGlkZS5vbmUoJ29uUmVzZXQnLCBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICAgICAgLy8gUGF1c2UgYWxsIGh0bWw1IHZpZGVvL2F1ZGlvCiAgICAgICAgICAgICAgICAkKCB0aGlzICkuZmluZCggJ3ZpZGVvLGF1ZGlvJyApLnRyaWdnZXIoICdwYXVzZScgKTsKCiAgICAgICAgICAgICAgICAvLyBQdXQgY29udGVudCBiYWNrCiAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLiRwbGFjZWhvbGRlciApIHsKICAgICAgICAgICAgICAgICAgICBzbGlkZS4kcGxhY2Vob2xkZXIuYWZ0ZXIoIGNvbnRlbnQuaGlkZSgpICkucmVtb3ZlKCk7CgogICAgICAgICAgICAgICAgICAgIHNsaWRlLiRwbGFjZWhvbGRlciA9IG51bGw7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGN1c3RvbSBjbG9zZSBidXR0b24KICAgICAgICAgICAgICAgIGlmICggc2xpZGUuJHNtYWxsQnRuICkgewogICAgICAgICAgICAgICAgICAgIHNsaWRlLiRzbWFsbEJ0bi5yZW1vdmUoKTsKCiAgICAgICAgICAgICAgICAgICAgc2xpZGUuJHNtYWxsQnRuID0gbnVsbDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgY29udGVudCBhbmQgbWFyayBzbGlkZSBhcyBub3QgbG9hZGVkCiAgICAgICAgICAgICAgICBpZiAoICFzbGlkZS5oYXNFcnJvciApIHsKICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmVtcHR5KCk7CgogICAgICAgICAgICAgICAgICAgIHNsaWRlLmlzTG9hZGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIHNsaWRlLiRjb250ZW50ID0gJCggY29udGVudCApLmFwcGVuZFRvKCBzbGlkZS4kc2xpZGUgKTsKCiAgICAgICAgICAgIHRoaXMuYWZ0ZXJMb2FkKCBzbGlkZSApOwogICAgICAgIH0sCgogICAgICAgIC8vIERpc3BsYXkgZXJyb3IgbWVzc2FnZQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBzZXRFcnJvciA6IGZ1bmN0aW9uICggc2xpZGUgKSB7CgogICAgICAgICAgICBzbGlkZS5oYXNFcnJvciA9IHRydWU7CgogICAgICAgICAgICBzbGlkZS4kc2xpZGUucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1zbGlkZS0tJyArIHNsaWRlLnR5cGUgKTsKCiAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudCggc2xpZGUsIHRoaXMudHJhbnNsYXRlKCBzbGlkZSwgc2xpZGUub3B0cy5lcnJvclRwbCApICk7CgogICAgICAgIH0sCgoKICAgICAgICAvLyBTaG93IGxvYWRpbmcgaWNvbiBpbnNpZGUgdGhlIHNsaWRlCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBzaG93TG9hZGluZyA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgICAgIHNsaWRlID0gc2xpZGUgfHwgc2VsZi5jdXJyZW50OwoKICAgICAgICAgICAgaWYgKCBzbGlkZSAmJiAhc2xpZGUuJHNwaW5uZXIgKSB7CiAgICAgICAgICAgICAgICBzbGlkZS4kc3Bpbm5lciA9ICQoIHNlbGYub3B0cy5zcGlubmVyVHBsICkuYXBwZW5kVG8oIHNsaWRlLiRzbGlkZSApOwogICAgICAgICAgICB9CgogICAgICAgIH0sCgogICAgICAgIC8vIFJlbW92ZSBsb2FkaW5nIGljb24gZnJvbSB0aGUgc2xpZGUKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGhpZGVMb2FkaW5nIDogZnVuY3Rpb24oIHNsaWRlICkgewoKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgc2xpZGUgPSBzbGlkZSB8fCBzZWxmLmN1cnJlbnQ7CgogICAgICAgICAgICBpZiAoIHNsaWRlICYmIHNsaWRlLiRzcGlubmVyICkgewogICAgICAgICAgICAgICAgc2xpZGUuJHNwaW5uZXIucmVtb3ZlKCk7CgogICAgICAgICAgICAgICAgZGVsZXRlIHNsaWRlLiRzcGlubmVyOwogICAgICAgICAgICB9CgogICAgICAgIH0sCgoKICAgICAgICAvLyBBZGp1c3RtZW50cyBhZnRlciBzbGlkZSBjb250ZW50IGhhcyBiZWVuIGxvYWRlZAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGFmdGVyTG9hZCA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgICAgIGlmICggc2VsZi5pc0Nsb3NpbmcgKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNsaWRlLmlzTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICBzbGlkZS5pc0xvYWRlZCAgPSB0cnVlOwoKICAgICAgICAgICAgc2VsZi50cmlnZ2VyKCAnYWZ0ZXJMb2FkJywgc2xpZGUgKTsKCiAgICAgICAgICAgIHNlbGYuaGlkZUxvYWRpbmcoIHNsaWRlICk7CgogICAgICAgICAgICBpZiAoIHNsaWRlLm9wdHMuc21hbGxCdG4gJiYgIXNsaWRlLiRzbWFsbEJ0biApIHsKICAgICAgICAgICAgICAgIHNsaWRlLiRzbWFsbEJ0biA9ICQoIHNlbGYudHJhbnNsYXRlKCBzbGlkZSwgc2xpZGUub3B0cy5idG5UcGwuc21hbGxCdG4gKSApLmFwcGVuZFRvKCBzbGlkZS4kY29udGVudC5maWx0ZXIoJ2Rpdixmb3JtJykuZmlyc3QoKSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIHNsaWRlLm9wdHMucHJvdGVjdCAmJiBzbGlkZS4kY29udGVudCAmJiAhc2xpZGUuaGFzRXJyb3IgKSB7CgogICAgICAgICAgICAgICAgLy8gRGlzYWJsZSByaWdodCBjbGljawogICAgICAgICAgICAgICAgc2xpZGUuJGNvbnRlbnQub24oICdjb250ZXh0bWVudS5mYicsIGZ1bmN0aW9uKCBlICkgewogICAgICAgICAgICAgICAgICAgICBpZiAoIGUuYnV0dG9uID09IDIgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICAvLyBBZGQgZmFrZSBlbGVtZW50IG9uIHRvcCBvZiB0aGUgaW1hZ2UKICAgICAgICAgICAgICAgIC8vIFRoaXMgbWFrZXMgYSBiaXQgaGFyZGVyIGZvciB1c2VyIHRvIHNlbGVjdCBpbWFnZQogICAgICAgICAgICAgICAgaWYgKCBzbGlkZS50eXBlID09PSAnaW1hZ2UnICkgewogICAgICAgICAgICAgICAgICAgICQoICc8ZGl2IGNsYXNzPSJmYW5jeWJveC1zcGFjZWJhbGwiPjwvZGl2PicgKS5hcHBlbmRUbyggc2xpZGUuJGNvbnRlbnQgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGYucmV2ZWFsQ29udGVudCggc2xpZGUgKTsKCiAgICAgICAgfSwKCgogICAgICAgIC8vIE1ha2UgY29udGVudCB2aXNpYmxlCiAgICAgICAgLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIHJpZ2h0IGFmdGVyIGNvbnRlbnQgaGFzIGJlZW4gbG9hZGVkIG9yCiAgICAgICAgLy8gdXNlciBuYXZpZ2F0ZXMgZ2FsbGVyeSBhbmQgdHJhbnNpdGlvbiBzaG91bGQgc3RhcnQKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgcmV2ZWFsQ29udGVudCA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKCiAgICAgICAgICAgIHZhciBzZWxmICAgPSB0aGlzOwogICAgICAgICAgICB2YXIgJHNsaWRlID0gc2xpZGUuJHNsaWRlOwoKICAgICAgICAgICAgdmFyIGVmZmVjdCwgZWZmZWN0Q2xhc3NOYW1lLCBkdXJhdGlvbiwgb3BhY2l0eSwgZW5kLCBzdGFydCA9IGZhbHNlOwoKICAgICAgICAgICAgZWZmZWN0ICAgPSBzbGlkZS5vcHRzWyBzZWxmLmZpcnN0UnVuID8gJ2FuaW1hdGlvbkVmZmVjdCcgICA6ICd0cmFuc2l0aW9uRWZmZWN0JyBdOwogICAgICAgICAgICBkdXJhdGlvbiA9IHNsaWRlLm9wdHNbIHNlbGYuZmlyc3RSdW4gPyAnYW5pbWF0aW9uRHVyYXRpb24nIDogJ3RyYW5zaXRpb25EdXJhdGlvbicgXTsKCiAgICAgICAgICAgIGR1cmF0aW9uID0gcGFyc2VJbnQoIHNsaWRlLmZvcmNlZER1cmF0aW9uID09PSB1bmRlZmluZWQgPyBkdXJhdGlvbiA6IHNsaWRlLmZvcmNlZER1cmF0aW9uLCAxMCApOwoKICAgICAgICAgICAgaWYgKCBzbGlkZS5pc01vdmVkIHx8IHNsaWRlLnBvcyAhPT0gc2VsZi5jdXJyUG9zIHx8ICFkdXJhdGlvbiApIHsKICAgICAgICAgICAgICAgIGVmZmVjdCA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBDaGVjayBpZiBjYW4gem9vbQogICAgICAgICAgICBpZiAoIGVmZmVjdCA9PT0gJ3pvb20nICYmICEoIHNsaWRlLnBvcyA9PT0gc2VsZi5jdXJyUG9zICYmIGR1cmF0aW9uICYmIHNsaWRlLnR5cGUgPT09ICdpbWFnZScgJiYgIXNsaWRlLmhhc0Vycm9yICYmICggc3RhcnQgPSBzZWxmLmdldFRodW1iUG9zKCBzbGlkZSApICkgKSApIHsKICAgICAgICAgICAgICAgIGVmZmVjdCA9ICdmYWRlJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gWm9vbSBhbmltYXRpb24KICAgICAgICAgICAgLy8gPT09PT09PT09PT09PT0KCiAgICAgICAgICAgIGlmICggZWZmZWN0ID09PSAnem9vbScgKSB7CiAgICAgICAgICAgICAgICBlbmQgPSBzZWxmLmdldEZpdFBvcyggc2xpZGUgKTsKCiAgICAgICAgICAgICAgICBlbmQuc2NhbGVYID0gZW5kLndpZHRoICAvIHN0YXJ0LndpZHRoOwogICAgICAgICAgICAgICAgZW5kLnNjYWxlWSA9IGVuZC5oZWlnaHQgLyBzdGFydC5oZWlnaHQ7CgogICAgICAgICAgICAgICAgZGVsZXRlIGVuZC53aWR0aDsKICAgICAgICAgICAgICAgIGRlbGV0ZSBlbmQuaGVpZ2h0OwoKICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gYW5pbWF0ZSBvcGFjaXR5CiAgICAgICAgICAgICAgICBvcGFjaXR5ID0gc2xpZGUub3B0cy56b29tT3BhY2l0eTsKCiAgICAgICAgICAgICAgICBpZiAoIG9wYWNpdHkgPT0gJ2F1dG8nICkgewogICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgPSBNYXRoLmFicyggc2xpZGUud2lkdGggLyBzbGlkZS5oZWlnaHQgLSBzdGFydC53aWR0aCAvIHN0YXJ0LmhlaWdodCApID4gMC4xOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggb3BhY2l0eSApIHsKICAgICAgICAgICAgICAgICAgICBzdGFydC5vcGFjaXR5ID0gMC4xOwogICAgICAgICAgICAgICAgICAgIGVuZC5vcGFjaXR5ICAgPSAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIERyYXcgaW1hZ2UgYXQgc3RhcnQgcG9zaXRpb24KICAgICAgICAgICAgICAgICQuZmFuY3lib3guc2V0VHJhbnNsYXRlKCBzbGlkZS4kY29udGVudC5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LWlzLWhpZGRlbicgKSwgc3RhcnQgKTsKCiAgICAgICAgICAgICAgICBmb3JjZVJlZHJhdyggc2xpZGUuJGNvbnRlbnQgKTsKCiAgICAgICAgICAgICAgICAvLyBTdGFydCBhbmltYXRpb24KICAgICAgICAgICAgICAgICQuZmFuY3lib3guYW5pbWF0ZSggc2xpZGUuJGNvbnRlbnQsIGVuZCwgZHVyYXRpb24sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHNlbGYuY29tcGxldGUoKTsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2VsZi51cGRhdGVTbGlkZSggc2xpZGUgKTsKCgogICAgICAgICAgICAvLyBTaW1wbHkgc2hvdyBjb250ZW50CiAgICAgICAgICAgIC8vID09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgICAgIGlmICggIWVmZmVjdCApIHsKICAgICAgICAgICAgICAgIGZvcmNlUmVkcmF3KCAkc2xpZGUgKTsKCiAgICAgICAgICAgICAgICBzbGlkZS4kY29udGVudC5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LWlzLWhpZGRlbicgKTsKCiAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLnBvcyA9PT0gc2VsZi5jdXJyUG9zICkgewogICAgICAgICAgICAgICAgICAgIHNlbGYuY29tcGxldGUoKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICQuZmFuY3lib3guc3RvcCggJHNsaWRlICk7CgogICAgICAgICAgICBlZmZlY3RDbGFzc05hbWUgPSAnZmFuY3lib3gtYW5pbWF0ZWQgZmFuY3lib3gtc2xpZGUtLScgKyAoIHNsaWRlLnBvcyA+PSBzZWxmLnByZXZQb3MgPyAnbmV4dCcgOiAncHJldmlvdXMnICkgKyAnIGZhbmN5Ym94LWZ4LScgKyBlZmZlY3Q7CgogICAgICAgICAgICAkc2xpZGUucmVtb3ZlQXR0ciggJ3N0eWxlJyApLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQgZmFuY3lib3gtc2xpZGUtLW5leHQgZmFuY3lib3gtc2xpZGUtLXByZXZpb3VzJyApLmFkZENsYXNzKCBlZmZlY3RDbGFzc05hbWUgKTsKCiAgICAgICAgICAgIHNsaWRlLiRjb250ZW50LnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtaXMtaGlkZGVuJyApOwoKICAgICAgICAgICAgLy9Gb3JjZSByZWZsb3cgZm9yIENTUzMgdHJhbnNpdGlvbnMKICAgICAgICAgICAgZm9yY2VSZWRyYXcoICRzbGlkZSApOwoKICAgICAgICAgICAgJC5mYW5jeWJveC5hbmltYXRlKCAkc2xpZGUsICdmYW5jeWJveC1zbGlkZS0tY3VycmVudCcsIGR1cmF0aW9uLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAkc2xpZGUucmVtb3ZlQ2xhc3MoIGVmZmVjdENsYXNzTmFtZSApLnJlbW92ZUF0dHIoICdzdHlsZScgKTsKCiAgICAgICAgICAgICAgICBpZiAoIHNsaWRlLnBvcyA9PT0gc2VsZi5jdXJyUG9zICkgewogICAgICAgICAgICAgICAgICAgIHNlbGYuY29tcGxldGUoKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0sIHRydWUpOwoKICAgICAgICB9LAoKCiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgY2FuIGFuZCBoYXZlIHRvIHpvb20gZnJvbSB0aHVtYm5haWwKICAgICAgICAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBnZXRUaHVtYlBvcyA6IGZ1bmN0aW9uKCBzbGlkZSApIHsKCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKICAgICAgICAgICAgdmFyIHJleiAgPSBmYWxzZTsKCiAgICAgICAgICAgIC8vIENoZWNrIGlmIGVsZW1lbnQgaXMgaW5zaWRlIHRoZSB2aWV3cG9ydCBieSBhdCBsZWFzdCAxIHBpeGVsCiAgICAgICAgICAgIHZhciBpc0VsZW1lbnRWaXNpYmxlID0gZnVuY3Rpb24oICRlbCApIHsKICAgICAgICAgICAgICAgIHZhciBlbGVtZW50ID0gJGVsWzBdOwoKICAgICAgICAgICAgICAgIHZhciBlbGVtZW50UmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICAgICAgICB2YXIgcGFyZW50UmVjdHMgPSBbXTsKCiAgICAgICAgICAgICAgICB2YXIgdmlzaWJsZUluQWxsUGFyZW50czsKCiAgICAgICAgICAgICAgICB3aGlsZSAoIGVsZW1lbnQucGFyZW50RWxlbWVudCAhPT0gbnVsbCApIHsKICAgICAgICAgICAgICAgICAgICBpZiAoICQoZWxlbWVudC5wYXJlbnRFbGVtZW50KS5jc3MoJ292ZXJmbG93JykgPT09ICdoaWRkZW4nICB8fCAkKGVsZW1lbnQucGFyZW50RWxlbWVudCkuY3NzKCdvdmVyZmxvdycpID09PSAnYXV0bycgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudFJlY3RzLnB1c2goZWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdmlzaWJsZUluQWxsUGFyZW50cyA9IHBhcmVudFJlY3RzLmV2ZXJ5KGZ1bmN0aW9uKHBhcmVudFJlY3QpewogICAgICAgICAgICAgICAgICAgIHZhciB2aXNpYmxlUGl4ZWxYID0gTWF0aC5taW4oZWxlbWVudFJlY3QucmlnaHQsIHBhcmVudFJlY3QucmlnaHQpIC0gTWF0aC5tYXgoZWxlbWVudFJlY3QubGVmdCwgcGFyZW50UmVjdC5sZWZ0KTsKICAgICAgICAgICAgICAgICAgICB2YXIgdmlzaWJsZVBpeGVsWSA9IE1hdGgubWluKGVsZW1lbnRSZWN0LmJvdHRvbSwgcGFyZW50UmVjdC5ib3R0b20pIC0gTWF0aC5tYXgoZWxlbWVudFJlY3QudG9wLCBwYXJlbnRSZWN0LnRvcCk7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlUGl4ZWxYID4gMCAmJiB2aXNpYmxlUGl4ZWxZID4gMDsKICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlSW5BbGxQYXJlbnRzICYmCiAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlY3QuYm90dG9tID4gMCAmJiBlbGVtZW50UmVjdC5yaWdodCA+IDAgJiYKICAgICAgICAgICAgICAgICAgICBlbGVtZW50UmVjdC5sZWZ0IDwgJCh3aW5kb3cpLndpZHRoKCkgJiYgZWxlbWVudFJlY3QudG9wIDwgJCh3aW5kb3cpLmhlaWdodCgpOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgdmFyICR0aHVtYiAgID0gc2xpZGUub3B0cy4kdGh1bWI7CiAgICAgICAgICAgIHZhciB0aHVtYlBvcyA9ICR0aHVtYiA/ICR0aHVtYi5vZmZzZXQoKSA6IDA7CiAgICAgICAgICAgIHZhciBzbGlkZVBvczsKCiAgICAgICAgICAgIGlmICggdGh1bWJQb3MgJiYgJHRodW1iWzBdLm93bmVyRG9jdW1lbnQgPT09IGRvY3VtZW50ICYmIGlzRWxlbWVudFZpc2libGUoICR0aHVtYiApICkgewogICAgICAgICAgICAgICAgc2xpZGVQb3MgPSBzZWxmLiRyZWZzLnN0YWdlLm9mZnNldCgpOwoKICAgICAgICAgICAgICAgIHJleiA9IHsKICAgICAgICAgICAgICAgICAgICB0b3AgICAgOiB0aHVtYlBvcy50b3AgIC0gc2xpZGVQb3MudG9wICArIHBhcnNlRmxvYXQoICR0aHVtYi5jc3MoICJib3JkZXItdG9wLXdpZHRoIiApIHx8IDAgKSwKICAgICAgICAgICAgICAgICAgICBsZWZ0ICAgOiB0aHVtYlBvcy5sZWZ0IC0gc2xpZGVQb3MubGVmdCArIHBhcnNlRmxvYXQoICR0aHVtYi5jc3MoICJib3JkZXItbGVmdC13aWR0aCIgKSB8fCAwICksCiAgICAgICAgICAgICAgICAgICAgd2lkdGggIDogJHRodW1iLndpZHRoKCksCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0IDogJHRodW1iLmhlaWdodCgpLAogICAgICAgICAgICAgICAgICAgIHNjYWxlWCA6IDEsCiAgICAgICAgICAgICAgICAgICAgc2NhbGVZIDogMQogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIHJlejsKICAgICAgICB9LAoKCiAgICAgICAgLy8gRmluYWwgYWRqdXN0bWVudHMgYWZ0ZXIgY3VycmVudCBnYWxsZXJ5IGl0ZW0gaXMgbW92ZWQgdG8gcG9zaXRpb24KICAgICAgICAvLyBhbmQgaXRgcyBjb250ZW50IGlzIGxvYWRlZAogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBjb21wbGV0ZSA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICAgICAgICBjdXJyZW50ID0gc2VsZi5jdXJyZW50LAogICAgICAgICAgICAgICAgc2xpZGVzICA9IHt9LAogICAgICAgICAgICAgICAgcHJvbWlzZTsKCiAgICAgICAgICAgIGlmICggY3VycmVudC5pc01vdmVkIHx8ICFjdXJyZW50LmlzTG9hZGVkIHx8IGN1cnJlbnQuaXNDb21wbGV0ZSApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY3VycmVudC5pc0NvbXBsZXRlID0gdHJ1ZTsKCiAgICAgICAgICAgIGN1cnJlbnQuJHNsaWRlLnNpYmxpbmdzKCkudHJpZ2dlciggJ29uUmVzZXQnICk7CgogICAgICAgICAgICBzZWxmLnByZWxvYWQoICdpbmxpbmUnICk7CgogICAgICAgICAgICAvLyBUcmlnZ2VyIGFueSBDU1MzIHRyYW5zaXRvbiBpbnNpZGUgdGhlIHNsaWRlCiAgICAgICAgICAgIGZvcmNlUmVkcmF3KCBjdXJyZW50LiRzbGlkZSApOwoKICAgICAgICAgICAgY3VycmVudC4kc2xpZGUuYWRkQ2xhc3MoICdmYW5jeWJveC1zbGlkZS0tY29tcGxldGUnICk7CgogICAgICAgICAgICAvLyBSZW1vdmUgdW5uZWNlc3Nhcnkgc2xpZGVzCiAgICAgICAgICAgICQuZWFjaCggc2VsZi5zbGlkZXMsIGZ1bmN0aW9uKCBrZXksIHNsaWRlICkgewogICAgICAgICAgICAgICAgaWYgKCBzbGlkZS5wb3MgPj0gc2VsZi5jdXJyUG9zIC0gMSAmJiBzbGlkZS5wb3MgPD0gc2VsZi5jdXJyUG9zICsgMSApIHsKICAgICAgICAgICAgICAgICAgICBzbGlkZXNbIHNsaWRlLnBvcyBdID0gc2xpZGU7CgogICAgICAgICAgICAgICAgfSBlbHNlIGlmICggc2xpZGUgKSB7CiAgICAgICAgICAgICAgICAgICAgJC5mYW5jeWJveC5zdG9wKCBzbGlkZS4kc2xpZGUgKTsKCiAgICAgICAgICAgICAgICAgICAgc2xpZGUuJHNsaWRlLm9mZigpLnJlbW92ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIHNlbGYuc2xpZGVzID0gc2xpZGVzOwoKICAgICAgICAgICAgc2VsZi51cGRhdGVDdXJzb3IoKTsKCiAgICAgICAgICAgIHNlbGYudHJpZ2dlciggJ2FmdGVyU2hvdycgKTsKCiAgICAgICAgICAgIC8vIFBsYXkgZmlyc3QgaHRtbDUgdmlkZW8vYXVkaW8KICAgICAgICAgICAgY3VycmVudC4kc2xpZGUuZmluZCggJ3ZpZGVvLGF1ZGlvJyApLmZpcnN0KCkudHJpZ2dlciggJ3BsYXknICk7CgogICAgICAgICAgICAvLyBUcnkgdG8gZm9jdXMgb24gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50CiAgICAgICAgICAgIGlmICggJCggZG9jdW1lbnQuYWN0aXZlRWxlbWVudCApLmlzKCAnW2Rpc2FibGVkXScgKSB8fCAoIGN1cnJlbnQub3B0cy5hdXRvRm9jdXMgJiYgISggY3VycmVudC50eXBlID09ICdpbWFnZScgfHwgY3VycmVudC50eXBlID09PSAnaWZyYW1lJyApICkgKSB7CiAgICAgICAgICAgICAgICBzZWxmLmZvY3VzKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKCgogICAgICAgIC8vIFByZWxvYWQgbmV4dCBhbmQgcHJldmlvdXMgc2xpZGVzCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgcHJlbG9hZCA6IGZ1bmN0aW9uKCB0eXBlICkgewogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICAgICAgICBuZXh0ID0gc2VsZi5zbGlkZXNbIHNlbGYuY3VyclBvcyArIDEgXSwKICAgICAgICAgICAgICAgIHByZXYgPSBzZWxmLnNsaWRlc1sgc2VsZi5jdXJyUG9zIC0gMSBdOwoKICAgICAgICAgICAgaWYgKCBuZXh0ICYmIG5leHQudHlwZSA9PT0gdHlwZSApIHsKICAgICAgICAgICAgICAgIHNlbGYubG9hZFNsaWRlKCBuZXh0ICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggcHJldiAmJiBwcmV2LnR5cGUgPT09IHR5cGUgKSB7CiAgICAgICAgICAgICAgICBzZWxmLmxvYWRTbGlkZSggcHJldiApOwogICAgICAgICAgICB9CiAgICAgICAgfSwKCgogICAgICAgIC8vIFRyeSB0byBmaW5kIGFuZCBmb2N1cyBvbiB0aGUgZmlyc3QgZm9jdXNhYmxlIGVsZW1lbnQKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGZvY3VzIDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBjdXJyZW50ID0gdGhpcy5jdXJyZW50OwogICAgICAgICAgICB2YXIgJGVsOwoKICAgICAgICAgICAgaWYgKCB0aGlzLmlzQ2xvc2luZyApIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCBjdXJyZW50ICYmIGN1cnJlbnQuaXNDb21wbGV0ZSApIHsKCiAgICAgICAgICAgICAgICAvLyBMb29rIGZvciBmaXJzdCBpbnB1dCB3aXRoIGF1dG9mb2N1cyBhdHRyaWJ1dGUKICAgICAgICAgICAgICAgICRlbCA9IGN1cnJlbnQuJHNsaWRlLmZpbmQoJ2lucHV0W2F1dG9mb2N1c106ZW5hYmxlZDp2aXNpYmxlOmZpcnN0Jyk7CgogICAgICAgICAgICAgICAgaWYgKCAhJGVsLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgICAgICAkZWwgPSBjdXJyZW50LiRzbGlkZS5maW5kKCdidXR0b24sOmlucHV0LFt0YWJpbmRleF0sYScpLmZpbHRlcignOmVuYWJsZWQ6dmlzaWJsZTpmaXJzdCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkZWwgPSAkZWwgJiYgJGVsLmxlbmd0aCA/ICRlbCA6IHRoaXMuJHJlZnMuY29udGFpbmVyOwoKICAgICAgICAgICAgJGVsLmZvY3VzKCk7CiAgICAgICAgfSwKCgogICAgICAgIC8vIEFjdGl2YXRlcyBjdXJyZW50IGluc3RhbmNlIC0gYnJpbmdzIGNvbnRhaW5lciB0byB0aGUgZnJvbnQgYW5kIGVuYWJsZXMga2V5Ym9hcmQsCiAgICAgICAgLy8gbm90aWZpZXMgb3RoZXIgaW5zdGFuY2VzIGFib3V0IGRlYWN0aXZhdGluZwogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBhY3RpdmF0ZSA6IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAgICAgLy8gRGVhY3RpdmF0ZSBhbGwgaW5zdGFuY2VzCiAgICAgICAgICAgICQoICcuZmFuY3lib3gtY29udGFpbmVyJyApLmVhY2goZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gJCh0aGlzKS5kYXRhKCAnRmFuY3lCb3gnICk7CgogICAgICAgICAgICAgICAgLy8gU2tpcCBzZWxmIGFuZCBjbG9zaW5nIGluc3RhbmNlcwogICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlICYmIGluc3RhbmNlLmlkICE9PSBzZWxmLmlkICYmICFpbnN0YW5jZS5pc0Nsb3NpbmcpIHsKICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS50cmlnZ2VyKCAnb25EZWFjdGl2YXRlJyApOwoKICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5yZW1vdmVFdmVudHMoKTsKCiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuaXNWaXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIHNlbGYuaXNWaXNpYmxlID0gdHJ1ZTsKCiAgICAgICAgICAgIGlmICggc2VsZi5jdXJyZW50IHx8IHNlbGYuaXNJZGxlICkgewogICAgICAgICAgICAgICAgc2VsZi51cGRhdGUoKTsKCiAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZUNvbnRyb2xzKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGYudHJpZ2dlciggJ29uQWN0aXZhdGUnICk7CgogICAgICAgICAgICBzZWxmLmFkZEV2ZW50cygpOwogICAgICAgIH0sCgoKICAgICAgICAvLyBTdGFydCBjbG9zaW5nIHByb2NlZHVyZQogICAgICAgIC8vIFRoaXMgd2lsbCBzdGFydCAiem9vbS1vdXQiIGFuaW1hdGlvbiBpZiBuZWVkZWQgYW5kIGNsZWFuIGV2ZXJ5dGhpbmcgdXAgYWZ0ZXJ3YXJkcwogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBjbG9zZSA6IGZ1bmN0aW9uKCBlLCBkICkgewoKICAgICAgICAgICAgdmFyIHNlbGYgICAgPSB0aGlzOwogICAgICAgICAgICB2YXIgY3VycmVudCA9IHNlbGYuY3VycmVudDsKCiAgICAgICAgICAgIHZhciBlZmZlY3QsIGR1cmF0aW9uOwogICAgICAgICAgICB2YXIgJHdoYXQsIG9wYWNpdHksIHN0YXJ0LCBlbmQ7CgogICAgICAgICAgICB2YXIgZG9uZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgc2VsZi5jbGVhblVwKCBlICk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBpZiAoIHNlbGYuaXNDbG9zaW5nICkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzZWxmLmlzQ2xvc2luZyA9IHRydWU7CgogICAgICAgICAgICAvLyBJZiBiZWZvcmVDbG9zZSBjYWxsYmFjayBwcmV2ZW50cyBjbG9zaW5nLCBtYWtlIHN1cmUgY29udGVudCBpcyBjZW50ZXJlZAogICAgICAgICAgICBpZiAoIHNlbGYudHJpZ2dlciggJ2JlZm9yZUNsb3NlJywgZSApID09PSBmYWxzZSApIHsKICAgICAgICAgICAgICAgIHNlbGYuaXNDbG9zaW5nID0gZmFsc2U7CgogICAgICAgICAgICAgICAgcmVxdWVzdEFGcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZSgpOwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGV2ZW50cwogICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgaW5zdGFuY2VzLCB0aGV5IHdpbGwgYmUgc2V0IGFnYWluIGJ5ICJhY3RpdmF0ZSIgbWV0aG9kCiAgICAgICAgICAgIHNlbGYucmVtb3ZlRXZlbnRzKCk7CgogICAgICAgICAgICBpZiAoIGN1cnJlbnQudGltb3V0cyApIHsKICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCggY3VycmVudC50aW1vdXRzICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR3aGF0ICAgID0gY3VycmVudC4kY29udGVudDsKICAgICAgICAgICAgZWZmZWN0ICAgPSBjdXJyZW50Lm9wdHMuYW5pbWF0aW9uRWZmZWN0OwogICAgICAgICAgICBkdXJhdGlvbiA9ICQuaXNOdW1lcmljKCBkICkgPyBkIDogKCBlZmZlY3QgPyBjdXJyZW50Lm9wdHMuYW5pbWF0aW9uRHVyYXRpb24gOiAwICk7CgogICAgICAgICAgICAvLyBSZW1vdmUgb3RoZXIgc2xpZGVzCiAgICAgICAgICAgIGN1cnJlbnQuJHNsaWRlLm9mZiggdHJhbnNpdGlvbkVuZCApLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtc2xpZGUtLWNvbXBsZXRlIGZhbmN5Ym94LXNsaWRlLS1uZXh0IGZhbmN5Ym94LXNsaWRlLS1wcmV2aW91cyBmYW5jeWJveC1hbmltYXRlZCcgKTsKCiAgICAgICAgICAgIGN1cnJlbnQuJHNsaWRlLnNpYmxpbmdzKCkudHJpZ2dlciggJ29uUmVzZXQnICkucmVtb3ZlKCk7CgogICAgICAgICAgICAvLyBUcmlnZ2VyIGFuaW1hdGlvbnMKICAgICAgICAgICAgaWYgKCBkdXJhdGlvbiApIHsKICAgICAgICAgICAgICAgIHNlbGYuJHJlZnMuY29udGFpbmVyLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtaXMtb3BlbicgKS5hZGRDbGFzcyggJ2ZhbmN5Ym94LWlzLWNsb3NpbmcnICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIENsZWFuIHVwCiAgICAgICAgICAgIHNlbGYuaGlkZUxvYWRpbmcoIGN1cnJlbnQgKTsKCiAgICAgICAgICAgIHNlbGYuaGlkZUNvbnRyb2xzKCk7CgogICAgICAgICAgICBzZWxmLnVwZGF0ZUN1cnNvcigpOwoKICAgICAgICAgICAgLy8gQ2hlY2sgaWYgcG9zc2libGUgdG8gem9vbS1vdXQKICAgICAgICAgICAgaWYgKCBlZmZlY3QgPT09ICd6b29tJyAmJiAhKCBlICE9PSB0cnVlICYmICR3aGF0ICYmIGR1cmF0aW9uICYmIGN1cnJlbnQudHlwZSA9PT0gJ2ltYWdlJyAmJiAhY3VycmVudC5oYXNFcnJvciAmJiAoIGVuZCA9IHNlbGYuZ2V0VGh1bWJQb3MoIGN1cnJlbnQgKSApICkgKSB7CiAgICAgICAgICAgICAgICBlZmZlY3QgPSAnZmFkZSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggZWZmZWN0ID09PSAnem9vbScgKSB7CiAgICAgICAgICAgICAgICAkLmZhbmN5Ym94LnN0b3AoICR3aGF0ICk7CgogICAgICAgICAgICAgICAgc3RhcnQgPSAkLmZhbmN5Ym94LmdldFRyYW5zbGF0ZSggJHdoYXQgKTsKCiAgICAgICAgICAgICAgICBzdGFydC53aWR0aCAgPSBzdGFydC53aWR0aCAgKiBzdGFydC5zY2FsZVg7CiAgICAgICAgICAgICAgICBzdGFydC5oZWlnaHQgPSBzdGFydC5oZWlnaHQgKiBzdGFydC5zY2FsZVk7CgogICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgbmVlZCB0byBhbmltYXRlIG9wYWNpdHkKICAgICAgICAgICAgICAgIG9wYWNpdHkgPSBjdXJyZW50Lm9wdHMuem9vbU9wYWNpdHk7CgogICAgICAgICAgICAgICAgaWYgKCBvcGFjaXR5ID09ICdhdXRvJyApIHsKICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ID0gTWF0aC5hYnMoIGN1cnJlbnQud2lkdGggLyBjdXJyZW50LmhlaWdodCAtIGVuZC53aWR0aCAvIGVuZC5oZWlnaHQgKSA+IDAuMTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIG9wYWNpdHkgKSB7CiAgICAgICAgICAgICAgICAgICAgZW5kLm9wYWNpdHkgPSAwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHN0YXJ0LnNjYWxlWCA9IHN0YXJ0LndpZHRoICAvIGVuZC53aWR0aDsKICAgICAgICAgICAgICAgIHN0YXJ0LnNjYWxlWSA9IHN0YXJ0LmhlaWdodCAvIGVuZC5oZWlnaHQ7CgogICAgICAgICAgICAgICAgc3RhcnQud2lkdGggID0gZW5kLndpZHRoOwogICAgICAgICAgICAgICAgc3RhcnQuaGVpZ2h0ID0gZW5kLmhlaWdodDsKCiAgICAgICAgICAgICAgICAkLmZhbmN5Ym94LnNldFRyYW5zbGF0ZSggY3VycmVudC4kY29udGVudCwgc3RhcnQgKTsKCiAgICAgICAgICAgICAgICBmb3JjZVJlZHJhdyggY3VycmVudC4kY29udGVudCApOwoKICAgICAgICAgICAgICAgICQuZmFuY3lib3guYW5pbWF0ZSggY3VycmVudC4kY29udGVudCwgZW5kLCBkdXJhdGlvbiwgZG9uZSApOwoKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIGVmZmVjdCAmJiBkdXJhdGlvbiApIHsKCiAgICAgICAgICAgICAgICAvLyBJZiBza2lwIGFuaW1hdGlvbgogICAgICAgICAgICAgICAgaWYgKCBlID09PSB0cnVlICkgewogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoIGRvbmUsIGR1cmF0aW9uICk7CgogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkLmZhbmN5Ym94LmFuaW1hdGUoIGN1cnJlbnQuJHNsaWRlLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtc2xpZGUtLWN1cnJlbnQnICksICdmYW5jeWJveC1hbmltYXRlZCBmYW5jeWJveC1zbGlkZS0tcHJldmlvdXMgZmFuY3lib3gtZngtJyArIGVmZmVjdCwgZHVyYXRpb24sIGRvbmUgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBkb25lKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0sCgoKICAgICAgICAvLyBGaW5hbCBhZGp1c3RtZW50cyBhZnRlciByZW1vdmluZyB0aGUgaW5zdGFuY2UKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgY2xlYW5VcCA6IGZ1bmN0aW9uKCBlICkgewogICAgICAgICAgICB2YXIgc2VsZiAgPSB0aGlzLAogICAgICAgICAgICAgICAgJGJvZHkgPSAkKCAnYm9keScgKSwKICAgICAgICAgICAgICAgIGluc3RhbmNlLAogICAgICAgICAgICAgICAgb2Zmc2V0OwoKICAgICAgICAgICAgc2VsZi5jdXJyZW50LiRzbGlkZS50cmlnZ2VyKCAnb25SZXNldCcgKTsKCiAgICAgICAgICAgIHNlbGYuJHJlZnMuY29udGFpbmVyLmVtcHR5KCkucmVtb3ZlKCk7CgogICAgICAgICAgICBzZWxmLnRyaWdnZXIoICdhZnRlckNsb3NlJywgZSApOwoKICAgICAgICAgICAgLy8gUGxhY2UgYmFjayBmb2N1cwogICAgICAgICAgICBpZiAoIHNlbGYuJGxhc3RGb2N1cyAmJiAhIXNlbGYuY3VycmVudC5vcHRzLmJhY2tGb2N1cyApIHsKICAgICAgICAgICAgICAgIHNlbGYuJGxhc3RGb2N1cy5mb2N1cygpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzZWxmLmN1cnJlbnQgPSBudWxsOwoKICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIGluc3RhbmNlcwogICAgICAgICAgICBpbnN0YW5jZSA9ICQuZmFuY3lib3guZ2V0SW5zdGFuY2UoKTsKCiAgICAgICAgICAgIGlmICggaW5zdGFuY2UgKSB7CiAgICAgICAgICAgICAgICBpbnN0YW5jZS5hY3RpdmF0ZSgpOwoKICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICAkVy5zY3JvbGxUb3AoIHNlbGYuc2Nyb2xsVG9wICkuc2Nyb2xsTGVmdCggc2VsZi5zY3JvbGxMZWZ0ICk7CgogICAgICAgICAgICAgICAgJGJvZHkucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1hY3RpdmUgY29tcGVuc2F0ZS1mb3Itc2Nyb2xsYmFyJyApOwoKICAgICAgICAgICAgICAgIGlmICggJGJvZHkuaGFzQ2xhc3MoICdmYW5jeWJveC1pb3NmaXgnICkgKSB7CiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gcGFyc2VJbnQoZG9jdW1lbnQuYm9keS5zdHlsZS50b3AsIDEwKTsKCiAgICAgICAgICAgICAgICAgICAgJGJvZHkucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1pb3NmaXgnICkuY3NzKCAndG9wJywgJycgKS5zY3JvbGxUb3AoIG9mZnNldCAqIC0xICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJCggJyNmYW5jeWJveC1zdHlsZS1ub3Njcm9sbCcgKS5yZW1vdmUoKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKCgogICAgICAgIC8vIENhbGwgY2FsbGJhY2sgYW5kIHRyaWdnZXIgYW4gZXZlbnQKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHRyaWdnZXIgOiBmdW5jdGlvbiggbmFtZSwgc2xpZGUgKSB7CiAgICAgICAgICAgIHZhciBhcmdzICA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSksCiAgICAgICAgICAgICAgICBzZWxmICA9IHRoaXMsCiAgICAgICAgICAgICAgICBvYmogICA9IHNsaWRlICYmIHNsaWRlLm9wdHMgPyBzbGlkZSA6IHNlbGYuY3VycmVudCwKICAgICAgICAgICAgICAgIHJlejsKCiAgICAgICAgICAgIGlmICggb2JqICkgewogICAgICAgICAgICAgICAgYXJncy51bnNoaWZ0KCBvYmogKTsKCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBvYmogPSBzZWxmOwogICAgICAgICAgICB9CgogICAgICAgICAgICBhcmdzLnVuc2hpZnQoIHNlbGYgKTsKCiAgICAgICAgICAgIGlmICggJC5pc0Z1bmN0aW9uKCBvYmoub3B0c1sgbmFtZSBdICkgKSB7CiAgICAgICAgICAgICAgICByZXogPSBvYmoub3B0c1sgbmFtZSBdLmFwcGx5KCBvYmosIGFyZ3MgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCByZXogPT09IGZhbHNlICkgewogICAgICAgICAgICAgICAgcmV0dXJuIHJlejsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCBuYW1lID09PSAnYWZ0ZXJDbG9zZScgfHwgIXNlbGYuJHJlZnMgKSB7CiAgICAgICAgICAgICAgICAkRC50cmlnZ2VyKCBuYW1lICsgJy5mYicsIGFyZ3MgKTsKCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzZWxmLiRyZWZzLmNvbnRhaW5lci50cmlnZ2VyKCBuYW1lICsgJy5mYicsIGFyZ3MgKTsKICAgICAgICAgICAgfQoKICAgICAgICB9LAoKCiAgICAgICAgLy8gVXBkYXRlIGluZm9iYXIgdmFsdWVzLCBuYXZpZ2F0aW9uIGJ1dHRvbiBzdGF0ZXMgYW5kIHJldmVhbCBjYXB0aW9uCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHVwZGF0ZUNvbnRyb2xzIDogZnVuY3Rpb24gKCBmb3JjZSApIHsKCiAgICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgICAgIHZhciBjdXJyZW50ICA9IHNlbGYuY3VycmVudCwKICAgICAgICAgICAgICAgIGluZGV4ICAgID0gY3VycmVudC5pbmRleCwKICAgICAgICAgICAgICAgIGNhcHRpb24gID0gY3VycmVudC5vcHRzLmNhcHRpb24sCiAgICAgICAgICAgICAgICAkY29udGFpbmVyID0gc2VsZi4kcmVmcy5jb250YWluZXIsCiAgICAgICAgICAgICAgICAkY2FwdGlvbiAgID0gc2VsZi4kcmVmcy5jYXB0aW9uOwoKICAgICAgICAgICAgLy8gUmVjYWxjdWxhdGUgY29udGVudCBkaW1lbnNpb25zCiAgICAgICAgICAgIGN1cnJlbnQuJHNsaWRlLnRyaWdnZXIoICdyZWZyZXNoJyApOwoKICAgICAgICAgICAgc2VsZi4kY2FwdGlvbiA9IGNhcHRpb24gJiYgY2FwdGlvbi5sZW5ndGggPyAkY2FwdGlvbi5odG1sKCBjYXB0aW9uICkgOiBudWxsOwoKICAgICAgICAgICAgaWYgKCAhc2VsZi5pc0hpZGRlbkNvbnRyb2xzICYmICFzZWxmLmlzSWRsZSApIHsKICAgICAgICAgICAgICAgIHNlbGYuc2hvd0NvbnRyb2xzKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFVwZGF0ZSBpbmZvIGFuZCBuYXZpZ2F0aW9uIGVsZW1lbnRzCiAgICAgICAgICAgICRjb250YWluZXIuZmluZCgnW2RhdGEtZmFuY3lib3gtY291bnRdJykuaHRtbCggc2VsZi5ncm91cC5sZW5ndGggKTsKICAgICAgICAgICAgJGNvbnRhaW5lci5maW5kKCdbZGF0YS1mYW5jeWJveC1pbmRleF0nKS5odG1sKCBpbmRleCArIDEgKTsKCiAgICAgICAgICAgICRjb250YWluZXIuZmluZCgnW2RhdGEtZmFuY3lib3gtcHJldl0nKS5wcm9wKCAnZGlzYWJsZWQnLCAoICFjdXJyZW50Lm9wdHMubG9vcCAmJiBpbmRleCA8PSAwICkgKTsKICAgICAgICAgICAgJGNvbnRhaW5lci5maW5kKCdbZGF0YS1mYW5jeWJveC1uZXh0XScpLnByb3AoICdkaXNhYmxlZCcsICggIWN1cnJlbnQub3B0cy5sb29wICYmIGluZGV4ID49IHNlbGYuZ3JvdXAubGVuZ3RoIC0gMSApICk7CgogICAgICAgICAgICBpZiAoIGN1cnJlbnQudHlwZSA9PT0gJ2ltYWdlJyApIHsKCiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgZG93bmxvYWQgYnV0dG9uIHNvdXJjZQogICAgICAgICAgICAgICAgJGNvbnRhaW5lci5maW5kKCdbZGF0YS1mYW5jeWJveC1kb3dubG9hZF0nKS5hdHRyKCAnaHJlZicsIGN1cnJlbnQub3B0cy5pbWFnZS5zcmMgfHwgY3VycmVudC5zcmMgKS5zaG93KCk7CgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGNvbnRhaW5lci5maW5kKCdbZGF0YS1mYW5jeWJveC1kb3dubG9hZF0sW2RhdGEtZmFuY3lib3gtem9vbV0nKS5oaWRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9LAoKICAgICAgICAvLyBIaWRlIHRvb2xiYXIgYW5kIGNhcHRpb24KICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgaGlkZUNvbnRyb2xzIDogZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgdGhpcy5pc0hpZGRlbkNvbnRyb2xzID0gdHJ1ZTsKCiAgICAgICAgICAgIHRoaXMuJHJlZnMuY29udGFpbmVyLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtc2hvdy1pbmZvYmFyIGZhbmN5Ym94LXNob3ctdG9vbGJhciBmYW5jeWJveC1zaG93LWNhcHRpb24gZmFuY3lib3gtc2hvdy1uYXYnICk7CgogICAgICAgIH0sCgogICAgICAgIHNob3dDb250cm9scyA6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAgICAgIHZhciBvcHRzID0gc2VsZi5jdXJyZW50ID8gc2VsZi5jdXJyZW50Lm9wdHMgOiBzZWxmLm9wdHM7CiAgICAgICAgICAgIHZhciAkY29udGFpbmVyID0gc2VsZi4kcmVmcy5jb250YWluZXI7CgogICAgICAgICAgICBzZWxmLmlzSGlkZGVuQ29udHJvbHMgICA9IGZhbHNlOwogICAgICAgICAgICBzZWxmLmlkbGVTZWNvbmRzQ291bnRlciA9IDA7CgogICAgICAgICAgICAkY29udGFpbmVyCiAgICAgICAgICAgICAgICAudG9nZ2xlQ2xhc3MoICdmYW5jeWJveC1zaG93LXRvb2xiYXInLCAhISggb3B0cy50b29sYmFyICYmIG9wdHMuYnV0dG9ucyApICkKICAgICAgICAgICAgICAgIC50b2dnbGVDbGFzcyggJ2ZhbmN5Ym94LXNob3ctaW5mb2JhcicsICEhKCBvcHRzLmluZm9iYXIgJiYgc2VsZi5ncm91cC5sZW5ndGggPiAxICkgKQogICAgICAgICAgICAgICAgLnRvZ2dsZUNsYXNzKCAnZmFuY3lib3gtc2hvdy1uYXYnLCAgICAgISEoIG9wdHMuYXJyb3dzICYmIHNlbGYuZ3JvdXAubGVuZ3RoID4gMSApICkKICAgICAgICAgICAgICAgIC50b2dnbGVDbGFzcyggJ2ZhbmN5Ym94LWlzLW1vZGFsJywgICAgICEhb3B0cy5tb2RhbCApOwoKICAgICAgICAgICAgaWYgKCBzZWxmLiRjYXB0aW9uICkgewogICAgICAgICAgICAgICAgJGNvbnRhaW5lci5hZGRDbGFzcyggJ2ZhbmN5Ym94LXNob3ctY2FwdGlvbiAnKTsKCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICRjb250YWluZXIucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1zaG93LWNhcHRpb24nICk7CiAgICAgICAgICAgfQoKICAgICAgIH0sCgoKICAgICAgIC8vIFRvZ2dsZSB0b29sYmFyIGFuZCBjYXB0aW9uCiAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgIHRvZ2dsZUNvbnRyb2xzIDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgaWYgKCB0aGlzLmlzSGlkZGVuQ29udHJvbHMgKSB7CiAgICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRyb2xzKCk7CgogICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIHRoaXMuaGlkZUNvbnRyb2xzKCk7CiAgICAgICAgICAgfQoKICAgICAgIH0sCgoKICAgIH0pOwoKCiAgICAkLmZhbmN5Ym94ID0gewoKICAgICAgICB2ZXJzaW9uICA6ICIzLjIuMTAiLAogICAgICAgIGRlZmF1bHRzIDogZGVmYXVsdHMsCgoKICAgICAgICAvLyBHZXQgY3VycmVudCBpbnN0YW5jZSBhbmQgZXhlY3V0ZSBhIGNvbW1hbmQuCiAgICAgICAgLy8KICAgICAgICAvLyBFeGFtcGxlcyBvZiB1c2FnZToKICAgICAgICAvLwogICAgICAgIC8vICAgJGluc3RhbmNlID0gJC5mYW5jeWJveC5nZXRJbnN0YW5jZSgpOwogICAgICAgIC8vICAgJC5mYW5jeWJveC5nZXRJbnN0YW5jZSgpLmp1bXBUbyggMSApOwogICAgICAgIC8vICAgJC5mYW5jeWJveC5nZXRJbnN0YW5jZSggJ2p1bXBUbycsIDEgKTsKICAgICAgICAvLyAgICQuZmFuY3lib3guZ2V0SW5zdGFuY2UoIGZ1bmN0aW9uKCkgewogICAgICAgIC8vICAgICAgIGNvbnNvbGUuaW5mbyggdGhpcy5jdXJySW5kZXggKTsKICAgICAgICAvLyAgIH0pOwogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBnZXRJbnN0YW5jZSA6IGZ1bmN0aW9uICggY29tbWFuZCApIHsKICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gJCgnLmZhbmN5Ym94LWNvbnRhaW5lcjpub3QoIi5mYW5jeWJveC1pcy1jbG9zaW5nIik6bGFzdCcpLmRhdGEoICdGYW5jeUJveCcgKTsKICAgICAgICAgICAgdmFyIGFyZ3MgICAgID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKCiAgICAgICAgICAgIGlmICggaW5zdGFuY2UgaW5zdGFuY2VvZiBGYW5jeUJveCApIHsKCiAgICAgICAgICAgICAgICBpZiAoICQudHlwZSggY29tbWFuZCApID09PSAnc3RyaW5nJyApIHsKICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZVsgY29tbWFuZCBdLmFwcGx5KCBpbnN0YW5jZSwgYXJncyApOwoKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoICQudHlwZSggY29tbWFuZCApID09PSAnZnVuY3Rpb24nICkgewogICAgICAgICAgICAgICAgICAgIGNvbW1hbmQuYXBwbHkoIGluc3RhbmNlLCBhcmdzICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0sCgoKICAgICAgICAvLyBDcmVhdGUgbmV3IGluc3RhbmNlCiAgICAgICAgLy8gPT09PT09PT09PT09PT09PT09PQoKICAgICAgICBvcGVuIDogZnVuY3Rpb24gKCBpdGVtcywgb3B0cywgaW5kZXggKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgRmFuY3lCb3goIGl0ZW1zLCBvcHRzLCBpbmRleCApOwogICAgICAgIH0sCgoKICAgICAgICAvLyBDbG9zZSBjdXJyZW50IG9yIGFsbCBpbnN0YW5jZXMKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgY2xvc2UgOiBmdW5jdGlvbiAoIGFsbCApIHsKICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gdGhpcy5nZXRJbnN0YW5jZSgpOwoKICAgICAgICAgICAgaWYgKCBpbnN0YW5jZSApIHsKICAgICAgICAgICAgICAgIGluc3RhbmNlLmNsb3NlKCk7CgogICAgICAgICAgICAgICAgLy8gVHJ5IHRvIGZpbmQgYW5kIGNsb3NlIG5leHQgaW5zdGFuY2UKCiAgICAgICAgICAgICAgICBpZiAoIGFsbCA9PT0gdHJ1ZSApIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgfSwKCiAgICAgICAgLy8gQ2xvc2UgaW5zdGFuY2VzIGFuZCB1bmJpbmQgYWxsIGV2ZW50cwogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBkZXN0cm95IDogZnVuY3Rpb24oKSB7CgogICAgICAgICAgICB0aGlzLmNsb3NlKCB0cnVlICk7CgogICAgICAgICAgICAkRC5vZmYoICdjbGljay5mYi1zdGFydCcgKTsKCiAgICAgICAgfSwKCgogICAgICAgIC8vIFRyeSB0byBkZXRlY3QgbW9iaWxlIGRldmljZXMKICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGlzTW9iaWxlIDogZG9jdW1lbnQuY3JlYXRlVG91Y2ggIT09IHVuZGVmaW5lZCAmJiAvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksCgoKICAgICAgICAvLyBEZXRlY3QgaWYgJ3RyYW5zbGF0ZTNkJyBzdXBwb3J0IGlzIGF2YWlsYWJsZQogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIHVzZTNkIDogKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CgogICAgICAgICAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUgJiYgd2luZG93LmdldENvbXB1dGVkU3R5bGUoIGRpdiApLmdldFByb3BlcnR5VmFsdWUoJ3RyYW5zZm9ybScpICYmICEoZG9jdW1lbnQuZG9jdW1lbnRNb2RlICYmIGRvY3VtZW50LmRvY3VtZW50TW9kZSA8IDExKTsKICAgICAgICB9KCkpLAoKICAgICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IGN1cnJlbnQgdmlzdWFsIHN0YXRlIG9mIGFuIGVsZW1lbnQKICAgICAgICAvLyByZXR1cm5zIGFycmF5WyB0b3AsIGxlZnQsIGhvcml6b250YWwtc2NhbGUsIHZlcnRpY2FsLXNjYWxlLCBvcGFjaXR5IF0KICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiAgICAgICAgZ2V0VHJhbnNsYXRlIDogZnVuY3Rpb24oICRlbCApIHsKICAgICAgICAgICAgdmFyIG1hdHJpeDsKCiAgICAgICAgICAgIGlmICggISRlbCB8fCAhJGVsLmxlbmd0aCApIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbWF0cml4ICA9ICRlbC5lcSggMCApLmNzcygndHJhbnNmb3JtJyk7CgogICAgICAgICAgICBpZiAoIG1hdHJpeCAmJiBtYXRyaXguaW5kZXhPZiggJ21hdHJpeCcgKSAhPT0gLTEgKSB7CiAgICAgICAgICAgICAgICBtYXRyaXggPSBtYXRyaXguc3BsaXQoJygnKVsxXTsKICAgICAgICAgICAgICAgIG1hdHJpeCA9IG1hdHJpeC5zcGxpdCgnKScpWzBdOwogICAgICAgICAgICAgICAgbWF0cml4ID0gbWF0cml4LnNwbGl0KCcsJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtYXRyaXggPSBbXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCBtYXRyaXgubGVuZ3RoICkgewoKICAgICAgICAgICAgICAgIC8vIElmIElFCiAgICAgICAgICAgICAgICBpZiAoIG1hdHJpeC5sZW5ndGggPiAxMCApIHsKICAgICAgICAgICAgICAgICAgICBtYXRyaXggPSBbIG1hdHJpeFsxM10sIG1hdHJpeFsxMl0sIG1hdHJpeFswXSwgbWF0cml4WzVdIF07CgogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtYXRyaXggPSBbIG1hdHJpeFs1XSwgbWF0cml4WzRdLCBtYXRyaXhbMF0sIG1hdHJpeFszXV07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbWF0cml4ID0gbWF0cml4Lm1hcChwYXJzZUZsb2F0KTsKCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtYXRyaXggPSBbIDAsIDAsIDEsIDEgXTsKCiAgICAgICAgICAgICAgICB2YXIgdHJhbnNSZWdleCA9IC9cLip0cmFuc2xhdGVcKCguKilweCwoLiopcHhcKS9pOwogICAgICAgICAgICAgICAgdmFyIHRyYW5zUmV6ID0gdHJhbnNSZWdleC5leGVjKCAkZWwuZXEoIDAgKS5hdHRyKCdzdHlsZScpICk7CgogICAgICAgICAgICAgICAgaWYgKCB0cmFuc1JleiApIHsKICAgICAgICAgICAgICAgICAgICBtYXRyaXhbIDAgXSA9IHBhcnNlRmxvYXQoIHRyYW5zUmV6WzJdICk7CiAgICAgICAgICAgICAgICAgICAgbWF0cml4WyAxIF0gPSBwYXJzZUZsb2F0KCB0cmFuc1JlelsxXSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgdG9wICAgICA6IG1hdHJpeFsgMCBdLAogICAgICAgICAgICAgICAgbGVmdCAgICA6IG1hdHJpeFsgMSBdLAogICAgICAgICAgICAgICAgc2NhbGVYICA6IG1hdHJpeFsgMiBdLAogICAgICAgICAgICAgICAgc2NhbGVZICA6IG1hdHJpeFsgMyBdLAogICAgICAgICAgICAgICAgb3BhY2l0eSA6IHBhcnNlRmxvYXQoICRlbC5jc3MoJ29wYWNpdHknKSApLAogICAgICAgICAgICAgICAgd2lkdGggICA6ICRlbC53aWR0aCgpLAogICAgICAgICAgICAgICAgaGVpZ2h0ICA6ICRlbC5oZWlnaHQoKQogICAgICAgICAgICB9OwoKICAgICAgICB9LAoKCiAgICAgICAgLy8gU2hvcnRjdXQgZm9yIHNldHRpbmcgInRyYW5zbGF0ZTNkIiBwcm9wZXJ0aWVzIGZvciBlbGVtZW50CiAgICAgICAgLy8gQ2FuIHNldCBiZSB1c2VkIHRvIHNldCBvcGFjaXR5LCB0b28KICAgICAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgICAgICBzZXRUcmFuc2xhdGUgOiBmdW5jdGlvbiggJGVsLCBwcm9wcyApIHsKICAgICAgICAgICAgdmFyIHN0ciAgPSAnJzsKICAgICAgICAgICAgdmFyIGNzcyAgPSB7fTsKCiAgICAgICAgICAgIGlmICggISRlbCB8fCAhcHJvcHMgKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggcHJvcHMubGVmdCAhPT0gdW5kZWZpbmVkIHx8IHByb3BzLnRvcCAhPT0gdW5kZWZpbmVkICkgewogICAgICAgICAgICAgICAgc3RyID0gKCBwcm9wcy5sZWZ0ID09PSB1bmRlZmluZWQgPyAkZWwucG9zaXRpb24oKS5sZWZ0IDogcHJvcHMubGVmdCApICArICdweCwgJyArICggcHJvcHMudG9wID09PSB1bmRlZmluZWQgPyAkZWwucG9zaXRpb24oKS50b3AgOiBwcm9wcy50b3AgKSArICdweCc7CgogICAgICAgICAgICAgICAgaWYgKCB0aGlzLnVzZTNkICkgewogICAgICAgICAgICAgICAgICAgIHN0ciA9ICd0cmFuc2xhdGUzZCgnICsgc3RyICsgJywgMHB4KSc7CgogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBzdHIgPSAndHJhbnNsYXRlKCcgKyBzdHIgKyAnKSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggcHJvcHMuc2NhbGVYICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuc2NhbGVZICE9PSB1bmRlZmluZWQgKSB7CiAgICAgICAgICAgICAgICBzdHIgPSAoc3RyLmxlbmd0aCA/IHN0ciArICcgJyA6ICcnKSArICdzY2FsZSgnICsgcHJvcHMuc2NhbGVYICsgJywgJyArIHByb3BzLnNjYWxlWSArICcpJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCBzdHIubGVuZ3RoICkgewogICAgICAgICAgICAgICAgY3NzLnRyYW5zZm9ybSA9IHN0cjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCBwcm9wcy5vcGFjaXR5ICE9PSB1bmRlZmluZWQgKSB7CiAgICAgICAgICAgICAgICBjc3Mub3BhY2l0eSA9IHByb3BzLm9wYWNpdHk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggcHJvcHMud2lkdGggIT09IHVuZGVmaW5lZCApIHsKICAgICAgICAgICAgICAgIGNzcy53aWR0aCA9IHByb3BzLndpZHRoOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIHByb3BzLmhlaWdodCAhPT0gdW5kZWZpbmVkICkgewogICAgICAgICAgICAgICAgY3NzLmhlaWdodCA9IHByb3BzLmhlaWdodDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRlbC5jc3MoIGNzcyApOwogICAgICAgIH0sCgoKICAgICAgICAvLyBTaW1wbGUgQ1NTIHRyYW5zaXRpb24gaGFuZGxlcgogICAgICAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogICAgICAgIGFuaW1hdGUgOiBmdW5jdGlvbiAoICRlbCwgdG8sIGR1cmF0aW9uLCBjYWxsYmFjaywgbGVhdmVBbmltYXRpb25OYW1lICkgewogICAgICAgICAgICBpZiAoICQuaXNGdW5jdGlvbiggZHVyYXRpb24gKSApIHsKICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gZHVyYXRpb247CiAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IG51bGw7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICggISQuaXNQbGFpbk9iamVjdCggdG8gKSApIHsKICAgICAgICAgICAgICAgICRlbC5yZW1vdmVBdHRyKCAnc3R5bGUnICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRlbC5vbiggdHJhbnNpdGlvbkVuZCwgZnVuY3Rpb24oZSkgewoKICAgICAgICAgICAgICAgIC8vIFNraXAgZXZlbnRzIGZyb20gY2hpbGQgZWxlbWVudHMgYW5kIHotaW5kZXggY2hhbmdlCiAgICAgICAgICAgICAgICBpZiAoIGUgJiYgZS5vcmlnaW5hbEV2ZW50ICYmICggISRlbC5pcyggZS5vcmlnaW5hbEV2ZW50LnRhcmdldCApIHx8IGUub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUgPT0gJ3otaW5kZXgnICkgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICQuZmFuY3lib3guc3RvcCggJGVsICk7CgogICAgICAgICAgICAgICAgaWYgKCAkLmlzUGxhaW5PYmplY3QoIHRvICkgKSB7CgogICAgICAgICAgICAgICAgICAgIGlmICggdG8uc2NhbGVYICE9PSB1bmRlZmluZWQgJiYgdG8uc2NhbGVZICE9PSB1bmRlZmluZWQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRlbC5jc3MoICd0cmFuc2l0aW9uLWR1cmF0aW9uJywgJycgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHRvLndpZHRoICA9IE1hdGgucm91bmQoICRlbC53aWR0aCgpICAqIHRvLnNjYWxlWCApOwogICAgICAgICAgICAgICAgICAgICAgICB0by5oZWlnaHQgPSBNYXRoLnJvdW5kKCAkZWwuaGVpZ2h0KCkgKiB0by5zY2FsZVkgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHRvLnNjYWxlWCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgIHRvLnNjYWxlWSA9IDE7CgogICAgICAgICAgICAgICAgICAgICAgICAkLmZhbmN5Ym94LnNldFRyYW5zbGF0ZSggJGVsLCB0byApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKCBsZWF2ZUFuaW1hdGlvbk5hbWUgPT09IGZhbHNlICkgewogICAgICAgICAgICAgICAgICAgICAgICAkZWwucmVtb3ZlQXR0ciggJ3N0eWxlJyApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCBsZWF2ZUFuaW1hdGlvbk5hbWUgIT09IHRydWUgKSB7CiAgICAgICAgICAgICAgICAgICAgJGVsLnJlbW92ZUNsYXNzKCB0byApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICggJC5pc0Z1bmN0aW9uKCBjYWxsYmFjayApICkgewogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKCBlICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGlmICggJC5pc051bWVyaWMoIGR1cmF0aW9uICkgKSB7CiAgICAgICAgICAgICAgICAkZWwuY3NzKCAndHJhbnNpdGlvbi1kdXJhdGlvbicsIGR1cmF0aW9uICsgJ21zJyApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoICQuaXNQbGFpbk9iamVjdCggdG8gKSApIHsKICAgICAgICAgICAgICAgICQuZmFuY3lib3guc2V0VHJhbnNsYXRlKCAkZWwsIHRvICk7CgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGVsLmFkZENsYXNzKCB0byApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIHRvLnNjYWxlWCAmJiAkZWwuaGFzQ2xhc3MoICdmYW5jeWJveC1pbWFnZS13cmFwJyApICkgewogICAgICAgICAgICAgICAgJGVsLnBhcmVudCgpLmFkZENsYXNzKCAnZmFuY3lib3gtaXMtc2NhbGluZycgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgYHRyYW5zaXRpb25lbmRgIGNhbGxiYWNrIGdldHMgZmlyZWQKICAgICAgICAgICAgJGVsLmRhdGEoInRpbWVyIiwgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICRlbC50cmlnZ2VyKCAndHJhbnNpdGlvbmVuZCcgKTsKICAgICAgICAgICAgfSwgZHVyYXRpb24gKyAxNikpOwoKICAgICAgICB9LAoKICAgICAgICBzdG9wIDogZnVuY3Rpb24oICRlbCApIHsKICAgICAgICAgICAgY2xlYXJUaW1lb3V0KCAkZWwuZGF0YSgidGltZXIiKSApOwoKICAgICAgICAgICAgJGVsLm9mZiggJ3RyYW5zaXRpb25lbmQnICkuY3NzKCAndHJhbnNpdGlvbi1kdXJhdGlvbicsICcnICk7CgogICAgICAgICAgICBpZiAoICRlbC5oYXNDbGFzcyggJ2ZhbmN5Ym94LWltYWdlLXdyYXAnICkgKSB7CiAgICAgICAgICAgICAgICAkZWwucGFyZW50KCkucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1pcy1zY2FsaW5nJyApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIH07CgoKICAgIC8vIERlZmF1bHQgY2xpY2sgaGFuZGxlciBmb3IgImZhbmN5Ym94ZWQiIGxpbmtzCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIGZ1bmN0aW9uIF9ydW4oIGUgKSB7CiAgICAgICAgdmFyICR0YXJnZXQJPSAkKCBlLmN1cnJlbnRUYXJnZXQgKSwKICAgICAgICAgICAgb3B0cwk9IGUuZGF0YSA/IGUuZGF0YS5vcHRpb25zIDoge30sCiAgICAgICAgICAgIHZhbHVlCT0gJHRhcmdldC5hdHRyKCAnZGF0YS1mYW5jeWJveCcgKSB8fCAnJywKICAgICAgICAgICAgaW5kZXgJPSAwLAogICAgICAgICAgICBpdGVtcyAgID0gW107CgogICAgICAgIC8vIEF2b2lkIG9wZW5pbmcgbXVsdGlwbGUgdGltZXMKICAgICAgICBpZiAoIGUuaXNEZWZhdWx0UHJldmVudGVkKCkgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKCiAgICAgICAgLy8gR2V0IGFsbCByZWxhdGVkIGl0ZW1zIGFuZCBmaW5kIGluZGV4IGZvciBjbGlja2VkIG9uZQogICAgICAgIGlmICggdmFsdWUgKSB7CiAgICAgICAgICAgIGl0ZW1zID0gb3B0cy5zZWxlY3RvciA/ICQoIG9wdHMuc2VsZWN0b3IgKSA6ICggZS5kYXRhID8gZS5kYXRhLml0ZW1zIDogW10gKTsKICAgICAgICAgICAgaXRlbXMgPSBpdGVtcy5sZW5ndGggPyBpdGVtcy5maWx0ZXIoICdbZGF0YS1mYW5jeWJveD0iJyArIHZhbHVlICsgJyJdJyApIDogJCggJ1tkYXRhLWZhbmN5Ym94PSInICsgdmFsdWUgKyAnIl0nICk7CgogICAgICAgICAgICBpbmRleCA9IGl0ZW1zLmluZGV4KCAkdGFyZ2V0ICk7CgogICAgICAgICAgICAvLyBTb21ldGltZXMgY3VycmVudCBpdGVtIGNhbiBub3QgYmUgZm91bmQKICAgICAgICAgICAgLy8gKGZvciBleGFtcGxlLCB3aGVuIHNsaWRlciBjbG9uZXMgaXRlbXMpCiAgICAgICAgICAgIGlmICggaW5kZXggPCAwICkgewogICAgICAgICAgICAgICAgaW5kZXggPSAwOwogICAgICAgICAgICB9CgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGl0ZW1zID0gWyAkdGFyZ2V0IF07CiAgICAgICAgfQoKICAgICAgICAkLmZhbmN5Ym94Lm9wZW4oIGl0ZW1zLCBvcHRzLCBpbmRleCApOwogICAgfQoKCiAgICAvLyBDcmVhdGUgYSBqUXVlcnkgcGx1Z2luCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PT09CgogICAgJC5mbi5mYW5jeWJveCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7CiAgICAgICAgdmFyIHNlbGVjdG9yOwoKICAgICAgICBvcHRpb25zICA9IG9wdGlvbnMgfHwge307CiAgICAgICAgc2VsZWN0b3IgPSBvcHRpb25zLnNlbGVjdG9yIHx8IGZhbHNlOwoKICAgICAgICBpZiAoIHNlbGVjdG9yICkgewoKICAgICAgICAgICAgJCggJ2JvZHknICkub2ZmKCAnY2xpY2suZmItc3RhcnQnLCBzZWxlY3RvciApLm9uKCAnY2xpY2suZmItc3RhcnQnLCBzZWxlY3RvciwgewogICAgICAgICAgICAgICAgb3B0aW9ucyA6IG9wdGlvbnMKICAgICAgICAgICAgfSwgX3J1biApOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgICAgdGhpcy5vZmYoICdjbGljay5mYi1zdGFydCcgKS5vbiggJ2NsaWNrLmZiLXN0YXJ0JywgewogICAgICAgICAgICAgICAgaXRlbXMgICA6IHRoaXMsCiAgICAgICAgICAgICAgICBvcHRpb25zIDogb3B0aW9ucwogICAgICAgICAgICB9LCBfcnVuKTsKCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdGhpczsKICAgIH07CgoKICAgIC8vIFNlbGYgaW5pdGlhbGl6aW5nIHBsdWdpbgogICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09CgogICAgJEQub24oICdjbGljay5mYi1zdGFydCcsICdbZGF0YS1mYW5jeWJveF0nLCBfcnVuICk7Cgp9KCB3aW5kb3csIGRvY3VtZW50LCB3aW5kb3cualF1ZXJ5IHx8IGpRdWVyeSApKTsKCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vCi8vIE1lZGlhCi8vIEFkZHMgYWRkaXRpb25hbCBtZWRpYSB0eXBlIHN1cHBvcnQKLy8KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KOyhmdW5jdGlvbiAoJCkgewoKCSd1c2Ugc3RyaWN0JzsKCgkvLyBGb3JtYXRzIG1hdGNoaW5nIHVybCB0byBmaW5hbCBmb3JtCgoJdmFyIGZvcm1hdCA9IGZ1bmN0aW9uICh1cmwsIHJleiwgcGFyYW1zKSB7CgkJaWYgKCAhdXJsICkgewoJCQlyZXR1cm47CgkJfQoKCQlwYXJhbXMgPSBwYXJhbXMgfHwgJyc7CgoJCWlmICggJC50eXBlKHBhcmFtcykgPT09ICJvYmplY3QiICkgewoJCQlwYXJhbXMgPSAkLnBhcmFtKHBhcmFtcywgdHJ1ZSk7CgkJfQoKCQkkLmVhY2gocmV6LCBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkgewoJCQl1cmwgPSB1cmwucmVwbGFjZSgnJCcgKyBrZXksIHZhbHVlIHx8ICcnKTsKCQl9KTsKCgkJaWYgKHBhcmFtcy5sZW5ndGgpIHsKCQkJdXJsICs9ICh1cmwuaW5kZXhPZignPycpID4gMCA/ICcmJyA6ICc/JykgKyBwYXJhbXM7CgkJfQoKCQlyZXR1cm4gdXJsOwoJfTsKCgkvLyBPYmplY3QgY29udGFpbmluZyBwcm9wZXJ0aWVzIGZvciBlYWNoIG1lZGlhIHR5cGUKCgl2YXIgZGVmYXVsdHMgPSB7CgkJeW91dHViZSA6IHsKCQkJbWF0Y2hlciA6IC8oeW91dHViZVwuY29tfHlvdXR1XC5iZXx5b3V0dWJlXC1ub2Nvb2tpZVwuY29tKVwvKHdhdGNoXD8oLiomKT92PXx2XC98dVwvfGVtYmVkXC8/KT8odmlkZW9zZXJpZXNcP2xpc3Q9KC4qKXxbXHctXXsxMX18XD9saXN0VHlwZT0oLiopJmxpc3Q9KC4qKSkoLiopL2ksCgkJCXBhcmFtcyAgOiB7CgkJCQlhdXRvcGxheSA6IDEsCgkJCQlhdXRvaGlkZSA6IDEsCgkJCQlmcyAgOiAxLAoJCQkJcmVsIDogMCwKCQkJCWhkICA6IDEsCgkJCQl3bW9kZSA6ICd0cmFuc3BhcmVudCcsCgkJCQllbmFibGVqc2FwaSA6IDEsCgkJCQlodG1sNSA6IDEKCQkJfSwKCQkJcGFyYW1QbGFjZSA6IDgsCgkJCXR5cGUgIDogJ2lmcmFtZScsCgkJCXVybCAgIDogJy8vd3d3LnlvdXR1YmUuY29tL2VtYmVkLyQ0JywKCQkJdGh1bWIgOiAnLy9pbWcueW91dHViZS5jb20vdmkvJDQvaHFkZWZhdWx0LmpwZycKCQl9LAoKCQl2aW1lbyA6IHsKCQkJbWF0Y2hlciA6IC9eLit2aW1lby5jb21cLyguKlwvKT8oW1xkXSspKC4qKT8vLAoJCQlwYXJhbXMgIDogewoJCQkJYXV0b3BsYXkgOiAxLAoJCQkJaGQgOiAxLAoJCQkJc2hvd190aXRsZSAgICA6IDEsCgkJCQlzaG93X2J5bGluZSAgIDogMSwKCQkJCXNob3dfcG9ydHJhaXQgOiAwLAoJCQkJZnVsbHNjcmVlbiAgICA6IDEsCgkJCQlhcGkgOiAxCgkJCX0sCgkJCXBhcmFtUGxhY2UgOiAzLAoJCQl0eXBlIDogJ2lmcmFtZScsCgkJCXVybCA6ICcvL3BsYXllci52aW1lby5jb20vdmlkZW8vJDInCgkJfSwKCgkJbWV0YWNhZmUgOiB7CgkJCW1hdGNoZXIgOiAvbWV0YWNhZmUuY29tXC93YXRjaFwvKFxkKylcLyguKik/LywKCQkJdHlwZSAgICA6ICdpZnJhbWUnLAoJCQl1cmwgICAgIDogJy8vd3d3Lm1ldGFjYWZlLmNvbS9lbWJlZC8kMS8/YXA9MScKCQl9LAoKCQlkYWlseW1vdGlvbiA6IHsKCQkJbWF0Y2hlciA6IC9kYWlseW1vdGlvbi5jb21cL3ZpZGVvXC8oLiopXC8/KC4qKS8sCgkJCXBhcmFtcyA6IHsKCQkJCWFkZGl0aW9uYWxJbmZvcyA6IDAsCgkJCQlhdXRvU3RhcnQgOiAxCgkJCX0sCgkJCXR5cGUgOiAnaWZyYW1lJywKCQkJdXJsICA6ICcvL3d3dy5kYWlseW1vdGlvbi5jb20vZW1iZWQvdmlkZW8vJDEnCgkJfSwKCgkJdmluZSA6IHsKCQkJbWF0Y2hlciA6IC92aW5lLmNvXC92XC8oW2EtekEtWjAtOVw/XD1cLV0rKS8sCgkJCXR5cGUgICAgOiAnaWZyYW1lJywKCQkJdXJsICAgICA6ICcvL3ZpbmUuY28vdi8kMS9lbWJlZC9zaW1wbGUnCgkJfSwKCgkJaW5zdGFncmFtIDogewoJCQltYXRjaGVyIDogLyhpbnN0YWdyXC5hbXxpbnN0YWdyYW1cLmNvbSlcL3BcLyhbYS16QS1aMC05X1wtXSspXC8/L2ksCgkJCXR5cGUgICAgOiAnaW1hZ2UnLAoJCQl1cmwgICAgIDogJy8vJDEvcC8kMi9tZWRpYS8/c2l6ZT1sJwoJCX0sCgoJCS8vIEV4YW1wbGVzOgoJCS8vIGh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vP2xsPTQ4Ljg1Nzk5NSwyLjI5NDI5NyZzcG49MC4wMDc2NjYsMC4wMjExMzYmdD1tJno9MTYKCQkvLyBodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvQDM3Ljc4NTIwMDYsLTEyMi40MTQ2MzU1LDE0LjY1egoJCS8vIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9wbGFjZS9Hb29nbGVwbGV4L0AzNy40MjIwMDQxLC0xMjIuMDgzMzQ5NCwxN3ovZGF0YT0hNG01ITNtNCExczB4MDoweDZjMjk2YzY2NjE5MzY3ZTAhOG0yITNkMzcuNDIxOTk5OCE0ZC0xMjIuMDg0MDU3MgoJCWdtYXBfcGxhY2UgOiB7CgkJCW1hdGNoZXIgOiAvKG1hcHNcLik/Z29vZ2xlXC4oW2Etel17MiwzfShcLlthLXpdezJ9KT8pXC8oKChtYXBzXC8ocGxhY2VcLyguKilcLyk/XEAoLiopLChcZCsuP1xkKz8peikpfChcP2xsPSkpKC4qKT8vaSwKCQkJdHlwZSAgICA6ICdpZnJhbWUnLAoJCQl1cmwgICAgIDogZnVuY3Rpb24gKHJleikgewoJCQkJcmV0dXJuICcvL21hcHMuZ29vZ2xlLicgKyByZXpbMl0gKyAnLz9sbD0nICsgKCByZXpbOV0gPyByZXpbOV0gKyAnJno9JyArIE1hdGguZmxvb3IoICByZXpbMTBdICApICsgKCByZXpbMTJdID8gcmV6WzEyXS5yZXBsYWNlKC9eXC8vLCAiJiIpIDogJycgKSAgOiByZXpbMTJdICkgKyAnJm91dHB1dD0nICsgKCByZXpbMTJdICYmIHJlelsxMl0uaW5kZXhPZignbGF5ZXI9YycpID4gMCA/ICdzdmVtYmVkJyA6ICdlbWJlZCcgKTsKCQkJfQoJCX0sCgoJCS8vIEV4YW1wbGVzOgoJCS8vIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvRW1waXJlK1N0YXRlK0J1aWxkaW5nLwoJCS8vIGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9zZWFyY2gvP2FwaT0xJnF1ZXJ5PWNlbnR1cnlsaW5rK2ZpZWxkCgkJLy8gaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL3NlYXJjaC8/YXBpPTEmcXVlcnk9NDcuNTk1MTUxOCwtMTIyLjMzMTYzOTMKCQlnbWFwX3NlYXJjaCA6IHsKCQkJbWF0Y2hlciA6IC8obWFwc1wuKT9nb29nbGVcLihbYS16XXsyLDN9KFwuW2Etel17Mn0pPylcLyhtYXBzXC9zZWFyY2hcLykoLiopL2ksCgkJCXR5cGUgICAgOiAnaWZyYW1lJywKCQkJdXJsICAgICA6IGZ1bmN0aW9uIChyZXopIHsKCQkJCXJldHVybiAnLy9tYXBzLmdvb2dsZS4nICsgcmV6WzJdICsgJy9tYXBzP3E9JyArIHJlels1XS5yZXBsYWNlKCdxdWVyeT0nLCAncT0nKS5yZXBsYWNlKCdhcGk9MScsICcnKSArICcmb3V0cHV0PWVtYmVkJzsKCQkJfQoJCX0KCX07CgoJJChkb2N1bWVudCkub24oJ29iamVjdE5lZWRzVHlwZS5mYicsIGZ1bmN0aW9uIChlLCBpbnN0YW5jZSwgaXRlbSkgewoKCQl2YXIgdXJsCSA9IGl0ZW0uc3JjIHx8ICcnLAoJCQl0eXBlID0gZmFsc2UsCgkJCW1lZGlhLAoJCQl0aHVtYiwKCQkJcmV6LAoJCQlwYXJhbXMsCgkJCXVybFBhcmFtcywKCQkJcGFyYW1PYmosCgkJCXByb3ZpZGVyOwoKCQltZWRpYSA9ICQuZXh0ZW5kKCB0cnVlLCB7fSwgZGVmYXVsdHMsIGl0ZW0ub3B0cy5tZWRpYSApOwoKCQkvLyBMb29rIGZvciBhbnkgbWF0Y2hpbmcgbWVkaWEgdHlwZQoJCSQuZWFjaChtZWRpYSwgZnVuY3Rpb24gKCBwcm92aWRlck5hbWUsIHByb3ZpZGVyT3B0cyApIHsKCQkJcmV6ID0gdXJsLm1hdGNoKCBwcm92aWRlck9wdHMubWF0Y2hlciApOwoKCQkJaWYgKCAhcmV6ICkgewoJCQkJcmV0dXJuOwoJCQl9CgoJCQl0eXBlICAgICA9IHByb3ZpZGVyT3B0cy50eXBlOwoJCQlwYXJhbU9iaiA9IHt9OwoKCQkJaWYgKCBwcm92aWRlck9wdHMucGFyYW1QbGFjZSAmJiByZXpbIHByb3ZpZGVyT3B0cy5wYXJhbVBsYWNlIF0gKSB7CgkJCQl1cmxQYXJhbXMgPSByZXpbIHByb3ZpZGVyT3B0cy5wYXJhbVBsYWNlIF07CgoJCQkJaWYgKCB1cmxQYXJhbXNbIDAgXSA9PSAnPycgKSB7CgkJCQkJdXJsUGFyYW1zID0gdXJsUGFyYW1zLnN1YnN0cmluZygxKTsKCQkJCX0KCgkJCQl1cmxQYXJhbXMgPSB1cmxQYXJhbXMuc3BsaXQoJyYnKTsKCgkJCQlmb3IgKCB2YXIgbSA9IDA7IG0gPCB1cmxQYXJhbXMubGVuZ3RoOyArK20gKSB7CgkJCQkJdmFyIHAgPSB1cmxQYXJhbXNbIG0gXS5zcGxpdCgnPScsIDIpOwoKCQkJCQlpZiAoIHAubGVuZ3RoID09IDIgKSB7CgkJCQkJCXBhcmFtT2JqWyBwWzBdIF0gPSBkZWNvZGVVUklDb21wb25lbnQoIHBbMV0ucmVwbGFjZSgvXCsvZywgIiAiKSApOwoJCQkJCX0KCQkJCX0KCQkJfQoKCQkJcGFyYW1zID0gJC5leHRlbmQoIHRydWUsIHt9LCBwcm92aWRlck9wdHMucGFyYW1zLCBpdGVtLm9wdHNbIHByb3ZpZGVyTmFtZSBdLCBwYXJhbU9iaiApOwoKCQkJdXJsICAgPSAkLnR5cGUoIHByb3ZpZGVyT3B0cy51cmwgKSA9PT0gImZ1bmN0aW9uIiA/IHByb3ZpZGVyT3B0cy51cmwuY2FsbCggdGhpcywgcmV6LCBwYXJhbXMsIGl0ZW0gKSA6IGZvcm1hdCggcHJvdmlkZXJPcHRzLnVybCwgcmV6LCBwYXJhbXMgKTsKCQkJdGh1bWIgPSAkLnR5cGUoIHByb3ZpZGVyT3B0cy50aHVtYiApID09PSAiZnVuY3Rpb24iID8gcHJvdmlkZXJPcHRzLnRodW1iLmNhbGwoIHRoaXMsIHJleiwgcGFyYW1zLCBpdGVtICkgOiBmb3JtYXQoIHByb3ZpZGVyT3B0cy50aHVtYiwgcmV6ICk7CgoJCQlpZiAoIHByb3ZpZGVyTmFtZSA9PT0gJ3ZpbWVvJyApIHsKCQkJCXVybCA9IHVybC5yZXBsYWNlKCcmJTIzJywgJyMnKTsKCQkJfQoKCQkJcmV0dXJuIGZhbHNlOwoJCX0pOwoKCQkvLyBJZiBpdCBpcyBmb3VuZCwgdGhlbiBjaGFuZ2UgY29udGVudCB0eXBlIGFuZCB1cGRhdGUgdGhlIHVybAoKCQlpZiAoIHR5cGUgKSB7CgkJCWl0ZW0uc3JjICA9IHVybDsKCQkJaXRlbS50eXBlID0gdHlwZTsKCgkJCWlmICggIWl0ZW0ub3B0cy50aHVtYiAmJiAhKCBpdGVtLm9wdHMuJHRodW1iICYmIGl0ZW0ub3B0cy4kdGh1bWIubGVuZ3RoICkgKSB7CgkJCQlpdGVtLm9wdHMudGh1bWIgPSB0aHVtYjsKCQkJfQoKCQkJaWYgKCB0eXBlID09PSAnaWZyYW1lJyApIHsKCQkJCSQuZXh0ZW5kKHRydWUsIGl0ZW0ub3B0cywgewoJCQkJCWlmcmFtZSA6IHsKCQkJCQkJcHJlbG9hZCA6IGZhbHNlLAoJCQkJCQlhdHRyIDogewoJCQkJCQkJc2Nyb2xsaW5nIDogIm5vIgoJCQkJCQl9CgkJCQkJfQoJCQkJfSk7CgoJCQkJaXRlbS5jb250ZW50UHJvdmlkZXIgPSBwcm92aWRlcjsKCgkJCQlpdGVtLm9wdHMuc2xpZGVDbGFzcyArPSAnIGZhbmN5Ym94LXNsaWRlLS0nICsgKCBwcm92aWRlciA9PSAnZ21hcF9wbGFjZScgfHwgcHJvdmlkZXIgPT0gJ2dtYXBfc2VhcmNoJyA/ICdtYXAnIDogJ3ZpZGVvJyApOwoJCQl9CgoJCX0gZWxzZSBpZiAoIHVybCApIHsKCQkJaXRlbS50eXBlID0gaXRlbS5vcHRzLmRlZmF1bHRUeXBlOwoJCX0KCgl9KTsKCn0oIHdpbmRvdy5qUXVlcnkgfHwgalF1ZXJ5ICkpOwoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8KLy8gR3Vlc3R1cmVzCi8vIEFkZHMgdG91Y2ggZ3Vlc3R1cmVzLCBoYW5kbGVzIGNsaWNrIGFuZCB0YXAgZXZlbnRzCi8vCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjsoZnVuY3Rpb24gKHdpbmRvdywgZG9jdW1lbnQsICQpIHsKCSd1c2Ugc3RyaWN0JzsKCgl2YXIgcmVxdWVzdEFGcmFtZSA9IChmdW5jdGlvbiAoKSB7CgkJcmV0dXJuIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgfHwKCQkJd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZSB8fAoJCQl3aW5kb3cubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8CgkJCXdpbmRvdy5vUmVxdWVzdEFuaW1hdGlvbkZyYW1lIHx8CgkJCS8vIGlmIGFsbCBlbHNlIGZhaWxzLCB1c2Ugc2V0VGltZW91dAoJCQlmdW5jdGlvbiAoY2FsbGJhY2spIHsKCQkJCXJldHVybiB3aW5kb3cuc2V0VGltZW91dChjYWxsYmFjaywgMTAwMCAvIDYwKTsKCQkJfTsKCX0pKCk7CgoJdmFyIGNhbmNlbEFGcmFtZSA9IChmdW5jdGlvbiAoKSB7CgkJcmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSB8fAoJCQl3aW5kb3cud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKCQkJd2luZG93Lm1vekNhbmNlbEFuaW1hdGlvbkZyYW1lIHx8CgkJCXdpbmRvdy5vQ2FuY2VsQW5pbWF0aW9uRnJhbWUgfHwKCQkJZnVuY3Rpb24gKGlkKSB7CgkJCQl3aW5kb3cuY2xlYXJUaW1lb3V0KGlkKTsKCQkJfTsKCX0pKCk7CgoJdmFyIHBvaW50ZXJzID0gZnVuY3Rpb24oIGUgKSB7CgkJdmFyIHJlc3VsdCA9IFtdOwoKCQllID0gZS5vcmlnaW5hbEV2ZW50IHx8IGUgfHwgd2luZG93LmU7CgkJZSA9IGUudG91Y2hlcyAmJiBlLnRvdWNoZXMubGVuZ3RoID8gZS50b3VjaGVzIDogKCBlLmNoYW5nZWRUb3VjaGVzICYmIGUuY2hhbmdlZFRvdWNoZXMubGVuZ3RoID8gZS5jaGFuZ2VkVG91Y2hlcyA6IFsgZSBdICk7CgoJCWZvciAoIHZhciBrZXkgaW4gZSApIHsKCgkJCWlmICggZVsga2V5IF0ucGFnZVggKSB7CgkJCQlyZXN1bHQucHVzaCggeyB4IDogZVsga2V5IF0ucGFnZVgsIHkgOiBlWyBrZXkgXS5wYWdlWSB9ICk7CgoJCQl9IGVsc2UgaWYgKCBlWyBrZXkgXS5jbGllbnRYICkgewoJCQkJcmVzdWx0LnB1c2goIHsgeCA6IGVbIGtleSBdLmNsaWVudFgsIHkgOiBlWyBrZXkgXS5jbGllbnRZIH0gKTsKCQkJfQoJCX0KCgkJcmV0dXJuIHJlc3VsdDsKCX07CgoJdmFyIGRpc3RhbmNlID0gZnVuY3Rpb24oIHBvaW50MiwgcG9pbnQxLCB3aGF0ICkgewoJCWlmICggIXBvaW50MSB8fCAhcG9pbnQyICkgewoJCQlyZXR1cm4gMDsKCQl9CgoJCWlmICggd2hhdCA9PT0gJ3gnICkgewoJCQlyZXR1cm4gcG9pbnQyLnggLSBwb2ludDEueDsKCgkJfSBlbHNlIGlmICggd2hhdCA9PT0gJ3knICkgewoJCQlyZXR1cm4gcG9pbnQyLnkgLSBwb2ludDEueTsKCQl9CgoJCXJldHVybiBNYXRoLnNxcnQoIE1hdGgucG93KCBwb2ludDIueCAtIHBvaW50MS54LCAyICkgKyBNYXRoLnBvdyggcG9pbnQyLnkgLSBwb2ludDEueSwgMiApICk7Cgl9OwoKCXZhciBpc0NsaWNrYWJsZSA9IGZ1bmN0aW9uKCAkZWwgKSB7CgkJaWYgKCAkZWwuaXMoJ2EsYXJlYSxidXR0b24sW3JvbGU9ImJ1dHRvbiJdLGlucHV0LGxhYmVsLHNlbGVjdCxzdW1tYXJ5LHRleHRhcmVhJykgfHwgJC5pc0Z1bmN0aW9uKCAkZWwuZ2V0KDApLm9uY2xpY2sgKSB8fCAkZWwuZGF0YSgnc2VsZWN0YWJsZScpICkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgoJCS8vIENoZWNrIGZvciBhdHRyaWJ1dGVzIGxpa2UgZGF0YS1mYW5jeWJveC1uZXh0IG9yIGRhdGEtZmFuY3lib3gtY2xvc2UKCQlmb3IgKCB2YXIgaSA9IDAsIGF0dHMgPSAkZWxbMF0uYXR0cmlidXRlcywgbiA9IGF0dHMubGVuZ3RoOyBpIDwgbjsgaSsrICkgewoJCQlpZiAoIGF0dHNbaV0ubm9kZU5hbWUuc3Vic3RyKDAsIDE0KSA9PT0gJ2RhdGEtZmFuY3lib3gtJyApIHsKCQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoKCSAJcmV0dXJuIGZhbHNlOwoJfTsKCgl2YXIgaGFzU2Nyb2xsYmFycyA9IGZ1bmN0aW9uKCBlbCApIHsKCQl2YXIgb3ZlcmZsb3dZID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoIGVsIClbJ292ZXJmbG93LXknXTsKCQl2YXIgb3ZlcmZsb3dYID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoIGVsIClbJ292ZXJmbG93LXgnXTsKCgkJdmFyIHZlcnRpY2FsICAgPSAob3ZlcmZsb3dZID09PSAnc2Nyb2xsJyB8fCBvdmVyZmxvd1kgPT09ICdhdXRvJykgJiYgZWwuc2Nyb2xsSGVpZ2h0ID4gZWwuY2xpZW50SGVpZ2h0OwoJCXZhciBob3Jpem9udGFsID0gKG92ZXJmbG93WCA9PT0gJ3Njcm9sbCcgfHwgb3ZlcmZsb3dYID09PSAnYXV0bycpICYmIGVsLnNjcm9sbFdpZHRoID4gZWwuY2xpZW50V2lkdGg7CgoJCXJldHVybiB2ZXJ0aWNhbCB8fCBob3Jpem9udGFsOwoJfTsKCgl2YXIgaXNTY3JvbGxhYmxlID0gZnVuY3Rpb24gKCAkZWwgKSB7CgkJdmFyIHJleiA9IGZhbHNlOwoKCQl3aGlsZSAoIHRydWUgKSB7CgkJCXJlegk9IGhhc1Njcm9sbGJhcnMoICRlbC5nZXQoMCkgKTsKCgkJCWlmICggcmV6ICkgewoJCQkJYnJlYWs7CgkJCX0KCgkJCSRlbCA9ICRlbC5wYXJlbnQoKTsKCgkJCWlmICggISRlbC5sZW5ndGggfHwgJGVsLmhhc0NsYXNzKCAnZmFuY3lib3gtc3RhZ2UnICkgfHwgJGVsLmlzKCAnYm9keScgKSApIHsKCQkJCWJyZWFrOwoJCQl9CgkJfQoKCQlyZXR1cm4gcmV6OwoJfTsKCgoJdmFyIEd1ZXN0dXJlcyA9IGZ1bmN0aW9uICggaW5zdGFuY2UgKSB7CgkJdmFyIHNlbGYgPSB0aGlzOwoKCQlzZWxmLmluc3RhbmNlID0gaW5zdGFuY2U7CgoJCXNlbGYuJGJnICAgICAgICA9IGluc3RhbmNlLiRyZWZzLmJnOwoJCXNlbGYuJHN0YWdlICAgICA9IGluc3RhbmNlLiRyZWZzLnN0YWdlOwoJCXNlbGYuJGNvbnRhaW5lciA9IGluc3RhbmNlLiRyZWZzLmNvbnRhaW5lcjsKCgkJc2VsZi5kZXN0cm95KCk7CgoJCXNlbGYuJGNvbnRhaW5lci5vbiggJ3RvdWNoc3RhcnQuZmIudG91Y2ggbW91c2Vkb3duLmZiLnRvdWNoJywgJC5wcm94eShzZWxmLCAnb250b3VjaHN0YXJ0JykgKTsKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5kZXN0cm95ID0gZnVuY3Rpb24oKSB7CgkJdGhpcy4kY29udGFpbmVyLm9mZiggJy5mYi50b3VjaCcgKTsKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5vbnRvdWNoc3RhcnQgPSBmdW5jdGlvbiggZSApIHsKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCXZhciAkdGFyZ2V0ICA9ICQoIGUudGFyZ2V0ICk7CgkJdmFyIGluc3RhbmNlID0gc2VsZi5pbnN0YW5jZTsKCQl2YXIgY3VycmVudCAgPSBpbnN0YW5jZS5jdXJyZW50OwoJCXZhciAkY29udGVudCA9IGN1cnJlbnQuJGNvbnRlbnQ7CgoJCXZhciBpc1RvdWNoRGV2aWNlID0gKCBlLnR5cGUgPT0gJ3RvdWNoc3RhcnQnICk7CgoJCS8vIERvIG5vdCByZXNwb25kIHRvIGJvdGggKHRvdWNoIGFuZCBtb3VzZSkgZXZlbnRzCgkJaWYgKCBpc1RvdWNoRGV2aWNlICkgewoJCQlzZWxmLiRjb250YWluZXIub2ZmKCAnbW91c2Vkb3duLmZiLnRvdWNoJyApOwoJCX0KCgkJLy8gSWdub3JlIHJpZ2h0IGNsaWNrCgkJaWYgKCBlLm9yaWdpbmFsRXZlbnQgJiYgZS5vcmlnaW5hbEV2ZW50LmJ1dHRvbiA9PSAyICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBJZ25vcmUgdGFwaW5nIG9uIGxpbmtzLCBidXR0b25zLCBpbnB1dCBlbGVtZW50cwoJCWlmICggISR0YXJnZXQubGVuZ3RoIHx8IGlzQ2xpY2thYmxlKCAkdGFyZ2V0ICkgfHwgaXNDbGlja2FibGUoICR0YXJnZXQucGFyZW50KCkgKSApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gSWdub3JlIGNsaWNrcyBvbiB0aGUgc2Nyb2xsYmFyCgkJaWYgKCAhJHRhcmdldC5pcygnaW1nJykgJiYgZS5vcmlnaW5hbEV2ZW50LmNsaWVudFggPiAkdGFyZ2V0WzBdLmNsaWVudFdpZHRoICsgJHRhcmdldC5vZmZzZXQoKS5sZWZ0ICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBJZ25vcmUgY2xpY2tzIHdoaWxlIHpvb21pbmcgb3IgY2xvc2luZwoJCWlmICggIWN1cnJlbnQgfHwgc2VsZi5pbnN0YW5jZS5pc0FuaW1hdGluZyB8fCBzZWxmLmluc3RhbmNlLmlzQ2xvc2luZyApIHsKCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJcmV0dXJuOwoJCX0KCgkJc2VsZi5yZWFsUG9pbnRzID0gc2VsZi5zdGFydFBvaW50cyA9IHBvaW50ZXJzKCBlICk7CgoJCWlmICggIXNlbGYuc3RhcnRQb2ludHMgKSB7CgkJCXJldHVybjsKCQl9CgoJCWUuc3RvcFByb3BhZ2F0aW9uKCk7CgoJCXNlbGYuc3RhcnRFdmVudCA9IGU7CgoJCXNlbGYuY2FuVGFwICAgPSB0cnVlOwoJCXNlbGYuJHRhcmdldCAgPSAkdGFyZ2V0OwoJCXNlbGYuJGNvbnRlbnQgPSAkY29udGVudDsKCQlzZWxmLm9wdHMgICAgID0gY3VycmVudC5vcHRzLnRvdWNoOwoKCQlzZWxmLmlzUGFubmluZyAgID0gZmFsc2U7CgkJc2VsZi5pc1N3aXBpbmcgICA9IGZhbHNlOwoJCXNlbGYuaXNab29taW5nICAgPSBmYWxzZTsKCQlzZWxmLmlzU2Nyb2xsaW5nID0gZmFsc2U7CgoJCXNlbGYuc2xpZGVyU3RhcnRQb3MgID0gc2VsZi5zbGlkZXJMYXN0UG9zIHx8IHsgdG9wOiAwLCBsZWZ0OiAwIH07CgkJc2VsZi5jb250ZW50U3RhcnRQb3MgPSAkLmZhbmN5Ym94LmdldFRyYW5zbGF0ZSggc2VsZi4kY29udGVudCApOwoJCXNlbGYuY29udGVudExhc3RQb3MgID0gbnVsbDsKCgkJc2VsZi5zdGFydFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCQlzZWxmLmRpc3RhbmNlWCA9IHNlbGYuZGlzdGFuY2VZID0gc2VsZi5kaXN0YW5jZSA9IDA7CgoJCXNlbGYuY2FudmFzV2lkdGggID0gTWF0aC5yb3VuZCggY3VycmVudC4kc2xpZGVbMF0uY2xpZW50V2lkdGggKTsKCQlzZWxmLmNhbnZhc0hlaWdodCA9IE1hdGgucm91bmQoIGN1cnJlbnQuJHNsaWRlWzBdLmNsaWVudEhlaWdodCApOwoKCQkkKGRvY3VtZW50KQoJCQkub2ZmKCAnLmZiLnRvdWNoJyApCgkJCS5vbiggaXNUb3VjaERldmljZSA/ICd0b3VjaGVuZC5mYi50b3VjaCB0b3VjaGNhbmNlbC5mYi50b3VjaCcgOiAnbW91c2V1cC5mYi50b3VjaCBtb3VzZWxlYXZlLmZiLnRvdWNoJywgJC5wcm94eShzZWxmLCAib250b3VjaGVuZCIpKQoJCQkub24oIGlzVG91Y2hEZXZpY2UgPyAndG91Y2htb3ZlLmZiLnRvdWNoJyA6ICdtb3VzZW1vdmUuZmIudG91Y2gnLCAkLnByb3h5KHNlbGYsICJvbnRvdWNobW92ZSIpKTsKCgkJaWYgKCAkLmZhbmN5Ym94LmlzTW9iaWxlICkgewoJCQlkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzZWxmLm9uc2Nyb2xsLCB0cnVlKTsKCQl9CgoJCWlmICggIShzZWxmLm9wdHMgfHwgaW5zdGFuY2UuY2FuUGFuKCkgKSB8fCAhKCAkdGFyZ2V0LmlzKCBzZWxmLiRzdGFnZSApIHx8IHNlbGYuJHN0YWdlLmZpbmQoICR0YXJnZXQgKS5sZW5ndGggKSApIHsKCgkJCS8vIFByZXZlbnQgaW1hZ2UgZ2hvc3Rpbmcgd2hpbGUgZHJhZ2dpbmcKCQkJaWYgKCAkdGFyZ2V0LmlzKCdpbWcnKSApIHsKCQkJCWUucHJldmVudERlZmF1bHQoKTsKCQkJfQoKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhKCAkLmZhbmN5Ym94LmlzTW9iaWxlICYmICggaXNTY3JvbGxhYmxlKCAkdGFyZ2V0ICkgfHwgaXNTY3JvbGxhYmxlKCAkdGFyZ2V0LnBhcmVudCgpICkgKSApICkgewoJCQllLnByZXZlbnREZWZhdWx0KCk7CgkJfQoKCQlpZiAoIHNlbGYuc3RhcnRQb2ludHMubGVuZ3RoID09PSAxICkgewoJCQlpZiAoIGN1cnJlbnQudHlwZSA9PT0gJ2ltYWdlJyAmJiAoIHNlbGYuY29udGVudFN0YXJ0UG9zLndpZHRoID4gc2VsZi5jYW52YXNXaWR0aCArIDEgfHwgc2VsZi5jb250ZW50U3RhcnRQb3MuaGVpZ2h0ID4gc2VsZi5jYW52YXNIZWlnaHQgKyAxICkgKSB7CgkJCQkkLmZhbmN5Ym94LnN0b3AoIHNlbGYuJGNvbnRlbnQgKTsKCgkJCQlzZWxmLiRjb250ZW50LmNzcyggJ3RyYW5zaXRpb24tZHVyYXRpb24nLCAnJyApOwoKCQkJCXNlbGYuaXNQYW5uaW5nID0gdHJ1ZTsKCgkJCX0gZWxzZSB7CgkJCQlzZWxmLmlzU3dpcGluZyA9IHRydWU7CgkJCX0KCgkJCXNlbGYuJGNvbnRhaW5lci5hZGRDbGFzcyggJ2ZhbmN5Ym94LWNvbnRyb2xzLS1pc0dyYWJiaW5nJyApOwoJCX0KCgkJaWYgKCBzZWxmLnN0YXJ0UG9pbnRzLmxlbmd0aCA9PT0gMiAmJiAhaW5zdGFuY2UuaXNBbmltYXRpbmcgJiYgIWN1cnJlbnQuaGFzRXJyb3IgJiYgY3VycmVudC50eXBlID09PSAnaW1hZ2UnICYmICggY3VycmVudC5pc0xvYWRlZCB8fCBjdXJyZW50LiRnaG9zdCApICkgewoJCQlzZWxmLmNhblRhcCAgICA9IGZhbHNlOwoJCQlzZWxmLmlzU3dpcGluZyA9IGZhbHNlOwoJCQlzZWxmLmlzUGFubmluZyA9IGZhbHNlOwoKCQkJc2VsZi5pc1pvb21pbmcgPSB0cnVlOwoKCQkJJC5mYW5jeWJveC5zdG9wKCBzZWxmLiRjb250ZW50ICk7CgoJCQlzZWxmLiRjb250ZW50LmNzcyggJ3RyYW5zaXRpb24tZHVyYXRpb24nLCAnJyApOwoKCQkJc2VsZi5jZW50ZXJQb2ludFN0YXJ0WCA9ICggKCBzZWxmLnN0YXJ0UG9pbnRzWzBdLnggKyBzZWxmLnN0YXJ0UG9pbnRzWzFdLnggKSAqIDAuNSApIC0gJCh3aW5kb3cpLnNjcm9sbExlZnQoKTsKCQkJc2VsZi5jZW50ZXJQb2ludFN0YXJ0WSA9ICggKCBzZWxmLnN0YXJ0UG9pbnRzWzBdLnkgKyBzZWxmLnN0YXJ0UG9pbnRzWzFdLnkgKSAqIDAuNSApIC0gJCh3aW5kb3cpLnNjcm9sbFRvcCgpOwoKCQkJc2VsZi5wZXJjZW50YWdlT2ZJbWFnZUF0UGluY2hQb2ludFggPSAoIHNlbGYuY2VudGVyUG9pbnRTdGFydFggLSBzZWxmLmNvbnRlbnRTdGFydFBvcy5sZWZ0ICkgLyBzZWxmLmNvbnRlbnRTdGFydFBvcy53aWR0aDsKCQkJc2VsZi5wZXJjZW50YWdlT2ZJbWFnZUF0UGluY2hQb2ludFkgPSAoIHNlbGYuY2VudGVyUG9pbnRTdGFydFkgLSBzZWxmLmNvbnRlbnRTdGFydFBvcy50b3AgICkgLyBzZWxmLmNvbnRlbnRTdGFydFBvcy5oZWlnaHQ7CgoJCQlzZWxmLnN0YXJ0RGlzdGFuY2VCZXR3ZWVuRmluZ2VycyA9IGRpc3RhbmNlKCBzZWxmLnN0YXJ0UG9pbnRzWzBdLCBzZWxmLnN0YXJ0UG9pbnRzWzFdICk7CgkJfQoKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5vbnNjcm9sbCA9IGZ1bmN0aW9uKGUpIHsKCQlzZWxmLmlzU2Nyb2xsaW5nID0gdHJ1ZTsKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5vbnRvdWNobW92ZSA9IGZ1bmN0aW9uKCBlICkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJJHRhcmdldCA9ICQoZS50YXJnZXQpOwoKCQlpZiAoIHNlbGYuaXNTY3JvbGxpbmcgfHwgISggJHRhcmdldC5pcyggc2VsZi4kc3RhZ2UgKSB8fCBzZWxmLiRzdGFnZS5maW5kKCAkdGFyZ2V0ICkubGVuZ3RoICkgKSB7CgkJCXNlbGYuY2FuVGFwID0gZmFsc2U7CgoJCQlyZXR1cm47CgkJfQoKCQlzZWxmLm5ld1BvaW50cyA9IHBvaW50ZXJzKCBlICk7CgoJCWlmICggISggc2VsZi5vcHRzIHx8IHNlbGYuaW5zdGFuY2UuY2FuUGFuKCkgKSB8fCAhc2VsZi5uZXdQb2ludHMgfHwgIXNlbGYubmV3UG9pbnRzLmxlbmd0aCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJaWYgKCAhKHNlbGYuaXNTd2lwaW5nICYmIHNlbGYuaXNTd2lwaW5nID09PSB0cnVlKSApIHsKCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCX0KCgkJc2VsZi5kaXN0YW5jZVggPSBkaXN0YW5jZSggc2VsZi5uZXdQb2ludHNbMF0sIHNlbGYuc3RhcnRQb2ludHNbMF0sICd4JyApOwoJCXNlbGYuZGlzdGFuY2VZID0gZGlzdGFuY2UoIHNlbGYubmV3UG9pbnRzWzBdLCBzZWxmLnN0YXJ0UG9pbnRzWzBdLCAneScgKTsKCgkJc2VsZi5kaXN0YW5jZSA9IGRpc3RhbmNlKCBzZWxmLm5ld1BvaW50c1swXSwgc2VsZi5zdGFydFBvaW50c1swXSApCgoJCS8vIFNraXAgZmFsc2Ugb250b3VjaG1vdmUgZXZlbnRzIChDaHJvbWUpCgkJaWYgKCBzZWxmLmRpc3RhbmNlID4gMCApIHsKCQkJaWYgKCBzZWxmLmlzU3dpcGluZyApIHsKCQkJCXNlbGYub25Td2lwZShlKTsKCgkJCX0gZWxzZSBpZiAoIHNlbGYuaXNQYW5uaW5nICkgewoJCQkJc2VsZi5vblBhbigpOwoKCQkJfSBlbHNlIGlmICggc2VsZi5pc1pvb21pbmcgKSB7CgkJCQlzZWxmLm9uWm9vbSgpOwoJCQl9CgkJfQoKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5vblN3aXBlID0gZnVuY3Rpb24oZSkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJc3dpcGluZyA9IHNlbGYuaXNTd2lwaW5nLAoJCQlsZWZ0ICAgID0gc2VsZi5zbGlkZXJTdGFydFBvcy5sZWZ0IHx8IDAsCgkJCWFuZ2xlOwoKCQkvLyBJZiBkaXJlY3Rpb24gaXMgbm90IHlldCBkZXRlcm1pbmVkCgkJaWYgKCBzd2lwaW5nID09PSB0cnVlICkgewoKCQkJLy8gV2UgbmVlZCBhdCBsZWFzdCAxMHB4IGRpc3RhbmNlIHRvIGNvcnJlY3RseSBjYWxjdWxhdGUgYW4gYW5nbGUKCQkJaWYgKCBNYXRoLmFicyggc2VsZi5kaXN0YW5jZSApID4gMTAgKSB7CgkJCQlzZWxmLmNhblRhcCA9IGZhbHNlOwoKCQkJCWlmICggc2VsZi5pbnN0YW5jZS5ncm91cC5sZW5ndGggPCAyICYmIHNlbGYub3B0cy52ZXJ0aWNhbCApIHsKCQkJCQlzZWxmLmlzU3dpcGluZyA9ICd5JzsKCgkJCQl9IGVsc2UgaWYgKCBzZWxmLmluc3RhbmNlLmlzRHJhZ2dpbmcgfHwgc2VsZi5vcHRzLnZlcnRpY2FsID09PSBmYWxzZSB8fCAoIHNlbGYub3B0cy52ZXJ0aWNhbCA9PT0gJ2F1dG8nICYmICQoIHdpbmRvdyApLndpZHRoKCkgPiA4MDAgKSApIHsKCQkJCQlzZWxmLmlzU3dpcGluZyA9ICd4JzsKCgkJCQl9IGVsc2UgewoJCQkJCWFuZ2xlID0gTWF0aC5hYnMoIE1hdGguYXRhbjIoIHNlbGYuZGlzdGFuY2VZLCBzZWxmLmRpc3RhbmNlWCApICogMTgwIC8gTWF0aC5QSSApOwoKCQkJCQlzZWxmLmlzU3dpcGluZyA9ICggYW5nbGUgPiA0NSAmJiBhbmdsZSA8IDEzNSApID8gJ3knIDogJ3gnOwoJCQkJfQoKCQkJCXNlbGYuY2FuVGFwID0gZmFsc2U7CgoJCQkJIGlmICggc2VsZi5pc1N3aXBpbmcgPT09ICd5JyAmJiAkLmZhbmN5Ym94LmlzTW9iaWxlICYmICggaXNTY3JvbGxhYmxlKCBzZWxmLiR0YXJnZXQgKSB8fCBpc1Njcm9sbGFibGUoIHNlbGYuJHRhcmdldC5wYXJlbnQoKSApICkgKSB7CgkJCQkJIHNlbGYuaXNTY3JvbGxpbmcgPSB0cnVlOwoKCQkJCQkgcmV0dXJuOwoJCQkJIH0KCgkJCQlzZWxmLmluc3RhbmNlLmlzRHJhZ2dpbmcgPSBzZWxmLmlzU3dpcGluZzsKCgkJCQkvLyBSZXNldCBwb2ludHMgdG8gYXZvaWQganVtcGluZywgYmVjYXVzZSB3ZSBkcm9wcGVkIGZpcnN0IHN3aXBlcyB0byBjYWxjdWxhdGUgdGhlIGFuZ2xlCgkJCQlzZWxmLnN0YXJ0UG9pbnRzID0gc2VsZi5uZXdQb2ludHM7CgoJCQkJJC5lYWNoKHNlbGYuaW5zdGFuY2Uuc2xpZGVzLCBmdW5jdGlvbiggaW5kZXgsIHNsaWRlICkgewoJCQkJCSQuZmFuY3lib3guc3RvcCggc2xpZGUuJHNsaWRlICk7CgoJCQkJCXNsaWRlLiRzbGlkZS5jc3MoICd0cmFuc2l0aW9uLWR1cmF0aW9uJywgJycgKTsKCgkJCQkJc2xpZGUuaW5UcmFuc2l0aW9uID0gZmFsc2U7CgoJCQkJCWlmICggc2xpZGUucG9zID09PSBzZWxmLmluc3RhbmNlLmN1cnJlbnQucG9zICkgewoJCQkJCQlzZWxmLnNsaWRlclN0YXJ0UG9zLmxlZnQgPSAkLmZhbmN5Ym94LmdldFRyYW5zbGF0ZSggc2xpZGUuJHNsaWRlICkubGVmdDsKCQkJCQl9CgkJCQl9KTsKCgkJCQkvLyBTdG9wIHNsaWRlc2hvdwoJCQkJaWYgKCBzZWxmLmluc3RhbmNlLlNsaWRlU2hvdyAmJiBzZWxmLmluc3RhbmNlLlNsaWRlU2hvdy5pc0FjdGl2ZSApIHsKCQkJCQlzZWxmLmluc3RhbmNlLlNsaWRlU2hvdy5zdG9wKCk7CgkJCQl9CgkJCX0KCgkJCXJldHVybjsKCQl9CgoJCS8vIFN0aWNreSBlZGdlcwoJCWlmICggc3dpcGluZyA9PSAneCcgKSB7CgkJCWlmICggc2VsZi5kaXN0YW5jZVggPiAwICYmICggc2VsZi5pbnN0YW5jZS5ncm91cC5sZW5ndGggPCAyIHx8ICggc2VsZi5pbnN0YW5jZS5jdXJyZW50LmluZGV4ID09PSAwICYmICFzZWxmLmluc3RhbmNlLmN1cnJlbnQub3B0cy5sb29wICkgKSApIHsKCQkJCWxlZnQgPSBsZWZ0ICsgTWF0aC5wb3coIHNlbGYuZGlzdGFuY2VYLCAwLjggKTsKCgkJCX0gZWxzZSBpZiAoIHNlbGYuZGlzdGFuY2VYIDwgMCAmJiAoIHNlbGYuaW5zdGFuY2UuZ3JvdXAubGVuZ3RoIDwgMiB8fCAoIHNlbGYuaW5zdGFuY2UuY3VycmVudC5pbmRleCA9PT0gc2VsZi5pbnN0YW5jZS5ncm91cC5sZW5ndGggLSAxICYmICFzZWxmLmluc3RhbmNlLmN1cnJlbnQub3B0cy5sb29wICkgKSApIHsKCQkJCWxlZnQgPSBsZWZ0IC0gTWF0aC5wb3coIC1zZWxmLmRpc3RhbmNlWCwgMC44ICk7CgoJCQl9IGVsc2UgewoJCQkJbGVmdCA9IGxlZnQgKyBzZWxmLmRpc3RhbmNlWDsKCQkJfQoJCX0KCgkJc2VsZi5zbGlkZXJMYXN0UG9zID0gewoJCQl0b3AgIDogc3dpcGluZyA9PSAneCcgPyAwIDogc2VsZi5zbGlkZXJTdGFydFBvcy50b3AgKyBzZWxmLmRpc3RhbmNlWSwKCQkJbGVmdCA6IGxlZnQKCQl9OwoKCQlpZiAoIHNlbGYucmVxdWVzdElkICkgewoJCQljYW5jZWxBRnJhbWUoIHNlbGYucmVxdWVzdElkICk7CgoJCQlzZWxmLnJlcXVlc3RJZCA9IG51bGw7CgkJfQoKCQlzZWxmLnJlcXVlc3RJZCA9IHJlcXVlc3RBRnJhbWUoZnVuY3Rpb24oKSB7CgoJCQlpZiAoIHNlbGYuc2xpZGVyTGFzdFBvcyApIHsKCQkJCSQuZWFjaChzZWxmLmluc3RhbmNlLnNsaWRlcywgZnVuY3Rpb24oIGluZGV4LCBzbGlkZSApIHsKCQkJCQl2YXIgcG9zID0gc2xpZGUucG9zIC0gc2VsZi5pbnN0YW5jZS5jdXJyUG9zOwoKCQkJCQkkLmZhbmN5Ym94LnNldFRyYW5zbGF0ZSggc2xpZGUuJHNsaWRlLCB7CgkJCQkJCXRvcCAgOiBzZWxmLnNsaWRlckxhc3RQb3MudG9wLAoJCQkJCQlsZWZ0IDogc2VsZi5zbGlkZXJMYXN0UG9zLmxlZnQgKyAoIHBvcyAqIHNlbGYuY2FudmFzV2lkdGggKSArICggcG9zICogc2xpZGUub3B0cy5ndXR0ZXIgKQoJCQkJCX0pOwoJCQkJfSk7CgoJCQkJc2VsZi4kY29udGFpbmVyLmFkZENsYXNzKCAnZmFuY3lib3gtaXMtc2xpZGluZycgKTsKCQkJfQoKCQl9KTsKCgl9OwoKCUd1ZXN0dXJlcy5wcm90b3R5cGUub25QYW4gPSBmdW5jdGlvbigpIHsKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCS8vIFNvbWV0aW1lcywgd2hlbiB0YXBwaW5nIGNhdXNhbGx5LCBpbWFnZSBjYW4gbW92ZSBhIGJpdCBhbmQgdGhhdCBicmVha3MgZG91YmxlIHRhcHBpbmcKCQlpZiAoIGRpc3RhbmNlKCBzZWxmLm5ld1BvaW50c1swXSwgc2VsZi5yZWFsUG9pbnRzWzBdICkgPCAoJC5mYW5jeWJveC5pc01vYmlsZSA/IDEwIDogNSkgKSB7CgkJCXNlbGYuc3RhcnRQb2ludHMgPSBzZWxmLm5ld1BvaW50czsKCQkJcmV0dXJuOwoJCX0KCgkJc2VsZi5jYW5UYXAgPSBmYWxzZTsKCgkJc2VsZi5jb250ZW50TGFzdFBvcyA9IHNlbGYubGltaXRNb3ZlbWVudCgpOwoKCQlpZiAoIHNlbGYucmVxdWVzdElkICkgewoJCQljYW5jZWxBRnJhbWUoIHNlbGYucmVxdWVzdElkICk7CgoJCQlzZWxmLnJlcXVlc3RJZCA9IG51bGw7CgkJfQoKCQlzZWxmLnJlcXVlc3RJZCA9IHJlcXVlc3RBRnJhbWUoZnVuY3Rpb24oKSB7CgkJCSQuZmFuY3lib3guc2V0VHJhbnNsYXRlKCBzZWxmLiRjb250ZW50LCBzZWxmLmNvbnRlbnRMYXN0UG9zICk7CgkJfSk7Cgl9OwoKCS8vIE1ha2UgcGFubmluZyBzdGlja3kgdG8gdGhlIGVkZ2VzCglHdWVzdHVyZXMucHJvdG90eXBlLmxpbWl0TW92ZW1lbnQgPSBmdW5jdGlvbigpIHsKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCXZhciBjYW52YXNXaWR0aCAgPSBzZWxmLmNhbnZhc1dpZHRoOwoJCXZhciBjYW52YXNIZWlnaHQgPSBzZWxmLmNhbnZhc0hlaWdodDsKCgkJdmFyIGRpc3RhbmNlWCA9IHNlbGYuZGlzdGFuY2VYOwoJCXZhciBkaXN0YW5jZVkgPSBzZWxmLmRpc3RhbmNlWTsKCgkJdmFyIGNvbnRlbnRTdGFydFBvcyA9IHNlbGYuY29udGVudFN0YXJ0UG9zOwoKCQl2YXIgY3VycmVudE9mZnNldFggPSBjb250ZW50U3RhcnRQb3MubGVmdDsKCQl2YXIgY3VycmVudE9mZnNldFkgPSBjb250ZW50U3RhcnRQb3MudG9wOwoKCQl2YXIgY3VycmVudFdpZHRoICA9IGNvbnRlbnRTdGFydFBvcy53aWR0aDsKCQl2YXIgY3VycmVudEhlaWdodCA9IGNvbnRlbnRTdGFydFBvcy5oZWlnaHQ7CgoJCXZhciBtaW5UcmFuc2xhdGVYLCBtaW5UcmFuc2xhdGVZLAoJCQltYXhUcmFuc2xhdGVYLCBtYXhUcmFuc2xhdGVZLAoJCQluZXdPZmZzZXRYLCBuZXdPZmZzZXRZOwoKCQlpZiAoIGN1cnJlbnRXaWR0aCA+IGNhbnZhc1dpZHRoICkgewoJCQluZXdPZmZzZXRYID0gY3VycmVudE9mZnNldFggKyBkaXN0YW5jZVg7CgoJCX0gZWxzZSB7CgkJCW5ld09mZnNldFggPSBjdXJyZW50T2Zmc2V0WDsKCQl9CgoJCW5ld09mZnNldFkgPSBjdXJyZW50T2Zmc2V0WSArIGRpc3RhbmNlWTsKCgkJLy8gU2xvdyBkb3duIHByb3BvcnRpb25hbGx5IHRvIHRyYXZlbGVkIGRpc3RhbmNlCgkJbWluVHJhbnNsYXRlWCA9IE1hdGgubWF4KCAwLCBjYW52YXNXaWR0aCAgKiAwLjUgLSBjdXJyZW50V2lkdGggICogMC41ICk7CgkJbWluVHJhbnNsYXRlWSA9IE1hdGgubWF4KCAwLCBjYW52YXNIZWlnaHQgKiAwLjUgLSBjdXJyZW50SGVpZ2h0ICogMC41ICk7CgoJCW1heFRyYW5zbGF0ZVggPSBNYXRoLm1pbiggY2FudmFzV2lkdGggIC0gY3VycmVudFdpZHRoLCAgY2FudmFzV2lkdGggICogMC41IC0gY3VycmVudFdpZHRoICAqIDAuNSApOwoJCW1heFRyYW5zbGF0ZVkgPSBNYXRoLm1pbiggY2FudmFzSGVpZ2h0IC0gY3VycmVudEhlaWdodCwgY2FudmFzSGVpZ2h0ICogMC41IC0gY3VycmVudEhlaWdodCAqIDAuNSApOwoKCQlpZiAoIGN1cnJlbnRXaWR0aCA+IGNhbnZhc1dpZHRoICkgewoKCQkJLy8gICAtPgoJCQlpZiAoIGRpc3RhbmNlWCA+IDAgJiYgbmV3T2Zmc2V0WCA+IG1pblRyYW5zbGF0ZVggKSB7CgkJCQluZXdPZmZzZXRYID0gbWluVHJhbnNsYXRlWCAtIDEgKyBNYXRoLnBvdyggLW1pblRyYW5zbGF0ZVggKyBjdXJyZW50T2Zmc2V0WCArIGRpc3RhbmNlWCwgMC44ICkgfHwgMDsKCQkJfQoKCQkJLy8gICAgPC0KCQkJaWYgKCBkaXN0YW5jZVggPCAwICYmIG5ld09mZnNldFggPCBtYXhUcmFuc2xhdGVYICkgewoJCQkJbmV3T2Zmc2V0WCA9IG1heFRyYW5zbGF0ZVggKyAxIC0gTWF0aC5wb3coIG1heFRyYW5zbGF0ZVggLSBjdXJyZW50T2Zmc2V0WCAtIGRpc3RhbmNlWCwgMC44ICkgfHwgMDsKCQkJfQoKCQl9CgoJCWlmICggY3VycmVudEhlaWdodCA+IGNhbnZhc0hlaWdodCApIHsKCgkJCS8vICAgXC8KCQkJaWYgKCBkaXN0YW5jZVkgPiAwICYmIG5ld09mZnNldFkgPiBtaW5UcmFuc2xhdGVZICkgewoJCQkJbmV3T2Zmc2V0WSA9IG1pblRyYW5zbGF0ZVkgLSAxICsgTWF0aC5wb3coLW1pblRyYW5zbGF0ZVkgKyBjdXJyZW50T2Zmc2V0WSArIGRpc3RhbmNlWSwgMC44ICkgfHwgMDsKCQkJfQoKCQkJLy8gICAvXAoJCQlpZiAoIGRpc3RhbmNlWSA8IDAgJiYgbmV3T2Zmc2V0WSA8IG1heFRyYW5zbGF0ZVkgKSB7CgkJCQluZXdPZmZzZXRZID0gbWF4VHJhbnNsYXRlWSArIDEgLSBNYXRoLnBvdyAoIG1heFRyYW5zbGF0ZVkgLSBjdXJyZW50T2Zmc2V0WSAtIGRpc3RhbmNlWSwgMC44ICkgfHwgMDsKCQkJfQoKCQl9CgoJCXJldHVybiB7CgkJCXRvcCAgICA6IG5ld09mZnNldFksCgkJCWxlZnQgICA6IG5ld09mZnNldFgsCgkJCXNjYWxlWCA6IGNvbnRlbnRTdGFydFBvcy5zY2FsZVgsCgkJCXNjYWxlWSA6IGNvbnRlbnRTdGFydFBvcy5zY2FsZVkKCQl9OwoKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5saW1pdFBvc2l0aW9uID0gZnVuY3Rpb24oIG5ld09mZnNldFgsIG5ld09mZnNldFksIG5ld1dpZHRoLCBuZXdIZWlnaHQgKSB7CgkJdmFyIHNlbGYgPSB0aGlzOwoKCQl2YXIgY2FudmFzV2lkdGggID0gc2VsZi5jYW52YXNXaWR0aDsKCQl2YXIgY2FudmFzSGVpZ2h0ID0gc2VsZi5jYW52YXNIZWlnaHQ7CgoJCWlmICggbmV3V2lkdGggPiBjYW52YXNXaWR0aCApIHsKCQkJbmV3T2Zmc2V0WCA9IG5ld09mZnNldFggPiAwID8gMCA6IG5ld09mZnNldFg7CgkJCW5ld09mZnNldFggPSBuZXdPZmZzZXRYIDwgY2FudmFzV2lkdGggLSBuZXdXaWR0aCA/IGNhbnZhc1dpZHRoIC0gbmV3V2lkdGggOiBuZXdPZmZzZXRYOwoKCQl9IGVsc2UgewoKCQkJLy8gQ2VudGVyIGhvcml6b250YWxseQoJCQluZXdPZmZzZXRYID0gTWF0aC5tYXgoIDAsIGNhbnZhc1dpZHRoIC8gMiAtIG5ld1dpZHRoIC8gMiApOwoKCQl9CgoJCWlmICggbmV3SGVpZ2h0ID4gY2FudmFzSGVpZ2h0ICkgewoJCQluZXdPZmZzZXRZID0gbmV3T2Zmc2V0WSA+IDAgPyAwIDogbmV3T2Zmc2V0WTsKCQkJbmV3T2Zmc2V0WSA9IG5ld09mZnNldFkgPCBjYW52YXNIZWlnaHQgLSBuZXdIZWlnaHQgPyBjYW52YXNIZWlnaHQgLSBuZXdIZWlnaHQgOiBuZXdPZmZzZXRZOwoKCQl9IGVsc2UgewoKCQkJLy8gQ2VudGVyIHZlcnRpY2FsbHkKCQkJbmV3T2Zmc2V0WSA9IE1hdGgubWF4KCAwLCBjYW52YXNIZWlnaHQgLyAyIC0gbmV3SGVpZ2h0IC8gMiApOwoKCQl9CgoJCXJldHVybiB7CgkJCXRvcCAgOiBuZXdPZmZzZXRZLAoJCQlsZWZ0IDogbmV3T2Zmc2V0WAoJCX07CgoJfTsKCglHdWVzdHVyZXMucHJvdG90eXBlLm9uWm9vbSA9IGZ1bmN0aW9uKCkgewoJCXZhciBzZWxmID0gdGhpczsKCgkJLy8gQ2FsY3VsYXRlIGN1cnJlbnQgZGlzdGFuY2UgYmV0d2VlbiBwb2ludHMgdG8gZ2V0IHBpbmNoIHJhdGlvIGFuZCBuZXcgd2lkdGggYW5kIGhlaWdodAoKCQl2YXIgY3VycmVudFdpZHRoICA9IHNlbGYuY29udGVudFN0YXJ0UG9zLndpZHRoOwoJCXZhciBjdXJyZW50SGVpZ2h0ID0gc2VsZi5jb250ZW50U3RhcnRQb3MuaGVpZ2h0OwoKCQl2YXIgY3VycmVudE9mZnNldFggPSBzZWxmLmNvbnRlbnRTdGFydFBvcy5sZWZ0OwoJCXZhciBjdXJyZW50T2Zmc2V0WSA9IHNlbGYuY29udGVudFN0YXJ0UG9zLnRvcDsKCgkJdmFyIGVuZERpc3RhbmNlQmV0d2VlbkZpbmdlcnMgPSBkaXN0YW5jZSggc2VsZi5uZXdQb2ludHNbMF0sIHNlbGYubmV3UG9pbnRzWzFdICk7CgoJCXZhciBwaW5jaFJhdGlvID0gZW5kRGlzdGFuY2VCZXR3ZWVuRmluZ2VycyAvIHNlbGYuc3RhcnREaXN0YW5jZUJldHdlZW5GaW5nZXJzOwoKCQl2YXIgbmV3V2lkdGggID0gTWF0aC5mbG9vciggY3VycmVudFdpZHRoICAqIHBpbmNoUmF0aW8gKTsKCQl2YXIgbmV3SGVpZ2h0ID0gTWF0aC5mbG9vciggY3VycmVudEhlaWdodCAqIHBpbmNoUmF0aW8gKTsKCgkJLy8gVGhpcyBpcyB0aGUgdHJhbnNsYXRpb24gZHVlIHRvIHBpbmNoLXpvb21pbmcKCQl2YXIgdHJhbnNsYXRlRnJvbVpvb21pbmdYID0gKGN1cnJlbnRXaWR0aCAgLSBuZXdXaWR0aCkgICogc2VsZi5wZXJjZW50YWdlT2ZJbWFnZUF0UGluY2hQb2ludFg7CgkJdmFyIHRyYW5zbGF0ZUZyb21ab29taW5nWSA9IChjdXJyZW50SGVpZ2h0IC0gbmV3SGVpZ2h0KSAqIHNlbGYucGVyY2VudGFnZU9mSW1hZ2VBdFBpbmNoUG9pbnRZOwoKCQkvL1BvaW50IGJldHdlZW4gdGhlIHR3byB0b3VjaGVzCgoJCXZhciBjZW50ZXJQb2ludEVuZFggPSAoKHNlbGYubmV3UG9pbnRzWzBdLnggKyBzZWxmLm5ld1BvaW50c1sxXS54KSAvIDIpIC0gJCh3aW5kb3cpLnNjcm9sbExlZnQoKTsKCQl2YXIgY2VudGVyUG9pbnRFbmRZID0gKChzZWxmLm5ld1BvaW50c1swXS55ICsgc2VsZi5uZXdQb2ludHNbMV0ueSkgLyAyKSAtICQod2luZG93KS5zY3JvbGxUb3AoKTsKCgkJLy8gQW5kIHRoaXMgaXMgdGhlIHRyYW5zbGF0aW9uIGR1ZSB0byB0cmFuc2xhdGlvbiBvZiB0aGUgY2VudGVycG9pbnQKCQkvLyBiZXR3ZWVuIHRoZSB0d28gZmluZ2VycwoKCQl2YXIgdHJhbnNsYXRlRnJvbVRyYW5zbGF0aW5nWCA9IGNlbnRlclBvaW50RW5kWCAtIHNlbGYuY2VudGVyUG9pbnRTdGFydFg7CgkJdmFyIHRyYW5zbGF0ZUZyb21UcmFuc2xhdGluZ1kgPSBjZW50ZXJQb2ludEVuZFkgLSBzZWxmLmNlbnRlclBvaW50U3RhcnRZOwoKCQkvLyBUaGUgbmV3IG9mZnNldCBpcyB0aGUgb2xkL2N1cnJlbnQgb25lIHBsdXMgdGhlIHRvdGFsIHRyYW5zbGF0aW9uCgoJCXZhciBuZXdPZmZzZXRYID0gY3VycmVudE9mZnNldFggKyAoIHRyYW5zbGF0ZUZyb21ab29taW5nWCArIHRyYW5zbGF0ZUZyb21UcmFuc2xhdGluZ1ggKTsKCQl2YXIgbmV3T2Zmc2V0WSA9IGN1cnJlbnRPZmZzZXRZICsgKCB0cmFuc2xhdGVGcm9tWm9vbWluZ1kgKyB0cmFuc2xhdGVGcm9tVHJhbnNsYXRpbmdZICk7CgoJCXZhciBuZXdQb3MgPSB7CgkJCXRvcCAgICA6IG5ld09mZnNldFksCgkJCWxlZnQgICA6IG5ld09mZnNldFgsCgkJCXNjYWxlWCA6IHNlbGYuY29udGVudFN0YXJ0UG9zLnNjYWxlWCAqIHBpbmNoUmF0aW8sCgkJCXNjYWxlWSA6IHNlbGYuY29udGVudFN0YXJ0UG9zLnNjYWxlWSAqIHBpbmNoUmF0aW8KCQl9OwoKCQlzZWxmLmNhblRhcCA9IGZhbHNlOwoKCQlzZWxmLm5ld1dpZHRoICA9IG5ld1dpZHRoOwoJCXNlbGYubmV3SGVpZ2h0ID0gbmV3SGVpZ2h0OwoKCQlzZWxmLmNvbnRlbnRMYXN0UG9zID0gbmV3UG9zOwoKCQlpZiAoIHNlbGYucmVxdWVzdElkICkgewoJCQljYW5jZWxBRnJhbWUoIHNlbGYucmVxdWVzdElkICk7CgoJCQlzZWxmLnJlcXVlc3RJZCA9IG51bGw7CgkJfQoKCQlzZWxmLnJlcXVlc3RJZCA9IHJlcXVlc3RBRnJhbWUoZnVuY3Rpb24oKSB7CgkJCSQuZmFuY3lib3guc2V0VHJhbnNsYXRlKCBzZWxmLiRjb250ZW50LCBzZWxmLmNvbnRlbnRMYXN0UG9zICk7CgkJfSk7CgoJfTsKCglHdWVzdHVyZXMucHJvdG90eXBlLm9udG91Y2hlbmQgPSBmdW5jdGlvbiggZSApIHsKCQl2YXIgc2VsZiA9IHRoaXM7CgkJdmFyIGRNcyAgPSBNYXRoLm1heCggKG5ldyBEYXRlKCkuZ2V0VGltZSgpICkgLSBzZWxmLnN0YXJ0VGltZSwgMSk7CgoJCXZhciBzd2lwaW5nICAgPSBzZWxmLmlzU3dpcGluZzsKCQl2YXIgcGFubmluZyAgID0gc2VsZi5pc1Bhbm5pbmc7CgkJdmFyIHpvb21pbmcgICA9IHNlbGYuaXNab29taW5nOwoJCXZhciBzY3JvbGxpbmcgPSBzZWxmLmlzU2Nyb2xsaW5nOwoKCQlzZWxmLmVuZFBvaW50cyA9IHBvaW50ZXJzKCBlICk7CgoJCXNlbGYuJGNvbnRhaW5lci5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LWNvbnRyb2xzLS1pc0dyYWJiaW5nJyApOwoKCQkkKGRvY3VtZW50KS5vZmYoICcuZmIudG91Y2gnICk7CgoJCWRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNlbGYub25zY3JvbGwsIHRydWUpOwoKCQlpZiAoIHNlbGYucmVxdWVzdElkICkgewoJCQljYW5jZWxBRnJhbWUoIHNlbGYucmVxdWVzdElkICk7CgoJCQlzZWxmLnJlcXVlc3RJZCA9IG51bGw7CgkJfQoKCQlzZWxmLmlzU3dpcGluZyAgID0gZmFsc2U7CgkJc2VsZi5pc1Bhbm5pbmcgICA9IGZhbHNlOwoJCXNlbGYuaXNab29taW5nICAgPSBmYWxzZTsKCQlzZWxmLmlzU2Nyb2xsaW5nID0gZmFsc2U7CgoJCXNlbGYuaW5zdGFuY2UuaXNEcmFnZ2luZyA9IGZhbHNlOwoKCQlpZiAoIHNlbGYuY2FuVGFwICkgewoJCQlyZXR1cm4gc2VsZi5vblRhcCggZSApOwoJCX0KCgkJc2VsZi5zcGVlZCA9IDM2NjsKCgkJLy8gU3BlZWQgaW4gcHgvbXMKCQlzZWxmLnZlbG9jaXR5WCA9IHNlbGYuZGlzdGFuY2VYIC8gZE1zICogMC41OwoJCXNlbGYudmVsb2NpdHlZID0gc2VsZi5kaXN0YW5jZVkgLyBkTXMgKiAwLjU7CgoJCXNlbGYuc3BlZWRYID0gTWF0aC5tYXgoIHNlbGYuc3BlZWQgKiAwLjUsIE1hdGgubWluKCBzZWxmLnNwZWVkICogMS41LCAoIDEgLyBNYXRoLmFicyggc2VsZi52ZWxvY2l0eVggKSApICogc2VsZi5zcGVlZCApICk7CgoJCWlmICggcGFubmluZyApIHsKCQkJc2VsZi5lbmRQYW5uaW5nKCk7CgoJCX0gZWxzZSBpZiAoIHpvb21pbmcgKSB7CgkJCXNlbGYuZW5kWm9vbWluZygpOwoKCQl9IGVsc2UgewoJCQlzZWxmLmVuZFN3aXBpbmcoIHN3aXBpbmcsIHNjcm9sbGluZyApOwoJCX0KCgkJcmV0dXJuOwoJfTsKCglHdWVzdHVyZXMucHJvdG90eXBlLmVuZFN3aXBpbmcgPSBmdW5jdGlvbiggc3dpcGluZywgc2Nyb2xsaW5nICkgewoJCXZhciBzZWxmID0gdGhpcywKCQkJcmV0ICA9IGZhbHNlLAoJCQlsZW4gID0gc2VsZi5pbnN0YW5jZS5ncm91cC5sZW5ndGg7CgoJCXNlbGYuc2xpZGVyTGFzdFBvcyA9IG51bGw7CgoJCS8vIENsb3NlIGlmIHN3aXBlZCB2ZXJ0aWNhbGx5IC8gbmF2aWdhdGUgaWYgaG9yaXpvbnRhbGx5CgkJaWYgKCBzd2lwaW5nID09ICd5JyAmJiAhc2Nyb2xsaW5nICYmIE1hdGguYWJzKCBzZWxmLmRpc3RhbmNlWSApID4gNTAgKSB7CgoJCQkvLyBDb250aW51ZSB2ZXJ0aWNhbCBtb3ZlbWVudAoJCQkkLmZhbmN5Ym94LmFuaW1hdGUoIHNlbGYuaW5zdGFuY2UuY3VycmVudC4kc2xpZGUsIHsKCQkJCXRvcCAgICAgOiBzZWxmLnNsaWRlclN0YXJ0UG9zLnRvcCArIHNlbGYuZGlzdGFuY2VZICsgKCBzZWxmLnZlbG9jaXR5WSAqIDE1MCApLAoJCQkJb3BhY2l0eSA6IDAKCQkJfSwgMTUwICk7CgoJCQlyZXQgPSBzZWxmLmluc3RhbmNlLmNsb3NlKCB0cnVlLCAzMDAgKTsKCgkJfSBlbHNlIGlmICggc3dpcGluZyA9PSAneCcgJiYgc2VsZi5kaXN0YW5jZVggPiA1MCAmJiBsZW4gPiAxICkgewoJCQlyZXQgPSBzZWxmLmluc3RhbmNlLnByZXZpb3VzKCBzZWxmLnNwZWVkWCApOwoKCQl9IGVsc2UgaWYgKCBzd2lwaW5nID09ICd4JyAmJiBzZWxmLmRpc3RhbmNlWCA8IC01MCAmJiBsZW4gPiAxICkgewoJCQlyZXQgPSBzZWxmLmluc3RhbmNlLm5leHQoIHNlbGYuc3BlZWRYICk7CgkJfQoKCQlpZiAoIHJldCA9PT0gZmFsc2UgJiYgKCBzd2lwaW5nID09ICd4JyB8fCBzd2lwaW5nID09ICd5JyApICkgewoJCQlpZiAoIHNjcm9sbGluZyB8fCBsZW4gPCAyICkgewoJCQkJc2VsZi5pbnN0YW5jZS5jZW50ZXJTbGlkZSggc2VsZi5pbnN0YW5jZS5jdXJyZW50LCAxNTAgKTsKCQkJfSBlbHNlIHsKCQkJCXNlbGYuaW5zdGFuY2UuanVtcFRvKCBzZWxmLmluc3RhbmNlLmN1cnJlbnQuaW5kZXggKTsKCQkJfQoJCX0KCgkJc2VsZi4kY29udGFpbmVyLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtaXMtc2xpZGluZycgKTsKCgl9OwoKCS8vIExpbWl0IHBhbm5pbmcgZnJvbSBlZGdlcwoJLy8gPT09PT09PT09PT09PT09PT09PT09PT09CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5lbmRQYW5uaW5nID0gZnVuY3Rpb24oKSB7CgoJCXZhciBzZWxmID0gdGhpczsKCQl2YXIgbmV3T2Zmc2V0WCwgbmV3T2Zmc2V0WSwgbmV3UG9zOwoKCQlpZiAoICFzZWxmLmNvbnRlbnRMYXN0UG9zICkgewoJCQlyZXR1cm47CgkJfQoKCQlpZiAoIHNlbGYub3B0cy5tb21lbnR1bSA9PT0gZmFsc2UgKSB7CgkJCW5ld09mZnNldFggPSBzZWxmLmNvbnRlbnRMYXN0UG9zLmxlZnQ7CgkJCW5ld09mZnNldFkgPSBzZWxmLmNvbnRlbnRMYXN0UG9zLnRvcDsKCgkJfSBlbHNlIHsKCgkJCS8vIENvbnRpbnVlIG1vdmVtZW50CgkJCW5ld09mZnNldFggPSBzZWxmLmNvbnRlbnRMYXN0UG9zLmxlZnQgKyAoIHNlbGYudmVsb2NpdHlYICogc2VsZi5zcGVlZCApOwoJCQluZXdPZmZzZXRZID0gc2VsZi5jb250ZW50TGFzdFBvcy50b3AgICsgKCBzZWxmLnZlbG9jaXR5WSAqIHNlbGYuc3BlZWQgKTsKCQl9CgoJCW5ld1BvcyA9IHNlbGYubGltaXRQb3NpdGlvbiggbmV3T2Zmc2V0WCwgbmV3T2Zmc2V0WSwgc2VsZi5jb250ZW50U3RhcnRQb3Mud2lkdGgsIHNlbGYuY29udGVudFN0YXJ0UG9zLmhlaWdodCApOwoKCQkgbmV3UG9zLndpZHRoICA9IHNlbGYuY29udGVudFN0YXJ0UG9zLndpZHRoOwoJCSBuZXdQb3MuaGVpZ2h0ID0gc2VsZi5jb250ZW50U3RhcnRQb3MuaGVpZ2h0OwoKCQkkLmZhbmN5Ym94LmFuaW1hdGUoIHNlbGYuJGNvbnRlbnQsIG5ld1BvcywgMzMwICk7Cgl9OwoKCglHdWVzdHVyZXMucHJvdG90eXBlLmVuZFpvb21pbmcgPSBmdW5jdGlvbigpIHsKCQl2YXIgc2VsZiA9IHRoaXM7CgoJCXZhciBjdXJyZW50ID0gc2VsZi5pbnN0YW5jZS5jdXJyZW50OwoKCQl2YXIgbmV3T2Zmc2V0WCwgbmV3T2Zmc2V0WSwgbmV3UG9zLCByZXNldDsKCgkJdmFyIG5ld1dpZHRoICA9IHNlbGYubmV3V2lkdGg7CgkJdmFyIG5ld0hlaWdodCA9IHNlbGYubmV3SGVpZ2h0OwoKCQlpZiAoICFzZWxmLmNvbnRlbnRMYXN0UG9zICkgewoJCQlyZXR1cm47CgkJfQoKCQluZXdPZmZzZXRYID0gc2VsZi5jb250ZW50TGFzdFBvcy5sZWZ0OwoJCW5ld09mZnNldFkgPSBzZWxmLmNvbnRlbnRMYXN0UG9zLnRvcDsKCgkJcmVzZXQgPSB7CgkJCXRvcCAgICA6IG5ld09mZnNldFksCgkJCWxlZnQgICA6IG5ld09mZnNldFgsCgkJCXdpZHRoICA6IG5ld1dpZHRoLAoJCQloZWlnaHQgOiBuZXdIZWlnaHQsCgkJCXNjYWxlWCA6IDEsCgkJCXNjYWxlWSA6IDEKCQl9OwoKCQkvLyBSZXNldCBzY2FsZXgvc2NhbGVZIHZhbHVlczsgdGhpcyBoZWxwcyBmb3IgcGVyZm9tYW5jZSBhbmQgZG9lcyBub3QgYnJlYWsgYW5pbWF0aW9uCgkJJC5mYW5jeWJveC5zZXRUcmFuc2xhdGUoIHNlbGYuJGNvbnRlbnQsIHJlc2V0ICk7CgoJCWlmICggbmV3V2lkdGggPCBzZWxmLmNhbnZhc1dpZHRoICYmIG5ld0hlaWdodCA8IHNlbGYuY2FudmFzSGVpZ2h0ICkgewoJCQlzZWxmLmluc3RhbmNlLnNjYWxlVG9GaXQoIDE1MCApOwoKCQl9IGVsc2UgaWYgKCBuZXdXaWR0aCA+IGN1cnJlbnQud2lkdGggfHwgbmV3SGVpZ2h0ID4gY3VycmVudC5oZWlnaHQgKSB7CgkJCXNlbGYuaW5zdGFuY2Uuc2NhbGVUb0FjdHVhbCggc2VsZi5jZW50ZXJQb2ludFN0YXJ0WCwgc2VsZi5jZW50ZXJQb2ludFN0YXJ0WSwgMTUwICk7CgoJCX0gZWxzZSB7CgoJCQluZXdQb3MgPSBzZWxmLmxpbWl0UG9zaXRpb24oIG5ld09mZnNldFgsIG5ld09mZnNldFksIG5ld1dpZHRoLCBuZXdIZWlnaHQgKTsKCgkJCS8vIFN3aXRjaCBmcm9tIHNjYWxlKCkgdG8gd2lkdGgvaGVpZ2h0IG9yIGFuaW1hdGlvbiB3aWxsIG5vdCB3b3JrIGNvcnJlY3RseQoJCQkkLmZhbmN5Ym94LnNldFRyYW5zbGF0ZSggc2VsZi5jb250ZW50LCAkLmZhbmN5Ym94LmdldFRyYW5zbGF0ZSggc2VsZi4kY29udGVudCApICk7CgoJCQkkLmZhbmN5Ym94LmFuaW1hdGUoIHNlbGYuJGNvbnRlbnQsIG5ld1BvcywgMTUwICk7CgkJfQoKCX07CgoJR3Vlc3R1cmVzLnByb3RvdHlwZS5vblRhcCA9IGZ1bmN0aW9uKGUpIHsKCQl2YXIgc2VsZiAgICA9IHRoaXM7CgkJdmFyICR0YXJnZXQgPSAkKCBlLnRhcmdldCApOwoKCQl2YXIgaW5zdGFuY2UgPSBzZWxmLmluc3RhbmNlOwoJCXZhciBjdXJyZW50ICA9IGluc3RhbmNlLmN1cnJlbnQ7CgoJCXZhciBlbmRQb2ludHMgPSAoIGUgJiYgcG9pbnRlcnMoIGUgKSApIHx8IHNlbGYuc3RhcnRQb2ludHM7CgoJCXZhciB0YXBYID0gZW5kUG9pbnRzWzBdID8gZW5kUG9pbnRzWzBdLnggLSBzZWxmLiRzdGFnZS5vZmZzZXQoKS5sZWZ0IDogMDsKCQl2YXIgdGFwWSA9IGVuZFBvaW50c1swXSA/IGVuZFBvaW50c1swXS55IC0gc2VsZi4kc3RhZ2Uub2Zmc2V0KCkudG9wICA6IDA7CgoJCXZhciB3aGVyZTsKCgkJdmFyIHByb2Nlc3MgPSBmdW5jdGlvbiAoIHByZWZpeCApIHsKCgkJCXZhciBhY3Rpb24gPSBjdXJyZW50Lm9wdHNbIHByZWZpeCBdOwoKCQkJaWYgKCAkLmlzRnVuY3Rpb24oIGFjdGlvbiApICkgewoJCQkJYWN0aW9uID0gYWN0aW9uLmFwcGx5KCBpbnN0YW5jZSwgWyBjdXJyZW50LCBlIF0gKTsKCQkJfQoKCQkJaWYgKCAhYWN0aW9uKSB7CgkJCQlyZXR1cm47CgkJCX0KCgkJCXN3aXRjaCAoIGFjdGlvbiApIHsKCgkJCQljYXNlICJjbG9zZSIgOgoKCQkJCQlpbnN0YW5jZS5jbG9zZSggc2VsZi5zdGFydEV2ZW50ICk7CgoJCQkJYnJlYWs7CgoJCQkJY2FzZSAidG9nZ2xlQ29udHJvbHMiIDoKCgkJCQkJaW5zdGFuY2UudG9nZ2xlQ29udHJvbHMoIHRydWUgKTsKCgkJCQlicmVhazsKCgkJCQljYXNlICJuZXh0IiA6CgoJCQkJCWluc3RhbmNlLm5leHQoKTsKCgkJCQlicmVhazsKCgkJCQljYXNlICJuZXh0T3JDbG9zZSIgOgoKCQkJCQlpZiAoIGluc3RhbmNlLmdyb3VwLmxlbmd0aCA+IDEgKSB7CgkJCQkJCWluc3RhbmNlLm5leHQoKTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJaW5zdGFuY2UuY2xvc2UoIHNlbGYuc3RhcnRFdmVudCApOwoJCQkJCX0KCgkJCQlicmVhazsKCgkJCQljYXNlICJ6b29tIiA6CgoJCQkJCWlmICggY3VycmVudC50eXBlID09ICdpbWFnZScgJiYgKCBjdXJyZW50LmlzTG9hZGVkIHx8IGN1cnJlbnQuJGdob3N0ICkgKSB7CgoJCQkJCQlpZiAoIGluc3RhbmNlLmNhblBhbigpICkgewoJCQkJCQkJaW5zdGFuY2Uuc2NhbGVUb0ZpdCgpOwoKCQkJCQkJfSBlbHNlIGlmICggaW5zdGFuY2UuaXNTY2FsZWREb3duKCkgKSB7CgkJCQkJCQlpbnN0YW5jZS5zY2FsZVRvQWN0dWFsKCB0YXBYLCB0YXBZICk7CgoJCQkJCQl9IGVsc2UgaWYgKCBpbnN0YW5jZS5ncm91cC5sZW5ndGggPCAyICkgewoJCQkJCQkJaW5zdGFuY2UuY2xvc2UoIHNlbGYuc3RhcnRFdmVudCApOwoJCQkJCQl9CgkJCQkJfQoKCQkJCWJyZWFrOwoJCQl9CgoJCX07CgoJCS8vIElnbm9yZSByaWdodCBjbGljawoJCWlmICggZS5vcmlnaW5hbEV2ZW50ICYmIGUub3JpZ2luYWxFdmVudC5idXR0b24gPT0gMiApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gU2tpcCBpZiBjbGlja2VkIG9uIHRoZSBzY3JvbGxiYXIKCQlpZiAoICEkdGFyZ2V0LmlzKCdpbWcnKSAmJiB0YXBYID4gJHRhcmdldFswXS5jbGllbnRXaWR0aCArICR0YXJnZXQub2Zmc2V0KCkubGVmdCApIHsKCQkJcmV0dXJuOwoJCX0KCgkJLy8gQ2hlY2sgd2hlcmUgaXMgY2xpY2tlZAoJCWlmICggJHRhcmdldC5pcyggJy5mYW5jeWJveC1iZywuZmFuY3lib3gtaW5uZXIsLmZhbmN5Ym94LW91dGVyLC5mYW5jeWJveC1jb250YWluZXInICkgKSB7CgkJCXdoZXJlID0gJ091dHNpZGUnOwoKCQl9IGVsc2UgaWYgKCAkdGFyZ2V0LmlzKCAnLmZhbmN5Ym94LXNsaWRlJyApICkgewoJCQl3aGVyZSA9ICdTbGlkZSc7CgoJCX0gZWxzZSBpZiAoIGluc3RhbmNlLmN1cnJlbnQuJGNvbnRlbnQgJiYgaW5zdGFuY2UuY3VycmVudC4kY29udGVudC5maW5kKCAkdGFyZ2V0ICkuYWRkQmFjaygpLmZpbHRlciggJHRhcmdldCApLmxlbmd0aCApIHsKCQkgCXdoZXJlID0gJ0NvbnRlbnQnOwoKCQl9IGVsc2UgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBDaGVjayBpZiB0aGlzIGlzIGEgZG91YmxlIHRhcAoJCWlmICggc2VsZi50YXBwZWQgKSB7CgoJCQkvLyBTdG9wIHByZXZpb3VzbHkgY3JlYXRlZCBzaW5nbGUgdGFwCgkJCWNsZWFyVGltZW91dCggc2VsZi50YXBwZWQgKTsKCQkJc2VsZi50YXBwZWQgPSBudWxsOwoKCQkJLy8gU2tpcCBpZiBkaXN0YW5jZSBiZXR3ZWVuIHRhcHMgaXMgdG9vIGJpZwoJCQlpZiAoIE1hdGguYWJzKCB0YXBYIC0gc2VsZi50YXBYICkgPiA1MCB8fCBNYXRoLmFicyggdGFwWSAtIHNlbGYudGFwWSApID4gNTAgKSB7CgkJCQlyZXR1cm4gdGhpczsKCQkJfQoKCQkJLy8gT0ssIG5vdyB3ZSBhc3N1bWUgdGhhdCB0aGlzIGlzIGEgZG91YmxlLXRhcAoJCQlwcm9jZXNzKCAnZGJsY2xpY2snICsgd2hlcmUgKTsKCgkJfSBlbHNlIHsKCgkJCS8vIFNpbmdsZSB0YXAgd2lsbCBiZSBwcm9jZXNzZWQgaWYgdXNlciBoYXMgbm90IGNsaWNrZWQgc2Vjb25kIHRpbWUgd2l0aGluIDMwMG1zCgkJCS8vIG9yIHRoZXJlIGlzIG5vIG5lZWQgdG8gd2FpdCBmb3IgZG91YmxlLXRhcAoJCQlzZWxmLnRhcFggPSB0YXBYOwoJCQlzZWxmLnRhcFkgPSB0YXBZOwoKCQkJaWYgKCBjdXJyZW50Lm9wdHNbICdkYmxjbGljaycgKyB3aGVyZSBdICYmIGN1cnJlbnQub3B0c1sgJ2RibGNsaWNrJyArIHdoZXJlIF0gIT09IGN1cnJlbnQub3B0c1sgJ2NsaWNrJyArIHdoZXJlIF0gKSB7CgoJCQkJc2VsZi50YXBwZWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJCXNlbGYudGFwcGVkID0gbnVsbDsKCgkJCQkJcHJvY2VzcyggJ2NsaWNrJyArIHdoZXJlICk7CgoJCQkJfSwgNTAwKTsKCgkJCX0gZWxzZSB7CgkJCQlwcm9jZXNzKCAnY2xpY2snICsgd2hlcmUgKTsKCQkJfQoKCQl9CgoJCXJldHVybiB0aGlzOwoJfTsKCgkkKGRvY3VtZW50KS5vbignb25BY3RpdmF0ZS5mYicsIGZ1bmN0aW9uIChlLCBpbnN0YW5jZSkgewoJCWlmICggaW5zdGFuY2UgJiYgIWluc3RhbmNlLkd1ZXN0dXJlcyApIHsKCQkJaW5zdGFuY2UuR3Vlc3R1cmVzID0gbmV3IEd1ZXN0dXJlcyggaW5zdGFuY2UgKTsKCQl9Cgl9KTsKCn0oIHdpbmRvdywgZG9jdW1lbnQsIHdpbmRvdy5qUXVlcnkgfHwgalF1ZXJ5ICkpOwoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8KLy8gU2xpZGVTaG93Ci8vIEVuYWJsZXMgc2xpZGVzaG93IGZ1bmN0aW9uYWxpdHkKLy8KLy8gRXhhbXBsZSBvZiB1c2FnZToKLy8gJC5mYW5jeWJveC5nZXRJbnN0YW5jZSgpLlNsaWRlU2hvdy5zdGFydCgpCi8vCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjsoZnVuY3Rpb24gKGRvY3VtZW50LCAkKSB7CgkndXNlIHN0cmljdCc7CgoJJC5leHRlbmQodHJ1ZSwgJC5mYW5jeWJveC5kZWZhdWx0cywgewoJCWJ0blRwbCA6IHsKCQkJc2xpZGVTaG93IDoKCQkJCSc8YnV0dG9uIGRhdGEtZmFuY3lib3gtcGxheSBjbGFzcz0iZmFuY3lib3gtYnV0dG9uIGZhbmN5Ym94LWJ1dHRvbi0tcGxheSIgdGl0bGU9Int7UExBWV9TVEFSVH19Ij4nICsKCQkJCQknPHN2ZyB2aWV3Qm94PSIwIDAgNDAgNDAiPicgKwoJCQkJCQknPHBhdGggZD0iTTEzLDEyIEwyNywyMCBMMTMsMjcgWiIgLz4nICsKCQkJCQkJJzxwYXRoIGQ9Ik0xNSwxMCB2MTkgTTIzLDEwIHYxOSIgLz4nICsKCQkJCQknPC9zdmc+JyArCgkJCQknPC9idXR0b24+JwoJCX0sCgkJc2xpZGVTaG93IDogewoJCQlhdXRvU3RhcnQgOiBmYWxzZSwKICAgICAgICAgICAgc3BlZWQgICAgIDogMzAwMAoJCX0KCX0pOwoKCXZhciBTbGlkZVNob3cgPSBmdW5jdGlvbiggaW5zdGFuY2UgKSB7CgkJdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlOwoJCXRoaXMuaW5pdCgpOwoJfTsKCgkkLmV4dGVuZCggU2xpZGVTaG93LnByb3RvdHlwZSwgewoJCXRpbWVyICAgIDogbnVsbCwKCQlpc0FjdGl2ZSA6IGZhbHNlLAoJCSRidXR0b24gIDogbnVsbCwKCgkJaW5pdCA6IGZ1bmN0aW9uKCkgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgoJCQlzZWxmLiRidXR0b24gPSBzZWxmLmluc3RhbmNlLiRyZWZzLnRvb2xiYXIuZmluZCgnW2RhdGEtZmFuY3lib3gtcGxheV0nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHsKCQkJCXNlbGYudG9nZ2xlKCk7CgkJCX0pOwoKCQkJaWYgKCBzZWxmLmluc3RhbmNlLmdyb3VwLmxlbmd0aCA8IDIgfHwgIXNlbGYuaW5zdGFuY2UuZ3JvdXBbIHNlbGYuaW5zdGFuY2UuY3VyckluZGV4IF0ub3B0cy5zbGlkZVNob3cgKSB7CgkJCQlzZWxmLiRidXR0b24uaGlkZSgpOwoJCQl9CgkJfSwKCgkJc2V0IDogZnVuY3Rpb24oIGZvcmNlICkgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgoJCQkvLyBDaGVjayBpZiByZWFjaGVkIGxhc3QgZWxlbWVudAoJCQlpZiAoIHNlbGYuaW5zdGFuY2UgJiYgc2VsZi5pbnN0YW5jZS5jdXJyZW50ICYmIChmb3JjZSA9PT0gdHJ1ZSB8fCBzZWxmLmluc3RhbmNlLmN1cnJlbnQub3B0cy5sb29wIHx8IHNlbGYuaW5zdGFuY2UuY3VyckluZGV4IDwgc2VsZi5pbnN0YW5jZS5ncm91cC5sZW5ndGggLSAxICkpIHsKCQkJCXNlbGYudGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoJCQkJCWlmICggc2VsZi5pc0FjdGl2ZSApIHsKCQkJCQkJc2VsZi5pbnN0YW5jZS5qdW1wVG8oIChzZWxmLmluc3RhbmNlLmN1cnJJbmRleCArIDEpICUgc2VsZi5pbnN0YW5jZS5ncm91cC5sZW5ndGggKTsKCQkJCQl9CgoJCQkJfSwgc2VsZi5pbnN0YW5jZS5jdXJyZW50Lm9wdHMuc2xpZGVTaG93LnNwZWVkKTsKCgkJCX0gZWxzZSB7CgkJCQlzZWxmLnN0b3AoKTsKCQkJCXNlbGYuaW5zdGFuY2UuaWRsZVNlY29uZHNDb3VudGVyID0gMDsKCQkJCXNlbGYuaW5zdGFuY2Uuc2hvd0NvbnRyb2xzKCk7CgkJCX0KCQl9LAoKCQljbGVhciA6IGZ1bmN0aW9uKCkgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgoJCQljbGVhclRpbWVvdXQoIHNlbGYudGltZXIgKTsKCgkJCXNlbGYudGltZXIgPSBudWxsOwoJCX0sCgoJCXN0YXJ0IDogZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0gdGhpczsKCQkJdmFyIGN1cnJlbnQgPSBzZWxmLmluc3RhbmNlLmN1cnJlbnQ7CgoJCQlpZiAoIGN1cnJlbnQgKSB7CgkJCQlzZWxmLmlzQWN0aXZlID0gdHJ1ZTsKCgkJCQlzZWxmLiRidXR0b24KCQkJCQkuYXR0ciggJ3RpdGxlJywgY3VycmVudC5vcHRzLmkxOG5bIGN1cnJlbnQub3B0cy5sYW5nIF0uUExBWV9TVE9QICkKCQkJCQkucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1idXR0b24tLXBsYXknICkKCQkJCQkuYWRkQ2xhc3MoICdmYW5jeWJveC1idXR0b24tLXBhdXNlJyApOwoKCQkJCQlzZWxmLnNldCggdHJ1ZSApOwoJCQl9CgkJfSwKCgkJc3RvcCA6IGZ1bmN0aW9uKCkgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgkJCXZhciBjdXJyZW50ID0gc2VsZi5pbnN0YW5jZS5jdXJyZW50OwoKCQkJc2VsZi5jbGVhcigpOwoKCQkJc2VsZi4kYnV0dG9uCgkJCQkuYXR0ciggJ3RpdGxlJywgY3VycmVudC5vcHRzLmkxOG5bIGN1cnJlbnQub3B0cy5sYW5nIF0uUExBWV9TVEFSVCApCgkJCQkucmVtb3ZlQ2xhc3MoICdmYW5jeWJveC1idXR0b24tLXBhdXNlJyApCgkJCQkuYWRkQ2xhc3MoICdmYW5jeWJveC1idXR0b24tLXBsYXknICk7CgoJCQlzZWxmLmlzQWN0aXZlID0gZmFsc2U7CgkJfSwKCgkJdG9nZ2xlIDogZnVuY3Rpb24oKSB7CgkJCXZhciBzZWxmID0gdGhpczsKCgkJCWlmICggc2VsZi5pc0FjdGl2ZSApIHsKCQkJCXNlbGYuc3RvcCgpOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuc3RhcnQoKTsKCQkJfQoJCX0KCgl9KTsKCgkkKGRvY3VtZW50KS5vbih7CgkJJ29uSW5pdC5mYicgOiBmdW5jdGlvbihlLCBpbnN0YW5jZSkgewoJCQlpZiAoIGluc3RhbmNlICYmICFpbnN0YW5jZS5TbGlkZVNob3cgKSB7CgkJCQlpbnN0YW5jZS5TbGlkZVNob3cgPSBuZXcgU2xpZGVTaG93KCBpbnN0YW5jZSApOwoJCQl9CgkJfSwKCgkJJ2JlZm9yZVNob3cuZmInIDogZnVuY3Rpb24oZSwgaW5zdGFuY2UsIGN1cnJlbnQsIGZpcnN0UnVuKSB7CgkJCXZhciBTbGlkZVNob3cgPSBpbnN0YW5jZSAmJiBpbnN0YW5jZS5TbGlkZVNob3c7CgoJCQlpZiAoIGZpcnN0UnVuICkgewoKCQkJCWlmICggU2xpZGVTaG93ICYmIGN1cnJlbnQub3B0cy5zbGlkZVNob3cuYXV0b1N0YXJ0ICkgewoJCQkJCVNsaWRlU2hvdy5zdGFydCgpOwoJCQkJfQoKCQkJfSBlbHNlIGlmICggU2xpZGVTaG93ICYmIFNsaWRlU2hvdy5pc0FjdGl2ZSApICB7CgkJCQlTbGlkZVNob3cuY2xlYXIoKTsKCQkJfQoJCX0sCgoJCSdhZnRlclNob3cuZmInIDogZnVuY3Rpb24oZSwgaW5zdGFuY2UsIGN1cnJlbnQpIHsKCQkJdmFyIFNsaWRlU2hvdyA9IGluc3RhbmNlICYmIGluc3RhbmNlLlNsaWRlU2hvdzsKCgkJCWlmICggU2xpZGVTaG93ICYmIFNsaWRlU2hvdy5pc0FjdGl2ZSApIHsKCQkJCVNsaWRlU2hvdy5zZXQoKTsKCQkJfQoJCX0sCgoJCSdhZnRlcktleWRvd24uZmInIDogZnVuY3Rpb24oZSwgaW5zdGFuY2UsIGN1cnJlbnQsIGtleXByZXNzLCBrZXljb2RlKSB7CgkJCXZhciBTbGlkZVNob3cgPSBpbnN0YW5jZSAmJiBpbnN0YW5jZS5TbGlkZVNob3c7CgoJCQkvLyAiUCIgb3IgU3BhY2ViYXIKCQkJaWYgKCBTbGlkZVNob3cgJiYgY3VycmVudC5vcHRzLnNsaWRlU2hvdyAmJiAoIGtleWNvZGUgPT09IDgwIHx8IGtleWNvZGUgPT09IDMyICkgJiYgISQoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuaXMoICdidXR0b24sYSxpbnB1dCcgKSApIHsKCQkJCWtleXByZXNzLnByZXZlbnREZWZhdWx0KCk7CgoJCQkJU2xpZGVTaG93LnRvZ2dsZSgpOwoJCQl9CgkJfSwKCgkJJ2JlZm9yZUNsb3NlLmZiIG9uRGVhY3RpdmF0ZS5mYicgOiBmdW5jdGlvbihlLCBpbnN0YW5jZSkgewoJCQl2YXIgU2xpZGVTaG93ID0gaW5zdGFuY2UgJiYgaW5zdGFuY2UuU2xpZGVTaG93OwoKCQkJaWYgKCBTbGlkZVNob3cgKSB7CgkJCQlTbGlkZVNob3cuc3RvcCgpOwoJCQl9CgkJfQoJfSk7CgoJLy8gUGFnZSBWaXNpYmlsaXR5IEFQSSB0byBwYXVzZSBzbGlkZXNob3cgd2hlbiB3aW5kb3cgaXMgbm90IGFjdGl2ZQoJJChkb2N1bWVudCkub24oInZpc2liaWxpdHljaGFuZ2UiLCBmdW5jdGlvbigpIHsKCQl2YXIgaW5zdGFuY2UgID0gJC5mYW5jeWJveC5nZXRJbnN0YW5jZSgpOwoJCXZhciBTbGlkZVNob3cgPSBpbnN0YW5jZSAmJiBpbnN0YW5jZS5TbGlkZVNob3c7CgoJCWlmICggU2xpZGVTaG93ICYmIFNsaWRlU2hvdy5pc0FjdGl2ZSApIHsKCQkJaWYgKCBkb2N1bWVudC5oaWRkZW4gKSB7CgkJCQlTbGlkZVNob3cuY2xlYXIoKTsKCgkJCX0gZWxzZSB7CgkJCQlTbGlkZVNob3cuc2V0KCk7CgkJCX0KCQl9Cgl9KTsKCn0oIGRvY3VtZW50LCB3aW5kb3cualF1ZXJ5IHx8IGpRdWVyeSApKTsKCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vCi8vIEZ1bGxTY3JlZW4KLy8gQWRkcyBmdWxsc2NyZWVuIGZ1bmN0aW9uYWxpdHkKLy8KLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KOyhmdW5jdGlvbiAoZG9jdW1lbnQsICQpIHsKCSd1c2Ugc3RyaWN0JzsKCgkvLyBDb2xsZWN0aW9uIG9mIG1ldGhvZHMgc3VwcG9ydGVkIGJ5IHVzZXIgYnJvd3NlcgoJdmFyIGZuID0gKGZ1bmN0aW9uICgpIHsKCgkJdmFyIGZuTWFwID0gWwoJCQlbCgkJCQkncmVxdWVzdEZ1bGxzY3JlZW4nLAoJCQkJJ2V4aXRGdWxsc2NyZWVuJywKCQkJCSdmdWxsc2NyZWVuRWxlbWVudCcsCgkJCQknZnVsbHNjcmVlbkVuYWJsZWQnLAoJCQkJJ2Z1bGxzY3JlZW5jaGFuZ2UnLAoJCQkJJ2Z1bGxzY3JlZW5lcnJvcicKCQkJXSwKCQkJLy8gbmV3IFdlYktpdAoJCQlbCgkJCQknd2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4nLAoJCQkJJ3dlYmtpdEV4aXRGdWxsc2NyZWVuJywKCQkJCSd3ZWJraXRGdWxsc2NyZWVuRWxlbWVudCcsCgkJCQknd2Via2l0RnVsbHNjcmVlbkVuYWJsZWQnLAoJCQkJJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLAoJCQkJJ3dlYmtpdGZ1bGxzY3JlZW5lcnJvcicKCgkJCV0sCgkJCS8vIG9sZCBXZWJLaXQgKFNhZmFyaSA1LjEpCgkJCVsKCQkJCSd3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbicsCgkJCQknd2Via2l0Q2FuY2VsRnVsbFNjcmVlbicsCgkJCQknd2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50JywKCQkJCSd3ZWJraXRDYW5jZWxGdWxsU2NyZWVuJywKCQkJCSd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywKCQkJCSd3ZWJraXRmdWxsc2NyZWVuZXJyb3InCgoJCQldLAoJCQlbCgkJCQknbW96UmVxdWVzdEZ1bGxTY3JlZW4nLAoJCQkJJ21vekNhbmNlbEZ1bGxTY3JlZW4nLAoJCQkJJ21vekZ1bGxTY3JlZW5FbGVtZW50JywKCQkJCSdtb3pGdWxsU2NyZWVuRW5hYmxlZCcsCgkJCQknbW96ZnVsbHNjcmVlbmNoYW5nZScsCgkJCQknbW96ZnVsbHNjcmVlbmVycm9yJwoJCQldLAoJCQlbCgkJCQknbXNSZXF1ZXN0RnVsbHNjcmVlbicsCgkJCQknbXNFeGl0RnVsbHNjcmVlbicsCgkJCQknbXNGdWxsc2NyZWVuRWxlbWVudCcsCgkJCQknbXNGdWxsc2NyZWVuRW5hYmxlZCcsCgkJCQknTVNGdWxsc2NyZWVuQ2hhbmdlJywKCQkJCSdNU0Z1bGxzY3JlZW5FcnJvcicKCQkJXQoJCV07CgoJCXZhciB2YWw7CgkJdmFyIHJldCA9IHt9OwoJCXZhciBpLCBqOwoKCQlmb3IgKCBpID0gMDsgaSA8IGZuTWFwLmxlbmd0aDsgaSsrICkgewoJCQl2YWwgPSBmbk1hcFsgaSBdOwoKCQkJaWYgKCB2YWwgJiYgdmFsWyAxIF0gaW4gZG9jdW1lbnQgKSB7CgkJCQlmb3IgKCBqID0gMDsgaiA8IHZhbC5sZW5ndGg7IGorKyApIHsKCQkJCQlyZXRbIGZuTWFwWyAwIF1bIGogXSBdID0gdmFsWyBqIF07CgkJCQl9CgoJCQkJcmV0dXJuIHJldDsKCQkJfQoJCX0KCgkJcmV0dXJuIGZhbHNlOwoJfSkoKTsKCgkvLyBJZiBicm93c2VyIGRvZXMgbm90IGhhdmUgRnVsbCBTY3JlZW4gQVBJLCB0aGVuIHNpbXBseSB1bnNldCBkZWZhdWx0IGJ1dHRvbiB0ZW1wbGF0ZSBhbmQgc3RvcAoJaWYgKCAhZm4gKSB7CgoJCWlmICggJCAmJiAkLmZhbmN5Ym94ICkgewoJCQkkLmZhbmN5Ym94LmRlZmF1bHRzLmJ0blRwbC5mdWxsU2NyZWVuID0gZmFsc2U7CgkJfQoKCQlyZXR1cm47Cgl9CgoJdmFyIEZ1bGxTY3JlZW4gPSB7CgoJCXJlcXVlc3QgOiBmdW5jdGlvbiAoIGVsZW0gKSB7CgoJCQllbGVtID0gZWxlbSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CgoJCQllbGVtWyBmbi5yZXF1ZXN0RnVsbHNjcmVlbiBdKCBlbGVtLkFMTE9XX0tFWUJPQVJEX0lOUFVUICk7CgoJCX0sCgkJZXhpdCA6IGZ1bmN0aW9uICgpIHsKCgkJCWRvY3VtZW50WyBmbi5leGl0RnVsbHNjcmVlbiBdKCk7CgoJCX0sCgkJdG9nZ2xlIDogZnVuY3Rpb24gKCBlbGVtICkgewoKCQkJZWxlbSA9IGVsZW0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoKCQkJaWYgKCB0aGlzLmlzRnVsbHNjcmVlbigpICkgewoJCQkJdGhpcy5leGl0KCk7CgoJCQl9IGVsc2UgewoJCQkJdGhpcy5yZXF1ZXN0KCBlbGVtICk7CgkJCX0KCgkJfSwKCQlpc0Z1bGxzY3JlZW4gOiBmdW5jdGlvbigpICB7CgoJCQlyZXR1cm4gQm9vbGVhbiggZG9jdW1lbnRbIGZuLmZ1bGxzY3JlZW5FbGVtZW50IF0gKTsKCgkJfSwKCQllbmFibGVkIDogZnVuY3Rpb24oKSAgewoKCQkJcmV0dXJuIEJvb2xlYW4oIGRvY3VtZW50WyBmbi5mdWxsc2NyZWVuRW5hYmxlZCBdICk7CgoJCX0KCX07CgoJJC5leHRlbmQodHJ1ZSwgJC5mYW5jeWJveC5kZWZhdWx0cywgewoJCWJ0blRwbCA6IHsKCQkJZnVsbFNjcmVlbiA6CgkJCQknPGJ1dHRvbiBkYXRhLWZhbmN5Ym94LWZ1bGxzY3JlZW4gY2xhc3M9ImZhbmN5Ym94LWJ1dHRvbiBmYW5jeWJveC1idXR0b24tLWZ1bGxzY3JlZW4iIHRpdGxlPSJ7e0ZVTExfU0NSRUVOfX0iPicgKwoJCQkJCSc8c3ZnIHZpZXdCb3g9IjAgMCA0MCA0MCI+JyArCgkJCQkJCSc8cGF0aCBkPSJNOSwxMiBoMjIgdjE2IGgtMjIgdi0xNiB2MTYgaDIyIHYtMTYgWiIgLz4nICsKCQkJCQknPC9zdmc+JyArCgkJCQknPC9idXR0b24+JwoJCX0sCgkJZnVsbFNjcmVlbiA6IHsKCQkJYXV0b1N0YXJ0IDogZmFsc2UKCQl9Cgl9KTsKCgkkKGRvY3VtZW50KS5vbih7CgkJJ29uSW5pdC5mYicgOiBmdW5jdGlvbihlLCBpbnN0YW5jZSkgewoJCQl2YXIgJGNvbnRhaW5lcjsKCgkJCWlmICggaW5zdGFuY2UgJiYgaW5zdGFuY2UuZ3JvdXBbIGluc3RhbmNlLmN1cnJJbmRleCBdLm9wdHMuZnVsbFNjcmVlbiApIHsKCQkJCSRjb250YWluZXIgPSBpbnN0YW5jZS4kcmVmcy5jb250YWluZXI7CgoJCQkJJGNvbnRhaW5lci5vbignY2xpY2suZmItZnVsbHNjcmVlbicsICdbZGF0YS1mYW5jeWJveC1mdWxsc2NyZWVuXScsIGZ1bmN0aW9uKGUpIHsKCgkJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCQkJCQllLnByZXZlbnREZWZhdWx0KCk7CgoJCQkJCUZ1bGxTY3JlZW4udG9nZ2xlKCAkY29udGFpbmVyWyAwIF0gKTsKCgkJCQl9KTsKCgkJCQlpZiAoIGluc3RhbmNlLm9wdHMuZnVsbFNjcmVlbiAmJiBpbnN0YW5jZS5vcHRzLmZ1bGxTY3JlZW4uYXV0b1N0YXJ0ID09PSB0cnVlICkgewoJCQkJCUZ1bGxTY3JlZW4ucmVxdWVzdCggJGNvbnRhaW5lclsgMCBdICk7CgkJCQl9CgoJCQkJLy8gRXhwb3NlIEFQSQoJCQkJaW5zdGFuY2UuRnVsbFNjcmVlbiA9IEZ1bGxTY3JlZW47CgoJCQl9IGVsc2UgaWYgKCBpbnN0YW5jZSApIHsKCQkJCWluc3RhbmNlLiRyZWZzLnRvb2xiYXIuZmluZCgnW2RhdGEtZmFuY3lib3gtZnVsbHNjcmVlbl0nKS5oaWRlKCk7CgkJCX0KCgkJfSwKCgkJJ2FmdGVyS2V5ZG93bi5mYicgOiBmdW5jdGlvbihlLCBpbnN0YW5jZSwgY3VycmVudCwga2V5cHJlc3MsIGtleWNvZGUpIHsKCgkJCS8vICJQIiBvciBTcGFjZWJhcgoJCQlpZiAoIGluc3RhbmNlICYmIGluc3RhbmNlLkZ1bGxTY3JlZW4gJiYga2V5Y29kZSA9PT0gNzAgKSB7CgkJCQlrZXlwcmVzcy5wcmV2ZW50RGVmYXVsdCgpOwoKCQkJCWluc3RhbmNlLkZ1bGxTY3JlZW4udG9nZ2xlKCBpbnN0YW5jZS4kcmVmcy5jb250YWluZXJbIDAgXSApOwoJCQl9CgoJCX0sCgoJCSdiZWZvcmVDbG9zZS5mYicgOiBmdW5jdGlvbiggaW5zdGFuY2UgKSB7CgkJCWlmICggaW5zdGFuY2UgJiYgaW5zdGFuY2UuRnVsbFNjcmVlbiApIHsKCQkJCUZ1bGxTY3JlZW4uZXhpdCgpOwoJCQl9CgkJfQoJfSk7CgoJJChkb2N1bWVudCkub24oZm4uZnVsbHNjcmVlbmNoYW5nZSwgZnVuY3Rpb24oKSB7CgkJdmFyIGlzRnVsbHNjcmVlbiA9IEZ1bGxTY3JlZW4uaXNGdWxsc2NyZWVuKCksCgkJCWluc3RhbmNlID0gJC5mYW5jeWJveC5nZXRJbnN0YW5jZSgpOwoKCQlpZiAoIGluc3RhbmNlICkgewoKCQkJLy8gSWYgaW1hZ2UgaXMgem9vbWluZywgdGhlbiBmb3JjZSB0byBzdG9wIGFuZCByZXBvc2l0aW9uIHByb3Blcmx5CgkJCWlmICggaW5zdGFuY2UuY3VycmVudCAmJiBpbnN0YW5jZS5jdXJyZW50LnR5cGUgPT09ICdpbWFnZScgJiYgaW5zdGFuY2UuaXNBbmltYXRpbmcgKSB7CgkJCQlpbnN0YW5jZS5jdXJyZW50LiRjb250ZW50LmNzcyggJ3RyYW5zaXRpb24nLCAnbm9uZScgKTsKCgkJCQlpbnN0YW5jZS5pc0FuaW1hdGluZyA9IGZhbHNlOwoKCQkJCWluc3RhbmNlLnVwZGF0ZSggdHJ1ZSwgdHJ1ZSwgMCApOwoJCQl9CgoJCQlpbnN0YW5jZS50cmlnZ2VyKCAnb25GdWxsc2NyZWVuQ2hhbmdlJywgaXNGdWxsc2NyZWVuICk7CgoJCQlpbnN0YW5jZS4kcmVmcy5jb250YWluZXIudG9nZ2xlQ2xhc3MoICdmYW5jeWJveC1pcy1mdWxsc2NyZWVuJywgaXNGdWxsc2NyZWVuICk7CgkJfQoKCX0pOwoKfSggZG9jdW1lbnQsIHdpbmRvdy5qUXVlcnkgfHwgalF1ZXJ5ICkpOwoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8KLy8gVGh1bWJzCi8vIERpc3BsYXlzIHRodW1ibmFpbHMgaW4gYSBncmlkCi8vCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjsoZnVuY3Rpb24gKGRvY3VtZW50LCAkKSB7CgkndXNlIHN0cmljdCc7CgoJLy8gTWFrZSBzdXJlIHRoZXJlIGFyZSBkZWZhdWx0IHZhbHVlcwoJJC5mYW5jeWJveC5kZWZhdWx0cyA9ICQuZXh0ZW5kKHRydWUsIHsKCQlidG5UcGwgOiB7CgkJCXRodW1icyA6CgkJCSc8YnV0dG9uIGRhdGEtZmFuY3lib3gtdGh1bWJzIGNsYXNzPSJmYW5jeWJveC1idXR0b24gZmFuY3lib3gtYnV0dG9uLS10aHVtYnMiIHRpdGxlPSJ7e1RIVU1CU319Ij4nICsKCQkJCSc8c3ZnIHZpZXdCb3g9IjAgMCAxMjAgMTIwIj4nICsKCQkJCQknPHBhdGggZD0iTTMwLDMwIGgxNCB2MTQgaC0xNCBaIE01MCwzMCBoMTQgdjE0IGgtMTQgWiBNNzAsMzAgaDE0IHYxNCBoLTE0IFogTTMwLDUwIGgxNCB2MTQgaC0xNCBaIE01MCw1MCBoMTQgdjE0IGgtMTQgWiBNNzAsNTAgaDE0IHYxNCBoLTE0IFogTTMwLDcwIGgxNCB2MTQgaC0xNCBaIE01MCw3MCBoMTQgdjE0IGgtMTQgWiBNNzAsNzAgaDE0IHYxNCBoLTE0IFoiIC8+JyArCgkJCQknPC9zdmc+JyArCgkJCSc8L2J1dHRvbj4nCgkJfSwKCQl0aHVtYnMgOiB7CgkJCWF1dG9TdGFydCAgIDogZmFsc2UsICAgICAgICAgICAgICAgICAgLy8gRGlzcGxheSB0aHVtYm5haWxzIG9uIG9wZW5pbmcKCQkJaGlkZU9uQ2xvc2UgOiB0cnVlLCAgICAgICAgICAgICAgICAgICAvLyBIaWRlIHRodW1ibmFpbCBncmlkIHdoZW4gY2xvc2luZyBhbmltYXRpb24gc3RhcnRzCgkJCXBhcmVudEVsICAgIDogJy5mYW5jeWJveC1jb250YWluZXInLCAgLy8gQ29udGFpbmVyIGlzIGluamVjdGVkIGludG8gdGhpcyBlbGVtZW50CgkJCWF4aXMgICAgICAgIDogJ3knICAgICAgICAgICAgICAgICAgICAgLy8gVmVydGljYWwgKHkpIG9yIGhvcml6b250YWwgKHgpIHNjcm9sbGluZwoJCX0KCX0sICQuZmFuY3lib3guZGVmYXVsdHMpOwoKCXZhciBGYW5jeVRodW1icyA9IGZ1bmN0aW9uKCBpbnN0YW5jZSApIHsKCQl0aGlzLmluaXQoIGluc3RhbmNlICk7Cgl9OwoKCSQuZXh0ZW5kKCBGYW5jeVRodW1icy5wcm90b3R5cGUsIHsKCgkJJGJ1dHRvbgkJOiBudWxsLAoJCSRncmlkCQk6IG51bGwsCgkJJGxpc3QJCTogbnVsbCwKCQlpc1Zpc2libGUJOiBmYWxzZSwKCQlpc0FjdGl2ZQk6IGZhbHNlLAoKCQlpbml0IDogZnVuY3Rpb24oIGluc3RhbmNlICkgewoJCQl2YXIgc2VsZiA9IHRoaXM7CgoJCQlzZWxmLmluc3RhbmNlID0gaW5zdGFuY2U7CgoJCQlpbnN0YW5jZS5UaHVtYnMgPSBzZWxmOwoKCQkJLy8gRW5hYmxlIHRodW1icyBpZiBhdCBsZWFzdCB0d28gZ3JvdXAgaXRlbXMgaGF2ZSB0aHVtYm5haWxzCgkJCXZhciBmaXJzdCAgPSBpbnN0YW5jZS5ncm91cFswXSwKCQkJCXNlY29uZCA9IGluc3RhbmNlLmdyb3VwWzFdOwoKCQkJc2VsZi5vcHRzID0gaW5zdGFuY2UuZ3JvdXBbIGluc3RhbmNlLmN1cnJJbmRleCBdLm9wdHMudGh1bWJzOwoKCQkJc2VsZi4kYnV0dG9uID0gaW5zdGFuY2UuJHJlZnMudG9vbGJhci5maW5kKCAnW2RhdGEtZmFuY3lib3gtdGh1bWJzXScgKTsKCgkJCWlmICggc2VsZi5vcHRzICYmIGZpcnN0ICYmIHNlY29uZCAmJiAoCgkJICAgIAkJKCBmaXJzdC50eXBlID09ICdpbWFnZScgIHx8IGZpcnN0Lm9wdHMudGh1bWIgIHx8IGZpcnN0Lm9wdHMuJHRodW1iICkgJiYKCQkgICAgCQkoIHNlY29uZC50eXBlID09ICdpbWFnZScgfHwgc2Vjb25kLm9wdHMudGh1bWIgfHwgc2Vjb25kLm9wdHMuJHRodW1iICkKCQkJKSkgewoKCQkJCXNlbGYuJGJ1dHRvbi5zaG93KCkub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7CgkJCQkJc2VsZi50b2dnbGUoKTsKCQkJCX0pOwoKCQkJCXNlbGYuaXNBY3RpdmUgPSB0cnVlOwoKCQkJfSBlbHNlIHsKCQkJCXNlbGYuJGJ1dHRvbi5oaWRlKCk7CgkJCX0KCQl9LAoKCQljcmVhdGUgOiBmdW5jdGlvbigpIHsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJaW5zdGFuY2UgPSBzZWxmLmluc3RhbmNlLAoJCQkJcGFyZW50RWwgPSBzZWxmLm9wdHMucGFyZW50RWwsCgkJCQlsaXN0LAoJCQkJc3JjOwoKCQkJc2VsZi4kZ3JpZCA9ICQoJzxkaXYgY2xhc3M9ImZhbmN5Ym94LXRodW1icyBmYW5jeWJveC10aHVtYnMtJyArIHNlbGYub3B0cy5heGlzICsgJyI+PC9kaXY+JykuYXBwZW5kVG8oIGluc3RhbmNlLiRyZWZzLmNvbnRhaW5lci5maW5kKCBwYXJlbnRFbCApLmFkZEJhY2soKS5maWx0ZXIoIHBhcmVudEVsICkgKTsKCgkJCS8vIEJ1aWxkIGxpc3QgSFRNTAoJCQlsaXN0ID0gJzx1bD4nOwoKCQkJJC5lYWNoKGluc3RhbmNlLmdyb3VwLCBmdW5jdGlvbiggaSwgaXRlbSApIHsKCQkJCXNyYyA9IGl0ZW0ub3B0cy50aHVtYiB8fCAoIGl0ZW0ub3B0cy4kdGh1bWIgPyBpdGVtLm9wdHMuJHRodW1iLmF0dHIoICdzcmMnICkgOiBudWxsICk7CgoJCQkJaWYgKCAhc3JjICYmIGl0ZW0udHlwZSA9PT0gJ2ltYWdlJyApIHsKCQkJCQlzcmMgPSBpdGVtLnNyYzsKCQkJCX0KCgkJCQlpZiAoIHNyYyAmJiBzcmMubGVuZ3RoICkgewoJCQkJCWxpc3QgKz0gJzxsaSBkYXRhLWluZGV4PSInICsgaSArICciICB0YWJpbmRleD0iMCIgY2xhc3M9ImZhbmN5Ym94LXRodW1icy1sb2FkaW5nIj48aW1nIGRhdGEtc3JjPSInICsgc3JjICsgJyIgLz48L2xpPic7CgkJCQl9CgkJCX0pOwoKCQkJbGlzdCArPSAnPC91bD4nOwoKCQkJc2VsZi4kbGlzdCA9ICQoIGxpc3QgKS5hcHBlbmRUbyggc2VsZi4kZ3JpZCApLm9uKCdjbGljaycsICdsaScsIGZ1bmN0aW9uKCkgewoJCQkJaW5zdGFuY2UuanVtcFRvKCAkKHRoaXMpLmRhdGEoJ2luZGV4JykgKTsKCQkJfSk7CgoJCQlzZWxmLiRsaXN0LmZpbmQoICdpbWcnICkuaGlkZSgpLm9uZSgnbG9hZCcsIGZ1bmN0aW9uKCkgewoJCQkJdmFyICRwYXJlbnQJCT0gJCh0aGlzKS5wYXJlbnQoKS5yZW1vdmVDbGFzcyggJ2ZhbmN5Ym94LXRodW1icy1sb2FkaW5nJyApLAoJCQkJCXRodW1iV2lkdGgJPSAkcGFyZW50Lm91dGVyV2lkdGgoKSwKCQkJCQl0aHVtYkhlaWdodAk9ICRwYXJlbnQub3V0ZXJIZWlnaHQoKSwKCQkJCQl3aWR0aCwKCQkJCQloZWlnaHQsCgkJCQkJd2lkdGhSYXRpbywKCQkJCQloZWlnaHRSYXRpbzsKCgkJCQl3aWR0aCAgPSB0aGlzLm5hdHVyYWxXaWR0aAl8fCB0aGlzLndpZHRoOwoJCQkJaGVpZ2h0ID0gdGhpcy5uYXR1cmFsSGVpZ2h0CXx8IHRoaXMuaGVpZ2h0OwoKCQkJCS8vIENhbGN1bGF0ZSB0aHVtYm5haWwgZGltZW5zaW9uczsgY2VudGVyIHZlcnRpY2FsbHkgYW5kIGhvcml6b250YWxseQoJCQkJd2lkdGhSYXRpbyAgPSB3aWR0aCAgLyB0aHVtYldpZHRoOwoJCQkJaGVpZ2h0UmF0aW8gPSBoZWlnaHQgLyB0aHVtYkhlaWdodDsKCgkJCQlpZiAod2lkdGhSYXRpbyA+PSAxICYmIGhlaWdodFJhdGlvID49IDEpIHsKCQkJCQlpZiAod2lkdGhSYXRpbyA+IGhlaWdodFJhdGlvKSB7CgkJCQkJCXdpZHRoICA9IHdpZHRoIC8gaGVpZ2h0UmF0aW87CgkJCQkJCWhlaWdodCA9IHRodW1iSGVpZ2h0OwoKCQkJCQl9IGVsc2UgewoJCQkJCQl3aWR0aCAgPSB0aHVtYldpZHRoOwoJCQkJCQloZWlnaHQgPSBoZWlnaHQgLyB3aWR0aFJhdGlvOwoJCQkJCX0KCQkJCX0KCgkJCQkkKHRoaXMpLmNzcyh7CgkJCQkJd2lkdGggICAgICAgICA6IE1hdGguZmxvb3Iod2lkdGgpLAoJCQkJCWhlaWdodCAgICAgICAgOiBNYXRoLmZsb29yKGhlaWdodCksCgkJCQkJJ21hcmdpbi10b3AnICA6IGhlaWdodCA+IHRodW1iSGVpZ2h0ID8gKCBNYXRoLmZsb29yKHRodW1iSGVpZ2h0ICogMC4zIC0gaGVpZ2h0ICogMC4zICkgKSA6IE1hdGguZmxvb3IodGh1bWJIZWlnaHQgKiAwLjUgLSBoZWlnaHQgKiAwLjUgKSwKCQkJCQknbWFyZ2luLWxlZnQnIDogTWF0aC5mbG9vcih0aHVtYldpZHRoICogMC41IC0gd2lkdGggKiAwLjUgKQoJCQkJfSkuc2hvdygpOwoKCQkJfSkKCQkJLmVhY2goZnVuY3Rpb24oKSB7CgkJCQl0aGlzLnNyYyA9ICQoIHRoaXMgKS5kYXRhKCAnc3JjJyApOwoJCQl9KTsKCgkJCWlmICggc2VsZi5vcHRzLmF4aXMgPT09ICd4JyApIHsKCQkJCXNlbGYuJGxpc3Qud2lkdGgoIHBhcnNlSW50KCBzZWxmLiRncmlkLmNzcygicGFkZGluZy1yaWdodCIpICkgKyAoIGluc3RhbmNlLmdyb3VwLmxlbmd0aCAqIHNlbGYuJGxpc3QuY2hpbGRyZW4oKS5lcSgwKS5vdXRlcldpZHRoKHRydWUpICkgKyAncHgnICk7CgkJCX0KCQl9LAoKCQlmb2N1cyA6IGZ1bmN0aW9uKCBkdXJhdGlvbiApIHsKCQkJdmFyIHNlbGYgPSB0aGlzLAoJCQkJJGxpc3QgPSBzZWxmLiRsaXN0LAoJCQkJdGh1bWIsCgkJCQl0aHVtYlBvczsKCgkJCWlmICggc2VsZi5pbnN0YW5jZS5jdXJyZW50ICkgewoJCQkJdGh1bWIgPSAkbGlzdC5jaGlsZHJlbigpCgkJCQkJLnJlbW92ZUNsYXNzKCAnZmFuY3lib3gtdGh1bWJzLWFjdGl2ZScgKQoJCQkJCS5maWx0ZXIoJ1tkYXRhLWluZGV4PSInICsgc2VsZi5pbnN0YW5jZS5jdXJyZW50LmluZGV4ICArICciXScpCgkJCQkJLmFkZENsYXNzKCdmYW5jeWJveC10aHVtYnMtYWN0aXZlJyk7CgoJCQkJdGh1bWJQb3MgPSB0aHVtYi5wb3NpdGlvbigpOwoKCQkJCS8vIENoZWNrIGlmIG5lZWQgdG8gc2Nyb2xsIHRvIG1ha2UgY3VycmVudCB0aHVtYiB2aXNpYmxlCgkJCQlpZiAoIHNlbGYub3B0cy5heGlzID09PSAneScgJiYgKCB0aHVtYlBvcy50b3AgPCAwIHx8IHRodW1iUG9zLnRvcCA+ICggJGxpc3QuaGVpZ2h0KCkgLSB0aHVtYi5vdXRlckhlaWdodCgpICkgKSApIHsKCQkJCQkkbGlzdC5zdG9wKCkuYW5pbWF0ZSh7ICdzY3JvbGxUb3AnIDogJGxpc3Quc2Nyb2xsVG9wKCkgKyB0aHVtYlBvcy50b3AgfSwgZHVyYXRpb24pOwoKCQkJCX0gZWxzZSBpZiAoIHNlbGYub3B0cy5heGlzID09PSAneCcgJiYgKAoJCQkJCQl0aHVtYlBvcy5sZWZ0IDwgJGxpc3QucGFyZW50KCkuc2Nyb2xsTGVmdCgpIHx8CgkJCQkJCXRodW1iUG9zLmxlZnQgPiAoICRsaXN0LnBhcmVudCgpLnNjcm9sbExlZnQoKSArICggJGxpc3QucGFyZW50KCkud2lkdGgoKSAtIHRodW1iLm91dGVyV2lkdGgoKSApICkKCQkJCQkpCgkJCQkpIHsKCQkJCQkkbGlzdC5wYXJlbnQoKS5zdG9wKCkuYW5pbWF0ZSh7ICdzY3JvbGxMZWZ0JyA6IHRodW1iUG9zLmxlZnQgfSwgZHVyYXRpb24pOwoJCQkJfQoJCQl9CgkJfSwKCgkJdXBkYXRlIDogZnVuY3Rpb24oKSB7CgkJCXRoaXMuaW5zdGFuY2UuJHJlZnMuY29udGFpbmVyLnRvZ2dsZUNsYXNzKCAnZmFuY3lib3gtc2hvdy10aHVtYnMnLCB0aGlzLmlzVmlzaWJsZSApOwoKCQkJaWYgKCB0aGlzLmlzVmlzaWJsZSApIHsKCQkJCWlmICggIXRoaXMuJGdyaWQgKSB7CgkJCQkJdGhpcy5jcmVhdGUoKTsKCQkJCX0KCgkJCQl0aGlzLmluc3RhbmNlLnRyaWdnZXIoICdvblRodW1ic1Nob3cnICk7CgoJCQkJdGhpcy5mb2N1cyggMCApOwoKCQkJfSBlbHNlIGlmICggdGhpcy4kZ3JpZCApIHsKCQkJCXRoaXMuaW5zdGFuY2UudHJpZ2dlciggJ29uVGh1bWJzSGlkZScgKTsKCQkJfQoKCQkJLy8gVXBkYXRlIGNvbnRlbnQgcG9zaXRpb24KCQkJdGhpcy5pbnN0YW5jZS51cGRhdGUoKTsKCQl9LAoKCQloaWRlIDogZnVuY3Rpb24oKSB7CgkJCXRoaXMuaXNWaXNpYmxlID0gZmFsc2U7CgkJCXRoaXMudXBkYXRlKCk7CgkJfSwKCgkJc2hvdyA6IGZ1bmN0aW9uKCkgewoJCQl0aGlzLmlzVmlzaWJsZSA9IHRydWU7CgkJCXRoaXMudXBkYXRlKCk7CgkJfSwKCgkJdG9nZ2xlIDogZnVuY3Rpb24oKSB7CgkJCXRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlOwoJCQl0aGlzLnVwZGF0ZSgpOwoJCX0KCX0pOwoKCSQoZG9jdW1lbnQpLm9uKHsKCgkJJ29uSW5pdC5mYicgOiBmdW5jdGlvbihlLCBpbnN0YW5jZSkgewoJCQl2YXIgVGh1bWJzOwoKCQkJaWYgKCBpbnN0YW5jZSAmJiAhaW5zdGFuY2UuVGh1bWJzICkgewoJCQkJVGh1bWJzID0gbmV3IEZhbmN5VGh1bWJzKCBpbnN0YW5jZSApOwoKCQkJCWlmICggVGh1bWJzLmlzQWN0aXZlICYmIFRodW1icy5vcHRzLmF1dG9TdGFydCA9PT0gdHJ1ZSApIHsKCQkJCQlUaHVtYnMuc2hvdygpOwoJCQkJfQoJCQl9CgkJfSwKCgkJJ2JlZm9yZVNob3cuZmInIDogZnVuY3Rpb24oZSwgaW5zdGFuY2UsIGl0ZW0sIGZpcnN0UnVuKSB7CgkJCXZhciBUaHVtYnMgPSBpbnN0YW5jZSAmJiBpbnN0YW5jZS5UaHVtYnM7CgoJCQlpZiAoIFRodW1icyAmJiBUaHVtYnMuaXNWaXNpYmxlICkgewoJCQkJVGh1bWJzLmZvY3VzKCBmaXJzdFJ1biA/IDAgOiAyNTAgKTsKCQkJfQoJCX0sCgoJCSdhZnRlcktleWRvd24uZmInIDogZnVuY3Rpb24oZSwgaW5zdGFuY2UsIGN1cnJlbnQsIGtleXByZXNzLCBrZXljb2RlKSB7CgkJCXZhciBUaHVtYnMgPSBpbnN0YW5jZSAmJiBpbnN0YW5jZS5UaHVtYnM7CgoJCQkvLyAiRyIKCQkJaWYgKCBUaHVtYnMgJiYgVGh1bWJzLmlzQWN0aXZlICYmIGtleWNvZGUgPT09IDcxICkgewoJCQkJa2V5cHJlc3MucHJldmVudERlZmF1bHQoKTsKCgkJCQlUaHVtYnMudG9nZ2xlKCk7CgkJCX0KCQl9LAoKCQknYmVmb3JlQ2xvc2UuZmInIDogZnVuY3Rpb24oIGUsIGluc3RhbmNlICkgewoJCQl2YXIgVGh1bWJzID0gaW5zdGFuY2UgJiYgaW5zdGFuY2UuVGh1bWJzOwoKCQkJaWYgKCBUaHVtYnMgJiYgVGh1bWJzLmlzVmlzaWJsZSAmJiBUaHVtYnMub3B0cy5oaWRlT25DbG9zZSAhPT0gZmFsc2UgKSB7CgkJCQlUaHVtYnMuJGdyaWQuaGlkZSgpOwoJCQl9CgkJfQoKCX0pOwoKfShkb2N1bWVudCwgd2luZG93LmpRdWVyeSkpOwoKLy8vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLwovLyBTaGFyZQovLyBEaXNwbGF5cyBzaW1wbGUgZm9ybSBmb3Igc2hhcmluZyBjdXJyZW50IHVybAovLwovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo7KGZ1bmN0aW9uIChkb2N1bWVudCwgJCkgewoJJ3VzZSBzdHJpY3QnOwoKCSQuZXh0ZW5kKHRydWUsICQuZmFuY3lib3guZGVmYXVsdHMsIHsKCQlidG5UcGwgOiB7CgkJCXNoYXJlIDoKCQkJCSc8YnV0dG9uIGRhdGEtZmFuY3lib3gtc2hhcmUgY2xhc3M9ImZhbmN5Ym94LWJ1dHRvbiBmYW5jeWJveC1idXR0b24tLXNoYXJlIiB0aXRsZT0ie3tTSEFSRX19Ij4nICsKCQkJCQknPHN2ZyB2aWV3Qm94PSIwIDAgNDAgNDAiPicgKwoJCQkJCQknPHBhdGggZD0iTTYsMzAgQzgsMTggMTksMTYgMjMsMTYgTDIzLDE2IEwyMywxMCBMMzMsMjAgTDIzLDI5IEwyMywyNCBDMTksMjQgOCwyNyA2LDMwIFoiPicgKwoJCQkJCSc8L3N2Zz4nICsKCQkJCSc8L2J1dHRvbj4nCgkJfSwKCQlzaGFyZSA6IHsKCQkJdHBsIDoKCQkJCSc8ZGl2IGNsYXNzPSJmYW5jeWJveC1zaGFyZSI+JyArCgkJCQkJJzxoMT57e1NIQVJFfX08L2gxPicgKwoJCQkJCSc8cCBjbGFzcz0iZmFuY3lib3gtc2hhcmVfX2xpbmtzIj4nICsKCQkJCQkJJzxhIGNsYXNzPSJmYW5jeWJveC1zaGFyZV9fYnV0dG9uIGZhbmN5Ym94LXNoYXJlX19idXR0b24tLWZiIiBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT17e3VybH19Ij4nICsKCQkJCQkJCSc8c3ZnIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im0yODcgNDU2di0yOTljMC0yMSA2LTM1IDM1LTM1aDM4di02M2MtNy0xLTI5LTMtNTUtMy01NCAwLTkxIDMzLTkxIDk0djMwNm0xNDMtMjU0aC0yMDV2NzJoMTk2IiAvPjwvc3ZnPicgKwoJCQkJCQkJJzxzcGFuPkZhY2Vib29rPC9zcGFuPicgKwoJCQkJCQknPC9hPicgKwoJCQkJCQknPGEgY2xhc3M9ImZhbmN5Ym94LXNoYXJlX19idXR0b24gZmFuY3lib3gtc2hhcmVfX2J1dHRvbi0tcHQiIGhyZWY9Imh0dHBzOi8vd3d3LnBpbnRlcmVzdC5jb20vcGluL2NyZWF0ZS9idXR0b24vP3VybD17e3VybH19JmRlc2NyaXB0aW9uPXt7ZGVzY3J9fSZtZWRpYT17e21lZGlhfX0iPicgKwoJCQkJCQkJJzxzdmcgdmlld0JveD0iMCAwIDUxMiA1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTI2NSA1NmMtMTA5IDAtMTY0IDc4LTE2NCAxNDQgMCAzOSAxNSA3NCA0NyA4NyA1IDIgMTAgMCAxMi01bDQtMTljMi02IDEtOC0zLTEzLTktMTEtMTUtMjUtMTUtNDUgMC01OCA0My0xMTAgMTEzLTExMCA2MiAwIDk2IDM4IDk2IDg4IDAgNjctMzAgMTIyLTczIDEyMi0yNCAwLTQyLTE5LTM2LTQ0IDYtMjkgMjAtNjAgMjAtODEgMC0xOS0xMC0zNS0zMS0zNS0yNSAwLTQ0IDI2LTQ0IDYwIDAgMjEgNyAzNiA3IDM2bC0zMCAxMjVjLTggMzctMSA4MyAwIDg3IDAgMyA0IDQgNSAyIDItMyAzMi0zOSA0Mi03NWwxNi02NGM4IDE2IDMxIDI5IDU2IDI5IDc0IDAgMTI0LTY3IDEyNC0xNTcgMC02OS01OC0xMzItMTQ2LTEzMnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4nICsKCQkJCQkJCSc8c3Bhbj5QaW50ZXJlc3Q8L3NwYW4+JyArCgkJCQkJCSc8L2E+JyArCgkJCQkJCSc8YSBjbGFzcz0iZmFuY3lib3gtc2hhcmVfX2J1dHRvbiBmYW5jeWJveC1zaGFyZV9fYnV0dG9uLS10dyIgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9pbnRlbnQvdHdlZXQ/dXJsPXt7dXJsfX0mdGV4dD17e2Rlc2NyfX0iPicgKwoJCQkJCQkJJzxzdmcgdmlld0JveD0iMCAwIDUxMiA1MTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQ1NiAxMzNjLTE0IDctMzEgMTEtNDcgMTMgMTctMTAgMzAtMjcgMzctNDYtMTUgMTAtMzQgMTYtNTIgMjAtNjEtNjItMTU3LTctMTQxIDc1LTY4LTMtMTI5LTM1LTE2OS04NS0yMiAzNy0xMSA4NiAyNiAxMDktMTMgMC0yNi00LTM3LTkgMCAzOSAyOCA3MiA2NSA4MC0xMiAzLTI1IDQtMzcgMiAxMCAzMyA0MSA1NyA3NyA1Ny00MiAzMC03NyAzOC0xMjIgMzQgMTcwIDExMSAzNzgtMzIgMzU5LTIwOCAxNi0xMSAzMC0yNSA0MS00MnoiIC8+PC9zdmc+JyArCgkJCQkJCQknPHNwYW4+VHdpdHRlcjwvc3Bhbj4nICsKCQkJCQkJJzwvYT4nICsKCQkJCQknPC9wPicgKwoJCQkJCSc8cD48aW5wdXQgY2xhc3M9ImZhbmN5Ym94LXNoYXJlX19pbnB1dCIgdHlwZT0idGV4dCIgdmFsdWU9Int7dXJsX3Jhd319IiAvPjwvcD4nICsKCQkJCSc8L2Rpdj4nCgkJfQoJfSk7CgoJZnVuY3Rpb24gZXNjYXBlSHRtbChzdHJpbmcpIHsKCQl2YXIgZW50aXR5TWFwID0gewoJCSAgJyYnOiAnJmFtcDsnLAoJCSAgJzwnOiAnJmx0OycsCgkJICAnPic6ICcmZ3Q7JywKCQkgICciJzogJyZxdW90OycsCgkJICAiJyI6ICcmIzM5OycsCgkJICAnLyc6ICcmI3gyRjsnLAoJCSAgJ2AnOiAnJiN4NjA7JywKCQkgICc9JzogJyYjeDNEOycKCQl9OwoKCQlyZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZSgvWyY8PiInYD1cL10vZywgZnVuY3Rpb24gKHMpIHsKCQkJcmV0dXJuIGVudGl0eU1hcFtzXTsKCQl9KTsKCX0KCgkkKGRvY3VtZW50KS5vbignY2xpY2snLCAnW2RhdGEtZmFuY3lib3gtc2hhcmVdJywgZnVuY3Rpb24oKSB7CgkJdmFyIGYgPSAkLmZhbmN5Ym94LmdldEluc3RhbmNlKCksCgkJCXVybCwKCQkJdHBsOwoKCQlpZiAoIGYgKSB7CgkJCXVybCA9IGYuY3VycmVudC5vcHRzLmhhc2ggPT09IGZhbHNlID8gZi5jdXJyZW50LnNyYyA6IHdpbmRvdy5sb2NhdGlvbjsKCQkJdHBsID0gZi5jdXJyZW50Lm9wdHMuc2hhcmUudHBsCgkJCQkJLnJlcGxhY2UoIC9ce1x7bWVkaWFcfVx9L2csIGYuY3VycmVudC50eXBlID09PSAnaW1hZ2UnID8gZW5jb2RlVVJJQ29tcG9uZW50KCBmLmN1cnJlbnQuc3JjICkgOiAnJyApCgkJCQkJLnJlcGxhY2UoIC9ce1x7dXJsXH1cfS9nLCBlbmNvZGVVUklDb21wb25lbnQoIHVybCApICkKCQkJCQkucmVwbGFjZSggL1x7XHt1cmxfcmF3XH1cfS9nLCBlc2NhcGVIdG1sKCB1cmwgKSApCgkJCQkJLnJlcGxhY2UoIC9ce1x7ZGVzY3JcfVx9L2csIGYuJGNhcHRpb24gPyBlbmNvZGVVUklDb21wb25lbnQoIGYuJGNhcHRpb24udGV4dCgpICkgOiAnJyApOwoKCQkJJC5mYW5jeWJveC5vcGVuKHsKCQkJCXNyYyAgOiBmLnRyYW5zbGF0ZSggZiwgdHBsICksCgkJCQl0eXBlIDogJ2h0bWwnLAoJCQkJb3B0cyA6IHsKCQkJCQlhbmltYXRpb25FZmZlY3QgICA6ICJmYWRlIiwKCQkJCQlhbmltYXRpb25EdXJhdGlvbiA6IDI1MCwKCQkJCQlhZnRlckxvYWQgOiBmdW5jdGlvbihpbnN0YW5jZSwgY3VycmVudCkgewoJCQkJCQkvLyBPcGVuaW5nIGxpbmtzIGluIGEgcG9wdXAgd2luZG93CgkJCQkJCWN1cnJlbnQuJGNvbnRlbnQuZmluZCgnLmZhbmN5Ym94LXNoYXJlX19saW5rcyBhJykuY2xpY2soZnVuY3Rpb24oKSB7CgkJCQkJICAgICAgICB3aW5kb3cub3Blbih0aGlzLmhyZWYsICJTaGFyZSIsICJ3aWR0aD01NTAsIGhlaWdodD00NTAiKTsKCQkJCQkgICAgICAgIHJldHVybiBmYWxzZTsKCQkJCQkJfSk7CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9CgoJfSk7Cgp9KCBkb2N1bWVudCwgd2luZG93LmpRdWVyeSB8fCBqUXVlcnkgKSk7CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLwovLyBIYXNoCi8vIEVuYWJsZXMgbGlua2luZyB0byBlYWNoIG1vZGFsCi8vCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjsoZnVuY3Rpb24gKGRvY3VtZW50LCB3aW5kb3csICQpIHsKCSd1c2Ugc3RyaWN0JzsKCgkvLyBTaW1wbGUgJC5lc2NhcGVTZWxlY3RvciBwb2x5ZmlsbCAoZm9yIGpRdWVyeSBwcmlvciB2MykKCWlmICggISQuZXNjYXBlU2VsZWN0b3IgKSB7CgkJJC5lc2NhcGVTZWxlY3RvciA9IGZ1bmN0aW9uKCBzZWwgKSB7CgkJCXZhciByY3NzZXNjYXBlID0gLyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZzsKCQkJdmFyIGZjc3Nlc2NhcGUgPSBmdW5jdGlvbiggY2gsIGFzQ29kZVBvaW50ICkgewoJCQkJaWYgKCBhc0NvZGVQb2ludCApIHsKCQkJCQkvLyBVKzAwMDAgTlVMTCBiZWNvbWVzIFUrRkZGRCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKCQkJCQlpZiAoIGNoID09PSAiXDAiICkgewoJCQkJCQlyZXR1cm4gIlx1RkZGRCI7CgkJCQkJfQoKCQkJCQkvLyBDb250cm9sIGNoYXJhY3RlcnMgYW5kIChkZXBlbmRlbnQgdXBvbiBwb3NpdGlvbikgbnVtYmVycyBnZXQgZXNjYXBlZCBhcyBjb2RlIHBvaW50cwoJCQkJCXJldHVybiBjaC5zbGljZSggMCwgLTEgKSArICJcXCIgKyBjaC5jaGFyQ29kZUF0KCBjaC5sZW5ndGggLSAxICkudG9TdHJpbmcoIDE2ICkgKyAiICI7CgkJCQl9CgoJCQkJLy8gT3RoZXIgcG90ZW50aWFsbHktc3BlY2lhbCBBU0NJSSBjaGFyYWN0ZXJzIGdldCBiYWNrc2xhc2gtZXNjYXBlZAoJCQkJcmV0dXJuICJcXCIgKyBjaDsKCQkJfTsKCgkJCXJldHVybiAoIHNlbCArICIiICkucmVwbGFjZSggcmNzc2VzY2FwZSwgZmNzc2VzY2FwZSApOwoJCX07Cgl9CgoJLy8gQ3JlYXRlIG5ldyBoaXN0b3J5IGVudHJ5IG9ubHkgb25jZQoJdmFyIHNob3VsZENyZWF0ZUhpc3RvcnkgPSB0cnVlOwoKCS8vIFZhcmlhYmxlIGNvbnRhaW5pbmcgbGFzdCBoYXNoIHZhbHVlIHNldCBieSBmYW5jeUJveAoJLy8gSXQgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSBpZiBmYW5jeUJveCBuZWVkcyB0byBjbG9zZSBhZnRlciBoYXNoIGNoYW5nZSBpcyBkZXRlY3RlZAogICAgdmFyIGN1cnJlbnRIYXNoID0gbnVsbDsKCgkvLyBUaHJvdHRsaW5nIHRoZSBoaXN0b3J5IGNoYW5nZQoJdmFyIHRpbWVySUQgPSBudWxsOwoKCS8vIEdldCBpbmZvIGFib3V0IGdhbGxlcnkgbmFtZSBhbmQgY3VycmVudCBpbmRleCBmcm9tIHVybAogICAgZnVuY3Rpb24gcGFyc2VVcmwoKSB7CiAgICAgICAgdmFyIGhhc2ggICAgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHIoIDEgKTsKICAgICAgICB2YXIgcmV6ICAgICA9IGhhc2guc3BsaXQoICctJyApOwogICAgICAgIHZhciBpbmRleCAgID0gcmV6Lmxlbmd0aCA+IDEgJiYgL15cKz9cZCskLy50ZXN0KCByZXpbIHJlei5sZW5ndGggLSAxIF0gKSA/IHBhcnNlSW50KCByZXoucG9wKCAtMSApLCAxMCApIHx8IDEgOiAxOwogICAgICAgIHZhciBnYWxsZXJ5ID0gcmV6LmpvaW4oICctJyApOwoKCQkvLyBJbmRleCBpcyBzdGFydGluZyBmcm9tIDEKCQlpZiAoIGluZGV4IDwgMSApIHsKCQkJaW5kZXggPSAxOwoJCX0KCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgaGFzaCAgICA6IGhhc2gsCiAgICAgICAgICAgIGluZGV4ICAgOiBpbmRleCwKICAgICAgICAgICAgZ2FsbGVyeSA6IGdhbGxlcnkKICAgICAgICB9OwogICAgfQoKCS8vIFRyaWdnZXIgY2xpY2sgZXZudCBvbiBsaW5rcyB0byBvcGVuIG5ldyBmYW5jeUJveCBpbnN0YW5jZQoJZnVuY3Rpb24gdHJpZ2dlckZyb21VcmwoIHVybCApIHsKCQl2YXIgJGVsOwoKICAgICAgICBpZiAoIHVybC5nYWxsZXJ5ICE9PSAnJyApIHsKCgkJCS8vIElmIHdlIGNhbiBmaW5kIGVsZW1lbnQgbWF0Y2hpbmcgJ2RhdGEtZmFuY3lib3gnIGF0cmlidXRlLCB0aGVuIHRyaWdnZXIgY2xpY2sgZXZlbnQgZm9yIHRoYXQgLi4KCQkJJGVsID0gJCggIltkYXRhLWZhbmN5Ym94PSciICsgJC5lc2NhcGVTZWxlY3RvciggdXJsLmdhbGxlcnkgKSArICInXSIgKS5lcSggdXJsLmluZGV4IC0gMSApOwoKICAgICAgICAgICAgaWYgKCAhJGVsLmxlbmd0aCApIHsKCQkJCS8vIC4uIGlmIG5vdCwgdHJ5IGZpbmRpbmcgZWxlbWVudCBieSBJRAoJCQkJJGVsID0gJCggIiMiICsgJC5lc2NhcGVTZWxlY3RvciggdXJsLmdhbGxlcnkgKSArICIiICk7CgkJCX0KCgkJCWlmICggJGVsLmxlbmd0aCApIHsKCQkJCXNob3VsZENyZWF0ZUhpc3RvcnkgPSBmYWxzZTsKCgkJCQkkZWwudHJpZ2dlciggJ2NsaWNrJyApOwoJCQl9CgogICAgICAgIH0KCX0KCgkvLyBHZXQgZ2FsbGVyeSBuYW1lIGZyb20gY3VycmVudCBpbnN0YW5jZQoJZnVuY3Rpb24gZ2V0R2FsbGVyeUlEKCBpbnN0YW5jZSApIHsKCQl2YXIgb3B0czsKCgkJaWYgKCAhaW5zdGFuY2UgKSB7CgkJCXJldHVybiBmYWxzZTsKCQl9CgoJCW9wdHMgPSBpbnN0YW5jZS5jdXJyZW50ID8gaW5zdGFuY2UuY3VycmVudC5vcHRzIDogaW5zdGFuY2Uub3B0czsKCgkJcmV0dXJuIG9wdHMuaGFzaCB8fCAoIG9wdHMuJG9yaWcgPyBvcHRzLiRvcmlnLmRhdGEoICdmYW5jeWJveCcgKSA6ICcnICApOwoJfQoKCS8vIFN0YXJ0IHdoZW4gRE9NIGJlY29tZXMgcmVhZHkKICAgICQoZnVuY3Rpb24oKSB7CgoJCS8vIENoZWNrIGlmIHVzZXIgaGFzIGRpc2FibGVkIHRoaXMgbW9kdWxlCgkJaWYgKCAkLmZhbmN5Ym94LmRlZmF1bHRzLmhhc2ggPT09IGZhbHNlICkgewoJCQlyZXR1cm47CgkJfQoKCQkvLyBVcGRhdGUgaGFzaCB3aGVuIG9wZW5pbmcvY2xvc2luZyBmYW5jeUJveAoJICAgICQoZG9jdW1lbnQpLm9uKHsKCQkJJ29uSW5pdC5mYicgOiBmdW5jdGlvbiggZSwgaW5zdGFuY2UgKSB7CgkJCQl2YXIgdXJsLCBnYWxsZXJ5OwoKCQkJCWlmICggaW5zdGFuY2UuZ3JvdXBbIGluc3RhbmNlLmN1cnJJbmRleCBdLm9wdHMuaGFzaCA9PT0gZmFsc2UgKSB7CgkJCQkJcmV0dXJuOwoJCQkJfQoKCQkJCXVybCAgICAgPSBwYXJzZVVybCgpOwoJCQkJZ2FsbGVyeSA9IGdldEdhbGxlcnlJRCggaW5zdGFuY2UgKTsKCgkJCQkvLyBNYWtlIHN1cmUgZ2FsbGVyeSBzdGFydCBpbmRleCBtYXRjaGVzIGluZGV4IGZyb20gaGFzaAoJCQkJaWYgKCBnYWxsZXJ5ICYmIHVybC5nYWxsZXJ5ICYmIGdhbGxlcnkgPT0gdXJsLmdhbGxlcnkgKSB7CgkJCQkJaW5zdGFuY2UuY3VyckluZGV4ID0gdXJsLmluZGV4IC0gMTsKCQkJCX0KCQkJfSwKCgkJCSdiZWZvcmVTaG93LmZiJyA6IGZ1bmN0aW9uKCBlLCBpbnN0YW5jZSwgY3VycmVudCApIHsKCQkJCXZhciBnYWxsZXJ5OwoKCQkJCWlmICggIWN1cnJlbnQgfHwgY3VycmVudC5vcHRzLmhhc2ggPT09IGZhbHNlICkgewoJCQkJCXJldHVybjsKCQkJCX0KCgkgICAgICAgICAgICBnYWxsZXJ5ID0gZ2V0R2FsbGVyeUlEKCBpbnN0YW5jZSApOwoKCSAgICAgICAgICAgIC8vIFVwZGF0ZSB3aW5kb3cgaGFzaAoJICAgICAgICAgICAgaWYgKCBnYWxsZXJ5ICYmIGdhbGxlcnkgIT09ICcnICkgewoKCQkJCQlpZiAoIHdpbmRvdy5sb2NhdGlvbi5oYXNoLmluZGV4T2YoIGdhbGxlcnkgKSA8IDAgKSB7CgkJICAgICAgICAgICAgICAgIGluc3RhbmNlLm9wdHMub3JpZ0hhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaDsKCQkgICAgICAgICAgICB9CgoJCQkJCWN1cnJlbnRIYXNoID0gZ2FsbGVyeSArICggaW5zdGFuY2UuZ3JvdXAubGVuZ3RoID4gMSA/ICctJyArICggY3VycmVudC5pbmRleCArIDEgKSA6ICcnICk7CgoJCQkJCWlmICggJ3JlcGxhY2VTdGF0ZScgaW4gd2luZG93Lmhpc3RvcnkgKSB7CgkJCQkJCWlmICggdGltZXJJRCApIHsKCQkJCQkJCWNsZWFyVGltZW91dCggdGltZXJJRCApOwoJCQkJCQl9CgoJCQkJCQl0aW1lcklEID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJCQkJCXdpbmRvdy5oaXN0b3J5WyBzaG91bGRDcmVhdGVIaXN0b3J5ID8gJ3B1c2hTdGF0ZScgOiAncmVwbGFjZVN0YXRlJyBdKCB7fSAsIGRvY3VtZW50LnRpdGxlLCB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyB3aW5kb3cubG9jYXRpb24uc2VhcmNoICsgJyMnICsgIGN1cnJlbnRIYXNoICk7CgoJCQkJCQkJdGltZXJJRCA9IG51bGw7CgoJCQkJCQkJc2hvdWxkQ3JlYXRlSGlzdG9yeSA9IGZhbHNlOwoKCQkJCQkJfSwgMzAwKTsKCgkJCQkJfSBlbHNlIHsKCQkJCQkJd2luZG93LmxvY2F0aW9uLmhhc2ggPSBjdXJyZW50SGFzaDsKCQkJCQl9CgoJICAgICAgICAgICAgfQoKCSAgICAgICAgfSwKCgkJCSdiZWZvcmVDbG9zZS5mYicgOiBmdW5jdGlvbiggZSwgaW5zdGFuY2UsIGN1cnJlbnQgKSB7CgkJCQl2YXIgZ2FsbGVyeSwgb3JpZ0hhc2g7CgoJCQkJaWYgKCB0aW1lcklEICkgewoJCQkJCWNsZWFyVGltZW91dCggdGltZXJJRCApOwoJCQkJfQoKCQkJCWlmICggY3VycmVudC5vcHRzLmhhc2ggPT09IGZhbHNlICkgewoJCQkJCXJldHVybjsKCQkJCX0KCgkJCQlnYWxsZXJ5ICA9IGdldEdhbGxlcnlJRCggaW5zdGFuY2UgKTsKCQkJCW9yaWdIYXNoID0gaW5zdGFuY2UgJiYgaW5zdGFuY2Uub3B0cy5vcmlnSGFzaCA/IGluc3RhbmNlLm9wdHMub3JpZ0hhc2ggOiAnJzsKCgkgICAgICAgICAgICAvLyBSZW1vdmUgaGFzaCBmcm9tIGxvY2F0aW9uIGJhcgoJICAgICAgICAgICAgaWYgKCBnYWxsZXJ5ICYmIGdhbGxlcnkgIT09ICcnICkgewoKCSAgICAgICAgICAgICAgICBpZiAoICdyZXBsYWNlU3RhdGUnIGluIGhpc3RvcnkgKSB7CgkJCQkJCXdpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgge30gLCBkb2N1bWVudC50aXRsZSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgd2luZG93LmxvY2F0aW9uLnNlYXJjaCArIG9yaWdIYXNoICk7CgoJICAgICAgICAgICAgICAgIH0gZWxzZSB7CgkJCQkJCXdpbmRvdy5sb2NhdGlvbi5oYXNoID0gb3JpZ0hhc2g7CgoJCQkJCQkvLyBLZWVwIG9yaWdpbmFsIHNjcm9sbCBwb3NpdGlvbgoJCQkJCQkkKCB3aW5kb3cgKS5zY3JvbGxUb3AoIGluc3RhbmNlLnNjcm9sbFRvcCApLnNjcm9sbExlZnQoIGluc3RhbmNlLnNjcm9sbExlZnQgKTsKCSAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICB9CgoJCQkJY3VycmVudEhhc2ggPSBudWxsOwoJICAgICAgICB9CgkgICAgfSk7CgoJCS8vIENoZWNrIGlmIG5lZWQgdG8gY2xvc2UgYWZ0ZXIgdXJsIGhhcyBjaGFuZ2VkCgkJJCh3aW5kb3cpLm9uKCdoYXNoY2hhbmdlLmZiJywgZnVuY3Rpb24oKSB7CgkJCXZhciB1cmwgPSBwYXJzZVVybCgpOwoKCQkJaWYgKCAkLmZhbmN5Ym94LmdldEluc3RhbmNlKCkgKSB7CgkJCQlpZiAoIGN1cnJlbnRIYXNoICYmIGN1cnJlbnRIYXNoICE9PSB1cmwuZ2FsbGVyeSArICctJyArIHVybC5pbmRleCAmJiAhKCB1cmwuaW5kZXggPT09IDEgJiYgY3VycmVudEhhc2ggPT0gdXJsLmdhbGxlcnkgKSApIHsKCQkJCQljdXJyZW50SGFzaCA9IG51bGw7CgoJCQkJCSQuZmFuY3lib3guY2xvc2UoKTsKCQkJCX0KCgkJCX0gZWxzZSBpZiAoIHVybC5nYWxsZXJ5ICE9PSAnJyApIHsKCQkJCXRyaWdnZXJGcm9tVXJsKCB1cmwgKTsKCQkJfQoJCX0pOwoKCQkvLyBDaGVjayBjdXJyZW50IGhhc2ggYW5kIHRyaWdnZXIgY2xpY2sgZXZlbnQgb24gbWF0Y2hpbmcgZWxlbWVudCB0byBzdGFydCBmYW5jeUJveCwgaWYgbmVlZGVkCgkJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJdHJpZ2dlckZyb21VcmwoIHBhcnNlVXJsKCkgKTsKCQl9LCA1MCk7CiAgICB9KTsKCn0oIGRvY3VtZW50LCB3aW5kb3csIHdpbmRvdy5qUXVlcnkgfHwgalF1ZXJ5ICkpOwoKOyhmdW5jdGlvbiAoZG9jdW1lbnQsICQpIHsKCSd1c2Ugc3RyaWN0JzsKCgl2YXIgcHJldlRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKCiAgICAkKGRvY3VtZW50KS5vbih7CiAgICAgICAgJ29uSW5pdC5mYicgOiBmdW5jdGlvbiggZSwgaW5zdGFuY2UsIGN1cnJlbnQgKSB7CgkJCWluc3RhbmNlLiRyZWZzLnN0YWdlLm9uKCdtb3VzZXdoZWVsIERPTU1vdXNlU2Nyb2xsIHdoZWVsIE1vek1vdXNlUGl4ZWxTY3JvbGwnLCBmdW5jdGlvbihlKSB7CgkJCQl2YXIgY3VycmVudCAgPSBpbnN0YW5jZS5jdXJyZW50LAoJCQkJCWN1cnJUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgoJCQkJaWYgKCBpbnN0YW5jZS5ncm91cC5sZW5ndGggPCAxIHx8IGN1cnJlbnQub3B0cy53aGVlbCA9PT0gZmFsc2UgfHwgKCBjdXJyZW50Lm9wdHMud2hlZWwgPT09ICdhdXRvJyAmJiBjdXJyZW50LnR5cGUgIT09ICdpbWFnZScgKSApIHsKCQkJCQlyZXR1cm47CgkJCQl9CgoJCQkJZS5wcmV2ZW50RGVmYXVsdCgpOwoJCQkJZS5zdG9wUHJvcGFnYXRpb24oKTsKCgkJCQlpZiAoIGN1cnJlbnQuJHNsaWRlLmhhc0NsYXNzKCAnZmFuY3lib3gtYW5pbWF0ZWQnICkgKSB7CgkJCQkJcmV0dXJuOwoJCQkJfQoKCQkJCWUgPSBlLm9yaWdpbmFsRXZlbnQgfHwgZTsKCgkJCQlpZiAoIGN1cnJUaW1lIC0gcHJldlRpbWUgPCAyNTAgKSB7CgkJCQkJcmV0dXJuOwoJCQkJfQoKCQkJCXByZXZUaW1lID0gY3VyclRpbWU7CgoJCQkJaW5zdGFuY2VbICggLWUuZGVsdGFZIHx8IC1lLmRlbHRhWCB8fCBlLndoZWVsRGVsdGEgfHwgLWUuZGV0YWlsICkgPCAwID8gJ25leHQnIDogJ3ByZXZpb3VzJyBdKCk7CgoJCQl9KTsKCQl9CiAgICB9KTsKCn0oIGRvY3VtZW50LCB3aW5kb3cualF1ZXJ5IHx8IGpRdWVyeSApKTsK"}},"time_used":39,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":17,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images.pexels.com/photos/5833775/pexels-photo-5833775a1a8.jpg?auto=compress\u0026cs=tinysrgb\u0026w=800","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.956Z","timestamp":1785129412956,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images.pexels.com/photos/5833775/pexels-photo-5833775a1a8.jpg?auto=compress\u0026cs=tinysrgb\u0026w=800 HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-29T09:10:37.507754Z","times_seen":144612,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"media.istockphoto.com/id/1496443388/photo/digital-communication-of-points-technological-background-network-connection-structure-3d.jpg?s=612x612\u0026w=0\u0026k=20\u0026c=KDrC6XaejmV7bJzbYteqhIV5MYCFIHcwrR9AIwlmpsA=","fqdn":"media.istockphoto.com","domain":"istockphoto.com","tld":"com"},"ip":{"addr":"108.157.214.70","port":443,"asn":16509,"as":"AMAZON-02","country":"United States","country_code":"US"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.979Z","timestamp":1785129412979,"http_version":"HTTP/3","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":"media.gettyimages.com","organization":""},"issuer":{"commonName":"Amazon RSA 2048 M01","organization":"Amazon"},"validity":{"start":"Mon, 10 Nov 2025 00:00:00 GMT","end":"Tue, 08 Dec 2026 23:59:59 GMT"},"fingerprint":{"sha1":"2A:CF:A6:4E:44:B1:DA:FA:BC:7E:92:5C:A4:6E:12:E0:83:00:24:0B","sha256":"A8:86:96:F2:A3:A9:F9:27:90:BB:3B:1C:33:EA:C8:A5:58:EB:E6:4D:5B:B4:36:97:17:54:9D:B8:2B:98:00:0A"}}},"request":{"raw":"GET /id/1496443388/photo/digital-communication-of-points-technological-background-network-connection-structure-3d.jpg?s=612x612\u0026w=0\u0026k=20\u0026c=KDrC6XaejmV7bJzbYteqhIV5MYCFIHcwrR9AIwlmpsA= HTTP/1.1\r\nHost: media.istockphoto.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncontent-type: image/jpeg\r\ncontent-length: 26371\r\nalt-svc: h3=\":443\"; ma=86400\r\ndate: Sat, 25 Jul 2026 05:09:08 GMT\r\ncontent-disposition: inline; filename=istockphoto-1496443388-612x612.jpg\r\nserver: Kestrel\r\naccess-control-allow-origin: *\r\ncache-control: public, max-age=7776000\r\nlast-modified: Sat, 25 Jul 2026 05:09:08 GMT\r\nx-cache: Hit from cloudfront\r\nage: 173264\r\nvia: 1.1 a626e6748fd7659cdc58de81924341d6.cloudfront.net (CloudFront)\r\nx-amz-cf-pop: ARN56-P1\r\nstrict-transport-security: max-age=60; includeSubDomains; preload\r\nx-amz-cf-id: ocoUM5tRQOuth3ZZ8UOyYXx00oANylcO7cQbJN-AvmXrvVnLaCxzGQ==\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Kestrel","description":"","website":"https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel","common_platform_enumeration":"","icon":"kestrel.svg","categories":["Web servers"]},{"name":"Microsoft ASP.NET","description":"ASP.NET is an open-source, server-side web-application framework designed for web development to produce dynamic web pages.","website":"https://www.asp.net","common_platform_enumeration":"cpe:2.3:a:microsoft:asp.net:*:*:*:*:*:*:*:*","icon":"Microsoft ASP.NET.svg","categories":["Web frameworks"]},{"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":"Amazon CloudFront","description":"Amazon CloudFront is a fast content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to customers globally with low latency, high transfer speeds.","website":"https://aws.amazon.com/cloudfront/","common_platform_enumeration":"","icon":"Amazon Cloudfront.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":26371,"size_decoded":26987,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, resolution (DPI), density 300x300, segment length 16, Exif Standard: [TIFF image data, little-endian, direntries=3, description=Digital communication of points. Technological background. Network connection structure. 3D rendering,\u0001, xresolution=151, yresolution=159], progressive, precision 8, 612x344, components 3","md5":"e095e407476023339d10808153635005","sha1":"623788b33c8a6def706d119c6c13657f3a5e8ce3","sha256":"1c4fc197ce719c4632f242bcd92d9a5d5d94439ec546ffe842640bc54d2b0b22","sha512":"4d0e30d6659bcefb93bd039d24ac0bdfdcc9bb3c23fba76123a8603b02f55567e1500a8b8d548475ad81abf6166f7bbafdd870091b5445f072ed680320ae4761","ssdeep":"768:sNADDikQfLtrx4U0ryUFpl1LjXC7Set901UBZpa:sNAHitxrl0z71fFUb8","tlshash":"a9c2d0942620d524e1359373a872fb5a07824a74b8dffa8535d005b80c797f36f8a6df","first_seen":"2026-05-04T15:12:22.267853Z","last_seen":"2026-07-27T10:24:20.328269Z","times_seen":8,"resource_available":false,"data":"/9j/4AAQSkZJRgABAQEBLAEsAAD/4QCvRXhpZgAASUkqAAgAAAADAA4BAgBlAAAAMgAAABoBBQABAAAAlwAAABsBBQABAAAAnwAAAAAAAABEaWdpdGFsIGNvbW11bmljYXRpb24gb2YgcG9pbnRzLiBUZWNobm9sb2dpY2FsIGJhY2tncm91bmQuIE5ldHdvcmsgY29ubmVjdGlvbiBzdHJ1Y3R1cmUuIDNEIHJlbmRlcmluZywBAAABAAAALAEAAAEAAAD/4QXcaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KCTxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CgkJPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpJcHRjNHhtcENvcmU9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBDb3JlLzEuMC94bWxucy8iICAgeG1sbnM6R2V0dHlJbWFnZXNHSUZUPSJodHRwOi8veG1wLmdldHR5aW1hZ2VzLmNvbS9naWZ0LzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGx1cz0iaHR0cDovL25zLnVzZXBsdXMub3JnL2xkZi94bXAvMS4wLyIgIHhtbG5zOmlwdGNFeHQ9Imh0dHA6Ly9pcHRjLm9yZy9zdGQvSXB0YzR4bXBFeHQvMjAwOC0wMi0yOS8iIHhtbG5zOnhtcFJpZ2h0cz0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3JpZ2h0cy8iIHBob3Rvc2hvcDpDcmVkaXQ9IkdldHR5IEltYWdlcyIgR2V0dHlJbWFnZXNHSUZUOkFzc2V0SUQ9IjE0OTY0NDMzODgiIHhtcFJpZ2h0czpXZWJTdGF0ZW1lbnQ9Imh0dHBzOi8vd3d3LmlzdG9ja3Bob3RvLmNvbS9sZWdhbC9saWNlbnNlLWFncmVlbWVudD91dG1fbWVkaXVtPW9yZ2FuaWMmYW1wO3V0bV9zb3VyY2U9Z29vZ2xlJmFtcDt1dG1fY2FtcGFpZ249aXB0Y3VybCIgcGx1czpEYXRhTWluaW5nPSJodHRwOi8vbnMudXNlcGx1cy5vcmcvbGRmL3ZvY2FiL0RNSS1QUk9ISUJJVEVELUVYQ0VQVFNFQVJDSEVOR0lORUlOREVYSU5HIiA+CjxkYzpjcmVhdG9yPjxyZGY6U2VxPjxyZGY6bGk+SWhvciBUc3l2aW5za3lpPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48ZGM6ZGVzY3JpcHRpb24+PHJkZjpBbHQ+PHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5EaWdpdGFsIGNvbW11bmljYXRpb24gb2YgcG9pbnRzLiBUZWNobm9sb2dpY2FsIGJhY2tncm91bmQuIE5ldHdvcmsgY29ubmVjdGlvbiBzdHJ1Y3R1cmUuIDNEIHJlbmRlcmluZzwvcmRmOmxpPjwvcmRmOkFsdD48L2RjOmRlc2NyaXB0aW9uPgo8cGx1czpMaWNlbnNvcj48cmRmOlNlcT48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48cGx1czpMaWNlbnNvclVSTD5odHRwczovL3d3dy5pc3RvY2twaG90by5jb20vcGhvdG8vbGljZW5zZS1nbTE0OTY0NDMzODgtP3V0bV9tZWRpdW09b3JnYW5pYyZhbXA7dXRtX3NvdXJjZT1nb29nbGUmYW1wO3V0bV9jYW1wYWlnbj1pcHRjdXJsPC9wbHVzOkxpY2Vuc29yVVJMPjwvcmRmOmxpPjwvcmRmOlNlcT48L3BsdXM6TGljZW5zb3I+CgkJPC9yZGY6RGVzY3JpcHRpb24+Cgk8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJ3Ij8+Cv/tALRQaG90b3Nob3AgMy4wADhCSU0EBAAAAAAAlxwBWgADGyVHHAJQAA9JaG9yIFRzeXZpbnNreWkcAngAZURpZ2l0YWwgY29tbXVuaWNhdGlvbiBvZiBwb2ludHMuIFRlY2hu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"}},"time_used":15,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":12,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/jquery.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.697Z","timestamp":1785129412697,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/jquery.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 32859\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":97168,"size_decoded":33097,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (32077), with CRLF line terminators","md5":"618538b4ab9639d444e962729a927f15","sha1":"dacc1f76630a9708add066819b1aabf8dce01056","sha256":"27d92130c0321dad5a03760fd5ac98a3d04ed4c94d88418fe6d50da1f7fc5cbe","sha512":"bcb6754ea246939a19a917cc0b810e1753c1b0f1a8b1b7e652128ef15dee4fc79111e4d88fe12f9188449a307e82240d0261af402d783428edfe5785c860372d","ssdeep":"1536:jYE1JVoiB9JqZdXXe2pD3PgoIiulrUdTJ5Fk/zkZ4HjL5o8srOaS9TwDhb7/Jp96:y4J+03jL5TCOauTwDhFdnCVQNLa98Hrc","tlshash":"9693d7d9b6d6706287b734a851bf410bb17aa8eab40c4c60f058c8e47e74e9d507bf2d","first_seen":"2023-03-07T01:12:12Z","last_seen":"2026-07-29T07:07:17.242851Z","times_seen":5731,"resource_available":true,"data":"LyohIGpRdWVyeSB2MS4xMi40IHwgKGMpIGpRdWVyeSBGb3VuZGF0aW9uIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovDQohZnVuY3Rpb24oYSxiKXsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1hLmRvY3VtZW50P2IoYSwhMCk6ZnVuY3Rpb24oYSl7aWYoIWEuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGIoYSl9OmIoYSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1hLmRvY3VtZW50LGU9Yy5zbGljZSxmPWMuY29uY2F0LGc9Yy5wdXNoLGg9Yy5pbmRleE9mLGk9e30saj1pLnRvU3RyaW5nLGs9aS5oYXNPd25Qcm9wZXJ0eSxsPXt9LG09IjEuMTIuNCIsbj1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgbi5mbi5pbml0KGEsYil9LG89L15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLHA9L14tbXMtLyxxPS8tKFtcZGEtel0pL2dpLHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTtuLmZuPW4ucHJvdG90eXBlPXtqcXVlcnk6bSxjb25zdHJ1Y3RvcjpuLHNlbGVjdG9yOiIiLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWE/MD5hP3RoaXNbYSt0aGlzLmxlbmd0aF06dGhpc1thXTplLmNhbGwodGhpcyl9LHB1c2hTdGFjazpmdW5jdGlvbihhKXt2YXIgYj1uLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYi5wcmV2T2JqZWN0PXRoaXMsYi5jb250ZXh0PXRoaXMuY29udGV4dCxifSxlYWNoOmZ1bmN0aW9uKGEpe3JldHVybiBuLmVhY2godGhpcyxhKX0sbWFwOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhuLm1hcCh0aGlzLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGEuY2FsbChiLGMsYil9KSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXE6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5sZW5ndGgsYz0rYSsoMD5hP2I6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGM+PTAmJmI+Yz9bdGhpc1tjXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6Zyxzb3J0OmMuc29ydCxzcGxpY2U6Yy5zcGxpY2V9LG4uZXh0ZW5kPW4uZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGEsYixjLGQsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsaT1hcmd1bWVudHMubGVuZ3RoLGo9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGcmJihqPWcsZz1hcmd1bWVudHNbaF18fHt9LGgrKyksIm9iamVjdCI9PXR5cGVvZiBnfHxuLmlzRnVuY3Rpb24oZyl8fChnPXt9KSxoPT09aSYmKGc9dGhpcyxoLS0pO2k+aDtoKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW2hdKSlmb3IoZCBpbiBlKWE9Z1tkXSxjPWVbZF0sZyE9PWMmJihqJiZjJiYobi5pc1BsYWluT2JqZWN0KGMpfHwoYj1uLmlzQXJyYXkoYykpKT8oYj8oYj0hMSxmPWEmJm4uaXNBcnJheShhKT9hOltdKTpmPWEmJm4uaXNQbGFpbk9iamVjdChhKT9hOnt9LGdbZF09bi5leHRlbmQoaixmLGMpKTp2b2lkIDAhPT1jJiYoZ1tkXT1jKSk7cmV0dXJuIGd9LG4uZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhtK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEpfSxub29wOmZ1bmN0aW9uKCl7fSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PT1uLnR5cGUoYSl9LGlzQXJyYXk6QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24oYSl7cmV0dXJuImFycmF5Ij09PW4udHlwZShhKX0saXNXaW5kb3c6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PWEud2luZG93fSxpc051bWVyaWM6ZnVuY3Rpb24oYSl7dmFyIGI9YSYmYS50b1N0cmluZygpO3JldHVybiFuLmlzQXJyYXkoYSkmJmItcGFyc2VGbG9hdChiKSsxPj0wfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiO2ZvcihiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LGlzUGxhaW5PYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJvYmplY3QiIT09bi50eXBlKGEpfHxhLm5vZGVUeXBlfHxuLmlzV2luZG93KGEpKXJldHVybiExO3RyeXtpZihhLmNvbnN0cnVjdG9yJiYhay5jYWxsKGEsImNvbnN0cnVjdG9yIikmJiFrLmNhbGwoYS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsImlzUHJvdG90eXBlT2YiKSlyZXR1cm4hMX1jYXRjaChjKXtyZXR1cm4hMX1pZighbC5vd25GaXJzdClmb3IoYiBpbiBhKXJldHVybiBrLmNhbGwoYSxiKTtmb3IoYiBpbiBhKTtyZXR1cm4gdm9pZCAwPT09Ynx8ay5jYWxsKGEsYil9LHR5cGU6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/YSsiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP2lbai5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oYil7YiYmbi50cmltKGIpJiYoYS5leGVjU2NyaXB0fHxmdW5jdGlvbihiKXthLmV2YWwuY2FsbChhLGIpfSkoYil9LGNhbWVsQ2FzZTpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKHAsIm1zLSIpLnJlcGxhY2UocSxyKX0sbm9kZU5hbWU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKGEsYil7dmFyIGMsZD0wO2lmKHMoYSkpe2ZvcihjPWEubGVuZ3RoO2M+ZDtkKyspaWYoYi5jYWxsKGFbZF0sZCxhW2RdKT09PSExKWJyZWFrfWVsc2UgZm9yKGQgaW4gYSlpZihiLmNhbGwoYVtkXSxkLGFbZF0pPT09ITEpYnJlYWs7cmV0dXJuIGF9LHRyaW06ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/IiI6KGErIiIpLnJlcGxhY2UobywiIil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBjPWJ8fFtdO3JldHVybiBudWxsIT1hJiYocyhPYmplY3QoYSkpP24ubWVyZ2UoYywic3RyaW5nIj09dHlwZW9mIGE/W2FdOmEpOmcuY2FsbChjLGEpKSxjfSxpbkFycmF5OmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZihiKXtpZihoKXJldHVybiBoLmNhbGwoYixhLGMpO2ZvcihkPWIubGVuZ3RoLGM9Yz8wPmM/TWF0aC5tYXgoMCxkK2MpOmM6MDtkPmM7YysrKWlmKGMgaW4gYiYmYltjXT09PWEpcmV0dXJuIGN9cmV0dXJuLTF9LG1lcmdlOmZ1bmN0aW9uKGEsYil7dmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO3doaWxlKGM+ZClhW2UrK109YltkKytdO2lmKGMhPT1jKXdoaWxlKHZvaWQgMCE9PWJbZF0pYVtlKytdPWJbZCsrXTtyZXR1cm4gYS5sZW5ndGg9ZSxhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQsZT1bXSxmPTAsZz1hLmxlbmd0aCxoPSFjO2c+ZjtmKyspZD0hYihhW2ZdLGYpLGQhPT1oJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxnPTAsaD1bXTtpZihzKGEpKWZvcihkPWEubGVuZ3RoO2Q+ZztnKyspZT1iKGFbZ10sZyxjKSxudWxsIT1lJiZoLnB1c2goZSk7ZWxzZSBmb3IoZyBpbiBhKWU9YihhW2ddLGcsYyksbnVsbCE9ZSYmaC5wdXNoKGUpO3JldHVybiBmLmFwcGx5KFtdLGgpfSxndWlkOjEscHJveHk6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGY7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBiJiYoZj1hW2JdLGI9YSxhPWYpLG4uaXNGdW5jdGlvbihhKT8oYz1lLmNhbGwoYXJndW1lbnRzLDIpLGQ9ZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShifHx0aGlzLGMuY29uY2F0KGUuY2FsbChhcmd1bWVudHMpKSl9LGQuZ3VpZD1hLmd1aWQ9YS5ndWlkfHxuLmd1aWQrKyxkKTp2b2lkIDB9LG5vdzpmdW5jdGlvbigpe3JldHVybituZXcgRGF0ZX0sc3VwcG9ydDpsfSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG4uZm5bU3ltYm9sLml0ZXJhdG9yXT1jW1N5bWJvbC5pdGVyYXRvcl0pLG4uZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtpWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO2Z1bmN0aW9uIHMoYSl7dmFyIGI9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLGM9bi50eXBlKGEpO3JldHVybiJmdW5jdGlvbiI9PT1jfHxuLmlzV2luZG93KGEpPyExOiJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBiJiZiPjAmJmItMSBpbiBhfXZhciB0PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGksaixrLGwsbSxuLG8scCxxLHIscyx0LHU9InNpenpsZSIrMSpuZXcgRGF0ZSx2PWEuZG9jdW1lbnQsdz0wLHg9MCx5PWdhKCksej1nYSgpLEE9Z2EoKSxCPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9PT1iJiYobD0hMCksMH0sQz0xPDwzMSxEPXt9Lmhhc093blByb3BlcnR5LEU9W10sRj1FLnBvcCxHPUUucHVzaCxIPUUucHVzaCxJPUUuc2xpY2UsSj1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7ZD5jO2MrKylpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sSz0iY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQiLEw9IltcXHgyMFxcdFxcclxcblxcZl0iLE09Iig/OlxcXFwufFtcXHctXXxbXlxceDAwLVxceGEwXSkrIixOPSJcXFsiK0wrIiooIitNKyIpKD86IitMKyIqKFsqXiR8IX5dPz0pIitMKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrTSsiKSl8KSIrTCsiKlxcXSIsTz0iOigiK00rIikoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXwiK04rIikqKXwuKilcXCl8KSIsUD1uZXcgUmVnRXhwKEwrIisiLCJnIiksUT1uZXcgUmVnRXhwKCJeIitMKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK0wrIiskIiwiZyIpLFI9bmV3IFJlZ0V4cCgiXiIrTCsiKiwiK0wrIioiKSxTPW5ldyBSZWdFeHAoIl4iK0wrIiooWz4rfl18IitMKyIpIitMKyIqIiksVD1uZXcgUmVnRXhwKCI9IitMKyIqKFteXFxdJ1wiXSo/KSIrTCsiKlxcXSIsImciKSxVPW5ldyBSZWdFeHAoTyksVj1uZXcgUmVnRXhwKCJeIitNKyIkIiksVz17SUQ6bmV3IFJlZ0V4cCgiXiMoIitNKyIpIiksQ0xBU1M6bmV3IFJlZ0V4cCgiXlxcLigiK00rIikiKSxUQUc6bmV3IFJlZ0V4cCgiXigiK00rInxbKl0pIiksQVRUUjpuZXcgUmVnRXhwKCJeIitOKSxQU0VVRE86bmV3IFJlZ0V4cCgiXiIrTyksQ0hJTEQ6bmV3IFJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoIitMKyIqKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitMKyIqKD86KFsrLV18KSIrTCsiKihcXGQrKXwpKSIrTCsiKlxcKXwpIiwiaSIpLGJvb2w6bmV3IFJlZ0V4cCgiXig/OiIrSysiKSQiLCJpIiksbmVlZHNDb250ZXh0Om5ldyBSZWdFeHAoIl4iK0wrIipbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg/OlxcKCIrTCsiKigoPzotXFxkKT9cXGQqKSIrTCsiKlxcKXwpKD89W14tXXwkKSIsImkiKX0sWD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFk9L15oXGQkL2ksWj0vXltee10rXHtccypcW25hdGl2ZSBcdy8sJD0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLF89L1srfl0vLGFhPS8nfFxcL2csYmE9bmV3IFJlZ0V4cCgiXFxcXChbXFxkYS1mXXsxLDZ9IitMKyI/fCgiK0wrIil8LikiLCJpZyIpLGNhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD0iMHgiK2ItNjU1MzY7cmV0dXJuIGQhPT1kfHxjP2I6MD5kP1N0cmluZy5mcm9tQ2hhckNvZGUoZCs2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShkPj4xMHw1NTI5NiwxMDIzJmR8NTYzMjApfSxkYT1mdW5jdGlvbigpe20oKX07dHJ5e0guYXBwbHkoRT1JLmNhbGwodi5jaGlsZE5vZGVzKSx2LmNoaWxkTm9kZXMpLEVbdi5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZWEpe0g9e2FwcGx5OkUubGVuZ3RoP2Z1bmN0aW9uKGEsYil7Ry5hcHBseShhLEkuY2FsbChiKSl9OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5sZW5ndGgsZD0wO3doaWxlKGFbYysrXT1iW2QrK10pO2EubGVuZ3RoPWMtMX19fWZ1bmN0aW9uIGZhKGEsYixkLGUpe3ZhciBmLGgsaixrLGwsbyxyLHMsdz1iJiZiLm93bmVyRG9jdW1lbnQseD1iP2Iubm9kZVR5cGU6OTtpZihkPWR8fFtdLCJzdHJpbmciIT10eXBlb2YgYXx8IWF8fDEhPT14JiY5IT09eCYmMTEhPT14KXJldHVybiBkO2lmKCFlJiYoKGI/Yi5vd25lckRvY3VtZW50fHxiOnYpIT09biYmbShiKSxiPWJ8fG4scCkpe2lmKDExIT09eCYmKG89JC5leGVjKGEpKSlpZihmPW9bMV0pe2lmKDk9PT14KXtpZighKGo9Yi5nZXRFbGVtZW50QnlJZChmKSkpcmV0dXJuIGQ7aWYoai5pZD09PWYpcmV0dXJuIGQucHVzaChqKSxkfWVsc2UgaWYodyYmKGo9dy5nZXRFbGVtZW50QnlJZChmKSkmJnQoYixqKSYmai5pZD09PWYpcmV0dXJuIGQucHVzaChqKSxkfWVsc2V7aWYob1syXSlyZXR1cm4gSC5hcHBseShkLGIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYSkpLGQ7aWYoKGY9b1szXSkmJmMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KGQsYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGYpKSxkfWlmKGMucXNhJiYhQVthKyIgIl0mJighcXx8IXEudGVzdChhKSkpe2lmKDEhPT14KXc9YixzPWE7ZWxzZSBpZigib2JqZWN0IiE9PWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7KGs9Yi5nZXRBdHRyaWJ1dGUoImlkIikpP2s9ay5yZXBsYWNlKGFhLCJcXCQmIik6Yi5zZXRBdHRyaWJ1dGUoImlkIixrPXUpLHI9ZyhhKSxoPXIubGVuZ3RoLGw9Vi50ZXN0KGspPyIjIitrOiJbaWQ9JyIraysiJ10iO3doaWxlKGgtLSlyW2hdPWwrIiAiK3FhKHJbaF0pO3M9ci5qb2luKCIsIiksdz1fLnRlc3QoYSkmJm9hKGIucGFyZW50Tm9kZSl8fGJ9aWYocyl0cnl7cmV0dXJuIEguYXBwbHkoZCx3LnF1ZXJ5U2VsZWN0b3JBbGwocykpLGR9Y2F0Y2goeSl7fWZpbmFsbHl7az09PXUmJmIucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGkoYS5yZXBsYWNlKFEsIiQxIiksYixkLGUpfWZ1bmN0aW9uIGdhKCl7dmFyIGE9W107ZnVuY3Rpb24gYihjLGUpe3JldHVybiBhLnB1c2goYysiICIpPmQuY2FjaGVMZW5ndGgmJmRlbGV0ZSBiW2Euc2hpZnQoKV0sYltjKyIgIl09ZX1yZXR1cm4gYn1mdW5jdGlvbiBoYShhKXtyZXR1cm4gYVt1XT0hMCxhfWZ1bmN0aW9uIGlhKGEpe3ZhciBiPW4uY3JlYXRlRWxlbWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1maW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbH19ZnVuY3Rpb24gamEoYSxiKXt2YXIgYz1hLnNwbGl0KCJ8IiksZT1jLmxlbmd0aDt3aGlsZShlLS0pZC5hdHRySGFuZGxlW2NbZV1dPWJ9ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1iJiZhLGQ9YyYmMT09PWEubm9kZVR5cGUmJjE9PT1iLm5vZGVUeXBlJiYofmIuc291cmNlSW5kZXh8fEMpLSh+YS5zb3VyY2VJbmRleHx8Qyk7aWYoZClyZXR1cm4gZDtpZihjKXdoaWxlKGM9Yy5uZXh0U2libGluZylpZihjPT09YilyZXR1cm4tMTtyZXR1cm4gYT8xOi0xfWZ1bmN0aW9uIGxhKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIG1hKGEpe3JldHVybiBmdW5jdGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuKCJpbnB1dCI9PT1jfHwiYnV0dG9uIj09PWMpJiZiLnR5cGU9PT1hfX1mdW5jdGlvbiBuYShhKXtyZXR1cm4gaGEoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsaGEoZnVuY3Rpb24oYyxkKXt2YXIgZSxmPWEoW10sYy5sZW5ndGgsYiksZz1mLmxlbmd0aDt3aGlsZShnLS0pY1tlPWZbZ11dJiYoY1tlXT0hKGRbZV09Y1tlXSkpfSl9KX1mdW5jdGlvbiBvYShhKXtyZXR1cm4gYSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZhfWM9ZmEuc3VwcG9ydD17fSxmPWZhLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYj8iSFRNTCIhPT1iLm5vZGVOYW1lOiExfSxtPWZhLnNldERvY3VtZW50PWZ1bmN0aW9uKGEpe3ZhciBiLGUsZz1hP2Eub3duZXJEb2N1bWVudHx8YTp2O3JldHVybiBnIT09biYmOT09PWcubm9kZVR5cGUmJmcuZG9jdW1lbnRFbGVtZW50PyhuPWcsbz1uLmRvY3VtZW50RWxlbWVudCxwPSFmKG4pLChlPW4uZGVmYXVsdFZpZXcpJiZlLnRvcCE9PWUmJihlLmFkZEV2ZW50TGlzdGVuZXI/ZS5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGRhLCExKTplLmF0dGFjaEV2ZW50JiZlLmF0dGFjaEV2ZW50KCJvbnVubG9hZCIsZGEpKSxjLmF0dHJpYnV0ZXM9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhc3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksYy5nZXRFbGVtZW50c0J5VGFnTmFtZT1pYShmdW5jdGlvbihhKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChuLmNyZWF0ZUNvbW1lbnQoIiIpKSwhYS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGMuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1aLnRlc3Qobi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxjLmdldEJ5SWQ9aWEoZnVuY3Rpb24oYSl7cmV0dXJuIG8uYXBwZW5kQ2hpbGQoYSkuaWQ9dSwhbi5nZXRFbGVtZW50c0J5TmFtZXx8IW4uZ2V0RWxlbWVudHNCeU5hbWUodSkubGVuZ3RofSksYy5nZXRCeUlkPyhkLmZpbmQuSUQ9ZnVuY3Rpb24oYSxiKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudEJ5SWQmJnApe3ZhciBjPWIuZ2V0RWxlbWVudEJ5SWQoYSk7cmV0dXJuIGM/W2NdOltdfX0sZC5maWx0ZXIuSUQ9ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKGJhLGNhKTtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlKCJpZCIpPT09Yn19KTooZGVsZXRlIGQuZmluZC5JRCxkLmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpO3JldHVybiBmdW5jdGlvbihhKXt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZ2V0QXR0cmlidXRlTm9kZSYmYS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiBjJiZjLnZhbHVlPT09Yn19KSxkLmZpbmQuVEFHPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWU/ZnVuY3Rpb24oYSxiKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0RWxlbWVudHNCeVRhZ05hbWU/Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKTpjLnFzYT9iLnF1ZXJ5U2VsZWN0b3JBbGwoYSk6dm9pZCAwfTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9W10sZT0wLGY9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKTtpZigiKiI9PT1hKXt3aGlsZShjPWZbZSsrXSkxPT09Yy5ub2RlVHlwZSYmZC5wdXNoKGMpO3JldHVybiBkfXJldHVybiBmfSxkLmZpbmQuQ0xBU1M9Yy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZmdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZwP2IuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKTp2b2lkIDB9LHI9W10scT1bXSwoYy5xc2E9Wi50ZXN0KG4ucXVlcnlTZWxlY3RvckFsbCkpJiYoaWEoZnVuY3Rpb24oYSl7by5hcHBlbmRDaGlsZChhKS5pbm5lckhUTUw9IjxhIGlkPSciK3UrIic+PC9hPjxzZWxlY3QgaWQ9JyIrdSsiLVxyXFwnIG1zYWxsb3djYXB0dXJlPScnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IixhLnF1ZXJ5U2VsZWN0b3JBbGwoIlttc2FsbG93Y2FwdHVyZV49JyddIikubGVuZ3RoJiZxLnB1c2goIlsqXiRdPSIrTCsiKig/OicnfFwiXCIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxxLnB1c2goIlxcWyIrTCsiKig/OnZhbHVlfCIrSysiKSIpLGEucXVlcnlTZWxlY3RvckFsbCgiW2lkfj0iK3UrIi1dIikubGVuZ3RofHxxLnB1c2goIn49IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8cS5wdXNoKCI6Y2hlY2tlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiYSMiK3UrIisqIikubGVuZ3RofHxxLnB1c2goIi4jLitbK35dIil9KSxpYShmdW5jdGlvbihhKXt2YXIgYj1uLmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Yi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJoaWRkZW4iKSxhLmFwcGVuZENoaWxkKGIpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPWRdIikubGVuZ3RoJiZxLnB1c2goIm5hbWUiK0wrIipbKl4kfCF+XT89IiksYS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aHx8cS5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEucXVlcnlTZWxlY3RvckFsbCgiKiw6eCIpLHEucHVzaCgiLC4qOiIpfSkpLChjLm1hdGNoZXNTZWxlY3Rvcj1aLnRlc3Qocz1vLm1hdGNoZXN8fG8ud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxvLm1vek1hdGNoZXNTZWxlY3Rvcnx8by5vTWF0Y2hlc1NlbGVjdG9yfHxvLm1zTWF0Y2hlc1NlbGVjdG9yKSkmJmlhKGZ1bmN0aW9uKGEpe2MuZGlzY29ubmVjdGVkTWF0Y2g9cy5jYWxsKGEsImRpdiIpLHMuY2FsbChhLCJbcyE9JyddOngiKSxyLnB1c2goIiE9IixPKX0pLHE9cS5sZW5ndGgmJm5ldyBSZWdFeHAocS5qb2luKCJ8IikpLHI9ci5sZW5ndGgmJm5ldyBSZWdFeHAoci5qb2luKCJ8IikpLGI9Wi50ZXN0KG8uY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHQ9Ynx8Wi50ZXN0KG8uY29udGFpbnMpP2Z1bmN0aW9uKGEsYil7dmFyIGM9OT09PWEubm9kZVR5cGU/YS5kb2N1bWVudEVsZW1lbnQ6YSxkPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWR8fCEoIWR8fDEhPT1kLm5vZGVUeXBlfHwhKGMuY29udGFpbnM/Yy5jb250YWlucyhkKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGQpKSl9OmZ1bmN0aW9uKGEsYil7aWYoYil3aGlsZShiPWIucGFyZW50Tm9kZSlpZihiPT09YSlyZXR1cm4hMDtyZXR1cm4hMX0sQj1iP2Z1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgZD0hYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gZD9kOihkPShhLm93bmVyRG9jdW1lbnR8fGEpPT09KGIub3duZXJEb2N1bWVudHx8Yik/YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKToxLDEmZHx8IWMuc29ydERldGFjaGVkJiZiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGEpPT09ZD9hPT09bnx8YS5vd25lckRvY3VtZW50PT09diYmdCh2LGEpPy0xOmI9PT1ufHxiLm93bmVyRG9jdW1lbnQ9PT12JiZ0KHYsYik/MTprP0ooayxhKS1KKGssYik6MDo0JmQ/LTE6MSl9OmZ1bmN0aW9uKGEsYil7aWYoYT09PWIpcmV0dXJuIGw9ITAsMDt2YXIgYyxkPTAsZT1hLnBhcmVudE5vZGUsZj1iLnBhcmVudE5vZGUsZz1bYV0saD1bYl07aWYoIWV8fCFmKXJldHVybiBhPT09bj8tMTpiPT09bj8xOmU/LTE6Zj8xOms/SihrLGEpLUooayxiKTowO2lmKGU9PT1mKXJldHVybiBrYShhLGIpO2M9YTt3aGlsZShjPWMucGFyZW50Tm9kZSlnLnVuc2hpZnQoYyk7Yz1iO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5zaGlmdChjKTt3aGlsZShnW2RdPT09aFtkXSlkKys7cmV0dXJuIGQ/a2EoZ1tkXSxoW2RdKTpnW2RdPT09dj8tMTpoW2RdPT09dj8xOjB9LG4pOm59LGZhLm1hdGNoZXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZmEoYSxudWxsLG51bGwsYil9LGZhLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihhLGIpe2lmKChhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSxiPWIucmVwbGFjZShULCI9JyQxJ10iKSxjLm1hdGNoZXNTZWxlY3RvciYmcCYmIUFbYisiICJdJiYoIXJ8fCFyLnRlc3QoYikpJiYoIXF8fCFxLnRlc3QoYikpKXRyeXt2YXIgZD1zLmNhbGwoYSxiKTtpZihkfHxjLmRpc2Nvbm5lY3RlZE1hdGNofHxhLmRvY3VtZW50JiYxMSE9PWEuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIGR9Y2F0Y2goZSl7fXJldHVybiBmYShiLG4sbnVsbCxbYV0pLmxlbmd0aD4wfSxmYS5jb250YWlucz1mdW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09biYmbShhKSx0KGEsYil9LGZhLmF0dHI9ZnVuY3Rpb24oYSxiKXsoYS5vd25lckRvY3VtZW50fHxhKSE9PW4mJm0oYSk7dmFyIGU9ZC5hdHRySGFuZGxlW2IudG9Mb3dlckNhc2UoKV0sZj1lJiZELmNhbGwoZC5hdHRySGFuZGxlLGIudG9Mb3dlckNhc2UoKSk/ZShhLGIsIXApOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09Zj9mOmMuYXR0cmlidXRlc3x8IXA/YS5nZXRBdHRyaWJ1dGUoYik6KGY9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZi5zcGVjaWZpZWQ/Zi52YWx1ZTpudWxsfSxmYS5lcnJvcj1mdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYSl9LGZhLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsZD1bXSxlPTAsZj0wO2lmKGw9IWMuZGV0ZWN0RHVwbGljYXRlcyxrPSFjLnNvcnRTdGFibGUmJmEuc2xpY2UoMCksYS5zb3J0KEIpLGwpe3doaWxlKGI9YVtmKytdKWI9PT1hW2ZdJiYoZT1kLnB1c2goZikpO3doaWxlKGUtLSlhLnNwbGljZShkW2VdLDEpfXJldHVybiBrPW51bGwsYX0sZT1mYS5nZXRUZXh0PWZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZD0wLGY9YS5ub2RlVHlwZTtpZihmKXtpZigxPT09Znx8OT09PWZ8fDExPT09Zil7aWYoInN0cmluZyI9PXR5cGVvZiBhLnRleHRDb250ZW50KXJldHVybiBhLnRleHRDb250ZW50O2ZvcihhPWEuZmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZyljKz1lKGEpfWVsc2UgaWYoMz09PWZ8fDQ9PT1mKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKGI9YVtkKytdKWMrPWUoYik7cmV0dXJuIGN9LGQ9ZmEuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86aGEsbWF0Y2g6VyxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS5yZXBsYWNlKGJhLGNhKSxhWzNdPShhWzNdfHxhWzRdfHxhWzVdfHwiIikucmVwbGFjZShiYSxjYSksIn49Ij09PWFbMl0mJihhWzNdPSIgIithWzNdKyIgIiksYS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihhKXtyZXR1cm4gYVsxXT1hWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1hWzFdLnNsaWNlKDAsMyk/KGFbM118fGZhLmVycm9yKGFbMF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkpOmFbM10mJmZhLmVycm9yKGFbMF0pLGF9LFBTRVVETzpmdW5jdGlvbihhKXt2YXIgYixjPSFhWzZdJiZhWzJdO3JldHVybiBXLkNISUxELnRlc3QoYVswXSk/bnVsbDooYVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJlUudGVzdChjKSYmKGI9ZyhjLCEwKSkmJihiPWMuaW5kZXhPZigiKSIsYy5sZW5ndGgtYiktYy5sZW5ndGgpJiYoYVswXT1hWzBdLnNsaWNlKDAsYiksYVsyXT1jLnNsaWNlKDAsYikpLGEuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihhKXt2YXIgYj1hLnJlcGxhY2UoYmEsY2EpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09YT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihhKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yn19LENMQVNTOmZ1bmN0aW9uKGEpe3ZhciBiPXlbYSsiICJdO3JldHVybiBifHwoYj1uZXcgUmVnRXhwKCIoXnwiK0wrIikiK2ErIigiK0wrInwkKSIpKSYmeShhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmluZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKGQpe3ZhciBlPWZhLmF0dHIoZCxhKTtyZXR1cm4gbnVsbD09ZT8iIT0iPT09YjpiPyhlKz0iIiwiPSI9PT1iP2U9PT1jOiIhPSI9PT1iP2UhPT1jOiJePSI9PT1iP2MmJjA9PT1lLmluZGV4T2YoYyk6Iio9Ij09PWI/YyYmZS5pbmRleE9mKGMpPi0xOiIkPSI9PT1iP2MmJmUuc2xpY2UoLWMubGVuZ3RoKT09PWM6In49Ij09PWI/KCIgIitlLnJlcGxhY2UoUCwiICIpKyIgIikuaW5kZXhPZihjKT4tMToifD0iPT09Yj9lPT09Y3x8ZS5zbGljZSgwLGMubGVuZ3RoKzEpPT09YysiLSI6ITEpOiEwfX0sQ0hJTEQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj0ibnRoIiE9PWEuc2xpY2UoMCwzKSxnPSJsYXN0IiE9PWEuc2xpY2UoLTQpLGg9Im9mLXR5cGUiPT09YjtyZXR1cm4gMT09PWQmJjA9PT1lP2Z1bmN0aW9uKGEpe3JldHVybiEhYS5wYXJlbnROb2RlfTpmdW5jdGlvbihiLGMsaSl7dmFyIGosayxsLG0sbixvLHA9ZiE9PWc/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixxPWIucGFyZW50Tm9kZSxyPWgmJmIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxzPSFpJiYhaCx0PSExO2lmKHEpe2lmKGYpe3doaWxlKHApe209Yjt3aGlsZShtPW1bcF0paWYoaD9tLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1tLm5vZGVUeXBlKXJldHVybiExO289cD0ib25seSI9PT1hJiYhbyYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihvPVtnP3EuZmlyc3RDaGlsZDpxLmxhc3RDaGlsZF0sZyYmcyl7bT1xLGw9bVt1XXx8KG1bdV09e30pLGs9bFttLnVuaXF1ZUlEXXx8KGxbbS51bmlxdWVJRF09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSx0PW4mJmpbMl0sbT1uJiZxLmNoaWxkTm9kZXNbbl07d2hpbGUobT0rK24mJm0mJm1bcF18fCh0PW49MCl8fG8ucG9wKCkpaWYoMT09PW0ubm9kZVR5cGUmJisrdCYmbT09PWIpe2tbYV09W3csbix0XTticmVha319ZWxzZSBpZihzJiYobT1iLGw9bVt1XXx8KG1bdV09e30pLGs9bFttLnVuaXF1ZUlEXXx8KGxbbS51bmlxdWVJRF09e30pLGo9a1thXXx8W10sbj1qWzBdPT09dyYmalsxXSx0PW4pLHQ9PT0hMSl3aGlsZShtPSsrbiYmbSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigoaD9tLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1yOjE9PT1tLm5vZGVUeXBlKSYmKyt0JiYocyYmKGw9bVt1XXx8KG1bdV09e30pLGs9bFttLnVuaXF1ZUlEXXx8KGxbbS51bmlxdWVJRF09e30pLGtbYV09W3csdF0pLG09PT1iKSlicmVhaztyZXR1cm4gdC09ZSx0PT09ZHx8dCVkPT09MCYmdC9kPj0wfX19LFBTRVVETzpmdW5jdGlvbihhLGIpe3ZhciBjLGU9ZC5wc2V1ZG9zW2FdfHxkLnNldEZpbHRlcnNbYS50b0xvd2VyQ2FzZSgpXXx8ZmEuZXJyb3IoInVuc3VwcG9ydGVkIHBzZXVkbzogIithKTtyZXR1cm4gZVt1XT9lKGIpOmUubGVuZ3RoPjE/KGM9W2EsYSwiIixiXSxkLnNldEZpbHRlcnMuaGFzT3duUHJvcGVydHkoYS50b0xvd2VyQ2FzZSgpKT9oYShmdW5jdGlvbihhLGMpe3ZhciBkLGY9ZShhLGIpLGc9Zi5sZW5ndGg7d2hpbGUoZy0tKWQ9SihhLGZbZ10pLGFbZF09IShjW2RdPWZbZ10pfSk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwwLGMpfSk6ZX19LHBzZXVkb3M6e25vdDpoYShmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGQ9aChhLnJlcGxhY2UoUSwiJDEiKSk7cmV0dXJuIGRbdV0/aGEoZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZz1kKGEsbnVsbCxlLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1nW2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZSxmKXtyZXR1cm4gYlswXT1hLGQoYixudWxsLGYsYyksYlswXT1udWxsLCFjLnBvcCgpfX0pLGhhczpoYShmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oYil7cmV0dXJuIGZhKGEsYikubGVuZ3RoPjB9fSksY29udGFpbnM6aGEoZnVuY3Rpb24oYSl7cmV0dXJuIGE9YS5yZXBsYWNlKGJhLGNhKSxmdW5jdGlvbihiKXtyZXR1cm4oYi50ZXh0Q29udGVudHx8Yi5pbm5lclRleHR8fGUoYikpLmluZGV4T2YoYSk+LTF9fSksbGFuZzpoYShmdW5jdGlvbihhKXtyZXR1cm4gVi50ZXN0KGF8fCIiKXx8ZmEuZXJyb3IoInVuc3VwcG9ydGVkIGxhbmc6ICIrYSksYT1hLnJlcGxhY2UoYmEsY2EpLnRvTG93ZXJDYXNlKCksZnVuY3Rpb24oYil7dmFyIGM7ZG8gaWYoYz1wP2IubGFuZzpiLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8Yi5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4gYz1jLnRvTG93ZXJDYXNlKCksYz09PWF8fDA9PT1jLmluZGV4T2YoYSsiLSIpO3doaWxlKChiPWIucGFyZW50Tm9kZSkmJjE9PT1iLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oYil7dmFyIGM9YS5sb2NhdGlvbiYmYS5sb2NhdGlvbi5oYXNoO3JldHVybiBjJiZjLnNsaWNlKDEpPT09Yi5pZH0scm9vdDpmdW5jdGlvbihhKXtyZXR1cm4gYT09PW99LGZvY3VzOmZ1bmN0aW9uKGEpe3JldHVybiBhPT09bi5hY3RpdmVFbGVtZW50JiYoIW4uaGFzRm9jdXN8fG4uaGFzRm9jdXMoKSkmJiEhKGEudHlwZXx8YS5ocmVmfHx+YS50YWJJbmRleCl9LGVuYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMX0sZGlzYWJsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuZGlzYWJsZWQ9PT0hMH0sY2hlY2tlZDpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiEhYS5jaGVja2VkfHwib3B0aW9uIj09PWImJiEhYS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsYS5zZWxlY3RlZD09PSEwfSxlbXB0eTpmdW5jdGlvbihhKXtmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpaWYoYS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oYSl7cmV0dXJuIWQucHNldWRvcy5lbXB0eShhKX0saGVhZGVyOmZ1bmN0aW9uKGEpe3JldHVybiBZLnRlc3QoYS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGEpe3JldHVybiBYLnRlc3QoYS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihhKXt2YXIgYj1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PWImJiJidXR0b24iPT09YS50eXBlfHwiYnV0dG9uIj09PWJ9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0dXJuImlucHV0Ij09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09YS50eXBlJiYobnVsbD09KGI9YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PWIudG9Mb3dlckNhc2UoKSl9LGZpcnN0Om5hKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDpuYShmdW5jdGlvbihhLGIpe3JldHVybltiLTFdfSksZXE6bmEoZnVuY3Rpb24oYSxiLGMpe3JldHVyblswPmM/YytiOmNdfSksZXZlbjpuYShmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wO2I+YztjKz0yKWEucHVzaChjKTtyZXR1cm4gYX0pLG9kZDpuYShmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2I+YztjKz0yKWEucHVzaChjKTtyZXR1cm4gYX0pLGx0Om5hKGZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGQ9MD5jP2MrYjpjOy0tZD49MDspYS5wdXNoKGQpO3JldHVybiBhfSksZ3Q6bmEoZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wPmM/YytiOmM7KytkPGI7KWEucHVzaChkKTtyZXR1cm4gYX0pfX0sZC5wc2V1ZG9zLm50aD1kLnBzZXVkb3MuZXE7Zm9yKGIgaW57cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pZC5wc2V1ZG9zW2JdPWxhKGIpO2ZvcihiIGlue3N1Ym1pdDohMCxyZXNldDohMH0pZC5wc2V1ZG9zW2JdPW1hKGIpO2Z1bmN0aW9uIHBhKCl7fXBhLnByb3RvdHlwZT1kLmZpbHRlcnM9ZC5wc2V1ZG9zLGQuc2V0RmlsdGVycz1uZXcgcGEsZz1mYS50b2tlbml6ZT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZixnLGgsaSxqLGs9elthKyIgIl07aWYoaylyZXR1cm4gYj8wOmsuc2xpY2UoMCk7aD1hLGk9W10saj1kLnByZUZpbHRlcjt3aGlsZShoKXtjJiYhKGU9Ui5leGVjKGgpKXx8KGUmJihoPWguc2xpY2UoZVswXS5sZW5ndGgpfHxoKSxpLnB1c2goZj1bXSkpLGM9ITEsKGU9Uy5leGVjKGgpKSYmKGM9ZS5zaGlmdCgpLGYucHVzaCh7dmFsdWU6Yyx0eXBlOmVbMF0ucmVwbGFjZShRLCIgIil9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtmb3IoZyBpbiBkLmZpbHRlcikhKGU9V1tnXS5leGVjKGgpKXx8altnXSYmIShlPWpbZ10oZSkpfHwoYz1lLnNoaWZ0KCksZi5wdXNoKHt2YWx1ZTpjLHR5cGU6ZyxtYXRjaGVzOmV9KSxoPWguc2xpY2UoYy5sZW5ndGgpKTtpZighYylicmVha31yZXR1cm4gYj9oLmxlbmd0aDpoP2ZhLmVycm9yKGEpOnooYSxpKS5zbGljZSgwKX07ZnVuY3Rpb24gcWEoYSl7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aCxkPSIiO2M+YjtiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4gZH1mdW5jdGlvbiByYShhLGIsYyl7dmFyIGQ9Yi5kaXIsZT1jJiYicGFyZW50Tm9kZSI9PT1kLGY9eCsrO3JldHVybiBiLmZpcnN0P2Z1bmN0aW9uKGIsYyxmKXt3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpcmV0dXJuIGEoYixjLGYpfTpmdW5jdGlvbihiLGMsZyl7dmFyIGgsaSxqLGs9W3csZl07aWYoZyl7d2hpbGUoYj1iW2RdKWlmKCgxPT09Yi5ub2RlVHlwZXx8ZSkmJmEoYixjLGcpKXJldHVybiEwfWVsc2Ugd2hpbGUoYj1iW2RdKWlmKDE9PT1iLm5vZGVUeXBlfHxlKXtpZihqPWJbdV18fChiW3VdPXt9KSxpPWpbYi51bmlxdWVJRF18fChqW2IudW5pcXVlSURdPXt9KSwoaD1pW2RdKSYmaFswXT09PXcmJmhbMV09PT1mKXJldHVybiBrWzJdPWhbMl07aWYoaVtkXT1rLGtbMl09YShiLGMsZykpcmV0dXJuITB9fX1mdW5jdGlvbiBzYShhKXtyZXR1cm4gYS5sZW5ndGg+MT9mdW5jdGlvbihiLGMsZCl7dmFyIGU9YS5sZW5ndGg7d2hpbGUoZS0tKWlmKCFhW2VdKGIsYyxkKSlyZXR1cm4hMTtyZXR1cm4hMH06YVswXX1mdW5jdGlvbiB0YShhLGIsYyl7Zm9yKHZhciBkPTAsZT1iLmxlbmd0aDtlPmQ7ZCsrKWZhKGEsYltkXSxjKTtyZXR1cm4gY31mdW5jdGlvbiB1YShhLGIsYyxkLGUpe2Zvcih2YXIgZixnPVtdLGg9MCxpPWEubGVuZ3RoLGo9bnVsbCE9YjtpPmg7aCsrKShmPWFbaF0pJiYoYyYmIWMoZixkLGUpfHwoZy5wdXNoKGYpLGomJmIucHVzaChoKSkpO3JldHVybiBnfWZ1bmN0aW9uIHZhKGEsYixjLGQsZSxmKXtyZXR1cm4gZCYmIWRbdV0mJihkPXZhKGQpKSxlJiYhZVt1XSYmKGU9dmEoZSxmKSksaGEoZnVuY3Rpb24oZixnLGgsaSl7dmFyIGosayxsLG09W10sbj1bXSxvPWcubGVuZ3RoLHA9Znx8dGEoYnx8IioiLGgubm9kZVR5cGU/W2hdOmgsW10pLHE9IWF8fCFmJiZiP3A6dWEocCxtLGEsaCxpKSxyPWM/ZXx8KGY/YTpvfHxkKT9bXTpnOnE7aWYoYyYmYyhxLHIsaCxpKSxkKXtqPXVhKHIsbiksZChqLFtdLGgsaSksaz1qLmxlbmd0aDt3aGlsZShrLS0pKGw9altrXSkmJihyW25ba11dPSEocVtuW2tdXT1sKSl9aWYoZil7aWYoZXx8YSl7aWYoZSl7aj1bXSxrPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmai5wdXNoKHFba109bCk7ZShudWxsLHI9W10saixpKX1rPXIubGVuZ3RoO3doaWxlKGstLSkobD1yW2tdKSYmKGo9ZT9KKGYsbCk6bVtrXSk+LTEmJihmW2pdPSEoZ1tqXT1sKSl9fWVsc2Ugcj11YShyPT09Zz9yLnNwbGljZShvLHIubGVuZ3RoKTpyKSxlP2UobnVsbCxnLHIsaSk6SC5hcHBseShnLHIpfSl9ZnVuY3Rpb24gd2EoYSl7Zm9yKHZhciBiLGMsZSxmPWEubGVuZ3RoLGc9ZC5yZWxhdGl2ZVthWzBdLnR5cGVdLGg9Z3x8ZC5yZWxhdGl2ZVsiICJdLGk9Zz8xOjAsaz1yYShmdW5jdGlvbihhKXtyZXR1cm4gYT09PWJ9LGgsITApLGw9cmEoZnVuY3Rpb24oYSl7cmV0dXJuIEooYixhKT4tMX0saCwhMCksbT1bZnVuY3Rpb24oYSxjLGQpe3ZhciBlPSFnJiYoZHx8YyE9PWopfHwoKGI9Yykubm9kZVR5cGU/ayhhLGMsZCk6bChhLGMsZCkpO3JldHVybiBiPW51bGwsZX1dO2Y+aTtpKyspaWYoYz1kLnJlbGF0aXZlW2FbaV0udHlwZV0pbT1bcmEoc2EobSksYyldO2Vsc2V7aWYoYz1kLmZpbHRlclthW2ldLnR5cGVdLmFwcGx5KG51bGwsYVtpXS5tYXRjaGVzKSxjW3VdKXtmb3IoZT0rK2k7Zj5lO2UrKylpZihkLnJlbGF0aXZlW2FbZV0udHlwZV0pYnJlYWs7cmV0dXJuIHZhKGk+MSYmc2EobSksaT4xJiZxYShhLnNsaWNlKDAsaS0xKS5jb25jYXQoe3ZhbHVlOiIgIj09PWFbaS0yXS50eXBlPyIqIjoiIn0pKS5yZXBsYWNlKFEsIiQxIiksYyxlPmkmJndhKGEuc2xpY2UoaSxlKSksZj5lJiZ3YShhPWEuc2xpY2UoZSkpLGY+ZSYmcWEoYSkpfW0ucHVzaChjKX1yZXR1cm4gc2EobSl9ZnVuY3Rpb24geGEoYSxiKXt2YXIgYz1iLmxlbmd0aD4wLGU9YS5sZW5ndGg+MCxmPWZ1bmN0aW9uKGYsZyxoLGksayl7dmFyIGwsbyxxLHI9MCxzPSIwIix0PWYmJltdLHU9W10sdj1qLHg9Znx8ZSYmZC5maW5kLlRBRygiKiIsaykseT13Kz1udWxsPT12PzE6TWF0aC5yYW5kb20oKXx8LjEsej14Lmxlbmd0aDtmb3IoayYmKGo9Zz09PW58fGd8fGspO3MhPT16JiZudWxsIT0obD14W3NdKTtzKyspe2lmKGUmJmwpe289MCxnfHxsLm93bmVyRG9jdW1lbnQ9PT1ufHwobShsKSxoPSFwKTt3aGlsZShxPWFbbysrXSlpZihxKGwsZ3x8bixoKSl7aS5wdXNoKGwpO2JyZWFrfWsmJih3PXkpfWMmJigobD0hcSYmbCkmJnItLSxmJiZ0LnB1c2gobCkpfWlmKHIrPXMsYyYmcyE9PXIpe289MDt3aGlsZShxPWJbbysrXSlxKHQsdSxnLGgpO2lmKGYpe2lmKHI+MCl3aGlsZShzLS0pdFtzXXx8dVtzXXx8KHVbc109Ri5jYWxsKGkpKTt1PXVhKHUpfUguYXBwbHkoaSx1KSxrJiYhZiYmdS5sZW5ndGg+MCYmcitiLmxlbmd0aD4xJiZmYS51bmlxdWVTb3J0KGkpfXJldHVybiBrJiYodz15LGo9diksdH07cmV0dXJuIGM/aGEoZik6Zn1yZXR1cm4gaD1mYS5jb21waWxlPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPVtdLGY9QVthKyIgIl07aWYoIWYpe2J8fChiPWcoYSkpLGM9Yi5sZW5ndGg7d2hpbGUoYy0tKWY9d2EoYltjXSksZlt1XT9kLnB1c2goZik6ZS5wdXNoKGYpO2Y9QShhLHhhKGUsZCkpLGYuc2VsZWN0b3I9YX1yZXR1cm4gZn0saT1mYS5zZWxlY3Q9ZnVuY3Rpb24oYSxiLGUsZil7dmFyIGksaixrLGwsbSxuPSJmdW5jdGlvbiI9PXR5cGVvZiBhJiZhLG89IWYmJmcoYT1uLnNlbGVjdG9yfHxhKTtpZihlPWV8fFtdLDE9PT1vLmxlbmd0aCl7aWYoaj1vWzBdPW9bMF0uc2xpY2UoMCksai5sZW5ndGg+MiYmIklEIj09PShrPWpbMF0pLnR5cGUmJmMuZ2V0QnlJZCYmOT09PWIubm9kZVR5cGUmJnAmJmQucmVsYXRpdmVbalsxXS50eXBlXSl7aWYoYj0oZC5maW5kLklEKGsubWF0Y2hlc1swXS5yZXBsYWNlKGJhLGNhKSxiKXx8W10pWzBdLCFiKXJldHVybiBlO24mJihiPWIucGFyZW50Tm9kZSksYT1hLnNsaWNlKGouc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWk9Vy5uZWVkc0NvbnRleHQudGVzdChhKT8wOmoubGVuZ3RoO3doaWxlKGktLSl7aWYoaz1qW2ldLGQucmVsYXRpdmVbbD1rLnR5cGVdKWJyZWFrO2lmKChtPWQuZmluZFtsXSkmJihmPW0oay5tYXRjaGVzWzBdLnJlcGxhY2UoYmEsY2EpLF8udGVzdChqWzBdLnR5cGUpJiZvYShiLnBhcmVudE5vZGUpfHxiKSkpe2lmKGouc3BsaWNlKGksMSksYT1mLmxlbmd0aCYmcWEoaiksIWEpcmV0dXJuIEguYXBwbHkoZSxmKSxlO2JyZWFrfX19cmV0dXJuKG58fGgoYSxvKSkoZixiLCFwLGUsIWJ8fF8udGVzdChhKSYmb2EoYi5wYXJlbnROb2RlKXx8YiksZX0sYy5zb3J0U3RhYmxlPXUuc3BsaXQoIiIpLnNvcnQoQikuam9pbigiIik9PT11LGMuZGV0ZWN0RHVwbGljYXRlcz0hIWwsbSgpLGMuc29ydERldGFjaGVkPWlhKGZ1bmN0aW9uKGEpe3JldHVybiAxJmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24obi5jcmVhdGVFbGVtZW50KCJkaXYiKSl9KSxpYShmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxqYSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphLmdldEF0dHJpYnV0ZShiLCJ0eXBlIj09PWIudG9Mb3dlckNhc2UoKT8xOjIpfSksYy5hdHRyaWJ1dGVzJiZpYShmdW5jdGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxpbnB1dC8+IixhLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09YS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxqYSgidmFsdWUiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gY3x8ImlucHV0IiE9PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKT92b2lkIDA6YS5kZWZhdWx0VmFsdWV9KSxpYShmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8amEoSyxmdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGM/dm9pZCAwOmFbYl09PT0hMD9iLnRvTG93ZXJDYXNlKCk6KGQ9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpKSYmZC5zcGVjaWZpZWQ/ZC52YWx1ZTpudWxsfSksZmF9KGEpO24uZmluZD10LG4uZXhwcj10LnNlbGVjdG9ycyxuLmV4cHJbIjoiXT1uLmV4cHIucHNldWRvcyxuLnVuaXF1ZVNvcnQ9bi51bmlxdWU9dC51bmlxdWVTb3J0LG4udGV4dD10LmdldFRleHQsbi5pc1hNTERvYz10LmlzWE1MLG4uY29udGFpbnM9dC5jb250YWluczt2YXIgdT1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9W10sZT12b2lkIDAhPT1jO3doaWxlKChhPWFbYl0pJiY5IT09YS5ub2RlVHlwZSlpZigxPT09YS5ub2RlVHlwZSl7aWYoZSYmbihhKS5pcyhjKSlicmVhaztkLnB1c2goYSl9cmV0dXJuIGR9LHY9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9W107YTthPWEubmV4dFNpYmxpbmcpMT09PWEubm9kZVR5cGUmJmEhPT1iJiZjLnB1c2goYSk7cmV0dXJuIGN9LHc9bi5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx4PS9ePChbXHctXSspXHMqXC8/Pig/OjxcL1wxPnwpJC8seT0vXi5bXjojXFtcLixdKiQvO2Z1bmN0aW9uIHooYSxiLGMpe2lmKG4uaXNGdW5jdGlvbihiKSlyZXR1cm4gbi5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIuY2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gbi5ncmVwKGEsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1iIT09Y30pO2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYoeS50ZXN0KGIpKXJldHVybiBuLmZpbHRlcihiLGEsYyk7Yj1uLmZpbHRlcihiLGEpfXJldHVybiBuLmdyZXAoYSxmdW5jdGlvbihhKXtyZXR1cm4gbi5pbkFycmF5KGEsYik+LTEhPT1jfSl9bi5maWx0ZXI9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWJbMF07cmV0dXJuIGMmJihhPSI6bm90KCIrYSsiKSIpLDE9PT1iLmxlbmd0aCYmMT09PWQubm9kZVR5cGU/bi5maW5kLm1hdGNoZXNTZWxlY3RvcihkLGEpP1tkXTpbXTpuLmZpbmQubWF0Y2hlcyhhLG4uZ3JlcChiLGZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZX0pKX0sbi5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxkPXRoaXMsZT1kLmxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKG4oYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtlPmI7YisrKWlmKG4uY29udGFpbnMoZFtiXSx0aGlzKSlyZXR1cm4hMH0pKTtmb3IoYj0wO2U+YjtiKyspbi5maW5kKGEsZFtiXSxjKTtyZXR1cm4gYz10aGlzLnB1c2hTdGFjayhlPjE/bi51bmlxdWUoYyk6YyksYy5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3IrIiAiK2E6YSxjfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHoodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKHoodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIXoodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJncudGVzdChhKT9uKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIEEsQj0vXig/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSopKSQvLEM9bi5mbi5pbml0PWZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmO2lmKCFhKXJldHVybiB0aGlzO2lmKGM9Y3x8QSwic3RyaW5nIj09dHlwZW9mIGEpe2lmKGU9IjwiPT09YS5jaGFyQXQoMCkmJiI+Ij09PWEuY2hhckF0KGEubGVuZ3RoLTEpJiZhLmxlbmd0aD49Mz9bbnVsbCxhLG51bGxdOkIuZXhlYyhhKSwhZXx8IWVbMV0mJmIpcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxjKS5maW5kKGEpOnRoaXMuY29uc3RydWN0b3IoYikuZmluZChhKTtpZihlWzFdKXtpZihiPWIgaW5zdGFuY2VvZiBuP2JbMF06YixuLm1lcmdlKHRoaXMsbi5wYXJzZUhUTUwoZVsxXSxiJiZiLm5vZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8YjpkLCEwKSkseC50ZXN0KGVbMV0pJiZuLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYiluLmlzRnVuY3Rpb24odGhpc1tlXSk/dGhpc1tlXShiW2VdKTp0aGlzLmF0dHIoZSxiW2VdKTtyZXR1cm4gdGhpc31pZihmPWQuZ2V0RWxlbWVudEJ5SWQoZVsyXSksZiYmZi5wYXJlbnROb2RlKXtpZihmLmlkIT09ZVsyXSlyZXR1cm4gQS5maW5kKGEpO3RoaXMubGVuZ3RoPTEsdGhpc1swXT1mfXJldHVybiB0aGlzLmNvbnRleHQ9ZCx0aGlzLnNlbGVjdG9yPWEsdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpcy5jb250ZXh0PXRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOm4uaXNGdW5jdGlvbihhKT8idW5kZWZpbmVkIiE9dHlwZW9mIGMucmVhZHk/Yy5yZWFkeShhKTphKG4pOih2b2lkIDAhPT1hLnNlbGVjdG9yJiYodGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yLHRoaXMuY29udGV4dD1hLmNvbnRleHQpLG4ubWFrZUFycmF5KGEsdGhpcykpfTtDLnByb3RvdHlwZT1uLmZuLEE9bihkKTt2YXIgRD0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxFPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O24uZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGIsYz1uKGEsdGhpcyksZD1jLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IoYj0wO2Q+YjtiKyspaWYobi5jb250YWlucyh0aGlzLGNbYl0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5sZW5ndGgsZj1bXSxnPXcudGVzdChhKXx8InN0cmluZyIhPXR5cGVvZiBhP24oYSxifHx0aGlzLmNvbnRleHQpOjA7ZT5kO2QrKylmb3IoYz10aGlzW2RdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKGMubm9kZVR5cGU8MTEmJihnP2cuaW5kZXgoYyk+LTE6MT09PWMubm9kZVR5cGUmJm4uZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5ndGg+MT9uLnVuaXF1ZVNvcnQoZik6Zil9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9uLmluQXJyYXkodGhpc1swXSxuKGEpKTpuLmluQXJyYXkoYS5qcXVlcnk/YVswXTphLHRoaXMpOnRoaXNbMF0mJnRoaXNbMF0ucGFyZW50Tm9kZT90aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aDotMX0sYWRkOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG4udW5pcXVlU29ydChuLm1lcmdlKHRoaXMuZ2V0KCksbihhLGIpKSkpfSxhZGRCYWNrOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmFkZChudWxsPT1hP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtmdW5jdGlvbiBGKGEsYil7ZG8gYT1hW2JdO3doaWxlKGEmJjEhPT1hLm5vZGVUeXBlKTtyZXR1cm4gYX1uLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJjExIT09Yi5ub2RlVHlwZT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHUoYSwicGFyZW50Tm9kZSIpfSxwYXJlbnRzVW50aWw6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB1KGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBGKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIEYoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRBbGw6ZnVuY3Rpb24oYSl7cmV0dXJuIHUoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gdShhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdShhLCJuZXh0U2libGluZyIsYyl9LHByZXZVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHUoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIHYoKGEucGFyZW50Tm9kZXx8e30pLmZpcnN0Q2hpbGQsYSl9LGNoaWxkcmVuOmZ1bmN0aW9uKGEpe3JldHVybiB2KGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBuLm5vZGVOYW1lKGEsImlmcmFtZSIpP2EuY29udGVudERvY3VtZW50fHxhLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ6bi5tZXJnZShbXSxhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtuLmZuW2FdPWZ1bmN0aW9uKGMsZCl7dmFyIGU9bi5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGQ9YyksZCYmInN0cmluZyI9PXR5cGVvZiBkJiYoZT1uLmZpbHRlcihkLGUpKSx0aGlzLmxlbmd0aD4xJiYoRVthXXx8KGU9bi51bmlxdWVTb3J0KGUpKSxELnRlc3QoYSkmJihlPWUucmV2ZXJzZSgpKSksdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIEc9L1xTKy9nO2Z1bmN0aW9uIEgoYSl7dmFyIGI9e307cmV0dXJuIG4uZWFjaChhLm1hdGNoKEcpfHxbXSxmdW5jdGlvbihhLGMpe2JbY109ITB9KSxifW4uQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe2E9InN0cmluZyI9PXR5cGVvZiBhP0goYSk6bi5leHRlbmQoe30sYSk7dmFyIGIsYyxkLGUsZj1bXSxnPVtdLGg9LTEsaT1mdW5jdGlvbigpe2ZvcihlPWEub25jZSxkPWI9ITA7Zy5sZW5ndGg7aD0tMSl7Yz1nLnNoaWZ0KCk7d2hpbGUoKytoPGYubGVuZ3RoKWZbaF0uYXBwbHkoY1swXSxjWzFdKT09PSExJiZhLnN0b3BPbkZhbHNlJiYoaD1mLmxlbmd0aCxjPSExKX1hLm1lbW9yeXx8KGM9ITEpLGI9ITEsZSYmKGY9Yz9bXToiIil9LGo9e2FkZDpmdW5jdGlvbigpe3JldHVybiBmJiYoYyYmIWImJihoPWYubGVuZ3RoLTEsZy5wdXNoKGMpKSxmdW5jdGlvbiBkKGIpe24uZWFjaChiLGZ1bmN0aW9uKGIsYyl7bi5pc0Z1bmN0aW9uKGMpP2EudW5pcXVlJiZqLmhhcyhjKXx8Zi5wdXNoKGMpOmMmJmMubGVuZ3RoJiYic3RyaW5nIiE9PW4udHlwZShjKSYmZChjKX0pfShhcmd1bWVudHMpLGMmJiFiJiZpKCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBuLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKGEsYil7dmFyIGM7d2hpbGUoKGM9bi5pbkFycmF5KGIsZixjKSk+LTEpZi5zcGxpY2UoYywxKSxoPj1jJiZoLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/bi5pbkFycmF5KGEsZik+LTE6Zi5sZW5ndGg+MH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gZiYmKGY9W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZT1nPVtdLGY9Yz0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFmfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGU9ITAsY3x8ai5kaXNhYmxlKCksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFlfSxmaXJlV2l0aDpmdW5jdGlvbihhLGMpe3JldHVybiBlfHwoYz1jfHxbXSxjPVthLGMuc2xpY2U/Yy5zbGljZSgpOmNdLGcucHVzaChjKSxifHxpKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gai5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWR9fTtyZXR1cm4gan0sbi5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbInJlc29sdmUiLCJkb25lIixuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKV1dLGM9InBlbmRpbmciLGQ9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBlLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksdGhpc30sdGhlbjpmdW5jdGlvbigpe3ZhciBhPWFyZ3VtZW50cztyZXR1cm4gbi5EZWZlcnJlZChmdW5jdGlvbihjKXtuLmVhY2goYixmdW5jdGlvbihiLGYpe3ZhciBnPW4uaXNGdW5jdGlvbihhW2JdKSYmYVtiXTtlW2ZbMV1dKGZ1bmN0aW9uKCl7dmFyIGE9ZyYmZy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7YSYmbi5pc0Z1bmN0aW9uKGEucHJvbWlzZSk/YS5wcm9taXNlKCkucHJvZ3Jlc3MoYy5ub3RpZnkpLmRvbmUoYy5yZXNvbHZlKS5mYWlsKGMucmVqZWN0KTpjW2ZbMF0rIldpdGgiXSh0aGlzPT09ZD9jLnByb21pc2UoKTp0aGlzLGc/W2FdOmFyZ3VtZW50cyl9KX0pLGE9bnVsbH0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YT9uLmV4dGVuZChhLGQpOmR9fSxlPXt9O3JldHVybiBkLnBpcGU9ZC50aGVuLG4uZWFjaChiLGZ1bmN0aW9uKGEsZil7dmFyIGc9ZlsyXSxoPWZbM107ZFtmWzFdXT1nLmFkZCxoJiZnLmFkZChmdW5jdGlvbigpe2M9aH0sYlsxXmFdWzJdLmRpc2FibGUsYlsyXVsyXS5sb2NrKSxlW2ZbMF1dPWZ1bmN0aW9uKCl7cmV0dXJuIGVbZlswXSsiV2l0aCJdKHRoaXM9PT1lP2Q6dGhpcyxhcmd1bWVudHMpLHRoaXN9LGVbZlswXSsiV2l0aCJdPWcuZmlyZVdpdGh9KSxkLnByb21pc2UoZSksYSYmYS5jYWxsKGUsZSksZX0sd2hlbjpmdW5jdGlvbihhKXt2YXIgYj0wLGM9ZS5jYWxsKGFyZ3VtZW50cyksZD1jLmxlbmd0aCxmPTEhPT1kfHxhJiZuLmlzRnVuY3Rpb24oYS5wcm9taXNlKT9kOjAsZz0xPT09Zj9hOm4uRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVuY3Rpb24oZCl7YlthXT10aGlzLGNbYV09YXJndW1lbnRzLmxlbmd0aD4xP2UuY2FsbChhcmd1bWVudHMpOmQsYz09PWk/Zy5ub3RpZnlXaXRoKGIsYyk6LS1mfHxnLnJlc29sdmVXaXRoKGIsYyl9fSxpLGosaztpZihkPjEpZm9yKGk9bmV3IEFycmF5KGQpLGo9bmV3IEFycmF5KGQpLGs9bmV3IEFycmF5KGQpO2Q+YjtiKyspY1tiXSYmbi5pc0Z1bmN0aW9uKGNbYl0ucHJvbWlzZSk/Y1tiXS5wcm9taXNlKCkucHJvZ3Jlc3MoaChiLGosaSkpLmRvbmUoaChiLGssYykpLmZhaWwoZy5yZWplY3QpOi0tZjtyZXR1cm4gZnx8Zy5yZXNvbHZlV2l0aChrLGMpLGcucHJvbWlzZSgpfX0pO3ZhciBJO24uZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIG4ucmVhZHkucHJvbWlzZSgpLmRvbmUoYSksdGhpc30sbi5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEsaG9sZFJlYWR5OmZ1bmN0aW9uKGEpe2E/bi5yZWFkeVdhaXQrKzpuLnJlYWR5KCEwKX0scmVhZHk6ZnVuY3Rpb24oYSl7KGE9PT0hMD8tLW4ucmVhZHlXYWl0Om4uaXNSZWFkeSl8fChuLmlzUmVhZHk9ITAsYSE9PSEwJiYtLW4ucmVhZHlXYWl0PjB8fChJLnJlc29sdmVXaXRoKGQsW25dKSxuLmZuLnRyaWdnZXJIYW5kbGVyJiYobihkKS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxuKGQpLm9mZigicmVhZHkiKSkpKX19KTtmdW5jdGlvbiBKKCl7ZC5hZGRFdmVudExpc3RlbmVyPyhkLnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEspLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsSykpOihkLmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEspLGEuZGV0YWNoRXZlbnQoIm9ubG9hZCIsSykpfWZ1bmN0aW9uIEsoKXsoZC5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1hLmV2ZW50LnR5cGV8fCJjb21wbGV0ZSI9PT1kLnJlYWR5U3RhdGUpJiYoSigpLG4ucmVhZHkoKSl9bi5yZWFkeS5wcm9taXNlPWZ1bmN0aW9uKGIpe2lmKCFJKWlmKEk9bi5EZWZlcnJlZCgpLCJjb21wbGV0ZSI9PT1kLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PWQucmVhZHlTdGF0ZSYmIWQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKWEuc2V0VGltZW91dChuLnJlYWR5KTtlbHNlIGlmKGQuYWRkRXZlbnRMaXN0ZW5lcilkLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEspLGEuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsSyk7ZWxzZXtkLmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLEspLGEuYXR0YWNoRXZlbnQoIm9ubG9hZCIsSyk7dmFyIGM9ITE7dHJ5e2M9bnVsbD09YS5mcmFtZUVsZW1lbnQmJmQuZG9jdW1lbnRFbGVtZW50fWNhdGNoKGUpe31jJiZjLmRvU2Nyb2xsJiYhZnVuY3Rpb24gZigpe2lmKCFuLmlzUmVhZHkpe3RyeXtjLmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goYil7cmV0dXJuIGEuc2V0VGltZW91dChmLDUwKX1KKCksbi5yZWFkeSgpfX0oKX1yZXR1cm4gSS5wcm9taXNlKGIpfSxuLnJlYWR5LnByb21pc2UoKTt2YXIgTDtmb3IoTCBpbiBuKGwpKWJyZWFrO2wub3duRmlyc3Q9IjAiPT09TCxsLmlubGluZUJsb2NrTmVlZHNMYXlvdXQ9ITEsbihmdW5jdGlvbigpe3ZhciBhLGIsYyxlO2M9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGUmJihiPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDt0b3A6MDtsZWZ0Oi05OTk5cHgiLGMuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoYiksInVuZGVmaW5lZCIhPXR5cGVvZiBiLnN0eWxlLnpvb20mJihiLnN0eWxlLmNzc1RleHQ9ImRpc3BsYXk6aW5saW5lO21hcmdpbjowO2JvcmRlcjowO3BhZGRpbmc6MXB4O3dpZHRoOjFweDt6b29tOjEiLGwuaW5saW5lQmxvY2tOZWVkc0xheW91dD1hPTM9PT1iLm9mZnNldFdpZHRoLGEmJihjLnN0eWxlLnpvb209MSkpLGMucmVtb3ZlQ2hpbGQoZSkpfSksZnVuY3Rpb24oKXt2YXIgYT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2wuZGVsZXRlRXhwYW5kbz0hMDt0cnl7ZGVsZXRlIGEudGVzdH1jYXRjaChiKXtsLmRlbGV0ZUV4cGFuZG89ITF9YT1udWxsfSgpO3ZhciBNPWZ1bmN0aW9uKGEpe3ZhciBiPW4ubm9EYXRhWyhhLm5vZGVOYW1lKyIgIikudG9Mb3dlckNhc2UoKV0sYz0rYS5ub2RlVHlwZXx8MTtyZXR1cm4gMSE9PWMmJjkhPT1jPyExOiFifHxiIT09ITAmJmEuZ2V0QXR0cmlidXRlKCJjbGFzc2lkIik9PT1ifSxOPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sTz0vKFtBLVpdKS9nO2Z1bmN0aW9uIFAoYSxiLGMpe2lmKHZvaWQgMD09PWMmJjE9PT1hLm5vZGVUeXBlKXt2YXIgZD0iZGF0YS0iK2IucmVwbGFjZShPLCItJDEiKS50b0xvd2VyQ2FzZSgpO2lmKGM9YS5nZXRBdHRyaWJ1dGUoZCksInN0cmluZyI9PXR5cGVvZiBjKXt0cnl7Yz0idHJ1ZSI9PT1jPyEwOiJmYWxzZSI9PT1jPyExOiJudWxsIj09PWM/bnVsbDorYysiIj09PWM/K2M6Ti50ZXN0KGMpP24ucGFyc2VKU09OKGMpOmN9Y2F0Y2goZSl7fW4uZGF0YShhLGIsYyl9ZWxzZSBjPXZvaWQgMDsNCn1yZXR1cm4gY31mdW5jdGlvbiBRKGEpe3ZhciBiO2ZvcihiIGluIGEpaWYoKCJkYXRhIiE9PWJ8fCFuLmlzRW1wdHlPYmplY3QoYVtiXSkpJiYidG9KU09OIiE9PWIpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gUihhLGIsZCxlKXtpZihNKGEpKXt2YXIgZixnLGg9bi5leHBhbmRvLGk9YS5ub2RlVHlwZSxqPWk/bi5jYWNoZTphLGs9aT9hW2hdOmFbaF0mJmg7aWYoayYmaltrXSYmKGV8fGpba10uZGF0YSl8fHZvaWQgMCE9PWR8fCJzdHJpbmciIT10eXBlb2YgYilyZXR1cm4ga3x8KGs9aT9hW2hdPWMucG9wKCl8fG4uZ3VpZCsrOmgpLGpba118fChqW2tdPWk/e306e3RvSlNPTjpuLm5vb3B9KSwib2JqZWN0IiE9dHlwZW9mIGImJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoZT9qW2tdPW4uZXh0ZW5kKGpba10sYik6altrXS5kYXRhPW4uZXh0ZW5kKGpba10uZGF0YSxiKSksZz1qW2tdLGV8fChnLmRhdGF8fChnLmRhdGE9e30pLGc9Zy5kYXRhKSx2b2lkIDAhPT1kJiYoZ1tuLmNhbWVsQ2FzZShiKV09ZCksInN0cmluZyI9PXR5cGVvZiBiPyhmPWdbYl0sbnVsbD09ZiYmKGY9Z1tuLmNhbWVsQ2FzZShiKV0pKTpmPWcsZn19ZnVuY3Rpb24gUyhhLGIsYyl7aWYoTShhKSl7dmFyIGQsZSxmPWEubm9kZVR5cGUsZz1mP24uY2FjaGU6YSxoPWY/YVtuLmV4cGFuZG9dOm4uZXhwYW5kbztpZihnW2hdKXtpZihiJiYoZD1jP2dbaF06Z1toXS5kYXRhKSl7bi5pc0FycmF5KGIpP2I9Yi5jb25jYXQobi5tYXAoYixuLmNhbWVsQ2FzZSkpOmIgaW4gZD9iPVtiXTooYj1uLmNhbWVsQ2FzZShiKSxiPWIgaW4gZD9bYl06Yi5zcGxpdCgiICIpKSxlPWIubGVuZ3RoO3doaWxlKGUtLSlkZWxldGUgZFtiW2VdXTtpZihjPyFRKGQpOiFuLmlzRW1wdHlPYmplY3QoZCkpcmV0dXJufShjfHwoZGVsZXRlIGdbaF0uZGF0YSxRKGdbaF0pKSkmJihmP24uY2xlYW5EYXRhKFthXSwhMCk6bC5kZWxldGVFeHBhbmRvfHxnIT1nLndpbmRvdz9kZWxldGUgZ1toXTpnW2hdPXZvaWQgMCl9fX1uLmV4dGVuZCh7Y2FjaGU6e30sbm9EYXRhOnsiYXBwbGV0ICI6ITAsImVtYmVkICI6ITAsIm9iamVjdCAiOiJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAifSxoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiBhPWEubm9kZVR5cGU/bi5jYWNoZVthW24uZXhwYW5kb11dOmFbbi5leHBhbmRvXSwhIWEmJiFRKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUihhLGIsYyl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gUyhhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIFIoYSxiLGMsITApfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3JldHVybiBTKGEsYiwhMCl9fSksbi5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZj10aGlzWzBdLGc9ZiYmZi5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZT1uLmRhdGEoZiksMT09PWYubm9kZVR5cGUmJiFuLl9kYXRhKGYsInBhcnNlZEF0dHJzIikpKXtjPWcubGVuZ3RoO3doaWxlKGMtLSlnW2NdJiYoZD1nW2NdLm5hbWUsMD09PWQuaW5kZXhPZigiZGF0YS0iKSYmKGQ9bi5jYW1lbENhc2UoZC5zbGljZSg1KSksUChmLGQsZVtkXSkpKTtuLl9kYXRhKGYsInBhcnNlZEF0dHJzIiwhMCl9cmV0dXJuIGV9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe24uZGF0YSh0aGlzLGEpfSk6YXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaChmdW5jdGlvbigpe24uZGF0YSh0aGlzLGEsYil9KTpmP1AoZixhLG4uZGF0YShmLGEpKTp2b2lkIDB9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe24ucmVtb3ZlRGF0YSh0aGlzLGEpfSl9fSksbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZDtyZXR1cm4gYT8oYj0oYnx8ImZ4IikrInF1ZXVlIixkPW4uX2RhdGEoYSxiKSxjJiYoIWR8fG4uaXNBcnJheShjKT9kPW4uX2RhdGEoYSxiLG4ubWFrZUFycmF5KGMpKTpkLnB1c2goYykpLGR8fFtdKTp2b2lkIDB9LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9bi5xdWV1ZShhLGIpLGQ9Yy5sZW5ndGgsZT1jLnNoaWZ0KCksZj1uLl9xdWV1ZUhvb2tzKGEsYiksZz1mdW5jdGlvbigpe24uZGVxdWV1ZShhLGIpfTsiaW5wcm9ncmVzcyI9PT1lJiYoZT1jLnNoaWZ0KCksZC0tKSxlJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBuLl9kYXRhKGEsYyl8fG4uX2RhdGEoYSxjLHtlbXB0eTpuLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtuLl9yZW1vdmVEYXRhKGEsYisicXVldWUiKSxuLl9yZW1vdmVEYXRhKGEsYyl9KX0pfX0pLG4uZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9uLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPW4ucXVldWUodGhpcyxhLGIpO24uX3F1ZXVlSG9va3ModGhpcyxhKSwiZngiPT09YSYmImlucHJvZ3Jlc3MiIT09Y1swXSYmbi5kZXF1ZXVlKHRoaXMsYSl9KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5kZXF1ZXVlKHRoaXMsYSl9KX0sY2xlYXJRdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5xdWV1ZShhfHwiZngiLFtdKX0scHJvbWlzZTpmdW5jdGlvbihhLGIpe3ZhciBjLGQ9MSxlPW4uRGVmZXJyZWQoKSxmPXRoaXMsZz10aGlzLmxlbmd0aCxoPWZ1bmN0aW9uKCl7LS1kfHxlLnJlc29sdmVXaXRoKGYsW2ZdKX07InN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKSxhPWF8fCJmeCI7d2hpbGUoZy0tKWM9bi5fZGF0YShmW2ddLGErInF1ZXVlSG9va3MiKSxjJiZjLmVtcHR5JiYoZCsrLGMuZW1wdHkuYWRkKGgpKTtyZXR1cm4gaCgpLGUucHJvbWlzZShiKX19KSxmdW5jdGlvbigpe3ZhciBhO2wuc2hyaW5rV3JhcEJsb2Nrcz1mdW5jdGlvbigpe2lmKG51bGwhPWEpcmV0dXJuIGE7YT0hMTt2YXIgYixjLGU7cmV0dXJuIGM9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLGMmJmMuc3R5bGU/KGI9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6MDt3aWR0aDowO2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweCIsYy5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuc3R5bGUuem9vbSYmKGIuc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzoxcHg7d2lkdGg6MXB4O3pvb206MSIsYi5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5zdHlsZS53aWR0aD0iNXB4IixhPTMhPT1iLm9mZnNldFdpZHRoKSxjLnJlbW92ZUNoaWxkKGUpLGEpOnZvaWQgMH19KCk7dmFyIFQ9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsVT1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrVCsiKShbYS16JV0qKSQiLCJpIiksVj1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLFc9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1ifHxhLCJub25lIj09PW4uY3NzKGEsImRpc3BsYXkiKXx8IW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfTtmdW5jdGlvbiBYKGEsYixjLGQpe3ZhciBlLGY9MSxnPTIwLGg9ZD9mdW5jdGlvbigpe3JldHVybiBkLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBuLmNzcyhhLGIsIiIpfSxpPWgoKSxqPWMmJmNbM118fChuLmNzc051bWJlcltiXT8iIjoicHgiKSxrPShuLmNzc051bWJlcltiXXx8InB4IiE9PWomJitpKSYmVS5leGVjKG4uY3NzKGEsYikpO2lmKGsmJmtbM10hPT1qKXtqPWp8fGtbM10sYz1jfHxbXSxrPStpfHwxO2RvIGY9Znx8Ii41IixrLz1mLG4uc3R5bGUoYSxiLGsraik7d2hpbGUoZiE9PShmPWgoKS9pKSYmMSE9PWYmJi0tZyl9cmV0dXJuIGMmJihrPStrfHwraXx8MCxlPWNbMV0/aysoY1sxXSsxKSpjWzJdOitjWzJdLGQmJihkLnVuaXQ9aixkLnN0YXJ0PWssZC5lbmQ9ZSkpLGV9dmFyIFk9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9MCxpPWEubGVuZ3RoLGo9bnVsbD09YztpZigib2JqZWN0Ij09PW4udHlwZShjKSl7ZT0hMDtmb3IoaCBpbiBjKVkoYSxiLGgsY1toXSwhMCxmLGcpfWVsc2UgaWYodm9pZCAwIT09ZCYmKGU9ITAsbi5pc0Z1bmN0aW9uKGQpfHwoZz0hMCksaiYmKGc/KGIuY2FsbChhLGQpLGI9bnVsbCk6KGo9YixiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gai5jYWxsKG4oYSksYyl9KSksYikpZm9yKDtpPmg7aCsrKWIoYVtoXSxjLGc/ZDpkLmNhbGwoYVtoXSxoLGIoYVtoXSxjKSkpO3JldHVybiBlP2E6aj9iLmNhbGwoYSk6aT9iKGFbMF0sYyk6Zn0sWj0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSwkPS88KFtcdzotXSspLyxfPS9eJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSxhYT0vXlxzKy8sYmE9ImFiYnJ8YXJ0aWNsZXxhc2lkZXxhdWRpb3xiZGl8Y2FudmFzfGRhdGF8ZGF0YWxpc3R8ZGV0YWlsc3xkaWFsb2d8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfGhlYWRlcnxoZ3JvdXB8bWFpbnxtYXJrfG1ldGVyfG5hdnxvdXRwdXR8cGljdHVyZXxwcm9ncmVzc3xzZWN0aW9ufHN1bW1hcnl8dGVtcGxhdGV8dGltZXx2aWRlbyI7ZnVuY3Rpb24gY2EoYSl7dmFyIGI9YmEuc3BsaXQoInwiKSxjPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2lmKGMuY3JlYXRlRWxlbWVudCl3aGlsZShiLmxlbmd0aCljLmNyZWF0ZUVsZW1lbnQoYi5wb3AoKSk7cmV0dXJuIGN9IWZ1bmN0aW9uKCl7dmFyIGE9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKSxiPWQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLGM9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO2EuaW5uZXJIVE1MPSIgIDxsaW5rLz48dGFibGU+PC90YWJsZT48YSBocmVmPScvYSc+YTwvYT48aW5wdXQgdHlwZT0nY2hlY2tib3gnLz4iLGwubGVhZGluZ1doaXRlc3BhY2U9Mz09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSxsLnRib2R5PSFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxsLmh0bWxTZXJpYWxpemU9ISFhLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIikubGVuZ3RoLGwuaHRtbDVDbG9uZT0iPDpuYXY+PC86bmF2PiIhPT1kLmNyZWF0ZUVsZW1lbnQoIm5hdiIpLmNsb25lTm9kZSghMCkub3V0ZXJIVE1MLGMudHlwZT0iY2hlY2tib3giLGMuY2hlY2tlZD0hMCxiLmFwcGVuZENoaWxkKGMpLGwuYXBwZW5kQ2hlY2tlZD1jLmNoZWNrZWQsYS5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iLGwubm9DbG9uZUNoZWNrZWQ9ISFhLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxiLmFwcGVuZENoaWxkKGEpLGM9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLGMuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxjLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxjLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKSxhLmFwcGVuZENoaWxkKGMpLGwuY2hlY2tDbG9uZT1hLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxsLm5vQ2xvbmVFdmVudD0hIWEuYWRkRXZlbnRMaXN0ZW5lcixhW24uZXhwYW5kb109MSxsLmF0dHJpYnV0ZXM9IWEuZ2V0QXR0cmlidXRlKG4uZXhwYW5kbyl9KCk7dmFyIGRhPXtvcHRpb246WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0scGFyYW06WzEsIjxvYmplY3Q+IiwiPC9vYmplY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpsLmh0bWxTZXJpYWxpemU/WzAsIiIsIiJdOlsxLCJYPGRpdj4iLCI8L2Rpdj4iXX07ZGEub3B0Z3JvdXA9ZGEub3B0aW9uLGRhLnRib2R5PWRhLnRmb290PWRhLmNvbGdyb3VwPWRhLmNhcHRpb249ZGEudGhlYWQsZGEudGg9ZGEudGQ7ZnVuY3Rpb24gZWEoYSxiKXt2YXIgYyxkLGU9MCxmPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGw/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6dm9pZCAwO2lmKCFmKWZvcihmPVtdLGM9YS5jaGlsZE5vZGVzfHxhO251bGwhPShkPWNbZV0pO2UrKykhYnx8bi5ub2RlTmFtZShkLGIpP2YucHVzaChkKTpuLm1lcmdlKGYsZWEoZCxiKSk7cmV0dXJuIHZvaWQgMD09PWJ8fGImJm4ubm9kZU5hbWUoYSxiKT9uLm1lcmdlKFthXSxmKTpmfWZ1bmN0aW9uIGZhKGEsYil7Zm9yKHZhciBjLGQ9MDtudWxsIT0oYz1hW2RdKTtkKyspbi5fZGF0YShjLCJnbG9iYWxFdmFsIiwhYnx8bi5fZGF0YShiW2RdLCJnbG9iYWxFdmFsIikpfXZhciBnYT0vPHwmIz9cdys7LyxoYT0vPHRib2R5L2k7ZnVuY3Rpb24gaWEoYSl7Wi50ZXN0KGEudHlwZSkmJihhLmRlZmF1bHRDaGVja2VkPWEuY2hlY2tlZCl9ZnVuY3Rpb24gamEoYSxiLGMsZCxlKXtmb3IodmFyIGYsZyxoLGksaixrLG0sbz1hLmxlbmd0aCxwPWNhKGIpLHE9W10scj0wO28+cjtyKyspaWYoZz1hW3JdLGd8fDA9PT1nKWlmKCJvYmplY3QiPT09bi50eXBlKGcpKW4ubWVyZ2UocSxnLm5vZGVUeXBlP1tnXTpnKTtlbHNlIGlmKGdhLnRlc3QoZykpe2k9aXx8cC5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSxqPSgkLmV4ZWMoZyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksbT1kYVtqXXx8ZGEuX2RlZmF1bHQsaS5pbm5lckhUTUw9bVsxXStuLmh0bWxQcmVmaWx0ZXIoZykrbVsyXSxmPW1bMF07d2hpbGUoZi0tKWk9aS5sYXN0Q2hpbGQ7aWYoIWwubGVhZGluZ1doaXRlc3BhY2UmJmFhLnRlc3QoZykmJnEucHVzaChiLmNyZWF0ZVRleHROb2RlKGFhLmV4ZWMoZylbMF0pKSwhbC50Ym9keSl7Zz0idGFibGUiIT09anx8aGEudGVzdChnKT8iPHRhYmxlPiIhPT1tWzFdfHxoYS50ZXN0KGcpPzA6aTppLmZpcnN0Q2hpbGQsZj1nJiZnLmNoaWxkTm9kZXMubGVuZ3RoO3doaWxlKGYtLSluLm5vZGVOYW1lKGs9Zy5jaGlsZE5vZGVzW2ZdLCJ0Ym9keSIpJiYhay5jaGlsZE5vZGVzLmxlbmd0aCYmZy5yZW1vdmVDaGlsZChrKX1uLm1lcmdlKHEsaS5jaGlsZE5vZGVzKSxpLnRleHRDb250ZW50PSIiO3doaWxlKGkuZmlyc3RDaGlsZClpLnJlbW92ZUNoaWxkKGkuZmlyc3RDaGlsZCk7aT1wLmxhc3RDaGlsZH1lbHNlIHEucHVzaChiLmNyZWF0ZVRleHROb2RlKGcpKTtpJiZwLnJlbW92ZUNoaWxkKGkpLGwuYXBwZW5kQ2hlY2tlZHx8bi5ncmVwKGVhKHEsImlucHV0IiksaWEpLHI9MDt3aGlsZShnPXFbcisrXSlpZihkJiZuLmluQXJyYXkoZyxkKT4tMSllJiZlLnB1c2goZyk7ZWxzZSBpZihoPW4uY29udGFpbnMoZy5vd25lckRvY3VtZW50LGcpLGk9ZWEocC5hcHBlbmRDaGlsZChnKSwic2NyaXB0IiksaCYmZmEoaSksYyl7Zj0wO3doaWxlKGc9aVtmKytdKV8udGVzdChnLnR5cGV8fCIiKSYmYy5wdXNoKGcpfXJldHVybiBpPW51bGwscH0hZnVuY3Rpb24oKXt2YXIgYixjLGU9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmb3IoYiBpbntzdWJtaXQ6ITAsY2hhbmdlOiEwLGZvY3VzaW46ITB9KWM9Im9uIitiLChsW2JdPWMgaW4gYSl8fChlLnNldEF0dHJpYnV0ZShjLCJ0IiksbFtiXT1lLmF0dHJpYnV0ZXNbY10uZXhwYW5kbz09PSExKTtlPW51bGx9KCk7dmFyIGthPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhKSQvaSxsYT0vXmtleS8sbWE9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLG5hPS9eKD86Zm9jdXNpbmZvY3VzfGZvY3Vzb3V0Ymx1cikkLyxvYT0vXihbXi5dKikoPzpcLiguKyl8KS87ZnVuY3Rpb24gcGEoKXtyZXR1cm4hMH1mdW5jdGlvbiBxYSgpe3JldHVybiExfWZ1bmN0aW9uIHJhKCl7dHJ5e3JldHVybiBkLmFjdGl2ZUVsZW1lbnR9Y2F0Y2goYSl7fX1mdW5jdGlvbiBzYShhLGIsYyxkLGUsZil7dmFyIGcsaDtpZigib2JqZWN0Ij09dHlwZW9mIGIpeyJzdHJpbmciIT10eXBlb2YgYyYmKGQ9ZHx8YyxjPXZvaWQgMCk7Zm9yKGggaW4gYilzYShhLGgsYyxkLGJbaF0sZik7cmV0dXJuIGF9aWYobnVsbD09ZCYmbnVsbD09ZT8oZT1jLGQ9Yz12b2lkIDApOm51bGw9PWUmJigic3RyaW5nIj09dHlwZW9mIGM/KGU9ZCxkPXZvaWQgMCk6KGU9ZCxkPWMsYz12b2lkIDApKSxlPT09ITEpZT1xYTtlbHNlIGlmKCFlKXJldHVybiBhO3JldHVybiAxPT09ZiYmKGc9ZSxlPWZ1bmN0aW9uKGEpe3JldHVybiBuKCkub2ZmKGEpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9Zy5ndWlkfHwoZy5ndWlkPW4uZ3VpZCsrKSksYS5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC5hZGQodGhpcyxiLGUsZCxjKX0pfW4uZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxtLG8scCxxLHI9bi5fZGF0YShhKTtpZihyKXtjLmhhbmRsZXImJihpPWMsYz1pLmhhbmRsZXIsZT1pLnNlbGVjdG9yKSxjLmd1aWR8fChjLmd1aWQ9bi5ndWlkKyspLChnPXIuZXZlbnRzKXx8KGc9ci5ldmVudHM9e30pLChrPXIuaGFuZGxlKXx8KGs9ci5oYW5kbGU9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBufHxhJiZuLmV2ZW50LnRyaWdnZXJlZD09PWEudHlwZT92b2lkIDA6bi5ldmVudC5kaXNwYXRjaC5hcHBseShrLmVsZW0sYXJndW1lbnRzKX0say5lbGVtPWEpLGI9KGJ8fCIiKS5tYXRjaChHKXx8WyIiXSxoPWIubGVuZ3RoO3doaWxlKGgtLSlmPW9hLmV4ZWMoYltoXSl8fFtdLG89cT1mWzFdLHA9KGZbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxvJiYoaj1uLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGU/ai5kZWxlZ2F0ZVR5cGU6ai5iaW5kVHlwZSl8fG8saj1uLmV2ZW50LnNwZWNpYWxbb118fHt9LGw9bi5leHRlbmQoe3R5cGU6byxvcmlnVHlwZTpxLGRhdGE6ZCxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZSxuZWVkc0NvbnRleHQ6ZSYmbi5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGUpLG5hbWVzcGFjZTpwLmpvaW4oIi4iKX0saSksKG09Z1tvXSl8fChtPWdbb109W10sbS5kZWxlZ2F0ZUNvdW50PTAsai5zZXR1cCYmai5zZXR1cC5jYWxsKGEsZCxwLGspIT09ITF8fChhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKG8saywhMSk6YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib24iK28saykpKSxqLmFkZCYmKGouYWRkLmNhbGwoYSxsKSxsLmhhbmRsZXIuZ3VpZHx8KGwuaGFuZGxlci5ndWlkPWMuZ3VpZCkpLGU/bS5zcGxpY2UobS5kZWxlZ2F0ZUNvdW50KyssMCxsKTptLnB1c2gobCksbi5ldmVudC5nbG9iYWxbb109ITApO2E9bnVsbH19LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciBmLGcsaCxpLGosayxsLG0sbyxwLHEscj1uLmhhc0RhdGEoYSkmJm4uX2RhdGEoYSk7aWYociYmKGs9ci5ldmVudHMpKXtiPShifHwiIikubWF0Y2goRyl8fFsiIl0saj1iLmxlbmd0aDt3aGlsZShqLS0paWYoaD1vYS5leGVjKGJbal0pfHxbXSxvPXE9aFsxXSxwPShoWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksbyl7bD1uLmV2ZW50LnNwZWNpYWxbb118fHt9LG89KGQ/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlwZSl8fG8sbT1rW29dfHxbXSxoPWhbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK3Auam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksaT1mPW0ubGVuZ3RoO3doaWxlKGYtLSlnPW1bZl0sIWUmJnEhPT1nLm9yaWdUeXBlfHxjJiZjLmd1aWQhPT1nLmd1aWR8fGgmJiFoLnRlc3QoZy5uYW1lc3BhY2UpfHxkJiZkIT09Zy5zZWxlY3RvciYmKCIqKiIhPT1kfHwhZy5zZWxlY3Rvcil8fChtLnNwbGljZShmLDEpLGcuc2VsZWN0b3ImJm0uZGVsZWdhdGVDb3VudC0tLGwucmVtb3ZlJiZsLnJlbW92ZS5jYWxsKGEsZykpO2kmJiFtLmxlbmd0aCYmKGwudGVhcmRvd24mJmwudGVhcmRvd24uY2FsbChhLHAsci5oYW5kbGUpIT09ITF8fG4ucmVtb3ZlRXZlbnQoYSxvLHIuaGFuZGxlKSxkZWxldGUga1tvXSl9ZWxzZSBmb3IobyBpbiBrKW4uZXZlbnQucmVtb3ZlKGEsbytiW2pdLGMsZCwhMCk7bi5pc0VtcHR5T2JqZWN0KGspJiYoZGVsZXRlIHIuaGFuZGxlLG4uX3JlbW92ZURhdGEoYSwiZXZlbnRzIikpfX0sdHJpZ2dlcjpmdW5jdGlvbihiLGMsZSxmKXt2YXIgZyxoLGksaixsLG0sbyxwPVtlfHxkXSxxPWsuY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIscj1rLmNhbGwoYiwibmFtZXNwYWNlIik/Yi5uYW1lc3BhY2Uuc3BsaXQoIi4iKTpbXTtpZihpPW09ZT1lfHxkLDMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmIW5hLnRlc3QocStuLmV2ZW50LnRyaWdnZXJlZCkmJihxLmluZGV4T2YoIi4iKT4tMSYmKHI9cS5zcGxpdCgiLiIpLHE9ci5zaGlmdCgpLHIuc29ydCgpKSxoPXEuaW5kZXhPZigiOiIpPDAmJiJvbiIrcSxiPWJbbi5leHBhbmRvXT9iOm5ldyBuLkV2ZW50KHEsIm9iamVjdCI9PXR5cGVvZiBiJiZiKSxiLmlzVHJpZ2dlcj1mPzI6MyxiLm5hbWVzcGFjZT1yLmpvaW4oIi4iKSxiLnJuYW1lc3BhY2U9Yi5uYW1lc3BhY2U/bmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGIucmVzdWx0PXZvaWQgMCxiLnRhcmdldHx8KGIudGFyZ2V0PWUpLGM9bnVsbD09Yz9bYl06bi5tYWtlQXJyYXkoYyxbYl0pLGw9bi5ldmVudC5zcGVjaWFsW3FdfHx7fSxmfHwhbC50cmlnZ2VyfHxsLnRyaWdnZXIuYXBwbHkoZSxjKSE9PSExKSl7aWYoIWYmJiFsLm5vQnViYmxlJiYhbi5pc1dpbmRvdyhlKSl7Zm9yKGo9bC5kZWxlZ2F0ZVR5cGV8fHEsbmEudGVzdChqK3EpfHwoaT1pLnBhcmVudE5vZGUpO2k7aT1pLnBhcmVudE5vZGUpcC5wdXNoKGkpLG09aTttPT09KGUub3duZXJEb2N1bWVudHx8ZCkmJnAucHVzaChtLmRlZmF1bHRWaWV3fHxtLnBhcmVudFdpbmRvd3x8YSl9bz0wO3doaWxlKChpPXBbbysrXSkmJiFiLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpYi50eXBlPW8+MT9qOmwuYmluZFR5cGV8fHEsZz0obi5fZGF0YShpLCJldmVudHMiKXx8e30pW2IudHlwZV0mJm4uX2RhdGEoaSwiaGFuZGxlIiksZyYmZy5hcHBseShpLGMpLGc9aCYmaVtoXSxnJiZnLmFwcGx5JiZNKGkpJiYoYi5yZXN1bHQ9Zy5hcHBseShpLGMpLGIucmVzdWx0PT09ITEmJmIucHJldmVudERlZmF1bHQoKSk7aWYoYi50eXBlPXEsIWYmJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYoIWwuX2RlZmF1bHR8fGwuX2RlZmF1bHQuYXBwbHkocC5wb3AoKSxjKT09PSExKSYmTShlKSYmaCYmZVtxXSYmIW4uaXNXaW5kb3coZSkpe209ZVtoXSxtJiYoZVtoXT1udWxsKSxuLmV2ZW50LnRyaWdnZXJlZD1xO3RyeXtlW3FdKCl9Y2F0Y2gocyl7fW4uZXZlbnQudHJpZ2dlcmVkPXZvaWQgMCxtJiYoZVtoXT1tKX1yZXR1cm4gYi5yZXN1bHR9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXthPW4uZXZlbnQuZml4KGEpO3ZhciBiLGMsZCxmLGcsaD1bXSxpPWUuY2FsbChhcmd1bWVudHMpLGo9KG4uX2RhdGEodGhpcywiZXZlbnRzIil8fHt9KVthLnR5cGVdfHxbXSxrPW4uZXZlbnQuc3BlY2lhbFthLnR5cGVdfHx7fTtpZihpWzBdPWEsYS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFrLnByZURpc3BhdGNofHxrLnByZURpc3BhdGNoLmNhbGwodGhpcyxhKSE9PSExKXtoPW4uZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLGEsaiksYj0wO3doaWxlKChmPWhbYisrXSkmJiFhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe2EuY3VycmVudFRhcmdldD1mLmVsZW0sYz0wO3doaWxlKChnPWYuaGFuZGxlcnNbYysrXSkmJiFhLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpYS5ybmFtZXNwYWNlJiYhYS5ybmFtZXNwYWNlLnRlc3QoZy5uYW1lc3BhY2UpfHwoYS5oYW5kbGVPYmo9ZyxhLmRhdGE9Zy5kYXRhLGQ9KChuLmV2ZW50LnNwZWNpYWxbZy5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGcuaGFuZGxlcikuYXBwbHkoZi5lbGVtLGkpLHZvaWQgMCE9PWQmJihhLnJlc3VsdD1kKT09PSExJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gay5wb3N0RGlzcGF0Y2gmJmsucG9zdERpc3BhdGNoLmNhbGwodGhpcyxhKSxhLnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsZz1bXSxoPWIuZGVsZWdhdGVDb3VudCxpPWEudGFyZ2V0O2lmKGgmJmkubm9kZVR5cGUmJigiY2xpY2siIT09YS50eXBlfHxpc05hTihhLmJ1dHRvbil8fGEuYnV0dG9uPDEpKWZvcig7aSE9dGhpcztpPWkucGFyZW50Tm9kZXx8dGhpcylpZigxPT09aS5ub2RlVHlwZSYmKGkuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWEudHlwZSkpe2ZvcihkPVtdLGM9MDtoPmM7YysrKWY9YltjXSxlPWYuc2VsZWN0b3IrIiAiLHZvaWQgMD09PWRbZV0mJihkW2VdPWYubmVlZHNDb250ZXh0P24oZSx0aGlzKS5pbmRleChpKT4tMTpuLmZpbmQoZSx0aGlzLG51bGwsW2ldKS5sZW5ndGgpLGRbZV0mJmQucHVzaChmKTtkLmxlbmd0aCYmZy5wdXNoKHtlbGVtOmksaGFuZGxlcnM6ZH0pfXJldHVybiBoPGIubGVuZ3RoJiZnLnB1c2goe2VsZW06dGhpcyxoYW5kbGVyczpiLnNsaWNlKGgpfSksZ30sZml4OmZ1bmN0aW9uKGEpe2lmKGFbbi5leHBhbmRvXSlyZXR1cm4gYTt2YXIgYixjLGUsZj1hLnR5cGUsZz1hLGg9dGhpcy5maXhIb29rc1tmXTtofHwodGhpcy5maXhIb29rc1tmXT1oPW1hLnRlc3QoZik/dGhpcy5tb3VzZUhvb2tzOmxhLnRlc3QoZik/dGhpcy5rZXlIb29rczp7fSksZT1oLnByb3BzP3RoaXMucHJvcHMuY29uY2F0KGgucHJvcHMpOnRoaXMucHJvcHMsYT1uZXcgbi5FdmVudChnKSxiPWUubGVuZ3RoO3doaWxlKGItLSljPWVbYl0sYVtjXT1nW2NdO3JldHVybiBhLnRhcmdldHx8KGEudGFyZ2V0PWcuc3JjRWxlbWVudHx8ZCksMz09PWEudGFyZ2V0Lm5vZGVUeXBlJiYoYS50YXJnZXQ9YS50YXJnZXQucGFyZW50Tm9kZSksYS5tZXRhS2V5PSEhYS5tZXRhS2V5LGguZmlsdGVyP2guZmlsdGVyKGEsZyk6YX0scHJvcHM6ImFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGRldGFpbCBldmVudFBoYXNlIG1ldGFLZXkgcmVsYXRlZFRhcmdldCBzaGlmdEtleSB0YXJnZXQgdGltZVN0YW1wIHZpZXcgd2hpY2giLnNwbGl0KCIgIiksZml4SG9va3M6e30sa2V5SG9va3M6e3Byb3BzOiJjaGFyIGNoYXJDb2RlIGtleSBrZXlDb2RlIi5zcGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihhLGIpe3JldHVybiBudWxsPT1hLndoaWNoJiYoYS53aGljaD1udWxsIT1iLmNoYXJDb2RlP2IuY2hhckNvZGU6Yi5rZXlDb2RlKSxhfX0sbW91c2VIb29rczp7cHJvcHM6ImJ1dHRvbiBidXR0b25zIGNsaWVudFggY2xpZW50WSBmcm9tRWxlbWVudCBvZmZzZXRYIG9mZnNldFkgcGFnZVggcGFnZVkgc2NyZWVuWCBzY3JlZW5ZIHRvRWxlbWVudCIuc3BsaXQoIiAiKSxmaWx0ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZz1iLmJ1dHRvbixoPWIuZnJvbUVsZW1lbnQ7cmV0dXJuIG51bGw9PWEucGFnZVgmJm51bGwhPWIuY2xpZW50WCYmKGU9YS50YXJnZXQub3duZXJEb2N1bWVudHx8ZCxmPWUuZG9jdW1lbnRFbGVtZW50LGM9ZS5ib2R5LGEucGFnZVg9Yi5jbGllbnRYKyhmJiZmLnNjcm9sbExlZnR8fGMmJmMuc2Nyb2xsTGVmdHx8MCktKGYmJmYuY2xpZW50TGVmdHx8YyYmYy5jbGllbnRMZWZ0fHwwKSxhLnBhZ2VZPWIuY2xpZW50WSsoZiYmZi5zY3JvbGxUb3B8fGMmJmMuc2Nyb2xsVG9wfHwwKS0oZiYmZi5jbGllbnRUb3B8fGMmJmMuY2xpZW50VG9wfHwwKSksIWEucmVsYXRlZFRhcmdldCYmaCYmKGEucmVsYXRlZFRhcmdldD1oPT09YS50YXJnZXQ/Yi50b0VsZW1lbnQ6aCksYS53aGljaHx8dm9pZCAwPT09Z3x8KGEud2hpY2g9MSZnPzE6MiZnPzM6NCZnPzI6MCksYX19LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7dHJpZ2dlcjpmdW5jdGlvbigpe2lmKHRoaXMhPT1yYSgpJiZ0aGlzLmZvY3VzKXRyeXtyZXR1cm4gdGhpcy5mb2N1cygpLCExfWNhdGNoKGEpe319LGRlbGVnYXRlVHlwZToiZm9jdXNpbiJ9LGJsdXI6e3RyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcz09PXJhKCkmJnRoaXMuYmx1cj8odGhpcy5ibHVyKCksITEpOnZvaWQgMH0sZGVsZWdhdGVUeXBlOiJmb2N1c291dCJ9LGNsaWNrOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIG4ubm9kZU5hbWUodGhpcywiaW5wdXQiKSYmImNoZWNrYm94Ij09PXRoaXMudHlwZSYmdGhpcy5jbGljaz8odGhpcy5jbGljaygpLCExKTp2b2lkIDB9LF9kZWZhdWx0OmZ1bmN0aW9uKGEpe3JldHVybiBuLm5vZGVOYW1lKGEudGFyZ2V0LCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihhKXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fSxzaW11bGF0ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9bi5leHRlbmQobmV3IG4uRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7bi5ldmVudC50cmlnZ2VyKGQsbnVsbCxiKSxkLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0KCl9fSxuLnJlbW92ZUV2ZW50PWQucmVtb3ZlRXZlbnRMaXN0ZW5lcj9mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKX06ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSJvbiIrYjthLmRldGFjaEV2ZW50JiYoInVuZGVmaW5lZCI9PXR5cGVvZiBhW2RdJiYoYVtkXT1udWxsKSxhLmRldGFjaEV2ZW50KGQsYykpfSxuLkV2ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBuLkV2ZW50PyhhJiZhLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJmEucmV0dXJuVmFsdWU9PT0hMT9wYTpxYSk6dGhpcy50eXBlPWEsYiYmbi5leHRlbmQodGhpcyxiKSx0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8bi5ub3coKSx2b2lkKHRoaXNbbi5leHBhbmRvXT0hMCkpOm5ldyBuLkV2ZW50KGEsYil9LG4uRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpuLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpxYSxpc1Byb3BhZ2F0aW9uU3RvcHBlZDpxYSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpxYSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1wYSxhJiYoYS5wcmV2ZW50RGVmYXVsdD9hLnByZXZlbnREZWZhdWx0KCk6YS5yZXR1cm5WYWx1ZT0hMSl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXBhLGEmJiF0aGlzLmlzU2ltdWxhdGVkJiYoYS5zdG9wUHJvcGFnYXRpb24mJmEuc3RvcFByb3BhZ2F0aW9uKCksYS5jYW5jZWxCdWJibGU9ITApfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1wYSxhJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbiYmYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sbi5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihhLGIpe24uZXZlbnQuc3BlY2lhbFthXT17ZGVsZWdhdGVUeXBlOmIsYmluZFR5cGU6YixoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGMsZD10aGlzLGU9YS5yZWxhdGVkVGFyZ2V0LGY9YS5oYW5kbGVPYmo7cmV0dXJuIGUmJihlPT09ZHx8bi5jb250YWlucyhkLGUpKXx8KGEudHlwZT1mLm9yaWdUeXBlLGM9Zi5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhLnR5cGU9YiksY319fSksbC5zdWJtaXR8fChuLmV2ZW50LnNwZWNpYWwuc3VibWl0PXtzZXR1cDpmdW5jdGlvbigpe3JldHVybiBuLm5vZGVOYW1lKHRoaXMsImZvcm0iKT8hMTp2b2lkIG4uZXZlbnQuYWRkKHRoaXMsImNsaWNrLl9zdWJtaXQga2V5cHJlc3MuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQsYz1uLm5vZGVOYW1lKGIsImlucHV0Iil8fG4ubm9kZU5hbWUoYiwiYnV0dG9uIik/bi5wcm9wKGIsImZvcm0iKTp2b2lkIDA7YyYmIW4uX2RhdGEoYywic3VibWl0IikmJihuLmV2ZW50LmFkZChjLCJzdWJtaXQuX3N1Ym1pdCIsZnVuY3Rpb24oYSl7YS5fc3VibWl0QnViYmxlPSEwfSksbi5fZGF0YShjLCJzdWJtaXQiLCEwKSl9KX0scG9zdERpc3BhdGNoOmZ1bmN0aW9uKGEpe2EuX3N1Ym1pdEJ1YmJsZSYmKGRlbGV0ZSBhLl9zdWJtaXRCdWJibGUsdGhpcy5wYXJlbnROb2RlJiYhYS5pc1RyaWdnZXImJm4uZXZlbnQuc2ltdWxhdGUoInN1Ym1pdCIsdGhpcy5wYXJlbnROb2RlLGEpKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtyZXR1cm4gbi5ub2RlTmFtZSh0aGlzLCJmb3JtIik/ITE6dm9pZCBuLmV2ZW50LnJlbW92ZSh0aGlzLCIuX3N1Ym1pdCIpfX0pLGwuY2hhbmdlfHwobi5ldmVudC5zcGVjaWFsLmNoYW5nZT17c2V0dXA6ZnVuY3Rpb24oKXtyZXR1cm4ga2EudGVzdCh0aGlzLm5vZGVOYW1lKT8oImNoZWNrYm94IiE9PXRoaXMudHlwZSYmInJhZGlvIiE9PXRoaXMudHlwZXx8KG4uZXZlbnQuYWRkKHRoaXMsInByb3BlcnR5Y2hhbmdlLl9jaGFuZ2UiLGZ1bmN0aW9uKGEpeyJjaGVja2VkIj09PWEub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUmJih0aGlzLl9qdXN0Q2hhbmdlZD0hMCl9KSxuLmV2ZW50LmFkZCh0aGlzLCJjbGljay5fY2hhbmdlIixmdW5jdGlvbihhKXt0aGlzLl9qdXN0Q2hhbmdlZCYmIWEuaXNUcmlnZ2VyJiYodGhpcy5fanVzdENoYW5nZWQ9ITEpLG4uZXZlbnQuc2ltdWxhdGUoImNoYW5nZSIsdGhpcyxhKX0pKSwhMSk6dm9pZCBuLmV2ZW50LmFkZCh0aGlzLCJiZWZvcmVhY3RpdmF0ZS5fY2hhbmdlIixmdW5jdGlvbihhKXt2YXIgYj1hLnRhcmdldDtrYS50ZXN0KGIubm9kZU5hbWUpJiYhbi5fZGF0YShiLCJjaGFuZ2UiKSYmKG4uZXZlbnQuYWRkKGIsImNoYW5nZS5fY2hhbmdlIixmdW5jdGlvbihhKXshdGhpcy5wYXJlbnROb2RlfHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8bi5ldmVudC5zaW11bGF0ZSgiY2hhbmdlIix0aGlzLnBhcmVudE5vZGUsYSl9KSxuLl9kYXRhKGIsImNoYW5nZSIsITApKX0pfSxoYW5kbGU6ZnVuY3Rpb24oYSl7dmFyIGI9YS50YXJnZXQ7cmV0dXJuIHRoaXMhPT1ifHxhLmlzU2ltdWxhdGVkfHxhLmlzVHJpZ2dlcnx8InJhZGlvIiE9PWIudHlwZSYmImNoZWNrYm94IiE9PWIudHlwZT9hLmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp2b2lkIDB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7cmV0dXJuIG4uZXZlbnQucmVtb3ZlKHRoaXMsIi5fY2hhbmdlIiksIWthLnRlc3QodGhpcy5ub2RlTmFtZSl9fSksbC5mb2N1c2lufHxuLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9ZnVuY3Rpb24oYSl7bi5ldmVudC5zaW11bGF0ZShiLGEudGFyZ2V0LG4uZXZlbnQuZml4KGEpKX07bi5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBkPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcyxlPW4uX2RhdGEoZCxiKTtlfHxkLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSxuLl9kYXRhKGQsYiwoZXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9bi5fZGF0YShkLGIpLTE7ZT9uLl9kYXRhKGQsYixlKTooZC5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksbi5fcmVtb3ZlRGF0YShkLGIpKX19fSksbi5mbi5leHRlbmQoe29uOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBzYSh0aGlzLGEsYixjLGQpfSxvbmU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHNhKHRoaXMsYSxiLGMsZCwxKX0sb2ZmOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlO2lmKGEmJmEucHJldmVudERlZmF1bHQmJmEuaGFuZGxlT2JqKXJldHVybiBkPWEuaGFuZGxlT2JqLG4oYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGQubmFtZXNwYWNlP2Qub3JpZ1R5cGUrIi4iK2QubmFtZXNwYWNlOmQub3JpZ1R5cGUsZC5zZWxlY3RvcixkLmhhbmRsZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtmb3IoZSBpbiBhKXRoaXMub2ZmKGUsYixhW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4gYiE9PSExJiYiZnVuY3Rpb24iIT10eXBlb2YgYnx8KGM9YixiPXZvaWQgMCksYz09PSExJiYoYz1xYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bi5ldmVudC5yZW1vdmUodGhpcyxhLGMsYil9KX0sdHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpc1swXTtyZXR1cm4gYz9uLmV2ZW50LnRyaWdnZXIoYSxiLGMsITApOnZvaWQgMH19KTt2YXIgdGE9LyBqUXVlcnlcZCs9Iig/Om51bGx8XGQrKSIvZyx1YT1uZXcgUmVnRXhwKCI8KD86IitiYSsiKVtcXHMvPl0iLCJpIiksdmE9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW1x3Oi1dKylbXj5dKilcLz4vZ2ksd2E9LzxzY3JpcHR8PHN0eWxlfDxsaW5rL2kseGE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tlZC4pL2kseWE9L150cnVlXC8oLiopLyx6YT0vXlxzKjwhKD86XFtDREFUQVxbfC0tKXwoPzpcXVxdfC0tKT5ccyokL2csQWE9Y2EoZCksQmE9QWEuYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSk7ZnVuY3Rpb24gQ2EoYSxiKXtyZXR1cm4gbi5ub2RlTmFtZShhLCJ0YWJsZSIpJiZuLm5vZGVOYW1lKDExIT09Yi5ub2RlVHlwZT9iOmIuZmlyc3RDaGlsZCwidHIiKT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxhLmFwcGVuZENoaWxkKGEub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTphfWZ1bmN0aW9uIERhKGEpe3JldHVybiBhLnR5cGU9KG51bGwhPT1uLmZpbmQuYXR0cihhLCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiBFYShhKXt2YXIgYj15YS5leGVjKGEudHlwZSk7cmV0dXJuIGI/YS50eXBlPWJbMV06YS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxhfWZ1bmN0aW9uIEZhKGEsYil7aWYoMT09PWIubm9kZVR5cGUmJm4uaGFzRGF0YShhKSl7dmFyIGMsZCxlLGY9bi5fZGF0YShhKSxnPW4uX2RhdGEoYixmKSxoPWYuZXZlbnRzO2lmKGgpe2RlbGV0ZSBnLmhhbmRsZSxnLmV2ZW50cz17fTtmb3IoYyBpbiBoKWZvcihkPTAsZT1oW2NdLmxlbmd0aDtlPmQ7ZCsrKW4uZXZlbnQuYWRkKGIsYyxoW2NdW2RdKX1nLmRhdGEmJihnLmRhdGE9bi5leHRlbmQoe30sZy5kYXRhKSl9fWZ1bmN0aW9uIEdhKGEsYil7dmFyIGMsZCxlO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSwhbC5ub0Nsb25lRXZlbnQmJmJbbi5leHBhbmRvXSl7ZT1uLl9kYXRhKGIpO2ZvcihkIGluIGUuZXZlbnRzKW4ucmVtb3ZlRXZlbnQoYixkLGUuaGFuZGxlKTtiLnJlbW92ZUF0dHJpYnV0ZShuLmV4cGFuZG8pfSJzY3JpcHQiPT09YyYmYi50ZXh0IT09YS50ZXh0PyhEYShiKS50ZXh0PWEudGV4dCxFYShiKSk6Im9iamVjdCI9PT1jPyhiLnBhcmVudE5vZGUmJihiLm91dGVySFRNTD1hLm91dGVySFRNTCksbC5odG1sNUNsb25lJiZhLmlubmVySFRNTCYmIW4udHJpbShiLmlubmVySFRNTCkmJihiLmlubmVySFRNTD1hLmlubmVySFRNTCkpOiJpbnB1dCI9PT1jJiZaLnRlc3QoYS50eXBlKT8oYi5kZWZhdWx0Q2hlY2tlZD1iLmNoZWNrZWQ9YS5jaGVja2VkLGIudmFsdWUhPT1hLnZhbHVlJiYoYi52YWx1ZT1hLnZhbHVlKSk6Im9wdGlvbiI9PT1jP2IuZGVmYXVsdFNlbGVjdGVkPWIuc2VsZWN0ZWQ9YS5kZWZhdWx0U2VsZWN0ZWQ6ImlucHV0IiE9PWMmJiJ0ZXh0YXJlYSIhPT1jfHwoYi5kZWZhdWx0VmFsdWU9YS5kZWZhdWx0VmFsdWUpfX1mdW5jdGlvbiBIYShhLGIsYyxkKXtiPWYuYXBwbHkoW10sYik7dmFyIGUsZyxoLGksaixrLG09MCxvPWEubGVuZ3RoLHA9by0xLHE9YlswXSxyPW4uaXNGdW5jdGlvbihxKTtpZihyfHxvPjEmJiJzdHJpbmciPT10eXBlb2YgcSYmIWwuY2hlY2tDbG9uZSYmeGEudGVzdChxKSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKGUpe3ZhciBmPWEuZXEoZSk7ciYmKGJbMF09cS5jYWxsKHRoaXMsZSxmLmh0bWwoKSkpLEhhKGYsYixjLGQpfSk7aWYobyYmKGs9amEoYixhWzBdLm93bmVyRG9jdW1lbnQsITEsYSxkKSxlPWsuZmlyc3RDaGlsZCwxPT09ay5jaGlsZE5vZGVzLmxlbmd0aCYmKGs9ZSksZXx8ZCkpe2ZvcihpPW4ubWFwKGVhKGssInNjcmlwdCIpLERhKSxoPWkubGVuZ3RoO28+bTttKyspZz1rLG0hPT1wJiYoZz1uLmNsb25lKGcsITAsITApLGgmJm4ubWVyZ2UoaSxlYShnLCJzY3JpcHQiKSkpLGMuY2FsbChhW21dLGcsbSk7aWYoaClmb3Ioaj1pW2kubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsbi5tYXAoaSxFYSksbT0wO2g+bTttKyspZz1pW21dLF8udGVzdChnLnR5cGV8fCIiKSYmIW4uX2RhdGEoZywiZ2xvYmFsRXZhbCIpJiZuLmNvbnRhaW5zKGosZykmJihnLnNyYz9uLl9ldmFsVXJsJiZuLl9ldmFsVXJsKGcuc3JjKTpuLmdsb2JhbEV2YWwoKGcudGV4dHx8Zy50ZXh0Q29udGVudHx8Zy5pbm5lckhUTUx8fCIiKS5yZXBsYWNlKHphLCIiKSkpO2s9ZT1udWxsfXJldHVybiBhfWZ1bmN0aW9uIElhKGEsYixjKXtmb3IodmFyIGQsZT1iP24uZmlsdGVyKGIsYSk6YSxmPTA7bnVsbCE9KGQ9ZVtmXSk7ZisrKWN8fDEhPT1kLm5vZGVUeXBlfHxuLmNsZWFuRGF0YShlYShkKSksZC5wYXJlbnROb2RlJiYoYyYmbi5jb250YWlucyhkLm93bmVyRG9jdW1lbnQsZCkmJmZhKGVhKGQsInNjcmlwdCIpKSxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCkpO3JldHVybiBhfW4uZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UodmEsIjwkMT48LyQyPiIpfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpPW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpO2lmKGwuaHRtbDVDbG9uZXx8bi5pc1hNTERvYyhhKXx8IXVhLnRlc3QoIjwiK2Eubm9kZU5hbWUrIj4iKT9mPWEuY2xvbmVOb2RlKCEwKTooQmEuaW5uZXJIVE1MPWEub3V0ZXJIVE1MLEJhLnJlbW92ZUNoaWxkKGY9QmEuZmlyc3RDaGlsZCkpLCEobC5ub0Nsb25lRXZlbnQmJmwubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fG4uaXNYTUxEb2MoYSkpKWZvcihkPWVhKGYpLGg9ZWEoYSksZz0wO251bGwhPShlPWhbZ10pOysrZylkW2ddJiZHYShlLGRbZ10pO2lmKGIpaWYoYylmb3IoaD1ofHxlYShhKSxkPWR8fGVhKGYpLGc9MDtudWxsIT0oZT1oW2ddKTtnKyspRmEoZSxkW2ddKTtlbHNlIEZhKGEsZik7cmV0dXJuIGQ9ZWEoZiwic2NyaXB0IiksZC5sZW5ndGg+MCYmZmEoZCwhaSYmZWEoYSwic2NyaXB0IikpLGQ9aD1lPW51bGwsZn0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEsYil7Zm9yKHZhciBkLGUsZixnLGg9MCxpPW4uZXhwYW5kbyxqPW4uY2FjaGUsaz1sLmF0dHJpYnV0ZXMsbT1uLmV2ZW50LnNwZWNpYWw7bnVsbCE9KGQ9YVtoXSk7aCsrKWlmKChifHxNKGQpKSYmKGY9ZFtpXSxnPWYmJmpbZl0pKXtpZihnLmV2ZW50cylmb3IoZSBpbiBnLmV2ZW50cyltW2VdP24uZXZlbnQucmVtb3ZlKGQsZSk6bi5yZW1vdmVFdmVudChkLGUsZy5oYW5kbGUpO2pbZl0mJihkZWxldGUgaltmXSxrfHwidW5kZWZpbmVkIj09dHlwZW9mIGQucmVtb3ZlQXR0cmlidXRlP2RbaV09dm9pZCAwOmQucmVtb3ZlQXR0cmlidXRlKGkpLGMucHVzaChmKSl9fX0pLG4uZm4uZXh0ZW5kKHtkb21NYW5pcDpIYSxkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIElhKHRoaXMsYSwhMCl9LHJlbW92ZTpmdW5jdGlvbihhKXtyZXR1cm4gSWEodGhpcyxhKX0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiB2b2lkIDA9PT1hP24udGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGQpLmNyZWF0ZVRleHROb2RlKGEpKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGEodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PXRoaXMubm9kZVR5cGUpe3ZhciBiPUNhKHRoaXMsYSk7Yi5hcHBlbmRDaGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIGI9Q2EodGhpcyxhKTtiLmluc2VydEJlZm9yZShhLGIuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgYSxiPTA7bnVsbCE9KGE9dGhpc1tiXSk7YisrKXsxPT09YS5ub2RlVHlwZSYmbi5jbGVhbkRhdGEoZWEoYSwhMSkpO3doaWxlKGEuZmlyc3RDaGlsZClhLnJlbW92ZUNoaWxkKGEuZmlyc3RDaGlsZCk7YS5vcHRpb25zJiZuLm5vZGVOYW1lKGEsInNlbGVjdCIpJiYoYS5vcHRpb25zLmxlbmd0aD0wKX1yZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsPT1hPyExOmEsYj1udWxsPT1iP2E6Yix0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBuLmNsb25lKHRoaXMsYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oYSl7dmFyIGI9dGhpc1swXXx8e30sYz0wLGQ9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YSlyZXR1cm4gMT09PWIubm9kZVR5cGU/Yi5pbm5lckhUTUwucmVwbGFjZSh0YSwiIik6dm9pZCAwO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmIXdhLnRlc3QoYSkmJihsLmh0bWxTZXJpYWxpemV8fCF1YS50ZXN0KGEpKSYmKGwubGVhZGluZ1doaXRlc3BhY2V8fCFhYS50ZXN0KGEpKSYmIWRhWygkLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPW4uaHRtbFByZWZpbHRlcihhKTt0cnl7Zm9yKDtkPmM7YysrKWI9dGhpc1tjXXx8e30sMT09PWIubm9kZVR5cGUmJihuLmNsZWFuRGF0YShlYShiLCExKSksYi5pbm5lckhUTUw9YSk7Yj0wfWNhdGNoKGUpe319YiYmdGhpcy5lbXB0eSgpLmFwcGVuZChhKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBIYSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7bi5pbkFycmF5KHRoaXMsYSk8MCYmKG4uY2xlYW5EYXRhKGVhKHRoaXMpKSxjJiZjLnJlcGxhY2VDaGlsZChiLHRoaXMpKX0sYSl9fSksbi5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtuLmZuW2FdPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYyxkPTAsZT1bXSxmPW4oYSksaD1mLmxlbmd0aC0xO2g+PWQ7ZCsrKWM9ZD09PWg/dGhpczp0aGlzLmNsb25lKCEwKSxuKGZbZF0pW2JdKGMpLGcuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIEphLEthPXtIVE1MOiJibG9jayIsQk9EWToiYmxvY2sifTtmdW5jdGlvbiBMYShhLGIpe3ZhciBjPW4oYi5jcmVhdGVFbGVtZW50KGEpKS5hcHBlbmRUbyhiLmJvZHkpLGQ9bi5jc3MoY1swXSwiZGlzcGxheSIpO3JldHVybiBjLmRldGFjaCgpLGR9ZnVuY3Rpb24gTWEoYSl7dmFyIGI9ZCxjPUthW2FdO3JldHVybiBjfHwoYz1MYShhLGIpLCJub25lIiE9PWMmJmN8fChKYT0oSmF8fG4oIjxpZnJhbWUgZnJhbWVib3JkZXI9JzAnIHdpZHRoPScwJyBoZWlnaHQ9JzAnLz4iKSkuYXBwZW5kVG8oYi5kb2N1bWVudEVsZW1lbnQpLGI9KEphWzBdLmNvbnRlbnRXaW5kb3d8fEphWzBdLmNvbnRlbnREb2N1bWVudCkuZG9jdW1lbnQsYi53cml0ZSgpLGIuY2xvc2UoKSxjPUxhKGEsYiksSmEuZGV0YWNoKCkpLEthW2FdPWMpLGN9dmFyIE5hPS9ebWFyZ2luLyxPYT1uZXcgUmVnRXhwKCJeKCIrVCsiKSg/IXB4KVthLXolXSskIiwiaSIpLFBhPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz17fTtmb3IoZiBpbiBiKWdbZl09YS5zdHlsZVtmXSxhLnN0eWxlW2ZdPWJbZl07ZT1jLmFwcGx5KGEsZHx8W10pO2ZvcihmIGluIGIpYS5zdHlsZVtmXT1nW2ZdO3JldHVybiBlfSxRYT1kLmRvY3VtZW50RWxlbWVudDshZnVuY3Rpb24oKXt2YXIgYixjLGUsZixnLGgsaT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGo9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihqLnN0eWxlKXtqLnN0eWxlLmNzc1RleHQ9ImZsb2F0OmxlZnQ7b3BhY2l0eTouNSIsbC5vcGFjaXR5PSIwLjUiPT09ai5zdHlsZS5vcGFjaXR5LGwuY3NzRmxvYXQ9ISFqLnN0eWxlLmNzc0Zsb2F0LGouc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixqLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsbC5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWouc3R5bGUuYmFja2dyb3VuZENsaXAsaT1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGkuc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjA7d2lkdGg6OHB4O2hlaWdodDowO3RvcDowO2xlZnQ6LTk5OTlweDtwYWRkaW5nOjA7bWFyZ2luLXRvcDoxcHg7cG9zaXRpb246YWJzb2x1dGUiLGouaW5uZXJIVE1MPSIiLGkuYXBwZW5kQ2hpbGQoaiksbC5ib3hTaXppbmc9IiI9PT1qLnN0eWxlLmJveFNpemluZ3x8IiI9PT1qLnN0eWxlLk1vekJveFNpemluZ3x8IiI9PT1qLnN0eWxlLldlYmtpdEJveFNpemluZyxuLmV4dGVuZChsLHtyZWxpYWJsZUhpZGRlbk9mZnNldHM6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09YiYmaygpLGZ9LGJveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxlfSxwaXhlbE1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxjfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxifSxyZWxpYWJsZU1hcmdpblJpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGw9PWImJmsoKSxnfSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09YiYmaygpLGh9fSk7ZnVuY3Rpb24gaygpe3ZhciBrLGwsbT1kLmRvY3VtZW50RWxlbWVudDttLmFwcGVuZENoaWxkKGkpLGouc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDt0b3A6MSU7d2lkdGg6NTAlIixiPWU9aD0hMSxjPWc9ITAsYS5nZXRDb21wdXRlZFN0eWxlJiYobD1hLmdldENvbXB1dGVkU3R5bGUoaiksYj0iMSUiIT09KGx8fHt9KS50b3AsaD0iMnB4Ij09PShsfHx7fSkubWFyZ2luTGVmdCxlPSI0cHgiPT09KGx8fHt3aWR0aDoiNHB4In0pLndpZHRoLGouc3R5bGUubWFyZ2luUmlnaHQ9IjUwJSIsYz0iNHB4Ij09PShsfHx7bWFyZ2luUmlnaHQ6IjRweCJ9KS5tYXJnaW5SaWdodCxrPWouYXBwZW5kQ2hpbGQoZC5jcmVhdGVFbGVtZW50KCJkaXYiKSksay5zdHlsZS5jc3NUZXh0PWouc3R5bGUuY3NzVGV4dD0iLXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFkZGluZzowIixrLnN0eWxlLm1hcmdpblJpZ2h0PWsuc3R5bGUud2lkdGg9IjAiLGouc3R5bGUud2lkdGg9IjFweCIsZz0hcGFyc2VGbG9hdCgoYS5nZXRDb21wdXRlZFN0eWxlKGspfHx7fSkubWFyZ2luUmlnaHQpLGoucmVtb3ZlQ2hpbGQoaykpLGouc3R5bGUuZGlzcGxheT0ibm9uZSIsZj0wPT09ai5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCxmJiYoai5zdHlsZS5kaXNwbGF5PSIiLGouaW5uZXJIVE1MPSI8dGFibGU+PHRyPjx0ZD48L3RkPjx0ZD50PC90ZD48L3RyPjwvdGFibGU+IixqLmNoaWxkTm9kZXNbMF0uc3R5bGUuYm9yZGVyQ29sbGFwc2U9InNlcGFyYXRlIixrPWouZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRkIiksa1swXS5zdHlsZS5jc3NUZXh0PSJtYXJnaW46MDtib3JkZXI6MDtwYWRkaW5nOjA7ZGlzcGxheTpub25lIixmPTA9PT1rWzBdLm9mZnNldEhlaWdodCxmJiYoa1swXS5zdHlsZS5kaXNwbGF5PSIiLGtbMV0uc3R5bGUuZGlzcGxheT0ibm9uZSIsZj0wPT09a1swXS5vZmZzZXRIZWlnaHQpKSxtLnJlbW92ZUNoaWxkKGkpfX19KCk7dmFyIFJhLFNhLFRhPS9eKHRvcHxyaWdodHxib3R0b218bGVmdCkkLzthLmdldENvbXB1dGVkU3R5bGU/KFJhPWZ1bmN0aW9uKGIpe3ZhciBjPWIub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYyYmYy5vcGVuZXJ8fChjPWEpLGMuZ2V0Q29tcHV0ZWRTdHlsZShiKX0sU2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxSYShhKSxnPWM/Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdOnZvaWQgMCwiIiE9PWcmJnZvaWQgMCE9PWd8fG4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHwoZz1uLnN0eWxlKGEsYikpLGMmJiFsLnBpeGVsTWFyZ2luUmlnaHQoKSYmT2EudGVzdChnKSYmTmEudGVzdChiKSYmKGQ9aC53aWR0aCxlPWgubWluV2lkdGgsZj1oLm1heFdpZHRoLGgubWluV2lkdGg9aC5tYXhXaWR0aD1oLndpZHRoPWcsZz1jLndpZHRoLGgud2lkdGg9ZCxoLm1pbldpZHRoPWUsaC5tYXhXaWR0aD1mKSx2b2lkIDA9PT1nP2c6ZysiIn0pOlFhLmN1cnJlbnRTdHlsZSYmKFJhPWZ1bmN0aW9uKGEpe3JldHVybiBhLmN1cnJlbnRTdHlsZX0sU2E9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5zdHlsZTtyZXR1cm4gYz1jfHxSYShhKSxnPWM/Y1tiXTp2b2lkIDAsbnVsbD09ZyYmaCYmaFtiXSYmKGc9aFtiXSksT2EudGVzdChnKSYmIVRhLnRlc3QoYikmJihkPWgubGVmdCxlPWEucnVudGltZVN0eWxlLGY9ZSYmZS5sZWZ0LGYmJihlLmxlZnQ9YS5jdXJyZW50U3R5bGUubGVmdCksaC5sZWZ0PSJmb250U2l6ZSI9PT1iPyIxZW0iOmcsZz1oLnBpeGVsTGVmdCsicHgiLGgubGVmdD1kLGYmJihlLmxlZnQ9ZikpLHZvaWQgMD09PWc/ZzpnKyIifHwiYXV0byJ9KTtmdW5jdGlvbiBVYShhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpP3ZvaWQgZGVsZXRlIHRoaXMuZ2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX12YXIgVmE9L2FscGhhXChbXildKlwpL2ksV2E9L29wYWNpdHlccyo9XHMqKFteKV0qKS9pLFhhPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxZYT1uZXcgUmVnRXhwKCJeKCIrVCsiKSguKikkIiwiaSIpLFphPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSwkYT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn0sX2E9WyJXZWJraXQiLCJPIiwiTW96IiwibXMiXSxhYj1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlO2Z1bmN0aW9uIGJiKGEpe2lmKGEgaW4gYWIpcmV0dXJuIGE7dmFyIGI9YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSthLnNsaWNlKDEpLGM9X2EubGVuZ3RoO3doaWxlKGMtLSlpZihhPV9hW2NdK2IsYSBpbiBhYilyZXR1cm4gYX1mdW5jdGlvbiBjYihhLGIpe2Zvcih2YXIgYyxkLGUsZj1bXSxnPTAsaD1hLmxlbmd0aDtoPmc7ZysrKWQ9YVtnXSxkLnN0eWxlJiYoZltnXT1uLl9kYXRhKGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2ddfHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUuZGlzcGxheSYmVyhkKSYmKGZbZ109bi5fZGF0YShkLCJvbGRkaXNwbGF5IixNYShkLm5vZGVOYW1lKSkpKTooZT1XKGQpLChjJiYibm9uZSIhPT1jfHwhZSkmJm4uX2RhdGEoZCwib2xkZGlzcGxheSIsZT9jOm4uY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0wO2g+ZztnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRpc3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gZGIoYSxiLGMpe3ZhciBkPVlhLmV4ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzFdLShjfHwwKSkrKGRbMl18fCJweCIpOmJ9ZnVuY3Rpb24gZWIoYSxiLGMsZCxlKXtmb3IodmFyIGY9Yz09PShkPyJib3JkZXIiOiJjb250ZW50Iik/NDoid2lkdGgiPT09Yj8xOjAsZz0wOzQ+ZjtmKz0yKSJtYXJnaW4iPT09YyYmKGcrPW4uY3NzKGEsYytWW2ZdLCEwLGUpKSxkPygiY29udGVudCI9PT1jJiYoZy09bi5jc3MoYSwicGFkZGluZyIrVltmXSwhMCxlKSksIm1hcmdpbiIhPT1jJiYoZy09bi5jc3MoYSwiYm9yZGVyIitWW2ZdKyJXaWR0aCIsITAsZSkpKTooZys9bi5jc3MoYSwicGFkZGluZyIrVltmXSwhMCxlKSwicGFkZGluZyIhPT1jJiYoZys9bi5jc3MoYSwiYm9yZGVyIitWW2ZdKyJXaWR0aCIsITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBmYihhLGIsYyl7dmFyIGQ9ITAsZT0id2lkdGgiPT09Yj9hLm9mZnNldFdpZHRoOmEub2Zmc2V0SGVpZ2h0LGY9UmEoYSksZz1sLmJveFNpemluZyYmImJvcmRlci1ib3giPT09bi5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKTtpZigwPj1lfHxudWxsPT1lKXtpZihlPVNhKGEsYixmKSwoMD5lfHxudWxsPT1lKSYmKGU9YS5zdHlsZVtiXSksT2EudGVzdChlKSlyZXR1cm4gZTtkPWcmJihsLmJveFNpemluZ1JlbGlhYmxlKCl8fGU9PT1hLnN0eWxlW2JdKSxlPXBhcnNlRmxvYXQoZSl8fDB9cmV0dXJuIGUrZWIoYSxiLGN8fChnPyJib3JkZXIiOiJjb250ZW50IiksZCxmKSsicHgifW4uZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYil7dmFyIGM9U2EoYSwib3BhY2l0eSIpO3JldHVybiIiPT09Yz8iMSI6Y319fX0sY3NzTnVtYmVyOnthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfSxjc3NQcm9wczp7ImZsb2F0IjpsLmNzc0Zsb2F0PyJjc3NGbG9hdCI6InN0eWxlRmxvYXQifSxzdHlsZTpmdW5jdGlvbihhLGIsYyxkKXtpZihhJiYzIT09YS5ub2RlVHlwZSYmOCE9PWEubm9kZVR5cGUmJmEuc3R5bGUpe3ZhciBlLGYsZyxoPW4uY2FtZWxDYXNlKGIpLGk9YS5zdHlsZTtpZihiPW4uY3NzUHJvcHNbaF18fChuLmNzc1Byb3BzW2hdPWJiKGgpfHxoKSxnPW4uY3NzSG9va3NbYl18fG4uY3NzSG9va3NbaF0sdm9pZCAwPT09YylyZXR1cm4gZyYmImdldCJpbiBnJiZ2b2lkIDAhPT0oZT1nLmdldChhLCExLGQpKT9lOmlbYl07aWYoZj10eXBlb2YgYywic3RyaW5nIj09PWYmJihlPVUuZXhlYyhjKSkmJmVbMV0mJihjPVgoYSxiLGUpLGY9Im51bWJlciIpLG51bGwhPWMmJmM9PT1jJiYoIm51bWJlciI9PT1mJiYoYys9ZSYmZVszXXx8KG4uY3NzTnVtYmVyW2hdPyIiOiJweCIpKSxsLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0IiksIShnJiYic2V0ImluIGcmJnZvaWQgMD09PShjPWcuc2V0KGEsYyxkKSkpKSl0cnl7aVtiXT1jfWNhdGNoKGope319fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnLGg9bi5jYW1lbENhc2UoYik7cmV0dXJuIGI9bi5jc3NQcm9wc1toXXx8KG4uY3NzUHJvcHNbaF09YmIoaCl8fGgpLGc9bi5jc3NIb29rc1tiXXx8bi5jc3NIb29rc1toXSxnJiYiZ2V0ImluIGcmJihmPWcuZ2V0KGEsITAsYykpLHZvaWQgMD09PWYmJihmPVNhKGEsYixkKSksIm5vcm1hbCI9PT1mJiZiIGluICRhJiYoZj0kYVtiXSksIiI9PT1jfHxjPyhlPXBhcnNlRmxvYXQoZiksYz09PSEwfHxpc0Zpbml0ZShlKT9lfHwwOmYpOmZ9fSksbi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIpe24uY3NzSG9va3NbYl09e2dldDpmdW5jdGlvbihhLGMsZCl7cmV0dXJuIGM/WGEudGVzdChuLmNzcyhhLCJkaXNwbGF5IikpJiYwPT09YS5vZmZzZXRXaWR0aD9QYShhLFphLGZ1bmN0aW9uKCl7cmV0dXJuIGZiKGEsYixkKX0pOmZiKGEsYixkKTp2b2lkIDB9LHNldDpmdW5jdGlvbihhLGMsZCl7dmFyIGU9ZCYmUmEoYSk7cmV0dXJuIGRiKGEsYyxkP2ViKGEsYixkLGwuYm94U2l6aW5nJiYiYm9yZGVyLWJveCI9PT1uLmNzcyhhLCJib3hTaXppbmciLCExLGUpLGUpOjApfX19KSxsLm9wYWNpdHl8fChuLmNzc0hvb2tzLm9wYWNpdHk9e2dldDpmdW5jdGlvbihhLGIpe3JldHVybiBXYS50ZXN0KChiJiZhLmN1cnJlbnRTdHlsZT9hLmN1cnJlbnRTdHlsZS5maWx0ZXI6YS5zdHlsZS5maWx0ZXIpfHwiIik/LjAxKnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsiIjpiPyIxIjoiIn0sc2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5zdHlsZSxkPWEuY3VycmVudFN0eWxlLGU9bi5pc051bWVyaWMoYik/ImFscGhhKG9wYWNpdHk9IisxMDAqYisiKSI6IiIsZj1kJiZkLmZpbHRlcnx8Yy5maWx0ZXJ8fCIiO2Muem9vbT0xLChiPj0xfHwiIj09PWIpJiYiIj09PW4udHJpbShmLnJlcGxhY2UoVmEsIiIpKSYmYy5yZW1vdmVBdHRyaWJ1dGUmJihjLnJlbW92ZUF0dHJpYnV0ZSgiZmlsdGVyIiksIiI9PT1ifHxkJiYhZC5maWx0ZXIpfHwoYy5maWx0ZXI9VmEudGVzdChmKT9mLnJlcGxhY2UoVmEsZSk6ZisiICIrZSl9fSksbi5jc3NIb29rcy5tYXJnaW5SaWdodD1VYShsLnJlbGlhYmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9QYShhLHtkaXNwbGF5OiJpbmxpbmUtYmxvY2sifSxTYSxbYSwibWFyZ2luUmlnaHQiXSk6dm9pZCAwfSksbi5jc3NIb29rcy5tYXJnaW5MZWZ0PVVhKGwucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/KHBhcnNlRmxvYXQoU2EoYSwibWFyZ2luTGVmdCIpKXx8KG4uY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpP2EuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1QYShhLHsNCm1hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSk6MCkpKyJweCI6dm9pZCAwfSksbi5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtuLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtmb3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND5kO2QrKyllW2ErVltkXStiXT1mW2RdfHxmW2QtMl18fGZbMF07cmV0dXJuIGV9fSxOYS50ZXN0KGEpfHwobi5jc3NIb29rc1thK2JdLnNldD1kYil9KSxuLmZuLmV4dGVuZCh7Y3NzOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihuLmlzQXJyYXkoYikpe2ZvcihkPVJhKGEpLGU9Yi5sZW5ndGg7ZT5nO2crKylmW2JbZ11dPW4uY3NzKGEsYltnXSwhMSxkKTtyZXR1cm4gZn1yZXR1cm4gdm9pZCAwIT09Yz9uLnN0eWxlKGEsYixjKTpuLmNzcyhhLGIpfSxhLGIsYXJndW1lbnRzLmxlbmd0aD4xKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE/YT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtXKHRoaXMpP24odGhpcykuc2hvdygpOm4odGhpcykuaGlkZSgpfSl9fSk7ZnVuY3Rpb24gZ2IoYSxiLGMsZCxlKXtyZXR1cm4gbmV3IGdiLnByb3RvdHlwZS5pbml0KGEsYixjLGQsZSl9bi5Ud2Vlbj1nYixnYi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmdiLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJvcD1jLHRoaXMuZWFzaW5nPWV8fG4uZWFzaW5nLl9kZWZhdWx0LHRoaXMub3B0aW9ucz1iLHRoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKSx0aGlzLmVuZD1kLHRoaXMudW5pdD1mfHwobi5jc3NOdW1iZXJbY10/IiI6InB4Iil9LGN1cjpmdW5jdGlvbigpe3ZhciBhPWdiLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiBhJiZhLmdldD9hLmdldCh0aGlzKTpnYi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxydW46ZnVuY3Rpb24oYSl7dmFyIGIsYz1nYi5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gdGhpcy5vcHRpb25zLmR1cmF0aW9uP3RoaXMucG9zPWI9bi5lYXNpbmdbdGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMub3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVuZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRoaXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMmJmMuc2V0P2Muc2V0KHRoaXMpOmdiLnByb3BIb29rcy5fZGVmYXVsdC5zZXQodGhpcyksdGhpc319LGdiLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZT1nYi5wcm90b3R5cGUsZ2IucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0/YS5lbGVtW2EucHJvcF06KGI9bi5jc3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApfSxzZXQ6ZnVuY3Rpb24oYSl7bi5meC5zdGVwW2EucHJvcF0/bi5meC5zdGVwW2EucHJvcF0oYSk6MSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbD09YS5lbGVtLnN0eWxlW24uY3NzUHJvcHNbYS5wcm9wXV0mJiFuLmNzc0hvb2tzW2EucHJvcF0/YS5lbGVtW2EucHJvcF09YS5ub3c6bi5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0sZ2IucHJvcEhvb2tzLnNjcm9sbFRvcD1nYi5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxuLmVhc2luZz17bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9LG4uZng9Z2IucHJvdG90eXBlLmluaXQsbi5meC5zdGVwPXt9O3ZhciBoYixpYixqYj0vXig/OnRvZ2dsZXxzaG93fGhpZGUpJC8sa2I9L3F1ZXVlSG9va3MkLztmdW5jdGlvbiBsYigpe3JldHVybiBhLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtoYj12b2lkIDB9KSxoYj1uLm5vdygpfWZ1bmN0aW9uIG1iKGEsYil7dmFyIGMsZD17aGVpZ2h0OmF9LGU9MDtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWM9VltlXSxkWyJtYXJnaW4iK2NdPWRbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihkLm9wYWNpdHk9ZC53aWR0aD1hKSxkfWZ1bmN0aW9uIG5iKGEsYixjKXtmb3IodmFyIGQsZT0ocWIudHdlZW5lcnNbYl18fFtdKS5jb25jYXQocWIudHdlZW5lcnNbIioiXSksZj0wLGc9ZS5sZW5ndGg7Zz5mO2YrKylpZihkPWVbZl0uY2FsbChjLGIsYSkpcmV0dXJuIGR9ZnVuY3Rpb24gb2IoYSxiLGMpe3ZhciBkLGUsZixnLGgsaSxqLGssbT10aGlzLG89e30scD1hLnN0eWxlLHE9YS5ub2RlVHlwZSYmVyhhKSxyPW4uX2RhdGEoYSwiZnhzaG93Iik7Yy5xdWV1ZXx8KGg9bi5fcXVldWVIb29rcyhhLCJmeCIpLG51bGw9PWgudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsaT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8aSgpfSksaC51bnF1ZXVlZCsrLG0uYWx3YXlzKGZ1bmN0aW9uKCl7bS5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS0sbi5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlwZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bcC5vdmVyZmxvdyxwLm92ZXJmbG93WCxwLm92ZXJmbG93WV0saj1uLmNzcyhhLCJkaXNwbGF5Iiksaz0ibm9uZSI9PT1qP24uX2RhdGEoYSwib2xkZGlzcGxheSIpfHxNYShhLm5vZGVOYW1lKTpqLCJpbmxpbmUiPT09ayYmIm5vbmUiPT09bi5jc3MoYSwiZmxvYXQiKSYmKGwuaW5saW5lQmxvY2tOZWVkc0xheW91dCYmImlubGluZSIhPT1NYShhLm5vZGVOYW1lKT9wLnpvb209MTpwLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYocC5vdmVyZmxvdz0iaGlkZGVuIixsLnNocmlua1dyYXBCbG9ja3MoKXx8bS5hbHdheXMoZnVuY3Rpb24oKXtwLm92ZXJmbG93PWMub3ZlcmZsb3dbMF0scC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXSxwLm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpO2ZvcihkIGluIGIpaWYoZT1iW2RdLGpiLmV4ZWMoZSkpe2lmKGRlbGV0ZSBiW2RdLGY9Znx8InRvZ2dsZSI9PT1lLGU9PT0ocT8iaGlkZSI6InNob3ciKSl7aWYoInNob3ciIT09ZXx8IXJ8fHZvaWQgMD09PXJbZF0pY29udGludWU7cT0hMH1vW2RdPXImJnJbZF18fG4uc3R5bGUoYSxkKX1lbHNlIGo9dm9pZCAwO2lmKG4uaXNFbXB0eU9iamVjdChvKSkiaW5saW5lIj09PSgibm9uZSI9PT1qP01hKGEubm9kZU5hbWUpOmopJiYocC5kaXNwbGF5PWopO2Vsc2V7cj8iaGlkZGVuImluIHImJihxPXIuaGlkZGVuKTpyPW4uX2RhdGEoYSwiZnhzaG93Iix7fSksZiYmKHIuaGlkZGVuPSFxKSxxP24oYSkuc2hvdygpOm0uZG9uZShmdW5jdGlvbigpe24oYSkuaGlkZSgpfSksbS5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7bi5fcmVtb3ZlRGF0YShhLCJmeHNob3ciKTtmb3IoYiBpbiBvKW4uc3R5bGUoYSxiLG9bYl0pfSk7Zm9yKGQgaW4gbylnPW5iKHE/cltkXTowLGQsbSksZCBpbiByfHwocltkXT1nLnN0YXJ0LHEmJihnLmVuZD1nLnN0YXJ0LGcuc3RhcnQ9IndpZHRoIj09PWR8fCJoZWlnaHQiPT09ZD8xOjApKX19ZnVuY3Rpb24gcGIoYSxiKXt2YXIgYyxkLGUsZixnO2ZvcihjIGluIGEpaWYoZD1uLmNhbWVsQ2FzZShjKSxlPWJbZF0sZj1hW2NdLG4uaXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYsZGVsZXRlIGFbY10pLGc9bi5jc3NIb29rc1tkXSxnJiYiZXhwYW5kImluIGcpe2Y9Zy5leHBhbmQoZiksZGVsZXRlIGFbZF07Zm9yKGMgaW4gZiljIGluIGF8fChhW2NdPWZbY10sYltjXT1lKX1lbHNlIGJbZF09ZX1mdW5jdGlvbiBxYihhLGIsYyl7dmFyIGQsZSxmPTAsZz1xYi5wcmVmaWx0ZXJzLmxlbmd0aCxoPW4uRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lmKGUpcmV0dXJuITE7Zm9yKHZhciBiPWhifHxsYigpLGM9TWF0aC5tYXgoMCxqLnN0YXJ0VGltZStqLmR1cmF0aW9uLWIpLGQ9Yy9qLmR1cmF0aW9ufHwwLGY9MS1kLGc9MCxpPWoudHdlZW5zLmxlbmd0aDtpPmc7ZysrKWoudHdlZW5zW2ddLnJ1bihmKTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2osZixjXSksMT5mJiZpP2M6KGgucmVzb2x2ZVdpdGgoYSxbal0pLCExKX0saj1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpuLmV4dGVuZCh7fSxiKSxvcHRzOm4uZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpuLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOmhifHxsYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9bi5Ud2VlbihhLGoub3B0cyxiLGMsai5vcHRzLnNwZWNpYWxFYXNpbmdbYl18fGoub3B0cy5lYXNpbmcpO3JldHVybiBqLnR3ZWVucy5wdXNoKGQpLGR9LHN0b3A6ZnVuY3Rpb24oYil7dmFyIGM9MCxkPWI/ai50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDtkPmM7YysrKWoudHdlZW5zW2NdLnJ1bigxKTtyZXR1cm4gYj8oaC5ub3RpZnlXaXRoKGEsW2osMSwwXSksaC5yZXNvbHZlV2l0aChhLFtqLGJdKSk6aC5yZWplY3RXaXRoKGEsW2osYl0pLHRoaXN9fSksaz1qLnByb3BzO2ZvcihwYihrLGoub3B0cy5zcGVjaWFsRWFzaW5nKTtnPmY7ZisrKWlmKGQ9cWIucHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIG4uaXNGdW5jdGlvbihkLnN0b3ApJiYobi5fcXVldWVIb29rcyhqLmVsZW0sai5vcHRzLnF1ZXVlKS5zdG9wPW4ucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiBuLm1hcChrLG5iLGopLG4uaXNGdW5jdGlvbihqLm9wdHMuc3RhcnQpJiZqLm9wdHMuc3RhcnQuY2FsbChhLGopLG4uZngudGltZXIobi5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixxdWV1ZTpqLm9wdHMucXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3MpLmRvbmUoai5vcHRzLmRvbmUsai5vcHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5mYWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9bi5BbmltYXRpb249bi5leHRlbmQocWIse3R3ZWVuZXJzOnsiKiI6W2Z1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jcmVhdGVUd2VlbihhLGIpO3JldHVybiBYKGMuZWxlbSxhLFUuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtuLmlzRnVuY3Rpb24oYSk/KGI9YSxhPVsiKiJdKTphPWEubWF0Y2goRyk7Zm9yKHZhciBjLGQ9MCxlPWEubGVuZ3RoO2U+ZDtkKyspYz1hW2RdLHFiLnR3ZWVuZXJzW2NdPXFiLnR3ZWVuZXJzW2NdfHxbXSxxYi50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltvYl0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj9xYi5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6cWIucHJlZmlsdGVycy5wdXNoKGEpfX0pLG4uc3BlZWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEmJiJvYmplY3QiPT10eXBlb2YgYT9uLmV4dGVuZCh7fSxhKTp7Y29tcGxldGU6Y3x8IWMmJmJ8fG4uaXNGdW5jdGlvbihhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiZifHxiJiYhbi5pc0Z1bmN0aW9uKGIpJiZifTtyZXR1cm4gZC5kdXJhdGlvbj1uLmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgZC5kdXJhdGlvbj9kLmR1cmF0aW9uOmQuZHVyYXRpb24gaW4gbi5meC5zcGVlZHM/bi5meC5zcGVlZHNbZC5kdXJhdGlvbl06bi5meC5zcGVlZHMuX2RlZmF1bHQsbnVsbCE9ZC5xdWV1ZSYmZC5xdWV1ZSE9PSEwfHwoZC5xdWV1ZT0iZngiKSxkLm9sZD1kLmNvbXBsZXRlLGQuY29tcGxldGU9ZnVuY3Rpb24oKXtuLmlzRnVuY3Rpb24oZC5vbGQpJiZkLm9sZC5jYWxsKHRoaXMpLGQucXVldWUmJm4uZGVxdWV1ZSh0aGlzLGQucXVldWUpfSxkfSxuLmZuLmV4dGVuZCh7ZmFkZVRvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiB0aGlzLmZpbHRlcihXKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxkKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1uLmlzRW1wdHlPYmplY3QoYSksZj1uLnNwZWVkKGIsYyxkKSxnPWZ1bmN0aW9uKCl7dmFyIGI9cWIodGhpcyxuLmV4dGVuZCh7fSxhKSxmKTsoZXx8bi5fZGF0YSh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVybiBnLmZpbmlzaD1nLGV8fGYucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5xdWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mdW5jdGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxiKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEmJnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ITAsZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPW4udGltZXJzLGc9bi5fZGF0YSh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZvcihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZrYi50ZXN0KGUpJiZkKGdbZV0pO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltlXS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUsMSkpOyFiJiZjfHxuLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEhPT0hMSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGIsYz1uLl9kYXRhKHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJxdWV1ZUhvb2tzIl0sZj1uLnRpbWVycyxnPWQ/ZC5sZW5ndGg6MDtmb3IoYy5maW5pc2g9ITAsbi5xdWV1ZSh0aGlzLGEsW10pLGUmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCksYj1mLmxlbmd0aDtiLS07KWZbYl0uZWxlbT09PXRoaXMmJmZbYl0ucXVldWU9PT1hJiYoZltiXS5hbmltLnN0b3AoITApLGYuc3BsaWNlKGIsMSkpO2ZvcihiPTA7Zz5iO2IrKylkW2JdJiZkW2JdLmZpbmlzaCYmZFtiXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgYy5maW5pc2h9KX19KSxuLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9bi5mbltiXTtuLmZuW2JdPWZ1bmN0aW9uKGEsZCxlKXtyZXR1cm4gbnVsbD09YXx8ImJvb2xlYW4iPT10eXBlb2YgYT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobWIoYiwhMCksYSxkLGUpfX0pLG4uZWFjaCh7c2xpZGVEb3duOm1iKCJzaG93Iiksc2xpZGVVcDptYigiaGlkZSIpLHNsaWRlVG9nZ2xlOm1iKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7bi5mblthXT1mdW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxuLnRpbWVycz1bXSxuLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPW4udGltZXJzLGM9MDtmb3IoaGI9bi5ub3coKTtjPGIubGVuZ3RoO2MrKylhPWJbY10sYSgpfHxiW2NdIT09YXx8Yi5zcGxpY2UoYy0tLDEpO2IubGVuZ3RofHxuLmZ4LnN0b3AoKSxoYj12b2lkIDB9LG4uZngudGltZXI9ZnVuY3Rpb24oYSl7bi50aW1lcnMucHVzaChhKSxhKCk/bi5meC5zdGFydCgpOm4udGltZXJzLnBvcCgpfSxuLmZ4LmludGVydmFsPTEzLG4uZnguc3RhcnQ9ZnVuY3Rpb24oKXtpYnx8KGliPWEuc2V0SW50ZXJ2YWwobi5meC50aWNrLG4uZnguaW50ZXJ2YWwpKX0sbi5meC5zdG9wPWZ1bmN0aW9uKCl7YS5jbGVhckludGVydmFsKGliKSxpYj1udWxsfSxuLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfSxuLmZuLmRlbGF5PWZ1bmN0aW9uKGIsYyl7cmV0dXJuIGI9bi5meD9uLmZ4LnNwZWVkc1tiXXx8YjpiLGM9Y3x8ImZ4Iix0aGlzLnF1ZXVlKGMsZnVuY3Rpb24oYyxkKXt2YXIgZT1hLnNldFRpbWVvdXQoYyxiKTtkLnN0b3A9ZnVuY3Rpb24oKXthLmNsZWFyVGltZW91dChlKX19KX0sZnVuY3Rpb24oKXt2YXIgYSxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksZT1kLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLGY9ZS5hcHBlbmRDaGlsZChkLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtjPWQuY3JlYXRlRWxlbWVudCgiZGl2IiksYy5zZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIsInQiKSxjLmlubmVySFRNTD0iICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+IixhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxiLnNldEF0dHJpYnV0ZSgidHlwZSIsImNoZWNrYm94IiksYy5hcHBlbmRDaGlsZChiKSxhPWMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXSxhLnN0eWxlLmNzc1RleHQ9InRvcDoxcHgiLGwuZ2V0U2V0QXR0cmlidXRlPSJ0IiE9PWMuY2xhc3NOYW1lLGwuc3R5bGU9L3RvcC8udGVzdChhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSksbC5ocmVmTm9ybWFsaXplZD0iL2EiPT09YS5nZXRBdHRyaWJ1dGUoImhyZWYiKSxsLmNoZWNrT249ISFiLnZhbHVlLGwub3B0U2VsZWN0ZWQ9Zi5zZWxlY3RlZCxsLmVuY3R5cGU9ISFkLmNyZWF0ZUVsZW1lbnQoImZvcm0iKS5lbmN0eXBlLGUuZGlzYWJsZWQ9ITAsbC5vcHREaXNhYmxlZD0hZi5kaXNhYmxlZCxiPWQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxiLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIiKSxsLmlucHV0PSIiPT09Yi5nZXRBdHRyaWJ1dGUoInZhbHVlIiksYi52YWx1ZT0idCIsYi5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGwucmFkaW9WYWx1ZT0idCI9PT1iLnZhbHVlfSgpO3ZhciByYj0vXHIvZyxzYj0vW1x4MjBcdFxyXG5cZl0rL2c7bi5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT10aGlzWzBdO3tpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBkPW4uaXNGdW5jdGlvbihhKSx0aGlzLmVhY2goZnVuY3Rpb24oYyl7dmFyIGU7MT09PXRoaXMubm9kZVR5cGUmJihlPWQ/YS5jYWxsKHRoaXMsYyxuKHRoaXMpLnZhbCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6bi5pc0FycmF5KGUpJiYoZT1uLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT1hPyIiOmErIiJ9KSksYj1uLnZhbEhvb2tzW3RoaXMudHlwZV18fG4udmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYic2V0ImluIGImJnZvaWQgMCE9PWIuc2V0KHRoaXMsZSwidmFsdWUiKXx8KHRoaXMudmFsdWU9ZSkpfSk7aWYoZSlyZXR1cm4gYj1uLnZhbEhvb2tzW2UudHlwZV18fG4udmFsSG9va3NbZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlwZW9mIGM/Yy5yZXBsYWNlKHJiLCIiKTpudWxsPT1jPyIiOmMpfX19KSxuLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPW4uZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI/YjpuLnRyaW0obi50ZXh0KGEpKS5yZXBsYWNlKHNiLCIgIil9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxkPWEub3B0aW9ucyxlPWEuc2VsZWN0ZWRJbmRleCxmPSJzZWxlY3Qtb25lIj09PWEudHlwZXx8MD5lLGc9Zj9udWxsOltdLGg9Zj9lKzE6ZC5sZW5ndGgsaT0wPmU/aDpmP2U6MDtoPmk7aSsrKWlmKGM9ZFtpXSwoYy5zZWxlY3RlZHx8aT09PWUpJiYobC5vcHREaXNhYmxlZD8hYy5kaXNhYmxlZDpudWxsPT09Yy5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIikpJiYoIWMucGFyZW50Tm9kZS5kaXNhYmxlZHx8IW4ubm9kZU5hbWUoYy5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYoYj1uKGMpLnZhbCgpLGYpcmV0dXJuIGI7Zy5wdXNoKGIpfXJldHVybiBnfSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9YS5vcHRpb25zLGY9bi5tYWtlQXJyYXkoYiksZz1lLmxlbmd0aDt3aGlsZShnLS0paWYoZD1lW2ddLG4uaW5BcnJheShuLnZhbEhvb2tzLm9wdGlvbi5nZXQoZCksZik+LTEpdHJ5e2Quc2VsZWN0ZWQ9Yz0hMH1jYXRjaChoKXtkLnNjcm9sbEhlaWdodH1lbHNlIGQuc2VsZWN0ZWQ9ITE7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGV9fX19KSxuLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtuLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbi5pc0FycmF5KGIpP2EuY2hlY2tlZD1uLmluQXJyYXkobihhKS52YWwoKSxiKT4tMTp2b2lkIDB9fSxsLmNoZWNrT258fChuLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIHRiLHViLHZiPW4uZXhwci5hdHRySGFuZGxlLHdiPS9eKD86Y2hlY2tlZHxzZWxlY3RlZCkkL2kseGI9bC5nZXRTZXRBdHRyaWJ1dGUseWI9bC5pbnB1dDtuLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBZKHRoaXMsbi5hdHRyLGEsYixhcmd1bWVudHMubGVuZ3RoPjEpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLG4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9YS5ub2RlVHlwZTtpZigzIT09ZiYmOCE9PWYmJjIhPT1mKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU/bi5wcm9wKGEsYixjKTooMT09PWYmJm4uaXNYTUxEb2MoYSl8fChiPWIudG9Mb3dlckNhc2UoKSxlPW4uYXR0ckhvb2tzW2JdfHwobi5leHByLm1hdGNoLmJvb2wudGVzdChiKT91Yjp0YikpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCBuLnJlbW92ZUF0dHIoYSxiKTplJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDooYS5zZXRBdHRyaWJ1dGUoYixjKyIiKSxjKTplJiYiZ2V0ImluIGUmJm51bGwhPT0oZD1lLmdldChhLGIpKT9kOihkPW4uZmluZC5hdHRyKGEsYiksbnVsbD09ZD92b2lkIDA6ZCkpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFsLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZuLm5vZGVOYW1lKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPTAsZj1iJiZiLm1hdGNoKEcpO2lmKGYmJjE9PT1hLm5vZGVUeXBlKXdoaWxlKGM9ZltlKytdKWQ9bi5wcm9wRml4W2NdfHxjLG4uZXhwci5tYXRjaC5ib29sLnRlc3QoYyk/eWImJnhifHwhd2IudGVzdChjKT9hW2RdPSExOmFbbi5jYW1lbENhc2UoImRlZmF1bHQtIitjKV09YVtkXT0hMTpuLmF0dHIoYSxjLCIiKSxhLnJlbW92ZUF0dHJpYnV0ZSh4Yj9jOmQpfX0pLHViPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiPT09ITE/bi5yZW1vdmVBdHRyKGEsYyk6eWImJnhifHwhd2IudGVzdChjKT9hLnNldEF0dHJpYnV0ZSgheGImJm4ucHJvcEZpeFtjXXx8YyxjKTphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYyldPWFbY109ITAsY319LG4uZWFjaChuLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPXZiW2JdfHxuLmZpbmQuYXR0cjt5YiYmeGJ8fCF3Yi50ZXN0KGIpP3ZiW2JdPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmO3JldHVybiBkfHwoZj12YltiXSx2YltiXT1lLGU9bnVsbCE9YyhhLGIsZCk/Yi50b0xvd2VyQ2FzZSgpOm51bGwsdmJbYl09ZiksZX06dmJbYl09ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBjP3ZvaWQgMDphW24uY2FtZWxDYXNlKCJkZWZhdWx0LSIrYildP2IudG9Mb3dlckNhc2UoKTpudWxsfX0pLHliJiZ4Ynx8KG4uYXR0ckhvb2tzLnZhbHVlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuLm5vZGVOYW1lKGEsImlucHV0Iik/dm9pZChhLmRlZmF1bHRWYWx1ZT1iKTp0YiYmdGIuc2V0KGEsYixjKX19KSx4Ynx8KHRiPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuZ2V0QXR0cmlidXRlTm9kZShjKTtyZXR1cm4gZHx8YS5zZXRBdHRyaWJ1dGVOb2RlKGQ9YS5vd25lckRvY3VtZW50LmNyZWF0ZUF0dHJpYnV0ZShjKSksZC52YWx1ZT1iKz0iIiwidmFsdWUiPT09Y3x8Yj09PWEuZ2V0QXR0cmlidXRlKGMpP2I6dm9pZCAwfX0sdmIuaWQ9dmIubmFtZT12Yi5jb29yZHM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiBjP3ZvaWQgMDooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiYiIiE9PWQudmFsdWU/ZC52YWx1ZTpudWxsfSxuLnZhbEhvb2tzLmJ1dHRvbj17Z2V0OmZ1bmN0aW9uKGEsYil7dmFyIGM9YS5nZXRBdHRyaWJ1dGVOb2RlKGIpO3JldHVybiBjJiZjLnNwZWNpZmllZD9jLnZhbHVlOnZvaWQgMH0sc2V0OnRiLnNldH0sbi5hdHRySG9va3MuY29udGVudGVkaXRhYmxlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3RiLnNldChhLCIiPT09Yj8hMTpiLGMpfX0sbi5lYWNoKFsid2lkdGgiLCJoZWlnaHQiXSxmdW5jdGlvbihhLGIpe24uYXR0ckhvb2tzW2JdPXtzZXQ6ZnVuY3Rpb24oYSxjKXtyZXR1cm4iIj09PWM/KGEuc2V0QXR0cmlidXRlKGIsImF1dG8iKSxjKTp2b2lkIDB9fX0pKSxsLnN0eWxlfHwobi5hdHRySG9va3Muc3R5bGU9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYS5zdHlsZS5jc3NUZXh0fHx2b2lkIDB9LHNldDpmdW5jdGlvbihhLGIpe3JldHVybiBhLnN0eWxlLmNzc1RleHQ9YisiIn19KTt2YXIgemI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9ufG9iamVjdCkkL2ksQWI9L14oPzphfGFyZWEpJC9pO24uZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFkodGhpcyxuLnByb3AsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJlbW92ZVByb3A6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9bi5wcm9wRml4W2FdfHxhLHRoaXMuZWFjaChmdW5jdGlvbigpe3RyeXt0aGlzW2FdPXZvaWQgMCxkZWxldGUgdGhpc1thXX1jYXRjaChiKXt9fSl9fSksbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBlO2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZuLmlzWE1MRG9jKGEpfHwoYj1uLnByb3BGaXhbYl18fGIsZT1uLnByb3BIb29rc1tiXSksdm9pZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDphW2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9bi5maW5kLmF0dHIoYSwidGFiaW5kZXgiKTtyZXR1cm4gYj9wYXJzZUludChiLDEwKTp6Yi50ZXN0KGEubm9kZU5hbWUpfHxBYi50ZXN0KGEubm9kZU5hbWUpJiZhLmhyZWY/MDotMX19fSxwcm9wRml4OnsiZm9yIjoiaHRtbEZvciIsImNsYXNzIjoiY2xhc3NOYW1lIn19KSxsLmhyZWZOb3JtYWxpemVkfHxuLmVhY2goWyJocmVmIiwic3JjIl0sZnVuY3Rpb24oYSxiKXtuLnByb3BIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldEF0dHJpYnV0ZShiLDQpfX19KSxsLm9wdFNlbGVjdGVkfHwobi5wcm9wSG9va3Muc2VsZWN0ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJihiLnNlbGVjdGVkSW5kZXgsYi5wYXJlbnROb2RlJiZiLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCksbnVsbH0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtiJiYoYi5zZWxlY3RlZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pLG4uZWFjaChbInRhYkluZGV4IiwicmVhZE9ubHkiLCJtYXhMZW5ndGgiLCJjZWxsU3BhY2luZyIsImNlbGxQYWRkaW5nIiwicm93U3BhbiIsImNvbFNwYW4iLCJ1c2VNYXAiLCJmcmFtZUJvcmRlciIsImNvbnRlbnRFZGl0YWJsZSJdLGZ1bmN0aW9uKCl7bi5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pLGwuZW5jdHlwZXx8KG4ucHJvcEZpeC5lbmN0eXBlPSJlbmNvZGluZyIpO3ZhciBCYj0vW1x0XHJcblxmXS9nO2Z1bmN0aW9uIENiKGEpe3JldHVybiBuLmF0dHIoYSwiY2xhc3MiKXx8IiJ9bi5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZyxoLGk9MDtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLGIsQ2IodGhpcykpKX0pO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKWQuaW5kZXhPZigiICIrZisiICIpPDAmJihkKz1mKyIgIik7aD1uLnRyaW0oZCksZSE9PWgmJm4uYXR0cihjLCJjbGFzcyIsaCl9fXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYobi5pc0Z1bmN0aW9uKGEpKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYil7bih0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxiLENiKHRoaXMpKSl9KTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5hdHRyKCJjbGFzcyIsIiIpO2lmKCJzdHJpbmciPT10eXBlb2YgYSYmYSl7Yj1hLm1hdGNoKEcpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPUNiKGMpLGQ9MT09PWMubm9kZVR5cGUmJigiICIrZSsiICIpLnJlcGxhY2UoQmIsIiAiKSl7Zz0wO3doaWxlKGY9YltnKytdKXdoaWxlKGQuaW5kZXhPZigiICIrZisiICIpPi0xKWQ9ZC5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9bi50cmltKGQpLGUhPT1oJiZuLmF0dHIoYywiY2xhc3MiLGgpfX1yZXR1cm4gdGhpc30sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10eXBlb2YgYTtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBiJiYic3RyaW5nIj09PWM/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6bi5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihjKXtuKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGMsQ2IodGhpcyksYiksYil9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixkLGUsZjtpZigic3RyaW5nIj09PWMpe2Q9MCxlPW4odGhpcyksZj1hLm1hdGNoKEcpfHxbXTt3aGlsZShiPWZbZCsrXSllLmhhc0NsYXNzKGIpP2UucmVtb3ZlQ2xhc3MoYik6ZS5hZGRDbGFzcyhiKX1lbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWN8fChiPUNiKHRoaXMpLGImJm4uX2RhdGEodGhpcywiX19jbGFzc05hbWVfXyIsYiksbi5hdHRyKHRoaXMsImNsYXNzIixifHxhPT09ITE/IiI6bi5fZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTA7Yj0iICIrYSsiICI7d2hpbGUoYz10aGlzW2QrK10paWYoMT09PWMubm9kZVR5cGUmJigiICIrQ2IoYykrIiAiKS5yZXBsYWNlKEJiLCIgIikuaW5kZXhPZihiKT4tMSlyZXR1cm4hMDtyZXR1cm4hMX19KSxuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MD90aGlzLm9uKGIsbnVsbCxhLGMpOnRoaXMudHJpZ2dlcihiKX19KSxuLmZuLmV4dGVuZCh7aG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7dmFyIERiPWEubG9jYXRpb24sRWI9bi5ub3coKSxGYj0vXD8vLEdiPS8oLCl8KFxbfHspfCh9fF0pfCIoPzpbXiJcXFxyXG5dfFxcWyJcXFwvYmZucnRdfFxcdVtcZGEtZkEtRl17NH0pKiJccyo6P3x0cnVlfGZhbHNlfG51bGx8LT8oPyEwXGQpXGQrKD86XC5cZCt8KSg/OltlRV1bKy1dP1xkK3wpL2c7bi5wYXJzZUpTT049ZnVuY3Rpb24oYil7aWYoYS5KU09OJiZhLkpTT04ucGFyc2UpcmV0dXJuIGEuSlNPTi5wYXJzZShiKyIiKTt2YXIgYyxkPW51bGwsZT1uLnRyaW0oYisiIik7cmV0dXJuIGUmJiFuLnRyaW0oZS5yZXBsYWNlKEdiLGZ1bmN0aW9uKGEsYixlLGYpe3JldHVybiBjJiZiJiYoZD0wKSwwPT09ZD9hOihjPWV8fGIsZCs9IWYtIWUsIiIpfSkpP0Z1bmN0aW9uKCJyZXR1cm4gIitlKSgpOm4uZXJyb3IoIkludmFsaWQgSlNPTjogIitiKX0sbi5wYXJzZVhNTD1mdW5jdGlvbihiKXt2YXIgYyxkO2lmKCFifHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIG51bGw7dHJ5e2EuRE9NUGFyc2VyPyhkPW5ldyBhLkRPTVBhcnNlcixjPWQucGFyc2VGcm9tU3RyaW5nKGIsInRleHQveG1sIikpOihjPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxET00iKSxjLmFzeW5jPSJmYWxzZSIsYy5sb2FkWE1MKGIpKX1jYXRjaChlKXtjPXZvaWQgMH1yZXR1cm4gYyYmYy5kb2N1bWVudEVsZW1lbnQmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpLmxlbmd0aHx8bi5lcnJvcigiSW52YWxpZCBYTUw6ICIrYiksY307dmFyIEhiPS8jLiokLyxJYj0vKFs/Jl0pXz1bXiZdKi8sSmI9L14oLio/KTpbIFx0XSooW15cclxuXSopXHI/JC9nbSxLYj0vXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxMYj0vXig/OkdFVHxIRUFEKSQvLE1iPS9eXC9cLy8sTmI9L14oW1x3ListXSs6KSg/OlwvXC8oPzpbXlwvPyNdKkB8KShbXlwvPyM6XSopKD86OihcZCspfCl8KS8sT2I9e30sUGI9e30sUWI9IiovIi5jb25jYXQoIioiKSxSYj1EYi5ocmVmLFNiPU5iLmV4ZWMoUmIudG9Mb3dlckNhc2UoKSl8fFtdO2Z1bmN0aW9uIFRiKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2YgYiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKEcpfHxbXTtpZihuLmlzRnVuY3Rpb24oYykpd2hpbGUoZD1mW2UrK10pIisiPT09ZC5jaGFyQXQoMCk/KGQ9ZC5zbGljZSgxKXx8IioiLChhW2RdPWFbZF18fFtdKS51bnNoaWZ0KGMpKTooYVtkXT1hW2RdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gVWIoYSxiLGMsZCl7dmFyIGU9e30sZj1hPT09UGI7ZnVuY3Rpb24gZyhoKXt2YXIgaTtyZXR1cm4gZVtoXT0hMCxuLmVhY2goYVtoXXx8W10sZnVuY3Rpb24oYSxoKXt2YXIgaj1oKGIsYyxkKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGp8fGZ8fGVbal0/Zj8hKGk9aik6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KGopLGcoaiksITEpfSksaX1yZXR1cm4gZyhiLmRhdGFUeXBlc1swXSl8fCFlWyIqIl0mJmcoIioiKX1mdW5jdGlvbiBWYihhLGIpe3ZhciBjLGQsZT1uLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGQgaW4gYil2b2lkIDAhPT1iW2RdJiYoKGVbZF0/YTpjfHwoYz17fSkpW2RdPWJbZF0pO3JldHVybiBjJiZuLmV4dGVuZCghMCxhLGMpLGF9ZnVuY3Rpb24gV2IoYSxiLGMpe3ZhciBkLGUsZixnLGg9YS5jb250ZW50cyxpPWEuZGF0YVR5cGVzO3doaWxlKCIqIj09PWlbMF0paS5zaGlmdCgpLHZvaWQgMD09PWUmJihlPWEubWltZVR5cGV8fGIuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihlKWZvcihnIGluIGgpaWYoaFtnXSYmaFtnXS50ZXN0KGUpKXtpLnVuc2hpZnQoZyk7YnJlYWt9aWYoaVswXWluIGMpZj1pWzBdO2Vsc2V7Zm9yKGcgaW4gYyl7aWYoIWlbMF18fGEuY29udmVydGVyc1tnKyIgIitpWzBdXSl7Zj1nO2JyZWFrfWR8fChkPWcpfWY9Znx8ZH1yZXR1cm4gZj8oZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdKTp2b2lkIDB9ZnVuY3Rpb24gWGIoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlwZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9Mb3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYpaWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRhVHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIqIiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3IoZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hbMF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9tICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1uLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6UmIsdHlwZToiR0VUIixpc0xvY2FsOktiLnRlc3QoU2JbMV0pLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6UWIsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLGh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6bi5wYXJzZUpTT04sInRleHQgeG1sIjpuLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9WYihWYihhLG4uYWpheFNldHRpbmdzKSxiKTpWYihuLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpUYihPYiksYWpheFRyYW5zcG9ydDpUYihQYiksYWpheDpmdW5jdGlvbihiLGMpeyJvYmplY3QiPT10eXBlb2YgYiYmKGM9YixiPXZvaWQgMCksYz1jfHx7fTt2YXIgZCxlLGYsZyxoLGksaixrLGw9bi5hamF4U2V0dXAoe30sYyksbT1sLmNvbnRleHR8fGwsbz1sLmNvbnRleHQmJihtLm5vZGVUeXBlfHxtLmpxdWVyeSk/bihtKTpuLmV2ZW50LHA9bi5EZWZlcnJlZCgpLHE9bi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iikscj1sLnN0YXR1c0NvZGV8fHt9LHM9e30sdD17fSx1PTAsdj0iY2FuY2VsZWQiLHc9e3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihhKXt2YXIgYjtpZigyPT09dSl7aWYoIWspe2s9e307d2hpbGUoYj1KYi5leGVjKGcpKWtbYlsxXS50b0xvd2VyQ2FzZSgpXT1iWzJdfWI9a1thLnRvTG93ZXJDYXNlKCldfXJldHVybiBudWxsPT1iP251bGw6Yn0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIDI9PT11P2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihhLGIpe3ZhciBjPWEudG9Mb3dlckNhc2UoKTtyZXR1cm4gdXx8KGE9dFtjXT10W2NdfHxhLHNbYV09YiksdGhpc30sb3ZlcnJpZGVNaW1lVHlwZTpmdW5jdGlvbihhKXtyZXR1cm4gdXx8KGwubWltZVR5cGU9YSksdGhpc30sc3RhdHVzQ29kZTpmdW5jdGlvbihhKXt2YXIgYjtpZihhKWlmKDI+dSlmb3IoYiBpbiBhKXJbYl09W3JbYl0sYVtiXV07ZWxzZSB3LmFsd2F5cyhhW3cuc3RhdHVzXSk7cmV0dXJuIHRoaXN9LGFib3J0OmZ1bmN0aW9uKGEpe3ZhciBiPWF8fHY7cmV0dXJuIGomJmouYWJvcnQoYikseSgwLGIpLHRoaXN9fTtpZihwLnByb21pc2UodykuY29tcGxldGU9cS5hZGQsdy5zdWNjZXNzPXcuZG9uZSx3LmVycm9yPXcuZmFpbCxsLnVybD0oKGJ8fGwudXJsfHxSYikrIiIpLnJlcGxhY2UoSGIsIiIpLnJlcGxhY2UoTWIsU2JbMV0rIi8vIiksbC50eXBlPWMubWV0aG9kfHxjLnR5cGV8fGwubWV0aG9kfHxsLnR5cGUsbC5kYXRhVHlwZXM9bi50cmltKGwuZGF0YVR5cGV8fCIqIikudG9Mb3dlckNhc2UoKS5tYXRjaChHKXx8WyIiXSxudWxsPT1sLmNyb3NzRG9tYWluJiYoZD1OYi5leGVjKGwudXJsLnRvTG93ZXJDYXNlKCkpLGwuY3Jvc3NEb21haW49ISghZHx8ZFsxXT09PVNiWzFdJiZkWzJdPT09U2JbMl0mJihkWzNdfHwoImh0dHA6Ij09PWRbMV0/IjgwIjoiNDQzIikpPT09KFNiWzNdfHwoImh0dHA6Ij09PVNiWzFdPyI4MCI6IjQ0MyIpKSkpLGwuZGF0YSYmbC5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiBsLmRhdGEmJihsLmRhdGE9bi5wYXJhbShsLmRhdGEsbC50cmFkaXRpb25hbCkpLFViKE9iLGwsYyx3KSwyPT09dSlyZXR1cm4gdztpPW4uZXZlbnQmJmwuZ2xvYmFsLGkmJjA9PT1uLmFjdGl2ZSsrJiZuLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLGwudHlwZT1sLnR5cGUudG9VcHBlckNhc2UoKSxsLmhhc0NvbnRlbnQ9IUxiLnRlc3QobC50eXBlKSxmPWwudXJsLGwuaGFzQ29udGVudHx8KGwuZGF0YSYmKGY9bC51cmwrPShGYi50ZXN0KGYpPyImIjoiPyIpK2wuZGF0YSxkZWxldGUgbC5kYXRhKSxsLmNhY2hlPT09ITEmJihsLnVybD1JYi50ZXN0KGYpP2YucmVwbGFjZShJYiwiJDFfPSIrRWIrKyk6ZisoRmIudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0ViKyspKSxsLmlmTW9kaWZpZWQmJihuLmxhc3RNb2RpZmllZFtmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsbi5sYXN0TW9kaWZpZWRbZl0pLG4uZXRhZ1tmXSYmdy5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixuLmV0YWdbZl0pKSwobC5kYXRhJiZsLmhhc0NvbnRlbnQmJmwuY29udGVudFR5cGUhPT0hMXx8Yy5jb250ZW50VHlwZSkmJncuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixsLmNvbnRlbnRUeXBlKSx3LnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsbC5kYXRhVHlwZXNbMF0mJmwuYWNjZXB0c1tsLmRhdGFUeXBlc1swXV0/bC5hY2NlcHRzW2wuZGF0YVR5cGVzWzBdXSsoIioiIT09bC5kYXRhVHlwZXNbMF0/IiwgIitRYisiOyBxPTAuMDEiOiIiKTpsLmFjY2VwdHNbIioiXSk7Zm9yKGUgaW4gbC5oZWFkZXJzKXcuc2V0UmVxdWVzdEhlYWRlcihlLGwuaGVhZGVyc1tlXSk7aWYobC5iZWZvcmVTZW5kJiYobC5iZWZvcmVTZW5kLmNhbGwobSx3LGwpPT09ITF8fDI9PT11KSlyZXR1cm4gdy5hYm9ydCgpO3Y9ImFib3J0Ijtmb3IoZSBpbntzdWNjZXNzOjEsZXJyb3I6MSxjb21wbGV0ZToxfSl3W2VdKGxbZV0pO2lmKGo9VWIoUGIsbCxjLHcpKXtpZih3LnJlYWR5U3RhdGU9MSxpJiZvLnRyaWdnZXIoImFqYXhTZW5kIixbdyxsXSksMj09PXUpcmV0dXJuIHc7bC5hc3luYyYmbC50aW1lb3V0PjAmJihoPWEuc2V0VGltZW91dChmdW5jdGlvbigpe3cuYWJvcnQoInRpbWVvdXQiKX0sbC50aW1lb3V0KSk7dHJ5e3U9MSxqLnNlbmQocyx5KX1jYXRjaCh4KXtpZighKDI+dSkpdGhyb3cgeDt5KC0xLHgpfX1lbHNlIHkoLTEsIk5vIFRyYW5zcG9ydCIpO2Z1bmN0aW9uIHkoYixjLGQsZSl7dmFyIGsscyx0LHYseCx5PWM7MiE9PXUmJih1PTIsaCYmYS5jbGVhclRpbWVvdXQoaCksaj12b2lkIDAsZz1lfHwiIix3LnJlYWR5U3RhdGU9Yj4wPzQ6MCxrPWI+PTIwMCYmMzAwPmJ8fDMwND09PWIsZCYmKHY9V2IobCx3LGQpKSx2PVhiKGwsdix3LGspLGs/KGwuaWZNb2RpZmllZCYmKHg9dy5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpLHgmJihuLmxhc3RNb2RpZmllZFtmXT14KSx4PXcuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx4JiYobi5ldGFnW2ZdPXgpKSwyMDQ9PT1ifHwiSEVBRCI9PT1sLnR5cGU/eT0ibm9jb250ZW50IjozMDQ9PT1iP3k9Im5vdG1vZGlmaWVkIjooeT12LnN0YXRlLHM9di5kYXRhLHQ9di5lcnJvcixrPSF0KSk6KHQ9eSwhYiYmeXx8KHk9ImVycm9yIiwwPmImJihiPTApKSksdy5zdGF0dXM9Yix3LnN0YXR1c1RleHQ9KGN8fHkpKyIiLGs/cC5yZXNvbHZlV2l0aChtLFtzLHksd10pOnAucmVqZWN0V2l0aChtLFt3LHksdF0pLHcuc3RhdHVzQ29kZShyKSxyPXZvaWQgMCxpJiZvLnRyaWdnZXIoaz8iYWpheFN1Y2Nlc3MiOiJhamF4RXJyb3IiLFt3LGwsaz9zOnRdKSxxLmZpcmVXaXRoKG0sW3cseV0pLGkmJihvLnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW3csbF0pLC0tbi5hY3RpdmV8fG4uZXZlbnQudHJpZ2dlcigiYWpheFN0b3AiKSkpfXJldHVybiB3fSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbi5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG4uZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLG4uZWFjaChbImdldCIsInBvc3QiXSxmdW5jdGlvbihhLGIpe25bYl09ZnVuY3Rpb24oYSxjLGQsZSl7cmV0dXJuIG4uaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLG4uYWpheChuLmV4dGVuZCh7dXJsOmEsdHlwZTpiLGRhdGFUeXBlOmUsZGF0YTpjLHN1Y2Nlc3M6ZH0sbi5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksbi5fZXZhbFVybD1mdW5jdGlvbihhKXtyZXR1cm4gbi5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSwidGhyb3dzIjohMH0pfSxuLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXtpZihuLmlzRnVuY3Rpb24oYSkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihiKXtuKHRoaXMpLndyYXBBbGwoYS5jYWxsKHRoaXMsYikpfSk7aWYodGhpc1swXSl7dmFyIGI9bihhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApO3RoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzO3doaWxlKGEuZmlyc3RDaGlsZCYmMT09PWEuZmlyc3RDaGlsZC5ub2RlVHlwZSlhPWEuZmlyc3RDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKGEpe3JldHVybiBuLmlzRnVuY3Rpb24oYSk/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe24odGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPW4odGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9bi5pc0Z1bmN0aW9uKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7bih0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6YSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFjaChmdW5jdGlvbigpe24ubm9kZU5hbWUodGhpcywiYm9keSIpfHxuKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KS5lbmQoKX19KTtmdW5jdGlvbiBZYihhKXtyZXR1cm4gYS5zdHlsZSYmYS5zdHlsZS5kaXNwbGF5fHxuLmNzcyhhLCJkaXNwbGF5Iil9ZnVuY3Rpb24gWmIoYSl7aWYoIW4uY29udGFpbnMoYS5vd25lckRvY3VtZW50fHxkLGEpKXJldHVybiEwO3doaWxlKGEmJjE9PT1hLm5vZGVUeXBlKXtpZigibm9uZSI9PT1ZYihhKXx8ImhpZGRlbiI9PT1hLnR5cGUpcmV0dXJuITA7YT1hLnBhcmVudE5vZGV9cmV0dXJuITF9bi5leHByLmZpbHRlcnMuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiBsLnJlbGlhYmxlSGlkZGVuT2Zmc2V0cygpP2Eub2Zmc2V0V2lkdGg8PTAmJmEub2Zmc2V0SGVpZ2h0PD0wJiYhYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDpaYihhKX0sbi5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hbi5leHByLmZpbHRlcnMuaGlkZGVuKGEpfTt2YXIgJGI9LyUyMC9nLF9iPS9cW1xdJC8sYWM9L1xyP1xuL2csYmM9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLGNjPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtmdW5jdGlvbiBkYyhhLGIsYyxkKXt2YXIgZTtpZihuLmlzQXJyYXkoYikpbi5lYWNoKGIsZnVuY3Rpb24oYixlKXtjfHxfYi50ZXN0KGEpP2QoYSxlKTpkYyhhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09bi50eXBlKGIpKWQoYSxiKTtlbHNlIGZvcihlIGluIGIpZGMoYSsiWyIrZSsiXSIsYltlXSxjLGQpfW4ucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtdLGU9ZnVuY3Rpb24oYSxiKXtiPW4uaXNGdW5jdGlvbihiKT9iKCk6bnVsbD09Yj8iIjpiLGRbZC5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChhKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpfTtpZih2b2lkIDA9PT1iJiYoYj1uLmFqYXhTZXR0aW5ncyYmbi5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwpLG4uaXNBcnJheShhKXx8YS5qcXVlcnkmJiFuLmlzUGxhaW5PYmplY3QoYSkpbi5lYWNoKGEsZnVuY3Rpb24oKXtlKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSlkYyhjLGFbY10sYixlKTtyZXR1cm4gZC5qb2luKCImIikucmVwbGFjZSgkYiwiKyIpfSxuLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG4ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1uLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9uLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFuKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmY2MudGVzdCh0aGlzLm5vZGVOYW1lKSYmIWJjLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFaLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7dmFyIGM9bih0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09Yz9udWxsOm4uaXNBcnJheShjKT9uLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTphLnJlcGxhY2UoYWMsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKGFjLCJcclxuIil9fSkuZ2V0KCl9fSksbi5hamF4U2V0dGluZ3MueGhyPXZvaWQgMCE9PWEuQWN0aXZlWE9iamVjdD9mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTG9jYWw/aWMoKTpkLmRvY3VtZW50TW9kZT44P2hjKCk6L14oZ2V0fHBvc3R8aGVhZHxwdXR8ZGVsZXRlfG9wdGlvbnMpJC9pLnRlc3QodGhpcy50eXBlKSYmaGMoKXx8aWMoKX06aGM7dmFyIGVjPTAsZmM9e30sZ2M9bi5hamF4U2V0dGluZ3MueGhyKCk7YS5hdHRhY2hFdmVudCYmYS5hdHRhY2hFdmVudCgib251bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBhIGluIGZjKWZjW2FdKHZvaWQgMCwhMCl9KSxsLmNvcnM9ISFnYyYmIndpdGhDcmVkZW50aWFscyJpbiBnYyxnYz1sLmFqYXg9ISFnYyxnYyYmbi5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGIpe2lmKCFiLmNyb3NzRG9tYWlufHxsLmNvcnMpe3ZhciBjO3JldHVybntzZW5kOmZ1bmN0aW9uKGQsZSl7dmFyIGYsZz1iLnhocigpLGg9KytlYztpZihnLm9wZW4oYi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnhockZpZWxkcylmb3IoZiBpbiBiLnhockZpZWxkcylnW2ZdPWIueGhyRmllbGRzW2ZdO2IubWltZVR5cGUmJmcub3ZlcnJpZGVNaW1lVHlwZSYmZy5vdmVycmlkZU1pbWVUeXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGRbIlgtUmVxdWVzdGVkLVdpdGgiXXx8KGRbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtmb3IoZiBpbiBkKXZvaWQgMCE9PWRbZl0mJmcuc2V0UmVxdWVzdEhlYWRlcihmLGRbZl0rIiIpO2cuc2VuZChiLmhhc0NvbnRlbnQmJmIuZGF0YXx8bnVsbCksYz1mdW5jdGlvbihhLGQpe3ZhciBmLGksajtpZihjJiYoZHx8ND09PWcucmVhZHlTdGF0ZSkpaWYoZGVsZXRlIGZjW2hdLGM9dm9pZCAwLGcub25yZWFkeXN0YXRlY2hhbmdlPW4ubm9vcCxkKTQhPT1nLnJlYWR5U3RhdGUmJmcuYWJvcnQoKTtlbHNle2o9e30sZj1nLnN0YXR1cywic3RyaW5nIj09dHlwZW9mIGcucmVzcG9uc2VUZXh0JiYoai50ZXh0PWcucmVzcG9uc2VUZXh0KTt0cnl7aT1nLnN0YXR1c1RleHR9Y2F0Y2goayl7aT0iIn1mfHwhYi5pc0xvY2FsfHxiLmNyb3NzRG9tYWluPzEyMjM9PT1mJiYoZj0yMDQpOmY9ai50ZXh0PzIwMDo0MDR9aiYmZShmLGksaixnLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKX0sYi5hc3luYz80PT09Zy5yZWFkeVN0YXRlP2Euc2V0VGltZW91dChjKTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mY1toXT1jOmMoKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKHZvaWQgMCwhMCl9fX19KTtmdW5jdGlvbiBoYygpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYil7fX1mdW5jdGlvbiBpYygpe3RyeXtyZXR1cm4gbmV3IGEuQWN0aXZlWE9iamVjdCgiTWljcm9zb2Z0LlhNTEhUVFAiKX1jYXRjaChiKXt9fW4uYWpheFNldHVwKHthY2NlcHRzOntzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0In0sY29udGVudHM6e3NjcmlwdDovXGIoPzpqYXZhfGVjbWEpc2NyaXB0XGIvfSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKGEpe3JldHVybiBuLmdsb2JhbEV2YWwoYSksYX19fSksbi5hamF4UHJlZmlsdGVyKCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZvaWQgMD09PWEuY2FjaGUmJihhLmNhY2hlPSExKSxhLmNyb3NzRG9tYWluJiYoYS50eXBlPSJHRVQiLGEuZ2xvYmFsPSExKX0pLG4uYWpheFRyYW5zcG9ydCgic2NyaXB0IixmdW5jdGlvbihhKXtpZihhLmNyb3NzRG9tYWluKXt2YXIgYixjPWQuaGVhZHx8bigiaGVhZCIpWzBdfHxkLmRvY3VtZW50RWxlbWVudDtyZXR1cm57c2VuZDpmdW5jdGlvbihlLGYpe2I9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSxiLmFzeW5jPSEwLGEuc2NyaXB0Q2hhcnNldCYmKGIuY2hhcnNldD1hLnNjcmlwdENoYXJzZXQpLGIuc3JjPWEudXJsLGIub25sb2FkPWIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGEsYyl7KGN8fCFiLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoYi5yZWFkeVN0YXRlKSkmJihiLm9ubG9hZD1iLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIpLGI9bnVsbCxjfHxmKDIwMCwic3VjY2VzcyIpKX0sYy5pbnNlcnRCZWZvcmUoYixjLmZpcnN0Q2hpbGQpfSxhYm9ydDpmdW5jdGlvbigpe2ImJmIub25sb2FkKHZvaWQgMCwhMCl9fX19KTt2YXIgamM9W10sa2M9Lyg9KVw/KD89JnwkKXxcP1w/LztuLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGE9amMucG9wKCl8fG4uZXhwYW5kbysiXyIrRWIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLG4uYWpheFByZWZpbHRlcigianNvbiBqc29ucCIsZnVuY3Rpb24oYixjLGQpe3ZhciBlLGYsZyxoPWIuanNvbnAhPT0hMSYmKGtjLnRlc3QoYi51cmwpPyJ1cmwiOiJzdHJpbmciPT10eXBlb2YgYi5kYXRhJiYwPT09KGIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYma2MudGVzdChiLmRhdGEpJiYiZGF0YSIpO3JldHVybiBofHwianNvbnAiPT09Yi5kYXRhVHlwZXNbMF0/KGU9Yi5qc29ucENhbGxiYWNrPW4uaXNGdW5jdGlvbihiLmpzb25wQ2FsbGJhY2spP2IuanNvbnBDYWxsYmFjaygpOmIuanNvbnBDYWxsYmFjayxoP2JbaF09YltoXS5yZXBsYWNlKGtjLCIkMSIrZSk6Yi5qc29ucCE9PSExJiYoYi51cmwrPShGYi50ZXN0KGIudXJsKT8iJiI6Ij8iKStiLmpzb25wKyI9IitlKSxiLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8bi5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxiLmRhdGFUeXBlc1swXT0ianNvbiIsZj1hW2VdLGFbZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sZC5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP24oYSkucmVtb3ZlUHJvcChlKTphW2VdPWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssamMucHVzaChlKSksZyYmbi5pc0Z1bmN0aW9uKGYpJiZmKGdbMF0pLGc9Zj12b2lkIDB9KSwic2NyaXB0Iik6dm9pZCAwfSksbi5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2YgYiYmKGM9YixiPSExKSxiPWJ8fGQ7dmFyIGU9eC5leGVjKGEpLGY9IWMmJltdO3JldHVybiBlP1tiLmNyZWF0ZUVsZW1lbnQoZVsxXSldOihlPWphKFthXSxiLGYpLGYmJmYubGVuZ3RoJiZuKGYpLnJlbW92ZSgpLG4ubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9O3ZhciBsYz1uLmZuLmxvYWQ7bi5mbi5sb2FkPWZ1bmN0aW9uKGEsYixjKXtpZigic3RyaW5nIiE9dHlwZW9mIGEmJmxjKXJldHVybiBsYy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIGQsZSxmLGc9dGhpcyxoPWEuaW5kZXhPZigiICIpO3JldHVybiBoPi0xJiYoZD1uLnRyaW0oYS5zbGljZShoLGEubGVuZ3RoKSksYT1hLnNsaWNlKDAsaCkpLG4uaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmbi5hamF4KHt1cmw6YSx0eXBlOmV8fCJHRVQiLGRhdGFUeXBlOiJodG1sIixkYXRhOmJ9KS5kb25lKGZ1bmN0aW9uKGEpe2Y9YXJndW1lbnRzLGcuaHRtbChkP24oIjxkaXY+IikuYXBwZW5kKG4ucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9uKGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3BvbnNlVGV4dCxiLGFdKX0pfSksdGhpc30sbi5lYWNoKFsiYWpheFN0YXJ0IiwiYWpheFN0b3AiLCJhamF4Q29tcGxldGUiLCJhamF4RXJyb3IiLCJhamF4U3VjY2VzcyIsImFqYXhTZW5kIl0sZnVuY3Rpb24oYSxiKXtuLmZuW2JdPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm9uKGIsYSl9fSksbi5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uZ3JlcChuLnRpbWVycyxmdW5jdGlvbihiKXtyZXR1cm4gYT09PWIuZWxlbX0pLmxlbmd0aH07ZnVuY3Rpb24gbWMoYSl7cmV0dXJuIG4uaXNXaW5kb3coYSk/YTo5PT09YS5ub2RlVHlwZT9hLmRlZmF1bHRWaWV3fHxhLnBhcmVudFdpbmRvdzohMX1uLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGYsZyxoLGksaixrPW4uY3NzKGEsInBvc2l0aW9uIiksbD1uKGEpLG09e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1uLmNzcyhhLCJ0b3AiKSxpPW4uY3NzKGEsImxlZnQiKSxqPSgiYWJzb2x1dGUiPT09a3x8ImZpeGVkIj09PWspJiZuLmluQXJyYXkoImF1dG8iLFtmLGldKT4tMSxqPyhkPWwucG9zaXRpb24oKSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VGbG9hdChpKXx8MCksbi5pc0Z1bmN0aW9uKGIpJiYoYj1iLmNhbGwoYSxjLG4uZXh0ZW5kKHt9LGgpKSksbnVsbCE9Yi50b3AmJihtLnRvcD1iLnRvcC1oLnRvcCtnKSxudWxsIT1iLmxlZnQmJihtLmxlZnQ9Yi5sZWZ0LWgubGVmdCtlKSwidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxtKTpsLmNzcyhtKX19LG4uZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09YT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihiKXtuLm9mZnNldC5zZXRPZmZzZXQodGhpcyxhLGIpfSk7dmFyIGIsYyxkPXt0b3A6MCxsZWZ0OjB9LGU9dGhpc1swXSxmPWUmJmUub3duZXJEb2N1bWVudDtpZihmKXJldHVybiBiPWYuZG9jdW1lbnRFbGVtZW50LG4uY29udGFpbnMoYixlKT8oInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGQ9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSksYz1tYyhmKSx7dG9wOmQudG9wKyhjLnBhZ2VZT2Zmc2V0fHxiLnNjcm9sbFRvcCktKGIuY2xpZW50VG9wfHwwKSxsZWZ0OmQubGVmdCsoYy5wYWdlWE9mZnNldHx8Yi5zY3JvbGxMZWZ0KS0oYi5jbGllbnRMZWZ0fHwwKX0pOmR9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXt0b3A6MCxsZWZ0OjB9LGQ9dGhpc1swXTtyZXR1cm4iZml4ZWQiPT09bi5jc3MoZCwicG9zaXRpb24iKT9iPWQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6KGE9dGhpcy5vZmZzZXRQYXJlbnQoKSxiPXRoaXMub2Zmc2V0KCksbi5ub2RlTmFtZShhWzBdLCJodG1sIil8fChjPWEub2Zmc2V0KCkpLGMudG9wKz1uLmNzcyhhWzBdLCJib3JkZXJUb3BXaWR0aCIsITApLGMubGVmdCs9bi5jc3MoYVswXSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpLHt0b3A6Yi50b3AtYy50b3Atbi5jc3MoZCwibWFyZ2luVG9wIiwhMCksbGVmdDpiLmxlZnQtYy5sZWZ0LW4uY3NzKGQsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYhbi5ub2RlTmFtZShhLCJodG1sIikmJiJzdGF0aWMiPT09bi5jc3MoYSwicG9zaXRpb24iKSlhPWEub2Zmc2V0UGFyZW50O3JldHVybiBhfHxRYX0pfX0pLG4uZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9sbFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPS9ZLy50ZXN0KGIpO24uZm5bYV09ZnVuY3Rpb24oZCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihhLGQsZSl7dmFyIGY9bWMoYSk7cmV0dXJuIHZvaWQgMD09PWU/Zj9iIGluIGY/ZltiXTpmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFtkXTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/bihmKS5zY3JvbGxMZWZ0KCk6ZSxjP2U6bihmKS5zY3JvbGxUb3AoKSk6YVtkXT1lKX0sYSxkLGFyZ3VtZW50cy5sZW5ndGgsbnVsbCl9fSksbi5lYWNoKFsidG9wIiwibGVmdCJdLGZ1bmN0aW9uKGEsYil7bi5jc3NIb29rc1tiXT1VYShsLnBpeGVsUG9zaXRpb24sZnVuY3Rpb24oYSxjKXtyZXR1cm4gYz8oYz1TYShhLGIpLE9hLnRlc3QoYyk/bihhKS5wb3NpdGlvbigpW2JdKyJweCI6Yyk6dm9pZCAwfSl9KSxuLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5jdGlvbihhLGIpe24uZWFjaCh7DQpwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGQpe24uZm5bZF09ZnVuY3Rpb24oZCxlKXt2YXIgZj1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2YgZCksZz1jfHwoZD09PSEwfHxlPT09ITA/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oYixjLGQpe3ZhciBlO3JldHVybiBuLmlzV2luZG93KGIpP2IuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1iLm5vZGVUeXBlPyhlPWIuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGIuYm9keVsic2Nyb2xsIithXSxlWyJzY3JvbGwiK2FdLGIuYm9keVsib2Zmc2V0IithXSxlWyJvZmZzZXQiK2FdLGVbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1kP24uY3NzKGIsYyxnKTpuLnN0eWxlKGIsYyxkLGcpfSxiLGY/ZDp2b2lkIDAsZixudWxsKX19KX0pLG4uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMub24oYixhLGMsZCl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX19KSxuLmZuLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LG4uZm4uYW5kU2VsZj1uLmZuLmFkZEJhY2ssImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG59KTt2YXIgbmM9YS5qUXVlcnksb2M9YS4kO3JldHVybiBuLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYil7cmV0dXJuIGEuJD09PW4mJihhLiQ9b2MpLGImJmEualF1ZXJ5PT09biYmKGEualF1ZXJ5PW5jKSxufSxifHwoYS5qUXVlcnk9YS4kPW4pLG59KTsNCg=="}},"time_used":44,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":22,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/background/pattern-7.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.976Z","timestamp":1785129412976,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/background/pattern-7.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 27087\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":27087,"size_decoded":27353,"mime_type":"image/png","magic":"PNG image data, 462 x 488, 8-bit/color RGBA, non-interlaced","md5":"51dced44da6dd1799e2bfeb717e7ce06","sha1":"be9965207b598206137b3b86f85455d53d7325b0","sha256":"ec12ca52d581c8284207a885b189bd30c1fbdab87c6a8b7da47aba1f5450796d","sha512":"604a7239416a14291883e0041c47241600d3e07233d19fa7fce8e0763451c117cf81187ca0c11e67d8b92ff43d2a39da8f25a06a3a1da2cbce47916bc32aaa5e","ssdeep":"384:3vxAtLrDODoUURA/sXLwOk7Nw23up2eKAt/FBc55XKckVKdSmknrBjRA5kp8DwhF:4PODZUR/Hk7SKU/bc55CzrnVj0kp8DSP","tlshash":"78c2e14428b059682c832da65def372cbaf1264081bed7fc9ecc631e5d5a47c019a0e7","first_seen":"2024-06-18T00:47:47Z","last_seen":"2026-07-27T13:36:13.706258Z","times_seen":85,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAc4AAAHoCAYAAADAEw+bAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYxNTY2NDI2NEYyMTExRUFCNDM3QTg2NkRDN0Y0MjMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYxNTY2NDI3NEYyMTExRUFCNDM3QTg2NkRDN0Y0MjMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjE1NjY0MjQ0RjIxMTFFQUI0MzdBODY2REM3RjQyMzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjE1NjY0MjU0RjIxMTFFQUI0MzdBODY2REM3RjQyMzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7S6vWgAABmP0lEQVR42uzdB3PbSNMu7AapnCXLee31hud8df7/jzlVz+46R9mWrZxI4tt53f2iNUaYAQaR912lki1RJIgwFxsYzIypnSz9+7Xy79fyv1/xv18zQoaW6N+vEVYDgiBDy7il151yw2q+FoHn4AFFEAQBnIHxXOCfAU/giSAIAjgd8Bwxnqg8gSeCIAjgdMCTgCfwRBAEAZzumQFP4IkgCAI4y+M5Bp7AE0EQBHC64zkGnsATQRAEcAJPBHgiCAI4gScCPBEEAZxdwhMdhoAngiAI4PTAE/d5Ak8EQRDACTwR4IkgCOAEngjwRBAEcAJPBHgiCIL0EU7gCUARBEEAJ/BEACeCIIATeCIIgiCAE3giCIIgyLjnyw88EQRBEMAJPBEEQRDACTwRBEEQwAk8EQRBEMAJPBEEQRBkTuAEngiCIAjgBJ4IgiAI4ASeCIIgCOAEngiCIAjgBJ4IgiAIMkdwAk8EQRAEcAJPBEEQBHACTwRBEARwdm5OReCJIAiCdBJOwSnqIKDAE0EQBOkUnJF67i7CCTwRBEGQzsBpMFrk7+Zryj8fdfD9A08EQRCkVTgNQEsKyQljRApS4ImE/JCGIAjSWzgNPMsKzRsLoJhuX/eMFKrAEymzvyEIgvQWTvM8qwrEK0pO0ZKFp270gCdSdn/r0r6DIAjg9H6ONQvNSc7jdeUJPBHfLPD2mQJOBEH6CKf5+3WF5iX9OEVbFJy2RcpkEWgiCNJnOA0qG6pydEXTxnOMyhNxiFw/v8G2QBCkj3BqNA0w5/9+XZd4nlgtBypPJCsrQBNBkD7DaRDZDICmjSdO2yJpWVVoTrE6EATpG5wGjy1KTs+e0Y/OQFUDPJG0rPE+WtThDEEQpJNwLtaEpsYTHYYQ4nUNNBEE6TWcdaOZBhTwnG80zTr27XCGIAjSCTg1mqZRO+UGrQmggOf8obkONBEE6TOcBs1tVWmecIMWWV/AEwmJ5gVV63CGIAjSCpyCZqTQvMqAsg5A+4DnmL+AZ3U0N3ifA5oIgvQSTl1pRgpNlwZwnvAk4BkUzXOq59o5giBIrXCaBmyHktOzx56N2bziidO25dA09wSbqejq6nCGIAhSG5yRQjMqieY844lrnuXQXASaCIL0Ec6IG/0dBVNZNOsECngOB80tVWleYpUgCNInODWagtJRRyuAPuFJJfCM5mCfEzRNpVn3rU0IgiC1wGkasF1KrmmGQLNOzIaMp0vv5D7jqitNoIkgSG/h3FeNcVk0m4arL/d5LpLfaduoAMei33cdzW2giSDIEODc4H/7XNPsAlJdxnOqlikUnlFGdVrnQBR1oXmBQw9BkL7DeZxRAcQdX359arSreJbpMBSl4Ojzd11F8wRoIggyBDhnCs24h++hy1OSaTzLVp5loOoSmqbT2TLQRBBkSHAOYcqmPuA5njM8NZrHQBNBkCHBOZR0HU9SeOqf1YVfm3ia194FmgiCAE7gGbrynNaMXhudhmw0z3GYIQgCOIFnnXjWAV1TPXA1mkdAE0EQwAk8Q+E5ysCzyeowCgyq+du9f79WgCaCIIATeIbOhJKhDpdbxDMLwDJ/cwdoIggCOIFnk3jOeoqnRvM7/Ri0HUEQBHACz1rxXFSV56RHeJrHmCEbV4EmgiCAc3h4dnV4PhvPWU/wNL+7y2h+ox9D6SEIggDOAaXLY9veUDK6kK48uzKQQdrP7gFNBEEAJ/DsCp4rVuXZJTzNv+//+7X279dX+jGUHoIgCOCcAzzHCoKu4HlNyW0qXcTTfD3492v9368vQBNBEMAJPLuCp6k8lxjPaYfwfKjQPMbhgyAI4ASeXcRzjfG8abnafEQ/pqA7oB/3aiIIggDOOcdTruN1Bc8rXi6D52qLeNpootJEEARwAs+fOgzNOrJsGs/1FvA06+QXRvOTqjQj7DYIggBO4Nl1PM1tKua07aQhPM26eMpgGzS/p1SiCIIggBN4dh7PDcbzuiE0P9CPezXTAjwRBAGcwPOnDkNdwfNS4SmnbevA06D5zAFNBEEQwIn8L57UYTwNbKslK8+i6cMETfPc7//9OsTugCAIAjh98ZTTt13pbSt4mns8NxnPK0c08/5vnvM3fs539GNUICrxvAiCIIBzjvHs4n2eZjku6Md0ZILnTQU85YPB7yXQRBAEAZxIJp5dGdtW8DtnPM1p2y1HPNOqQ43mW/oxKhCCIAgCOCvjuaCqs7aveQqAZ7xca4zndQGeUQGaqDQRBEEAZy2VZ9t4agDPVOW5zZXnpcPfCpobVqUZVVweBEEQwIn8T6aUTDgtFei0A3CanCo8dwrwjKj49CwgRBAEAZzB8Rzx+jM/a/q6Zxpsp7xca6ryvMjY5oLmG8q+pgk8EQRBAGcteJpKb9IwnlmonfByrTOeZlnP1e/N8v7hgCbwRBAEAZy14Snfm8QzDzQbzwnj6YumL55AFkEQwInkZsJYLDFKBqubjuB5TLdP25qOTA9LoIkgCIIAzlvwVK2SJvxd8FxqEM+iZTd4LqjKc5nR/FzifTdZdUaE6hVBkA5nhFVQ2EgX/f6Cv+R653aHPpCY8WavO7Y+i/ZH7JMIgqDi7AGaUcnfS27o9mnbZf7ZrKHlz0LIXNNc4+pzmW5f86wTxKjkvjjman2GQxNBEMDZLzzTThdGKV9peC6r79c1IxAVoCmDG7zln21UxLOuLHK1btCcYpdEEARw9gvPKpWVxnPUAJ4uY89+5p+fNIyn63pcZjhjarZzFYIgCOBsqKEv+rtr/tkKJdN/XdWAZxGaab1nu4bnCn/FvI70NU4AiiAI4BwonFl4CgxmHa/WgGfkiWZbeGZljb9mjKRcH47VF4IgCOAcKJx5lecqg2CQuAyEZ94k1C5Tg502iGfael3n15bfz/iDxTU1PwoTgiAI4GwBTf08+rmu+P9rAfGsiqY8R5OVp17mTf6SmNc0M7y0MeYvgiAI4GwRzTRAI0rmxxQ81xnPaYBlLYOmfh4fPEOgtsWvI/lOxZNvIwiCAM6Bo5kWjeeY8bxwqDyjGtC0n8sHzyqj+uzwl+SQmh+cAUEQBHD2CM9Lfq11Xu+bDNSsYLmy7in9PQCaGs+Yny9tSrK44noyYO5R0unnCypNBEEAJ/B0xTNmPE2VZ05dnqXgGRUsa1k08577gtFc5K+vGX/je8p299+vO+rvDih7ku0y2w3j2iII0jicaHiax9Nkg9e/4DltAM2s55dbWQzo5lTtc0oGsK8SU2Xuq0rzY0A0gSeCIK3BiaqzWTilutN4mkrvlPI7DI0CoJn2PvXzGiz/ysHNp9o0VeZdheYHSk5X17HtgCeCII1WnJiRovmGV+M5UnhOMtAs2xEo7z2OPdD0WVf7Ck2Td+r91nXLCfZhtw8XET5oOK+vUcr6wjpEblWbIxwojUd6r27ytjCdaE4sPOuqNM3ryUDwLmjGHmjeU5WmRrPO9RwPdB8OMTBH2iUZ3DOb3y7qoR+zRrICoHO8g5ihzqYDbni6DGcRnnWjue6Bpm4gshpdU2Xe53/PeJnPG1zXQ9qHQzTI+lLMDFg6rfNF3oem5D5QCfCcQzhlR5kBz9Z2/jNe91sKT3Pa9ikVjz3bFJpFlco9hWbMy9zGGLhD2Ier9GKWLPDXjMJ09JqHY3+Jv0/If3QvXCqYQzgj4Nk5PE3nmuWeoSmntF7z+2krfd6HXSp7oBl+nctUgGWnAZR9LqLblzVQjQ4UzhkfZMCzG3gSV5ky+PnHko2fC5oXOe/VB80H6vevWkazz3iGQHORkssvN2jinCpFmQKw6gxGss+NUvZB4DkwOGPg2SieUcFB/IA//cq2MAMIHDvgGbWApqkyH5ZAs6lrbX3ahzWaZRvvJYVmqOEMh9zwh0RT73PSuSgGnsOFkxSeY+BZK55RzvOOGDe5pnnG/3bBM294Pl80yQPNB6pxeEk/rst2LX3Yh0OjGXo4Q31bxlA6GMlsRSM+HqYBn3uWgSfgHBicwDMsnFnjy2b930bzMyMUp+A59VjGMmi6VIa60uwyml3HU46zUUU0l/nLbOPLmpZ1pL73HU+Zpcis//PAaNp46rN6uN45QDiBZ1g4iypM3XDaaMrvzgrwbAvNRwrNF55ottXodu2UWWRVcVXRvKkRTYm+nNNXPJtAU+9zuvKcEXrfDhJOjSeueVZrYCOH57DR/JLyqbQIzybRfNBTNIm6NS6z3duyLJor/NUEmrLNF1SVPOvZ8SzT540aQNOuPIHnwOHMw5PmbKNHNf69Htyg6JaTLDwnDaAZKTT16dnnPUJzQcEZU3uARnR7KDeq0HivcKV5TbdHZqobT115jil7VJ0uoinHzxk1e5tO1jVPZGBwZuE5BZ6No6nxNAf7dg6eNpp/k9/A6mloxp5odq0RXVL7+VSdPWnjetMoIJpSaV40/B5kH5D7vxeo+6MSjRWap9TOva3Ac07gdMFzSL3sQsIZGk3JeQqeMjyf7+AGPmg+Uo95zq/Zhyzzvku8TqYZFWBT+5HunVoWzVVG85raGZlJtwuLqh3pKp4azRNqd0AI3WEIdy0MGE4bz5GF59C6qIeA0/eapm9sPHe4Gv21RjRjRzS7tB+sqIb9hvJv5Yka2Id0pTlSjacvmssto2m3C0uq8px2bB/oEpoazxHwHD6cLpVn1xrNtuB0QXODqg2jl4bnHjdgIYbRy0Lznx6huUrJqcRrKh5Bp0487Y5ActzoYfFix/fUdqWZts2nal13qfKUSeLN8eEygAjwRILDSXS7V9084Rmi4qxyejYPzxk3DvKaZuSeU4/lGyKaa/whghiZ65b3nTQ0Y1WluVRqguZVh9C08Vyi271t2+5BLcdF19DUeOK07RzAaVee8olpop5riKdtq17jrANNWd+PKTkdSfwarqekQqHZpayp9XFN4UfQCYGmbjiJwVnkbRb3DM20ynPUcuWpK82unJ71xRODJAwMTo2n7lU3UdXo0CrPKr1q60TzT4bCrPsDSu5P23FsMNLGti2LZhcO9HVKrrcZZC5bXh6X3rOC52IGnn1AM63ybOu0rX16tg+D3KfhaQ+OgQwATo2nPkjkdJNUnrMBracyMIToCOSCprnl5Bv93GHIFU95b/crVppt4rmuKs2+oEnW72VWkxte/31Cswt4jtX+3xc0bTwX6OfTtsBzQHBmnZ7RlWcfRxYJBUOTaMp9fGm9bV2v71RFs80D2640Lzqwn4wc0bTxlIHaxy2gGaV8lUWgaTwFzaiHaGbhOQOew4TT/oQ54o1+Q7c7Ec0bnlXQLBp7NgtNysBz16HyFDTlQO0TmrojUF/RTMNTjqOzlvfrEHjWfc1zCGgCzzmDswhPqUanA1lfRQ1JCDSjkmhSTuWZhaegKQMofApYHQNN/yyqD5yROo7a3KdDVZ513Oc5JDSB55zBmYanaQCuLTyHUHn6DG7wmcrfyhKVRNMHT0FThm0zB+rzmqrw0Fml27ectI3mKBCa67w9rig5bVs3nlGN21jwXK4BzyGimYZnDDyHC6d9kNh4Lg2g8vRFs2yDo/Esg6YLnhrNf/jfpoPR94rV1jYl48HWFT0ikNm/Lhvc/ln36FYde5Z43zHHioylKh86825V6QueESW98JcC7CNDRtPGcww8hw2nbOwJ4znmg+WKfy4/m/RwPTWFpg1REZpFr5GGp2m4HjA6f/M22acfp2kvKyzvI14Ha5QMzhA6MvasjAh01eD2T5uIfByg0iTeJit0e6qrifrdQs8rzym/PzlelivgOQ9oAs85g1NXniu8kZe4Qe4rnq7D6L0NhCZ5VJouvR9tPNcZnb/4+yaD+kltF59eleZxv9CP06dyD9oqL29IPBfV/npDzYwIJDjK+pip7TMOVGkSry+ZI1Jnos7YLPS88pSewif8XYaInHk+R19vOQGeA0pdQzzd8I4t1zW2eYNf8AGzQf0fHUMGN7DRpIo7cxqalzkNmMv8kl+4GpYsKISyJlOOHdfBU15W8/fvGTSpYhcCfsCTRqIpNOVDn1SVI7Xu5HarONCHwDwUr/j9ymnOOlNnI3ytzqQcU3Jqf9FjH9jhvzuaEzRlm9j9RaZ0e25XZAAVp/6kdKM+TS8znFNKBuG+7sE6qjL2bFRie2ShmXaqUKPpUnkucMVpHrurGjDz729WY1R0P5+guc7b+i0v6xlv3zFv86uKlWdkVXxNnK0YcVUkPVsX1M8XVOM1CbR/yVmANAyWGcwZr9+4pX2ePPaNLAA2eZ1dqrZB5hWdOaAZzRmaqDznEE4bTzlVI9dxZFzRqw6vn6oDtkee2yLr9GyUgyd5VJ7HCk8B84i/n5P7zfbmb5/xssa8Hi7Ucpzz76Rqu66Ap66sm+pcpk+NyjV7fdp2GrDxllPbaVOfLfMxM6P6rhtX/bDnA6jAqT9MrfB6vQSawBNwJpFGZs3Cc0LJqC+XHVw3UcbPXO/TDIUmZeCZNstJXiMWZeC5RckQX98cGkfzuN/oxylqc+C+TgFX8JSzDbqHddnTVU02CnJaTDoiSZUZ8fYJfaZEtrtGYaUFNMvA6VqFRryvyalnc9xvq31ymoPmvJ2eBZ6A83/xvOYGYoEb1FM+EDb5k/VlhzZ619Ak68DIQpNyKtM4p/KMuJH+VlDVjSm5rmsOWDON2VnOAX6pKgofPJuYXLoIzgklt4OQQrOOMyRS0V6loHnWAzRdnkf6NpzzPneHH/ct44PImM+EmMd+B5rAcx7h1Hhu8OsaKE4sPC86sNGrounTCJW5TzNrPs3Io0K18YxU5fM143XtSvMlf/hZ5apgm79kwHW5PnhJt+/tLbqtoiszQ+j7j6WxqmughQVeN5cDQDPr+Tb4fZl1uMe/P8z4ILLAjwGabnhihKEBwyl4XvFBJI32CYO6Rclp3DY2ehQQTZfGqMrgBpFDlZmHqfz7hJdjXVUF5usoBU25rmu2zQtu6H+lH71n1yk5rbnE72mdt7MgLZVn3j2J+jpi3PLBv6Hek6yDuq6zxmr9CJqn1OxoW1GNzxlxhTlV+9rXHDR3VTUKNIvxxPB8A4czC88jhecqf9KOO9BoCJpyy0ldaP5F/td5owLwXT4gxCl4yun0YwtNfXr2Ln+ZRs3MBWpuQ/nM1cE3tT3HqtI4puT2jjQ87ds82hxlaoOSWz9ksHX5UFHHss0UnENBUz/3Fu9Xsu99Kag0gSbwBJwpkS7pm7zBN7jRNY3tToN4FnVmkEozNJp/MFRl0QzV4Mnf23hKBXlqVZqm4n7I2+c9r5e0jiuxAueSn09OzctABtLbVqot+XnIHqtlspmCpryfRfW7kLfF6PlEp9R8T/M64VzhalPyOWN/X6Db1z2BJvAEnBl4XvCn0QVusL7xQbXLDe1pjRs9KvhdXadnQ6EZusFLw/MOIym9Zx9yA/+CknFti5ZhyvisKTyl8pQh9KRzzA21e3vSFt0ePP405cOA7jAUAs91SkZdulDrpGk46sDTvJcHqvE+KEDT5BBoAk/A6YbnNi+LxnOPG5U68BwKmnHgRs/GU3rt2WieeDa6+t5Oc3bhmJLbPeT0bNtTg21ZleZpxvsIiadU4qaRO1IVuAxN2SQgoeFc5n1GnveTQ6UJNIEn4PTA85zxXOAG7FDhKVVK3EADUQXNvOevE83Qjd4Zr3c9JN8m//85ZU9y7YPnOleiuvPNCbUz9VzE+96yqjRPCt5HCDxtNPXg7hrPSYPrISSajyw0s65p7nPjDjSBJ+D0PBCl8txReH7ln91RVUpc4zJVmYQ673VCo1lngycdgfSA7fLzE24AqyyLnI7couSWlZjX0SpVH56vzLqTSjPm1z9x+LuqeGo0v9PPnY1kzkq5HWbS0LoIjaZ5Dx9zKs19ftxX6sfwm8ATqQ1O3eHGZ0zLG65IBM9txisUnkVoug6j5/N6aWheBGyofAZ6d0VTjwi0qQ44GTP1qGJFf4+Sa5pyem6JAVqlZCadrlWaofAsQlPjSQ3iGWJ/NB2BHlPSM1qjafegvsuPA5rAc67hLALSBVDpxajx/GzheVRiozdVadrr9s8MNNOWyxe/OtGU3rNjXt8yl+IqQ3NcYn3LnJ0yM44MMG8qvm8KzzUKPyVZ2rLs8HuRSvO4xPMIngvk1tvWFU278lxuAM+q+5CN5oeMSnORPzzJbSlAE3jOLZxl7yN0qTx3GM9z/pTqi6frfJpNo0nWDlxmcO2qaEYZaD6gpCPQAd3uMCQz2/jgKXN2CprfeF2f8/Om4XlJ9dzLGQpNjefEAU9fNNPwrPOaZ5X9aIW3r8xgk4fmXf430ASecw1n1UGhXSpPwdP8bJ+rw+8OG72rlSYVVJ6u67Vs1alPoadVmnbv2bRBElzxNF9PeD2bHFIyd2nM23SDkuvaguc6JdPQ5Y3q5Dvp9i439CHQdMVT33Lig6bGk2rEswqaa1xpRqrSvEhZP1Jpjnj7A03gObdwhrpOF+XguavwPFCVZxGermi+bhlNytmBo0Dbwb7uTDloLlD6LSdl8DSv8SujSAzjQUqjesrLsa3w1IOCzzLeZ+S5DvYsNI8CHktZeK5Reu9Z38gHiFUKf59n2eNYoykTmV9kVJpyevYAaALPeYEzyvjKyipXhga4+/zvHfWp+9oRULmfTvA03z8xqHl49g3Nqo1Z5LENy6BZBk+NplzP+pSDzilvE+kUtmzhOU2BP2s9pAF7R6F5SckADiFj47nI72NG2VNn+URuVZH1HgKgqmjK+85Cc4HbgAiVJvCcJzh9DizTyD3jRliuZ014Ay0ynnf4k78Mu1f0eoKn3Fuo8bzHz3miTl/lLe8S47bRAzTLdhYq+n0RmqcFz+OCZ8T7gcy3+Jm3WVSAzkkOnmcpeBa9TxtN4u3yvcZjSvCU0ZHkfYW6Xit4hprLtgyc9unZd45oXhECPOes4iyK6TEpHQQ+coNsGktzTUs6g8g4letcha5S+i0mdvV5w43PnlV5HqvKdsyfZqcZp4rMAfybAuKwo2iWrSZdoB05oln0PHl4RryeNZofHd+PILNFyXVtOW27xcs39Vx3d+n2kHbfGjiulnid6m0T8rqkxnO5wv5WFk3dEcgFzQOgCTyHlCjQ458yZod8ILncSvCQv0wl8XdOg6g3omko/kNJB4n/8mv9wg0tMczSqUSmaVrl35lrTG8DHsRDRDNr3aflMSW9JIm3/5iSa5oycwp5PrdZpl8ZoPdcMS7xNn3tsf3uUXJ69oyXr+5GYYmSHrsXlAyYf0HhhxRc5+POrI+v5HcLTxU0Zfu9zUHzgdoHgGY32/4l/i5DPcoZkpjaGcVrcBVn3sEmaH7kRs61YTrlA8o0bnkdfdIqT33NU3ppHlIyjNsKNyoy3uchQ/E54CmzutH0QbEONMtUnqu87qMCNIuee6YqTzm7sOxZed7nhl6G+msCTRkMQdCcUXKf57KqFkPlhl9ji/wmgq9aaQLNYVWemAy7JjgjBzQ/lXj9i0B4HnOleaog/aRAPQ3cYDWBpm8jFzVYaebhKdv1hecyRykH9THvF7vcCLvi+YAbemI0vzTQCIzV8XSpXs93SjLf+VWvFZ4uE8HXfXr2AeH0LPCcczjzDuKqaJbBMyrAc9LQOmsKTZ8GL2qw0rQfqzvfkELiyPHvowI87cpzMQfPhwrxM0ruGa1724zUvhmnfBC5oeQ0rkyhlrfuy+C5zdvBnsvW937XIjTPM9CU2VA+AU3gOY9wFh1kguYH+vm+vDrx1A3KhH6+VaVuPNtCs6ghDYmmT8Vp9549p2Tc1jWG4rji+8zCM63yfKzQPFX7ZtzQtpnlvJbchiV4UgaevvemypfGUyaCL1thpqEZO6BJQBN4ziOcLp9KQ6NZBc+bBvFsE01fPIvQPMl5vrJomgbzFZUbYSgPBI3ntjrLofE0SDzg9ysdgT42vF1c1pvGcyUFz8hxm2cdp1f8IULumT6t8J7SrmkCTeCJWHC6fDI1Q6ft1YBmGTypQTy7jqb+fdosJ4+oeHADn1OEaWh+4H+XHZ7PpZo7UpWnxlOPPXuqlqWLETyX6efTtpHDti/aPjaeJyWWEWgCT+BZAILrtY8nqsE6qHGZuoZnV9As6l0bVUDTd1k0mgcpUNWBZ5SC5yd+DVkv59zIdz0y5N+yVXn6DOzggucur/szjwbP7DuPHdBcJFzTBJ5zDmdX0Owann1BUyrNPyw0ZcD251TttF0emlm3nJzwMoXCU68LwXOPfj5F7TtIQhcqzxXK7zDkc1ZI43nDx8E2r5Orgn39HiVjyhahKb1nPwJN4Ak420ezK3gCzXw0P1HxKdEiPF3HPk5DR+5dlH1lys+9SbeH5+sTnkRhB2+/omT2GQFUZliR+53N7/b5OJMRlvI6AgFN4Dn3eBbB2RaabePZBTRdq4yuolmm8nTF8xkloxPNeDubZVpSeOrKM+rwMSinbfUIVyEHQp9whS6dkjYoGQ94i7fLiJIe0UATAZ4V4Gwbzbbw7BKaRaDoa5qxQtN1wHYfNGWWEx80Q+Npj4N7zO9TxrY9oGSc2I2eVZ514inVpwH0kLfHCR9LMqH4PtBEgGc1OJ9wQ/SpZTSbxrOLaGZhktYRyK40s3Zq/fO8ybAjq7o7oPI9VtPwzBokQXeEiXLQfEXJNc9Ntc/qybDPe4TnJeO5VhOekikfHxN+vV+AJuKA5wh4ZsP5CyU9Fg86tKx14zkENENWmuY19CTUn6n6bR42nqv082nVtPdt/uY//H6JoXxpHdTHCs8DC88+VZ5N4SkfXmROTaCJoPIsCWdX0awbz76j+YAbuJCnZ200Qw0oYONpgJMp5vTBt8A/u8OVpnQE+saVZtpBLXhu0+3TtmuUdCDqC56rlAxSXweeQBNB5RkATkHzIzUzvmdX8FzgaqYvaP7G79sg8IYbtgWuwEKh+bQAzaqdbWw8iWE028VMU3aft+8d/oAgB+ZXfs9Z60pmVdlgPD/3GM8LSmb5ocBoAU0ElWcAOPuCZmg8zxiitR6hqYfRu88NXEg0n/A6FTQ/lVhWXzzlYHvDH2jO+PuIkhlFTCeWtw7LkYbnoqpgZbqvvOfpQi9cwVMqz1B4CppyTfMCaCKoPP3hfNIzNEPiuceNRN/QfK0qzVcOaMYpz582e8ZjSq4jmn3hoMIyl8Fzk/dDg+Y+JR2BitDMw3OLK9VF3t8NRJcZeI5T1k3beMpp23VKet9WQfORqjSzpgZ7CDQRVJ75cD7rIZpV8byg26POhKrY6kRzXVWa+vTsWQGUrq+r0fxScn8oA6iN5x7/eycDTdf3Fis8Ny08V1LwXKRkWL+uNU4XCs+ylSfQRFB5BoQz7imaZfFc4A8Li+pnm9TcfJ5V0dSnZ2UM0io7aETJHJbmOQ7V/hAFfC8+eEpHoK8plabvCEOn/Lwb/N4W+LVWeL+Z8b/Nz6cdhFPjuVYSz1W6fU0zD00TjD2LoPIsgPN8AO/DFU8Dzn+4ITGVpznluUXNT4ZdBU05PXsWYIeM+DnlGtohV3hVq8gyf3vKVeaCQu9NxvbwmZvUxvMbv4bZ95d4PS/yOr7ueOMklacMeOGC26qqNN8XoGme8wBoIsCzGM5oIO+lCE/TOP6p0PwvN6hNT4btiuYzbiCnXHXd5+31OiCadykZqeY7wxkaRNdpyp5S0ilJfmZO2x4FwvNM4fld4TnmdXzeg4PbrjyL8HRF84GqNK8JQYDnYOFMG+XmMgPPNDSlwWlyMuyuoGliOt/IwOJHXInVWVFGBWju8v+/qAqxCE+fCJ6CzjUllyqI94c+HNgxI79WUHmuUnLq9QPQRIAn4IwyvlMKnqYR/iMDTWoRzzw05fTsW34f+vRsiBiMZOLnY0of9q4OQNMe96uFpnnPaR2GbDzjAlzy0DHgLPEHkym/1gLvB3EP9nt5H1mnbZcVmh+BJgI85wvOKKOyLGqMNZ773EhmodkGnm2gKZ2IthWap3R7oPUmrmfqx0mlGdHPvWfz8IwrLMsuJdNnRfycctq2D3jqxkdXnjNKJseWnrEf+FhIQ/M+JYP2A00EeAaEMw7UqFZtiKMSyzBRCJr38VdGI9I0nq5o3uVleF0SzTjldU0FLh1hzij9Fpym8NSnZ9N6z+bhOS25LPv8mjdciclsJCcKz8We4Cnb+EzhadbVHUpuJ8lD0+QAaCLAsxycv3DDdOpQ8TWFZ1SxQTeNw5/cMMqpONNANj0ZdhtoZs2GssbPKR1MzgMAWOZvZXQijea7nMeHwvOeQvMdb0+p2Nb4dcbUn9O2aXiuAk0EeDYD53+4Eom48aAcQOMGAK363IKmvqZ5Rs1Phl0GzTe8nGa7vCK/W4XinNdd4dcy2FyR/+0GUaDH6+EdTQ4L0AyF532uxG54HU/VOpNbPFZ5m/e18jyl5D7cq5TfLwJNpGU8F4aCp3kzW7zgOwV4NgFoCDT1fZp/cSOS1du2KTzLoOkz/F/ee1nh159yYzlpaPukXYt+TMmIQBrNKOd9RQV4Fr0fg8U+v/fXKY8vwnNC/cHzyvowIcu9yPuWyWegiQDP6nB+569tBzyrdMqoG09Bc8VCU9IWnm2iKSPwTPgr1Kg4ZToCPaZk7FmD5vuMx8YpH9Ly8MzbHg94vRooXvL2zFqHQ6g80wI0EeBZA5zEn1KPcvD0eUNt4FmEZlt4tonmktq2sxp2Sh88H1IyTZm5X/SDx98W4Zm1PTSaLxy2lz0bie4wtNRTPA2ad3k9HeR8cEAQ4OkJZ5SD53GDFWPZ53BFU1LXZNhNolm0vDJgeV1oum4nub4oIwKZdf2xxGvYB5R05FnndWpvj/sMp0HzuQIjclivNp4yMPwyP19f8BQ0pdIEmgjwrAHONDxHlH/NM68RbWKAcF80pXKpu/JsG03ZOZuYtDlve91TaB6R+zRlLq+RhecdrnANcv+kgOGKp4wwJHguKDxnHT+uF1SlCTQR4FkznILnd4bTFc+8+yxDj2taFc26K895QjPvPe9TMpPHsYVmqE5lNp4GzS3G7e8cMHzwXOsZnguq0vwCNBHg2Qyc8oZsPE89Ks0y937Wiab9/HFNePqMCDQUNNPW765C84R+nnGlLjzlYHvpsF5d8NQj8xwpPPWUZF1Dc5+SkZiAJgI8G4QzDc+IwYisr7yGqY5qswyaeQDVec0za3CDoaGpt6E5zS8zrpj7Zw8DfVjywXOLfzapuM/1CU+giQDPDsCZhedJRmPeRKeg0GiWwTNyxFPPcjIvaG5QMuPKOa/H0B+c8vCcMNwj3l9D4Xmh8DTvaYm3+WpH8ASaCPDsEJx5eEY1NYBRIDTta5pFK94FT/vWCI3nmNfPMa8zQVOmBqvz9Oy0A423gWVZrcuTgNveNecV8Cwas1kqz82O4SlomnwFmgjw7AacvnjWUXmGuqZZtIx5eNpoSmN7w+tC42lOFa7PEZrLlNwCc0W3r4eHGq6vbjyLXluPCWu27zfGc5HxvGxhOwBNBHh2GE5XPEMOwRdVQJMK0Iw9K8+0ClZH8NyxNvo8oLnAX7IeLgJg2Ac8NxlPuea51jCeQBMBnj2AswjPOgZ+X6yIJqXAbk+VVjSfp1QXRZlyQ72g/i+3SfgM2O6CZqx2qDaj15+MhRsKxKpjIteN57pVeQqeFw1sF6CJAM8ewZmGp88gCb5o6llOyqBpN/Bp84vGGVWz4HmXG8i8DkNmHfxGSe9Z2cjmywxkfjpANPUOHJN7x6SyPa27huepwvOQktO2UnnW1VELaCLAs2U8y8Bp47ldA54h0cxrFNOuWaZVngbPrA5DgqZ0BHrDjeeIH7vGjWxRQ9o3NH2Wfeh4bjNiGs+LGvDUvWeBJgI8W8KzLJx14mmj+V/Gy2XqKdfK0+fv8vDUaMo1zfu8Xt8rQM3vz3Ia0j6jWfXDy1Dw3GHMFhnQ9cB46mH0cMsJMq94xl3Ac6wWoAt42vNp/teqNKMKaFb5uzQ8zd//rtB8w2ia9/CSG9Qz/r0Lnnlo0sDQHDqe0st4nV93RtX6AZh96h7QRIDn/3y1jueYqnfsMW9ABoavgmcRmnYjlnWfpst7KfN+BU9zqsxc19pNQdOszxdcacTcKF/w46KMKiR2QLMLvWeBZz6eJ7yddxg3wXOTX3dacrkXed/CgO0I8OwInuNALzitiOeiI5pZDVkdoxhl4WmWzwwmvpSDpo7gKcPBrVLS83Le0RwqntspeJ6VwFOjifk0EaQjeI4DPldZPLOuabo2YkWj+4SMeU+PKJkk+oobSrMeX1L2fZqC5xov1zLl3/M3T2gOFc9dxq4snuZvHgBNBOkenlU6B4XAsyyaeY1aXFPlad6Lvqb5hRtDuU/zLKcClnVjsFzh5Vri9xpnoDnEa5rziOdnhac5xX/qgKd57ENeLjPx9zUhCGK3p63hGRpOHzxD33LSJJqv6cfp2khVkEcOG2vK73GZH7vIjWKcguZ0Tg+IPuIZZeBpPljtqcpzifHMqzzNYx7zzz8ATQTpHp7Sqzb0kGjS2zYLzzQ0L2tAM8QpW7Psf3AjGDOaphownZmecyNoGkdzDfPYoUqUEXaW+PkWeB0AzX7iGeXgecwftjSeeZWnoGmW4z3QRJBu4jnOaAiKvrIaKf37LDxDn57NakhDoqkrzYe83p5zo3vJDZxpHNf4PRZtrBm/d7kvaQQ0e4snFVSex6ry/GRVnhpP87Mn/BzvAh8TCAI8A8NZZYaTvFF30vA0UDzoMZoPVKWpx569Yjx3CvCMrXUz4dcRMIHmcPHcyMHTHIdP+XXfAE0EqYRn7SMM5Q2AEJVsKLLwlOm2FqmeYfTKNrhpfzvOQfMfSh+w/Yrf1zZ/MDh12Fjy6Ui+I9XxrLLtQ+IZ5VSeHxWe+ozMa8LpWQSpiqcenq+WCUjMizyjHx1b6kBIV297lMwcYmaU+NqRxtb+u7SOQA8L0JTGUeNpes+eOeIZY5+vpfJsE08b0JiPM43nCn+QlMkAzgMecwgCPJPKM+gxZV7gV66QjmpqiOz5NKeU3MZxUuMKLNPhKQvNcQGaaZXnpsKTgGNj2zPEARIST8rAU/fKllGlXG5VQRCkHJ5B4TSNwX4GnqHRNKdnv1D14fm6hqaN4jWvV/Ncy/y3gLOZ7RoKnCw8pxWX3ewHF1x1mn3rEx8nSwwq8ESQjuNpnviSGwjzCXjNwrPKgZuG5hVVH56vaTSfU/aIQHnReC7xegae/cfzuCKey7yvyT5inlOuefoMkoAgiBueab1tK8MZMQwT/hS8Srd7hZY5cLPQlOerC88yy+pyy0nsUW3q3PDXOq+TS+zLvcRzyqBVxdN8gPqTn+c5n32R3rbAE0HqwXMhNJ76dhSZteNORTzz0LTfUNt4VkXTJRP+WuN1g1sN+oVnpCrPKngu83Fh/v4fSmbQsTsMyWTYG8ATQbpZedr3cUrlWRZPVzSjGvF0bWBCoOmKqnSKWubnx4Dd/cEzUpVnWTw1mn/zmYe0DkNmbNtPdHtg+FPC/b0I0ik80wZAuCyJpyuadVaerjOjNFFp2rhO+LWW+fUn2Jc7j6e9P5XBU9CMFJr2cgmeepCEJT6m9AToqDoRpAN4Zo0c5IunL5rSGIWsPEOg6XrLiWu1GadsuBlXExHwbATNKnhGFfG00bzIWS49wtCuwtPsK+t0ezJsBEHC4ek9SELe7CiueBo0XWc5ycO3Cp4+aJoejZsNoJn3PmVwdyKMGDRUPF3QLMLzwMLzDHgiSPt4Fk0rVoSnoLnCj3M5PRsVVGS+eFZBs2gYvSpo5jXWMszeuORzIt3D00B3yj/zQTNt/xI8d1LwROWJIC3jOXZoTLLwTKs0rx0aoCKAyuLpguYGJVODNYFm3t/M1DbAsHvNwVl35WmOgWcl0Iwy8JTJsBd5f12npAc8giDh8SxsI8aOjckl3b5VxTQYfyg0/ya/waldJnz2wTNyRDOrI1DTaOrf62nFgOcw8KQSlWbavnHCUJpj4IvCc5WfG6f5EaQ6niPKnpKsEpykPuXuM6Ayy8k/gdF0wdN1KrQQaJbFLPZ8HHpM9hvPiPczyTcKMyUZ8ESQejNLwbOw4hxZjXzeH8jMH/ICvmj6NlZpeJ7Sz9c0o4z39ic3Ol1FUz8+osADEQPPxvA01/h/sX63Q8k1z6p4nvJ+bKrarxael8ATQYLhKR7GRRXnZgp+WRCZmVSW+EXG/O/jQFVT5Iln0bKaU8lrVDwJdUgwqzTGsaqSkf7gucIf0Ez+Ysj0adtQeJ5YeMp9nivAE0FqwzMTTplQ9ybn4DWPe8KPNY3AC/rRe/Yu3Z5VpezUT1kzdEvjlHXaNjSaIa8xVvkQATybXf9lt9WqQlMGN0i75lkHnoeq8lzh4xF4IkgYPAtP1S7wA5cZT/u0rfndQz44p5TMUi/D8+0zUsfkdlsIeaCp/+3SYSgLzTFjf94AmKGeE3g2h2cZOG00Lyi/w1DI07ZrfKZI47mMyhNBguKZ2Y6P6XaXXBvPEcMjaL61KlPB06488yCJctCMchqMiN/Q9ww8y6BZVy/WUM+LDkPdxDOt0nTpbVsGT8rAc53x/MZ4jlF5IkjQNjz3GmdMt6deWeKKcsTV5DL//gOlD06u8VzLwLMKmvbv0/A8HyCawLObeBqk0gY3cL1VJSSeayl4LgNPBAnWlo+y4JQHTBhPOe2zyt/NAfip4GAXPO9ZlWdWb12XXrF5DZqN555aVo1m2iTUceAV26WGH6kfz995X0u7T7NpPM/4eNvg40HjeQ08ESRY5RmlwanxXKTkuok58L44HuQ2nt8DoZkVs2zmNO0dVTmb6vI+V82CZpxR4fYBTODZLTy3+UPZe2v/bhtPU3muW5XnEleeGFQDQQK3HeOUA1HwJLp9E7dLo3POoN3l/5/S7QGsKRCasuy/cQMhz73Ejchrun3LSh+hzNt4QLT+Dx9pj33K3185/G0oPCOHffOMq84V/qArU9fJZRfgiSDV244oC045EK/o51FJXBudMz6A7/Kn8imFHx0nrSPQGiWdI95VBK+LDc2YAGabeJozMGaQg6/kNmtP03ia59jk78d8LIx4uW+AJ4KEazvGNTU6ZwznmJJTWnWh+ZwbCtNIrCtgylacXWxg5JYhonK3/CDV8ZQB1z+Q+2hZTeJp/l76JRjYL1XlCTwRJGC7Ude9gjcM5g453ExaEU0BcpUbD1Nxmuue90uA2cWGZVF9GJhRMiVZRAC0iejLAETlxmW2r6+b06lvU/Zp305yds7pdv+E75SM8rVOuDcYQYJkVKIRccVFqsDVgGj+yQ1MbKFpssKV7nNu3PYoudbaRzD1+7avE8fAsxU8TVyn84pawFPuJ11WH7SOFJ5rwBNBqledo7J/6JALBVrdaMpjbvjrJTciBs/9noJJVoUz4moiAp6tRCr9BQ9sy+JZ9hicUDLLAyk8ZVSvMX+QBZ4I0mDF6dNAT1SDEApNOT17UlAVGDzfcHWwk4J3n671zBzxROrNJX/3OYNSFs/1ksdi2gcpwVOOmQXgiSDNwukLnjT8TaB5TcltNKaxuMvfTeV71VM0bTzjHDzREPqB5huZj3a7xGvl3ZIVEs8FBWXaPqTxxGlbBPEvHOM64ZTrLGShVWeleaE+SZub1Df4Zx9oGL0JZ5T0jIyAZ+N4SmebLfUBrQqeVAOeq/z/rJmObDzRYQhB3E2r/XYUk3uM3tsSjVSZ07MRN2qr3CAYNN9bn777DqgAKR2GRinVxYhw20Fd+7T5EGiuma9Q9shBLq+V9ZpZt6rcOD7vPoP4JecxMT/fMj92kV8T+wyCZGdBtb+1wWkO+qeM3bea0LRjGoM9bgjOB4gm8Gwfz6kCyuSs5GvFNeBpIDS3YB3lLJfG85r/ZszHDO7zRJBsNEm3s3XB+YAP/DcOB3xZNO1q8zH9uNdOTkedDxBN4Nk+nudcce5TMtyd7+uExjPiD6qjlA+MRXiucMOA4fkQJB3NESUj4P3P8VsHnOZgf0I/TmV9bghNMxTaBjc4F7wME/K7WR14Iq54mts7zCWBuxXxzNu253ywuuBp9n8z3N4Hyp6sPet1rvi96Pl4ZxXWX0S4RQoZRmQwkSl//e/obePAjYrB6zc+GF94NNoazSml36dZhKZpvN7y9yWF59WANyzwbAdPsz6PGJwyladPdVuEp/mQaoYCPPj369DxuaMMPHXlOfN8P3pYSJ/3iCBdzJJCc6LaWO9rnEUHgqA5YfhcR1ix0fzbsRGKuNHQaAoQp/zGN/g5UXkCzz7hGVl4mmNqm34e2/Ypo2nO7HzyXH7dUcks+6XCUyZLmDk+zxLvfzN13Mu+GGHfQ3qK5oQ/pC6o/dgLThc0nyk0Xa9r6m73guZ5QWNVhKZEKk957psBb2jg2Tyckrbw3ODvptL8WPI92JXnJSXXPF3wjPgD71g1Mvr59Glb7HtIH2IuVyzmoRkKznVGc1oSTbmmWYRmWqV5ymhmHdznlNzsLSU38ETqwNPsY77XPH3GpdV4yn3S3yi597Pqe6CUynM1B0+zL21SMtTlVcbzyb5I2PeQjmeFiy2zP8uAOmPeb2e+cBah+auFpsvBqtE0f/uPA5pxRqU5K6hOL9UnaLnICzyRkHCafKdyHYZ88JSOb0vq07HLrSq++9AFH5tZeI4Y8AVK5u4tOm6BJ9IXNK8oufwgaM5swKqg+ZQheqEO3qKGoAyalILmG3LvwHDFB/ky3b4OM1Q8Z8Cz03jqXqdRwQc/fbrzV4bzmJIZUHap+FaVMvvQOR+ji/yeLikZnUrul75w/IAgeI6BJ9JRNJe5ypR5bGVfTS22xhXRNKeOXlpo5t2fNqLbp2dd0SRPNNMOzGtKbvaeUrUxdPsQ4Nk8nGXxLHptQdMgaToBveb9edsRT5fXc8FT5rqVQUZOPJ8PeCJdyxpXl1cpaE4o4/LeuCSaTxiflx6fdEdWpflcoRnXVGnaueH3LD0Ah37wAs9m4Yw88HTtvGOj+Z5/d5GC50nG8Vj21hD7tO06fz/lqrcMxhFZXfsRpGU0pdKUjnG5aGbBGRW8kKD5itzH0DQN9O8KzRc1oll0MN7w8ozmoOoEns3iGXlWni7PnYYmlcCzbKTD0LbaV77T7dNXPoDqa57AE2kTzWVKrtFLhzgZyzn3GBr3BM2i3rO+mSo85+HABZ7Nwyl4moPzXgaeRc+dhabdYeiCHzdywNN3ZB+z3zxSZ2nGlEyiMC25rnDaFmkz6zloTlw+eI490PyFD5TXjp9opZH+LQPNor+1RwQKXR3O5uxTL/CsF8+sxxzl4BlVRFNyxc+7w9vY/N0h+Y/+k9Y+mA+vS/wh4ICSa57rXIlOM2B2wZOAJ9IimnINX1eaToPljBtAc5UPYF801/nxdaAJPIFnHVWnL55RAZoHKWhmbZ9rBk4mqD6h4uEm7epTL88CL4fcL/pFLfsG/34jo/J0XWdSeeZNwI0godG8tNAkHzRJNaJFaJry1WemE/O8z1Sl+dIDzccWmj4NeZlGX49wAjyBZx1w+uBpoxk5LsMjfm7ihqHsBO6RQtN0lvhKtydrMM95ymhK5ZmHZ+SwP+oOQ8ATaRJNmSXIa0zzPDjXGLFpSTRlwIFXHmg+Umi+a7ABj2m+BqUGnvXAWQbPKAXNTwyfXWlmQWSO0/sKzb+o/L3KYz5TtMJV5ueU17TxzKs8XdafxnNeOu0h7aK5qCrNqzIHSRQYTXPwy+lZHzQfKjTfl2i4qzb0cnM38ASedcGZV3lmoWnjacdcg7xroVl2aEnzCfx3Pn4/c9Wb9b7S8Dx3wDPix5t1IINpj+n2NU/0tkVCo3lloSmV5mXZT5dRCpqPFJoTj+eS0zuC5oVjQ/NAoel7iinkAQY8gWfdcKbhuV+AZlae8N8WobnPx+ZFzodgG81PGe9NV70aT/P3m/wak4y/lYHp5f65Mf+d/opz9kcEKYvmGf+/MpppcFZB8ykfdNKJyBXN+/y6Bs2PHg11XQ068ASedcOp8bzLx40Lmrpqe+qB5hNGKWsybPO7PxSaHx3fp1yTTDttq5dliY/zVW6wzONPuDG74IZtqpYlsp4fQUKhSVXRtOE0O/Vj3uHfeqL5hJLTsz5o3mM0L7jhiDvSSOddTwKegDMUsDt83JgcU/G4r7JfmupxzwPNG8ZwOwVPA9WfCs0PJdaN4Lmegucan1Eyy/6FwZyk7E8zSu6hG6n9EXgiISvNq6poajhXVaVZFk2pUl3RlE/a5vEHHT04gCfwdAXRF03de/aaP0TOCvDUf+eKpvndP1zhXvPfCp6xQtO+9cV3/djXPDf5Z/cYww/k3ldiQrdvUwGeiC+a0hEoOJoC31pFNOWapiuaZKH5ueMHBfCcbzyjGh5ndwTKGyRBpwyaf6vj8kLhKV8rlD6cX9kzNScKzzVehnfkf6/nFHgiXURT8JOpwd55ovmLqjTfeqC5r9D82pODAXjOL54h4UxDUyJThWWNbVsVTVJ4TrjqNCgd0s+TYVfZ12Vau021v5zmtC0ueC6qxwJPpFU0BcAt/rTpi6ZUmj5o3uG/EzT71AADz/nEMxSceWhKjjLwDIUmMZbSWchkiX7uMFRlX9/k9uGal0NO255XwJOAJ5KTNXalETQFwfMG0ZRPBIc9bXjnCc8YeAaD0wXNLDz3LTT/rojmfyg5PfuVbl/zvKGf5wH1ifkQ/pQbq1f8XtYZ51B44rQtYqOZdp8m1YWmQBh7PPYXXkhB03Wh9hSa33re4M4LnjHwbBzNNDxXc9CMKqD5nm5f88y6VcV1fxc0zfO9YOzsa54h8FxA5Ym0iSZR8Vi1+nGPKRlG750nmjLDdt/RBJ7zhWdVONMmoXZ9Tn2rioHmv5TeK7UsmhIXPIvWxTa/T42m3oeOA+OJ07ZIa2i6wjlKQdN1bD9B07yJ7wNrYIHnsPGsA03X59XXNKcMn4HmLDCaIfA0aD7jNuF5BoiCZ+jTtsBzftFc4n22cTRd4XzEn3wnfNABTeCZhSfgDIvmOVea5jiSW1XOA6NZBs8oBc1/KL+vxIzxlEphkz8IlBkYHngCTRvNysPohYZTFjSi/G7l84Ym8Py5sYoGtE1Do1n0vFEKmn/zOtb3ec74g2xINH3xFDR/YzT/dmwXZB/a5v3nsqChc73miQ5D84XmFe+rraDpCuc5JTMZbPBC3wBN4EnJKdp4YHiWhTMPzbznlbFnNZr/WBBoPLcd0JQRgXwHN3DBc6sEmvJ3T/j9mvfzpeK2wCAJ85NVSq5ptoqmK5zEp1SWKJm49joDzz315uYFTeA5PDzLDLGXd3o2KoFm2inMRcbHxNxKchgYTRc8NZo+U5jt8vuMuG3wmToQeAJNOT3bOpo+cAqeywrPK+ug0fdpDqX3LPCcPzzLVJuC3x7d7j3rMiiCK5rmmuYvfMyd8mvZIwyFQDMPz1ULTdfJsnesSvNtifYBeAJNQVNuSWoFTV847cpzjZLRQe6oSnNe0ZxnPEeUDPTddzx94cxC0+Xvy6BpTo1+pp/Htg2JZhqe8mWjWfRed7kSj7hteFOhfQCe843mKgWcGqxJOOUAX+SvVfVm+jwiEPBE5RkKTZfnqYLmJa9ffc3TPN+jwGhqPM323eDXcZ2g3kbTnJ59HaB9cOkwhCnJgGbn4JQDfYk/3ZnG0lz/6NvYs8AzHJ6zgeDpC6eeGkyjGRc8168V0ZQYPFf4cYs1oGliOiLJPL1j/n9eb1sbTeJK81XAfSHvOWaqbdPbAwGarcNpskbJkH0jPrAm2ObAs6d4VplPs2403/Dxdoe/zDVDGch6m5JrPi6TYfuiKdc0/8sNlsutKqYCf0bJ6dlXFdZ1FTxx2rafaC7yvqXRjPlnl11YyLJw7vMnXbk1ZcyfEKbAE3j2EM8m0IxKoDnlL/N/05t1mZ9HBhCQqcHOGcysKcmqoim9Z11uVdnLqDT1ftJW5Qk8u50VVWledhXNsnAKmuZNfOGDacHCc4p9YK7xlAqoD3j6oinXNDWaRc9X5pqmnMkxjzGnYE1P1A98zH1TlealanDOuSKtimcampI8PHe50sxCs+ntN+Pf45pnP9GUdqRTaJaB00ZTGsQrSnpXLgJP4EnJabIx/1/jOerQNvFFUyrNDzWjaf7uI+NzpvCyRwQyg6ofcUW6xo+tgqd5jj+4Acu6TzMNz00LzZcd2Y525UmEa55As0E4ZRJqg2RaR6BrSjoLSWOJT3fAs6t4+qL5RFWaHxyfsyyaxPB8tRr6rGH0JoyVQW+jAp5mm/zJ/y4a3CDtVpW8SjOued93rTzlscATaAaBM2/HLkJT4ymVp5xmwg4KPLuGZxk0DQyfG0TzyBFNvb7NLR/rFfC8y8v7ktxuObmgZEAUkxOugOOM9RO3uF1nVtWJyhNoVoKzaOfbU2jKfZp5O9wNJTfEj1IaS2T+8FzsGJ6RxzYqg6aJb0egNDTluRcVmh9zlqMqns+4sXK9pcW8v0fq/wuM502ADyx1ZUFVoMATaAaDU+/ku/wGr8lvcIMJ4YI88EwapmlO5Rk1jKfPOLRtoykN/Z98HH5gOIvWdxk8TcN1n36cij53RPMZ//sb/52cstV4xi0cV3nrZkF9oIvQDHUOzWtyn7qyc3CaHWpHofnNodJMw3OE0yLAU+EplecCJafxY7p9/SluaL0X/e4XhebHnqBp47nhgec2f72j4lvKbDTNsl9wg7eXgmfX2jwZtKXpD23Ij315UVWVvUMzC86IDyAbzTKZUnK9E3gCzyklc7suqMozVvtj3dfC+oKmOWb+k4Fm5Li+XfE0z2d65ZqesUWzlqShKbnsCJ5RQZs35g8HIe8pRfzRlP/3Ck1K+bQlB5BMFhpiwPYbVVXg0116AzcvB++MKxPZF1bVh7cZIzNWn0DnFU2pNpd5vZxYrx17rG+zHOZ2kXUG01yTvJ+yD7pc88tDU3LIPx9ztbzek+MPAZqlKs6IP5ku8Zs7CrhTzRSa6AqOylNO2+r7fnXluURJx7Im0JTfG9DMJYovLaMpZ2vO+Hn3+HlvShw7rpXnGn9o/pKx3vcc0JRls0/buoxt29SHJBms5Vqd+SBCPwyg6Qmn7GAazeMacEvrDo7MN54yhJzgObPwNI3apIF1an7/mBv5LqBJqlERPHf539cl13cRniOG7ox+7tFolv1pAZp2uoBnViNOvF/JNXf0/Aea3nDKxKBLlEySW9dOJJUnrikAz5j3t2XeJ2T/0wNn6IOujiqzKTQNUk880czC87wmPM26v8ePPbbQfOKAZtwDPM02XOVlEDQnqDYbQ3N1CGgKnMv8XU4N1f3JKwaewNPCc4X3iWULz5g/2EnX9dhzHbqiaU7Pfm0IzRcWTE3hGSn80vA85fVvkDukZHD5smh2AU97u+kenIImJqVoDk25Feimz2gKnLLjXzZ4ugJ4Ak99FuKGD7SxwlPGO54xnjIIRxxovfUFzTJ4pq2DyKHy/MpYSiNXFc0uVZ4yGbfcv3lN3bxdBmj2BM62pgJDT1vgaeMpc7yu8P81nhsFePqsK42mOT37qSU07WEui8ZzTcPzJmeZo5z1klZ5mucyPXjN0Htb6nGvKqDZBTxHvK0lV0NovIFm+xVnqJ1zk5/T9YCI5wgH4FmM57XCc1XhKRXoBv/8gspPVWZXmk2jKfu8vfyug6CndRi68VgPUQGeMSUdaC75PcYV0WwTzzG/1li9p0s0K0CzC3AKmtLVewQ8gWdJPM3Btc770TpDMVF4bvEBee6JZkS3OwLlnZ5Ne95QaJLHa5bB0zcaT1n3UpWt8DKdBNzGTeIpPYXHvO7PyW3wegRo1g6nrjT1vVFy8R14As+qeF6pytMchNuU3NAfO647Irfes2l/1wSavpVzqFtVTL5zBb6sfvaZ1/s9PsZPKlabTeNplnlfoXlGbmPwIkCzdjgFTakw5ZPvEvAEnhXey4wPwA3eRzf5/wLnNTf06+R2+5QMbuCDpvydjebflH77Qgg0feesDIXnHUaM1Pvc4+W/TMEzxD5YJ54jXmaN5imaD6DZBThH3LCNuEGTT/9yi8EiJRNbA0/gmVVZRSlfNp4LGXju8u9PcnDSaJoZPD41iGYcYP3UjacMzCCV54Q/kJxTMt5sn/A0bdp91XifUthTzcico1kFzhEfXDJZtX3KDHgCzxAoTLkB37TwvFF47vHPT1JQ0/NpmirzcwA07aowNJpl1ltZPDWa0ntWrnkW4Rnq/YXE07RnD1TjfULlb/9BgGZQOGVw7pFq2LJ63QmeMrQf8JxvPMss74wh2OIDc4sbW4HzivHa5EZyZqG5w1VmVTSnKe+jKTRd1qHvIAlpaMqx990Bz5CnPkPgadqYh5QMcHAMNIFmV+CMKBnlZUo/3xaQhecS8Jx7PKssp43ndgqeUnl+57+RStOgeRAYzZiSUXU0mkctr0dXPLPQ1O+vT3iatuWxQvOooW0BNOcQTV84zQG1rNB0HWnIPm0LPIFnmUy5Md228BQ4zfe7/LsdSk7PhkRTw9M1NDWe5zl45qFpH3sueNZxq8oub0MXPMf8fhZ5mY/UhycEaLYKp8xgITMJ+K4gPZUU8JxfPKsu45Qb6m3el3YoGT3nivctA8PanKJZhKcrmm3jee2I55i3hUbzG5oDoNkVOBcUmmXvFQOewDMUnrry3FEw7PEBbQ7s1wNCMwSeZl09VGi+9jj2vjOcGw3juZODp3k/ZqqzJV5G854OU5YdAZqtwCkNckzVx7TVeMoIQ8BzvvAMsXxSee4oPDcpOX1rDvTP5HZ/Z1/QrILnHiUjAgmacc5x1nU8XdBEgGbrcMYUbs464Dm/eEYBn8fsQ8fcqJp9yVx//8qNqDTq1x1CMw70/n2fY4s/UMgyvC9o7KKOVp7mPchtb78ymsRgfsVhDzS7BmcdAZ7ziWcU+H3pWVOID+xTVaFcNIRm2iwn+v3GAdeBz3Poa5onfLy53KriiucpV7N14nnJy7qtvmQyZAPmF4/KGQGavYYTeM4nnlGF95E2v+RTRvKAK04ZJEEGJj8PhOaM989XdLvHZpxxdibr/03iaXcEekn5vW1d0RE8ZbB9U/XfaQBPGeA/ckATAZqDhRN4zheeUcBlFzQNAB/oRw/aI0queUpje0I/D+fni+aU981Duj3GbRxofZSpRn3RlGuaRbequL4vGZXnrnrOuzXiabbpY0rm7o35w9IEhzjQnEc4gef84BkFeqygucdoytizM8Zzj5IhIe2h53zRnHDjbxqT55Rc549bXEdl0ZTYeNrryHU7TSiZgeQFH7t14Gka7d8puaZ5wv/e5PcBPIHmXMKp8VwAnoPFM0Q1pdF8z2jqXt9TBlPmkdxRMJRB0zzmAT/Hl46sn7zHFqGp8TyriGfEf3OPG9V39ON0eUg8TXvwByXTnX3h7X7NcEonpWmJqhkBmr2HE3gOG8+60CS6fR1xkeE44n1IblUxDex2CTSnDOdnSq6Xxi2un7y/cUXTFU+XTCmZKPobr/dQeNpoflbbXEaKWuevi4ztiQDNwcMJPIeLZ1U45dpkHpoyqLs56F/Sj2uScs1z2QNN01D8pRqQO5RM6hy3vH6y/s4XzSI8fd7nFq9fGaUpC0/zM9cB8FcYzaUUNPWyX/OHojXgCTSbzKiDy6QHj1+k5FYDl8w6UF11OXHFhroNXHWHnvcpDahs631K5ty84i+7V+1Hyr4feV810lfW8TGjek//xRX+TqNpepq+8nw+c0vJc/737wyRTyb08604Mj3ZfT6eP/GHnv9LyTXotJjj/dG/X/+fQvOAsiceP2OMIwacCKdpgeYcVpyoPIf3galKh5c0NNNuTxE8TIXzhn/2K1ecep/YpuxTkmeU3Gg/YXTH/NzH3LB0pTK3q2QTc/3vbcnX9Z2SzF6GEb++3i7fuWHe5+f+yLjtcwW6QckYuAZTMxzgY/7ZlJ/ncw6aUu3u8OO/UrhBWoAm0OwlnMCz/nXbFJ5l4bTRPKDbt3DYpymlcorp545ALyh9bFu7cpJh/Hb5/6dcNV1R2PsSu4RmVTwf8RmitBlJNJ43vB3kLMAqI7nJ1eWEq1S5Nm2294cCNO+oivYG1SbQBJzAcwh4hkRTL7c8RqP5TwaafzMA+j7PPDyPFR7XlFwuaPJme5dbTkKiWRbPVf5g8YXSB5uw8ZTK9Ii/f6JkFpvvXHWuOKC5zc835b8HmkATcALPxvGMqL3eolkjAu0FQlM6jEw98DxSlecZV0VFY9+2iWbIa9c+eD7khtd0Rso7TWrjaVfvZnv8hx/zyQHNu7ydPgBNoAk4gWdb6zaqAc860IxS0HzugCaVxNM83zr/nTmteFhzI+2L5psS69xlf3AZYWiNl8WsE5c5MLPwNNvhT8dK02yve0ATaAJO4NmlyjPUqdvQaOrH22jOyH1wAxc8Y+txMpelzMBS11RiVdHUz1M06HzefiCPy6s8Fxk78/gX5N4px8bzQqFZVGlqNGUQBKAJNAEn8Gx93Y7VPlGlUfKF0x579iAHDxc0ixryNDzPUhoQjeeYG5y68IwCoJmFqMvrpB0faXiadfsfboifl2h0NZ7mQ9KSA5rmte/zsf6OmjllDjSRwcAJPOvNjNfpIq+rMnh2AU2X5bbxzBo9p208y6Lp8zp5c4XK/bCC555C87Tk65vnu8Pr06zzVzkf1jSab1PODCBAE3ACz07gKacmifzujWsCTZeOQK6ZcgW0WxLP7zXjWQea9uu4nMa95kZWhtczp0q/lXzdRa5YF7gxX+PXTkPYvN4DPrbfoNIEmoATeHY5E0qu6ZEjSH1Ds+t41omm6/YTVBd4nUt7IYOr+0ImaMoQfS/433dS8ASaQBNwAs/e4rmq/l8Xmp8o+zRlHWjGVsVldwRqG8+7DaOZtg01mgY7cy3yOVeaZUYYsm85ec8/P1J4jnhbazRfpzT0OE0LNAEn8OxsbrjBXFP/txvbMmg+odvzaTaNpixHnIFim3i2gaa9nbLQlHtZi25VSUPzT15XGk15rWN+jTv8mD1ez6/Q0ANNwAk8+5hrbtQ21P+Jys14koem7zB6VU7PZqUqnlU7DLWJpv1hIg1NvU+44pmHpo7Bc5M/pJnr6i8yGnpUm35oEtAEnMCznVwxDFsWnj5omsjp2Y8eaJa95YRKNrpt4Wmj+drzA0rI5KHpg6c9uMH7nO1xh59nxu95xusdcUNzKQPNa6AJOIFne7lgGGRC6MsCMO1K89fAaMYl9o2uVp5ZaLYBpwuaLnj6ovmIj9UXfNzu8Hs/x6HnhKZMpQc0ASfw7FCkEVvmRm2RknlT86pMc1D/xtVqCDTLXtP0TVN45qFZhGcceF/1QTMLzzPedlkjAtnbQ9A01dJL/kB2wsuwDTyBJuAEnn0FU6+LM16nuwzoiBvKqXqc+W7GeL3HKBhk31IyZ2PX0WwKzzLXNKMOoanx1CMMbVFyTdMXTckJ7zdb6owHrm8Czc40ikP/YLDK7/OG/CYjHqmDPca+8FNWueFfV3875fW2wN9jxuMjH8x9QlPHIPh/uCE3y/dPBiz6cSZmAPRXGcviUmn6bLMqkMpp1WV+b2VHBDIdyH7n5TiogKbOfd7HvvH6RIAmKk5Unr39ACUziBxx4zdhVG64+vhKP8YV/W5Vo3WjWceHnNCVZx1olt2WodCURvuY183nnG3hiqac4TAfRDb5vV3SfAdoAk7gOYCzDjE3ZqfcaB7zvy/p5+Hc+ohmaDxDoKm3XVxhewqacnr2NMB6mhTgtkdJR6AiNDWeC1zRzjOeguY10AScwLO/aLoOfmAD2jc0Q+G5GBBN13Wdh+YfvFyh0CzaFgbNh7x+XNGU57vgZZZLA/OGxKpCU8b4BZqAE3gCTW80Ywo/AXdZPG+sdZKG53ZDaBZtI0HTNMQvHNB0wbhoGwiaUmleeRx7EsFzbc7wXOUPXRpNabsxuAHgBJ5A0wvNtpJXeabhKeOwEjdy/7S4rccKzZcKzSwc8zB23Qa7Ck2fYfTSnv9S4Uk0/MHf0ypNjea8X/MFnMCzF3hGJR8/FDRl+08c8TSV1o5V7dU1n2fRBxjz2r8rNM9KbmOfKt+sl7wB28tsX8FzdeB4CppXQBNwAs/+AtoFNLuyriLKnwzb/F53BPqm9rc6J8POio3maQkEfWPWi0xC/SYQmqQqd8EzGiCeaWguAE3A2QU8ZeqsecWzj2jGHVtXWXhu0c8dgWTez6bxNPv4H/z9FYXtCJSH5j3ym0/Td9valefNwNGMgSbgBJ79gTMEmiGmBos7up5sPM3pWd0R6A39PO9nU3iaffsZL9crambg9G2uts2x9K4mNNMqzyHgCTQBJ/AcAJxA0y2C4h4lHYGOGCv9PE3iqdF83RCaW7ztzTH03gHNENt1KHiuEU7PAk7gOYhqswyybaEZ17QdXJ9Txu+VLNHt+zxlPzHv+zs/1uxvKzXgucjrfIEr3ibQ3ORtb97fBwfAQn4YEjxXKBlicyhoXgNNwNllPOelwxDQDL/OzPu2OwJlDZKgT9vu1FB5LlhoNjG7iBnV5w4fMx8VXE2eKbjiDwx9w1PQvASagBN4DgNPoOmHpnQEyuptq9+T4LltVZ7HFdF8yt/fNojmLh8rBwxWW6fWBc++nLa1K811oAk4gWe/4fR5zB3Go200Y49lrwPNNwpFfTp2h7KH5zNQbvG+JuORlqk8Bc0xo3nRwH60zvCb9/G5I1D15ZqnRvPCQlMGcUcAJ/DsEZw+owPtdwzNUHC6omle9yv9PJ+m3dt2h9dFFp7bCk/fynOBl8Xsr+8aQnNNofm1Y0B1/T7PNd7GdqUZA03ACTz7W226Pq6LaIbA0wXNX/jfaWjaeG4pPPMGhteV5wYDWLTfmU45j3iZ36egWaYKL9oOa7ysZtkOPY6NNvBc6xiegqZ9TRNoAk7gyQfrCGi2gmaIqjNyQNOcnn1b8DwTq6LcLqg8t9S+s8dV08jap5b5ee7x468ZzSuHDxNVrz+uMupyOnrS4WO4a3gCzQEkwipw/oCxphpBn9NgI17PM2p3jFWf7T4UNENc74wqoGkvm2kwf1cN5UtKH8XHXPd6xvvdGf9f/iZWzytzoZpK9aTEuiwTUwmv8/58TN0fJlGyzct+Rs2MnJSWdd4HLujn3rOXQBNwDhlP6ebeZzyjHqOpl9EFzZCVp3nfjxWa70q8J4PgbwrCrNF8zOOko89nBeiYkvuOL611XPe+tczHwIy3/bRnx/A2V8unLeCZh6Zc50R6hAHi3mibhqLsIAmjjnxQ6RKasef6L4NmqA+IUmlKR6B3OTjnva8pV4dyLXOLG9ObjMdtcKN7w5WlVCY3VuVZd5a4Ypsx4tMeHsNXfOzKZNhNnbYFmoATeAbAs+nJl30AiYBm6vuWSjMNzbzXz8Nzg/eJzQw8pbJb58Y2thrZpvahRW74Z7yNZz0+hq+ss0d14wk0ASfSYzy7gmZcYn13AU2pNN8H2m42nlk9aAXPNUpOkzbZ2C7wvj7jhn42gGO4KTzT0FwEmoATeP5oWPqAZ5UOQfOM5iOr0gwZXVEKnpcZeJp1vMpf0gOzifZBrqleU3c6t/UBzyw0Y6AJOIFnMiapWZc3Hn87zmn0m4YTaP6cO6rSPKwBzbSKMuIGV+MZW3iu8BdRvacZ9Qe76cDQrBtPQfMSaA4z6FUb5sOHdDa4Ib+xQRdUozhraTv7oGnydE7Q1JXm+wb2I7MvPOD9yewLBxkN7AIvn3mf5lTvWc37SzwHx7D0tj2j27f1dL7SjON52DyAc+h4jvhTqy+ecqvKtIVtXHST/5lC8xklEzQPHU2pNN83uB+ZfeGewvNLRkMrY9+O+EPNBQ7BIHhWvc+z8dOzgBNwDgHPDVV5+lQCi5TM0xjyXs+yHYL0LCfP5wzNhwrNDzXsJ0UzuYx5/Y/UclxlPG6Tn+uccPN823i20nsWcALOoeApjdm1J55LCoQJVT91GwpNszy/zQGae4wm1Yxm3jaIVeW5x3ia/eA7pV9/G3GDTdww3+AQrJwtxtNgd+JwHMo2WKQWRgQCnIBzaHjKaVufT67LlPRivKHyY4ACzXJoSoX3sSE0i/ajHYXncQaMMm4tVdxnkCRrjGFMtwec0FnkD7tL6ti4pobHngWcgHNoeMrIMFeeeK5an1ZvatimQLM+NOPA+9GmwvM0A8aIkmtpUxrGvZZtRwaGX1LbdZay38lp2Bm1MGA74AScQzzwNJ4+vfXWrU+yVwG3Z9pj9CTU84bmA37ub55oug42XzVyKlDWwXnGdtC3j6A1Dbv+5X5t2d4z/gCjhz1cp+QWs8ZmOQGcgHOoeG4rPH0mJjaVhtyvd0LZnQsiKu5wAjTDo9l0472iXnsoI/gMJbrSvKYGO2oBTsA5ZDx3LDxjx21jKtZV/r8Z4PuiwvbLQlNuOZlXNM3p2U8dRlO/b33a8AaVZWfQ1JVmo/N9Ak7AOXQ8d/kAu/DEc5fxjLgyOgOaldG8ryrNT47L2pXp4MZqWaY4tFrNqlVpNj5JNuAEnPOA5x2uPC+4gnTF8w4lw4J9Jb/bXIBmNTS7ftyi5WwPTd0D/rqNhQCc7WSEVdBYTGeCQz7Q1rmSdMFAZuW44APVjCyzATS9szsQNGX50AmovaxQ0tO5lUoTAZzzlBtGMOYKci8FhSjly+QLY2e2mbk+t5kDTwQ0f0LzATd0fUcTaTfLlIzqdEMYdAJwIo1Vnl9U5XmnADudA4WnufdwywMZoPljBB6giYRA8xpoAk6kmUSq8vzMB6A57brv8Rym4T/lbfdYwQc0gSZSX/SQmBihCXAiDaNJCs9PfCCa0673PDAy46ie8PYzIO4UoPmE5veaJk7PIlUjkzDMgCYCONtDU+P5UeF53wMlM93VMW/DJxl46vk057kj0AHQREpGT/s3IdwChADOTuSaETQHprlm+dAD4rf047aWKAXPtKnBgCbQRNwjAxtMCWMAI4EbKiTMul5i/MwnXHMa9oPVsEc5zytomn+/5gN+HufTBJpIyKJCj/3byf0F93ECTqzvH732njKex1yJuoxDG/Hf7aqfAU2giVQ/Tju9rwDO9j5VIQ3u5wW/v+KKccoV5GNyHyThNaMo+QY0gSZS6VjFvoKg4uzJ+o648nzGlae5hvnW4e/kmqbpwLDIPzOjDa0CTaCJDFR3VJyoOIHm/z7GVJ4v6UdnBAPDk4y/jyw0zenZ/6eqTaAJNBEEAZxzU9kbPF8wdml4ajTt+zTH1nN9AZoIgiCAc2hopj3ukjEUPJ/S7aH59H2a//DPnlEyFJ/cqG3+bi/gewKaCIIATqS2VG240/AUNM3p2SPK7j2rT9v+GghPoIkgCKohpBPrOir4nZnK6E9KJsNeYzRfZqAp1zQjRlNuVXmpMPUFpkvD6H0HmsjcfypH5yBUnEAz93eXjKFMSWaG63tVgKYA8opu356yWxKYCGgiCDLvWcAq6FVVv0HJtEbmlpMnXIFuWWjOUiB5pQB6xsv1tewHXaCJIAgadaSt9Rs5/k5mOTEjCpnh+P6wPvikoZmGmD5t+4Z+TG8GNBGkh8Gp2naCU7U179eBnkejaW5RueQviek9+08BmvKzl5SctjXPebfjaN4DmgiCAE7EBxeZhPqI0TQxs5xsKDAW+DGuiJTBsy00Y6CJIAjgBIyuDb6geUxJ71mDpn1N84ah+dWjcjTPd+iIJ9BEEAQBnJ2oJvMes++Apjk9a0YM+ssDz1h9f+WAZ5yx3EATQRDAiXQGVlNpmplR7Ps0bTTllpNrBYyZVWXsUXnaeO5nwBRR/u0oQBNBkLkIbkfpLprHdPs+zSw0Tfb4b0xeU/G4tGl4yvPIyERfcpYTaCIIAjiRxmCUhj/tMQauR4zma/7ZrwpNGch9akH7hP+tq0cfcGJV2dp45j1HqNuZgCaCIIAT8YZVqsaTDDSl0pyloCkTWZdBU6cIT6CJIAjgxCpovNp0qTQjhmuTf28wfWHBIT1uQ6FZhGccGEyNptyn+RloIggCOBEXPB4wmm/4Z09VpXnKaM4UWjaa3wIvU1HlGSI7QBNBEMCJ+FZjguapheYmY3HGiM0UINJ5yAfNqAQ+L9UyPgmMJ9BEEARwIqXwuM9ovuWfPbHQfEU/X9N8zD97w+i4pCw+L/lv9wLiKWjGQBNBEMCJatP1MdsKzXcKzQ2F5msLTbkOGjugGRIcPauKnB4uO6sK0EQQBHAizmiSheaZQtOAtM7/ltO2aWjO+G++Z0BT5pSsK56xwpNK4GnQvMvv4QhoIggCOIGmK5r3GM33/LPHCs2zFDTlOqigeZQDTZ3gvFYAyuli105JgqZUml+AJoIggBNouqB5l3H8wD97lIJmnIJmzNAetQzNa369bYXnkeP7BpoIggBOoFkKzY8ZaL614JDOQzOG9rgjsLyx8KQcPOV9C7BAE0EQwAk0C7Ol0PzEP3v479eaQvOdBYec0hU0TzoGiyC/xe8lZtiz0DzOQRNgIggyWACQcmia2UYuVKX5UFWa5ufvM9Ak/pvjDq8LUzXL7TMCPPHPpPesqTS/Ak0ECZ84xiEEOIeJ5rmqNB8wmpFCU48IJFWaoHnSg3XywMIzUmgeA00EAZyAE+vKFc07jKONplSaH+h271ndieagJ2hKzLXYDev9AE0EAZyDDK5xho+pvva40jxQsKwyGHLadpYC7Yz/5rTMMWThHjf4wegTL/uGqjQPASaCIKg4sZ5c0JRKU6O5pirNTylo7jMqnyugqZc1bml771ByXRNoIggqTsCJdeRUaV5QMirOPYXmZQaadxSaZ55QVh0pqIntjyMbQQDnoIJTteHQ3PVEU6A1P/vigGZcA0pxjZjiiEYQBHACzdRsKDTlXkXTyUeuaRo0D3LQ/FqAZt8AApgIggBOoJmL5l4KmrrSTENzV6F53jF8ynYqApgIggBOxLvS3E+pNGPrb6QDTRfRBJYIgiCAs5ZqU9C8zEDzKgPNXf7ZYcfRBIgIgiCAsxE0KQdNU2nOGM0LYIUgCAI45wlNA9/XFDQNpp8p+/Qs0EQQBAGcc4/mCiWnZ200zRB725RM+gw0EQRBAOfcoLljoXmH0aQcNKXSTEMTYCIIggDOQaIpAF5aaK4WoKkrzUugiSAIAjjnBc3dHDSlg1AamnJN8wpoIgiCAE5Umv5oAkwEQRDAORdoHio0dUcgG01zHdQM2i6nZ4EmgiDIADMCml5oUg6am0ATQRAEcAJNdzRjoIkgCDL8zMup2rJo7ik05Von0EQQBAGcQDMDTT32LNBEEARBBn+qtmqlCTQRBEGQuak4Q5yezUPTdAT6DjQRBEFQcQLNfDQ3gCaCIAjgBJruaMZAE0EQBHACTaCJIAiCzBmcQBNBEASpPUPpHOQ6NdgW0EQQBEHmveL0QfMKaCIIgiDzDCfQRBAEQQAn0EQQBEEAJ9BEEARBACfQRBAEQQDnENDcBpoIgiDIvMPpgyZuOUEQBEFqg7MPeAJNBEEQpDNwLv/7NQaaQBNBEARxg9MgsdRRPIEmgiAI0jk4rzqIZ+SI5ibQRBAEQdqoOAXPLpy2jRwfZ9DE2LMIgiBI43CudQhPoIkgCIJ0Hs5lhecl/9wA1OTMKa6nZoEmgiAI0jqcI0ZnnRG54O+rDeEZeTwWaCIIgiCtwzlVeG4oPGdciS52CE10BEIQBEFah/OY8YwsPM9rxrMqmne4KgaaCIIgSKNwGkSOFJ6rDJXJGeNpAFoKCGZZNL8qNFco6dQENBEEQZDG4KQCPE8ZT/P/5QarzCI0UWkiCIIgrcFJChqN5xb/Tk7nbim06kbTvNZODpqXQBNBEARpE07B5RslHYY0nqYinXAF6ItnGTTN61wATQRBEKTLcAoyh4ykDJCww78zIN3w/1cdsPS9npmHJjoCIQiCIJ2EU7D5ykim4WlQ3eWfRxlfZSJoXqagKR2BvgBNBEEQpGtw2nhGjOSuqkhv+P+rgZZFo/klo9IEmgiCIEhn4UyrPM3oQnvWz+8wqlXR3LHQ3FdoXgJNBEEQpA9wmswYLak81xnLmH9+XRFPQfPCQnOlAM1NoIkgCIJ0EU7B8zMjaeP5meHaZ9B8sl0BzRnQRBAEQZqOb0ceA+09SkYROmfYzHPcpR+nVs8o6UCUFTOE3y4DaZ7jK9BEEATxSxyj2esDnILnfcbT/O2pwnObv4iryAsG1NwXOmYwVxlHg5+5N/SY/9bn9Ow3oIkgCOBE09cXODWeMgTfmYLO4GiuW65R+oTYE378Cf9b0NS3nHwGmgiCIIBzSHAKng8oOW17llIlGkQX+DXMz2/o9ilcoIkgCAI4ewen6eRzWBFPqTxPU/DMe22giSAIAjh7FX1vZpmY65QfFWgbjGFRFQs0EQRBkN7CGTNSIfG8k4Mn0EQQBEF6DecBJZNVh8RzLwVPoIkgCIL0OtI5yHTwuceQmuuUhymPc30+3dv2hJ8rpuR66poDmrhPE0EQpCC4xtlexWlynVN5+vS6NVvxk1V5yn2du0ATQRAEGUrFKbErz2+qWvR9Xj3C0BVXoea5MGA7giAIKs7BwCl43mU8zxSerhVorKpZwVN+BjQRBEEA5+DgdMHTNSN+niWgiSAIAjiHDKeN5ynDFpd8DTP0nj3ou7l/VK5pHgFNBEEQwNl3OEPiSSloSqUJNBEEQQBnb1I0H6fpbWt6v04Zu53AaOL0LIIgCDIoOAXPL4znWkU8BU255eQaaCIIgiBDg1Pw/MrglcVznb/kmua1AhNoIgiCIIOCU1eeBj4zZN62x9+u8VcamgiCIAjSKzh98LpRlafBc8sRzXV+nWOgiSAIgvQ5UcH/s2ImqN7lx5v7PE8zHrdqoXkDMBEEQcIEvWq7AacPngv041qnefw5A2qjKWPTntDtjkAIgiAI4Oxl0q5xunbWMQMamJ6xM1VZSpb5ZzOgiSAIggy94vR9nKk85VrnBSU9b2OuQoEmgiAIKs65g7MoBs9Nfr5YoXmDVYwgCAI4AWc2nnK69hxoIgiCAE7AWZwRP+cUqxZBEARwDjH/vwADAIwJmIPBYjSmAAAAAElFTkSuQmCC"}},"time_used":39,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":26,"receive":13,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/danis.jpeg","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.365Z","timestamp":1785129413365,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/danis.jpeg HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:53 GMT\r\ncontent-type: image/jpeg\r\nlast-modified: Fri, 10 Jul 2026 08:17:46 GMT\r\naccept-ranges: bytes\r\ncontent-length: 4494\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":4494,"size_decoded":4760,"mime_type":"image/jpeg","magic":"JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 402x164, components 3","md5":"955995a9fd2f55615aa940802627b6eb","sha1":"c10d870f867ac7be7c172be7e5b927098b59cab1","sha256":"e6d630ed21a5077039ed97c4cbfee2b718c41310464ec0b92e443f2e639c17a9","sha512":"be710414ee0de82c535e5343e21af64bda4f7a0d86a40efdef0df344e61414cc5732402d9b968a119865fcaabaf870e80ea6fd9a90abb58997f6c56228429cd5","ssdeep":"96:H22MUxgrdhwnTlCJY1YQ2CTRV28WjFAVTptGp:W2BgrdhUZGYWuRkTjgltGp","tlshash":"50915dc7570da112ed3537378cda0fef7b788e587a2186a3f55d026829af264c8941e0","first_seen":"2026-07-27T04:09:44.010427Z","last_seen":"2026-07-27T10:24:20.313193Z","times_seen":5,"resource_available":false,"data":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAoKCgoKCgsMDAsPEA4QDxYUExMUFiIYGhgaGCIzICUgICUgMy03LCksNy1RQDg4QFFeT0pPXnFlZXGPiI+7u/sBCgoKCgoKCwwMCw8QDhAPFhQTExQWIhgaGBoYIjMgJSAgJSAzLTcsKSw3LVFAODhAUV5PSk9ecWVlcY+Ij7u7+//CABEIAKQBkgMBIgACEQEDEQH/xAAuAAEBAQEBAQAAAAAAAAAAAAAAAwIBBAUBAQEBAQAAAAAAAAAAAAAAAAABAgP/2gAMAwEAAhADEAAAAvigAAAAAO9TLXDgUAAAAAAAAAAAAAAAAAAAAB3tbnGu43miPJbodKZbsjy8sayJoAAAAAAAAAAAAAAAAABrlrllLU7wxsB3m0KOmM6lqXmLylyM67aNNZ7LeBeVLI9M6pneNYzvG1laNpUiXglAAAAAAAHUp3s+mMDn0AK91mO9ZKDpzlnWeXWydt487Wee+0nTU5jeDfXbMc1mWjO9ZlvG5ZazvOtxpmzIzoAAAAAABvFLNwtGwM6At3nevLmN4zqg3iWaa59JWNZxOssa7WJayCs+CuMjepDW5BSYtLgCUAAAAAABWVLnsrRrve1I8vEp3nd45jeM6qc1idOdmu450SrLOjtpYFiLWyTtSLXTCmki31ZrYTBVZLSOCUAAAABvHUtG8t55aNA72zPeaszjeM6rjvbOx3LNXlapz7zGu3hbeZVxslvGyd4VjDWTudaqNMbzc05zUnaO83KklCUAAAAACuo23iVe5sYzzGvRnmt45PeZrbuLJlcb7zUdZ4Mb7SdNZ1nudZzvG5Z0nSXuOrGdaI052UzRJdzWa5mkrODOgAAAAAGsktLigl7aG7nfe56Y5nfZc65MZOewUAAAAAAAAAAAAAAAAAAAACqS5tjACaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAv/aAAwDAQACAAMAAAAh888888zz8888888888888888888888jVAChX8888888888888888888/kc87d6Y8qMiUP9oa8888888895888p98B1p8G8N94c888888888W888o94Jf+cMeu+8c88888888v0AE8oDRV8648w8z4/4w888888rgoC5oGXpfp69H/t/N/k8888888Clnb9Z4+8oZ9Uxp9Te28888888tM8LV95/8888888888888888888888Pf8888888888888888888888888888888888888888888//xAAC/9oADAMBAAIAAwAAABAAAAAAA00AAAAAAAAAAAAAAAAAAAAACpk4z14AAAAAAAAAgAAAAAAAAALMACLx2sDo+G5P29AAAAAAAAAMkAD+Dz1kOj1F3L31cAAAAAAAAKgABcPzPkHzGGywxE4AAAAAAAAWmMdcMfZqHg3IYn9acXcAAAAAAcatpINJcIqhpUP6oO6PYAAAAAAABJ4cj7VYDuZWtiyDsygAAAAAAANIDoR/2EAAAAAAAAAAAAAAAAAAAAAD8uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//EADARAAICAQEFBQcFAQAAAAAAAAECAAMSEQQiMjNCEBMhMYIwQFJicrHwFCAjQaFQ/9oACAECAQE/AP3BWPksKsPNfd66Ws8eFZpRT5w7Uv8ASwbUv9rP4LvqllBTxG8vulFWZ1PDLr8dxITr2IoZlBn6aqJdo7I0vqwOS8PZSxWqxhLdGSt8d5psx3WPxPFGlyj546/z1tKufZ6vvNnA1Y9XTHszVdV3vYganQRz3NOg7V2ZiFOUCGu2sHss43+uVN3teLRgVOhlfIsj8iuIoFVerY7+UYabR61gOVrD4Xz/AMlXPs9X3iBxvL0y0B0WwexoGtqzajvKO2vlr9Et59fYaXd2I4c5XX3R4uKXjS1pXbgGGOUew2ecawsFHwxrSzq+PDBcRYzxbSrs2nFEc1nUR7S408l9jRzVm08yVUrYupaW0rWuoaV8tfolvPrhOniZUuOTnqiutj1Y/NNp5srqNgYhpXWbDoItZZmXXhiVGwMR0wISmcWgsqtlBVrZhlHoZRqGyiIbD4R6ygU5ZL+9GxZTNqXVVYShgtXrgTXxfqieAx+GW8+uHffHpXjm0Wa7gmyrxNLGydjNmOisZUMWs+uVc+z1febM2K2Ex1xpsHzwVmyisCUDS5RMTWlxbqlLgFlbhaWIybp8vYUOHXBola0BiWj3uz5DpgbNVdZZq11eMc90uK8X54xENjaCWuKkwXsr5NkJBanTq3v8lXPs9X3lXKujNls+s7s2U1gSpSl6qfzwi76XLK1V8geLplu7WqFt72CsVOollrWefZRZg2h4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"}},"time_used":22,"timings":{"blocked":0,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/nav-tool.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.707Z","timestamp":1785129412707,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/nav-tool.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 318\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1086,"size_decoded":554,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (1086), with no line terminators","md5":"e28a1be506d3151bad02d20a7751f09c","sha1":"d0a106cd4d593b36c86c3740d26b6d332c740207","sha256":"e35de31330187c0f62603f8b770e2969cbc3fe0d885aa02c7dcdd6fbe5134691","sha512":"e7faae5c7937eb0e2569b90d0dd804b6f0a5c72d30f148770f36c5bde1fec88fe412be41416f91d1caf5fdf6a07059a31119673bdd003ec9f70789eeb9c84455","ssdeep":"","tlshash":"ae11aa68b830e2fd01fb631930139e40c23a0dc5ca2c1d95982019882e6bdcf41eb7fe","first_seen":"2023-03-07T12:02:54Z","last_seen":"2026-07-28T09:09:16.706499Z","times_seen":941,"resource_available":true,"data":"InVzZSBzdHJpY3QiO2pRdWVyeSxqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKG8pezA8bygiLm9mZnNldC1zaWRlLWJhciIpLmxlbmd0aCYmbygiLm9mZnNldC1zaWRlLWJhciIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbygiLmNhcnQtZ3JvdXAiKS5hZGRDbGFzcygiaXNBY3RpdmUiKX0pLDA8bygiLmNsb3NlLXNpZGUtd2lkZ2V0IikubGVuZ3RoJiZvKCIuY2xvc2Utc2lkZS13aWRnZXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxvKCIuY2FydC1ncm91cCIpLnJlbW92ZUNsYXNzKCJpc0FjdGl2ZSIpfSksMDxvKCIubmF2U2lkZWJhci1idXR0b24iKS5sZW5ndGgmJm8oIi5uYXZTaWRlYmFyLWJ1dHRvbiIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksbygiLmluZm8tZ3JvdXAiKS5hZGRDbGFzcygiaXNBY3RpdmUiKX0pLDA8bygiLmNsb3NlLXNpZGUtd2lkZ2V0IikubGVuZ3RoJiZvKCIuY2xvc2Utc2lkZS13aWRnZXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxvKCIuaW5mby1ncm91cCIpLnJlbW92ZUNsYXNzKCJpc0FjdGl2ZSIpfSksbygiYm9keSIpLm9uKCJjbGljayIsZnVuY3Rpb24oZSl7bygiLmluZm8tZ3JvdXAiKS5yZW1vdmVDbGFzcygiaXNBY3RpdmUiKSxvKCIuY2FydC1ncm91cCIpLnJlbW92ZUNsYXNzKCJpc0FjdGl2ZSIpfSksbygiLnhzLXNpZGViYXItd2lkZ2V0Iikub24oImNsaWNrIixmdW5jdGlvbihlKXtlLnN0b3BQcm9wYWdhdGlvbigpfSksMDxvKCIueHMtbW9kYWwtcG9wdXAiKS5sZW5ndGgmJm8oIi54cy1tb2RhbC1wb3B1cCIpLm1hZ25pZmljUG9wdXAoe3R5cGU6ImlubGluZSIsZml4ZWRDb250ZW50UG9zOiExLGZpeGVkQmdQb3M6ITAsb3ZlcmZsb3dZOiJhdXRvIixjbG9zZUJ0bkluc2lkZTohMSxjYWxsYmFja3M6e2JlZm9yZU9wZW46ZnVuY3Rpb24oKXt0aGlzLnN0Lm1haW5DbGFzcz0ibXktbWZwLXNsaWRlLWJvdHRvbSB4cy1wcm9tby1wb3B1cCJ9fX0pfSk7"}},"time_used":27,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":27,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/trustguard.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.731Z","timestamp":1785129412731,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/trustguard.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 1352\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1352,"size_decoded":1617,"mime_type":"image/png","magic":"PNG image data, 115 x 57, 8-bit/color RGBA, non-interlaced","md5":"2b154980509628fca8ff65389d7380d4","sha1":"e1c3a497c4cfc9b433086085475e6e764ff99172","sha256":"e918e8ca37e026f1f137e90f23560edd5d5e3455e634a271782f16e0a187048b","sha512":"fb5379489a8eaaa9b00228fc81634cc83c943e49b7ad1e94c1ee3764049ba38b17c942b418fd82110a1eab5e38183eac6eb4f50d8d566c6322119d84e9d0f3ed","ssdeep":"","tlshash":"3f2108d817c561b8e28dbf115dabe847e523919b8b8305a801932cf4d20878eb091d29","first_seen":"2023-11-06T04:19:17Z","last_seen":"2026-07-27T13:36:13.679638Z","times_seen":88,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAHMAAAA5CAYAAAAFgBTsAAAACXBIWXMAAAsSAAALEgHS3X78AAAE+klEQVR42u2aa4iVVRSGzzeO4xRlaeZl0AzLrtpMozaFZVb+iMmgMUKSiEy6Ukk3tSiLknJMyLKi7I+QP9R0MMM0p8zpQhHRBUqbREFLu9hN/JEzlqd3Ne+WxW5/E+ffcXo3PHznrL2+fVnv3mvvOVooFosF0TNQECSmkJhCYgqJKTGFxBQSU0hMITElppCYQmIKiSkkpsQUElNITCEx/59i9oQyYMBgzzQwD5wU2QN9wXQw39tVyk/MKaATpiKe+8BG0AzuAnPBCrCzUKgs0mexxCxPMa+CSB0mUingvUUSs7zEnAQOC1nsOkBKEfRJRbF8xJwI/sTHAybO+eMnmEDdEon5lKJYPmL2Ah/h46cUJ0dAOyuzWMhDYGxPicU7YDNoBev4bAOvgePpk4FnwHr6bqbPBvAAqHTtzab9Qme7gLbZztYLzGF/77K998AacILza2b92xzfBvZv4x7lzswV+Lg1JWa48OSk2L2gH/vqDxayj43gTT5tjDPcmC4Fa8F90XwWgxZwciLO13D8lyTqhoGVbPMNYrFeBiY6v+FgtdPpLfAKaAoOn3FF/8gJ/sTvbZxcKNtZ/wHr2kJaA7XObx1t1znbVNped7bTadvJAbYQW0QXOb/nOcZt9P+D4zNbnRNzKT5+FcTsTsBIzB2gmn3dRns7+JDBCixwY7qdfuudrTfYTfu4OHmAn0EH51Ed1Z/L9/aDL8kW2j53fvW0fecWWfBb5Bu8g8Z7c3bw1+AHriJbyX25Y+ydBue3irapznY1bSudbRRt1sadYCafkxmYuNTSf3kizWbAds5LXT5ZKZefXeAol1XMPgZUgRvAjeB6cIXr8ib6tURittNeHw3xZcbP5mBn+9yo/hy+Z1nhRHAcs5Mtjh2JGDwcvb+c9sNlJg2zcsTcyl1kE9wL9nG1fcyVF8pqttPkbFfS9qqzVTP4Wzjg7Wy3yODFZUxiQfgzs4qLoZSb7Ld47wuXZmfRPhrUgF/Ab263hnJzYj5hwcdi1tHWzHYthXdGqdiL+TRju5vxXZIQ89Go30diMe+mYU6OmN+wcSvXgr/A+2Bg5LeG7TzEHdvANousC6WKdZfxDLKz4UH63Z/ofxzrVuX9aMBdVIqYrXhvrduZYZzTuXgmgUYKus11eSv9NlE48z2Pi93sY91dYxNjZVntV7AnsSiDSPO4yMOGeCwnO9nRcyqPqsk8ItvjNGs5/Z5EIDPm7l0gTLyRK9dy91DnO4OT72R7AbPdEu3MVtYdcOzhhSku9axfliNmA9Pk7yWIuQTvveB+NJjAgIf6g8Tm8lyUJb4Hh6L2TLRPeAxZmUb7FGavQUyjj9N+Of1G8/t8F+8XGZsFLua17PMgY9HBtG33mLN8TOwMHMlnqgzlbSpztkHsoF/kO4RteYYk2jwGnMZVFvz65/RfRb+BOWIOA0/g67NdgbELUAWfMf8EDhecyoV4pzH6BaiGqTFgl5MzonkXKEot64Of3QOOdj6ngLMTc6ngO8P5vQ/bGpw4S8c7Matpq+Pirsu5OfeI32YxucoRvNp392OB7aoGfL+Ylyf9sV6GYvLszI4NZ3dCSLts1f/7HZWyFNPIst4VvFDtd2eaXeFrUv4qZSymE+lM/gnU9B9+R37Rv9Drv40IiSkkppCYElNITCExhcQUElNiCokpJKaQmEJiSkwhMYXEFBJTYoojmr8BsuqYDCHGY/wAAAAASUVORK5CYII="}},"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":"danis-miners.com/css/color-switcher-design.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.482Z","timestamp":1785129412482,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/color-switcher-design.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 808\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3123,"size_decoded":1116,"mime_type":"text/css","magic":"ASCII text, with CRLF line terminators","md5":"984608a46e2ebe4ba81fe01c2d8581ff","sha1":"ceb9c63c95c8c440a9f1f70f6d0edab828a56b42","sha256":"cb68eb7b799a4a4f0f2d684a9b15fe668129efb44a234d4e5f1aa64c20b0ea6b","sha512":"447af4363793c0af4a388c5eef2fa4bc5e59d7a9704ce8cf75b92b92d7e5424757528ce5b7a9bd432c52298630f75f573cedba6b6c9a384208e66f02d6e2d836","ssdeep":"","tlshash":"1551ab24e72a680b72bf94eca7724605d720d0079d020a2d7ad175b1aff93bc8472e8d","first_seen":"2025-08-05T21:54:24.391581Z","last_seen":"2026-07-27T11:34:25.532926Z","times_seen":51,"resource_available":false,"data":"LyoqKiANCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCglDb2xvciBQYWxhdGUgU3R5bGUgLyBDb2xvciBTd2l0Y2hlciBTdHlsZQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KKioqLw0KDQouY29sb3ItcGFsYXRlIHsNCiAgICBiYWNrZ3JvdW5kOiAjZmZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQoJLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMjBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpOw0KCS1tcy1ib3gtc2hhZG93OiAwIDAgMjBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpOw0KCS1vLWJveC1zaGFkb3c6IDAgMCAyMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7DQoJLW1vei1ib3gtc2hhZG93OiAwIDAgMjBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjEpOw0KICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IDFweCByZ2JhKDAsIDAsIDAsIDAuMSk7DQogICAgcG9zaXRpb246IGZpeGVkOw0KICAgIGxlZnQ6IC0yODVweDsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgdG9wOiAyNSU7DQogICAgdHJhbnNpdGlvbjogYWxsIDAuNXMgZWFzZSAwczsNCiAgICB3aWR0aDogMjg1cHg7DQogICAgei1pbmRleDogOTk5Ow0KCXBhZGRpbmctYm90dG9tOjQwcHg7DQp9DQoNCi5jb2xvci1wYWxhdGUtaGVhZCB7DQogICAgYmFja2dyb3VuZDogI2QwNjIxYiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOw0KICAgIHBhZGRpbmc6IDEycHggMDsNCn0NCg0KLmNvbG9yLXBhbGF0ZS1oZWFkIGg2LA0KLnNlY29uZGFyeS1oZWFkIGg2IHsNCiAgICBjb2xvcjogI2ZmZmZmZjsNCiAgICBmb250LXNpemU6IDE0cHg7DQogICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICBtYXJnaW46IDBweDsNCiAgICBtYXJnaW4tdG9wOiA0cHg7DQoJdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOw0KfQ0KDQoucGFsYXRlIHsNCiAgICBiYWNrZ3JvdW5kOiByZWQgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCiAgICBkaXNwbGF5OiBibG9jazsNCiAgICBmbG9hdDogbGVmdDsNCiAgICBoZWlnaHQ6IDQ1cHg7DQogICAgbWFyZ2luOiAwIDIuNSUgMTJweDsNCiAgICB3aWR0aDogMjAlOw0KICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQoNCi5jb2xvcnMtbGlzdCAuYWN0aXZlOjphZnRlcnsNCiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3RpY2sucG5nKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdCAhaW1wb3J0YW50Ow0KICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7DQogICAgY29udGVudDogJyc7DQogICAgcG9zaXRpb246IGFic29sdXRlOw0KICAgIHRvcDogMHB4Ow0KICAgIGxlZnQ6IDBweDsNCiAgICB3aWR0aDogMTAwJTsNCiAgICBoZWlnaHQ6IDEwMCU7DQp9DQoNCi52YXJpb3VzLWNvbG9yIHsNCiAgICBvdmVyZmxvdzogaGlkZGVuOw0KICAgIHBhZGRpbmc6IDIwcHggMCAxNXB4Ow0KfQ0KDQouY29sb3JzLWxpc3Qgew0KICAgIG1hcmdpbjogMCAyMHB4Ow0KfQ0KDQouc2Vjb25kYXJ5LWhlYWQgew0KICAgIGJhY2tncm91bmQ6ICMyMjIyMjIgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCiAgICBwYWRkaW5nOiAxNHB4IDA7DQp9DQoNCi5zZWNvbmRhcnktY29sb3Igew0KICAgIHBhZGRpbmc6IDIzcHggMDsNCn0NCg0KLnNlY29uZGFyeS1jb2xvcnMtbGlzdCB7DQogICAgbWFyZ2luOiAwIDgwcHg7DQp9DQoNCi5wYWxhdGUtZm9vIHsNCiAgICBjb2xvcjogIzc3Nzc3NzsNCiAgICBmb250LXNpemU6IDEzcHg7DQogICAgZm9udC13ZWlnaHQ6IDQwMDsNCiAgICBwYWRkaW5nOiAwIDMwcHg7DQoJbGluZS1oZWlnaHQ6MS44ZW07DQp9DQoNCi5wYWxhdGUtZm9vIHNwYW57DQoJZGlzcGxheTpibG9jazsNCglwYWRkaW5nLXRvcDoyMHB4Ow0KCW1hcmdpbi10b3A6NXB4Ow0KCWJvcmRlci10b3A6MXB4IGRvdHRlZCAjYjJiMmIyOw0KfQ0KDQoucGFsYXRlLmRlZmF1bHQtY29sb3Igew0KICAgIGJhY2tncm91bmQ6ICNmZGE3MDAgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCn0NCg0KLnBhbGF0ZS5ncmVlbi1jb2xvciB7DQogICAgYmFja2dyb3VuZDogIzJFQ0M0MCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOw0KfQ0KDQoucGFsYXRlLm9saXZlLWNvbG9yIHsNCiAgICBiYWNrZ3JvdW5kOiAjM0Q5OTcwIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQp9DQoNCi5wYWxhdGUuYnJvd24tY29sb3Igew0KICAgIGJhY2tncm91bmQ6ICNhYjhiNDAgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCn0NCg0KLnBhbGF0ZS5wdXJwbGUtY29sb3Igew0KICAgIGJhY2tncm91bmQ6ICNiYjU0ZTEgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsNCn0NCg0KLnBhbGF0ZS50ZWFsLWNvbG9yIHsNCiAgICBiYWNrZ3JvdW5kOiAjMTRjNTk5IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQp9DQoNCi5wYWxhdGUub3JhbmdlLWNvbG9yIHsNCiAgICBiYWNrZ3JvdW5kOiAjZmY3ZTAwIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQp9DQoNCi5wYWxhdGUucmVkZC1jb2xvciB7DQogICAgYmFja2dyb3VuZDogI0ZGNDEzNiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOw0KfQ0KDQouY29sb3ItdHJpZ2dlciB7DQogICAgYmFja2dyb3VuZDogI2QwNjIxYiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOw0KICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgICBoZWlnaHQ6IDUwcHg7DQogICAgcmlnaHQ6IC00NnB4Ow0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICB0b3A6IDA7DQogICAgd2lkdGg6IDQ2cHg7DQogICAgcGFkZGluZy10b3A6IDZweDsNCn0NCi5jb2xvci10cmlnZ2VyIC5mYXsNCgkNCn0NCi5jb2xvci10cmlnZ2VyOmJlZm9yZXsNCgljb250ZW50OicnOw0KCXBvc2l0aW9uOmFic29sdXRlOw0KCWxlZnQ6MHB4Ow0KCXRvcDowcHg7DQoJd2lkdGg6MTAwJTsNCgloZWlnaHQ6MTAwJTsNCn0NCg0KLmNvbG9yLXRyaWdnZXIgaSB7DQogICAgY29sb3I6ICNmZmZmZmY7DQogICAgZm9udC1zaXplOiAxOHB4Ow0KICAgIGxpbmUtaGVpZ2h0OiA0MHB4Ow0KfQ0KDQouY29sb3ItcGFsYXRlLnZpc2libGUtcGFsYXRlIHsNCiAgICBsZWZ0OiAwcHg7DQp9"}},"time_used":33,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":33,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/externale92ae92ae92a.html?link=https://fonts.googleapis.com/css?family=Hind+Siliguri:400,500,600,700|Poppins:300,400,500,600,700,800,900\u0026amp;display=swap","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.805Z","timestamp":1785129412805,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /externale92ae92ae92a.html?link=https://fonts.googleapis.com/css?family=Hind+Siliguri:400,500,600,700|Poppins:300,400,500,600,700,800,900\u0026amp;display=swap HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 404 \r\ncache-control: private, no-cache, no-store, must-revalidate, max-age=0\r\npragma: no-cache\r\ncontent-type: text/html\r\ncontent-length: 1251\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"404","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":1251,"size_decoded":1459,"mime_type":"text/html","magic":"HTML document, ASCII text, with CRLF, LF line terminators","md5":"8150f458ed6fb9b1db4e5cfa57a1a281","sha1":"6e5726854d28687b560d7fdcb5c782c425c7dfb9","sha256":"4c13d452dd5d49671bd93ca32f2b4f85c78e39b6ab0ad1f38d98ed267f8fd896","sha512":"4cc6a112673aef8bb8bb8a385c26791b805d43bb707b509880e894f1c83bab4e16f13de187036c5f660c3bec1d286258396b7bde65c5d7945c5019665196818c","ssdeep":"","tlshash":"c021353ec1c1560ae0271164fbc1f7a86669825291970f703b9eb176f6cd0bb56a36c8","first_seen":"2024-02-08T16:48:55Z","last_seen":"2026-07-29T09:10:37.507754Z","times_seen":144612,"resource_available":true,"data":"PCFET0NUWVBFIGh0bWw+CjxodG1sIHN0eWxlPSJoZWlnaHQ6MTAwJSI+CjxoZWFkPgo8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHNocmluay10by1maXQ9bm8iIC8+Cjx0aXRsZT4gNDA0IE5vdCBGb3VuZA0KPC90aXRsZT48c3R5bGU+QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9fTwvc3R5bGU+PC9oZWFkPgo8Ym9keSBzdHlsZT0iY29sb3I6ICM0NDQ7IG1hcmdpbjowO2ZvbnQ6IG5vcm1hbCAxNHB4LzIwcHggQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7Ij4KPGRpdiBzdHlsZT0iaGVpZ2h0OmF1dG87IG1pbi1oZWlnaHQ6MTAwJTsgIj4gICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6ODAwcHg7IG1hcmdpbi1sZWZ0OiAtNDAwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6IDMwJTsgbGVmdDo1MCU7Ij4KICAgICAgICA8aDEgc3R5bGU9Im1hcmdpbjowOyBmb250LXNpemU6MTUwcHg7IGxpbmUtaGVpZ2h0OjE1MHB4OyBmb250LXdlaWdodDpib2xkOyI+NDA0PC9oMT4KPGgyIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Zm9udC1zaXplOiAzMHB4OyI+Tm90IEZvdW5kDQo8L2gyPgo8cD5UaGUgcmVzb3VyY2UgcmVxdWVzdGVkIGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGlzIHNlcnZlciE8L3A+CjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOiNmMGYwZjA7IGZvbnQtc2l6ZToxMnB4O21hcmdpbjphdXRvO3BhZGRpbmc6MHB4IDMwcHggMHB4IDMwcHg7cG9zaXRpb246cmVsYXRpdmU7Y2xlYXI6Ym90aDtoZWlnaHQ6MTAwcHg7bWFyZ2luLXRvcDotMTAxcHg7YmFja2dyb3VuZC1jb2xvcjojNDc0NzQ3O2JvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO2JveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpIGluc2V0OyI+Cjxicj5Qcm91ZGx5IHBvd2VyZWQgYnkgTGl0ZVNwZWVkIFdlYiBTZXJ2ZXI8cD5QbGVhc2UgYmUgYWR2aXNlZCB0aGF0IExpdGVTcGVlZCBUZWNobm9sb2dpZXMgSW5jLiBpcyBub3QgYSB3ZWIgaG9zdGluZyBjb21wYW55IGFuZCwgYXMgc3VjaCwgaGFzIG5vIGNvbnRyb2wgb3ZlciBjb250ZW50IGZvdW5kIG9uIHRoaXMgc2l0ZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4K"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/bg5.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.975Z","timestamp":1785129412975,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/bg5.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: same-origin\r\nPriority: u=4, i\r\nPragma: no-cache\r\nCache-Control: no-cache\r\n\r\n","headers":null,"cookies":null,"method":"GET"},"response":{"raw":"HTTP/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 228155\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":228155,"size_decoded":228422,"mime_type":"image/png","magic":"PNG image data, 585 x 350, 8-bit/color RGB, non-interlaced","md5":"905657602b7df0a3868e5918c285556e","sha1":"64b28120ebbc8dafb65a703d7ea59c3ceb3ef860","sha256":"5e96a08e7834b7ef4882bf12700c5aed3bc36ee635a29d555a24d5dc79df3269","sha512":"254843d177b0568ce7bfcea8cfe2b7404ea0a3d70f77f9bc7df509c093061e782cb6ae38b6589d2415f21b0bea18c4b86c164d2f8cdc5f4b74609bea00dc39df","ssdeep":"6144:8VbrVBZ5txoRWQKoqnCGF7mdQJ6vKPNmP:8F7TGDqnCGF7nLPwP","tlshash":"3e24123e33528eb373d6ed23954a699d908663d068b3b0d047d14f2e271a5bca1fbc16","first_seen":"2024-06-18T00:47:47Z","last_seen":"2026-07-27T13:36:13.725406Z","times_seen":71,"resource_available":false,"data":"iVBORw0KGgoAAAANSUhEUgAAAkkAAAFeCAIAAAAe2RzdAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKMGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjg1MGNhNTY3LTJhMDYtMzk0OC1iZmZmLWM5MTIzMzA1OGRkNiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyZDM3ZWJmMS1kNTlmLTViNDAtOTcxOS0wM2M4MmJhNDJhNDIiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0iMTFCODI4ODExMUNCRUJBQzg4RjM2REM2NzNDM0FCRDUiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTEwLTI2VDIxOjUyOjM3LTA3OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMS0wNVQxNzo1MTo1MC0wODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMS0wNVQxNzo1MTo1MC0wODowMCIgdGlmZjpJbWFnZVdpZHRoPSI1ODUiIHRpZmY6SW1hZ2VMZW5ndGg9IjM1MCIgdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPSIyIiB0aWZmOlNhbXBsZXNQZXJQaXhlbD0iMyIgdGlmZjpYUmVzb2x1dGlvbj0iNzIvMSIgdGlmZjpZUmVzb2x1dGlvbj0iNzIvMSIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgZXhpZjpFeGlmVmVyc2lvbj0iMDIyMSIgZXhpZjpDb2xvclNwYWNlPSI2NTUzNSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjU4NSIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjM1MCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmNmY2ZlOTI3LTM5MmUtYWQ0NC04ZDliLTBjY2EzNzJiOTAzOSIgc3RFdnQ6d2hlbj0iMjAyMC0xMC0yNlQyMjozNzowOS0wNzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gaW1hZ2UvanBlZyB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL2pwZWcgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmOWEwMjY3Mi0yNWRkLWU3NDMtYmRmMC1lOTc0NTVhNTRjNjkiIHN0RXZ0OndoZW49IjIwMjAtMTAtMjZUMjI6Mzc6MDktMDc6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MmQzN2ViZjEtZDU5Zi01YjQwLTk3MTktMDNjODJiYTQyYTQyIiBzdEV2dDp3aGVuPSIyMDIwLTExLTA1VDE3OjUxOjUwLTA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmNmY2ZlOTI3LTM5MmUtYWQ0NC04ZDliLTBjY2EzNzJiOTAzOSIgc3RSZWY6ZG9jdW1lbnRJRD0iMTFCODI4ODExMUNCRUJBQzg4RjM2REM2NzNDM0FCRDUiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0iMTFCODI4ODExMUNCRUJBQzg4RjM2REM2NzNDM0FCRDUiLz4gPHRpZmY6Qml0c1BlclNhbXBsZT4gPHJkZjpTZXE+IDxyZGY6bGk+ODwvcmRmOmxpPiA8cmRmOmxpPjg8L3JkZjpsaT4gPHJkZjpsaT44PC9yZGY6bGk+IDwvcmRmOlNlcT4gPC90aWZmOkJpdHNQZXJTYW1wbGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+A43b/AADcLFJREFUeJzs/WmwLsl1GIidczKr6lvu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"}},"time_used":39,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":17,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/js/wow.js","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"script","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.711Z","timestamp":1785129412711,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /js/wow.js HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: */*\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncontent-type: text/javascript\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 2037\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":6300,"size_decoded":2274,"mime_type":"text/javascript","magic":"JavaScript source, ASCII text, with very long lines (6269), with CRLF line terminators","md5":"11ac4d7173a68c50169addca2ef1b827","sha1":"621284d032a248c41753e995680fc30089bd374c","sha256":"dd90fdb6538987fe7975bd43803b1c7d8d62912a371c788caec32d016e09dca8","sha512":"658888b9d89577b55798fc56451f9458ba9b4885573a96480fd9bd480cb59854769964da9a5f54feba19ba66fa6df44c79203d35f1d6d9cafd84886c58e233a4","ssdeep":"96:3GqKWTAKHF/suCdaOVEE1FnePgJqg4SImYad6Q:y30suCYOVEE7ne4JqgpIwdh","tlshash":"bbd175c9b7467036d79ba1f6873f0145a23a19acb008047cb7e984e57d348699237f38","first_seen":"2023-03-07T12:02:41Z","last_seen":"2026-07-29T07:07:17.267598Z","times_seen":5397,"resource_available":true,"data":"LyohIFdPVyAtIHYxLjAuMSAtIDIwMTQtMDgtMTUNCiogQ29weXJpZ2h0IChjKSAyMDE0IE1hdHRoaWV1IEF1c3NhZ3VlbDsgTGljZW5zZWQgTUlUICovKGZ1bmN0aW9uKCl7dmFyIGEsYixjLGQ9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShiLGFyZ3VtZW50cyl9fSxlPVtdLmluZGV4T2Z8fGZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9dGhpcy5sZW5ndGg7Yz5iO2IrKylpZihiIGluIHRoaXMmJnRoaXNbYl09PT1hKXJldHVybiBiO3JldHVybi0xfTtiPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe31yZXR1cm4gYS5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uKGEsYil7dmFyIGMsZDtmb3IoYyBpbiBiKWQ9YltjXSxudWxsPT1hW2NdJiYoYVtjXT1kKTtyZXR1cm4gYX0sYS5wcm90b3R5cGUuaXNNb2JpbGU9ZnVuY3Rpb24oYSl7cmV0dXJuL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KGEpfSxhfSgpLGM9dGhpcy5XZWFrTWFwfHx0aGlzLk1veldlYWtNYXB8fChjPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe3RoaXMua2V5cz1bXSx0aGlzLnZhbHVlcz1bXX1yZXR1cm4gYS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGY7Zm9yKGY9dGhpcy5rZXlzLGI9ZD0wLGU9Zi5sZW5ndGg7ZT5kO2I9KytkKWlmKGM9ZltiXSxjPT09YSlyZXR1cm4gdGhpcy52YWx1ZXNbYl19LGEucHJvdG90eXBlLnNldD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmLGc7Zm9yKGc9dGhpcy5rZXlzLGM9ZT0wLGY9Zy5sZW5ndGg7Zj5lO2M9KytlKWlmKGQ9Z1tjXSxkPT09YSlyZXR1cm4gdm9pZCh0aGlzLnZhbHVlc1tjXT1iKTtyZXR1cm4gdGhpcy5rZXlzLnB1c2goYSksdGhpcy52YWx1ZXMucHVzaChiKX0sYX0oKSksYT10aGlzLk11dGF0aW9uT2JzZXJ2ZXJ8fHRoaXMuV2Via2l0TXV0YXRpb25PYnNlcnZlcnx8dGhpcy5Nb3pNdXRhdGlvbk9ic2VydmVyfHwoYT1mdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtjb25zb2xlLndhcm4oIk11dGF0aW9uT2JzZXJ2ZXIgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXIuIiksY29uc29sZS53YXJuKCJXT1cuanMgY2Fubm90IGRldGVjdCBkb20gbXV0YXRpb25zLCBwbGVhc2UgY2FsbCAuc3luYygpIGFmdGVyIGxvYWRpbmcgbmV3IGNvbnRlbnQuIil9cmV0dXJuIGEubm90U3VwcG9ydGVkPSEwLGEucHJvdG90eXBlLm9ic2VydmU9ZnVuY3Rpb24oKXt9LGF9KCkpLHRoaXMuV09XPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZihhKXtudWxsPT1hJiYoYT17fSksdGhpcy5zY3JvbGxDYWxsYmFjaz1kKHRoaXMuc2Nyb2xsQ2FsbGJhY2ssdGhpcyksdGhpcy5zY3JvbGxIYW5kbGVyPWQodGhpcy5zY3JvbGxIYW5kbGVyLHRoaXMpLHRoaXMuc3RhcnQ9ZCh0aGlzLnN0YXJ0LHRoaXMpLHRoaXMuc2Nyb2xsZWQ9ITAsdGhpcy5jb25maWc9dGhpcy51dGlsKCkuZXh0ZW5kKGEsdGhpcy5kZWZhdWx0cyksdGhpcy5hbmltYXRpb25OYW1lQ2FjaGU9bmV3IGN9cmV0dXJuIGYucHJvdG90eXBlLmRlZmF1bHRzPXtib3hDbGFzczoid293IixhbmltYXRlQ2xhc3M6ImFuaW1hdGVkIixvZmZzZXQ6MCxtb2JpbGU6ITAsbGl2ZTohMH0sZi5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBhO3JldHVybiB0aGlzLmVsZW1lbnQ9d2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwiaW50ZXJhY3RpdmUiPT09KGE9ZG9jdW1lbnQucmVhZHlTdGF0ZSl8fCJjb21wbGV0ZSI9PT1hP3RoaXMuc3RhcnQoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix0aGlzLnN0YXJ0KSx0aGlzLmZpbmlzaGVkPVtdfSxmLnByb3RvdHlwZS5zdGFydD1mdW5jdGlvbigpe3ZhciBiLGMsZCxlO2lmKHRoaXMuc3RvcHBlZD0hMSx0aGlzLmJveGVzPWZ1bmN0aW9uKCl7dmFyIGEsYyxkLGU7Zm9yKGQ9dGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuY29uZmlnLmJveENsYXNzKSxlPVtdLGE9MCxjPWQubGVuZ3RoO2M+YTthKyspYj1kW2FdLGUucHVzaChiKTtyZXR1cm4gZX0uY2FsbCh0aGlzKSx0aGlzLmFsbD1mdW5jdGlvbigpe3ZhciBhLGMsZCxlO2ZvcihkPXRoaXMuYm94ZXMsZT1bXSxhPTAsYz1kLmxlbmd0aDtjPmE7YSsrKWI9ZFthXSxlLnB1c2goYik7cmV0dXJuIGV9LmNhbGwodGhpcyksdGhpcy5ib3hlcy5sZW5ndGgpaWYodGhpcy5kaXNhYmxlZCgpKXRoaXMucmVzZXRTdHlsZSgpO2Vsc2V7Zm9yKGU9dGhpcy5ib3hlcyxjPTAsZD1lLmxlbmd0aDtkPmM7YysrKWI9ZVtjXSx0aGlzLmFwcGx5U3R5bGUoYiwhMCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsdGhpcy5zY3JvbGxIYW5kbGVyLCExKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLnNjcm9sbEhhbmRsZXIsITEpLHRoaXMuaW50ZXJ2YWw9c2V0SW50ZXJ2YWwodGhpcy5zY3JvbGxDYWxsYmFjayw1MCl9cmV0dXJuIHRoaXMuY29uZmlnLmxpdmU/bmV3IGEoZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKGIpe3ZhciBjLGQsZSxmLGc7Zm9yKGc9W10sZT0wLGY9Yi5sZW5ndGg7Zj5lO2UrKylkPWJbZV0sZy5wdXNoKGZ1bmN0aW9uKCl7dmFyIGEsYixlLGY7Zm9yKGU9ZC5hZGRlZE5vZGVzfHxbXSxmPVtdLGE9MCxiPWUubGVuZ3RoO2I+YTthKyspYz1lW2FdLGYucHVzaCh0aGlzLmRvU3luYyhjKSk7cmV0dXJuIGZ9LmNhbGwoYSkpO3JldHVybiBnfX0odGhpcykpLm9ic2VydmUoZG9jdW1lbnQuYm9keSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9KTp2b2lkIDB9LGYucHJvdG90eXBlLnN0b3A9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdG9wcGVkPSEwLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuc2Nyb2xsSGFuZGxlciwhMSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5zY3JvbGxIYW5kbGVyLCExKSxudWxsIT10aGlzLmludGVydmFsP2NsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk6dm9pZCAwfSxmLnByb3RvdHlwZS5zeW5jPWZ1bmN0aW9uKCl7cmV0dXJuIGEubm90U3VwcG9ydGVkP3RoaXMuZG9TeW5jKHRoaXMuZWxlbWVudCk6dm9pZCAwfSxmLnByb3RvdHlwZS5kb1N5bmM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGYsZztpZighdGhpcy5zdG9wcGVkKXtpZihudWxsPT1hJiYoYT10aGlzLmVsZW1lbnQpLDEhPT1hLm5vZGVUeXBlKXJldHVybjtmb3IoYT1hLnBhcmVudE5vZGV8fGEsZj1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iK3RoaXMuY29uZmlnLmJveENsYXNzKSxnPVtdLGM9MCxkPWYubGVuZ3RoO2Q+YztjKyspYj1mW2NdLGUuY2FsbCh0aGlzLmFsbCxiKTwwPyh0aGlzLmFwcGx5U3R5bGUoYiwhMCksdGhpcy5ib3hlcy5wdXNoKGIpLHRoaXMuYWxsLnB1c2goYiksZy5wdXNoKHRoaXMuc2Nyb2xsZWQ9ITApKTpnLnB1c2godm9pZCAwKTtyZXR1cm4gZ319LGYucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYXBwbHlTdHlsZShhKSxhLmNsYXNzTmFtZT0iIithLmNsYXNzTmFtZSsiICIrdGhpcy5jb25maWcuYW5pbWF0ZUNsYXNzfSxmLnByb3RvdHlwZS5hcHBseVN0eWxlPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlO3JldHVybiBkPWEuZ2V0QXR0cmlidXRlKCJkYXRhLXdvdy1kdXJhdGlvbiIpLGM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtd293LWRlbGF5IiksZT1hLmdldEF0dHJpYnV0ZSgiZGF0YS13b3ctaXRlcmF0aW9uIiksdGhpcy5hbmltYXRlKGZ1bmN0aW9uKGYpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBmLmN1c3RvbVN0eWxlKGEsYixkLGMsZSl9fSh0aGlzKSl9LGYucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24oKXtyZXR1cm4icmVxdWVzdEFuaW1hdGlvbkZyYW1lImluIHdpbmRvdz9mdW5jdGlvbihhKXtyZXR1cm4gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShhKX06ZnVuY3Rpb24oYSl7cmV0dXJuIGEoKX19KCksZi5wcm90b3R5cGUucmVzZXRTdHlsZT1mdW5jdGlvbigpe3ZhciBhLGIsYyxkLGU7Zm9yKGQ9dGhpcy5ib3hlcyxlPVtdLGI9MCxjPWQubGVuZ3RoO2M+YjtiKyspYT1kW2JdLGUucHVzaChhLnNldEF0dHJpYnV0ZSgic3R5bGUiLCJ2aXNpYmlsaXR5OiB2aXNpYmxlOyIpKTtyZXR1cm4gZX0sZi5wcm90b3R5cGUuY3VzdG9tU3R5bGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXtyZXR1cm4gYiYmdGhpcy5jYWNoZUFuaW1hdGlvbk5hbWUoYSksYS5zdHlsZS52aXNpYmlsaXR5PWI/ImhpZGRlbiI6InZpc2libGUiLGMmJnRoaXMudmVuZG9yU2V0KGEuc3R5bGUse2FuaW1hdGlvbkR1cmF0aW9uOmN9KSxkJiZ0aGlzLnZlbmRvclNldChhLnN0eWxlLHthbmltYXRpb25EZWxheTpkfSksZSYmdGhpcy52ZW5kb3JTZXQoYS5zdHlsZSx7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ZX0pLHRoaXMudmVuZG9yU2V0KGEuc3R5bGUse2FuaW1hdGlvbk5hbWU6Yj8ibm9uZSI6dGhpcy5jYWNoZWRBbmltYXRpb25OYW1lKGEpfSksYX0sZi5wcm90b3R5cGUudmVuZG9ycz1bIm1veiIsIndlYmtpdCJdLGYucHJvdG90eXBlLnZlbmRvclNldD1mdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmO2Y9W107Zm9yKGMgaW4gYilkPWJbY10sYVsiIitjXT1kLGYucHVzaChmdW5jdGlvbigpe3ZhciBiLGYsZyxoO2ZvcihnPXRoaXMudmVuZG9ycyxoPVtdLGI9MCxmPWcubGVuZ3RoO2Y+YjtiKyspZT1nW2JdLGgucHVzaChhWyIiK2UrYy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStjLnN1YnN0cigxKV09ZCk7cmV0dXJuIGh9LmNhbGwodGhpcykpO3JldHVybiBmfSxmLnByb3RvdHlwZS52ZW5kb3JDU1M9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZixnLGg7Zm9yKGQ9d2luZG93LmdldENvbXB1dGVkU3R5bGUoYSksYz1kLmdldFByb3BlcnR5Q1NTVmFsdWUoYiksaD10aGlzLnZlbmRvcnMsZj0wLGc9aC5sZW5ndGg7Zz5mO2YrKyllPWhbZl0sYz1jfHxkLmdldFByb3BlcnR5Q1NTVmFsdWUoIi0iK2UrIi0iK2IpO3JldHVybiBjfSxmLnByb3RvdHlwZS5hbmltYXRpb25OYW1lPWZ1bmN0aW9uKGEpe3ZhciBiO3RyeXtiPXRoaXMudmVuZG9yQ1NTKGEsImFuaW1hdGlvbi1uYW1lIikuY3NzVGV4dH1jYXRjaChjKXtiPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGEpLmdldFByb3BlcnR5VmFsdWUoImFuaW1hdGlvbi1uYW1lIil9cmV0dXJuIm5vbmUiPT09Yj8iIjpifSxmLnByb3RvdHlwZS5jYWNoZUFuaW1hdGlvbk5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYW5pbWF0aW9uTmFtZUNhY2hlLnNldChhLHRoaXMuYW5pbWF0aW9uTmFtZShhKSl9LGYucHJvdG90eXBlLmNhY2hlZEFuaW1hdGlvbk5hbWU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYW5pbWF0aW9uTmFtZUNhY2hlLmdldChhKX0sZi5wcm90b3R5cGUuc2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNjcm9sbGVkPSEwfSxmLnByb3RvdHlwZS5zY3JvbGxDYWxsYmFjaz1mdW5jdGlvbigpe3ZhciBhO3JldHVybiF0aGlzLnNjcm9sbGVkfHwodGhpcy5zY3JvbGxlZD0hMSx0aGlzLmJveGVzPWZ1bmN0aW9uKCl7dmFyIGIsYyxkLGU7Zm9yKGQ9dGhpcy5ib3hlcyxlPVtdLGI9MCxjPWQubGVuZ3RoO2M+YjtiKyspYT1kW2JdLGEmJih0aGlzLmlzVmlzaWJsZShhKT90aGlzLnNob3coYSk6ZS5wdXNoKGEpKTtyZXR1cm4gZX0uY2FsbCh0aGlzKSx0aGlzLmJveGVzLmxlbmd0aHx8dGhpcy5jb25maWcubGl2ZSk/dm9pZCAwOnRoaXMuc3RvcCgpfSxmLnByb3RvdHlwZS5vZmZzZXRUb3A9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiO3ZvaWQgMD09PWEub2Zmc2V0VG9wOylhPWEucGFyZW50Tm9kZTtmb3IoYj1hLm9mZnNldFRvcDthPWEub2Zmc2V0UGFyZW50OyliKz1hLm9mZnNldFRvcDtyZXR1cm4gYn0sZi5wcm90b3R5cGUuaXNWaXNpYmxlPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGY7cmV0dXJuIGM9YS5nZXRBdHRyaWJ1dGUoImRhdGEtd293LW9mZnNldCIpfHx0aGlzLmNvbmZpZy5vZmZzZXQsZj13aW5kb3cucGFnZVlPZmZzZXQsZT1mK01hdGgubWluKHRoaXMuZWxlbWVudC5jbGllbnRIZWlnaHQsaW5uZXJIZWlnaHQpLWMsZD10aGlzLm9mZnNldFRvcChhKSxiPWQrYS5jbGllbnRIZWlnaHQsZT49ZCYmYj49Zn0sZi5wcm90b3R5cGUudXRpbD1mdW5jdGlvbigpe3JldHVybiBudWxsIT10aGlzLl91dGlsP3RoaXMuX3V0aWw6dGhpcy5fdXRpbD1uZXcgYn0sZi5wcm90b3R5cGUuZGlzYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5jb25maWcubW9iaWxlJiZ0aGlzLnV0aWwoKS5pc01vYmlsZShuYXZpZ2F0b3IudXNlckFnZW50KX0sZn0oKX0pLmNhbGwodGhpcyk7"}},"time_used":25,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":24,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/images/norton.png","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.733Z","timestamp":1785129412733,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /images/norton.png HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: image/png\r\nlast-modified: Wed, 10 Dec 2025 07:11:29 GMT\r\naccept-ranges: bytes\r\ncontent-length: 3728\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":3728,"size_decoded":3993,"mime_type":"image/png","magic":"PNG image data, 115 x 57, 8-bit/color RGBA, non-interlaced","md5":"c6da8162cb19179d592973a9dedd71f4","sha1":"e17081c0f172a0935e5d8e274db2a626fbf45820","sha256":"7f252da8af6d42e3b675c17e0272239f1f10a3f5a46312f1169c565c6873fa05","sha512":"e756f949625887d2a8b9f0991e21d85b708505e740e452721976d952a3998b419ac4d169c5cbc9dbc0198e9d792ef0674ba12f64a4bc892d006af713f887c000","ssdeep":"","tlshash":"1e715ae8995a467d59623d85b6ca079782cc80ca8d1f82d0f34b8ce9c7055b1a53f0ea","first_seen":"2023-11-06T04:19:17Z","last_seen":"2026-07-27T13:36:13.678279Z","times_seen":88,"resource_available":false,"data":"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"}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":21,"receive":1,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"danis-miners.com/css/font-awesome.css","fqdn":"danis-miners.com","domain":"danis-miners.com","tld":"com"},"ip":{"addr":"5.182.208.206","port":443,"asn":62068,"as":"SpectraIP B.V.","country":"The Netherlands","country_code":"NL"},"is_navigation_request":false,"resource_type":"stylesheet","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:52.806Z","timestamp":1785129412806,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"x25519","signature_name":"RSA-PSS-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"danis-miners.com","organization":""},"issuer":{"commonName":"YR2","organization":"Let's Encrypt"},"validity":{"start":"Thu, 09 Jul 2026 09:58:42 GMT","end":"Wed, 07 Oct 2026 09:58:41 GMT"},"fingerprint":{"sha1":"A0:A3:31:E0:BD:D5:D4:09:26:55:34:B0:D1:45:40:A0:9A:CC:80:DD","sha256":"E1:75:90:AA:2F:81:EB:C2:D0:C9:DD:17:F3:2E:51:20:BC:14:93:FB:5F:7D:73:62:A3:FE:7F:37:D1:96:E6:BD"}}},"request":{"raw":"GET /css/font-awesome.css HTTP/1.1\r\nHost: danis-miners.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: text/css,*/*;q=0.1\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/css/style.css\r\nCookie: PHPSESSID=58079b3ce92179ddb17a3733eda35e2a\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/3 200 \r\ncache-control: public, max-age=604800\r\nexpires: Mon, 03 Aug 2026 05:16:52 GMT\r\ncontent-type: text/css\r\nlast-modified: Mon, 27 Jan 2025 17:31:04 GMT\r\naccept-ranges: bytes\r\ncontent-encoding: br\r\nvary: Accept-Encoding\r\ncontent-length: 5433\r\ndate: Mon, 27 Jul 2026 05:16:52 GMT\r\nserver: LiteSpeed\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"LiteSpeed","description":"LiteSpeed is a high-scalability web server.","website":"https://litespeedtech.com","common_platform_enumeration":"cpe:2.3:a:litespeedtech:litespeed_web_server:*:*:*:*:*:*:*:*","icon":"LiteSpeed.svg","categories":["Web servers"]}],"data":{"size":30583,"size_decoded":5742,"mime_type":"text/css","magic":"troff or preprocessor input, ASCII text, with very long lines (379), with CRLF line terminators","md5":"8a23eb197f75d5fa920c9d931c45df12","sha1":"7e9c0e575b02747e2ad499a121d730048704e3b3","sha256":"c1e22f36cd2346f988a593425fadd1539fc7acf43167360b63c4152d060a1b9c","sha512":"e7412dade2e10e9c32b111e0c4a84ba126d23a7d0ab8f2a5d0baf831d8ba5a80c3bcd693df834786d47a9e7a59b68c1bd1f3986e457ef96340d52f6823e70725","ssdeep":"384:pNpFKmzFdDScWmbiCI6v9TURMNZJt/gSxbOve:BFKmzFdScWmbiC/9TUMNDthx6m","tlshash":"40d22afcd16e00d14b32daa1a3426a627b3db2bcfe421d55f2663d8c91c2654a1c6fcd","first_seen":"2025-08-05T21:54:24.264576Z","last_seen":"2026-07-27T11:34:25.565939Z","times_seen":47,"resource_available":false,"data":"LyohDQogKiAgRm9udCBBd2Vzb21lIDQuMy4wIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWUNCiAqICBMaWNlbnNlIC0gaHR0cDovL2ZvbnRhd2Vzb21lLmlvL2xpY2Vuc2UgKEZvbnQ6IFNJTCBPRkwgMS4xLCBDU1M6IE1JVCBMaWNlbnNlKQ0KICovDQovKiBGT05UIFBBVEgNCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQpAZm9udC1mYWNlIHsNCiAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7DQogIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250ZTBhNWUwYTUuZW90Jyk7DQogIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250ZDQxZGQ0MWQuZW90I2llZml4JnY9NC4zLjAnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udGUwYTVlMGE1LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLCB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnRlMGE1ZTBhNS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udGUwYTVlMGE1LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250ZTBhNWUwYTUuc3ZnI2ZvbnRhd2Vzb21lcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7DQogIGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogIGZvbnQtc3R5bGU6IG5vcm1hbDsNCn0NCi5mYSB7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgZm9udC1mYW1pbHk6ICdGb250QXdlc29tZSc7DQogIGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogIGZvbnQtc3R5bGU6IG5vcm1hbDsNCiAgZm9udC1zaXplOiBpbmhlcml0Ow0KICB0ZXh0LXJlbmRlcmluZzogYXV0bzsNCiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7DQogIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7DQogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOw0KfQ0KLyogbWFrZXMgdGhlIGZvbnQgMzMlIGxhcmdlciByZWxhdGl2ZSB0byB0aGUgaWNvbiBjb250YWluZXIgKi8NCi5mYS1sZyB7DQogIGZvbnQtc2l6ZTogMS4zMzMzMzMzM2VtOw0KICBsaW5lLWhlaWdodDogMC43NWVtOw0KICB2ZXJ0aWNhbC1hbGlnbjogLTE1JTsNCn0NCi5mYS0yeCB7DQogIGZvbnQtc2l6ZTogMmVtOw0KfQ0KLmZhLTN4IHsNCiAgZm9udC1zaXplOiAzZW07DQp9DQouZmEtNHggew0KICBmb250LXNpemU6IDRlbTsNCn0NCi5mYS01eCB7DQogIGZvbnQtc2l6ZTogNWVtOw0KfQ0KLmZhLWZ3IHsNCiAgd2lkdGg6IDEuMjg1NzE0MjllbTsNCiAgdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KLmZhLXVsIHsNCiAgcGFkZGluZy1sZWZ0OiAwOw0KICBtYXJnaW4tbGVmdDogMi4xNDI4NTcxNGVtOw0KICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7DQp9DQouZmEtdWwgPiBsaSB7DQogIHBvc2l0aW9uOiByZWxhdGl2ZTsNCn0NCi5mYS1saSB7DQogIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgbGVmdDogLTIuMTQyODU3MTRlbTsNCiAgd2lkdGg6IDIuMTQyODU3MTRlbTsNCiAgdG9wOiAwLjE0Mjg1NzE0ZW07DQogIHRleHQtYWxpZ246IGNlbnRlcjsNCn0NCi5mYS1saS5mYS1sZyB7DQogIGxlZnQ6IC0xLjg1NzE0Mjg2ZW07DQp9DQouZmEtYm9yZGVyIHsNCiAgcGFkZGluZzogLjJlbSAuMjVlbSAuMTVlbTsNCiAgYm9yZGVyOiBzb2xpZCAwLjA4ZW0gI2VlZWVlZTsNCiAgYm9yZGVyLXJhZGl1czogLjFlbTsNCn0NCi5wdWxsLXJpZ2h0IHsNCiAgZmxvYXQ6IHJpZ2h0Ow0KfQ0KLnB1bGwtbGVmdCB7DQogIGZsb2F0OiBsZWZ0Ow0KfQ0KLmZhLnB1bGwtbGVmdCB7DQogIG1hcmdpbi1yaWdodDogLjNlbTsNCn0NCi5mYS5wdWxsLXJpZ2h0IHsNCiAgbWFyZ2luLWxlZnQ6IC4zZW07DQp9DQouZmEtc3BpbiB7DQogIC13ZWJraXQtYW5pbWF0aW9uOiBmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjsNCiAgYW5pbWF0aW9uOiBmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjsNCn0NCi5mYS1wdWxzZSB7DQogIC13ZWJraXQtYW5pbWF0aW9uOiBmYS1zcGluIDFzIGluZmluaXRlIHN0ZXBzKDgpOw0KICBhbmltYXRpb246IGZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7DQp9DQpALXdlYmtpdC1rZXlmcmFtZXMgZmEtc3BpbiB7DQogIDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpOw0KICB9DQogIDEwMCUgew0KICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpOw0KICB9DQp9DQpAa2V5ZnJhbWVzIGZhLXNwaW4gew0KICAwJSB7DQogICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsNCiAgfQ0KICAxMDAlIHsNCiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZyk7DQogICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKTsNCiAgfQ0KfQ0KLmZhLXJvdGF0ZS05MCB7DQogIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MSk7DQogIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOw0KICAtbXMtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOw0KICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7DQp9DQouZmEtcm90YXRlLTE4MCB7DQogIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Mik7DQogIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsNCiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7DQogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7DQp9DQouZmEtcm90YXRlLTI3MCB7DQogIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249Myk7DQogIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKTsNCiAgLW1zLXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7DQogIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZyk7DQp9DQouZmEtZmxpcC1ob3Jpem9udGFsIHsNCiAgZmlsdGVyOiBwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLCBtaXJyb3I9MSk7DQogIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7DQogIC1tcy10cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTsNCiAgdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7DQp9DQouZmEtZmxpcC12ZXJ0aWNhbCB7DQogIGZpbHRlcjogcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MiwgbWlycm9yPTEpOw0KICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOw0KICAtbXMtdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7DQogIHRyYW5zZm9ybTogc2NhbGUoMSwgLTEpOw0KfQ0KOnJvb3QgLmZhLXJvdGF0ZS05MCwNCjpyb290IC5mYS1yb3RhdGUtMTgwLA0KOnJvb3QgLmZhLXJvdGF0ZS0yNzAsDQo6cm9vdCAuZmEtZmxpcC1ob3Jpem9udGFsLA0KOnJvb3QgLmZhLWZsaXAtdmVydGljYWwgew0KICBmaWx0ZXI6IG5vbmU7DQp9DQouZmEtc3RhY2sgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQogIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgd2lkdGg6IDJlbTsNCiAgaGVpZ2h0OiAyZW07DQogIGxpbmUtaGVpZ2h0OiAyZW07DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQouZmEtc3RhY2stMXgsDQouZmEtc3RhY2stMnggew0KICBwb3NpdGlvbjogYWJzb2x1dGU7DQogIGxlZnQ6IDA7DQogIHdpZHRoOiAxMDAlOw0KICB0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQouZmEtc3RhY2stMXggew0KICBsaW5lLWhlaWdodDogaW5oZXJpdDsNCn0NCi5mYS1zdGFjay0yeCB7DQogIGZvbnQtc2l6ZTogMmVtOw0KfQ0KLmZhLWludmVyc2Ugew0KICBjb2xvcjogI2ZmZmZmZjsNCn0NCi8qIEZvbnQgQXdlc29tZSB1c2VzIHRoZSBVbmljb2RlIFByaXZhdGUgVXNlIEFyZWEgKFBVQSkgdG8gZW5zdXJlIHNjcmVlbg0KICAgcmVhZGVycyBkbyBub3QgcmVhZCBvZmYgcmFuZG9tIGNoYXJhY3RlcnMgdGhhdCByZXByZXNlbnQgaWNvbnMgKi8NCi5mYS1nbGFzczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMDAiOw0KfQ0KLmZhLW11c2ljOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAwMSI7DQp9DQouZmEtc2VhcmNoOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAwMiI7DQp9DQouZmEtZW52ZWxvcGUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMDMiOw0KfQ0KLmZhLWhlYXJ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAwNCI7DQp9DQouZmEtc3RhcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMDUiOw0KfQ0KLmZhLXN0YXItbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMDYiOw0KfQ0KLmZhLXVzZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDA3IjsNCn0NCi5mYS1maWxtOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAwOCI7DQp9DQouZmEtdGgtbGFyZ2U6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDA5IjsNCn0NCi5mYS10aDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMGEiOw0KfQ0KLmZhLXRoLWxpc3Q6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDBiIjsNCn0NCi5mYS1jaGVjazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMGMiOw0KfQ0KLmZhLXJlbW92ZTpiZWZvcmUsDQouZmEtY2xvc2U6YmVmb3JlLA0KLmZhLXRpbWVzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAwZCI7DQp9DQouZmEtc2VhcmNoLXBsdXM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDBlIjsNCn0NCi5mYS1zZWFyY2gtbWludXM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDEwIjsNCn0NCi5mYS1wb3dlci1vZmY6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDExIjsNCn0NCi5mYS1zaWduYWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDEyIjsNCn0NCi5mYS1nZWFyOmJlZm9yZSwNCi5mYS1jb2c6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDEzIjsNCn0NCi5mYS10cmFzaC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAxNCI7DQp9DQouZmEtaG9tZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMTUiOw0KfQ0KLmZhLWZpbGUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMTYiOw0KfQ0KLmZhLWNsb2NrLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDE3IjsNCn0NCi5mYS1yb2FkOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAxOCI7DQp9DQouZmEtZG93bmxvYWQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDE5IjsNCn0NCi5mYS1hcnJvdy1jaXJjbGUtby1kb3duOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAxYSI7DQp9DQouZmEtYXJyb3ctY2lyY2xlLW8tdXA6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDFiIjsNCn0NCi5mYS1pbmJveDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMWMiOw0KfQ0KLmZhLXBsYXktY2lyY2xlLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDFkIjsNCn0NCi5mYS1yb3RhdGUtcmlnaHQ6YmVmb3JlLA0KLmZhLXJlcGVhdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMWUiOw0KfQ0KLmZhLXJlZnJlc2g6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDIxIjsNCn0NCi5mYS1saXN0LWFsdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMjIiOw0KfQ0KLmZhLWxvY2s6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDIzIjsNCn0NCi5mYS1mbGFnOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAyNCI7DQp9DQouZmEtaGVhZHBob25lczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMjUiOw0KfQ0KLmZhLXZvbHVtZS1vZmY6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDI2IjsNCn0NCi5mYS12b2x1bWUtZG93bjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMjciOw0KfQ0KLmZhLXZvbHVtZS11cDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMjgiOw0KfQ0KLmZhLXFyY29kZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMjkiOw0KfQ0KLmZhLWJhcmNvZGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDJhIjsNCn0NCi5mYS10YWc6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDJiIjsNCn0NCi5mYS10YWdzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAyYyI7DQp9DQouZmEtYm9vazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMmQiOw0KfQ0KLmZhLWJvb2ttYXJrOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAyZSI7DQp9DQouZmEtcHJpbnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDJmIjsNCn0NCi5mYS1jYW1lcmE6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDMwIjsNCn0NCi5mYS1mb250OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAzMSI7DQp9DQouZmEtYm9sZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMzIiOw0KfQ0KLmZhLWl0YWxpYzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMzMiOw0KfQ0KLmZhLXRleHQtaGVpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAzNCI7DQp9DQouZmEtdGV4dC13aWR0aDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMzUiOw0KfQ0KLmZhLWFsaWduLWxlZnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDM2IjsNCn0NCi5mYS1hbGlnbi1jZW50ZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDM3IjsNCn0NCi5mYS1hbGlnbi1yaWdodDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwMzgiOw0KfQ0KLmZhLWFsaWduLWp1c3RpZnk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDM5IjsNCn0NCi5mYS1saXN0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAzYSI7DQp9DQouZmEtZGVkZW50OmJlZm9yZSwNCi5mYS1vdXRkZW50OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAzYiI7DQp9DQouZmEtaW5kZW50OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAzYyI7DQp9DQouZmEtdmlkZW8tY2FtZXJhOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjAzZCI7DQp9DQouZmEtcGhvdG86YmVmb3JlLA0KLmZhLWltYWdlOmJlZm9yZSwNCi5mYS1waWN0dXJlLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDNlIjsNCn0NCi5mYS1wZW5jaWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDQwIjsNCn0NCi5mYS1tYXAtbWFya2VyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA0MSI7DQp9DQouZmEtYWRqdXN0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA0MiI7DQp9DQouZmEtdGludDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNDMiOw0KfQ0KLmZhLWVkaXQ6YmVmb3JlLA0KLmZhLXBlbmNpbC1zcXVhcmUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNDQiOw0KfQ0KLmZhLXNoYXJlLXNxdWFyZS1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA0NSI7DQp9DQouZmEtY2hlY2stc3F1YXJlLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDQ2IjsNCn0NCi5mYS1hcnJvd3M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDQ3IjsNCn0NCi5mYS1zdGVwLWJhY2t3YXJkOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA0OCI7DQp9DQouZmEtZmFzdC1iYWNrd2FyZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNDkiOw0KfQ0KLmZhLWJhY2t3YXJkOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA0YSI7DQp9DQouZmEtcGxheTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNGIiOw0KfQ0KLmZhLXBhdXNlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA0YyI7DQp9DQouZmEtc3RvcDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNGQiOw0KfQ0KLmZhLWZvcndhcmQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDRlIjsNCn0NCi5mYS1mYXN0LWZvcndhcmQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDUwIjsNCn0NCi5mYS1zdGVwLWZvcndhcmQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDUxIjsNCn0NCi5mYS1lamVjdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTIiOw0KfQ0KLmZhLWNoZXZyb24tbGVmdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTMiOw0KfQ0KLmZhLWNoZXZyb24tcmlnaHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDU0IjsNCn0NCi5mYS1wbHVzLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTUiOw0KfQ0KLmZhLW1pbnVzLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTYiOw0KfQ0KLmZhLXRpbWVzLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTciOw0KfQ0KLmZhLWNoZWNrLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTgiOw0KfQ0KLmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNTkiOw0KfQ0KLmZhLWluZm8tY2lyY2xlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA1YSI7DQp9DQouZmEtY3Jvc3NoYWlyczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNWIiOw0KfQ0KLmZhLXRpbWVzLWNpcmNsZS1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA1YyI7DQp9DQouZmEtY2hlY2stY2lyY2xlLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDVkIjsNCn0NCi5mYS1iYW46YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDVlIjsNCn0NCi5mYS1hcnJvdy1sZWZ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA2MCI7DQp9DQouZmEtYXJyb3ctcmlnaHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDYxIjsNCn0NCi5mYS1hcnJvdy11cDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNjIiOw0KfQ0KLmZhLWFycm93LWRvd246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDYzIjsNCn0NCi5mYS1tYWlsLWZvcndhcmQ6YmVmb3JlLA0KLmZhLXNoYXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA2NCI7DQp9DQouZmEtZXhwYW5kOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA2NSI7DQp9DQouZmEtY29tcHJlc3M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDY2IjsNCn0NCi5mYS1wbHVzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA2NyI7DQp9DQouZmEtbWludXM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDY4IjsNCn0NCi5mYS1hc3RlcmlzazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNjkiOw0KfQ0KLmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNmEiOw0KfQ0KLmZhLWdpZnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDZiIjsNCn0NCi5mYS1sZWFmOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA2YyI7DQp9DQouZmEtZmlyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNmQiOw0KfQ0KLmZhLWV5ZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNmUiOw0KfQ0KLmZhLWV5ZS1zbGFzaDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNzAiOw0KfQ0KLmZhLXdhcm5pbmc6YmVmb3JlLA0KLmZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA3MSI7DQp9DQouZmEtcGxhbmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDcyIjsNCn0NCi5mYS1jYWxlbmRhcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNzMiOw0KfQ0KLmZhLXJhbmRvbTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNzQiOw0KfQ0KLmZhLWNvbW1lbnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDc1IjsNCn0NCi5mYS1tYWduZXQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDc2IjsNCn0NCi5mYS1jaGV2cm9uLXVwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA3NyI7DQp9DQouZmEtY2hldnJvbi1kb3duOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA3OCI7DQp9DQouZmEtcmV0d2VldDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwNzkiOw0KfQ0KLmZhLXNob3BwaW5nLWNhcnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDdhIjsNCn0NCi5mYS1mb2xkZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDdiIjsNCn0NCi5mYS1mb2xkZXItb3BlbjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwN2MiOw0KfQ0KLmZhLWFycm93cy12OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA3ZCI7DQp9DQouZmEtYXJyb3dzLWg6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDdlIjsNCn0NCi5mYS1iYXItY2hhcnQtbzpiZWZvcmUsDQouZmEtYmFyLWNoYXJ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA4MCI7DQp9DQouZmEtdHdpdHRlci1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDgxIjsNCn0NCi5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDgyIjsNCn0NCi5mYS1jYW1lcmEtcmV0cm86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDgzIjsNCn0NCi5mYS1rZXk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDg0IjsNCn0NCi5mYS1nZWFyczpiZWZvcmUsDQouZmEtY29nczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwODUiOw0KfQ0KLmZhLWNvbW1lbnRzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA4NiI7DQp9DQouZmEtdGh1bWJzLW8tdXA6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDg3IjsNCn0NCi5mYS10aHVtYnMtby1kb3duOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA4OCI7DQp9DQouZmEtc3Rhci1oYWxmOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA4OSI7DQp9DQouZmEtaGVhcnQtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOGEiOw0KfQ0KLmZhLXNpZ24tb3V0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA4YiI7DQp9DQouZmEtbGlua2VkaW4tc3F1YXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA4YyI7DQp9DQouZmEtdGh1bWItdGFjazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOGQiOw0KfQ0KLmZhLWV4dGVybmFsLWxpbms6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDhlIjsNCn0NCi5mYS1zaWduLWluOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA5MCI7DQp9DQouZmEtdHJvcGh5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA5MSI7DQp9DQouZmEtZ2l0aHViLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOTIiOw0KfQ0KLmZhLXVwbG9hZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOTMiOw0KfQ0KLmZhLWxlbW9uLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDk0IjsNCn0NCi5mYS1waG9uZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOTUiOw0KfQ0KLmZhLXNxdWFyZS1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA5NiI7DQp9DQouZmEtYm9va21hcmstbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOTciOw0KfQ0KLmZhLXBob25lLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOTgiOw0KfQ0KLmZhLXR3aXR0ZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMDk5IjsNCn0NCi5mYS1mYWNlYm9vay1mOmJlZm9yZSwNCi5mYS1mYWNlYm9vazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOWEiOw0KfQ0KLmZhLWdpdGh1YjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOWIiOw0KfQ0KLmZhLXVubG9jazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwOWMiOw0KfQ0KLmZhLWNyZWRpdC1jYXJkOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA5ZCI7DQp9DQouZmEtcnNzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjA5ZSI7DQp9DQouZmEtaGRkLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGEwIjsNCn0NCi5mYS1idWxsaG9ybjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYTEiOw0KfQ0KLmZhLWJlbGw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGYzIjsNCn0NCi5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYTMiOw0KfQ0KLmZhLWhhbmQtby1yaWdodDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYTQiOw0KfQ0KLmZhLWhhbmQtby1sZWZ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBhNSI7DQp9DQouZmEtaGFuZC1vLXVwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBhNiI7DQp9DQouZmEtaGFuZC1vLWRvd246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGE3IjsNCn0NCi5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYTgiOw0KfQ0KLmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYTkiOw0KfQ0KLmZhLWFycm93LWNpcmNsZS11cDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYWEiOw0KfQ0KLmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBhYiI7DQp9DQouZmEtZ2xvYmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGFjIjsNCn0NCi5mYS13cmVuY2g6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGFkIjsNCn0NCi5mYS10YXNrczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYWUiOw0KfQ0KLmZhLWZpbHRlcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYjAiOw0KfQ0KLmZhLWJyaWVmY2FzZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYjEiOw0KfQ0KLmZhLWFycm93cy1hbHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGIyIjsNCn0NCi5mYS1ncm91cDpiZWZvcmUsDQouZmEtdXNlcnM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGMwIjsNCn0NCi5mYS1jaGFpbjpiZWZvcmUsDQouZmEtbGluazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYzEiOw0KfQ0KLmZhLWNsb3VkOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBjMiI7DQp9DQouZmEtZmxhc2s6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGMzIjsNCn0NCi5mYS1jdXQ6YmVmb3JlLA0KLmZhLXNjaXNzb3JzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBjNCI7DQp9DQouZmEtY29weTpiZWZvcmUsDQouZmEtZmlsZXMtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYzUiOw0KfQ0KLmZhLXBhcGVyY2xpcDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYzYiOw0KfQ0KLmZhLXNhdmU6YmVmb3JlLA0KLmZhLWZsb3BweS1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBjNyI7DQp9DQouZmEtc3F1YXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBjOCI7DQp9DQouZmEtbmF2aWNvbjpiZWZvcmUsDQouZmEtcmVvcmRlcjpiZWZvcmUsDQouZmEtYmFyczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYzkiOw0KfQ0KLmZhLWxpc3QtdWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGNhIjsNCn0NCi5mYS1saXN0LW9sOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBjYiI7DQp9DQouZmEtc3RyaWtldGhyb3VnaDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwY2MiOw0KfQ0KLmZhLXVuZGVybGluZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwY2QiOw0KfQ0KLmZhLXRhYmxlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBjZSI7DQp9DQouZmEtbWFnaWM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGQwIjsNCn0NCi5mYS10cnVjazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZDEiOw0KfQ0KLmZhLXBpbnRlcmVzdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZDIiOw0KfQ0KLmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGQzIjsNCn0NCi5mYS1nb29nbGUtcGx1cy1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGQ0IjsNCn0NCi5mYS1nb29nbGUtcGx1czpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZDUiOw0KfQ0KLmZhLW1vbmV5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBkNiI7DQp9DQouZmEtY2FyZXQtZG93bjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZDciOw0KfQ0KLmZhLWNhcmV0LXVwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBkOCI7DQp9DQouZmEtY2FyZXQtbGVmdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZDkiOw0KfQ0KLmZhLWNhcmV0LXJpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBkYSI7DQp9DQouZmEtY29sdW1uczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZGIiOw0KfQ0KLmZhLXVuc29ydGVkOmJlZm9yZSwNCi5mYS1zb3J0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBkYyI7DQp9DQouZmEtc29ydC1kb3duOmJlZm9yZSwNCi5mYS1zb3J0LWRlc2M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGRkIjsNCn0NCi5mYS1zb3J0LXVwOmJlZm9yZSwNCi5mYS1zb3J0LWFzYzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZGUiOw0KfQ0KLmZhLWVudmVsb3BlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBlMCI7DQp9DQouZmEtbGlua2VkaW46YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGUxIjsNCn0NCi5mYS1yb3RhdGUtbGVmdDpiZWZvcmUsDQouZmEtdW5kbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZTIiOw0KfQ0KLmZhLWxlZ2FsOmJlZm9yZSwNCi5mYS1nYXZlbDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZTMiOw0KfQ0KLmZhLWRhc2hib2FyZDpiZWZvcmUsDQouZmEtdGFjaG9tZXRlcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZTQiOw0KfQ0KLmZhLWNvbW1lbnQtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZTUiOw0KfQ0KLmZhLWNvbW1lbnRzLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGU2IjsNCn0NCi5mYS1mbGFzaDpiZWZvcmUsDQouZmEtYm9sdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZTciOw0KfQ0KLmZhLXNpdGVtYXA6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGU4IjsNCn0NCi5mYS11bWJyZWxsYTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZTkiOw0KfQ0KLmZhLXBhc3RlOmJlZm9yZSwNCi5mYS1jbGlwYm9hcmQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGVhIjsNCn0NCi5mYS1saWdodGJ1bGItbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZWIiOw0KfQ0KLmZhLWV4Y2hhbmdlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBlYyI7DQp9DQouZmEtY2xvdWQtZG93bmxvYWQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGVkIjsNCn0NCi5mYS1jbG91ZC11cGxvYWQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGVlIjsNCn0NCi5mYS11c2VyLW1kOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBmMCI7DQp9DQouZmEtc3RldGhvc2NvcGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGYxIjsNCn0NCi5mYS1zdWl0Y2FzZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZjIiOw0KfQ0KLmZhLWJlbGwtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwYTIiOw0KfQ0KLmZhLWNvZmZlZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZjQiOw0KfQ0KLmZhLWN1dGxlcnk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGY1IjsNCn0NCi5mYS1maWxlLXRleHQtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZjYiOw0KfQ0KLmZhLWJ1aWxkaW5nLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGY3IjsNCn0NCi5mYS1ob3NwaXRhbC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBmOCI7DQp9DQouZmEtYW1idWxhbmNlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBmOSI7DQp9DQouZmEtbWVka2l0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBmYSI7DQp9DQouZmEtZmlnaHRlci1qZXQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGZiIjsNCn0NCi5mYS1iZWVyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjBmYyI7DQp9DQouZmEtaC1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMGZkIjsNCn0NCi5mYS1wbHVzLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYwZmUiOw0KfQ0KLmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwMCI7DQp9DQouZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwMSI7DQp9DQouZmEtYW5nbGUtZG91YmxlLXVwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwMiI7DQp9DQouZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTAzIjsNCn0NCi5mYS1hbmdsZS1sZWZ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwNCI7DQp9DQouZmEtYW5nbGUtcmlnaHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTA1IjsNCn0NCi5mYS1hbmdsZS11cDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMDYiOw0KfQ0KLmZhLWFuZ2xlLWRvd246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTA3IjsNCn0NCi5mYS1kZXNrdG9wOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwOCI7DQp9DQouZmEtbGFwdG9wOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwOSI7DQp9DQouZmEtdGFibGV0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEwYSI7DQp9DQouZmEtbW9iaWxlLXBob25lOmJlZm9yZSwNCi5mYS1tb2JpbGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTBiIjsNCn0NCi5mYS1jaXJjbGUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMGMiOw0KfQ0KLmZhLXF1b3RlLWxlZnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTBkIjsNCn0NCi5mYS1xdW90ZS1yaWdodDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMGUiOw0KfQ0KLmZhLXNwaW5uZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTEwIjsNCn0NCi5mYS1jaXJjbGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTExIjsNCn0NCi5mYS1tYWlsLXJlcGx5OmJlZm9yZSwNCi5mYS1yZXBseTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMTIiOw0KfQ0KLmZhLWdpdGh1Yi1hbHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTEzIjsNCn0NCi5mYS1mb2xkZXItbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMTQiOw0KfQ0KLmZhLWZvbGRlci1vcGVuLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTE1IjsNCn0NCi5mYS1zbWlsZS1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjExOCI7DQp9DQouZmEtZnJvd24tbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMTkiOw0KfQ0KLmZhLW1laC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjExYSI7DQp9DQouZmEtZ2FtZXBhZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMWIiOw0KfQ0KLmZhLWtleWJvYXJkLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTFjIjsNCn0NCi5mYS1mbGFnLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTFkIjsNCn0NCi5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMWUiOw0KfQ0KLmZhLXRlcm1pbmFsOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEyMCI7DQp9DQouZmEtY29kZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMjEiOw0KfQ0KLmZhLW1haWwtcmVwbHktYWxsOmJlZm9yZSwNCi5mYS1yZXBseS1hbGw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTIyIjsNCn0NCi5mYS1zdGFyLWhhbGYtZW1wdHk6YmVmb3JlLA0KLmZhLXN0YXItaGFsZi1mdWxsOmJlZm9yZSwNCi5mYS1zdGFyLWhhbGYtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMjMiOw0KfQ0KLmZhLWxvY2F0aW9uLWFycm93OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEyNCI7DQp9DQouZmEtY3JvcDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMjUiOw0KfQ0KLmZhLWNvZGUtZm9yazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMjYiOw0KfQ0KLmZhLXVubGluazpiZWZvcmUsDQouZmEtY2hhaW4tYnJva2VuOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEyNyI7DQp9DQouZmEtcXVlc3Rpb246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTI4IjsNCn0NCi5mYS1pbmZvOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEyOSI7DQp9DQouZmEtZXhjbGFtYXRpb246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTJhIjsNCn0NCi5mYS1zdXBlcnNjcmlwdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMmIiOw0KfQ0KLmZhLXN1YnNjcmlwdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMmMiOw0KfQ0KLmZhLWVyYXNlcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMmQiOw0KfQ0KLmZhLXB1enpsZS1waWVjZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMmUiOw0KfQ0KLmZhLW1pY3JvcGhvbmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTMwIjsNCn0NCi5mYS1taWNyb3Bob25lLXNsYXNoOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzMSI7DQp9DQouZmEtc2hpZWxkOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzMiI7DQp9DQouZmEtY2FsZW5kYXItbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMzMiOw0KfQ0KLmZhLWZpcmUtZXh0aW5ndWlzaGVyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzNCI7DQp9DQouZmEtcm9ja2V0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzNSI7DQp9DQouZmEtbWF4Y2RuOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzNiI7DQp9DQouZmEtY2hldnJvbi1jaXJjbGUtbGVmdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxMzciOw0KfQ0KLmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzOCI7DQp9DQouZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTM5IjsNCn0NCi5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzYSI7DQp9DQouZmEtaHRtbDU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTNiIjsNCn0NCi5mYS1jc3MzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzYyI7DQp9DQouZmEtYW5jaG9yOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjEzZCI7DQp9DQouZmEtdW5sb2NrLWFsdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxM2UiOw0KfQ0KLmZhLWJ1bGxzZXllOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE0MCI7DQp9DQouZmEtZWxsaXBzaXMtaDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNDEiOw0KfQ0KLmZhLWVsbGlwc2lzLXY6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTQyIjsNCn0NCi5mYS1yc3Mtc3F1YXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE0MyI7DQp9DQouZmEtcGxheS1jaXJjbGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTQ0IjsNCn0NCi5mYS10aWNrZXQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTQ1IjsNCn0NCi5mYS1taW51cy1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTQ2IjsNCn0NCi5mYS1taW51cy1zcXVhcmUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNDciOw0KfQ0KLmZhLWxldmVsLXVwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE0OCI7DQp9DQouZmEtbGV2ZWwtZG93bjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNDkiOw0KfQ0KLmZhLWNoZWNrLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNGEiOw0KfQ0KLmZhLXBlbmNpbC1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTRiIjsNCn0NCi5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNGMiOw0KfQ0KLmZhLXNoYXJlLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNGQiOw0KfQ0KLmZhLWNvbXBhc3M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTRlIjsNCn0NCi5mYS10b2dnbGUtZG93bjpiZWZvcmUsDQouZmEtY2FyZXQtc3F1YXJlLW8tZG93bjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNTAiOw0KfQ0KLmZhLXRvZ2dsZS11cDpiZWZvcmUsDQouZmEtY2FyZXQtc3F1YXJlLW8tdXA6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTUxIjsNCn0NCi5mYS10b2dnbGUtcmlnaHQ6YmVmb3JlLA0KLmZhLWNhcmV0LXNxdWFyZS1vLXJpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1MiI7DQp9DQouZmEtZXVybzpiZWZvcmUsDQouZmEtZXVyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1MyI7DQp9DQouZmEtZ2JwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1NCI7DQp9DQouZmEtZG9sbGFyOmJlZm9yZSwNCi5mYS11c2Q6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTU1IjsNCn0NCi5mYS1ydXBlZTpiZWZvcmUsDQouZmEtaW5yOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1NiI7DQp9DQouZmEtY255OmJlZm9yZSwNCi5mYS1ybWI6YmVmb3JlLA0KLmZhLXllbjpiZWZvcmUsDQouZmEtanB5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1NyI7DQp9DQouZmEtcnVibGU6YmVmb3JlLA0KLmZhLXJvdWJsZTpiZWZvcmUsDQouZmEtcnViOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1OCI7DQp9DQouZmEtd29uOmJlZm9yZSwNCi5mYS1rcnc6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTU5IjsNCn0NCi5mYS1iaXRjb2luOmJlZm9yZSwNCi5mYS1idGM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTVhIjsNCn0NCi5mYS1maWxlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1YiI7DQp9DQouZmEtZmlsZS10ZXh0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE1YyI7DQp9DQouZmEtc29ydC1hbHBoYS1hc2M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTVkIjsNCn0NCi5mYS1zb3J0LWFscGhhLWRlc2M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTVlIjsNCn0NCi5mYS1zb3J0LWFtb3VudC1hc2M6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTYwIjsNCn0NCi5mYS1zb3J0LWFtb3VudC1kZXNjOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE2MSI7DQp9DQouZmEtc29ydC1udW1lcmljLWFzYzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNjIiOw0KfQ0KLmZhLXNvcnQtbnVtZXJpYy1kZXNjOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE2MyI7DQp9DQouZmEtdGh1bWJzLXVwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE2NCI7DQp9DQouZmEtdGh1bWJzLWRvd246YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTY1IjsNCn0NCi5mYS15b3V0dWJlLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNjYiOw0KfQ0KLmZhLXlvdXR1YmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTY3IjsNCn0NCi5mYS14aW5nOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE2OCI7DQp9DQouZmEteGluZy1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTY5IjsNCn0NCi5mYS15b3V0dWJlLXBsYXk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTZhIjsNCn0NCi5mYS1kcm9wYm94OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE2YiI7DQp9DQouZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTZjIjsNCn0NCi5mYS1pbnN0YWdyYW06YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTZkIjsNCn0NCi5mYS1mbGlja3I6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTZlIjsNCn0NCi5mYS1hZG46YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTcwIjsNCn0NCi5mYS1iaXRidWNrZXQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTcxIjsNCn0NCi5mYS1iaXRidWNrZXQtc3F1YXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE3MiI7DQp9DQouZmEtdHVtYmxyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE3MyI7DQp9DQouZmEtdHVtYmxyLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNzQiOw0KfQ0KLmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxNzUiOw0KfQ0KLmZhLWxvbmctYXJyb3ctdXA6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTc2IjsNCn0NCi5mYS1sb25nLWFycm93LWxlZnQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTc3IjsNCn0NCi5mYS1sb25nLWFycm93LXJpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE3OCI7DQp9DQouZmEtYXBwbGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTc5IjsNCn0NCi5mYS13aW5kb3dzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE3YSI7DQp9DQouZmEtYW5kcm9pZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxN2IiOw0KfQ0KLmZhLWxpbnV4OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE3YyI7DQp9DQouZmEtZHJpYmJibGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTdkIjsNCn0NCi5mYS1za3lwZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxN2UiOw0KfQ0KLmZhLWZvdXJzcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTgwIjsNCn0NCi5mYS10cmVsbG86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTgxIjsNCn0NCi5mYS1mZW1hbGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTgyIjsNCn0NCi5mYS1tYWxlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE4MyI7DQp9DQouZmEtZ2l0dGlwOmJlZm9yZSwNCi5mYS1ncmF0aXBheTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxODQiOw0KfQ0KLmZhLXN1bi1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE4NSI7DQp9DQouZmEtbW9vbi1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE4NiI7DQp9DQouZmEtYXJjaGl2ZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxODciOw0KfQ0KLmZhLWJ1ZzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxODgiOw0KfQ0KLmZhLXZrOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE4OSI7DQp9DQouZmEtd2VpYm86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMThhIjsNCn0NCi5mYS1yZW5yZW46YmVmb3JlIHsNCiAgY29udGVudDogIlxmMThiIjsNCn0NCi5mYS1wYWdlbGluZXM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMThjIjsNCn0NCi5mYS1zdGFjay1leGNoYW5nZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOGQiOw0KfQ0KLmZhLWFycm93LWNpcmNsZS1vLXJpZ2h0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE4ZSI7DQp9DQouZmEtYXJyb3ctY2lyY2xlLW8tbGVmdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOTAiOw0KfQ0KLmZhLXRvZ2dsZS1sZWZ0OmJlZm9yZSwNCi5mYS1jYXJldC1zcXVhcmUtby1sZWZ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE5MSI7DQp9DQouZmEtZG90LWNpcmNsZS1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE5MiI7DQp9DQouZmEtd2hlZWxjaGFpcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOTMiOw0KfQ0KLmZhLXZpbWVvLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOTQiOw0KfQ0KLmZhLXR1cmtpc2gtbGlyYTpiZWZvcmUsDQouZmEtdHJ5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE5NSI7DQp9DQouZmEtcGx1cy1zcXVhcmUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOTYiOw0KfQ0KLmZhLXNwYWNlLXNodXR0bGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMTk3IjsNCn0NCi5mYS1zbGFjazpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOTgiOw0KfQ0KLmZhLWVudmVsb3BlLXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOTkiOw0KfQ0KLmZhLXdvcmRwcmVzczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOWEiOw0KfQ0KLmZhLW9wZW5pZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOWIiOw0KfQ0KLmZhLWluc3RpdHV0aW9uOmJlZm9yZSwNCi5mYS1iYW5rOmJlZm9yZSwNCi5mYS11bml2ZXJzaXR5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE5YyI7DQp9DQouZmEtbW9ydGFyLWJvYXJkOmJlZm9yZSwNCi5mYS1ncmFkdWF0aW9uLWNhcDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxOWQiOw0KfQ0KLmZhLXlhaG9vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjE5ZSI7DQp9DQouZmEtZ29vZ2xlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFhMCI7DQp9DQouZmEtcmVkZGl0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFhMSI7DQp9DQouZmEtcmVkZGl0LXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYTIiOw0KfQ0KLmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYTMiOw0KfQ0KLmZhLXN0dW1ibGV1cG9uOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFhNCI7DQp9DQouZmEtZGVsaWNpb3VzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFhNSI7DQp9DQouZmEtZGlnZzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYTYiOw0KfQ0KLmZhLXBpZWQtcGlwZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWE3IjsNCn0NCi5mYS1waWVkLXBpcGVyLWFsdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYTgiOw0KfQ0KLmZhLWRydXBhbDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYTkiOw0KfQ0KLmZhLWpvb21sYTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYWEiOw0KfQ0KLmZhLWxhbmd1YWdlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFhYiI7DQp9DQouZmEtZmF4OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFhYyI7DQp9DQouZmEtYnVpbGRpbmc6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWFkIjsNCn0NCi5mYS1jaGlsZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYWUiOw0KfQ0KLmZhLXBhdzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYjAiOw0KfQ0KLmZhLXNwb29uOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiMSI7DQp9DQouZmEtY3ViZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYjIiOw0KfQ0KLmZhLWN1YmVzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiMyI7DQp9DQouZmEtYmVoYW5jZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYjQiOw0KfQ0KLmZhLWJlaGFuY2Utc3F1YXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiNSI7DQp9DQouZmEtc3RlYW06YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWI2IjsNCn0NCi5mYS1zdGVhbS1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWI3IjsNCn0NCi5mYS1yZWN5Y2xlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiOCI7DQp9DQouZmEtYXV0b21vYmlsZTpiZWZvcmUsDQouZmEtY2FyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiOSI7DQp9DQouZmEtY2FiOmJlZm9yZSwNCi5mYS10YXhpOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiYSI7DQp9DQouZmEtdHJlZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYmIiOw0KfQ0KLmZhLXNwb3RpZnk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWJjIjsNCn0NCi5mYS1kZXZpYW50YXJ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFiZCI7DQp9DQouZmEtc291bmRjbG91ZDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYmUiOw0KfQ0KLmZhLWRhdGFiYXNlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFjMCI7DQp9DQouZmEtZmlsZS1wZGYtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYzEiOw0KfQ0KLmZhLWZpbGUtd29yZC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFjMiI7DQp9DQouZmEtZmlsZS1leGNlbC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFjMyI7DQp9DQouZmEtZmlsZS1wb3dlcnBvaW50LW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWM0IjsNCn0NCi5mYS1maWxlLXBob3RvLW86YmVmb3JlLA0KLmZhLWZpbGUtcGljdHVyZS1vOmJlZm9yZSwNCi5mYS1maWxlLWltYWdlLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWM1IjsNCn0NCi5mYS1maWxlLXppcC1vOmJlZm9yZSwNCi5mYS1maWxlLWFyY2hpdmUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYzYiOw0KfQ0KLmZhLWZpbGUtc291bmQtbzpiZWZvcmUsDQouZmEtZmlsZS1hdWRpby1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFjNyI7DQp9DQouZmEtZmlsZS1tb3ZpZS1vOmJlZm9yZSwNCi5mYS1maWxlLXZpZGVvLW86YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWM4IjsNCn0NCi5mYS1maWxlLWNvZGUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxYzkiOw0KfQ0KLmZhLXZpbmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWNhIjsNCn0NCi5mYS1jb2RlcGVuOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFjYiI7DQp9DQouZmEtanNmaWRkbGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWNjIjsNCn0NCi5mYS1saWZlLWJvdXk6YmVmb3JlLA0KLmZhLWxpZmUtYnVveTpiZWZvcmUsDQouZmEtbGlmZS1zYXZlcjpiZWZvcmUsDQouZmEtc3VwcG9ydDpiZWZvcmUsDQouZmEtbGlmZS1yaW5nOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFjZCI7DQp9DQouZmEtY2lyY2xlLW8tbm90Y2g6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWNlIjsNCn0NCi5mYS1yYTpiZWZvcmUsDQouZmEtcmViZWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWQwIjsNCn0NCi5mYS1nZTpiZWZvcmUsDQouZmEtZW1waXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFkMSI7DQp9DQouZmEtZ2l0LXNxdWFyZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZDIiOw0KfQ0KLmZhLWdpdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZDMiOw0KfQ0KLmZhLWhhY2tlci1uZXdzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFkNCI7DQp9DQouZmEtdGVuY2VudC13ZWlibzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZDUiOw0KfQ0KLmZhLXFxOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFkNiI7DQp9DQouZmEtd2VjaGF0OmJlZm9yZSwNCi5mYS13ZWl4aW46YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWQ3IjsNCn0NCi5mYS1zZW5kOmJlZm9yZSwNCi5mYS1wYXBlci1wbGFuZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZDgiOw0KfQ0KLmZhLXNlbmQtbzpiZWZvcmUsDQouZmEtcGFwZXItcGxhbmUtbzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZDkiOw0KfQ0KLmZhLWhpc3Rvcnk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWRhIjsNCn0NCi5mYS1nZW5kZXJsZXNzOmJlZm9yZSwNCi5mYS1jaXJjbGUtdGhpbjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZGIiOw0KfQ0KLmZhLWhlYWRlcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZGMiOw0KfQ0KLmZhLXBhcmFncmFwaDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZGQiOw0KfQ0KLmZhLXNsaWRlcnM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWRlIjsNCn0NCi5mYS1zaGFyZS1hbHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWUwIjsNCn0NCi5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlMSI7DQp9DQouZmEtYm9tYjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZTIiOw0KfQ0KLmZhLXNvY2Nlci1iYWxsLW86YmVmb3JlLA0KLmZhLWZ1dGJvbC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlMyI7DQp9DQouZmEtdHR5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlNCI7DQp9DQouZmEtYmlub2N1bGFyczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZTUiOw0KfQ0KLmZhLXBsdWc6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWU2IjsNCn0NCi5mYS1zbGlkZXNoYXJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlNyI7DQp9DQouZmEtdHdpdGNoOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlOCI7DQp9DQouZmEteWVscDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZTkiOw0KfQ0KLmZhLW5ld3NwYXBlci1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlYSI7DQp9DQouZmEtd2lmaTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZWIiOw0KfQ0KLmZhLWNhbGN1bGF0b3I6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWVjIjsNCn0NCi5mYS1wYXlwYWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWVkIjsNCn0NCi5mYS1nb29nbGUtd2FsbGV0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFlZSI7DQp9DQouZmEtY2MtdmlzYTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZjAiOw0KfQ0KLmZhLWNjLW1hc3RlcmNhcmQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWYxIjsNCn0NCi5mYS1jYy1kaXNjb3ZlcjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZjIiOw0KfQ0KLmZhLWNjLWFtZXg6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWYzIjsNCn0NCi5mYS1jYy1wYXlwYWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWY0IjsNCn0NCi5mYS1jYy1zdHJpcGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWY1IjsNCn0NCi5mYS1iZWxsLXNsYXNoOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFmNiI7DQp9DQouZmEtYmVsbC1zbGFzaC1vOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFmNyI7DQp9DQouZmEtdHJhc2g6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWY4IjsNCn0NCi5mYS1jb3B5cmlnaHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWY5IjsNCn0NCi5mYS1hdDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZmEiOw0KfQ0KLmZhLWV5ZWRyb3BwZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWZiIjsNCn0NCi5mYS1wYWludC1icnVzaDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYxZmMiOw0KfQ0KLmZhLWJpcnRoZGF5LWNha2U6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMWZkIjsNCn0NCi5mYS1hcmVhLWNoYXJ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjFmZSI7DQp9DQouZmEtcGllLWNoYXJ0OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIwMCI7DQp9DQouZmEtbGluZS1jaGFydDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMDEiOw0KfQ0KLmZhLWxhc3RmbTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMDIiOw0KfQ0KLmZhLWxhc3RmbS1zcXVhcmU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjAzIjsNCn0NCi5mYS10b2dnbGUtb2ZmOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIwNCI7DQp9DQouZmEtdG9nZ2xlLW9uOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIwNSI7DQp9DQouZmEtYmljeWNsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMDYiOw0KfQ0KLmZhLWJ1czpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMDciOw0KfQ0KLmZhLWlveGhvc3Q6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjA4IjsNCn0NCi5mYS1hbmdlbGxpc3Q6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjA5IjsNCn0NCi5mYS1jYzpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMGEiOw0KfQ0KLmZhLXNoZWtlbDpiZWZvcmUsDQouZmEtc2hlcWVsOmJlZm9yZSwNCi5mYS1pbHM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjBiIjsNCn0NCi5mYS1tZWFucGF0aDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMGMiOw0KfQ0KLmZhLWJ1eXNlbGxhZHM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjBkIjsNCn0NCi5mYS1jb25uZWN0ZGV2ZWxvcDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMGUiOw0KfQ0KLmZhLWRhc2hjdWJlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIxMCI7DQp9DQouZmEtZm9ydW1iZWU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjExIjsNCn0NCi5mYS1sZWFucHViOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIxMiI7DQp9DQouZmEtc2VsbHN5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIxMyI7DQp9DQouZmEtc2hpcnRzaW5idWxrOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIxNCI7DQp9DQouZmEtc2ltcGx5YnVpbHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjE1IjsNCn0NCi5mYS1za3lhdGxhczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMTYiOw0KfQ0KLmZhLWNhcnQtcGx1czpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMTciOw0KfQ0KLmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMTgiOw0KfQ0KLmZhLWRpYW1vbmQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjE5IjsNCn0NCi5mYS1zaGlwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIxYSI7DQp9DQouZmEtdXNlci1zZWNyZXQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjFiIjsNCn0NCi5mYS1tb3RvcmN5Y2xlOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIxYyI7DQp9DQouZmEtc3RyZWV0LXZpZXc6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjFkIjsNCn0NCi5mYS1oZWFydGJlYXQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjFlIjsNCn0NCi5mYS12ZW51czpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMjEiOw0KfQ0KLmZhLW1hcnM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjIyIjsNCn0NCi5mYS1tZXJjdXJ5OmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIyMyI7DQp9DQouZmEtdHJhbnNnZW5kZXI6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjI0IjsNCn0NCi5mYS10cmFuc2dlbmRlci1hbHQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjI1IjsNCn0NCi5mYS12ZW51cy1kb3VibGU6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjI2IjsNCn0NCi5mYS1tYXJzLWRvdWJsZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMjciOw0KfQ0KLmZhLXZlbnVzLW1hcnM6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjI4IjsNCn0NCi5mYS1tYXJzLXN0cm9rZTpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMjkiOw0KfQ0KLmZhLW1hcnMtc3Ryb2tlLXY6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjJhIjsNCn0NCi5mYS1tYXJzLXN0cm9rZS1oOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIyYiI7DQp9DQouZmEtbmV1dGVyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIyYyI7DQp9DQouZmEtZmFjZWJvb2stb2ZmaWNpYWw6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjMwIjsNCn0NCi5mYS1waW50ZXJlc3QtcDpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMzEiOw0KfQ0KLmZhLXdoYXRzYXBwOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIzMiI7DQp9DQouZmEtc2VydmVyOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIzMyI7DQp9DQouZmEtdXNlci1wbHVzOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIzNCI7DQp9DQouZmEtdXNlci10aW1lczpiZWZvcmUgew0KICBjb250ZW50OiAiXGYyMzUiOw0KfQ0KLmZhLWhvdGVsOmJlZm9yZSwNCi5mYS1iZWQ6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjM2IjsNCn0NCi5mYS12aWFjb2luOmJlZm9yZSB7DQogIGNvbnRlbnQ6ICJcZjIzNyI7DQp9DQouZmEtdHJhaW46YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjM4IjsNCn0NCi5mYS1zdWJ3YXk6YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjM5IjsNCn0NCi5mYS1tZWRpdW06YmVmb3JlIHsNCiAgY29udGVudDogIlxmMjNhIjsNCn0NCg=="}},"time_used":22,"timings":{"blocked":-1,"dns":0,"connect":0,"send":0,"wait":22,"receive":0,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coin-images.coingecko.com/coins/images/1/large/bitcoin.png?1696501400","fqdn":"coin-images.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.21.63.32","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.183Z","timestamp":1785129413183,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coin-images.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 11 Jun 2026 22:42:48 GMT","end":"Wed, 09 Sep 2026 23:41:15 GMT"},"fingerprint":{"sha1":"7A:6C:D0:D5:FD:4F:F2:F6:0E:21:8F:DB:FC:C2:6A:FB:03:26:BA:A8","sha256":"8F:4C:5D:49:64:66:ED:34:00:50:8C:D4:D9:03:C8:38:40:42:53:9D:67:B3:CD:AA:9E:0E:D5:41:02:8E:46:BA"}}},"request":{"raw":"GET /coins/images/1/large/bitcoin.png?1696501400 HTTP/1.1\r\nHost: coin-images.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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/3 200 \r\nx-amz-id-2: acfy4yV0hNGDZyfoIOBuAcpZ830diCRSUHcw7R7Y15TMkuSwLz169JCJW401UG51dQimFeY3Pl8=\r\nx-amz-request-id: XJT10ZHWT65SDYTK\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nx-amz-replication-status: COMPLETED\r\nlast-modified: Wed, 29 May 2024 02:28:22 GMT\r\netag: \"565e8c524f6da22928811f836d0b92a2\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: K_Yd_oAsiQpaEoTt9rotaTCh6C_AUMdt\r\naccept-ranges: bytes\r\ncontent-type: image/png\r\nserver-timing: cfExtPri\r\nserver: cloudflare\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-polished: ok, orig_size=12242\r\ncf-cache-status: HIT\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=5HxtPu0py53voqd%2BPscINygFftnqqEbGHSKxWrW2JlrrACpohqcM9lpmNWReCdKQ8baDUyDDyMB42%2FBe4x92iiMFCcBC6UcEA07L8dqpu2C%2FgtNxdd9boHL7UIFBM6gnb3SaZy2B35LvfGyw\"}]}\r\npriority: u=4,i\r\ncf-bgj: imgq:85,h2pri\r\nage: 1757\r\ncf-ray: a2192cb07c395687-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 9454\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":9454,"size_decoded":10461,"mime_type":"image/png","magic":"PNG image data, 250 x 250, 8-bit/color RGBA, non-interlaced","md5":"66a88a80de5eed33ed8583255445b6c4","sha1":"6d934c7f34286a0344dfbfa63c9ae12b34b5812a","sha256":"39d2790e598859909bf6cb1ed16377e3b220f7e8f2152ca733f70f28abb969b5","sha512":"4c621d0562ae0ecf2be57889fdc0710f9a7baef55514ce3d32f990359e6d2366dbe2c0fe41ab800d5840ea33da5c2d5aaa0fe513274ab58111008e6779e6abf9","ssdeep":"192:dItEpiWFaNPITJaSaLLg+1bslrPN8dUWCspKo8GtRlUV1QQRwD:9GHlvgTpNbcKo8GtRlUVWZD","tlshash":"b412bf52bb7469abfd7223332a2f355f990619d60895b0405c6b8fb31dc3da9f11730a","first_seen":"2025-04-01T12:02:22.596262Z","last_seen":"2026-07-29T06:15:23.413873Z","times_seen":852,"resource_available":false,"data":"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"}},"time_used":32,"timings":{"blocked":-1,"dns":3,"connect":11,"send":0,"wait":14,"receive":3,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}},{"url":{"schema":"https","addr":"coin-images.coingecko.com/coins/images/279/large/ethereum.png?1696501628","fqdn":"coin-images.coingecko.com","domain":"coingecko.com","tld":"com"},"ip":{"addr":"104.21.63.32","port":443,"asn":13335,"as":"CLOUDFLARENET","country":"","country_code":"zz"},"is_navigation_request":false,"resource_type":"img","requested_by":"https://danis-miners.com/","date":"2026-07-27T05:16:53.184Z","timestamp":1785129413184,"http_version":"HTTP/3","security_state":"secure","security_info":{"cipher_suite":"TLS_AES_128_GCM_SHA256","key_group_name":"mlkem768x25519","signature_name":"ECDSA-P256-SHA256","protocol":"TLSv1.3","cert":{"subject":{"commonName":"coin-images.coingecko.com","organization":""},"issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validity":{"start":"Thu, 11 Jun 2026 22:42:48 GMT","end":"Wed, 09 Sep 2026 23:41:15 GMT"},"fingerprint":{"sha1":"7A:6C:D0:D5:FD:4F:F2:F6:0E:21:8F:DB:FC:C2:6A:FB:03:26:BA:A8","sha256":"8F:4C:5D:49:64:66:ED:34:00:50:8C:D4:D9:03:C8:38:40:42:53:9D:67:B3:CD:AA:9E:0E:D5:41:02:8E:46:BA"}}},"request":{"raw":"GET /coins/images/279/large/ethereum.png?1696501628 HTTP/1.1\r\nHost: coin-images.coingecko.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0\r\nAccept: image/avif,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5\r\nAccept-Language: en-US,en;q=0.9\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nSec-Fetch-Storage-Access: none\r\nSec-GPC: 1\r\nConnection: keep-alive\r\nReferer: https://danis-miners.com/\r\nSec-Fetch-Dest: image\r\nSec-Fetch-Mode: no-cors\r\nSec-Fetch-Site: cross-site\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/3 200 \r\nx-amz-id-2: AfuKWJd+EqcwweT0VgEm6+/c0BTGHR9A2laflJDnhk0QvXATj/+WqhfB5XSuG2MDc8uRZHMi04g=\r\nx-amz-request-id: 5ZK48BRCW41ZWPT6\r\ndate: Mon, 27 Jul 2026 05:16:53 GMT\r\nlast-modified: Wed, 29 May 2024 02:48:08 GMT\r\netag: \"af87366546180c799987073ac53f0733\"\r\nx-amz-server-side-encryption: AES256\r\nx-amz-version-id: 6vmhZ_PH5UG1O..xRx9fhSAwELb.H8zx\r\naccept-ranges: bytes\r\ncontent-type: image/png\r\nserver-timing: cfExtPri\r\nserver: cloudflare\r\ncf-cache-status: HIT\r\npriority: u=4,i\r\nreport-to: {\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v4?s=Fg1eDDvQmXXwarPsAubw79THdRPKLmm27JyWKGZM9%2BlEDn2dKr%2FJWkxiLCffOEYCBy3BvpgjJK9M9%2B1FRGHClZwQ6%2Bfx7uc2qagEfHUKMNLVZhS1BmmSahZIyqrJCfIqUCMswOsV4leide45\"}]}\r\ncf-bgj: h2pri,imgq:85\r\nnel: {\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}\r\ncf-polished: ok, orig_size=13114\r\nage: 2939\r\ncf-ray: a2192cb07c3a5687-OSL\r\nalt-svc: h3=\":443\"; ma=86400\r\ncontent-length: 9561\r\n\r\n","headers":null,"cookies":null,"status_code":"200","status_text":"","fingerprints":[{"name":"Cloudflare","description":"Cloudflare is a web-infrastructure and website-security company, providing content-delivery-network services, DDoS mitigation, Internet security, and distributed domain-name-server services.","website":"https://www.cloudflare.com","common_platform_enumeration":"","icon":"CloudFlare.svg","categories":["CDN"]},{"name":"Amazon Web Services","description":"Amazon Web Services (AWS) is a comprehensive cloud services platform offering compute power, database storage, content delivery and other functionality.","website":"https://aws.amazon.com/","common_platform_enumeration":"","icon":"Amazon Web Services.svg","categories":["PaaS"]}],"data":{"size":9561,"size_decoded":10533,"mime_type":"image/png","magic":"PNG image data, 250 x 250, 8-bit/color RGBA, non-interlaced","md5":"39d54251b232d1e9e8a9665e7c2c5117","sha1":"025f4d72498175bf3219ba5fe2a6341b791d8b24","sha256":"5212de593ffa17b5acc04260fe702e32b3bb815f2eda4d7ca15b085967bd39f3","sha512":"c2f616084a077398dbed12026099332369ae72f8743c1a3acf1603af3a8ce032ac090cf0bc89d11270e8e2e6bd7d79383d556db591d19459bb873aab16daa0db","ssdeep":"96:dFdUh3pppql79CzKT7MLbrbKIgB1lpIRrFjWzR6/KPax4SfPUFvzJ/OWCVe8pabE:ZSfpEAzXzvElkFjy4rNcFvzYJVjaLypt","tlshash":"e112bf6f3030faa4599c8beb653659c09457b5b3868c38230aeee8ddecc54e088813c5","first_seen":"2025-04-01T12:02:22.555194Z","last_seen":"2026-07-28T19:28:06.597704Z","times_seen":1073,"resource_available":false,"data":"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"}},"time_used":28,"timings":{"blocked":-1,"dns":1,"connect":0,"send":0,"wait":11,"receive":4,"ssl":0},"alerts":{"ids":null,"analyzer":null,"urlquery":null}}]}
